From 0c869b2782aeecb92dff232b46a499a3821f9f2c Mon Sep 17 00:00:00 2001 From: HJ Date: Sat, 3 Feb 2024 15:10:00 -0500 Subject: cleanup --- aoc2023/aoc.toml | 4 - .../erlang/adglent/_gleam_artefacts/adglent.cache | Bin 2399 -> 0 bytes .../adglent/_gleam_artefacts/adglent.cache_meta | Bin 85 -> 0 bytes .../erlang/adglent/_gleam_artefacts/adglent.erl | 55 - .../adglent/_gleam_artefacts/adglent@day.cache | Bin 583 -> 0 bytes .../_gleam_artefacts/adglent@day.cache_meta | Bin 293 -> 0 bytes .../adglent/_gleam_artefacts/adglent@day.erl | 278 - .../adglent/_gleam_artefacts/adglent@init.cache | Bin 581 -> 0 bytes .../_gleam_artefacts/adglent@init.cache_meta | Bin 231 -> 0 bytes .../adglent/_gleam_artefacts/adglent@init.erl | 142 - .../adglent/_gleam_artefacts/adglent_ffi.erl | 12 - .../adglent/_gleam_artefacts/gleam@@compile.erl | 157 - .../adglent/_gleam_artefacts/priv@aoc_client.cache | Bin 468 -> 0 bytes .../_gleam_artefacts/priv@aoc_client.cache_meta | Bin 131 -> 0 bytes .../adglent/_gleam_artefacts/priv@aoc_client.erl | 61 - .../adglent/_gleam_artefacts/priv@errors.cache | Bin 1514 -> 0 bytes .../_gleam_artefacts/priv@errors.cache_meta | Bin 85 -> 0 bytes .../adglent/_gleam_artefacts/priv@errors.erl | 74 - .../adglent/_gleam_artefacts/priv@prompt.cache | Bin 1512 -> 0 bytes .../_gleam_artefacts/priv@prompt.cache_meta | Bin 69 -> 0 bytes .../adglent/_gleam_artefacts/priv@prompt.erl | 53 - .../adglent/_gleam_artefacts/priv@template.cache | Bin 438 -> 0 bytes .../_gleam_artefacts/priv@template.cache_meta | Bin 67 -> 0 bytes .../adglent/_gleam_artefacts/priv@template.erl | 25 - .../_gleam_artefacts/priv@templates@solution.cache | Bin 818 -> 0 bytes .../priv@templates@solution.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/priv@templates@solution.erl | 1 - .../priv@templates@test_main.cache | Bin 380 -> 0 bytes .../priv@templates@test_main.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/priv@templates@test_main.erl | 1 - .../priv@templates@testfile_gleeunit.cache | Bin 1293 -> 0 bytes .../priv@templates@testfile_gleeunit.cache_meta | Bin 29 -> 0 bytes .../priv@templates@testfile_gleeunit.erl | 1 - .../priv@templates@testfile_showtime.cache | Bin 1300 -> 0 bytes .../priv@templates@testfile_showtime.cache_meta | Bin 29 -> 0 bytes .../priv@templates@testfile_showtime.erl | 1 - .../adglent/_gleam_artefacts/priv@toml.cache | Bin 1714 -> 0 bytes .../adglent/_gleam_artefacts/priv@toml.cache_meta | Bin 60 -> 0 bytes .../erlang/adglent/_gleam_artefacts/priv@toml.erl | 83 - .../erlang/adglent/_gleam_artefacts/showtime.cache | Bin 1068 -> 0 bytes .../adglent/_gleam_artefacts/showtime.cache_meta | Bin 439 -> 0 bytes .../erlang/adglent/_gleam_artefacts/showtime.erl | 155 - .../showtime@internal@common@cli.cache | Bin 879 -> 0 bytes .../showtime@internal@common@cli.cache_meta | Bin 29 -> 0 bytes .../showtime@internal@common@cli.erl | 8 - ...time@internal@common@common_event_handler.cache | Bin 3273 -> 0 bytes ...internal@common@common_event_handler.cache_meta | Bin 89 -> 0 bytes ...owtime@internal@common@common_event_handler.erl | 131 - .../showtime@internal@common@test_result.cache | Bin 15288 -> 0 bytes ...showtime@internal@common@test_result.cache_meta | Bin 67 -> 0 bytes .../showtime@internal@common@test_result.erl | 54 - .../showtime@internal@common@test_suite.cache | Bin 8873 -> 0 bytes .../showtime@internal@common@test_suite.cache_meta | Bin 129 -> 0 bytes .../showtime@internal@common@test_suite.erl | 30 - .../showtime@internal@erlang@discover.cache | Bin 1929 -> 0 bytes .../showtime@internal@erlang@discover.cache_meta | Bin 227 -> 0 bytes .../showtime@internal@erlang@discover.erl | 230 - .../showtime@internal@erlang@event_handler.cache | Bin 1542 -> 0 bytes ...owtime@internal@erlang@event_handler.cache_meta | Bin 292 -> 0 bytes .../showtime@internal@erlang@event_handler.erl | 76 - .../showtime@internal@erlang@module_handler.cache | Bin 1135 -> 0 bytes ...wtime@internal@erlang@module_handler.cache_meta | Bin 179 -> 0 bytes .../showtime@internal@erlang@module_handler.erl | 53 - .../showtime@internal@erlang@runner.cache | Bin 1642 -> 0 bytes .../showtime@internal@erlang@runner.cache_meta | Bin 195 -> 0 bytes .../showtime@internal@erlang@runner.erl | 46 - .../showtime@internal@reports@compare.cache | Bin 479 -> 0 bytes .../showtime@internal@reports@compare.cache_meta | Bin 140 -> 0 bytes .../showtime@internal@reports@compare.erl | 61 - .../showtime@internal@reports@formatter.cache | Bin 5108 -> 0 bytes .../showtime@internal@reports@formatter.cache_meta | Bin 421 -> 0 bytes .../showtime@internal@reports@formatter.erl | 749 - .../showtime@internal@reports@styles.cache | Bin 3189 -> 0 bytes .../showtime@internal@reports@styles.cache_meta | Bin 118 -> 0 bytes .../showtime@internal@reports@styles.erl | 93 - .../showtime@internal@reports@table.cache | Bin 5510 -> 0 bytes .../showtime@internal@reports@table.cache_meta | Bin 144 -> 0 bytes .../showtime@internal@reports@table.erl | 229 - .../_gleam_artefacts/showtime@tests@meta.cache | Bin 901 -> 0 bytes .../showtime@tests@meta.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/showtime@tests@meta.erl | 8 - .../_gleam_artefacts/showtime@tests@should.cache | Bin 5547 -> 0 bytes .../showtime@tests@should.cache_meta | Bin 76 -> 0 bytes .../_gleam_artefacts/showtime@tests@should.erl | 143 - .../_gleam_artefacts/showtime@tests@test.cache | Bin 3674 -> 0 bytes .../showtime@tests@test.cache_meta | Bin 101 -> 0 bytes .../_gleam_artefacts/showtime@tests@test.erl | 57 - .../adglent/_gleam_artefacts/showtime_ffi.erl | 187 - aoc2023/build/dev/erlang/adglent/ebin/adglent.app | 17 - aoc2023/build/dev/erlang/adglent/ebin/adglent.beam | Bin 3072 -> 0 bytes .../build/dev/erlang/adglent/ebin/adglent@day.beam | Bin 8292 -> 0 bytes .../dev/erlang/adglent/ebin/adglent@init.beam | Bin 6308 -> 0 bytes .../build/dev/erlang/adglent/ebin/adglent_ffi.beam | Bin 1556 -> 0 bytes .../dev/erlang/adglent/ebin/priv@aoc_client.beam | Bin 3696 -> 0 bytes .../build/dev/erlang/adglent/ebin/priv@errors.beam | Bin 3800 -> 0 bytes .../build/dev/erlang/adglent/ebin/priv@prompt.beam | Bin 2744 -> 0 bytes .../dev/erlang/adglent/ebin/priv@template.beam | Bin 1804 -> 0 bytes .../adglent/ebin/priv@templates@solution.beam | Bin 792 -> 0 bytes .../adglent/ebin/priv@templates@test_main.beam | Bin 792 -> 0 bytes .../ebin/priv@templates@testfile_gleeunit.beam | Bin 812 -> 0 bytes .../ebin/priv@templates@testfile_showtime.beam | Bin 812 -> 0 bytes .../build/dev/erlang/adglent/ebin/priv@toml.beam | Bin 3900 -> 0 bytes .../build/dev/erlang/adglent/ebin/showtime.beam | Bin 7024 -> 0 bytes .../adglent/ebin/showtime@internal@common@cli.beam | Bin 924 -> 0 bytes ...wtime@internal@common@common_event_handler.beam | Bin 4324 -> 0 bytes .../ebin/showtime@internal@common@test_result.beam | Bin 1884 -> 0 bytes .../ebin/showtime@internal@common@test_suite.beam | Bin 1412 -> 0 bytes .../ebin/showtime@internal@erlang@discover.beam | Bin 8688 -> 0 bytes .../showtime@internal@erlang@event_handler.beam | Bin 4368 -> 0 bytes .../showtime@internal@erlang@module_handler.beam | Bin 3024 -> 0 bytes .../ebin/showtime@internal@erlang@runner.beam | Bin 2416 -> 0 bytes .../ebin/showtime@internal@reports@compare.beam | Bin 3380 -> 0 bytes .../ebin/showtime@internal@reports@formatter.beam | Bin 20468 -> 0 bytes .../ebin/showtime@internal@reports@styles.beam | Bin 4196 -> 0 bytes .../ebin/showtime@internal@reports@table.beam | Bin 7608 -> 0 bytes .../erlang/adglent/ebin/showtime@tests@meta.beam | Bin 904 -> 0 bytes .../erlang/adglent/ebin/showtime@tests@should.beam | Bin 5416 -> 0 bytes .../erlang/adglent/ebin/showtime@tests@test.beam | Bin 3412 -> 0 bytes .../dev/erlang/adglent/ebin/showtime_ffi.beam | Bin 7708 -> 0 bytes .../dev/erlang/adglent/include/adglent_Example.hrl | 1 - .../adglent/include/priv@toml_TomGetError.hrl | 1 - .../adglent/include/priv@toml_TomParseError.hrl | 1 - ...ternal@common@common_event_handler_Finished.hrl | 1 - ...al@common@common_event_handler_HandlerState.hrl | 5 - ...howtime@internal@common@test_result_ArgList.hrl | 1 - ...ime@internal@common@test_result_AssertEqual.hrl | 3 - ...ime@internal@common@test_result_AssertMatch.hrl | 3 - ...@internal@common@test_result_AssertNotEqual.hrl | 3 - ...internal@common@test_result_ErlangException.hrl | 6 - ...wtime@internal@common@test_result_ErrorInfo.hrl | 3 - ...owtime@internal@common@test_result_Expected.hrl | 1 - ...time@internal@common@test_result_Expression.hrl | 1 - .../showtime@internal@common@test_result_File.hrl | 1 - ...nternal@common@test_result_GenericException.hrl | 1 - ...ime@internal@common@test_result_GleamAssert.hrl | 1 - ...time@internal@common@test_result_GleamError.hrl | 3 - ...howtime@internal@common@test_result_Ignored.hrl | 1 - ...wtime@internal@common@test_result_LetAssert.hrl | 7 - .../showtime@internal@common@test_result_Line.hrl | 1 - ...showtime@internal@common@test_result_Module.hrl | 1 - .../showtime@internal@common@test_result_Num.hrl | 1 - ...howtime@internal@common@test_result_Pattern.hrl | 1 - ...time@internal@common@test_result_ReasonLine.hrl | 1 - ...ernal@common@test_result_TestFunctionReturn.hrl | 4 - .../showtime@internal@common@test_result_Trace.hrl | 5 - ...wtime@internal@common@test_result_TraceList.hrl | 3 - ...ime@internal@common@test_result_TraceModule.hrl | 6 - .../showtime@internal@common@test_result_Value.hrl | 1 - ...internal@common@test_suite_CompletedTestRun.hrl | 6 - ...showtime@internal@common@test_suite_EndTest.hrl | 6 - ...wtime@internal@common@test_suite_EndTestRun.hrl | 1 - ...ime@internal@common@test_suite_EndTestSuite.hrl | 3 - ...e@internal@common@test_suite_OngoingTestRun.hrl | 4 - ...owtime@internal@common@test_suite_StartTest.hrl | 4 - ...e@internal@common@test_suite_StartTestSuite.hrl | 3 - ...ime@internal@common@test_suite_TestFunction.hrl | 1 - ...wtime@internal@common@test_suite_TestModule.hrl | 1 - ...owtime@internal@common@test_suite_TestSuite.hrl | 4 - .../showtime@internal@reports@table_AlignLeft.hrl | 4 - ...me@internal@reports@table_AlignLeftOverflow.hrl | 4 - .../showtime@internal@reports@table_AlignRight.hrl | 4 - ...e@internal@reports@table_AlignRightOverflow.hrl | 4 - .../showtime@internal@reports@table_Aligned.hrl | 1 - .../showtime@internal@reports@table_Content.hrl | 1 - .../showtime@internal@reports@table_Separator.hrl | 1 - ...owtime@internal@reports@table_StyledContent.hrl | 1 - .../showtime@internal@reports@table_Table.hrl | 4 - .../adglent/include/showtime@tests@meta_Meta.hrl | 1 - .../adglent/include/showtime@tests@should_Eq.hrl | 5 - .../adglent/include/showtime@tests@should_Fail.hrl | 1 - .../include/showtime@tests@should_IsError.hrl | 4 - .../adglent/include/showtime@tests@should_IsOk.hrl | 4 - .../include/showtime@tests@should_NotEq.hrl | 5 - .../include/showtime@tests@test_MetaShould.hrl | 4 - .../adglent/include/showtime@tests@test_Test.hrl | 4 - .../erlang/aoc2023/_gleam_artefacts/aoc2023.cache | Bin 407 -> 0 bytes .../aoc2023/_gleam_artefacts/aoc2023.cache_meta | Bin 68 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/aoc2023.erl | 21 - .../aoc2023/_gleam_artefacts/aoc2023@@main.erl | 35 - .../aoc2023/_gleam_artefacts/aoc2023_test.cache | Bin 305 -> 0 bytes .../_gleam_artefacts/aoc2023_test.cache_meta | Bin 45 -> 0 bytes .../aoc2023/_gleam_artefacts/aoc2023_test.erl | 8 - .../_gleam_artefacts/day10@day10_test.cache | Bin 1845 -> 0 bytes .../_gleam_artefacts/day10@day10_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day10@day10_test.erl | 52 - .../aoc2023/_gleam_artefacts/day10@solve.cache | Bin 5462 -> 0 bytes .../_gleam_artefacts/day10@solve.cache_meta | Bin 168 -> 0 bytes .../aoc2023/_gleam_artefacts/day10@solve.erl | 340 - .../_gleam_artefacts/day11@day11_test.cache | Bin 1935 -> 0 bytes .../_gleam_artefacts/day11@day11_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day11@day11_test.erl | 68 - .../aoc2023/_gleam_artefacts/day11@solve.cache | Bin 2064 -> 0 bytes .../_gleam_artefacts/day11@solve.cache_meta | Bin 115 -> 0 bytes .../aoc2023/_gleam_artefacts/day11@solve.erl | 130 - .../_gleam_artefacts/day12@day12_test.cache | Bin 1730 -> 0 bytes .../_gleam_artefacts/day12@day12_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day12@day12_test.erl | 38 - .../aoc2023/_gleam_artefacts/day12@solve.cache | Bin 1777 -> 0 bytes .../_gleam_artefacts/day12@solve.cache_meta | Bin 157 -> 0 bytes .../aoc2023/_gleam_artefacts/day12@solve.erl | 145 - .../_gleam_artefacts/day13@day13_test.cache | Bin 1994 -> 0 bytes .../_gleam_artefacts/day13@day13_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day13@day13_test.erl | 88 - .../aoc2023/_gleam_artefacts/day13@solve.cache | Bin 2415 -> 0 bytes .../_gleam_artefacts/day13@solve.cache_meta | Bin 116 -> 0 bytes .../aoc2023/_gleam_artefacts/day13@solve.erl | 149 - .../_gleam_artefacts/day14@day14_test.cache | Bin 1933 -> 0 bytes .../_gleam_artefacts/day14@day14_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day14@day14_test.erl | 68 - .../aoc2023/_gleam_artefacts/day14@solve.cache | Bin 2257 -> 0 bytes .../_gleam_artefacts/day14@solve.cache_meta | Bin 152 -> 0 bytes .../aoc2023/_gleam_artefacts/day14@solve.erl | 149 - .../_gleam_artefacts/day15@day15_test.cache | Bin 1817 -> 0 bytes .../_gleam_artefacts/day15@day15_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day15@day15_test.erl | 32 - .../aoc2023/_gleam_artefacts/day15@solve.cache | Bin 3200 -> 0 bytes .../_gleam_artefacts/day15@solve.cache_meta | Bin 153 -> 0 bytes .../aoc2023/_gleam_artefacts/day15@solve.erl | 177 - .../_gleam_artefacts/day16@day16_test.cache | Bin 1915 -> 0 bytes .../_gleam_artefacts/day16@day16_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day16@day16_test.erl | 68 - .../aoc2023/_gleam_artefacts/day16@solve.cache | Bin 2445 -> 0 bytes .../_gleam_artefacts/day16@solve.cache_meta | Bin 176 -> 0 bytes .../aoc2023/_gleam_artefacts/day16@solve.erl | 253 - .../_gleam_artefacts/day17@day17_test.cache | Bin 1789 -> 0 bytes .../_gleam_artefacts/day17@day17_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day17@day17_test.erl | 52 - .../aoc2023/_gleam_artefacts/day17@solve.cache | Bin 4185 -> 0 bytes .../_gleam_artefacts/day17@solve.cache_meta | Bin 223 -> 0 bytes .../aoc2023/_gleam_artefacts/day17@solve.erl | 231 - .../_gleam_artefacts/day18@day18_test.cache | Bin 2116 -> 0 bytes .../_gleam_artefacts/day18@day18_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day18@day18_test.erl | 84 - .../aoc2023/_gleam_artefacts/day18@solve.cache | Bin 3614 -> 0 bytes .../_gleam_artefacts/day18@solve.cache_meta | Bin 154 -> 0 bytes .../aoc2023/_gleam_artefacts/day18@solve.erl | 218 - .../_gleam_artefacts/day19@day19_test.cache | Bin 2438 -> 0 bytes .../_gleam_artefacts/day19@day19_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day19@day19_test.erl | 96 - .../aoc2023/_gleam_artefacts/day19@solve.cache | Bin 9036 -> 0 bytes .../_gleam_artefacts/day19@solve.cache_meta | Bin 191 -> 0 bytes .../aoc2023/_gleam_artefacts/day19@solve.erl | 459 - .../aoc2023/_gleam_artefacts/day1@day1_test.cache | Bin 1836 -> 0 bytes .../_gleam_artefacts/day1@day1_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day1@day1_test.erl | 50 - .../aoc2023/_gleam_artefacts/day1@solve.cache | Bin 1176 -> 0 bytes .../aoc2023/_gleam_artefacts/day1@solve.cache_meta | Bin 134 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day1@solve.erl | 118 - .../_gleam_artefacts/day20@day20_test.cache | Bin 1864 -> 0 bytes .../_gleam_artefacts/day20@day20_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day20@day20_test.erl | 52 - .../aoc2023/_gleam_artefacts/day20@solve.cache | Bin 4798 -> 0 bytes .../_gleam_artefacts/day20@solve.cache_meta | Bin 153 -> 0 bytes .../aoc2023/_gleam_artefacts/day20@solve.erl | 237 - .../aoc2023/_gleam_artefacts/day2@day2_test.cache | Bin 2472 -> 0 bytes .../_gleam_artefacts/day2@day2_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day2@day2_test.erl | 54 - .../aoc2023/_gleam_artefacts/day2@solve.cache | Bin 1440 -> 0 bytes .../aoc2023/_gleam_artefacts/day2@solve.cache_meta | Bin 115 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day2@solve.erl | 166 - .../aoc2023/_gleam_artefacts/day3@day3_test.cache | Bin 1896 -> 0 bytes .../_gleam_artefacts/day3@day3_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day3@day3_test.erl | 68 - .../aoc2023/_gleam_artefacts/day3@solve.cache | Bin 5683 -> 0 bytes .../aoc2023/_gleam_artefacts/day3@solve.cache_meta | Bin 152 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day3@solve.erl | 254 - .../aoc2023/_gleam_artefacts/day4@day4_test.cache | Bin 2259 -> 0 bytes .../_gleam_artefacts/day4@day4_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day4@day4_test.erl | 52 - .../aoc2023/_gleam_artefacts/day4@solve.cache | Bin 2089 -> 0 bytes .../aoc2023/_gleam_artefacts/day4@solve.cache_meta | Bin 208 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day4@solve.erl | 169 - .../aoc2023/_gleam_artefacts/day5@day5_test.cache | Bin 2379 -> 0 bytes .../_gleam_artefacts/day5@day5_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day5@day5_test.erl | 160 - .../aoc2023/_gleam_artefacts/day5@solve.cache | Bin 5112 -> 0 bytes .../aoc2023/_gleam_artefacts/day5@solve.cache_meta | Bin 157 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day5@solve.erl | 269 - .../aoc2023/_gleam_artefacts/day6@day6_test.cache | Bin 1790 -> 0 bytes .../_gleam_artefacts/day6@day6_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day6@day6_test.erl | 36 - .../aoc2023/_gleam_artefacts/day6@solve.cache | Bin 1920 -> 0 bytes .../aoc2023/_gleam_artefacts/day6@solve.cache_meta | Bin 135 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day6@solve.erl | 131 - .../aoc2023/_gleam_artefacts/day7@day7_test.cache | Bin 1803 -> 0 bytes .../_gleam_artefacts/day7@day7_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day7@day7_test.erl | 48 - .../aoc2023/_gleam_artefacts/day7@solve.cache | Bin 3183 -> 0 bytes .../aoc2023/_gleam_artefacts/day7@solve.cache_meta | Bin 174 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day7@solve.erl | 242 - .../aoc2023/_gleam_artefacts/day8@day8_test.cache | Bin 1865 -> 0 bytes .../_gleam_artefacts/day8@day8_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day8@day8_test.erl | 58 - .../aoc2023/_gleam_artefacts/day8@solve.cache | Bin 1810 -> 0 bytes .../aoc2023/_gleam_artefacts/day8@solve.cache_meta | Bin 236 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day8@solve.erl | 179 - .../aoc2023/_gleam_artefacts/day9@day9_test.cache | Bin 1793 -> 0 bytes .../_gleam_artefacts/day9@day9_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day9@day9_test.erl | 40 - .../aoc2023/_gleam_artefacts/day9@solve.cache | Bin 1829 -> 0 bytes .../aoc2023/_gleam_artefacts/day9@solve.cache_meta | Bin 115 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/day9@solve.erl | 133 - .../aoc2023/_gleam_artefacts/gleam@@compile.erl | 157 - .../_gleam_artefacts/utilities@array2d.cache | Bin 2127 -> 0 bytes .../_gleam_artefacts/utilities@array2d.cache_meta | Bin 102 -> 0 bytes .../aoc2023/_gleam_artefacts/utilities@array2d.erl | 64 - .../aoc2023/_gleam_artefacts/utilities@memo.cache | Bin 3198 -> 0 bytes .../_gleam_artefacts/utilities@memo.cache_meta | Bin 118 -> 0 bytes .../aoc2023/_gleam_artefacts/utilities@memo.erl | 70 - .../_gleam_artefacts/utilities@prioqueue.cache | Bin 3158 -> 0 bytes .../utilities@prioqueue.cache_meta | Bin 47 -> 0 bytes .../_gleam_artefacts/utilities@prioqueue.erl | 60 - aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.app | 15 - aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.beam | Bin 1976 -> 0 bytes .../dev/erlang/aoc2023/ebin/aoc2023@@main.beam | Bin 2780 -> 0 bytes .../dev/erlang/aoc2023/ebin/aoc2023_test.beam | Bin 1088 -> 0 bytes .../dev/erlang/aoc2023/ebin/day10@day10_test.beam | Bin 2508 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day10@solve.beam | Bin 12732 -> 0 bytes .../dev/erlang/aoc2023/ebin/day11@day11_test.beam | Bin 2400 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day11@solve.beam | Bin 6228 -> 0 bytes .../dev/erlang/aoc2023/ebin/day12@day12_test.beam | Bin 2392 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day12@solve.beam | Bin 6816 -> 0 bytes .../dev/erlang/aoc2023/ebin/day13@day13_test.beam | Bin 2428 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day13@solve.beam | Bin 6624 -> 0 bytes .../dev/erlang/aoc2023/ebin/day14@day14_test.beam | Bin 2452 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day14@solve.beam | Bin 6912 -> 0 bytes .../dev/erlang/aoc2023/ebin/day15@day15_test.beam | Bin 2416 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day15@solve.beam | Bin 7676 -> 0 bytes .../dev/erlang/aoc2023/ebin/day16@day16_test.beam | Bin 2404 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day16@solve.beam | Bin 9856 -> 0 bytes .../dev/erlang/aoc2023/ebin/day17@day17_test.beam | Bin 2496 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day17@solve.beam | Bin 9700 -> 0 bytes .../dev/erlang/aoc2023/ebin/day18@day18_test.beam | Bin 2584 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day18@solve.beam | Bin 8520 -> 0 bytes .../dev/erlang/aoc2023/ebin/day19@day19_test.beam | Bin 2876 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day19@solve.beam | Bin 15476 -> 0 bytes .../dev/erlang/aoc2023/ebin/day1@day1_test.beam | Bin 2520 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day1@solve.beam | Bin 5292 -> 0 bytes .../dev/erlang/aoc2023/ebin/day20@day20_test.beam | Bin 2504 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day20@solve.beam | Bin 9516 -> 0 bytes .../dev/erlang/aoc2023/ebin/day2@day2_test.beam | Bin 2660 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day2@solve.beam | Bin 7028 -> 0 bytes .../dev/erlang/aoc2023/ebin/day3@day3_test.beam | Bin 2428 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day3@solve.beam | Bin 11296 -> 0 bytes .../dev/erlang/aoc2023/ebin/day4@day4_test.beam | Bin 2652 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day4@solve.beam | Bin 8124 -> 0 bytes .../dev/erlang/aoc2023/ebin/day5@day5_test.beam | Bin 2756 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day5@solve.beam | Bin 11140 -> 0 bytes .../dev/erlang/aoc2023/ebin/day6@day6_test.beam | Bin 2396 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day6@solve.beam | Bin 6252 -> 0 bytes .../dev/erlang/aoc2023/ebin/day7@day7_test.beam | Bin 2416 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day7@solve.beam | Bin 9700 -> 0 bytes .../dev/erlang/aoc2023/ebin/day8@day8_test.beam | Bin 2504 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day8@solve.beam | Bin 7556 -> 0 bytes .../dev/erlang/aoc2023/ebin/day9@day9_test.beam | Bin 2392 -> 0 bytes .../build/dev/erlang/aoc2023/ebin/day9@solve.beam | Bin 5652 -> 0 bytes .../dev/erlang/aoc2023/ebin/utilities@array2d.beam | Bin 3852 -> 0 bytes .../dev/erlang/aoc2023/ebin/utilities@memo.beam | Bin 4028 -> 0 bytes .../erlang/aoc2023/ebin/utilities@prioqueue.beam | Bin 3412 -> 0 bytes .../dev/erlang/aoc2023/include/day2@solve_Game.hrl | 1 - .../erlang/aoc2023/include/day5@solve_Almanac.hrl | 4 - .../erlang/aoc2023/include/day5@solve_MRange.hrl | 1 - .../erlang/aoc2023/include/day5@solve_SRange.hrl | 1 - .../aoc2023/include/utilities@array2d_Posn.hrl | 1 - .../aoc2023/include/utilities@memo_Cache.hrl | 3 - .../include/utilities@prioqueue_PriorityQueue.hrl | 4 - .../dev/erlang/gap/_gleam_artefacts/gap.cache | Bin 6090 -> 0 bytes .../dev/erlang/gap/_gleam_artefacts/gap.cache_meta | Bin 282 -> 0 bytes .../build/dev/erlang/gap/_gleam_artefacts/gap.erl | 538 - .../gap/_gleam_artefacts/gap@comparison.cache | Bin 2538 -> 0 bytes .../gap/_gleam_artefacts/gap@comparison.cache_meta | Bin 29 -> 0 bytes .../erlang/gap/_gleam_artefacts/gap@comparison.erl | 15 - .../erlang/gap/_gleam_artefacts/gap@myers.cache | Bin 4865 -> 0 bytes .../gap/_gleam_artefacts/gap@myers.cache_meta | Bin 47 -> 0 bytes .../dev/erlang/gap/_gleam_artefacts/gap@myers.erl | 156 - .../_gleam_artefacts/gap@styled_comparison.cache | Bin 946 -> 0 bytes .../gap@styled_comparison.cache_meta | Bin 29 -> 0 bytes .../gap/_gleam_artefacts/gap@styled_comparison.erl | 8 - .../erlang/gap/_gleam_artefacts/gap@styling.cache | Bin 8057 -> 0 bytes .../gap/_gleam_artefacts/gap@styling.cache_meta | Bin 166 -> 0 bytes .../erlang/gap/_gleam_artefacts/gap@styling.erl | 202 - .../dev/erlang/gap/_gleam_artefacts/gap_ffi.mjs | 431 - .../erlang/gap/_gleam_artefacts/gleam@@compile.erl | 157 - aoc2023/build/dev/erlang/gap/ebin/gap.app | 8 - aoc2023/build/dev/erlang/gap/ebin/gap.beam | Bin 15568 -> 0 bytes .../build/dev/erlang/gap/ebin/gap@comparison.beam | Bin 1052 -> 0 bytes aoc2023/build/dev/erlang/gap/ebin/gap@myers.beam | Bin 6508 -> 0 bytes .../dev/erlang/gap/ebin/gap@styled_comparison.beam | Bin 896 -> 0 bytes aoc2023/build/dev/erlang/gap/ebin/gap@styling.beam | Bin 7488 -> 0 bytes .../gap/include/gap@comparison_ListComparison.hrl | 4 - .../erlang/gap/include/gap@comparison_Match.hrl | 1 - .../erlang/gap/include/gap@comparison_NoMatch.hrl | 1 - .../include/gap@comparison_StringComparison.hrl | 4 - .../gap@styled_comparison_StyledComparison.hrl | 1 - .../dev/erlang/gap/include/gap@styling_All.hrl | 1 - .../gap/include/gap@styling_Highlighters.hrl | 5 - .../dev/erlang/gap/include/gap@styling_Part.hrl | 5 - .../dev/erlang/gap/include/gap@styling_Styling.hrl | 5 - aoc2023/build/dev/erlang/gleam.lock | 0 .../_gleam_artefacts/gleam@@compile.erl | 157 - .../_gleam_artefacts/gleam_community@ansi.cache | Bin 62995 -> 0 bytes .../gleam_community@ansi.cache_meta | Bin 114 -> 0 bytes .../_gleam_artefacts/gleam_community@ansi.erl | 263 - .../ebin/gleam_community@ansi.beam | Bin 10580 -> 0 bytes .../ebin/gleam_community_ansi.app | 8 - .../_gleam_artefacts/gleam@@compile.erl | 157 - .../_gleam_artefacts/gleam_community@colour.cache | Bin 28213 -> 0 bytes .../gleam_community@colour.cache_meta | Bin 123 -> 0 bytes .../_gleam_artefacts/gleam_community@colour.erl | 513 - .../gleam_community@colour@accessibility.cache | Bin 3149 -> 0 bytes ...gleam_community@colour@accessibility.cache_meta | Bin 96 -> 0 bytes .../gleam_community@colour@accessibility.erl | 75 - .../ebin/gleam_community@colour.beam | Bin 19736 -> 0 bytes .../ebin/gleam_community@colour@accessibility.beam | Bin 4148 -> 0 bytes .../ebin/gleam_community_colour.app | 7 - .../include/gleam_community@colour_Hsla.hrl | 1 - .../include/gleam_community@colour_Rgba.hrl | 1 - .../_gleam_artefacts/gleam@@compile.erl | 157 - .../gleam_community@maths@arithmetics.cache | Bin 14528 -> 0 bytes .../gleam_community@maths@arithmetics.cache_meta | Bin 183 -> 0 bytes .../gleam_community@maths@arithmetics.erl | 172 - .../gleam_community@maths@combinatorics.cache | Bin 8209 -> 0 bytes .../gleam_community@maths@combinatorics.cache_meta | Bin 64 -> 0 bytes .../gleam_community@maths@combinatorics.erl | 218 - .../gleam_community@maths@conversion.cache | Bin 4583 -> 0 bytes .../gleam_community@maths@conversion.cache_meta | Bin 46 -> 0 bytes .../gleam_community@maths@conversion.erl | 24 - .../gleam_community@maths@elementary.cache | Bin 30763 -> 0 bytes .../gleam_community@maths@elementary.cache_meta | Bin 66 -> 0 bytes .../gleam_community@maths@elementary.erl | 286 - .../gleam_community@maths@metrics.cache | Bin 12100 -> 0 bytes .../gleam_community@maths@metrics.cache_meta | Bin 284 -> 0 bytes .../gleam_community@maths@metrics.erl | 281 - .../gleam_community@maths@piecewise.cache | Bin 34039 -> 0 bytes .../gleam_community@maths@piecewise.cache_meta | Bin 201 -> 0 bytes .../gleam_community@maths@piecewise.erl | 563 - .../gleam_community@maths@predicates.cache | Bin 8750 -> 0 bytes .../gleam_community@maths@predicates.cache_meta | Bin 222 -> 0 bytes .../gleam_community@maths@predicates.erl | 118 - .../gleam_community@maths@sequences.cache | Bin 6486 -> 0 bytes .../gleam_community@maths@sequences.cache_meta | Bin 166 -> 0 bytes .../gleam_community@maths@sequences.erl | 202 - .../gleam_community@maths@special.cache | Bin 3907 -> 0 bytes .../gleam_community@maths@special.cache_meta | Bin 166 -> 0 bytes .../gleam_community@maths@special.erl | 163 - .../_gleam_artefacts/maths.mjs | 95 - .../ebin/gleam_community@maths@arithmetics.beam | Bin 7276 -> 0 bytes .../ebin/gleam_community@maths@combinatorics.beam | Bin 7624 -> 0 bytes .../ebin/gleam_community@maths@conversion.beam | Bin 1916 -> 0 bytes .../ebin/gleam_community@maths@elementary.beam | Bin 9320 -> 0 bytes .../ebin/gleam_community@maths@metrics.beam | Bin 9308 -> 0 bytes .../ebin/gleam_community@maths@piecewise.beam | Bin 16508 -> 0 bytes .../ebin/gleam_community@maths@predicates.beam | Bin 5584 -> 0 bytes .../ebin/gleam_community@maths@sequences.beam | Bin 7084 -> 0 bytes .../ebin/gleam_community@maths@special.beam | Bin 7656 -> 0 bytes .../ebin/gleam_community_maths.app | 7 - .../_gleam_artefacts/gleam@@compile.erl | 157 - .../_gleam_artefacts/gleam@erlang.cache | Bin 8892 -> 0 bytes .../_gleam_artefacts/gleam@erlang.cache_meta | Bin 122 -> 0 bytes .../gleam_erlang/_gleam_artefacts/gleam@erlang.erl | 90 - .../_gleam_artefacts/gleam@erlang@atom.cache | Bin 2901 -> 0 bytes .../_gleam_artefacts/gleam@erlang@atom.cache_meta | Bin 50 -> 0 bytes .../_gleam_artefacts/gleam@erlang@atom.erl | 26 - .../_gleam_artefacts/gleam@erlang@charlist.cache | Bin 869 -> 0 bytes .../gleam@erlang@charlist.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/gleam@erlang@charlist.erl | 15 - .../_gleam_artefacts/gleam@erlang@file.cache | Bin 28516 -> 0 bytes .../_gleam_artefacts/gleam@erlang@file.cache_meta | Bin 72 -> 0 bytes .../_gleam_artefacts/gleam@erlang@file.erl | 190 - .../_gleam_artefacts/gleam@erlang@node.cache | Bin 3092 -> 0 bytes .../_gleam_artefacts/gleam@erlang@node.cache_meta | Bin 54 -> 0 bytes .../_gleam_artefacts/gleam@erlang@node.erl | 33 - .../_gleam_artefacts/gleam@erlang@os.cache | Bin 3322 -> 0 bytes .../_gleam_artefacts/gleam@erlang@os.cache_meta | Bin 46 -> 0 bytes .../_gleam_artefacts/gleam@erlang@os.erl | 27 - .../_gleam_artefacts/gleam@erlang@process.cache | Bin 31558 -> 0 bytes .../gleam@erlang@process.cache_meta | Bin 115 -> 0 bytes .../_gleam_artefacts/gleam@erlang@process.erl | 374 - .../_gleam_artefacts/gleam_erlang_ffi.erl | 263 - .../dev/erlang/gleam_erlang/ebin/gleam@erlang.beam | Bin 4352 -> 0 bytes .../gleam_erlang/ebin/gleam@erlang@atom.beam | Bin 1856 -> 0 bytes .../gleam_erlang/ebin/gleam@erlang@charlist.beam | Bin 1392 -> 0 bytes .../gleam_erlang/ebin/gleam@erlang@file.beam | Bin 6008 -> 0 bytes .../gleam_erlang/ebin/gleam@erlang@node.beam | Bin 1980 -> 0 bytes .../erlang/gleam_erlang/ebin/gleam@erlang@os.beam | Bin 1836 -> 0 bytes .../gleam_erlang/ebin/gleam@erlang@process.beam | Bin 14888 -> 0 bytes .../dev/erlang/gleam_erlang/ebin/gleam_erlang.app | 7 - .../erlang/gleam_erlang/ebin/gleam_erlang_ffi.beam | Bin 13964 -> 0 bytes .../include/gleam@erlang@file_FileInfo.hrl | 15 - .../include/gleam@erlang@process_Abnormal.hrl | 1 - .../include/gleam@erlang@process_CalleeDown.hrl | 1 - .../include/gleam@erlang@process_Cancelled.hrl | 1 - .../include/gleam@erlang@process_ExitMessage.hrl | 4 - .../include/gleam@erlang@process_ProcessDown.hrl | 4 - .../gleam@erlang@process_ProcessMonitor.hrl | 1 - .../include/gleam@erlang@process_Subject.hrl | 4 - .../gleam@erlang_ApplicationFailedToStart.hrl | 4 - .../include/gleam@erlang_UnknownApplication.hrl | 1 - .../gleam_http/_gleam_artefacts/gleam@@compile.erl | 157 - .../gleam_http/_gleam_artefacts/gleam@http.cache | Bin 15491 -> 0 bytes .../_gleam_artefacts/gleam@http.cache_meta | Bin 149 -> 0 bytes .../gleam_http/_gleam_artefacts/gleam@http.erl | 626 - .../_gleam_artefacts/gleam@http@cookie.cache | Bin 4352 -> 0 bytes .../_gleam_artefacts/gleam@http@cookie.cache_meta | Bin 161 -> 0 bytes .../_gleam_artefacts/gleam@http@cookie.erl | 153 - .../_gleam_artefacts/gleam@http@request.cache | Bin 8252 -> 0 bytes .../_gleam_artefacts/gleam@http@request.cache_meta | Bin 195 -> 0 bytes .../_gleam_artefacts/gleam@http@request.erl | 202 - .../_gleam_artefacts/gleam@http@response.cache | Bin 5278 -> 0 bytes .../gleam@http@response.cache_meta | Bin 150 -> 0 bytes .../_gleam_artefacts/gleam@http@response.erl | 97 - .../_gleam_artefacts/gleam@http@service.cache | Bin 3223 -> 0 bytes .../_gleam_artefacts/gleam@http@service.cache_meta | Bin 138 -> 0 bytes .../_gleam_artefacts/gleam@http@service.erl | 82 - .../_gleam_artefacts/gleam_http_native.erl | 88 - .../_gleam_artefacts/gleam_http_native.mjs | 38 - .../dev/erlang/gleam_http/ebin/gleam@http.beam | Bin 21920 -> 0 bytes .../erlang/gleam_http/ebin/gleam@http@cookie.beam | Bin 7076 -> 0 bytes .../erlang/gleam_http/ebin/gleam@http@request.beam | Bin 8976 -> 0 bytes .../gleam_http/ebin/gleam@http@response.beam | Bin 5004 -> 0 bytes .../erlang/gleam_http/ebin/gleam@http@service.beam | Bin 4308 -> 0 bytes .../dev/erlang/gleam_http/ebin/gleam_http.app | 7 - .../erlang/gleam_http/ebin/gleam_http_native.beam | Bin 4952 -> 0 bytes .../include/gleam@http@cookie_Attributes.hrl | 8 - .../include/gleam@http@request_Request.hrl | 10 - .../include/gleam@http@response_Response.hrl | 5 - .../include/gleam@http_MoreRequiredForBody.hrl | 5 - .../include/gleam@http_MoreRequiredForHeaders.hrl | 4 - .../include/gleam@http_MultipartBody.hrl | 5 - .../include/gleam@http_MultipartHeaders.hrl | 4 - .../_gleam_artefacts/gleam@@compile.erl | 157 - .../gleam_httpc/_gleam_artefacts/gleam@httpc.cache | Bin 4263 -> 0 bytes .../_gleam_artefacts/gleam@httpc.cache_meta | Bin 199 -> 0 bytes .../gleam_httpc/_gleam_artefacts/gleam@httpc.erl | 118 - .../dev/erlang/gleam_httpc/ebin/gleam@httpc.beam | Bin 4888 -> 0 bytes .../dev/erlang/gleam_httpc/ebin/gleam_httpc.app | 10 - .../gleam_otp/_gleam_artefacts/gleam@@compile.erl | 157 - .../_gleam_artefacts/gleam@otp@actor.cache | Bin 13720 -> 0 bytes .../_gleam_artefacts/gleam@otp@actor.cache_meta | Bin 196 -> 0 bytes .../gleam_otp/_gleam_artefacts/gleam@otp@actor.erl | 273 - .../gleam@otp@intensity_tracker.cache | Bin 2475 -> 0 bytes .../gleam@otp@intensity_tracker.cache_meta | Bin 47 -> 0 bytes .../gleam@otp@intensity_tracker.erl | 53 - .../_gleam_artefacts/gleam@otp@port.cache | Bin 354 -> 0 bytes .../_gleam_artefacts/gleam@otp@port.cache_meta | Bin 29 -> 0 bytes .../gleam_otp/_gleam_artefacts/gleam@otp@port.erl | 8 - .../_gleam_artefacts/gleam@otp@supervisor.cache | Bin 16821 -> 0 bytes .../gleam@otp@supervisor.cache_meta | Bin 200 -> 0 bytes .../_gleam_artefacts/gleam@otp@supervisor.erl | 322 - .../_gleam_artefacts/gleam@otp@system.cache | Bin 5895 -> 0 bytes .../_gleam_artefacts/gleam@otp@system.cache_meta | Bin 103 -> 0 bytes .../_gleam_artefacts/gleam@otp@system.erl | 43 - .../_gleam_artefacts/gleam@otp@task.cache | Bin 4454 -> 0 bytes .../_gleam_artefacts/gleam@otp@task.cache_meta | Bin 78 -> 0 bytes .../gleam_otp/_gleam_artefacts/gleam@otp@task.erl | 111 - .../gleam_otp/_gleam_artefacts/gleam_otp.cache | Bin 728 -> 0 bytes .../_gleam_artefacts/gleam_otp.cache_meta | Bin 130 -> 0 bytes .../gleam_otp/_gleam_artefacts/gleam_otp.erl | 28 - .../_gleam_artefacts/gleam_otp_external.erl | 43 - .../dev/erlang/gleam_otp/ebin/gleam@otp@actor.beam | Bin 10924 -> 0 bytes .../ebin/gleam@otp@intensity_tracker.beam | Bin 2524 -> 0 bytes .../dev/erlang/gleam_otp/ebin/gleam@otp@port.beam | Bin 852 -> 0 bytes .../gleam_otp/ebin/gleam@otp@supervisor.beam | Bin 13040 -> 0 bytes .../erlang/gleam_otp/ebin/gleam@otp@system.beam | Bin 2044 -> 0 bytes .../dev/erlang/gleam_otp/ebin/gleam@otp@task.beam | Bin 5364 -> 0 bytes .../build/dev/erlang/gleam_otp/ebin/gleam_otp.app | 8 - .../build/dev/erlang/gleam_otp/ebin/gleam_otp.beam | Bin 2396 -> 0 bytes .../erlang/gleam_otp/ebin/gleam_otp_external.beam | Bin 3096 -> 0 bytes .../gleam_otp/include/gleam@otp@actor_Continue.hrl | 4 - .../gleam_otp/include/gleam@otp@actor_Ready.hrl | 1 - .../gleam_otp/include/gleam@otp@actor_Spec.hrl | 5 - ...leam@otp@intensity_tracker_IntensityTracker.hrl | 5 - .../include/gleam@otp@supervisor_ChildSpec.hrl | 5 - .../include/gleam@otp@supervisor_Spec.hrl | 6 - .../include/gleam@otp@system_StatusInfo.hrl | 7 - .../gleam_otp/include/gleam@otp@task_Exit.hrl | 1 - .../gleam_otp/include/gleam@otp@task_Task.hrl | 6 - .../erlang/gleam_stdlib/_gleam_artefacts/dict.mjs | 957 - .../_gleam_artefacts/gleam@@compile.erl | 157 - .../gleam_stdlib/_gleam_artefacts/gleam@base.cache | Bin 1301 -> 0 bytes .../_gleam_artefacts/gleam@base.cache_meta | Bin 52 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@base.erl | 20 - .../_gleam_artefacts/gleam@bit_array.cache | Bin 5024 -> 0 bytes .../_gleam_artefacts/gleam@bit_array.cache_meta | Bin 49 -> 0 bytes .../_gleam_artefacts/gleam@bit_array.erl | 102 - .../_gleam_artefacts/gleam@bit_builder.cache | Bin 4262 -> 0 bytes .../_gleam_artefacts/gleam@bit_builder.cache_meta | Bin 84 -> 0 bytes .../_gleam_artefacts/gleam@bit_builder.erl | 66 - .../_gleam_artefacts/gleam@bit_string.cache | Bin 2010 -> 0 bytes .../_gleam_artefacts/gleam@bit_string.cache_meta | Bin 52 -> 0 bytes .../_gleam_artefacts/gleam@bit_string.erl | 33 - .../gleam_stdlib/_gleam_artefacts/gleam@bool.cache | Bin 7175 -> 0 bytes .../_gleam_artefacts/gleam@bool.cache_meta | Bin 48 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@bool.erl | 162 - .../_gleam_artefacts/gleam@bytes_builder.cache | Bin 6338 -> 0 bytes .../gleam@bytes_builder.cache_meta | Bin 98 -> 0 bytes .../_gleam_artefacts/gleam@bytes_builder.erl | 87 - .../gleam_stdlib/_gleam_artefacts/gleam@dict.cache | Bin 12361 -> 0 bytes .../_gleam_artefacts/gleam@dict.cache_meta | Bin 49 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@dict.erl | 97 - .../_gleam_artefacts/gleam@dynamic.cache | Bin 49464 -> 0 bytes .../_gleam_artefacts/gleam@dynamic.cache_meta | Bin 173 -> 0 bytes .../_gleam_artefacts/gleam@dynamic.erl | 808 - .../_gleam_artefacts/gleam@float.cache | Bin 11445 -> 0 bytes .../_gleam_artefacts/gleam@float.cache_meta | Bin 48 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@float.erl | 181 - .../_gleam_artefacts/gleam@function.cache | Bin 5886 -> 0 bytes .../_gleam_artefacts/gleam@function.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/gleam@function.erl | 67 - .../gleam_stdlib/_gleam_artefacts/gleam@int.cache | Bin 18217 -> 0 bytes .../_gleam_artefacts/gleam@int.cache_meta | Bin 67 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@int.erl | 332 - .../gleam_stdlib/_gleam_artefacts/gleam@io.cache | Bin 2936 -> 0 bytes .../_gleam_artefacts/gleam@io.cache_meta | Bin 49 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@io.erl | 27 - .../_gleam_artefacts/gleam@iterator.cache | Bin 38553 -> 0 bytes .../_gleam_artefacts/gleam@iterator.cache_meta | Bin 141 -> 0 bytes .../_gleam_artefacts/gleam@iterator.erl | 744 - .../gleam_stdlib/_gleam_artefacts/gleam@list.cache | Bin 46380 -> 0 bytes .../_gleam_artefacts/gleam@list.cache_meta | Bin 120 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@list.erl | 1129 - .../gleam_stdlib/_gleam_artefacts/gleam@map.cache | Bin 4822 -> 0 bytes .../_gleam_artefacts/gleam@map.cache_meta | Bin 67 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@map.erl | 76 - .../_gleam_artefacts/gleam@option.cache | Bin 7384 -> 0 bytes .../_gleam_artefacts/gleam@option.cache_meta | Bin 29 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@option.erl | 147 - .../_gleam_artefacts/gleam@order.cache | Bin 2807 -> 0 bytes .../_gleam_artefacts/gleam@order.cache_meta | Bin 29 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@order.erl | 79 - .../gleam_stdlib/_gleam_artefacts/gleam@pair.cache | Bin 1961 -> 0 bytes .../_gleam_artefacts/gleam@pair.cache_meta | Bin 29 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@pair.erl | 33 - .../_gleam_artefacts/gleam@queue.cache | Bin 7180 -> 0 bytes .../_gleam_artefacts/gleam@queue.cache_meta | Bin 47 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@queue.erl | 121 - .../_gleam_artefacts/gleam@regex.cache | Bin 6990 -> 0 bytes .../_gleam_artefacts/gleam@regex.cache_meta | Bin 49 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@regex.erl | 33 - .../_gleam_artefacts/gleam@result.cache | Bin 10484 -> 0 bytes .../_gleam_artefacts/gleam@result.cache_meta | Bin 47 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@result.erl | 201 - .../gleam_stdlib/_gleam_artefacts/gleam@set.cache | Bin 6575 -> 0 bytes .../_gleam_artefacts/gleam@set.cache_meta | Bin 85 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@set.erl | 85 - .../_gleam_artefacts/gleam@string.cache | Bin 21819 -> 0 bytes .../_gleam_artefacts/gleam@string.cache_meta | Bin 136 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@string.erl | 352 - .../_gleam_artefacts/gleam@string_builder.cache | Bin 10653 -> 0 bytes .../gleam@string_builder.cache_meta | Bin 47 -> 0 bytes .../_gleam_artefacts/gleam@string_builder.erl | 91 - .../gleam_stdlib/_gleam_artefacts/gleam@uri.cache | Bin 8323 -> 0 bytes .../_gleam_artefacts/gleam@uri.cache_meta | Bin 132 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@uri.erl | 252 - .../gleam_stdlib/_gleam_artefacts/gleam_stdlib.erl | 529 - .../gleam_stdlib/_gleam_artefacts/gleam_stdlib.mjs | 875 - .../dev/erlang/gleam_stdlib/ebin/gleam@base.beam | Bin 1720 -> 0 bytes .../erlang/gleam_stdlib/ebin/gleam@bit_array.beam | Bin 4696 -> 0 bytes .../gleam_stdlib/ebin/gleam@bit_builder.beam | Bin 3308 -> 0 bytes .../erlang/gleam_stdlib/ebin/gleam@bit_string.beam | Bin 2184 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@bool.beam | Bin 4008 -> 0 bytes .../gleam_stdlib/ebin/gleam@bytes_builder.beam | Bin 3760 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@dict.beam | Bin 4712 -> 0 bytes .../erlang/gleam_stdlib/ebin/gleam@dynamic.beam | Bin 32632 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@float.beam | Bin 6128 -> 0 bytes .../erlang/gleam_stdlib/ebin/gleam@function.beam | Bin 5500 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@int.beam | Bin 9888 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@io.beam | Bin 1748 -> 0 bytes .../erlang/gleam_stdlib/ebin/gleam@iterator.beam | Bin 28416 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@list.beam | Bin 34500 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@map.beam | Bin 4092 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@option.beam | Bin 4560 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@order.beam | Bin 2384 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@pair.beam | Bin 2024 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@queue.beam | Bin 5332 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@regex.beam | Bin 2116 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@result.beam | Bin 6868 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@set.beam | Bin 4772 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@string.beam | Bin 12480 -> 0 bytes .../gleam_stdlib/ebin/gleam@string_builder.beam | Bin 4152 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam@uri.beam | Bin 9524 -> 0 bytes .../dev/erlang/gleam_stdlib/ebin/gleam_stdlib.app | 7 - .../dev/erlang/gleam_stdlib/ebin/gleam_stdlib.beam | Bin 28356 -> 0 bytes .../include/gleam@dynamic_DecodeError.hrl | 5 - .../include/gleam@iterator_Iterator.hrl | 1 - .../gleam_stdlib/include/gleam@iterator_Next.hrl | 1 - .../gleam_stdlib/include/gleam@queue_Queue.hrl | 1 - .../include/gleam@regex_CompileError.hrl | 1 - .../gleam_stdlib/include/gleam@regex_Match.hrl | 4 - .../gleam_stdlib/include/gleam@regex_Options.hrl | 1 - .../erlang/gleam_stdlib/include/gleam@set_Set.hrl | 1 - .../erlang/gleam_stdlib/include/gleam@uri_Uri.hrl | 9 - aoc2023/build/dev/erlang/gleam_version | 1 - .../glint/_gleam_artefacts/gleam@@compile.erl | 157 - .../dev/erlang/glint/_gleam_artefacts/glint.cache | Bin 18783 -> 0 bytes .../erlang/glint/_gleam_artefacts/glint.cache_meta | Bin 278 -> 0 bytes .../dev/erlang/glint/_gleam_artefacts/glint.erl | 513 - .../erlang/glint/_gleam_artefacts/glint@flag.cache | Bin 20298 -> 0 bytes .../glint/_gleam_artefacts/glint@flag.cache_meta | Bin 214 -> 0 bytes .../erlang/glint/_gleam_artefacts/glint@flag.erl | 523 - .../_gleam_artefacts/glint@flag@constraint.cache | Bin 1675 -> 0 bytes .../glint@flag@constraint.cache_meta | Bin 116 -> 0 bytes .../_gleam_artefacts/glint@flag@constraint.erl | 68 - aoc2023/build/dev/erlang/glint/ebin/glint.app | 10 - aoc2023/build/dev/erlang/glint/ebin/glint.beam | Bin 20208 -> 0 bytes .../build/dev/erlang/glint/ebin/glint@flag.beam | Bin 22116 -> 0 bytes .../erlang/glint/ebin/glint@flag@constraint.beam | Bin 3976 -> 0 bytes .../dev/erlang/glint/include/glint@flag_Flag.hrl | 1 - .../glint/include/glint@flag_FlagBuilder.hrl | 6 - .../erlang/glint/include/glint@flag_Internal.hrl | 4 - .../dev/erlang/glint/include/glint_Command.hrl | 5 - .../erlang/glint/include/glint_CommandInput.hrl | 4 - .../dev/erlang/glint/include/glint_Config.hrl | 4 - .../build/dev/erlang/glint/include/glint_Glint.hrl | 5 - .../dev/erlang/glint/include/glint_PrettyHelp.hrl | 5 - .../build/dev/erlang/glint/include/glint_Stub.hrl | 6 - aoc2023/build/dev/erlang/pqueue/LICENSE | 21 - aoc2023/build/dev/erlang/pqueue/README.markdown | 31 - .../prod/lib/.rebar3/rebar_compiler_erl/source.dag | Bin 492 -> 0 bytes aoc2023/build/dev/erlang/pqueue/doc/edoc-info | 3 - aoc2023/build/dev/erlang/pqueue/doc/erlang.png | Bin 2109 -> 0 bytes aoc2023/build/dev/erlang/pqueue/doc/index.html | 17 - .../build/dev/erlang/pqueue/doc/modules-frame.html | 15 - .../dev/erlang/pqueue/doc/overview-summary.html | 16 - aoc2023/build/dev/erlang/pqueue/doc/pqueue.html | 166 - aoc2023/build/dev/erlang/pqueue/doc/pqueue2.html | 143 - aoc2023/build/dev/erlang/pqueue/doc/pqueue3.html | 162 - aoc2023/build/dev/erlang/pqueue/doc/pqueue4.html | 205 - aoc2023/build/dev/erlang/pqueue/doc/stylesheet.css | 55 - aoc2023/build/dev/erlang/pqueue/ebin/pqueue.app | 6 - aoc2023/build/dev/erlang/pqueue/ebin/pqueue.beam | Bin 87040 -> 0 bytes aoc2023/build/dev/erlang/pqueue/ebin/pqueue2.beam | Bin 21608 -> 0 bytes aoc2023/build/dev/erlang/pqueue/ebin/pqueue3.beam | Bin 14272 -> 0 bytes aoc2023/build/dev/erlang/pqueue/ebin/pqueue4.beam | Bin 1219668 -> 0 bytes aoc2023/build/dev/erlang/pqueue/rebar.config | 14 - aoc2023/build/dev/erlang/pqueue/src/pqueue.app.src | 10 - aoc2023/build/dev/erlang/pqueue/src/pqueue.erl | 2246 - aoc2023/build/dev/erlang/pqueue/src/pqueue2.erl | 483 - aoc2023/build/dev/erlang/pqueue/src/pqueue3.erl | 404 - aoc2023/build/dev/erlang/pqueue/src/pqueue4.erl | 11662 ---- .../build/dev/erlang/pqueue/src/pqueue_test.hrl | 49 - .../build/dev/erlang/pqueue/test/pqueue_proper.erl | 156 - aoc2023/build/dev/erlang/pqueue/test/queue_srv.erl | 183 - .../simplifile/_gleam_artefacts/gleam@@compile.erl | 157 - .../simplifile/_gleam_artefacts/simplifile.cache | Bin 20340 -> 0 bytes .../_gleam_artefacts/simplifile.cache_meta | Bin 110 -> 0 bytes .../simplifile/_gleam_artefacts/simplifile.erl | 287 - .../simplifile/_gleam_artefacts/simplifile_erl.erl | 70 - .../simplifile/_gleam_artefacts/simplifile_js.mjs | 102 - .../dev/erlang/simplifile/ebin/simplifile.app | 7 - .../dev/erlang/simplifile/ebin/simplifile.beam | Bin 10420 -> 0 bytes .../dev/erlang/simplifile/ebin/simplifile_erl.beam | Bin 4536 -> 0 bytes .../snag/_gleam_artefacts/gleam@@compile.erl | 157 - .../dev/erlang/snag/_gleam_artefacts/snag.cache | Bin 3753 -> 0 bytes .../erlang/snag/_gleam_artefacts/snag.cache_meta | Bin 125 -> 0 bytes .../dev/erlang/snag/_gleam_artefacts/snag.erl | 74 - aoc2023/build/dev/erlang/snag/ebin/snag.app | 7 - aoc2023/build/dev/erlang/snag/ebin/snag.beam | Bin 3648 -> 0 bytes .../build/dev/erlang/snag/include/snag_Snag.hrl | 1 - .../erlang/tom/_gleam_artefacts/gleam@@compile.erl | 157 - .../dev/erlang/tom/_gleam_artefacts/tom.cache | Bin 33321 -> 0 bytes .../dev/erlang/tom/_gleam_artefacts/tom.cache_meta | Bin 140 -> 0 bytes .../build/dev/erlang/tom/_gleam_artefacts/tom.erl | 2142 - aoc2023/build/dev/erlang/tom/ebin/tom.app | 7 - aoc2023/build/dev/erlang/tom/ebin/tom.beam | Bin 70968 -> 0 bytes .../dev/erlang/tom/include/tom_DateTimeValue.hrl | 5 - .../build/dev/erlang/tom/include/tom_DateValue.hrl | 1 - .../dev/erlang/tom/include/tom_KeyAlreadyInUse.hrl | 1 - .../build/dev/erlang/tom/include/tom_NotFound.hrl | 1 - .../build/dev/erlang/tom/include/tom_Offset.hrl | 5 - .../build/dev/erlang/tom/include/tom_TimeValue.hrl | 6 - .../dev/erlang/tom/include/tom_Unexpected.hrl | 1 - .../build/dev/erlang/tom/include/tom_WrongType.hrl | 5 - aoc2023/build/dev/javascript/gleam.lock | 0 .../erlang/adglent/_gleam_artefacts/adglent.cache | Bin 2397 -> 0 bytes .../adglent/_gleam_artefacts/adglent.cache_meta | Bin 85 -> 0 bytes .../adglent/_gleam_artefacts/adglent@day.cache | Bin 583 -> 0 bytes .../_gleam_artefacts/adglent@day.cache_meta | Bin 293 -> 0 bytes .../adglent/_gleam_artefacts/adglent@init.cache | Bin 581 -> 0 bytes .../_gleam_artefacts/adglent@init.cache_meta | Bin 231 -> 0 bytes .../adglent/_gleam_artefacts/priv@aoc_client.cache | Bin 468 -> 0 bytes .../_gleam_artefacts/priv@aoc_client.cache_meta | Bin 131 -> 0 bytes .../adglent/_gleam_artefacts/priv@errors.cache | Bin 1514 -> 0 bytes .../_gleam_artefacts/priv@errors.cache_meta | Bin 85 -> 0 bytes .../adglent/_gleam_artefacts/priv@prompt.cache | Bin 1512 -> 0 bytes .../_gleam_artefacts/priv@prompt.cache_meta | Bin 69 -> 0 bytes .../adglent/_gleam_artefacts/priv@template.cache | Bin 438 -> 0 bytes .../_gleam_artefacts/priv@template.cache_meta | Bin 67 -> 0 bytes .../_gleam_artefacts/priv@templates@solution.cache | Bin 818 -> 0 bytes .../priv@templates@solution.cache_meta | Bin 29 -> 0 bytes .../priv@templates@test_main.cache | Bin 380 -> 0 bytes .../priv@templates@test_main.cache_meta | Bin 29 -> 0 bytes .../priv@templates@testfile_gleeunit.cache | Bin 1293 -> 0 bytes .../priv@templates@testfile_gleeunit.cache_meta | Bin 29 -> 0 bytes .../priv@templates@testfile_showtime.cache | Bin 1300 -> 0 bytes .../priv@templates@testfile_showtime.cache_meta | Bin 29 -> 0 bytes .../adglent/_gleam_artefacts/priv@toml.cache | Bin 1712 -> 0 bytes .../adglent/_gleam_artefacts/priv@toml.cache_meta | Bin 60 -> 0 bytes .../erlang/adglent/_gleam_artefacts/showtime.cache | Bin 1068 -> 0 bytes .../adglent/_gleam_artefacts/showtime.cache_meta | Bin 439 -> 0 bytes .../showtime@internal@common@cli.cache | Bin 879 -> 0 bytes .../showtime@internal@common@cli.cache_meta | Bin 29 -> 0 bytes ...time@internal@common@common_event_handler.cache | Bin 3269 -> 0 bytes ...internal@common@common_event_handler.cache_meta | Bin 89 -> 0 bytes .../showtime@internal@common@test_result.cache | Bin 15268 -> 0 bytes ...showtime@internal@common@test_result.cache_meta | Bin 67 -> 0 bytes .../showtime@internal@common@test_suite.cache | Bin 8896 -> 0 bytes .../showtime@internal@common@test_suite.cache_meta | Bin 129 -> 0 bytes .../showtime@internal@erlang@discover.cache | Bin 1929 -> 0 bytes .../showtime@internal@erlang@discover.cache_meta | Bin 227 -> 0 bytes .../showtime@internal@erlang@event_handler.cache | Bin 1538 -> 0 bytes ...owtime@internal@erlang@event_handler.cache_meta | Bin 292 -> 0 bytes .../showtime@internal@erlang@module_handler.cache | Bin 1135 -> 0 bytes ...wtime@internal@erlang@module_handler.cache_meta | Bin 179 -> 0 bytes .../showtime@internal@erlang@runner.cache | Bin 1642 -> 0 bytes .../showtime@internal@erlang@runner.cache_meta | Bin 195 -> 0 bytes .../showtime@internal@reports@compare.cache | Bin 479 -> 0 bytes .../showtime@internal@reports@compare.cache_meta | Bin 140 -> 0 bytes .../showtime@internal@reports@formatter.cache | Bin 5112 -> 0 bytes .../showtime@internal@reports@formatter.cache_meta | Bin 421 -> 0 bytes .../showtime@internal@reports@styles.cache | Bin 3189 -> 0 bytes .../showtime@internal@reports@styles.cache_meta | Bin 118 -> 0 bytes .../showtime@internal@reports@table.cache | Bin 5512 -> 0 bytes .../showtime@internal@reports@table.cache_meta | Bin 144 -> 0 bytes .../_gleam_artefacts/showtime@tests@meta.cache | Bin 899 -> 0 bytes .../showtime@tests@meta.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/showtime@tests@should.cache | Bin 5540 -> 0 bytes .../showtime@tests@should.cache_meta | Bin 76 -> 0 bytes .../_gleam_artefacts/showtime@tests@test.cache | Bin 3672 -> 0 bytes .../showtime@tests@test.cache_meta | Bin 101 -> 0 bytes .../erlang/aoc2023/_gleam_artefacts/aoc2023.cache | Bin 407 -> 0 bytes .../aoc2023/_gleam_artefacts/aoc2023.cache_meta | Bin 68 -> 0 bytes .../aoc2023/_gleam_artefacts/aoc2023_test.cache | Bin 305 -> 0 bytes .../_gleam_artefacts/aoc2023_test.cache_meta | Bin 45 -> 0 bytes .../_gleam_artefacts/day10@day10_test.cache | Bin 1847 -> 0 bytes .../_gleam_artefacts/day10@day10_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day10@solve.cache | Bin 5449 -> 0 bytes .../_gleam_artefacts/day10@solve.cache_meta | Bin 168 -> 0 bytes .../_gleam_artefacts/day11@day11_test.cache | Bin 1935 -> 0 bytes .../_gleam_artefacts/day11@day11_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day11@solve.cache | Bin 2063 -> 0 bytes .../_gleam_artefacts/day11@solve.cache_meta | Bin 115 -> 0 bytes .../_gleam_artefacts/day12@day12_test.cache | Bin 1730 -> 0 bytes .../_gleam_artefacts/day12@day12_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day12@solve.cache | Bin 1777 -> 0 bytes .../_gleam_artefacts/day12@solve.cache_meta | Bin 157 -> 0 bytes .../_gleam_artefacts/day13@day13_test.cache | Bin 1996 -> 0 bytes .../_gleam_artefacts/day13@day13_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day13@solve.cache | Bin 2417 -> 0 bytes .../_gleam_artefacts/day13@solve.cache_meta | Bin 116 -> 0 bytes .../_gleam_artefacts/day14@day14_test.cache | Bin 1931 -> 0 bytes .../_gleam_artefacts/day14@day14_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day14@solve.cache | Bin 2257 -> 0 bytes .../_gleam_artefacts/day14@solve.cache_meta | Bin 152 -> 0 bytes .../_gleam_artefacts/day15@day15_test.cache | Bin 1819 -> 0 bytes .../_gleam_artefacts/day15@day15_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day15@solve.cache | Bin 3206 -> 0 bytes .../_gleam_artefacts/day15@solve.cache_meta | Bin 153 -> 0 bytes .../_gleam_artefacts/day16@day16_test.cache | Bin 1914 -> 0 bytes .../_gleam_artefacts/day16@day16_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day16@solve.cache | Bin 2442 -> 0 bytes .../_gleam_artefacts/day16@solve.cache_meta | Bin 176 -> 0 bytes .../_gleam_artefacts/day17@day17_test.cache | Bin 1789 -> 0 bytes .../_gleam_artefacts/day17@day17_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day17@solve.cache | Bin 4203 -> 0 bytes .../_gleam_artefacts/day17@solve.cache_meta | Bin 223 -> 0 bytes .../_gleam_artefacts/day18@day18_test.cache | Bin 2116 -> 0 bytes .../_gleam_artefacts/day18@day18_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day18@solve.cache | Bin 3614 -> 0 bytes .../_gleam_artefacts/day18@solve.cache_meta | Bin 154 -> 0 bytes .../_gleam_artefacts/day19@day19_test.cache | Bin 2440 -> 0 bytes .../_gleam_artefacts/day19@day19_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day19@solve.cache | Bin 9029 -> 0 bytes .../_gleam_artefacts/day19@solve.cache_meta | Bin 191 -> 0 bytes .../aoc2023/_gleam_artefacts/day1@day1_test.cache | Bin 1836 -> 0 bytes .../_gleam_artefacts/day1@day1_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day1@solve.cache | Bin 1176 -> 0 bytes .../aoc2023/_gleam_artefacts/day1@solve.cache_meta | Bin 134 -> 0 bytes .../_gleam_artefacts/day20@day20_test.cache | Bin 1864 -> 0 bytes .../_gleam_artefacts/day20@day20_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day20@solve.cache | Bin 6718 -> 0 bytes .../_gleam_artefacts/day20@solve.cache_meta | Bin 192 -> 0 bytes .../_gleam_artefacts/day21@day21_test.cache | Bin 1500 -> 0 bytes .../_gleam_artefacts/day21@day21_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day21@solve.cache | Bin 551 -> 0 bytes .../_gleam_artefacts/day21@solve.cache_meta | Bin 60 -> 0 bytes .../_gleam_artefacts/day22@day22_test.cache | Bin 1850 -> 0 bytes .../_gleam_artefacts/day22@day22_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day22@solve.cache | Bin 6239 -> 0 bytes .../_gleam_artefacts/day22@solve.cache_meta | Bin 227 -> 0 bytes .../_gleam_artefacts/day23@day23_test.cache | Bin 2795 -> 0 bytes .../_gleam_artefacts/day23@day23_test.cache_meta | Bin 110 -> 0 bytes .../aoc2023/_gleam_artefacts/day23@solve.cache | Bin 5955 -> 0 bytes .../_gleam_artefacts/day23@solve.cache_meta | Bin 213 -> 0 bytes .../aoc2023/_gleam_artefacts/day2@day2_test.cache | Bin 2474 -> 0 bytes .../_gleam_artefacts/day2@day2_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day2@solve.cache | Bin 1442 -> 0 bytes .../aoc2023/_gleam_artefacts/day2@solve.cache_meta | Bin 115 -> 0 bytes .../aoc2023/_gleam_artefacts/day3@day3_test.cache | Bin 1898 -> 0 bytes .../_gleam_artefacts/day3@day3_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day3@solve.cache | Bin 5669 -> 0 bytes .../aoc2023/_gleam_artefacts/day3@solve.cache_meta | Bin 152 -> 0 bytes .../aoc2023/_gleam_artefacts/day4@day4_test.cache | Bin 2259 -> 0 bytes .../_gleam_artefacts/day4@day4_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day4@solve.cache | Bin 2090 -> 0 bytes .../aoc2023/_gleam_artefacts/day4@solve.cache_meta | Bin 208 -> 0 bytes .../aoc2023/_gleam_artefacts/day5@day5_test.cache | Bin 2381 -> 0 bytes .../_gleam_artefacts/day5@day5_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day5@solve.cache | Bin 5112 -> 0 bytes .../aoc2023/_gleam_artefacts/day5@solve.cache_meta | Bin 157 -> 0 bytes .../aoc2023/_gleam_artefacts/day6@day6_test.cache | Bin 1790 -> 0 bytes .../_gleam_artefacts/day6@day6_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day6@solve.cache | Bin 1922 -> 0 bytes .../aoc2023/_gleam_artefacts/day6@solve.cache_meta | Bin 135 -> 0 bytes .../aoc2023/_gleam_artefacts/day7@day7_test.cache | Bin 1803 -> 0 bytes .../_gleam_artefacts/day7@day7_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day7@solve.cache | Bin 3185 -> 0 bytes .../aoc2023/_gleam_artefacts/day7@solve.cache_meta | Bin 174 -> 0 bytes .../aoc2023/_gleam_artefacts/day8@day8_test.cache | Bin 1865 -> 0 bytes .../_gleam_artefacts/day8@day8_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day8@solve.cache | Bin 1810 -> 0 bytes .../aoc2023/_gleam_artefacts/day8@solve.cache_meta | Bin 236 -> 0 bytes .../aoc2023/_gleam_artefacts/day9@day9_test.cache | Bin 1791 -> 0 bytes .../_gleam_artefacts/day9@day9_test.cache_meta | Bin 109 -> 0 bytes .../aoc2023/_gleam_artefacts/day9@solve.cache | Bin 1830 -> 0 bytes .../aoc2023/_gleam_artefacts/day9@solve.cache_meta | Bin 115 -> 0 bytes .../_gleam_artefacts/utilities@array2d.cache | Bin 3025 -> 0 bytes .../_gleam_artefacts/utilities@array2d.cache_meta | Bin 122 -> 0 bytes .../aoc2023/_gleam_artefacts/utilities@memo.cache | Bin 3200 -> 0 bytes .../_gleam_artefacts/utilities@memo.cache_meta | Bin 118 -> 0 bytes .../_gleam_artefacts/utilities@prioqueue.cache | Bin 3154 -> 0 bytes .../utilities@prioqueue.cache_meta | Bin 47 -> 0 bytes .../lsp/erlang/gap/_gleam_artefacts/gap.cache | Bin 6093 -> 0 bytes .../lsp/erlang/gap/_gleam_artefacts/gap.cache_meta | Bin 282 -> 0 bytes .../gap/_gleam_artefacts/gap@comparison.cache | Bin 2544 -> 0 bytes .../gap/_gleam_artefacts/gap@comparison.cache_meta | Bin 29 -> 0 bytes .../erlang/gap/_gleam_artefacts/gap@myers.cache | Bin 4862 -> 0 bytes .../gap/_gleam_artefacts/gap@myers.cache_meta | Bin 47 -> 0 bytes .../_gleam_artefacts/gap@styled_comparison.cache | Bin 946 -> 0 bytes .../gap@styled_comparison.cache_meta | Bin 29 -> 0 bytes .../erlang/gap/_gleam_artefacts/gap@styling.cache | Bin 8073 -> 0 bytes .../gap/_gleam_artefacts/gap@styling.cache_meta | Bin 166 -> 0 bytes aoc2023/build/lsp/erlang/gleam.lock | 0 .../_gleam_artefacts/gleam_community@ansi.cache | Bin 62994 -> 0 bytes .../gleam_community@ansi.cache_meta | Bin 114 -> 0 bytes .../_gleam_artefacts/gleam_community@colour.cache | Bin 28196 -> 0 bytes .../gleam_community@colour.cache_meta | Bin 123 -> 0 bytes .../gleam_community@colour@accessibility.cache | Bin 3151 -> 0 bytes ...gleam_community@colour@accessibility.cache_meta | Bin 96 -> 0 bytes .../gleam_community@maths@arithmetics.cache | Bin 14527 -> 0 bytes .../gleam_community@maths@arithmetics.cache_meta | Bin 183 -> 0 bytes .../gleam_community@maths@combinatorics.cache | Bin 8209 -> 0 bytes .../gleam_community@maths@combinatorics.cache_meta | Bin 64 -> 0 bytes .../gleam_community@maths@conversion.cache | Bin 4583 -> 0 bytes .../gleam_community@maths@conversion.cache_meta | Bin 46 -> 0 bytes .../gleam_community@maths@elementary.cache | Bin 30776 -> 0 bytes .../gleam_community@maths@elementary.cache_meta | Bin 66 -> 0 bytes .../gleam_community@maths@metrics.cache | Bin 12100 -> 0 bytes .../gleam_community@maths@metrics.cache_meta | Bin 284 -> 0 bytes .../gleam_community@maths@piecewise.cache | Bin 34044 -> 0 bytes .../gleam_community@maths@piecewise.cache_meta | Bin 201 -> 0 bytes .../gleam_community@maths@predicates.cache | Bin 8778 -> 0 bytes .../gleam_community@maths@predicates.cache_meta | Bin 222 -> 0 bytes .../gleam_community@maths@sequences.cache | Bin 6493 -> 0 bytes .../gleam_community@maths@sequences.cache_meta | Bin 166 -> 0 bytes .../gleam_community@maths@special.cache | Bin 3907 -> 0 bytes .../gleam_community@maths@special.cache_meta | Bin 166 -> 0 bytes .../_gleam_artefacts/gleam@erlang.cache | Bin 8918 -> 0 bytes .../_gleam_artefacts/gleam@erlang.cache_meta | Bin 122 -> 0 bytes .../_gleam_artefacts/gleam@erlang@atom.cache | Bin 2901 -> 0 bytes .../_gleam_artefacts/gleam@erlang@atom.cache_meta | Bin 50 -> 0 bytes .../_gleam_artefacts/gleam@erlang@charlist.cache | Bin 869 -> 0 bytes .../gleam@erlang@charlist.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/gleam@erlang@file.cache | Bin 28539 -> 0 bytes .../_gleam_artefacts/gleam@erlang@file.cache_meta | Bin 72 -> 0 bytes .../_gleam_artefacts/gleam@erlang@node.cache | Bin 3094 -> 0 bytes .../_gleam_artefacts/gleam@erlang@node.cache_meta | Bin 54 -> 0 bytes .../_gleam_artefacts/gleam@erlang@os.cache | Bin 3322 -> 0 bytes .../_gleam_artefacts/gleam@erlang@os.cache_meta | Bin 46 -> 0 bytes .../_gleam_artefacts/gleam@erlang@process.cache | Bin 31555 -> 0 bytes .../gleam@erlang@process.cache_meta | Bin 115 -> 0 bytes .../gleam_http/_gleam_artefacts/gleam@http.cache | Bin 15465 -> 0 bytes .../_gleam_artefacts/gleam@http.cache_meta | Bin 149 -> 0 bytes .../_gleam_artefacts/gleam@http@cookie.cache | Bin 4344 -> 0 bytes .../_gleam_artefacts/gleam@http@cookie.cache_meta | Bin 161 -> 0 bytes .../_gleam_artefacts/gleam@http@request.cache | Bin 8254 -> 0 bytes .../_gleam_artefacts/gleam@http@request.cache_meta | Bin 195 -> 0 bytes .../_gleam_artefacts/gleam@http@response.cache | Bin 5271 -> 0 bytes .../gleam@http@response.cache_meta | Bin 150 -> 0 bytes .../_gleam_artefacts/gleam@http@service.cache | Bin 3225 -> 0 bytes .../_gleam_artefacts/gleam@http@service.cache_meta | Bin 138 -> 0 bytes .../gleam_httpc/_gleam_artefacts/gleam@httpc.cache | Bin 4263 -> 0 bytes .../_gleam_artefacts/gleam@httpc.cache_meta | Bin 199 -> 0 bytes .../_gleam_artefacts/gleam@otp@actor.cache | Bin 13713 -> 0 bytes .../_gleam_artefacts/gleam@otp@actor.cache_meta | Bin 196 -> 0 bytes .../gleam@otp@intensity_tracker.cache | Bin 2473 -> 0 bytes .../gleam@otp@intensity_tracker.cache_meta | Bin 47 -> 0 bytes .../_gleam_artefacts/gleam@otp@port.cache | Bin 354 -> 0 bytes .../_gleam_artefacts/gleam@otp@port.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/gleam@otp@supervisor.cache | Bin 16820 -> 0 bytes .../gleam@otp@supervisor.cache_meta | Bin 200 -> 0 bytes .../_gleam_artefacts/gleam@otp@system.cache | Bin 5899 -> 0 bytes .../_gleam_artefacts/gleam@otp@system.cache_meta | Bin 103 -> 0 bytes .../_gleam_artefacts/gleam@otp@task.cache | Bin 4453 -> 0 bytes .../_gleam_artefacts/gleam@otp@task.cache_meta | Bin 78 -> 0 bytes .../gleam_otp/_gleam_artefacts/gleam_otp.cache | Bin 728 -> 0 bytes .../_gleam_artefacts/gleam_otp.cache_meta | Bin 130 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@base.cache | Bin 1301 -> 0 bytes .../_gleam_artefacts/gleam@base.cache_meta | Bin 52 -> 0 bytes .../_gleam_artefacts/gleam@bit_array.cache | Bin 5029 -> 0 bytes .../_gleam_artefacts/gleam@bit_array.cache_meta | Bin 49 -> 0 bytes .../_gleam_artefacts/gleam@bit_builder.cache | Bin 4262 -> 0 bytes .../_gleam_artefacts/gleam@bit_builder.cache_meta | Bin 84 -> 0 bytes .../_gleam_artefacts/gleam@bit_string.cache | Bin 2010 -> 0 bytes .../_gleam_artefacts/gleam@bit_string.cache_meta | Bin 52 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@bool.cache | Bin 7182 -> 0 bytes .../_gleam_artefacts/gleam@bool.cache_meta | Bin 48 -> 0 bytes .../_gleam_artefacts/gleam@bytes_builder.cache | Bin 6332 -> 0 bytes .../gleam@bytes_builder.cache_meta | Bin 98 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@dict.cache | Bin 12366 -> 0 bytes .../_gleam_artefacts/gleam@dict.cache_meta | Bin 49 -> 0 bytes .../_gleam_artefacts/gleam@dynamic.cache | Bin 49488 -> 0 bytes .../_gleam_artefacts/gleam@dynamic.cache_meta | Bin 173 -> 0 bytes .../_gleam_artefacts/gleam@float.cache | Bin 11443 -> 0 bytes .../_gleam_artefacts/gleam@float.cache_meta | Bin 48 -> 0 bytes .../_gleam_artefacts/gleam@function.cache | Bin 5891 -> 0 bytes .../_gleam_artefacts/gleam@function.cache_meta | Bin 29 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@int.cache | Bin 18231 -> 0 bytes .../_gleam_artefacts/gleam@int.cache_meta | Bin 67 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@io.cache | Bin 2936 -> 0 bytes .../_gleam_artefacts/gleam@io.cache_meta | Bin 49 -> 0 bytes .../_gleam_artefacts/gleam@iterator.cache | Bin 38551 -> 0 bytes .../_gleam_artefacts/gleam@iterator.cache_meta | Bin 141 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@list.cache | Bin 46400 -> 0 bytes .../_gleam_artefacts/gleam@list.cache_meta | Bin 120 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@map.cache | Bin 4813 -> 0 bytes .../_gleam_artefacts/gleam@map.cache_meta | Bin 67 -> 0 bytes .../_gleam_artefacts/gleam@option.cache | Bin 7376 -> 0 bytes .../_gleam_artefacts/gleam@option.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/gleam@order.cache | Bin 2807 -> 0 bytes .../_gleam_artefacts/gleam@order.cache_meta | Bin 29 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@pair.cache | Bin 1961 -> 0 bytes .../_gleam_artefacts/gleam@pair.cache_meta | Bin 29 -> 0 bytes .../_gleam_artefacts/gleam@queue.cache | Bin 7173 -> 0 bytes .../_gleam_artefacts/gleam@queue.cache_meta | Bin 47 -> 0 bytes .../_gleam_artefacts/gleam@regex.cache | Bin 6995 -> 0 bytes .../_gleam_artefacts/gleam@regex.cache_meta | Bin 49 -> 0 bytes .../_gleam_artefacts/gleam@result.cache | Bin 10470 -> 0 bytes .../_gleam_artefacts/gleam@result.cache_meta | Bin 47 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@set.cache | Bin 6578 -> 0 bytes .../_gleam_artefacts/gleam@set.cache_meta | Bin 85 -> 0 bytes .../_gleam_artefacts/gleam@string.cache | Bin 21826 -> 0 bytes .../_gleam_artefacts/gleam@string.cache_meta | Bin 136 -> 0 bytes .../_gleam_artefacts/gleam@string_builder.cache | Bin 10647 -> 0 bytes .../gleam@string_builder.cache_meta | Bin 47 -> 0 bytes .../gleam_stdlib/_gleam_artefacts/gleam@uri.cache | Bin 8321 -> 0 bytes .../_gleam_artefacts/gleam@uri.cache_meta | Bin 132 -> 0 bytes aoc2023/build/lsp/erlang/gleam_version | 1 - .../lsp/erlang/glint/_gleam_artefacts/glint.cache | Bin 18769 -> 0 bytes .../erlang/glint/_gleam_artefacts/glint.cache_meta | Bin 278 -> 0 bytes .../erlang/glint/_gleam_artefacts/glint@flag.cache | Bin 20304 -> 0 bytes .../glint/_gleam_artefacts/glint@flag.cache_meta | Bin 214 -> 0 bytes .../_gleam_artefacts/glint@flag@constraint.cache | Bin 1675 -> 0 bytes .../glint@flag@constraint.cache_meta | Bin 116 -> 0 bytes .../simplifile/_gleam_artefacts/simplifile.cache | Bin 20315 -> 0 bytes .../_gleam_artefacts/simplifile.cache_meta | Bin 110 -> 0 bytes .../lsp/erlang/snag/_gleam_artefacts/snag.cache | Bin 3751 -> 0 bytes .../erlang/snag/_gleam_artefacts/snag.cache_meta | Bin 125 -> 0 bytes .../lsp/erlang/tom/_gleam_artefacts/tom.cache | Bin 33280 -> 0 bytes .../lsp/erlang/tom/_gleam_artefacts/tom.cache_meta | Bin 140 -> 0 bytes aoc2023/build/lsp/javascript/gleam.lock | 0 aoc2023/build/packages/adglent/LICENSE | 201 - aoc2023/build/packages/adglent/README.md | 115 - aoc2023/build/packages/adglent/gleam.toml | 29 - .../packages/adglent/include/adglent_Example.hrl | 1 - .../adglent/include/priv@toml_TomGetError.hrl | 1 - .../adglent/include/priv@toml_TomParseError.hrl | 1 - ...ternal@common@common_event_handler_Finished.hrl | 1 - ...al@common@common_event_handler_HandlerState.hrl | 5 - ...howtime@internal@common@test_result_ArgList.hrl | 1 - ...ime@internal@common@test_result_AssertEqual.hrl | 3 - ...ime@internal@common@test_result_AssertMatch.hrl | 3 - ...@internal@common@test_result_AssertNotEqual.hrl | 3 - ...internal@common@test_result_ErlangException.hrl | 6 - ...wtime@internal@common@test_result_ErrorInfo.hrl | 3 - ...owtime@internal@common@test_result_Expected.hrl | 1 - ...time@internal@common@test_result_Expression.hrl | 1 - .../showtime@internal@common@test_result_File.hrl | 1 - ...nternal@common@test_result_GenericException.hrl | 1 - ...ime@internal@common@test_result_GleamAssert.hrl | 1 - ...time@internal@common@test_result_GleamError.hrl | 3 - ...howtime@internal@common@test_result_Ignored.hrl | 1 - ...wtime@internal@common@test_result_LetAssert.hrl | 7 - .../showtime@internal@common@test_result_Line.hrl | 1 - ...showtime@internal@common@test_result_Module.hrl | 1 - .../showtime@internal@common@test_result_Num.hrl | 1 - ...howtime@internal@common@test_result_Pattern.hrl | 1 - ...time@internal@common@test_result_ReasonLine.hrl | 1 - ...ernal@common@test_result_TestFunctionReturn.hrl | 4 - .../showtime@internal@common@test_result_Trace.hrl | 5 - ...wtime@internal@common@test_result_TraceList.hrl | 3 - ...ime@internal@common@test_result_TraceModule.hrl | 6 - .../showtime@internal@common@test_result_Value.hrl | 1 - ...internal@common@test_suite_CompletedTestRun.hrl | 6 - ...showtime@internal@common@test_suite_EndTest.hrl | 6 - ...wtime@internal@common@test_suite_EndTestRun.hrl | 1 - ...ime@internal@common@test_suite_EndTestSuite.hrl | 3 - ...e@internal@common@test_suite_OngoingTestRun.hrl | 4 - ...owtime@internal@common@test_suite_StartTest.hrl | 4 - ...e@internal@common@test_suite_StartTestSuite.hrl | 3 - ...ime@internal@common@test_suite_TestFunction.hrl | 1 - ...wtime@internal@common@test_suite_TestModule.hrl | 1 - ...owtime@internal@common@test_suite_TestSuite.hrl | 4 - .../showtime@internal@reports@table_AlignLeft.hrl | 4 - ...me@internal@reports@table_AlignLeftOverflow.hrl | 4 - .../showtime@internal@reports@table_AlignRight.hrl | 4 - ...e@internal@reports@table_AlignRightOverflow.hrl | 4 - .../showtime@internal@reports@table_Aligned.hrl | 1 - .../showtime@internal@reports@table_Content.hrl | 1 - .../showtime@internal@reports@table_Separator.hrl | 1 - ...owtime@internal@reports@table_StyledContent.hrl | 1 - .../showtime@internal@reports@table_Table.hrl | 4 - .../adglent/include/showtime@tests@meta_Meta.hrl | 1 - .../adglent/include/showtime@tests@should_Eq.hrl | 5 - .../adglent/include/showtime@tests@should_Fail.hrl | 1 - .../include/showtime@tests@should_IsError.hrl | 4 - .../adglent/include/showtime@tests@should_IsOk.hrl | 4 - .../include/showtime@tests@should_NotEq.hrl | 5 - .../include/showtime@tests@test_MetaShould.hrl | 4 - .../adglent/include/showtime@tests@test_Test.hrl | 4 - aoc2023/build/packages/adglent/src/adglent.app.src | 45 - aoc2023/build/packages/adglent/src/adglent.erl | 55 - aoc2023/build/packages/adglent/src/adglent.gleam | 56 - .../build/packages/adglent/src/adglent/day.gleam | 126 - .../build/packages/adglent/src/adglent/init.gleam | 110 - aoc2023/build/packages/adglent/src/adglent@day.erl | 278 - .../build/packages/adglent/src/adglent@init.erl | 142 - aoc2023/build/packages/adglent/src/adglent_ffi.erl | 12 - .../packages/adglent/src/priv/aoc_client.gleam | 37 - .../build/packages/adglent/src/priv/errors.gleam | 54 - .../build/packages/adglent/src/priv/prompt.gleam | 38 - .../build/packages/adglent/src/priv/template.gleam | 18 - .../adglent/src/priv/templates/solution.gleam | 27 - .../adglent/src/priv/templates/test_main.gleam | 7 - .../src/priv/templates/testfile_gleeunit.gleam | 41 - .../src/priv/templates/testfile_showtime.gleam | 41 - aoc2023/build/packages/adglent/src/priv/toml.gleam | 52 - .../build/packages/adglent/src/priv@aoc_client.erl | 61 - aoc2023/build/packages/adglent/src/priv@errors.erl | 74 - aoc2023/build/packages/adglent/src/priv@prompt.erl | 53 - .../build/packages/adglent/src/priv@template.erl | 25 - .../adglent/src/priv@templates@solution.erl | 1 - .../adglent/src/priv@templates@test_main.erl | 1 - .../src/priv@templates@testfile_gleeunit.erl | 1 - .../src/priv@templates@testfile_showtime.erl | 1 - aoc2023/build/packages/adglent/src/priv@toml.erl | 83 - aoc2023/build/packages/adglent/src/showtime.erl | 155 - aoc2023/build/packages/adglent/src/showtime.gleam | 116 - .../adglent/src/showtime/internal/common/cli.gleam | 5 - .../internal/common/common_event_handler.gleam | 101 - .../src/showtime/internal/common/test_result.gleam | 119 - .../src/showtime/internal/common/test_suite.gleam | 63 - .../src/showtime/internal/erlang/discover.gleam | 167 - .../showtime/internal/erlang/event_handler.gleam | 91 - .../showtime/internal/erlang/module_handler.gleam | 43 - .../src/showtime/internal/erlang/runner.gleam | 59 - .../src/showtime/internal/reports/compare.gleam | 42 - .../src/showtime/internal/reports/formatter.gleam | 480 - .../src/showtime/internal/reports/styles.gleam | 84 - .../src/showtime/internal/reports/table.gleam | 148 - .../packages/adglent/src/showtime/tests/meta.gleam | 3 - .../adglent/src/showtime/tests/should.gleam | 113 - .../packages/adglent/src/showtime/tests/test.gleam | 57 - .../adglent/src/showtime@internal@common@cli.erl | 8 - ...owtime@internal@common@common_event_handler.erl | 131 - .../src/showtime@internal@common@test_result.erl | 54 - .../src/showtime@internal@common@test_suite.erl | 30 - .../src/showtime@internal@erlang@discover.erl | 230 - .../src/showtime@internal@erlang@event_handler.erl | 76 - .../showtime@internal@erlang@module_handler.erl | 53 - .../src/showtime@internal@erlang@runner.erl | 46 - .../src/showtime@internal@reports@compare.erl | 61 - .../src/showtime@internal@reports@formatter.erl | 749 - .../src/showtime@internal@reports@styles.erl | 93 - .../src/showtime@internal@reports@table.erl | 229 - .../packages/adglent/src/showtime@tests@meta.erl | 8 - .../packages/adglent/src/showtime@tests@should.erl | 143 - .../packages/adglent/src/showtime@tests@test.erl | 57 - .../build/packages/adglent/src/showtime_ffi.erl | 187 - aoc2023/build/packages/gap/LICENSE | 201 - aoc2023/build/packages/gap/README.md | 202 - aoc2023/build/packages/gap/gleam.toml | 18 - .../gap/include/gap@comparison_ListComparison.hrl | 4 - .../packages/gap/include/gap@comparison_Match.hrl | 1 - .../gap/include/gap@comparison_NoMatch.hrl | 1 - .../include/gap@comparison_StringComparison.hrl | 4 - .../gap@styled_comparison_StyledComparison.hrl | 1 - .../build/packages/gap/include/gap@styling_All.hrl | 1 - .../gap/include/gap@styling_Highlighters.hrl | 5 - .../packages/gap/include/gap@styling_Part.hrl | 5 - .../packages/gap/include/gap@styling_Styling.hrl | 5 - aoc2023/build/packages/gap/src/gap.app.src | 13 - aoc2023/build/packages/gap/src/gap.erl | 538 - aoc2023/build/packages/gap/src/gap.gleam | 438 - .../build/packages/gap/src/gap/comparison.gleam | 22 - aoc2023/build/packages/gap/src/gap/myers.gleam | 122 - .../packages/gap/src/gap/styled_comparison.gleam | 4 - aoc2023/build/packages/gap/src/gap/styling.gleam | 233 - aoc2023/build/packages/gap/src/gap@comparison.erl | 15 - aoc2023/build/packages/gap/src/gap@myers.erl | 156 - .../packages/gap/src/gap@styled_comparison.erl | 8 - aoc2023/build/packages/gap/src/gap@styling.erl | 202 - aoc2023/build/packages/gap/src/gap_ffi.mjs | 431 - aoc2023/build/packages/gleam.lock | 0 .../build/packages/gleam_community_ansi/LICENCE | 190 - .../build/packages/gleam_community_ansi/README.md | 72 - .../build/packages/gleam_community_ansi/gleam.toml | 13 - .../src/gleam_community/ansi.gleam | 2317 - .../src/gleam_community@ansi.erl | 263 - .../src/gleam_community_ansi.app.src | 9 - .../build/packages/gleam_community_colour/LICENCE | 190 - .../packages/gleam_community_colour/README.md | 36 - .../packages/gleam_community_colour/gleam.toml | 11 - .../include/gleam_community@colour_Hsla.hrl | 1 - .../include/gleam_community@colour_Rgba.hrl | 1 - .../src/gleam_community/colour.gleam | 1126 - .../src/gleam_community/colour/accessibility.gleam | 173 - .../src/gleam_community@colour.erl | 511 - .../src/gleam_community@colour@accessibility.erl | 73 - .../src/gleam_community_colour.app.src | 9 - .../build/packages/gleam_community_maths/LICENCE | 190 - .../build/packages/gleam_community_maths/README.md | 59 - .../packages/gleam_community_maths/gleam.toml | 12 - .../src/gleam_community/maths/arithmetics.gleam | 618 - .../src/gleam_community/maths/combinatorics.gleam | 432 - .../src/gleam_community/maths/conversion.gleam | 183 - .../src/gleam_community/maths/elementary.gleam | 1256 - .../src/gleam_community/maths/metrics.gleam | 560 - .../src/gleam_community/maths/piecewise.gleam | 1228 - .../src/gleam_community/maths/predicates.gleam | 363 - .../src/gleam_community/maths/sequences.gleam | 302 - .../src/gleam_community/maths/special.gleam | 205 - .../src/gleam_community@maths@arithmetics.erl | 172 - .../src/gleam_community@maths@combinatorics.erl | 218 - .../src/gleam_community@maths@conversion.erl | 23 - .../src/gleam_community@maths@elementary.erl | 284 - .../src/gleam_community@maths@metrics.erl | 278 - .../src/gleam_community@maths@piecewise.erl | 553 - .../src/gleam_community@maths@predicates.erl | 118 - .../src/gleam_community@maths@sequences.erl | 199 - .../src/gleam_community@maths@special.erl | 157 - .../src/gleam_community_maths.app.src | 16 - .../packages/gleam_community_maths/src/maths.mjs | 95 - aoc2023/build/packages/gleam_erlang/LICENSE | 191 - aoc2023/build/packages/gleam_erlang/README.md | 37 - aoc2023/build/packages/gleam_erlang/gleam.toml | 18 - .../include/gleam@erlang@file_FileInfo.hrl | 15 - .../include/gleam@erlang@process_Abnormal.hrl | 1 - .../include/gleam@erlang@process_CalleeDown.hrl | 1 - .../include/gleam@erlang@process_Cancelled.hrl | 1 - .../include/gleam@erlang@process_ExitMessage.hrl | 4 - .../include/gleam@erlang@process_ProcessDown.hrl | 4 - .../gleam@erlang@process_ProcessMonitor.hrl | 1 - .../include/gleam@erlang@process_Subject.hrl | 4 - .../gleam@erlang_ApplicationFailedToStart.hrl | 4 - .../include/gleam@erlang_UnknownApplication.hrl | 1 - .../packages/gleam_erlang/src/gleam/erlang.gleam | 158 - .../gleam_erlang/src/gleam/erlang/atom.gleam | 79 - .../gleam_erlang/src/gleam/erlang/charlist.gleam | 25 - .../gleam_erlang/src/gleam/erlang/file.gleam | 737 - .../gleam_erlang/src/gleam/erlang/node.gleam | 62 - .../gleam_erlang/src/gleam/erlang/os.gleam | 95 - .../gleam_erlang/src/gleam/erlang/process.gleam | 744 - .../packages/gleam_erlang/src/gleam@erlang.erl | 90 - .../gleam_erlang/src/gleam@erlang@atom.erl | 26 - .../gleam_erlang/src/gleam@erlang@charlist.erl | 15 - .../gleam_erlang/src/gleam@erlang@file.erl | 190 - .../gleam_erlang/src/gleam@erlang@node.erl | 33 - .../packages/gleam_erlang/src/gleam@erlang@os.erl | 27 - .../gleam_erlang/src/gleam@erlang@process.erl | 374 - .../packages/gleam_erlang/src/gleam_erlang.app.src | 14 - .../packages/gleam_erlang/src/gleam_erlang_ffi.erl | 263 - aoc2023/build/packages/gleam_http/LICENSE | 191 - aoc2023/build/packages/gleam_http/README.md | 67 - aoc2023/build/packages/gleam_http/gleam.toml | 17 - .../include/gleam@http@cookie_Attributes.hrl | 8 - .../include/gleam@http@request_Request.hrl | 10 - .../include/gleam@http@response_Response.hrl | 5 - .../include/gleam@http_MoreRequiredForBody.hrl | 5 - .../include/gleam@http_MoreRequiredForHeaders.hrl | 4 - .../include/gleam@http_MultipartBody.hrl | 5 - .../include/gleam@http_MultipartHeaders.hrl | 4 - .../build/packages/gleam_http/src/gleam/http.gleam | 560 - .../gleam_http/src/gleam/http/cookie.gleam | 128 - .../gleam_http/src/gleam/http/request.gleam | 267 - .../gleam_http/src/gleam/http/response.gleam | 141 - .../gleam_http/src/gleam/http/service.gleam | 82 - .../build/packages/gleam_http/src/gleam@http.erl | 626 - .../packages/gleam_http/src/gleam@http@cookie.erl | 153 - .../packages/gleam_http/src/gleam@http@request.erl | 202 - .../gleam_http/src/gleam@http@response.erl | 97 - .../packages/gleam_http/src/gleam@http@service.erl | 82 - .../packages/gleam_http/src/gleam_http.app.src | 12 - .../packages/gleam_http/src/gleam_http_native.erl | 88 - .../packages/gleam_http/src/gleam_http_native.mjs | 38 - aoc2023/build/packages/gleam_httpc/LICENSE | 191 - aoc2023/build/packages/gleam_httpc/README.md | 52 - aoc2023/build/packages/gleam_httpc/gleam.toml | 23 - .../packages/gleam_httpc/src/gleam/httpc.gleam | 105 - .../build/packages/gleam_httpc/src/gleam@httpc.erl | 118 - .../packages/gleam_httpc/src/gleam_httpc.app.src | 12 - aoc2023/build/packages/gleam_otp/LICENCE | 191 - aoc2023/build/packages/gleam_otp/README.md | 91 - aoc2023/build/packages/gleam_otp/gleam.toml | 19 - .../gleam_otp/include/gleam@otp@actor_Continue.hrl | 4 - .../gleam_otp/include/gleam@otp@actor_Ready.hrl | 1 - .../gleam_otp/include/gleam@otp@actor_Spec.hrl | 5 - ...leam@otp@intensity_tracker_IntensityTracker.hrl | 5 - .../include/gleam@otp@supervisor_ChildSpec.hrl | 5 - .../include/gleam@otp@supervisor_Spec.hrl | 6 - .../include/gleam@otp@system_StatusInfo.hrl | 7 - .../gleam_otp/include/gleam@otp@task_Exit.hrl | 1 - .../gleam_otp/include/gleam@otp@task_Task.hrl | 6 - .../packages/gleam_otp/src/gleam/otp/actor.gleam | 504 - .../src/gleam/otp/intensity_tracker.gleam | 46 - .../packages/gleam_otp/src/gleam/otp/port.gleam | 9 - .../gleam_otp/src/gleam/otp/supervisor.gleam | 410 - .../packages/gleam_otp/src/gleam/otp/system.gleam | 89 - .../packages/gleam_otp/src/gleam/otp/task.gleam | 151 - .../packages/gleam_otp/src/gleam@otp@actor.erl | 273 - .../gleam_otp/src/gleam@otp@intensity_tracker.erl | 53 - .../packages/gleam_otp/src/gleam@otp@port.erl | 8 - .../gleam_otp/src/gleam@otp@supervisor.erl | 322 - .../packages/gleam_otp/src/gleam@otp@system.erl | 43 - .../packages/gleam_otp/src/gleam@otp@task.erl | 111 - .../build/packages/gleam_otp/src/gleam_otp.app.src | 15 - aoc2023/build/packages/gleam_otp/src/gleam_otp.erl | 28 - .../build/packages/gleam_otp/src/gleam_otp.gleam | 27 - .../packages/gleam_otp/src/gleam_otp_external.erl | 43 - aoc2023/build/packages/gleam_stdlib/LICENCE | 191 - aoc2023/build/packages/gleam_stdlib/README.md | 39 - aoc2023/build/packages/gleam_stdlib/gleam.toml | 16 - .../include/gleam@dynamic_DecodeError.hrl | 5 - .../include/gleam@iterator_Iterator.hrl | 1 - .../gleam_stdlib/include/gleam@iterator_Next.hrl | 1 - .../gleam_stdlib/include/gleam@queue_Queue.hrl | 1 - .../include/gleam@regex_CompileError.hrl | 1 - .../gleam_stdlib/include/gleam@regex_Match.hrl | 4 - .../gleam_stdlib/include/gleam@regex_Options.hrl | 1 - .../gleam_stdlib/include/gleam@set_Set.hrl | 1 - .../gleam_stdlib/include/gleam@uri_Uri.hrl | 9 - aoc2023/build/packages/gleam_stdlib/src/dict.mjs | 957 - .../packages/gleam_stdlib/src/gleam/base.gleam | 21 - .../gleam_stdlib/src/gleam/bit_array.gleam | 157 - .../gleam_stdlib/src/gleam/bit_builder.gleam | 80 - .../gleam_stdlib/src/gleam/bit_string.gleam | 43 - .../packages/gleam_stdlib/src/gleam/bool.gleam | 428 - .../gleam_stdlib/src/gleam/bytes_builder.gleam | 197 - .../packages/gleam_stdlib/src/gleam/dict.gleam | 544 - .../packages/gleam_stdlib/src/gleam/dynamic.gleam | 1508 - .../packages/gleam_stdlib/src/gleam/float.gleam | 546 - .../packages/gleam_stdlib/src/gleam/function.gleam | 162 - .../packages/gleam_stdlib/src/gleam/int.gleam | 874 - .../build/packages/gleam_stdlib/src/gleam/io.gleam | 117 - .../packages/gleam_stdlib/src/gleam/iterator.gleam | 1530 - .../packages/gleam_stdlib/src/gleam/list.gleam | 2154 - .../packages/gleam_stdlib/src/gleam/map.gleam | 127 - .../packages/gleam_stdlib/src/gleam/option.gleam | 346 - .../packages/gleam_stdlib/src/gleam/order.gleam | 133 - .../packages/gleam_stdlib/src/gleam/pair.gleam | 85 - .../packages/gleam_stdlib/src/gleam/queue.gleam | 292 - .../packages/gleam_stdlib/src/gleam/regex.gleam | 214 - .../packages/gleam_stdlib/src/gleam/result.gleam | 482 - .../packages/gleam_stdlib/src/gleam/set.gleam | 264 - .../packages/gleam_stdlib/src/gleam/string.gleam | 906 - .../gleam_stdlib/src/gleam/string_builder.gleam | 298 - .../packages/gleam_stdlib/src/gleam/uri.gleam | 462 - .../build/packages/gleam_stdlib/src/gleam@base.erl | 20 - .../packages/gleam_stdlib/src/gleam@bit_array.erl | 102 - .../gleam_stdlib/src/gleam@bit_builder.erl | 66 - .../packages/gleam_stdlib/src/gleam@bit_string.erl | 33 - .../build/packages/gleam_stdlib/src/gleam@bool.erl | 162 - .../gleam_stdlib/src/gleam@bytes_builder.erl | 87 - .../build/packages/gleam_stdlib/src/gleam@dict.erl | 97 - .../packages/gleam_stdlib/src/gleam@dynamic.erl | 808 - .../packages/gleam_stdlib/src/gleam@float.erl | 181 - .../packages/gleam_stdlib/src/gleam@function.erl | 67 - .../build/packages/gleam_stdlib/src/gleam@int.erl | 332 - .../build/packages/gleam_stdlib/src/gleam@io.erl | 27 - .../packages/gleam_stdlib/src/gleam@iterator.erl | 744 - .../build/packages/gleam_stdlib/src/gleam@list.erl | 1129 - .../build/packages/gleam_stdlib/src/gleam@map.erl | 76 - .../packages/gleam_stdlib/src/gleam@option.erl | 147 - .../packages/gleam_stdlib/src/gleam@order.erl | 79 - .../build/packages/gleam_stdlib/src/gleam@pair.erl | 33 - .../packages/gleam_stdlib/src/gleam@queue.erl | 121 - .../packages/gleam_stdlib/src/gleam@regex.erl | 33 - .../packages/gleam_stdlib/src/gleam@result.erl | 201 - .../build/packages/gleam_stdlib/src/gleam@set.erl | 85 - .../packages/gleam_stdlib/src/gleam@string.erl | 352 - .../gleam_stdlib/src/gleam@string_builder.erl | 91 - .../build/packages/gleam_stdlib/src/gleam@uri.erl | 252 - .../packages/gleam_stdlib/src/gleam_stdlib.app.src | 31 - .../packages/gleam_stdlib/src/gleam_stdlib.erl | 529 - .../packages/gleam_stdlib/src/gleam_stdlib.mjs | 875 - aoc2023/build/packages/glint/LICENSE | 201 - aoc2023/build/packages/glint/README.md | 104 - aoc2023/build/packages/glint/gleam.toml | 23 - .../packages/glint/include/glint@flag_Flag.hrl | 1 - .../glint/include/glint@flag_FlagBuilder.hrl | 6 - .../packages/glint/include/glint@flag_Internal.hrl | 4 - .../build/packages/glint/include/glint_Command.hrl | 5 - .../packages/glint/include/glint_CommandInput.hrl | 4 - .../build/packages/glint/include/glint_Config.hrl | 4 - .../build/packages/glint/include/glint_Glint.hrl | 5 - .../packages/glint/include/glint_PrettyHelp.hrl | 5 - .../build/packages/glint/include/glint_Stub.hrl | 6 - aoc2023/build/packages/glint/src/glint.app.src | 13 - aoc2023/build/packages/glint/src/glint.erl | 513 - aoc2023/build/packages/glint/src/glint.gleam | 588 - aoc2023/build/packages/glint/src/glint/flag.gleam | 478 - .../packages/glint/src/glint/flag/constraint.gleam | 66 - aoc2023/build/packages/glint/src/glint@flag.erl | 523 - .../packages/glint/src/glint@flag@constraint.erl | 68 - aoc2023/build/packages/packages.toml | 16 - aoc2023/build/packages/pqueue/LICENSE | 21 - aoc2023/build/packages/pqueue/README.markdown | 31 - aoc2023/build/packages/pqueue/doc/edoc-info | 3 - aoc2023/build/packages/pqueue/doc/erlang.png | Bin 2109 -> 0 bytes aoc2023/build/packages/pqueue/doc/index.html | 17 - .../build/packages/pqueue/doc/modules-frame.html | 15 - .../packages/pqueue/doc/overview-summary.html | 16 - aoc2023/build/packages/pqueue/doc/pqueue.html | 166 - aoc2023/build/packages/pqueue/doc/pqueue2.html | 143 - aoc2023/build/packages/pqueue/doc/pqueue3.html | 162 - aoc2023/build/packages/pqueue/doc/pqueue4.html | 205 - aoc2023/build/packages/pqueue/doc/stylesheet.css | 55 - aoc2023/build/packages/pqueue/rebar.config | 14 - aoc2023/build/packages/pqueue/src/pqueue.app.src | 10 - aoc2023/build/packages/pqueue/src/pqueue.erl | 2246 - aoc2023/build/packages/pqueue/src/pqueue2.erl | 483 - aoc2023/build/packages/pqueue/src/pqueue3.erl | 404 - aoc2023/build/packages/pqueue/src/pqueue4.erl | 11662 ---- aoc2023/build/packages/pqueue/src/pqueue_test.hrl | 49 - .../build/packages/pqueue/test/pqueue_proper.erl | 156 - aoc2023/build/packages/pqueue/test/queue_srv.erl | 183 - aoc2023/build/packages/simplifile/README.md | 29 - aoc2023/build/packages/simplifile/gleam.toml | 17 - .../packages/simplifile/src/simplifile.app.src | 8 - .../build/packages/simplifile/src/simplifile.erl | 287 - .../build/packages/simplifile/src/simplifile.gleam | 580 - .../packages/simplifile/src/simplifile_erl.erl | 70 - .../packages/simplifile/src/simplifile_js.mjs | 102 - aoc2023/build/packages/snag/LICENCE | 211 - aoc2023/build/packages/snag/README.md | 81 - aoc2023/build/packages/snag/gleam.toml | 16 - aoc2023/build/packages/snag/include/snag_Snag.hrl | 1 - aoc2023/build/packages/snag/src/snag.app.src | 8 - aoc2023/build/packages/snag/src/snag.erl | 74 - aoc2023/build/packages/snag/src/snag.gleam | 141 - aoc2023/build/packages/tom/README.md | 47 - aoc2023/build/packages/tom/gleam.toml | 13 - .../packages/tom/include/tom_DateTimeValue.hrl | 5 - .../build/packages/tom/include/tom_DateValue.hrl | 1 - .../packages/tom/include/tom_KeyAlreadyInUse.hrl | 1 - .../build/packages/tom/include/tom_NotFound.hrl | 1 - aoc2023/build/packages/tom/include/tom_Offset.hrl | 5 - .../build/packages/tom/include/tom_TimeValue.hrl | 6 - .../build/packages/tom/include/tom_Unexpected.hrl | 1 - .../build/packages/tom/include/tom_WrongType.hrl | 5 - aoc2023/build/packages/tom/src/tom.app.src | 8 - aoc2023/build/packages/tom/src/tom.erl | 2140 - aoc2023/build/packages/tom/src/tom.gleam | 1317 - aoc2023/build/prod/erlang/gleam.lock | 0 aoc2023/build/prod/javascript/gleam.lock | 0 aoc2023/erl_crash.dump | 67195 ------------------- aoc2023/src/day1/input.txt | 1000 - aoc2023/src/day10/input.txt | 140 - aoc2023/src/day11/input.txt | 140 - aoc2023/src/day13/input.txt | 1379 - aoc2023/src/day15/input.txt | 1 - aoc2023/src/day16/input.txt | 110 - aoc2023/src/day17/input.txt | 141 - aoc2023/src/day18/input.txt | 676 - aoc2023/src/day19/input.txt | 766 - aoc2023/src/day2/input.txt | 100 - aoc2023/src/day20/input.txt | 58 - aoc2023/src/day3/input.txt | 140 - aoc2023/src/day4/input.txt | 203 - aoc2023/src/day6/input.txt | 2 - aoc2023/src/day7/input.txt | 1000 - aoc2023/src/day8/input.txt | 740 - aoc2023/src/day9/input.txt | 200 - 1493 files changed, 194664 deletions(-) delete mode 100644 aoc2023/aoc.toml delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent_ffi.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime_ffi.erl delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/adglent.app delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/adglent.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/adglent@day.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/adglent@init.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/adglent_ffi.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@aoc_client.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@errors.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@prompt.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@template.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@templates@solution.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@templates@test_main.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@templates@testfile_gleeunit.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@templates@testfile_showtime.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/priv@toml.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@cli.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@common_event_handler.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@test_result.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@test_suite.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@discover.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@event_handler.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@module_handler.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@runner.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@compare.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@formatter.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@styles.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@table.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@meta.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@should.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@test.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/ebin/showtime_ffi.beam delete mode 100644 aoc2023/build/dev/erlang/adglent/include/adglent_Example.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/priv@toml_TomGetError.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/priv@toml_TomParseError.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@common_event_handler_Finished.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@common_event_handler_HandlerState.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ArgList.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertEqual.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertMatch.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertNotEqual.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ErlangException.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ErrorInfo.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Expected.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Expression.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_File.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GenericException.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GleamAssert.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GleamError.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Ignored.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_LetAssert.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Line.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Module.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Num.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Pattern.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ReasonLine.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TestFunctionReturn.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Trace.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TraceList.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TraceModule.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Value.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_CompletedTestRun.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTest.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTestRun.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTestSuite.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_OngoingTestRun.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_StartTest.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_StartTestSuite.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestFunction.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestModule.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestSuite.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignLeft.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignLeftOverflow.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignRight.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignRightOverflow.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Aligned.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Content.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Separator.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_StyledContent.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Table.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@tests@meta_Meta.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_Eq.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_Fail.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_IsError.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_IsOk.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_NotEq.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@tests@test_MetaShould.hrl delete mode 100644 aoc2023/build/dev/erlang/adglent/include/showtime@tests@test_Test.hrl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023@@main.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache_meta delete mode 100644 aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.erl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.app delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023@@main.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day10@day10_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day10@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day11@day11_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day11@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day12@day12_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day12@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day13@day13_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day13@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day14@day14_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day14@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day15@day15_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day15@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day16@day16_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day16@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day17@day17_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day17@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day18@day18_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day18@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day19@day19_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day19@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day1@day1_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day1@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day20@day20_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day20@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day2@day2_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day2@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day3@day3_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day3@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day4@day4_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day4@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day5@day5_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day5@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day6@day6_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day6@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day7@day7_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day7@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day8@day8_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day8@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day9@day9_test.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/day9@solve.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/utilities@array2d.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/utilities@memo.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/ebin/utilities@prioqueue.beam delete mode 100644 aoc2023/build/dev/erlang/aoc2023/include/day2@solve_Game.hrl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/include/day5@solve_Almanac.hrl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/include/day5@solve_MRange.hrl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/include/day5@solve_SRange.hrl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/include/utilities@array2d_Posn.hrl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/include/utilities@memo_Cache.hrl delete mode 100644 aoc2023/build/dev/erlang/aoc2023/include/utilities@prioqueue_PriorityQueue.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.cache delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.erl delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.cache delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.erl delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.cache delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.erl delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.erl delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.cache delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.erl delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap_ffi.mjs delete mode 100644 aoc2023/build/dev/erlang/gap/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gap/ebin/gap.app delete mode 100644 aoc2023/build/dev/erlang/gap/ebin/gap.beam delete mode 100644 aoc2023/build/dev/erlang/gap/ebin/gap@comparison.beam delete mode 100644 aoc2023/build/dev/erlang/gap/ebin/gap@myers.beam delete mode 100644 aoc2023/build/dev/erlang/gap/ebin/gap@styled_comparison.beam delete mode 100644 aoc2023/build/dev/erlang/gap/ebin/gap@styling.beam delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@comparison_ListComparison.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@comparison_Match.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@comparison_NoMatch.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@comparison_StringComparison.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@styled_comparison_StyledComparison.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@styling_All.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@styling_Highlighters.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@styling_Part.hrl delete mode 100644 aoc2023/build/dev/erlang/gap/include/gap@styling_Styling.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam.lock delete mode 100644 aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_ansi/ebin/gleam_community@ansi.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_ansi/ebin/gleam_community_ansi.app delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community@colour.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community@colour@accessibility.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community_colour.app delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/include/gleam_community@colour_Hsla.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_colour/include/gleam_community@colour_Rgba.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/maths.mjs delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@arithmetics.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@combinatorics.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@conversion.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@elementary.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@metrics.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@piecewise.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@predicates.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@sequences.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@special.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community_maths.app delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam_erlang_ffi.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@atom.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@charlist.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@file.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@node.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@os.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@process.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam_erlang.app delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam_erlang_ffi.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@file_FileInfo.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Abnormal.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_CalleeDown.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Cancelled.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ExitMessage.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ProcessDown.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ProcessMonitor.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Subject.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang_ApplicationFailedToStart.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang_UnknownApplication.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam_http_native.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam_http_native.mjs delete mode 100644 aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@cookie.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@request.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@response.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@service.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_http/ebin/gleam_http.app delete mode 100644 aoc2023/build/dev/erlang/gleam_http/ebin/gleam_http_native.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_http/include/gleam@http@cookie_Attributes.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/include/gleam@http@request_Request.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/include/gleam@http@response_Response.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MoreRequiredForBody.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MoreRequiredForHeaders.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MultipartBody.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MultipartHeaders.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_httpc/ebin/gleam@httpc.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_httpc/ebin/gleam_httpc.app delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp_external.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@actor.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@intensity_tracker.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@port.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@supervisor.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@system.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@task.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp.app delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp_external.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Continue.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Ready.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Spec.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@intensity_tracker_IntensityTracker.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@supervisor_ChildSpec.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@supervisor_Spec.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@system_StatusInfo.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@task_Exit.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@task_Task.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/dict.mjs delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam_stdlib.erl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam_stdlib.mjs delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@base.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_array.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_builder.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_string.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bool.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bytes_builder.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@dict.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@dynamic.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@float.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@function.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@int.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@io.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@iterator.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@list.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@map.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@option.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@order.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@pair.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@queue.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@regex.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@result.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@set.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@string.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@string_builder.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@uri.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam_stdlib.app delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam_stdlib.beam delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@dynamic_DecodeError.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@iterator_Iterator.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@iterator_Next.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@queue_Queue.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_CompileError.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_Match.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_Options.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@set_Set.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@uri_Uri.hrl delete mode 100644 aoc2023/build/dev/erlang/gleam_version delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.cache delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.cache_meta delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.erl delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.cache delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.cache_meta delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.erl delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache_meta delete mode 100644 aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.erl delete mode 100644 aoc2023/build/dev/erlang/glint/ebin/glint.app delete mode 100644 aoc2023/build/dev/erlang/glint/ebin/glint.beam delete mode 100644 aoc2023/build/dev/erlang/glint/ebin/glint@flag.beam delete mode 100644 aoc2023/build/dev/erlang/glint/ebin/glint@flag@constraint.beam delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint@flag_Flag.hrl delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint@flag_FlagBuilder.hrl delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint@flag_Internal.hrl delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint_Command.hrl delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint_CommandInput.hrl delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint_Config.hrl delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint_Glint.hrl delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint_PrettyHelp.hrl delete mode 100644 aoc2023/build/dev/erlang/glint/include/glint_Stub.hrl delete mode 100644 aoc2023/build/dev/erlang/pqueue/LICENSE delete mode 100644 aoc2023/build/dev/erlang/pqueue/README.markdown delete mode 100644 aoc2023/build/dev/erlang/pqueue/_build/prod/lib/.rebar3/rebar_compiler_erl/source.dag delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/edoc-info delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/erlang.png delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/index.html delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/modules-frame.html delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/overview-summary.html delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/pqueue.html delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/pqueue2.html delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/pqueue3.html delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/pqueue4.html delete mode 100644 aoc2023/build/dev/erlang/pqueue/doc/stylesheet.css delete mode 100644 aoc2023/build/dev/erlang/pqueue/ebin/pqueue.app delete mode 100644 aoc2023/build/dev/erlang/pqueue/ebin/pqueue.beam delete mode 100644 aoc2023/build/dev/erlang/pqueue/ebin/pqueue2.beam delete mode 100644 aoc2023/build/dev/erlang/pqueue/ebin/pqueue3.beam delete mode 100644 aoc2023/build/dev/erlang/pqueue/ebin/pqueue4.beam delete mode 100644 aoc2023/build/dev/erlang/pqueue/rebar.config delete mode 100644 aoc2023/build/dev/erlang/pqueue/src/pqueue.app.src delete mode 100644 aoc2023/build/dev/erlang/pqueue/src/pqueue.erl delete mode 100644 aoc2023/build/dev/erlang/pqueue/src/pqueue2.erl delete mode 100644 aoc2023/build/dev/erlang/pqueue/src/pqueue3.erl delete mode 100644 aoc2023/build/dev/erlang/pqueue/src/pqueue4.erl delete mode 100644 aoc2023/build/dev/erlang/pqueue/src/pqueue_test.hrl delete mode 100644 aoc2023/build/dev/erlang/pqueue/test/pqueue_proper.erl delete mode 100644 aoc2023/build/dev/erlang/pqueue/test/queue_srv.erl delete mode 100644 aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.cache delete mode 100644 aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.cache_meta delete mode 100644 aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.erl delete mode 100644 aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile_erl.erl delete mode 100644 aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile_js.mjs delete mode 100644 aoc2023/build/dev/erlang/simplifile/ebin/simplifile.app delete mode 100644 aoc2023/build/dev/erlang/simplifile/ebin/simplifile.beam delete mode 100644 aoc2023/build/dev/erlang/simplifile/ebin/simplifile_erl.beam delete mode 100644 aoc2023/build/dev/erlang/snag/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.cache delete mode 100644 aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.cache_meta delete mode 100644 aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.erl delete mode 100644 aoc2023/build/dev/erlang/snag/ebin/snag.app delete mode 100644 aoc2023/build/dev/erlang/snag/ebin/snag.beam delete mode 100644 aoc2023/build/dev/erlang/snag/include/snag_Snag.hrl delete mode 100644 aoc2023/build/dev/erlang/tom/_gleam_artefacts/gleam@@compile.erl delete mode 100644 aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.cache delete mode 100644 aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.cache_meta delete mode 100644 aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.erl delete mode 100644 aoc2023/build/dev/erlang/tom/ebin/tom.app delete mode 100644 aoc2023/build/dev/erlang/tom/ebin/tom.beam delete mode 100644 aoc2023/build/dev/erlang/tom/include/tom_DateTimeValue.hrl delete mode 100644 aoc2023/build/dev/erlang/tom/include/tom_DateValue.hrl delete mode 100644 aoc2023/build/dev/erlang/tom/include/tom_KeyAlreadyInUse.hrl delete mode 100644 aoc2023/build/dev/erlang/tom/include/tom_NotFound.hrl delete mode 100644 aoc2023/build/dev/erlang/tom/include/tom_Offset.hrl delete mode 100644 aoc2023/build/dev/erlang/tom/include/tom_TimeValue.hrl delete mode 100644 aoc2023/build/dev/erlang/tom/include/tom_Unexpected.hrl delete mode 100644 aoc2023/build/dev/erlang/tom/include/tom_WrongType.hrl delete mode 100644 aoc2023/build/dev/javascript/gleam.lock delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@day.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@day.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@init.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@init.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@errors.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@errors.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@prompt.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@prompt.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@template.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@template.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@toml.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@toml.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache delete mode 100644 aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@day21_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@day21_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@day22_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@day22_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@day23_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@day23_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@solve.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@solve.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache delete mode 100644 aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap.cache delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@comparison.cache delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@comparison.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@myers.cache delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@myers.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styling.cache delete mode 100644 aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styling.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam.lock delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache delete mode 100644 aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/gleam_version delete mode 100644 aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint.cache delete mode 100644 aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag.cache delete mode 100644 aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache delete mode 100644 aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/simplifile/_gleam_artefacts/simplifile.cache delete mode 100644 aoc2023/build/lsp/erlang/simplifile/_gleam_artefacts/simplifile.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/snag/_gleam_artefacts/snag.cache delete mode 100644 aoc2023/build/lsp/erlang/snag/_gleam_artefacts/snag.cache_meta delete mode 100644 aoc2023/build/lsp/erlang/tom/_gleam_artefacts/tom.cache delete mode 100644 aoc2023/build/lsp/erlang/tom/_gleam_artefacts/tom.cache_meta delete mode 100644 aoc2023/build/lsp/javascript/gleam.lock delete mode 100644 aoc2023/build/packages/adglent/LICENSE delete mode 100644 aoc2023/build/packages/adglent/README.md delete mode 100644 aoc2023/build/packages/adglent/gleam.toml delete mode 100644 aoc2023/build/packages/adglent/include/adglent_Example.hrl delete mode 100644 aoc2023/build/packages/adglent/include/priv@toml_TomGetError.hrl delete mode 100644 aoc2023/build/packages/adglent/include/priv@toml_TomParseError.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@common_event_handler_Finished.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@common_event_handler_HandlerState.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ArgList.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertEqual.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertMatch.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertNotEqual.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ErlangException.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ErrorInfo.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Expected.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Expression.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_File.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GenericException.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GleamAssert.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GleamError.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Ignored.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_LetAssert.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Line.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Module.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Num.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Pattern.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ReasonLine.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TestFunctionReturn.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Trace.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TraceList.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TraceModule.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Value.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_CompletedTestRun.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTest.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTestRun.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTestSuite.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_OngoingTestRun.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_StartTest.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_StartTestSuite.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestFunction.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestModule.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestSuite.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignLeft.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignLeftOverflow.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignRight.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignRightOverflow.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Aligned.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Content.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Separator.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_StyledContent.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Table.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@tests@meta_Meta.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@tests@should_Eq.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@tests@should_Fail.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@tests@should_IsError.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@tests@should_IsOk.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@tests@should_NotEq.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@tests@test_MetaShould.hrl delete mode 100644 aoc2023/build/packages/adglent/include/showtime@tests@test_Test.hrl delete mode 100644 aoc2023/build/packages/adglent/src/adglent.app.src delete mode 100644 aoc2023/build/packages/adglent/src/adglent.erl delete mode 100644 aoc2023/build/packages/adglent/src/adglent.gleam delete mode 100644 aoc2023/build/packages/adglent/src/adglent/day.gleam delete mode 100644 aoc2023/build/packages/adglent/src/adglent/init.gleam delete mode 100644 aoc2023/build/packages/adglent/src/adglent@day.erl delete mode 100644 aoc2023/build/packages/adglent/src/adglent@init.erl delete mode 100644 aoc2023/build/packages/adglent/src/adglent_ffi.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv/aoc_client.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv/errors.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv/prompt.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv/template.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv/templates/solution.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv/templates/test_main.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv/templates/testfile_gleeunit.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv/templates/testfile_showtime.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv/toml.gleam delete mode 100644 aoc2023/build/packages/adglent/src/priv@aoc_client.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv@errors.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv@prompt.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv@template.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv@templates@solution.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv@templates@test_main.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv@templates@testfile_gleeunit.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv@templates@testfile_showtime.erl delete mode 100644 aoc2023/build/packages/adglent/src/priv@toml.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/common/cli.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/common/common_event_handler.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/common/test_result.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/common/test_suite.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/erlang/discover.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/erlang/event_handler.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/erlang/module_handler.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/erlang/runner.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/reports/compare.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/reports/formatter.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/reports/styles.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/internal/reports/table.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/tests/meta.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/tests/should.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime/tests/test.gleam delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@common@cli.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@common@common_event_handler.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@common@test_result.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@common@test_suite.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@erlang@discover.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@erlang@event_handler.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@erlang@runner.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@reports@compare.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@reports@formatter.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@reports@styles.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@internal@reports@table.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@tests@meta.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@tests@should.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime@tests@test.erl delete mode 100644 aoc2023/build/packages/adglent/src/showtime_ffi.erl delete mode 100644 aoc2023/build/packages/gap/LICENSE delete mode 100644 aoc2023/build/packages/gap/README.md delete mode 100644 aoc2023/build/packages/gap/gleam.toml delete mode 100644 aoc2023/build/packages/gap/include/gap@comparison_ListComparison.hrl delete mode 100644 aoc2023/build/packages/gap/include/gap@comparison_Match.hrl delete mode 100644 aoc2023/build/packages/gap/include/gap@comparison_NoMatch.hrl delete mode 100644 aoc2023/build/packages/gap/include/gap@comparison_StringComparison.hrl delete mode 100644 aoc2023/build/packages/gap/include/gap@styled_comparison_StyledComparison.hrl delete mode 100644 aoc2023/build/packages/gap/include/gap@styling_All.hrl delete mode 100644 aoc2023/build/packages/gap/include/gap@styling_Highlighters.hrl delete mode 100644 aoc2023/build/packages/gap/include/gap@styling_Part.hrl delete mode 100644 aoc2023/build/packages/gap/include/gap@styling_Styling.hrl delete mode 100644 aoc2023/build/packages/gap/src/gap.app.src delete mode 100644 aoc2023/build/packages/gap/src/gap.erl delete mode 100644 aoc2023/build/packages/gap/src/gap.gleam delete mode 100644 aoc2023/build/packages/gap/src/gap/comparison.gleam delete mode 100644 aoc2023/build/packages/gap/src/gap/myers.gleam delete mode 100644 aoc2023/build/packages/gap/src/gap/styled_comparison.gleam delete mode 100644 aoc2023/build/packages/gap/src/gap/styling.gleam delete mode 100644 aoc2023/build/packages/gap/src/gap@comparison.erl delete mode 100644 aoc2023/build/packages/gap/src/gap@myers.erl delete mode 100644 aoc2023/build/packages/gap/src/gap@styled_comparison.erl delete mode 100644 aoc2023/build/packages/gap/src/gap@styling.erl delete mode 100644 aoc2023/build/packages/gap/src/gap_ffi.mjs delete mode 100644 aoc2023/build/packages/gleam.lock delete mode 100644 aoc2023/build/packages/gleam_community_ansi/LICENCE delete mode 100644 aoc2023/build/packages/gleam_community_ansi/README.md delete mode 100644 aoc2023/build/packages/gleam_community_ansi/gleam.toml delete mode 100644 aoc2023/build/packages/gleam_community_ansi/src/gleam_community/ansi.gleam delete mode 100644 aoc2023/build/packages/gleam_community_ansi/src/gleam_community@ansi.erl delete mode 100644 aoc2023/build/packages/gleam_community_ansi/src/gleam_community_ansi.app.src delete mode 100644 aoc2023/build/packages/gleam_community_colour/LICENCE delete mode 100644 aoc2023/build/packages/gleam_community_colour/README.md delete mode 100644 aoc2023/build/packages/gleam_community_colour/gleam.toml delete mode 100644 aoc2023/build/packages/gleam_community_colour/include/gleam_community@colour_Hsla.hrl delete mode 100644 aoc2023/build/packages/gleam_community_colour/include/gleam_community@colour_Rgba.hrl delete mode 100644 aoc2023/build/packages/gleam_community_colour/src/gleam_community/colour.gleam delete mode 100644 aoc2023/build/packages/gleam_community_colour/src/gleam_community/colour/accessibility.gleam delete mode 100644 aoc2023/build/packages/gleam_community_colour/src/gleam_community@colour.erl delete mode 100644 aoc2023/build/packages/gleam_community_colour/src/gleam_community@colour@accessibility.erl delete mode 100644 aoc2023/build/packages/gleam_community_colour/src/gleam_community_colour.app.src delete mode 100644 aoc2023/build/packages/gleam_community_maths/LICENCE delete mode 100644 aoc2023/build/packages/gleam_community_maths/README.md delete mode 100644 aoc2023/build/packages/gleam_community_maths/gleam.toml delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/arithmetics.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/combinatorics.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/conversion.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/elementary.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/metrics.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/piecewise.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/predicates.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/sequences.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/special.gleam delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@arithmetics.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@combinatorics.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@conversion.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@elementary.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@metrics.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@piecewise.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@predicates.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@sequences.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@special.erl delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/gleam_community_maths.app.src delete mode 100644 aoc2023/build/packages/gleam_community_maths/src/maths.mjs delete mode 100644 aoc2023/build/packages/gleam_erlang/LICENSE delete mode 100644 aoc2023/build/packages/gleam_erlang/README.md delete mode 100644 aoc2023/build/packages/gleam_erlang/gleam.toml delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang@file_FileInfo.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Abnormal.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_CalleeDown.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Cancelled.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ExitMessage.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ProcessDown.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ProcessMonitor.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Subject.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang_ApplicationFailedToStart.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/include/gleam@erlang_UnknownApplication.hrl delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam/erlang.gleam delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam/erlang/atom.gleam delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam/erlang/charlist.gleam delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam/erlang/file.gleam delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam/erlang/node.gleam delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam/erlang/os.gleam delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam/erlang/process.gleam delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam@erlang.erl delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam@erlang@atom.erl delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam@erlang@charlist.erl delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam@erlang@file.erl delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam@erlang@node.erl delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam@erlang@os.erl delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam@erlang@process.erl delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam_erlang.app.src delete mode 100644 aoc2023/build/packages/gleam_erlang/src/gleam_erlang_ffi.erl delete mode 100644 aoc2023/build/packages/gleam_http/LICENSE delete mode 100644 aoc2023/build/packages/gleam_http/README.md delete mode 100644 aoc2023/build/packages/gleam_http/gleam.toml delete mode 100644 aoc2023/build/packages/gleam_http/include/gleam@http@cookie_Attributes.hrl delete mode 100644 aoc2023/build/packages/gleam_http/include/gleam@http@request_Request.hrl delete mode 100644 aoc2023/build/packages/gleam_http/include/gleam@http@response_Response.hrl delete mode 100644 aoc2023/build/packages/gleam_http/include/gleam@http_MoreRequiredForBody.hrl delete mode 100644 aoc2023/build/packages/gleam_http/include/gleam@http_MoreRequiredForHeaders.hrl delete mode 100644 aoc2023/build/packages/gleam_http/include/gleam@http_MultipartBody.hrl delete mode 100644 aoc2023/build/packages/gleam_http/include/gleam@http_MultipartHeaders.hrl delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam/http.gleam delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam/http/cookie.gleam delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam/http/request.gleam delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam/http/response.gleam delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam/http/service.gleam delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam@http.erl delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam@http@cookie.erl delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam@http@request.erl delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam@http@response.erl delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam@http@service.erl delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam_http.app.src delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam_http_native.erl delete mode 100644 aoc2023/build/packages/gleam_http/src/gleam_http_native.mjs delete mode 100644 aoc2023/build/packages/gleam_httpc/LICENSE delete mode 100644 aoc2023/build/packages/gleam_httpc/README.md delete mode 100644 aoc2023/build/packages/gleam_httpc/gleam.toml delete mode 100644 aoc2023/build/packages/gleam_httpc/src/gleam/httpc.gleam delete mode 100644 aoc2023/build/packages/gleam_httpc/src/gleam@httpc.erl delete mode 100644 aoc2023/build/packages/gleam_httpc/src/gleam_httpc.app.src delete mode 100644 aoc2023/build/packages/gleam_otp/LICENCE delete mode 100644 aoc2023/build/packages/gleam_otp/README.md delete mode 100644 aoc2023/build/packages/gleam_otp/gleam.toml delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Continue.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Ready.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Spec.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@intensity_tracker_IntensityTracker.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@supervisor_ChildSpec.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@supervisor_Spec.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@system_StatusInfo.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@task_Exit.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/include/gleam@otp@task_Task.hrl delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam/otp/actor.gleam delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam/otp/intensity_tracker.gleam delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam/otp/port.gleam delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam/otp/supervisor.gleam delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam/otp/system.gleam delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam/otp/task.gleam delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam@otp@actor.erl delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam@otp@intensity_tracker.erl delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam@otp@port.erl delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam@otp@supervisor.erl delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam@otp@system.erl delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam@otp@task.erl delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam_otp.app.src delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam_otp.erl delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam_otp.gleam delete mode 100644 aoc2023/build/packages/gleam_otp/src/gleam_otp_external.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/LICENCE delete mode 100644 aoc2023/build/packages/gleam_stdlib/README.md delete mode 100644 aoc2023/build/packages/gleam_stdlib/gleam.toml delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@dynamic_DecodeError.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@iterator_Iterator.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@iterator_Next.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@queue_Queue.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@regex_CompileError.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@regex_Match.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@regex_Options.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@set_Set.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/include/gleam@uri_Uri.hrl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/dict.mjs delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/base.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/bit_array.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/bit_builder.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/bit_string.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/bool.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/bytes_builder.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/dict.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/dynamic.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/float.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/function.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/int.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/io.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/iterator.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/list.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/map.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/option.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/order.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/pair.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/queue.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/regex.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/result.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/set.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/string.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/string_builder.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam/uri.gleam delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@base.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@bit_array.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@bit_builder.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@bit_string.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@bool.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@bytes_builder.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@dict.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@dynamic.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@float.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@function.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@int.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@io.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@iterator.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@list.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@map.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@order.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@pair.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@queue.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@regex.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@result.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@set.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@string.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@string_builder.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam@uri.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.app.src delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.erl delete mode 100644 aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.mjs delete mode 100644 aoc2023/build/packages/glint/LICENSE delete mode 100644 aoc2023/build/packages/glint/README.md delete mode 100644 aoc2023/build/packages/glint/gleam.toml delete mode 100644 aoc2023/build/packages/glint/include/glint@flag_Flag.hrl delete mode 100644 aoc2023/build/packages/glint/include/glint@flag_FlagBuilder.hrl delete mode 100644 aoc2023/build/packages/glint/include/glint@flag_Internal.hrl delete mode 100644 aoc2023/build/packages/glint/include/glint_Command.hrl delete mode 100644 aoc2023/build/packages/glint/include/glint_CommandInput.hrl delete mode 100644 aoc2023/build/packages/glint/include/glint_Config.hrl delete mode 100644 aoc2023/build/packages/glint/include/glint_Glint.hrl delete mode 100644 aoc2023/build/packages/glint/include/glint_PrettyHelp.hrl delete mode 100644 aoc2023/build/packages/glint/include/glint_Stub.hrl delete mode 100644 aoc2023/build/packages/glint/src/glint.app.src delete mode 100644 aoc2023/build/packages/glint/src/glint.erl delete mode 100644 aoc2023/build/packages/glint/src/glint.gleam delete mode 100644 aoc2023/build/packages/glint/src/glint/flag.gleam delete mode 100644 aoc2023/build/packages/glint/src/glint/flag/constraint.gleam delete mode 100644 aoc2023/build/packages/glint/src/glint@flag.erl delete mode 100644 aoc2023/build/packages/glint/src/glint@flag@constraint.erl delete mode 100644 aoc2023/build/packages/packages.toml delete mode 100644 aoc2023/build/packages/pqueue/LICENSE delete mode 100644 aoc2023/build/packages/pqueue/README.markdown delete mode 100644 aoc2023/build/packages/pqueue/doc/edoc-info delete mode 100644 aoc2023/build/packages/pqueue/doc/erlang.png delete mode 100644 aoc2023/build/packages/pqueue/doc/index.html delete mode 100644 aoc2023/build/packages/pqueue/doc/modules-frame.html delete mode 100644 aoc2023/build/packages/pqueue/doc/overview-summary.html delete mode 100644 aoc2023/build/packages/pqueue/doc/pqueue.html delete mode 100644 aoc2023/build/packages/pqueue/doc/pqueue2.html delete mode 100644 aoc2023/build/packages/pqueue/doc/pqueue3.html delete mode 100644 aoc2023/build/packages/pqueue/doc/pqueue4.html delete mode 100644 aoc2023/build/packages/pqueue/doc/stylesheet.css delete mode 100644 aoc2023/build/packages/pqueue/rebar.config delete mode 100644 aoc2023/build/packages/pqueue/src/pqueue.app.src delete mode 100644 aoc2023/build/packages/pqueue/src/pqueue.erl delete mode 100644 aoc2023/build/packages/pqueue/src/pqueue2.erl delete mode 100644 aoc2023/build/packages/pqueue/src/pqueue3.erl delete mode 100644 aoc2023/build/packages/pqueue/src/pqueue4.erl delete mode 100644 aoc2023/build/packages/pqueue/src/pqueue_test.hrl delete mode 100644 aoc2023/build/packages/pqueue/test/pqueue_proper.erl delete mode 100644 aoc2023/build/packages/pqueue/test/queue_srv.erl delete mode 100644 aoc2023/build/packages/simplifile/README.md delete mode 100644 aoc2023/build/packages/simplifile/gleam.toml delete mode 100644 aoc2023/build/packages/simplifile/src/simplifile.app.src delete mode 100644 aoc2023/build/packages/simplifile/src/simplifile.erl delete mode 100644 aoc2023/build/packages/simplifile/src/simplifile.gleam delete mode 100644 aoc2023/build/packages/simplifile/src/simplifile_erl.erl delete mode 100644 aoc2023/build/packages/simplifile/src/simplifile_js.mjs delete mode 100644 aoc2023/build/packages/snag/LICENCE delete mode 100644 aoc2023/build/packages/snag/README.md delete mode 100644 aoc2023/build/packages/snag/gleam.toml delete mode 100644 aoc2023/build/packages/snag/include/snag_Snag.hrl delete mode 100644 aoc2023/build/packages/snag/src/snag.app.src delete mode 100644 aoc2023/build/packages/snag/src/snag.erl delete mode 100644 aoc2023/build/packages/snag/src/snag.gleam delete mode 100644 aoc2023/build/packages/tom/README.md delete mode 100644 aoc2023/build/packages/tom/gleam.toml delete mode 100644 aoc2023/build/packages/tom/include/tom_DateTimeValue.hrl delete mode 100644 aoc2023/build/packages/tom/include/tom_DateValue.hrl delete mode 100644 aoc2023/build/packages/tom/include/tom_KeyAlreadyInUse.hrl delete mode 100644 aoc2023/build/packages/tom/include/tom_NotFound.hrl delete mode 100644 aoc2023/build/packages/tom/include/tom_Offset.hrl delete mode 100644 aoc2023/build/packages/tom/include/tom_TimeValue.hrl delete mode 100644 aoc2023/build/packages/tom/include/tom_Unexpected.hrl delete mode 100644 aoc2023/build/packages/tom/include/tom_WrongType.hrl delete mode 100644 aoc2023/build/packages/tom/src/tom.app.src delete mode 100644 aoc2023/build/packages/tom/src/tom.erl delete mode 100644 aoc2023/build/packages/tom/src/tom.gleam delete mode 100644 aoc2023/build/prod/erlang/gleam.lock delete mode 100644 aoc2023/build/prod/javascript/gleam.lock delete mode 100644 aoc2023/erl_crash.dump delete mode 100644 aoc2023/src/day1/input.txt delete mode 100644 aoc2023/src/day10/input.txt delete mode 100644 aoc2023/src/day11/input.txt delete mode 100644 aoc2023/src/day13/input.txt delete mode 100644 aoc2023/src/day15/input.txt delete mode 100644 aoc2023/src/day16/input.txt delete mode 100644 aoc2023/src/day17/input.txt delete mode 100644 aoc2023/src/day18/input.txt delete mode 100644 aoc2023/src/day19/input.txt delete mode 100644 aoc2023/src/day2/input.txt delete mode 100644 aoc2023/src/day20/input.txt delete mode 100644 aoc2023/src/day3/input.txt delete mode 100644 aoc2023/src/day4/input.txt delete mode 100644 aoc2023/src/day6/input.txt delete mode 100644 aoc2023/src/day7/input.txt delete mode 100644 aoc2023/src/day8/input.txt delete mode 100644 aoc2023/src/day9/input.txt (limited to 'aoc2023') diff --git a/aoc2023/aoc.toml b/aoc2023/aoc.toml deleted file mode 100644 index 3843235..0000000 --- a/aoc2023/aoc.toml +++ /dev/null @@ -1,4 +0,0 @@ -version = 2 -year = "2023" -session = "53616c7465645f5f9b329c2ce8962445c1bf7e50415667e182265b26a30deb203787e6f505943bd2ee4a7bbb39e99ac4cf724a722d58e3c1984b7f30af6be76d" -showtime = true diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.cache deleted file mode 100644 index 939bda2..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.cache_meta deleted file mode 100644 index 0af4a84..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.erl deleted file mode 100644 index e3ceebe..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent.erl +++ /dev/null @@ -1,55 +0,0 @@ --module(adglent). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([inspect/1, get_input/1, get_test_folder/1, start_arguments/0, get_part/0]). --export_type([example/1, problem/0, charlist/0]). - --type example(ODD) :: {example, binary(), ODD}. - --type problem() :: first | second. - --type charlist() :: any(). - --spec inspect(any()) -> binary(). -inspect(Value) -> - Inspected_value = gleam@string:inspect(Value), - case begin - _pipe = Inspected_value, - gleam@string:starts_with(_pipe, <<"\""/utf8>>) - end of - true -> - _pipe@1 = Inspected_value, - _pipe@2 = gleam@string:drop_left(_pipe@1, 1), - gleam@string:drop_right(_pipe@2, 1); - - false -> - Inspected_value - end. - --spec get_input(binary()) -> {ok, binary()} | {error, simplifile:file_error()}. -get_input(Day) -> - simplifile:read( - <<<<"src/day"/utf8, Day/binary>>/binary, "/input.txt"/utf8>> - ). - --spec get_test_folder(binary()) -> binary(). -get_test_folder(Day) -> - <<"test/day"/utf8, Day/binary>>. - --spec start_arguments() -> list(binary()). -start_arguments() -> - _pipe = init:get_plain_arguments(), - gleam@list:map(_pipe, fun unicode:characters_to_binary/1). - --spec get_part() -> {ok, problem()} | {error, nil}. -get_part() -> - case start_arguments() of - [<<"1"/utf8>>] -> - {ok, first}; - - [<<"2"/utf8>>] -> - {ok, second}; - - _ -> - {error, nil} - end. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.cache deleted file mode 100644 index a39d38a..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.cache_meta deleted file mode 100644 index 1637f81..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.erl deleted file mode 100644 index b80368f..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@day.erl +++ /dev/null @@ -1,278 +0,0 @@ --module(adglent@day). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec create_file_if_not_present(binary(), binary()) -> {ok, binary()} | - {error, binary()}. -create_file_if_not_present(Content, Path) -> - case simplifile:is_file(Path) of - true -> - {ok, <>}; - - false -> - gleam@result:'try'( - begin - _pipe = simplifile:create_file(Path), - priv@errors:map_messages( - _pipe, - <<"Created "/utf8, Path/binary>>, - <<"Could not create "/utf8, Path/binary>> - ) - end, - fun(_) -> _pipe@1 = simplifile:write(Path, Content), - priv@errors:map_messages( - _pipe@1, - <<"Wrote "/utf8, Path/binary>>, - <<"Could not write to "/utf8, Path/binary>> - ) end - ) - end. - --spec main() -> binary(). -main() -> - Day@1 = begin - _pipe = case adglent:start_arguments() of - [Day] -> - {ok, Day}; - - Args -> - {error, - <<"Expected day - found: "/utf8, - (gleam@string:join(Args, <<", "/utf8>>))/binary>>} - end, - _pipe@1 = priv@errors:map_error( - _pipe, - <<"Error when parsing command args"/utf8>> - ), - _pipe@2 = priv@errors:print_error(_pipe@1), - priv@errors:assert_ok(_pipe@2) - end, - Aoc_toml = begin - _pipe@3 = simplifile:read(<<"aoc.toml"/utf8>>), - _pipe@4 = priv@errors:map_error( - _pipe@3, - <<"Could not read aoc.toml"/utf8>> - ), - _pipe@5 = priv@errors:print_error(_pipe@4), - priv@errors:assert_ok(_pipe@5) - end, - Aoc_toml_version = priv@toml:get_int(Aoc_toml, [<<"version"/utf8>>]), - Year = begin - _pipe@6 = priv@toml:get_string(Aoc_toml, [<<"year"/utf8>>]), - _pipe@7 = priv@errors:map_error( - _pipe@6, - <<"Could not read \"year\" from aoc.toml"/utf8>> - ), - _pipe@8 = priv@errors:print_error(_pipe@7), - priv@errors:assert_ok(_pipe@8) - end, - Session = begin - _pipe@9 = priv@toml:get_string(Aoc_toml, [<<"session"/utf8>>]), - _pipe@10 = priv@errors:map_error( - _pipe@9, - <<"Could not read \"session\" from aoc.toml"/utf8>> - ), - _pipe@11 = priv@errors:print_error(_pipe@10), - priv@errors:assert_ok(_pipe@11) - end, - Showtime = case Aoc_toml_version of - {ok, 2} -> - _pipe@12 = priv@toml:get_bool(Aoc_toml, [<<"showtime"/utf8>>]), - _pipe@13 = priv@errors:map_error( - _pipe@12, - <<"Could not read \"showtime\" from aoc.toml"/utf8>> - ), - _pipe@14 = priv@errors:print_error(_pipe@13), - priv@errors:assert_ok(_pipe@14); - - _ -> - _pipe@15 = priv@toml:get_string(Aoc_toml, [<<"showtime"/utf8>>]), - _pipe@16 = gleam@result:map( - _pipe@15, - fun(Bool_string) -> case Bool_string of - <<"True"/utf8>> -> - true; - - _ -> - false - end end - ), - _pipe@17 = priv@errors:map_error( - _pipe@16, - <<"Could not read \"showtime\" from aoc.toml"/utf8>> - ), - _pipe@18 = priv@errors:print_error(_pipe@17), - priv@errors:assert_ok(_pipe@18) - end, - Test_folder = adglent:get_test_folder(Day@1), - Test_file = <<<<<>/binary, Day@1/binary>>/binary, - "_test.gleam"/utf8>>, - _pipe@19 = simplifile:create_directory_all(Test_folder), - _pipe@20 = priv@errors:map_error( - _pipe@19, - <<<<"Could not create folder \""/utf8, Test_folder/binary>>/binary, - "\""/utf8>> - ), - _pipe@21 = priv@errors:print_error(_pipe@20), - priv@errors:assert_ok(_pipe@21), - Testfile_template = case Showtime of - true -> - <<" -import gleam/list -import showtime/tests/should -import adglent.{type Example, Example} -import day{{ day }}/solve - -type Problem1AnswerType = - String - -type Problem2AnswerType = - String - -/// Add examples for part 1 here: -/// ```gleam -///const part1_examples: List(Example(Problem1AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part1_examples: List(Example(Problem1AnswerType)) = [] - -/// Add examples for part 2 here: -/// ```gleam -///const part2_examples: List(Example(Problem2AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part2_examples: List(Example(Problem2AnswerType)) = [] - -pub fn part1_test() { - part1_examples - |> should.not_equal([]) - use example <- list.map(part1_examples) - solve.part1(example.input) - |> should.equal(example.answer) -} - -pub fn part2_test() { - part2_examples - |> should.not_equal([]) - use example <- list.map(part2_examples) - solve.part2(example.input) - |> should.equal(example.answer) -} - -"/utf8>>; - - false -> - <<" -import gleam/list -import gleeunit/should -import adglent.{type Example, Example} -import day{{ day }}/solve - -type Problem1AnswerType = - String - -type Problem2AnswerType = - String - -/// Add examples for part 1 here: -/// ```gleam -///const part1_examples: List(Example(Problem1AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part1_examples: List(Example(Problem1AnswerType)) = [] - -/// Add examples for part 2 here: -/// ```gleam -///const part2_examples: List(Example(Problem2AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part2_examples: List(Example(Problem2AnswerType)) = [] - -pub fn part1_test() { - part1_examples - |> should.not_equal([]) - use example <- list.map(part1_examples) - solve.part1(example.input) - |> should.equal(example.answer) -} - -pub fn part2_test() { - part2_examples - |> should.not_equal([]) - use example <- list.map(part2_examples) - solve.part2(example.input) - |> should.equal(example.answer) -} - -"/utf8>> - end, - _pipe@22 = priv@template:render( - Testfile_template, - [{<<"day"/utf8>>, Day@1}] - ), - _pipe@23 = create_file_if_not_present(_pipe@22, Test_file), - _pipe@24 = priv@errors:print_result(_pipe@23), - priv@errors:assert_ok(_pipe@24), - Solutions_folder = <<"src/day"/utf8, Day@1/binary>>, - Solution_file = <>, - _pipe@25 = simplifile:create_directory_all(Solutions_folder), - _pipe@26 = priv@errors:map_error( - _pipe@25, - <<<<"Could not create folder \""/utf8, Solutions_folder/binary>>/binary, - "\""/utf8>> - ), - _pipe@27 = priv@errors:print_error(_pipe@26), - priv@errors:assert_ok(_pipe@27), - _pipe@28 = priv@template:render( - <<" -import adglent.{First, Second} -import gleam/io - -pub fn part1(input: String) { - todo as \"Implement solution to part 1\" -} - -pub fn part2(input: String) { - todo as \"Implement solution to part 2\" -} - -pub fn main() { - let assert Ok(part) = adglent.get_part() - let assert Ok(input) = adglent.get_input(\"{{ day }}\") - case part { - First -> - part1(input) - |> adglent.inspect - |> io.println - Second -> - part2(input) - |> adglent.inspect - |> io.println - } -} -"/utf8>>, - [{<<"day"/utf8>>, Day@1}] - ), - _pipe@29 = create_file_if_not_present(_pipe@28, Solution_file), - _pipe@30 = priv@errors:print_result(_pipe@29), - priv@errors:assert_ok(_pipe@30), - _pipe@31 = create_file_if_not_present( - <<"input.txt"/utf8>>, - <> - ), - _pipe@32 = priv@errors:print_result(_pipe@31), - priv@errors:assert_ok(_pipe@32), - Input = begin - _pipe@33 = priv@aoc_client:get_input(Year, Day@1, Session), - _pipe@34 = priv@errors:map_error( - _pipe@33, - <<"Error when fetching input"/utf8>> - ), - _pipe@35 = priv@errors:print_error(_pipe@34), - priv@errors:assert_ok(_pipe@35) - end, - _pipe@36 = Input, - _pipe@37 = gleam@string:trim(_pipe@36), - _pipe@38 = create_file_if_not_present( - _pipe@37, - <> - ), - _pipe@39 = priv@errors:print_result(_pipe@38), - priv@errors:assert_ok(_pipe@39). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.cache deleted file mode 100644 index 5337c50..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.cache_meta deleted file mode 100644 index 2751b68..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.erl deleted file mode 100644 index fb28101..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent@init.erl +++ /dev/null @@ -1,142 +0,0 @@ --module(adglent@init). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec main() -> {ok, binary()} | {error, binary()}. -main() -> - Year = priv@prompt:value(<<"Year"/utf8>>, <<"2023"/utf8>>, false), - Session = priv@prompt:value(<<"Session Cookie"/utf8>>, <<""/utf8>>, false), - Use_showtime = priv@prompt:confirm(<<"Use showtime"/utf8>>, false), - Aoc_toml_file = <<"aoc.toml"/utf8>>, - Overwrite = case simplifile:create_file(Aoc_toml_file) of - {ok, _} -> - true; - - {error, eexist} -> - priv@prompt:confirm(<<"aoc.toml exits - overwrite"/utf8>>, false); - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"Could not create aoc.toml"/utf8>>, - module => <<"adglent/init"/utf8>>, - function => <<"main"/utf8>>, - line => 29}) - end, - _pipe@3 = case Overwrite of - true -> - _pipe@1 = priv@template:render( - <<" -version = {{ version }} -year = \"{{ year }}\" -session = \"{{ session }}\" -showtime = {{ showtime }} -"/utf8>>, - [{<<"version"/utf8>>, <<"2"/utf8>>}, - {<<"year"/utf8>>, Year}, - {<<"session"/utf8>>, Session}, - {<<"showtime"/utf8>>, - begin - _pipe = gleam@bool:to_string(Use_showtime), - gleam@string:lowercase(_pipe) - end}] - ), - _pipe@2 = simplifile:write(Aoc_toml_file, _pipe@1), - priv@errors:map_messages( - _pipe@2, - <<"aoc.toml - written"/utf8>>, - <<"Error when writing aoc.toml"/utf8>> - ); - - false -> - {ok, <<"aoc.toml - skipped"/utf8>>} - end, - priv@errors:print_result(_pipe@3), - Gleam_toml = begin - _pipe@4 = simplifile:read(<<"gleam.toml"/utf8>>), - _pipe@5 = priv@errors:map_error( - _pipe@4, - <<"Could not read gleam.toml"/utf8>> - ), - _pipe@6 = priv@errors:print_error(_pipe@5), - priv@errors:assert_ok(_pipe@6) - end, - Name = begin - _pipe@7 = priv@toml:get_string(Gleam_toml, [<<"name"/utf8>>]), - _pipe@8 = priv@errors:map_error( - _pipe@7, - <<"Could not read \"name\" from gleam.toml"/utf8>> - ), - _pipe@9 = priv@errors:print_error(_pipe@8), - priv@errors:assert_ok(_pipe@9) - end, - Test_main_file = <<<<"test/"/utf8, Name/binary>>/binary, - "_test.gleam"/utf8>>, - _pipe@12 = case Use_showtime of - true -> - _pipe@10 = priv@template:render( - <<" -import showtime - -pub fn main() { - showtime.main() -} -"/utf8>>, - [] - ), - _pipe@11 = simplifile:write(Test_main_file, _pipe@10), - priv@errors:map_messages( - _pipe@11, - <<"Wrote "/utf8, Test_main_file/binary>>, - <<"Could not write to "/utf8, Test_main_file/binary>> - ); - - false -> - {ok, <<"Using existing (gleeunit) "/utf8, Test_main_file/binary>>} - end, - _pipe@13 = priv@errors:print_result(_pipe@12), - priv@errors:assert_ok(_pipe@13), - _pipe@17 = case simplifile:is_file(<<".gitignore"/utf8>>) of - true -> - gleam@result:'try'( - begin - _pipe@14 = simplifile:read(<<".gitignore"/utf8>>), - gleam@result:map_error( - _pipe@14, - fun(Err) -> - <<"Could not read .gitignore: "/utf8, - (gleam@string:inspect(Err))/binary>> - end - ) - end, - fun(Gitignore) -> - Aoc_toml_ignored = begin - _pipe@15 = gleam@string:split(Gitignore, <<"\n"/utf8>>), - gleam@list:find( - _pipe@15, - fun(Line) -> Line =:= <<"aoc.toml"/utf8>> end - ) - end, - case Aoc_toml_ignored of - {error, _} -> - _pipe@16 = simplifile:append( - <<".gitignore"/utf8>>, - <<"\naoc.toml"/utf8>> - ), - priv@errors:map_messages( - _pipe@16, - <<".gitignore written"/utf8>>, - <<"Error when writing .gitignore"/utf8>> - ); - - {ok, _} -> - {ok, - <<".gitignore - skipped (already configured)"/utf8>>} - end - end - ); - - false -> - {error, <<"Could not find .gitignore"/utf8>>} - end, - priv@errors:print_result(_pipe@17). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent_ffi.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent_ffi.erl deleted file mode 100644 index a6a92e6..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/adglent_ffi.erl +++ /dev/null @@ -1,12 +0,0 @@ --module(adglent_ffi). - --export([get_line/1]). - --spec get_line(io:prompt()) -> {ok, unicode:unicode_binary()} | {error, eof | no_data}. -get_line(Prompt) -> - case io:get_line(Prompt) of - eof -> {error, eof}; - {error, _} -> {error, no_data}; - Data when is_binary(Data) -> {ok, Data}; - Data when is_list(Data) -> {ok, unicode:characters_to_binary(Data)} - end. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache deleted file mode 100644 index 40f6caf..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache_meta deleted file mode 100644 index b6c1617..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.erl deleted file mode 100644 index 1acb9b5..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@aoc_client.erl +++ /dev/null @@ -1,61 +0,0 @@ --module(priv@aoc_client). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get_input/3]). - --spec get_input(binary(), binary(), binary()) -> {ok, binary()} | - {error, binary()}. -get_input(Year, Day, Session) -> - Url = <<<<<<<<"https://adventofcode.com/"/utf8, Year/binary>>/binary, - "/day/"/utf8>>/binary, - Day/binary>>/binary, - "/input"/utf8>>, - gleam@result:'try'( - begin - _pipe = gleam@http@request:to(Url), - gleam@result:map_error( - _pipe, - fun(Error) -> - <<<<<<"Could not create request for \""/utf8, Url/binary>>/binary, - "\": "/utf8>>/binary, - (gleam@string:inspect(Error))/binary>> - end - ) - end, - fun(Request) -> - gleam@result:'try'( - begin - _pipe@1 = Request, - _pipe@2 = gleam@http@request:prepend_header( - _pipe@1, - <<"Accept"/utf8>>, - <<"application/json"/utf8>> - ), - _pipe@3 = gleam@http@request:prepend_header( - _pipe@2, - <<"Cookie"/utf8>>, - <<<<"session="/utf8, Session/binary>>/binary, ";"/utf8>> - ), - _pipe@4 = gleam@httpc:send(_pipe@3), - gleam@result:map_error( - _pipe@4, - fun(Error@1) -> - <<<<<<"Error when requesting \""/utf8, Url/binary>>/binary, - "\": "/utf8>>/binary, - (gleam@string:inspect(Error@1))/binary>> - end - ) - end, - fun(Response) -> case erlang:element(2, Response) of - Status when (Status >= 200) andalso (Status < 300) -> - {ok, erlang:element(4, Response)}; - - Status@1 -> - {error, - <<<<(gleam@int:to_string(Status@1))/binary, - " - "/utf8>>/binary, - (erlang:element(4, Response))/binary>>} - end end - ) - end - ). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.cache deleted file mode 100644 index 7bfeea9..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.cache_meta deleted file mode 100644 index 498e302..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.erl deleted file mode 100644 index 41545be..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@errors.erl +++ /dev/null @@ -1,74 +0,0 @@ --module(priv@errors). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([map_messages/3, map_error/2, print_result/1, print_error/1, assert_ok/1]). - --spec map_messages({ok, any()} | {error, any()}, binary(), binary()) -> {ok, - binary()} | - {error, binary()}. -map_messages(Result, Success_message, Error_message) -> - _pipe = Result, - _pipe@1 = gleam@result:map_error( - _pipe, - fun(Error) -> - <<<<<<"Error - "/utf8, Error_message/binary>>/binary, ": "/utf8>>/binary, - (gleam@string:inspect(Error))/binary>> - end - ), - gleam@result:replace(_pipe@1, Success_message). - --spec map_error({ok, OBD} | {error, any()}, binary()) -> {ok, OBD} | - {error, binary()}. -map_error(Result, Error_message) -> - _pipe = Result, - gleam@result:map_error( - _pipe, - fun(Error) -> - <<<>/binary, - (gleam@string:inspect(Error))/binary>> - end - ). - --spec print_result({ok, binary()} | {error, binary()}) -> {ok, binary()} | - {error, binary()}. -print_result(Result) -> - _pipe = Result, - _pipe@1 = gleam@result:unwrap_both(_pipe), - gleam@io:println(_pipe@1), - Result. - --spec print_error({ok, OBM} | {error, binary()}) -> {ok, OBM} | - {error, binary()}. -print_error(Result) -> - _pipe = Result, - gleam@result:map_error( - _pipe, - fun(Err) -> - gleam@io:println(Err), - Err - end - ). - --spec assert_ok({ok, OBQ} | {error, binary()}) -> OBQ. -assert_ok(Result) -> - _assert_subject = begin - _pipe = Result, - gleam@result:map_error( - _pipe, - fun(Err) -> - erlang:halt(1), - Err - end - ) - end, - {ok, Value} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"priv/errors"/utf8>>, - function => <<"assert_ok"/utf8>>, - line => 43}) - end, - Value. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.cache deleted file mode 100644 index 45d6e3e..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.cache_meta deleted file mode 100644 index b010daf..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.erl deleted file mode 100644 index 0277f14..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@prompt.erl +++ /dev/null @@ -1,53 +0,0 @@ --module(priv@prompt). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get_line/1, confirm/2, value/3]). --export_type([get_line_error/0]). - --type get_line_error() :: eof | no_data. - --spec get_line(binary()) -> {ok, binary()} | {error, get_line_error()}. -get_line(Prompt) -> - adglent_ffi:get_line(Prompt). - --spec confirm(binary(), boolean()) -> boolean(). -confirm(Message, Auto_accept) -> - Auto_accept orelse case begin - _pipe = adglent_ffi:get_line(<>), - _pipe@1 = gleam@result:unwrap(_pipe, <<"n"/utf8>>), - gleam@string:trim(_pipe@1) - end of - <<"Y"/utf8>> -> - true; - - <<"y"/utf8>> -> - true; - - _ -> - false - end. - --spec get_value_of_default(binary(), binary(), boolean()) -> binary(). -get_value_of_default(Message, Default, Auto_accept) -> - case Auto_accept of - true -> - Default; - - false -> - _pipe = adglent_ffi:get_line( - <<<<<>/binary, Default/binary>>/binary, - "): "/utf8>> - ), - _pipe@1 = gleam@result:unwrap(_pipe, <<""/utf8>>), - gleam@string:trim(_pipe@1) - end. - --spec value(binary(), binary(), boolean()) -> binary(). -value(Message, Default, Auto_accept) -> - case get_value_of_default(Message, Default, Auto_accept) of - <<""/utf8>> -> - Default; - - Value -> - Value - end. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.cache deleted file mode 100644 index 8446302..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.cache_meta deleted file mode 100644 index 5e1f919..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.erl deleted file mode 100644 index 6a5d0bf..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@template.erl +++ /dev/null @@ -1,25 +0,0 @@ --module(priv@template). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([render/2]). - --spec render(binary(), list({binary(), binary()})) -> binary(). -render(Template, Substitutions) -> - <<(begin - _pipe = Substitutions, - _pipe@2 = gleam@list:fold( - _pipe, - Template, - fun(Template@1, Substitution) -> - {Name, Value} = Substitution, - _pipe@1 = Template@1, - gleam@string:replace( - _pipe@1, - <<<<"{{ "/utf8, Name/binary>>/binary, " }}"/utf8>>, - Value - ) - end - ), - gleam@string:trim(_pipe@2) - end)/binary, - "\n"/utf8>>. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache deleted file mode 100644 index d29fd97..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache_meta deleted file mode 100644 index 3397840..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.erl deleted file mode 100644 index 7e36387..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@solution.erl +++ /dev/null @@ -1 +0,0 @@ --module(priv@templates@solution). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache deleted file mode 100644 index 8cdc9df..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache_meta deleted file mode 100644 index 17c867f..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.erl deleted file mode 100644 index ca6b127..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@test_main.erl +++ /dev/null @@ -1 +0,0 @@ --module(priv@templates@test_main). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache deleted file mode 100644 index 2003723..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache_meta deleted file mode 100644 index c996833..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.erl deleted file mode 100644 index 2f5a41e..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.erl +++ /dev/null @@ -1 +0,0 @@ --module(priv@templates@testfile_gleeunit). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache deleted file mode 100644 index 155ee1e..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache_meta deleted file mode 100644 index 120c91f..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.erl deleted file mode 100644 index bbbc8b2..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.erl +++ /dev/null @@ -1 +0,0 @@ --module(priv@templates@testfile_showtime). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.cache deleted file mode 100644 index e328098..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.cache_meta deleted file mode 100644 index a423083..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.erl deleted file mode 100644 index 6c41fbf..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/priv@toml.erl +++ /dev/null @@ -1,83 +0,0 @@ --module(priv@toml). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get_string/2, get_bool/2, get_int/2]). --export_type([tom_error/0]). - --type tom_error() :: {tom_parse_error, tom:parse_error()} | - {tom_get_error, tom:get_error()}. - --spec get_string(binary(), list(binary())) -> {ok, binary()} | - {error, tom_error()}. -get_string(Toml_content, Key_path) -> - gleam@result:'try'( - begin - _pipe = tom:parse(<>), - gleam@result:map_error( - _pipe, - fun(Field@0) -> {tom_parse_error, Field@0} end - ) - end, - fun(Toml) -> - gleam@result:'try'( - begin - _pipe@1 = tom:get_string(Toml, Key_path), - gleam@result:map_error( - _pipe@1, - fun(Field@0) -> {tom_get_error, Field@0} end - ) - end, - fun(Value) -> {ok, Value} end - ) - end - ). - --spec get_bool(binary(), list(binary())) -> {ok, boolean()} | - {error, tom_error()}. -get_bool(Toml_content, Key_path) -> - gleam@result:'try'( - begin - _pipe = tom:parse(<>), - gleam@result:map_error( - _pipe, - fun(Field@0) -> {tom_parse_error, Field@0} end - ) - end, - fun(Toml) -> - gleam@result:'try'( - begin - _pipe@1 = tom:get_bool(Toml, Key_path), - gleam@result:map_error( - _pipe@1, - fun(Field@0) -> {tom_get_error, Field@0} end - ) - end, - fun(Value) -> {ok, Value} end - ) - end - ). - --spec get_int(binary(), list(binary())) -> {ok, integer()} | - {error, tom_error()}. -get_int(Toml_content, Key_path) -> - gleam@result:'try'( - begin - _pipe = tom:parse(<>), - gleam@result:map_error( - _pipe, - fun(Field@0) -> {tom_parse_error, Field@0} end - ) - end, - fun(Toml) -> - gleam@result:'try'( - begin - _pipe@1 = tom:get_int(Toml, Key_path), - gleam@result:map_error( - _pipe@1, - fun(Field@0) -> {tom_get_error, Field@0} end - ) - end, - fun(Value) -> {ok, Value} end - ) - end - ). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.cache deleted file mode 100644 index 19b5f6b..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.cache_meta deleted file mode 100644 index 96a5705..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.erl deleted file mode 100644 index d4c0030..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime.erl +++ /dev/null @@ -1,155 +0,0 @@ --module(showtime). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec mk_runner( - fun((gleam@option:option(list(binary())), list(binary()), showtime@internal@common@cli:capture()) -> NYW), - glint:command_input() -) -> NYW. -mk_runner(Func, Command) -> - _assert_subject = begin - _pipe = erlang:element(3, Command), - _pipe@1 = glint@flag:get_strings(_pipe, <<"modules"/utf8>>), - gleam@result:map(_pipe@1, fun(Modules) -> case Modules of - [] -> - none; - - Modules@1 -> - {some, Modules@1} - end end) - end, - {ok, Module_list} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime"/utf8>>, - function => <<"mk_runner"/utf8>>, - line => 91}) - end, - _assert_subject@1 = begin - _pipe@2 = erlang:element(3, Command), - glint@flag:get_strings(_pipe@2, <<"ignore"/utf8>>) - end, - {ok, Ignore_tags} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"showtime"/utf8>>, - function => <<"mk_runner"/utf8>>, - line => 100}) - end, - _assert_subject@2 = begin - _pipe@3 = erlang:element(3, Command), - _pipe@4 = glint@flag:get_string(_pipe@3, <<"capture"/utf8>>), - _pipe@5 = gleam@result:map( - _pipe@4, - fun(Arg) -> gleam@string:lowercase(Arg) end - ), - gleam@result:map(_pipe@5, fun(Arg@1) -> case Arg@1 of - <<"no"/utf8>> -> - no; - - <<"yes"/utf8>> -> - yes; - - <<"mixed"/utf8>> -> - mixed - end end) - end, - {ok, Capture_output} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"showtime"/utf8>>, - function => <<"mk_runner"/utf8>>, - line => 104}) - end, - Func(Module_list, Ignore_tags, Capture_output). - --spec start_with_args( - list(binary()), - fun((gleam@option:option(list(binary())), list(binary()), showtime@internal@common@cli:capture()) -> any()) -) -> nil. -start_with_args(Args, Func) -> - Modules_flag = begin - _pipe = glint@flag:string_list(), - _pipe@1 = glint@flag:default(_pipe, []), - glint@flag:description( - _pipe@1, - <<"Run only tests in the modules in this list"/utf8>> - ) - end, - Ignore_flag = begin - _pipe@2 = glint@flag:string_list(), - _pipe@3 = glint@flag:default(_pipe@2, []), - glint@flag:description( - _pipe@3, - <<"Ignore tests that are have tags matching a tag in this list"/utf8>> - ) - end, - Capture_flag = begin - _pipe@4 = glint@flag:string(), - _pipe@5 = glint@flag:default(_pipe@4, <<"no"/utf8>>), - _pipe@6 = glint@flag:constraint( - _pipe@5, - glint@flag@constraint:one_of( - [<<"yes"/utf8>>, <<"no"/utf8>>, <<"mixed"/utf8>>] - ) - ), - glint@flag:description( - _pipe@6, - <<"Capture output: no (default) - output when tests are run, yes - output is captured and shown in report, mixed - output when run and in report"/utf8>> - ) - end, - _pipe@7 = glint:new(), - _pipe@12 = glint:add( - _pipe@7, - [], - begin - _pipe@8 = glint:command( - fun(_capture) -> mk_runner(Func, _capture) end - ), - _pipe@9 = glint:flag(_pipe@8, <<"modules"/utf8>>, Modules_flag), - _pipe@10 = glint:flag(_pipe@9, <<"ignore"/utf8>>, Ignore_flag), - _pipe@11 = glint:flag(_pipe@10, <<"capture"/utf8>>, Capture_flag), - glint:description(_pipe@11, <<"Runs test"/utf8>>) - end - ), - _pipe@13 = glint:with_pretty_help(_pipe@12, glint:default_pretty_help()), - glint:run(_pipe@13, Args). - --spec main() -> nil. -main() -> - start_with_args( - gleam@erlang:start_arguments(), - fun(Module_list, Ignore_tags, Capture) -> - Test_event_handler = showtime@internal@erlang@event_handler:start(), - Test_module_handler = showtime@internal@erlang@module_handler:start( - Test_event_handler, - fun showtime@internal@erlang@discover:collect_test_functions/1, - fun showtime@internal@erlang@runner:run_test_suite/4, - Ignore_tags, - Capture - ), - Test_event_handler(start_test_run), - Modules = showtime@internal@erlang@discover:collect_modules( - Test_module_handler, - Module_list - ), - Test_event_handler( - {end_test_run, - begin - _pipe = Modules, - gleam@list:length(_pipe) - end} - ), - nil - end - ). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache deleted file mode 100644 index 0dded35..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache_meta deleted file mode 100644 index 4c3ebd3..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.erl deleted file mode 100644 index f2d2396..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(showtime@internal@common@cli). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([capture/0]). - --type capture() :: yes | no | mixed. - - diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache deleted file mode 100644 index df75ed9..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache_meta deleted file mode 100644 index cea0c4b..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.erl deleted file mode 100644 index 5ee9a85..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.erl +++ /dev/null @@ -1,131 +0,0 @@ --module(showtime@internal@common@common_event_handler). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([handle_event/3]). --export_type([test_state/0, handler_state/0]). - --type test_state() :: not_started | running | {finished, integer()}. - --type handler_state() :: {handler_state, - test_state(), - integer(), - gleam@dict:dict(binary(), gleam@dict:dict(binary(), showtime@internal@common@test_suite:test_run()))}. - --spec handle_event( - showtime@internal@common@test_suite:test_event(), - fun(() -> integer()), - handler_state() -) -> handler_state(). -handle_event(Msg, System_time, State) -> - Test_state = erlang:element(2, State), - Num_done = erlang:element(3, State), - Events = erlang:element(4, State), - {Updated_test_state, Updated_num_done, Updated_events} = case Msg of - start_test_run -> - {running, Num_done, Events}; - - {start_test_suite, Module} -> - Maybe_module_events = gleam@map:get( - Events, - erlang:element(2, Module) - ), - New_events = case Maybe_module_events of - {ok, _} -> - Events; - - {error, _} -> - _pipe = Events, - gleam@map:insert( - _pipe, - erlang:element(2, Module), - gleam@map:new() - ) - end, - {Test_state, Num_done, New_events}; - - {start_test, Module@1, Test} -> - Current_time = System_time(), - Maybe_module_events@1 = gleam@map:get( - Events, - erlang:element(2, Module@1) - ), - New_events@1 = case Maybe_module_events@1 of - {ok, Module_events} -> - Maybe_test_event = gleam@map:get( - Module_events, - erlang:element(2, Test) - ), - case Maybe_test_event of - {error, _} -> - _pipe@1 = Events, - gleam@map:insert( - _pipe@1, - erlang:element(2, Module@1), - begin - _pipe@2 = Module_events, - gleam@map:insert( - _pipe@2, - erlang:element(2, Test), - {ongoing_test_run, Test, Current_time} - ) - end - ); - - {ok, _} -> - Events - end; - - {error, _} -> - Events - end, - {Test_state, Num_done, New_events@1}; - - {end_test, Module@2, Test@1, Result} -> - Current_time@1 = System_time(), - Maybe_module_events@2 = gleam@map:get( - Events, - erlang:element(2, Module@2) - ), - New_events@2 = case Maybe_module_events@2 of - {ok, Module_events@1} -> - Maybe_test_run = begin - _pipe@3 = Module_events@1, - gleam@map:get(_pipe@3, erlang:element(2, Test@1)) - end, - Updated_module_events = case Maybe_test_run of - {ok, {ongoing_test_run, Test_function, Started_at}} -> - _pipe@4 = Module_events@1, - gleam@map:insert( - _pipe@4, - erlang:element(2, Test@1), - {completed_test_run, - Test_function, - Current_time@1 - Started_at, - Result} - ); - - {error, _} -> - Module_events@1 - end, - _pipe@5 = Events, - gleam@map:insert( - _pipe@5, - erlang:element(2, Module@2), - Updated_module_events - ); - - {error, _} -> - Events - end, - {Test_state, Num_done, New_events@2}; - - {end_test_suite, _} -> - {Test_state, Num_done + 1, Events}; - - {end_test_run, Num_modules} -> - {{finished, Num_modules}, Num_done, Events}; - - _ -> - {running, Num_done, Events} - end, - {handler_state, Updated_test_state, Updated_num_done, Updated_events}. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache deleted file mode 100644 index c0f776e..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache_meta deleted file mode 100644 index ae0cd95..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.erl deleted file mode 100644 index 7f62f4f..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.erl +++ /dev/null @@ -1,54 +0,0 @@ --module(showtime@internal@common@test_result). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([ignore_reason/0, test_return/0, exception/0, reason/0, reason_detail/0, gleam_error_detail/0, class/0, trace_list/0, trace/0, extra_info/0, arity_/0]). - --type ignore_reason() :: ignore. - --type test_return() :: {test_function_return, - gleam@dynamic:dynamic_(), - list(binary())} | - {ignored, ignore_reason()}. - --type exception() :: {erlang_exception, - class(), - reason(), - trace_list(), - list(binary())}. - --type reason() :: {assert_equal, list(reason_detail())} | - {assert_not_equal, list(reason_detail())} | - {assert_match, list(reason_detail())} | - {gleam_error, gleam_error_detail()} | - {gleam_assert, gleam@dynamic:dynamic_(), integer()} | - {generic_exception, gleam@dynamic:dynamic_()}. - --type reason_detail() :: {module, binary()} | - {reason_line, integer()} | - {expression, binary()} | - {expected, gleam@dynamic:dynamic_()} | - {value, gleam@dynamic:dynamic_()} | - {pattern, binary()}. - --type gleam_error_detail() :: {let_assert, - binary(), - binary(), - integer(), - binary(), - gleam@dynamic:dynamic_()}. - --type class() :: erlang_error | exit | throw. - --type trace_list() :: {trace_list, list(trace())}. - --type trace() :: {trace, binary(), arity_(), list(extra_info())} | - {trace_module, binary(), binary(), arity_(), list(extra_info())}. - --type extra_info() :: {error_info, - gleam@dict:dict(gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_())} | - {file, binary()} | - {line, integer()}. - --type arity_() :: {num, integer()} | {arg_list, list(gleam@dynamic:dynamic_())}. - - diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache deleted file mode 100644 index 80885b8..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache_meta deleted file mode 100644 index b2139f9..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.erl deleted file mode 100644 index 6a56de8..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.erl +++ /dev/null @@ -1,30 +0,0 @@ --module(showtime@internal@common@test_suite). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([test_run/0, test_module/0, test_function/0, test_suite/0, test_event/0]). - --type test_run() :: {ongoing_test_run, test_function(), integer()} | - {completed_test_run, - test_function(), - integer(), - {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()}}. - --type test_module() :: {test_module, binary(), gleam@option:option(binary())}. - --type test_function() :: {test_function, binary()}. - --type test_suite() :: {test_suite, test_module(), list(test_function())}. - --type test_event() :: start_test_run | - {start_test_suite, test_module()} | - {start_test, test_module(), test_function()} | - {end_test, - test_module(), - test_function(), - {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()}} | - {end_test_suite, test_module()} | - {end_test_run, integer()}. - - diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache deleted file mode 100644 index 68f7428..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache_meta deleted file mode 100644 index 236dd39..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.erl deleted file mode 100644 index f0548aa..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.erl +++ /dev/null @@ -1,230 +0,0 @@ --module(showtime@internal@erlang@discover). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([collect_modules/2, collect_test_functions/1]). - --spec get_module_prefix(binary()) -> binary(). -get_module_prefix(Path) -> - Path_without_test = begin - _pipe = Path, - gleam@string:replace(_pipe, <<"./test"/utf8>>, <<""/utf8>>) - end, - Path_without_leading_slash = case gleam@string:starts_with( - Path_without_test, - <<"/"/utf8>> - ) of - true -> - gleam@string:drop_left(Path_without_test, 1); - - false -> - Path_without_test - end, - Module_prefix = begin - _pipe@1 = Path_without_leading_slash, - gleam@string:replace(_pipe@1, <<"/"/utf8>>, <<"@"/utf8>>) - end, - case gleam@string:length(Module_prefix) of - 0 -> - Module_prefix; - - _ -> - <> - end. - --spec collect_modules_in_folder( - binary(), - fun((showtime@internal@common@test_suite:test_module()) -> nil), - gleam@option:option(list(binary())) -) -> list(showtime@internal@common@test_suite:test_module()). -collect_modules_in_folder(Path, Test_module_handler, Only_modules) -> - Module_prefix = get_module_prefix(Path), - _assert_subject = simplifile:read_directory(Path), - {ok, Files} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/erlang/discover"/utf8>>, - function => <<"collect_modules_in_folder"/utf8>>, - line => 40}) - end, - Test_modules_in_folder = begin - _pipe = Files, - _pipe@1 = gleam@list:filter( - _pipe, - fun(_capture) -> - gleam@string:ends_with(_capture, <<"_test.gleam"/utf8>>) - end - ), - gleam@list:filter_map( - _pipe@1, - fun(Test_module_file) -> - Module_name = <>, - <<""/utf8>> - ) - end)/binary>>, - case Only_modules of - {some, Only_modules_list} -> - Module_in_list = begin - _pipe@3 = Only_modules_list, - gleam@list:any( - _pipe@3, - fun(Only_module_name) -> - Only_module_name =:= begin - _pipe@4 = Module_name, - gleam@string:replace( - _pipe@4, - <<"@"/utf8>>, - <<"/"/utf8>> - ) - end - end - ) - end, - case Module_in_list of - true -> - Test_module = {test_module, - Module_name, - {some, Test_module_file}}, - Test_module_handler(Test_module), - {ok, Test_module}; - - false -> - {error, nil} - end; - - none -> - Test_module@1 = {test_module, - Module_name, - {some, Test_module_file}}, - Test_module_handler(Test_module@1), - {ok, Test_module@1} - end - end - ) - end, - Test_modules_in_subfolders = begin - _pipe@5 = Files, - _pipe@6 = gleam@list:map( - _pipe@5, - fun(Filename) -> - <<<>/binary, Filename/binary>> - end - ), - _pipe@7 = gleam@list:filter( - _pipe@6, - fun(File) -> simplifile:is_directory(File) end - ), - gleam@list:fold( - _pipe@7, - [], - fun(Modules, Subfolder) -> _pipe@8 = Modules, - gleam@list:append( - _pipe@8, - collect_modules_in_folder( - Subfolder, - Test_module_handler, - Only_modules - ) - ) end - ) - end, - _pipe@9 = Test_modules_in_folder, - gleam@list:append(_pipe@9, Test_modules_in_subfolders). - --spec collect_modules( - fun((showtime@internal@common@test_suite:test_module()) -> nil), - gleam@option:option(list(binary())) -) -> list(showtime@internal@common@test_suite:test_module()). -collect_modules(Test_module_handler, Only_modules) -> - collect_modules_in_folder( - <<"./test"/utf8>>, - Test_module_handler, - Only_modules - ). - --spec collect_test_functions(showtime@internal@common@test_suite:test_module()) -> showtime@internal@common@test_suite:test_suite(). -collect_test_functions(Module) -> - Test_functions = begin - _pipe = erlang:apply( - erlang:binary_to_atom(erlang:element(2, Module)), - erlang:binary_to_atom(<<"module_info"/utf8>>), - [gleam@dynamic:from(erlang:binary_to_atom(<<"exports"/utf8>>))] - ), - gleam@dynamic:unsafe_coerce(_pipe) - end, - Test_functions_filtered = begin - _pipe@1 = Test_functions, - _pipe@3 = gleam@list:map( - _pipe@1, - fun(Entry) -> - {Name, Arity} = case Entry of - {_, _} -> Entry; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/erlang/discover"/utf8>>, - function => <<"collect_test_functions"/utf8>>, - line => 131}) - end, - {begin - _pipe@2 = Name, - erlang:atom_to_binary(_pipe@2) - end, - Arity} - end - ), - _pipe@4 = gleam@list:filter_map( - _pipe@3, - fun(Entry@1) -> - {Name@1, Arity@1} = case Entry@1 of - {_, _} -> Entry@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"showtime/internal/erlang/discover"/utf8>>, - function => <<"collect_test_functions"/utf8>>, - line => 139}) - end, - case gleam@string:ends_with(Name@1, <<"_test"/utf8>>) of - true -> - case Arity@1 of - 0 -> - {ok, Name@1}; - - _ -> - gleam@io:println( - <<<<<<<<"WARNING: function \""/utf8, - Name@1/binary>>/binary, - "\" has arity: "/utf8>>/binary, - (gleam@int:to_string(Arity@1))/binary>>/binary, - " - cannot be used as test (needs to be 0)"/utf8>> - ), - {error, <<"Wrong arity"/utf8>>} - end; - - false -> - {error, <<"Non matching name"/utf8>>} - end - end - ), - _pipe@5 = gleam@list:filter( - _pipe@4, - fun(_capture) -> - gleam@string:ends_with(_capture, <<"_test"/utf8>>) - end - ), - gleam@list:map( - _pipe@5, - fun(Function_name) -> {test_function, Function_name} end - ) - end, - {test_suite, Module, Test_functions_filtered}. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache deleted file mode 100644 index 60fea12..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache_meta deleted file mode 100644 index 1223c48..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.erl deleted file mode 100644 index d72ce2c..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.erl +++ /dev/null @@ -1,76 +0,0 @@ --module(showtime@internal@erlang@event_handler). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([start/0]). --export_type([event_handler_message/0]). - --type event_handler_message() :: {event_handler_message, - showtime@internal@common@test_suite:test_event(), - gleam@erlang@process:subject(integer())}. - --spec system_time() -> integer(). -system_time() -> - os:system_time(millisecond). - --spec start() -> fun((showtime@internal@common@test_suite:test_event()) -> nil). -start() -> - _assert_subject = gleam@otp@actor:start( - {not_started, 0, gleam@map:new()}, - fun(Msg, State) -> - {event_handler_message, Test_event, Reply_to} = Msg, - {Test_state, Num_done, Events} = State, - Updated_state = showtime@internal@common@common_event_handler:handle_event( - Test_event, - fun system_time/0, - {handler_state, Test_state, Num_done, Events} - ), - case Updated_state of - {handler_state, {finished, Num_modules}, Num_done@1, Events@1} when Num_done@1 =:= Num_modules -> - {Test_report, Num_failed} = showtime@internal@reports@formatter:create_test_report( - Events@1 - ), - gleam@io:println(Test_report), - gleam@erlang@process:send(Reply_to, Num_failed), - {stop, normal}; - - {handler_state, Test_state@1, Num_done@2, Events@2} -> - {continue, {Test_state@1, Num_done@2, Events@2}, none} - end - end - ), - {ok, Subject} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/erlang/event_handler"/utf8>>, - function => <<"start"/utf8>>, - line => 32}) - end, - Parent_subject = gleam@erlang@process:new_subject(), - Selector = begin - _pipe = gleam_erlang_ffi:new_selector(), - gleam@erlang@process:selecting(_pipe, Parent_subject, fun(X) -> X end) - end, - fun(Test_event@1) -> case Test_event@1 of - {end_test_run, _} -> - gleam@erlang@process:send( - Subject, - {event_handler_message, Test_event@1, Parent_subject} - ), - Num_failed@1 = gleam_erlang_ffi:select(Selector), - case Num_failed@1 > 0 of - true -> - erlang:halt(1); - - false -> - erlang:halt(0) - end; - - _ -> - gleam@erlang@process:send( - Subject, - {event_handler_message, Test_event@1, Parent_subject} - ) - end end. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache deleted file mode 100644 index 6b896ec..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache_meta deleted file mode 100644 index 7cd0c75..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.erl deleted file mode 100644 index a6959f5..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.erl +++ /dev/null @@ -1,53 +0,0 @@ --module(showtime@internal@erlang@module_handler). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([start/5]). - --spec start( - fun((showtime@internal@common@test_suite:test_event()) -> nil), - fun((showtime@internal@common@test_suite:test_module()) -> showtime@internal@common@test_suite:test_suite()), - fun((showtime@internal@common@test_suite:test_suite(), fun((showtime@internal@common@test_suite:test_event()) -> nil), list(binary()), showtime@internal@common@cli:capture()) -> nil), - list(binary()), - showtime@internal@common@cli:capture() -) -> fun((showtime@internal@common@test_suite:test_module()) -> nil). -start( - Test_event_handler, - Test_function_collector, - Run_test_suite, - Ignore_tags, - Capture -) -> - _assert_subject = gleam@otp@actor:start( - nil, - fun(Module, State) -> - gleam@erlang@process:start( - fun() -> - Test_suite = Test_function_collector(Module), - Test_event_handler({start_test_suite, Module}), - Run_test_suite( - Test_suite, - Test_event_handler, - Ignore_tags, - Capture - ), - Test_event_handler({end_test_suite, Module}) - end, - false - ), - {continue, State, none} - end - ), - {ok, Subject} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/erlang/module_handler"/utf8>>, - function => <<"start"/utf8>>, - line => 23}) - end, - fun(Test_module) -> - gleam@erlang@process:send(Subject, Test_module), - nil - end. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache deleted file mode 100644 index 91e7663..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache_meta deleted file mode 100644 index 069c9cf..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.erl deleted file mode 100644 index 702fb75..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.erl +++ /dev/null @@ -1,46 +0,0 @@ --module(showtime@internal@erlang@runner). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([run_test/4, run_test_suite/4]). - --spec run_test( - binary(), - binary(), - list(binary()), - showtime@internal@common@cli:capture() -) -> {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()}. -run_test(Module_name, Test_name, Ignore_tags, Capture) -> - Result = showtime_ffi:run_test( - erlang:binary_to_atom(Module_name), - erlang:binary_to_atom(Test_name), - Ignore_tags, - Capture - ), - Result. - --spec run_test_suite( - showtime@internal@common@test_suite:test_suite(), - fun((showtime@internal@common@test_suite:test_event()) -> nil), - list(binary()), - showtime@internal@common@cli:capture() -) -> nil. -run_test_suite(Test_suite, Test_event_handler, Ignore_tags, Capture) -> - _pipe = erlang:element(3, Test_suite), - gleam@list:each( - _pipe, - fun(Test) -> - Test_event_handler( - {start_test, erlang:element(2, Test_suite), Test} - ), - Result = run_test( - erlang:element(2, erlang:element(2, Test_suite)), - erlang:element(2, Test), - Ignore_tags, - Capture - ), - Test_event_handler( - {end_test, erlang:element(2, Test_suite), Test, Result} - ) - end - ). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache deleted file mode 100644 index bf88ac7..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache_meta deleted file mode 100644 index be99189..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.erl deleted file mode 100644 index d2969b2..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.erl +++ /dev/null @@ -1,61 +0,0 @@ --module(showtime@internal@reports@compare). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([compare/2]). - --spec compare(gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> {binary(), - binary()}. -compare(Expected, Got) -> - Expected_as_list = begin - _pipe = Expected, - (gleam@dynamic:list(fun gleam@dynamic:dynamic/1))(_pipe) - end, - Got_as_list = begin - _pipe@1 = Got, - (gleam@dynamic:list(fun gleam@dynamic:dynamic/1))(_pipe@1) - end, - Expected_as_string = begin - _pipe@2 = Expected, - gleam@dynamic:string(_pipe@2) - end, - Got_as_string = begin - _pipe@3 = Got, - gleam@dynamic:string(_pipe@3) - end, - case {Expected_as_list, Got_as_list, Expected_as_string, Got_as_string} of - {{ok, Expected_list}, {ok, Got_list}, _, _} -> - Comparison = begin - _pipe@4 = gap:compare_lists(Expected_list, Got_list), - _pipe@5 = gap@styling:from_comparison(_pipe@4), - _pipe@6 = gap@styling:highlight( - _pipe@5, - fun showtime@internal@reports@styles:expected_highlight/1, - fun showtime@internal@reports@styles:got_highlight/1, - fun(Item) -> Item end - ), - gap@styling:to_styled_comparison(_pipe@6) - end, - {erlang:element(2, Comparison), erlang:element(3, Comparison)}; - - {_, _, {ok, Expected_string}, {ok, Got_string}} -> - Comparison@1 = begin - _pipe@7 = gap:compare_strings(Expected_string, Got_string), - _pipe@8 = gap@styling:from_comparison(_pipe@7), - _pipe@9 = gap@styling:highlight( - _pipe@8, - fun showtime@internal@reports@styles:expected_highlight/1, - fun showtime@internal@reports@styles:got_highlight/1, - fun(Item@1) -> Item@1 end - ), - gap@styling:to_styled_comparison(_pipe@9) - end, - {erlang:element(2, Comparison@1), erlang:element(3, Comparison@1)}; - - {_, _, _, _} -> - {showtime@internal@reports@styles:expected_highlight( - gleam@string:inspect(Expected) - ), - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Got) - )} - end. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache deleted file mode 100644 index 58b0250..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache_meta deleted file mode 100644 index 86e3c59..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.erl deleted file mode 100644 index 4022bed..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.erl +++ /dev/null @@ -1,749 +0,0 @@ --module(showtime@internal@reports@formatter). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([create_test_report/1]). --export_type([glee_unit_assertion_type/0, module_and_test/0, unified_error/0]). - --type glee_unit_assertion_type() :: {glee_unit_assert_equal, binary()} | - {glee_unit_assert_not_equal, binary()} | - {glee_unit_assert_match, binary()}. - --type module_and_test() :: {module_and_test_run, - binary(), - showtime@internal@common@test_suite:test_run()}. - --type unified_error() :: {unified_error, - gleam@option:option(showtime@tests@meta:meta()), - binary(), - binary(), - binary(), - binary(), - gleam@option:option(integer()), - list(showtime@internal@common@test_result:trace())}. - --spec erlang_error_to_unified( - list(showtime@internal@common@test_result:reason_detail()), - glee_unit_assertion_type(), - list(showtime@internal@common@test_result:trace()) -) -> unified_error(). -erlang_error_to_unified(Error_details, Assertion_type, Stacktrace) -> - _pipe = Error_details, - gleam@list:fold( - _pipe, - {unified_error, - none, - <<"not_set"/utf8>>, - erlang:element(2, Assertion_type), - <<""/utf8>>, - <<""/utf8>>, - none, - Stacktrace}, - fun(Unified, Reason) -> case Reason of - {expression, Expression} -> - erlang:setelement(3, Unified, Expression); - - {expected, Value} -> - case Assertion_type of - {glee_unit_assert_equal, _} -> - erlang:setelement( - 5, - Unified, - showtime@internal@reports@styles:expected_highlight( - gleam@string:inspect(Value) - ) - ); - - _ -> - Unified - end; - - {value, Value@1} -> - case Assertion_type of - {glee_unit_assert_not_equal, _} -> - erlang:setelement( - 6, - erlang:setelement( - 5, - Unified, - <<(showtime@internal@reports@styles:not_style( - <<"not "/utf8>> - ))/binary, - (gleam@string:inspect(Value@1))/binary>> - ), - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Value@1) - ) - ); - - _ -> - erlang:setelement( - 6, - Unified, - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Value@1) - ) - ) - end; - - {pattern, Pattern} -> - case Pattern of - <<"{ ok , _ }"/utf8>> -> - erlang:setelement( - 5, - Unified, - showtime@internal@reports@styles:expected_highlight( - <<"Ok(_)"/utf8>> - ) - ); - - <<"{ error , _ }"/utf8>> -> - erlang:setelement( - 5, - Unified, - showtime@internal@reports@styles:expected_highlight( - <<"Error(_)"/utf8>> - ) - ); - - _ -> - Unified - end; - - _ -> - Unified - end end - ). - --spec gleam_error_to_unified( - showtime@internal@common@test_result:gleam_error_detail(), - list(showtime@internal@common@test_result:trace()) -) -> unified_error(). -gleam_error_to_unified(Gleam_error, Stacktrace) -> - case Gleam_error of - {let_assert, _, _, _, _, Value} -> - Result = gleam@dynamic:unsafe_coerce(Value), - {error, Assertion} = case Result of - {error, _} -> Result; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/reports/formatter"/utf8>>, - function => <<"gleam_error_to_unified"/utf8>>, - line => 293}) - end, - case Assertion of - {eq, Got, Expected, Meta} -> - {Expected@1, Got@1} = showtime@internal@reports@compare:compare( - Expected, - Got - ), - {unified_error, - Meta, - <<"assert"/utf8>>, - <<"Assert equal"/utf8>>, - Expected@1, - Got@1, - none, - Stacktrace}; - - {not_eq, Got@2, Expected@2, Meta@1} -> - {unified_error, - Meta@1, - <<"assert"/utf8>>, - <<"Assert not equal"/utf8>>, - <<(showtime@internal@reports@styles:not_style( - <<"not "/utf8>> - ))/binary, - (gleam@string:inspect(Expected@2))/binary>>, - gleam@string:inspect(Got@2), - none, - Stacktrace}; - - {is_ok, Got@3, Meta@2} -> - {unified_error, - Meta@2, - <<"assert"/utf8>>, - <<"Assert is Ok"/utf8>>, - showtime@internal@reports@styles:expected_highlight( - <<"Ok(_)"/utf8>> - ), - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Got@3) - ), - none, - Stacktrace}; - - {is_error, Got@4, Meta@3} -> - {unified_error, - Meta@3, - <<"assert"/utf8>>, - <<"Assert is Ok"/utf8>>, - showtime@internal@reports@styles:expected_highlight( - <<"Error(_)"/utf8>> - ), - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Got@4) - ), - none, - Stacktrace}; - - {fail, Meta@4} -> - {unified_error, - Meta@4, - <<"assert"/utf8>>, - <<"Assert is Ok"/utf8>>, - showtime@internal@reports@styles:got_highlight( - <<"should.fail()"/utf8>> - ), - showtime@internal@reports@styles:got_highlight( - <<"N/A - test always expected to fail"/utf8>> - ), - none, - Stacktrace} - end - end. - --spec format_reason(unified_error(), binary(), binary(), list(binary())) -> list(list(showtime@internal@reports@table:col())). -format_reason(Error, Module, Function, Output_buffer) -> - Meta@1 = case erlang:element(2, Error) of - {some, Meta} -> - {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Description"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left, {content, erlang:element(2, Meta)}, 0}]}; - - none -> - none - end, - Stacktrace = begin - _pipe = erlang:element(8, Error), - gleam@list:map(_pipe, fun(Trace) -> case Trace of - {trace, Function@1, _, _} when Function@1 =:= <<""/utf8>> -> - <<"(anonymous)"/utf8>>; - - {trace_module, Module@1, Function@2, _, _} when Function@2 =:= <<""/utf8>> -> - <<<>/binary, - "(anonymous)"/utf8>>; - - {trace, Function@3, _, _} -> - Function@3; - - {trace_module, Module@2, Function@4, _, _} -> - <<<>/binary, - Function@4/binary>> - end end) - end, - Stacktrace_rows = case Stacktrace of - [] -> - []; - - [First | Rest] -> - First_row = {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Stacktrace"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left, - {styled_content, - showtime@internal@reports@styles:stacktrace_style( - First - )}, - 0}]}, - Rest_rows = begin - _pipe@1 = Rest, - gleam@list:map( - _pipe@1, - fun(Row) -> - {some, - [{align_right, {content, <<""/utf8>>}, 2}, - {separator, <<" "/utf8>>}, - {align_left, - {styled_content, - showtime@internal@reports@styles:stacktrace_style( - Row - )}, - 0}]} - end - ) - end, - [First_row | Rest_rows] - end, - Output_rows = case begin - _pipe@2 = Output_buffer, - _pipe@3 = gleam@list:reverse(_pipe@2), - gleam@list:map( - _pipe@3, - fun(Row@1) -> gleam@string:trim_right(Row@1) end - ) - end of - [] -> - []; - - [First@1 | Rest@1] -> - First_row@1 = {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Output"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left_overflow, - {styled_content, - showtime@internal@reports@styles:stacktrace_style( - First@1 - )}, - 0}]}, - Rest_rows@1 = begin - _pipe@4 = Rest@1, - gleam@list:map( - _pipe@4, - fun(Row@2) -> - {some, - [{align_right, {content, <<""/utf8>>}, 2}, - {separator, <<" "/utf8>>}, - {align_left_overflow, - {styled_content, - showtime@internal@reports@styles:stacktrace_style( - Row@2 - )}, - 0}]} - end - ) - end, - [First_row@1 | Rest_rows@1] - end, - Line@1 = begin - _pipe@5 = erlang:element(7, Error), - _pipe@6 = gleam@option:map( - _pipe@5, - fun(Line) -> <<":"/utf8, (gleam@int:to_string(Line))/binary>> end - ), - gleam@option:unwrap(_pipe@6, <<""/utf8>>) - end, - Arrow = <<(gleam@string:join( - gleam@list:repeat( - <<"-"/utf8>>, - (gleam@string:length(Module) + 1) + ((gleam@string:length( - Function - ) - + gleam@string:length(Line@1)) - div 2) - ), - <<""/utf8>> - ))/binary, - "⌄"/utf8>>, - Standard_table_rows = [{some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:error_style( - <<"Failed"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left, {content, Arrow}, 0}]}, - {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Test"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left, - {styled_content, - <<<>/binary, - (showtime@internal@reports@styles:function_style( - <> - ))/binary>>}, - 0}]}, - Meta@1, - {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Expected"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left_overflow, - {styled_content, erlang:element(5, Error)}, - 0}]}, - {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Got"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left_overflow, - {styled_content, erlang:element(6, Error)}, - 0}]}], - _pipe@7 = Standard_table_rows, - _pipe@8 = gleam@list:append(_pipe@7, Stacktrace_rows), - _pipe@9 = gleam@list:append(_pipe@8, Output_rows), - _pipe@10 = gleam@list:append( - _pipe@9, - [{some, - [{align_right, {content, <<""/utf8>>}, 0}, - {align_right, {content, <<""/utf8>>}, 0}, - {align_right, {content, <<""/utf8>>}, 0}]}] - ), - gleam@list:filter_map( - _pipe@10, - fun(Row@3) -> gleam@option:to_result(Row@3, nil) end - ). - --spec create_test_report( - gleam@dict:dict(binary(), gleam@dict:dict(binary(), showtime@internal@common@test_suite:test_run())) -) -> {binary(), integer()}. -create_test_report(Test_results) -> - All_test_runs = begin - _pipe = Test_results, - _pipe@1 = gleam@map:values(_pipe), - gleam@list:flat_map(_pipe@1, fun gleam@map:values/1) - end, - Failed_test_runs = begin - _pipe@2 = Test_results, - _pipe@3 = gleam@map:to_list(_pipe@2), - gleam@list:flat_map( - _pipe@3, - fun(Entry) -> - {Module_name, Test_module_results} = Entry, - _pipe@4 = Test_module_results, - _pipe@5 = gleam@map:values(_pipe@4), - gleam@list:filter_map(_pipe@5, fun(Test_run) -> case Test_run of - {completed_test_run, _, _, Result} -> - case Result of - {error, _} -> - {ok, - {module_and_test_run, - Module_name, - Test_run}}; - - {ok, {ignored, _}} -> - {error, nil}; - - {ok, _} -> - {error, nil} - end; - - _ -> - _pipe@6 = Test_run, - gleam@io:debug(_pipe@6), - {error, nil} - end end) - end - ) - end, - Ignored_test_runs = begin - _pipe@7 = Test_results, - _pipe@8 = gleam@map:to_list(_pipe@7), - gleam@list:flat_map( - _pipe@8, - fun(Entry@1) -> - {Module_name@1, Test_module_results@1} = Entry@1, - _pipe@9 = Test_module_results@1, - _pipe@10 = gleam@map:values(_pipe@9), - gleam@list:filter_map( - _pipe@10, - fun(Test_run@1) -> case Test_run@1 of - {completed_test_run, Test_function, _, Result@1} -> - case Result@1 of - {ok, {ignored, Reason}} -> - {ok, - {<<<>/binary, - (erlang:element( - 2, - Test_function - ))/binary>>, - Reason}}; - - _ -> - {error, nil} - end; - - _ -> - {error, nil} - end end - ) - end - ) - end, - Failed_tests_report = begin - _pipe@11 = Failed_test_runs, - _pipe@12 = gleam@list:filter_map( - _pipe@11, - fun(Module_and_test_run) -> - case erlang:element(3, Module_and_test_run) of - {completed_test_run, Test_function@1, _, Result@2} -> - case Result@2 of - {error, Exception} -> - case erlang:element(3, Exception) of - {assert_equal, Reason_details} -> - {ok, - format_reason( - erlang_error_to_unified( - Reason_details, - {glee_unit_assert_equal, - <<"Assert equal"/utf8>>}, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - ) - ), - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {assert_not_equal, Reason_details@1} -> - {ok, - format_reason( - erlang_error_to_unified( - Reason_details@1, - {glee_unit_assert_not_equal, - <<"Assert not equal"/utf8>>}, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - ) - ), - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {assert_match, Reason_details@2} -> - {ok, - format_reason( - erlang_error_to_unified( - Reason_details@2, - {glee_unit_assert_match, - <<"Assert match"/utf8>>}, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - ) - ), - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {gleam_error, Reason@1} -> - {ok, - format_reason( - gleam_error_to_unified( - Reason@1, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - ) - ), - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {gleam_assert, Value, Line_no} -> - {ok, - format_reason( - {unified_error, - none, - <<"gleam assert"/utf8>>, - <<"Assert failed"/utf8>>, - <<"Patterns should match"/utf8>>, - showtime@internal@reports@styles:error_style( - gleam@string:inspect( - Value - ) - ), - {some, Line_no}, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - )}, - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {generic_exception, Value@1} -> - {ok, - format_reason( - {unified_error, - none, - <<"generic exception"/utf8>>, - <<"Test function threw an exception"/utf8>>, - <<"Exception in test function"/utf8>>, - showtime@internal@reports@styles:error_style( - gleam@string:inspect( - Value@1 - ) - ), - none, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - )}, - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - Other -> - gleam@io:println( - <<"Other: "/utf8, - (gleam@string:inspect(Other))/binary>> - ), - erlang:error(#{gleam_error => panic, - message => <<"panic expression evaluated"/utf8>>, - module => <<"showtime/internal/reports/formatter"/utf8>>, - function => <<"create_test_report"/utf8>>, - line => 178}), - {error, nil} - end; - - _ -> - {error, nil} - end; - - _ -> - {error, nil} - end - end - ), - gleam@list:fold( - _pipe@12, - [], - fun(Rows, Test_rows) -> gleam@list:append(Rows, Test_rows) end - ) - end, - All_test_execution_time_reports = begin - _pipe@13 = All_test_runs, - gleam@list:filter_map(_pipe@13, fun(Test_run@2) -> case Test_run@2 of - {completed_test_run, Test_function@2, Total_time, _} -> - {ok, - <<<<<<(erlang:element(2, Test_function@2))/binary, - ": "/utf8>>/binary, - (gleam@int:to_string(Total_time))/binary>>/binary, - " ms"/utf8>>}; - - _ -> - {error, nil} - end end) - end, - _ = begin - _pipe@14 = All_test_execution_time_reports, - gleam@string:join(_pipe@14, <<"\n"/utf8>>) - end, - All_tests_count = begin - _pipe@15 = All_test_runs, - gleam@list:length(_pipe@15) - end, - Ignored_tests_count = begin - _pipe@16 = Ignored_test_runs, - gleam@list:length(_pipe@16) - end, - Failed_tests_count = begin - _pipe@17 = Failed_test_runs, - gleam@list:length(_pipe@17) - end, - Passed = showtime@internal@reports@styles:passed_style( - <<(gleam@int:to_string( - (All_tests_count - Failed_tests_count) - Ignored_tests_count - ))/binary, - " passed"/utf8>> - ), - Failed = showtime@internal@reports@styles:failed_style( - <<(gleam@int:to_string(Failed_tests_count))/binary, " failed"/utf8>> - ), - Ignored = case Ignored_tests_count of - 0 -> - <<""/utf8>>; - - _ -> - <<", "/utf8, - (showtime@internal@reports@styles:ignored_style( - <<(gleam@int:to_string(Ignored_tests_count))/binary, - " ignored"/utf8>> - ))/binary>> - end, - Failed_tests_table = begin - _pipe@18 = {table, none, Failed_tests_report}, - _pipe@19 = showtime@internal@reports@table:align_table(_pipe@18), - showtime@internal@reports@table:to_string(_pipe@19) - end, - Test_report = <<<<<<<<<<<<"\n"/utf8, Failed_tests_table/binary>>/binary, - "\n"/utf8>>/binary, - Passed/binary>>/binary, - ", "/utf8>>/binary, - Failed/binary>>/binary, - Ignored/binary>>, - {Test_report, Failed_tests_count}. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache deleted file mode 100644 index 7dd3121..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache_meta deleted file mode 100644 index c0078b3..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.erl deleted file mode 100644 index ec6230c..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.erl +++ /dev/null @@ -1,93 +0,0 @@ --module(showtime@internal@reports@styles). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([not_style/1, module_style/1, heading_style/1, stacktrace_style/1, failed_style/1, error_style/1, got_highlight/1, passed_style/1, expected_highlight/1, ignored_style/1, function_style/1, strip_style/1]). - --spec not_style(binary()) -> binary(). -not_style(Text) -> - gleam_community@ansi:bold(Text). - --spec module_style(binary()) -> binary(). -module_style(Text) -> - gleam_community@ansi:cyan(Text). - --spec heading_style(binary()) -> binary(). -heading_style(Text) -> - gleam_community@ansi:cyan(Text). - --spec stacktrace_style(binary()) -> binary(). -stacktrace_style(Text) -> - Text. - --spec bold_red(binary()) -> binary(). -bold_red(Text) -> - gleam_community@ansi:bold(gleam_community@ansi:red(Text)). - --spec failed_style(binary()) -> binary(). -failed_style(Text) -> - bold_red(Text). - --spec error_style(binary()) -> binary(). -error_style(Text) -> - bold_red(Text). - --spec got_highlight(binary()) -> binary(). -got_highlight(Text) -> - bold_red(Text). - --spec bold_green(binary()) -> binary(). -bold_green(Text) -> - gleam_community@ansi:bold(gleam_community@ansi:green(Text)). - --spec passed_style(binary()) -> binary(). -passed_style(Text) -> - bold_green(Text). - --spec expected_highlight(binary()) -> binary(). -expected_highlight(Text) -> - bold_green(Text). - --spec bold_yellow(binary()) -> binary(). -bold_yellow(Text) -> - gleam_community@ansi:bold(gleam_community@ansi:yellow(Text)). - --spec ignored_style(binary()) -> binary(). -ignored_style(Text) -> - bold_yellow(Text). - --spec bold_cyan(binary()) -> binary(). -bold_cyan(Text) -> - gleam_community@ansi:bold(gleam_community@ansi:cyan(Text)). - --spec function_style(binary()) -> binary(). -function_style(Text) -> - bold_cyan(Text). - --spec strip_style(binary()) -> binary(). -strip_style(Text) -> - {New_text, _} = begin - _pipe = Text, - _pipe@1 = gleam@string:to_graphemes(_pipe), - gleam@list:fold( - _pipe@1, - {<<""/utf8>>, false}, - fun(Acc, Char) -> - {Str, Removing} = Acc, - Bit_char = gleam_stdlib:identity(Char), - case {Bit_char, Removing} of - {<<16#1b>>, _} -> - {Str, true}; - - {<<16#6d>>, true} -> - {Str, false}; - - {_, true} -> - {Str, true}; - - {_, false} -> - {<>, false} - end - end - ) - end, - New_text. diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache deleted file mode 100644 index 61c532d..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache_meta deleted file mode 100644 index 080524c..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.erl deleted file mode 100644 index 35dbba3..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.erl +++ /dev/null @@ -1,229 +0,0 @@ --module(showtime@internal@reports@table). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([to_string/1, align_table/1]). --export_type([content/0, col/0, table/0]). - --type content() :: {content, binary()} | {styled_content, binary()}. - --type col() :: {align_right, content(), integer()} | - {align_left, content(), integer()} | - {align_right_overflow, content(), integer()} | - {align_left_overflow, content(), integer()} | - {separator, binary()} | - {aligned, binary()}. - --type table() :: {table, gleam@option:option(binary()), list(list(col()))}. - --spec to_string(table()) -> binary(). -to_string(Table) -> - Rows = begin - _pipe = erlang:element(3, Table), - _pipe@3 = gleam@list:map(_pipe, fun(Row) -> _pipe@1 = Row, - _pipe@2 = gleam@list:filter_map(_pipe@1, fun(Col) -> case Col of - {separator, Char} -> - {ok, Char}; - - {aligned, Content} -> - {ok, Content}; - - _ -> - {error, nil} - end end), - gleam@string:join(_pipe@2, <<""/utf8>>) end), - gleam@string:join(_pipe@3, <<"\n"/utf8>>) - end, - Header@1 = begin - _pipe@4 = erlang:element(2, Table), - _pipe@5 = gleam@option:map( - _pipe@4, - fun(Header) -> <
> end - ), - gleam@option:unwrap(_pipe@5, <<""/utf8>>) - end, - <>. - --spec pad_left(binary(), integer(), binary()) -> binary(). -pad_left(Str, Num, Char) -> - Padding = begin - _pipe = gleam@list:repeat(Char, Num), - gleam@string:join(_pipe, <<""/utf8>>) - end, - <>. - --spec pad_right(binary(), integer(), binary()) -> binary(). -pad_right(Str, Num, Char) -> - Padding = begin - _pipe = gleam@list:repeat(Char, Num), - gleam@string:join(_pipe, <<""/utf8>>) - end, - <>. - --spec align_table(table()) -> table(). -align_table(Table) -> - Cols = begin - _pipe = erlang:element(3, Table), - gleam@list:transpose(_pipe) - end, - Col_width = begin - _pipe@1 = Cols, - gleam@list:map(_pipe@1, fun(Col) -> _pipe@2 = Col, - _pipe@3 = gleam@list:map( - _pipe@2, - fun(Content) -> case Content of - {align_right, {content, Unstyled}, _} -> - Unstyled; - - {align_right, {styled_content, Styled}, _} -> - showtime@internal@reports@styles:strip_style( - Styled - ); - - {align_left, {content, Unstyled@1}, _} -> - Unstyled@1; - - {align_left, {styled_content, Styled@1}, _} -> - showtime@internal@reports@styles:strip_style( - Styled@1 - ); - - {align_left_overflow, _, _} -> - <<""/utf8>>; - - {align_right_overflow, _, _} -> - <<""/utf8>>; - - {separator, Char} -> - Char; - - {aligned, Content@1} -> - Content@1 - end end - ), - gleam@list:fold( - _pipe@3, - 0, - fun(Max, Str) -> - gleam@int:max(Max, gleam@string:length(Str)) - end - ) end) - end, - Aligned_col = begin - _pipe@4 = Cols, - _pipe@5 = gleam@list:zip(_pipe@4, Col_width), - gleam@list:map( - _pipe@5, - fun(Col_and_width) -> - {Col@1, Width} = Col_and_width, - _pipe@6 = Col@1, - gleam@list:map(_pipe@6, fun(Content@2) -> case Content@2 of - {align_right, {content, Unstyled@2}, Margin} -> - {aligned, - pad_left( - Unstyled@2, - (Width + Margin) - gleam@string:length( - Unstyled@2 - ), - <<" "/utf8>> - )}; - - {align_right, {styled_content, Styled@2}, Margin@1} -> - {aligned, - pad_left( - Styled@2, - (Width + Margin@1) - gleam@string:length( - showtime@internal@reports@styles:strip_style( - Styled@2 - ) - ), - <<" "/utf8>> - )}; - - {align_right_overflow, - {content, Unstyled@3}, - Margin@2} -> - {aligned, - pad_left( - Unstyled@3, - (Width + Margin@2) - gleam@string:length( - Unstyled@3 - ), - <<" "/utf8>> - )}; - - {align_right_overflow, - {styled_content, Styled@3}, - Margin@3} -> - {aligned, - pad_left( - Styled@3, - (Width + Margin@3) - gleam@string:length( - showtime@internal@reports@styles:strip_style( - Styled@3 - ) - ), - <<" "/utf8>> - )}; - - {align_left, {content, Unstyled@4}, Margin@4} -> - {aligned, - pad_right( - Unstyled@4, - (Width + Margin@4) - gleam@string:length( - Unstyled@4 - ), - <<" "/utf8>> - )}; - - {align_left, {styled_content, Styled@4}, Margin@5} -> - {aligned, - pad_right( - Styled@4, - (Width + Margin@5) - gleam@string:length( - showtime@internal@reports@styles:strip_style( - Styled@4 - ) - ), - <<" "/utf8>> - )}; - - {align_left_overflow, - {content, Unstyled@5}, - Margin@6} -> - {aligned, - pad_right( - Unstyled@5, - (Width + Margin@6) - gleam@string:length( - Unstyled@5 - ), - <<" "/utf8>> - )}; - - {align_left_overflow, - {styled_content, Styled@5}, - Margin@7} -> - {aligned, - pad_right( - Styled@5, - (Width + Margin@7) - gleam@string:length( - showtime@internal@reports@styles:strip_style( - Styled@5 - ) - ), - <<" "/utf8>> - )}; - - {separator, Char@1} -> - {separator, Char@1}; - - {aligned, Content@3} -> - {aligned, Content@3} - end end) - end - ) - end, - Aligned_rows = begin - _pipe@7 = Aligned_col, - gleam@list:transpose(_pipe@7) - end, - erlang:setelement(3, Table, Aligned_rows). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache deleted file mode 100644 index 4aa8df1..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache_meta deleted file mode 100644 index 7f1bdda..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.erl deleted file mode 100644 index c975467..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@meta.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(showtime@tests@meta). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([meta/0]). - --type meta() :: {meta, binary(), list(binary())}. - - diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache deleted file mode 100644 index 90d3838..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache_meta deleted file mode 100644 index fcc4e8a..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.erl deleted file mode 100644 index 05bea8f..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@should.erl +++ /dev/null @@ -1,143 +0,0 @@ --module(showtime@tests@should). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([evaluate/1, equal/2, equal_meta/3, not_equal/2, not_equal_meta/3, be_ok/1, be_ok_meta/2, be_error/1, be_error_meta/2, fail/0, fail_meta/1, be_true/1, be_true_meta/2, be_false/1, be_false_meta/2]). --export_type([assertion/2]). - --type assertion(MXN, MXO) :: {eq, - MXN, - MXN, - gleam@option:option(showtime@tests@meta:meta())} | - {not_eq, MXN, MXN, gleam@option:option(showtime@tests@meta:meta())} | - {is_ok, - {ok, MXN} | {error, MXO}, - gleam@option:option(showtime@tests@meta:meta())} | - {is_error, - {ok, MXN} | {error, MXO}, - gleam@option:option(showtime@tests@meta:meta())} | - {fail, gleam@option:option(showtime@tests@meta:meta())}. - --spec evaluate(assertion(any(), any())) -> nil. -evaluate(Assertion) -> - case Assertion of - {eq, A, B, _} -> - case A =:= B of - true -> - nil; - - false -> - showtime_ffi:gleam_error({error, Assertion}) - end; - - {not_eq, A@1, B@1, _} -> - case A@1 /= B@1 of - true -> - nil; - - false -> - showtime_ffi:gleam_error({error, Assertion}) - end; - - {is_ok, A@2, _} -> - case A@2 of - {ok, _} -> - nil; - - {error, _} -> - showtime_ffi:gleam_error({error, Assertion}) - end; - - {is_error, A@3, _} -> - case A@3 of - {error, _} -> - nil; - - {ok, _} -> - showtime_ffi:gleam_error({error, Assertion}) - end; - - {fail, _} -> - showtime_ffi:gleam_error({error, Assertion}) - end. - --spec equal(MXP, MXP) -> nil. -equal(A, B) -> - evaluate({eq, A, B, none}). - --spec equal_meta(MXR, MXR, showtime@tests@meta:meta()) -> nil. -equal_meta(A, B, Meta) -> - evaluate({eq, A, B, {some, Meta}}). - --spec not_equal(MXT, MXT) -> nil. -not_equal(A, B) -> - evaluate({not_eq, A, B, none}). - --spec not_equal_meta(MXV, MXV, showtime@tests@meta:meta()) -> nil. -not_equal_meta(A, B, Meta) -> - evaluate({not_eq, A, B, {some, Meta}}). - --spec be_ok({ok, MXX} | {error, any()}) -> MXX. -be_ok(A) -> - evaluate({is_ok, A, none}), - {ok, Value} = case A of - {ok, _} -> A; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/tests/should"/utf8>>, - function => <<"be_ok"/utf8>>, - line => 30}) - end, - Value. - --spec be_ok_meta({ok, any()} | {error, any()}, showtime@tests@meta:meta()) -> nil. -be_ok_meta(A, Meta) -> - evaluate({is_ok, A, {some, Meta}}). - --spec be_error({ok, any()} | {error, MYI}) -> MYI. -be_error(A) -> - evaluate({is_error, A, none}), - {error, Value} = case A of - {error, _} -> A; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/tests/should"/utf8>>, - function => <<"be_error"/utf8>>, - line => 40}) - end, - Value. - --spec be_error_meta({ok, any()} | {error, any()}, showtime@tests@meta:meta()) -> nil. -be_error_meta(A, Meta) -> - evaluate({is_error, A, {some, Meta}}). - --spec fail() -> nil. -fail() -> - evaluate({fail, none}). - --spec fail_meta(showtime@tests@meta:meta()) -> nil. -fail_meta(Meta) -> - evaluate({fail, {some, Meta}}). - --spec be_true(boolean()) -> nil. -be_true(A) -> - _pipe = A, - equal(_pipe, true). - --spec be_true_meta(boolean(), showtime@tests@meta:meta()) -> nil. -be_true_meta(A, Meta) -> - _pipe = A, - equal_meta(_pipe, true, Meta). - --spec be_false(boolean()) -> nil. -be_false(A) -> - _pipe = A, - equal(_pipe, false). - --spec be_false_meta(boolean(), showtime@tests@meta:meta()) -> nil. -be_false_meta(A, Meta) -> - _pipe = A, - equal_meta(_pipe, false, Meta). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache deleted file mode 100644 index d07ea1b..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache_meta b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache_meta deleted file mode 100644 index 8354c6f..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.erl deleted file mode 100644 index 2f65614..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime@tests@test.erl +++ /dev/null @@ -1,57 +0,0 @@ --module(showtime@tests@test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([test/2, equal/3, not_equal/3, with_meta/2, be_ok/2, be_error/2, fail/1, be_true/2, be_false/2]). --export_type([test/0, meta_should/1]). - --type test() :: {test, showtime@tests@meta:meta(), fun(() -> nil)}. - --type meta_should(OKH) :: {meta_should, - fun((OKH, OKH) -> nil), - fun((OKH, OKH) -> nil)}. - --spec test(showtime@tests@meta:meta(), fun((showtime@tests@meta:meta()) -> nil)) -> test(). -test(Meta, Test_function) -> - {test, Meta, fun() -> Test_function(Meta) end}. - --spec equal(OKM, OKM, showtime@tests@meta:meta()) -> nil. -equal(A, B, Meta) -> - gleam@io:debug(A), - gleam@io:debug(B), - showtime@tests@should:equal_meta(A, B, Meta). - --spec not_equal(OKO, OKO, showtime@tests@meta:meta()) -> nil. -not_equal(A, B, Meta) -> - showtime@tests@should:equal_meta(A, B, Meta). - --spec with_meta(showtime@tests@meta:meta(), fun((meta_should(any())) -> nil)) -> test(). -with_meta(Meta, Test_function) -> - {test, - Meta, - fun() -> - Test_function( - {meta_should, - fun(A, B) -> equal(A, B, Meta) end, - fun(A@1, B@1) -> not_equal(A@1, B@1, Meta) end} - ) - end}. - --spec be_ok({ok, any()} | {error, any()}, showtime@tests@meta:meta()) -> nil. -be_ok(A, Meta) -> - showtime@tests@should:be_ok_meta(A, Meta). - --spec be_error({ok, any()} | {error, any()}, showtime@tests@meta:meta()) -> nil. -be_error(A, Meta) -> - showtime@tests@should:be_error_meta(A, Meta). - --spec fail(showtime@tests@meta:meta()) -> nil. -fail(Meta) -> - showtime@tests@should:fail_meta(Meta). - --spec be_true(boolean(), showtime@tests@meta:meta()) -> nil. -be_true(A, Meta) -> - showtime@tests@should:be_true_meta(A, Meta). - --spec be_false(boolean(), showtime@tests@meta:meta()) -> nil. -be_false(A, Meta) -> - showtime@tests@should:be_false_meta(A, Meta). diff --git a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime_ffi.erl b/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime_ffi.erl deleted file mode 100644 index 3259623..0000000 --- a/aoc2023/build/dev/erlang/adglent/_gleam_artefacts/showtime_ffi.erl +++ /dev/null @@ -1,187 +0,0 @@ --module(showtime_ffi). - --export([run_test/4, functions/0, capture_output/1, gleam_error/1]). - -gleam_error(Value) -> - erlang:error(#{ - gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => Value, - module => <<"this/is/not/used"/utf8>>, - function => <<"gleam_error"/utf8>>, - % Not used - line => 0 - }). - -start_output_capture(Capture) -> - OldGroupLeader = group_leader(), - CapturePid = spawn(showtime_ffi, capture_output, [{[], {OldGroupLeader, Capture}}]), - group_leader(CapturePid, self()), - {CapturePid, OldGroupLeader}. - -stop_output_capture({CapturePid, OldGroupLeader}) -> - group_leader(OldGroupLeader, self()), - CapturePid ! {capture_done, self()}, - receive - Buffer -> - Buffer - end. - -capture_output({Buffer, {OldGroupLeader, Capture}}) -> - receive - {io_request, From, ReplyAs, {put_chars, unicode, BitString}} -> - case Capture of - yes -> - From ! {io_reply, ReplyAs, ok}, - capture_output({[BitString | Buffer], {OldGroupLeader, Capture}}); - mixed -> - OldGroupLeader ! {io_request, From, ReplyAs, {put_chars, unicode, BitString}}, - capture_output({[BitString | Buffer], {OldGroupLeader, Capture}}); - no -> - OldGroupLeader ! {io_request, From, ReplyAs, {put_chars, unicode, BitString}}, - capture_output({Buffer, {OldGroupLeader, Capture}}) - end; - {capture_done, SenderPid} -> - SenderPid ! Buffer; - OtherMessage -> - OldGroupLeader ! OtherMessage, - capture_output({Buffer, {OldGroupLeader, Capture}}) - end. - -run_test(Module, Function, IgnoreTags, Capture) -> - OutputCapture = start_output_capture(Capture), - try - Result = apply(Module, Function, []), - {ResultType, FinalResult} = - case Result of - {test, {meta, _Description, Tags}, TestFun} -> - case - lists:any( - fun(Tag) -> - lists:any(fun(IgnoreTag) -> IgnoreTag == Tag end, IgnoreTags) - end, - Tags - ) - of - true -> - {ignored, ignore}; - false -> - {test_function_return, TestFun()} - end; - DirectResult -> - {test_function_return, DirectResult} - end, - OutputCaptureBuffer = stop_output_capture(OutputCapture), - case ResultType of - ignored -> {ok, {ResultType, FinalResult}}; - _ -> {ok, {ResultType, FinalResult, OutputCaptureBuffer}} - end - catch - Class:Reason:Stacktrace -> - GleamReason = - case Reason of - {Assertion, ReasonList} -> - ErlangReasonList = - lists:map( - fun(ReasonDetail) -> - case ReasonDetail of - {line, LineNo} -> - {reason_line, LineNo}; - {expression, List} -> - {expression, list_to_binary(List)}; - {module, ModuleAtom} -> - {module, atom_to_binary(ModuleAtom)}; - {pattern, Pattern} -> - {pattern, list_to_binary(Pattern)}; - Other -> - Other - end - end, - ReasonList - ), - GleamAssertionType = - case Assertion of - assertEqual -> - assert_equal; - assertNotEqual -> - assert_not_equal; - assertMatch -> - assert_match; - OtherAssertionType -> - OtherAssertionType - end, - {GleamAssertionType, ErlangReasonList}; - #{ - function := GleamFunction, - gleam_error := GleamError, - line := Line, - message := Message, - module := GleamModule, - value := Value - } -> - case Value of - {error, {OkValue, _, _, _}} when OkValue == not_eq; OkValue == eq -> - {gleam_error, - {GleamError, GleamModule, GleamFunction, Line, Message, Value}}; - {error, {OkValue, _, _}} when OkValue == is_ok; OkValue == is_error -> - {gleam_error, - {GleamError, GleamModule, GleamFunction, Line, Message, Value}}; - {error, {OkValue, _}} when OkValue == fail -> - {gleam_error, - {GleamError, GleamModule, GleamFunction, Line, Message, Value}}; - _ -> - {gleam_assert, Value, Line} - end; - OtherReason -> - {generic_exception, OtherReason} - end, - GleamClass = - case Class of - error -> - erlang_error; - Other -> - Other - end, - GleamTraceList = - lists:map( - fun(Trace) -> - case Trace of - {ModuleName, FunctionName, Arity, ExtraInfoList} -> - {trace_module, atom_to_binary(ModuleName), - atom_to_binary(FunctionName), map_arity(Arity), - map_extra_info_list(ExtraInfoList)}; - {FunctionName, Arity, ExtraInfoList} -> - {trace, atom_to_binary(FunctionName), map_arity(Arity), - map_extra_info_list(ExtraInfoList)} - end - end, - Stacktrace - ), - OutputCaptureBufferCatch = stop_output_capture(OutputCapture), - {error, - {erlang_exception, GleamClass, GleamReason, {trace_list, GleamTraceList}, - OutputCaptureBufferCatch}} - end. - -map_extra_info_list(ExtraInfoList) -> - lists:map( - fun(ExtraInfo) -> - case ExtraInfo of - {file, FileNameList} -> {file, list_to_binary(FileNameList)}; - Other -> Other - end - end, - ExtraInfoList - ). - -map_arity(Arity) -> - if - is_list(Arity) -> - {arg_list, Arity}; - is_integer(Arity) -> - {num, Arity} - end. - -functions() -> - Funs = module_info(exports), - Funs. diff --git a/aoc2023/build/dev/erlang/adglent/ebin/adglent.app b/aoc2023/build/dev/erlang/adglent/ebin/adglent.app deleted file mode 100644 index f8e1aa6..0000000 --- a/aoc2023/build/dev/erlang/adglent/ebin/adglent.app +++ /dev/null @@ -1,17 +0,0 @@ -{application, adglent, [ - {vsn, "1.2.0"}, - {applications, [gap, - gleam_community_ansi, - gleam_erlang, - gleam_http, - gleam_httpc, - gleam_otp, - gleam_stdlib, - glint, - simplifile, - snag, - tom]}, - {description, "Advent of code helper - automating setup of tests, solution template and problem input"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/adglent/ebin/adglent.beam b/aoc2023/build/dev/erlang/adglent/ebin/adglent.beam deleted file mode 100644 index c53eb59..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/adglent.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/adglent@day.beam b/aoc2023/build/dev/erlang/adglent/ebin/adglent@day.beam deleted file mode 100644 index 9ad63c2..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/adglent@day.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/adglent@init.beam b/aoc2023/build/dev/erlang/adglent/ebin/adglent@init.beam deleted file mode 100644 index 37d94e6..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/adglent@init.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/adglent_ffi.beam b/aoc2023/build/dev/erlang/adglent/ebin/adglent_ffi.beam deleted file mode 100644 index 259f958..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/adglent_ffi.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@aoc_client.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@aoc_client.beam deleted file mode 100644 index 9a78e8e..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@aoc_client.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@errors.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@errors.beam deleted file mode 100644 index c97eda5..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@errors.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@prompt.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@prompt.beam deleted file mode 100644 index 50b7d68..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@prompt.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@template.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@template.beam deleted file mode 100644 index cbe144e..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@template.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@solution.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@solution.beam deleted file mode 100644 index 54c7937..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@solution.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@test_main.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@test_main.beam deleted file mode 100644 index 7e35186..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@test_main.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@testfile_gleeunit.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@testfile_gleeunit.beam deleted file mode 100644 index 7acb10e..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@testfile_gleeunit.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@testfile_showtime.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@testfile_showtime.beam deleted file mode 100644 index a77da82..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@templates@testfile_showtime.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/priv@toml.beam b/aoc2023/build/dev/erlang/adglent/ebin/priv@toml.beam deleted file mode 100644 index 1788e31..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/priv@toml.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime.beam deleted file mode 100644 index d3a477e..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@cli.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@cli.beam deleted file mode 100644 index e9be51d..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@cli.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@common_event_handler.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@common_event_handler.beam deleted file mode 100644 index de943fd..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@common_event_handler.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@test_result.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@test_result.beam deleted file mode 100644 index f7b2f57..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@test_result.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@test_suite.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@test_suite.beam deleted file mode 100644 index 6146227..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@common@test_suite.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@discover.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@discover.beam deleted file mode 100644 index 4f28602..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@discover.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@event_handler.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@event_handler.beam deleted file mode 100644 index ed9bbda..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@event_handler.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@module_handler.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@module_handler.beam deleted file mode 100644 index 75e190f..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@module_handler.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@runner.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@runner.beam deleted file mode 100644 index d0a69a6..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@erlang@runner.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@compare.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@compare.beam deleted file mode 100644 index dc16640..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@compare.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@formatter.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@formatter.beam deleted file mode 100644 index 7d6a27a..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@formatter.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@styles.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@styles.beam deleted file mode 100644 index 3a5c720..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@styles.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@table.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@table.beam deleted file mode 100644 index 7778cd8..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@internal@reports@table.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@meta.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@meta.beam deleted file mode 100644 index 2f911da..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@meta.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@should.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@should.beam deleted file mode 100644 index 14ead72..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@should.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@test.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@test.beam deleted file mode 100644 index f3d21e6..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime@tests@test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/ebin/showtime_ffi.beam b/aoc2023/build/dev/erlang/adglent/ebin/showtime_ffi.beam deleted file mode 100644 index 95c965e..0000000 Binary files a/aoc2023/build/dev/erlang/adglent/ebin/showtime_ffi.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/adglent/include/adglent_Example.hrl b/aoc2023/build/dev/erlang/adglent/include/adglent_Example.hrl deleted file mode 100644 index 615e473..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/adglent_Example.hrl +++ /dev/null @@ -1 +0,0 @@ --record(example, {input :: binary(), answer :: any()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/priv@toml_TomGetError.hrl b/aoc2023/build/dev/erlang/adglent/include/priv@toml_TomGetError.hrl deleted file mode 100644 index 4cd5ddd..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/priv@toml_TomGetError.hrl +++ /dev/null @@ -1 +0,0 @@ --record(tom_get_error, {error :: tom:get_error()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/priv@toml_TomParseError.hrl b/aoc2023/build/dev/erlang/adglent/include/priv@toml_TomParseError.hrl deleted file mode 100644 index 7306934..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/priv@toml_TomParseError.hrl +++ /dev/null @@ -1 +0,0 @@ --record(tom_parse_error, {error :: tom:parse_error()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@common_event_handler_Finished.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@common_event_handler_Finished.hrl deleted file mode 100644 index 7d24e52..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@common_event_handler_Finished.hrl +++ /dev/null @@ -1 +0,0 @@ --record(finished, {num_modules :: integer()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@common_event_handler_HandlerState.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@common_event_handler_HandlerState.hrl deleted file mode 100644 index 3efcd39..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@common_event_handler_HandlerState.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(handler_state, { - test_state :: showtime@internal@common@common_event_handler:test_state(), - num_done :: integer(), - events :: gleam@dict:dict(binary(), gleam@dict:dict(binary(), showtime@internal@common@test_suite:test_run())) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ArgList.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ArgList.hrl deleted file mode 100644 index 79f34f8..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ArgList.hrl +++ /dev/null @@ -1 +0,0 @@ --record(arg_list, {arg_list :: list(gleam@dynamic:dynamic_())}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertEqual.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertEqual.hrl deleted file mode 100644 index c6458ba..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertEqual.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(assert_equal, { - details :: list(showtime@internal@common@test_result:reason_detail()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertMatch.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertMatch.hrl deleted file mode 100644 index 4920304..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertMatch.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(assert_match, { - details :: list(showtime@internal@common@test_result:reason_detail()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertNotEqual.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertNotEqual.hrl deleted file mode 100644 index 221c15f..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_AssertNotEqual.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(assert_not_equal, { - details :: list(showtime@internal@common@test_result:reason_detail()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ErlangException.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ErlangException.hrl deleted file mode 100644 index 9a31ba8..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ErlangException.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(erlang_exception, { - class :: showtime@internal@common@test_result:class(), - reason :: showtime@internal@common@test_result:reason(), - stacktrace :: showtime@internal@common@test_result:trace_list(), - output_buffer :: list(binary()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ErrorInfo.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ErrorInfo.hrl deleted file mode 100644 index 4e0244d..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ErrorInfo.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(error_info, { - error_info :: gleam@dict:dict(gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Expected.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Expected.hrl deleted file mode 100644 index 5e40ad3..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Expected.hrl +++ /dev/null @@ -1 +0,0 @@ --record(expected, {value :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Expression.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Expression.hrl deleted file mode 100644 index 7aa0c35..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Expression.hrl +++ /dev/null @@ -1 +0,0 @@ --record(expression, {expression :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_File.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_File.hrl deleted file mode 100644 index 1274b74..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_File.hrl +++ /dev/null @@ -1 +0,0 @@ --record(file, {filename :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GenericException.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GenericException.hrl deleted file mode 100644 index 7c33d0d..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GenericException.hrl +++ /dev/null @@ -1 +0,0 @@ --record(generic_exception, {value :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GleamAssert.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GleamAssert.hrl deleted file mode 100644 index 095748c..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GleamAssert.hrl +++ /dev/null @@ -1 +0,0 @@ --record(gleam_assert, {value :: gleam@dynamic:dynamic_(), line_no :: integer()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GleamError.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GleamError.hrl deleted file mode 100644 index 68e6645..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_GleamError.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(gleam_error, { - details :: showtime@internal@common@test_result:gleam_error_detail() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Ignored.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Ignored.hrl deleted file mode 100644 index 87b7e2f..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Ignored.hrl +++ /dev/null @@ -1 +0,0 @@ --record(ignored, {reason :: showtime@internal@common@test_result:ignore_reason()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_LetAssert.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_LetAssert.hrl deleted file mode 100644 index 5f3f60d..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_LetAssert.hrl +++ /dev/null @@ -1,7 +0,0 @@ --record(let_assert, { - module :: binary(), - function :: binary(), - line_no :: integer(), - message :: binary(), - value :: gleam@dynamic:dynamic_() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Line.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Line.hrl deleted file mode 100644 index 9807df6..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Line.hrl +++ /dev/null @@ -1 +0,0 @@ --record(line, {line_no :: integer()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Module.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Module.hrl deleted file mode 100644 index 8002c0c..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Module.hrl +++ /dev/null @@ -1 +0,0 @@ --record(module, {name :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Num.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Num.hrl deleted file mode 100644 index c36efa3..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Num.hrl +++ /dev/null @@ -1 +0,0 @@ --record(num, {arity :: integer()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Pattern.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Pattern.hrl deleted file mode 100644 index 6aa9c84..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Pattern.hrl +++ /dev/null @@ -1 +0,0 @@ --record(pattern, {pattern :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ReasonLine.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ReasonLine.hrl deleted file mode 100644 index b7ad1ab..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_ReasonLine.hrl +++ /dev/null @@ -1 +0,0 @@ --record(reason_line, {line_no :: integer()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TestFunctionReturn.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TestFunctionReturn.hrl deleted file mode 100644 index b0bc294..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TestFunctionReturn.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(test_function_return, { - value :: gleam@dynamic:dynamic_(), - output_buffer :: list(binary()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Trace.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Trace.hrl deleted file mode 100644 index 4cb007c..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Trace.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(trace, { - function :: binary(), - arity :: showtime@internal@common@test_result:arity_(), - extra_info :: list(showtime@internal@common@test_result:extra_info()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TraceList.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TraceList.hrl deleted file mode 100644 index c1aa9c5..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TraceList.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(trace_list, { - traces :: list(showtime@internal@common@test_result:trace()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TraceModule.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TraceModule.hrl deleted file mode 100644 index 595362f..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_TraceModule.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(trace_module, { - module :: binary(), - function :: binary(), - arity :: showtime@internal@common@test_result:arity_(), - extra_info :: list(showtime@internal@common@test_result:extra_info()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Value.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Value.hrl deleted file mode 100644 index 3a4b0dd..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_result_Value.hrl +++ /dev/null @@ -1 +0,0 @@ --record(value, {value :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_CompletedTestRun.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_CompletedTestRun.hrl deleted file mode 100644 index 927a0cf..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_CompletedTestRun.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(completed_test_run, { - test_function :: showtime@internal@common@test_suite:test_function(), - total_time :: integer(), - result :: {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()} -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTest.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTest.hrl deleted file mode 100644 index 13df1bf..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTest.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(end_test, { - test_module :: showtime@internal@common@test_suite:test_module(), - test_function :: showtime@internal@common@test_suite:test_function(), - result :: {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()} -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTestRun.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTestRun.hrl deleted file mode 100644 index 3f78991..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTestRun.hrl +++ /dev/null @@ -1 +0,0 @@ --record(end_test_run, {num_modules :: integer()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTestSuite.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTestSuite.hrl deleted file mode 100644 index a7f37b3..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_EndTestSuite.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(end_test_suite, { - test_module :: showtime@internal@common@test_suite:test_module() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_OngoingTestRun.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_OngoingTestRun.hrl deleted file mode 100644 index f52e5cc..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_OngoingTestRun.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(ongoing_test_run, { - test_function :: showtime@internal@common@test_suite:test_function(), - started_at :: integer() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_StartTest.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_StartTest.hrl deleted file mode 100644 index d532609..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_StartTest.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(start_test, { - test_module :: showtime@internal@common@test_suite:test_module(), - test_function :: showtime@internal@common@test_suite:test_function() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_StartTestSuite.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_StartTestSuite.hrl deleted file mode 100644 index d5a03d3..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_StartTestSuite.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(start_test_suite, { - test_module :: showtime@internal@common@test_suite:test_module() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestFunction.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestFunction.hrl deleted file mode 100644 index a783ba4..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestFunction.hrl +++ /dev/null @@ -1 +0,0 @@ --record(test_function, {name :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestModule.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestModule.hrl deleted file mode 100644 index ee9baaf..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestModule.hrl +++ /dev/null @@ -1 +0,0 @@ --record(test_module, {name :: binary(), path :: gleam@option:option(binary())}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestSuite.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestSuite.hrl deleted file mode 100644 index 253a946..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@common@test_suite_TestSuite.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(test_suite, { - module :: showtime@internal@common@test_suite:test_module(), - tests :: list(showtime@internal@common@test_suite:test_function()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignLeft.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignLeft.hrl deleted file mode 100644 index ca52968..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignLeft.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(align_left, { - content :: showtime@internal@reports@table:content(), - margin :: integer() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignLeftOverflow.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignLeftOverflow.hrl deleted file mode 100644 index 8d5a673..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignLeftOverflow.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(align_left_overflow, { - content :: showtime@internal@reports@table:content(), - margin :: integer() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignRight.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignRight.hrl deleted file mode 100644 index 7f7a3f0..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignRight.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(align_right, { - content :: showtime@internal@reports@table:content(), - margin :: integer() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignRightOverflow.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignRightOverflow.hrl deleted file mode 100644 index 4fc4536..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_AlignRightOverflow.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(align_right_overflow, { - content :: showtime@internal@reports@table:content(), - margin :: integer() -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Aligned.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Aligned.hrl deleted file mode 100644 index 2343dfd..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Aligned.hrl +++ /dev/null @@ -1 +0,0 @@ --record(aligned, {content :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Content.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Content.hrl deleted file mode 100644 index 044891b..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Content.hrl +++ /dev/null @@ -1 +0,0 @@ --record(content, {unstyled_text :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Separator.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Separator.hrl deleted file mode 100644 index db3f822..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Separator.hrl +++ /dev/null @@ -1 +0,0 @@ --record(separator, {char :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_StyledContent.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_StyledContent.hrl deleted file mode 100644 index ed500df..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_StyledContent.hrl +++ /dev/null @@ -1 +0,0 @@ --record(styled_content, {styled_text :: binary()}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Table.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Table.hrl deleted file mode 100644 index 5b41bb1..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@internal@reports@table_Table.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(table, { - header :: gleam@option:option(binary()), - rows :: list(list(showtime@internal@reports@table:col())) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@meta_Meta.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@tests@meta_Meta.hrl deleted file mode 100644 index 14184fb..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@meta_Meta.hrl +++ /dev/null @@ -1 +0,0 @@ --record(meta, {description :: binary(), tags :: list(binary())}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_Eq.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_Eq.hrl deleted file mode 100644 index 6ebea34..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_Eq.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(eq, { - a :: any(), - b :: any(), - meta :: gleam@option:option(showtime@tests@meta:meta()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_Fail.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_Fail.hrl deleted file mode 100644 index cf06a3c..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_Fail.hrl +++ /dev/null @@ -1 +0,0 @@ --record(fail, {meta :: gleam@option:option(showtime@tests@meta:meta())}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_IsError.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_IsError.hrl deleted file mode 100644 index e9cabf3..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_IsError.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(is_error, { - a :: {ok, any()} | {error, any()}, - meta :: gleam@option:option(showtime@tests@meta:meta()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_IsOk.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_IsOk.hrl deleted file mode 100644 index 37c24ca..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_IsOk.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(is_ok, { - a :: {ok, any()} | {error, any()}, - meta :: gleam@option:option(showtime@tests@meta:meta()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_NotEq.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_NotEq.hrl deleted file mode 100644 index 2a6bf48..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@should_NotEq.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(not_eq, { - a :: any(), - b :: any(), - meta :: gleam@option:option(showtime@tests@meta:meta()) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@test_MetaShould.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@tests@test_MetaShould.hrl deleted file mode 100644 index a814a93..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@test_MetaShould.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(meta_should, { - equal :: fun((any(), any()) -> nil), - not_equal :: fun((any(), any()) -> nil) -}). diff --git a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@test_Test.hrl b/aoc2023/build/dev/erlang/adglent/include/showtime@tests@test_Test.hrl deleted file mode 100644 index e75a0b7..0000000 --- a/aoc2023/build/dev/erlang/adglent/include/showtime@tests@test_Test.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(test, { - meta :: showtime@tests@meta:meta(), - test_function :: fun(() -> nil) -}). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.cache deleted file mode 100644 index e31a66a..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.cache_meta deleted file mode 100644 index 7d66c62..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.erl deleted file mode 100644 index 12159d0..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023.erl +++ /dev/null @@ -1,21 +0,0 @@ --module(aoc2023). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec main() -> bitstring(). -main() -> - Trim = 8, - _assert_subject = gleam_stdlib:identity(<<"abcdefgh -abcdefgh"/utf8>>), - <<_:Trim/binary, "\n"/utf8, Rest/binary>> = case _assert_subject of - <<_:Trim/binary, "\n"/utf8, _/binary>> -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"aoc2023"/utf8>>, - function => <<"main"/utf8>>, - line => 9}) - end, - gleam@io:debug(Rest). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023@@main.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023@@main.erl deleted file mode 100644 index ad291f1..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023@@main.erl +++ /dev/null @@ -1,35 +0,0 @@ --module('aoc2023@@main'). - --export([run/1]). - -run(Module) -> - io:setopts(standard_io, [binary, {encoding, utf8}]), - io:setopts(standard_error, [{encoding, utf8}]), - try - {ok, _} = application:ensure_all_started('aoc2023'), - erlang:process_flag(trap_exit, false), - Module:main(), - erlang:halt(0) - catch - Class:Reason:StackTrace -> - print_error(Class, Reason, StackTrace), - erlang:halt(127, [{flush, true}]) - end. - -print_error(Class, Reason, StackTrace) -> - E = erl_error:format_exception( - 1, Class, Reason, StackTrace, fun stack_filter/3, - fun print_stack_frame/2, unicode - ), - io:put_chars(E). - -stack_filter(Module, _F, _A) -> - case Module of - ?MODULE -> true; - erl_eval -> true; - init -> true; - _ -> false - end. - -print_stack_frame(Term, I) -> - io_lib:format("~." ++ integer_to_list(I) ++ "tP", [Term, 50]). \ No newline at end of file diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache deleted file mode 100644 index cb20c74..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache_meta deleted file mode 100644 index f568aaf..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.erl deleted file mode 100644 index 7382e40..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/aoc2023_test.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(aoc2023_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec main() -> nil. -main() -> - showtime:main(). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache deleted file mode 100644 index 40fbdcf..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache_meta deleted file mode 100644 index f13b8dc..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.erl deleted file mode 100644 index 5fd5c16..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@day10_test.erl +++ /dev/null @@ -1,52 +0,0 @@ --module(day10@day10_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, <<"7-F7- -.FJ|7 -SJLL7 -|F--J -LJ.LJ"/utf8>>, <<"8"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, <<"7-F7- -.FJ|7 -SJLL7 -|F--J -LJ.LJ"/utf8>>, <<"8"/utf8>>}], - fun(Example) -> _pipe@1 = day10@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"........... -.S-------7. -.|F-----7|. -.||OOOOO||. -.||OOOOO||. -.|L-7OF-J|. -.|II|O|II|. -.L--JOL--J. -.....O....."/utf8>>, - <<"4"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"........... -.S-------7. -.|F-----7|. -.||OOOOO||. -.||OOOOO||. -.|L-7OF-J|. -.|II|O|II|. -.L--JOL--J. -.....O....."/utf8>>, - <<"4"/utf8>>}], - fun(Example) -> _pipe@1 = day10@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.cache deleted file mode 100644 index 65500d7..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.cache_meta deleted file mode 100644 index 51c9047..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.erl deleted file mode 100644 index d6802a6..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day10@solve.erl +++ /dev/null @@ -1,340 +0,0 @@ --module(day10@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([posn/0]). - --type posn() :: {posn, integer(), integer()}. - --spec add_posns(posn(), posn()) -> posn(). -add_posns(P1, P2) -> - {posn, - erlang:element(2, P1) + erlang:element(2, P2), - erlang:element(3, P1) + erlang:element(3, P2)}. - --spec pipe_neighbors(binary()) -> list(posn()). -pipe_neighbors(Pipe) -> - case Pipe of - <<"|"/utf8>> -> - [{posn, -1, 0}, {posn, 1, 0}]; - - <<"-"/utf8>> -> - [{posn, 0, 1}, {posn, 0, -1}]; - - <<"L"/utf8>> -> - [{posn, -1, 0}, {posn, 0, 1}]; - - <<"F"/utf8>> -> - [{posn, 1, 0}, {posn, 0, 1}]; - - <<"7"/utf8>> -> - [{posn, 1, 0}, {posn, 0, -1}]; - - <<"J"/utf8>> -> - [{posn, -1, 0}, {posn, 0, -1}]; - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"bad pipe"/utf8>>, - module => <<"day10/solve"/utf8>>, - function => <<"pipe_neighbors"/utf8>>, - line => 44}) - end. - --spec make_grid(binary()) -> gleam@dict:dict(posn(), binary()). -make_grid(Input) -> - _pipe = (gleam@list:index_map( - gleam@string:split(Input, <<"\n"/utf8>>), - fun(R, Row) -> - gleam@list:index_map( - gleam@string:to_graphemes(Row), - fun(C, Col) -> {{posn, R, C}, Col} end - ) - end - )), - _pipe@1 = gleam@list:flatten(_pipe), - gleam@dict:from_list(_pipe@1). - --spec valid_start_direction(gleam@dict:dict(posn(), binary()), posn()) -> posn(). -valid_start_direction(Grid, S) -> - _assert_subject = (gleam@list:filter_map( - [{{posn, -1, 0}, [<<"|"/utf8>>, <<"7"/utf8>>, <<"F"/utf8>>]}, - {{posn, 1, 0}, [<<"|"/utf8>>, <<"J"/utf8>>, <<"L"/utf8>>]}, - {{posn, 0, 1}, [<<"-"/utf8>>, <<"J"/utf8>>, <<"7"/utf8>>]}, - {{posn, 0, -1}, [<<"-"/utf8>>, <<"F"/utf8>>, <<"L"/utf8>>]}], - fun(D) -> - {Delta, Valids} = D, - Neighbor = add_posns(S, Delta), - case gleam@dict:get(Grid, Neighbor) of - {ok, Pipe} -> - case gleam@list:contains(Valids, Pipe) of - true -> - {ok, Neighbor}; - - false -> - {error, nil} - end; - - {error, _} -> - {error, nil} - end - end - )), - [Dir | _] = case _assert_subject of - [_ | _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day10/solve"/utf8>>, - function => <<"valid_start_direction"/utf8>>, - line => 59}) - end, - Dir. - --spec to_next_pipe(posn(), gleam@dict:dict(posn(), binary()), list(posn())) -> list(posn()). -to_next_pipe(Current, Grid, Acc) -> - [Prev | _] = case Acc of - [_ | _] -> Acc; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day10/solve"/utf8>>, - function => <<"to_next_pipe"/utf8>>, - line => 76}) - end, - _assert_subject = gleam@dict:get(Grid, Current), - {ok, Pipe} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day10/solve"/utf8>>, - function => <<"to_next_pipe"/utf8>>, - line => 77}) - end, - gleam@bool:guard( - Pipe =:= <<"S"/utf8>>, - [Current | Acc], - fun() -> - _assert_subject@1 = begin - _pipe = Pipe, - _pipe@1 = pipe_neighbors(_pipe), - gleam@list:filter_map( - _pipe@1, - fun(P) -> case add_posns(P, Current) of - Neighbor when Neighbor =:= Prev -> - {error, nil}; - - Neighbor@1 -> - {ok, Neighbor@1} - end end - ) - end, - [Next] = case _assert_subject@1 of - [_] -> _assert_subject@1; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"day10/solve"/utf8>>, - function => <<"to_next_pipe"/utf8>>, - line => 79}) - end, - to_next_pipe(Next, Grid, [Current | Acc]) - end - ). - --spec part1(binary()) -> binary(). -part1(Input) -> - Grid = begin - _pipe = Input, - make_grid(_pipe) - end, - _assert_subject = begin - _pipe@1 = Grid, - _pipe@2 = gleam@dict:filter( - _pipe@1, - fun(_, V) -> V =:= <<"S"/utf8>> end - ), - _pipe@3 = gleam@dict:keys(_pipe@2), - gleam@list:first(_pipe@3) - end, - {ok, S} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day10/solve"/utf8>>, - function => <<"part1"/utf8>>, - line => 97}) - end, - _pipe@4 = Grid, - _pipe@5 = valid_start_direction(_pipe@4, S), - _pipe@6 = to_next_pipe(_pipe@5, Grid, [S]), - _pipe@7 = gleam@list:length(_pipe@6), - _pipe@8 = (fun(I) -> ((I - 1) div 2) end)(_pipe@7), - gleam@string:inspect(_pipe@8). - --spec count_crossings( - posn(), - gleam@set:set(posn()), - gleam@dict:dict(posn(), binary()), - integer(), - binary() -) -> integer(). -count_crossings(P, Loop, Grid, Acc, Corner) -> - Maybe_cell = gleam@dict:get(Grid, P), - gleam@bool:guard( - Maybe_cell =:= {error, nil}, - Acc, - fun() -> - {ok, Cell} = case Maybe_cell of - {ok, _} -> Maybe_cell; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day10/solve"/utf8>>, - function => <<"count_crossings"/utf8>>, - line => 125}) - end, - Next = add_posns(P, {posn, 0, 1}), - case gleam@set:contains(Loop, P) of - false -> - count_crossings(Next, Loop, Grid, Acc, Corner); - - true -> - case {Corner, Cell} of - {_, <<"|"/utf8>>} -> - count_crossings(Next, Loop, Grid, Acc + 1, Corner); - - {_, <<"F"/utf8>>} -> - count_crossings(Next, Loop, Grid, Acc, Cell); - - {_, <<"L"/utf8>>} -> - count_crossings(Next, Loop, Grid, Acc, Cell); - - {<<"F"/utf8>>, <<"J"/utf8>>} -> - count_crossings( - Next, - Loop, - Grid, - Acc + 1, - <<""/utf8>> - ); - - {<<"L"/utf8>>, <<"7"/utf8>>} -> - count_crossings( - Next, - Loop, - Grid, - Acc + 1, - <<""/utf8>> - ); - - {<<"F"/utf8>>, <<"7"/utf8>>} -> - count_crossings(Next, Loop, Grid, Acc, <<""/utf8>>); - - {<<"L"/utf8>>, <<"J"/utf8>>} -> - count_crossings(Next, Loop, Grid, Acc, <<""/utf8>>); - - {_, _} -> - count_crossings(Next, Loop, Grid, Acc, Corner) - end - end - end - ). - --spec trace_ray( - posn(), - gleam@set:set(posn()), - gleam@dict:dict(posn(), binary()) -) -> boolean(). -trace_ray(P, Loop, Grid) -> - gleam@bool:guard( - gleam@set:contains(Loop, P), - false, - fun() -> - gleam@int:is_odd(count_crossings(P, Loop, Grid, 0, <<""/utf8>>)) - end - ). - --spec part2(binary()) -> binary(). -part2(Input) -> - Grid = begin - _pipe = Input, - make_grid(_pipe) - end, - _assert_subject = begin - _pipe@1 = Grid, - _pipe@2 = gleam@dict:filter( - _pipe@1, - fun(_, V) -> V =:= <<"S"/utf8>> end - ), - _pipe@3 = gleam@dict:keys(_pipe@2), - gleam@list:first(_pipe@3) - end, - {ok, S} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day10/solve"/utf8>>, - function => <<"part2"/utf8>>, - line => 145}) - end, - Loop_pipes = begin - _pipe@4 = Grid, - _pipe@5 = valid_start_direction(_pipe@4, S), - _pipe@6 = to_next_pipe(_pipe@5, Grid, [S]), - gleam@set:from_list(_pipe@6) - end, - _pipe@7 = Grid, - _pipe@8 = gleam@dict:keys(_pipe@7), - _pipe@9 = gleam@list:filter( - _pipe@8, - fun(_capture) -> trace_ray(_capture, Loop_pipes, Grid) end - ), - _pipe@10 = gleam@list:length(_pipe@9), - gleam@string:inspect(_pipe@10). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day10/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 165}) - end, - _assert_subject@1 = adglent:get_input(<<"10"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day10/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 166}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache deleted file mode 100644 index dd328a5..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache_meta deleted file mode 100644 index 8698a6e..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.erl deleted file mode 100644 index 8190b1e..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@day11_test.erl +++ /dev/null @@ -1,68 +0,0 @@ --module(day11@day11_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"...#...... -.......#.. -#......... -.......... -......#... -.#........ -.........# -.......... -.......#.. -#...#....."/utf8>>, - <<"374"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"...#...... -.......#.. -#......... -.......... -......#... -.#........ -.........# -.......... -.......#.. -#...#....."/utf8>>, - <<"374"/utf8>>}], - fun(Example) -> _pipe@1 = day11@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"...#...... -.......#.. -#......... -.......... -......#... -.#........ -.........# -.......... -.......#.. -#...#....."/utf8>>, - <<"8410"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"...#...... -.......#.. -#......... -.......... -......#... -.#........ -.........# -.......... -.......#.. -#...#....."/utf8>>, - <<"8410"/utf8>>}], - fun(Example) -> _pipe@1 = day11@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.cache deleted file mode 100644 index db28325..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.cache_meta deleted file mode 100644 index 3765d62..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.erl deleted file mode 100644 index 2dd8574..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day11@solve.erl +++ /dev/null @@ -1,130 +0,0 @@ --module(day11@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([posn/0]). - --type posn() :: {posn, integer(), integer()}. - --spec find_empty(list(list(binary()))) -> list(integer()). -find_empty(Grid) -> - gleam@list:index_fold( - Grid, - [], - fun(Acc, Row, R) -> case gleam@list:unique(Row) of - [<<"."/utf8>>] -> - [R | Acc]; - - _ -> - Acc - end end - ). - --spec count_prior_empty_ranks(integer(), list(integer())) -> integer(). -count_prior_empty_ranks(Rank, Empty_ranks) -> - _pipe = Empty_ranks, - _pipe@1 = gleam@list:drop_while(_pipe, fun(R_empty) -> R_empty > Rank end), - gleam@list:length(_pipe@1). - --spec parse_with_expansion(binary(), integer()) -> list(posn()). -parse_with_expansion(Input, Expansion) -> - Add = Expansion - 1, - Grid = begin - _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<"\n"/utf8>>), - gleam@list:map(_pipe@1, fun gleam@string:to_graphemes/1) - end, - Empty_row_list = find_empty(Grid), - Empty_col_list = find_empty(gleam@list:transpose(Grid)), - _pipe@2 = (gleam@list:index_map( - Grid, - fun(R, Row) -> - gleam@list:index_fold( - Row, - [], - fun(Acc, Cell, C) -> - P = {posn, R, C}, - Empty_r = count_prior_empty_ranks(R, Empty_row_list), - Empty_c = count_prior_empty_ranks(C, Empty_col_list), - case Cell of - <<"#"/utf8>> -> - [{posn, - erlang:element(2, P) + (Empty_r * Add), - erlang:element(3, P) + (Empty_c * Add)} | - Acc]; - - _ -> - Acc - end - end - ) - end - )), - gleam@list:flatten(_pipe@2). - --spec all_distances(list(posn())) -> integer(). -all_distances(Stars) -> - gleam@list:fold( - gleam@list:combination_pairs(Stars), - 0, - fun(Acc, Pair) -> - {S1, S2} = Pair, - (Acc + gleam@int:absolute_value( - erlang:element(2, S1) - erlang:element(2, S2) - )) - + gleam@int:absolute_value( - erlang:element(3, S1) - erlang:element(3, S2) - ) - end - ). - --spec find_distances(binary(), integer()) -> binary(). -find_distances(Input, Expand_by) -> - _pipe = Input, - _pipe@1 = parse_with_expansion(_pipe, Expand_by), - _pipe@2 = all_distances(_pipe@1), - gleam@string:inspect(_pipe@2). - --spec part1(binary()) -> binary(). -part1(Input) -> - find_distances(Input, 2). - --spec part2(binary()) -> binary(). -part2(Input) -> - find_distances(Input, 1000000). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day11/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 72}) - end, - _assert_subject@1 = adglent:get_input(<<"11"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day11/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 73}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache deleted file mode 100644 index 13fcba5..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache_meta deleted file mode 100644 index d8d6ce0..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.erl deleted file mode 100644 index fcbec4b..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@day12_test.erl +++ /dev/null @@ -1,38 +0,0 @@ --module(day12@day12_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"???.### 1,1,3 -.??..??...?##. 1,1,3 -?#?#?#?#?#?#?#? 1,3,1,6 -????.#...#... 4,1,1 -????.######..#####. 1,6,5 -?###???????? 3,2,1"/utf8>>, - <<"21"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"???.### 1,1,3 -.??..??...?##. 1,1,3 -?#?#?#?#?#?#?#? 1,3,1,6 -????.#...#... 4,1,1 -????.######..#####. 1,6,5 -?###???????? 3,2,1"/utf8>>, - <<"21"/utf8>>}], - fun(Example) -> _pipe@1 = day12@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [], - fun(Example) -> _pipe@1 = day12@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.cache deleted file mode 100644 index 380635a..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.cache_meta deleted file mode 100644 index ba4b411..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.erl deleted file mode 100644 index 4ca87c8..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day12@solve.erl +++ /dev/null @@ -1,145 +0,0 @@ --module(day12@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). - --spec parse_folds(binary(), integer()) -> list({binary(), list(integer())}). -parse_folds(Input, Folds) -> - Records = gleam@string:split(Input, <<"\n"/utf8>>), - gleam@list:map( - Records, - fun(Record) -> - _assert_subject = gleam@string:split_once(Record, <<" "/utf8>>), - {ok, {Template, Sets_str}} = case _assert_subject of - {ok, {_, _}} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day12/solve"/utf8>>, - function => <<"parse_folds"/utf8>>, - line => 15}) - end, - Template@1 = begin - _pipe = Template, - _pipe@1 = gleam@list:repeat(_pipe, Folds), - _pipe@2 = gleam@list:intersperse(_pipe@1, <<"?"/utf8>>), - gleam@string:concat(_pipe@2) - end, - Sets = begin - _pipe@3 = Sets_str, - _pipe@4 = gleam@string:split(_pipe@3, <<","/utf8>>), - _pipe@5 = gleam@list:map(_pipe@4, fun gleam@int:parse/1), - _pipe@6 = gleam@result:values(_pipe@5), - _pipe@7 = gleam@list:repeat(_pipe@6, Folds), - gleam@list:flatten(_pipe@7) - end, - {Template@1, Sets} - end - ). - --spec do_count( - binary(), - list(integer()), - integer(), - boolean(), - utilities@memo:cache({binary(), list(integer()), integer(), boolean()}, integer()) -) -> integer(). -do_count(Template, Groups, Left, Gap, Cache) -> - utilities@memo:memoize( - Cache, - {Template, Groups, Left, Gap}, - fun() -> case {Template, Groups, Left, Gap} of - {<<""/utf8>>, [], 0, _} -> - 1; - - {<<"?"/utf8, T_rest/binary>>, [G | G_rest], 0, false} -> - do_count(T_rest, G_rest, G - 1, G =:= 1, Cache) + (do_count( - T_rest, - Groups, - 0, - false, - Cache - )); - - {<<"?"/utf8, T_rest@1/binary>>, [], 0, false} -> - do_count(T_rest@1, Groups, 0, false, Cache); - - {<<"?"/utf8, T_rest@1/binary>>, _, 0, true} -> - do_count(T_rest@1, Groups, 0, false, Cache); - - {<<"."/utf8, T_rest@1/binary>>, _, 0, _} -> - do_count(T_rest@1, Groups, 0, false, Cache); - - {<<"#"/utf8, T_rest@2/binary>>, [G@1 | G_rest@1], 0, false} -> - do_count(T_rest@2, G_rest@1, G@1 - 1, G@1 =:= 1, Cache); - - {<<"?"/utf8, T_rest@3/binary>>, Gs, L, false} -> - do_count(T_rest@3, Gs, L - 1, L =:= 1, Cache); - - {<<"#"/utf8, T_rest@3/binary>>, Gs, L, false} -> - do_count(T_rest@3, Gs, L - 1, L =:= 1, Cache); - - {_, _, _, _} -> - 0 - end end - ). - --spec count_solutions(integer(), {binary(), list(integer())}) -> integer(). -count_solutions(Acc, Condition) -> - utilities@memo:create( - fun(Cache) -> - {Template, Groups} = Condition, - Acc + do_count(Template, Groups, 0, false, Cache) - end - ). - --spec part1(binary()) -> binary(). -part1(Input) -> - _pipe = Input, - _pipe@1 = parse_folds(_pipe, 1), - _pipe@2 = gleam@list:fold(_pipe@1, 0, fun count_solutions/2), - gleam@string:inspect(_pipe@2). - --spec part2(binary()) -> binary(). -part2(Input) -> - _pipe = Input, - _pipe@1 = parse_folds(_pipe, 5), - _pipe@2 = gleam@list:fold(_pipe@1, 0, fun count_solutions/2), - gleam@string:inspect(_pipe@2). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day12/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 79}) - end, - _assert_subject@1 = adglent:get_input(<<"12"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day12/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 80}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache deleted file mode 100644 index dbe362b..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache_meta deleted file mode 100644 index ccd4923..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.erl deleted file mode 100644 index 9aa0038..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@day13_test.erl +++ /dev/null @@ -1,88 +0,0 @@ --module(day13@day13_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"#.##..##. -..#.##.#. -##......# -##......# -..#.##.#. -..##..##. -#.#.##.#. - -#...##..# -#....#..# -..##..### -#####.##. -#####.##. -..##..### -#....#..#"/utf8>>, - <<"405"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"#.##..##. -..#.##.#. -##......# -##......# -..#.##.#. -..##..##. -#.#.##.#. - -#...##..# -#....#..# -..##..### -#####.##. -#####.##. -..##..### -#....#..#"/utf8>>, - <<"405"/utf8>>}], - fun(Example) -> _pipe@1 = day13@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"#.##..##. -..#.##.#. -##......# -##......# -..#.##.#. -..##..##. -#.#.##.#. - -#...##..# -#....#..# -..##..### -#####.##. -#####.##. -..##..### -#....#..#"/utf8>>, - <<"400"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"#.##..##. -..#.##.#. -##......# -##......# -..#.##.#. -..##..##. -#.#.##.#. - -#...##..# -#....#..# -..##..### -#####.##. -#####.##. -..##..### -#....#..#"/utf8>>, - <<"400"/utf8>>}], - fun(Example) -> _pipe@1 = day13@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.cache deleted file mode 100644 index 001ba22..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.cache_meta deleted file mode 100644 index 543c3ff..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.erl deleted file mode 100644 index 5e94b0b..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day13@solve.erl +++ /dev/null @@ -1,149 +0,0 @@ --module(day13@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([symmetry_type/0]). - --type symmetry_type() :: {horizontal, integer()} | {vertical, integer()}. - --spec do_is_symmetric(list(list(BLS)), list(list(BLS)), integer()) -> {ok, - integer()} | - {error, nil}. -do_is_symmetric(Left, Right, Errors) -> - gleam@bool:guard( - gleam@list:is_empty(Right), - {error, nil}, - fun() -> - [H | T] = case Right of - [_ | _] -> Right; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day13/solve"/utf8>>, - function => <<"do_is_symmetric"/utf8>>, - line => 23}) - end, - Found_errors = begin - _pipe = gleam@list:zip( - gleam@list:flatten(Left), - gleam@list:flatten(Right) - ), - _pipe@1 = gleam@list:filter( - _pipe, - fun(Tup) -> - erlang:element(2, Tup) /= erlang:element(1, Tup) - end - ), - gleam@list:length(_pipe@1) - end, - case Found_errors =:= Errors of - true -> - {ok, gleam@list:length(Left)}; - - false -> - do_is_symmetric([H | Left], T, Errors) - end - end - ). - --spec is_symmetric(list(list(any())), integer()) -> {ok, integer()} | - {error, nil}. -is_symmetric(Xss, Errs) -> - [Left | Right] = case Xss of - [_ | _] -> Xss; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day13/solve"/utf8>>, - function => <<"is_symmetric"/utf8>>, - line => 13}) - end, - do_is_symmetric([Left], Right, Errs). - --spec get_symmetry_type(list(list(binary())), integer()) -> symmetry_type(). -get_symmetry_type(Xss, Errors) -> - case is_symmetric(Xss, Errors) of - {ok, N} -> - {horizontal, N}; - - _ -> - _assert_subject = is_symmetric(gleam@list:transpose(Xss), Errors), - {ok, N@1} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day13/solve"/utf8>>, - function => <<"get_symmetry_type"/utf8>>, - line => 38}) - end, - {vertical, N@1} - end. - --spec summarize_notes(list(symmetry_type())) -> integer(). -summarize_notes(Symmetries) -> - gleam@list:fold(Symmetries, 0, fun(Acc, Note) -> case Note of - {horizontal, N} -> - 100 * N; - - {vertical, N@1} -> - N@1 - end + Acc end). - --spec solve(binary(), integer()) -> binary(). -solve(Input, Errors) -> - _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<"\n\n"/utf8>>), - _pipe@5 = gleam@list:map(_pipe@1, fun(Strs) -> _pipe@2 = Strs, - _pipe@3 = gleam@string:split(_pipe@2, <<"\n"/utf8>>), - _pipe@4 = gleam@list:map(_pipe@3, fun gleam@string:to_graphemes/1), - get_symmetry_type(_pipe@4, Errors) end), - _pipe@6 = summarize_notes(_pipe@5), - gleam@string:inspect(_pipe@6). - --spec part1(binary()) -> binary(). -part1(Input) -> - solve(Input, 0). - --spec part2(binary()) -> binary(). -part2(Input) -> - solve(Input, 1). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day13/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 74}) - end, - _assert_subject@1 = adglent:get_input(<<"13"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day13/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 75}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache deleted file mode 100644 index 4577a2b..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache_meta deleted file mode 100644 index 9b11f88..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.erl deleted file mode 100644 index 12ea788..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@day14_test.erl +++ /dev/null @@ -1,68 +0,0 @@ --module(day14@day14_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"O....#.... -O.OO#....# -.....##... -OO.#O....O -.O.....O#. -O.#..O.#.# -..O..#O..O -.......O.. -#....###.. -#OO..#...."/utf8>>, - <<"136"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"O....#.... -O.OO#....# -.....##... -OO.#O....O -.O.....O#. -O.#..O.#.# -..O..#O..O -.......O.. -#....###.. -#OO..#...."/utf8>>, - <<"136"/utf8>>}], - fun(Example) -> _pipe@1 = day14@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"O....#.... -O.OO#....# -.....##... -OO.#O....O -.O.....O#. -O.#..O.#.# -..O..#O..O -.......O.. -#....###.. -#OO..#...."/utf8>>, - <<"64"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"O....#.... -O.OO#....# -.....##... -OO.#O....O -.O.....O#. -O.#..O.#.# -..O..#O..O -.......O.. -#....###.. -#OO..#...."/utf8>>, - <<"64"/utf8>>}], - fun(Example) -> _pipe@1 = day14@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.cache deleted file mode 100644 index 0c6bea3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.cache_meta deleted file mode 100644 index 91ec775..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.erl deleted file mode 100644 index 6c370da..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day14@solve.erl +++ /dev/null @@ -1,149 +0,0 @@ --module(day14@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). - --spec parse(binary()) -> list(list(binary())). -parse(Input) -> - _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<"\n"/utf8>>), - _pipe@2 = gleam@list:map(_pipe@1, fun gleam@string:to_graphemes/1), - gleam@list:transpose(_pipe@2). - --spec roll_boulders(list(binary())) -> list(binary()). -roll_boulders(Strs) -> - _pipe = (gleam@list:map( - gleam@list:chunk( - Strs, - fun(C) -> (C =:= <<"O"/utf8>>) orelse (C =:= <<"."/utf8>>) end - ), - fun(Chunks) -> - gleam@list:sort( - Chunks, - gleam@order:reverse(fun gleam@string:compare/2) - ) - end - )), - gleam@list:flatten(_pipe). - --spec score(list(list(binary()))) -> integer(). -score(Matrix) -> - gleam@list:fold( - Matrix, - 0, - fun(Acc, Col) -> - Acc + (gleam@list:index_fold( - gleam@list:reverse(Col), - 0, - fun(Col_acc, Char, N) -> case Char of - <<"O"/utf8>> -> - (Col_acc + N) + 1; - - _ -> - Col_acc - end end - )) - end - ). - --spec part1(binary()) -> binary(). -part1(Input) -> - _pipe = Input, - _pipe@1 = parse(_pipe), - _pipe@2 = gleam@list:map(_pipe@1, fun roll_boulders/1), - _pipe@3 = score(_pipe@2), - gleam@string:inspect(_pipe@3). - --spec rotate(list(list(BBU))) -> list(list(BBU)). -rotate(Matrix) -> - _pipe = Matrix, - _pipe@1 = gleam@list:map(_pipe, fun gleam@list:reverse/1), - gleam@list:transpose(_pipe@1). - --spec spin(list(list(binary()))) -> list(list(binary())). -spin(Matrix) -> - gleam@list:fold(gleam@list:range(1, 4), Matrix, fun(Acc, _) -> _pipe = Acc, - _pipe@1 = gleam@list:map(_pipe, fun roll_boulders/1), - rotate(_pipe@1) end). - --spec check_if_seen( - list(list(binary())), - gleam@dict:dict(list(list(binary())), integer()), - integer() -) -> integer(). -check_if_seen(Matrix, Cache, Count) -> - case gleam@dict:get(Cache, Matrix) of - {error, nil} -> - check_if_seen( - spin(Matrix), - gleam@dict:insert(Cache, Matrix, Count), - Count - 1 - ); - - {ok, N} -> - _assert_subject = gleam@int:modulo(Count, N - Count), - {ok, Extra} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day14/solve"/utf8>>, - function => <<"check_if_seen"/utf8>>, - line => 66}) - end, - _pipe = gleam@list:fold( - gleam@list:range(1, Extra), - Matrix, - fun(Acc, _) -> spin(Acc) end - ), - score(_pipe) - end. - --spec spin_cycle(list(list(binary()))) -> integer(). -spin_cycle(Matrix) -> - Cache = gleam@dict:new(), - check_if_seen(Matrix, Cache, 1000000000). - --spec part2(binary()) -> binary(). -part2(Input) -> - _pipe = Input, - _pipe@1 = parse(_pipe), - _pipe@2 = spin_cycle(_pipe@1), - gleam@string:inspect(_pipe@2). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day14/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 81}) - end, - _assert_subject@1 = adglent:get_input(<<"14"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day14/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 82}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache deleted file mode 100644 index 40f928f..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache_meta deleted file mode 100644 index 7571773..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.erl deleted file mode 100644 index ad28e90..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@day15_test.erl +++ /dev/null @@ -1,32 +0,0 @@ --module(day15@day15_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7"/utf8>>, - <<"1320"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7"/utf8>>, - <<"1320"/utf8>>}], - fun(Example) -> _pipe@1 = day15@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7"/utf8>>, - <<"145"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7"/utf8>>, - <<"145"/utf8>>}], - fun(Example) -> _pipe@1 = day15@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.cache deleted file mode 100644 index 1b2e2ab..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.cache_meta deleted file mode 100644 index 8cfc051..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.erl deleted file mode 100644 index 623b454..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day15@solve.erl +++ /dev/null @@ -1,177 +0,0 @@ --module(day15@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([instruction/0]). - --type instruction() :: {remove, binary()} | {insert, binary(), integer()}. - --spec split(binary()) -> list(binary()). -split(Input) -> - _pipe = Input, - gleam@string:split(_pipe, <<","/utf8>>). - --spec hash_algorithm(binary()) -> integer(). -hash_algorithm(Str) -> - Codepoints = begin - _pipe = Str, - _pipe@1 = gleam@string:to_utf_codepoints(_pipe), - gleam@list:map(_pipe@1, fun gleam@string:utf_codepoint_to_int/1) - end, - gleam@list:fold( - Codepoints, - 0, - fun(Acc, C) -> - _assert_subject = gleam@int:modulo((Acc + C) * 17, 256), - {ok, Acc@1} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day15/solve"/utf8>>, - function => <<"hash_algorithm"/utf8>>, - line => 20}) - end, - Acc@1 - end - ). - --spec part1(binary()) -> binary(). -part1(Input) -> - _pipe = Input, - _pipe@1 = split(_pipe), - _pipe@2 = gleam@list:fold( - _pipe@1, - 0, - fun(Acc, Str) -> Acc + hash_algorithm(Str) end - ), - gleam@string:inspect(_pipe@2). - --spec read_instruction(binary()) -> instruction(). -read_instruction(Str) -> - case gleam@string:split(Str, <<"="/utf8>>) of - [Label, Focal_str] -> - _assert_subject = gleam@int:parse(Focal_str), - {ok, Focal} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day15/solve"/utf8>>, - function => <<"read_instruction"/utf8>>, - line => 39}) - end, - {insert, Label, Focal}; - - _ -> - {remove, gleam@string:drop_right(Str, 1)} - end. - --spec remove_lens(gleam@dict:dict(integer(), list({binary(), BPV})), binary()) -> gleam@dict:dict(integer(), list({binary(), - BPV})). -remove_lens(Boxes, Label) -> - gleam@dict:update(Boxes, hash_algorithm(Label), fun(V) -> case V of - {some, Lenses} -> - case gleam@list:key_pop(Lenses, Label) of - {ok, {_, Updated}} -> - Updated; - - {error, nil} -> - Lenses - end; - - none -> - [] - end end). - --spec insert_lens( - gleam@dict:dict(integer(), list({binary(), BON})), - binary(), - BON -) -> gleam@dict:dict(integer(), list({binary(), BON})). -insert_lens(Boxes, Label, Focal) -> - gleam@dict:update(Boxes, hash_algorithm(Label), fun(V) -> case V of - {some, Lenses} -> - gleam@list:key_set(Lenses, Label, Focal); - - none -> - [{Label, Focal}] - end end). - --spec parse_instructions(list(binary())) -> gleam@dict:dict(integer(), list({binary(), - integer()})). -parse_instructions(Insts) -> - gleam@list:fold( - Insts, - gleam@dict:new(), - fun(Acc, Inst) -> case read_instruction(Inst) of - {remove, Label} -> - remove_lens(Acc, Label); - - {insert, Label@1, Focal} -> - insert_lens(Acc, Label@1, Focal) - end end - ). - --spec focusing_power(gleam@dict:dict(integer(), list({binary(), integer()}))) -> integer(). -focusing_power(Boxes) -> - gleam@dict:fold( - Boxes, - 0, - fun(Acc, K, V) -> - Box_acc = (gleam@list:index_fold( - V, - 0, - fun(Acc@1, Lens, I) -> - Acc@1 + (erlang:element(2, Lens) * (I + 1)) - end - )), - Acc + ((K + 1) * Box_acc) - end - ). - --spec part2(binary()) -> binary(). -part2(Input) -> - _pipe = Input, - _pipe@1 = split(_pipe), - _pipe@2 = parse_instructions(_pipe@1), - _pipe@3 = focusing_power(_pipe@2), - gleam@string:inspect(_pipe@3). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day15/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 92}) - end, - _assert_subject@1 = adglent:get_input(<<"15"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day15/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 93}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache deleted file mode 100644 index bc9a034..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache_meta deleted file mode 100644 index 2320e16..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.erl deleted file mode 100644 index 978ab14..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@day16_test.erl +++ /dev/null @@ -1,68 +0,0 @@ --module(day16@day16_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<".|...\\.... -|.-.\\..... -.....|-... -........|. -.......... -.........\\ -..../.\\\\.. -.-.-/..|.. -.|....-|.\\ -..//.|...."/utf8>>, - 46}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<".|...\\.... -|.-.\\..... -.....|-... -........|. -.......... -.........\\ -..../.\\\\.. -.-.-/..|.. -.|....-|.\\ -..//.|...."/utf8>>, - 46}], - fun(Example) -> _pipe@1 = day16@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<".|...\\.... -|.-.\\..... -.....|-... -........|. -.......... -.........\\ -..../.\\\\.. -.-.-/..|.. -.|....-|.\\ -..//.|...."/utf8>>, - 51}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<".|...\\.... -|.-.\\..... -.....|-... -........|. -.......... -.........\\ -..../.\\\\.. -.-.-/..|.. -.|....-|.\\ -..//.|...."/utf8>>, - 51}], - fun(Example) -> _pipe@1 = day16@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.cache deleted file mode 100644 index 359bdc2..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.cache_meta deleted file mode 100644 index e7cf5c0..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.erl deleted file mode 100644 index a07c02a..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day16@solve.erl +++ /dev/null @@ -1,253 +0,0 @@ --module(day16@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([direction/0, light/0]). - --type direction() :: up | right | down | left. - --type light() :: {light, utilities@array2d:posn(), direction()}. - --spec move(light()) -> light(). -move(L) -> - {light, P, Dir} = L, - case Dir of - up -> - erlang:setelement( - 2, - L, - erlang:setelement(2, P, erlang:element(2, P) - 1) - ); - - down -> - erlang:setelement( - 2, - L, - erlang:setelement(2, P, erlang:element(2, P) + 1) - ); - - left -> - erlang:setelement( - 2, - L, - erlang:setelement(3, P, erlang:element(3, P) - 1) - ); - - right -> - erlang:setelement( - 2, - L, - erlang:setelement(3, P, erlang:element(3, P) + 1) - ) - end. - --spec transform(light(), {ok, binary()} | {error, nil}) -> list(light()). -transform(L, Cell) -> - gleam@bool:guard( - gleam@result:is_error(Cell), - [], - fun() -> - {ok, C} = case Cell of - {ok, _} -> Cell; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day16/solve"/utf8>>, - function => <<"transform"/utf8>>, - line => 33}) - end, - {light, P, Dir} = L, - case {Dir, C} of - {_, <<"."/utf8>>} -> - [L]; - - {up, <<"|"/utf8>>} -> - [L]; - - {down, <<"|"/utf8>>} -> - [L]; - - {left, <<"-"/utf8>>} -> - [L]; - - {right, <<"-"/utf8>>} -> - [L]; - - {left, <<"/"/utf8>>} -> - [{light, P, down}]; - - {down, <<"/"/utf8>>} -> - [{light, P, left}]; - - {right, <<"/"/utf8>>} -> - [{light, P, up}]; - - {up, <<"/"/utf8>>} -> - [{light, P, right}]; - - {left, <<"\\"/utf8>>} -> - [{light, P, up}]; - - {up, <<"\\"/utf8>>} -> - [{light, P, left}]; - - {right, <<"\\"/utf8>>} -> - [{light, P, down}]; - - {down, <<"\\"/utf8>>} -> - [{light, P, right}]; - - {left, <<"|"/utf8>>} -> - [{light, P, up}, {light, P, down}]; - - {right, <<"|"/utf8>>} -> - [{light, P, up}, {light, P, down}]; - - {up, <<"-"/utf8>>} -> - [{light, P, left}, {light, P, right}]; - - {down, <<"-"/utf8>>} -> - [{light, P, left}, {light, P, right}]; - - {_, _} -> - erlang:error(#{gleam_error => panic, - message => <<"unrecognized cell type"/utf8>>, - module => <<"day16/solve"/utf8>>, - function => <<"transform"/utf8>>, - line => 50}) - end - end - ). - --spec energize( - list(light()), - gleam@set:set(light()), - gleam@dict:dict(utilities@array2d:posn(), binary()) -) -> integer(). -energize(Lights, Visited, Grid) -> - Next_positions = begin - _pipe = Lights, - _pipe@1 = gleam@list:flat_map( - _pipe, - fun(L) -> - Next = move(L), - transform(Next, gleam@dict:get(Grid, erlang:element(2, Next))) - end - ), - gleam@list:filter( - _pipe@1, - fun(L@1) -> not gleam@set:contains(Visited, L@1) end - ) - end, - All_visited = gleam@set:union(gleam@set:from_list(Next_positions), Visited), - case Visited =:= All_visited of - true -> - _pipe@2 = gleam@set:fold( - Visited, - gleam@set:new(), - fun(Acc, L@2) -> - gleam@set:insert(Acc, erlang:element(2, L@2)) - end - ), - _pipe@3 = gleam@set:to_list(_pipe@2), - gleam@list:length(_pipe@3); - - false -> - energize(Next_positions, All_visited, Grid) - end. - --spec part1(binary()) -> integer(). -part1(Input) -> - Grid = utilities@array2d:parse_grid(Input), - _pipe = [{light, {posn, 0, -1}, right}], - energize(_pipe, gleam@set:new(), Grid). - --spec part2(binary()) -> integer(). -part2(Input) -> - Grid = utilities@array2d:parse_grid(Input), - {posn, Rows, Cols} = (gleam@list:fold( - gleam@dict:keys(Grid), - {posn, 0, 0}, - fun(Acc, P) -> - case (erlang:element(2, Acc) + erlang:element(3, Acc)) > (erlang:element( - 2, - P - ) - + erlang:element(3, P)) of - true -> - Acc; - - false -> - P - end - end - )), - All_starts = gleam@list:concat( - [gleam@list:map( - gleam@list:range(0, Rows), - fun(R) -> {light, {posn, R, -1}, right} end - ), - gleam@list:map( - gleam@list:range(0, Rows), - fun(R@1) -> {light, {posn, R@1, Cols + 1}, left} end - ), - gleam@list:map( - gleam@list:range(0, Cols), - fun(C) -> {light, {posn, -1, C}, down} end - ), - gleam@list:map( - gleam@list:range(0, Cols), - fun(C@1) -> {light, {posn, Rows + 1, C@1}, up} end - )] - ), - gleam@list:fold( - All_starts, - 0, - fun(Acc@1, P@1) -> - Energized = energize([P@1], gleam@set:new(), Grid), - case Acc@1 > Energized of - true -> - Acc@1; - - false -> - Energized - end - end - ). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day16/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 107}) - end, - _assert_subject@1 = adglent:get_input(<<"16"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day16/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 108}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache deleted file mode 100644 index a6202af..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache_meta deleted file mode 100644 index 8198a7b..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.erl deleted file mode 100644 index 38e725d..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@day17_test.erl +++ /dev/null @@ -1,52 +0,0 @@ --module(day17@day17_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"2413432311323 -3215453535623 -3255245654254 -3446585845452 -4546657867536 -1438598798454 -4457876987766 -3637877979653 -4654967986887 -4564679986453 -1224686865563 -2546548887735 -4322674655533"/utf8>>, - <<"102"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"2413432311323 -3215453535623 -3255245654254 -3446585845452 -4546657867536 -1438598798454 -4457876987766 -3637877979653 -4654967986887 -4564679986453 -1224686865563 -2546548887735 -4322674655533"/utf8>>, - <<"102"/utf8>>}], - fun(Example) -> _pipe@1 = day17@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [], - fun(Example) -> _pipe@1 = day17@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.cache deleted file mode 100644 index f57cf43..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.cache_meta deleted file mode 100644 index de4425a..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.erl deleted file mode 100644 index 1eddde6..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day17@solve.erl +++ /dev/null @@ -1,231 +0,0 @@ --module(day17@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([state/0]). - --type state() :: {state, - utilities@array2d:posn(), - integer(), - utilities@array2d:posn(), - list(utilities@array2d:posn())}. - --spec same_dir(state()) -> list(utilities@array2d:posn()). -same_dir(S) -> - case erlang:element(5, S) of - [] -> - []; - - [First | _] = Deltas -> - _pipe = gleam@list:take_while(Deltas, fun(D) -> D =:= First end), - gleam@list:take(_pipe, 10) - end. - --spec make_key(state()) -> {utilities@array2d:posn(), - list(utilities@array2d:posn())}. -make_key(S) -> - {erlang:element(2, S), same_dir(S)}. - --spec is_goal(state(), integer(), utilities@array2d:posn()) -> boolean(). -is_goal(S, Min_run, Goal) -> - (Goal =:= erlang:element(2, S)) andalso (gleam@list:length(same_dir(S)) >= Min_run). - --spec eliminate_bad_neighbors( - utilities@array2d:posn(), - state(), - integer(), - integer(), - gleam@dict:dict(utilities@array2d:posn(), any()) -) -> boolean(). -eliminate_bad_neighbors(D, S, Max, Min, Grid) -> - Neighbor = utilities@array2d:add_posns(D, erlang:element(2, S)), - gleam@bool:guard( - (Neighbor =:= erlang:element(4, S)) orelse not gleam@dict:has_key( - Grid, - Neighbor - ), - false, - fun() -> case {same_dir(S), gleam@list:length(same_dir(S))} of - {[Prev | _], L} when L =:= Max -> - D /= Prev; - - {_, 0} -> - true; - - {[Prev@1 | _], L@1} when L@1 < Min -> - D =:= Prev@1; - - {_, _} -> - true - end end - ). - --spec make_state( - utilities@array2d:posn(), - state(), - gleam@dict:dict(utilities@array2d:posn(), integer()) -) -> state(). -make_state(D, S, Grid) -> - Neighbor = utilities@array2d:add_posns(D, erlang:element(2, S)), - _assert_subject = gleam@dict:get(Grid, Neighbor), - {ok, Heat_lost} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day17/solve"/utf8>>, - function => <<"make_state"/utf8>>, - line => 58}) - end, - {state, - Neighbor, - erlang:element(3, S) + Heat_lost, - erlang:element(2, S), - [D | erlang:element(5, S)]}. - --spec find_good_neighbors( - integer(), - integer(), - state(), - gleam@dict:dict(utilities@array2d:posn(), integer()) -) -> list(state()). -find_good_neighbors(Max, Min, S, Grid) -> - _pipe = [{posn, -1, 0}, {posn, 1, 0}, {posn, 0, -1}, {posn, 0, 1}], - _pipe@1 = gleam@list:filter( - _pipe, - fun(_capture) -> - eliminate_bad_neighbors(_capture, S, Max, Min, Grid) - end - ), - gleam@list:map( - _pipe@1, - fun(_capture@1) -> make_state(_capture@1, S, Grid) end - ). - --spec find_path( - gleam@dict:dict(utilities@array2d:posn(), integer()), - utilities@prioqueue:priority_queue(state()), - gleam@set:set({utilities@array2d:posn(), list(utilities@array2d:posn())}), - fun((state()) -> list(state())), - fun((state()) -> boolean()) -) -> integer(). -find_path(Grid, Queue, Seen, Get_neighbors, Is_goal) -> - _assert_subject = utilities@prioqueue:pop(Queue), - {ok, {State, Rest}} = case _assert_subject of - {ok, {_, _}} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day17/solve"/utf8>>, - function => <<"find_path"/utf8>>, - line => 74}) - end, - Key = make_key( - begin - _pipe = State, - gleam@io:debug(_pipe) - end - ), - case gleam@set:contains(Seen, Key) of - true -> - find_path(Grid, Rest, Seen, Get_neighbors, Is_goal); - - false -> - Now_seen = gleam@set:insert(Seen, Key), - Neighbors = Get_neighbors(State), - case gleam@list:find(Neighbors, Is_goal) of - {ok, Final} -> - erlang:element(3, Final); - - _ -> - Now_queue = gleam@list:fold( - Neighbors, - Rest, - fun(Acc, N) -> - utilities@prioqueue:insert( - Acc, - N, - erlang:element(3, N) - ) - end - ), - find_path(Grid, Now_queue, Now_seen, Get_neighbors, Is_goal) - end - end. - --spec part1(binary()) -> binary(). -part1(Input) -> - Raw_grid = begin - _pipe = Input, - utilities@array2d:to_list_of_lists(_pipe) - end, - Grid = utilities@array2d:to_2d_intarray(Raw_grid), - Rmax = gleam@list:length(Raw_grid), - _assert_subject = begin - _pipe@1 = Raw_grid, - _pipe@2 = gleam@list:first(_pipe@1), - gleam@result:map(_pipe@2, fun gleam@list:length/1) - end, - {ok, Cmax} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day17/solve"/utf8>>, - function => <<"part1"/utf8>>, - line => 107}) - end, - Start = {state, {posn, 0, 0}, 0, {posn, 0, 0}, []}, - Goal = {posn, Rmax, Cmax}, - _pipe@3 = find_path( - Grid, - utilities@prioqueue:insert(utilities@prioqueue:new(), Start, 0), - gleam@set:new(), - fun(_capture) -> find_good_neighbors(0, 3, _capture, Grid) end, - fun(_capture@1) -> is_goal(_capture@1, 1, Goal) end - ), - gleam@string:inspect(_pipe@3). - --spec part2(binary()) -> binary(). -part2(Input) -> - _pipe = Input, - gleam@string:inspect(_pipe). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day17/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 131}) - end, - _assert_subject@1 = adglent:get_input(<<"17"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day17/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 132}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache deleted file mode 100644 index 03f5c97..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache_meta deleted file mode 100644 index 4d0ad03..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.erl deleted file mode 100644 index 9763a38..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@day18_test.erl +++ /dev/null @@ -1,84 +0,0 @@ --module(day18@day18_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"R 6 (#70c710) -D 5 (#0dc571) -L 2 (#5713f0) -D 2 (#d2c081) -R 2 (#59c680) -D 2 (#411b91) -L 5 (#8ceee2) -U 2 (#caa173) -L 1 (#1b58a2) -U 2 (#caa171) -R 2 (#7807d2) -U 3 (#a77fa3) -L 2 (#015232) -U 2 (#7a21e3)"/utf8>>, - <<"62"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"R 6 (#70c710) -D 5 (#0dc571) -L 2 (#5713f0) -D 2 (#d2c081) -R 2 (#59c680) -D 2 (#411b91) -L 5 (#8ceee2) -U 2 (#caa173) -L 1 (#1b58a2) -U 2 (#caa171) -R 2 (#7807d2) -U 3 (#a77fa3) -L 2 (#015232) -U 2 (#7a21e3)"/utf8>>, - <<"62"/utf8>>}], - fun(Example) -> _pipe@1 = day18@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"R 6 (#70c710) -D 5 (#0dc571) -L 2 (#5713f0) -D 2 (#d2c081) -R 2 (#59c680) -D 2 (#411b91) -L 5 (#8ceee2) -U 2 (#caa173) -L 1 (#1b58a2) -U 2 (#caa171) -R 2 (#7807d2) -U 3 (#a77fa3) -L 2 (#015232) -U 2 (#7a21e3)"/utf8>>, - <<"952408144115"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"R 6 (#70c710) -D 5 (#0dc571) -L 2 (#5713f0) -D 2 (#d2c081) -R 2 (#59c680) -D 2 (#411b91) -L 5 (#8ceee2) -U 2 (#caa173) -L 1 (#1b58a2) -U 2 (#caa171) -R 2 (#7807d2) -U 3 (#a77fa3) -L 2 (#015232) -U 2 (#7a21e3)"/utf8>>, - <<"952408144115"/utf8>>}], - fun(Example) -> _pipe@1 = day18@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.cache deleted file mode 100644 index 6fa850f..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.cache_meta deleted file mode 100644 index 5a4d476..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.erl deleted file mode 100644 index 3dc5e00..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day18@solve.erl +++ /dev/null @@ -1,218 +0,0 @@ --module(day18@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([coord/0, direction/0, dig/0]). - --type coord() :: {coord, integer(), integer()}. - --type direction() :: up | right | down | left. - --type dig() :: {dig, direction(), integer()}. - --spec to_direction(binary()) -> direction(). -to_direction(C) -> - case C of - <<"R"/utf8>> -> - right; - - <<"0"/utf8>> -> - right; - - <<"D"/utf8>> -> - down; - - <<"1"/utf8>> -> - down; - - <<"L"/utf8>> -> - left; - - <<"2"/utf8>> -> - left; - - <<"U"/utf8>> -> - up; - - <<"3"/utf8>> -> - up; - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"panic expression evaluated"/utf8>>, - module => <<"day18/solve"/utf8>>, - function => <<"to_direction"/utf8>>, - line => 30}) - end. - --spec parse_front(binary()) -> dig(). -parse_front(Line) -> - _assert_subject = gleam@regex:from_string(<<"(.) (.*) \\(.*\\)"/utf8>>), - {ok, Re} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day18/solve"/utf8>>, - function => <<"parse_front"/utf8>>, - line => 35}) - end, - _assert_subject@1 = gleam@regex:scan(Re, Line), - [{match, _, [{some, Dir}, {some, Dist}]}] = case _assert_subject@1 of - [{match, _, [{some, _}, {some, _}]}] -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day18/solve"/utf8>>, - function => <<"parse_front"/utf8>>, - line => 36}) - end, - _assert_subject@2 = gleam@int:parse(Dist), - {ok, N} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"day18/solve"/utf8>>, - function => <<"parse_front"/utf8>>, - line => 38}) - end, - {dig, to_direction(Dir), N}. - --spec parse_hex(binary()) -> dig(). -parse_hex(Line) -> - _assert_subject = gleam@regex:from_string(<<"\\(#(.....)(.)\\)"/utf8>>), - {ok, Re} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day18/solve"/utf8>>, - function => <<"parse_hex"/utf8>>, - line => 43}) - end, - _assert_subject@1 = gleam@regex:scan(Re, Line), - [{match, _, [{some, Dist}, {some, Dir}]}] = case _assert_subject@1 of - [{match, _, [{some, _}, {some, _}]}] -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day18/solve"/utf8>>, - function => <<"parse_hex"/utf8>>, - line => 44}) - end, - _assert_subject@2 = gleam@int:base_parse(Dist, 16), - {ok, N} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"day18/solve"/utf8>>, - function => <<"parse_hex"/utf8>>, - line => 46}) - end, - {dig, to_direction(Dir), N}. - --spec go(coord(), dig()) -> coord(). -go(Current, Dig) -> - case Dig of - {dig, up, N} -> - {coord, erlang:element(2, Current), erlang:element(3, Current) + N}; - - {dig, right, N@1} -> - {coord, - erlang:element(2, Current) + N@1, - erlang:element(3, Current)}; - - {dig, down, N@2} -> - {coord, - erlang:element(2, Current), - erlang:element(3, Current) - N@2}; - - {dig, left, N@3} -> - {coord, - erlang:element(2, Current) - N@3, - erlang:element(3, Current)} - end. - --spec double_triangle(coord(), coord()) -> integer(). -double_triangle(C1, C2) -> - (erlang:element(2, C1) * erlang:element(3, C2)) - (erlang:element(2, C2) * erlang:element( - 3, - C1 - )). - --spec do_next_dig(list(dig()), coord(), integer(), integer()) -> integer(). -do_next_dig(Digs, Current, Area, Perimeter) -> - case Digs of - [] -> - ((gleam@int:absolute_value(Area) div 2) + (Perimeter div 2)) + 1; - - [Dig | Rest] -> - Next = go(Current, Dig), - Area@1 = Area + double_triangle(Current, Next), - Perimeter@1 = Perimeter + erlang:element(3, Dig), - do_next_dig(Rest, Next, Area@1, Perimeter@1) - end. - --spec start_dig(list(dig())) -> integer(). -start_dig(Digs) -> - do_next_dig(Digs, {coord, 0, 0}, 0, 0). - --spec solve_with(binary(), fun((binary()) -> dig())) -> binary(). -solve_with(Input, F) -> - _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<"\n"/utf8>>), - _pipe@2 = gleam@list:map(_pipe@1, F), - _pipe@3 = start_dig(_pipe@2), - gleam@string:inspect(_pipe@3). - --spec part1(binary()) -> binary(). -part1(Input) -> - solve_with(Input, fun parse_front/1). - --spec part2(binary()) -> binary(). -part2(Input) -> - solve_with(Input, fun parse_hex/1). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day18/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 101}) - end, - _assert_subject@1 = adglent:get_input(<<"18"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day18/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 102}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache deleted file mode 100644 index 3b5eab2..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache_meta deleted file mode 100644 index e633833..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.erl deleted file mode 100644 index 2404595..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@day19_test.erl +++ /dev/null @@ -1,96 +0,0 @@ --module(day19@day19_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"px{a<2006:qkq,m>2090:A,rfg} -pv{a>1716:R,A} -lnx{m>1548:A,A} -rfg{s<537:gd,x>2440:R,A} -qs{s>3448:A,lnx} -qkq{x<1416:A,crn} -crn{x>2662:A,R} -in{s<1351:px,qqz} -qqz{s>2770:qs,m<1801:hdj,R} -gd{a>3333:R,R} -hdj{m>838:A,pv} - -{x=787,m=2655,a=1222,s=2876} -{x=1679,m=44,a=2067,s=496} -{x=2036,m=264,a=79,s=2244} -{x=2461,m=1339,a=466,s=291} -{x=2127,m=1623,a=2188,s=1013}"/utf8>>, - <<"19114"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"px{a<2006:qkq,m>2090:A,rfg} -pv{a>1716:R,A} -lnx{m>1548:A,A} -rfg{s<537:gd,x>2440:R,A} -qs{s>3448:A,lnx} -qkq{x<1416:A,crn} -crn{x>2662:A,R} -in{s<1351:px,qqz} -qqz{s>2770:qs,m<1801:hdj,R} -gd{a>3333:R,R} -hdj{m>838:A,pv} - -{x=787,m=2655,a=1222,s=2876} -{x=1679,m=44,a=2067,s=496} -{x=2036,m=264,a=79,s=2244} -{x=2461,m=1339,a=466,s=291} -{x=2127,m=1623,a=2188,s=1013}"/utf8>>, - <<"19114"/utf8>>}], - fun(Example) -> _pipe@1 = day19@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"px{a<2006:qkq,m>2090:A,rfg} -pv{a>1716:R,A} -lnx{m>1548:A,A} -rfg{s<537:gd,x>2440:R,A} -qs{s>3448:A,lnx} -qkq{x<1416:A,crn} -crn{x>2662:A,R} -in{s<1351:px,qqz} -qqz{s>2770:qs,m<1801:hdj,R} -gd{a>3333:R,R} -hdj{m>838:A,pv} - -{x=787,m=2655,a=1222,s=2876} -{x=1679,m=44,a=2067,s=496} -{x=2036,m=264,a=79,s=2244} -{x=2461,m=1339,a=466,s=291} -{x=2127,m=1623,a=2188,s=1013}"/utf8>>, - <<"167409079868000"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"px{a<2006:qkq,m>2090:A,rfg} -pv{a>1716:R,A} -lnx{m>1548:A,A} -rfg{s<537:gd,x>2440:R,A} -qs{s>3448:A,lnx} -qkq{x<1416:A,crn} -crn{x>2662:A,R} -in{s<1351:px,qqz} -qqz{s>2770:qs,m<1801:hdj,R} -gd{a>3333:R,R} -hdj{m>838:A,pv} - -{x=787,m=2655,a=1222,s=2876} -{x=1679,m=44,a=2067,s=496} -{x=2036,m=264,a=79,s=2244} -{x=2461,m=1339,a=466,s=291} -{x=2127,m=1623,a=2188,s=1013}"/utf8>>, - <<"167409079868000"/utf8>>}], - fun(Example) -> _pipe@1 = day19@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.cache deleted file mode 100644 index c7e00e3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.cache_meta deleted file mode 100644 index 0424b05..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.erl deleted file mode 100644 index 242bd74..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day19@solve.erl +++ /dev/null @@ -1,459 +0,0 @@ --module(day19@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([rating/0, part/0, action/0, rule/0, interval/0, part_range/0]). - --type rating() :: xtremely_cool | musical | aerodynamic | shiny. - --type part() :: {part, integer(), integer(), integer(), integer()}. - --type action() :: accept | reject | {send_to, binary()}. - --type rule() :: {'if', rating(), gleam@order:order(), integer(), action()} | - {just, action()}. - --type interval() :: {interval, integer(), integer()}. - --type part_range() :: {part_range, - interval(), - interval(), - interval(), - interval()}. - --spec to_instruction(binary()) -> action(). -to_instruction(Rule) -> - case Rule of - <<"A"/utf8>> -> - accept; - - <<"R"/utf8>> -> - reject; - - Name -> - {send_to, Name} - end. - --spec to_rating(binary()) -> rating(). -to_rating(Rating) -> - case Rating of - <<"x"/utf8>> -> - xtremely_cool; - - <<"m"/utf8>> -> - musical; - - <<"a"/utf8>> -> - aerodynamic; - - _ -> - shiny - end. - --spec get_rating(part(), rating()) -> integer(). -get_rating(Part, Rating) -> - case Rating of - xtremely_cool -> - erlang:element(2, Part); - - musical -> - erlang:element(3, Part); - - aerodynamic -> - erlang:element(4, Part); - - shiny -> - erlang:element(5, Part) - end. - --spec to_comp(binary()) -> gleam@order:order(). -to_comp(Comp) -> - case Comp of - <<"<"/utf8>> -> - lt; - - _ -> - gt - end. - --spec to_val(binary()) -> integer(). -to_val(Val) -> - _assert_subject = gleam@int:parse(Val), - {ok, N} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"to_val"/utf8>>, - line => 100}) - end, - N. - --spec parse_rules(list(binary())) -> list(rule()). -parse_rules(Rules) -> - _assert_subject = gleam@regex:from_string(<<"(.*)(>|<)(.*):(.*)"/utf8>>), - {ok, Re_rule} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"parse_rules"/utf8>>, - line => 57}) - end, - gleam@list:map(Rules, fun(Rule) -> case gleam@regex:scan(Re_rule, Rule) of - [{match, _, [{some, R}, {some, C}, {some, T}, {some, I}]}] -> - {'if', - to_rating(R), - to_comp(C), - to_val(T), - to_instruction(I)}; - - _ -> - {just, to_instruction(Rule)} - end end). - --spec parse_workflow(binary()) -> gleam@dict:dict(binary(), list(rule())). -parse_workflow(Input) -> - _assert_subject = gleam@regex:from_string(<<"(.*){(.*)}"/utf8>>), - {ok, Re} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"parse_workflow"/utf8>>, - line => 45}) - end, - gleam@list:fold( - gleam@string:split(Input, <<"\n"/utf8>>), - gleam@dict:new(), - fun(Acc, Line) -> - _assert_subject@1 = gleam@regex:scan(Re, Line), - [{match, _, [{some, Name}, {some, All_rules}]}] = case _assert_subject@1 of - [{match, _, [{some, _}, {some, _}]}] -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day19/solve"/utf8>>, - function => <<"parse_workflow"/utf8>>, - line => 48}) - end, - Rules = begin - _pipe = gleam@string:split(All_rules, <<","/utf8>>), - parse_rules(_pipe) - end, - gleam@dict:insert(Acc, Name, Rules) - end - ). - --spec parse_parts(binary()) -> list(part()). -parse_parts(Input) -> - _assert_subject = gleam@regex:from_string( - <<"{x=(.*),m=(.*),a=(.*),s=(.*)}"/utf8>> - ), - {ok, Re} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"parse_parts"/utf8>>, - line => 105}) - end, - gleam@list:map( - gleam@string:split(Input, <<"\n"/utf8>>), - fun(Part) -> - _assert_subject@1 = gleam@regex:scan(Re, Part), - [{match, _, [{some, X}, {some, M}, {some, A}, {some, S}]}] = case _assert_subject@1 of - [{match, _, [{some, _}, {some, _}, {some, _}, {some, _}]}] -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day19/solve"/utf8>>, - function => <<"parse_parts"/utf8>>, - line => 108}) - end, - {part, to_val(X), to_val(M), to_val(A), to_val(S)} - end - ). - --spec evaluate_rules(part(), list(rule())) -> action(). -evaluate_rules(Part, Rules) -> - case Rules of - [] -> - erlang:error(#{gleam_error => panic, - message => <<"panic expression evaluated"/utf8>>, - module => <<"day19/solve"/utf8>>, - function => <<"evaluate_rules"/utf8>>, - line => 128}); - - [{just, Do} | _] -> - Do; - - [{'if', Rating, Comparison, Threshold, Do@1} | Rest] -> - case gleam@int:compare(get_rating(Part, Rating), Threshold) =:= Comparison of - true -> - Do@1; - - false -> - evaluate_rules(Part, Rest) - end - end. - --spec evaluate_workflow( - part(), - binary(), - gleam@dict:dict(binary(), list(rule())) -) -> integer(). -evaluate_workflow(Part, Name, Workflow) -> - _assert_subject = gleam@dict:get(Workflow, Name), - {ok, Rules} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"evaluate_workflow"/utf8>>, - line => 118}) - end, - case evaluate_rules(Part, Rules) of - accept -> - ((erlang:element(2, Part) + erlang:element(3, Part)) + erlang:element( - 4, - Part - )) - + erlang:element(5, Part); - - reject -> - 0; - - {send_to, Name@1} -> - evaluate_workflow(Part, Name@1, Workflow) - end. - --spec start_evaluating_workflow(part(), gleam@dict:dict(binary(), list(rule()))) -> integer(). -start_evaluating_workflow(Part, Workflow) -> - evaluate_workflow(Part, <<"in"/utf8>>, Workflow). - --spec part1(binary()) -> binary(). -part1(Input) -> - _assert_subject = gleam@string:split_once(Input, <<"\n\n"/utf8>>), - {ok, {Workflows_str, Parts_str}} = case _assert_subject of - {ok, {_, _}} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"part1"/utf8>>, - line => 139}) - end, - Workflows = parse_workflow(Workflows_str), - Parts = parse_parts(Parts_str), - _pipe = gleam@list:map( - Parts, - fun(_capture) -> start_evaluating_workflow(_capture, Workflows) end - ), - _pipe@1 = gleam@int:sum(_pipe), - gleam@string:inspect(_pipe@1). - --spec size(interval()) -> integer(). -size(Interval) -> - (erlang:element(3, Interval) - erlang:element(2, Interval)) + 1. - --spec all_in_range(part_range()) -> integer(). -all_in_range(Pr) -> - ((size(erlang:element(2, Pr)) * size(erlang:element(3, Pr))) * size( - erlang:element(4, Pr) - )) - * size(erlang:element(5, Pr)). - --spec get_partrange(part_range(), rating()) -> interval(). -get_partrange(Pr, Rating) -> - case Rating of - xtremely_cool -> - erlang:element(2, Pr); - - musical -> - erlang:element(3, Pr); - - aerodynamic -> - erlang:element(4, Pr); - - shiny -> - erlang:element(5, Pr) - end. - --spec update_partrange(part_range(), rating(), interval()) -> part_range(). -update_partrange(Pr, Rating, I) -> - case Rating of - xtremely_cool -> - erlang:setelement(2, Pr, I); - - musical -> - erlang:setelement(3, Pr, I); - - aerodynamic -> - erlang:setelement(4, Pr, I); - - shiny -> - erlang:setelement(5, Pr, I) - end. - --spec evaluate_rules_on_range( - part_range(), - list(rule()), - gleam@dict:dict(binary(), list(rule())) -) -> integer(). -evaluate_rules_on_range(Pr, Rules, Workflow) -> - case Rules of - [{just, accept} | _] -> - all_in_range(Pr); - - [{just, reject} | _] -> - 0; - - [{just, {send_to, Name}} | _] -> - evaluate_workflow_on_range(Pr, Name, Workflow); - - [{'if', Rating, Comparison, T, Action} | Rest] -> - Mod_i = get_partrange(Pr, Rating), - case Comparison of - lt -> - split_range( - update_partrange( - Pr, - Rating, - {interval, erlang:element(2, Mod_i), T - 1} - ), - Action, - update_partrange( - Pr, - Rating, - {interval, T, erlang:element(3, Mod_i)} - ), - Rest, - Workflow - ); - - _ -> - split_range( - update_partrange( - Pr, - Rating, - {interval, T + 1, erlang:element(3, Mod_i)} - ), - Action, - update_partrange( - Pr, - Rating, - {interval, erlang:element(2, Mod_i), T} - ), - Rest, - Workflow - ) - end; - - [] -> - erlang:error(#{gleam_error => panic, - message => <<"panic expression evaluated"/utf8>>, - module => <<"day19/solve"/utf8>>, - function => <<"evaluate_rules_on_range"/utf8>>, - line => 225}) - end. - --spec evaluate_workflow_on_range( - part_range(), - binary(), - gleam@dict:dict(binary(), list(rule())) -) -> integer(). -evaluate_workflow_on_range(Pr, Name, Workflow) -> - _assert_subject = gleam@dict:get(Workflow, Name), - {ok, Rules} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"evaluate_workflow_on_range"/utf8>>, - line => 191}) - end, - evaluate_rules_on_range(Pr, Rules, Workflow). - --spec part2(binary()) -> binary(). -part2(Input) -> - _assert_subject = gleam@string:split_once(Input, <<"\n\n"/utf8>>), - {ok, {Workflows_str, _}} = case _assert_subject of - {ok, {_, _}} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"part2"/utf8>>, - line => 176}) - end, - Workflow = parse_workflow(Workflows_str), - Start = {interval, 1, 4000}, - _pipe = {part_range, Start, Start, Start, Start}, - _pipe@1 = evaluate_workflow_on_range(_pipe, <<"in"/utf8>>, Workflow), - gleam@string:inspect(_pipe@1). - --spec split_range( - part_range(), - action(), - part_range(), - list(rule()), - gleam@dict:dict(binary(), list(rule())) -) -> integer(). -split_range(Keep, Action, Pass, Rest, Workflow) -> - gleam@int:add( - evaluate_rules_on_range(Keep, [{just, Action}], Workflow), - evaluate_rules_on_range(Pass, Rest, Workflow) - ). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day19/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 243}) - end, - _assert_subject@1 = adglent:get_input(<<"19"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day19/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 244}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache deleted file mode 100644 index 67b16ce..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache_meta deleted file mode 100644 index 54af03d..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.erl deleted file mode 100644 index 8c7ab53..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@day1_test.erl +++ /dev/null @@ -1,50 +0,0 @@ --module(day1@day1_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"1abc2 -pqr3stu8vwx -a1b2c3d4e5f -treb7uchet"/utf8>>, - <<"142"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"1abc2 -pqr3stu8vwx -a1b2c3d4e5f -treb7uchet"/utf8>>, - <<"142"/utf8>>}], - fun(Example) -> _pipe@1 = day1@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"two1nine -eightwothree -abcone2threexyz -xtwone3four -4nineeightseven2 -zoneight234 -7pqrstsixteen"/utf8>>, - <<"281"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"two1nine -eightwothree -abcone2threexyz -xtwone3four -4nineeightseven2 -zoneight234 -7pqrstsixteen"/utf8>>, - <<"281"/utf8>>}], - fun(Example) -> _pipe@1 = day1@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.cache deleted file mode 100644 index ea9b785..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.cache_meta deleted file mode 100644 index 8291feb..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.erl deleted file mode 100644 index 15dd24e..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day1@solve.erl +++ /dev/null @@ -1,118 +0,0 @@ --module(day1@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). - --spec part1(binary()) -> binary(). -part1(Input) -> - _assert_subject = gleam@regex:from_string(<<"[1-9]"/utf8>>), - {ok, Re} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day1/solve"/utf8>>, - function => <<"part1"/utf8>>, - line => 9}) - end, - _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<"\n"/utf8>>), - _pipe@2 = gleam@list:fold( - _pipe@1, - 0, - fun(Acc, S) -> - Matches = gleam@regex:scan(Re, S), - _assert_subject@1 = gleam@list:first(Matches), - {ok, {match, First, _}} = case _assert_subject@1 of - {ok, {match, _, _}} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day1/solve"/utf8>>, - function => <<"part1"/utf8>>, - line => 18}) - end, - _assert_subject@2 = gleam@list:last(Matches), - {ok, {match, Last, _}} = case _assert_subject@2 of - {ok, {match, _, _}} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"day1/solve"/utf8>>, - function => <<"part1"/utf8>>, - line => 19}) - end, - _assert_subject@3 = gleam@int:parse(<>), - {ok, I} = case _assert_subject@3 of - {ok, _} -> _assert_subject@3; - _assert_fail@3 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@3, - module => <<"day1/solve"/utf8>>, - function => <<"part1"/utf8>>, - line => 20}) - end, - Acc + I - end - ), - gleam@string:inspect(_pipe@2). - --spec part2(binary()) -> binary(). -part2(Input) -> - _pipe = gleam@list:fold( - [{<<"one"/utf8>>, <<"o1e"/utf8>>}, - {<<"two"/utf8>>, <<"t2o"/utf8>>}, - {<<"three"/utf8>>, <<"t3e"/utf8>>}, - {<<"four"/utf8>>, <<"4"/utf8>>}, - {<<"five"/utf8>>, <<"5e"/utf8>>}, - {<<"six"/utf8>>, <<"6"/utf8>>}, - {<<"seven"/utf8>>, <<"7n"/utf8>>}, - {<<"eight"/utf8>>, <<"e8t"/utf8>>}, - {<<"nine"/utf8>>, <<"n9e"/utf8>>}], - Input, - fun(Acc, Sub) -> - {From, To} = Sub, - gleam@string:replace(Acc, From, To) - end - ), - part1(_pipe). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day1/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 52}) - end, - _assert_subject@1 = adglent:get_input(<<"1"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day1/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 53}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache deleted file mode 100644 index 7b0c4ff..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache_meta deleted file mode 100644 index 684b2f3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.erl deleted file mode 100644 index 145fc1c..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@day20_test.erl +++ /dev/null @@ -1,52 +0,0 @@ --module(day20@day20_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"broadcaster -> a, b, c -%a -> b -%b -> c -%c -> inv -&inv -> a"/utf8>>, - <<"32000000"/utf8>>}, - {example, - <<"broadcaster -> a -%a -> inv, con -&inv -> b -%b -> con -&con -> output -output -> "/utf8>>, - <<"11687500"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"broadcaster -> a, b, c -%a -> b -%b -> c -%c -> inv -&inv -> a"/utf8>>, - <<"32000000"/utf8>>}, - {example, - <<"broadcaster -> a -%a -> inv, con -&inv -> b -%b -> con -&con -> output -output -> "/utf8>>, - <<"11687500"/utf8>>}], - fun(Example) -> _pipe@1 = day20@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [], - fun(Example) -> _pipe@1 = day20@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.cache deleted file mode 100644 index 74900a3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.cache_meta deleted file mode 100644 index e37bfb8..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.erl deleted file mode 100644 index a4442a0..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day20@solve.erl +++ /dev/null @@ -1,237 +0,0 @@ --module(day20@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([node_/0, tone/0, power/0, tone_pitch/0]). - --type node_() :: {broadcaster, list(binary())} | - {flipflop, list(binary()), power()} | - {conjunction, list(binary()), gleam@dict:dict(binary(), tone_pitch())} | - {ground, list(binary())}. - --type tone() :: {tone, binary(), binary(), tone_pitch()}. - --type power() :: on | off. - --type tone_pitch() :: low | high. - --spec flip_power(power()) -> power(). -flip_power(P) -> - case P of - on -> - off; - - off -> - on - end. - --spec flip_flop_pitch(power()) -> tone_pitch(). -flip_flop_pitch(P) -> - case P of - off -> - high; - - on -> - low - end. - --spec parse_node(binary()) -> {binary(), node_()}. -parse_node(Input) -> - _assert_subject = gleam@string:split(Input, <<" -> "/utf8>>), - [Full_name, Children_str] = case _assert_subject of - [_, _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day20/solve"/utf8>>, - function => <<"parse_node"/utf8>>, - line => 45}) - end, - Children = gleam@string:split(Children_str, <<", "/utf8>>), - case Full_name of - <<"%"/utf8, Name/binary>> -> - {Name, {flipflop, Children, off}}; - - <<"&"/utf8, Name@1/binary>> -> - {Name@1, {conjunction, Children, gleam@dict:new()}}; - - <<"broadcaster"/utf8>> -> - {<<"broadcaster"/utf8>>, {broadcaster, Children}}; - - Name@2 -> - {Name@2, {ground, []}} - end. - --spec to_initial_state(list({binary(), node_()})) -> gleam@dict:dict(binary(), node_()). -to_initial_state(Nodes) -> - Node_dict = gleam@dict:from_list(Nodes), - Node_names = gleam@dict:keys(Node_dict), - gleam@dict:map_values(Node_dict, fun(Name, Node) -> case Node of - {conjunction, Chs, _} -> - _pipe = Node_names, - _pipe@1 = gleam@list:filter( - _pipe, - fun(N) -> - _assert_subject = gleam@dict:get(Node_dict, N), - {ok, Node@1} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day20/solve"/utf8>>, - function => <<"to_initial_state"/utf8>>, - line => 65}) - end, - gleam@list:contains(erlang:element(2, Node@1), Name) - end - ), - _pipe@2 = gleam@list:map( - _pipe@1, - fun(N@1) -> {N@1, low} end - ), - _pipe@3 = gleam@dict:from_list(_pipe@2), - (fun(Dict) -> {conjunction, Chs, Dict} end)(_pipe@3); - - Other -> - Other - end end). - --spec press_button_once( - {gleam@dict:dict(binary(), node_()), integer(), integer()}, - gleam@queue:queue(tone()) -) -> {gleam@dict:dict(binary(), node_()), integer(), integer()}. -press_button_once(Initial, Queue) -> - {Nodes, High, Low} = Initial, - gleam@bool:guard( - gleam@queue:is_empty(Queue), - Initial, - fun() -> - _assert_subject = gleam@queue:pop_front(Queue), - {ok, {{tone, From_name, To_name, Pitch} = Tone, Rest}} = case _assert_subject of - {ok, {{tone, _, _, _}, _}} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day20/solve"/utf8>>, - function => <<"press_button_once"/utf8>>, - line => 81}) - end, - gleam@io:debug(Tone), - _assert_subject@1 = gleam@dict:get(Nodes, To_name), - {ok, To_node} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day20/solve"/utf8>>, - function => <<"press_button_once"/utf8>>, - line => 84}) - end, - case To_node of - {broadcaster, Children} -> - _pipe = gleam@list:fold( - Children, - Rest, - fun(Acc, C) -> - gleam@queue:push_back( - Acc, - {tone, To_name, C, Pitch} - ) - end - ), - press_button_once(Initial, _pipe); - - {conjunction, _, _} -> - press_button_once(Initial, Rest); - - {flipflop, _, _} when Pitch =:= high -> - press_button_once(Initial, Rest); - - {flipflop, Children@1, State} -> - Updated_nodes = gleam@dict:insert( - Nodes, - To_name, - {flipflop, Children@1, flip_power(State)} - ), - Updated_queue = gleam@list:fold( - Children@1, - Rest, - fun(Acc@1, C@1) -> - gleam@queue:push_back( - Acc@1, - {tone, To_name, C@1, flip_flop_pitch(State)} - ) - end - ), - press_button_once({Updated_nodes, 0, 0}, Updated_queue); - - {ground, _} -> - press_button_once(Initial, Rest) - end - end - ). - --spec part1(binary()) -> binary(). -part1(Input) -> - Initial_state = begin - _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<"\n"/utf8>>), - _pipe@2 = gleam@list:map(_pipe@1, fun parse_node/1), - to_initial_state(_pipe@2) - end, - press_button_once( - {Initial_state, 0, 1}, - begin - _pipe@3 = [{tone, <<"button"/utf8>>, <<"broadcaster"/utf8>>, low}], - gleam@queue:from_list(_pipe@3) - end - ), - <<"1"/utf8>>. - --spec part2(binary()) -> any(). -part2(Input) -> - erlang:error(#{gleam_error => todo, - message => <<"Implement solution to part 2"/utf8>>, - module => <<"day20/solve"/utf8>>, - function => <<"part2"/utf8>>, - line => 130}). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day20/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 134}) - end, - _assert_subject@1 = adglent:get_input(<<"20"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day20/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 135}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache deleted file mode 100644 index 8014a5c..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache_meta deleted file mode 100644 index 7f44851..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.erl deleted file mode 100644 index 8795f58..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@day2_test.erl +++ /dev/null @@ -1,54 +0,0 @@ --module(day2@day2_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green -Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue -Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red -Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red -Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green"/utf8>>, - 8}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green -Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue -Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red -Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red -Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green"/utf8>>, - 8}], - fun(Example) -> _pipe@1 = day2@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green -Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue -Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red -Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red -Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green"/utf8>>, - 2286}, - {example, - <<"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green"/utf8>>, - 48}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green -Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue -Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red -Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red -Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green"/utf8>>, - 2286}, - {example, - <<"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green"/utf8>>, - 48}], - fun(Example) -> _pipe@1 = day2@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.cache deleted file mode 100644 index 7533395..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.cache_meta deleted file mode 100644 index 237d90e..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.erl deleted file mode 100644 index 0cd8105..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day2@solve.erl +++ /dev/null @@ -1,166 +0,0 @@ --module(day2@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([game/0]). - --type game() :: {game, integer(), integer(), integer()}. - --spec parse(binary()) -> list(list(game())). -parse(Input) -> - gleam@list:map( - gleam@string:split(Input, <<"\n"/utf8>>), - fun(Line) -> - _assert_subject = gleam@string:split(Line, <<": "/utf8>>), - [_, Rounds] = case _assert_subject of - [_, _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day2/solve"/utf8>>, - function => <<"parse"/utf8>>, - line => 13}) - end, - gleam@list:map( - gleam@string:split(Rounds, <<"; "/utf8>>), - fun(Match) -> - gleam@list:fold( - gleam@string:split(Match, <<", "/utf8>>), - {game, 0, 0, 0}, - fun(Acc, Draw) -> - _assert_subject@1 = gleam@string:split_once( - Draw, - <<" "/utf8>> - ), - {ok, {N_str, Color}} = case _assert_subject@1 of - {ok, {_, _}} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day2/solve"/utf8>>, - function => <<"parse"/utf8>>, - line => 19}) - end, - _assert_subject@2 = gleam@int:parse(N_str), - {ok, N} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"day2/solve"/utf8>>, - function => <<"parse"/utf8>>, - line => 20}) - end, - case Color of - <<"red"/utf8>> -> - erlang:setelement(2, Acc, N); - - <<"blue"/utf8>> -> - erlang:setelement(3, Acc, N); - - <<"green"/utf8>> -> - erlang:setelement(4, Acc, N); - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"unrecognized color"/utf8>>, - module => <<"day2/solve"/utf8>>, - function => <<"parse"/utf8>>, - line => 25}) - end - end - ) - end - ) - end - ). - --spec part1(binary()) -> integer(). -part1(Input) -> - gleam@list:index_fold( - parse(Input), - 0, - fun(Acc, Game, I) -> - case gleam@list:any( - Game, - fun(M) -> - ((erlang:element(2, M) > 12) orelse (erlang:element(4, M) > 13)) - orelse (erlang:element(3, M) > 14) - end - ) of - false -> - (Acc + I) + 1; - - true -> - Acc - end - end - ). - --spec part2(binary()) -> integer(). -part2(Input) -> - _pipe = (gleam@list:map( - parse(Input), - fun(Game) -> - gleam@list:fold( - Game, - {game, 0, 0, 0}, - fun(Acc, Match) -> - {game, Red, Blue, Green} = Match, - {game, - gleam@int:max(Red, erlang:element(2, Acc)), - gleam@int:max(Blue, erlang:element(3, Acc)), - gleam@int:max(Green, erlang:element(4, Acc))} - end - ) - end - )), - gleam@list:fold( - _pipe, - 0, - fun(Acc@1, G) -> - Acc@1 + ((erlang:element(2, G) * erlang:element(3, G)) * erlang:element( - 4, - G - )) - end - ). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day2/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 55}) - end, - _assert_subject@1 = adglent:get_input(<<"2"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day2/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 56}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache deleted file mode 100644 index a3b1377..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache_meta deleted file mode 100644 index f603e6b..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.erl deleted file mode 100644 index 31de387..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@day3_test.erl +++ /dev/null @@ -1,68 +0,0 @@ --module(day3@day3_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"467..114.. -...*...... -..35..633. -......#... -617*...... -.....+.58. -..592..... -......755. -...$.*.... -.664.598.."/utf8>>, - 4361}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"467..114.. -...*...... -..35..633. -......#... -617*...... -.....+.58. -..592..... -......755. -...$.*.... -.664.598.."/utf8>>, - 4361}], - fun(Example) -> _pipe@1 = day3@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"467..114.. -...*...... -..35..633. -......#... -617*...... -.....+.58. -..592..... -......755. -...$.*.... -.664.598.."/utf8>>, - 467835}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"467..114.. -...*...... -..35..633. -......#... -617*...... -.....+.58. -..592..... -......755. -...$.*.... -.664.598.."/utf8>>, - 467835}], - fun(Example) -> _pipe@1 = day3@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.cache deleted file mode 100644 index 13bc7af..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.cache_meta deleted file mode 100644 index 7961cc1..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.erl deleted file mode 100644 index d4df3d6..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day3@solve.erl +++ /dev/null @@ -1,254 +0,0 @@ --module(day3@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([coord/0, symbol_kind/0, symbol/0, cell/0, part/0]). - --type coord() :: {coord, integer(), integer()}. - --type symbol_kind() :: gear | something_else. - --type symbol() :: {number, integer()} | {symbol, symbol_kind()} | empty. - --type cell() :: {cell, coord(), symbol()}. - --type part() :: {part, list(coord()), integer()}. - --spec to_symbol(binary()) -> symbol(). -to_symbol(C) -> - case {gleam@int:parse(C), C} of - {{ok, N}, _} -> - {number, N}; - - {_, <<"."/utf8>>} -> - empty; - - {_, <<"*"/utf8>>} -> - {symbol, gear}; - - {_, _} -> - {symbol, something_else} - end. - --spec to_board(binary()) -> gleam@dict:dict(coord(), symbol()). -to_board(Input) -> - _pipe = (gleam@list:index_map( - gleam@string:split(Input, <<"\n"/utf8>>), - fun(Y, R) -> - gleam@list:index_map( - gleam@string:to_graphemes(R), - fun(X, C) -> {{coord, X, Y}, to_symbol(C)} end - ) - end - )), - _pipe@1 = gleam@list:flatten(_pipe), - gleam@dict:from_list(_pipe@1). - --spec cell_compare(cell(), cell()) -> gleam@order:order(). -cell_compare(A, B) -> - case gleam@int:compare( - erlang:element(3, erlang:element(2, A)), - erlang:element(3, erlang:element(2, B)) - ) of - eq -> - gleam@int:compare( - erlang:element(2, erlang:element(2, A)), - erlang:element(2, erlang:element(2, B)) - ); - - Other -> - Other - end. - --spec find_all_part_digits(gleam@dict:dict(coord(), symbol())) -> list(cell()). -find_all_part_digits(B) -> - _pipe = B, - _pipe@1 = gleam@dict:filter(_pipe, fun(_, V) -> case V of - {number, _} -> - true; - - _ -> - false - end end), - _pipe@2 = gleam@dict:to_list(_pipe@1), - _pipe@3 = gleam@list:map( - _pipe@2, - fun(Tup) -> {cell, erlang:element(1, Tup), erlang:element(2, Tup)} end - ), - gleam@list:sort(_pipe@3, fun cell_compare/2). - --spec do_parts(list(cell()), list(part())) -> list(part()). -do_parts(Cells, Parts) -> - case Cells of - [] -> - Parts; - - [{cell, Next, {number, N}} | T] -> - case Parts of - [] -> - do_parts(T, [{part, [Next], N} | Parts]); - - [{part, [Prev | _] = Coords, N0} | Rest_parts] -> - case {(erlang:element(2, Next) - erlang:element(2, Prev)), - (erlang:element(3, Next) - erlang:element(3, Prev))} of - {1, 0} -> - do_parts( - T, - [{part, [Next | Coords], (N0 * 10) + N} | - Rest_parts] - ); - - {_, _} -> - do_parts(T, [{part, [Next], N} | Parts]) - end; - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"panic expression evaluated"/utf8>>, - module => <<"day3/solve"/utf8>>, - function => <<"do_parts"/utf8>>, - line => 90}) - end; - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"panic expression evaluated"/utf8>>, - module => <<"day3/solve"/utf8>>, - function => <<"do_parts"/utf8>>, - line => 93}) - end. - --spec to_parts(list(cell())) -> list(part()). -to_parts(Cells) -> - do_parts(Cells, []). - --spec all_neighbors(coord()) -> list(coord()). -all_neighbors(C) -> - gleam@list:flat_map( - [-1, 0, 1], - fun(Dx) -> gleam@list:filter_map([-1, 0, 1], fun(Dy) -> case {Dx, Dy} of - {0, 0} -> - {error, nil}; - - {_, _} -> - {ok, - {coord, - erlang:element(2, C) + Dx, - erlang:element(3, C) + Dy}} - end end) end - ). - --spec sum_valid_parts(integer(), part(), gleam@dict:dict(coord(), symbol())) -> integer(). -sum_valid_parts(Acc, Part, Board) -> - Neighbors = begin - _pipe = erlang:element(2, Part), - _pipe@1 = gleam@list:flat_map(_pipe, fun all_neighbors/1), - gleam@list:unique(_pipe@1) - end, - Sym = [{ok, {symbol, gear}}, {ok, {symbol, something_else}}], - case gleam@list:any( - Neighbors, - fun(C) -> gleam@list:contains(Sym, gleam@dict:get(Board, C)) end - ) of - true -> - Acc + erlang:element(3, Part); - - false -> - Acc - end. - --spec part1(binary()) -> integer(). -part1(Input) -> - Board = to_board(Input), - _pipe = Board, - _pipe@1 = find_all_part_digits(_pipe), - _pipe@2 = to_parts(_pipe@1), - gleam@list:fold( - _pipe@2, - 0, - fun(Acc, P) -> sum_valid_parts(Acc, P, Board) end - ). - --spec to_part_with_neighbors(part()) -> part(). -to_part_with_neighbors(Part) -> - _pipe = erlang:element(2, Part), - _pipe@1 = gleam@list:flat_map(_pipe, fun all_neighbors/1), - _pipe@2 = gleam@list:unique(_pipe@1), - {part, _pipe@2, erlang:element(3, Part)}. - --spec find_part_numbers_near_gear(coord(), list(part())) -> list(integer()). -find_part_numbers_near_gear(Gear, Parts) -> - gleam@list:filter_map( - Parts, - fun(Part) -> case gleam@list:contains(erlang:element(2, Part), Gear) of - true -> - {ok, erlang:element(3, Part)}; - - false -> - {error, nil} - end end - ). - --spec to_sum_of_gear_ratios(list(list(integer()))) -> integer(). -to_sum_of_gear_ratios(Adjacent_parts) -> - gleam@list:fold(Adjacent_parts, 0, fun(Acc, Ps) -> case Ps of - [P1, P2] -> - Acc + (P1 * P2); - - _ -> - Acc - end end). - --spec part2(binary()) -> integer(). -part2(Input) -> - Board = to_board(Input), - Parts = begin - _pipe = Board, - _pipe@1 = find_all_part_digits(_pipe), - _pipe@2 = to_parts(_pipe@1), - gleam@list:map(_pipe@2, fun to_part_with_neighbors/1) - end, - _pipe@3 = Board, - _pipe@4 = gleam@dict:filter(_pipe@3, fun(_, V) -> V =:= {symbol, gear} end), - _pipe@5 = gleam@dict:keys(_pipe@4), - _pipe@6 = gleam@list:map( - _pipe@5, - fun(_capture) -> find_part_numbers_near_gear(_capture, Parts) end - ), - to_sum_of_gear_ratios(_pipe@6). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day3/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 168}) - end, - _assert_subject@1 = adglent:get_input(<<"3"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day3/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 169}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache deleted file mode 100644 index 0e2ffd5..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache_meta deleted file mode 100644 index 5874661..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.erl deleted file mode 100644 index 6044cef..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@day4_test.erl +++ /dev/null @@ -1,52 +0,0 @@ --module(day4@day4_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 -Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 -Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 -Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 -Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 -Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11"/utf8>>, - 13}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 -Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 -Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 -Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 -Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 -Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11"/utf8>>, - 13}], - fun(Example) -> _pipe@1 = day4@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 -Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 -Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 -Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 -Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 -Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11"/utf8>>, - 30}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 -Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 -Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 -Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 -Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 -Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11"/utf8>>, - 30}], - fun(Example) -> _pipe@1 = day4@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.cache deleted file mode 100644 index b49cc67..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.cache_meta deleted file mode 100644 index e4e4c35..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.erl deleted file mode 100644 index 8feb45a..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day4@solve.erl +++ /dev/null @@ -1,169 +0,0 @@ --module(day4@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([card/0]). - --type card() :: {card, integer(), integer()}. - --spec numbers_to_set(binary()) -> gleam@set:set(integer()). -numbers_to_set(Str) -> - _pipe = Str, - _pipe@1 = gleam@string:split(_pipe, <<" "/utf8>>), - _pipe@2 = gleam@list:map(_pipe@1, fun gleam@int:parse/1), - _pipe@3 = gleam@result:values(_pipe@2), - gleam@set:from_list(_pipe@3). - --spec parse_card(binary()) -> card(). -parse_card(Card) -> - _assert_subject = gleam@string:split_once(Card, <<": "/utf8>>), - {ok, {<<"Card"/utf8, N_str/binary>>, Rest}} = case _assert_subject of - {ok, {<<"Card"/utf8, _/binary>>, _}} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day4/solve"/utf8>>, - function => <<"parse_card"/utf8>>, - line => 25}) - end, - _assert_subject@1 = gleam@string:split_once(Rest, <<" | "/utf8>>), - {ok, {Winning_str, Has_str}} = case _assert_subject@1 of - {ok, {_, _}} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day4/solve"/utf8>>, - function => <<"parse_card"/utf8>>, - line => 26}) - end, - _assert_subject@2 = gleam@int:parse(gleam@string:trim(N_str)), - {ok, N} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"day4/solve"/utf8>>, - function => <<"parse_card"/utf8>>, - line => 27}) - end, - Winning = numbers_to_set(Winning_str), - Has = numbers_to_set(Has_str), - Winners = gleam@set:size(gleam@set:intersection(Winning, Has)), - {card, N, Winners}. - --spec win_points(integer()) -> integer(). -win_points(N) -> - gleam@bool:guard(N < 2, N, fun() -> 2 * win_points(N - 1) end). - --spec part1(binary()) -> integer(). -part1(Input) -> - gleam@list:fold( - gleam@string:split(Input, <<"\n"/utf8>>), - 0, - fun(Acc, C) -> _pipe = C, - _pipe@1 = parse_card(_pipe), - _pipe@2 = (fun(C@1) -> win_points(erlang:element(3, C@1)) end)( - _pipe@1 - ), - gleam@int:add(_pipe@2, Acc) end - ). - --spec update_counts(integer(), card(), gleam@dict:dict(integer(), integer())) -> gleam@dict:dict(integer(), integer()). -update_counts(N, Card, Count) -> - _assert_subject = gleam@dict:get(Count, erlang:element(2, Card)), - {ok, Bonus} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day4/solve"/utf8>>, - function => <<"update_counts"/utf8>>, - line => 65}) - end, - gleam@list:fold( - gleam@list:range( - erlang:element(2, Card) + 1, - erlang:element(2, Card) + N - ), - Count, - fun(Acc, N@1) -> gleam@dict:update(Acc, N@1, fun(C) -> case C of - {some, I} -> - I + Bonus; - - none -> - erlang:error(#{gleam_error => panic, - message => <<"won a card that doesn't exist in the card pile"/utf8>>, - module => <<"day4/solve"/utf8>>, - function => <<"update_counts"/utf8>>, - line => 70}) - end end) end - ). - --spec win_more_cards(list(binary()), gleam@dict:dict(integer(), integer())) -> integer(). -win_more_cards(Cards, Count) -> - case Cards of - [] -> - _pipe = Count, - _pipe@1 = gleam@dict:values(_pipe), - gleam@int:sum(_pipe@1); - - [Raw_card | Rest] -> - Card = parse_card(Raw_card), - case erlang:element(3, Card) of - 0 -> - win_more_cards(Rest, Count); - - N -> - win_more_cards(Rest, update_counts(N, Card, Count)) - end - end. - --spec part2(binary()) -> integer(). -part2(Input) -> - Cards = gleam@string:split(Input, <<"\n"/utf8>>), - Count = begin - _pipe = gleam@list:range(1, gleam@list:length(Cards)), - _pipe@1 = gleam@list:map(_pipe, fun(N) -> {N, 1} end), - gleam@dict:from_list(_pipe@1) - end, - win_more_cards(Cards, Count). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day4/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 86}) - end, - _assert_subject@1 = adglent:get_input(<<"4"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day4/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 87}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache deleted file mode 100644 index 0b18c75..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache_meta deleted file mode 100644 index 4224316..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.erl deleted file mode 100644 index c3fe14d..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@day5_test.erl +++ /dev/null @@ -1,160 +0,0 @@ --module(day5@day5_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"seeds: 79 14 55 13 - -seed-to-soil map: -50 98 2 -52 50 48 - -soil-to-fertilizer map: -0 15 37 -37 52 2 -39 0 15 - -fertilizer-to-water map: -49 53 8 -0 11 42 -42 0 7 -57 7 4 - -water-to-light map: -88 18 7 -18 25 70 - -light-to-temperature map: -45 77 23 -81 45 19 -68 64 13 - -temperature-to-humidity map: -0 69 1 -1 0 69 - -humidity-to-location map: -60 56 37 -56 93 4"/utf8>>, - <<"35"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"seeds: 79 14 55 13 - -seed-to-soil map: -50 98 2 -52 50 48 - -soil-to-fertilizer map: -0 15 37 -37 52 2 -39 0 15 - -fertilizer-to-water map: -49 53 8 -0 11 42 -42 0 7 -57 7 4 - -water-to-light map: -88 18 7 -18 25 70 - -light-to-temperature map: -45 77 23 -81 45 19 -68 64 13 - -temperature-to-humidity map: -0 69 1 -1 0 69 - -humidity-to-location map: -60 56 37 -56 93 4"/utf8>>, - <<"35"/utf8>>}], - fun(Example) -> _pipe@1 = day5@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"seeds: 79 14 55 13 - -seed-to-soil map: -50 98 2 -52 50 48 - -soil-to-fertilizer map: -0 15 37 -37 52 2 -39 0 15 - -fertilizer-to-water map: -49 53 8 -0 11 42 -42 0 7 -57 7 4 - -water-to-light map: -88 18 7 -18 25 70 - -light-to-temperature map: -45 77 23 -81 45 19 -68 64 13 - -temperature-to-humidity map: -0 69 1 -1 0 69 - -humidity-to-location map: -60 56 37 -56 93 4"/utf8>>, - <<"46"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"seeds: 79 14 55 13 - -seed-to-soil map: -50 98 2 -52 50 48 - -soil-to-fertilizer map: -0 15 37 -37 52 2 -39 0 15 - -fertilizer-to-water map: -49 53 8 -0 11 42 -42 0 7 -57 7 4 - -water-to-light map: -88 18 7 -18 25 70 - -light-to-temperature map: -45 77 23 -81 45 19 -68 64 13 - -temperature-to-humidity map: -0 69 1 -1 0 69 - -humidity-to-location map: -60 56 37 -56 93 4"/utf8>>, - <<"46"/utf8>>}], - fun(Example) -> _pipe@1 = day5@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.cache deleted file mode 100644 index b5e7372..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.cache_meta deleted file mode 100644 index 8a8b5b8..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.erl deleted file mode 100644 index f47ab25..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day5@solve.erl +++ /dev/null @@ -1,269 +0,0 @@ --module(day5@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([almanac/0, mapping_range/0, seed_range/0]). - --type almanac() :: {almanac, list(integer()), list(list(mapping_range()))}. - --type mapping_range() :: {m_range, integer(), integer(), integer()}. - --type seed_range() :: {s_range, integer(), integer()}. - --spec string_to_int_list(binary()) -> list(integer()). -string_to_int_list(Str) -> - _pipe = Str, - _pipe@1 = gleam@string:split(_pipe, <<" "/utf8>>), - _pipe@2 = gleam@list:map(_pipe@1, fun gleam@int:parse/1), - gleam@result:values(_pipe@2). - --spec parse_mrange(binary()) -> mapping_range(). -parse_mrange(Str) -> - _assert_subject = string_to_int_list(Str), - [Destination, Source, Range_width] = case _assert_subject of - [_, _, _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day5/solve"/utf8>>, - function => <<"parse_mrange"/utf8>>, - line => 55}) - end, - {m_range, Source, (Source + Range_width) - 1, Destination - Source}. - --spec parse_mapper(list(binary())) -> list(mapping_range()). -parse_mapper(Strs) -> - [_ | Raw_ranges] = case Strs of - [_ | _] -> Strs; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day5/solve"/utf8>>, - function => <<"parse_mapper"/utf8>>, - line => 49}) - end, - _pipe = gleam@list:map(Raw_ranges, fun parse_mrange/1), - gleam@list:sort( - _pipe, - fun(A, B) -> - gleam@int:compare(erlang:element(2, A), erlang:element(2, B)) - end - ). - --spec parse_input(binary()) -> almanac(). -parse_input(Input) -> - _assert_subject = gleam@string:split(Input, <<"\n\n"/utf8>>), - [<<"seeds: "/utf8, Raw_seeds/binary>> | Raw_mappers] = case _assert_subject of - [<<"seeds: "/utf8, _/binary>> | _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day5/solve"/utf8>>, - function => <<"parse_input"/utf8>>, - line => 29}) - end, - Seeds = string_to_int_list(Raw_seeds), - Mappers = gleam@list:map( - Raw_mappers, - gleam@function:compose( - fun(_capture) -> gleam@string:split(_capture, <<"\n"/utf8>>) end, - fun parse_mapper/1 - ) - ), - {almanac, Seeds, Mappers}. - --spec correspond(integer(), list(mapping_range())) -> integer(). -correspond(N, Mapper) -> - gleam@list:fold_until( - Mapper, - N, - fun(Acc, Mrange) -> - case (erlang:element(2, Mrange) =< Acc) andalso (Acc =< erlang:element( - 3, - Mrange - )) of - true -> - {stop, Acc + erlang:element(4, Mrange)}; - - false -> - {continue, Acc} - end - end - ). - --spec part1(binary()) -> binary(). -part1(Input) -> - {almanac, Seeds, Mappers} = parse_input(Input), - _pipe = gleam@list:map( - Seeds, - fun(_capture) -> - gleam@list:fold(Mappers, _capture, fun correspond/2) - end - ), - _pipe@1 = gleam@list:reduce(_pipe, fun gleam@int:min/2), - _pipe@2 = gleam@result:unwrap(_pipe@1, 0), - gleam@string:inspect(_pipe@2). - --spec transform_range(seed_range(), mapping_range()) -> seed_range(). -transform_range(R, Mapper) -> - {s_range, - erlang:element(2, R) + erlang:element(4, Mapper), - erlang:element(3, R) + erlang:element(4, Mapper)}. - --spec do_remap_range(seed_range(), list(mapping_range()), list(seed_range())) -> list(seed_range()). -do_remap_range(R, Mapper, Acc) -> - case Mapper of - [] -> - [R | Acc]; - - [M | _] when erlang:element(3, R) < erlang:element(2, M) -> - [R | Acc]; - - [M@1 | Ms] when erlang:element(2, R) > erlang:element(3, M@1) -> - do_remap_range(R, Ms, Acc); - - [M@2 | _] when (erlang:element(2, R) >= erlang:element(2, M@2)) andalso (erlang:element( - 3, - R - ) =< erlang:element(3, M@2)) -> - [transform_range(R, M@2) | Acc]; - - [M@3 | _] when (erlang:element(2, R) < erlang:element(2, M@3)) andalso (erlang:element( - 3, - R - ) =< erlang:element(3, M@3)) -> - [{s_range, erlang:element(2, R), erlang:element(2, M@3) - 1}, - transform_range( - {s_range, erlang:element(2, M@3), erlang:element(3, R)}, - M@3 - ) | - Acc]; - - [M@4 | Ms@1] when (erlang:element(2, R) >= erlang:element(2, M@4)) andalso (erlang:element( - 3, - R - ) > erlang:element(3, M@4)) -> - do_remap_range( - {s_range, erlang:element(3, M@4) + 1, erlang:element(3, R)}, - Ms@1, - [transform_range( - {s_range, erlang:element(2, R), erlang:element(3, M@4)}, - M@4 - ) | - Acc] - ); - - [M@5 | Ms@2] -> - do_remap_range( - {s_range, erlang:element(3, M@5) + 1, erlang:element(3, R)}, - Ms@2, - [{s_range, erlang:element(2, R), erlang:element(2, M@5) - 1}, - transform_range( - {s_range, - erlang:element(2, M@5), - erlang:element(3, M@5)}, - M@5 - ) | - Acc] - ) - end. - --spec remap_range(seed_range(), list(mapping_range())) -> list(seed_range()). -remap_range(R, Mapper) -> - do_remap_range(R, Mapper, []). - --spec remap_all_seed_ranges(list(seed_range()), list(list(mapping_range()))) -> list(seed_range()). -remap_all_seed_ranges(Srs, Mappers) -> - case Mappers of - [] -> - Srs; - - [Mapper | Rest] -> - _pipe = gleam@list:flat_map( - Srs, - fun(_capture) -> remap_range(_capture, Mapper) end - ), - remap_all_seed_ranges(_pipe, Rest) - end. - --spec part2(binary()) -> binary(). -part2(Input) -> - {almanac, Seeds, Mappers} = parse_input(Input), - _assert_subject = begin - _pipe = Seeds, - _pipe@1 = gleam@list:sized_chunk(_pipe, 2), - _pipe@3 = gleam@list:map( - _pipe@1, - fun(Chunk) -> - [Start, Length] = case Chunk of - [_, _] -> Chunk; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day5/solve"/utf8>>, - function => <<"part2"/utf8>>, - line => 87}) - end, - _pipe@2 = [{s_range, Start, (Start + Length) - 1}], - remap_all_seed_ranges(_pipe@2, Mappers) - end - ), - _pipe@4 = gleam@list:flatten(_pipe@3), - gleam@list:sort( - _pipe@4, - fun(A, B) -> - gleam@int:compare(erlang:element(2, A), erlang:element(2, B)) - end - ) - end, - [{s_range, Answer, _} | _] = case _assert_subject of - [{s_range, _, _} | _] -> _assert_subject; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day5/solve"/utf8>>, - function => <<"part2"/utf8>>, - line => 83}) - end, - gleam@string:inspect(Answer). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day5/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 155}) - end, - _assert_subject@1 = adglent:get_input(<<"5"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day5/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 156}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache deleted file mode 100644 index ebca7b3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache_meta deleted file mode 100644 index f9fa286..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.erl deleted file mode 100644 index a306363..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@day6_test.erl +++ /dev/null @@ -1,36 +0,0 @@ --module(day6@day6_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"Time: 7 15 30 -Distance: 9 40 200"/utf8>>, - <<"288"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"Time: 7 15 30 -Distance: 9 40 200"/utf8>>, - <<"288"/utf8>>}], - fun(Example) -> _pipe@1 = day6@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"Time: 7 15 30 -Distance: 9 40 200"/utf8>>, - <<"71503"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"Time: 7 15 30 -Distance: 9 40 200"/utf8>>, - <<"71503"/utf8>>}], - fun(Example) -> _pipe@1 = day6@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.cache deleted file mode 100644 index 2fa1771..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.cache_meta deleted file mode 100644 index a546033..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.erl deleted file mode 100644 index 86a8033..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day6@solve.erl +++ /dev/null @@ -1,131 +0,0 @@ --module(day6@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([race/0]). - --type race() :: {race, integer(), integer()}. - --spec parse_with_bad_kerning(binary()) -> list(race()). -parse_with_bad_kerning(Input) -> - _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<"\n"/utf8>>), - _pipe@5 = gleam@list:map(_pipe@1, fun(Str) -> _pipe@2 = Str, - _pipe@3 = gleam@string:split(_pipe@2, <<" "/utf8>>), - _pipe@4 = gleam@list:map(_pipe@3, fun gleam@int:parse/1), - gleam@result:values(_pipe@4) end), - _pipe@6 = gleam@list:transpose(_pipe@5), - gleam@list:map( - _pipe@6, - fun(Ns) -> - [T, D] = case Ns of - [_, _] -> Ns; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day6/solve"/utf8>>, - function => <<"parse_with_bad_kerning"/utf8>>, - line => 23}) - end, - {race, T, D} - end - ). - --spec find_bound(race(), integer(), integer()) -> integer(). -find_bound(Race, Button_time, Step) -> - Travel_time = erlang:element(2, Race) - Button_time, - case (Button_time * Travel_time) > erlang:element(3, Race) of - true -> - Button_time; - - false -> - find_bound(Race, Button_time + Step, Step) - end. - --spec lower_bound(race()) -> integer(). -lower_bound(Race) -> - find_bound(Race, 1, 1). - --spec upper_bound(race()) -> integer(). -upper_bound(Race) -> - find_bound(Race, erlang:element(2, Race), -1). - --spec part1(binary()) -> binary(). -part1(Input) -> - _pipe = (gleam@list:fold( - parse_with_bad_kerning(Input), - 1, - fun(Acc, Race) -> - Acc * ((upper_bound(Race) - lower_bound(Race)) + 1) - end - )), - gleam@string:inspect(_pipe). - --spec parse_properly(binary()) -> list(integer()). -parse_properly(Input) -> - _pipe = Input, - _pipe@1 = gleam@string:replace(_pipe, <<" "/utf8>>, <<""/utf8>>), - _pipe@2 = gleam@string:split(_pipe@1, <<"\n"/utf8>>), - _pipe@3 = gleam@list:flat_map( - _pipe@2, - fun(_capture) -> gleam@string:split(_capture, <<":"/utf8>>) end - ), - _pipe@4 = gleam@list:map(_pipe@3, fun gleam@int:parse/1), - gleam@result:values(_pipe@4). - --spec part2(binary()) -> binary(). -part2(Input) -> - _assert_subject = begin - _pipe = Input, - parse_properly(_pipe) - end, - [Time, Distance] = case _assert_subject of - [_, _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day6/solve"/utf8>>, - function => <<"part2"/utf8>>, - line => 62}) - end, - Race = {race, Time, Distance}, - _pipe@1 = (upper_bound(Race) - lower_bound(Race)) + 1, - gleam@string:inspect(_pipe@1). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day6/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 73}) - end, - _assert_subject@1 = adglent:get_input(<<"6"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day6/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 74}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache deleted file mode 100644 index 44b76c4..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache_meta deleted file mode 100644 index 416021b..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.erl deleted file mode 100644 index 917a57e..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@day7_test.erl +++ /dev/null @@ -1,48 +0,0 @@ --module(day7@day7_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"32T3K 765 -T55J5 684 -KK677 28 -KTJJT 220 -QQQJA 483"/utf8>>, - <<"6440"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"32T3K 765 -T55J5 684 -KK677 28 -KTJJT 220 -QQQJA 483"/utf8>>, - <<"6440"/utf8>>}], - fun(Example) -> _pipe@1 = day7@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"32T3K 765 -T55J5 684 -KK677 28 -KTJJT 220 -QQQJA 483"/utf8>>, - <<"5905"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"32T3K 765 -T55J5 684 -KK677 28 -KTJJT 220 -QQQJA 483"/utf8>>, - <<"5905"/utf8>>}], - fun(Example) -> _pipe@1 = day7@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.cache deleted file mode 100644 index 5603a95..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.cache_meta deleted file mode 100644 index c381778..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.erl deleted file mode 100644 index 7666e16..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day7@solve.erl +++ /dev/null @@ -1,242 +0,0 @@ --module(day7@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([hand/0]). - --type hand() :: {hand, list(integer()), integer()}. - --spec card_counts(hand()) -> list(integer()). -card_counts(Hand) -> - _pipe = erlang:element(2, Hand), - _pipe@1 = gleam@list:sort(_pipe, fun gleam@int:compare/2), - _pipe@2 = gleam@list:chunk(_pipe@1, fun gleam@function:identity/1), - _pipe@3 = gleam@list:map(_pipe@2, fun gleam@list:length/1), - gleam@list:sort(_pipe@3, fun gleam@int:compare/2). - --spec classify_hand(hand()) -> integer(). -classify_hand(Hand) -> - case {gleam@list:length(gleam@list:unique(erlang:element(2, Hand))), - card_counts(Hand)} of - {1, _} -> - 8; - - {2, [1, 4]} -> - 7; - - {2, [2, 3]} -> - 6; - - {3, [1, 1, 3]} -> - 5; - - {3, [1, 2, 2]} -> - 4; - - {4, _} -> - 3; - - {5, _} -> - 2; - - {_, _} -> - 1 - end. - --spec card_rank(binary()) -> integer(). -card_rank(Card) -> - case {gleam@int:parse(Card), Card} of - {{ok, N}, _} -> - N; - - {_, <<"A"/utf8>>} -> - 14; - - {_, <<"K"/utf8>>} -> - 13; - - {_, <<"Q"/utf8>>} -> - 12; - - {_, <<"J"/utf8>>} -> - 11; - - {_, <<"T"/utf8>>} -> - 10; - - {_, _} -> - 1 - end. - --spec parse_hand(binary()) -> hand(). -parse_hand(Str) -> - _assert_subject = gleam@string:split(Str, <<" "/utf8>>), - [Cards, Wager] = case _assert_subject of - [_, _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day7/solve"/utf8>>, - function => <<"parse_hand"/utf8>>, - line => 19}) - end, - Cards@1 = begin - _pipe = gleam@string:to_graphemes(Cards), - gleam@list:map(_pipe, fun card_rank/1) - end, - _assert_subject@1 = gleam@int:parse(Wager), - {ok, Wager@1} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day7/solve"/utf8>>, - function => <<"parse_hand"/utf8>>, - line => 23}) - end, - {hand, Cards@1, Wager@1}. - --spec compare_top_card(list(integer()), list(integer())) -> gleam@order:order(). -compare_top_card(Cards1, Cards2) -> - gleam@bool:guard( - (Cards1 =:= []) orelse (Cards2 =:= []), - eq, - fun() -> - [C1 | Rest1] = case Cards1 of - [_ | _] -> Cards1; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day7/solve"/utf8>>, - function => <<"compare_top_card"/utf8>>, - line => 70}) - end, - [C2 | Rest2] = case Cards2 of - [_ | _] -> Cards2; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day7/solve"/utf8>>, - function => <<"compare_top_card"/utf8>>, - line => 71}) - end, - case gleam@int:compare(C1, C2) of - eq -> - compare_top_card(Rest1, Rest2); - - Other -> - Other - end - end - ). - --spec compare_hands(hand(), hand(), fun((hand()) -> integer())) -> gleam@order:order(). -compare_hands(Hand1, Hand2, Using) -> - case gleam@int:compare(Using(Hand1), Using(Hand2)) of - eq -> - compare_top_card(erlang:element(2, Hand1), erlang:element(2, Hand2)); - - Other -> - Other - end. - --spec part(binary(), fun((hand(), hand()) -> gleam@order:order())) -> binary(). -part(Input, Comparator) -> - _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<"\n"/utf8>>), - _pipe@2 = gleam@list:map(_pipe@1, fun parse_hand/1), - _pipe@3 = gleam@list:sort(_pipe@2, Comparator), - _pipe@4 = gleam@list:index_map( - _pipe@3, - fun(I, H) -> (I + 1) * erlang:element(3, H) end - ), - _pipe@5 = gleam@int:sum(_pipe@4), - gleam@string:inspect(_pipe@5). - --spec compare_without_wilds(hand(), hand()) -> gleam@order:order(). -compare_without_wilds(Hand1, Hand2) -> - compare_hands(Hand1, Hand2, fun classify_hand/1). - --spec part1(binary()) -> binary(). -part1(Input) -> - part(Input, fun compare_without_wilds/2). - --spec find_best_joker_substitution(hand()) -> hand(). -find_best_joker_substitution(Hand) -> - gleam@list:fold( - gleam@list:range(2, 14), - {hand, [], 0}, - fun(Acc, Card) -> - Subbed_cards = (gleam@list:map( - erlang:element(2, Hand), - fun(C) -> case C of - 1 -> - Card; - - Other -> - Other - end end - )), - Subbed_hand = erlang:setelement(2, Hand, Subbed_cards), - case compare_hands(Acc, Subbed_hand, fun classify_hand/1) of - lt -> - Subbed_hand; - - _ -> - Acc - end - end - ). - --spec compare_hands_considering_jokers(hand(), hand()) -> gleam@order:order(). -compare_hands_considering_jokers(Hand1, Hand2) -> - compare_hands(Hand1, Hand2, fun(Hand) -> _pipe = Hand, - _pipe@1 = find_best_joker_substitution(_pipe), - classify_hand(_pipe@1) end). - --spec part2(binary()) -> binary(). -part2(Input) -> - part( - gleam@string:replace(Input, <<"J"/utf8>>, <<"*"/utf8>>), - fun compare_hands_considering_jokers/2 - ). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day7/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 128}) - end, - _assert_subject@1 = adglent:get_input(<<"7"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day7/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 129}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache deleted file mode 100644 index 9a04fc8..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache_meta deleted file mode 100644 index ec825d2..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.erl deleted file mode 100644 index 2da8521..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@day8_test.erl +++ /dev/null @@ -1,58 +0,0 @@ --module(day8@day8_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"LLR - -AAA = (BBB, BBB) -BBB = (AAA, ZZZ) -ZZZ = (ZZZ, ZZZ)"/utf8>>, - 6}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"LLR - -AAA = (BBB, BBB) -BBB = (AAA, ZZZ) -ZZZ = (ZZZ, ZZZ)"/utf8>>, - 6}], - fun(Example) -> _pipe@1 = day8@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"LR - -11A = (11B, XXX) -11B = (XXX, 11Z) -11Z = (11B, XXX) -22A = (22B, XXX) -22B = (22C, 22C) -22C = (22Z, 22Z) -22Z = (22B, 22B) -XXX = (XXX, XXX)"/utf8>>, - 6}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"LR - -11A = (11B, XXX) -11B = (XXX, 11Z) -11Z = (11B, XXX) -22A = (22B, XXX) -22B = (22C, 22C) -22C = (22Z, 22Z) -22Z = (22B, 22B) -XXX = (XXX, XXX)"/utf8>>, - 6}], - fun(Example) -> _pipe@1 = day8@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.cache deleted file mode 100644 index 34f5889..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.cache_meta deleted file mode 100644 index b8df5b2..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.erl deleted file mode 100644 index 6ac3b18..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day8@solve.erl +++ /dev/null @@ -1,179 +0,0 @@ --module(day8@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). --export_type([paths/0]). - --type paths() :: {paths, binary(), binary()}. - --spec parse(binary()) -> {gleam@iterator:iterator(binary()), - gleam@dict:dict(binary(), paths())}. -parse(Input) -> - _assert_subject = gleam@string:split(Input, <<"\n\n"/utf8>>), - [Directions_str, Maze_str] = case _assert_subject of - [_, _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day8/solve"/utf8>>, - function => <<"parse"/utf8>>, - line => 20}) - end, - Directions = begin - _pipe = Directions_str, - _pipe@1 = gleam@string:to_graphemes(_pipe), - _pipe@2 = gleam@iterator:from_list(_pipe@1), - gleam@iterator:cycle(_pipe@2) - end, - _assert_subject@1 = gleam@regex:from_string( - <<"(...) = \\((...), (...)\\)"/utf8>> - ), - {ok, Re} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day8/solve"/utf8>>, - function => <<"parse"/utf8>>, - line => 28}) - end, - Maze = begin - _pipe@3 = Maze_str, - _pipe@4 = gleam@string:split(_pipe@3, <<"\n"/utf8>>), - _pipe@5 = gleam@list:map( - _pipe@4, - fun(Str) -> - _assert_subject@2 = gleam@regex:scan(Re, Str), - [{match, _, [{some, Name}, {some, Left}, {some, Right}]}] = case _assert_subject@2 of - [{match, _, [{some, _}, {some, _}, {some, _}]}] -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"day8/solve"/utf8>>, - function => <<"parse"/utf8>>, - line => 33}) - end, - {Name, {paths, Left, Right}} - end - ), - gleam@dict:from_list(_pipe@5) - end, - {Directions, Maze}. - --spec to_next_step( - binary(), - binary(), - integer(), - gleam@iterator:iterator(binary()), - gleam@dict:dict(binary(), paths()) -) -> integer(). -to_next_step(Current, Stop_at, Count, Directions, Maze) -> - gleam@bool:guard( - gleam@string:ends_with(Current, Stop_at), - Count, - fun() -> - _assert_subject = gleam@iterator:step(Directions), - {next, Next_direction, Rest_directions} = case _assert_subject of - {next, _, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day8/solve"/utf8>>, - function => <<"to_next_step"/utf8>>, - line => 50}) - end, - _assert_subject@1 = gleam@dict:get(Maze, Current), - {ok, Paths} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day8/solve"/utf8>>, - function => <<"to_next_step"/utf8>>, - line => 51}) - end, - _pipe = case Next_direction of - <<"L"/utf8>> -> - erlang:element(2, Paths); - - <<"R"/utf8>> -> - erlang:element(3, Paths); - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"bad direction"/utf8>>, - module => <<"day8/solve"/utf8>>, - function => <<"to_next_step"/utf8>>, - line => 55}) - end, - to_next_step(_pipe, Stop_at, Count + 1, Rest_directions, Maze) - end - ). - --spec part1(binary()) -> integer(). -part1(Input) -> - {Directions, Maze} = parse(Input), - to_next_step(<<"AAA"/utf8>>, <<"ZZZ"/utf8>>, 0, Directions, Maze). - --spec part2(binary()) -> integer(). -part2(Input) -> - {Directions, Maze} = parse(Input), - gleam@list:fold( - gleam@dict:keys(Maze), - 1, - fun(Acc, Name) -> case gleam@string:ends_with(Name, <<"A"/utf8>>) of - false -> - Acc; - - true -> - _pipe = to_next_step( - Name, - <<"Z"/utf8>>, - 0, - Directions, - Maze - ), - gleam_community@maths@arithmetics:lcm(_pipe, Acc) - end end - ). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day8/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 79}) - end, - _assert_subject@1 = adglent:get_input(<<"8"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day8/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 80}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache deleted file mode 100644 index dac9de5..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache_meta deleted file mode 100644 index 8e61830..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.erl deleted file mode 100644 index da0f25e..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@day9_test.erl +++ /dev/null @@ -1,40 +0,0 @@ --module(day9@day9_test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1_test/0, part2_test/0]). - --spec part1_test() -> list(nil). -part1_test() -> - _pipe = [{example, - <<"0 3 6 9 12 15 -1 3 6 10 15 21 -10 13 16 21 30 45"/utf8>>, - <<"114"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"0 3 6 9 12 15 -1 3 6 10 15 21 -10 13 16 21 30 45"/utf8>>, - <<"114"/utf8>>}], - fun(Example) -> _pipe@1 = day9@solve:part1(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). - --spec part2_test() -> list(nil). -part2_test() -> - _pipe = [{example, - <<"0 3 6 9 12 15 -1 3 6 10 15 21 -10 13 16 21 30 45"/utf8>>, - <<"2"/utf8>>}], - showtime@tests@should:not_equal(_pipe, []), - gleam@list:map( - [{example, - <<"0 3 6 9 12 15 -1 3 6 10 15 21 -10 13 16 21 30 45"/utf8>>, - <<"2"/utf8>>}], - fun(Example) -> _pipe@1 = day9@solve:part2(erlang:element(2, Example)), - showtime@tests@should:equal(_pipe@1, erlang:element(3, Example)) end - ). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.cache deleted file mode 100644 index d5b2b24..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.cache_meta deleted file mode 100644 index 7378356..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.erl deleted file mode 100644 index 8bef41b..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/day9@solve.erl +++ /dev/null @@ -1,133 +0,0 @@ --module(day9@solve). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([part1/1, part2/1, main/0]). - --spec maybe_backwards(list(QXJ), boolean()) -> list(QXJ). -maybe_backwards(Xs, Backwards) -> - case Backwards of - false -> - gleam@list:reverse(Xs); - - true -> - Xs - end. - --spec parse(binary(), boolean()) -> list(list(integer())). -parse(Input, Backwards) -> - gleam@list:map( - gleam@string:split(Input, <<"\n"/utf8>>), - fun(Line) -> - gleam@list:map( - maybe_backwards( - gleam@string:split(Line, <<" "/utf8>>), - Backwards - ), - fun(N_str) -> - _assert_subject = gleam@int:parse(N_str), - {ok, N} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day9/solve"/utf8>>, - function => <<"parse"/utf8>>, - line => 10}) - end, - N - end - ) - end - ). - --spec is_constant(list(integer())) -> boolean(). -is_constant(Ns) -> - case gleam@list:unique(Ns) of - [_] -> - true; - - _ -> - false - end. - --spec take_derivative(list(integer())) -> list(integer()). -take_derivative(Ns) -> - _pipe = Ns, - _pipe@1 = gleam@list:window_by_2(_pipe), - gleam@list:map( - _pipe@1, - fun(Tup) -> erlang:element(1, Tup) - erlang:element(2, Tup) end - ). - --spec extrapolate(list(integer())) -> integer(). -extrapolate(Ns) -> - case {is_constant(Ns), Ns} of - {true, [N | _]} -> - N; - - {false, [N@1 | _]} -> - N@1 + extrapolate(take_derivative(Ns)); - - {_, _} -> - erlang:error(#{gleam_error => panic, - message => <<"list empty when it shouldn't be"/utf8>>, - module => <<"day9/solve"/utf8>>, - function => <<"extrapolate"/utf8>>, - line => 38}) - end. - --spec part(binary(), boolean()) -> binary(). -part(Input, Backwards) -> - _pipe = Input, - _pipe@1 = parse(_pipe, Backwards), - _pipe@2 = gleam@list:fold( - _pipe@1, - 0, - fun(Acc, Ns) -> extrapolate(Ns) + Acc end - ), - gleam@string:inspect(_pipe@2). - --spec part1(binary()) -> binary(). -part1(Input) -> - part(Input, false). - --spec part2(binary()) -> binary(). -part2(Input) -> - part(Input, true). - --spec main() -> nil. -main() -> - _assert_subject = adglent:get_part(), - {ok, Part} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"day9/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 58}) - end, - _assert_subject@1 = adglent:get_input(<<"9"/utf8>>), - {ok, Input} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"day9/solve"/utf8>>, - function => <<"main"/utf8>>, - line => 59}) - end, - case Part of - first -> - _pipe = part1(Input), - _pipe@1 = adglent:inspect(_pipe), - gleam@io:println(_pipe@1); - - second -> - _pipe@2 = part2(Input), - _pipe@3 = adglent:inspect(_pipe@2), - gleam@io:println(_pipe@3) - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache deleted file mode 100644 index c060355..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache_meta deleted file mode 100644 index 0e78598..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.erl deleted file mode 100644 index 8e6753e..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@array2d.erl +++ /dev/null @@ -1,64 +0,0 @@ --module(utilities@array2d). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([add_posns/2, to_2d_array/1, to_2d_intarray/1, to_list_of_lists/1, parse_grid/1]). --export_type([posn/0]). - --type posn() :: {posn, integer(), integer()}. - --spec add_posns(posn(), posn()) -> posn(). -add_posns(P1, P2) -> - case {P1, P2} of - {{posn, R1, C1}, {posn, R2, C2}} -> - {posn, R1 + R2, C1 + C2} - end. - --spec to_2d_array(list(list(BDY))) -> gleam@dict:dict(posn(), BDY). -to_2d_array(Xss) -> - _pipe = (gleam@list:index_map( - Xss, - fun(R, Row) -> - gleam@list:index_map(Row, fun(C, Cell) -> {{posn, R, C}, Cell} end) - end - )), - _pipe@1 = gleam@list:flatten(_pipe), - gleam@dict:from_list(_pipe@1). - --spec to_2d_intarray(list(list(binary()))) -> gleam@dict:dict(posn(), integer()). -to_2d_intarray(Xss) -> - _pipe = (gleam@list:index_map( - Xss, - fun(R, Row) -> - gleam@list:index_map( - Row, - fun(C, Cell) -> - _assert_subject = gleam@int:parse(Cell), - {ok, N} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"utilities/array2d"/utf8>>, - function => <<"to_2d_intarray"/utf8>>, - line => 33}) - end, - {{posn, R, C}, N} - end - ) - end - )), - _pipe@1 = gleam@list:flatten(_pipe), - gleam@dict:from_list(_pipe@1). - --spec to_list_of_lists(binary()) -> list(list(binary())). -to_list_of_lists(Str) -> - _pipe = Str, - _pipe@1 = gleam@string:split(_pipe, <<"\n"/utf8>>), - gleam@list:map(_pipe@1, fun gleam@string:to_graphemes/1). - --spec parse_grid(binary()) -> gleam@dict:dict(posn(), binary()). -parse_grid(Str) -> - _pipe = Str, - _pipe@1 = to_list_of_lists(_pipe), - to_2d_array(_pipe@1). diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache deleted file mode 100644 index f8e9862..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache_meta deleted file mode 100644 index 9452d09..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.erl deleted file mode 100644 index 2c7b126..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@memo.erl +++ /dev/null @@ -1,70 +0,0 @@ --module(utilities@memo). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([create/1, set/3, get/2, memoize/3]). --export_type([message/2, cache/2]). - --type message(BEO, BEP) :: shutdown | - {get, BEO, gleam@erlang@process:subject({ok, BEP} | {error, nil})} | - {set, BEO, BEP}. - --opaque cache(BEQ, BER) :: {cache, - gleam@erlang@process:subject(message(BEQ, BER))}. - --spec handle_message(message(BEX, BEY), gleam@dict:dict(BEX, BEY)) -> gleam@otp@actor:next(message(BEX, BEY), gleam@dict:dict(BEX, BEY)). -handle_message(Message, Dict) -> - case Message of - shutdown -> - {stop, normal}; - - {get, Key, Client} -> - gleam@erlang@process:send(Client, gleam@dict:get(Dict, Key)), - {continue, Dict, none}; - - {set, Key@1, Value} -> - {continue, gleam@dict:insert(Dict, Key@1, Value), none} - end. - --spec create(fun((cache(any(), any())) -> BFN)) -> BFN. -create(Fun) -> - _assert_subject = gleam@otp@actor:start( - gleam@dict:new(), - fun handle_message/2 - ), - {ok, Server} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"utilities/memo"/utf8>>, - function => <<"create"/utf8>>, - line => 36}) - end, - Result = Fun({cache, Server}), - gleam@erlang@process:send(Server, shutdown), - Result. - --spec set(cache(BFO, BFP), BFO, BFP) -> nil. -set(Cache, Key, Value) -> - gleam@erlang@process:send(erlang:element(2, Cache), {set, Key, Value}). - --spec get(cache(BFS, BFT), BFS) -> {ok, BFT} | {error, nil}. -get(Cache, Key) -> - gleam@erlang@process:call( - erlang:element(2, Cache), - fun(C) -> {get, Key, C} end, - 1000 - ). - --spec memoize(cache(BFY, BFZ), BFY, fun(() -> BFZ)) -> BFZ. -memoize(Cache, Key, Fun) -> - Result = case get(Cache, Key) of - {ok, Value} -> - Value; - - {error, nil} -> - Fun() - end, - set(Cache, Key, Result), - Result. diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache deleted file mode 100644 index c9c4130..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache_meta b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache_meta deleted file mode 100644 index 274b278..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.erl b/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.erl deleted file mode 100644 index e97eff6..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.erl +++ /dev/null @@ -1,60 +0,0 @@ --module(utilities@prioqueue). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/0, insert/3, pop/1]). --export_type([ref/0, p_queue/1, priority_queue/1, out_result/1]). - --type ref() :: any(). - --type p_queue(BBO) :: any() | {gleam_phantom, BBO}. - --opaque priority_queue(BBP) :: {priority_queue, - p_queue({BBP, ref()}), - gleam@dict:dict(BBP, ref())}. - --type out_result(BBQ) :: empty | {value, BBQ, integer()}. - --spec new() -> priority_queue(any()). -new() -> - {priority_queue, pqueue2:new(), gleam@dict:new()}. - --spec insert(priority_queue(BCC), BCC, integer()) -> priority_queue(BCC). -insert(Queue, Value, Priority) -> - Ref = erlang:make_ref(), - Refs = begin - _pipe = erlang:element(3, Queue), - gleam@dict:insert(_pipe, Value, Ref) - end, - {priority_queue, - pqueue2:in({Value, Ref}, Priority, erlang:element(2, Queue)), - Refs}. - --spec pop(priority_queue(BCF)) -> {ok, {BCF, priority_queue(BCF)}} | - {error, nil}. -pop(Queue) -> - case pqueue2:pout(erlang:element(2, Queue)) of - {{value, {Value, Ref}, _}, Pqueue} -> - _assert_subject = gleam@dict:get(erlang:element(3, Queue), Value), - {ok, Recently_enqueued_ref} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"utilities/prioqueue"/utf8>>, - function => <<"pop"/utf8>>, - line => 52}) - end, - case Recently_enqueued_ref =:= Ref of - true -> - {ok, - {Value, - {priority_queue, Pqueue, erlang:element(3, Queue)}}}; - - false -> - pop({priority_queue, Pqueue, erlang:element(3, Queue)}) - end; - - {empty, _} -> - {error, nil} - end. diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.app b/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.app deleted file mode 100644 index 1d9ebe0..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.app +++ /dev/null @@ -1,15 +0,0 @@ -{application, aoc2023, [ - {vsn, "0.1.0"}, - {applications, [adglent, - gleam_community_maths, - gleam_erlang, - gleam_otp, - gleam_stdlib, - gleeunit, - pqueue, - simplifile]}, - {description, ""}, - {modules, [day20@day20_test, - day20@solve]}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.beam deleted file mode 100644 index 5ef8b6b..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023@@main.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023@@main.beam deleted file mode 100644 index c4d93c5..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023@@main.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023_test.beam deleted file mode 100644 index a77846a..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/aoc2023_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day10@day10_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day10@day10_test.beam deleted file mode 100644 index 30b4854..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day10@day10_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day10@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day10@solve.beam deleted file mode 100644 index d9c6ff3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day10@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day11@day11_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day11@day11_test.beam deleted file mode 100644 index dac7343..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day11@day11_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day11@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day11@solve.beam deleted file mode 100644 index ed49a37..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day11@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day12@day12_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day12@day12_test.beam deleted file mode 100644 index 513d1a9..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day12@day12_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day12@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day12@solve.beam deleted file mode 100644 index 21f1e8b..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day12@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day13@day13_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day13@day13_test.beam deleted file mode 100644 index 67e62de..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day13@day13_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day13@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day13@solve.beam deleted file mode 100644 index a9eb3a5..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day13@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day14@day14_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day14@day14_test.beam deleted file mode 100644 index 5a6c67e..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day14@day14_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day14@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day14@solve.beam deleted file mode 100644 index 8db7efd..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day14@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day15@day15_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day15@day15_test.beam deleted file mode 100644 index f8e4a5f..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day15@day15_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day15@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day15@solve.beam deleted file mode 100644 index 2bf8472..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day15@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day16@day16_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day16@day16_test.beam deleted file mode 100644 index 091829f..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day16@day16_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day16@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day16@solve.beam deleted file mode 100644 index 78a3f8c..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day16@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day17@day17_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day17@day17_test.beam deleted file mode 100644 index 5624a2f..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day17@day17_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day17@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day17@solve.beam deleted file mode 100644 index ca194b3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day17@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day18@day18_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day18@day18_test.beam deleted file mode 100644 index 2f9a32a..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day18@day18_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day18@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day18@solve.beam deleted file mode 100644 index 326ca15..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day18@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day19@day19_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day19@day19_test.beam deleted file mode 100644 index f5cc6c3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day19@day19_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day19@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day19@solve.beam deleted file mode 100644 index 7ea70a3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day19@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day1@day1_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day1@day1_test.beam deleted file mode 100644 index c01f17e..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day1@day1_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day1@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day1@solve.beam deleted file mode 100644 index d2decc9..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day1@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day20@day20_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day20@day20_test.beam deleted file mode 100644 index 5bb689f..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day20@day20_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day20@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day20@solve.beam deleted file mode 100644 index 2a7a3b3..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day20@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day2@day2_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day2@day2_test.beam deleted file mode 100644 index f10ea16..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day2@day2_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day2@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day2@solve.beam deleted file mode 100644 index 19a27da..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day2@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day3@day3_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day3@day3_test.beam deleted file mode 100644 index a082170..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day3@day3_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day3@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day3@solve.beam deleted file mode 100644 index 803c647..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day3@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day4@day4_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day4@day4_test.beam deleted file mode 100644 index 35f5046..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day4@day4_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day4@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day4@solve.beam deleted file mode 100644 index 3278158..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day4@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day5@day5_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day5@day5_test.beam deleted file mode 100644 index b03baf2..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day5@day5_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day5@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day5@solve.beam deleted file mode 100644 index 67980d7..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day5@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day6@day6_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day6@day6_test.beam deleted file mode 100644 index 5d8c4d4..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day6@day6_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day6@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day6@solve.beam deleted file mode 100644 index 8d47586..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day6@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day7@day7_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day7@day7_test.beam deleted file mode 100644 index ae993b1..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day7@day7_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day7@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day7@solve.beam deleted file mode 100644 index 54ef711..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day7@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day8@day8_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day8@day8_test.beam deleted file mode 100644 index e8adca4..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day8@day8_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day8@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day8@solve.beam deleted file mode 100644 index c208dac..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day8@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day9@day9_test.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day9@day9_test.beam deleted file mode 100644 index fac9c16..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day9@day9_test.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/day9@solve.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/day9@solve.beam deleted file mode 100644 index 0f48b99..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/day9@solve.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@array2d.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@array2d.beam deleted file mode 100644 index d30c73d..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@array2d.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@memo.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@memo.beam deleted file mode 100644 index 3bba319..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@memo.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@prioqueue.beam b/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@prioqueue.beam deleted file mode 100644 index 8cd709b..0000000 Binary files a/aoc2023/build/dev/erlang/aoc2023/ebin/utilities@prioqueue.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/aoc2023/include/day2@solve_Game.hrl b/aoc2023/build/dev/erlang/aoc2023/include/day2@solve_Game.hrl deleted file mode 100644 index 7babf61..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/include/day2@solve_Game.hrl +++ /dev/null @@ -1 +0,0 @@ --record(game, {red :: integer(), blue :: integer(), green :: integer()}). diff --git a/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_Almanac.hrl b/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_Almanac.hrl deleted file mode 100644 index 5c3086c..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_Almanac.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(almanac, { - seeds :: list(integer()), - mappers :: list(list(day5@solve:mapping_range())) -}). diff --git a/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_MRange.hrl b/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_MRange.hrl deleted file mode 100644 index 999313f..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_MRange.hrl +++ /dev/null @@ -1 +0,0 @@ --record(m_range, {start :: integer(), 'end' :: integer(), offset :: integer()}). diff --git a/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_SRange.hrl b/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_SRange.hrl deleted file mode 100644 index 56c67cd..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/include/day5@solve_SRange.hrl +++ /dev/null @@ -1 +0,0 @@ --record(s_range, {start :: integer(), 'end' :: integer()}). diff --git a/aoc2023/build/dev/erlang/aoc2023/include/utilities@array2d_Posn.hrl b/aoc2023/build/dev/erlang/aoc2023/include/utilities@array2d_Posn.hrl deleted file mode 100644 index 94da3d5..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/include/utilities@array2d_Posn.hrl +++ /dev/null @@ -1 +0,0 @@ --record(posn, {r :: integer(), c :: integer()}). diff --git a/aoc2023/build/dev/erlang/aoc2023/include/utilities@memo_Cache.hrl b/aoc2023/build/dev/erlang/aoc2023/include/utilities@memo_Cache.hrl deleted file mode 100644 index 941b746..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/include/utilities@memo_Cache.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(cache, { - server :: gleam@erlang@process:subject(utilities@memo:message(any(), any())) -}). diff --git a/aoc2023/build/dev/erlang/aoc2023/include/utilities@prioqueue_PriorityQueue.hrl b/aoc2023/build/dev/erlang/aoc2023/include/utilities@prioqueue_PriorityQueue.hrl deleted file mode 100644 index 0e12dca..0000000 --- a/aoc2023/build/dev/erlang/aoc2023/include/utilities@prioqueue_PriorityQueue.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(priority_queue, { - queue :: utilities@prioqueue:p_queue({any(), utilities@prioqueue:ref()}), - refs :: gleam@dict:dict(any(), utilities@prioqueue:ref()) -}). diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.cache b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.cache deleted file mode 100644 index 5e9f51b..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.cache_meta b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.cache_meta deleted file mode 100644 index 3a247a0..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.erl b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.erl deleted file mode 100644 index f28094b..0000000 --- a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap.erl +++ /dev/null @@ -1,538 +0,0 @@ --module(gap). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([to_styled/1, compare_strings_with_algorithm/3, compare_lists_with_algorithm/3, myers/2, compare_lists/2, compare_strings/2, lcs/2]). --export_type([score/1]). - --type score(GBX) :: {score, integer(), gleam@option:option(GBX)}. - --spec to_styled(gap@comparison:comparison(any())) -> gap@styled_comparison:styled_comparison(). -to_styled(Comparison) -> - _pipe = Comparison, - _pipe@1 = gap@styling:from_comparison(_pipe), - _pipe@2 = gap@styling:highlight( - _pipe@1, - fun gap@styling:first_highlight_default/1, - fun gap@styling:second_highlight_default/1, - fun gap@styling:no_highlight/1 - ), - gap@styling:to_styled_comparison(_pipe@2). - --spec compare_strings_with_algorithm( - binary(), - binary(), - fun((list(binary()), list(binary())) -> gap@comparison:comparison(binary())) -) -> gap@comparison:comparison(binary()). -compare_strings_with_algorithm(First, Second, Algorithm) -> - Comparison = Algorithm( - gleam@string:to_graphemes(First), - gleam@string:to_graphemes(Second) - ), - case Comparison of - {list_comparison, First@1, Second@1} -> - {string_comparison, First@1, Second@1}; - - {string_comparison, First@2, Second@2} -> - {string_comparison, First@2, Second@2} - end. - --spec compare_lists_with_algorithm( - list(GCM), - list(GCM), - fun((list(GCM), list(GCM)) -> gap@comparison:comparison(GCM)) -) -> gap@comparison:comparison(GCM). -compare_lists_with_algorithm(First_sequence, Second_sequence, Algorithm) -> - Algorithm(First_sequence, Second_sequence). - --spec myers(list(GCR), list(GCR)) -> gap@comparison:comparison(GCR). -myers(First_sequence, Second_sequence) -> - Edits = gap@myers:difference(First_sequence, Second_sequence), - _pipe = Edits, - _pipe@1 = gleam@list:reverse(_pipe), - gleam@list:fold( - _pipe@1, - {list_comparison, [], []}, - fun(Comparison, Edit) -> case Comparison of - {list_comparison, First, Second} -> - case Edit of - {eq, Segment} -> - {list_comparison, - [{match, Segment} | First], - [{match, Segment} | Second]}; - - {ins, Segment@1} -> - {list_comparison, - First, - [{no_match, Segment@1} | Second]}; - - {del, Segment@2} -> - {list_comparison, - [{no_match, Segment@2} | First], - Second} - end; - - {string_comparison, _, _} -> - Comparison - end end - ). - --spec compare_lists(list(GCI), list(GCI)) -> gap@comparison:comparison(GCI). -compare_lists(First_sequence, Second_sequence) -> - myers(First_sequence, Second_sequence). - --spec compare_strings(binary(), binary()) -> gap@comparison:comparison(binary()). -compare_strings(First, Second) -> - Comparison = compare_lists( - gleam@string:to_graphemes(First), - gleam@string:to_graphemes(Second) - ), - case Comparison of - {list_comparison, First@1, Second@1} -> - {string_comparison, First@1, Second@1}; - - {string_comparison, First@2, Second@2} -> - {string_comparison, First@2, Second@2} - end. - --spec prepend_and_merge( - list(gap@comparison:match(list(GCZ))), - gap@comparison:match(list(GCZ)) -) -> list(gap@comparison:match(list(GCZ))). -prepend_and_merge(Matches, Match) -> - case {Matches, Match} of - {[], _} -> - [Match]; - - {[{match, First_match} | Rest], {match, _}} -> - [{match, - begin - _pipe = erlang:element(2, Match), - gleam@list:append(_pipe, First_match) - end} | - Rest]; - - {[{no_match, First_match@1} | Rest@1], {no_match, _}} -> - [{no_match, - begin - _pipe@1 = erlang:element(2, Match), - gleam@list:append(_pipe@1, First_match@1) - end} | - Rest@1]; - - {Matches@1, Match@1} -> - [Match@1 | Matches@1] - end. - --spec append_and_merge( - list(gap@comparison:match(list(GDI))), - gap@comparison:match(list(GDI)) -) -> list(gap@comparison:match(list(GDI))). -append_and_merge(Matches, Match) -> - _pipe@3 = case {begin - _pipe = Matches, - gleam@list:reverse(_pipe) - end, - Match} of - {[], _} -> - [Match]; - - {[{match, First_match} | Rest], {match, _}} -> - [{match, - begin - _pipe@1 = First_match, - gleam@list:append(_pipe@1, erlang:element(2, Match)) - end} | - Rest]; - - {[{no_match, First_match@1} | Rest@1], {no_match, _}} -> - [{no_match, - begin - _pipe@2 = First_match@1, - gleam@list:append(_pipe@2, erlang:element(2, Match)) - end} | - Rest@1]; - - {Matches@1, Match@1} -> - [Match@1 | Matches@1] - end, - gleam@list:reverse(_pipe@3). - --spec collect_matches( - gleam@dict:dict(GHJ, any()), - list(GDS), - fun((GHJ) -> integer()) -) -> list(gap@comparison:match(list(GDS))). -collect_matches(Tracking, Str, Extract_fun) -> - Matching_indexes = begin - _pipe = gleam@map:keys(Tracking), - _pipe@1 = gleam@list:map(_pipe, Extract_fun), - gleam@set:from_list(_pipe@1) - end, - Matches = begin - _pipe@2 = Str, - gleam@list:index_map( - _pipe@2, - fun(Index, Item) -> - case gleam@set:contains(Matching_indexes, Index) of - true -> - {match, Item}; - - false -> - {no_match, Item} - end - end - ) - end, - _pipe@3 = Matches, - _pipe@4 = gleam@list:chunk(_pipe@3, fun(Match) -> case Match of - {match, _} -> - true; - - {no_match, _} -> - false - end end), - gleam@list:map(_pipe@4, fun(Match_list) -> case Match_list of - [{match, _} | _] -> - {match, - gleam@list:filter_map( - Match_list, - fun(Match@1) -> case Match@1 of - {match, Item@1} -> - {ok, Item@1}; - - {no_match, _} -> - {error, nil} - end end - )}; - - [{no_match, _} | _] -> - {no_match, - gleam@list:filter_map( - Match_list, - fun(Match@2) -> case Match@2 of - {no_match, Item@2} -> - {ok, Item@2}; - - {match, _} -> - {error, nil} - end end - )} - end end). - --spec back_track( - gleam@dict:dict({integer(), integer()}, score(GDW)), - integer(), - integer(), - list({{integer(), integer()}, GDW}) -) -> list({{integer(), integer()}, GDW}). -back_track(Diff_map, First_index, Second_index, Stack) -> - case (First_index =:= 0) orelse (Second_index =:= 0) of - true -> - This_score = begin - _pipe = gleam@map:get(Diff_map, {First_index, Second_index}), - gleam@result:unwrap(_pipe, {score, 0, none}) - end, - case This_score of - {score, _, {some, Item}} -> - [{{First_index, Second_index}, Item} | Stack]; - - _ -> - case {First_index, Second_index} of - {0, A} when A > 0 -> - back_track( - Diff_map, - First_index, - Second_index - 1, - Stack - ); - - {A@1, 0} when A@1 > 0 -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ); - - {0, 0} -> - Stack; - - {_, _} -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ) - end - end; - - false -> - This_score@1 = begin - _pipe@1 = gleam@map:get(Diff_map, {First_index, Second_index}), - gleam@result:unwrap(_pipe@1, {score, 0, none}) - end, - case This_score@1 of - {score, _, {some, Item@1}} -> - back_track( - Diff_map, - First_index - 1, - Second_index - 1, - [{{First_index, Second_index}, Item@1} | Stack] - ); - - {score, _, none} -> - Up = begin - _pipe@2 = gleam@map:get( - Diff_map, - {First_index, Second_index - 1} - ), - gleam@result:unwrap(_pipe@2, {score, 0, none}) - end, - Back = begin - _pipe@3 = gleam@map:get( - Diff_map, - {First_index - 1, Second_index} - ), - gleam@result:unwrap(_pipe@3, {score, 0, none}) - end, - case gleam@int:compare( - erlang:element(2, Up), - erlang:element(2, Back) - ) of - gt -> - back_track( - Diff_map, - First_index, - Second_index - 1, - Stack - ); - - lt -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ); - - eq -> - case {First_index, Second_index} of - {0, A@2} when A@2 > 0 -> - back_track( - Diff_map, - First_index, - Second_index - 1, - Stack - ); - - {A@3, 0} when A@3 > 0 -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ); - - {0, 0} -> - Stack; - - {_, _} -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ) - end - end - end - end. - --spec build_diff_map( - GEC, - integer(), - GEC, - integer(), - gleam@dict:dict({integer(), integer()}, score(GEC)) -) -> gleam@dict:dict({integer(), integer()}, score(GEC)). -build_diff_map(First_item, First_index, Second_item, Second_index, Diff_map) -> - Prev_score = begin - _pipe = gleam@map:get(Diff_map, {First_index - 1, Second_index - 1}), - gleam@result:unwrap(_pipe, {score, 0, none}) - end, - Derived_score_up = begin - _pipe@1 = Diff_map, - _pipe@2 = gleam@map:get(_pipe@1, {First_index, Second_index - 1}), - gleam@result:unwrap(_pipe@2, {score, 0, none}) - end, - Derived_score_back = begin - _pipe@3 = Diff_map, - _pipe@4 = gleam@map:get(_pipe@3, {First_index - 1, Second_index}), - gleam@result:unwrap(_pipe@4, {score, 0, none}) - end, - Derived_score = gleam@int:max( - erlang:element(2, Derived_score_up), - erlang:element(2, Derived_score_back) - ), - This_score = case First_item =:= Second_item of - true -> - {score, erlang:element(2, Prev_score) + 1, {some, First_item}}; - - false -> - {score, Derived_score, none} - end, - _pipe@5 = Diff_map, - gleam@map:insert(_pipe@5, {First_index, Second_index}, This_score). - --spec lcs(list(GCV), list(GCV)) -> gap@comparison:comparison(GCV). -lcs(First_sequence, Second_sequence) -> - Leading_matches = begin - _pipe = gleam@list:zip(First_sequence, Second_sequence), - _pipe@1 = gleam@list:take_while( - _pipe, - fun(Pair) -> erlang:element(1, Pair) =:= erlang:element(2, Pair) end - ), - gleam@list:map(_pipe@1, fun gleam@pair:first/1) - end, - Num_leading_matches = gleam@list:length(Leading_matches), - Trailing_matches = begin - _pipe@2 = gleam@list:zip( - gleam@list:reverse(First_sequence), - gleam@list:reverse(Second_sequence) - ), - _pipe@3 = gleam@list:take_while( - _pipe@2, - fun(Pair@1) -> - erlang:element(1, Pair@1) =:= erlang:element(2, Pair@1) - end - ), - _pipe@4 = gleam@list:map(_pipe@3, fun gleam@pair:first/1), - gleam@list:reverse(_pipe@4) - end, - Num_trailing_matches = gleam@list:length(Trailing_matches), - First_sequence_to_diff = begin - _pipe@5 = First_sequence, - _pipe@6 = gleam@list:drop(_pipe@5, Num_leading_matches), - gleam@list:take( - _pipe@6, - (gleam@list:length(First_sequence) - Num_leading_matches) - Num_trailing_matches - ) - end, - Second_sequence_to_diff = begin - _pipe@7 = Second_sequence, - _pipe@8 = gleam@list:drop(_pipe@7, Num_leading_matches), - gleam@list:take( - _pipe@8, - (gleam@list:length(Second_sequence) - Num_leading_matches) - Num_trailing_matches - ) - end, - Diff_map@2 = begin - _pipe@9 = Second_sequence_to_diff, - gleam@list:index_fold( - _pipe@9, - gleam@map:new(), - fun(Diff_map, Item_second, Index_second) -> - _pipe@10 = First_sequence_to_diff, - gleam@list:index_fold( - _pipe@10, - Diff_map, - fun(Diff_map@1, Item_first, Index_first) -> - build_diff_map( - Item_first, - Index_first, - Item_second, - Index_second, - Diff_map@1 - ) - end - ) - end - ) - end, - {First_segments@1, Second_segments@1} = case {First_sequence_to_diff, - Second_sequence_to_diff} of - {[], []} -> - {[], []}; - - {First_matching, []} -> - {[{no_match, First_matching}], []}; - - {[], Second_matching} -> - {[], [{no_match, Second_matching}]}; - - {First_sequence_to_diff@1, Second_sequence_to_diff@1} -> - Tracking = begin - _pipe@11 = back_track( - Diff_map@2, - gleam@list:length(First_sequence_to_diff@1) - 1, - gleam@list:length(Second_sequence_to_diff@1) - 1, - [] - ), - gleam@map:from_list(_pipe@11) - end, - First_segments = collect_matches( - Tracking, - First_sequence_to_diff@1, - fun(Key) -> - {First, _} = Key, - First - end - ), - Second_segments = collect_matches( - Tracking, - Second_sequence_to_diff@1, - fun(Key@1) -> - {_, Second} = Key@1, - Second - end - ), - {First_segments, Second_segments} - end, - {First_segments_with_leading_trailing, - Second_segments_with_leading_trailing} = case {Leading_matches, - Trailing_matches} of - {[], []} -> - {First_segments@1, Second_segments@1}; - - {[], Trailing_matches@1} -> - {begin - _pipe@12 = First_segments@1, - append_and_merge(_pipe@12, {match, Trailing_matches@1}) - end, - begin - _pipe@13 = Second_segments@1, - append_and_merge(_pipe@13, {match, Trailing_matches@1}) - end}; - - {Leading_matches@1, []} -> - {begin - _pipe@14 = First_segments@1, - prepend_and_merge(_pipe@14, {match, Leading_matches@1}) - end, - begin - _pipe@15 = Second_segments@1, - prepend_and_merge(_pipe@15, {match, Leading_matches@1}) - end}; - - {Leading_matches@2, Trailing_matches@2} -> - {begin - _pipe@16 = First_segments@1, - _pipe@17 = prepend_and_merge( - _pipe@16, - {match, Leading_matches@2} - ), - append_and_merge(_pipe@17, {match, Trailing_matches@2}) - end, - begin - _pipe@18 = Second_segments@1, - _pipe@19 = prepend_and_merge( - _pipe@18, - {match, Leading_matches@2} - ), - append_and_merge(_pipe@19, {match, Trailing_matches@2}) - end} - end, - {list_comparison, - First_segments_with_leading_trailing, - Second_segments_with_leading_trailing}. diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.cache b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.cache deleted file mode 100644 index f754345..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.cache_meta b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.cache_meta deleted file mode 100644 index e3f3599..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.erl b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.erl deleted file mode 100644 index 76c0ff2..0000000 --- a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@comparison.erl +++ /dev/null @@ -1,15 +0,0 @@ --module(gap@comparison). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([comparison/1, match/1]). - --type comparison(FSE) :: {list_comparison, - list(match(list(FSE))), - list(match(list(FSE)))} | - {string_comparison, - list(match(list(binary()))), - list(match(list(binary())))}. - --type match(FSF) :: {match, FSF} | {no_match, FSF}. - - diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.cache b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.cache deleted file mode 100644 index 8935f36..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.cache_meta b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.cache_meta deleted file mode 100644 index 6d51dd1..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.erl b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.erl deleted file mode 100644 index ea26472..0000000 --- a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@myers.erl +++ /dev/null @@ -1,156 +0,0 @@ --module(gap@myers). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([difference/2]). --export_type([edit/1, path/1, status/1]). - --type edit(FWG) :: {eq, list(FWG)} | {del, list(FWG)} | {ins, list(FWG)}. - --type path(FWH) :: {path, - integer(), - integer(), - list(FWH), - list(FWH), - list(edit(FWH))}. - --type status(FWI) :: {done, list(edit(FWI))} | - {next, list(path(FWI))} | - {cont, path(FWI)}. - --spec compact_reverse(list(edit(FWS)), list(edit(FWS))) -> list(edit(FWS)). -compact_reverse(Edits, Acc) -> - case {Edits, Acc} of - {[], Acc@1} -> - Acc@1; - - {[{eq, Elem} | Rest], [{eq, Result} | Acc_rest]} -> - compact_reverse( - Rest, - [{eq, gleam@list:flatten([Elem, Result])} | Acc_rest] - ); - - {[{del, Elem@1} | Rest@1], [{del, Result@1} | Acc_rest@1]} -> - compact_reverse( - Rest@1, - [{del, gleam@list:flatten([Elem@1, Result@1])} | Acc_rest@1] - ); - - {[{ins, Elem@2} | Rest@2], [{ins, Result@2} | Acc_rest@2]} -> - compact_reverse( - Rest@2, - [{ins, gleam@list:flatten([Elem@2, Result@2])} | Acc_rest@2] - ); - - {[{eq, Elem@3} | Rest@3], Acc@2} -> - compact_reverse(Rest@3, [{eq, Elem@3} | Acc@2]); - - {[{del, Elem@4} | Rest@4], Acc@3} -> - compact_reverse(Rest@4, [{del, Elem@4} | Acc@3]); - - {[{ins, Elem@5} | Rest@5], Acc@4} -> - compact_reverse(Rest@5, [{ins, Elem@5} | Acc@4]) - end. - --spec move_right(path(FXL)) -> path(FXL). -move_right(Path) -> - case Path of - {path, X, Y, List1, [Elem | Rest], Edits} -> - {path, X + 1, Y, List1, Rest, [{ins, [Elem]} | Edits]}; - - {path, X@1, Y@1, List1@1, [], Edits@1} -> - {path, X@1 + 1, Y@1, List1@1, [], Edits@1} - end. - --spec move_down(path(FXO)) -> path(FXO). -move_down(Path) -> - case Path of - {path, X, Y, [Elem | Rest], List2, Edits} -> - {path, X, Y + 1, Rest, List2, [{del, [Elem]} | Edits]}; - - {path, X@1, Y@1, [], List2@1, Edits@1} -> - {path, X@1, Y@1 + 1, [], List2@1, Edits@1} - end. - --spec proceed_path(integer(), integer(), list(path(FXF))) -> {path(FXF), - list(path(FXF))}. -proceed_path(Diag, Limit, Paths) -> - Neg_limit = - Limit, - case {Diag, Limit, Paths} of - {0, 0, [Path]} -> - {Path, []}; - - {Diag@1, _, [Path@1 | _] = Paths@1} when Diag@1 =:= Neg_limit -> - {move_down(Path@1), Paths@1}; - - {Diag@2, Limit@1, [Path@2 | _] = Paths@2} when Diag@2 =:= Limit@1 -> - {move_right(Path@2), Paths@2}; - - {_, _, [Path1, Path2 | Rest]} -> - case erlang:element(3, Path1) > erlang:element(3, Path2) of - true -> - {move_right(Path1), [Path2 | Rest]}; - - false -> - {move_down(Path2), [Path2 | Rest]} - end - end. - --spec follow_snake(path(FXR)) -> status(FXR). -follow_snake(Path) -> - case Path of - {path, X, Y, [Elem1 | Rest1], [Elem2 | Rest2], Edits} when Elem1 =:= Elem2 -> - follow_snake( - {path, X + 1, Y + 1, Rest1, Rest2, [{eq, [Elem1]} | Edits]} - ); - - {path, _, _, [], [], Edits@1} -> - {done, Edits@1}; - - _ -> - {cont, Path} - end. - --spec each_diagonal(integer(), integer(), list(path(FWZ)), list(path(FWZ))) -> status(FWZ). -each_diagonal(Diag, Limit, Paths, Next_paths) -> - case Diag > Limit of - true -> - {next, gleam@list:reverse(Next_paths)}; - - false -> - {Path, Rest} = proceed_path(Diag, Limit, Paths), - case follow_snake(Path) of - {cont, Path@1} -> - each_diagonal(Diag + 2, Limit, Rest, [Path@1 | Next_paths]); - - Other -> - Other - end - end. - --spec find_script(integer(), integer(), list(path(FWO))) -> list(edit(FWO)). -find_script(Envelope, Max, Paths) -> - case Envelope > Max of - true -> - []; - - false -> - case each_diagonal(- Envelope, Envelope, Paths, []) of - {done, Edits} -> - compact_reverse(Edits, []); - - {next, Paths@1} -> - find_script(Envelope + 1, Max, Paths@1); - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"Didn't expect a Cont here"/utf8>>, - module => <<"gap/myers"/utf8>>, - function => <<"find_script"/utf8>>, - line => 35}) - end - end. - --spec difference(list(FWJ), list(FWJ)) -> list(edit(FWJ)). -difference(List1, List2) -> - Path = {path, 0, 0, List1, List2, []}, - find_script(0, gleam@list:length(List1) + gleam@list:length(List2), [Path]). diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache deleted file mode 100644 index d7dfd29..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache_meta b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache_meta deleted file mode 100644 index dc9ffd0..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.erl b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.erl deleted file mode 100644 index 14cc390..0000000 --- a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styled_comparison.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(gap@styled_comparison). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([styled_comparison/0]). - --type styled_comparison() :: {styled_comparison, binary(), binary()}. - - diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.cache b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.cache deleted file mode 100644 index 7ff8b7f..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.cache_meta b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.cache_meta deleted file mode 100644 index f580983..0000000 Binary files a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.erl b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.erl deleted file mode 100644 index 4c14974..0000000 --- a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap@styling.erl +++ /dev/null @@ -1,202 +0,0 @@ --module(gap@styling). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_comparison/1, highlight/4, serialize/2, first_highlight_default/1, second_highlight_default/1, no_highlight/1, mk_generic_serializer/2, to_styled_comparison/1]). --export_type([part/1, highlighters/0, styling/1]). - --type part(FSP) :: {part, binary(), list(FSP), fun((binary()) -> binary())} | - {all, binary()}. - --type highlighters() :: {highlighters, - fun((binary()) -> binary()), - fun((binary()) -> binary()), - fun((binary()) -> binary())}. - --opaque styling(FSQ) :: {styling, - gap@comparison:comparison(FSQ), - gleam@option:option(fun((part(FSQ)) -> binary())), - gleam@option:option(highlighters())}. - --spec from_comparison(gap@comparison:comparison(FST)) -> styling(FST). -from_comparison(Comparison) -> - {styling, Comparison, none, none}. - --spec highlight( - styling(FSW), - fun((binary()) -> binary()), - fun((binary()) -> binary()), - fun((binary()) -> binary()) -) -> styling(FSW). -highlight(Styling, First, Second, Matching) -> - erlang:setelement( - 4, - Styling, - {some, {highlighters, First, Second, Matching}} - ). - --spec serialize(styling(FSZ), fun((part(FSZ)) -> binary())) -> styling(FSZ). -serialize(Styling, Serializer) -> - erlang:setelement(3, Styling, {some, Serializer}). - --spec first_highlight_default(binary()) -> binary(). -first_highlight_default(String) -> - case String of - <<" "/utf8>> -> - _pipe = String, - _pipe@1 = gleam_community@ansi:underline(_pipe), - _pipe@2 = gleam_community@ansi:bold(_pipe@1), - gleam_community@ansi:green(_pipe@2); - - _ -> - _pipe@3 = String, - _pipe@4 = gleam_community@ansi:green(_pipe@3), - gleam_community@ansi:bold(_pipe@4) - end. - --spec second_highlight_default(binary()) -> binary(). -second_highlight_default(String) -> - case String of - <<" "/utf8>> -> - _pipe = String, - _pipe@1 = gleam_community@ansi:underline(_pipe), - _pipe@2 = gleam_community@ansi:bold(_pipe@1), - gleam_community@ansi:red(_pipe@2); - - _ -> - _pipe@3 = String, - _pipe@4 = gleam_community@ansi:red(_pipe@3), - gleam_community@ansi:bold(_pipe@4) - end. - --spec no_highlight(binary()) -> binary(). -no_highlight(String) -> - String. - --spec string_serializer(part(binary())) -> binary(). -string_serializer(Part) -> - case Part of - {part, Acc, Sequence, Highlight} -> - <>) - end)/binary>>; - - {all, String} -> - String - end. - --spec mk_generic_serializer(binary(), fun((binary()) -> binary())) -> fun((part(any())) -> binary()). -mk_generic_serializer(Separator, Around) -> - fun(Part) -> case Part of - {part, Acc, Sequence, Highlight} -> - Segment_separator = case Acc of - <<""/utf8>> -> - <<""/utf8>>; - - _ -> - Separator - end, - <<<>/binary, - (begin - _pipe = Sequence, - _pipe@1 = gleam@list:map( - _pipe, - fun gleam@string:inspect/1 - ), - _pipe@2 = gleam@list:map(_pipe@1, Highlight), - gleam@string:join(_pipe@2, Separator) - end)/binary>>; - - {all, String} -> - Around(String) - end end. - --spec generic_serializer(part(any())) -> binary(). -generic_serializer(Part) -> - (mk_generic_serializer( - <<", "/utf8>>, - fun(All) -> <<<<"["/utf8, All/binary>>/binary, "]"/utf8>> end - ))(Part). - --spec to_strings( - list(gap@comparison:match(list(FTJ))), - list(gap@comparison:match(list(FTJ))), - fun((part(FTJ)) -> binary()), - fun((binary()) -> binary()), - fun((binary()) -> binary()), - fun((binary()) -> binary()) -) -> gap@styled_comparison:styled_comparison(). -to_strings( - First, - Second, - Serializer, - First_highlight, - Second_highlight, - No_highlight -) -> - First_styled = begin - _pipe = First, - gleam@list:fold(_pipe, <<""/utf8>>, fun(Str, Match) -> case Match of - {match, Item} -> - Serializer({part, Str, Item, No_highlight}); - - {no_match, Item@1} -> - Serializer({part, Str, Item@1, First_highlight}) - end end) - end, - Second_styled = begin - _pipe@1 = Second, - gleam@list:fold( - _pipe@1, - <<""/utf8>>, - fun(Str@1, Match@1) -> case Match@1 of - {match, Item@2} -> - Serializer({part, Str@1, Item@2, No_highlight}); - - {no_match, Item@3} -> - Serializer({part, Str@1, Item@3, Second_highlight}) - end end - ) - end, - {styled_comparison, - Serializer({all, First_styled}), - Serializer({all, Second_styled})}. - --spec to_styled_comparison(styling(any())) -> gap@styled_comparison:styled_comparison(). -to_styled_comparison(Styling) -> - Highlight = begin - _pipe = erlang:element(4, Styling), - gleam@option:unwrap( - _pipe, - {highlighters, - fun first_highlight_default/1, - fun second_highlight_default/1, - fun no_highlight/1} - ) - end, - case erlang:element(2, Styling) of - {string_comparison, First, Second} -> - to_strings( - First, - Second, - fun string_serializer/1, - erlang:element(2, Highlight), - erlang:element(3, Highlight), - erlang:element(4, Highlight) - ); - - {list_comparison, First@1, Second@1} -> - to_strings( - First@1, - Second@1, - gleam@option:unwrap( - erlang:element(3, Styling), - fun generic_serializer/1 - ), - erlang:element(2, Highlight), - erlang:element(3, Highlight), - erlang:element(4, Highlight) - ) - end. diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap_ffi.mjs b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap_ffi.mjs deleted file mode 100644 index 235c80b..0000000 --- a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gap_ffi.mjs +++ /dev/null @@ -1,431 +0,0 @@ -import { - Error, - List, - Ok, - inspect, - toList, - makeError, - isEqual, -} from "./gleam.mjs"; -import * as $option from "../gleam_stdlib/gleam/option.mjs"; - -const HASHCODE_CACHE = new WeakMap(); -const Nil = undefined; - -class MutableMap { - static #hashcode_cache = new WeakMap(); - - static hash(value) { - let existing = this.#hashcode_cache.get(value); - if (existing) { - return existing; - } else if (value instanceof Object) { - let hashcode = inspect(value); - HASHCODE_CACHE.set(value, hashcode); - return hashcode; - } else { - return value.toString(); - } - } - - constructor() { - this.entries = new globalThis.Map(); - } - - get size() { - return this.entries.size; - } - - inspect() { - let entries = [...this.entries.values()] - .map((pair) => inspect(pair)) - .join(", "); - return `map.from_list([${entries}])`; - } - - toList() { - return List.fromArray([...this.entries.values()]); - } - - insert(k, v) { - this.entries.set(MutableMap.hash(k), [k, v]); - return this; - } - - delete(k) { - this.entries.delete(MutableMap.hash(k)); - return this; - } - - get(key) { - let code = MutableMap.hash(key); - if (this.entries.has(code)) { - return new Ok(this.entries.get(code)[1]); - } else { - return new Error(Nil); - } - } -} - -export function new_mutable_map() { - return new MutableMap(); -} - -export function mutable_map_size(map) { - return map.size; -} - -export function mutable_map_to_list(map) { - return map.toList(); -} - -export function mutable_map_remove(k, map) { - return map.delete(k); -} - -export function mutable_map_get(map, key) { - return map.get(key); -} - -export function mutable_map_insert(key, value, map) { - return map.insert(key, value); -} - -// From map.mjs - -export function size(map) { - return mutable_map_size(map); -} - -export function to_list(map) { - return mutable_map_to_list(map); -} - -export function new$() { - return new_mutable_map(); -} - -export function get(from, get) { - return mutable_map_get(from, get); -} - -function do_has_key(key, map) { - return !isEqual(get(map, key), new Error(undefined)); -} - -export function has_key(map, key) { - return do_has_key(key, map); -} - -export function insert(map, key, value) { - return mutable_map_insert(key, value, map); -} - -function insert_pair(map, pair) { - return insert(map, pair[0], pair[1]); -} - -export function update(map, key, fun) { - let _pipe = map; - let _pipe$1 = get(_pipe, key); - let _pipe$2 = $option.from_result(_pipe$1); - let _pipe$3 = fun(_pipe$2); - return ((_capture) => { - return insert(map, key, _capture); - })(_pipe$3); -} - -export function delete$(map, key) { - return mutable_map_remove(key, map); -} - -function fold_list_of_pair(loop$list, loop$initial) { - while (true) { - let list = loop$list; - let initial = loop$initial; - if (list.hasLength(0)) { - return initial; - } else if (list.atLeastLength(1)) { - let x = list.head; - let rest = list.tail; - loop$list = rest; - loop$initial = insert(initial, x[0], x[1]); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 98, - "fold_list_of_pair", - "No case clause matched", - { values: [list] } - ); - } - } -} - -function do_from_list(list) { - return fold_list_of_pair(list, new$()); -} - -export function from_list(list) { - return do_from_list(list); -} - -function do_fold(loop$list, loop$initial, loop$fun) { - while (true) { - let list = loop$list; - let initial = loop$initial; - let fun = loop$fun; - if (list.hasLength(0)) { - return initial; - } else if (list.atLeastLength(1)) { - let k = list.head[0]; - let v = list.head[1]; - let tail = list.tail; - loop$list = tail; - loop$initial = fun(initial, k, v); - loop$fun = fun; - } else { - throw makeError( - "case_no_match", - "gleam/map", - 558, - "do_fold", - "No case clause matched", - { values: [list] } - ); - } - } -} - -export function fold(map, initial, fun) { - let _pipe = map; - let _pipe$1 = to_list(_pipe); - return do_fold(_pipe$1, initial, fun); -} - -function do_map_values(f, map) { - let f$1 = (map, k, v) => { - return insert(map, k, f(k, v)); - }; - let _pipe = map; - return fold(_pipe, new$(), f$1); -} - -export function map_values(map, fun) { - return do_map_values(fun, map); -} - -function do_filter(f, map) { - let insert$1 = (map, k, v) => { - let $ = f(k, v); - if ($) { - return insert(map, k, v); - } else { - return map; - } - }; - let _pipe = map; - return fold(_pipe, new$(), insert$1); -} - -export function filter(map, property) { - return do_filter(property, map); -} - -function do_keys_acc(loop$list, loop$acc) { - while (true) { - let list = loop$list; - let acc = loop$acc; - if (list.hasLength(0)) { - return reverse_and_concat(acc, toList([])); - } else if (list.atLeastLength(1)) { - let x = list.head; - let xs = list.tail; - loop$list = xs; - loop$acc = toList([x[0]], acc); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 276, - "do_keys_acc", - "No case clause matched", - { values: [list] } - ); - } - } -} - -function do_keys(map) { - let list_of_pairs = (() => { - let _pipe = map; - return to_list(_pipe); - })(); - return do_keys_acc(list_of_pairs, toList([])); -} - -export function keys(map) { - return do_keys(map); -} - -function reverse_and_concat(loop$remaining, loop$accumulator) { - while (true) { - let remaining = loop$remaining; - let accumulator = loop$accumulator; - if (remaining.hasLength(0)) { - return accumulator; - } else if (remaining.atLeastLength(1)) { - let item = remaining.head; - let rest = remaining.tail; - loop$remaining = rest; - loop$accumulator = toList([item], accumulator); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 269, - "reverse_and_concat", - "No case clause matched", - { values: [remaining] } - ); - } - } -} - -function do_values_acc(loop$list, loop$acc) { - while (true) { - let list = loop$list; - let acc = loop$acc; - if (list.hasLength(0)) { - return reverse_and_concat(acc, toList([])); - } else if (list.atLeastLength(1)) { - let x = list.head; - let xs = list.tail; - loop$list = xs; - loop$acc = toList([x[1]], acc); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 314, - "do_values_acc", - "No case clause matched", - { values: [list] } - ); - } - } -} - -function do_values(map) { - let list_of_pairs = (() => { - let _pipe = map; - return to_list(_pipe); - })(); - return do_values_acc(list_of_pairs, toList([])); -} - -export function values(map) { - return do_values(map); -} - -function insert_taken(loop$map, loop$desired_keys, loop$acc) { - while (true) { - let map = loop$map; - let desired_keys = loop$desired_keys; - let acc = loop$acc; - let insert$1 = (taken, key) => { - let $ = get(map, key); - if ($.isOk()) { - let value = $[0]; - return insert(taken, key, value); - } else { - return taken; - } - }; - if (desired_keys.hasLength(0)) { - return acc; - } else if (desired_keys.atLeastLength(1)) { - let x = desired_keys.head; - let xs = desired_keys.tail; - loop$map = map; - loop$desired_keys = xs; - loop$acc = insert$1(acc, x); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 411, - "insert_taken", - "No case clause matched", - { values: [desired_keys] } - ); - } - } -} - -function do_take(desired_keys, map) { - return insert_taken(map, desired_keys, new$()); -} - -export function take(map, desired_keys) { - return do_take(desired_keys, map); -} - -function fold_inserts(loop$new_entries, loop$map) { - while (true) { - let new_entries = loop$new_entries; - let map = loop$map; - if (new_entries.hasLength(0)) { - return map; - } else if (new_entries.atLeastLength(1)) { - let x = new_entries.head; - let xs = new_entries.tail; - loop$new_entries = xs; - loop$map = insert_pair(map, x); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 451, - "fold_inserts", - "No case clause matched", - { values: [new_entries] } - ); - } - } -} - -function do_merge(map, new_entries) { - let _pipe = new_entries; - let _pipe$1 = to_list(_pipe); - return fold_inserts(_pipe$1, map); -} - -export function merge(map, new_entries) { - return do_merge(map, new_entries); -} - -export function drop(loop$map, loop$disallowed_keys) { - while (true) { - let map = loop$map; - let disallowed_keys = loop$disallowed_keys; - if (disallowed_keys.hasLength(0)) { - return map; - } else if (disallowed_keys.atLeastLength(1)) { - let x = disallowed_keys.head; - let xs = disallowed_keys.tail; - loop$map = delete$(map, x); - loop$disallowed_keys = xs; - } else { - throw makeError( - "case_no_match", - "gleam/map", - 514, - "drop", - "No case clause matched", - { values: [disallowed_keys] } - ); - } - } -} diff --git a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gap/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gap/ebin/gap.app b/aoc2023/build/dev/erlang/gap/ebin/gap.app deleted file mode 100644 index ae37254..0000000 --- a/aoc2023/build/dev/erlang/gap/ebin/gap.app +++ /dev/null @@ -1,8 +0,0 @@ -{application, gap, [ - {vsn, "1.0.1"}, - {applications, [gleam_community_ansi, - gleam_stdlib]}, - {description, "A Gleam library for comparing strings/lists and producing a textual (styled) representation of the differences."}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gap/ebin/gap.beam b/aoc2023/build/dev/erlang/gap/ebin/gap.beam deleted file mode 100644 index e819167..0000000 Binary files a/aoc2023/build/dev/erlang/gap/ebin/gap.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/ebin/gap@comparison.beam b/aoc2023/build/dev/erlang/gap/ebin/gap@comparison.beam deleted file mode 100644 index 50227cb..0000000 Binary files a/aoc2023/build/dev/erlang/gap/ebin/gap@comparison.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/ebin/gap@myers.beam b/aoc2023/build/dev/erlang/gap/ebin/gap@myers.beam deleted file mode 100644 index 248a896..0000000 Binary files a/aoc2023/build/dev/erlang/gap/ebin/gap@myers.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/ebin/gap@styled_comparison.beam b/aoc2023/build/dev/erlang/gap/ebin/gap@styled_comparison.beam deleted file mode 100644 index 5d56885..0000000 Binary files a/aoc2023/build/dev/erlang/gap/ebin/gap@styled_comparison.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/ebin/gap@styling.beam b/aoc2023/build/dev/erlang/gap/ebin/gap@styling.beam deleted file mode 100644 index d2d0cc3..0000000 Binary files a/aoc2023/build/dev/erlang/gap/ebin/gap@styling.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gap/include/gap@comparison_ListComparison.hrl b/aoc2023/build/dev/erlang/gap/include/gap@comparison_ListComparison.hrl deleted file mode 100644 index 5e4b20d..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@comparison_ListComparison.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(list_comparison, { - first :: list(gap@comparison:match(list(any()))), - second :: list(gap@comparison:match(list(any()))) -}). diff --git a/aoc2023/build/dev/erlang/gap/include/gap@comparison_Match.hrl b/aoc2023/build/dev/erlang/gap/include/gap@comparison_Match.hrl deleted file mode 100644 index f1225dd..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@comparison_Match.hrl +++ /dev/null @@ -1 +0,0 @@ --record(match, {item :: any()}). diff --git a/aoc2023/build/dev/erlang/gap/include/gap@comparison_NoMatch.hrl b/aoc2023/build/dev/erlang/gap/include/gap@comparison_NoMatch.hrl deleted file mode 100644 index 742783b..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@comparison_NoMatch.hrl +++ /dev/null @@ -1 +0,0 @@ --record(no_match, {item :: any()}). diff --git a/aoc2023/build/dev/erlang/gap/include/gap@comparison_StringComparison.hrl b/aoc2023/build/dev/erlang/gap/include/gap@comparison_StringComparison.hrl deleted file mode 100644 index c0b1a75..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@comparison_StringComparison.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(string_comparison, { - first :: list(gap@comparison:match(list(binary()))), - second :: list(gap@comparison:match(list(binary()))) -}). diff --git a/aoc2023/build/dev/erlang/gap/include/gap@styled_comparison_StyledComparison.hrl b/aoc2023/build/dev/erlang/gap/include/gap@styled_comparison_StyledComparison.hrl deleted file mode 100644 index 0e7c64a..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@styled_comparison_StyledComparison.hrl +++ /dev/null @@ -1 +0,0 @@ --record(styled_comparison, {first :: binary(), second :: binary()}). diff --git a/aoc2023/build/dev/erlang/gap/include/gap@styling_All.hrl b/aoc2023/build/dev/erlang/gap/include/gap@styling_All.hrl deleted file mode 100644 index c11a9a6..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@styling_All.hrl +++ /dev/null @@ -1 +0,0 @@ --record(all, {all :: binary()}). diff --git a/aoc2023/build/dev/erlang/gap/include/gap@styling_Highlighters.hrl b/aoc2023/build/dev/erlang/gap/include/gap@styling_Highlighters.hrl deleted file mode 100644 index 6e073b3..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@styling_Highlighters.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(highlighters, { - first :: fun((binary()) -> binary()), - second :: fun((binary()) -> binary()), - matching :: fun((binary()) -> binary()) -}). diff --git a/aoc2023/build/dev/erlang/gap/include/gap@styling_Part.hrl b/aoc2023/build/dev/erlang/gap/include/gap@styling_Part.hrl deleted file mode 100644 index db45796..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@styling_Part.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(part, { - acc :: binary(), - part :: list(any()), - highlight :: fun((binary()) -> binary()) -}). diff --git a/aoc2023/build/dev/erlang/gap/include/gap@styling_Styling.hrl b/aoc2023/build/dev/erlang/gap/include/gap@styling_Styling.hrl deleted file mode 100644 index a7341c6..0000000 --- a/aoc2023/build/dev/erlang/gap/include/gap@styling_Styling.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(styling, { - comparison :: gap@comparison:comparison(any()), - serializer :: gleam@option:option(fun((gap@styling:part(any())) -> binary())), - highlight :: gleam@option:option(gap@styling:highlighters()) -}). diff --git a/aoc2023/build/dev/erlang/gleam.lock b/aoc2023/build/dev/erlang/gleam.lock deleted file mode 100644 index e69de29..0000000 diff --git a/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache b/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache deleted file mode 100644 index d77f2c9..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache_meta b/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache_meta deleted file mode 100644 index a01f4e8..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.erl b/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.erl deleted file mode 100644 index 8b7a4c9..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.erl +++ /dev/null @@ -1,263 +0,0 @@ --module(gleam_community@ansi). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([reset/1, bold/1, dim/1, italic/1, underline/1, inverse/1, hidden/1, strikethrough/1, black/1, red/1, green/1, yellow/1, blue/1, magenta/1, cyan/1, white/1, bright_black/1, grey/1, gray/1, bright_red/1, bright_green/1, bright_yellow/1, bright_blue/1, bright_magenta/1, bright_cyan/1, bright_white/1, hex/2, pink/1, colour/2, color/2, bg_black/1, bg_red/1, bg_green/1, bg_yellow/1, bg_blue/1, bg_magenta/1, bg_cyan/1, bg_white/1, bg_bright_black/1, bg_bright_red/1, bg_bright_green/1, bg_bright_yellow/1, bg_bright_blue/1, bg_bright_magenta/1, bg_bright_cyan/1, bg_bright_white/1, bg_hex/2, bg_pink/1, bg_colour/2, bg_color/2]). --export_type([code/0]). - --type code() :: {code, binary(), binary(), binary()}. - --spec code(list(integer()), integer()) -> code(). -code(Open, Close) -> - Close_str = gleam@int:to_string(Close), - Open_strs = gleam@list:map(Open, fun gleam@int:to_string/1), - {code, - <<<<<<""/utf8, "["/utf8>>/binary, - (gleam@string:join(Open_strs, <<";"/utf8>>))/binary>>/binary, - "m"/utf8>>, - <<<<<<""/utf8, "["/utf8>>/binary, Close_str/binary>>/binary, "m"/utf8>>, - <<<<<<""/utf8, "["/utf8>>/binary, Close_str/binary>>/binary, "m"/utf8>>}. - --spec run(binary(), code()) -> binary(). -run(Text, Code) -> - <<<<(erlang:element(2, Code))/binary, - (gleam@string:replace( - Text, - erlang:element(4, Code), - erlang:element(2, Code) - ))/binary>>/binary, - (erlang:element(3, Code))/binary>>. - --spec reset(binary()) -> binary(). -reset(Text) -> - run(Text, code([0], 0)). - --spec bold(binary()) -> binary(). -bold(Text) -> - run(Text, code([1], 22)). - --spec dim(binary()) -> binary(). -dim(Text) -> - run(Text, code([2], 22)). - --spec italic(binary()) -> binary(). -italic(Text) -> - run(Text, code([3], 23)). - --spec underline(binary()) -> binary(). -underline(Text) -> - run(Text, code([4], 24)). - --spec inverse(binary()) -> binary(). -inverse(Text) -> - run(Text, code([7], 27)). - --spec hidden(binary()) -> binary(). -hidden(Text) -> - run(Text, code([8], 28)). - --spec strikethrough(binary()) -> binary(). -strikethrough(Text) -> - run(Text, code([9], 29)). - --spec black(binary()) -> binary(). -black(Text) -> - run(Text, code([30], 39)). - --spec red(binary()) -> binary(). -red(Text) -> - run(Text, code([31], 39)). - --spec green(binary()) -> binary(). -green(Text) -> - run(Text, code([32], 39)). - --spec yellow(binary()) -> binary(). -yellow(Text) -> - run(Text, code([33], 39)). - --spec blue(binary()) -> binary(). -blue(Text) -> - run(Text, code([34], 39)). - --spec magenta(binary()) -> binary(). -magenta(Text) -> - run(Text, code([35], 39)). - --spec cyan(binary()) -> binary(). -cyan(Text) -> - run(Text, code([36], 39)). - --spec white(binary()) -> binary(). -white(Text) -> - run(Text, code([37], 39)). - --spec bright_black(binary()) -> binary(). -bright_black(Text) -> - run(Text, code([90], 39)). - --spec grey(binary()) -> binary(). -grey(Text) -> - bright_black(Text). - --spec gray(binary()) -> binary(). -gray(Text) -> - bright_black(Text). - --spec bright_red(binary()) -> binary(). -bright_red(Text) -> - run(Text, code([91], 39)). - --spec bright_green(binary()) -> binary(). -bright_green(Text) -> - run(Text, code([92], 39)). - --spec bright_yellow(binary()) -> binary(). -bright_yellow(Text) -> - run(Text, code([93], 39)). - --spec bright_blue(binary()) -> binary(). -bright_blue(Text) -> - run(Text, code([94], 39)). - --spec bright_magenta(binary()) -> binary(). -bright_magenta(Text) -> - run(Text, code([95], 39)). - --spec bright_cyan(binary()) -> binary(). -bright_cyan(Text) -> - run(Text, code([96], 39)). - --spec bright_white(binary()) -> binary(). -bright_white(Text) -> - run(Text, code([97], 39)). - --spec hex(binary(), integer()) -> binary(). -hex(Text, Colour) -> - Colour@1 = gleam@int:clamp(Colour, 16#0, 16#ffffff), - run( - Text, - code( - [38, - 2, - begin - _pipe = erlang:'bsr'(Colour@1, 16), - erlang:'band'(_pipe, 16#ff) - end, - begin - _pipe@1 = erlang:'bsr'(Colour@1, 8), - erlang:'band'(_pipe@1, 16#ff) - end, - erlang:'band'(Colour@1, 16#ff)], - 39 - ) - ). - --spec pink(binary()) -> binary(). -pink(Text) -> - hex(Text, 16#ffaff3). - --spec colour(binary(), gleam_community@colour:colour()) -> binary(). -colour(Text, Colour) -> - Hex_colour = gleam_community@colour:to_rgb_hex(Colour), - hex(Text, Hex_colour). - --spec color(binary(), gleam_community@colour:colour()) -> binary(). -color(Text, Color) -> - colour(Text, Color). - --spec bg_black(binary()) -> binary(). -bg_black(Text) -> - run(Text, code([40], 49)). - --spec bg_red(binary()) -> binary(). -bg_red(Text) -> - run(Text, code([41], 49)). - --spec bg_green(binary()) -> binary(). -bg_green(Text) -> - run(Text, code([42], 49)). - --spec bg_yellow(binary()) -> binary(). -bg_yellow(Text) -> - run(Text, code([43], 49)). - --spec bg_blue(binary()) -> binary(). -bg_blue(Text) -> - run(Text, code([44], 49)). - --spec bg_magenta(binary()) -> binary(). -bg_magenta(Text) -> - run(Text, code([45], 49)). - --spec bg_cyan(binary()) -> binary(). -bg_cyan(Text) -> - run(Text, code([46], 49)). - --spec bg_white(binary()) -> binary(). -bg_white(Text) -> - run(Text, code([47], 49)). - --spec bg_bright_black(binary()) -> binary(). -bg_bright_black(Text) -> - run(Text, code([100], 49)). - --spec bg_bright_red(binary()) -> binary(). -bg_bright_red(Text) -> - run(Text, code([101], 49)). - --spec bg_bright_green(binary()) -> binary(). -bg_bright_green(Text) -> - run(Text, code([102], 49)). - --spec bg_bright_yellow(binary()) -> binary(). -bg_bright_yellow(Text) -> - run(Text, code([103], 49)). - --spec bg_bright_blue(binary()) -> binary(). -bg_bright_blue(Text) -> - run(Text, code([104], 49)). - --spec bg_bright_magenta(binary()) -> binary(). -bg_bright_magenta(Text) -> - run(Text, code([105], 49)). - --spec bg_bright_cyan(binary()) -> binary(). -bg_bright_cyan(Text) -> - run(Text, code([106], 49)). - --spec bg_bright_white(binary()) -> binary(). -bg_bright_white(Text) -> - run(Text, code([107], 49)). - --spec bg_hex(binary(), integer()) -> binary(). -bg_hex(Text, Colour) -> - run( - Text, - code( - [48, - 2, - begin - _pipe = erlang:'bsr'(Colour, 16), - erlang:'band'(_pipe, 16#ff) - end, - begin - _pipe@1 = erlang:'bsr'(Colour, 8), - erlang:'band'(_pipe@1, 16#ff) - end, - erlang:'band'(Colour, 16#ff)], - 49 - ) - ). - --spec bg_pink(binary()) -> binary(). -bg_pink(Text) -> - bg_hex(Text, 16#ffaff3). - --spec bg_colour(binary(), gleam_community@colour:colour()) -> binary(). -bg_colour(Text, Colour) -> - Hex_colour = gleam_community@colour:to_rgb_hex(Colour), - bg_hex(Text, Hex_colour). - --spec bg_color(binary(), gleam_community@colour:colour()) -> binary(). -bg_color(Text, Colour) -> - bg_colour(Text, Colour). diff --git a/aoc2023/build/dev/erlang/gleam_community_ansi/ebin/gleam_community@ansi.beam b/aoc2023/build/dev/erlang/gleam_community_ansi/ebin/gleam_community@ansi.beam deleted file mode 100644 index f59ef96..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_ansi/ebin/gleam_community@ansi.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_ansi/ebin/gleam_community_ansi.app b/aoc2023/build/dev/erlang/gleam_community_ansi/ebin/gleam_community_ansi.app deleted file mode 100644 index 90e4d4a..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_ansi/ebin/gleam_community_ansi.app +++ /dev/null @@ -1,8 +0,0 @@ -{application, gleam_community_ansi, [ - {vsn, "1.2.0"}, - {applications, [gleam_community_colour, - gleam_stdlib]}, - {description, "ANSI colours, formatting, and control codes"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache b/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache deleted file mode 100644 index 7de2dd3..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache_meta b/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache_meta deleted file mode 100644 index 3584f7e..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.erl b/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.erl deleted file mode 100644 index ceaaaaa..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.erl +++ /dev/null @@ -1,513 +0,0 @@ --module(gleam_community@colour). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_rgb255/3, from_rgb/3, from_rgba/4, from_hsla/4, from_hsl/3, from_rgb_hex/1, from_rgb_hex_string/1, from_rgba_hex/1, from_rgba_hex_string/1, to_rgba/1, to_hsla/1, to_css_rgba_string/1, to_rgba_hex/1, to_rgba_hex_string/1, to_rgb_hex/1, to_rgb_hex_string/1]). --export_type([colour/0]). - --opaque colour() :: {rgba, float(), float(), float(), float()} | - {hsla, float(), float(), float(), float()}. - --spec valid_colour_value(float()) -> {ok, float()} | {error, nil}. -valid_colour_value(C) -> - case (C > 1.0) orelse (C < +0.0) of - true -> - {error, nil}; - - false -> - {ok, C} - end. - --spec hue_to_rgb(float(), float(), float()) -> float(). -hue_to_rgb(Hue, M1, M2) -> - H = case Hue of - _ when Hue < +0.0 -> - Hue + 1.0; - - _ when Hue > 1.0 -> - Hue - 1.0; - - _ -> - Hue - end, - H_t_6 = H * 6.0, - H_t_2 = H * 2.0, - H_t_3 = H * 3.0, - case H of - _ when H_t_6 < 1.0 -> - M1 + (((M2 - M1) * H) * 6.0); - - _ when H_t_2 < 1.0 -> - M2; - - _ when H_t_3 < 2.0 -> - M1 + (((M2 - M1) * ((2.0 / 3.0) - H)) * 6.0); - - _ -> - M1 - end. - --spec hex_string_to_int(binary()) -> {ok, integer()} | {error, nil}. -hex_string_to_int(Hex_string) -> - Hex = case Hex_string of - <<"#"/utf8, Hex_number/binary>> -> - Hex_number; - - <<"0x"/utf8, Hex_number@1/binary>> -> - Hex_number@1; - - _ -> - Hex_string - end, - _pipe = Hex, - _pipe@1 = gleam@string:lowercase(_pipe), - _pipe@2 = gleam@string:to_graphemes(_pipe@1), - _pipe@3 = gleam@list:reverse(_pipe@2), - gleam@list:index_fold( - _pipe@3, - {ok, 0}, - fun(Total, Char, Index) -> case Total of - {error, nil} -> - {error, nil}; - - {ok, V} -> - gleam@result:then(case Char of - <<"a"/utf8>> -> - {ok, 10}; - - <<"b"/utf8>> -> - {ok, 11}; - - <<"c"/utf8>> -> - {ok, 12}; - - <<"d"/utf8>> -> - {ok, 13}; - - <<"e"/utf8>> -> - {ok, 14}; - - <<"f"/utf8>> -> - {ok, 15}; - - _ -> - gleam@int:parse(Char) - end, fun(Num) -> - gleam@result:then( - gleam@int:power(16, gleam@int:to_float(Index)), - fun(Base) -> - {ok, - V + gleam@float:round( - gleam@int:to_float(Num) * Base - )} - end - ) - end) - end end - ). - --spec hsla_to_rgba(float(), float(), float(), float()) -> {float(), - float(), - float(), - float()}. -hsla_to_rgba(H, S, L, A) -> - M2 = case L =< 0.5 of - true -> - L * (S + 1.0); - - false -> - (L + S) - (L * S) - end, - M1 = (L * 2.0) - M2, - R = hue_to_rgb(H + (1.0 / 3.0), M1, M2), - G = hue_to_rgb(H, M1, M2), - B = hue_to_rgb(H - (1.0 / 3.0), M1, M2), - {R, G, B, A}. - --spec rgba_to_hsla(float(), float(), float(), float()) -> {float(), - float(), - float(), - float()}. -rgba_to_hsla(R, G, B, A) -> - Min_colour = gleam@float:min(R, gleam@float:min(G, B)), - Max_colour = gleam@float:max(R, gleam@float:max(G, B)), - H1 = case true of - _ when Max_colour =:= R -> - gleam@float:divide(G - B, Max_colour - Min_colour); - - _ when Max_colour =:= G -> - _pipe = gleam@float:divide(B - R, Max_colour - Min_colour), - gleam@result:then(_pipe, fun(D) -> {ok, 2.0 + D} end); - - _ -> - _pipe@1 = gleam@float:divide(R - G, Max_colour - Min_colour), - gleam@result:then(_pipe@1, fun(D@1) -> {ok, 4.0 + D@1} end) - end, - H2 = case H1 of - {ok, V} -> - {ok, V * (1.0 / 6.0)}; - - _ -> - H1 - end, - H3 = case H2 of - {ok, V@1} when V@1 < +0.0 -> - V@1 + 1.0; - - {ok, V@2} -> - V@2; - - _ -> - +0.0 - end, - L = (Min_colour + Max_colour) / 2.0, - S = case true of - _ when Min_colour =:= Max_colour -> - +0.0; - - _ when L < 0.5 -> - case (Max_colour + Min_colour) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> (Max_colour - Min_colour) / Gleam@denominator - end; - - _ -> - case ((2.0 - Max_colour) - Min_colour) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@1 -> (Max_colour - Min_colour) / Gleam@denominator@1 - end - end, - {H3, S, L, A}. - --spec from_rgb255(integer(), integer(), integer()) -> {ok, colour()} | - {error, nil}. -from_rgb255(Red, Green, Blue) -> - gleam@result:then( - begin - _pipe = Red, - _pipe@1 = gleam@int:to_float(_pipe), - _pipe@2 = gleam@float:divide(_pipe@1, 255.0), - gleam@result:then(_pipe@2, fun valid_colour_value/1) - end, - fun(R) -> - gleam@result:then( - begin - _pipe@3 = Green, - _pipe@4 = gleam@int:to_float(_pipe@3), - _pipe@5 = gleam@float:divide(_pipe@4, 255.0), - gleam@result:then(_pipe@5, fun valid_colour_value/1) - end, - fun(G) -> - gleam@result:then( - begin - _pipe@6 = Blue, - _pipe@7 = gleam@int:to_float(_pipe@6), - _pipe@8 = gleam@float:divide(_pipe@7, 255.0), - gleam@result:then(_pipe@8, fun valid_colour_value/1) - end, - fun(B) -> {ok, {rgba, R, G, B, 1.0}} end - ) - end - ) - end - ). - --spec from_rgb(float(), float(), float()) -> {ok, colour()} | {error, nil}. -from_rgb(Red, Green, Blue) -> - gleam@result:then( - valid_colour_value(Red), - fun(R) -> - gleam@result:then( - valid_colour_value(Green), - fun(G) -> - gleam@result:then( - valid_colour_value(Blue), - fun(B) -> {ok, {rgba, R, G, B, 1.0}} end - ) - end - ) - end - ). - --spec from_rgba(float(), float(), float(), float()) -> {ok, colour()} | - {error, nil}. -from_rgba(Red, Green, Blue, Alpha) -> - gleam@result:then( - valid_colour_value(Red), - fun(R) -> - gleam@result:then( - valid_colour_value(Green), - fun(G) -> - gleam@result:then( - valid_colour_value(Blue), - fun(B) -> - gleam@result:then( - valid_colour_value(Alpha), - fun(A) -> {ok, {rgba, R, G, B, A}} end - ) - end - ) - end - ) - end - ). - --spec from_hsla(float(), float(), float(), float()) -> {ok, colour()} | - {error, nil}. -from_hsla(Hue, Saturation, Lightness, Alpha) -> - gleam@result:then( - valid_colour_value(Hue), - fun(H) -> - gleam@result:then( - valid_colour_value(Saturation), - fun(S) -> - gleam@result:then( - valid_colour_value(Lightness), - fun(L) -> - gleam@result:then( - valid_colour_value(Alpha), - fun(A) -> {ok, {hsla, H, S, L, A}} end - ) - end - ) - end - ) - end - ). - --spec from_hsl(float(), float(), float()) -> {ok, colour()} | {error, nil}. -from_hsl(Hue, Saturation, Lightness) -> - from_hsla(Hue, Saturation, Lightness, 1.0). - --spec from_rgb_hex(integer()) -> {ok, colour()} | {error, nil}. -from_rgb_hex(Hex) -> - case (Hex > 16#ffffff) orelse (Hex < 0) of - true -> - {error, nil}; - - false -> - R = begin - _pipe = erlang:'bsr'(Hex, 16), - erlang:'band'(_pipe, 16#ff) - end, - G = begin - _pipe@1 = erlang:'bsr'(Hex, 8), - erlang:'band'(_pipe@1, 16#ff) - end, - B = erlang:'band'(Hex, 16#ff), - from_rgb255(R, G, B) - end. - --spec from_rgb_hex_string(binary()) -> {ok, colour()} | {error, nil}. -from_rgb_hex_string(Hex_string) -> - gleam@result:then( - hex_string_to_int(Hex_string), - fun(Hex_int) -> from_rgb_hex(Hex_int) end - ). - --spec from_rgba_hex(integer()) -> {ok, colour()} | {error, nil}. -from_rgba_hex(Hex) -> - case (Hex > 16#ffffffff) orelse (Hex < 0) of - true -> - {error, nil}; - - false -> - _assert_subject = begin - _pipe = erlang:'bsr'(Hex, 24), - _pipe@1 = erlang:'band'(_pipe, 16#ff), - _pipe@2 = gleam@int:to_float(_pipe@1), - gleam@float:divide(_pipe@2, 255.0) - end, - {ok, R} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/colour"/utf8>>, - function => <<"from_rgba_hex"/utf8>>, - line => 588}) - end, - _assert_subject@1 = begin - _pipe@3 = erlang:'bsr'(Hex, 16), - _pipe@4 = erlang:'band'(_pipe@3, 16#ff), - _pipe@5 = gleam@int:to_float(_pipe@4), - gleam@float:divide(_pipe@5, 255.0) - end, - {ok, G} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/colour"/utf8>>, - function => <<"from_rgba_hex"/utf8>>, - line => 594}) - end, - _assert_subject@2 = begin - _pipe@6 = erlang:'bsr'(Hex, 8), - _pipe@7 = erlang:'band'(_pipe@6, 16#ff), - _pipe@8 = gleam@int:to_float(_pipe@7), - gleam@float:divide(_pipe@8, 255.0) - end, - {ok, B} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"gleam_community/colour"/utf8>>, - function => <<"from_rgba_hex"/utf8>>, - line => 600}) - end, - _assert_subject@3 = begin - _pipe@9 = erlang:'band'(Hex, 16#ff), - _pipe@10 = gleam@int:to_float(_pipe@9), - gleam@float:divide(_pipe@10, 255.0) - end, - {ok, A} = case _assert_subject@3 of - {ok, _} -> _assert_subject@3; - _assert_fail@3 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@3, - module => <<"gleam_community/colour"/utf8>>, - function => <<"from_rgba_hex"/utf8>>, - line => 606}) - end, - from_rgba(R, G, B, A) - end. - --spec from_rgba_hex_string(binary()) -> {ok, colour()} | {error, nil}. -from_rgba_hex_string(Hex_string) -> - gleam@result:then( - hex_string_to_int(Hex_string), - fun(Hex_int) -> from_rgba_hex(Hex_int) end - ). - --spec to_rgba(colour()) -> {float(), float(), float(), float()}. -to_rgba(Colour) -> - case Colour of - {rgba, R, G, B, A} -> - {R, G, B, A}; - - {hsla, H, S, L, A@1} -> - hsla_to_rgba(H, S, L, A@1) - end. - --spec to_hsla(colour()) -> {float(), float(), float(), float()}. -to_hsla(Colour) -> - case Colour of - {hsla, H, S, L, A} -> - {H, S, L, A}; - - {rgba, R, G, B, A@1} -> - rgba_to_hsla(R, G, B, A@1) - end. - --spec to_css_rgba_string(colour()) -> binary(). -to_css_rgba_string(Colour) -> - {R, G, B, A} = to_rgba(Colour), - Percent = fun(X) -> - _assert_subject = begin - _pipe = X, - _pipe@1 = gleam@float:multiply(_pipe, 10000.0), - _pipe@2 = gleam@float:round(_pipe@1), - _pipe@3 = gleam@int:to_float(_pipe@2), - gleam@float:divide(_pipe@3, 100.0) - end, - {ok, P} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/colour"/utf8>>, - function => <<"to_css_rgba_string"/utf8>>, - line => 704}) - end, - P - end, - Round_to = fun(X@1) -> - _assert_subject@1 = begin - _pipe@4 = X@1, - _pipe@5 = gleam@float:multiply(_pipe@4, 1000.0), - _pipe@6 = gleam@float:round(_pipe@5), - _pipe@7 = gleam@int:to_float(_pipe@6), - gleam@float:divide(_pipe@7, 1000.0) - end, - {ok, R@1} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/colour"/utf8>>, - function => <<"to_css_rgba_string"/utf8>>, - line => 716}) - end, - R@1 - end, - gleam@string:join( - [<<"rgba("/utf8>>, - <<(gleam@float:to_string(Percent(R)))/binary, "%,"/utf8>>, - <<(gleam@float:to_string(Percent(G)))/binary, "%,"/utf8>>, - <<(gleam@float:to_string(Percent(B)))/binary, "%,"/utf8>>, - gleam@float:to_string(Round_to(A)), - <<")"/utf8>>], - <<""/utf8>> - ). - --spec to_rgba_hex(colour()) -> integer(). -to_rgba_hex(Colour) -> - {R, G, B, A} = to_rgba(Colour), - Red = begin - _pipe = R * 255.0, - _pipe@1 = gleam@float:round(_pipe), - erlang:'bsl'(_pipe@1, 24) - end, - Green = begin - _pipe@2 = G * 255.0, - _pipe@3 = gleam@float:round(_pipe@2), - erlang:'bsl'(_pipe@3, 16) - end, - Blue = begin - _pipe@4 = B * 255.0, - _pipe@5 = gleam@float:round(_pipe@4), - erlang:'bsl'(_pipe@5, 8) - end, - Alpha = begin - _pipe@6 = A * 255.0, - gleam@float:round(_pipe@6) - end, - ((Red + Green) + Blue) + Alpha. - --spec to_rgba_hex_string(colour()) -> binary(). -to_rgba_hex_string(Colour) -> - _pipe = to_rgba_hex(Colour), - gleam@int:to_base16(_pipe). - --spec to_rgb_hex(colour()) -> integer(). -to_rgb_hex(Colour) -> - {R, G, B, _} = to_rgba(Colour), - Red = begin - _pipe = R * 255.0, - _pipe@1 = gleam@float:round(_pipe), - erlang:'bsl'(_pipe@1, 16) - end, - Green = begin - _pipe@2 = G * 255.0, - _pipe@3 = gleam@float:round(_pipe@2), - erlang:'bsl'(_pipe@3, 8) - end, - Blue = begin - _pipe@4 = B * 255.0, - gleam@float:round(_pipe@4) - end, - (Red + Green) + Blue. - --spec to_rgb_hex_string(colour()) -> binary(). -to_rgb_hex_string(Colour) -> - _pipe = to_rgb_hex(Colour), - gleam@int:to_base16(_pipe). diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache b/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache deleted file mode 100644 index 0154b0b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache_meta b/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache_meta deleted file mode 100644 index 0c78df4..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.erl b/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.erl deleted file mode 100644 index 28ed9fd..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.erl +++ /dev/null @@ -1,75 +0,0 @@ --module(gleam_community@colour@accessibility). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([luminance/1, contrast_ratio/2, maximum_contrast/2]). - --spec intensity(float()) -> float(). -intensity(Colour_value) -> - case true of - _ when Colour_value =< 0.03928 -> - Colour_value / 12.92; - - _ -> - _assert_subject = gleam@float:power( - (Colour_value + 0.055) / 1.055, - 2.4 - ), - {ok, I} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/colour/accessibility"/utf8>>, - function => <<"intensity"/utf8>>, - line => 62}) - end, - I - end. - --spec luminance(gleam_community@colour:colour()) -> float(). -luminance(Colour) -> - {R, G, B, _} = gleam_community@colour:to_rgba(Colour), - R_intensity = intensity(R), - G_intensity = intensity(G), - B_intensity = intensity(B), - ((0.2126 * R_intensity) + (0.7152 * G_intensity)) + (0.0722 * B_intensity). - --spec contrast_ratio( - gleam_community@colour:colour(), - gleam_community@colour:colour() -) -> float(). -contrast_ratio(Colour_a, Colour_b) -> - Luminance_a = luminance(Colour_a) + 0.05, - Luminance_b = luminance(Colour_b) + 0.05, - case Luminance_a > Luminance_b of - true -> - case Luminance_b of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> Luminance_a / Gleam@denominator - end; - - false -> - case Luminance_a of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@1 -> Luminance_b / Gleam@denominator@1 - end - end. - --spec maximum_contrast( - gleam_community@colour:colour(), - list(gleam_community@colour:colour()) -) -> {ok, gleam_community@colour:colour()} | {error, nil}. -maximum_contrast(Base, Colours) -> - _pipe = Colours, - _pipe@1 = gleam@list:sort( - _pipe, - fun(Colour_a, Colour_b) -> - Contrast_a = contrast_ratio(Base, Colour_a), - Contrast_b = contrast_ratio(Base, Colour_b), - gleam@float:compare(Contrast_b, Contrast_a) - end - ), - gleam@list:first(_pipe@1). diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community@colour.beam b/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community@colour.beam deleted file mode 100644 index e25d425..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community@colour.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community@colour@accessibility.beam b/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community@colour@accessibility.beam deleted file mode 100644 index e599de6..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community@colour@accessibility.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community_colour.app b/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community_colour.app deleted file mode 100644 index 51800d3..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_colour/ebin/gleam_community_colour.app +++ /dev/null @@ -1,7 +0,0 @@ -{application, gleam_community_colour, [ - {vsn, "1.2.0"}, - {applications, [gleam_stdlib]}, - {description, "Colour types, conversions, and other utilities"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/include/gleam_community@colour_Hsla.hrl b/aoc2023/build/dev/erlang/gleam_community_colour/include/gleam_community@colour_Hsla.hrl deleted file mode 100644 index 06116df..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_colour/include/gleam_community@colour_Hsla.hrl +++ /dev/null @@ -1 +0,0 @@ --record(hsla, {h :: float(), s :: float(), l :: float(), a :: float()}). diff --git a/aoc2023/build/dev/erlang/gleam_community_colour/include/gleam_community@colour_Rgba.hrl b/aoc2023/build/dev/erlang/gleam_community_colour/include/gleam_community@colour_Rgba.hrl deleted file mode 100644 index fff139e..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_colour/include/gleam_community@colour_Rgba.hrl +++ /dev/null @@ -1 +0,0 @@ --record(rgba, {r :: float(), g :: float(), b :: float(), a :: float()}). diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache deleted file mode 100644 index c8def84..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache_meta deleted file mode 100644 index 23d4726..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.erl deleted file mode 100644 index 9cdaccb..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.erl +++ /dev/null @@ -1,172 +0,0 @@ --module(gleam_community@maths@arithmetics). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([gcd/2, lcm/2, divisors/1, proper_divisors/1, float_sum/1, int_sum/1, float_product/1, int_product/1, float_cumulative_sum/1, int_cumulative_sum/1, float_cumumlative_product/1, int_cumulative_product/1]). - --spec do_gcd(integer(), integer()) -> integer(). -do_gcd(X, Y) -> - case X =:= 0 of - true -> - Y; - - false -> - _assert_subject = gleam@int:modulo(Y, X), - {ok, Z} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/arithmetics"/utf8>>, - function => <<"do_gcd"/utf8>>, - line => 93}) - end, - do_gcd(Z, X) - end. - --spec gcd(integer(), integer()) -> integer(). -gcd(X, Y) -> - Absx = gleam_community@maths@piecewise:int_absolute_value(X), - Absy = gleam_community@maths@piecewise:int_absolute_value(Y), - do_gcd(Absx, Absy). - --spec lcm(integer(), integer()) -> integer(). -lcm(X, Y) -> - Absx = gleam_community@maths@piecewise:int_absolute_value(X), - Absy = gleam_community@maths@piecewise:int_absolute_value(Y), - case do_gcd(Absx, Absy) of - 0 -> 0; - Gleam@denominator -> Absx * Absy div Gleam@denominator - end. - --spec find_divisors(integer()) -> list(integer()). -find_divisors(N) -> - Nabs = gleam_community@maths@piecewise:float_absolute_value( - gleam_community@maths@conversion:int_to_float(N) - ), - _assert_subject = gleam_community@maths@elementary:square_root(Nabs), - {ok, Sqrt_result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/arithmetics"/utf8>>, - function => <<"find_divisors"/utf8>>, - line => 176}) - end, - Max = gleam_community@maths@conversion:float_to_int(Sqrt_result) + 1, - _pipe = gleam@list:range(2, Max), - _pipe@1 = gleam@list:fold(_pipe, [1, N], fun(Acc, I) -> case (case I of - 0 -> 0; - Gleam@denominator -> N rem Gleam@denominator - end) =:= 0 of - true -> - [I, case I of - 0 -> 0; - Gleam@denominator@1 -> N div Gleam@denominator@1 - end | Acc]; - - false -> - Acc - end end), - _pipe@2 = gleam@list:unique(_pipe@1), - gleam@list:sort(_pipe@2, fun gleam@int:compare/2). - --spec divisors(integer()) -> list(integer()). -divisors(N) -> - find_divisors(N). - --spec proper_divisors(integer()) -> list(integer()). -proper_divisors(N) -> - Divisors = find_divisors(N), - _pipe = Divisors, - gleam@list:take(_pipe, gleam@list:length(Divisors) - 1). - --spec float_sum(list(float())) -> float(). -float_sum(Arr) -> - case Arr of - [] -> - +0.0; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, +0.0, fun(Acc, A) -> A + Acc end) - end. - --spec int_sum(list(integer())) -> integer(). -int_sum(Arr) -> - case Arr of - [] -> - 0; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, 0, fun(Acc, A) -> A + Acc end) - end. - --spec float_product(list(float())) -> float(). -float_product(Arr) -> - case Arr of - [] -> - 1.0; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, 1.0, fun(Acc, A) -> A * Acc end) - end. - --spec int_product(list(integer())) -> integer(). -int_product(Arr) -> - case Arr of - [] -> - 1; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, 1, fun(Acc, A) -> A * Acc end) - end. - --spec float_cumulative_sum(list(float())) -> list(float()). -float_cumulative_sum(Arr) -> - case Arr of - [] -> - []; - - _ -> - _pipe = Arr, - gleam@list:scan(_pipe, +0.0, fun(Acc, A) -> A + Acc end) - end. - --spec int_cumulative_sum(list(integer())) -> list(integer()). -int_cumulative_sum(Arr) -> - case Arr of - [] -> - []; - - _ -> - _pipe = Arr, - gleam@list:scan(_pipe, 0, fun(Acc, A) -> A + Acc end) - end. - --spec float_cumumlative_product(list(float())) -> list(float()). -float_cumumlative_product(Arr) -> - case Arr of - [] -> - []; - - _ -> - _pipe = Arr, - gleam@list:scan(_pipe, 1.0, fun(Acc, A) -> A * Acc end) - end. - --spec int_cumulative_product(list(integer())) -> list(integer()). -int_cumulative_product(Arr) -> - case Arr of - [] -> - []; - - _ -> - _pipe = Arr, - gleam@list:scan(_pipe, 1, fun(Acc, A) -> A * Acc end) - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache deleted file mode 100644 index 3fffb45..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache_meta deleted file mode 100644 index f8262ee..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.erl deleted file mode 100644 index d600fbe..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.erl +++ /dev/null @@ -1,218 +0,0 @@ --module(gleam_community@maths@combinatorics). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([combination/2, factorial/1, permutation/2, list_combination/2, list_permutation/1, cartesian_product/2]). - --spec combination(integer(), integer()) -> {ok, integer()} | {error, binary()}. -combination(N, K) -> - case N < 0 of - true -> - _pipe = <<"Invalid input argument: n < 0. Valid input is n > 0."/utf8>>, - {error, _pipe}; - - false -> - case (K < 0) orelse (K > N) of - true -> - _pipe@1 = 0, - {ok, _pipe@1}; - - false -> - case (K =:= 0) orelse (K =:= N) of - true -> - _pipe@2 = 1, - {ok, _pipe@2}; - - false -> - Min = case K < (N - K) of - true -> - K; - - false -> - N - K - end, - _pipe@3 = gleam@list:range(1, Min), - _pipe@4 = gleam@list:fold( - _pipe@3, - 1, - fun(Acc, X) -> case X of - 0 -> 0; - Gleam@denominator -> Acc * ((N + 1) - X) - div Gleam@denominator - end end - ), - {ok, _pipe@4} - end - end - end. - --spec factorial(integer()) -> {ok, integer()} | {error, binary()}. -factorial(N) -> - case N < 0 of - true -> - _pipe = <<"Invalid input argument: n < 0. Valid input is n > 0."/utf8>>, - {error, _pipe}; - - false -> - case N of - 0 -> - _pipe@1 = 1, - {ok, _pipe@1}; - - 1 -> - _pipe@2 = 1, - {ok, _pipe@2}; - - _ -> - _pipe@3 = gleam@list:range(1, N), - _pipe@4 = gleam@list:fold( - _pipe@3, - 1, - fun(Acc, X) -> Acc * X end - ), - {ok, _pipe@4} - end - end. - --spec permutation(integer(), integer()) -> {ok, integer()} | {error, binary()}. -permutation(N, K) -> - case N < 0 of - true -> - _pipe = <<"Invalid input argument: n < 0. Valid input is n > 0."/utf8>>, - {error, _pipe}; - - false -> - case (K < 0) orelse (K > N) of - true -> - _pipe@1 = 0, - {ok, _pipe@1}; - - false -> - case K =:= N of - true -> - _pipe@2 = 1, - {ok, _pipe@2}; - - false -> - _assert_subject = factorial(N), - {ok, V1} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/combinatorics"/utf8>>, - function => <<"permutation"/utf8>>, - line => 241}) - end, - _assert_subject@1 = factorial(N - K), - {ok, V2} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/combinatorics"/utf8>>, - function => <<"permutation"/utf8>>, - line => 242}) - end, - _pipe@3 = case V2 of - 0 -> 0; - Gleam@denominator -> V1 div Gleam@denominator - end, - {ok, _pipe@3} - end - end - end. - --spec do_list_combination(list(ORJ), integer(), list(ORJ)) -> list(list(ORJ)). -do_list_combination(Arr, K, Prefix) -> - case K of - 0 -> - [gleam@list:reverse(Prefix)]; - - _ -> - case Arr of - [] -> - []; - - [X | Xs] -> - With_x = do_list_combination(Xs, K - 1, [X | Prefix]), - Without_x = do_list_combination(Xs, K, Prefix), - gleam@list:append(With_x, Without_x) - end - end. - --spec list_combination(list(ORD), integer()) -> {ok, list(list(ORD))} | - {error, binary()}. -list_combination(Arr, K) -> - case K < 0 of - true -> - _pipe = <<"Invalid input argument: k < 0. Valid input is k > 0."/utf8>>, - {error, _pipe}; - - false -> - case K > gleam@list:length(Arr) of - true -> - _pipe@1 = <<"Invalid input argument: k > length(arr). Valid input is 0 < k <= length(arr)."/utf8>>, - {error, _pipe@1}; - - false -> - _pipe@2 = do_list_combination(Arr, K, []), - {ok, _pipe@2} - end - end. - --spec list_permutation(list(ORO)) -> list(list(ORO)). -list_permutation(Arr) -> - case Arr of - [] -> - [[]]; - - _ -> - gleam@list:flat_map( - Arr, - fun(X) -> - _assert_subject = gleam@list:pop(Arr, fun(Y) -> X =:= Y end), - {ok, {_, Remaining}} = case _assert_subject of - {ok, {_, _}} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/combinatorics"/utf8>>, - function => <<"list_permutation"/utf8>>, - line => 373}) - end, - gleam@list:map( - list_permutation(Remaining), - fun(Perm) -> [X | Perm] end - ) - end - ) - end. - --spec cartesian_product(list(ORS), list(ORS)) -> list({ORS, ORS}). -cartesian_product(Xarr, Yarr) -> - Xset = begin - _pipe = Xarr, - gleam@set:from_list(_pipe) - end, - Yset = begin - _pipe@1 = Yarr, - gleam@set:from_list(_pipe@1) - end, - _pipe@2 = Xset, - _pipe@3 = gleam@set:fold( - _pipe@2, - gleam@set:new(), - fun(Accumulator0, Member0) -> - gleam@set:fold( - Yset, - Accumulator0, - fun(Accumulator1, Member1) -> - gleam@set:insert(Accumulator1, {Member0, Member1}) - end - ) - end - ), - gleam@set:to_list(_pipe@3). diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache deleted file mode 100644 index a95ea4b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache_meta deleted file mode 100644 index 374a6fb..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.erl deleted file mode 100644 index 4923523..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.erl +++ /dev/null @@ -1,24 +0,0 @@ --module(gleam_community@maths@conversion). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([int_to_float/1, float_to_int/1, degrees_to_radians/1, radians_to_degrees/1]). - --spec int_to_float(integer()) -> float(). -int_to_float(X) -> - gleam@int:to_float(X). - --spec float_to_int(float()) -> integer(). -float_to_int(X) -> - erlang:trunc(X). - --spec degrees_to_radians(float()) -> float(). -degrees_to_radians(X) -> - (X * math:pi()) / 180.0. - --spec radians_to_degrees(float()) -> float(). -radians_to_degrees(X) -> - case math:pi() of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> X * 180.0 / Gleam@denominator - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache deleted file mode 100644 index 8b9e7ca..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache_meta deleted file mode 100644 index 8a3590f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.erl deleted file mode 100644 index 15d6abc..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.erl +++ /dev/null @@ -1,286 +0,0 @@ --module(gleam_community@maths@elementary). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([acos/1, acosh/1, asin/1, asinh/1, atan/1, atan2/2, atanh/1, cos/1, cosh/1, sin/1, sinh/1, tan/1, tanh/1, exponential/1, natural_logarithm/1, logarithm_2/1, logarithm_10/1, logarithm/2, power/2, square_root/1, cube_root/1, nth_root/2, pi/0, tau/0, e/0]). - --spec acos(float()) -> {ok, float()} | {error, binary()}. -acos(X) -> - case (X >= -1.0) andalso (X =< 1.0) of - true -> - _pipe = math:acos(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x >= -1 or x <= 1. Valid input is -1. <= x <= 1."/utf8>>, - {error, _pipe@1} - end. - --spec acosh(float()) -> {ok, float()} | {error, binary()}. -acosh(X) -> - case X >= 1.0 of - true -> - _pipe = math:acosh(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x < 1. Valid input is x >= 1."/utf8>>, - {error, _pipe@1} - end. - --spec asin(float()) -> {ok, float()} | {error, binary()}. -asin(X) -> - case (X >= -1.0) andalso (X =< 1.0) of - true -> - _pipe = math:asin(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x >= -1 or x <= 1. Valid input is -1. <= x <= 1."/utf8>>, - {error, _pipe@1} - end. - --spec asinh(float()) -> float(). -asinh(X) -> - math:asinh(X). - --spec atan(float()) -> float(). -atan(X) -> - math:atan(X). - --spec atan2(float(), float()) -> float(). -atan2(Y, X) -> - math:atan2(Y, X). - --spec atanh(float()) -> {ok, float()} | {error, binary()}. -atanh(X) -> - case (X > -1.0) andalso (X < 1.0) of - true -> - _pipe = math:atanh(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x > -1 or x < 1. Valid input is -1. < x < 1."/utf8>>, - {error, _pipe@1} - end. - --spec cos(float()) -> float(). -cos(X) -> - math:cos(X). - --spec cosh(float()) -> float(). -cosh(X) -> - math:cosh(X). - --spec sin(float()) -> float(). -sin(X) -> - math:sin(X). - --spec sinh(float()) -> float(). -sinh(X) -> - math:sinh(X). - --spec tan(float()) -> float(). -tan(X) -> - math:tan(X). - --spec tanh(float()) -> float(). -tanh(X) -> - math:tanh(X). - --spec exponential(float()) -> float(). -exponential(X) -> - math:exp(X). - --spec natural_logarithm(float()) -> {ok, float()} | {error, binary()}. -natural_logarithm(X) -> - case X > +0.0 of - true -> - _pipe = math:log(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x <= 0. Valid input is x > 0."/utf8>>, - {error, _pipe@1} - end. - --spec logarithm_2(float()) -> {ok, float()} | {error, binary()}. -logarithm_2(X) -> - case X > +0.0 of - true -> - _pipe = math:log2(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x <= 0. Valid input is x > 0."/utf8>>, - {error, _pipe@1} - end. - --spec logarithm_10(float()) -> {ok, float()} | {error, binary()}. -logarithm_10(X) -> - case X > +0.0 of - true -> - _pipe = math:log10(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x <= 0. Valid input is x > 0."/utf8>>, - {error, _pipe@1} - end. - --spec logarithm(float(), gleam@option:option(float())) -> {ok, float()} | - {error, binary()}. -logarithm(X, Base) -> - case X > +0.0 of - true -> - case Base of - {some, A} -> - case (A > +0.0) andalso (A /= 1.0) of - true -> - _assert_subject = logarithm_10(X), - {ok, Numerator} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"logarithm"/utf8>>, - line => 820}) - end, - _assert_subject@1 = logarithm_10(A), - {ok, Denominator} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"logarithm"/utf8>>, - line => 821}) - end, - _pipe = case Denominator of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> Numerator / Gleam@denominator - end, - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: base <= 0 or base == 1. Valid input is base > 0 and base != 1."/utf8>>, - {error, _pipe@1} - end; - - _ -> - _pipe@2 = <<"Invalid input argument: base <= 0 or base == 1. Valid input is base > 0 and base != 1."/utf8>>, - {error, _pipe@2} - end; - - _ -> - _pipe@3 = <<"Invalid input argument: x <= 0. Valid input is x > 0."/utf8>>, - {error, _pipe@3} - end. - --spec power(float(), float()) -> {ok, float()} | {error, binary()}. -power(X, Y) -> - Fractional = (math:ceil(Y) - Y) > +0.0, - case ((X < +0.0) andalso Fractional) orelse ((X =:= +0.0) andalso (Y < +0.0)) of - true -> - _pipe = <<"Invalid input argument: x < 0 and y is fractional or x = 0 and y < 0."/utf8>>, - {error, _pipe}; - - false -> - _pipe@1 = math:pow(X, Y), - {ok, _pipe@1} - end. - --spec square_root(float()) -> {ok, float()} | {error, binary()}. -square_root(X) -> - case X < +0.0 of - true -> - _pipe = <<"Invalid input argument: x < 0."/utf8>>, - {error, _pipe}; - - false -> - _assert_subject = power(X, 1.0 / 2.0), - {ok, Result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"square_root"/utf8>>, - line => 1066}) - end, - _pipe@1 = Result, - {ok, _pipe@1} - end. - --spec cube_root(float()) -> {ok, float()} | {error, binary()}. -cube_root(X) -> - case X < +0.0 of - true -> - _pipe = <<"Invalid input argument: x < 0."/utf8>>, - {error, _pipe}; - - false -> - _assert_subject = power(X, 1.0 / 3.0), - {ok, Result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"cube_root"/utf8>>, - line => 1118}) - end, - _pipe@1 = Result, - {ok, _pipe@1} - end. - --spec nth_root(float(), integer()) -> {ok, float()} | {error, binary()}. -nth_root(X, N) -> - case X < +0.0 of - true -> - _pipe = <<"Invalid input argument: x < 0. Valid input is x > 0"/utf8>>, - {error, _pipe}; - - false -> - case N >= 1 of - true -> - _assert_subject = power(X, case gleam@int:to_float(N) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> 1.0 / Gleam@denominator - end), - {ok, Result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"nth_root"/utf8>>, - line => 1175}) - end, - _pipe@1 = Result, - {ok, _pipe@1}; - - false -> - _pipe@2 = <<"Invalid input argument: n < 1. Valid input is n >= 2."/utf8>>, - {error, _pipe@2} - end - end. - --spec pi() -> float(). -pi() -> - math:pi(). - --spec tau() -> float(). -tau() -> - 2.0 * pi(). - --spec e() -> float(). -e() -> - exponential(1.0). diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache deleted file mode 100644 index fc137ef..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache_meta deleted file mode 100644 index ad6a7f1..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.erl deleted file mode 100644 index 9b0c432..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.erl +++ /dev/null @@ -1,281 +0,0 @@ --module(gleam_community@maths@metrics). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([norm/2, minkowski_distance/3, manhatten_distance/2, euclidean_distance/2, mean/1, median/1, variance/2, standard_deviation/2]). - --spec norm(list(float()), float()) -> float(). -norm(Arr, P) -> - case Arr of - [] -> - +0.0; - - _ -> - Agg = begin - _pipe = Arr, - gleam@list:fold( - _pipe, - +0.0, - fun(Acc, A) -> - _assert_subject = gleam_community@maths@elementary:power( - gleam_community@maths@piecewise:float_absolute_value( - A - ), - P - ), - {ok, Result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"norm"/utf8>>, - line => 101}) - end, - Result + Acc - end - ) - end, - _assert_subject@1 = gleam_community@maths@elementary:power( - Agg, - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> 1.0 / Gleam@denominator - end - ), - {ok, Result@1} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"norm"/utf8>>, - line => 106}) - end, - Result@1 - end. - --spec minkowski_distance(list(float()), list(float()), float()) -> {ok, float()} | - {error, binary()}. -minkowski_distance(Xarr, Yarr, P) -> - Xlen = gleam@list:length(Xarr), - Ylen = gleam@list:length(Yarr), - case Xlen =:= Ylen of - false -> - _pipe = <<"Invalid input argument: length(xarr) != length(yarr). Valid input is when length(xarr) == length(yarr)."/utf8>>, - {error, _pipe}; - - true -> - case P < 1.0 of - true -> - _pipe@1 = <<"Invalid input argument: p < 1. Valid input is p >= 1."/utf8>>, - {error, _pipe@1}; - - false -> - _pipe@2 = gleam@list:zip(Xarr, Yarr), - _pipe@3 = gleam@list:map( - _pipe@2, - fun(Tuple) -> - gleam@pair:first(Tuple) - gleam@pair:second(Tuple) - end - ), - _pipe@4 = norm(_pipe@3, P), - {ok, _pipe@4} - end - end. - --spec manhatten_distance(list(float()), list(float())) -> {ok, float()} | - {error, binary()}. -manhatten_distance(Xarr, Yarr) -> - minkowski_distance(Xarr, Yarr, 1.0). - --spec euclidean_distance(list(float()), list(float())) -> {ok, float()} | - {error, binary()}. -euclidean_distance(Xarr, Yarr) -> - minkowski_distance(Xarr, Yarr, 2.0). - --spec mean(list(float())) -> {ok, float()} | {error, binary()}. -mean(Arr) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _pipe@1 = Arr, - _pipe@2 = gleam_community@maths@arithmetics:float_sum(_pipe@1), - _pipe@3 = (fun(A) -> - case gleam_community@maths@conversion:int_to_float( - gleam@list:length(Arr) - ) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> A / Gleam@denominator - end - end)(_pipe@2), - {ok, _pipe@3} - end. - --spec median(list(float())) -> {ok, float()} | {error, binary()}. -median(Arr) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - Count = gleam@list:length(Arr), - Mid = gleam@list:length(Arr) div 2, - Sorted = gleam@list:sort(Arr, fun gleam@float:compare/2), - case gleam_community@maths@predicates:is_odd(Count) of - true -> - _assert_subject = gleam@list:at(Sorted, Mid), - {ok, Val0} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"median"/utf8>>, - line => 402}) - end, - _pipe@1 = Val0, - {ok, _pipe@1}; - - false -> - _assert_subject@1 = gleam@list:at(Sorted, Mid - 1), - {ok, Val0@1} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"median"/utf8>>, - line => 409}) - end, - _assert_subject@2 = gleam@list:at(Sorted, Mid), - {ok, Val1} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"median"/utf8>>, - line => 410}) - end, - _pipe@2 = [Val0@1, Val1], - mean(_pipe@2) - end - end. - --spec variance(list(float()), integer()) -> {ok, float()} | {error, binary()}. -variance(Arr, Ddof) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - case Ddof < 0 of - true -> - _pipe@1 = <<"Invalid input argument: ddof < 0. Valid input is ddof >= 0."/utf8>>, - {error, _pipe@1}; - - false -> - _assert_subject = mean(Arr), - {ok, Mean} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"variance"/utf8>>, - line => 475}) - end, - _pipe@2 = Arr, - _pipe@3 = gleam@list:map( - _pipe@2, - fun(A) -> - _assert_subject@1 = gleam_community@maths@elementary:power( - A - Mean, - 2.0 - ), - {ok, Result} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"variance"/utf8>>, - line => 478}) - end, - Result - end - ), - _pipe@4 = gleam_community@maths@arithmetics:float_sum( - _pipe@3 - ), - _pipe@5 = (fun(A@1) -> - case (gleam_community@maths@conversion:int_to_float( - gleam@list:length(Arr) - ) - - gleam_community@maths@conversion:int_to_float(Ddof)) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> A@1 / Gleam@denominator - end - end)(_pipe@4), - {ok, _pipe@5} - end - end. - --spec standard_deviation(list(float()), integer()) -> {ok, float()} | - {error, binary()}. -standard_deviation(Arr, Ddof) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - case Ddof < 0 of - true -> - _pipe@1 = <<"Invalid input argument: ddof < 0. Valid input is ddof >= 0."/utf8>>, - {error, _pipe@1}; - - false -> - _assert_subject = variance(Arr, Ddof), - {ok, Variance} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"standard_deviation"/utf8>>, - line => 551}) - end, - _assert_subject@1 = gleam_community@maths@elementary:square_root( - Variance - ), - {ok, Stdev} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"standard_deviation"/utf8>>, - line => 554}) - end, - _pipe@2 = Stdev, - {ok, _pipe@2} - end - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache deleted file mode 100644 index e056dbf..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache_meta deleted file mode 100644 index 21c97d4..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.erl deleted file mode 100644 index 85fc290..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.erl +++ /dev/null @@ -1,563 +0,0 @@ --module(gleam_community@maths@piecewise). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([float_absolute_value/1, int_absolute_value/1, float_absolute_difference/2, int_absolute_difference/2, float_sign/1, round/3, ceiling/2, floor/2, truncate/2, int_sign/1, float_flip_sign/1, float_copy_sign/2, int_flip_sign/1, int_copy_sign/2, minimum/3, maximum/3, minmax/3, list_minimum/2, list_maximum/2, arg_minimum/2, arg_maximum/2, extrema/2]). --export_type([rounding_mode/0]). - --type rounding_mode() :: round_nearest | - round_ties_away | - round_ties_up | - round_to_zero | - round_down | - round_up. - --spec truncate_float(float()) -> float(). -truncate_float(X) -> - erlang:trunc(X). - --spec round_to_zero(float(), float()) -> float(). -round_to_zero(P, X) -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> truncate_float(X * P) / Gleam@denominator - end. - --spec round_down(float(), float()) -> float(). -round_down(P, X) -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> math:floor(X * P) / Gleam@denominator - end. - --spec round_up(float(), float()) -> float(). -round_up(P, X) -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> math:ceil(X * P) / Gleam@denominator - end. - --spec float_absolute_value(float()) -> float(). -float_absolute_value(X) -> - case X > +0.0 of - true -> - X; - - false -> - -1.0 * X - end. - --spec int_absolute_value(integer()) -> integer(). -int_absolute_value(X) -> - case X > 0 of - true -> - X; - - false -> - -1 * X - end. - --spec float_absolute_difference(float(), float()) -> float(). -float_absolute_difference(A, B) -> - _pipe = A - B, - float_absolute_value(_pipe). - --spec int_absolute_difference(integer(), integer()) -> integer(). -int_absolute_difference(A, B) -> - _pipe = A - B, - int_absolute_value(_pipe). - --spec do_float_sign(float()) -> float(). -do_float_sign(X) -> - case X < +0.0 of - true -> - -1.0; - - false -> - case X =:= +0.0 of - true -> - +0.0; - - false -> - 1.0 - end - end. - --spec float_sign(float()) -> float(). -float_sign(X) -> - do_float_sign(X). - --spec round_to_nearest(float(), float()) -> float(). -round_to_nearest(P, X) -> - Xabs = float_absolute_value(X) * P, - Xabs_truncated = truncate_float(Xabs), - Remainder = Xabs - Xabs_truncated, - case Remainder of - _ when Remainder > 0.5 -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> float_sign(X) * truncate_float(Xabs + 1.0) - / Gleam@denominator - end; - - _ when Remainder =:= 0.5 -> - _assert_subject = gleam@int:modulo( - gleam_community@maths@conversion:float_to_int(Xabs), - 2 - ), - {ok, Is_even} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"round_to_nearest"/utf8>>, - line => 423}) - end, - case Is_even =:= 0 of - true -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@1 -> float_sign(X) * Xabs_truncated / Gleam@denominator@1 - end; - - false -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@2 -> float_sign(X) * truncate_float( - Xabs + 1.0 - ) - / Gleam@denominator@2 - end - end; - - _ -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@3 -> float_sign(X) * Xabs_truncated / Gleam@denominator@3 - end - end. - --spec round_ties_away(float(), float()) -> float(). -round_ties_away(P, X) -> - Xabs = float_absolute_value(X) * P, - Remainder = Xabs - truncate_float(Xabs), - case Remainder of - _ when Remainder >= 0.5 -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> float_sign(X) * truncate_float(Xabs + 1.0) - / Gleam@denominator - end; - - _ -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@1 -> float_sign(X) * truncate_float(Xabs) / Gleam@denominator@1 - end - end. - --spec round_ties_up(float(), float()) -> float(). -round_ties_up(P, X) -> - Xabs = float_absolute_value(X) * P, - Xabs_truncated = truncate_float(Xabs), - Remainder = Xabs - Xabs_truncated, - case Remainder of - _ when (Remainder >= 0.5) andalso (X >= +0.0) -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> float_sign(X) * truncate_float(Xabs + 1.0) - / Gleam@denominator - end; - - _ -> - case P of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@1 -> float_sign(X) * Xabs_truncated / Gleam@denominator@1 - end - end. - --spec do_round(float(), float(), gleam@option:option(rounding_mode())) -> {ok, - float()} | - {error, binary()}. -do_round(P, X, Mode) -> - case Mode of - {some, round_nearest} -> - _pipe = round_to_nearest(P, X), - {ok, _pipe}; - - {some, round_ties_away} -> - _pipe@1 = round_ties_away(P, X), - {ok, _pipe@1}; - - {some, round_ties_up} -> - _pipe@2 = round_ties_up(P, X), - {ok, _pipe@2}; - - {some, round_to_zero} -> - _pipe@3 = round_to_zero(P, X), - {ok, _pipe@3}; - - {some, round_down} -> - _pipe@4 = round_down(P, X), - {ok, _pipe@4}; - - {some, round_up} -> - _pipe@5 = round_up(P, X), - {ok, _pipe@5}; - - none -> - _pipe@6 = round_to_nearest(P, X), - {ok, _pipe@6} - end. - --spec round( - float(), - gleam@option:option(integer()), - gleam@option:option(rounding_mode()) -) -> {ok, float()} | {error, binary()}. -round(X, Digits, Mode) -> - case Digits of - {some, A} -> - _assert_subject = gleam_community@maths@elementary:power( - 10.0, - gleam_community@maths@conversion:int_to_float(A) - ), - {ok, P} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"round"/utf8>>, - line => 366}) - end, - do_round(P, X, Mode); - - none -> - do_round(1.0, X, Mode) - end. - --spec ceiling(float(), gleam@option:option(integer())) -> {ok, float()} | - {error, binary()}. -ceiling(X, Digits) -> - round(X, Digits, {some, round_up}). - --spec floor(float(), gleam@option:option(integer())) -> {ok, float()} | - {error, binary()}. -floor(X, Digits) -> - round(X, Digits, {some, round_down}). - --spec truncate(float(), gleam@option:option(integer())) -> {ok, float()} | - {error, binary()}. -truncate(X, Digits) -> - round(X, Digits, {some, round_to_zero}). - --spec do_int_sign(integer()) -> integer(). -do_int_sign(X) -> - case X < 0 of - true -> - -1; - - false -> - case X =:= 0 of - true -> - 0; - - false -> - 1 - end - end. - --spec int_sign(integer()) -> integer(). -int_sign(X) -> - do_int_sign(X). - --spec float_flip_sign(float()) -> float(). -float_flip_sign(X) -> - -1.0 * X. - --spec float_copy_sign(float(), float()) -> float(). -float_copy_sign(X, Y) -> - case float_sign(X) =:= float_sign(Y) of - true -> - X; - - false -> - float_flip_sign(X) - end. - --spec int_flip_sign(integer()) -> integer(). -int_flip_sign(X) -> - -1 * X. - --spec int_copy_sign(integer(), integer()) -> integer(). -int_copy_sign(X, Y) -> - case int_sign(X) =:= int_sign(Y) of - true -> - X; - - false -> - int_flip_sign(X) - end. - --spec minimum(PCO, PCO, fun((PCO, PCO) -> gleam@order:order())) -> PCO. -minimum(X, Y, Compare) -> - case Compare(X, Y) of - lt -> - X; - - eq -> - X; - - gt -> - Y - end. - --spec maximum(PCP, PCP, fun((PCP, PCP) -> gleam@order:order())) -> PCP. -maximum(X, Y, Compare) -> - case Compare(X, Y) of - lt -> - Y; - - eq -> - Y; - - gt -> - X - end. - --spec minmax(PCQ, PCQ, fun((PCQ, PCQ) -> gleam@order:order())) -> {PCQ, PCQ}. -minmax(X, Y, Compare) -> - {minimum(X, Y, Compare), maximum(X, Y, Compare)}. - --spec list_minimum(list(PCR), fun((PCR, PCR) -> gleam@order:order())) -> {ok, - PCR} | - {error, binary()}. -list_minimum(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = gleam@list:at(Arr, 0), - {ok, Val0} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"list_minimum"/utf8>>, - line => 945}) - end, - _pipe@1 = Arr, - _pipe@2 = gleam@list:fold( - _pipe@1, - Val0, - fun(Acc, Element) -> case Compare(Element, Acc) of - lt -> - Element; - - _ -> - Acc - end end - ), - {ok, _pipe@2} - end. - --spec list_maximum(list(PCV), fun((PCV, PCV) -> gleam@order:order())) -> {ok, - PCV} | - {error, binary()}. -list_maximum(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = gleam@list:at(Arr, 0), - {ok, Val0} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"list_maximum"/utf8>>, - line => 1004}) - end, - _pipe@1 = Arr, - _pipe@2 = gleam@list:fold( - _pipe@1, - Val0, - fun(Acc, Element) -> case Compare(Acc, Element) of - lt -> - Element; - - _ -> - Acc - end end - ), - {ok, _pipe@2} - end. - --spec arg_minimum(list(PCZ), fun((PCZ, PCZ) -> gleam@order:order())) -> {ok, - list(integer())} | - {error, binary()}. -arg_minimum(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = begin - _pipe@1 = Arr, - list_minimum(_pipe@1, Compare) - end, - {ok, Min} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"arg_minimum"/utf8>>, - line => 1069}) - end, - _pipe@2 = Arr, - _pipe@3 = gleam@list:index_map( - _pipe@2, - fun(Index, Element) -> case Compare(Element, Min) of - eq -> - Index; - - _ -> - -1 - end end - ), - _pipe@4 = gleam@list:filter(_pipe@3, fun(Index@1) -> case Index@1 of - -1 -> - false; - - _ -> - true - end end), - {ok, _pipe@4} - end. - --spec arg_maximum(list(PDE), fun((PDE, PDE) -> gleam@order:order())) -> {ok, - list(integer())} | - {error, binary()}. -arg_maximum(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = begin - _pipe@1 = Arr, - list_maximum(_pipe@1, Compare) - end, - {ok, Max} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"arg_maximum"/utf8>>, - line => 1139}) - end, - _pipe@2 = Arr, - _pipe@3 = gleam@list:index_map( - _pipe@2, - fun(Index, Element) -> case Compare(Element, Max) of - eq -> - Index; - - _ -> - -1 - end end - ), - _pipe@4 = gleam@list:filter(_pipe@3, fun(Index@1) -> case Index@1 of - -1 -> - false; - - _ -> - true - end end), - {ok, _pipe@4} - end. - --spec extrema(list(PDJ), fun((PDJ, PDJ) -> gleam@order:order())) -> {ok, - {PDJ, PDJ}} | - {error, binary()}. -extrema(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = gleam@list:at(Arr, 0), - {ok, Val_max} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"extrema"/utf8>>, - line => 1209}) - end, - _assert_subject@1 = gleam@list:at(Arr, 0), - {ok, Val_min} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"extrema"/utf8>>, - line => 1210}) - end, - _pipe@1 = Arr, - _pipe@2 = gleam@list:fold( - _pipe@1, - {Val_min, Val_max}, - fun(Acc, Element) -> - First = gleam@pair:first(Acc), - Second = gleam@pair:second(Acc), - case {Compare(Element, First), Compare(Second, Element)} of - {lt, lt} -> - {Element, Element}; - - {lt, _} -> - {Element, Second}; - - {_, lt} -> - {First, Element}; - - {_, _} -> - {First, Second} - end - end - ), - {ok, _pipe@2} - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache deleted file mode 100644 index e9d8d6b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache_meta deleted file mode 100644 index 549041c..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.erl deleted file mode 100644 index d991d89..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.erl +++ /dev/null @@ -1,118 +0,0 @@ --module(gleam_community@maths@predicates). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([is_close/4, all_close/4, is_fractional/1, is_power/2, is_perfect/1, is_even/1, is_odd/1]). - --spec float_absolute_value(float()) -> float(). -float_absolute_value(X) -> - case X > +0.0 of - true -> - X; - - false -> - -1.0 * X - end. - --spec float_absolute_difference(float(), float()) -> float(). -float_absolute_difference(A, B) -> - _pipe = A - B, - float_absolute_value(_pipe). - --spec is_close(float(), float(), float(), float()) -> boolean(). -is_close(A, B, Rtol, Atol) -> - X = float_absolute_difference(A, B), - Y = Atol + (Rtol * float_absolute_value(B)), - case X =< Y of - true -> - true; - - false -> - false - end. - --spec all_close(list(float()), list(float()), float(), float()) -> {ok, - list(boolean())} | - {error, binary()}. -all_close(Xarr, Yarr, Rtol, Atol) -> - Xlen = gleam@list:length(Xarr), - Ylen = gleam@list:length(Yarr), - case Xlen =:= Ylen of - false -> - _pipe = <<"Invalid input argument: length(xarr) != length(yarr). Valid input is when length(xarr) == length(yarr)."/utf8>>, - {error, _pipe}; - - true -> - _pipe@1 = gleam@list:zip(Xarr, Yarr), - _pipe@2 = gleam@list:map( - _pipe@1, - fun(Z) -> - is_close( - gleam@pair:first(Z), - gleam@pair:second(Z), - Rtol, - Atol - ) - end - ), - {ok, _pipe@2} - end. - --spec is_fractional(float()) -> boolean(). -is_fractional(X) -> - (math:ceil(X) - X) > +0.0. - --spec is_power(integer(), integer()) -> boolean(). -is_power(X, Y) -> - _assert_subject = gleam_community@maths@elementary:logarithm( - gleam@int:to_float(X), - {some, gleam@int:to_float(Y)} - ), - {ok, Value} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/predicates"/utf8>>, - function => <<"is_power"/utf8>>, - line => 241}) - end, - _assert_subject@1 = gleam_community@maths@piecewise:truncate( - Value, - {some, 0} - ), - {ok, Truncated} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/predicates"/utf8>>, - function => <<"is_power"/utf8>>, - line => 243}) - end, - Rem = Value - Truncated, - Rem =:= +0.0. - --spec do_sum(list(integer())) -> integer(). -do_sum(Arr) -> - case Arr of - [] -> - 0; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, 0, fun(Acc, A) -> A + Acc end) - end. - --spec is_perfect(integer()) -> boolean(). -is_perfect(N) -> - do_sum(gleam_community@maths@arithmetics:proper_divisors(N)) =:= N. - --spec is_even(integer()) -> boolean(). -is_even(X) -> - (X rem 2) =:= 0. - --spec is_odd(integer()) -> boolean(). -is_odd(X) -> - (X rem 2) /= 0. diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache deleted file mode 100644 index 5542bd9..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache_meta deleted file mode 100644 index 3a025a2..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.erl deleted file mode 100644 index a080286..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.erl +++ /dev/null @@ -1,202 +0,0 @@ --module(gleam_community@maths@sequences). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([arange/3, linear_space/4, logarithmic_space/5, geometric_space/4]). - --spec arange(float(), float(), float()) -> list(float()). -arange(Start, Stop, Step) -> - case ((Start >= Stop) andalso (Step > +0.0)) orelse ((Start =< Stop) andalso (Step - < +0.0)) of - true -> - []; - - false -> - Direction = case Start =< Stop of - true -> - 1.0; - - false -> - -1.0 - end, - Step_abs = gleam_community@maths@piecewise:float_absolute_value( - Step - ), - Num = case Step_abs of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> gleam_community@maths@piecewise:float_absolute_value( - Start - Stop - ) - / Gleam@denominator - end, - _pipe = gleam@list:range( - 0, - gleam_community@maths@conversion:float_to_int(Num) - 1 - ), - gleam@list:map( - _pipe, - fun(I) -> - Start + ((gleam_community@maths@conversion:int_to_float(I) * Step_abs) - * Direction) - end - ) - end. - --spec linear_space(float(), float(), integer(), boolean()) -> {ok, - list(float())} | - {error, binary()}. -linear_space(Start, Stop, Num, Endpoint) -> - Direction = case Start =< Stop of - true -> - 1.0; - - false -> - -1.0 - end, - case Num > 0 of - true -> - case Endpoint of - true -> - Increment = case gleam_community@maths@conversion:int_to_float( - Num - 1 - ) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> gleam_community@maths@piecewise:float_absolute_value( - Start - Stop - ) - / Gleam@denominator - end, - _pipe = gleam@list:range(0, Num - 1), - _pipe@1 = gleam@list:map( - _pipe, - fun(I) -> - Start + ((gleam_community@maths@conversion:int_to_float( - I - ) - * Increment) - * Direction) - end - ), - {ok, _pipe@1}; - - false -> - Increment@1 = case gleam_community@maths@conversion:int_to_float( - Num - ) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@1 -> gleam_community@maths@piecewise:float_absolute_value( - Start - Stop - ) - / Gleam@denominator@1 - end, - _pipe@2 = gleam@list:range(0, Num - 1), - _pipe@3 = gleam@list:map( - _pipe@2, - fun(I@1) -> - Start + ((gleam_community@maths@conversion:int_to_float( - I@1 - ) - * Increment@1) - * Direction) - end - ), - {ok, _pipe@3} - end; - - false -> - _pipe@4 = <<"Invalid input: num < 0. Valid input is num > 0."/utf8>>, - {error, _pipe@4} - end. - --spec logarithmic_space(float(), float(), integer(), boolean(), float()) -> {ok, - list(float())} | - {error, binary()}. -logarithmic_space(Start, Stop, Num, Endpoint, Base) -> - case Num > 0 of - true -> - _assert_subject = linear_space(Start, Stop, Num, Endpoint), - {ok, Linspace} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/sequences"/utf8>>, - function => <<"logarithmic_space"/utf8>>, - line => 221}) - end, - _pipe = Linspace, - _pipe@1 = gleam@list:map( - _pipe, - fun(I) -> - _assert_subject@1 = gleam_community@maths@elementary:power( - Base, - I - ), - {ok, Result} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/sequences"/utf8>>, - function => <<"logarithmic_space"/utf8>>, - line => 224}) - end, - Result - end - ), - {ok, _pipe@1}; - - false -> - _pipe@2 = <<"Invalid input: num < 0. Valid input is num > 0."/utf8>>, - {error, _pipe@2} - end. - --spec geometric_space(float(), float(), integer(), boolean()) -> {ok, - list(float())} | - {error, binary()}. -geometric_space(Start, Stop, Num, Endpoint) -> - case (Start =:= +0.0) orelse (Stop =:= +0.0) of - true -> - _pipe = <<""/utf8>>, - {error, _pipe}; - - false -> - case Num > 0 of - true -> - _assert_subject = gleam_community@maths@elementary:logarithm_10( - Start - ), - {ok, Log_start} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/sequences"/utf8>>, - function => <<"geometric_space"/utf8>>, - line => 293}) - end, - _assert_subject@1 = gleam_community@maths@elementary:logarithm_10( - Stop - ), - {ok, Log_stop} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/sequences"/utf8>>, - function => <<"geometric_space"/utf8>>, - line => 294}) - end, - logarithmic_space(Log_start, Log_stop, Num, Endpoint, 10.0); - - false -> - _pipe@1 = <<"Invalid input: num < 0. Valid input is num > 0."/utf8>>, - {error, _pipe@1} - end - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache deleted file mode 100644 index 7093e86..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache_meta b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache_meta deleted file mode 100644 index 3c21994..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.erl b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.erl deleted file mode 100644 index ff0307f..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.erl +++ /dev/null @@ -1,163 +0,0 @@ --module(gleam_community@maths@special). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([erf/1, gamma/1, beta/2, incomplete_gamma/2]). - --spec erf(float()) -> float(). -erf(X) -> - _assert_subject = [0.254829592, - -0.284496736, - 1.421413741, - -1.453152027, - 1.061405429], - [A1, A2, A3, A4, A5] = case _assert_subject of - [_, _, _, _, _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/special"/utf8>>, - function => <<"erf"/utf8>>, - line => 79}) - end, - P = 0.3275911, - Sign = gleam_community@maths@piecewise:float_sign(X), - X@1 = gleam_community@maths@piecewise:float_absolute_value(X), - T = case (1.0 + (P * X@1)) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> 1.0 / Gleam@denominator - end, - Y = 1.0 - ((((((((((A5 * T) + A4) * T) + A3) * T) + A2) * T) + A1) * T) * gleam_community@maths@elementary:exponential( - (-1.0 * X@1) * X@1 - )), - Sign * Y. - --spec gamma_lanczos(float()) -> float(). -gamma_lanczos(X) -> - case X < 0.5 of - true -> - case (gleam_community@maths@elementary:sin( - gleam_community@maths@elementary:pi() * X - ) - * gamma_lanczos(1.0 - X)) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> gleam_community@maths@elementary:pi() / Gleam@denominator - end; - - false -> - Z = X - 1.0, - X@1 = gleam@list:index_fold( - [0.99999999999980993, - 676.5203681218851, - -1259.1392167224028, - 771.32342877765313, - -176.61502916214059, - 12.507343278686905, - -0.13857109526572012, - 0.0000099843695780195716, - 0.00000015056327351493116], - +0.0, - fun(Acc, V, Index) -> case Index > 0 of - true -> - Acc + (case (Z + gleam_community@maths@conversion:int_to_float( - Index - )) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator@1 -> V / Gleam@denominator@1 - end); - - false -> - V - end end - ), - T = (Z + 7.0) + 0.5, - _assert_subject = gleam_community@maths@elementary:power( - 2.0 * gleam_community@maths@elementary:pi(), - 0.5 - ), - {ok, V1} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/special"/utf8>>, - function => <<"gamma_lanczos"/utf8>>, - line => 146}) - end, - _assert_subject@1 = gleam_community@maths@elementary:power( - T, - Z + 0.5 - ), - {ok, V2} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/special"/utf8>>, - function => <<"gamma_lanczos"/utf8>>, - line => 147}) - end, - ((V1 * V2) * gleam_community@maths@elementary:exponential(-1.0 * T)) - * X@1 - end. - --spec gamma(float()) -> float(). -gamma(X) -> - gamma_lanczos(X). - --spec beta(float(), float()) -> float(). -beta(X, Y) -> - case gamma(X + Y) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> gamma(X) * gamma(Y) / Gleam@denominator - end. - --spec incomplete_gamma_sum(float(), float(), float(), float(), float()) -> float(). -incomplete_gamma_sum(A, X, T, S, N) -> - case T of - +0.0 -> - S; - - _ -> - Ns = S + T, - Nt = T * (case (A + N) of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> X / Gleam@denominator - end), - incomplete_gamma_sum(A, X, Nt, Ns, N + 1.0) - end. - --spec incomplete_gamma(float(), float()) -> {ok, float()} | {error, binary()}. -incomplete_gamma(A, X) -> - case (A > +0.0) andalso (X >= +0.0) of - true -> - _assert_subject = gleam_community@maths@elementary:power(X, A), - {ok, V} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/special"/utf8>>, - function => <<"incomplete_gamma"/utf8>>, - line => 173}) - end, - _pipe = (V * gleam_community@maths@elementary:exponential(-1.0 * X)) - * incomplete_gamma_sum(A, X, case A of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> 1.0 / Gleam@denominator - end, +0.0, 1.0), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invlaid input argument: a <= 0 or x < 0. Valid input is a > 0 and x >= 0."/utf8>>, - {error, _pipe@1} - end. diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/maths.mjs b/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/maths.mjs deleted file mode 100644 index 5c5ab31..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/_gleam_artefacts/maths.mjs +++ /dev/null @@ -1,95 +0,0 @@ -export function sin(float) { - return Math.sin(float) -} - -export function pi() { - return Math.PI -} - -export function acos(float) { - return Math.acos(float) -} - -export function acosh(float) { - return Math.acosh(float) -} - -export function asin(float) { - return Math.asin(float) -} - -export function asinh(float) { - return Math.asinh(float) -} - -export function atan(float) { - return Math.atan(float) -} - -export function tan(float) { - return Math.tan(float) -} - -export function atan2(floaty, floatx) { - return Math.atan2(floaty, floatx) -} - -export function atanh(float) { - return Math.atanh(float) -} - -export function cos(float) { - return Math.cos(float) -} - -export function cosh(float) { - return Math.cosh(float) -} - -export function exponential(float) { - return Math.exp(float) -} - -export function ceiling(float) { - return Math.ceil(float) -} - -export function floor(float) { - return Math.floor(float) -} - -export function power(base, exponent) { - return Math.pow(base, exponent) -} - -export function logarithm(float) { - return Math.log(float) -} - -export function logarithm_10(float) { - return Math.log10(float) -} - -export function logarithm_2(float) { - return Math.log2(float) -} - -export function sinh(float) { - return Math.sinh(float) -} - -export function tanh(float) { - return Math.tanh(float) -} - -export function sign(float) { - return Math.sign(float) -} - -export function truncate(float) { - return Math.trunc(float) -} - -export function to_int(float) { - return Math.trunc(float) -} diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@arithmetics.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@arithmetics.beam deleted file mode 100644 index 42d317f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@arithmetics.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@combinatorics.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@combinatorics.beam deleted file mode 100644 index 5b0dcc5..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@combinatorics.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@conversion.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@conversion.beam deleted file mode 100644 index 8e6afb8..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@conversion.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@elementary.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@elementary.beam deleted file mode 100644 index a54c3a0..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@elementary.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@metrics.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@metrics.beam deleted file mode 100644 index f55fdc0..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@metrics.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@piecewise.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@piecewise.beam deleted file mode 100644 index ca3947b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@piecewise.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@predicates.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@predicates.beam deleted file mode 100644 index 8a5ecf4..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@predicates.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@sequences.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@sequences.beam deleted file mode 100644 index d9defae..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@sequences.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@special.beam b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@special.beam deleted file mode 100644 index edfa64a..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community@maths@special.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community_maths.app b/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community_maths.app deleted file mode 100644 index b24eaf7..0000000 --- a/aoc2023/build/dev/erlang/gleam_community_maths/ebin/gleam_community_maths.app +++ /dev/null @@ -1,7 +0,0 @@ -{application, gleam_community_maths, [ - {vsn, "1.0.1"}, - {applications, [gleam_stdlib]}, - {description, "A basic maths library"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache deleted file mode 100644 index d44adcc..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache_meta b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache_meta deleted file mode 100644 index 12933b2..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.erl deleted file mode 100644 index 2889892..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.erl +++ /dev/null @@ -1,90 +0,0 @@ --module(gleam@erlang). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([format/1, term_to_binary/1, get_line/1, system_time/1, erlang_timestamp/0, rescue/1, binary_to_term/1, unsafe_binary_to_term/1, start_arguments/0, ensure_all_started/1, make_reference/0, priv_directory/1]). --export_type([safe/0, get_line_error/0, time_unit/0, crash/0, ensure_all_started_error/0, reference_/0]). - --type safe() :: safe. - --type get_line_error() :: eof | no_data. - --type time_unit() :: second | millisecond | microsecond | nanosecond. - --type crash() :: {exited, gleam@dynamic:dynamic_()} | - {thrown, gleam@dynamic:dynamic_()} | - {errored, gleam@dynamic:dynamic_()}. - --type ensure_all_started_error() :: {unknown_application, - gleam@erlang@atom:atom_()} | - {application_failed_to_start, - gleam@erlang@atom:atom_(), - gleam@dynamic:dynamic_()}. - --type reference_() :: any(). - --spec format(any()) -> binary(). -format(Term) -> - unicode:characters_to_binary(io_lib:format(<<"~p"/utf8>>, [Term])). - --spec term_to_binary(any()) -> bitstring(). -term_to_binary(A) -> - erlang:term_to_binary(A). - --spec get_line(binary()) -> {ok, binary()} | {error, get_line_error()}. -get_line(Prompt) -> - gleam_erlang_ffi:get_line(Prompt). - --spec system_time(time_unit()) -> integer(). -system_time(A) -> - os:system_time(A). - --spec erlang_timestamp() -> {integer(), integer(), integer()}. -erlang_timestamp() -> - os:timestamp(). - --spec rescue(fun(() -> GQE)) -> {ok, GQE} | {error, crash()}. -rescue(A) -> - gleam_erlang_ffi:rescue(A). - --spec binary_to_term(bitstring()) -> {ok, gleam@dynamic:dynamic_()} | - {error, nil}. -binary_to_term(Binary) -> - case gleam_erlang_ffi:rescue( - fun() -> erlang:binary_to_term(Binary, [safe]) end - ) of - {ok, Term} -> - {ok, Term}; - - {error, _} -> - {error, nil} - end. - --spec unsafe_binary_to_term(bitstring()) -> {ok, gleam@dynamic:dynamic_()} | - {error, nil}. -unsafe_binary_to_term(Binary) -> - case gleam_erlang_ffi:rescue(fun() -> erlang:binary_to_term(Binary, []) end) of - {ok, Term} -> - {ok, Term}; - - {error, _} -> - {error, nil} - end. - --spec start_arguments() -> list(binary()). -start_arguments() -> - _pipe = init:get_plain_arguments(), - gleam@list:map(_pipe, fun unicode:characters_to_binary/1). - --spec ensure_all_started(gleam@erlang@atom:atom_()) -> {ok, - list(gleam@erlang@atom:atom_())} | - {error, ensure_all_started_error()}. -ensure_all_started(Application) -> - gleam_erlang_ffi:ensure_all_started(Application). - --spec make_reference() -> reference_(). -make_reference() -> - erlang:make_ref(). - --spec priv_directory(binary()) -> {ok, binary()} | {error, nil}. -priv_directory(Name) -> - gleam_erlang_ffi:priv_directory(Name). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache deleted file mode 100644 index 858e310..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta deleted file mode 100644 index be33011..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.erl deleted file mode 100644 index e9ad530..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.erl +++ /dev/null @@ -1,26 +0,0 @@ --module(gleam@erlang@atom). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_string/1, create_from_string/1, to_string/1, from_dynamic/1]). --export_type([atom_/0, from_string_error/0]). - --type atom_() :: any(). - --type from_string_error() :: atom_not_loaded. - --spec from_string(binary()) -> {ok, atom_()} | {error, from_string_error()}. -from_string(A) -> - gleam_erlang_ffi:atom_from_string(A). - --spec create_from_string(binary()) -> atom_(). -create_from_string(A) -> - erlang:binary_to_atom(A). - --spec to_string(atom_()) -> binary(). -to_string(A) -> - erlang:atom_to_binary(A). - --spec from_dynamic(gleam@dynamic:dynamic_()) -> {ok, atom_()} | - {error, list(gleam@dynamic:decode_error())}. -from_dynamic(From) -> - gleam_erlang_ffi:atom_from_dynamic(From). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache deleted file mode 100644 index 707598f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta deleted file mode 100644 index 82cfdb5..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.erl deleted file mode 100644 index 9f9c0fa..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.erl +++ /dev/null @@ -1,15 +0,0 @@ --module(gleam@erlang@charlist). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([to_string/1, from_string/1]). --export_type([charlist/0]). - --type charlist() :: any(). - --spec to_string(charlist()) -> binary(). -to_string(A) -> - unicode:characters_to_binary(A). - --spec from_string(binary()) -> charlist(). -from_string(A) -> - unicode:characters_to_list(A). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache deleted file mode 100644 index 3083885..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache_meta b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache_meta deleted file mode 100644 index 1cb342b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.erl deleted file mode 100644 index 1fe6628..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.erl +++ /dev/null @@ -1,190 +0,0 @@ --module(gleam@erlang@file). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([file_info/1, link_info/1, is_directory/1, is_regular/1, file_exists/1, link_exists/1, make_directory/1, list_directory/1, delete_directory/1, recursive_delete/1, read/1, read_bits/1, write/2, write_bits/2, append/2, append_bits/2, delete/1]). --export_type([reason/0, file_type/0, access/0, file_info/0]). - --type reason() :: eacces | - eagain | - ebadf | - ebadmsg | - ebusy | - edeadlk | - edeadlock | - edquot | - eexist | - efault | - efbig | - eftype | - eintr | - einval | - eio | - eisdir | - eloop | - emfile | - emlink | - emultihop | - enametoolong | - enfile | - enobufs | - enodev | - enolck | - enolink | - enoent | - enomem | - enospc | - enosr | - enostr | - enosys | - enotblk | - enotdir | - enotsup | - enxio | - eopnotsupp | - eoverflow | - eperm | - epipe | - erange | - erofs | - espipe | - esrch | - estale | - etxtbsy | - exdev | - not_utf8. - --type file_type() :: device | directory | other | regular | symlink. - --type access() :: no_access | read | read_write | write. - --type file_info() :: {file_info, - integer(), - file_type(), - access(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer()}. - --spec file_info(binary()) -> {ok, file_info()} | {error, reason()}. -file_info(A) -> - gleam_erlang_ffi:file_info(A). - --spec link_info(binary()) -> {ok, file_info()} | {error, reason()}. -link_info(A) -> - gleam_erlang_ffi:link_info(A). - --spec is_directory(binary()) -> {ok, boolean()} | {error, reason()}. -is_directory(Path) -> - gleam@result:map( - gleam_erlang_ffi:file_info(Path), - fun(_use0) -> - {file_info, _, File_type, _, _, _, _, _, _, _, _, _, _, _} = _use0, - File_type =:= directory - end - ). - --spec is_regular(binary()) -> {ok, boolean()} | {error, reason()}. -is_regular(Path) -> - gleam@result:map( - gleam_erlang_ffi:file_info(Path), - fun(_use0) -> - {file_info, _, File_type, _, _, _, _, _, _, _, _, _, _, _} = _use0, - File_type =:= regular - end - ). - --spec file_exists(binary()) -> {ok, boolean()} | {error, reason()}. -file_exists(Path) -> - Result = begin - _pipe = Path, - _pipe@1 = gleam_erlang_ffi:file_info(_pipe), - gleam@result:replace(_pipe@1, true) - end, - case Result of - {error, enoent} -> - {ok, false}; - - _ -> - Result - end. - --spec link_exists(binary()) -> {ok, boolean()} | {error, reason()}. -link_exists(Path) -> - Result = begin - _pipe = Path, - _pipe@1 = gleam_erlang_ffi:link_info(_pipe), - gleam@result:replace(_pipe@1, true) - end, - case Result of - {error, enoent} -> - {ok, false}; - - _ -> - Result - end. - --spec make_directory(binary()) -> {ok, nil} | {error, reason()}. -make_directory(A) -> - gleam_erlang_ffi:make_directory(A). - --spec list_directory(binary()) -> {ok, list(binary())} | {error, reason()}. -list_directory(A) -> - gleam_erlang_ffi:list_directory(A). - --spec delete_directory(binary()) -> {ok, nil} | {error, reason()}. -delete_directory(A) -> - gleam_erlang_ffi:delete_directory(A). - --spec recursive_delete(binary()) -> {ok, nil} | {error, reason()}. -recursive_delete(A) -> - gleam_erlang_ffi:recursive_delete(A). - --spec read(binary()) -> {ok, binary()} | {error, reason()}. -read(Path) -> - _pipe = Path, - _pipe@1 = gleam_erlang_ffi:read_file(_pipe), - gleam@result:then( - _pipe@1, - fun(Content) -> case gleam@bit_array:to_string(Content) of - {ok, String} -> - {ok, String}; - - {error, nil} -> - {error, not_utf8} - end end - ). - --spec read_bits(binary()) -> {ok, bitstring()} | {error, reason()}. -read_bits(Path) -> - gleam_erlang_ffi:read_file(Path). - --spec write(binary(), binary()) -> {ok, nil} | {error, reason()}. -write(Contents, Path) -> - _pipe = Contents, - _pipe@1 = gleam_stdlib:identity(_pipe), - gleam_erlang_ffi:write_file(_pipe@1, Path). - --spec write_bits(bitstring(), binary()) -> {ok, nil} | {error, reason()}. -write_bits(Contents, Path) -> - gleam_erlang_ffi:write_file(Contents, Path). - --spec append(binary(), binary()) -> {ok, nil} | {error, reason()}. -append(Contents, Path) -> - _pipe = Contents, - _pipe@1 = gleam_stdlib:identity(_pipe), - gleam_erlang_ffi:append_file(_pipe@1, Path). - --spec append_bits(bitstring(), binary()) -> {ok, nil} | {error, reason()}. -append_bits(Contents, Path) -> - gleam_erlang_ffi:append_file(Contents, Path). - --spec delete(binary()) -> {ok, nil} | {error, reason()}. -delete(A) -> - gleam_erlang_ffi:delete_file(A). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache deleted file mode 100644 index 6c2ad69..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta deleted file mode 100644 index 085886a..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.erl deleted file mode 100644 index f57d029..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(gleam@erlang@node). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([self/0, visible/0, connect/1, send/3, to_atom/1]). --export_type([node_/0, do_not_leak/0, connect_error/0]). - --type node_() :: any(). - --type do_not_leak() :: any(). - --type connect_error() :: failed_to_connect | local_node_is_not_alive. - --spec self() -> node_(). -self() -> - erlang:node(). - --spec visible() -> list(node_()). -visible() -> - erlang:nodes(). - --spec connect(gleam@erlang@atom:atom_()) -> {ok, node_()} | - {error, connect_error()}. -connect(Node) -> - gleam_erlang_ffi:connect_node(Node). - --spec send(node_(), gleam@erlang@atom:atom_(), any()) -> nil. -send(Node, Name, Message) -> - erlang:send({Name, Node}, Message), - nil. - --spec to_atom(node_()) -> gleam@erlang@atom:atom_(). -to_atom(Node) -> - gleam_erlang_ffi:identity(Node). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache deleted file mode 100644 index 38dabf7..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache_meta b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache_meta deleted file mode 100644 index 1d5fa83..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.erl deleted file mode 100644 index c05e6c3..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.erl +++ /dev/null @@ -1,27 +0,0 @@ --module(gleam@erlang@os). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get_all_env/0, get_env/1, set_env/2, unset_env/1, family/0]). --export_type([os_family/0]). - --type os_family() :: windows_nt | linux | darwin | free_bsd | {other, binary()}. - --spec get_all_env() -> gleam@dict:dict(binary(), binary()). -get_all_env() -> - gleam_erlang_ffi:get_all_env(). - --spec get_env(binary()) -> {ok, binary()} | {error, nil}. -get_env(Name) -> - gleam_erlang_ffi:get_env(Name). - --spec set_env(binary(), binary()) -> nil. -set_env(Name, Value) -> - gleam_erlang_ffi:set_env(Name, Value). - --spec unset_env(binary()) -> nil. -unset_env(Name) -> - gleam_erlang_ffi:unset_env(Name). - --spec family() -> os_family(). -family() -> - gleam_erlang_ffi:os_family(). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache deleted file mode 100644 index 57cc2e6..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta deleted file mode 100644 index ad9209c..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.erl deleted file mode 100644 index abb7144..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.erl +++ /dev/null @@ -1,374 +0,0 @@ --module(gleam@erlang@process). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([self/0, start/2, new_subject/0, subject_owner/1, send/2, new_selector/0, select/2, select_forever/1, map_selector/2, merge_selector/2, flush_messages/0, selecting_trapped_exits/2, selecting/3, 'receive'/2, selecting_record2/3, selecting_record3/3, selecting_record4/3, selecting_record5/3, selecting_record6/3, selecting_record7/3, selecting_record8/3, selecting_anything/2, sleep/1, sleep_forever/0, is_alive/1, monitor_process/1, selecting_process_down/3, demonitor_process/1, try_call/3, call/3, link/1, unlink/1, send_after/3, cancel_timer/1, kill/1, send_exit/1, send_abnormal_exit/2, trap_exits/1, register/2, unregister/1, named/1]). --export_type([pid_/0, subject/1, do_not_leak/0, selector/1, exit_message/0, exit_reason/0, anything_selector_tag/0, process_monitor_flag/0, process_monitor/0, process_down/0, call_error/1, timer/0, cancelled/0, kill_flag/0]). - --type pid_() :: any(). - --opaque subject(GSA) :: {subject, pid_(), gleam@erlang:reference_()} | - {gleam_phantom, GSA}. - --type do_not_leak() :: any(). - --type selector(GSB) :: any() | {gleam_phantom, GSB}. - --type exit_message() :: {exit_message, pid_(), exit_reason()}. - --type exit_reason() :: normal | killed | {abnormal, binary()}. - --type anything_selector_tag() :: anything. - --type process_monitor_flag() :: process. - --opaque process_monitor() :: {process_monitor, gleam@erlang:reference_()}. - --type process_down() :: {process_down, pid_(), gleam@dynamic:dynamic_()}. - --type call_error(GSC) :: {callee_down, gleam@dynamic:dynamic_()} | - call_timeout | - {gleam_phantom, GSC}. - --type timer() :: any(). - --type cancelled() :: timer_not_found | {cancelled, integer()}. - --type kill_flag() :: kill. - --spec self() -> pid_(). -self() -> - erlang:self(). - --spec start(fun(() -> any()), boolean()) -> pid_(). -start(Implementation, Link) -> - case Link of - true -> - erlang:spawn_link(Implementation); - - false -> - erlang:spawn(Implementation) - end. - --spec new_subject() -> subject(any()). -new_subject() -> - {subject, erlang:self(), erlang:make_ref()}. - --spec subject_owner(subject(any())) -> pid_(). -subject_owner(Subject) -> - erlang:element(2, Subject). - --spec send(subject(GSL), GSL) -> nil. -send(Subject, Message) -> - erlang:send( - erlang:element(2, Subject), - {erlang:element(3, Subject), Message} - ), - nil. - --spec new_selector() -> selector(any()). -new_selector() -> - gleam_erlang_ffi:new_selector(). - --spec select(selector(GST), integer()) -> {ok, GST} | {error, nil}. -select(From, Within) -> - gleam_erlang_ffi:select(From, Within). - --spec select_forever(selector(GSX)) -> GSX. -select_forever(From) -> - gleam_erlang_ffi:select(From). - --spec map_selector(selector(GSZ), fun((GSZ) -> GTB)) -> selector(GTB). -map_selector(A, B) -> - gleam_erlang_ffi:map_selector(A, B). - --spec merge_selector(selector(GTD), selector(GTD)) -> selector(GTD). -merge_selector(A, B) -> - gleam_erlang_ffi:merge_selector(A, B). - --spec flush_messages() -> nil. -flush_messages() -> - gleam_erlang_ffi:flush_messages(). - --spec selecting_trapped_exits(selector(GTH), fun((exit_message()) -> GTH)) -> selector(GTH). -selecting_trapped_exits(Selector, Handler) -> - Tag = erlang:binary_to_atom(<<"EXIT"/utf8>>), - Handler@1 = fun(Message) -> - Reason = erlang:element(3, Message), - Normal = gleam@dynamic:from(normal), - Killed = gleam@dynamic:from(killed), - Reason@2 = case gleam@dynamic:string(Reason) of - _ when Reason =:= Normal -> - normal; - - _ when Reason =:= Killed -> - killed; - - {ok, Reason@1} -> - {abnormal, Reason@1}; - - {error, _} -> - {abnormal, gleam@string:inspect(Reason)} - end, - Handler({exit_message, erlang:element(2, Message), Reason@2}) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 3}, Handler@1). - --spec selecting(selector(GTK), subject(GTM), fun((GTM) -> GTK)) -> selector(GTK). -selecting(Selector, Subject, Transform) -> - Handler = fun(Message) -> Transform(erlang:element(2, Message)) end, - gleam_erlang_ffi:insert_selector_handler( - Selector, - {erlang:element(3, Subject), 2}, - Handler - ). - --spec 'receive'(subject(GSN), integer()) -> {ok, GSN} | {error, nil}. -'receive'(Subject, Milliseconds) -> - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = selecting(_pipe, Subject, fun(X) -> X end), - gleam_erlang_ffi:select(_pipe@1, Milliseconds). - --spec selecting_record2( - selector(GTP), - any(), - fun((gleam@dynamic:dynamic_()) -> GTP) -) -> selector(GTP). -selecting_record2(Selector, Tag, Transform) -> - Handler = fun(Message) -> Transform(erlang:element(2, Message)) end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 2}, Handler). - --spec selecting_record3( - selector(GTT), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> GTT) -) -> selector(GTT). -selecting_record3(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform(erlang:element(2, Message), erlang:element(3, Message)) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 3}, Handler). - --spec selecting_record4( - selector(GTX), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> GTX) -) -> selector(GTX). -selecting_record4(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 4}, Handler). - --spec selecting_record5( - selector(GUB), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> GUB) -) -> selector(GUB). -selecting_record5(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message), - erlang:element(5, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 5}, Handler). - --spec selecting_record6( - selector(GUF), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> GUF) -) -> selector(GUF). -selecting_record6(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message), - erlang:element(5, Message), - erlang:element(6, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 6}, Handler). - --spec selecting_record7( - selector(GUJ), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> GUJ) -) -> selector(GUJ). -selecting_record7(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message), - erlang:element(5, Message), - erlang:element(6, Message), - erlang:element(7, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 7}, Handler). - --spec selecting_record8( - selector(GUN), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> GUN) -) -> selector(GUN). -selecting_record8(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message), - erlang:element(5, Message), - erlang:element(6, Message), - erlang:element(7, Message), - erlang:element(8, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 8}, Handler). - --spec selecting_anything(selector(GUR), fun((gleam@dynamic:dynamic_()) -> GUR)) -> selector(GUR). -selecting_anything(Selector, Handler) -> - gleam_erlang_ffi:insert_selector_handler(Selector, anything, Handler). - --spec sleep(integer()) -> nil. -sleep(A) -> - gleam_erlang_ffi:sleep(A). - --spec sleep_forever() -> nil. -sleep_forever() -> - gleam_erlang_ffi:sleep_forever(). - --spec is_alive(pid_()) -> boolean(). -is_alive(A) -> - erlang:is_process_alive(A). - --spec monitor_process(pid_()) -> process_monitor(). -monitor_process(Pid) -> - _pipe = process, - _pipe@1 = erlang:monitor(_pipe, Pid), - {process_monitor, _pipe@1}. - --spec selecting_process_down( - selector(GUZ), - process_monitor(), - fun((process_down()) -> GUZ) -) -> selector(GUZ). -selecting_process_down(Selector, Monitor, Mapping) -> - gleam_erlang_ffi:insert_selector_handler( - Selector, - erlang:element(2, Monitor), - Mapping - ). - --spec demonitor_process(process_monitor()) -> nil. -demonitor_process(Monitor) -> - gleam_erlang_ffi:demonitor(Monitor). - --spec try_call(subject(GVC), fun((subject(GVE)) -> GVC), integer()) -> {ok, GVE} | - {error, call_error(GVE)}. -try_call(Subject, Make_request, Timeout) -> - Reply_subject = new_subject(), - Monitor = monitor_process(subject_owner(Subject)), - send(Subject, Make_request(Reply_subject)), - Result = begin - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = selecting( - _pipe, - Reply_subject, - fun(Field@0) -> {ok, Field@0} end - ), - _pipe@2 = selecting_process_down( - _pipe@1, - Monitor, - fun(Down) -> {error, {callee_down, erlang:element(3, Down)}} end - ), - gleam_erlang_ffi:select(_pipe@2, Timeout) - end, - gleam_erlang_ffi:demonitor(Monitor), - case Result of - {error, nil} -> - {error, call_timeout}; - - {ok, Res} -> - Res - end. - --spec call(subject(GVJ), fun((subject(GVL)) -> GVJ), integer()) -> GVL. -call(Subject, Make_request, Timeout) -> - _assert_subject = try_call(Subject, Make_request, Timeout), - {ok, Resp} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/erlang/process"/utf8>>, - function => <<"call"/utf8>>, - line => 593}) - end, - Resp. - --spec link(pid_()) -> boolean(). -link(Pid) -> - gleam_erlang_ffi:link(Pid). - --spec unlink(pid_()) -> nil. -unlink(Pid) -> - erlang:unlink(Pid), - nil. - --spec send_after(subject(GVO), integer(), GVO) -> timer(). -send_after(Subject, Delay, Message) -> - erlang:send_after( - Delay, - erlang:element(2, Subject), - {erlang:element(3, Subject), Message} - ). - --spec cancel_timer(timer()) -> cancelled(). -cancel_timer(Timer) -> - case gleam@dynamic:int(erlang:cancel_timer(Timer)) of - {ok, I} -> - {cancelled, I}; - - {error, _} -> - timer_not_found - end. - --spec kill(pid_()) -> nil. -kill(Pid) -> - erlang:exit(Pid, kill), - nil. - --spec send_exit(pid_()) -> nil. -send_exit(Pid) -> - erlang:exit(Pid, normal), - nil. - --spec send_abnormal_exit(pid_(), binary()) -> nil. -send_abnormal_exit(Pid, Reason) -> - erlang:exit(Pid, {abnormal, Reason}), - nil. - --spec trap_exits(boolean()) -> nil. -trap_exits(A) -> - gleam_erlang_ffi:trap_exits(A). - --spec register(pid_(), gleam@erlang@atom:atom_()) -> {ok, nil} | {error, nil}. -register(Pid, Name) -> - gleam_erlang_ffi:register_process(Pid, Name). - --spec unregister(gleam@erlang@atom:atom_()) -> {ok, nil} | {error, nil}. -unregister(Name) -> - gleam_erlang_ffi:unregister_process(Name). - --spec named(gleam@erlang@atom:atom_()) -> {ok, pid_()} | {error, nil}. -named(Name) -> - gleam_erlang_ffi:process_named(Name). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam_erlang_ffi.erl b/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam_erlang_ffi.erl deleted file mode 100644 index 872126f..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/_gleam_artefacts/gleam_erlang_ffi.erl +++ /dev/null @@ -1,263 +0,0 @@ --module(gleam_erlang_ffi). --export([ - atom_from_dynamic/1, rescue/1, atom_from_string/1, get_line/1, - ensure_all_started/1, sleep/1, os_family/0, sleep_forever/0, read_file/1, - append_file/2, write_file/2, delete_file/1, get_all_env/0, get_env/1, - set_env/2, unset_env/1, delete_directory/1, recursive_delete/1, - list_directory/1, demonitor/1, make_directory/1, new_selector/0, link/1, - insert_selector_handler/3, select/1, select/2, trap_exits/1, map_selector/2, - merge_selector/2, flush_messages/0, file_info/1, link_info/1, - priv_directory/1, connect_node/1, register_process/2, unregister_process/1, - process_named/1, identity/1 -]). - --define(is_posix_error(Error), - Error =:= eacces orelse Error =:= eagain orelse Error =:= ebadf orelse - Error =:= ebadmsg orelse Error =:= ebusy orelse Error =:= edeadlk orelse - Error =:= edeadlock orelse Error =:= edquot orelse Error =:= eexist orelse - Error =:= efault orelse Error =:= efbig orelse Error =:= eftype orelse - Error =:= eintr orelse Error =:= einval orelse Error =:= eio orelse - Error =:= eisdir orelse Error =:= eloop orelse Error =:= emfile orelse - Error =:= emlink orelse Error =:= emultihop orelse Error =:= enametoolong orelse - Error =:= enfile orelse Error =:= enobufs orelse Error =:= enodev orelse - Error =:= enolck orelse Error =:= enolink orelse Error =:= enoent orelse - Error =:= enomem orelse Error =:= enospc orelse Error =:= enosr orelse - Error =:= enostr orelse Error =:= enosys orelse Error =:= enotblk orelse - Error =:= enotdir orelse Error =:= enotsup orelse Error =:= enxio orelse - Error =:= eopnotsupp orelse Error =:= eoverflow orelse Error =:= eperm orelse - Error =:= epipe orelse Error =:= erange orelse Error =:= erofs orelse - Error =:= espipe orelse Error =:= esrch orelse Error =:= estale orelse - Error =:= etxtbsy orelse Error =:= exdev -). - --spec atom_from_string(binary()) -> {ok, atom()} | {error, atom_not_loaded}. -atom_from_string(S) -> - try {ok, binary_to_existing_atom(S)} - catch error:badarg -> {error, atom_not_loaded} - end. - -atom_from_dynamic(Data) when is_atom(Data) -> - {ok, Data}; -atom_from_dynamic(Data) -> - {error, [{decode_error, <<"Atom">>, gleam@dynamic:classify(Data), []}]}. - --spec get_line(io:prompt()) -> {ok, unicode:unicode_binary()} | {error, eof | no_data}. -get_line(Prompt) -> - case io:get_line(Prompt) of - eof -> {error, eof}; - {error, _} -> {error, no_data}; - Data when is_binary(Data) -> {ok, Data}; - Data when is_list(Data) -> {ok, unicode:characters_to_binary(Data)} - end. - -rescue(F) -> - try {ok, F()} - catch - throw:X -> {error, {thrown, X}}; - error:X -> {error, {errored, X}}; - exit:X -> {error, {exited, X}} - end. - -ensure_all_started(Application) -> - case application:ensure_all_started(Application) of - {ok, _} = Ok -> Ok; - - {error, {ProblemApp, {"no such file or directory", _}}} -> - {error, {unknown_application, ProblemApp}} - end. - -sleep(Microseconds) -> - timer:sleep(Microseconds), - nil. - -sleep_forever() -> - timer:sleep(infinity), - nil. - -file_info_result(Result) -> - case Result of - {ok, {file_info, Size, Type, Access, Atime, Mtime, Ctime, Mode, Links, MajorDevice, MinorDevice, Inode, Uid, Gid}} when Access =:= none -> - {ok, {file_info, Size, Type, no_access, Atime, Mtime, Ctime, Mode, Links, MajorDevice, MinorDevice, Inode, Uid, Gid}}; - {ok, _} -> - Result; - {error, Reason} when ?is_posix_error(Reason) -> - Result - end. - -file_info(Filename) -> - file_info_result(file:read_file_info(Filename, [{time, posix}])). - -link_info(Filename) -> - file_info_result(file:read_link_info(Filename, [{time, posix}])). - -posix_result(Result) -> - case Result of - ok -> {ok, nil}; - {ok, Value} -> {ok, Value}; - {error, Reason} when ?is_posix_error(Reason) -> {error, Reason} - end. - -read_file(Filename) -> - posix_result(file:read_file(Filename)). - -write_file(Contents, Filename) -> - posix_result(file:write_file(Filename, Contents)). - -append_file(Contents, Filename) -> - posix_result(file:write_file(Filename, Contents, [append])). - -delete_file(Filename) -> - posix_result(file:delete(Filename)). - -make_directory(Dir) -> - posix_result(file:make_dir(Dir)). - -list_directory(Dir) -> - case file:list_dir(Dir) of - {ok, Filenames} -> - {ok, [list_to_binary(Filename) || Filename <- Filenames]}; - {error, Reason} when ?is_posix_error(Reason) -> - {error, Reason} - end. - -delete_directory(Dir) -> - posix_result(file:del_dir(Dir)). - -recursive_delete(Dir) -> - posix_result(file:del_dir_r(Dir)). - -get_all_env() -> - BinVars = lists:map(fun(VarString) -> - [VarName, VarVal] = string:split(VarString, "="), - {list_to_binary(VarName), list_to_binary(VarVal)} - end, os:getenv()), - maps:from_list(BinVars). - -get_env(Name) -> - case os:getenv(binary_to_list(Name)) of - false -> {error, nil}; - Value -> {ok, list_to_binary(Value)} - end. - -set_env(Name, Value) -> - os:putenv(binary_to_list(Name), binary_to_list(Value)), - nil. - -unset_env(Name) -> - os:unsetenv(binary_to_list(Name)), - nil. - -os_family() -> - case os:type() of - {win32, nt} -> - windows_nt; - {unix, linux} -> - linux; - {unix, darwin} -> - darwin; - {unix, freebsd} -> - free_bsd; - {_, Other} -> - {other, atom_to_binary(Other, utf8)} - end. - -new_selector() -> - {selector, #{}}. - -map_selector({selector, Handlers}, Fn) -> - MappedHandlers = maps:map(fun(_Tag, Handler) -> - fun(Message) -> Fn(Handler(Message)) end - end, Handlers), - {selector, MappedHandlers}. - -merge_selector({selector, HandlersA}, {selector, HandlersB}) -> - {selector, maps:merge(HandlersA, HandlersB)}. - -insert_selector_handler({selector, Handlers}, Tag, Fn) -> - {selector, Handlers#{Tag => Fn}}. - -select(Selector) -> - {ok, Message} = select(Selector, infinity), - Message. - -select({selector, Handlers}, Timeout) -> - AnythingHandler = maps:get(anything, Handlers, undefined), - receive - % Monitored process down messages. - % This is special cased so we can selectively receive based on the - % reference as well as the record tag. - {'DOWN', Ref, process, Pid, Reason} when is_map_key(Ref, Handlers) -> - Fn = maps:get(Ref, Handlers), - {ok, Fn({process_down, Pid, Reason})}; - - Msg when is_map_key({element(1, Msg), tuple_size(Msg)}, Handlers) -> - Fn = maps:get({element(1, Msg), tuple_size(Msg)}, Handlers), - {ok, Fn(Msg)}; - - Msg when AnythingHandler =/= undefined -> - {ok, AnythingHandler(Msg)} - after Timeout -> - {error, nil} - end. - -demonitor({_, Reference}) -> - erlang:demonitor(Reference, [flush]). - -link(Pid) -> - try - erlang:link(Pid) - catch - error:_ -> false - end. - -trap_exits(ShouldTrap) -> - erlang:process_flag(trap_exit, ShouldTrap), - nil. - -flush_messages() -> - receive _Message -> flush_messages() - after 0 -> nil - end. - -priv_directory(Name) -> - try erlang:binary_to_existing_atom(Name) of - Atom -> - case code:priv_dir(Atom) of - {error, _} -> {error, nil}; - Path -> {ok, unicode:characters_to_binary(Path)} - end - catch - error:badarg -> {error, nil} - end. - -connect_node(Node) -> - case net_kernel:connect_node(Node) of - true -> {ok, Node}; - false -> {error, failed_to_connect}; - ignored -> {error, local_node_is_not_alive} - end. - -register_process(Pid, Name) -> - try - true = erlang:register(Name, Pid), - {ok, nil} - catch - error:badarg -> {error, nil} - end. - -unregister_process(Name) -> - try - true = erlang:unregister(Name), - {ok, nil} - catch - error:badarg -> {error, nil} - end. - -process_named(Name) -> - case erlang:whereis(Name) of - Pid when is_pid(Pid) -> {ok, Pid}; - _ -> {error, nil} - end. - -identity(X) -> - X. diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang.beam b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang.beam deleted file mode 100644 index d54ec07..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@atom.beam b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@atom.beam deleted file mode 100644 index 78d457d..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@atom.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@charlist.beam b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@charlist.beam deleted file mode 100644 index 7624e6e..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@charlist.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@file.beam b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@file.beam deleted file mode 100644 index 972a12b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@file.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@node.beam b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@node.beam deleted file mode 100644 index 4b2f578..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@node.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@os.beam b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@os.beam deleted file mode 100644 index c6b8f5e..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@os.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@process.beam b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@process.beam deleted file mode 100644 index 35e940f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam@erlang@process.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam_erlang.app b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam_erlang.app deleted file mode 100644 index 79950ab..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam_erlang.app +++ /dev/null @@ -1,7 +0,0 @@ -{application, gleam_erlang, [ - {vsn, "0.23.1"}, - {applications, [gleam_stdlib]}, - {description, "A Gleam library for working with Erlang"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam_erlang_ffi.beam b/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam_erlang_ffi.beam deleted file mode 100644 index c659a9c..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_erlang/ebin/gleam_erlang_ffi.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@file_FileInfo.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@file_FileInfo.hrl deleted file mode 100644 index b38d11e..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@file_FileInfo.hrl +++ /dev/null @@ -1,15 +0,0 @@ --record(file_info, { - size :: integer(), - file_type :: gleam@erlang@file:file_type(), - access :: gleam@erlang@file:access(), - atime :: integer(), - mtime :: integer(), - ctime :: integer(), - mode :: integer(), - links :: integer(), - major_device :: integer(), - minor_device :: integer(), - inode :: integer(), - user_id :: integer(), - group_id :: integer() -}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Abnormal.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Abnormal.hrl deleted file mode 100644 index 4cd0452..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Abnormal.hrl +++ /dev/null @@ -1 +0,0 @@ --record(abnormal, {reason :: binary()}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_CalleeDown.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_CalleeDown.hrl deleted file mode 100644 index 5dd5047..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_CalleeDown.hrl +++ /dev/null @@ -1 +0,0 @@ --record(callee_down, {reason :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Cancelled.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Cancelled.hrl deleted file mode 100644 index b82b49f..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Cancelled.hrl +++ /dev/null @@ -1 +0,0 @@ --record(cancelled, {time_remaining :: integer()}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ExitMessage.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ExitMessage.hrl deleted file mode 100644 index c476308..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ExitMessage.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(exit_message, { - pid :: gleam@erlang@process:pid_(), - reason :: gleam@erlang@process:exit_reason() -}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ProcessDown.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ProcessDown.hrl deleted file mode 100644 index df0b6b7..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ProcessDown.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(process_down, { - pid :: gleam@erlang@process:pid_(), - reason :: gleam@dynamic:dynamic_() -}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ProcessMonitor.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ProcessMonitor.hrl deleted file mode 100644 index ce552e2..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_ProcessMonitor.hrl +++ /dev/null @@ -1 +0,0 @@ --record(process_monitor, {tag :: gleam@erlang:reference_()}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Subject.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Subject.hrl deleted file mode 100644 index abc46b2..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang@process_Subject.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(subject, { - owner :: gleam@erlang@process:pid_(), - tag :: gleam@erlang:reference_() -}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang_ApplicationFailedToStart.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang_ApplicationFailedToStart.hrl deleted file mode 100644 index 52c9896..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang_ApplicationFailedToStart.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(application_failed_to_start, { - name :: gleam@erlang@atom:atom_(), - reason :: gleam@dynamic:dynamic_() -}). diff --git a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang_UnknownApplication.hrl b/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang_UnknownApplication.hrl deleted file mode 100644 index fde3c61..0000000 --- a/aoc2023/build/dev/erlang/gleam_erlang/include/gleam@erlang_UnknownApplication.hrl +++ /dev/null @@ -1 +0,0 @@ --record(unknown_application, {name :: gleam@erlang@atom:atom_()}). diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.cache b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.cache deleted file mode 100644 index 0b8931e..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.cache_meta b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.cache_meta deleted file mode 100644 index dc85da7..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.erl b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.erl deleted file mode 100644 index 91ee6e8..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http.erl +++ /dev/null @@ -1,626 +0,0 @@ --module(gleam@http). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([parse_method/1, method_to_string/1, scheme_to_string/1, scheme_from_string/1, parse_content_disposition/1, parse_multipart_body/2, method_from_dynamic/1, parse_multipart_headers/2]). --export_type([method/0, scheme/0, multipart_headers/0, multipart_body/0, content_disposition/0]). - --type method() :: get | - post | - head | - put | - delete | - trace | - connect | - options | - patch | - {other, binary()}. - --type scheme() :: http | https. - --type multipart_headers() :: {multipart_headers, - list({binary(), binary()}), - bitstring()} | - {more_required_for_headers, - fun((bitstring()) -> {ok, multipart_headers()} | {error, nil})}. - --type multipart_body() :: {multipart_body, bitstring(), boolean(), bitstring()} | - {more_required_for_body, - bitstring(), - fun((bitstring()) -> {ok, multipart_body()} | {error, nil})}. - --type content_disposition() :: {content_disposition, - binary(), - list({binary(), binary()})}. - --spec parse_method(binary()) -> {ok, method()} | {error, nil}. -parse_method(S) -> - case gleam@string:lowercase(S) of - <<"connect"/utf8>> -> - {ok, connect}; - - <<"delete"/utf8>> -> - {ok, delete}; - - <<"get"/utf8>> -> - {ok, get}; - - <<"head"/utf8>> -> - {ok, head}; - - <<"options"/utf8>> -> - {ok, options}; - - <<"patch"/utf8>> -> - {ok, patch}; - - <<"post"/utf8>> -> - {ok, post}; - - <<"put"/utf8>> -> - {ok, put}; - - <<"trace"/utf8>> -> - {ok, trace}; - - _ -> - {error, nil} - end. - --spec method_to_string(method()) -> binary(). -method_to_string(Method) -> - case Method of - connect -> - <<"connect"/utf8>>; - - delete -> - <<"delete"/utf8>>; - - get -> - <<"get"/utf8>>; - - head -> - <<"head"/utf8>>; - - options -> - <<"options"/utf8>>; - - patch -> - <<"patch"/utf8>>; - - post -> - <<"post"/utf8>>; - - put -> - <<"put"/utf8>>; - - trace -> - <<"trace"/utf8>>; - - {other, S} -> - S - end. - --spec scheme_to_string(scheme()) -> binary(). -scheme_to_string(Scheme) -> - case Scheme of - http -> - <<"http"/utf8>>; - - https -> - <<"https"/utf8>> - end. - --spec scheme_from_string(binary()) -> {ok, scheme()} | {error, nil}. -scheme_from_string(Scheme) -> - case gleam@string:lowercase(Scheme) of - <<"http"/utf8>> -> - {ok, http}; - - <<"https"/utf8>> -> - {ok, https}; - - _ -> - {error, nil} - end. - --spec skip_whitespace(bitstring()) -> bitstring(). -skip_whitespace(Data) -> - case Data of - <<32, Data@1/binary>> -> - skip_whitespace(Data@1); - - <<9, Data@1/binary>> -> - skip_whitespace(Data@1); - - _ -> - Data - end. - --spec more_please_headers( - fun((bitstring()) -> {ok, multipart_headers()} | {error, nil}), - bitstring() -) -> {ok, multipart_headers()} | {error, nil}. -more_please_headers(Continuation, Existing) -> - {ok, - {more_required_for_headers, - fun(More) -> - gleam@bool:guard( - More =:= <<>>, - {error, nil}, - fun() -> - Continuation(<>) - end - ) - end}}. - --spec parse_rfc_2045_parameter_quoted_value(binary(), binary(), binary()) -> {ok, - {{binary(), binary()}, binary()}} | - {error, nil}. -parse_rfc_2045_parameter_quoted_value(Header, Name, Value) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {error, nil}; - - {ok, {<<"\""/utf8>>, Rest}} -> - {ok, {{Name, Value}, Rest}}; - - {ok, {<<"\\"/utf8>>, Rest@1}} -> - gleam@result:'try'( - gleam@string:pop_grapheme(Rest@1), - fun(_use0) -> - {Grapheme, Rest@2} = _use0, - parse_rfc_2045_parameter_quoted_value( - Rest@2, - Name, - <> - ) - end - ); - - {ok, {Grapheme@1, Rest@3}} -> - parse_rfc_2045_parameter_quoted_value( - Rest@3, - Name, - <> - ) - end. - --spec parse_rfc_2045_parameter_unquoted_value(binary(), binary(), binary()) -> {{binary(), - binary()}, - binary()}. -parse_rfc_2045_parameter_unquoted_value(Header, Name, Value) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {{Name, Value}, Header}; - - {ok, {<<";"/utf8>>, Rest}} -> - {{Name, Value}, Rest}; - - {ok, {<<" "/utf8>>, Rest}} -> - {{Name, Value}, Rest}; - - {ok, {<<"\t"/utf8>>, Rest}} -> - {{Name, Value}, Rest}; - - {ok, {Grapheme, Rest@1}} -> - parse_rfc_2045_parameter_unquoted_value( - Rest@1, - Name, - <> - ) - end. - --spec parse_rfc_2045_parameter_value(binary(), binary()) -> {ok, - {{binary(), binary()}, binary()}} | - {error, nil}. -parse_rfc_2045_parameter_value(Header, Name) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {error, nil}; - - {ok, {<<"\""/utf8>>, Rest}} -> - parse_rfc_2045_parameter_quoted_value(Rest, Name, <<""/utf8>>); - - {ok, {Grapheme, Rest@1}} -> - {ok, - parse_rfc_2045_parameter_unquoted_value(Rest@1, Name, Grapheme)} - end. - --spec parse_rfc_2045_parameter(binary(), binary()) -> {ok, - {{binary(), binary()}, binary()}} | - {error, nil}. -parse_rfc_2045_parameter(Header, Name) -> - gleam@result:'try'( - gleam@string:pop_grapheme(Header), - fun(_use0) -> - {Grapheme, Rest} = _use0, - case Grapheme of - <<"="/utf8>> -> - parse_rfc_2045_parameter_value(Rest, Name); - - _ -> - parse_rfc_2045_parameter( - Rest, - <> - ) - end - end - ). - --spec parse_rfc_2045_parameters(binary(), list({binary(), binary()})) -> {ok, - list({binary(), binary()})} | - {error, nil}. -parse_rfc_2045_parameters(Header, Parameters) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {ok, gleam@list:reverse(Parameters)}; - - {ok, {<<";"/utf8>>, Rest}} -> - parse_rfc_2045_parameters(Rest, Parameters); - - {ok, {<<" "/utf8>>, Rest}} -> - parse_rfc_2045_parameters(Rest, Parameters); - - {ok, {<<"\t"/utf8>>, Rest}} -> - parse_rfc_2045_parameters(Rest, Parameters); - - {ok, {Grapheme, Rest@1}} -> - Acc = gleam@string:lowercase(Grapheme), - gleam@result:'try'( - parse_rfc_2045_parameter(Rest@1, Acc), - fun(_use0) -> - {Parameter, Rest@2} = _use0, - parse_rfc_2045_parameters(Rest@2, [Parameter | Parameters]) - end - ) - end. - --spec parse_content_disposition_type(binary(), binary()) -> {ok, - content_disposition()} | - {error, nil}. -parse_content_disposition_type(Header, Name) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {ok, {content_disposition, Name, []}}; - - {ok, {<<" "/utf8>>, Rest}} -> - Result = parse_rfc_2045_parameters(Rest, []), - gleam@result:map( - Result, - fun(Parameters) -> {content_disposition, Name, Parameters} end - ); - - {ok, {<<"\t"/utf8>>, Rest}} -> - Result = parse_rfc_2045_parameters(Rest, []), - gleam@result:map( - Result, - fun(Parameters) -> {content_disposition, Name, Parameters} end - ); - - {ok, {<<";"/utf8>>, Rest}} -> - Result = parse_rfc_2045_parameters(Rest, []), - gleam@result:map( - Result, - fun(Parameters) -> {content_disposition, Name, Parameters} end - ); - - {ok, {Grapheme, Rest@1}} -> - parse_content_disposition_type( - Rest@1, - <> - ) - end. - --spec parse_content_disposition(binary()) -> {ok, content_disposition()} | - {error, nil}. -parse_content_disposition(Header) -> - parse_content_disposition_type(Header, <<""/utf8>>). - --spec more_please_body( - fun((bitstring()) -> {ok, multipart_body()} | {error, nil}), - bitstring(), - bitstring() -) -> {ok, multipart_body()} | {error, nil}. -more_please_body(Continuation, Chunk, Existing) -> - _pipe = fun(More) -> - gleam@bool:guard( - More =:= <<>>, - {error, nil}, - fun() -> Continuation(<>) end - ) - end, - _pipe@1 = {more_required_for_body, Chunk, _pipe}, - {ok, _pipe@1}. - --spec parse_body_loop(bitstring(), bitstring(), bitstring()) -> {ok, - multipart_body()} | - {error, nil}. -parse_body_loop(Data, Boundary, Body) -> - Dsize = erlang:byte_size(Data), - Bsize = erlang:byte_size(Boundary), - Required = 6 + Bsize, - case Data of - _ when Dsize < Required -> - more_please_body( - fun(_capture) -> parse_body_loop(_capture, Boundary, <<>>) end, - Body, - Data - ); - - <<13, 10, Data@1/binary>> -> - Desired = <<45, 45, Boundary/bitstring>>, - Size = erlang:byte_size(Desired), - Dsize@1 = erlang:byte_size(Data@1), - Prefix = gleam_stdlib:bit_array_slice(Data@1, 0, Size), - Rest = gleam_stdlib:bit_array_slice(Data@1, Size, Dsize@1 - Size), - case {Prefix =:= {ok, Desired}, Rest} of - {true, {ok, <<13, 10, _/binary>>}} -> - {ok, {multipart_body, Body, false, Data@1}}; - - {true, {ok, <<45, 45, Data@2/binary>>}} -> - {ok, {multipart_body, Body, true, Data@2}}; - - {false, _} -> - parse_body_loop( - Data@1, - Boundary, - <> - ); - - {_, _} -> - {error, nil} - end; - - <> -> - parse_body_loop(Data@3, Boundary, <>) - end. - --spec parse_body_with_bit_array(bitstring(), bitstring()) -> {ok, - multipart_body()} | - {error, nil}. -parse_body_with_bit_array(Data, Boundary) -> - Bsize = erlang:byte_size(Boundary), - Prefix = gleam_stdlib:bit_array_slice(Data, 0, 2 + Bsize), - case Prefix =:= {ok, <<45, 45, Boundary/bitstring>>} of - true -> - {ok, {multipart_body, <<>>, false, Data}}; - - false -> - parse_body_loop(Data, Boundary, <<>>) - end. - --spec parse_multipart_body(bitstring(), binary()) -> {ok, multipart_body()} | - {error, nil}. -parse_multipart_body(Data, Boundary) -> - _pipe = Boundary, - _pipe@1 = gleam_stdlib:identity(_pipe), - parse_body_with_bit_array(Data, _pipe@1). - --spec method_from_dynamic(gleam@dynamic:dynamic_()) -> {ok, method()} | - {error, list(gleam@dynamic:decode_error())}. -method_from_dynamic(Value) -> - case gleam_http_native:decode_method(Value) of - {ok, Method} -> - {ok, Method}; - - {error, _} -> - {error, - [{decode_error, - <<"HTTP method"/utf8>>, - gleam@dynamic:classify(Value), - []}]} - end. - --spec parse_header_value( - bitstring(), - list({binary(), binary()}), - bitstring(), - bitstring() -) -> {ok, multipart_headers()} | {error, nil}. -parse_header_value(Data, Headers, Name, Value) -> - Size = erlang:byte_size(Data), - case Data of - _ when Size < 4 -> - _pipe@2 = fun(Data@1) -> _pipe = Data@1, - _pipe@1 = skip_whitespace(_pipe), - parse_header_value(_pipe@1, Headers, Name, Value) end, - more_please_headers(_pipe@2, Data); - - <<13, 10, 13, 10, Data@2/binary>> -> - gleam@result:'try'( - gleam@bit_array:to_string(Name), - fun(Name@1) -> - gleam@result:map( - gleam@bit_array:to_string(Value), - fun(Value@1) -> - Headers@1 = gleam@list:reverse( - [{gleam@string:lowercase(Name@1), Value@1} | - Headers] - ), - {multipart_headers, Headers@1, Data@2} - end - ) - end - ); - - <<13, 10, 32, Data@3/binary>> -> - parse_header_value(Data@3, Headers, Name, Value); - - <<13, 10, 9, Data@3/binary>> -> - parse_header_value(Data@3, Headers, Name, Value); - - <<13, 10, Data@4/binary>> -> - gleam@result:'try'( - gleam@bit_array:to_string(Name), - fun(Name@2) -> - gleam@result:'try'( - gleam@bit_array:to_string(Value), - fun(Value@2) -> - Headers@2 = [{gleam@string:lowercase(Name@2), - Value@2} | - Headers], - parse_header_name(Data@4, Headers@2, <<>>) - end - ) - end - ); - - <> -> - Value@3 = <>, - parse_header_value(Rest, Headers, Name, Value@3); - - _ -> - {error, nil} - end. - --spec parse_header_name(bitstring(), list({binary(), binary()}), bitstring()) -> {ok, - multipart_headers()} | - {error, nil}. -parse_header_name(Data, Headers, Name) -> - case skip_whitespace(Data) of - <<58, Data@1/binary>> -> - _pipe = Data@1, - _pipe@1 = skip_whitespace(_pipe), - parse_header_value(_pipe@1, Headers, Name, <<>>); - - <> -> - parse_header_name(Data@2, Headers, <>); - - <<>> -> - more_please_headers( - fun(_capture) -> parse_header_name(_capture, Headers, Name) end, - Data - ) - end. - --spec do_parse_headers(bitstring()) -> {ok, multipart_headers()} | {error, nil}. -do_parse_headers(Data) -> - case Data of - <<13, 10, 13, 10, Data@1/binary>> -> - {ok, {multipart_headers, [], Data@1}}; - - <<13, 10, Data@2/binary>> -> - parse_header_name(Data@2, [], <<>>); - - <<13>> -> - more_please_headers(fun do_parse_headers/1, Data); - - <<>> -> - more_please_headers(fun do_parse_headers/1, Data); - - _ -> - {error, nil} - end. - --spec parse_headers_after_prelude(bitstring(), bitstring()) -> {ok, - multipart_headers()} | - {error, nil}. -parse_headers_after_prelude(Data, Boundary) -> - Dsize = erlang:byte_size(Data), - Bsize = erlang:byte_size(Boundary), - Required_size = Bsize + 4, - gleam@bool:guard( - Dsize < Required_size, - more_please_headers( - fun(_capture) -> parse_headers_after_prelude(_capture, Boundary) end, - Data - ), - fun() -> - gleam@result:'try'( - gleam_stdlib:bit_array_slice(Data, 0, Required_size - 2), - fun(Prefix) -> - gleam@result:'try'( - gleam_stdlib:bit_array_slice(Data, 2 + Bsize, 2), - fun(Second) -> - Desired = <<45, 45, Boundary/bitstring>>, - gleam@bool:guard( - Prefix /= Desired, - {error, nil}, - fun() -> case Second =:= <<45, 45>> of - true -> - Rest_size = Dsize - Required_size, - gleam@result:map( - gleam_stdlib:bit_array_slice( - Data, - Required_size, - Rest_size - ), - fun(Data@1) -> - {multipart_headers, - [], - Data@1} - end - ); - - false -> - Start = Required_size - 2, - Rest_size@1 = (Dsize - Required_size) - + 2, - gleam@result:'try'( - gleam_stdlib:bit_array_slice( - Data, - Start, - Rest_size@1 - ), - fun(Data@2) -> - do_parse_headers(Data@2) - end - ) - end end - ) - end - ) - end - ) - end - ). - --spec skip_preamble(bitstring(), bitstring()) -> {ok, multipart_headers()} | - {error, nil}. -skip_preamble(Data, Boundary) -> - Data_size = erlang:byte_size(Data), - Boundary_size = erlang:byte_size(Boundary), - Required = Boundary_size + 4, - case Data of - _ when Data_size < Required -> - more_please_headers( - fun(_capture) -> skip_preamble(_capture, Boundary) end, - Data - ); - - <<13, 10, 45, 45, Data@1/binary>> -> - case gleam_stdlib:bit_array_slice(Data@1, 0, Boundary_size) of - {ok, Prefix} when Prefix =:= Boundary -> - Start = Boundary_size, - Length = erlang:byte_size(Data@1) - Boundary_size, - gleam@result:'try'( - gleam_stdlib:bit_array_slice(Data@1, Start, Length), - fun(Rest) -> do_parse_headers(Rest) end - ); - - {ok, _} -> - skip_preamble(Data@1, Boundary); - - {error, _} -> - {error, nil} - end; - - <<_, Data@2/binary>> -> - skip_preamble(Data@2, Boundary) - end. - --spec parse_multipart_headers(bitstring(), binary()) -> {ok, - multipart_headers()} | - {error, nil}. -parse_multipart_headers(Data, Boundary) -> - Boundary@1 = gleam_stdlib:identity(Boundary), - Prefix = <<45, 45, Boundary@1/bitstring>>, - case gleam_stdlib:bit_array_slice(Data, 0, erlang:byte_size(Prefix)) =:= {ok, - Prefix} of - true -> - parse_headers_after_prelude(Data, Boundary@1); - - false -> - skip_preamble(Data, Boundary@1) - end. diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache deleted file mode 100644 index 173ac86..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache_meta b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache_meta deleted file mode 100644 index 1f65dce..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.erl b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.erl deleted file mode 100644 index 9d6d13e..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.erl +++ /dev/null @@ -1,153 +0,0 @@ --module(gleam@http@cookie). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([defaults/1, set_header/3, parse/1]). --export_type([same_site_policy/0, attributes/0]). - --type same_site_policy() :: lax | strict | none. - --type attributes() :: {attributes, - gleam@option:option(integer()), - gleam@option:option(binary()), - gleam@option:option(binary()), - boolean(), - boolean(), - gleam@option:option(same_site_policy())}. - --spec same_site_to_string(same_site_policy()) -> binary(). -same_site_to_string(Policy) -> - case Policy of - lax -> - <<"Lax"/utf8>>; - - strict -> - <<"Strict"/utf8>>; - - none -> - <<"None"/utf8>> - end. - --spec defaults(gleam@http:scheme()) -> attributes(). -defaults(Scheme) -> - {attributes, - none, - none, - {some, <<"/"/utf8>>}, - Scheme =:= https, - true, - {some, lax}}. - --spec cookie_attributes_to_list(attributes()) -> list(list(binary())). -cookie_attributes_to_list(Attributes) -> - {attributes, Max_age, Domain, Path, Secure, Http_only, Same_site} = Attributes, - _pipe = [case Max_age of - {some, 0} -> - {some, [<<"Expires=Thu, 01 Jan 1970 00:00:00 GMT"/utf8>>]}; - - _ -> - none - end, gleam@option:map( - Max_age, - fun(Max_age@1) -> - [<<"Max-Age="/utf8>>, gleam@int:to_string(Max_age@1)] - end - ), gleam@option:map( - Domain, - fun(Domain@1) -> [<<"Domain="/utf8>>, Domain@1] end - ), gleam@option:map(Path, fun(Path@1) -> [<<"Path="/utf8>>, Path@1] end), case Secure of - true -> - {some, [<<"Secure"/utf8>>]}; - - false -> - none - end, case Http_only of - true -> - {some, [<<"HttpOnly"/utf8>>]}; - - false -> - none - end, gleam@option:map( - Same_site, - fun(Same_site@1) -> - [<<"SameSite="/utf8>>, same_site_to_string(Same_site@1)] - end - )], - gleam@list:filter_map( - _pipe, - fun(_capture) -> gleam@option:to_result(_capture, nil) end - ). - --spec set_header(binary(), binary(), attributes()) -> binary(). -set_header(Name, Value, Attributes) -> - _pipe = [[Name, <<"="/utf8>>, Value] | - cookie_attributes_to_list(Attributes)], - _pipe@1 = gleam@list:map( - _pipe, - fun(_capture) -> gleam@string:join(_capture, <<""/utf8>>) end - ), - gleam@string:join(_pipe@1, <<"; "/utf8>>). - --spec check_token(binary()) -> {ok, nil} | {error, nil}. -check_token(Token) -> - case gleam@string:pop_grapheme(Token) of - {error, nil} -> - {ok, nil}; - - {ok, {<<" "/utf8>>, _}} -> - {error, nil}; - - {ok, {<<"\t"/utf8>>, _}} -> - {error, nil}; - - {ok, {<<"\r"/utf8>>, _}} -> - {error, nil}; - - {ok, {<<"\n"/utf8>>, _}} -> - {error, nil}; - - {ok, {<<"\f"/utf8>>, _}} -> - {error, nil}; - - {ok, {_, Rest}} -> - check_token(Rest) - end. - --spec parse(binary()) -> list({binary(), binary()}). -parse(Cookie_string) -> - _assert_subject = gleam@regex:from_string(<<"[,;]"/utf8>>), - {ok, Re} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/http/cookie"/utf8>>, - function => <<"parse"/utf8>>, - line => 101}) - end, - _pipe = gleam@regex:split(Re, Cookie_string), - gleam@list:filter_map( - _pipe, - fun(Pair) -> - case gleam@string:split_once(gleam@string:trim(Pair), <<"="/utf8>>) of - {ok, {<<""/utf8>>, _}} -> - {error, nil}; - - {ok, {Key, Value}} -> - Key@1 = gleam@string:trim(Key), - Value@1 = gleam@string:trim(Value), - gleam@result:then( - check_token(Key@1), - fun(_) -> - gleam@result:then( - check_token(Value@1), - fun(_) -> {ok, {Key@1, Value@1}} end - ) - end - ); - - {error, nil} -> - {error, nil} - end - end - ). diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache deleted file mode 100644 index cf9bcd7..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache_meta b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache_meta deleted file mode 100644 index 2108b82..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.erl b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.erl deleted file mode 100644 index e41d548..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@request.erl +++ /dev/null @@ -1,202 +0,0 @@ --module(gleam@http@request). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([to_uri/1, from_uri/1, get_header/2, set_header/3, prepend_header/3, set_body/2, map/2, path_segments/1, get_query/1, set_query/2, set_method/2, new/0, to/1, set_scheme/2, set_host/2, set_port/2, set_path/2, set_cookie/3, get_cookies/1]). --export_type([request/1]). - --type request(IAV) :: {request, - gleam@http:method(), - list({binary(), binary()}), - IAV, - gleam@http:scheme(), - binary(), - gleam@option:option(integer()), - binary(), - gleam@option:option(binary())}. - --spec to_uri(request(any())) -> gleam@uri:uri(). -to_uri(Request) -> - {uri, - {some, gleam@http:scheme_to_string(erlang:element(5, Request))}, - none, - {some, erlang:element(6, Request)}, - erlang:element(7, Request), - erlang:element(8, Request), - erlang:element(9, Request), - none}. - --spec from_uri(gleam@uri:uri()) -> {ok, request(binary())} | {error, nil}. -from_uri(Uri) -> - gleam@result:then( - begin - _pipe = erlang:element(2, Uri), - _pipe@1 = gleam@option:unwrap(_pipe, <<""/utf8>>), - gleam@http:scheme_from_string(_pipe@1) - end, - fun(Scheme) -> - gleam@result:then( - begin - _pipe@2 = erlang:element(4, Uri), - gleam@option:to_result(_pipe@2, nil) - end, - fun(Host) -> - Req = {request, - get, - [], - <<""/utf8>>, - Scheme, - Host, - erlang:element(5, Uri), - erlang:element(6, Uri), - erlang:element(7, Uri)}, - {ok, Req} - end - ) - end - ). - --spec get_header(request(any()), binary()) -> {ok, binary()} | {error, nil}. -get_header(Request, Key) -> - gleam@list:key_find(erlang:element(3, Request), gleam@string:lowercase(Key)). - --spec set_header(request(IBF), binary(), binary()) -> request(IBF). -set_header(Request, Key, Value) -> - Headers = gleam@list:key_set( - erlang:element(3, Request), - gleam@string:lowercase(Key), - Value - ), - erlang:setelement(3, Request, Headers). - --spec prepend_header(request(IBI), binary(), binary()) -> request(IBI). -prepend_header(Request, Key, Value) -> - Headers = [{gleam@string:lowercase(Key), Value} | - erlang:element(3, Request)], - erlang:setelement(3, Request, Headers). - --spec set_body(request(any()), IBN) -> request(IBN). -set_body(Req, Body) -> - {request, Method, Headers, _, Scheme, Host, Port, Path, Query} = Req, - {request, Method, Headers, Body, Scheme, Host, Port, Path, Query}. - --spec map(request(IBP), fun((IBP) -> IBR)) -> request(IBR). -map(Request, Transform) -> - _pipe = erlang:element(4, Request), - _pipe@1 = Transform(_pipe), - set_body(Request, _pipe@1). - --spec path_segments(request(any())) -> list(binary()). -path_segments(Request) -> - _pipe = erlang:element(8, Request), - gleam@uri:path_segments(_pipe). - --spec get_query(request(any())) -> {ok, list({binary(), binary()})} | - {error, nil}. -get_query(Request) -> - case erlang:element(9, Request) of - {some, Query_string} -> - gleam@uri:parse_query(Query_string); - - none -> - {ok, []} - end. - --spec set_query(request(ICB), list({binary(), binary()})) -> request(ICB). -set_query(Req, Query) -> - Pair = fun(T) -> - gleam@string_builder:from_strings( - [erlang:element(1, T), <<"="/utf8>>, erlang:element(2, T)] - ) - end, - Query@1 = begin - _pipe = Query, - _pipe@1 = gleam@list:map(_pipe, Pair), - _pipe@2 = gleam@list:intersperse( - _pipe@1, - gleam@string_builder:from_string(<<"&"/utf8>>) - ), - _pipe@3 = gleam@string_builder:concat(_pipe@2), - _pipe@4 = gleam@string_builder:to_string(_pipe@3), - {some, _pipe@4} - end, - erlang:setelement(9, Req, Query@1). - --spec set_method(request(ICF), gleam@http:method()) -> request(ICF). -set_method(Req, Method) -> - erlang:setelement(2, Req, Method). - --spec new() -> request(binary()). -new() -> - {request, - get, - [], - <<""/utf8>>, - https, - <<"localhost"/utf8>>, - none, - <<""/utf8>>, - none}. - --spec to(binary()) -> {ok, request(binary())} | {error, nil}. -to(Url) -> - _pipe = Url, - _pipe@1 = gleam@uri:parse(_pipe), - gleam@result:then(_pipe@1, fun from_uri/1). - --spec set_scheme(request(ICM), gleam@http:scheme()) -> request(ICM). -set_scheme(Req, Scheme) -> - erlang:setelement(5, Req, Scheme). - --spec set_host(request(ICP), binary()) -> request(ICP). -set_host(Req, Host) -> - erlang:setelement(6, Req, Host). - --spec set_port(request(ICS), integer()) -> request(ICS). -set_port(Req, Port) -> - erlang:setelement(7, Req, {some, Port}). - --spec set_path(request(ICV), binary()) -> request(ICV). -set_path(Req, Path) -> - erlang:setelement(8, Req, Path). - --spec set_cookie(request(ICY), binary(), binary()) -> request(ICY). -set_cookie(Req, Name, Value) -> - New_cookie_string = gleam@string:join([Name, Value], <<"="/utf8>>), - {Cookies_string@2, Headers@1} = case gleam@list:key_pop( - erlang:element(3, Req), - <<"cookie"/utf8>> - ) of - {ok, {Cookies_string, Headers}} -> - Cookies_string@1 = gleam@string:join( - [Cookies_string, New_cookie_string], - <<"; "/utf8>> - ), - {Cookies_string@1, Headers}; - - {error, nil} -> - {New_cookie_string, erlang:element(3, Req)} - end, - erlang:setelement( - 3, - Req, - [{<<"cookie"/utf8>>, Cookies_string@2} | Headers@1] - ). - --spec get_cookies(request(any())) -> list({binary(), binary()}). -get_cookies(Req) -> - {request, _, Headers, _, _, _, _, _, _} = Req, - _pipe = Headers, - _pipe@1 = gleam@list:filter_map( - _pipe, - fun(Header) -> - {Name, Value} = Header, - case Name of - <<"cookie"/utf8>> -> - {ok, gleam@http@cookie:parse(Value)}; - - _ -> - {error, nil} - end - end - ), - gleam@list:flatten(_pipe@1). diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache deleted file mode 100644 index 5656963..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache_meta b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache_meta deleted file mode 100644 index 1f05041..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.erl b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.erl deleted file mode 100644 index 300726a..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@response.erl +++ /dev/null @@ -1,97 +0,0 @@ --module(gleam@http@response). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/1, get_header/2, set_header/3, prepend_header/3, set_body/2, try_map/2, map/2, redirect/1, get_cookies/1, set_cookie/4, expire_cookie/3]). --export_type([response/1]). - --type response(HXJ) :: {response, integer(), list({binary(), binary()}), HXJ}. - --spec new(integer()) -> response(binary()). -new(Status) -> - {response, Status, [], <<""/utf8>>}. - --spec get_header(response(any()), binary()) -> {ok, binary()} | {error, nil}. -get_header(Response, Key) -> - gleam@list:key_find( - erlang:element(3, Response), - gleam@string:lowercase(Key) - ). - --spec set_header(response(HXY), binary(), binary()) -> response(HXY). -set_header(Response, Key, Value) -> - Headers = gleam@list:key_set( - erlang:element(3, Response), - gleam@string:lowercase(Key), - Value - ), - erlang:setelement(3, Response, Headers). - --spec prepend_header(response(HYB), binary(), binary()) -> response(HYB). -prepend_header(Response, Key, Value) -> - Headers = [{gleam@string:lowercase(Key), Value} | - erlang:element(3, Response)], - erlang:setelement(3, Response, Headers). - --spec set_body(response(any()), HYG) -> response(HYG). -set_body(Response, Body) -> - {response, Status, Headers, _} = Response, - {response, Status, Headers, Body}. - --spec try_map(response(HXK), fun((HXK) -> {ok, HXM} | {error, HXN})) -> {ok, - response(HXM)} | - {error, HXN}. -try_map(Response, Transform) -> - gleam@result:then( - Transform(erlang:element(4, Response)), - fun(Body) -> {ok, set_body(Response, Body)} end - ). - --spec map(response(HYI), fun((HYI) -> HYK)) -> response(HYK). -map(Response, Transform) -> - _pipe = erlang:element(4, Response), - _pipe@1 = Transform(_pipe), - set_body(Response, _pipe@1). - --spec redirect(binary()) -> response(binary()). -redirect(Uri) -> - {response, - 303, - [{<<"location"/utf8>>, Uri}], - gleam@string:append(<<"You are being redirected to "/utf8>>, Uri)}. - --spec get_cookies(response(any())) -> list({binary(), binary()}). -get_cookies(Resp) -> - {response, _, Headers, _} = Resp, - _pipe = Headers, - _pipe@1 = gleam@list:filter_map( - _pipe, - fun(Header) -> - {Name, Value} = Header, - case Name of - <<"set-cookie"/utf8>> -> - {ok, gleam@http@cookie:parse(Value)}; - - _ -> - {error, nil} - end - end - ), - gleam@list:flatten(_pipe@1). - --spec set_cookie( - response(HYP), - binary(), - binary(), - gleam@http@cookie:attributes() -) -> response(HYP). -set_cookie(Response, Name, Value, Attributes) -> - prepend_header( - Response, - <<"set-cookie"/utf8>>, - gleam@http@cookie:set_header(Name, Value, Attributes) - ). - --spec expire_cookie(response(HYS), binary(), gleam@http@cookie:attributes()) -> response(HYS). -expire_cookie(Response, Name, Attributes) -> - Attrs = erlang:setelement(2, Attributes, {some, 0}), - set_cookie(Response, Name, <<""/utf8>>, Attrs). diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache deleted file mode 100644 index 2bdc561..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache_meta b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache_meta deleted file mode 100644 index c0222d6..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.erl b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.erl deleted file mode 100644 index 7aa0ed5..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam@http@service.erl +++ /dev/null @@ -1,82 +0,0 @@ --module(gleam@http@service). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([map_response_body/2, prepend_response_header/3, method_override/1]). - --spec map_response_body( - fun((gleam@http@request:request(IIL)) -> gleam@http@response:response(IIM)), - fun((IIM) -> IIP) -) -> fun((gleam@http@request:request(IIL)) -> gleam@http@response:response(IIP)). -map_response_body(Service, Mapper) -> - fun(Req) -> _pipe = Req, - _pipe@1 = Service(_pipe), - gleam@http@response:map(_pipe@1, Mapper) end. - --spec prepend_response_header( - fun((gleam@http@request:request(IIS)) -> gleam@http@response:response(IIT)), - binary(), - binary() -) -> fun((gleam@http@request:request(IIS)) -> gleam@http@response:response(IIT)). -prepend_response_header(Service, Key, Value) -> - fun(Req) -> _pipe = Req, - _pipe@1 = Service(_pipe), - gleam@http@response:prepend_header(_pipe@1, Key, Value) end. - --spec ensure_post(gleam@http@request:request(IIY)) -> {ok, - gleam@http@request:request(IIY)} | - {error, nil}. -ensure_post(Req) -> - case erlang:element(2, Req) of - post -> - {ok, Req}; - - _ -> - {error, nil} - end. - --spec get_override_method(gleam@http@request:request(any())) -> {ok, - gleam@http:method()} | - {error, nil}. -get_override_method(Request) -> - gleam@result:then( - gleam@http@request:get_query(Request), - fun(Query_params) -> - gleam@result:then( - gleam@list:key_find(Query_params, <<"_method"/utf8>>), - fun(Method) -> - gleam@result:then( - gleam@http:parse_method(Method), - fun(Method@1) -> case Method@1 of - put -> - {ok, Method@1}; - - patch -> - {ok, Method@1}; - - delete -> - {ok, Method@1}; - - _ -> - {error, nil} - end end - ) - end - ) - end - ). - --spec method_override( - fun((gleam@http@request:request(IJF)) -> gleam@http@response:response(IJG)) -) -> fun((gleam@http@request:request(IJF)) -> gleam@http@response:response(IJG)). -method_override(Service) -> - fun(Request) -> _pipe = Request, - _pipe@1 = ensure_post(_pipe), - _pipe@2 = gleam@result:then(_pipe@1, fun get_override_method/1), - _pipe@3 = gleam@result:map( - _pipe@2, - fun(_capture) -> - gleam@http@request:set_method(Request, _capture) - end - ), - _pipe@4 = gleam@result:unwrap(_pipe@3, Request), - Service(_pipe@4) end. diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam_http_native.erl b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam_http_native.erl deleted file mode 100644 index bb499bb..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam_http_native.erl +++ /dev/null @@ -1,88 +0,0 @@ --module(gleam_http_native). --export([decode_method/1]). - -decode_method(Term) -> - case Term of - "connect" -> {ok, connect}; - "delete" -> {ok, delete}; - "get" -> {ok, get}; - "head" -> {ok, head}; - "options" -> {ok, options}; - "patch" -> {ok, patch}; - "post" -> {ok, post}; - "put" -> {ok, put}; - "trace" -> {ok, trace}; - "CONNECT" -> {ok, connect}; - "DELETE" -> {ok, delete}; - "GET" -> {ok, get}; - "HEAD" -> {ok, head}; - "OPTIONS" -> {ok, options}; - "PATCH" -> {ok, patch}; - "POST" -> {ok, post}; - "PUT" -> {ok, put}; - "TRACE" -> {ok, trace}; - "Connect" -> {ok, connect}; - "Delete" -> {ok, delete}; - "Get" -> {ok, get}; - "Head" -> {ok, head}; - "Options" -> {ok, options}; - "Patch" -> {ok, patch}; - "Post" -> {ok, post}; - "Put" -> {ok, put}; - "Trace" -> {ok, trace}; - 'connect' -> {ok, connect}; - 'delete' -> {ok, delete}; - 'get' -> {ok, get}; - 'head' -> {ok, head}; - 'options' -> {ok, options}; - 'patch' -> {ok, patch}; - 'post' -> {ok, post}; - 'put' -> {ok, put}; - 'trace' -> {ok, trace}; - 'CONNECT' -> {ok, connect}; - 'DELETE' -> {ok, delete}; - 'GET' -> {ok, get}; - 'HEAD' -> {ok, head}; - 'OPTIONS' -> {ok, options}; - 'PATCH' -> {ok, patch}; - 'POST' -> {ok, post}; - 'PUT' -> {ok, put}; - 'TRACE' -> {ok, trace}; - 'Connect' -> {ok, connect}; - 'Delete' -> {ok, delete}; - 'Get' -> {ok, get}; - 'Head' -> {ok, head}; - 'Options' -> {ok, options}; - 'Patch' -> {ok, patch}; - 'Post' -> {ok, post}; - 'Put' -> {ok, put}; - 'Trace' -> {ok, trace}; - <<"connect">> -> {ok, connect}; - <<"delete">> -> {ok, delete}; - <<"get">> -> {ok, get}; - <<"head">> -> {ok, head}; - <<"options">> -> {ok, options}; - <<"patch">> -> {ok, patch}; - <<"post">> -> {ok, post}; - <<"put">> -> {ok, put}; - <<"trace">> -> {ok, trace}; - <<"CONNECT">> -> {ok, connect}; - <<"DELETE">> -> {ok, delete}; - <<"GET">> -> {ok, get}; - <<"HEAD">> -> {ok, head}; - <<"OPTIONS">> -> {ok, options}; - <<"PATCH">> -> {ok, patch}; - <<"POST">> -> {ok, post}; - <<"PUT">> -> {ok, put}; - <<"TRACE">> -> {ok, trace}; - <<"Connect">> -> {ok, connect}; - <<"Delete">> -> {ok, delete}; - <<"Get">> -> {ok, get}; - <<"Head">> -> {ok, head}; - <<"Options">> -> {ok, options}; - <<"Patch">> -> {ok, patch}; - <<"Post">> -> {ok, post}; - <<"Put">> -> {ok, put}; - <<"Trace">> -> {ok, trace}; - _ -> {error, nil} - end. diff --git a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam_http_native.mjs b/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam_http_native.mjs deleted file mode 100644 index c871a8b..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/_gleam_artefacts/gleam_http_native.mjs +++ /dev/null @@ -1,38 +0,0 @@ -import { Ok, Error } from "./gleam.mjs"; -import { - Get, - Post, - Head, - Put, - Delete, - Trace, - Connect, - Options, - Patch, -} from "./gleam/http.mjs"; - -export function decode_method(value) { - try { - switch (value.toLowerCase()) { - case "get": - return new Ok(new Get()); - case "post": - return new Ok(new Post()); - case "head": - return new Ok(new Head()); - case "put": - return new Ok(new Put()); - case "delete": - return new Ok(new Delete()); - case "trace": - return new Ok(new Trace()); - case "connect": - return new Ok(new Connect()); - case "options": - return new Ok(new Options()); - case "patch": - return new Ok(new Patch()); - } - } catch {} - return new Error(undefined); -} diff --git a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http.beam b/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http.beam deleted file mode 100644 index 39142e6..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@cookie.beam b/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@cookie.beam deleted file mode 100644 index 905fe68..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@cookie.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@request.beam b/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@request.beam deleted file mode 100644 index f499969..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@request.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@response.beam b/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@response.beam deleted file mode 100644 index 1554f40..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@response.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@service.beam b/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@service.beam deleted file mode 100644 index aa271f1..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam@http@service.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam_http.app b/aoc2023/build/dev/erlang/gleam_http/ebin/gleam_http.app deleted file mode 100644 index 5f55c6f..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam_http.app +++ /dev/null @@ -1,7 +0,0 @@ -{application, gleam_http, [ - {vsn, "3.5.2"}, - {applications, [gleam_stdlib]}, - {description, "Types and functions for Gleam HTTP clients and servers"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam_http_native.beam b/aoc2023/build/dev/erlang/gleam_http/ebin/gleam_http_native.beam deleted file mode 100644 index 0b5e282..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_http/ebin/gleam_http_native.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@cookie_Attributes.hrl b/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@cookie_Attributes.hrl deleted file mode 100644 index 78a7d02..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@cookie_Attributes.hrl +++ /dev/null @@ -1,8 +0,0 @@ --record(attributes, { - max_age :: gleam@option:option(integer()), - domain :: gleam@option:option(binary()), - path :: gleam@option:option(binary()), - secure :: boolean(), - http_only :: boolean(), - same_site :: gleam@option:option(gleam@http@cookie:same_site_policy()) -}). diff --git a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@request_Request.hrl b/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@request_Request.hrl deleted file mode 100644 index c8bbae6..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@request_Request.hrl +++ /dev/null @@ -1,10 +0,0 @@ --record(request, { - method :: gleam@http:method(), - headers :: list({binary(), binary()}), - body :: any(), - scheme :: gleam@http:scheme(), - host :: binary(), - port :: gleam@option:option(integer()), - path :: binary(), - 'query' :: gleam@option:option(binary()) -}). diff --git a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@response_Response.hrl b/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@response_Response.hrl deleted file mode 100644 index ba6f077..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http@response_Response.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(response, { - status :: integer(), - headers :: list({binary(), binary()}), - body :: any() -}). diff --git a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MoreRequiredForBody.hrl b/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MoreRequiredForBody.hrl deleted file mode 100644 index abd56dd..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MoreRequiredForBody.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(more_required_for_body, { - chunk :: bitstring(), - continuation :: fun((bitstring()) -> {ok, gleam@http:multipart_body()} | - {error, nil}) -}). diff --git a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MoreRequiredForHeaders.hrl b/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MoreRequiredForHeaders.hrl deleted file mode 100644 index 43729c1..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MoreRequiredForHeaders.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(more_required_for_headers, { - continuation :: fun((bitstring()) -> {ok, gleam@http:multipart_headers()} | - {error, nil}) -}). diff --git a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MultipartBody.hrl b/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MultipartBody.hrl deleted file mode 100644 index 4521591..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MultipartBody.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(multipart_body, { - chunk :: bitstring(), - done :: boolean(), - remaining :: bitstring() -}). diff --git a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MultipartHeaders.hrl b/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MultipartHeaders.hrl deleted file mode 100644 index d9fca5c..0000000 --- a/aoc2023/build/dev/erlang/gleam_http/include/gleam@http_MultipartHeaders.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(multipart_headers, { - headers :: list({binary(), binary()}), - remaining :: bitstring() -}). diff --git a/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache b/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache deleted file mode 100644 index 59082af..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache_meta b/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache_meta deleted file mode 100644 index a340156..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.erl b/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.erl deleted file mode 100644 index 1d634df..0000000 --- a/aoc2023/build/dev/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.erl +++ /dev/null @@ -1,118 +0,0 @@ --module(gleam@httpc). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([send_bits/1, send/1]). --export_type([charlist/0, erl_http_option/0, body_format/0, erl_option/0]). - --type charlist() :: any(). - --type erl_http_option() :: any(). - --type body_format() :: binary. - --type erl_option() :: {body_format, body_format()}. - --spec charlist_header({binary(), binary()}) -> {charlist(), charlist()}. -charlist_header(Header) -> - {K, V} = Header, - {erlang:binary_to_list(K), erlang:binary_to_list(V)}. - --spec string_header({charlist(), charlist()}) -> {binary(), binary()}. -string_header(Header) -> - {K, V} = Header, - {erlang:list_to_binary(K), erlang:list_to_binary(V)}. - --spec send_bits(gleam@http@request:request(bitstring())) -> {ok, - gleam@http@response:response(bitstring())} | - {error, gleam@dynamic:dynamic_()}. -send_bits(Req) -> - Erl_url = begin - _pipe = Req, - _pipe@1 = gleam@http@request:to_uri(_pipe), - _pipe@2 = gleam@uri:to_string(_pipe@1), - erlang:binary_to_list(_pipe@2) - end, - Erl_headers = gleam@list:map(erlang:element(3, Req), fun charlist_header/1), - Erl_http_options = [], - Erl_options = [{body_format, binary}], - gleam@result:then(case erlang:element(2, Req) of - options -> - Erl_req = {Erl_url, Erl_headers}, - httpc:request( - erlang:element(2, Req), - Erl_req, - Erl_http_options, - Erl_options - ); - - head -> - Erl_req = {Erl_url, Erl_headers}, - httpc:request( - erlang:element(2, Req), - Erl_req, - Erl_http_options, - Erl_options - ); - - get -> - Erl_req = {Erl_url, Erl_headers}, - httpc:request( - erlang:element(2, Req), - Erl_req, - Erl_http_options, - Erl_options - ); - - _ -> - Erl_content_type = begin - _pipe@3 = Req, - _pipe@4 = gleam@http@request:get_header( - _pipe@3, - <<"content-type"/utf8>> - ), - _pipe@5 = gleam@result:unwrap( - _pipe@4, - <<"application/octet-stream"/utf8>> - ), - erlang:binary_to_list(_pipe@5) - end, - Erl_req@1 = {Erl_url, - Erl_headers, - Erl_content_type, - erlang:element(4, Req)}, - httpc:request( - erlang:element(2, Req), - Erl_req@1, - Erl_http_options, - Erl_options - ) - end, fun(Response) -> - {{_, Status, _}, Headers, Resp_body} = Response, - {ok, - {response, - Status, - gleam@list:map(Headers, fun string_header/1), - Resp_body}} - end). - --spec send(gleam@http@request:request(binary())) -> {ok, - gleam@http@response:response(binary())} | - {error, gleam@dynamic:dynamic_()}. -send(Req) -> - gleam@result:then( - begin - _pipe = Req, - _pipe@1 = gleam@http@request:map(_pipe, fun gleam_stdlib:identity/1), - send_bits(_pipe@1) - end, - fun(Resp) -> case gleam@bit_array:to_string(erlang:element(4, Resp)) of - {ok, Body} -> - {ok, gleam@http@response:set_body(Resp, Body)}; - - {error, _} -> - {error, - gleam@dynamic:from( - <<"Response body was not valid UTF-8"/utf8>> - )} - end end - ). diff --git a/aoc2023/build/dev/erlang/gleam_httpc/ebin/gleam@httpc.beam b/aoc2023/build/dev/erlang/gleam_httpc/ebin/gleam@httpc.beam deleted file mode 100644 index 1edf411..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_httpc/ebin/gleam@httpc.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_httpc/ebin/gleam_httpc.app b/aoc2023/build/dev/erlang/gleam_httpc/ebin/gleam_httpc.app deleted file mode 100644 index c99b5ea..0000000 --- a/aoc2023/build/dev/erlang/gleam_httpc/ebin/gleam_httpc.app +++ /dev/null @@ -1,10 +0,0 @@ -{application, gleam_httpc, [ - {vsn, "2.1.1"}, - {applications, [gleam_http, - gleam_stdlib, - inets, - ssl]}, - {description, "Gleam bindings to Erlang's built in HTTP client, httpc"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache deleted file mode 100644 index 5aa9880..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache_meta b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache_meta deleted file mode 100644 index d5f2a3e..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.erl deleted file mode 100644 index 9b215cb..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.erl +++ /dev/null @@ -1,273 +0,0 @@ --module(gleam@otp@actor). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([continue/1, with_selector/2, to_erlang_start_result/1, start_spec/1, start/2, send/2, call/3]). --export_type([message/1, next/2, init_result/2, self/2, spec/2, start_error/0, start_init_message/1]). - --type message(LTB) :: {message, LTB} | - {system, gleam@otp@system:system_message()} | - {unexpected, gleam@dynamic:dynamic_()}. - --type next(LTC, LTD) :: {continue, - LTD, - gleam@option:option(gleam@erlang@process:selector(LTC))} | - {stop, gleam@erlang@process:exit_reason()}. - --type init_result(LTE, LTF) :: {ready, LTE, gleam@erlang@process:selector(LTF)} | - {failed, binary()}. - --type self(LTG, LTH) :: {self, - gleam@otp@system:mode(), - gleam@erlang@process:pid_(), - LTG, - gleam@erlang@process:subject(LTH), - gleam@erlang@process:selector(message(LTH)), - gleam@otp@system:debug_state(), - fun((LTH, LTG) -> next(LTH, LTG))}. - --type spec(LTI, LTJ) :: {spec, - fun(() -> init_result(LTI, LTJ)), - integer(), - fun((LTJ, LTI) -> next(LTJ, LTI))}. - --type start_error() :: init_timeout | - {init_failed, gleam@erlang@process:exit_reason()} | - {init_crashed, gleam@dynamic:dynamic_()}. - --type start_init_message(LTK) :: {ack, - {ok, gleam@erlang@process:subject(LTK)} | - {error, gleam@erlang@process:exit_reason()}} | - {mon, gleam@erlang@process:process_down()}. - --spec continue(LTR) -> next(any(), LTR). -continue(State) -> - {continue, State, none}. - --spec with_selector(next(LTV, LTW), gleam@erlang@process:selector(LTV)) -> next(LTV, LTW). -with_selector(Value, Selector) -> - case Value of - {continue, State, _} -> - {continue, State, {some, Selector}}; - - _ -> - Value - end. - --spec exit_process(gleam@erlang@process:exit_reason()) -> gleam@erlang@process:exit_reason(). -exit_process(Reason) -> - Reason. - --spec selecting_system_messages(gleam@erlang@process:selector(message(LUH))) -> gleam@erlang@process:selector(message(LUH)). -selecting_system_messages(Selector) -> - _pipe = Selector, - gleam@erlang@process:selecting_record3( - _pipe, - erlang:binary_to_atom(<<"system"/utf8>>), - fun gleam_otp_external:convert_system_message/2 - ). - --spec receive_message(self(any(), LUD)) -> message(LUD). -receive_message(Self) -> - Selector = case erlang:element(2, Self) of - suspended -> - _pipe = gleam_erlang_ffi:new_selector(), - selecting_system_messages(_pipe); - - running -> - _pipe@1 = gleam_erlang_ffi:new_selector(), - _pipe@2 = gleam@erlang@process:selecting_anything( - _pipe@1, - fun(Field@0) -> {unexpected, Field@0} end - ), - _pipe@3 = gleam_erlang_ffi:merge_selector( - _pipe@2, - erlang:element(6, Self) - ), - selecting_system_messages(_pipe@3) - end, - gleam_erlang_ffi:select(Selector). - --spec process_status_info(self(any(), any())) -> gleam@otp@system:status_info(). -process_status_info(Self) -> - {status_info, - erlang:binary_to_atom(<<"gleam@otp@actor"/utf8>>), - erlang:element(3, Self), - erlang:element(2, Self), - erlang:element(7, Self), - gleam@dynamic:from(erlang:element(4, Self))}. - --spec init_selector( - gleam@erlang@process:subject(LYW), - gleam@erlang@process:selector(LYW) -) -> gleam@erlang@process:selector(message(LYW)). -init_selector(Subject, Selector) -> - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = gleam@erlang@process:selecting( - _pipe, - Subject, - fun(Field@0) -> {message, Field@0} end - ), - gleam_erlang_ffi:merge_selector( - _pipe@1, - gleam_erlang_ffi:map_selector( - Selector, - fun(Field@0) -> {message, Field@0} end - ) - ). - --spec loop(self(any(), any())) -> gleam@erlang@process:exit_reason(). -loop(Self) -> - case receive_message(Self) of - {system, System} -> - case System of - {get_state, Callback} -> - Callback(gleam@dynamic:from(erlang:element(4, Self))), - loop(Self); - - {resume, Callback@1} -> - Callback@1(), - loop(erlang:setelement(2, Self, running)); - - {suspend, Callback@2} -> - Callback@2(), - loop(erlang:setelement(2, Self, suspended)); - - {get_status, Callback@3} -> - Callback@3(process_status_info(Self)), - loop(Self) - end; - - {unexpected, Message} -> - logger:warning( - unicode:characters_to_list( - <<"Actor discarding unexpected message: ~s"/utf8>> - ), - [unicode:characters_to_list(gleam@string:inspect(Message))] - ), - loop(Self); - - {message, Msg} -> - case (erlang:element(8, Self))(Msg, erlang:element(4, Self)) of - {stop, Reason} -> - exit_process(Reason); - - {continue, State, New_selector} -> - Selector = begin - _pipe = New_selector, - _pipe@1 = gleam@option:map( - _pipe, - fun(_capture) -> - init_selector(erlang:element(5, Self), _capture) - end - ), - gleam@option:unwrap(_pipe@1, erlang:element(6, Self)) - end, - loop( - erlang:setelement( - 6, - erlang:setelement(4, Self, State), - Selector - ) - ) - end - end. - --spec initialise_actor( - spec(any(), LUY), - gleam@erlang@process:subject({ok, gleam@erlang@process:subject(LUY)} | - {error, gleam@erlang@process:exit_reason()}) -) -> gleam@erlang@process:exit_reason(). -initialise_actor(Spec, Ack) -> - Subject = gleam@erlang@process:new_subject(), - case (erlang:element(2, Spec))() of - {ready, State, Selector} -> - Selector@1 = init_selector(Subject, Selector), - gleam@erlang@process:send(Ack, {ok, Subject}), - Self = {self, - running, - gleam@erlang@process:subject_owner(Ack), - State, - Subject, - Selector@1, - sys:debug_options([]), - erlang:element(4, Spec)}, - loop(Self); - - {failed, Reason} -> - gleam@erlang@process:send(Ack, {error, {abnormal, Reason}}), - exit_process({abnormal, Reason}) - end. - --spec to_erlang_start_result( - {ok, gleam@erlang@process:subject(any())} | {error, start_error()} -) -> {ok, gleam@erlang@process:pid_()} | {error, gleam@dynamic:dynamic_()}. -to_erlang_start_result(Res) -> - case Res of - {ok, X} -> - {ok, gleam@erlang@process:subject_owner(X)}; - - {error, X@1} -> - {error, gleam@dynamic:from(X@1)} - end. - --spec start_spec(spec(any(), LVM)) -> {ok, gleam@erlang@process:subject(LVM)} | - {error, start_error()}. -start_spec(Spec) -> - Ack_subject = gleam@erlang@process:new_subject(), - Child = gleam@erlang@process:start( - fun() -> initialise_actor(Spec, Ack_subject) end, - true - ), - Monitor = gleam@erlang@process:monitor_process(Child), - Selector = begin - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = gleam@erlang@process:selecting( - _pipe, - Ack_subject, - fun(Field@0) -> {ack, Field@0} end - ), - gleam@erlang@process:selecting_process_down( - _pipe@1, - Monitor, - fun(Field@0) -> {mon, Field@0} end - ) - end, - Result = case gleam_erlang_ffi:select(Selector, erlang:element(3, Spec)) of - {ok, {ack, {ok, Channel}}} -> - {ok, Channel}; - - {ok, {ack, {error, Reason}}} -> - {error, {init_failed, Reason}}; - - {ok, {mon, Down}} -> - {error, {init_crashed, erlang:element(3, Down)}}; - - {error, nil} -> - gleam@erlang@process:kill(Child), - {error, init_timeout} - end, - gleam_erlang_ffi:demonitor(Monitor), - Result. - --spec start(LVS, fun((LVT, LVS) -> next(LVT, LVS))) -> {ok, - gleam@erlang@process:subject(LVT)} | - {error, start_error()}. -start(State, Loop) -> - start_spec( - {spec, - fun() -> {ready, State, gleam_erlang_ffi:new_selector()} end, - 5000, - Loop} - ). - --spec send(gleam@erlang@process:subject(LVZ), LVZ) -> nil. -send(Subject, Msg) -> - gleam@erlang@process:send(Subject, Msg). - --spec call( - gleam@erlang@process:subject(LWB), - fun((gleam@erlang@process:subject(LWD)) -> LWB), - integer() -) -> LWD. -call(Selector, Make_message, Timeout) -> - gleam@erlang@process:call(Selector, Make_message, Timeout). diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache deleted file mode 100644 index 2970843..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache_meta b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache_meta deleted file mode 100644 index 1997b5a..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.erl deleted file mode 100644 index 8792f14..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.erl +++ /dev/null @@ -1,53 +0,0 @@ --module(gleam@otp@intensity_tracker). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/2, trim_window/3, add_event/1]). --export_type([intensity_tracker/0, too_intense/0]). - --opaque intensity_tracker() :: {intensity_tracker, - integer(), - integer(), - list(integer())}. - --type too_intense() :: too_intense. - --spec new(integer(), integer()) -> intensity_tracker(). -new(Limit, Period) -> - {intensity_tracker, Limit, Period, []}. - --spec now_seconds() -> integer(). -now_seconds() -> - erlang:monotonic_time(1). - --spec trim_window(list(integer()), integer(), integer()) -> list(integer()). -trim_window(Events, Now, Period) -> - case Events of - [] -> - []; - - [Event | Events@1] -> - case Now >= (Event + Period) of - true -> - [Event | trim_window(Events@1, Now, Period)]; - - false -> - [] - end - end. - --spec add_event(intensity_tracker()) -> {ok, intensity_tracker()} | - {error, too_intense()}. -add_event(Tracker) -> - Now = now_seconds(), - Events = trim_window( - [Now | erlang:element(4, Tracker)], - Now, - erlang:element(3, Tracker) - ), - case gleam@list:length(Events) >= erlang:element(2, Tracker) of - true -> - {error, too_intense}; - - false -> - {ok, erlang:setelement(4, Tracker, Events)} - end. diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache deleted file mode 100644 index e911262..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache_meta b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache_meta deleted file mode 100644 index 5f1cb59..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.erl deleted file mode 100644 index b205739..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(gleam@otp@port). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([port_/0]). - --type port_() :: any(). - - diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache deleted file mode 100644 index e3cbbc7..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache_meta b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache_meta deleted file mode 100644 index f6f257e..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.erl deleted file mode 100644 index 75e6c9f..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.erl +++ /dev/null @@ -1,322 +0,0 @@ --module(gleam@otp@supervisor). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([add/2, supervisor/1, worker/1, returning/2, start_spec/1, start/1, application_stopped/0, to_erlang_start_result/1]). --export_type([spec/2, children/1, child_spec/3, child_start_error/0, message/0, instruction/0, state/1, starter/1, child/1, handle_exit_error/0, application_start_mode/0, application_stop/0]). - --type spec(MID, MIE) :: {spec, - MID, - integer(), - integer(), - fun((children(MID)) -> children(MIE))}. - --opaque children(MIF) :: {ready, starter(MIF)} | {failed, child_start_error()}. - --opaque child_spec(MIG, MIH, MII) :: {child_spec, - fun((MIH) -> {ok, gleam@erlang@process:subject(MIG)} | - {error, gleam@otp@actor:start_error()}), - fun((MIH, gleam@erlang@process:subject(MIG)) -> MII)}. - --type child_start_error() :: {child_start_error, - gleam@option:option(gleam@erlang@process:pid_()), - gleam@otp@actor:start_error()}. - --opaque message() :: {exit, gleam@erlang@process:exit_message()} | - {retry_restart, gleam@erlang@process:pid_()}. - --type instruction() :: start_all | {start_from, gleam@erlang@process:pid_()}. - --type state(MIJ) :: {state, - gleam@otp@intensity_tracker:intensity_tracker(), - starter(MIJ), - gleam@erlang@process:subject(gleam@erlang@process:pid_())}. - --type starter(MIK) :: {starter, - MIK, - gleam@option:option(fun((instruction()) -> {ok, - {starter(MIK), instruction()}} | - {error, child_start_error()}))}. - --type child(MIL) :: {child, gleam@erlang@process:pid_(), MIL}. - --type handle_exit_error() :: {restart_failed, - gleam@erlang@process:pid_(), - gleam@otp@intensity_tracker:intensity_tracker()} | - too_many_restarts. - --type application_start_mode() :: normal | - {takeover, gleam@erlang@node:node_()} | - {failover, gleam@erlang@node:node_()}. - --type application_stop() :: any(). - --spec start_child(child_spec(any(), MIP, MIQ), MIP) -> {ok, child(MIQ)} | - {error, child_start_error()}. -start_child(Child_spec, Argument) -> - gleam@result:then( - begin - _pipe = (erlang:element(2, Child_spec))(Argument), - gleam@result:map_error( - _pipe, - fun(_capture) -> {child_start_error, none, _capture} end - ) - end, - fun(Subject) -> - {ok, - {child, - gleam@erlang@process:subject_owner(Subject), - (erlang:element(3, Child_spec))(Argument, Subject)}} - end - ). - --spec shutdown_child( - gleam@erlang@process:pid_(), - child_spec(any(), any(), any()) -) -> nil. -shutdown_child(Pid, _) -> - gleam@erlang@process:send_exit(Pid). - --spec perform_instruction_for_child( - MJD, - instruction(), - child_spec(any(), MJD, MJF), - child(MJF) -) -> {ok, {child(MJF), instruction()}} | {error, child_start_error()}. -perform_instruction_for_child(Argument, Instruction, Child_spec, Child) -> - Current = erlang:element(2, Child), - case Instruction of - {start_from, Target} when Target =/= Current -> - {ok, {Child, Instruction}}; - - _ -> - shutdown_child(Current, Child_spec), - gleam@result:then( - start_child(Child_spec, Argument), - fun(Child@1) -> {ok, {Child@1, start_all}} end - ) - end. - --spec add_child_to_starter( - starter(MJN), - child_spec(any(), MJN, MJQ), - child(MJQ) -) -> starter(MJQ). -add_child_to_starter(Starter, Child_spec, Child) -> - Starter@3 = fun(Instruction) -> - gleam@result:then(case erlang:element(3, Starter) of - {some, Start} -> - Start(Instruction); - - none -> - {ok, {Starter, Instruction}} - end, fun(_use0) -> - {Starter@1, Instruction@1} = _use0, - gleam@result:then( - perform_instruction_for_child( - erlang:element(2, Starter@1), - Instruction@1, - Child_spec, - Child - ), - fun(_use0@1) -> - {Child@1, Instruction@2} = _use0@1, - Starter@2 = add_child_to_starter( - Starter@1, - Child_spec, - Child@1 - ), - {ok, {Starter@2, Instruction@2}} - end - ) - end) - end, - {starter, erlang:element(3, Child), {some, Starter@3}}. - --spec start_and_add_child(starter(MJW), child_spec(any(), MJW, MJZ)) -> children(MJZ). -start_and_add_child(State, Child_spec) -> - case start_child(Child_spec, erlang:element(2, State)) of - {ok, Child} -> - {ready, add_child_to_starter(State, Child_spec, Child)}; - - {error, Reason} -> - {failed, Reason} - end. - --spec add(children(MKE), child_spec(any(), MKE, MKH)) -> children(MKH). -add(Children, Child_spec) -> - case Children of - {failed, Fail} -> - {failed, Fail}; - - {ready, State} -> - start_and_add_child(State, Child_spec) - end. - --spec supervisor( - fun((MKM) -> {ok, gleam@erlang@process:subject(MKN)} | - {error, gleam@otp@actor:start_error()}) -) -> child_spec(MKN, MKM, MKM). -supervisor(Start) -> - {child_spec, Start, fun(Argument, _) -> Argument end}. - --spec worker( - fun((MKU) -> {ok, gleam@erlang@process:subject(MKV)} | - {error, gleam@otp@actor:start_error()}) -) -> child_spec(MKV, MKU, MKU). -worker(Start) -> - {child_spec, Start, fun(Argument, _) -> Argument end}. - --spec returning( - child_spec(MLC, MLD, any()), - fun((MLD, gleam@erlang@process:subject(MLC)) -> MLJ) -) -> child_spec(MLC, MLD, MLJ). -returning(Child, Updater) -> - {child_spec, erlang:element(2, Child), Updater}. - --spec init(spec(any(), MLO)) -> gleam@otp@actor:init_result(state(MLO), message()). -init(Spec) -> - Retry = gleam@erlang@process:new_subject(), - gleam_erlang_ffi:trap_exits(true), - Selector = begin - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = gleam@erlang@process:selecting( - _pipe, - Retry, - fun(Field@0) -> {retry_restart, Field@0} end - ), - gleam@erlang@process:selecting_trapped_exits( - _pipe@1, - fun(Field@0) -> {exit, Field@0} end - ) - end, - Result = begin - _pipe@2 = {starter, erlang:element(2, Spec), none}, - _pipe@3 = {ready, _pipe@2}, - (erlang:element(5, Spec))(_pipe@3) - end, - case Result of - {ready, Starter} -> - Restarts = gleam@otp@intensity_tracker:new( - erlang:element(3, Spec), - erlang:element(4, Spec) - ), - State = {state, Restarts, Starter, Retry}, - {ready, State, Selector}; - - {failed, Error} -> - {failed, case erlang:element(3, Error) of - init_timeout -> - <<"Child initialisation timed out"/utf8>>; - - {init_crashed, Reason} -> - gleam@string:append( - <<"Child crashed during initialisation: "/utf8>>, - gleam@string:inspect(Reason) - ); - - {init_failed, Reason@1} -> - gleam@string:append( - <<"Child failed to start during initialisation: "/utf8>>, - gleam@string:inspect(Reason@1) - ) - end} - end. - --spec handle_exit(gleam@erlang@process:pid_(), state(MLU)) -> gleam@otp@actor:next(message(), state(MLU)). -handle_exit(Pid, State) -> - Outcome = begin - _assert_subject = erlang:element(3, erlang:element(3, State)), - {some, Start} = case _assert_subject of - {some, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/otp/supervisor"/utf8>>, - function => <<"handle_exit"/utf8>>, - line => 293}) - end, - gleam@result:then( - begin - _pipe = erlang:element(2, State), - _pipe@1 = gleam@otp@intensity_tracker:add_event(_pipe), - gleam@result:map_error(_pipe@1, fun(_) -> too_many_restarts end) - end, - fun(Restarts) -> - gleam@result:then( - begin - _pipe@2 = Start({start_from, Pid}), - gleam@result:map_error( - _pipe@2, - fun(E) -> - {restart_failed, - gleam@option:unwrap( - erlang:element(2, E), - Pid - ), - Restarts} - end - ) - end, - fun(_use0) -> - {Starter, _} = _use0, - {ok, - erlang:setelement( - 2, - erlang:setelement(3, State, Starter), - Restarts - )} - end - ) - end - ) - end, - case Outcome of - {ok, State@1} -> - gleam@otp@actor:continue(State@1); - - {error, {restart_failed, Failed_child, Restarts@1}} -> - gleam@erlang@process:send(erlang:element(4, State), Failed_child), - State@2 = erlang:setelement(2, State, Restarts@1), - gleam@otp@actor:continue(State@2); - - {error, too_many_restarts} -> - {stop, - {abnormal, - <<"Child processes restarted too many times within allowed period"/utf8>>}} - end. - --spec loop(message(), state(MLZ)) -> gleam@otp@actor:next(message(), state(MLZ)). -loop(Message, State) -> - case Message of - {exit, Exit_message} -> - handle_exit(erlang:element(2, Exit_message), State); - - {retry_restart, Pid} -> - handle_exit(Pid, State) - end. - --spec start_spec(spec(any(), any())) -> {ok, - gleam@erlang@process:subject(message())} | - {error, gleam@otp@actor:start_error()}. -start_spec(Spec) -> - gleam@otp@actor:start_spec( - {spec, fun() -> init(Spec) end, 60000, fun loop/2} - ). - --spec start(fun((children(nil)) -> children(any()))) -> {ok, - gleam@erlang@process:subject(message())} | - {error, gleam@otp@actor:start_error()}. -start(Init) -> - start_spec({spec, nil, 1, 5, Init}). - --spec application_stopped() -> application_stop(). -application_stopped() -> - gleam_otp_external:application_stopped(). - --spec to_erlang_start_result( - {ok, gleam@erlang@process:subject(any())} | - {error, gleam@otp@actor:start_error()} -) -> {ok, gleam@erlang@process:pid_()} | {error, gleam@dynamic:dynamic_()}. -to_erlang_start_result(Res) -> - gleam@otp@actor:to_erlang_start_result(Res). diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache deleted file mode 100644 index 1ecd94e..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache_meta b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache_meta deleted file mode 100644 index 9f64041..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.erl deleted file mode 100644 index 622e5ea..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.erl +++ /dev/null @@ -1,43 +0,0 @@ --module(gleam@otp@system). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([debug_state/1, get_state/1, suspend/1, resume/1]). --export_type([mode/0, debug_option/0, debug_state/0, status_info/0, system_message/0, do_not_leak/0]). - --type mode() :: running | suspended. - --type debug_option() :: no_debug. - --type debug_state() :: any(). - --type status_info() :: {status_info, - gleam@erlang@atom:atom_(), - gleam@erlang@process:pid_(), - mode(), - debug_state(), - gleam@dynamic:dynamic_()}. - --type system_message() :: {resume, fun(() -> nil)} | - {suspend, fun(() -> nil)} | - {get_state, fun((gleam@dynamic:dynamic_()) -> nil)} | - {get_status, fun((status_info()) -> nil)}. - --type do_not_leak() :: any(). - --spec debug_state(list(debug_option())) -> debug_state(). -debug_state(A) -> - sys:debug_options(A). - --spec get_state(gleam@erlang@process:pid_()) -> gleam@dynamic:dynamic_(). -get_state(From) -> - sys:get_state(From). - --spec suspend(gleam@erlang@process:pid_()) -> nil. -suspend(Pid) -> - sys:suspend(Pid), - nil. - --spec resume(gleam@erlang@process:pid_()) -> nil. -resume(Pid) -> - sys:resume(Pid), - nil. diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache deleted file mode 100644 index 3360869..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache_meta b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache_meta deleted file mode 100644 index e4f89cf..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.erl deleted file mode 100644 index ae4037d..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.erl +++ /dev/null @@ -1,111 +0,0 @@ --module(gleam@otp@task). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([async/1, try_await/2, await/2, try_await_forever/1, await_forever/1]). --export_type([task/1, await_error/0, message/1]). - --opaque task(MEB) :: {task, - gleam@erlang@process:pid_(), - gleam@erlang@process:pid_(), - gleam@erlang@process:process_monitor(), - gleam@erlang@process:selector(message(MEB))}. - --type await_error() :: timeout | {exit, gleam@dynamic:dynamic_()}. - --type message(MEC) :: {from_monitor, gleam@erlang@process:process_down()} | - {from_subject, MEC}. - --spec async(fun(() -> MED)) -> task(MED). -async(Work) -> - Owner = erlang:self(), - Subject = gleam@erlang@process:new_subject(), - Pid = gleam@erlang@process:start( - fun() -> gleam@erlang@process:send(Subject, Work()) end, - true - ), - Monitor = gleam@erlang@process:monitor_process(Pid), - Selector = begin - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = gleam@erlang@process:selecting_process_down( - _pipe, - Monitor, - fun(Field@0) -> {from_monitor, Field@0} end - ), - gleam@erlang@process:selecting( - _pipe@1, - Subject, - fun(Field@0) -> {from_subject, Field@0} end - ) - end, - {task, Owner, Pid, Monitor, Selector}. - --spec assert_owner(task(any())) -> nil. -assert_owner(Task) -> - Self = erlang:self(), - case erlang:element(2, Task) =:= Self of - true -> - nil; - - false -> - gleam@erlang@process:send_abnormal_exit( - Self, - <<"awaited on a task that does not belong to this process"/utf8>> - ) - end. - --spec try_await(task(MEH), integer()) -> {ok, MEH} | {error, await_error()}. -try_await(Task, Timeout) -> - assert_owner(Task), - case gleam_erlang_ffi:select(erlang:element(5, Task), Timeout) of - {ok, {from_subject, X}} -> - gleam_erlang_ffi:demonitor(erlang:element(4, Task)), - {ok, X}; - - {ok, {from_monitor, {process_down, _, Reason}}} -> - {error, {exit, Reason}}; - - {error, nil} -> - {error, timeout} - end. - --spec await(task(MEL), integer()) -> MEL. -await(Task, Timeout) -> - _assert_subject = try_await(Task, Timeout), - {ok, Value} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/otp/task"/utf8>>, - function => <<"await"/utf8>>, - line => 117}) - end, - Value. - --spec try_await_forever(task(MEN)) -> {ok, MEN} | {error, await_error()}. -try_await_forever(Task) -> - assert_owner(Task), - case gleam_erlang_ffi:select(erlang:element(5, Task)) of - {from_subject, X} -> - gleam_erlang_ffi:demonitor(erlang:element(4, Task)), - {ok, X}; - - {from_monitor, {process_down, _, Reason}} -> - {error, {exit, Reason}} - end. - --spec await_forever(task(MER)) -> MER. -await_forever(Task) -> - _assert_subject = try_await_forever(Task), - {ok, Value} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/otp/task"/utf8>>, - function => <<"await_forever"/utf8>>, - line => 149}) - end, - Value. diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache deleted file mode 100644 index 601b922..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache_meta b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache_meta deleted file mode 100644 index 6b7a3a8..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.erl deleted file mode 100644 index 9381ad2..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp.erl +++ /dev/null @@ -1,28 +0,0 @@ --module(gleam_otp). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec spawn_task(integer()) -> gleam@otp@task:task(nil). -spawn_task(I) -> - gleam@otp@task:async(fun() -> case (I rem 500) =:= 0 of - true -> - gleam@io:println( - <<"Hello from "/utf8, (gleam@int:to_string(I))/binary>> - ); - - false -> - nil - end end). - --spec main() -> integer(). -main() -> - gleam@io:debug( - gleam_otp_test_external:get_message_queue_length(erlang:self()) - ), - _pipe = gleam@list:range(0, 1000000), - _pipe@1 = gleam@list:map(_pipe, fun spawn_task/1), - gleam@list:each(_pipe@1, fun gleam@otp@task:await_forever/1), - gleam@io:debug( - gleam_otp_test_external:get_message_queue_length(erlang:self()) - ). diff --git a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp_external.erl b/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp_external.erl deleted file mode 100644 index 8910a67..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/_gleam_artefacts/gleam_otp_external.erl +++ /dev/null @@ -1,43 +0,0 @@ --module(gleam_otp_external). - --export([application_stopped/0, convert_system_message/2]). - -% TODO: support other system messages -% {replace_state, StateFn} -% {change_code, Mod, Vsn, Extra} -% {terminate, Reason} -% {debug, {log, Flag}} -% {debug, {trace, Flag}} -% {debug, {log_to_file, FileName}} -% {debug, {statistics, Flag}} -% {debug, no_debug} -% {debug, {install, {Func, FuncState}}} -% {debug, {install, {FuncId, Func, FuncState}}} -% {debug, {remove, FuncOrId}} -% GetStatus(Subject(StatusInfo)) -convert_system_message({From, Ref}, Request) when is_pid(From) -> - Reply = fun(Msg) -> - erlang:send(From, {Ref, Msg}), - nil - end, - System = fun(Callback) -> - {system, {Request, Callback}} - end, - case Request of - get_status -> System(fun(Status) -> Reply(process_status(Status)) end); - get_state -> System(Reply); - suspend -> System(fun() -> Reply(ok) end); - resume -> System(fun() -> Reply(ok) end); - Other -> {unexpeceted, Other} - end. - -process_status({status_info, Module, Parent, Mode, DebugState, State}) -> - Data = [ - get(), Mode, Parent, DebugState, - [{header, "Status for Gleam process " ++ pid_to_list(self())}, - {data, [{'Status', Mode}, {'Parent', Parent}, {'State', State}]}] - ], - {status, self(), {module, Module}, Data}. - -application_stopped() -> - ok. diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@actor.beam b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@actor.beam deleted file mode 100644 index 1a777b4..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@actor.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@intensity_tracker.beam b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@intensity_tracker.beam deleted file mode 100644 index 5a126b5..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@intensity_tracker.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@port.beam b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@port.beam deleted file mode 100644 index 8b72b7d..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@port.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@supervisor.beam b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@supervisor.beam deleted file mode 100644 index 72f4b32..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@supervisor.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@system.beam b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@system.beam deleted file mode 100644 index 3aefd21..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@system.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@task.beam b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@task.beam deleted file mode 100644 index c21bc3b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam@otp@task.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp.app b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp.app deleted file mode 100644 index 21dd444..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp.app +++ /dev/null @@ -1,8 +0,0 @@ -{application, gleam_otp, [ - {vsn, "0.8.0"}, - {applications, [gleam_erlang, - gleam_stdlib]}, - {description, "Fault tolerant multicore Gleam programs with OTP"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp.beam b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp.beam deleted file mode 100644 index 0a25445..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp_external.beam b/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp_external.beam deleted file mode 100644 index f77f93b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_otp/ebin/gleam_otp_external.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Continue.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Continue.hrl deleted file mode 100644 index 85677d1..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Continue.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(continue, { - state :: any(), - selector :: gleam@option:option(gleam@erlang@process:selector(any())) -}). diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Ready.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Ready.hrl deleted file mode 100644 index 75faa95..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Ready.hrl +++ /dev/null @@ -1 +0,0 @@ --record(ready, {state :: any(), selector :: gleam@erlang@process:selector(any())}). diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Spec.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Spec.hrl deleted file mode 100644 index 5287439..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@actor_Spec.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(spec, { - init :: fun(() -> gleam@otp@actor:init_result(any(), any())), - init_timeout :: integer(), - loop :: fun((any(), any()) -> gleam@otp@actor:next(any(), any())) -}). diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@intensity_tracker_IntensityTracker.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@intensity_tracker_IntensityTracker.hrl deleted file mode 100644 index 3ed0b01..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@intensity_tracker_IntensityTracker.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(intensity_tracker, { - limit :: integer(), - period :: integer(), - events :: list(integer()) -}). diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@supervisor_ChildSpec.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@supervisor_ChildSpec.hrl deleted file mode 100644 index 7afd07f..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@supervisor_ChildSpec.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(child_spec, { - start :: fun((any()) -> {ok, gleam@erlang@process:subject(any())} | - {error, gleam@otp@actor:start_error()}), - returning :: fun((any(), gleam@erlang@process:subject(any())) -> any()) -}). diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@supervisor_Spec.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@supervisor_Spec.hrl deleted file mode 100644 index b10bd9f..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@supervisor_Spec.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(spec, { - argument :: any(), - max_frequency :: integer(), - frequency_period :: integer(), - init :: fun((gleam@otp@supervisor:children(any())) -> gleam@otp@supervisor:children(any())) -}). diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@system_StatusInfo.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@system_StatusInfo.hrl deleted file mode 100644 index 99ab4cb..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@system_StatusInfo.hrl +++ /dev/null @@ -1,7 +0,0 @@ --record(status_info, { - module :: gleam@erlang@atom:atom_(), - parent :: gleam@erlang@process:pid_(), - mode :: gleam@otp@system:mode(), - debug_state :: gleam@otp@system:debug_state(), - state :: gleam@dynamic:dynamic_() -}). diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@task_Exit.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@task_Exit.hrl deleted file mode 100644 index 7c83874..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@task_Exit.hrl +++ /dev/null @@ -1 +0,0 @@ --record(exit, {reason :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@task_Task.hrl b/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@task_Task.hrl deleted file mode 100644 index 959bea8..0000000 --- a/aoc2023/build/dev/erlang/gleam_otp/include/gleam@otp@task_Task.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(task, { - owner :: gleam@erlang@process:pid_(), - pid :: gleam@erlang@process:pid_(), - monitor :: gleam@erlang@process:process_monitor(), - selector :: gleam@erlang@process:selector(gleam@otp@task:message(any())) -}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/dict.mjs b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/dict.mjs deleted file mode 100644 index a8309e0..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/dict.mjs +++ /dev/null @@ -1,957 +0,0 @@ -/** - * This file uses jsdoc to annotate types. - * These types can be checked using the typescript compiler with "checkjs" option. - */ - -import { isEqual } from "./gleam.mjs"; - -const referenceMap = new WeakMap(); -const tempDataView = new DataView(new ArrayBuffer(8)); -let referenceUID = 0; -/** - * hash the object by reference using a weak map and incrementing uid - * @param {any} o - * @returns {number} - */ -function hashByReference(o) { - const known = referenceMap.get(o); - if (known !== undefined) { - return known; - } - const hash = referenceUID++; - if (referenceUID === 0x7fffffff) { - referenceUID = 0; - } - referenceMap.set(o, hash); - return hash; -} -/** - * merge two hashes in an order sensitive way - * @param {number} a - * @param {number} b - * @returns {number} - */ -function hashMerge(a, b) { - return (a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2))) | 0; -} -/** - * standard string hash popularised by java - * @param {string} s - * @returns {number} - */ -function hashString(s) { - let hash = 0; - const len = s.length; - for (let i = 0; i < len; i++) { - hash = (Math.imul(31, hash) + s.charCodeAt(i)) | 0; - } - return hash; -} -/** - * hash a number by converting to two integers and do some jumbling - * @param {number} n - * @returns {number} - */ -function hashNumber(n) { - tempDataView.setFloat64(0, n); - const i = tempDataView.getInt32(0); - const j = tempDataView.getInt32(4); - return Math.imul(0x45d9f3b, (i >> 16) ^ i) ^ j; -} -/** - * hash a BigInt by converting it to a string and hashing that - * @param {BigInt} n - * @returns {number} - */ -function hashBigInt(n) { - return hashString(n.toString()); -} -/** - * hash any js object - * @param {any} o - * @returns {number} - */ -function hashObject(o) { - const proto = Object.getPrototypeOf(o); - if (proto !== null && typeof proto.hashCode === "function") { - try { - const code = o.hashCode(o); - if (typeof code === "number") { - return code; - } - } catch {} - } - if (o instanceof Promise || o instanceof WeakSet || o instanceof WeakMap) { - return hashByReference(o); - } - if (o instanceof Date) { - return hashNumber(o.getTime()); - } - let h = 0; - if (o instanceof ArrayBuffer) { - o = new Uint8Array(o); - } - if (Array.isArray(o) || o instanceof Uint8Array) { - for (let i = 0; i < o.length; i++) { - h = (Math.imul(31, h) + getHash(o[i])) | 0; - } - } else if (o instanceof Set) { - o.forEach((v) => { - h = (h + getHash(v)) | 0; - }); - } else if (o instanceof Map) { - o.forEach((v, k) => { - h = (h + hashMerge(getHash(v), getHash(k))) | 0; - }); - } else { - const keys = Object.keys(o); - for (let i = 0; i < keys.length; i++) { - const k = keys[i]; - const v = o[k]; - h = (h + hashMerge(getHash(v), hashString(k))) | 0; - } - } - return h; -} -/** - * hash any js value - * @param {any} u - * @returns {number} - */ -export function getHash(u) { - if (u === null) return 0x42108422; - if (u === undefined) return 0x42108423; - if (u === true) return 0x42108421; - if (u === false) return 0x42108420; - switch (typeof u) { - case "number": - return hashNumber(u); - case "string": - return hashString(u); - case "bigint": - return hashBigInt(u); - case "object": - return hashObject(u); - case "symbol": - return hashByReference(u); - case "function": - return hashByReference(u); - default: - return 0; // should be unreachable - } -} -/** - * @template K,V - * @typedef {ArrayNode | IndexNode | CollisionNode} Node - */ -/** - * @template K,V - * @typedef {{ type: typeof ENTRY, k: K, v: V }} Entry - */ -/** - * @template K,V - * @typedef {{ type: typeof ARRAY_NODE, size: number, array: (undefined | Entry | Node)[] }} ArrayNode - */ -/** - * @template K,V - * @typedef {{ type: typeof INDEX_NODE, bitmap: number, array: (Entry | Node)[] }} IndexNode - */ -/** - * @template K,V - * @typedef {{ type: typeof COLLISION_NODE, hash: number, array: Entry[] }} CollisionNode - */ -/** - * @typedef {{ val: boolean }} Flag - */ -const SHIFT = 5; // number of bits you need to shift by to get the next bucket -const BUCKET_SIZE = Math.pow(2, SHIFT); -const MASK = BUCKET_SIZE - 1; // used to zero out all bits not in the bucket -const MAX_INDEX_NODE = BUCKET_SIZE / 2; // when does index node grow into array node -const MIN_ARRAY_NODE = BUCKET_SIZE / 4; // when does array node shrink to index node -const ENTRY = 0; -const ARRAY_NODE = 1; -const INDEX_NODE = 2; -const COLLISION_NODE = 3; -/** @type {IndexNode} */ -const EMPTY = { - type: INDEX_NODE, - bitmap: 0, - array: [], -}; -/** - * Mask the hash to get only the bucket corresponding to shift - * @param {number} hash - * @param {number} shift - * @returns {number} - */ -function mask(hash, shift) { - return (hash >>> shift) & MASK; -} -/** - * Set only the Nth bit where N is the masked hash - * @param {number} hash - * @param {number} shift - * @returns {number} - */ -function bitpos(hash, shift) { - return 1 << mask(hash, shift); -} -/** - * Count the number of 1 bits in a number - * @param {number} x - * @returns {number} - */ -function bitcount(x) { - x -= (x >> 1) & 0x55555555; - x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - x = (x + (x >> 4)) & 0x0f0f0f0f; - x += x >> 8; - x += x >> 16; - return x & 0x7f; -} -/** - * Calculate the array index of an item in a bitmap index node - * @param {number} bitmap - * @param {number} bit - * @returns {number} - */ -function index(bitmap, bit) { - return bitcount(bitmap & (bit - 1)); -} -/** - * Efficiently copy an array and set one value at an index - * @template T - * @param {T[]} arr - * @param {number} at - * @param {T} val - * @returns {T[]} - */ -function cloneAndSet(arr, at, val) { - const len = arr.length; - const out = new Array(len); - for (let i = 0; i < len; ++i) { - out[i] = arr[i]; - } - out[at] = val; - return out; -} -/** - * Efficiently copy an array and insert one value at an index - * @template T - * @param {T[]} arr - * @param {number} at - * @param {T} val - * @returns {T[]} - */ -function spliceIn(arr, at, val) { - const len = arr.length; - const out = new Array(len + 1); - let i = 0; - let g = 0; - while (i < at) { - out[g++] = arr[i++]; - } - out[g++] = val; - while (i < len) { - out[g++] = arr[i++]; - } - return out; -} -/** - * Efficiently copy an array and remove one value at an index - * @template T - * @param {T[]} arr - * @param {number} at - * @returns {T[]} - */ -function spliceOut(arr, at) { - const len = arr.length; - const out = new Array(len - 1); - let i = 0; - let g = 0; - while (i < at) { - out[g++] = arr[i++]; - } - ++i; - while (i < len) { - out[g++] = arr[i++]; - } - return out; -} -/** - * Create a new node containing two entries - * @template K,V - * @param {number} shift - * @param {K} key1 - * @param {V} val1 - * @param {number} key2hash - * @param {K} key2 - * @param {V} val2 - * @returns {Node} - */ -function createNode(shift, key1, val1, key2hash, key2, val2) { - const key1hash = getHash(key1); - if (key1hash === key2hash) { - return { - type: COLLISION_NODE, - hash: key1hash, - array: [ - { type: ENTRY, k: key1, v: val1 }, - { type: ENTRY, k: key2, v: val2 }, - ], - }; - } - const addedLeaf = { val: false }; - return assoc( - assocIndex(EMPTY, shift, key1hash, key1, val1, addedLeaf), - shift, - key2hash, - key2, - val2, - addedLeaf - ); -} -/** - * @template T,K,V - * @callback AssocFunction - * @param {T} root - * @param {number} shift - * @param {number} hash - * @param {K} key - * @param {V} val - * @param {Flag} addedLeaf - * @returns {Node} - */ -/** - * Associate a node with a new entry, creating a new node - * @template T,K,V - * @type {AssocFunction,K,V>} - */ -function assoc(root, shift, hash, key, val, addedLeaf) { - switch (root.type) { - case ARRAY_NODE: - return assocArray(root, shift, hash, key, val, addedLeaf); - case INDEX_NODE: - return assocIndex(root, shift, hash, key, val, addedLeaf); - case COLLISION_NODE: - return assocCollision(root, shift, hash, key, val, addedLeaf); - } -} -/** - * @template T,K,V - * @type {AssocFunction,K,V>} - */ -function assocArray(root, shift, hash, key, val, addedLeaf) { - const idx = mask(hash, shift); - const node = root.array[idx]; - // if the corresponding index is empty set the index to a newly created node - if (node === undefined) { - addedLeaf.val = true; - return { - type: ARRAY_NODE, - size: root.size + 1, - array: cloneAndSet(root.array, idx, { type: ENTRY, k: key, v: val }), - }; - } - if (node.type === ENTRY) { - // if keys are equal replace the entry - if (isEqual(key, node.k)) { - if (val === node.v) { - return root; - } - return { - type: ARRAY_NODE, - size: root.size, - array: cloneAndSet(root.array, idx, { - type: ENTRY, - k: key, - v: val, - }), - }; - } - // otherwise upgrade the entry to a node and insert - addedLeaf.val = true; - return { - type: ARRAY_NODE, - size: root.size, - array: cloneAndSet( - root.array, - idx, - createNode(shift + SHIFT, node.k, node.v, hash, key, val) - ), - }; - } - // otherwise call assoc on the child node - const n = assoc(node, shift + SHIFT, hash, key, val, addedLeaf); - // if the child node hasn't changed just return the old root - if (n === node) { - return root; - } - // otherwise set the index to the new node - return { - type: ARRAY_NODE, - size: root.size, - array: cloneAndSet(root.array, idx, n), - }; -} -/** - * @template T,K,V - * @type {AssocFunction,K,V>} - */ -function assocIndex(root, shift, hash, key, val, addedLeaf) { - const bit = bitpos(hash, shift); - const idx = index(root.bitmap, bit); - // if there is already a item at this hash index.. - if ((root.bitmap & bit) !== 0) { - // if there is a node at the index (not an entry), call assoc on the child node - const node = root.array[idx]; - if (node.type !== ENTRY) { - const n = assoc(node, shift + SHIFT, hash, key, val, addedLeaf); - if (n === node) { - return root; - } - return { - type: INDEX_NODE, - bitmap: root.bitmap, - array: cloneAndSet(root.array, idx, n), - }; - } - // otherwise there is an entry at the index - // if the keys are equal replace the entry with the updated value - const nodeKey = node.k; - if (isEqual(key, nodeKey)) { - if (val === node.v) { - return root; - } - return { - type: INDEX_NODE, - bitmap: root.bitmap, - array: cloneAndSet(root.array, idx, { - type: ENTRY, - k: key, - v: val, - }), - }; - } - // if the keys are not equal, replace the entry with a new child node - addedLeaf.val = true; - return { - type: INDEX_NODE, - bitmap: root.bitmap, - array: cloneAndSet( - root.array, - idx, - createNode(shift + SHIFT, nodeKey, node.v, hash, key, val) - ), - }; - } else { - // else there is currently no item at the hash index - const n = root.array.length; - // if the number of nodes is at the maximum, expand this node into an array node - if (n >= MAX_INDEX_NODE) { - // create a 32 length array for the new array node (one for each bit in the hash) - const nodes = new Array(32); - // create and insert a node for the new entry - const jdx = mask(hash, shift); - nodes[jdx] = assocIndex(EMPTY, shift + SHIFT, hash, key, val, addedLeaf); - let j = 0; - let bitmap = root.bitmap; - // place each item in the index node into the correct spot in the array node - // loop through all 32 bits / array positions - for (let i = 0; i < 32; i++) { - if ((bitmap & 1) !== 0) { - const node = root.array[j++]; - nodes[i] = node; - } - // shift the bitmap to process the next bit - bitmap = bitmap >>> 1; - } - return { - type: ARRAY_NODE, - size: n + 1, - array: nodes, - }; - } else { - // else there is still space in this index node - // simply insert a new entry at the hash index - const newArray = spliceIn(root.array, idx, { - type: ENTRY, - k: key, - v: val, - }); - addedLeaf.val = true; - return { - type: INDEX_NODE, - bitmap: root.bitmap | bit, - array: newArray, - }; - } - } -} -/** - * @template T,K,V - * @type {AssocFunction,K,V>} - */ -function assocCollision(root, shift, hash, key, val, addedLeaf) { - // if there is a hash collision - if (hash === root.hash) { - const idx = collisionIndexOf(root, key); - // if this key already exists replace the entry with the new value - if (idx !== -1) { - const entry = root.array[idx]; - if (entry.v === val) { - return root; - } - return { - type: COLLISION_NODE, - hash: hash, - array: cloneAndSet(root.array, idx, { type: ENTRY, k: key, v: val }), - }; - } - // otherwise insert the entry at the end of the array - const size = root.array.length; - addedLeaf.val = true; - return { - type: COLLISION_NODE, - hash: hash, - array: cloneAndSet(root.array, size, { type: ENTRY, k: key, v: val }), - }; - } - // if there is no hash collision, upgrade to an index node - return assoc( - { - type: INDEX_NODE, - bitmap: bitpos(root.hash, shift), - array: [root], - }, - shift, - hash, - key, - val, - addedLeaf - ); -} -/** - * Find the index of a key in the collision node's array - * @template K,V - * @param {CollisionNode} root - * @param {K} key - * @returns {number} - */ -function collisionIndexOf(root, key) { - const size = root.array.length; - for (let i = 0; i < size; i++) { - if (isEqual(key, root.array[i].k)) { - return i; - } - } - return -1; -} -/** - * @template T,K,V - * @callback FindFunction - * @param {T} root - * @param {number} shift - * @param {number} hash - * @param {K} key - * @returns {undefined | Entry} - */ -/** - * Return the found entry or undefined if not present in the root - * @template K,V - * @type {FindFunction,K,V>} - */ -function find(root, shift, hash, key) { - switch (root.type) { - case ARRAY_NODE: - return findArray(root, shift, hash, key); - case INDEX_NODE: - return findIndex(root, shift, hash, key); - case COLLISION_NODE: - return findCollision(root, key); - } -} -/** - * @template K,V - * @type {FindFunction,K,V>} - */ -function findArray(root, shift, hash, key) { - const idx = mask(hash, shift); - const node = root.array[idx]; - if (node === undefined) { - return undefined; - } - if (node.type !== ENTRY) { - return find(node, shift + SHIFT, hash, key); - } - if (isEqual(key, node.k)) { - return node; - } - return undefined; -} -/** - * @template K,V - * @type {FindFunction,K,V>} - */ -function findIndex(root, shift, hash, key) { - const bit = bitpos(hash, shift); - if ((root.bitmap & bit) === 0) { - return undefined; - } - const idx = index(root.bitmap, bit); - const node = root.array[idx]; - if (node.type !== ENTRY) { - return find(node, shift + SHIFT, hash, key); - } - if (isEqual(key, node.k)) { - return node; - } - return undefined; -} -/** - * @template K,V - * @param {CollisionNode} root - * @param {K} key - * @returns {undefined | Entry} - */ -function findCollision(root, key) { - const idx = collisionIndexOf(root, key); - if (idx < 0) { - return undefined; - } - return root.array[idx]; -} -/** - * @template T,K,V - * @callback WithoutFunction - * @param {T} root - * @param {number} shift - * @param {number} hash - * @param {K} key - * @returns {undefined | Node} - */ -/** - * Remove an entry from the root, returning the updated root. - * Returns undefined if the node should be removed from the parent. - * @template K,V - * @type {WithoutFunction,K,V>} - * */ -function without(root, shift, hash, key) { - switch (root.type) { - case ARRAY_NODE: - return withoutArray(root, shift, hash, key); - case INDEX_NODE: - return withoutIndex(root, shift, hash, key); - case COLLISION_NODE: - return withoutCollision(root, key); - } -} -/** - * @template K,V - * @type {WithoutFunction,K,V>} - */ -function withoutArray(root, shift, hash, key) { - const idx = mask(hash, shift); - const node = root.array[idx]; - if (node === undefined) { - return root; // already empty - } - let n = undefined; - // if node is an entry and the keys are not equal there is nothing to remove - // if node is not an entry do a recursive call - if (node.type === ENTRY) { - if (!isEqual(node.k, key)) { - return root; // no changes - } - } else { - n = without(node, shift + SHIFT, hash, key); - if (n === node) { - return root; // no changes - } - } - // if the recursive call returned undefined the node should be removed - if (n === undefined) { - // if the number of child nodes is at the minimum, pack into an index node - if (root.size <= MIN_ARRAY_NODE) { - const arr = root.array; - const out = new Array(root.size - 1); - let i = 0; - let j = 0; - let bitmap = 0; - while (i < idx) { - const nv = arr[i]; - if (nv !== undefined) { - out[j] = nv; - bitmap |= 1 << i; - ++j; - } - ++i; - } - ++i; // skip copying the removed node - while (i < arr.length) { - const nv = arr[i]; - if (nv !== undefined) { - out[j] = nv; - bitmap |= 1 << i; - ++j; - } - ++i; - } - return { - type: INDEX_NODE, - bitmap: bitmap, - array: out, - }; - } - return { - type: ARRAY_NODE, - size: root.size - 1, - array: cloneAndSet(root.array, idx, n), - }; - } - return { - type: ARRAY_NODE, - size: root.size, - array: cloneAndSet(root.array, idx, n), - }; -} -/** - * @template K,V - * @type {WithoutFunction,K,V>} - */ -function withoutIndex(root, shift, hash, key) { - const bit = bitpos(hash, shift); - if ((root.bitmap & bit) === 0) { - return root; // already empty - } - const idx = index(root.bitmap, bit); - const node = root.array[idx]; - // if the item is not an entry - if (node.type !== ENTRY) { - const n = without(node, shift + SHIFT, hash, key); - if (n === node) { - return root; // no changes - } - // if not undefined, the child node still has items, so update it - if (n !== undefined) { - return { - type: INDEX_NODE, - bitmap: root.bitmap, - array: cloneAndSet(root.array, idx, n), - }; - } - // otherwise the child node should be removed - // if it was the only child node, remove this node from the parent - if (root.bitmap === bit) { - return undefined; - } - // otherwise just remove the child node - return { - type: INDEX_NODE, - bitmap: root.bitmap ^ bit, - array: spliceOut(root.array, idx), - }; - } - // otherwise the item is an entry, remove it if the key matches - if (isEqual(key, node.k)) { - if (root.bitmap === bit) { - return undefined; - } - return { - type: INDEX_NODE, - bitmap: root.bitmap ^ bit, - array: spliceOut(root.array, idx), - }; - } - return root; -} -/** - * @template K,V - * @param {CollisionNode} root - * @param {K} key - * @returns {undefined | Node} - */ -function withoutCollision(root, key) { - const idx = collisionIndexOf(root, key); - // if the key not found, no changes - if (idx < 0) { - return root; - } - // otherwise the entry was found, remove it - // if it was the only entry in this node, remove the whole node - if (root.array.length === 1) { - return undefined; - } - // otherwise just remove the entry - return { - type: COLLISION_NODE, - hash: root.hash, - array: spliceOut(root.array, idx), - }; -} -/** - * @template K,V - * @param {undefined | Node} root - * @param {(value:V,key:K)=>void} fn - * @returns {void} - */ -function forEach(root, fn) { - if (root === undefined) { - return; - } - const items = root.array; - const size = items.length; - for (let i = 0; i < size; i++) { - const item = items[i]; - if (item === undefined) { - continue; - } - if (item.type === ENTRY) { - fn(item.v, item.k); - continue; - } - forEach(item, fn); - } -} -/** - * Extra wrapper to keep track of Dict size and clean up the API - * @template K,V - */ -export default class Dict { - /** - * @template V - * @param {Record} o - * @returns {Dict} - */ - static fromObject(o) { - const keys = Object.keys(o); - /** @type Dict */ - let m = Dict.new(); - for (let i = 0; i < keys.length; i++) { - const k = keys[i]; - m = m.set(k, o[k]); - } - return m; - } - /** - * @template K,V - * @param {Map} o - * @returns {Dict} - */ - static fromMap(o) { - /** @type Dict */ - let m = Dict.new(); - o.forEach((v, k) => { - m = m.set(k, v); - }); - return m; - } - static new() { - return new Dict(undefined, 0); - } - /** - * @param {undefined | Node} root - * @param {number} size - */ - constructor(root, size) { - this.root = root; - this.size = size; - } - /** - * @template NotFound - * @param {K} key - * @param {NotFound} notFound - * @returns {NotFound | V} - */ - get(key, notFound) { - if (this.root === undefined) { - return notFound; - } - const found = find(this.root, 0, getHash(key), key); - if (found === undefined) { - return notFound; - } - return found.v; - } - /** - * @param {K} key - * @param {V} val - * @returns {Dict} - */ - set(key, val) { - const addedLeaf = { val: false }; - const root = this.root === undefined ? EMPTY : this.root; - const newRoot = assoc(root, 0, getHash(key), key, val, addedLeaf); - if (newRoot === this.root) { - return this; - } - return new Dict(newRoot, addedLeaf.val ? this.size + 1 : this.size); - } - /** - * @param {K} key - * @returns {Dict} - */ - delete(key) { - if (this.root === undefined) { - return this; - } - const newRoot = without(this.root, 0, getHash(key), key); - if (newRoot === this.root) { - return this; - } - if (newRoot === undefined) { - return Dict.new(); - } - return new Dict(newRoot, this.size - 1); - } - /** - * @param {K} key - * @returns {boolean} - */ - has(key) { - if (this.root === undefined) { - return false; - } - return find(this.root, 0, getHash(key), key) !== undefined; - } - /** - * @returns {[K,V][]} - */ - entries() { - if (this.root === undefined) { - return []; - } - /** @type [K,V][] */ - const result = []; - this.forEach((v, k) => result.push([k, v])); - return result; - } - /** - * - * @param {(val:V,key:K)=>void} fn - */ - forEach(fn) { - forEach(this.root, fn); - } - hashCode() { - let h = 0; - this.forEach((v, k) => { - h = (h + hashMerge(getHash(v), getHash(k))) | 0; - }); - return h; - } - /** - * @param {unknown} o - * @returns {boolean} - */ - equals(o) { - if (!(o instanceof Dict) || this.size !== o.size) { - return false; - } - let equal = true; - this.forEach((v, k) => { - equal = equal && isEqual(o.get(k, !v), v); - }); - return equal; - } -} diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache deleted file mode 100644 index 1a9b6c1..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache_meta deleted file mode 100644 index a935fcc..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.erl deleted file mode 100644 index 65bc3f6..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.erl +++ /dev/null @@ -1,20 +0,0 @@ --module(gleam@base). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([encode64/2, decode64/1, url_encode64/2, url_decode64/1]). - --spec encode64(bitstring(), boolean()) -> binary(). -encode64(Input, Padding) -> - gleam@bit_array:base64_encode(Input, Padding). - --spec decode64(binary()) -> {ok, bitstring()} | {error, nil}. -decode64(Encoded) -> - gleam@bit_array:base64_decode(Encoded). - --spec url_encode64(bitstring(), boolean()) -> binary(). -url_encode64(Input, Padding) -> - gleam@bit_array:base64_url_encode(Input, Padding). - --spec url_decode64(binary()) -> {ok, bitstring()} | {error, nil}. -url_decode64(Encoded) -> - gleam@bit_array:base64_url_decode(Encoded). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache deleted file mode 100644 index 3b197e5..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta deleted file mode 100644 index bfd3dd8..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.erl deleted file mode 100644 index ba18dfa..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.erl +++ /dev/null @@ -1,102 +0,0 @@ --module(gleam@bit_array). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_string/1, byte_size/1, slice/3, is_utf8/1, to_string/1, concat/1, append/2, base64_encode/2, base64_decode/1, base64_url_encode/2, base64_url_decode/1, base16_encode/1, base16_decode/1]). - --spec from_string(binary()) -> bitstring(). -from_string(X) -> - gleam_stdlib:identity(X). - --spec byte_size(bitstring()) -> integer(). -byte_size(X) -> - erlang:byte_size(X). - --spec slice(bitstring(), integer(), integer()) -> {ok, bitstring()} | - {error, nil}. -slice(String, Position, Length) -> - gleam_stdlib:bit_array_slice(String, Position, Length). - --spec do_is_utf8(bitstring()) -> boolean(). -do_is_utf8(Bits) -> - case Bits of - <<>> -> - true; - - <<_/utf8, Rest/binary>> -> - do_is_utf8(Rest); - - _ -> - false - end. - --spec is_utf8(bitstring()) -> boolean(). -is_utf8(Bits) -> - do_is_utf8(Bits). - --spec do_to_string(bitstring()) -> {ok, binary()} | {error, nil}. -do_to_string(Bits) -> - case is_utf8(Bits) of - true -> - {ok, gleam_stdlib:identity(Bits)}; - - false -> - {error, nil} - end. - --spec to_string(bitstring()) -> {ok, binary()} | {error, nil}. -to_string(Bits) -> - do_to_string(Bits). - --spec concat(list(bitstring())) -> bitstring(). -concat(Bit_arrays) -> - gleam_stdlib:bit_array_concat(Bit_arrays). - --spec append(bitstring(), bitstring()) -> bitstring(). -append(First, Second) -> - gleam_stdlib:bit_array_concat([First, Second]). - --spec base64_encode(bitstring(), boolean()) -> binary(). -base64_encode(Input, Padding) -> - Encoded = base64:encode(Input), - case Padding of - true -> - Encoded; - - false -> - gleam@string:replace(Encoded, <<"="/utf8>>, <<""/utf8>>) - end. - --spec base64_decode(binary()) -> {ok, bitstring()} | {error, nil}. -base64_decode(Encoded) -> - Padded = case erlang:byte_size(gleam_stdlib:identity(Encoded)) rem 4 of - 0 -> - Encoded; - - N -> - gleam@string:append( - Encoded, - gleam@string:repeat(<<"="/utf8>>, 4 - N) - ) - end, - gleam_stdlib:base_decode64(Padded). - --spec base64_url_encode(bitstring(), boolean()) -> binary(). -base64_url_encode(Input, Padding) -> - _pipe = base64_encode(Input, Padding), - _pipe@1 = gleam@string:replace(_pipe, <<"+"/utf8>>, <<"-"/utf8>>), - gleam@string:replace(_pipe@1, <<"/"/utf8>>, <<"_"/utf8>>). - --spec base64_url_decode(binary()) -> {ok, bitstring()} | {error, nil}. -base64_url_decode(Encoded) -> - _pipe = Encoded, - _pipe@1 = gleam@string:replace(_pipe, <<"-"/utf8>>, <<"+"/utf8>>), - _pipe@2 = gleam@string:replace(_pipe@1, <<"_"/utf8>>, <<"/"/utf8>>), - base64_decode(_pipe@2). - --spec base16_encode(bitstring()) -> binary(). -base16_encode(Input) -> - binary:encode_hex(Input). - --spec base16_decode(binary()) -> {ok, bitstring()} | {error, nil}. -base16_decode(Input) -> - gleam_stdlib:base16_decode(Input). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache deleted file mode 100644 index d992172..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache_meta deleted file mode 100644 index bc4a1a5..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.erl deleted file mode 100644 index 284c6d4..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.erl +++ /dev/null @@ -1,66 +0,0 @@ --module(gleam@bit_builder). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/0, prepend/2, append/2, prepend_builder/2, append_builder/2, prepend_string/2, append_string/2, concat/1, concat_bit_strings/1, from_string/1, from_string_builder/1, from_bit_string/1, to_bit_string/1, byte_size/1]). - --spec new() -> gleam@bytes_builder:bytes_builder(). -new() -> - gleam@bytes_builder:new(). - --spec prepend(gleam@bytes_builder:bytes_builder(), bitstring()) -> gleam@bytes_builder:bytes_builder(). -prepend(To, Prefix) -> - gleam@bytes_builder:prepend(To, Prefix). - --spec append(gleam@bytes_builder:bytes_builder(), bitstring()) -> gleam@bytes_builder:bytes_builder(). -append(To, Suffix) -> - gleam@bytes_builder:append(To, Suffix). - --spec prepend_builder( - gleam@bytes_builder:bytes_builder(), - gleam@bytes_builder:bytes_builder() -) -> gleam@bytes_builder:bytes_builder(). -prepend_builder(To, Prefix) -> - gleam@bytes_builder:prepend_builder(To, Prefix). - --spec append_builder( - gleam@bytes_builder:bytes_builder(), - gleam@bytes_builder:bytes_builder() -) -> gleam@bytes_builder:bytes_builder(). -append_builder(First, Second) -> - gleam_stdlib:iodata_append(First, Second). - --spec prepend_string(gleam@bytes_builder:bytes_builder(), binary()) -> gleam@bytes_builder:bytes_builder(). -prepend_string(To, Prefix) -> - gleam@bytes_builder:prepend_string(To, Prefix). - --spec append_string(gleam@bytes_builder:bytes_builder(), binary()) -> gleam@bytes_builder:bytes_builder(). -append_string(To, Suffix) -> - gleam@bytes_builder:append_string(To, Suffix). - --spec concat(list(gleam@bytes_builder:bytes_builder())) -> gleam@bytes_builder:bytes_builder(). -concat(Builders) -> - gleam_stdlib:identity(Builders). - --spec concat_bit_strings(list(bitstring())) -> gleam@bytes_builder:bytes_builder(). -concat_bit_strings(Bits) -> - gleam_stdlib:identity(Bits). - --spec from_string(binary()) -> gleam@bytes_builder:bytes_builder(). -from_string(String) -> - gleam_stdlib:wrap_list(String). - --spec from_string_builder(gleam@string_builder:string_builder()) -> gleam@bytes_builder:bytes_builder(). -from_string_builder(Builder) -> - gleam_stdlib:wrap_list(Builder). - --spec from_bit_string(bitstring()) -> gleam@bytes_builder:bytes_builder(). -from_bit_string(Bits) -> - gleam_stdlib:wrap_list(Bits). - --spec to_bit_string(gleam@bytes_builder:bytes_builder()) -> bitstring(). -to_bit_string(Builder) -> - erlang:list_to_bitstring(Builder). - --spec byte_size(gleam@bytes_builder:bytes_builder()) -> integer(). -byte_size(Builder) -> - erlang:iolist_size(Builder). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache deleted file mode 100644 index 60cf27e..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache_meta deleted file mode 100644 index f9f229f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.erl deleted file mode 100644 index 7dabaa3..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(gleam@bit_string). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_string/1, byte_size/1, append/2, slice/3, is_utf8/1, to_string/1, concat/1]). - --spec from_string(binary()) -> bitstring(). -from_string(X) -> - gleam_stdlib:identity(X). - --spec byte_size(bitstring()) -> integer(). -byte_size(X) -> - erlang:byte_size(X). - --spec append(bitstring(), bitstring()) -> bitstring(). -append(First, Second) -> - gleam@bit_array:append(First, Second). - --spec slice(bitstring(), integer(), integer()) -> {ok, bitstring()} | - {error, nil}. -slice(String, Position, Length) -> - gleam_stdlib:bit_array_slice(String, Position, Length). - --spec is_utf8(bitstring()) -> boolean(). -is_utf8(Bits) -> - gleam@bit_array:is_utf8(Bits). - --spec to_string(bitstring()) -> {ok, binary()} | {error, nil}. -to_string(Bits) -> - gleam@bit_array:to_string(Bits). - --spec concat(list(bitstring())) -> bitstring(). -concat(Bit_strings) -> - gleam_stdlib:bit_array_concat(Bit_strings). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache deleted file mode 100644 index 10a98f8..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta deleted file mode 100644 index 33ef24c..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.erl deleted file mode 100644 index 57078cb..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.erl +++ /dev/null @@ -1,162 +0,0 @@ --module(gleam@bool). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export(['and'/2, 'or'/2, negate/1, nor/2, nand/2, exclusive_or/2, exclusive_nor/2, compare/2, max/2, min/2, to_int/1, to_string/1, guard/3, lazy_guard/3]). - --spec 'and'(boolean(), boolean()) -> boolean(). -'and'(A, B) -> - A andalso B. - --spec 'or'(boolean(), boolean()) -> boolean(). -'or'(A, B) -> - A orelse B. - --spec negate(boolean()) -> boolean(). -negate(Bool) -> - case Bool of - true -> - false; - - false -> - true - end. - --spec nor(boolean(), boolean()) -> boolean(). -nor(A, B) -> - case {A, B} of - {false, false} -> - true; - - {false, true} -> - false; - - {true, false} -> - false; - - {true, true} -> - false - end. - --spec nand(boolean(), boolean()) -> boolean(). -nand(A, B) -> - case {A, B} of - {false, false} -> - true; - - {false, true} -> - true; - - {true, false} -> - true; - - {true, true} -> - false - end. - --spec exclusive_or(boolean(), boolean()) -> boolean(). -exclusive_or(A, B) -> - case {A, B} of - {false, false} -> - false; - - {false, true} -> - true; - - {true, false} -> - true; - - {true, true} -> - false - end. - --spec exclusive_nor(boolean(), boolean()) -> boolean(). -exclusive_nor(A, B) -> - case {A, B} of - {false, false} -> - true; - - {false, true} -> - false; - - {true, false} -> - false; - - {true, true} -> - true - end. - --spec compare(boolean(), boolean()) -> gleam@order:order(). -compare(A, B) -> - case {A, B} of - {true, true} -> - eq; - - {true, false} -> - gt; - - {false, false} -> - eq; - - {false, true} -> - lt - end. - --spec max(boolean(), boolean()) -> boolean(). -max(A, B) -> - case A of - true -> - true; - - false -> - B - end. - --spec min(boolean(), boolean()) -> boolean(). -min(A, B) -> - case A of - false -> - false; - - true -> - B - end. - --spec to_int(boolean()) -> integer(). -to_int(Bool) -> - case Bool of - false -> - 0; - - true -> - 1 - end. - --spec to_string(boolean()) -> binary(). -to_string(Bool) -> - case Bool of - false -> - <<"False"/utf8>>; - - true -> - <<"True"/utf8>> - end. - --spec guard(boolean(), EVP, fun(() -> EVP)) -> EVP. -guard(Requirement, Consequence, Alternative) -> - case Requirement of - true -> - Consequence; - - false -> - Alternative() - end. - --spec lazy_guard(boolean(), fun(() -> EVQ), fun(() -> EVQ)) -> EVQ. -lazy_guard(Requirement, Consequence, Alternative) -> - case Requirement of - true -> - Consequence(); - - false -> - Alternative() - end. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache deleted file mode 100644 index 8962cfc..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache_meta deleted file mode 100644 index 7b614aa..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.erl deleted file mode 100644 index 2f6dd93..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.erl +++ /dev/null @@ -1,87 +0,0 @@ --module(gleam@bytes_builder). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([append_builder/2, prepend_builder/2, concat/1, new/0, from_string/1, prepend_string/2, append_string/2, from_string_builder/1, from_bit_array/1, prepend/2, append/2, concat_bit_arrays/1, to_bit_array/1, byte_size/1]). --export_type([bytes_builder/0]). - --opaque bytes_builder() :: {bytes, bitstring()} | - {text, gleam@string_builder:string_builder()} | - {many, list(bytes_builder())}. - --spec append_builder(bytes_builder(), bytes_builder()) -> bytes_builder(). -append_builder(First, Second) -> - gleam_stdlib:iodata_append(First, Second). - --spec prepend_builder(bytes_builder(), bytes_builder()) -> bytes_builder(). -prepend_builder(Second, First) -> - gleam_stdlib:iodata_append(First, Second). - --spec concat(list(bytes_builder())) -> bytes_builder(). -concat(Builders) -> - gleam_stdlib:identity(Builders). - --spec new() -> bytes_builder(). -new() -> - gleam_stdlib:identity([]). - --spec from_string(binary()) -> bytes_builder(). -from_string(String) -> - gleam_stdlib:wrap_list(String). - --spec prepend_string(bytes_builder(), binary()) -> bytes_builder(). -prepend_string(Second, First) -> - gleam_stdlib:iodata_append(gleam_stdlib:wrap_list(First), Second). - --spec append_string(bytes_builder(), binary()) -> bytes_builder(). -append_string(First, Second) -> - gleam_stdlib:iodata_append(First, gleam_stdlib:wrap_list(Second)). - --spec from_string_builder(gleam@string_builder:string_builder()) -> bytes_builder(). -from_string_builder(Builder) -> - gleam_stdlib:wrap_list(Builder). - --spec from_bit_array(bitstring()) -> bytes_builder(). -from_bit_array(Bits) -> - gleam_stdlib:wrap_list(Bits). - --spec prepend(bytes_builder(), bitstring()) -> bytes_builder(). -prepend(Second, First) -> - gleam_stdlib:iodata_append(gleam_stdlib:wrap_list(First), Second). - --spec append(bytes_builder(), bitstring()) -> bytes_builder(). -append(First, Second) -> - gleam_stdlib:iodata_append(First, gleam_stdlib:wrap_list(Second)). - --spec concat_bit_arrays(list(bitstring())) -> bytes_builder(). -concat_bit_arrays(Bits) -> - gleam_stdlib:identity(Bits). - --spec to_list(list(list(bytes_builder())), list(bitstring())) -> list(bitstring()). -to_list(Stack, Acc) -> - case Stack of - [] -> - Acc; - - [[] | Remaining_stack] -> - to_list(Remaining_stack, Acc); - - [[{bytes, Bits} | Rest] | Remaining_stack@1] -> - to_list([Rest | Remaining_stack@1], [Bits | Acc]); - - [[{text, Builder} | Rest@1] | Remaining_stack@2] -> - Bits@1 = gleam_stdlib:identity( - gleam@string_builder:to_string(Builder) - ), - to_list([Rest@1 | Remaining_stack@2], [Bits@1 | Acc]); - - [[{many, Builders} | Rest@2] | Remaining_stack@3] -> - to_list([Builders, Rest@2 | Remaining_stack@3], Acc) - end. - --spec to_bit_array(bytes_builder()) -> bitstring(). -to_bit_array(Builder) -> - erlang:list_to_bitstring(Builder). - --spec byte_size(bytes_builder()) -> integer(). -byte_size(Builder) -> - erlang:iolist_size(Builder). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache deleted file mode 100644 index acf4017..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta deleted file mode 100644 index 4410520..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.erl deleted file mode 100644 index 44b89ea..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.erl +++ /dev/null @@ -1,97 +0,0 @@ --module(gleam@dict). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([size/1, to_list/1, from_list/1, has_key/2, new/0, get/2, insert/3, map_values/2, keys/1, values/1, filter/2, take/2, merge/2, delete/2, drop/2, update/3, fold/3]). --export_type([dict/2]). - --type dict(KS, KT) :: any() | {gleam_phantom, KS, KT}. - --spec size(dict(any(), any())) -> integer(). -size(Dict) -> - maps:size(Dict). - --spec to_list(dict(LC, LD)) -> list({LC, LD}). -to_list(Dict) -> - maps:to_list(Dict). - --spec from_list(list({LM, LN})) -> dict(LM, LN). -from_list(List) -> - maps:from_list(List). - --spec has_key(dict(LW, any()), LW) -> boolean(). -has_key(Dict, Key) -> - maps:is_key(Key, Dict). - --spec new() -> dict(any(), any()). -new() -> - maps:new(). - --spec get(dict(MM, MN), MM) -> {ok, MN} | {error, nil}. -get(From, Get) -> - gleam_stdlib:map_get(From, Get). - --spec insert(dict(MY, MZ), MY, MZ) -> dict(MY, MZ). -insert(Dict, Key, Value) -> - maps:put(Key, Value, Dict). - --spec map_values(dict(NK, NL), fun((NK, NL) -> NO)) -> dict(NK, NO). -map_values(Dict, Fun) -> - maps:map(Fun, Dict). - --spec keys(dict(NY, any())) -> list(NY). -keys(Dict) -> - maps:keys(Dict). - --spec values(dict(any(), OJ)) -> list(OJ). -values(Dict) -> - maps:values(Dict). - --spec filter(dict(OS, OT), fun((OS, OT) -> boolean())) -> dict(OS, OT). -filter(Dict, Predicate) -> - maps:filter(Predicate, Dict). - --spec take(dict(PE, PF), list(PE)) -> dict(PE, PF). -take(Dict, Desired_keys) -> - maps:with(Desired_keys, Dict). - --spec merge(dict(PS, PT), dict(PS, PT)) -> dict(PS, PT). -merge(Dict, New_entries) -> - maps:merge(Dict, New_entries). - --spec delete(dict(QI, QJ), QI) -> dict(QI, QJ). -delete(Dict, Key) -> - maps:remove(Key, Dict). - --spec drop(dict(QU, QV), list(QU)) -> dict(QU, QV). -drop(Dict, Disallowed_keys) -> - case Disallowed_keys of - [] -> - Dict; - - [X | Xs] -> - drop(delete(Dict, X), Xs) - end. - --spec update(dict(RB, RC), RB, fun((gleam@option:option(RC)) -> RC)) -> dict(RB, RC). -update(Dict, Key, Fun) -> - _pipe = Dict, - _pipe@1 = get(_pipe, Key), - _pipe@2 = gleam@option:from_result(_pipe@1), - _pipe@3 = Fun(_pipe@2), - insert(Dict, Key, _pipe@3). - --spec do_fold(list({RI, RJ}), RL, fun((RL, RI, RJ) -> RL)) -> RL. -do_fold(List, Initial, Fun) -> - case List of - [] -> - Initial; - - [{K, V} | Rest] -> - do_fold(Rest, Fun(Initial, K, V), Fun) - end. - --spec fold(dict(RM, RN), RQ, fun((RQ, RM, RN) -> RQ)) -> RQ. -fold(Dict, Initial, Fun) -> - _pipe = Dict, - _pipe@1 = to_list(_pipe), - do_fold(_pipe@1, Initial, Fun). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache deleted file mode 100644 index f10ed2a..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta deleted file mode 100644 index 9ae5074..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.erl deleted file mode 100644 index 2c6016f..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.erl +++ /dev/null @@ -1,808 +0,0 @@ --module(gleam@dynamic). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from/1, unsafe_coerce/1, dynamic/1, bit_array/1, bit_string/1, classify/1, int/1, float/1, bool/1, shallow_list/1, optional/1, any/1, decode1/2, result/2, list/1, string/1, field/2, optional_field/2, element/2, tuple2/2, tuple3/3, tuple4/4, tuple5/5, tuple6/6, dict/2, map/2, decode2/3, decode3/4, decode4/5, decode5/6, decode6/7, decode7/8, decode8/9, decode9/10]). --export_type([dynamic_/0, decode_error/0, unknown_tuple/0]). - --type dynamic_() :: any(). - --type decode_error() :: {decode_error, binary(), binary(), list(binary())}. - --type unknown_tuple() :: any(). - --spec from(any()) -> dynamic_(). -from(A) -> - gleam_stdlib:identity(A). - --spec unsafe_coerce(dynamic_()) -> any(). -unsafe_coerce(A) -> - gleam_stdlib:identity(A). - --spec dynamic(dynamic_()) -> {ok, dynamic_()} | {error, list(decode_error())}. -dynamic(Value) -> - {ok, Value}. - --spec bit_array(dynamic_()) -> {ok, bitstring()} | {error, list(decode_error())}. -bit_array(Data) -> - gleam_stdlib:decode_bit_array(Data). - --spec bit_string(dynamic_()) -> {ok, bitstring()} | - {error, list(decode_error())}. -bit_string(Data) -> - bit_array(Data). - --spec put_expected(decode_error(), binary()) -> decode_error(). -put_expected(Error, Expected) -> - erlang:setelement(2, Error, Expected). - --spec classify(dynamic_()) -> binary(). -classify(Data) -> - gleam_stdlib:classify_dynamic(Data). - --spec int(dynamic_()) -> {ok, integer()} | {error, list(decode_error())}. -int(Data) -> - gleam_stdlib:decode_int(Data). - --spec float(dynamic_()) -> {ok, float()} | {error, list(decode_error())}. -float(Data) -> - gleam_stdlib:decode_float(Data). - --spec bool(dynamic_()) -> {ok, boolean()} | {error, list(decode_error())}. -bool(Data) -> - gleam_stdlib:decode_bool(Data). - --spec shallow_list(dynamic_()) -> {ok, list(dynamic_())} | - {error, list(decode_error())}. -shallow_list(Value) -> - gleam_stdlib:decode_list(Value). - --spec optional(fun((dynamic_()) -> {ok, DGM} | {error, list(decode_error())})) -> fun((dynamic_()) -> {ok, - gleam@option:option(DGM)} | - {error, list(decode_error())}). -optional(Decode) -> - fun(Value) -> gleam_stdlib:decode_option(Value, Decode) end. - --spec at_least_decode_tuple_error(integer(), dynamic_()) -> {ok, any()} | - {error, list(decode_error())}. -at_least_decode_tuple_error(Size, Data) -> - S = case Size of - 1 -> - <<""/utf8>>; - - _ -> - <<"s"/utf8>> - end, - Error = begin - _pipe = [<<"Tuple of at least "/utf8>>, - gleam@int:to_string(Size), - <<" element"/utf8>>, - S], - _pipe@1 = gleam@string_builder:from_strings(_pipe), - _pipe@2 = gleam@string_builder:to_string(_pipe@1), - {decode_error, _pipe@2, classify(Data), []} - end, - {error, [Error]}. - --spec any(list(fun((dynamic_()) -> {ok, DKT} | {error, list(decode_error())}))) -> fun((dynamic_()) -> {ok, - DKT} | - {error, list(decode_error())}). -any(Decoders) -> - fun(Data) -> case Decoders of - [] -> - {error, - [{decode_error, <<"another type"/utf8>>, classify(Data), []}]}; - - [Decoder | Decoders@1] -> - case Decoder(Data) of - {ok, Decoded} -> - {ok, Decoded}; - - {error, _} -> - (any(Decoders@1))(Data) - end - end end. - --spec all_errors({ok, any()} | {error, list(decode_error())}) -> list(decode_error()). -all_errors(Result) -> - case Result of - {ok, _} -> - []; - - {error, Errors} -> - Errors - end. - --spec decode1( - fun((DKX) -> DKY), - fun((dynamic_()) -> {ok, DKX} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DKY} | {error, list(decode_error())}). -decode1(Constructor, T1) -> - fun(Value) -> case T1(Value) of - {ok, A} -> - {ok, Constructor(A)}; - - A@1 -> - {error, all_errors(A@1)} - end end. - --spec push_path(decode_error(), any()) -> decode_error(). -push_path(Error, Name) -> - Name@1 = from(Name), - Decoder = any( - [fun string/1, - fun(X) -> gleam@result:map(int(X), fun gleam@int:to_string/1) end] - ), - Name@3 = case Decoder(Name@1) of - {ok, Name@2} -> - Name@2; - - {error, _} -> - _pipe = [<<"<"/utf8>>, classify(Name@1), <<">"/utf8>>], - _pipe@1 = gleam@string_builder:from_strings(_pipe), - gleam@string_builder:to_string(_pipe@1) - end, - erlang:setelement(4, Error, [Name@3 | erlang:element(4, Error)]). - --spec result( - fun((dynamic_()) -> {ok, DGA} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DGC} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {ok, DGA} | {error, DGC}} | - {error, list(decode_error())}). -result(Decode_ok, Decode_error) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_result(Value), - fun(Inner_result) -> case Inner_result of - {ok, Raw} -> - gleam@result:'try'( - begin - _pipe = Decode_ok(Raw), - map_errors( - _pipe, - fun(_capture) -> - push_path(_capture, <<"ok"/utf8>>) - end - ) - end, - fun(Value@1) -> {ok, {ok, Value@1}} end - ); - - {error, Raw@1} -> - gleam@result:'try'( - begin - _pipe@1 = Decode_error(Raw@1), - map_errors( - _pipe@1, - fun(_capture@1) -> - push_path(_capture@1, <<"error"/utf8>>) - end - ) - end, - fun(Value@2) -> {ok, {error, Value@2}} end - ) - end end - ) - end. - --spec list(fun((dynamic_()) -> {ok, DGH} | {error, list(decode_error())})) -> fun((dynamic_()) -> {ok, - list(DGH)} | - {error, list(decode_error())}). -list(Decoder_type) -> - fun(Dynamic) -> - gleam@result:'try'(shallow_list(Dynamic), fun(List) -> _pipe = List, - _pipe@1 = gleam@list:try_map(_pipe, Decoder_type), - map_errors( - _pipe@1, - fun(_capture) -> push_path(_capture, <<"*"/utf8>>) end - ) end) - end. - --spec map_errors( - {ok, DEV} | {error, list(decode_error())}, - fun((decode_error()) -> decode_error()) -) -> {ok, DEV} | {error, list(decode_error())}. -map_errors(Result, F) -> - gleam@result:map_error( - Result, - fun(_capture) -> gleam@list:map(_capture, F) end - ). - --spec decode_string(dynamic_()) -> {ok, binary()} | - {error, list(decode_error())}. -decode_string(Data) -> - _pipe = bit_array(Data), - _pipe@1 = map_errors( - _pipe, - fun(_capture) -> put_expected(_capture, <<"String"/utf8>>) end - ), - gleam@result:'try'( - _pipe@1, - fun(Raw) -> case gleam@bit_array:to_string(Raw) of - {ok, String} -> - {ok, String}; - - {error, nil} -> - {error, - [{decode_error, - <<"String"/utf8>>, - <<"BitArray"/utf8>>, - []}]} - end end - ). - --spec string(dynamic_()) -> {ok, binary()} | {error, list(decode_error())}. -string(Data) -> - decode_string(Data). - --spec field( - any(), - fun((dynamic_()) -> {ok, DGW} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DGW} | {error, list(decode_error())}). -field(Name, Inner_type) -> - fun(Value) -> - Missing_field_error = {decode_error, - <<"field"/utf8>>, - <<"nothing"/utf8>>, - []}, - gleam@result:'try'( - gleam_stdlib:decode_field(Value, Name), - fun(Maybe_inner) -> _pipe = Maybe_inner, - _pipe@1 = gleam@option:to_result(_pipe, [Missing_field_error]), - _pipe@2 = gleam@result:'try'(_pipe@1, Inner_type), - map_errors( - _pipe@2, - fun(_capture) -> push_path(_capture, Name) end - ) end - ) - end. - --spec optional_field( - any(), - fun((dynamic_()) -> {ok, DHA} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, gleam@option:option(DHA)} | - {error, list(decode_error())}). -optional_field(Name, Inner_type) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_field(Value, Name), - fun(Maybe_inner) -> case Maybe_inner of - none -> - {ok, none}; - - {some, Dynamic_inner} -> - _pipe = Dynamic_inner, - _pipe@1 = gleam_stdlib:decode_option(_pipe, Inner_type), - map_errors( - _pipe@1, - fun(_capture) -> push_path(_capture, Name) end - ) - end end - ) - end. - --spec element( - integer(), - fun((dynamic_()) -> {ok, DHI} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DHI} | {error, list(decode_error())}). -element(Index, Inner_type) -> - fun(Data) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple(Data), - fun(Tuple) -> - Size = gleam_stdlib:size_of_tuple(Tuple), - gleam@result:'try'(case Index >= 0 of - true -> - case Index < Size of - true -> - gleam_stdlib:tuple_get(Tuple, Index); - - false -> - at_least_decode_tuple_error(Index + 1, Data) - end; - - false -> - case gleam@int:absolute_value(Index) =< Size of - true -> - gleam_stdlib:tuple_get(Tuple, Size + Index); - - false -> - at_least_decode_tuple_error( - gleam@int:absolute_value(Index), - Data - ) - end - end, fun(Data@1) -> _pipe = Inner_type(Data@1), - map_errors( - _pipe, - fun(_capture) -> push_path(_capture, Index) end - ) end) - end - ) - end. - --spec tuple_errors({ok, any()} | {error, list(decode_error())}, binary()) -> list(decode_error()). -tuple_errors(Result, Name) -> - case Result of - {ok, _} -> - []; - - {error, Errors} -> - gleam@list:map( - Errors, - fun(_capture) -> push_path(_capture, Name) end - ) - end. - --spec tuple2( - fun((dynamic_()) -> {ok, DII} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DIK} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {DII, DIK}} | {error, list(decode_error())}). -tuple2(Decode1, Decode2) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple2(Value), - fun(_use0) -> - {A, B} = _use0, - case {Decode1(A), Decode2(B)} of - {{ok, A@1}, {ok, B@1}} -> - {ok, {A@1, B@1}}; - - {A@2, B@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - {error, _pipe@1} - end - end - ) - end. - --spec tuple3( - fun((dynamic_()) -> {ok, DIN} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DIP} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DIR} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {DIN, DIP, DIR}} | {error, list(decode_error())}). -tuple3(Decode1, Decode2, Decode3) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple3(Value), - fun(_use0) -> - {A, B, C} = _use0, - case {Decode1(A), Decode2(B), Decode3(C)} of - {{ok, A@1}, {ok, B@1}, {ok, C@1}} -> - {ok, {A@1, B@1, C@1}}; - - {A@2, B@2, C@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - _pipe@2 = gleam@list:append( - _pipe@1, - tuple_errors(C@2, <<"2"/utf8>>) - ), - {error, _pipe@2} - end - end - ) - end. - --spec tuple4( - fun((dynamic_()) -> {ok, DIU} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DIW} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DIY} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJA} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {DIU, DIW, DIY, DJA}} | - {error, list(decode_error())}). -tuple4(Decode1, Decode2, Decode3, Decode4) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple4(Value), - fun(_use0) -> - {A, B, C, D} = _use0, - case {Decode1(A), Decode2(B), Decode3(C), Decode4(D)} of - {{ok, A@1}, {ok, B@1}, {ok, C@1}, {ok, D@1}} -> - {ok, {A@1, B@1, C@1, D@1}}; - - {A@2, B@2, C@2, D@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - _pipe@2 = gleam@list:append( - _pipe@1, - tuple_errors(C@2, <<"2"/utf8>>) - ), - _pipe@3 = gleam@list:append( - _pipe@2, - tuple_errors(D@2, <<"3"/utf8>>) - ), - {error, _pipe@3} - end - end - ) - end. - --spec tuple5( - fun((dynamic_()) -> {ok, DJD} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJF} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJH} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJJ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJL} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {DJD, DJF, DJH, DJJ, DJL}} | - {error, list(decode_error())}). -tuple5(Decode1, Decode2, Decode3, Decode4, Decode5) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple5(Value), - fun(_use0) -> - {A, B, C, D, E} = _use0, - case {Decode1(A), - Decode2(B), - Decode3(C), - Decode4(D), - Decode5(E)} of - {{ok, A@1}, {ok, B@1}, {ok, C@1}, {ok, D@1}, {ok, E@1}} -> - {ok, {A@1, B@1, C@1, D@1, E@1}}; - - {A@2, B@2, C@2, D@2, E@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - _pipe@2 = gleam@list:append( - _pipe@1, - tuple_errors(C@2, <<"2"/utf8>>) - ), - _pipe@3 = gleam@list:append( - _pipe@2, - tuple_errors(D@2, <<"3"/utf8>>) - ), - _pipe@4 = gleam@list:append( - _pipe@3, - tuple_errors(E@2, <<"4"/utf8>>) - ), - {error, _pipe@4} - end - end - ) - end. - --spec tuple6( - fun((dynamic_()) -> {ok, DJO} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJQ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJS} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJU} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJW} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DJY} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {DJO, DJQ, DJS, DJU, DJW, DJY}} | - {error, list(decode_error())}). -tuple6(Decode1, Decode2, Decode3, Decode4, Decode5, Decode6) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple6(Value), - fun(_use0) -> - {A, B, C, D, E, F} = _use0, - case {Decode1(A), - Decode2(B), - Decode3(C), - Decode4(D), - Decode5(E), - Decode6(F)} of - {{ok, A@1}, - {ok, B@1}, - {ok, C@1}, - {ok, D@1}, - {ok, E@1}, - {ok, F@1}} -> - {ok, {A@1, B@1, C@1, D@1, E@1, F@1}}; - - {A@2, B@2, C@2, D@2, E@2, F@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - _pipe@2 = gleam@list:append( - _pipe@1, - tuple_errors(C@2, <<"2"/utf8>>) - ), - _pipe@3 = gleam@list:append( - _pipe@2, - tuple_errors(D@2, <<"3"/utf8>>) - ), - _pipe@4 = gleam@list:append( - _pipe@3, - tuple_errors(E@2, <<"4"/utf8>>) - ), - _pipe@5 = gleam@list:append( - _pipe@4, - tuple_errors(F@2, <<"5"/utf8>>) - ), - {error, _pipe@5} - end - end - ) - end. - --spec dict( - fun((dynamic_()) -> {ok, DKB} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DKD} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, gleam@dict:dict(DKB, DKD)} | - {error, list(decode_error())}). -dict(Key_type, Value_type) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_map(Value), - fun(Map) -> - gleam@result:'try'( - begin - _pipe = Map, - _pipe@1 = gleam@dict:to_list(_pipe), - gleam@list:try_map( - _pipe@1, - fun(Pair) -> - {K, V} = Pair, - gleam@result:'try'( - begin - _pipe@2 = Key_type(K), - map_errors( - _pipe@2, - fun(_capture) -> - push_path( - _capture, - <<"keys"/utf8>> - ) - end - ) - end, - fun(K@1) -> - gleam@result:'try'( - begin - _pipe@3 = Value_type(V), - map_errors( - _pipe@3, - fun(_capture@1) -> - push_path( - _capture@1, - <<"values"/utf8>> - ) - end - ) - end, - fun(V@1) -> {ok, {K@1, V@1}} end - ) - end - ) - end - ) - end, - fun(Pairs) -> {ok, gleam@dict:from_list(Pairs)} end - ) - end - ) - end. - --spec map( - fun((dynamic_()) -> {ok, DKI} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DKK} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, gleam@dict:dict(DKI, DKK)} | - {error, list(decode_error())}). -map(Key_type, Value_type) -> - dict(Key_type, Value_type). - --spec decode2( - fun((DLB, DLC) -> DLD), - fun((dynamic_()) -> {ok, DLB} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DLC} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DLD} | {error, list(decode_error())}). -decode2(Constructor, T1, T2) -> - fun(Value) -> case {T1(Value), T2(Value)} of - {{ok, A}, {ok, B}} -> - {ok, Constructor(A, B)}; - - {A@1, B@1} -> - {error, gleam@list:concat([all_errors(A@1), all_errors(B@1)])} - end end. - --spec decode3( - fun((DLH, DLI, DLJ) -> DLK), - fun((dynamic_()) -> {ok, DLH} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DLI} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DLJ} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DLK} | {error, list(decode_error())}). -decode3(Constructor, T1, T2, T3) -> - fun(Value) -> case {T1(Value), T2(Value), T3(Value)} of - {{ok, A}, {ok, B}, {ok, C}} -> - {ok, Constructor(A, B, C)}; - - {A@1, B@1, C@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), all_errors(B@1), all_errors(C@1)] - )} - end end. - --spec decode4( - fun((DLP, DLQ, DLR, DLS) -> DLT), - fun((dynamic_()) -> {ok, DLP} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DLQ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DLR} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DLS} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DLT} | {error, list(decode_error())}). -decode4(Constructor, T1, T2, T3, T4) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X)} of - {{ok, A}, {ok, B}, {ok, C}, {ok, D}} -> - {ok, Constructor(A, B, C, D)}; - - {A@1, B@1, C@1, D@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1)] - )} - end end. - --spec decode5( - fun((DLZ, DMA, DMB, DMC, DMD) -> DME), - fun((dynamic_()) -> {ok, DLZ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMA} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMB} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMC} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMD} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DME} | {error, list(decode_error())}). -decode5(Constructor, T1, T2, T3, T4, T5) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X), T5(X)} of - {{ok, A}, {ok, B}, {ok, C}, {ok, D}, {ok, E}} -> - {ok, Constructor(A, B, C, D, E)}; - - {A@1, B@1, C@1, D@1, E@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1)] - )} - end end. - --spec decode6( - fun((DML, DMM, DMN, DMO, DMP, DMQ) -> DMR), - fun((dynamic_()) -> {ok, DML} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMM} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMN} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMO} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMP} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DMQ} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DMR} | {error, list(decode_error())}). -decode6(Constructor, T1, T2, T3, T4, T5, T6) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X), T5(X), T6(X)} of - {{ok, A}, {ok, B}, {ok, C}, {ok, D}, {ok, E}, {ok, F}} -> - {ok, Constructor(A, B, C, D, E, F)}; - - {A@1, B@1, C@1, D@1, E@1, F@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1), - all_errors(F@1)] - )} - end end. - --spec decode7( - fun((DMZ, DNA, DNB, DNC, DND, DNE, DNF) -> DNG), - fun((dynamic_()) -> {ok, DMZ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNA} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNB} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNC} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DND} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNE} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNF} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DNG} | {error, list(decode_error())}). -decode7(Constructor, T1, T2, T3, T4, T5, T6, T7) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X), T5(X), T6(X), T7(X)} of - {{ok, A}, {ok, B}, {ok, C}, {ok, D}, {ok, E}, {ok, F}, {ok, G}} -> - {ok, Constructor(A, B, C, D, E, F, G)}; - - {A@1, B@1, C@1, D@1, E@1, F@1, G@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1), - all_errors(F@1), - all_errors(G@1)] - )} - end end. - --spec decode8( - fun((DNP, DNQ, DNR, DNS, DNT, DNU, DNV, DNW) -> DNX), - fun((dynamic_()) -> {ok, DNP} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNQ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNR} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNS} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNT} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNU} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNV} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DNW} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DNX} | {error, list(decode_error())}). -decode8(Constructor, T1, T2, T3, T4, T5, T6, T7, T8) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X), T5(X), T6(X), T7(X), T8(X)} of - {{ok, A}, - {ok, B}, - {ok, C}, - {ok, D}, - {ok, E}, - {ok, F}, - {ok, G}, - {ok, H}} -> - {ok, Constructor(A, B, C, D, E, F, G, H)}; - - {A@1, B@1, C@1, D@1, E@1, F@1, G@1, H@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1), - all_errors(F@1), - all_errors(G@1), - all_errors(H@1)] - )} - end end. - --spec decode9( - fun((DOH, DOI, DOJ, DOK, DOL, DOM, DON, DOO, DOP) -> DOQ), - fun((dynamic_()) -> {ok, DOH} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DOI} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DOJ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DOK} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DOL} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DOM} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DON} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DOO} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DOP} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, DOQ} | {error, list(decode_error())}). -decode9(Constructor, T1, T2, T3, T4, T5, T6, T7, T8, T9) -> - fun(X) -> - case {T1(X), T2(X), T3(X), T4(X), T5(X), T6(X), T7(X), T8(X), T9(X)} of - {{ok, A}, - {ok, B}, - {ok, C}, - {ok, D}, - {ok, E}, - {ok, F}, - {ok, G}, - {ok, H}, - {ok, I}} -> - {ok, Constructor(A, B, C, D, E, F, G, H, I)}; - - {A@1, B@1, C@1, D@1, E@1, F@1, G@1, H@1, I@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1), - all_errors(F@1), - all_errors(G@1), - all_errors(H@1), - all_errors(I@1)] - )} - end - end. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache deleted file mode 100644 index 677362b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta deleted file mode 100644 index f10b39f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.erl deleted file mode 100644 index 33b3d4a..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.erl +++ /dev/null @@ -1,181 +0,0 @@ --module(gleam@float). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([parse/1, to_string/1, compare/2, min/2, max/2, clamp/3, ceiling/1, floor/1, round/1, truncate/1, absolute_value/1, loosely_compare/3, loosely_equals/3, power/2, square_root/1, negate/1, sum/1, product/1, random/2, divide/2, add/2, multiply/2, subtract/2]). - --spec parse(binary()) -> {ok, float()} | {error, nil}. -parse(String) -> - gleam_stdlib:parse_float(String). - --spec to_string(float()) -> binary(). -to_string(X) -> - gleam_stdlib:float_to_string(X). - --spec compare(float(), float()) -> gleam@order:order(). -compare(A, B) -> - case A =:= B of - true -> - eq; - - false -> - case A < B of - true -> - lt; - - false -> - gt - end - end. - --spec min(float(), float()) -> float(). -min(A, B) -> - case A < B of - true -> - A; - - false -> - B - end. - --spec max(float(), float()) -> float(). -max(A, B) -> - case A > B of - true -> - A; - - false -> - B - end. - --spec clamp(float(), float(), float()) -> float(). -clamp(X, Min_bound, Max_bound) -> - _pipe = X, - _pipe@1 = min(_pipe, Max_bound), - max(_pipe@1, Min_bound). - --spec ceiling(float()) -> float(). -ceiling(X) -> - math:ceil(X). - --spec floor(float()) -> float(). -floor(X) -> - math:floor(X). - --spec round(float()) -> integer(). -round(X) -> - erlang:round(X). - --spec truncate(float()) -> integer(). -truncate(X) -> - erlang:trunc(X). - --spec absolute_value(float()) -> float(). -absolute_value(X) -> - case X >= +0.0 of - true -> - X; - - _ -> - +0.0 - X - end. - --spec loosely_compare(float(), float(), float()) -> gleam@order:order(). -loosely_compare(A, B, Tolerance) -> - Difference = absolute_value(A - B), - case Difference =< Tolerance of - true -> - eq; - - false -> - compare(A, B) - end. - --spec loosely_equals(float(), float(), float()) -> boolean(). -loosely_equals(A, B, Tolerance) -> - Difference = absolute_value(A - B), - Difference =< Tolerance. - --spec power(float(), float()) -> {ok, float()} | {error, nil}. -power(Base, Exponent) -> - Fractional = (ceiling(Exponent) - Exponent) > +0.0, - case ((Base < +0.0) andalso Fractional) orelse ((Base =:= +0.0) andalso (Exponent - < +0.0)) of - true -> - {error, nil}; - - false -> - {ok, math:pow(Base, Exponent)} - end. - --spec square_root(float()) -> {ok, float()} | {error, nil}. -square_root(X) -> - power(X, 0.5). - --spec negate(float()) -> float(). -negate(X) -> - -1.0 * X. - --spec do_sum(list(float()), float()) -> float(). -do_sum(Numbers, Initial) -> - case Numbers of - [] -> - Initial; - - [X | Rest] -> - do_sum(Rest, X + Initial) - end. - --spec sum(list(float())) -> float(). -sum(Numbers) -> - _pipe = Numbers, - do_sum(_pipe, +0.0). - --spec do_product(list(float()), float()) -> float(). -do_product(Numbers, Initial) -> - case Numbers of - [] -> - Initial; - - [X | Rest] -> - do_product(Rest, X * Initial) - end. - --spec product(list(float())) -> float(). -product(Numbers) -> - case Numbers of - [] -> - 1.0; - - _ -> - do_product(Numbers, 1.0) - end. - --spec random(float(), float()) -> float(). -random(Min, Max) -> - (rand:uniform() * (Max - Min)) + Min. - --spec divide(float(), float()) -> {ok, float()} | {error, nil}. -divide(A, B) -> - case B of - +0.0 -> - {error, nil}; - - B@1 -> - {ok, case B@1 of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> A / Gleam@denominator - end} - end. - --spec add(float(), float()) -> float(). -add(A, B) -> - A + B. - --spec multiply(float(), float()) -> float(). -multiply(A, B) -> - A * B. - --spec subtract(float(), float()) -> float(). -subtract(A, B) -> - A - B. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache deleted file mode 100644 index 2f3e554..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta deleted file mode 100644 index ffb4624..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.erl deleted file mode 100644 index 75f142f..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.erl +++ /dev/null @@ -1,67 +0,0 @@ --module(gleam@function). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([compose/2, curry2/1, curry3/1, curry4/1, curry5/1, curry6/1, flip/1, identity/1, constant/1, tap/2, apply1/2, apply2/3, apply3/4]). - --spec compose(fun((ENH) -> ENI), fun((ENI) -> ENJ)) -> fun((ENH) -> ENJ). -compose(Fun1, Fun2) -> - fun(A) -> Fun2(Fun1(A)) end. - --spec curry2(fun((ENK, ENL) -> ENM)) -> fun((ENK) -> fun((ENL) -> ENM)). -curry2(Fun) -> - fun(A) -> fun(B) -> Fun(A, B) end end. - --spec curry3(fun((ENO, ENP, ENQ) -> ENR)) -> fun((ENO) -> fun((ENP) -> fun((ENQ) -> ENR))). -curry3(Fun) -> - fun(A) -> fun(B) -> fun(C) -> Fun(A, B, C) end end end. - --spec curry4(fun((ENT, ENU, ENV, ENW) -> ENX)) -> fun((ENT) -> fun((ENU) -> fun((ENV) -> fun((ENW) -> ENX)))). -curry4(Fun) -> - fun(A) -> fun(B) -> fun(C) -> fun(D) -> Fun(A, B, C, D) end end end end. - --spec curry5(fun((ENZ, EOA, EOB, EOC, EOD) -> EOE)) -> fun((ENZ) -> fun((EOA) -> fun((EOB) -> fun((EOC) -> fun((EOD) -> EOE))))). -curry5(Fun) -> - fun(A) -> - fun(B) -> - fun(C) -> fun(D) -> fun(E) -> Fun(A, B, C, D, E) end end end - end - end. - --spec curry6(fun((EOG, EOH, EOI, EOJ, EOK, EOL) -> EOM)) -> fun((EOG) -> fun((EOH) -> fun((EOI) -> fun((EOJ) -> fun((EOK) -> fun((EOL) -> EOM)))))). -curry6(Fun) -> - fun(A) -> - fun(B) -> - fun(C) -> - fun(D) -> fun(E) -> fun(F) -> Fun(A, B, C, D, E, F) end end end - end - end - end. - --spec flip(fun((EOO, EOP) -> EOQ)) -> fun((EOP, EOO) -> EOQ). -flip(Fun) -> - fun(B, A) -> Fun(A, B) end. - --spec identity(EOR) -> EOR. -identity(X) -> - X. - --spec constant(EOS) -> fun((any()) -> EOS). -constant(Value) -> - fun(_) -> Value end. - --spec tap(EOU, fun((EOU) -> any())) -> EOU. -tap(Arg, Effect) -> - Effect(Arg), - Arg. - --spec apply1(fun((EOW) -> EOX), EOW) -> EOX. -apply1(Fun, Arg1) -> - Fun(Arg1). - --spec apply2(fun((EOY, EOZ) -> EPA), EOY, EOZ) -> EPA. -apply2(Fun, Arg1, Arg2) -> - Fun(Arg1, Arg2). - --spec apply3(fun((EPB, EPC, EPD) -> EPE), EPB, EPC, EPD) -> EPE. -apply3(Fun, Arg1, Arg2, Arg3) -> - Fun(Arg1, Arg2, Arg3). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache deleted file mode 100644 index 62076d5..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta deleted file mode 100644 index 2d987e1..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.erl deleted file mode 100644 index 2a5dd2c..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.erl +++ /dev/null @@ -1,332 +0,0 @@ --module(gleam@int). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([absolute_value/1, parse/1, base_parse/2, to_string/1, to_base_string/2, to_base2/1, to_base8/1, to_base16/1, to_base36/1, to_float/1, power/2, square_root/1, compare/2, min/2, max/2, clamp/3, is_even/1, is_odd/1, negate/1, sum/1, product/1, digits/2, undigits/2, random/2, divide/2, remainder/2, modulo/2, floor_divide/2, add/2, multiply/2, subtract/2, bitwise_and/2, bitwise_not/1, bitwise_or/2, bitwise_exclusive_or/2, bitwise_shift_left/2, bitwise_shift_right/2]). --export_type([invalid_base/0]). - --type invalid_base() :: invalid_base. - --spec absolute_value(integer()) -> integer(). -absolute_value(X) -> - case X >= 0 of - true -> - X; - - false -> - X * -1 - end. - --spec parse(binary()) -> {ok, integer()} | {error, nil}. -parse(String) -> - gleam_stdlib:parse_int(String). - --spec base_parse(binary(), integer()) -> {ok, integer()} | {error, nil}. -base_parse(String, Base) -> - case (Base >= 2) andalso (Base =< 36) of - true -> - gleam_stdlib:int_from_base_string(String, Base); - - false -> - {error, nil} - end. - --spec to_string(integer()) -> binary(). -to_string(X) -> - erlang:integer_to_binary(X). - --spec to_base_string(integer(), integer()) -> {ok, binary()} | - {error, invalid_base()}. -to_base_string(X, Base) -> - case (Base >= 2) andalso (Base =< 36) of - true -> - {ok, erlang:integer_to_binary(X, Base)}; - - false -> - {error, invalid_base} - end. - --spec to_base2(integer()) -> binary(). -to_base2(X) -> - erlang:integer_to_binary(X, 2). - --spec to_base8(integer()) -> binary(). -to_base8(X) -> - erlang:integer_to_binary(X, 8). - --spec to_base16(integer()) -> binary(). -to_base16(X) -> - erlang:integer_to_binary(X, 16). - --spec to_base36(integer()) -> binary(). -to_base36(X) -> - erlang:integer_to_binary(X, 36). - --spec to_float(integer()) -> float(). -to_float(X) -> - erlang:float(X). - --spec power(integer(), float()) -> {ok, float()} | {error, nil}. -power(Base, Exponent) -> - _pipe = Base, - _pipe@1 = to_float(_pipe), - gleam@float:power(_pipe@1, Exponent). - --spec square_root(integer()) -> {ok, float()} | {error, nil}. -square_root(X) -> - _pipe = X, - _pipe@1 = to_float(_pipe), - gleam@float:square_root(_pipe@1). - --spec compare(integer(), integer()) -> gleam@order:order(). -compare(A, B) -> - case A =:= B of - true -> - eq; - - false -> - case A < B of - true -> - lt; - - false -> - gt - end - end. - --spec min(integer(), integer()) -> integer(). -min(A, B) -> - case A < B of - true -> - A; - - false -> - B - end. - --spec max(integer(), integer()) -> integer(). -max(A, B) -> - case A > B of - true -> - A; - - false -> - B - end. - --spec clamp(integer(), integer(), integer()) -> integer(). -clamp(X, Min_bound, Max_bound) -> - _pipe = X, - _pipe@1 = min(_pipe, Max_bound), - max(_pipe@1, Min_bound). - --spec is_even(integer()) -> boolean(). -is_even(X) -> - (X rem 2) =:= 0. - --spec is_odd(integer()) -> boolean(). -is_odd(X) -> - (X rem 2) /= 0. - --spec negate(integer()) -> integer(). -negate(X) -> - -1 * X. - --spec do_sum(list(integer()), integer()) -> integer(). -do_sum(Numbers, Initial) -> - case Numbers of - [] -> - Initial; - - [X | Rest] -> - do_sum(Rest, X + Initial) - end. - --spec sum(list(integer())) -> integer(). -sum(Numbers) -> - _pipe = Numbers, - do_sum(_pipe, 0). - --spec do_product(list(integer()), integer()) -> integer(). -do_product(Numbers, Initial) -> - case Numbers of - [] -> - Initial; - - [X | Rest] -> - do_product(Rest, X * Initial) - end. - --spec product(list(integer())) -> integer(). -product(Numbers) -> - case Numbers of - [] -> - 1; - - _ -> - do_product(Numbers, 1) - end. - --spec do_digits(integer(), integer(), list(integer())) -> list(integer()). -do_digits(X, Base, Acc) -> - case absolute_value(X) < Base of - true -> - [X | Acc]; - - false -> - do_digits(case Base of - 0 -> 0; - Gleam@denominator -> X div Gleam@denominator - end, Base, [case Base of - 0 -> 0; - Gleam@denominator@1 -> X rem Gleam@denominator@1 - end | Acc]) - end. - --spec digits(integer(), integer()) -> {ok, list(integer())} | - {error, invalid_base()}. -digits(X, Base) -> - case Base < 2 of - true -> - {error, invalid_base}; - - false -> - {ok, do_digits(X, Base, [])} - end. - --spec do_undigits(list(integer()), integer(), integer()) -> {ok, integer()} | - {error, invalid_base()}. -do_undigits(Numbers, Base, Acc) -> - case Numbers of - [] -> - {ok, Acc}; - - [Digit | _] when Digit >= Base -> - {error, invalid_base}; - - [Digit@1 | Rest] -> - do_undigits(Rest, Base, (Acc * Base) + Digit@1) - end. - --spec undigits(list(integer()), integer()) -> {ok, integer()} | - {error, invalid_base()}. -undigits(Numbers, Base) -> - case Base < 2 of - true -> - {error, invalid_base}; - - false -> - do_undigits(Numbers, Base, 0) - end. - --spec random(integer(), integer()) -> integer(). -random(Min, Max) -> - _pipe = gleam@float:random(to_float(Min), to_float(Max)), - _pipe@1 = gleam@float:floor(_pipe), - gleam@float:round(_pipe@1). - --spec divide(integer(), integer()) -> {ok, integer()} | {error, nil}. -divide(Dividend, Divisor) -> - case Divisor of - 0 -> - {error, nil}; - - Divisor@1 -> - {ok, case Divisor@1 of - 0 -> 0; - Gleam@denominator -> Dividend div Gleam@denominator - end} - end. - --spec remainder(integer(), integer()) -> {ok, integer()} | {error, nil}. -remainder(Dividend, Divisor) -> - case Divisor of - 0 -> - {error, nil}; - - Divisor@1 -> - {ok, case Divisor@1 of - 0 -> 0; - Gleam@denominator -> Dividend rem Gleam@denominator - end} - end. - --spec modulo(integer(), integer()) -> {ok, integer()} | {error, nil}. -modulo(Dividend, Divisor) -> - case Divisor of - 0 -> - {error, nil}; - - _ -> - Remainder = case Divisor of - 0 -> 0; - Gleam@denominator -> Dividend rem Gleam@denominator - end, - case (Remainder * Divisor) < 0 of - true -> - {ok, Remainder + Divisor}; - - false -> - {ok, Remainder} - end - end. - --spec floor_divide(integer(), integer()) -> {ok, integer()} | {error, nil}. -floor_divide(Dividend, Divisor) -> - case Divisor of - 0 -> - {error, nil}; - - Divisor@1 -> - case ((Dividend * Divisor@1) < 0) andalso ((case Divisor@1 of - 0 -> 0; - Gleam@denominator -> Dividend rem Gleam@denominator - end) /= 0) of - true -> - {ok, (case Divisor@1 of - 0 -> 0; - Gleam@denominator@1 -> Dividend div Gleam@denominator@1 - end) - 1}; - - false -> - {ok, case Divisor@1 of - 0 -> 0; - Gleam@denominator@2 -> Dividend div Gleam@denominator@2 - end} - end - end. - --spec add(integer(), integer()) -> integer(). -add(A, B) -> - A + B. - --spec multiply(integer(), integer()) -> integer(). -multiply(A, B) -> - A * B. - --spec subtract(integer(), integer()) -> integer(). -subtract(A, B) -> - A - B. - --spec bitwise_and(integer(), integer()) -> integer(). -bitwise_and(X, Y) -> - erlang:'band'(X, Y). - --spec bitwise_not(integer()) -> integer(). -bitwise_not(X) -> - erlang:'bnot'(X). - --spec bitwise_or(integer(), integer()) -> integer(). -bitwise_or(X, Y) -> - erlang:'bor'(X, Y). - --spec bitwise_exclusive_or(integer(), integer()) -> integer(). -bitwise_exclusive_or(X, Y) -> - erlang:'bxor'(X, Y). - --spec bitwise_shift_left(integer(), integer()) -> integer(). -bitwise_shift_left(X, Y) -> - erlang:'bsl'(X, Y). - --spec bitwise_shift_right(integer(), integer()) -> integer(). -bitwise_shift_right(X, Y) -> - erlang:'bsr'(X, Y). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache deleted file mode 100644 index ddf78ca..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta deleted file mode 100644 index 06ce652..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.erl deleted file mode 100644 index 3ab9c35..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.erl +++ /dev/null @@ -1,27 +0,0 @@ --module(gleam@io). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([print/1, print_error/1, println/1, println_error/1, debug/1]). - --spec print(binary()) -> nil. -print(String) -> - gleam_stdlib:print(String). - --spec print_error(binary()) -> nil. -print_error(String) -> - gleam_stdlib:print_error(String). - --spec println(binary()) -> nil. -println(String) -> - gleam_stdlib:println(String). - --spec println_error(binary()) -> nil. -println_error(String) -> - gleam_stdlib:println_error(String). - --spec debug(FHE) -> FHE. -debug(Term) -> - _pipe = Term, - _pipe@1 = gleam@string:inspect(_pipe), - gleam_stdlib:println_error(_pipe@1), - Term. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache deleted file mode 100644 index 2582f43..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache_meta deleted file mode 100644 index 2dcb80d..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.erl deleted file mode 100644 index c7a4b31..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.erl +++ /dev/null @@ -1,744 +0,0 @@ --module(gleam@iterator). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([unfold/2, repeatedly/1, repeat/1, from_list/1, transform/3, fold/3, run/1, to_list/1, step/1, take/2, drop/2, map/2, map2/3, append/2, flatten/1, concat/1, flat_map/2, filter/2, cycle/1, find/2, index/1, iterate/2, take_while/2, drop_while/2, scan/3, zip/2, chunk/2, sized_chunk/2, intersperse/2, any/2, all/2, group/2, reduce/2, last/1, empty/0, once/1, range/2, single/1, interleave/2, fold_until/3, try_fold/3, first/1, at/2, length/1, each/2, yield/2]). --export_type([action/1, iterator/1, step/2, chunk/2, sized_chunk/1]). - --type action(BUS) :: stop | {continue, BUS, fun(() -> action(BUS))}. - --opaque iterator(BUT) :: {iterator, fun(() -> action(BUT))}. - --type step(BUU, BUV) :: {next, BUU, BUV} | done. - --type chunk(BUW, BUX) :: {another_by, - list(BUW), - BUX, - BUW, - fun(() -> action(BUW))} | - {last_by, list(BUW)}. - --type sized_chunk(BUY) :: {another, list(BUY), fun(() -> action(BUY))} | - {last, list(BUY)} | - no_more. - --spec stop() -> action(any()). -stop() -> - stop. - --spec do_unfold(BVB, fun((BVB) -> step(BVC, BVB))) -> fun(() -> action(BVC)). -do_unfold(Initial, F) -> - fun() -> case F(Initial) of - {next, X, Acc} -> - {continue, X, do_unfold(Acc, F)}; - - done -> - stop - end end. - --spec unfold(BVG, fun((BVG) -> step(BVH, BVG))) -> iterator(BVH). -unfold(Initial, F) -> - _pipe = Initial, - _pipe@1 = do_unfold(_pipe, F), - {iterator, _pipe@1}. - --spec repeatedly(fun(() -> BVL)) -> iterator(BVL). -repeatedly(F) -> - unfold(nil, fun(_) -> {next, F(), nil} end). - --spec repeat(BVN) -> iterator(BVN). -repeat(X) -> - repeatedly(fun() -> X end). - --spec from_list(list(BVP)) -> iterator(BVP). -from_list(List) -> - Yield = fun(Acc) -> case Acc of - [] -> - done; - - [Head | Tail] -> - {next, Head, Tail} - end end, - unfold(List, Yield). - --spec do_transform( - fun(() -> action(BVS)), - BVU, - fun((BVU, BVS) -> step(BVV, BVU)) -) -> fun(() -> action(BVV)). -do_transform(Continuation, State, F) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, El, Next} -> - case F(State, El) of - done -> - stop; - - {next, Yield, Next_state} -> - {continue, Yield, do_transform(Next, Next_state, F)} - end - end end. - --spec transform(iterator(BVZ), BWB, fun((BWB, BVZ) -> step(BWC, BWB))) -> iterator(BWC). -transform(Iterator, Initial, F) -> - _pipe = do_transform(erlang:element(2, Iterator), Initial, F), - {iterator, _pipe}. - --spec do_fold(fun(() -> action(BWG)), fun((BWI, BWG) -> BWI), BWI) -> BWI. -do_fold(Continuation, F, Accumulator) -> - case Continuation() of - {continue, Elem, Next} -> - do_fold(Next, F, F(Accumulator, Elem)); - - stop -> - Accumulator - end. - --spec fold(iterator(BWJ), BWL, fun((BWL, BWJ) -> BWL)) -> BWL. -fold(Iterator, Initial, F) -> - _pipe = erlang:element(2, Iterator), - do_fold(_pipe, F, Initial). - --spec run(iterator(any())) -> nil. -run(Iterator) -> - fold(Iterator, nil, fun(_, _) -> nil end). - --spec to_list(iterator(BWO)) -> list(BWO). -to_list(Iterator) -> - _pipe = Iterator, - _pipe@1 = fold(_pipe, [], fun(Acc, E) -> [E | Acc] end), - gleam@list:reverse(_pipe@1). - --spec step(iterator(BWR)) -> step(BWR, iterator(BWR)). -step(Iterator) -> - case (erlang:element(2, Iterator))() of - stop -> - done; - - {continue, E, A} -> - {next, E, {iterator, A}} - end. - --spec do_take(fun(() -> action(BWW)), integer()) -> fun(() -> action(BWW)). -do_take(Continuation, Desired) -> - fun() -> case Desired > 0 of - false -> - stop; - - true -> - case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - {continue, E, do_take(Next, Desired - 1)} - end - end end. - --spec take(iterator(BWZ), integer()) -> iterator(BWZ). -take(Iterator, Desired) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_take(_pipe, Desired), - {iterator, _pipe@1}. - --spec do_drop(fun(() -> action(BXC)), integer()) -> action(BXC). -do_drop(Continuation, Desired) -> - case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - case Desired > 0 of - true -> - do_drop(Next, Desired - 1); - - false -> - {continue, E, Next} - end - end. - --spec drop(iterator(BXF), integer()) -> iterator(BXF). -drop(Iterator, Desired) -> - _pipe = fun() -> do_drop(erlang:element(2, Iterator), Desired) end, - {iterator, _pipe}. - --spec do_map(fun(() -> action(BXI)), fun((BXI) -> BXK)) -> fun(() -> action(BXK)). -do_map(Continuation, F) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, E, Continuation@1} -> - {continue, F(E), do_map(Continuation@1, F)} - end end. - --spec map(iterator(BXM), fun((BXM) -> BXO)) -> iterator(BXO). -map(Iterator, F) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_map(_pipe, F), - {iterator, _pipe@1}. - --spec do_map2( - fun(() -> action(BXQ)), - fun(() -> action(BXS)), - fun((BXQ, BXS) -> BXU) -) -> fun(() -> action(BXU)). -do_map2(Continuation1, Continuation2, Fun) -> - fun() -> case Continuation1() of - stop -> - stop; - - {continue, A, Next_a} -> - case Continuation2() of - stop -> - stop; - - {continue, B, Next_b} -> - {continue, Fun(A, B), do_map2(Next_a, Next_b, Fun)} - end - end end. - --spec map2(iterator(BXW), iterator(BXY), fun((BXW, BXY) -> BYA)) -> iterator(BYA). -map2(Iterator1, Iterator2, Fun) -> - _pipe = do_map2( - erlang:element(2, Iterator1), - erlang:element(2, Iterator2), - Fun - ), - {iterator, _pipe}. - --spec do_append(fun(() -> action(BYC)), fun(() -> action(BYC))) -> action(BYC). -do_append(First, Second) -> - case First() of - {continue, E, First@1} -> - {continue, E, fun() -> do_append(First@1, Second) end}; - - stop -> - Second() - end. - --spec append(iterator(BYG), iterator(BYG)) -> iterator(BYG). -append(First, Second) -> - _pipe = fun() -> - do_append(erlang:element(2, First), erlang:element(2, Second)) - end, - {iterator, _pipe}. - --spec do_flatten(fun(() -> action(iterator(BYK)))) -> action(BYK). -do_flatten(Flattened) -> - case Flattened() of - stop -> - stop; - - {continue, It, Next_iterator} -> - do_append( - erlang:element(2, It), - fun() -> do_flatten(Next_iterator) end - ) - end. - --spec flatten(iterator(iterator(BYO))) -> iterator(BYO). -flatten(Iterator) -> - _pipe = fun() -> do_flatten(erlang:element(2, Iterator)) end, - {iterator, _pipe}. - --spec concat(list(iterator(BYS))) -> iterator(BYS). -concat(Iterators) -> - flatten(from_list(Iterators)). - --spec flat_map(iterator(BYW), fun((BYW) -> iterator(BYY))) -> iterator(BYY). -flat_map(Iterator, F) -> - _pipe = Iterator, - _pipe@1 = map(_pipe, F), - flatten(_pipe@1). - --spec do_filter(fun(() -> action(BZB)), fun((BZB) -> boolean())) -> action(BZB). -do_filter(Continuation, Predicate) -> - case Continuation() of - stop -> - stop; - - {continue, E, Iterator} -> - case Predicate(E) of - true -> - {continue, E, fun() -> do_filter(Iterator, Predicate) end}; - - false -> - do_filter(Iterator, Predicate) - end - end. - --spec filter(iterator(BZE), fun((BZE) -> boolean())) -> iterator(BZE). -filter(Iterator, Predicate) -> - _pipe = fun() -> do_filter(erlang:element(2, Iterator), Predicate) end, - {iterator, _pipe}. - --spec cycle(iterator(BZH)) -> iterator(BZH). -cycle(Iterator) -> - _pipe = repeat(Iterator), - flatten(_pipe). - --spec do_find(fun(() -> action(BZL)), fun((BZL) -> boolean())) -> {ok, BZL} | - {error, nil}. -do_find(Continuation, F) -> - case Continuation() of - stop -> - {error, nil}; - - {continue, E, Next} -> - case F(E) of - true -> - {ok, E}; - - false -> - do_find(Next, F) - end - end. - --spec find(iterator(BZP), fun((BZP) -> boolean())) -> {ok, BZP} | {error, nil}. -find(Haystack, Is_desired) -> - _pipe = erlang:element(2, Haystack), - do_find(_pipe, Is_desired). - --spec do_index(fun(() -> action(BZT)), integer()) -> fun(() -> action({integer(), - BZT})). -do_index(Continuation, Next) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, E, Continuation@1} -> - {continue, {Next, E}, do_index(Continuation@1, Next + 1)} - end end. - --spec index(iterator(BZW)) -> iterator({integer(), BZW}). -index(Iterator) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_index(_pipe, 0), - {iterator, _pipe@1}. - --spec iterate(BZZ, fun((BZZ) -> BZZ)) -> iterator(BZZ). -iterate(Initial, F) -> - unfold(Initial, fun(Element) -> {next, Element, F(Element)} end). - --spec do_take_while(fun(() -> action(CAB)), fun((CAB) -> boolean())) -> fun(() -> action(CAB)). -do_take_while(Continuation, Predicate) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - case Predicate(E) of - false -> - stop; - - true -> - {continue, E, do_take_while(Next, Predicate)} - end - end end. - --spec take_while(iterator(CAE), fun((CAE) -> boolean())) -> iterator(CAE). -take_while(Iterator, Predicate) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_take_while(_pipe, Predicate), - {iterator, _pipe@1}. - --spec do_drop_while(fun(() -> action(CAH)), fun((CAH) -> boolean())) -> action(CAH). -do_drop_while(Continuation, Predicate) -> - case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - case Predicate(E) of - false -> - {continue, E, Next}; - - true -> - do_drop_while(Next, Predicate) - end - end. - --spec drop_while(iterator(CAK), fun((CAK) -> boolean())) -> iterator(CAK). -drop_while(Iterator, Predicate) -> - _pipe = fun() -> do_drop_while(erlang:element(2, Iterator), Predicate) end, - {iterator, _pipe}. - --spec do_scan(fun(() -> action(CAN)), fun((CAP, CAN) -> CAP), CAP) -> fun(() -> action(CAP)). -do_scan(Continuation, F, Accumulator) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, El, Next} -> - Accumulated = F(Accumulator, El), - {continue, Accumulated, do_scan(Next, F, Accumulated)} - end end. - --spec scan(iterator(CAR), CAT, fun((CAT, CAR) -> CAT)) -> iterator(CAT). -scan(Iterator, Initial, F) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_scan(_pipe, F, Initial), - {iterator, _pipe@1}. - --spec do_zip(fun(() -> action(CAV)), fun(() -> action(CAX))) -> fun(() -> action({CAV, - CAX})). -do_zip(Left, Right) -> - fun() -> case Left() of - stop -> - stop; - - {continue, El_left, Next_left} -> - case Right() of - stop -> - stop; - - {continue, El_right, Next_right} -> - {continue, - {El_left, El_right}, - do_zip(Next_left, Next_right)} - end - end end. - --spec zip(iterator(CBA), iterator(CBC)) -> iterator({CBA, CBC}). -zip(Left, Right) -> - _pipe = do_zip(erlang:element(2, Left), erlang:element(2, Right)), - {iterator, _pipe}. - --spec next_chunk(fun(() -> action(CBF)), fun((CBF) -> CBH), CBH, list(CBF)) -> chunk(CBF, CBH). -next_chunk(Continuation, F, Previous_key, Current_chunk) -> - case Continuation() of - stop -> - {last_by, gleam@list:reverse(Current_chunk)}; - - {continue, E, Next} -> - Key = F(E), - case Key =:= Previous_key of - true -> - next_chunk(Next, F, Key, [E | Current_chunk]); - - false -> - {another_by, - gleam@list:reverse(Current_chunk), - Key, - E, - Next} - end - end. - --spec do_chunk(fun(() -> action(CBL)), fun((CBL) -> CBN), CBN, CBL) -> action(list(CBL)). -do_chunk(Continuation, F, Previous_key, Previous_element) -> - case next_chunk(Continuation, F, Previous_key, [Previous_element]) of - {last_by, Chunk} -> - {continue, Chunk, fun stop/0}; - - {another_by, Chunk@1, Key, El, Next} -> - {continue, Chunk@1, fun() -> do_chunk(Next, F, Key, El) end} - end. - --spec chunk(iterator(CBQ), fun((CBQ) -> any())) -> iterator(list(CBQ)). -chunk(Iterator, F) -> - _pipe = fun() -> case (erlang:element(2, Iterator))() of - stop -> - stop; - - {continue, E, Next} -> - do_chunk(Next, F, F(E), E) - end end, - {iterator, _pipe}. - --spec next_sized_chunk(fun(() -> action(CBV)), integer(), list(CBV)) -> sized_chunk(CBV). -next_sized_chunk(Continuation, Left, Current_chunk) -> - case Continuation() of - stop -> - case Current_chunk of - [] -> - no_more; - - Remaining -> - {last, gleam@list:reverse(Remaining)} - end; - - {continue, E, Next} -> - Chunk = [E | Current_chunk], - case Left > 1 of - false -> - {another, gleam@list:reverse(Chunk), Next}; - - true -> - next_sized_chunk(Next, Left - 1, Chunk) - end - end. - --spec do_sized_chunk(fun(() -> action(CBZ)), integer()) -> fun(() -> action(list(CBZ))). -do_sized_chunk(Continuation, Count) -> - fun() -> case next_sized_chunk(Continuation, Count, []) of - no_more -> - stop; - - {last, Chunk} -> - {continue, Chunk, fun stop/0}; - - {another, Chunk@1, Next_element} -> - {continue, Chunk@1, do_sized_chunk(Next_element, Count)} - end end. - --spec sized_chunk(iterator(CCD), integer()) -> iterator(list(CCD)). -sized_chunk(Iterator, Count) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_sized_chunk(_pipe, Count), - {iterator, _pipe@1}. - --spec do_intersperse(fun(() -> action(CCH)), CCH) -> action(CCH). -do_intersperse(Continuation, Separator) -> - case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - Next_interspersed = fun() -> do_intersperse(Next, Separator) end, - {continue, Separator, fun() -> {continue, E, Next_interspersed} end} - end. - --spec intersperse(iterator(CCK), CCK) -> iterator(CCK). -intersperse(Iterator, Elem) -> - _pipe = fun() -> case (erlang:element(2, Iterator))() of - stop -> - stop; - - {continue, E, Next} -> - {continue, E, fun() -> do_intersperse(Next, Elem) end} - end end, - {iterator, _pipe}. - --spec do_any(fun(() -> action(CCN)), fun((CCN) -> boolean())) -> boolean(). -do_any(Continuation, Predicate) -> - case Continuation() of - stop -> - false; - - {continue, E, Next} -> - case Predicate(E) of - true -> - true; - - false -> - do_any(Next, Predicate) - end - end. - --spec any(iterator(CCP), fun((CCP) -> boolean())) -> boolean(). -any(Iterator, Predicate) -> - _pipe = erlang:element(2, Iterator), - do_any(_pipe, Predicate). - --spec do_all(fun(() -> action(CCR)), fun((CCR) -> boolean())) -> boolean(). -do_all(Continuation, Predicate) -> - case Continuation() of - stop -> - true; - - {continue, E, Next} -> - case Predicate(E) of - true -> - do_all(Next, Predicate); - - false -> - false - end - end. - --spec all(iterator(CCT), fun((CCT) -> boolean())) -> boolean(). -all(Iterator, Predicate) -> - _pipe = erlang:element(2, Iterator), - do_all(_pipe, Predicate). - --spec update_group_with(CCV) -> fun((gleam@option:option(list(CCV))) -> list(CCV)). -update_group_with(El) -> - fun(Maybe_group) -> case Maybe_group of - {some, Group} -> - [El | Group]; - - none -> - [El] - end end. - --spec group_updater(fun((CCZ) -> CDA)) -> fun((gleam@dict:dict(CDA, list(CCZ)), CCZ) -> gleam@dict:dict(CDA, list(CCZ))). -group_updater(F) -> - fun(Groups, Elem) -> _pipe = Groups, - gleam@dict:update(_pipe, F(Elem), update_group_with(Elem)) end. - --spec group(iterator(CDH), fun((CDH) -> CDJ)) -> gleam@dict:dict(CDJ, list(CDH)). -group(Iterator, Key) -> - _pipe = Iterator, - _pipe@1 = fold(_pipe, gleam@dict:new(), group_updater(Key)), - gleam@dict:map_values( - _pipe@1, - fun(_, Group) -> gleam@list:reverse(Group) end - ). - --spec reduce(iterator(CDN), fun((CDN, CDN) -> CDN)) -> {ok, CDN} | {error, nil}. -reduce(Iterator, F) -> - case (erlang:element(2, Iterator))() of - stop -> - {error, nil}; - - {continue, E, Next} -> - _pipe = do_fold(Next, F, E), - {ok, _pipe} - end. - --spec last(iterator(CDR)) -> {ok, CDR} | {error, nil}. -last(Iterator) -> - _pipe = Iterator, - reduce(_pipe, fun(_, Elem) -> Elem end). - --spec empty() -> iterator(any()). -empty() -> - {iterator, fun stop/0}. - --spec once(fun(() -> CDX)) -> iterator(CDX). -once(F) -> - _pipe = fun() -> {continue, F(), fun stop/0} end, - {iterator, _pipe}. - --spec range(integer(), integer()) -> iterator(integer()). -range(Start, Stop) -> - case gleam@int:compare(Start, Stop) of - eq -> - once(fun() -> Start end); - - gt -> - unfold(Start, fun(Current) -> case Current < Stop of - false -> - {next, Current, Current - 1}; - - true -> - done - end end); - - lt -> - unfold(Start, fun(Current@1) -> case Current@1 > Stop of - false -> - {next, Current@1, Current@1 + 1}; - - true -> - done - end end) - end. - --spec single(CDZ) -> iterator(CDZ). -single(Elem) -> - once(fun() -> Elem end). - --spec do_interleave(fun(() -> action(CEB)), fun(() -> action(CEB))) -> action(CEB). -do_interleave(Current, Next) -> - case Current() of - stop -> - Next(); - - {continue, E, Next_other} -> - {continue, E, fun() -> do_interleave(Next, Next_other) end} - end. - --spec interleave(iterator(CEF), iterator(CEF)) -> iterator(CEF). -interleave(Left, Right) -> - _pipe = fun() -> - do_interleave(erlang:element(2, Left), erlang:element(2, Right)) - end, - {iterator, _pipe}. - --spec do_fold_until( - fun(() -> action(CEJ)), - fun((CEL, CEJ) -> gleam@list:continue_or_stop(CEL)), - CEL -) -> CEL. -do_fold_until(Continuation, F, Accumulator) -> - case Continuation() of - stop -> - Accumulator; - - {continue, Elem, Next} -> - case F(Accumulator, Elem) of - {continue, Accumulator@1} -> - do_fold_until(Next, F, Accumulator@1); - - {stop, Accumulator@2} -> - Accumulator@2 - end - end. - --spec fold_until( - iterator(CEN), - CEP, - fun((CEP, CEN) -> gleam@list:continue_or_stop(CEP)) -) -> CEP. -fold_until(Iterator, Initial, F) -> - _pipe = erlang:element(2, Iterator), - do_fold_until(_pipe, F, Initial). - --spec do_try_fold( - fun(() -> action(CER)), - fun((CET, CER) -> {ok, CET} | {error, CEU}), - CET -) -> {ok, CET} | {error, CEU}. -do_try_fold(Continuation, F, Accumulator) -> - case Continuation() of - stop -> - {ok, Accumulator}; - - {continue, Elem, Next} -> - gleam@result:'try'( - F(Accumulator, Elem), - fun(Accumulator@1) -> do_try_fold(Next, F, Accumulator@1) end - ) - end. - --spec try_fold(iterator(CEZ), CFB, fun((CFB, CEZ) -> {ok, CFB} | {error, CFC})) -> {ok, - CFB} | - {error, CFC}. -try_fold(Iterator, Initial, F) -> - _pipe = erlang:element(2, Iterator), - do_try_fold(_pipe, F, Initial). - --spec first(iterator(CFH)) -> {ok, CFH} | {error, nil}. -first(Iterator) -> - case (erlang:element(2, Iterator))() of - stop -> - {error, nil}; - - {continue, E, _} -> - {ok, E} - end. - --spec at(iterator(CFL), integer()) -> {ok, CFL} | {error, nil}. -at(Iterator, Index) -> - _pipe = Iterator, - _pipe@1 = drop(_pipe, Index), - first(_pipe@1). - --spec do_length(fun(() -> action(any())), integer()) -> integer(). -do_length(Continuation, Length) -> - case Continuation() of - stop -> - Length; - - {continue, _, Next} -> - do_length(Next, Length + 1) - end. - --spec length(iterator(any())) -> integer(). -length(Iterator) -> - _pipe = erlang:element(2, Iterator), - do_length(_pipe, 0). - --spec each(iterator(CFT), fun((CFT) -> any())) -> nil. -each(Iterator, F) -> - _pipe = Iterator, - _pipe@1 = map(_pipe, F), - run(_pipe@1). - --spec yield(CFW, fun(() -> iterator(CFW))) -> iterator(CFW). -yield(Element, Next) -> - {iterator, fun() -> {continue, Element, erlang:element(2, Next())} end}. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache deleted file mode 100644 index 394792a..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta deleted file mode 100644 index 56b294f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.erl deleted file mode 100644 index 6c2e684..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.erl +++ /dev/null @@ -1,1129 +0,0 @@ --module(gleam@list). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([length/1, reverse/1, is_empty/1, contains/2, first/1, rest/1, filter/2, filter_map/2, map/2, map2/3, index_map/2, try_map/2, drop/2, take/2, new/0, append/2, prepend/2, concat/1, flatten/1, flat_map/2, fold/3, group/2, map_fold/3, fold_right/3, index_fold/3, try_fold/3, fold_until/3, find/2, find_map/2, all/2, any/2, zip/2, strict_zip/2, unzip/1, intersperse/2, at/2, unique/1, sort/2, range/2, repeat/2, split/2, split_while/2, key_find/2, key_filter/2, pop/2, pop_map/2, key_pop/2, key_set/3, each/2, try_each/2, partition/2, permutations/1, window/2, window_by_2/1, drop_while/2, take_while/2, chunk/2, sized_chunk/2, reduce/2, scan/3, last/1, combinations/2, combination_pairs/1, transpose/1, interleave/1, shuffle/1]). --export_type([length_mismatch/0, continue_or_stop/1]). - --type length_mismatch() :: length_mismatch. - --type continue_or_stop(UD) :: {continue, UD} | {stop, UD}. - --spec length(list(any())) -> integer(). -length(List) -> - erlang:length(List). - --spec reverse(list(UI)) -> list(UI). -reverse(Xs) -> - lists:reverse(Xs). - --spec is_empty(list(any())) -> boolean(). -is_empty(List) -> - List =:= []. - --spec contains(list(UQ), UQ) -> boolean(). -contains(List, Elem) -> - case List of - [] -> - false; - - [First | _] when First =:= Elem -> - true; - - [_ | Rest] -> - contains(Rest, Elem) - end. - --spec first(list(US)) -> {ok, US} | {error, nil}. -first(List) -> - case List of - [] -> - {error, nil}; - - [X | _] -> - {ok, X} - end. - --spec rest(list(UW)) -> {ok, list(UW)} | {error, nil}. -rest(List) -> - case List of - [] -> - {error, nil}; - - [_ | Xs] -> - {ok, Xs} - end. - --spec update_group(fun((VB) -> VC)) -> fun((gleam@dict:dict(VC, list(VB)), VB) -> gleam@dict:dict(VC, list(VB))). -update_group(F) -> - fun(Groups, Elem) -> case gleam@dict:get(Groups, F(Elem)) of - {ok, Existing} -> - gleam@dict:insert(Groups, F(Elem), [Elem | Existing]); - - {error, _} -> - gleam@dict:insert(Groups, F(Elem), [Elem]) - end end. - --spec do_filter(list(VP), fun((VP) -> boolean()), list(VP)) -> list(VP). -do_filter(List, Fun, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - New_acc = case Fun(X) of - true -> - [X | Acc]; - - false -> - Acc - end, - do_filter(Xs, Fun, New_acc) - end. - --spec filter(list(VT), fun((VT) -> boolean())) -> list(VT). -filter(List, Predicate) -> - do_filter(List, Predicate, []). - --spec do_filter_map(list(VW), fun((VW) -> {ok, VY} | {error, any()}), list(VY)) -> list(VY). -do_filter_map(List, Fun, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - New_acc = case Fun(X) of - {ok, X@1} -> - [X@1 | Acc]; - - {error, _} -> - Acc - end, - do_filter_map(Xs, Fun, New_acc) - end. - --spec filter_map(list(WE), fun((WE) -> {ok, WG} | {error, any()})) -> list(WG). -filter_map(List, Fun) -> - do_filter_map(List, Fun, []). - --spec do_map(list(WL), fun((WL) -> WN), list(WN)) -> list(WN). -do_map(List, Fun, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - do_map(Xs, Fun, [Fun(X) | Acc]) - end. - --spec map(list(WQ), fun((WQ) -> WS)) -> list(WS). -map(List, Fun) -> - do_map(List, Fun, []). - --spec do_map2(list(XA), list(XC), fun((XA, XC) -> XE), list(XE)) -> list(XE). -do_map2(List1, List2, Fun, Acc) -> - case {List1, List2} of - {[], _} -> - reverse(Acc); - - {_, []} -> - reverse(Acc); - - {[A | As_], [B | Bs]} -> - do_map2(As_, Bs, Fun, [Fun(A, B) | Acc]) - end. - --spec map2(list(WU), list(WW), fun((WU, WW) -> WY)) -> list(WY). -map2(List1, List2, Fun) -> - do_map2(List1, List2, Fun, []). - --spec do_index_map(list(XM), fun((integer(), XM) -> XO), integer(), list(XO)) -> list(XO). -do_index_map(List, Fun, Index, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - Acc@1 = [Fun(Index, X) | Acc], - do_index_map(Xs, Fun, Index + 1, Acc@1) - end. - --spec index_map(list(XR), fun((integer(), XR) -> XT)) -> list(XT). -index_map(List, Fun) -> - do_index_map(List, Fun, 0, []). - --spec do_try_map(list(XV), fun((XV) -> {ok, XX} | {error, XY}), list(XX)) -> {ok, - list(XX)} | - {error, XY}. -do_try_map(List, Fun, Acc) -> - case List of - [] -> - {ok, reverse(Acc)}; - - [X | Xs] -> - case Fun(X) of - {ok, Y} -> - do_try_map(Xs, Fun, [Y | Acc]); - - {error, Error} -> - {error, Error} - end - end. - --spec try_map(list(YF), fun((YF) -> {ok, YH} | {error, YI})) -> {ok, list(YH)} | - {error, YI}. -try_map(List, Fun) -> - do_try_map(List, Fun, []). - --spec drop(list(YO), integer()) -> list(YO). -drop(List, N) -> - case N =< 0 of - true -> - List; - - false -> - case List of - [] -> - []; - - [_ | Xs] -> - drop(Xs, N - 1) - end - end. - --spec do_take(list(YR), integer(), list(YR)) -> list(YR). -do_take(List, N, Acc) -> - case N =< 0 of - true -> - reverse(Acc); - - false -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - do_take(Xs, N - 1, [X | Acc]) - end - end. - --spec take(list(YV), integer()) -> list(YV). -take(List, N) -> - do_take(List, N, []). - --spec new() -> list(any()). -new() -> - []. - --spec append(list(AAA), list(AAA)) -> list(AAA). -append(First, Second) -> - lists:append(First, Second). - --spec prepend(list(AAI), AAI) -> list(AAI). -prepend(List, Item) -> - [Item | List]. - --spec reverse_and_prepend(list(AAL), list(AAL)) -> list(AAL). -reverse_and_prepend(Prefix, Suffix) -> - case Prefix of - [] -> - Suffix; - - [First | Rest] -> - reverse_and_prepend(Rest, [First | Suffix]) - end. - --spec do_concat(list(list(AAP)), list(AAP)) -> list(AAP). -do_concat(Lists, Acc) -> - case Lists of - [] -> - reverse(Acc); - - [List | Further_lists] -> - do_concat(Further_lists, reverse_and_prepend(List, Acc)) - end. - --spec concat(list(list(AAU))) -> list(AAU). -concat(Lists) -> - do_concat(Lists, []). - --spec flatten(list(list(AAY))) -> list(AAY). -flatten(Lists) -> - do_concat(Lists, []). - --spec flat_map(list(ABC), fun((ABC) -> list(ABE))) -> list(ABE). -flat_map(List, Fun) -> - _pipe = map(List, Fun), - concat(_pipe). - --spec fold(list(ABH), ABJ, fun((ABJ, ABH) -> ABJ)) -> ABJ. -fold(List, Initial, Fun) -> - case List of - [] -> - Initial; - - [X | Rest] -> - fold(Rest, Fun(Initial, X), Fun) - end. - --spec group(list(VJ), fun((VJ) -> VL)) -> gleam@dict:dict(VL, list(VJ)). -group(List, Key) -> - fold(List, gleam@dict:new(), update_group(Key)). - --spec map_fold(list(XH), XJ, fun((XJ, XH) -> {XJ, XK})) -> {XJ, list(XK)}. -map_fold(List, Acc, Fun) -> - _pipe = fold( - List, - {Acc, []}, - fun(Acc@1, Item) -> - {Current_acc, Items} = Acc@1, - {Next_acc, Next_item} = Fun(Current_acc, Item), - {Next_acc, [Next_item | Items]} - end - ), - gleam@pair:map_second(_pipe, fun reverse/1). - --spec fold_right(list(ABK), ABM, fun((ABM, ABK) -> ABM)) -> ABM. -fold_right(List, Initial, Fun) -> - case List of - [] -> - Initial; - - [X | Rest] -> - Fun(fold_right(Rest, Initial, Fun), X) - end. - --spec do_index_fold( - list(ABN), - ABP, - fun((ABP, ABN, integer()) -> ABP), - integer() -) -> ABP. -do_index_fold(Over, Acc, With, Index) -> - case Over of - [] -> - Acc; - - [First | Rest] -> - do_index_fold(Rest, With(Acc, First, Index), With, Index + 1) - end. - --spec index_fold(list(ABQ), ABS, fun((ABS, ABQ, integer()) -> ABS)) -> ABS. -index_fold(Over, Initial, Fun) -> - do_index_fold(Over, Initial, Fun, 0). - --spec try_fold(list(ABT), ABV, fun((ABV, ABT) -> {ok, ABV} | {error, ABW})) -> {ok, - ABV} | - {error, ABW}. -try_fold(Collection, Accumulator, Fun) -> - case Collection of - [] -> - {ok, Accumulator}; - - [First | Rest] -> - case Fun(Accumulator, First) of - {ok, Result} -> - try_fold(Rest, Result, Fun); - - {error, _} = Error -> - Error - end - end. - --spec fold_until(list(ACB), ACD, fun((ACD, ACB) -> continue_or_stop(ACD))) -> ACD. -fold_until(Collection, Accumulator, Fun) -> - case Collection of - [] -> - Accumulator; - - [First | Rest] -> - case Fun(Accumulator, First) of - {continue, Next_accumulator} -> - fold_until(Rest, Next_accumulator, Fun); - - {stop, B} -> - B - end - end. - --spec find(list(ACF), fun((ACF) -> boolean())) -> {ok, ACF} | {error, nil}. -find(Haystack, Is_desired) -> - case Haystack of - [] -> - {error, nil}; - - [X | Rest] -> - case Is_desired(X) of - true -> - {ok, X}; - - _ -> - find(Rest, Is_desired) - end - end. - --spec find_map(list(ACJ), fun((ACJ) -> {ok, ACL} | {error, any()})) -> {ok, ACL} | - {error, nil}. -find_map(Haystack, Fun) -> - case Haystack of - [] -> - {error, nil}; - - [X | Rest] -> - case Fun(X) of - {ok, X@1} -> - {ok, X@1}; - - _ -> - find_map(Rest, Fun) - end - end. - --spec all(list(ACR), fun((ACR) -> boolean())) -> boolean(). -all(List, Predicate) -> - case List of - [] -> - true; - - [First | Rest] -> - case Predicate(First) of - true -> - all(Rest, Predicate); - - false -> - false - end - end. - --spec any(list(ACT), fun((ACT) -> boolean())) -> boolean(). -any(List, Predicate) -> - case List of - [] -> - false; - - [First | Rest] -> - case Predicate(First) of - true -> - true; - - false -> - any(Rest, Predicate) - end - end. - --spec do_zip(list(ACV), list(ACX), list({ACV, ACX})) -> list({ACV, ACX}). -do_zip(Xs, Ys, Acc) -> - case {Xs, Ys} of - {[X | Xs@1], [Y | Ys@1]} -> - do_zip(Xs@1, Ys@1, [{X, Y} | Acc]); - - {_, _} -> - reverse(Acc) - end. - --spec zip(list(ADB), list(ADD)) -> list({ADB, ADD}). -zip(List, Other) -> - do_zip(List, Other, []). - --spec strict_zip(list(ADG), list(ADI)) -> {ok, list({ADG, ADI})} | - {error, length_mismatch()}. -strict_zip(List, Other) -> - case length(List) =:= length(Other) of - true -> - {ok, zip(List, Other)}; - - false -> - {error, length_mismatch} - end. - --spec do_unzip(list({ATA, ATB}), list(ATA), list(ATB)) -> {list(ATA), list(ATB)}. -do_unzip(Input, Xs, Ys) -> - case Input of - [] -> - {reverse(Xs), reverse(Ys)}; - - [{X, Y} | Rest] -> - do_unzip(Rest, [X | Xs], [Y | Ys]) - end. - --spec unzip(list({ADR, ADS})) -> {list(ADR), list(ADS)}. -unzip(Input) -> - do_unzip(Input, [], []). - --spec do_intersperse(list(ADW), ADW, list(ADW)) -> list(ADW). -do_intersperse(List, Separator, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Rest] -> - do_intersperse(Rest, Separator, [X, Separator | Acc]) - end. - --spec intersperse(list(AEA), AEA) -> list(AEA). -intersperse(List, Elem) -> - case List of - [] -> - List; - - [_] -> - List; - - [X | Rest] -> - do_intersperse(Rest, Elem, [X]) - end. - --spec at(list(AED), integer()) -> {ok, AED} | {error, nil}. -at(List, Index) -> - case Index >= 0 of - true -> - _pipe = List, - _pipe@1 = drop(_pipe, Index), - first(_pipe@1); - - false -> - {error, nil} - end. - --spec unique(list(AEH)) -> list(AEH). -unique(List) -> - case List of - [] -> - []; - - [X | Rest] -> - [X | unique(filter(Rest, fun(Y) -> Y /= X end))] - end. - --spec merge_up( - integer(), - integer(), - list(AEK), - list(AEK), - list(AEK), - fun((AEK, AEK) -> gleam@order:order()) -) -> list(AEK). -merge_up(Na, Nb, A, B, Acc, Compare) -> - case {Na, Nb, A, B} of - {0, 0, _, _} -> - Acc; - - {_, 0, [Ax | Ar], _} -> - merge_up(Na - 1, Nb, Ar, B, [Ax | Acc], Compare); - - {0, _, _, [Bx | Br]} -> - merge_up(Na, Nb - 1, A, Br, [Bx | Acc], Compare); - - {_, _, [Ax@1 | Ar@1], [Bx@1 | Br@1]} -> - case Compare(Ax@1, Bx@1) of - gt -> - merge_up(Na, Nb - 1, A, Br@1, [Bx@1 | Acc], Compare); - - _ -> - merge_up(Na - 1, Nb, Ar@1, B, [Ax@1 | Acc], Compare) - end; - - {_, _, _, _} -> - Acc - end. - --spec merge_down( - integer(), - integer(), - list(AEP), - list(AEP), - list(AEP), - fun((AEP, AEP) -> gleam@order:order()) -) -> list(AEP). -merge_down(Na, Nb, A, B, Acc, Compare) -> - case {Na, Nb, A, B} of - {0, 0, _, _} -> - Acc; - - {_, 0, [Ax | Ar], _} -> - merge_down(Na - 1, Nb, Ar, B, [Ax | Acc], Compare); - - {0, _, _, [Bx | Br]} -> - merge_down(Na, Nb - 1, A, Br, [Bx | Acc], Compare); - - {_, _, [Ax@1 | Ar@1], [Bx@1 | Br@1]} -> - case Compare(Bx@1, Ax@1) of - lt -> - merge_down(Na - 1, Nb, Ar@1, B, [Ax@1 | Acc], Compare); - - _ -> - merge_down(Na, Nb - 1, A, Br@1, [Bx@1 | Acc], Compare) - end; - - {_, _, _, _} -> - Acc - end. - --spec merge_sort( - list(AEU), - integer(), - fun((AEU, AEU) -> gleam@order:order()), - boolean() -) -> list(AEU). -merge_sort(L, Ln, Compare, Down) -> - N = Ln div 2, - A = L, - B = drop(L, N), - case Ln < 3 of - true -> - case Down of - true -> - merge_down(N, Ln - N, A, B, [], Compare); - - false -> - merge_up(N, Ln - N, A, B, [], Compare) - end; - - false -> - case Down of - true -> - merge_down( - N, - Ln - N, - merge_sort(A, N, Compare, false), - merge_sort(B, Ln - N, Compare, false), - [], - Compare - ); - - false -> - merge_up( - N, - Ln - N, - merge_sort(A, N, Compare, true), - merge_sort(B, Ln - N, Compare, true), - [], - Compare - ) - end - end. - --spec sort(list(AEX), fun((AEX, AEX) -> gleam@order:order())) -> list(AEX). -sort(List, Compare) -> - merge_sort(List, length(List), Compare, true). - --spec tail_recursive_range(integer(), integer(), list(integer())) -> list(integer()). -tail_recursive_range(Start, Stop, Acc) -> - case gleam@int:compare(Start, Stop) of - eq -> - [Stop | Acc]; - - gt -> - tail_recursive_range(Start, Stop + 1, [Stop | Acc]); - - lt -> - tail_recursive_range(Start, Stop - 1, [Stop | Acc]) - end. - --spec range(integer(), integer()) -> list(integer()). -range(Start, Stop) -> - tail_recursive_range(Start, Stop, []). - --spec do_repeat(AFD, integer(), list(AFD)) -> list(AFD). -do_repeat(A, Times, Acc) -> - case Times =< 0 of - true -> - Acc; - - false -> - do_repeat(A, Times - 1, [A | Acc]) - end. - --spec repeat(AFG, integer()) -> list(AFG). -repeat(A, Times) -> - do_repeat(A, Times, []). - --spec do_split(list(AFI), integer(), list(AFI)) -> {list(AFI), list(AFI)}. -do_split(List, N, Taken) -> - case N =< 0 of - true -> - {reverse(Taken), List}; - - false -> - case List of - [] -> - {reverse(Taken), []}; - - [X | Xs] -> - do_split(Xs, N - 1, [X | Taken]) - end - end. - --spec split(list(AFN), integer()) -> {list(AFN), list(AFN)}. -split(List, Index) -> - do_split(List, Index, []). - --spec do_split_while(list(AFR), fun((AFR) -> boolean()), list(AFR)) -> {list(AFR), - list(AFR)}. -do_split_while(List, F, Acc) -> - case List of - [] -> - {reverse(Acc), []}; - - [X | Xs] -> - case F(X) of - false -> - {reverse(Acc), List}; - - _ -> - do_split_while(Xs, F, [X | Acc]) - end - end. - --spec split_while(list(AFW), fun((AFW) -> boolean())) -> {list(AFW), list(AFW)}. -split_while(List, Predicate) -> - do_split_while(List, Predicate, []). - --spec key_find(list({AGA, AGB}), AGA) -> {ok, AGB} | {error, nil}. -key_find(Keyword_list, Desired_key) -> - find_map( - Keyword_list, - fun(Keyword) -> - {Key, Value} = Keyword, - case Key =:= Desired_key of - true -> - {ok, Value}; - - false -> - {error, nil} - end - end - ). - --spec key_filter(list({AGF, AGG}), AGF) -> list(AGG). -key_filter(Keyword_list, Desired_key) -> - filter_map( - Keyword_list, - fun(Keyword) -> - {Key, Value} = Keyword, - case Key =:= Desired_key of - true -> - {ok, Value}; - - false -> - {error, nil} - end - end - ). - --spec do_pop(list(AWT), fun((AWT) -> boolean()), list(AWT)) -> {ok, - {AWT, list(AWT)}} | - {error, nil}. -do_pop(Haystack, Predicate, Checked) -> - case Haystack of - [] -> - {error, nil}; - - [X | Rest] -> - case Predicate(X) of - true -> - {ok, {X, append(reverse(Checked), Rest)}}; - - false -> - do_pop(Rest, Predicate, [X | Checked]) - end - end. - --spec pop(list(AGN), fun((AGN) -> boolean())) -> {ok, {AGN, list(AGN)}} | - {error, nil}. -pop(Haystack, Is_desired) -> - do_pop(Haystack, Is_desired, []). - --spec do_pop_map(list(AXH), fun((AXH) -> {ok, AXU} | {error, any()}), list(AXH)) -> {ok, - {AXU, list(AXH)}} | - {error, nil}. -do_pop_map(Haystack, Mapper, Checked) -> - case Haystack of - [] -> - {error, nil}; - - [X | Rest] -> - case Mapper(X) of - {ok, Y} -> - {ok, {Y, append(reverse(Checked), Rest)}}; - - {error, _} -> - do_pop_map(Rest, Mapper, [X | Checked]) - end - end. - --spec pop_map(list(AGW), fun((AGW) -> {ok, AGY} | {error, any()})) -> {ok, - {AGY, list(AGW)}} | - {error, nil}. -pop_map(Haystack, Is_desired) -> - do_pop_map(Haystack, Is_desired, []). - --spec key_pop(list({AHF, AHG}), AHF) -> {ok, {AHG, list({AHF, AHG})}} | - {error, nil}. -key_pop(Haystack, Key) -> - pop_map( - Haystack, - fun(Entry) -> - {K, V} = Entry, - case K of - K@1 when K@1 =:= Key -> - {ok, V}; - - _ -> - {error, nil} - end - end - ). - --spec key_set(list({AHL, AHM}), AHL, AHM) -> list({AHL, AHM}). -key_set(List, Key, Value) -> - case List of - [] -> - [{Key, Value}]; - - [{K, _} | Rest] when K =:= Key -> - [{Key, Value} | Rest]; - - [First | Rest@1] -> - [First | key_set(Rest@1, Key, Value)] - end. - --spec each(list(AHP), fun((AHP) -> any())) -> nil. -each(List, F) -> - case List of - [] -> - nil; - - [X | Xs] -> - F(X), - each(Xs, F) - end. - --spec try_each(list(AHS), fun((AHS) -> {ok, any()} | {error, AHV})) -> {ok, nil} | - {error, AHV}. -try_each(List, Fun) -> - case List of - [] -> - {ok, nil}; - - [X | Xs] -> - case Fun(X) of - {ok, _} -> - try_each(Xs, Fun); - - {error, E} -> - {error, E} - end - end. - --spec do_partition(list(AZB), fun((AZB) -> boolean()), list(AZB), list(AZB)) -> {list(AZB), - list(AZB)}. -do_partition(List, Categorise, Trues, Falses) -> - case List of - [] -> - {reverse(Trues), reverse(Falses)}; - - [X | Xs] -> - case Categorise(X) of - true -> - do_partition(Xs, Categorise, [X | Trues], Falses); - - false -> - do_partition(Xs, Categorise, Trues, [X | Falses]) - end - end. - --spec partition(list(AIF), fun((AIF) -> boolean())) -> {list(AIF), list(AIF)}. -partition(List, Categorise) -> - do_partition(List, Categorise, [], []). - --spec permutations(list(AIJ)) -> list(list(AIJ)). -permutations(L) -> - case L of - [] -> - [[]]; - - _ -> - _pipe = L, - _pipe@5 = index_map(_pipe, fun(I_idx, I) -> _pipe@1 = L, - _pipe@2 = index_fold( - _pipe@1, - [], - fun(Acc, J, J_idx) -> case I_idx =:= J_idx of - true -> - Acc; - - false -> - [J | Acc] - end end - ), - _pipe@3 = reverse(_pipe@2), - _pipe@4 = permutations(_pipe@3), - map(_pipe@4, fun(Permutation) -> [I | Permutation] end) end), - concat(_pipe@5) - end. - --spec do_window(list(list(AIN)), list(AIN), integer()) -> list(list(AIN)). -do_window(Acc, L, N) -> - Window = take(L, N), - case length(Window) =:= N of - true -> - do_window([Window | Acc], drop(L, 1), N); - - false -> - Acc - end. - --spec window(list(AIT), integer()) -> list(list(AIT)). -window(L, N) -> - _pipe = do_window([], L, N), - reverse(_pipe). - --spec window_by_2(list(AIX)) -> list({AIX, AIX}). -window_by_2(L) -> - zip(L, drop(L, 1)). - --spec drop_while(list(AJA), fun((AJA) -> boolean())) -> list(AJA). -drop_while(List, Predicate) -> - case List of - [] -> - []; - - [X | Xs] -> - case Predicate(X) of - true -> - drop_while(Xs, Predicate); - - false -> - [X | Xs] - end - end. - --spec do_take_while(list(AJD), fun((AJD) -> boolean()), list(AJD)) -> list(AJD). -do_take_while(List, Predicate, Acc) -> - case List of - [] -> - reverse(Acc); - - [First | Rest] -> - case Predicate(First) of - true -> - do_take_while(Rest, Predicate, [First | Acc]); - - false -> - reverse(Acc) - end - end. - --spec take_while(list(AJH), fun((AJH) -> boolean())) -> list(AJH). -take_while(List, Predicate) -> - do_take_while(List, Predicate, []). - --spec do_chunk(list(AJK), fun((AJK) -> AJM), AJM, list(AJK), list(list(AJK))) -> list(list(AJK)). -do_chunk(List, F, Previous_key, Current_chunk, Acc) -> - case List of - [First | Rest] -> - Key = F(First), - case Key =:= Previous_key of - false -> - New_acc = [reverse(Current_chunk) | Acc], - do_chunk(Rest, F, Key, [First], New_acc); - - _ -> - do_chunk(Rest, F, Key, [First | Current_chunk], Acc) - end; - - _ -> - reverse([reverse(Current_chunk) | Acc]) - end. - --spec chunk(list(AJS), fun((AJS) -> any())) -> list(list(AJS)). -chunk(List, F) -> - case List of - [] -> - []; - - [First | Rest] -> - do_chunk(Rest, F, F(First), [First], []) - end. - --spec do_sized_chunk( - list(AJX), - integer(), - integer(), - list(AJX), - list(list(AJX)) -) -> list(list(AJX)). -do_sized_chunk(List, Count, Left, Current_chunk, Acc) -> - case List of - [] -> - case Current_chunk of - [] -> - reverse(Acc); - - Remaining -> - reverse([reverse(Remaining) | Acc]) - end; - - [First | Rest] -> - Chunk = [First | Current_chunk], - case Left > 1 of - false -> - do_sized_chunk( - Rest, - Count, - Count, - [], - [reverse(Chunk) | Acc] - ); - - true -> - do_sized_chunk(Rest, Count, Left - 1, Chunk, Acc) - end - end. - --spec sized_chunk(list(AKE), integer()) -> list(list(AKE)). -sized_chunk(List, Count) -> - do_sized_chunk(List, Count, Count, [], []). - --spec reduce(list(AKI), fun((AKI, AKI) -> AKI)) -> {ok, AKI} | {error, nil}. -reduce(List, Fun) -> - case List of - [] -> - {error, nil}; - - [First | Rest] -> - {ok, fold(Rest, First, Fun)} - end. - --spec do_scan(list(AKM), AKO, list(AKO), fun((AKO, AKM) -> AKO)) -> list(AKO). -do_scan(List, Accumulator, Accumulated, Fun) -> - case List of - [] -> - reverse(Accumulated); - - [X | Xs] -> - Next = Fun(Accumulator, X), - do_scan(Xs, Next, [Next | Accumulated], Fun) - end. - --spec scan(list(AKR), AKT, fun((AKT, AKR) -> AKT)) -> list(AKT). -scan(List, Initial, Fun) -> - do_scan(List, Initial, [], Fun). - --spec last(list(AKV)) -> {ok, AKV} | {error, nil}. -last(List) -> - _pipe = List, - reduce(_pipe, fun(_, Elem) -> Elem end). - --spec combinations(list(AKZ), integer()) -> list(list(AKZ)). -combinations(Items, N) -> - case N of - 0 -> - [[]]; - - _ -> - case Items of - [] -> - []; - - [X | Xs] -> - First_combinations = begin - _pipe = map( - combinations(Xs, N - 1), - fun(Com) -> [X | Com] end - ), - reverse(_pipe) - end, - fold( - First_combinations, - combinations(Xs, N), - fun(Acc, C) -> [C | Acc] end - ) - end - end. - --spec do_combination_pairs(list(ALD)) -> list(list({ALD, ALD})). -do_combination_pairs(Items) -> - case Items of - [] -> - []; - - [X | Xs] -> - First_combinations = map(Xs, fun(Other) -> {X, Other} end), - [First_combinations | do_combination_pairs(Xs)] - end. - --spec combination_pairs(list(ALH)) -> list({ALH, ALH}). -combination_pairs(Items) -> - _pipe = do_combination_pairs(Items), - concat(_pipe). - --spec transpose(list(list(ALO))) -> list(list(ALO)). -transpose(List_of_list) -> - Take_first = fun(List) -> case List of - [] -> - []; - - [F] -> - [F]; - - [F@1 | _] -> - [F@1] - end end, - case List_of_list of - [] -> - []; - - [[] | Xss] -> - transpose(Xss); - - Rows -> - Firsts = begin - _pipe = Rows, - _pipe@1 = map(_pipe, Take_first), - concat(_pipe@1) - end, - Rest = transpose(map(Rows, fun(_capture) -> drop(_capture, 1) end)), - [Firsts | Rest] - end. - --spec interleave(list(list(ALK))) -> list(ALK). -interleave(List) -> - _pipe = transpose(List), - concat(_pipe). - --spec do_shuffle_pair_unwrap(list({float(), ALT}), list(ALT)) -> list(ALT). -do_shuffle_pair_unwrap(List, Acc) -> - case List of - [] -> - Acc; - - [Elem_pair | Enumerable] -> - do_shuffle_pair_unwrap( - Enumerable, - [erlang:element(2, Elem_pair) | Acc] - ) - end. - --spec do_shuffle_by_pair_indexes(list({float(), ALX})) -> list({float(), ALX}). -do_shuffle_by_pair_indexes(List_of_pairs) -> - sort( - List_of_pairs, - fun(A_pair, B_pair) -> - gleam@float:compare( - erlang:element(1, A_pair), - erlang:element(1, B_pair) - ) - end - ). - --spec shuffle(list(AMA)) -> list(AMA). -shuffle(List) -> - _pipe = List, - _pipe@1 = fold( - _pipe, - [], - fun(Acc, A) -> [{gleam@float:random(+0.0, 1.0), A} | Acc] end - ), - _pipe@2 = do_shuffle_by_pair_indexes(_pipe@1), - do_shuffle_pair_unwrap(_pipe@2, []). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache deleted file mode 100644 index d0685b3..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache_meta deleted file mode 100644 index 03b0ec9..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.erl deleted file mode 100644 index 4f90bbd..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.erl +++ /dev/null @@ -1,76 +0,0 @@ --module(gleam@map). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([size/1, to_list/1, from_list/1, has_key/2, new/0, get/2, insert/3, map_values/2, keys/1, values/1, filter/2, take/2, merge/2, delete/2, drop/2, update/3, fold/3]). - --spec size(gleam@dict:dict(any(), any())) -> integer(). -size(Map) -> - gleam@dict:size(Map). - --spec to_list(gleam@dict:dict(FDO, FDP)) -> list({FDO, FDP}). -to_list(Map) -> - gleam@dict:to_list(Map). - --spec from_list(list({FDR, FDS})) -> gleam@dict:dict(FDR, FDS). -from_list(List) -> - gleam@dict:from_list(List). - --spec has_key(gleam@dict:dict(FDW, any()), FDW) -> boolean(). -has_key(Map, Key) -> - gleam@dict:has_key(Map, Key). - --spec new() -> gleam@dict:dict(any(), any()). -new() -> - gleam@dict:new(). - --spec get(gleam@dict:dict(FDZ, FEA), FDZ) -> {ok, FEA} | {error, nil}. -get(From, Get) -> - gleam@dict:get(From, Get). - --spec insert(gleam@dict:dict(FEE, FEF), FEE, FEF) -> gleam@dict:dict(FEE, FEF). -insert(Map, Key, Value) -> - gleam@dict:insert(Map, Key, Value). - --spec map_values(gleam@dict:dict(FEI, FEJ), fun((FEI, FEJ) -> FEK)) -> gleam@dict:dict(FEI, FEK). -map_values(Map, Fun) -> - gleam@dict:map_values(Map, Fun). - --spec keys(gleam@dict:dict(FEN, any())) -> list(FEN). -keys(Map) -> - gleam@dict:keys(Map). - --spec values(gleam@dict:dict(any(), FEQ)) -> list(FEQ). -values(Map) -> - gleam@dict:values(Map). - --spec filter(gleam@dict:dict(FET, FEU), fun((FET, FEU) -> boolean())) -> gleam@dict:dict(FET, FEU). -filter(Map, Predicate) -> - gleam@dict:filter(Map, Predicate). - --spec take(gleam@dict:dict(FEX, FGR), list(FEX)) -> gleam@dict:dict(FEX, FGR). -take(Map, Desired_keys) -> - gleam@dict:take(Map, Desired_keys). - --spec merge(gleam@dict:dict(FGS, FGT), gleam@dict:dict(FGS, FGT)) -> gleam@dict:dict(FGS, FGT). -merge(Map, New_entries) -> - gleam@dict:merge(Map, New_entries). - --spec delete(gleam@dict:dict(FFE, FGV), FFE) -> gleam@dict:dict(FFE, FGV). -delete(Map, Key) -> - gleam@dict:delete(Map, Key). - --spec drop(gleam@dict:dict(FFH, FGX), list(FFH)) -> gleam@dict:dict(FFH, FGX). -drop(Map, Disallowed_keys) -> - gleam@dict:drop(Map, Disallowed_keys). - --spec update( - gleam@dict:dict(FFL, FFM), - FFL, - fun((gleam@option:option(FFM)) -> FFM) -) -> gleam@dict:dict(FFL, FFM). -update(Map, Key, Fun) -> - gleam@dict:update(Map, Key, Fun). - --spec fold(gleam@dict:dict(FFR, FFS), FFQ, fun((FFQ, FFR, FFS) -> FFQ)) -> FFQ. -fold(Map, Initial, Fun) -> - gleam@dict:fold(Map, Initial, Fun). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache deleted file mode 100644 index b0763c1..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta deleted file mode 100644 index ff8f8df..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.erl deleted file mode 100644 index 5c20713..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.erl +++ /dev/null @@ -1,147 +0,0 @@ --module(gleam@option). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([all/1, is_some/1, is_none/1, to_result/2, from_result/1, unwrap/2, lazy_unwrap/2, map/2, flatten/1, then/2, 'or'/2, lazy_or/2, values/1]). --export_type([option/1]). - --type option(GB) :: {some, GB} | none. - --spec do_all(list(option(GC)), list(GC)) -> option(list(GC)). -do_all(List, Acc) -> - case List of - [] -> - {some, Acc}; - - [X | Rest] -> - Accumulate = fun(Acc@1, Item) -> case {Acc@1, Item} of - {{some, Values}, {some, Value}} -> - {some, [Value | Values]}; - - {_, _} -> - none - end end, - Accumulate(do_all(Rest, Acc), X) - end. - --spec all(list(option(GI))) -> option(list(GI)). -all(List) -> - do_all(List, []). - --spec is_some(option(any())) -> boolean(). -is_some(Option) -> - Option /= none. - --spec is_none(option(any())) -> boolean(). -is_none(Option) -> - Option =:= none. - --spec to_result(option(GR), GU) -> {ok, GR} | {error, GU}. -to_result(Option, E) -> - case Option of - {some, A} -> - {ok, A}; - - _ -> - {error, E} - end. - --spec from_result({ok, GX} | {error, any()}) -> option(GX). -from_result(Result) -> - case Result of - {ok, A} -> - {some, A}; - - _ -> - none - end. - --spec unwrap(option(HC), HC) -> HC. -unwrap(Option, Default) -> - case Option of - {some, X} -> - X; - - none -> - Default - end. - --spec lazy_unwrap(option(HE), fun(() -> HE)) -> HE. -lazy_unwrap(Option, Default) -> - case Option of - {some, X} -> - X; - - none -> - Default() - end. - --spec map(option(HG), fun((HG) -> HI)) -> option(HI). -map(Option, Fun) -> - case Option of - {some, X} -> - {some, Fun(X)}; - - none -> - none - end. - --spec flatten(option(option(HK))) -> option(HK). -flatten(Option) -> - case Option of - {some, X} -> - X; - - none -> - none - end. - --spec then(option(HO), fun((HO) -> option(HQ))) -> option(HQ). -then(Option, Fun) -> - case Option of - {some, X} -> - Fun(X); - - none -> - none - end. - --spec 'or'(option(HT), option(HT)) -> option(HT). -'or'(First, Second) -> - case First of - {some, _} -> - First; - - none -> - Second - end. - --spec lazy_or(option(HX), fun(() -> option(HX))) -> option(HX). -lazy_or(First, Second) -> - case First of - {some, _} -> - First; - - none -> - Second() - end. - --spec do_values(list(option(IB)), list(IB)) -> list(IB). -do_values(List, Acc) -> - case List of - [] -> - Acc; - - [X | Xs] -> - Accumulate = fun(Acc@1, Item) -> case Item of - {some, Value} -> - [Value | Acc@1]; - - none -> - Acc@1 - end end, - Accumulate(do_values(Xs, Acc), X) - end. - --spec values(list(option(IG))) -> list(IG). -values(Options) -> - do_values(Options, []). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache deleted file mode 100644 index 00f75bc..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta deleted file mode 100644 index c304185..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.erl deleted file mode 100644 index 61649b9..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.erl +++ /dev/null @@ -1,79 +0,0 @@ --module(gleam@order). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([negate/1, to_int/1, compare/2, max/2, min/2, reverse/1]). --export_type([order/0]). - --type order() :: lt | eq | gt. - --spec negate(order()) -> order(). -negate(Order) -> - case Order of - lt -> - gt; - - eq -> - eq; - - gt -> - lt - end. - --spec to_int(order()) -> integer(). -to_int(Order) -> - case Order of - lt -> - -1; - - eq -> - 0; - - gt -> - 1 - end. - --spec compare(order(), order()) -> order(). -compare(A, B) -> - case {A, B} of - {X, Y} when X =:= Y -> - eq; - - {lt, _} -> - lt; - - {eq, gt} -> - lt; - - {_, _} -> - gt - end. - --spec max(order(), order()) -> order(). -max(A, B) -> - case {A, B} of - {gt, _} -> - gt; - - {eq, lt} -> - eq; - - {_, _} -> - B - end. - --spec min(order(), order()) -> order(). -min(A, B) -> - case {A, B} of - {lt, _} -> - lt; - - {eq, gt} -> - eq; - - {_, _} -> - B - end. - --spec reverse(fun((I, I) -> order())) -> fun((I, I) -> order()). -reverse(Orderer) -> - fun(A, B) -> Orderer(B, A) end. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache deleted file mode 100644 index 5eb2973..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta deleted file mode 100644 index 8ee3fd8..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.erl deleted file mode 100644 index f4eff52..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(gleam@pair). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([first/1, second/1, swap/1, map_first/2, map_second/2, new/2]). - --spec first({FM, any()}) -> FM. -first(Pair) -> - {A, _} = Pair, - A. - --spec second({any(), FP}) -> FP. -second(Pair) -> - {_, A} = Pair, - A. - --spec swap({FQ, FR}) -> {FR, FQ}. -swap(Pair) -> - {A, B} = Pair, - {B, A}. - --spec map_first({FS, FT}, fun((FS) -> FU)) -> {FU, FT}. -map_first(Pair, Fun) -> - {A, B} = Pair, - {Fun(A), B}. - --spec map_second({FV, FW}, fun((FW) -> FX)) -> {FV, FX}. -map_second(Pair, Fun) -> - {A, B} = Pair, - {A, Fun(B)}. - --spec new(FY, FZ) -> {FY, FZ}. -new(First, Second) -> - {First, Second}. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache deleted file mode 100644 index a35d701..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache_meta deleted file mode 100644 index 26ea872..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.erl deleted file mode 100644 index d9ec12a..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.erl +++ /dev/null @@ -1,121 +0,0 @@ --module(gleam@queue). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/0, from_list/1, to_list/1, is_empty/1, length/1, push_back/2, push_front/2, pop_back/1, pop_front/1, reverse/1, is_logically_equal/3, is_equal/2]). --export_type([queue/1]). - --opaque queue(BFE) :: {queue, list(BFE), list(BFE)}. - --spec new() -> queue(any()). -new() -> - {queue, [], []}. - --spec from_list(list(BFH)) -> queue(BFH). -from_list(List) -> - {queue, [], List}. - --spec to_list(queue(BFK)) -> list(BFK). -to_list(Queue) -> - _pipe = erlang:element(3, Queue), - gleam@list:append(_pipe, gleam@list:reverse(erlang:element(2, Queue))). - --spec is_empty(queue(any())) -> boolean(). -is_empty(Queue) -> - (erlang:element(2, Queue) =:= []) andalso (erlang:element(3, Queue) =:= []). - --spec length(queue(any())) -> integer(). -length(Queue) -> - gleam@list:length(erlang:element(2, Queue)) + gleam@list:length( - erlang:element(3, Queue) - ). - --spec push_back(queue(BFR), BFR) -> queue(BFR). -push_back(Queue, Item) -> - {queue, [Item | erlang:element(2, Queue)], erlang:element(3, Queue)}. - --spec push_front(queue(BFU), BFU) -> queue(BFU). -push_front(Queue, Item) -> - {queue, erlang:element(2, Queue), [Item | erlang:element(3, Queue)]}. - --spec pop_back(queue(BFX)) -> {ok, {BFX, queue(BFX)}} | {error, nil}. -pop_back(Queue) -> - case Queue of - {queue, [], []} -> - {error, nil}; - - {queue, [], Out} -> - pop_back({queue, gleam@list:reverse(Out), []}); - - {queue, [First | Rest], Out@1} -> - Queue@1 = {queue, Rest, Out@1}, - {ok, {First, Queue@1}} - end. - --spec pop_front(queue(BGC)) -> {ok, {BGC, queue(BGC)}} | {error, nil}. -pop_front(Queue) -> - case Queue of - {queue, [], []} -> - {error, nil}; - - {queue, In, []} -> - pop_front({queue, [], gleam@list:reverse(In)}); - - {queue, In@1, [First | Rest]} -> - Queue@1 = {queue, In@1, Rest}, - {ok, {First, Queue@1}} - end. - --spec reverse(queue(BGH)) -> queue(BGH). -reverse(Queue) -> - {queue, erlang:element(3, Queue), erlang:element(2, Queue)}. - --spec check_equal( - list(BGK), - list(BGK), - list(BGK), - list(BGK), - fun((BGK, BGK) -> boolean()) -) -> boolean(). -check_equal(Xs, X_tail, Ys, Y_tail, Eq) -> - case {Xs, X_tail, Ys, Y_tail} of - {[], [], [], []} -> - true; - - {[X | Xs@1], _, [Y | Ys@1], _} -> - case Eq(X, Y) of - false -> - false; - - true -> - check_equal(Xs@1, X_tail, Ys@1, Y_tail, Eq) - end; - - {[], [_ | _], _, _} -> - check_equal(gleam@list:reverse(X_tail), [], Ys, Y_tail, Eq); - - {_, _, [], [_ | _]} -> - check_equal(Xs, X_tail, gleam@list:reverse(Y_tail), [], Eq); - - {_, _, _, _} -> - false - end. - --spec is_logically_equal(queue(BGP), queue(BGP), fun((BGP, BGP) -> boolean())) -> boolean(). -is_logically_equal(A, B, Element_is_equal) -> - check_equal( - erlang:element(3, A), - erlang:element(2, A), - erlang:element(3, B), - erlang:element(2, B), - Element_is_equal - ). - --spec is_equal(queue(BGS), queue(BGS)) -> boolean(). -is_equal(A, B) -> - check_equal( - erlang:element(3, A), - erlang:element(2, A), - erlang:element(3, B), - erlang:element(2, B), - fun(A@1, B@1) -> A@1 =:= B@1 end - ). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache deleted file mode 100644 index de8820b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache_meta deleted file mode 100644 index ab416af..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.erl deleted file mode 100644 index 2d1c5fc..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(gleam@regex). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([compile/2, from_string/1, check/2, split/2, scan/2]). --export_type([regex/0, match/0, compile_error/0, options/0]). - --type regex() :: any(). - --type match() :: {match, binary(), list(gleam@option:option(binary()))}. - --type compile_error() :: {compile_error, binary(), integer()}. - --type options() :: {options, boolean(), boolean()}. - --spec compile(binary(), options()) -> {ok, regex()} | {error, compile_error()}. -compile(Pattern, Options) -> - gleam_stdlib:compile_regex(Pattern, Options). - --spec from_string(binary()) -> {ok, regex()} | {error, compile_error()}. -from_string(Pattern) -> - compile(Pattern, {options, false, false}). - --spec check(regex(), binary()) -> boolean(). -check(Regex, Content) -> - gleam_stdlib:regex_check(Regex, Content). - --spec split(regex(), binary()) -> list(binary()). -split(Regex, String) -> - gleam_stdlib:regex_split(Regex, String). - --spec scan(regex(), binary()) -> list(match()). -scan(Regex, String) -> - gleam_stdlib:regex_scan(Regex, String). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache deleted file mode 100644 index d7f9b5d..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta deleted file mode 100644 index 732654a..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.erl deleted file mode 100644 index e7bdaff..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.erl +++ /dev/null @@ -1,201 +0,0 @@ --module(gleam@result). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([is_ok/1, is_error/1, map/2, map_error/2, flatten/1, 'try'/2, then/2, unwrap/2, lazy_unwrap/2, unwrap_error/2, unwrap_both/1, nil_error/1, 'or'/2, lazy_or/2, all/1, partition/1, replace/2, replace_error/2, values/1, try_recover/2]). - --spec is_ok({ok, any()} | {error, any()}) -> boolean(). -is_ok(Result) -> - case Result of - {error, _} -> - false; - - {ok, _} -> - true - end. - --spec is_error({ok, any()} | {error, any()}) -> boolean(). -is_error(Result) -> - case Result of - {ok, _} -> - false; - - {error, _} -> - true - end. - --spec map({ok, BKA} | {error, BKB}, fun((BKA) -> BKE)) -> {ok, BKE} | - {error, BKB}. -map(Result, Fun) -> - case Result of - {ok, X} -> - {ok, Fun(X)}; - - {error, E} -> - {error, E} - end. - --spec map_error({ok, BKH} | {error, BKI}, fun((BKI) -> BKL)) -> {ok, BKH} | - {error, BKL}. -map_error(Result, Fun) -> - case Result of - {ok, X} -> - {ok, X}; - - {error, Error} -> - {error, Fun(Error)} - end. - --spec flatten({ok, {ok, BKO} | {error, BKP}} | {error, BKP}) -> {ok, BKO} | - {error, BKP}. -flatten(Result) -> - case Result of - {ok, X} -> - X; - - {error, Error} -> - {error, Error} - end. - --spec 'try'({ok, BKW} | {error, BKX}, fun((BKW) -> {ok, BLA} | {error, BKX})) -> {ok, - BLA} | - {error, BKX}. -'try'(Result, Fun) -> - case Result of - {ok, X} -> - Fun(X); - - {error, E} -> - {error, E} - end. - --spec then({ok, BLF} | {error, BLG}, fun((BLF) -> {ok, BLJ} | {error, BLG})) -> {ok, - BLJ} | - {error, BLG}. -then(Result, Fun) -> - 'try'(Result, Fun). - --spec unwrap({ok, BLO} | {error, any()}, BLO) -> BLO. -unwrap(Result, Default) -> - case Result of - {ok, V} -> - V; - - {error, _} -> - Default - end. - --spec lazy_unwrap({ok, BLS} | {error, any()}, fun(() -> BLS)) -> BLS. -lazy_unwrap(Result, Default) -> - case Result of - {ok, V} -> - V; - - {error, _} -> - Default() - end. - --spec unwrap_error({ok, any()} | {error, BLX}, BLX) -> BLX. -unwrap_error(Result, Default) -> - case Result of - {ok, _} -> - Default; - - {error, E} -> - E - end. - --spec unwrap_both({ok, BMA} | {error, BMA}) -> BMA. -unwrap_both(Result) -> - case Result of - {ok, A} -> - A; - - {error, A@1} -> - A@1 - end. - --spec nil_error({ok, BMD} | {error, any()}) -> {ok, BMD} | {error, nil}. -nil_error(Result) -> - map_error(Result, fun(_) -> nil end). - --spec 'or'({ok, BMJ} | {error, BMK}, {ok, BMJ} | {error, BMK}) -> {ok, BMJ} | - {error, BMK}. -'or'(First, Second) -> - case First of - {ok, _} -> - First; - - {error, _} -> - Second - end. - --spec lazy_or({ok, BMR} | {error, BMS}, fun(() -> {ok, BMR} | {error, BMS})) -> {ok, - BMR} | - {error, BMS}. -lazy_or(First, Second) -> - case First of - {ok, _} -> - First; - - {error, _} -> - Second() - end. - --spec all(list({ok, BMZ} | {error, BNA})) -> {ok, list(BMZ)} | {error, BNA}. -all(Results) -> - gleam@list:try_map(Results, fun(X) -> X end). - --spec do_partition(list({ok, BNO} | {error, BNP}), list(BNO), list(BNP)) -> {list(BNO), - list(BNP)}. -do_partition(Results, Oks, Errors) -> - case Results of - [] -> - {Oks, Errors}; - - [{ok, A} | Rest] -> - do_partition(Rest, [A | Oks], Errors); - - [{error, E} | Rest@1] -> - do_partition(Rest@1, Oks, [E | Errors]) - end. - --spec partition(list({ok, BNH} | {error, BNI})) -> {list(BNH), list(BNI)}. -partition(Results) -> - do_partition(Results, [], []). - --spec replace({ok, any()} | {error, BNX}, BOA) -> {ok, BOA} | {error, BNX}. -replace(Result, Value) -> - case Result of - {ok, _} -> - {ok, Value}; - - {error, Error} -> - {error, Error} - end. - --spec replace_error({ok, BOD} | {error, any()}, BOH) -> {ok, BOD} | {error, BOH}. -replace_error(Result, Error) -> - case Result of - {ok, X} -> - {ok, X}; - - {error, _} -> - {error, Error} - end. - --spec values(list({ok, BOK} | {error, any()})) -> list(BOK). -values(Results) -> - gleam@list:filter_map(Results, fun(R) -> R end). - --spec try_recover( - {ok, BOQ} | {error, BOR}, - fun((BOR) -> {ok, BOQ} | {error, BOU}) -) -> {ok, BOQ} | {error, BOU}. -try_recover(Result, Fun) -> - case Result of - {ok, Value} -> - {ok, Value}; - - {error, Error} -> - Fun(Error) - end. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache deleted file mode 100644 index 43fd2a5..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta deleted file mode 100644 index ee9607b..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.erl deleted file mode 100644 index 2a23b83..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.erl +++ /dev/null @@ -1,85 +0,0 @@ --module(gleam@set). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/0, size/1, insert/2, contains/2, delete/2, to_list/1, from_list/1, fold/3, filter/2, drop/2, take/2, union/2, intersection/2]). --export_type([set/1]). - --opaque set(EYO) :: {set, gleam@dict:dict(EYO, list(nil))}. - --spec new() -> set(any()). -new() -> - {set, gleam@dict:new()}. - --spec size(set(any())) -> integer(). -size(Set) -> - gleam@dict:size(erlang:element(2, Set)). - --spec insert(set(EYU), EYU) -> set(EYU). -insert(Set, Member) -> - {set, gleam@dict:insert(erlang:element(2, Set), Member, [])}. - --spec contains(set(EYX), EYX) -> boolean(). -contains(Set, Member) -> - _pipe = erlang:element(2, Set), - _pipe@1 = gleam@dict:get(_pipe, Member), - gleam@result:is_ok(_pipe@1). - --spec delete(set(EYZ), EYZ) -> set(EYZ). -delete(Set, Member) -> - {set, gleam@dict:delete(erlang:element(2, Set), Member)}. - --spec to_list(set(EZC)) -> list(EZC). -to_list(Set) -> - gleam@dict:keys(erlang:element(2, Set)). - --spec from_list(list(EZF)) -> set(EZF). -from_list(Members) -> - Map = gleam@list:fold( - Members, - gleam@dict:new(), - fun(M, K) -> gleam@dict:insert(M, K, []) end - ), - {set, Map}. - --spec fold(set(EZI), EZK, fun((EZK, EZI) -> EZK)) -> EZK. -fold(Set, Initial, Reducer) -> - gleam@dict:fold( - erlang:element(2, Set), - Initial, - fun(A, K, _) -> Reducer(A, K) end - ). - --spec filter(set(EZL), fun((EZL) -> boolean())) -> set(EZL). -filter(Set, Predicate) -> - {set, - gleam@dict:filter(erlang:element(2, Set), fun(M, _) -> Predicate(M) end)}. - --spec drop(set(EZO), list(EZO)) -> set(EZO). -drop(Set, Disallowed) -> - gleam@list:fold(Disallowed, Set, fun delete/2). - --spec take(set(EZS), list(EZS)) -> set(EZS). -take(Set, Desired) -> - {set, gleam@dict:take(erlang:element(2, Set), Desired)}. - --spec order(set(EZW), set(EZW)) -> {set(EZW), set(EZW)}. -order(First, Second) -> - case gleam@dict:size(erlang:element(2, First)) > gleam@dict:size( - erlang:element(2, Second) - ) of - true -> - {First, Second}; - - false -> - {Second, First} - end. - --spec union(set(FAB), set(FAB)) -> set(FAB). -union(First, Second) -> - {Larger, Smaller} = order(First, Second), - fold(Smaller, Larger, fun insert/2). - --spec intersection(set(FAF), set(FAF)) -> set(FAF). -intersection(First, Second) -> - {Larger, Smaller} = order(First, Second), - take(Larger, to_list(Smaller)). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache deleted file mode 100644 index d024425..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta deleted file mode 100644 index 300d752..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.erl deleted file mode 100644 index 6cba31d..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.erl +++ /dev/null @@ -1,352 +0,0 @@ --module(gleam@string). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([is_empty/1, length/1, reverse/1, replace/3, lowercase/1, uppercase/1, compare/2, slice/3, crop/2, drop_left/2, drop_right/2, contains/2, starts_with/2, ends_with/2, split_once/2, append/2, concat/1, repeat/2, join/2, pad_left/3, pad_right/3, trim/1, trim_left/1, trim_right/1, pop_grapheme/1, to_graphemes/1, split/2, to_utf_codepoints/1, from_utf_codepoints/1, utf_codepoint/1, utf_codepoint_to_int/1, to_option/1, first/1, last/1, capitalise/1, inspect/1, byte_size/1]). --export_type([direction/0]). - --type direction() :: leading | trailing | both. - --spec is_empty(binary()) -> boolean(). -is_empty(Str) -> - Str =:= <<""/utf8>>. - --spec length(binary()) -> integer(). -length(String) -> - string:length(String). - --spec do_reverse(binary()) -> binary(). -do_reverse(String) -> - _pipe = String, - _pipe@1 = gleam@string_builder:from_string(_pipe), - _pipe@2 = gleam@string_builder:reverse(_pipe@1), - gleam@string_builder:to_string(_pipe@2). - --spec reverse(binary()) -> binary(). -reverse(String) -> - do_reverse(String). - --spec replace(binary(), binary(), binary()) -> binary(). -replace(String, Pattern, Substitute) -> - _pipe = String, - _pipe@1 = gleam@string_builder:from_string(_pipe), - _pipe@2 = gleam@string_builder:replace(_pipe@1, Pattern, Substitute), - gleam@string_builder:to_string(_pipe@2). - --spec lowercase(binary()) -> binary(). -lowercase(String) -> - string:lowercase(String). - --spec uppercase(binary()) -> binary(). -uppercase(String) -> - string:uppercase(String). - --spec compare(binary(), binary()) -> gleam@order:order(). -compare(A, B) -> - case A =:= B of - true -> - eq; - - _ -> - case gleam_stdlib:less_than(A, B) of - true -> - lt; - - _ -> - gt - end - end. - --spec slice(binary(), integer(), integer()) -> binary(). -slice(String, Idx, Len) -> - case Len < 0 of - true -> - <<""/utf8>>; - - false -> - case Idx < 0 of - true -> - Translated_idx = length(String) + Idx, - case Translated_idx < 0 of - true -> - <<""/utf8>>; - - false -> - string:slice(String, Translated_idx, Len) - end; - - false -> - string:slice(String, Idx, Len) - end - end. - --spec crop(binary(), binary()) -> binary(). -crop(String, Substring) -> - gleam_stdlib:crop_string(String, Substring). - --spec drop_left(binary(), integer()) -> binary(). -drop_left(String, Num_graphemes) -> - case Num_graphemes < 0 of - true -> - String; - - false -> - slice(String, Num_graphemes, length(String) - Num_graphemes) - end. - --spec drop_right(binary(), integer()) -> binary(). -drop_right(String, Num_graphemes) -> - case Num_graphemes < 0 of - true -> - String; - - false -> - slice(String, 0, length(String) - Num_graphemes) - end. - --spec contains(binary(), binary()) -> boolean(). -contains(Haystack, Needle) -> - gleam_stdlib:contains_string(Haystack, Needle). - --spec starts_with(binary(), binary()) -> boolean(). -starts_with(String, Prefix) -> - gleam_stdlib:string_starts_with(String, Prefix). - --spec ends_with(binary(), binary()) -> boolean(). -ends_with(String, Suffix) -> - gleam_stdlib:string_ends_with(String, Suffix). - --spec do_split_once(binary(), binary()) -> {ok, {binary(), binary()}} | - {error, nil}. -do_split_once(X, Substring) -> - case string:split(X, Substring) of - [First, Rest] -> - {ok, {First, Rest}}; - - _ -> - {error, nil} - end. - --spec split_once(binary(), binary()) -> {ok, {binary(), binary()}} | - {error, nil}. -split_once(X, Substring) -> - do_split_once(X, Substring). - --spec append(binary(), binary()) -> binary(). -append(First, Second) -> - _pipe = First, - _pipe@1 = gleam@string_builder:from_string(_pipe), - _pipe@2 = gleam@string_builder:append(_pipe@1, Second), - gleam@string_builder:to_string(_pipe@2). - --spec concat(list(binary())) -> binary(). -concat(Strings) -> - _pipe = Strings, - _pipe@1 = gleam@string_builder:from_strings(_pipe), - gleam@string_builder:to_string(_pipe@1). - --spec repeat(binary(), integer()) -> binary(). -repeat(String, Times) -> - _pipe = gleam@iterator:repeat(String), - _pipe@1 = gleam@iterator:take(_pipe, Times), - _pipe@2 = gleam@iterator:to_list(_pipe@1), - concat(_pipe@2). - --spec do_join(list(binary()), binary()) -> binary(). -do_join(Strings, Separator) -> - _pipe = Strings, - _pipe@1 = gleam@list:intersperse(_pipe, Separator), - concat(_pipe@1). - --spec join(list(binary()), binary()) -> binary(). -join(Strings, Separator) -> - do_join(Strings, Separator). - --spec padding(integer(), binary()) -> gleam@iterator:iterator(binary()). -padding(Size, Pad_string) -> - Pad_length = length(Pad_string), - Num_pads = case Pad_length of - 0 -> 0; - Gleam@denominator -> Size div Gleam@denominator - end, - Extra = case Pad_length of - 0 -> 0; - Gleam@denominator@1 -> Size rem Gleam@denominator@1 - end, - _pipe = gleam@iterator:repeat(Pad_string), - _pipe@1 = gleam@iterator:take(_pipe, Num_pads), - gleam@iterator:append( - _pipe@1, - gleam@iterator:single(slice(Pad_string, 0, Extra)) - ). - --spec pad_left(binary(), integer(), binary()) -> binary(). -pad_left(String, Desired_length, Pad_string) -> - Current_length = length(String), - To_pad_length = Desired_length - Current_length, - _pipe = padding(To_pad_length, Pad_string), - _pipe@1 = gleam@iterator:append(_pipe, gleam@iterator:single(String)), - _pipe@2 = gleam@iterator:to_list(_pipe@1), - concat(_pipe@2). - --spec pad_right(binary(), integer(), binary()) -> binary(). -pad_right(String, Desired_length, Pad_string) -> - Current_length = length(String), - To_pad_length = Desired_length - Current_length, - _pipe = gleam@iterator:single(String), - _pipe@1 = gleam@iterator:append(_pipe, padding(To_pad_length, Pad_string)), - _pipe@2 = gleam@iterator:to_list(_pipe@1), - concat(_pipe@2). - --spec do_trim(binary()) -> binary(). -do_trim(String) -> - string:trim(String, both). - --spec trim(binary()) -> binary(). -trim(String) -> - do_trim(String). - --spec do_trim_left(binary()) -> binary(). -do_trim_left(String) -> - string:trim(String, leading). - --spec trim_left(binary()) -> binary(). -trim_left(String) -> - do_trim_left(String). - --spec do_trim_right(binary()) -> binary(). -do_trim_right(String) -> - string:trim(String, trailing). - --spec trim_right(binary()) -> binary(). -trim_right(String) -> - do_trim_right(String). - --spec pop_grapheme(binary()) -> {ok, {binary(), binary()}} | {error, nil}. -pop_grapheme(String) -> - gleam_stdlib:string_pop_grapheme(String). - --spec do_to_graphemes(binary(), list(binary())) -> list(binary()). -do_to_graphemes(String, Acc) -> - case pop_grapheme(String) of - {ok, {Grapheme, Rest}} -> - do_to_graphemes(Rest, [Grapheme | Acc]); - - _ -> - Acc - end. - --spec to_graphemes(binary()) -> list(binary()). -to_graphemes(String) -> - _pipe = do_to_graphemes(String, []), - gleam@list:reverse(_pipe). - --spec split(binary(), binary()) -> list(binary()). -split(X, Substring) -> - case Substring of - <<""/utf8>> -> - to_graphemes(X); - - _ -> - _pipe = X, - _pipe@1 = gleam@string_builder:from_string(_pipe), - _pipe@2 = gleam@string_builder:split(_pipe@1, Substring), - gleam@list:map(_pipe@2, fun gleam@string_builder:to_string/1) - end. - --spec do_to_utf_codepoints_impl(bitstring(), list(integer())) -> list(integer()). -do_to_utf_codepoints_impl(Bit_array, Acc) -> - case Bit_array of - <> -> - do_to_utf_codepoints_impl(Rest, [First | Acc]); - - _ -> - Acc - end. - --spec do_to_utf_codepoints(binary()) -> list(integer()). -do_to_utf_codepoints(String) -> - _pipe = do_to_utf_codepoints_impl(<>, []), - gleam@list:reverse(_pipe). - --spec to_utf_codepoints(binary()) -> list(integer()). -to_utf_codepoints(String) -> - do_to_utf_codepoints(String). - --spec from_utf_codepoints(list(integer())) -> binary(). -from_utf_codepoints(Utf_codepoints) -> - gleam_stdlib:utf_codepoint_list_to_string(Utf_codepoints). - --spec utf_codepoint(integer()) -> {ok, integer()} | {error, nil}. -utf_codepoint(Value) -> - case Value of - I when I > 1114111 -> - {error, nil}; - - 65534 -> - {error, nil}; - - 65535 -> - {error, nil}; - - I@1 when (I@1 >= 55296) andalso (I@1 =< 57343) -> - {error, nil}; - - I@2 -> - {ok, gleam_stdlib:identity(I@2)} - end. - --spec utf_codepoint_to_int(integer()) -> integer(). -utf_codepoint_to_int(Cp) -> - gleam_stdlib:identity(Cp). - --spec to_option(binary()) -> gleam@option:option(binary()). -to_option(S) -> - case S of - <<""/utf8>> -> - none; - - _ -> - {some, S} - end. - --spec first(binary()) -> {ok, binary()} | {error, nil}. -first(S) -> - case pop_grapheme(S) of - {ok, {First, _}} -> - {ok, First}; - - {error, E} -> - {error, E} - end. - --spec last(binary()) -> {ok, binary()} | {error, nil}. -last(S) -> - case pop_grapheme(S) of - {ok, {First, <<""/utf8>>}} -> - {ok, First}; - - {ok, {_, Rest}} -> - {ok, slice(Rest, -1, 1)}; - - {error, E} -> - {error, E} - end. - --spec capitalise(binary()) -> binary(). -capitalise(S) -> - case pop_grapheme(S) of - {ok, {First, Rest}} -> - append(uppercase(First), lowercase(Rest)); - - _ -> - <<""/utf8>> - end. - --spec inspect(any()) -> binary(). -inspect(Term) -> - _pipe = gleam_stdlib:inspect(Term), - gleam@string_builder:to_string(_pipe). - --spec byte_size(binary()) -> integer(). -byte_size(String) -> - erlang:byte_size(String). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache deleted file mode 100644 index 0d2c392..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache_meta deleted file mode 100644 index 2ef42cf..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.erl deleted file mode 100644 index 693e840..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.erl +++ /dev/null @@ -1,91 +0,0 @@ --module(gleam@string_builder). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([prepend_builder/2, append_builder/2, new/0, from_strings/1, concat/1, from_string/1, prepend/2, append/2, to_string/1, byte_size/1, join/2, lowercase/1, uppercase/1, reverse/1, split/2, replace/3, is_equal/2, is_empty/1]). --export_type([string_builder/0, direction/0]). - --type string_builder() :: any(). - --type direction() :: all. - --spec prepend_builder(string_builder(), string_builder()) -> string_builder(). -prepend_builder(Builder, Prefix) -> - gleam_stdlib:iodata_append(Prefix, Builder). - --spec append_builder(string_builder(), string_builder()) -> string_builder(). -append_builder(Builder, Suffix) -> - gleam_stdlib:iodata_append(Builder, Suffix). - --spec new() -> string_builder(). -new() -> - gleam_stdlib:identity([]). - --spec from_strings(list(binary())) -> string_builder(). -from_strings(Strings) -> - gleam_stdlib:identity(Strings). - --spec concat(list(string_builder())) -> string_builder(). -concat(Builders) -> - gleam_stdlib:identity(Builders). - --spec from_string(binary()) -> string_builder(). -from_string(String) -> - gleam_stdlib:identity(String). - --spec prepend(string_builder(), binary()) -> string_builder(). -prepend(Builder, Prefix) -> - append_builder(from_string(Prefix), Builder). - --spec append(string_builder(), binary()) -> string_builder(). -append(Builder, Second) -> - append_builder(Builder, from_string(Second)). - --spec to_string(string_builder()) -> binary(). -to_string(Builder) -> - unicode:characters_to_binary(Builder). - --spec byte_size(string_builder()) -> integer(). -byte_size(Builder) -> - erlang:iolist_size(Builder). - --spec join(list(string_builder()), binary()) -> string_builder(). -join(Builders, Sep) -> - _pipe = Builders, - _pipe@1 = gleam@list:intersperse(_pipe, from_string(Sep)), - concat(_pipe@1). - --spec lowercase(string_builder()) -> string_builder(). -lowercase(Builder) -> - string:lowercase(Builder). - --spec uppercase(string_builder()) -> string_builder(). -uppercase(Builder) -> - string:uppercase(Builder). - --spec reverse(string_builder()) -> string_builder(). -reverse(Builder) -> - string:reverse(Builder). - --spec do_split(string_builder(), binary()) -> list(string_builder()). -do_split(Iodata, Pattern) -> - string:split(Iodata, Pattern, all). - --spec split(string_builder(), binary()) -> list(string_builder()). -split(Iodata, Pattern) -> - do_split(Iodata, Pattern). - --spec do_replace(string_builder(), binary(), binary()) -> string_builder(). -do_replace(Iodata, Pattern, Substitute) -> - string:replace(Iodata, Pattern, Substitute, all). - --spec replace(string_builder(), binary(), binary()) -> string_builder(). -replace(Builder, Pattern, Substitute) -> - do_replace(Builder, Pattern, Substitute). - --spec is_equal(string_builder(), string_builder()) -> boolean(). -is_equal(A, B) -> - string:equal(A, B). - --spec is_empty(string_builder()) -> boolean(). -is_empty(Builder) -> - string:is_empty(Builder). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache deleted file mode 100644 index 808bd6c..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta deleted file mode 100644 index a8195fc..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.erl deleted file mode 100644 index e7c2696..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.erl +++ /dev/null @@ -1,252 +0,0 @@ --module(gleam@uri). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([parse/1, parse_query/1, percent_encode/1, query_to_string/1, percent_decode/1, path_segments/1, to_string/1, origin/1, merge/2]). --export_type([uri/0]). - --type uri() :: {uri, - gleam@option:option(binary()), - gleam@option:option(binary()), - gleam@option:option(binary()), - gleam@option:option(integer()), - binary(), - gleam@option:option(binary()), - gleam@option:option(binary())}. - --spec parse(binary()) -> {ok, uri()} | {error, nil}. -parse(Uri_string) -> - gleam_stdlib:uri_parse(Uri_string). - --spec parse_query(binary()) -> {ok, list({binary(), binary()})} | {error, nil}. -parse_query(Query) -> - gleam_stdlib:parse_query(Query). - --spec percent_encode(binary()) -> binary(). -percent_encode(Value) -> - gleam_stdlib:percent_encode(Value). - --spec query_pair({binary(), binary()}) -> gleam@string_builder:string_builder(). -query_pair(Pair) -> - gleam@string_builder:from_strings( - [percent_encode(erlang:element(1, Pair)), - <<"="/utf8>>, - percent_encode(erlang:element(2, Pair))] - ). - --spec query_to_string(list({binary(), binary()})) -> binary(). -query_to_string(Query) -> - _pipe = Query, - _pipe@1 = gleam@list:map(_pipe, fun query_pair/1), - _pipe@2 = gleam@list:intersperse( - _pipe@1, - gleam@string_builder:from_string(<<"&"/utf8>>) - ), - _pipe@3 = gleam@string_builder:concat(_pipe@2), - gleam@string_builder:to_string(_pipe@3). - --spec percent_decode(binary()) -> {ok, binary()} | {error, nil}. -percent_decode(Value) -> - gleam_stdlib:percent_decode(Value). - --spec do_remove_dot_segments(list(binary()), list(binary())) -> list(binary()). -do_remove_dot_segments(Input, Accumulator) -> - case Input of - [] -> - gleam@list:reverse(Accumulator); - - [Segment | Rest] -> - Accumulator@5 = case {Segment, Accumulator} of - {<<""/utf8>>, Accumulator@1} -> - Accumulator@1; - - {<<"."/utf8>>, Accumulator@2} -> - Accumulator@2; - - {<<".."/utf8>>, []} -> - []; - - {<<".."/utf8>>, [_ | Accumulator@3]} -> - Accumulator@3; - - {Segment@1, Accumulator@4} -> - [Segment@1 | Accumulator@4] - end, - do_remove_dot_segments(Rest, Accumulator@5) - end. - --spec remove_dot_segments(list(binary())) -> list(binary()). -remove_dot_segments(Input) -> - do_remove_dot_segments(Input, []). - --spec path_segments(binary()) -> list(binary()). -path_segments(Path) -> - remove_dot_segments(gleam@string:split(Path, <<"/"/utf8>>)). - --spec to_string(uri()) -> binary(). -to_string(Uri) -> - Parts = case erlang:element(8, Uri) of - {some, Fragment} -> - [<<"#"/utf8>>, Fragment]; - - _ -> - [] - end, - Parts@1 = case erlang:element(7, Uri) of - {some, Query} -> - [<<"?"/utf8>>, Query | Parts]; - - _ -> - Parts - end, - Parts@2 = [erlang:element(6, Uri) | Parts@1], - Parts@3 = case {erlang:element(4, Uri), - gleam@string:starts_with(erlang:element(6, Uri), <<"/"/utf8>>)} of - {{some, Host}, false} when Host =/= <<""/utf8>> -> - [<<"/"/utf8>> | Parts@2]; - - {_, _} -> - Parts@2 - end, - Parts@4 = case {erlang:element(4, Uri), erlang:element(5, Uri)} of - {{some, _}, {some, Port}} -> - [<<":"/utf8>>, gleam@int:to_string(Port) | Parts@3]; - - {_, _} -> - Parts@3 - end, - Parts@5 = case {erlang:element(2, Uri), - erlang:element(3, Uri), - erlang:element(4, Uri)} of - {{some, S}, {some, U}, {some, H}} -> - [S, <<"://"/utf8>>, U, <<"@"/utf8>>, H | Parts@4]; - - {{some, S@1}, none, {some, H@1}} -> - [S@1, <<"://"/utf8>>, H@1 | Parts@4]; - - {{some, S@2}, {some, _}, none} -> - [S@2, <<":"/utf8>> | Parts@4]; - - {{some, S@2}, none, none} -> - [S@2, <<":"/utf8>> | Parts@4]; - - {none, none, {some, H@2}} -> - [<<"//"/utf8>>, H@2 | Parts@4]; - - {_, _, _} -> - Parts@4 - end, - gleam@string:concat(Parts@5). - --spec origin(uri()) -> {ok, binary()} | {error, nil}. -origin(Uri) -> - {uri, Scheme, _, Host, Port, _, _, _} = Uri, - case Scheme of - {some, <<"https"/utf8>>} when Port =:= {some, 443} -> - Origin = {uri, Scheme, none, Host, none, <<""/utf8>>, none, none}, - {ok, to_string(Origin)}; - - {some, <<"http"/utf8>>} when Port =:= {some, 80} -> - Origin@1 = {uri, Scheme, none, Host, none, <<""/utf8>>, none, none}, - {ok, to_string(Origin@1)}; - - {some, S} when (S =:= <<"http"/utf8>>) orelse (S =:= <<"https"/utf8>>) -> - Origin@2 = {uri, Scheme, none, Host, Port, <<""/utf8>>, none, none}, - {ok, to_string(Origin@2)}; - - _ -> - {error, nil} - end. - --spec drop_last(list(ERB)) -> list(ERB). -drop_last(Elements) -> - gleam@list:take(Elements, gleam@list:length(Elements) - 1). - --spec join_segments(list(binary())) -> binary(). -join_segments(Segments) -> - gleam@string:join([<<""/utf8>> | Segments], <<"/"/utf8>>). - --spec merge(uri(), uri()) -> {ok, uri()} | {error, nil}. -merge(Base, Relative) -> - case Base of - {uri, {some, _}, _, {some, _}, _, _, _, _} -> - case Relative of - {uri, _, _, {some, _}, _, _, _, _} -> - Path = begin - _pipe = gleam@string:split( - erlang:element(6, Relative), - <<"/"/utf8>> - ), - _pipe@1 = remove_dot_segments(_pipe), - join_segments(_pipe@1) - end, - Resolved = {uri, - gleam@option:'or'( - erlang:element(2, Relative), - erlang:element(2, Base) - ), - none, - erlang:element(4, Relative), - gleam@option:'or'( - erlang:element(5, Relative), - erlang:element(5, Base) - ), - Path, - erlang:element(7, Relative), - erlang:element(8, Relative)}, - {ok, Resolved}; - - _ -> - {New_path, New_query} = case erlang:element(6, Relative) of - <<""/utf8>> -> - {erlang:element(6, Base), - gleam@option:'or'( - erlang:element(7, Relative), - erlang:element(7, Base) - )}; - - _ -> - Path_segments = case gleam@string:starts_with( - erlang:element(6, Relative), - <<"/"/utf8>> - ) of - true -> - gleam@string:split( - erlang:element(6, Relative), - <<"/"/utf8>> - ); - - false -> - _pipe@2 = gleam@string:split( - erlang:element(6, Base), - <<"/"/utf8>> - ), - _pipe@3 = drop_last(_pipe@2), - gleam@list:append( - _pipe@3, - gleam@string:split( - erlang:element(6, Relative), - <<"/"/utf8>> - ) - ) - end, - Path@1 = begin - _pipe@4 = Path_segments, - _pipe@5 = remove_dot_segments(_pipe@4), - join_segments(_pipe@5) - end, - {Path@1, erlang:element(7, Relative)} - end, - Resolved@1 = {uri, - erlang:element(2, Base), - none, - erlang:element(4, Base), - erlang:element(5, Base), - New_path, - New_query, - erlang:element(8, Relative)}, - {ok, Resolved@1} - end; - - _ -> - {error, nil} - end. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam_stdlib.erl b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam_stdlib.erl deleted file mode 100644 index c6ea125..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam_stdlib.erl +++ /dev/null @@ -1,529 +0,0 @@ --module(gleam_stdlib). - --export([ - map_get/2, iodata_append/2, identity/1, decode_int/1, decode_bool/1, - decode_float/1, decode_list/1, decode_option/2, decode_field/2, parse_int/1, - parse_float/1, less_than/2, string_pop_grapheme/1, string_starts_with/2, - wrap_list/1, string_ends_with/2, string_pad/4, decode_map/1, uri_parse/1, - bit_array_int_to_u32/1, bit_array_int_from_u32/1, decode_result/1, - bit_array_slice/3, decode_bit_array/1, compile_regex/2, regex_scan/2, - percent_encode/1, percent_decode/1, regex_check/2, regex_split/2, - base_decode64/1, parse_query/1, bit_array_concat/1, size_of_tuple/1, - decode_tuple/1, decode_tuple2/1, decode_tuple3/1, decode_tuple4/1, - decode_tuple5/1, decode_tuple6/1, tuple_get/2, classify_dynamic/1, print/1, - println/1, print_error/1, println_error/1, inspect/1, float_to_string/1, - int_from_base_string/2, utf_codepoint_list_to_string/1, contains_string/2, - crop_string/2, base16_decode/1 -]). - -%% Taken from OTP's uri_string module --define(DEC2HEX(X), - if ((X) >= 0) andalso ((X) =< 9) -> (X) + $0; - ((X) >= 10) andalso ((X) =< 15) -> (X) + $A - 10 - end). - -%% Taken from OTP's uri_string module --define(HEX2DEC(X), - if ((X) >= $0) andalso ((X) =< $9) -> (X) - $0; - ((X) >= $A) andalso ((X) =< $F) -> (X) - $A + 10; - ((X) >= $a) andalso ((X) =< $f) -> (X) - $a + 10 - end). - --define(is_lowercase_char(X), (X > 96 andalso X < 123)). --define(is_underscore_char(X), (X == 95)). --define(is_digit_char(X), (X > 47 andalso X < 58)). - -uppercase(X) -> X - 32. - -map_get(Map, Key) -> - case maps:find(Key, Map) of - error -> {error, nil}; - OkFound -> OkFound - end. - -iodata_append(Iodata, String) -> [Iodata, String]. - -identity(X) -> X. - -decode_error_msg(Expected, Data) when is_binary(Expected) -> - decode_error(Expected, classify_dynamic(Data)). -decode_error(Expected, Got) when is_binary(Expected) andalso is_binary(Got) -> - {error, [{decode_error, Expected, Got, []}]}. - -classify_dynamic(nil) -> <<"Nil">>; -classify_dynamic(X) when is_atom(X) -> <<"Atom">>; -classify_dynamic(X) when is_binary(X) -> <<"String">>; -classify_dynamic(X) when is_bitstring(X) -> <<"BitArray">>; -classify_dynamic(X) when is_integer(X) -> <<"Int">>; -classify_dynamic(X) when is_float(X) -> <<"Float">>; -classify_dynamic(X) when is_list(X) -> <<"List">>; -classify_dynamic(X) when is_boolean(X) -> <<"Bool">>; -classify_dynamic(X) when is_map(X) -> <<"Map">>; -classify_dynamic(X) when is_tuple(X) -> - iolist_to_binary(["Tuple of ", integer_to_list(tuple_size(X)), " elements"]); -classify_dynamic(X) when - is_function(X, 0) orelse is_function(X, 1) orelse is_function(X, 2) orelse - is_function(X, 3) orelse is_function(X, 4) orelse is_function(X, 5) orelse - is_function(X, 6) orelse is_function(X, 7) orelse is_function(X, 8) orelse - is_function(X, 9) orelse is_function(X, 10) orelse is_function(X, 11) orelse - is_function(X, 12) -> <<"Function">>; -classify_dynamic(_) -> <<"Some other type">>. - -decode_map(Data) when is_map(Data) -> {ok, Data}; -decode_map(Data) -> decode_error_msg(<<"Map">>, Data). - -decode_bit_array(Data) when is_bitstring(Data) -> {ok, Data}; -decode_bit_array(Data) -> decode_error_msg(<<"BitArray">>, Data). - -decode_int(Data) when is_integer(Data) -> {ok, Data}; -decode_int(Data) -> decode_error_msg(<<"Int">>, Data). - -decode_float(Data) when is_float(Data) -> {ok, Data}; -decode_float(Data) -> decode_error_msg(<<"Float">>, Data). - -decode_bool(Data) when is_boolean(Data) -> {ok, Data}; -decode_bool(Data) -> decode_error_msg(<<"Bool">>, Data). - -decode_list(Data) when is_list(Data) -> {ok, Data}; -decode_list(Data) -> decode_error_msg(<<"List">>, Data). - -decode_field(Data, Key) when is_map(Data) -> - case Data of - #{Key := Value} -> {ok, {some, Value}}; - _ -> - {ok, none} - end; -decode_field(Data, _) -> - decode_error_msg(<<"Map">>, Data). - -size_of_tuple(Data) -> tuple_size(Data). - -tuple_get(_tup, Index) when Index < 0 -> {error, nil}; -tuple_get(Data, Index) when Index >= tuple_size(Data) -> {error, nil}; -tuple_get(Data, Index) -> {ok, element(Index + 1, Data)}. - -decode_tuple(Data) when is_tuple(Data) -> {ok, Data}; -decode_tuple(Data) -> decode_error_msg(<<"Tuple">>, Data). - -decode_tuple2({_,_} = A) -> {ok, A}; -decode_tuple2([A,B]) -> {ok, {A,B}}; -decode_tuple2(Data) -> decode_error_msg(<<"Tuple of 2 elements">>, Data). - -decode_tuple3({_,_,_} = A) -> {ok, A}; -decode_tuple3([A,B,C]) -> {ok, {A,B,C}}; -decode_tuple3(Data) -> decode_error_msg(<<"Tuple of 3 elements">>, Data). - -decode_tuple4({_,_,_,_} = A) -> {ok, A}; -decode_tuple4([A,B,C,D]) -> {ok, {A,B,C,D}}; -decode_tuple4(Data) -> decode_error_msg(<<"Tuple of 4 elements">>, Data). - -decode_tuple5({_,_,_,_,_} = A) -> {ok, A}; -decode_tuple5([A,B,C,D,E]) -> {ok, {A,B,C,D,E}}; -decode_tuple5(Data) -> decode_error_msg(<<"Tuple of 5 elements">>, Data). - -decode_tuple6({_,_,_,_,_,_} = A) -> {ok, A}; -decode_tuple6([A,B,C,D,E,F]) -> {ok, {A,B,C,D,E,F}}; -decode_tuple6(Data) -> decode_error_msg(<<"Tuple of 6 elements">>, Data). - -decode_option(Term, F) -> - Decode = fun(Inner) -> - case F(Inner) of - {ok, Decoded} -> {ok, {some, Decoded}}; - Error -> Error - end - end, - case Term of - undefined -> {ok, none}; - error -> {ok, none}; - null -> {ok, none}; - none -> {ok, none}; - nil -> {ok, none}; - {some, Inner} -> Decode(Inner); - _ -> Decode(Term) - end. - -decode_result(Term) -> - case Term of - {ok, Inner} -> {ok, {ok, Inner}}; - ok -> {ok, {ok, nil}}; - {error, Inner} -> {ok, {error, Inner}}; - error -> {ok, {error, nil}}; - _ -> decode_error_msg(<<"Result">>, Term) - end. - -int_from_base_string(String, Base) -> - case catch binary_to_integer(String, Base) of - Int when is_integer(Int) -> {ok, Int}; - _ -> {error, nil} - end. - -parse_int(String) -> - case catch binary_to_integer(String) of - Int when is_integer(Int) -> {ok, Int}; - _ -> {error, nil} - end. - -parse_float(String) -> - case catch binary_to_float(String) of - Float when is_float(Float) -> {ok, Float}; - _ -> {error, nil} - end. - -less_than(Lhs, Rhs) -> - Lhs < Rhs. - -string_starts_with(_, <<>>) -> true; -string_starts_with(String, Prefix) when byte_size(Prefix) > byte_size(String) -> false; -string_starts_with(String, Prefix) -> - PrefixSize = byte_size(Prefix), - Prefix == binary_part(String, 0, PrefixSize). - -string_ends_with(_, <<>>) -> true; -string_ends_with(String, Suffix) when byte_size(Suffix) > byte_size(String) -> false; -string_ends_with(String, Suffix) -> - SuffixSize = byte_size(Suffix), - Suffix == binary_part(String, byte_size(String) - SuffixSize, SuffixSize). - -string_pad(String, Length, Dir, PadString) -> - Chars = string:pad(String, Length, Dir, binary_to_list(PadString)), - case unicode:characters_to_binary(Chars) of - Bin when is_binary(Bin) -> Bin; - Error -> erlang:error({gleam_error, {string_invalid_utf8, Error}}) - end. - -string_pop_grapheme(String) -> - case string:next_grapheme(String) of - [ Next | Rest ] -> - {ok, {unicode:characters_to_binary([Next]), unicode:characters_to_binary(Rest)}}; - _ -> {error, nil} - end. - -bit_array_concat(BitArrays) -> - list_to_bitstring(BitArrays). - -bit_array_slice(Bin, Pos, Len) -> - try {ok, binary:part(Bin, Pos, Len)} - catch error:badarg -> {error, nil} - end. - -bit_array_int_to_u32(I) when 0 =< I, I < 4294967296 -> - {ok, <>}; -bit_array_int_to_u32(_) -> - {error, nil}. - -bit_array_int_from_u32(<>) -> - {ok, I}; -bit_array_int_from_u32(_) -> - {error, nil}. - -compile_regex(String, Options) -> - {options, Caseless, Multiline} = Options, - OptionsList = [ - unicode, - ucp, - Caseless andalso caseless, - Multiline andalso multiline - ], - FilteredOptions = [Option || Option <- OptionsList, Option /= false], - case re:compile(String, FilteredOptions) of - {ok, MP} -> {ok, MP}; - {error, {Str, Pos}} -> - {error, {compile_error, unicode:characters_to_binary(Str), Pos}} - end. - -regex_check(Regex, String) -> - re:run(String, Regex) /= nomatch. - -regex_split(Regex, String) -> - re:split(String, Regex). - -regex_submatches(_, {-1, 0}) -> none; -regex_submatches(String, {Start, Length}) -> - BinarySlice = binary:part(String, {Start, Length}), - case string:is_empty(binary_to_list(BinarySlice)) of - true -> none; - false -> {some, BinarySlice} - end. - -regex_matches(String, [{Start, Length} | Submatches]) -> - Submatches1 = lists:map(fun(X) -> regex_submatches(String, X) end, Submatches), - {match, binary:part(String, Start, Length), Submatches1}. - -regex_scan(Regex, String) -> - case re:run(String, Regex, [global]) of - {match, Captured} -> lists:map(fun(X) -> regex_matches(String, X) end, Captured); - nomatch -> [] - end. - -base_decode64(S) -> - try {ok, base64:decode(S)} - catch error:_ -> {error, nil} - end. - -wrap_list(X) when is_list(X) -> X; -wrap_list(X) -> [X]. - -parse_query(Query) -> - case uri_string:dissect_query(Query) of - {error, _, _} -> {error, nil}; - Pairs -> - Pairs1 = lists:map(fun - ({K, true}) -> {K, <<"">>}; - (Pair) -> Pair - end, Pairs), - {ok, Pairs1} - end. - -percent_encode(B) -> percent_encode(B, <<>>). -percent_encode(<<>>, Acc) -> - Acc; -percent_encode(<>, Acc) -> - case percent_ok(H) of - true -> - percent_encode(T, <>); - false -> - <> = <>, - percent_encode(T, <>) - end. - -percent_decode(Cs) -> percent_decode(Cs, <<>>). -percent_decode(<<$%, C0, C1, Cs/binary>>, Acc) -> - case is_hex_digit(C0) andalso is_hex_digit(C1) of - true -> - B = ?HEX2DEC(C0)*16+?HEX2DEC(C1), - percent_decode(Cs, <>); - false -> - {error, nil} - end; -percent_decode(<>, Acc) -> - percent_decode(Cs, <>); -percent_decode(<<>>, Acc) -> - check_utf8(Acc). - -percent_ok($!) -> true; -percent_ok($$) -> true; -percent_ok($') -> true; -percent_ok($() -> true; -percent_ok($)) -> true; -percent_ok($*) -> true; -percent_ok($+) -> true; -percent_ok($-) -> true; -percent_ok($.) -> true; -percent_ok($_) -> true; -percent_ok($~) -> true; -percent_ok(C) when $0 =< C, C =< $9 -> true; -percent_ok(C) when $A =< C, C =< $Z -> true; -percent_ok(C) when $a =< C, C =< $z -> true; -percent_ok(_) -> false. - -is_hex_digit(C) -> - ($0 =< C andalso C =< $9) orelse ($a =< C andalso C =< $f) orelse ($A =< C andalso C =< $F). - -check_utf8(Cs) -> - case unicode:characters_to_list(Cs) of - {incomplete, _, _} -> {error, nil}; - {error, _, _} -> {error, nil}; - _ -> {ok, Cs} - end. - -uri_parse(String) -> - case uri_string:parse(String) of - {error, _, _} -> {error, nil}; - Uri -> - {ok, {uri, - maps_get_optional(Uri, scheme), - maps_get_optional(Uri, userinfo), - maps_get_optional(Uri, host), - maps_get_optional(Uri, port), - maps_get_or(Uri, path, <<>>), - maps_get_optional(Uri, query), - maps_get_optional(Uri, fragment) - }} - end. - -maps_get_optional(Map, Key) -> - try {some, maps:get(Key, Map)} - catch _:_ -> none - end. - -maps_get_or(Map, Key, Default) -> - try maps:get(Key, Map) - catch _:_ -> Default - end. - -print(String) -> - io:put_chars(String), - nil. - -println(String) -> - io:put_chars([String, $\n]), - nil. - -print_error(String) -> - io:put_chars(standard_error, String), - nil. - -println_error(String) -> - io:put_chars(standard_error, [String, $\n]), - nil. - -inspect(true) -> - "True"; -inspect(false) -> - "False"; -inspect(nil) -> - "Nil"; -inspect(Data) when is_map(Data) -> - Fields = [ - [<<"#(">>, inspect(Key), <<", ">>, inspect(Value), <<")">>] - || {Key, Value} <- maps:to_list(Data) - ], - ["dict.from_list([", lists:join(", ", Fields), "])"]; -inspect(Atom) when is_atom(Atom) -> - Binary = erlang:atom_to_binary(Atom), - case inspect_maybe_gleam_atom(Binary, none, <<>>) of - {ok, Inspected} -> Inspected; - {error, _} -> ["atom.create_from_string(\"", Binary, "\")"] - end; -inspect(Any) when is_integer(Any) -> - erlang:integer_to_list(Any); -inspect(Any) when is_float(Any) -> - io_lib_format:fwrite_g(Any); -inspect(Binary) when is_binary(Binary) -> - case inspect_maybe_utf8_string(Binary, <<>>) of - {ok, InspectedUtf8String} -> InspectedUtf8String; - {error, not_a_utf8_string} -> - Segments = [erlang:integer_to_list(X) || <> <= Binary], - ["<<", lists:join(", ", Segments), ">>"] - end; -inspect(Bits) when is_bitstring(Bits) -> - inspect_bit_array(Bits); -inspect(List) when is_list(List) -> - case inspect_list(List) of - {proper, Elements} -> ["[", Elements, "]"]; - {improper, Elements} -> ["//erl([", Elements, "])"] - end; -inspect(Any) when is_tuple(Any) % Record constructors - andalso is_atom(element(1, Any)) - andalso element(1, Any) =/= false - andalso element(1, Any) =/= true - andalso element(1, Any) =/= nil --> - [Atom | ArgsList] = erlang:tuple_to_list(Any), - Args = lists:join(<<", ">>, - lists:map(fun inspect/1, ArgsList) - ), - [inspect(Atom), "(", Args, ")"]; -inspect(Tuple) when is_tuple(Tuple) -> - Elements = lists:map(fun inspect/1, erlang:tuple_to_list(Tuple)), - ["#(", lists:join(", ", Elements), ")"]; -inspect(Any) when is_function(Any) -> - {arity, Arity} = erlang:fun_info(Any, arity), - ArgsAsciiCodes = lists:seq($a, $a + Arity - 1), - Args = lists:join(<<", ">>, - lists:map(fun(Arg) -> <> end, ArgsAsciiCodes) - ), - ["//fn(", Args, ") { ... }"]; -inspect(Any) -> - ["//erl(", io_lib:format("~p", [Any]), ")"]. - - -inspect_maybe_gleam_atom(<<>>, none, _) -> - {error, nil}; -inspect_maybe_gleam_atom(<>, none, _) when ?is_digit_char(First) -> - {error, nil}; -inspect_maybe_gleam_atom(<<"_", _Rest/binary>>, none, _) -> - {error, nil}; -inspect_maybe_gleam_atom(<<"_">>, _PrevChar, _Acc) -> - {error, nil}; -inspect_maybe_gleam_atom(<<"_", _Rest/binary>>, $_, _Acc) -> - {error, nil}; -inspect_maybe_gleam_atom(<>, _PrevChar, _Acc) - when not (?is_lowercase_char(First) orelse ?is_underscore_char(First) orelse ?is_digit_char(First)) -> - {error, nil}; -inspect_maybe_gleam_atom(<>, none, Acc) -> - inspect_maybe_gleam_atom(Rest, First, <>); -inspect_maybe_gleam_atom(<<"_", Rest/binary>>, _PrevChar, Acc) -> - inspect_maybe_gleam_atom(Rest, $_, Acc); -inspect_maybe_gleam_atom(<>, $_, Acc) -> - inspect_maybe_gleam_atom(Rest, First, <>); -inspect_maybe_gleam_atom(<>, _PrevChar, Acc) -> - inspect_maybe_gleam_atom(Rest, First, <>); -inspect_maybe_gleam_atom(<<>>, _PrevChar, Acc) -> - {ok, Acc}; -inspect_maybe_gleam_atom(A, B, C) -> - erlang:display({A, B, C}), - throw({gleam_error, A, B, C}). - -inspect_list([]) -> - {proper, []}; -inspect_list([First]) -> - {proper, [inspect(First)]}; -inspect_list([First | Rest]) when is_list(Rest) -> - {Kind, Inspected} = inspect_list(Rest), - {Kind, [inspect(First), <<", ">> | Inspected]}; -inspect_list([First | ImproperTail]) -> - {improper, [inspect(First), <<" | ">>, inspect(ImproperTail)]}. - -inspect_bit_array(Bits) -> - Text = inspect_bit_array(Bits, <<"<<">>), - <>">>. - -inspect_bit_array(<<>>, Acc) -> - Acc; -inspect_bit_array(<>, Acc) -> - inspect_bit_array(Rest, append_segment(Acc, erlang:integer_to_binary(X))); -inspect_bit_array(Rest, Acc) -> - Size = bit_size(Rest), - <> = Rest, - X1 = erlang:integer_to_binary(X), - Size1 = erlang:integer_to_binary(Size), - Segment = <>, - inspect_bit_array(<<>>, append_segment(Acc, Segment)). - -append_segment(<<"<<">>, Segment) -> - <<"<<", Segment/binary>>; -append_segment(Acc, Segment) -> - <>. - - -inspect_maybe_utf8_string(Binary, Acc) -> - case Binary of - <<>> -> {ok, <<$", Acc/binary, $">>}; - <> -> - Escaped = case First of - $" -> <<$\\, $">>; - $\\ -> <<$\\, $\\>>; - $\r -> <<$\\, $r>>; - $\n -> <<$\\, $n>>; - $\t -> <<$\\, $t>>; - Other -> <> - end, - inspect_maybe_utf8_string(Rest, <>); - _ -> {error, not_a_utf8_string} - end. - -float_to_string(Float) when is_float(Float) -> - erlang:iolist_to_binary(io_lib_format:fwrite_g(Float)). - -utf_codepoint_list_to_string(List) -> - case unicode:characters_to_binary(List) of - {error, _} -> erlang:error({gleam_error, {string_invalid_utf8, List}}); - Binary -> Binary - end. - -crop_string(String, Prefix) -> - case string:find(String, Prefix) of - nomatch -> String; - New -> New - end. - -contains_string(String, Substring) -> - is_bitstring(string:find(String, Substring)). - -base16_decode(String) -> - try - {ok, binary:decode_hex(String)} - catch - _:_ -> {error, nil} - end. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam_stdlib.mjs b/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam_stdlib.mjs deleted file mode 100644 index a908b23..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/_gleam_artefacts/gleam_stdlib.mjs +++ /dev/null @@ -1,875 +0,0 @@ -import { - BitArray, - Error, - List, - Ok, - Result, - UtfCodepoint, - stringBits, - toBitArray, - NonEmpty, - CustomType, -} from "./gleam.mjs"; -import { - CompileError as RegexCompileError, - Match as RegexMatch, -} from "./gleam/regex.mjs"; -import { DecodeError } from "./gleam/dynamic.mjs"; -import { Some, None } from "./gleam/option.mjs"; -import Dict from "./dict.mjs"; - -const Nil = undefined; -const NOT_FOUND = {}; - -export function identity(x) { - return x; -} - -export function parse_int(value) { - if (/^[-+]?(\d+)$/.test(value)) { - return new Ok(parseInt(value)); - } else { - return new Error(Nil); - } -} - -export function parse_float(value) { - if (/^[-+]?(\d+)\.(\d+)$/.test(value)) { - return new Ok(parseFloat(value)); - } else { - return new Error(Nil); - } -} - -export function to_string(term) { - return term.toString(); -} - -export function float_to_string(float) { - const string = float.toString(); - if (string.indexOf(".") >= 0) { - return string; - } else { - return string + ".0"; - } -} - -export function int_to_base_string(int, base) { - return int.toString(base).toUpperCase(); -} - -const int_base_patterns = { - 2: /[^0-1]/, - 3: /[^0-2]/, - 4: /[^0-3]/, - 5: /[^0-4]/, - 6: /[^0-5]/, - 7: /[^0-6]/, - 8: /[^0-7]/, - 9: /[^0-8]/, - 10: /[^0-9]/, - 11: /[^0-9a]/, - 12: /[^0-9a-b]/, - 13: /[^0-9a-c]/, - 14: /[^0-9a-d]/, - 15: /[^0-9a-e]/, - 16: /[^0-9a-f]/, - 17: /[^0-9a-g]/, - 18: /[^0-9a-h]/, - 19: /[^0-9a-i]/, - 20: /[^0-9a-j]/, - 21: /[^0-9a-k]/, - 22: /[^0-9a-l]/, - 23: /[^0-9a-m]/, - 24: /[^0-9a-n]/, - 25: /[^0-9a-o]/, - 26: /[^0-9a-p]/, - 27: /[^0-9a-q]/, - 28: /[^0-9a-r]/, - 29: /[^0-9a-s]/, - 30: /[^0-9a-t]/, - 31: /[^0-9a-u]/, - 32: /[^0-9a-v]/, - 33: /[^0-9a-w]/, - 34: /[^0-9a-x]/, - 35: /[^0-9a-y]/, - 36: /[^0-9a-z]/, -}; - -export function int_from_base_string(string, base) { - if (int_base_patterns[base].test(string.replace(/^-/, "").toLowerCase())) { - return new Error(Nil); - } - - const result = parseInt(string, base); - - if (isNaN(result)) { - return new Error(Nil); - } - - return new Ok(result); -} - -export function string_replace(string, target, substitute) { - if (typeof string.replaceAll !== "undefined") { - return string.replaceAll(target, substitute); - } - // Fallback for older Node.js versions: - // 1. - // 2. - // TODO: This fallback could be remove once Node.js 14 is EOL - // aka on or after 2024-04-30 - return string.replace( - // $& means the whole matched string - new RegExp(target.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), - substitute - ); -} - -export function string_reverse(string) { - return [...string].reverse().join(""); -} - -export function string_length(string) { - if (string === "") { - return 0; - } - const iterator = graphemes_iterator(string); - if (iterator) { - let i = 0; - for (const _ of iterator) { - i++; - } - return i; - } else { - return string.match(/./gsu).length; - } -} - -export function graphemes(string) { - return List.fromArray( - Array.from(graphemes_iterator(string)).map((item) => item.segment) - ); -} - -function graphemes_iterator(string) { - if (Intl && Intl.Segmenter) { - return new Intl.Segmenter().segment(string)[Symbol.iterator](); - } -} - -export function pop_grapheme(string) { - let first; - const iterator = graphemes_iterator(string); - if (iterator) { - first = iterator.next().value?.segment; - } else { - first = string.match(/./su)?.[0]; - } - if (first) { - return new Ok([first, string.slice(first.length)]); - } else { - return new Error(Nil); - } -} - -export function lowercase(string) { - return string.toLowerCase(); -} - -export function uppercase(string) { - return string.toUpperCase(); -} - -export function less_than(a, b) { - return a < b; -} - -export function add(a, b) { - return a + b; -} - -export function equal(a, b) { - return a === b; -} - -export function split(xs, pattern) { - return List.fromArray(xs.split(pattern)); -} - -export function join(xs, separator) { - const iterator = xs[Symbol.iterator](); - let result = iterator.next().value || ""; - let current = iterator.next(); - while (!current.done) { - result = result + separator + current.value; - current = iterator.next(); - } - return result; -} - -export function concat(xs) { - let result = ""; - for (const x of xs) { - result = result + x; - } - return result; -} - -export function length(data) { - return data.length; -} - -export function crop_string(string, substring) { - return string.substring(string.indexOf(substring)); -} - -export function contains_string(haystack, needle) { - return haystack.indexOf(needle) >= 0; -} - -export function starts_with(haystack, needle) { - return haystack.startsWith(needle); -} - -export function ends_with(haystack, needle) { - return haystack.endsWith(needle); -} - -export function split_once(haystack, needle) { - const index = haystack.indexOf(needle); - if (index >= 0) { - const before = haystack.slice(0, index); - const after = haystack.slice(index + needle.length); - return new Ok([before, after]); - } else { - return new Error(Nil); - } -} - -export function trim(string) { - return string.trim(); -} - -export function trim_left(string) { - return string.trimLeft(); -} - -export function trim_right(string) { - return string.trimRight(); -} - -export function bit_array_from_string(string) { - return toBitArray([stringBits(string)]); -} - -export function bit_array_concat(bit_arrays) { - return toBitArray(bit_arrays.toArray().map((b) => b.buffer)); -} - -export function console_log(term) { - console.log(term); -} - -export function console_error(term) { - console.error(term); -} - -export function crash(message) { - throw new globalThis.Error(message); -} - -export function bit_array_to_string(bit_array) { - try { - const decoder = new TextDecoder("utf-8", { fatal: true }); - return new Ok(decoder.decode(bit_array.buffer)); - } catch (_error) { - return new Error(Nil); - } -} - -export function print(string) { - if (typeof process === "object") { - process.stdout.write(string); // We can write without a trailing newline - } else if (typeof Deno === "object") { - Deno.stdout.writeSync(new TextEncoder().encode(string)); // We can write without a trailing newline - } else { - console.log(string); // We're in a browser. Newlines are mandated - } -} - -export function print_error(string) { - if (typeof process === "object" && process.stderr?.write) { - process.stderr.write(string); // We can write without a trailing newline - } else if (typeof Deno === "object") { - Deno.stderr.writeSync(new TextEncoder().encode(string)); // We can write without a trailing newline - } else { - console.error(string); // We're in a browser. Newlines are mandated - } -} - -export function print_debug(string) { - if (typeof process === "object" && process.stderr?.write) { - process.stderr.write(string + "\n"); // If we're in Node.js, use `stderr` - } else if (typeof Deno === "object") { - Deno.stderr.writeSync(new TextEncoder().encode(string + "\n")); // If we're in Deno, use `stderr` - } else { - console.log(string); // Otherwise, use `console.log` (so that it doesn't look like an error) - } -} - -export function ceiling(float) { - return Math.ceil(float); -} - -export function floor(float) { - return Math.floor(float); -} - -export function round(float) { - return Math.round(float); -} - -export function truncate(float) { - return Math.trunc(float); -} - -export function power(base, exponent) { - // It is checked in Gleam that: - // - The base is non-negative and that the exponent is not fractional. - // - The base is non-zero and the exponent is non-negative (otherwise - // the result will essentially be division by zero). - // It can thus be assumed that valid input is passed to the Math.pow - // function and a NaN or Infinity value will not be produced. - return Math.pow(base, exponent); -} - -export function random_uniform() { - const random_uniform_result = Math.random(); - // With round-to-nearest-even behavior, the ranges claimed for the functions below - // (excluding the one for Math.random() itself) aren't exact. - // If extremely large bounds are chosen (2^53 or higher), - // it's possible in extremely rare cases to calculate the usually-excluded upper bound. - // Note that as numbers in JavaScript are IEEE 754 floating point numbers - // See: - // Because of this, we just loop 'until' we get a valid result where 0.0 <= x < 1.0: - if (random_uniform_result === 1.0) { - return random_uniform(); - } - return random_uniform_result; -} - -export function bit_array_slice(bits, position, length) { - const start = Math.min(position, position + length); - const end = Math.max(position, position + length); - if (start < 0 || end > bits.length) return new Error(Nil); - const buffer = new Uint8Array(bits.buffer.buffer, start, Math.abs(length)); - return new Ok(new BitArray(buffer)); -} - -export function codepoint(int) { - return new UtfCodepoint(int); -} - -export function string_to_codepoint_integer_list(string) { - return List.fromArray(Array.from(string).map((item) => item.codePointAt(0))); -} - -export function utf_codepoint_list_to_string(utf_codepoint_integer_list) { - return utf_codepoint_integer_list - .toArray() - .map((x) => String.fromCodePoint(x.value)) - .join(""); -} - -export function utf_codepoint_to_int(utf_codepoint) { - return utf_codepoint.value; -} - -export function regex_check(regex, string) { - regex.lastIndex = 0; - return regex.test(string); -} - -export function compile_regex(pattern, options) { - try { - let flags = "gu"; - if (options.case_insensitive) flags += "i"; - if (options.multi_line) flags += "m"; - return new Ok(new RegExp(pattern, flags)); - } catch (error) { - const number = (error.columnNumber || 0) | 0; - return new Error(new RegexCompileError(error.message, number)); - } -} - -export function regex_scan(regex, string) { - const matches = Array.from(string.matchAll(regex)).map((match) => { - const content = match[0]; - const submatches = []; - for (let n = match.length - 1; n > 0; n--) { - if (match[n]) { - submatches[n - 1] = new Some(match[n]); - continue; - } - if (submatches.length > 0) { - submatches[n - 1] = new None(); - } - } - return new RegexMatch(content, List.fromArray(submatches)); - }); - return List.fromArray(matches); -} - -export function new_map() { - return Dict.new(); -} - -export function map_size(map) { - return map.size; -} - -export function map_to_list(map) { - return List.fromArray(map.entries()); -} - -export function map_remove(key, map) { - return map.delete(key); -} - -export function map_get(map, key) { - const value = map.get(key, NOT_FOUND); - if (value === NOT_FOUND) { - return new Error(Nil); - } - return new Ok(value); -} - -export function map_insert(key, value, map) { - return map.set(key, value); -} - -function unsafe_percent_decode(string) { - return decodeURIComponent((string || "").replace("+", " ")); -} - -export function percent_decode(string) { - try { - return new Ok(unsafe_percent_decode(string)); - } catch (_error) { - return new Error(Nil); - } -} - -export function percent_encode(string) { - return encodeURIComponent(string); -} - -export function parse_query(query) { - try { - const pairs = []; - for (const section of query.split("&")) { - const [key, value] = section.split("="); - if (!key) continue; - pairs.push([unsafe_percent_decode(key), unsafe_percent_decode(value)]); - } - return new Ok(List.fromArray(pairs)); - } catch (_error) { - return new Error(Nil); - } -} - -// From https://developer.mozilla.org/en-US/docs/Glossary/Base64#Solution_2_%E2%80%93_rewrite_the_DOMs_atob()_and_btoa()_using_JavaScript's_TypedArrays_and_UTF-8 -export function encode64(bit_array) { - const aBytes = bit_array.buffer; - let nMod3 = 2; - let sB64Enc = ""; - - for (let nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) { - nMod3 = nIdx % 3; - if (nIdx > 0 && ((nIdx * 4) / 3) % 76 === 0) { - sB64Enc += "\r\n"; - } - nUint24 |= aBytes[nIdx] << ((16 >>> nMod3) & 24); - if (nMod3 === 2 || aBytes.length - nIdx === 1) { - sB64Enc += String.fromCharCode( - uint6ToB64((nUint24 >>> 18) & 63), - uint6ToB64((nUint24 >>> 12) & 63), - uint6ToB64((nUint24 >>> 6) & 63), - uint6ToB64(nUint24 & 63) - ); - nUint24 = 0; - } - } - - return ( - sB64Enc.substr(0, sB64Enc.length - 2 + nMod3) + - (nMod3 === 2 ? "" : nMod3 === 1 ? "=" : "==") - ); -} - -// From https://developer.mozilla.org/en-US/docs/Glossary/Base64#Solution_2_%E2%80%93_rewrite_the_DOMs_atob()_and_btoa()_using_JavaScript's_TypedArrays_and_UTF-8 -function uint6ToB64(nUint6) { - return nUint6 < 26 - ? nUint6 + 65 - : nUint6 < 52 - ? nUint6 + 71 - : nUint6 < 62 - ? nUint6 - 4 - : nUint6 === 62 - ? 43 - : nUint6 === 63 - ? 47 - : 65; -} - -// From https://developer.mozilla.org/en-US/docs/Glossary/Base64#Solution_2_%E2%80%93_rewrite_the_DOMs_atob()_and_btoa()_using_JavaScript's_TypedArrays_and_UTF-8 -function b64ToUint6(nChr) { - return nChr > 64 && nChr < 91 - ? nChr - 65 - : nChr > 96 && nChr < 123 - ? nChr - 71 - : nChr > 47 && nChr < 58 - ? nChr + 4 - : nChr === 43 - ? 62 - : nChr === 47 - ? 63 - : 0; -} - -// From https://developer.mozilla.org/en-US/docs/Glossary/Base64#Solution_2_%E2%80%93_rewrite_the_DOMs_atob()_and_btoa()_using_JavaScript's_TypedArrays_and_UTF-8 -export function decode64(sBase64) { - if (sBase64.match(/[^A-Za-z0-9\+\/=]/g)) return new Error(Nil); - const sB64Enc = sBase64.replace(/=/g, ""); - const nInLen = sB64Enc.length; - const nOutLen = (nInLen * 3 + 1) >> 2; - const taBytes = new Uint8Array(nOutLen); - - for ( - let nMod3, nMod4, nUint24 = 0, nOutIdx = 0, nInIdx = 0; - nInIdx < nInLen; - nInIdx++ - ) { - nMod4 = nInIdx & 3; - nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4)); - if (nMod4 === 3 || nInLen - nInIdx === 1) { - for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) { - taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255; - } - nUint24 = 0; - } - } - - return new Ok(new BitArray(taBytes)); -} - -export function classify_dynamic(data) { - if (typeof data === "string") { - return "String"; - } else if (data instanceof Result) { - return "Result"; - } else if (data instanceof List) { - return "List"; - } else if (data instanceof BitArray) { - return "BitArray"; - } else if (data instanceof Dict) { - return "Map"; - } else if (Number.isInteger(data)) { - return "Int"; - } else if (Array.isArray(data)) { - return `Tuple of ${data.length} elements`; - } else if (typeof data === "number") { - return "Float"; - } else if (data === null) { - return "Null"; - } else if (data === undefined) { - return "Nil"; - } else { - const type = typeof data; - return type.charAt(0).toUpperCase() + type.slice(1); - } -} - -function decoder_error(expected, got) { - return decoder_error_no_classify(expected, classify_dynamic(got)); -} - -function decoder_error_no_classify(expected, got) { - return new Error( - List.fromArray([new DecodeError(expected, got, List.fromArray([]))]) - ); -} - -export function decode_string(data) { - return typeof data === "string" - ? new Ok(data) - : decoder_error("String", data); -} - -export function decode_int(data) { - return Number.isInteger(data) ? new Ok(data) : decoder_error("Int", data); -} - -export function decode_float(data) { - return typeof data === "number" ? new Ok(data) : decoder_error("Float", data); -} - -export function decode_bool(data) { - return typeof data === "boolean" ? new Ok(data) : decoder_error("Bool", data); -} - -export function decode_bit_array(data) { - if (data instanceof BitArray) { - return new Ok(data); - } - if (data instanceof Uint8Array) { - return new Ok(new BitArray(data)); - } - return decoder_error("BitArray", data); -} - -export function decode_tuple(data) { - return Array.isArray(data) ? new Ok(data) : decoder_error("Tuple", data); -} - -export function decode_tuple2(data) { - return decode_tupleN(data, 2); -} - -export function decode_tuple3(data) { - return decode_tupleN(data, 3); -} - -export function decode_tuple4(data) { - return decode_tupleN(data, 4); -} - -export function decode_tuple5(data) { - return decode_tupleN(data, 5); -} - -export function decode_tuple6(data) { - return decode_tupleN(data, 6); -} - -function decode_tupleN(data, n) { - if (Array.isArray(data) && data.length == n) { - return new Ok(data); - } - - const list = decode_exact_length_list(data, n); - if (list) return new Ok(list); - - return decoder_error(`Tuple of ${n} elements`, data); -} - -function decode_exact_length_list(data, n) { - if (!(data instanceof List)) return; - - const elements = []; - let current = data; - - for (let i = 0; i < n; i++) { - if (!(current instanceof NonEmpty)) break; - elements.push(current.head); - current = current.tail; - } - - if (elements.length === n && !(current instanceof NonEmpty)) return elements; -} - -export function tuple_get(data, index) { - return index >= 0 && data.length > index - ? new Ok(data[index]) - : new Error(Nil); -} - -export function decode_list(data) { - if (Array.isArray(data)) { - return new Ok(List.fromArray(data)); - } - return data instanceof List ? new Ok(data) : decoder_error("List", data); -} - -export function decode_result(data) { - return data instanceof Result ? new Ok(data) : decoder_error("Result", data); -} - -export function decode_map(data) { - if (data instanceof Dict) { - return new Ok(Dict.fromMap(data)); - } - if (data == null) { - return decoder_error("Map", data); - } - if (typeof data !== "object") { - return decoder_error("Map", data); - } - const proto = Object.getPrototypeOf(data); - if (proto === Object.prototype || proto === null) { - return new Ok(Dict.fromObject(data)); - } - return decoder_error("Map", data); -} - -export function decode_option(data, decoder) { - if (data === null || data === undefined || data instanceof None) - return new Ok(new None()); - if (data instanceof Some) data = data[0]; - const result = decoder(data); - if (result.isOk()) { - return new Ok(new Some(result[0])); - } else { - return result; - } -} - -export function decode_field(value, name) { - const not_a_map_error = () => decoder_error("Map", value); - - if ( - value instanceof Dict || - value instanceof WeakMap || - value instanceof Map - ) { - const entry = map_get(value, name); - return new Ok(entry.isOk() ? new Some(entry[0]) : new None()); - } else if (Object.getPrototypeOf(value) == Object.prototype) { - return try_get_field(value, name, () => new Ok(new None())); - } else { - return try_get_field(value, name, not_a_map_error); - } -} - -function try_get_field(value, field, or_else) { - try { - return field in value ? new Ok(new Some(value[field])) : or_else(); - } catch { - return or_else(); - } -} - -export function byte_size(string) { - return new TextEncoder().encode(string).length; -} - -// In Javascript bitwise operations convert numbers to a sequence of 32 bits -// while Erlang uses arbitrary precision. -// To get around this problem and get consistent results use BigInt and then -// downcast the value back to a Number value. - -export function bitwise_and(x, y) { - return Number(BigInt(x) & BigInt(y)); -} - -export function bitwise_not(x) { - return Number(~BigInt(x)); -} - -export function bitwise_or(x, y) { - return Number(BigInt(x) | BigInt(y)); -} - -export function bitwise_exclusive_or(x, y) { - return Number(BigInt(x) ^ BigInt(y)); -} - -export function bitwise_shift_left(x, y) { - return Number(BigInt(x) << BigInt(y)); -} - -export function bitwise_shift_right(x, y) { - return Number(BigInt(x) >> BigInt(y)); -} - -export function inspect(v) { - const t = typeof v; - if (v === true) return "True"; - if (v === false) return "False"; - if (v === null) return "//js(null)"; - if (v === undefined) return "Nil"; - if (t === "string") return JSON.stringify(v); - if (t === "bigint" || t === "number") return v.toString(); - if (Array.isArray(v)) return `#(${v.map(inspect).join(", ")})`; - if (v instanceof List) return inspectList(v); - if (v instanceof UtfCodepoint) return inspectUtfCodepoint(v); - if (v instanceof BitArray) return inspectBitArray(v); - if (v instanceof CustomType) return inspectCustomType(v); - if (v instanceof Dict) return inspectDict(v); - if (v instanceof Set) return `//js(Set(${[...v].map(inspect).join(", ")}))`; - if (v instanceof RegExp) return `//js(${v})`; - if (v instanceof Date) return `//js(Date("${v.toISOString()}"))`; - if (v instanceof Function) { - const args = []; - for (const i of Array(v.length).keys()) - args.push(String.fromCharCode(i + 97)); - return `//fn(${args.join(", ")}) { ... }`; - } - return inspectObject(v); -} - -function inspectDict(map) { - let body = "dict.from_list(["; - let first = true; - map.forEach((value, key) => { - if (!first) body = body + ", "; - body = body + "#(" + inspect(key) + ", " + inspect(value) + ")"; - first = false; - }); - return body + "])"; -} - -function inspectObject(v) { - const name = Object.getPrototypeOf(v)?.constructor?.name || "Object"; - const props = []; - for (const k of Object.keys(v)) { - props.push(`${inspect(k)}: ${inspect(v[k])}`); - } - const body = props.length ? " " + props.join(", ") + " " : ""; - const head = name === "Object" ? "" : name + " "; - return `//js(${head}{${body}})`; -} - -function inspectCustomType(record) { - const props = Object.keys(record) - .map((label) => { - const value = inspect(record[label]); - return isNaN(parseInt(label)) ? `${label}: ${value}` : value; - }) - .join(", "); - return props - ? `${record.constructor.name}(${props})` - : record.constructor.name; -} - -export function inspectList(list) { - return `[${list.toArray().map(inspect).join(", ")}]`; -} - -export function inspectBitArray(bits) { - return `<<${Array.from(bits.buffer).join(", ")}>>`; -} - -export function inspectUtfCodepoint(codepoint) { - return `//utfcodepoint(${String.fromCodePoint(codepoint.value)})`; -} - -export function base16_encode(bit_array) { - let result = ""; - for (const byte of bit_array.buffer) { - result += byte.toString(16).padStart(2, "0").toUpperCase(); - } - return result; -} - -export function base16_decode(string) { - const bytes = new Uint8Array(string.length / 2); - for (let i = 0; i < string.length; i += 2) { - const a = parseInt(string[i], 16); - const b = parseInt(string[i + 1], 16); - if (isNaN(a) || isNaN(b)) return new Error(Nil); - bytes[i / 2] = a * 16 + b; - } - return new Ok(new BitArray(bytes)); -} diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@base.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@base.beam deleted file mode 100644 index 66ecfaf..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@base.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_array.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_array.beam deleted file mode 100644 index 12fe362..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_array.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_builder.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_builder.beam deleted file mode 100644 index ea1ebc6..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_builder.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_string.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_string.beam deleted file mode 100644 index b8a7f29..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bit_string.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bool.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bool.beam deleted file mode 100644 index 49ceff6..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bool.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bytes_builder.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bytes_builder.beam deleted file mode 100644 index 768e658..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@bytes_builder.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@dict.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@dict.beam deleted file mode 100644 index 91ac492..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@dict.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@dynamic.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@dynamic.beam deleted file mode 100644 index 4945547..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@dynamic.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@float.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@float.beam deleted file mode 100644 index b0b6b33..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@float.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@function.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@function.beam deleted file mode 100644 index 1a0aca0..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@function.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@int.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@int.beam deleted file mode 100644 index a8594f4..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@int.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@io.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@io.beam deleted file mode 100644 index fdadf55..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@io.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@iterator.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@iterator.beam deleted file mode 100644 index e7997d2..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@iterator.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@list.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@list.beam deleted file mode 100644 index 2d8125f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@list.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@map.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@map.beam deleted file mode 100644 index ba9c9e2..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@map.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@option.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@option.beam deleted file mode 100644 index ed16040..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@option.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@order.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@order.beam deleted file mode 100644 index e5a5990..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@order.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@pair.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@pair.beam deleted file mode 100644 index 1db55b8..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@pair.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@queue.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@queue.beam deleted file mode 100644 index c4e81fc..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@queue.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@regex.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@regex.beam deleted file mode 100644 index d4daa3f..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@regex.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@result.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@result.beam deleted file mode 100644 index 13eeb10..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@result.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@set.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@set.beam deleted file mode 100644 index ad16119..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@set.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@string.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@string.beam deleted file mode 100644 index 6565dd5..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@string.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@string_builder.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@string_builder.beam deleted file mode 100644 index f968a74..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@string_builder.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@uri.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@uri.beam deleted file mode 100644 index 8c0d9ec..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam@uri.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam_stdlib.app b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam_stdlib.app deleted file mode 100644 index 8231979..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam_stdlib.app +++ /dev/null @@ -1,7 +0,0 @@ -{application, gleam_stdlib, [ - {vsn, "0.33.0"}, - {applications, []}, - {description, "A standard library for the Gleam programming language"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam_stdlib.beam b/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam_stdlib.beam deleted file mode 100644 index 4215626..0000000 Binary files a/aoc2023/build/dev/erlang/gleam_stdlib/ebin/gleam_stdlib.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@dynamic_DecodeError.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@dynamic_DecodeError.hrl deleted file mode 100644 index b1135f2..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@dynamic_DecodeError.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(decode_error, { - expected :: binary(), - found :: binary(), - path :: list(binary()) -}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@iterator_Iterator.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@iterator_Iterator.hrl deleted file mode 100644 index b0d08dc..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@iterator_Iterator.hrl +++ /dev/null @@ -1 +0,0 @@ --record(iterator, {continuation :: fun(() -> gleam@iterator:action(any()))}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@iterator_Next.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@iterator_Next.hrl deleted file mode 100644 index 1f61922..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@iterator_Next.hrl +++ /dev/null @@ -1 +0,0 @@ --record(next, {element :: any(), accumulator :: any()}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@queue_Queue.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@queue_Queue.hrl deleted file mode 100644 index 88ac25e..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@queue_Queue.hrl +++ /dev/null @@ -1 +0,0 @@ --record(queue, {in :: list(any()), out :: list(any())}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_CompileError.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_CompileError.hrl deleted file mode 100644 index ad5511e..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_CompileError.hrl +++ /dev/null @@ -1 +0,0 @@ --record(compile_error, {error :: binary(), byte_index :: integer()}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_Match.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_Match.hrl deleted file mode 100644 index 4216619..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_Match.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(match, { - content :: binary(), - submatches :: list(gleam@option:option(binary())) -}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_Options.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_Options.hrl deleted file mode 100644 index 0074603..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@regex_Options.hrl +++ /dev/null @@ -1 +0,0 @@ --record(options, {case_insensitive :: boolean(), multi_line :: boolean()}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@set_Set.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@set_Set.hrl deleted file mode 100644 index 6e1e226..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@set_Set.hrl +++ /dev/null @@ -1 +0,0 @@ --record(set, {map :: gleam@dict:dict(any(), list(nil))}). diff --git a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@uri_Uri.hrl b/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@uri_Uri.hrl deleted file mode 100644 index 50150f4..0000000 --- a/aoc2023/build/dev/erlang/gleam_stdlib/include/gleam@uri_Uri.hrl +++ /dev/null @@ -1,9 +0,0 @@ --record(uri, { - scheme :: gleam@option:option(binary()), - userinfo :: gleam@option:option(binary()), - host :: gleam@option:option(binary()), - port :: gleam@option:option(integer()), - path :: binary(), - 'query' :: gleam@option:option(binary()), - fragment :: gleam@option:option(binary()) -}). diff --git a/aoc2023/build/dev/erlang/gleam_version b/aoc2023/build/dev/erlang/gleam_version deleted file mode 100644 index 048acbd..0000000 --- a/aoc2023/build/dev/erlang/gleam_version +++ /dev/null @@ -1 +0,0 @@ -0.33.0-rc2 \ No newline at end of file diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.cache b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.cache deleted file mode 100644 index d1a66cb..0000000 Binary files a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.cache_meta b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.cache_meta deleted file mode 100644 index 23d66d7..0000000 Binary files a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.erl b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.erl deleted file mode 100644 index 13ae369..0000000 --- a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint.erl +++ /dev/null @@ -1,513 +0,0 @@ --module(glint). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([with_config/2, with_pretty_help/2, without_pretty_help/1, with_name/2, new/0, command/1, description/2, flag/3, flag_tuple/2, flags/2, global_flag/3, global_flag_tuple/2, global_flags/2, default_pretty_help/0, add/3, help_flag/0, execute/2, run_and_handle/3, run/2, add_command_from_stub/2]). --export_type([config/0, pretty_help/0, glint/1, command/1, command_input/0, command_node/1, out/1, stub/1]). - --type config() :: {config, - gleam@option:option(pretty_help()), - gleam@option:option(binary())}. - --type pretty_help() :: {pretty_help, - gleam_community@colour:colour(), - gleam_community@colour:colour(), - gleam_community@colour:colour()}. - --opaque glint(JFP) :: {glint, - config(), - command_node(JFP), - gleam@dict:dict(binary(), glint@flag:flag())}. - --opaque command(JFQ) :: {command, - fun((command_input()) -> JFQ), - gleam@dict:dict(binary(), glint@flag:flag()), - binary()}. - --type command_input() :: {command_input, - list(binary()), - gleam@dict:dict(binary(), glint@flag:flag())}. - --type command_node(JFR) :: {command_node, - gleam@option:option(command(JFR)), - gleam@dict:dict(binary(), command_node(JFR))}. - --type out(JFS) :: {out, JFS} | {help, binary()}. - --type stub(JFT) :: {stub, - list(binary()), - fun((command_input()) -> JFT), - list({binary(), glint@flag:flag()}), - binary()}. - --spec with_config(glint(JFY), config()) -> glint(JFY). -with_config(Glint, Config) -> - erlang:setelement(2, Glint, Config). - --spec with_pretty_help(glint(JGB), pretty_help()) -> glint(JGB). -with_pretty_help(Glint, Pretty) -> - _pipe = erlang:setelement(2, erlang:element(2, Glint), {some, Pretty}), - with_config(Glint, _pipe). - --spec without_pretty_help(glint(JGE)) -> glint(JGE). -without_pretty_help(Glint) -> - _pipe = erlang:setelement(2, erlang:element(2, Glint), none), - with_config(Glint, _pipe). - --spec with_name(glint(JGH), binary()) -> glint(JGH). -with_name(Glint, Name) -> - _pipe = erlang:setelement(3, erlang:element(2, Glint), {some, Name}), - with_config(Glint, _pipe). - --spec empty_command() -> command_node(any()). -empty_command() -> - {command_node, none, gleam@map:new()}. - --spec new() -> glint(any()). -new() -> - {glint, {config, none, none}, empty_command(), gleam@map:new()}. - --spec do_add(command_node(JGR), list(binary()), command(JGR)) -> command_node(JGR). -do_add(Root, Path, Contents) -> - case Path of - [] -> - erlang:setelement(2, Root, {some, Contents}); - - [X | Xs] -> - erlang:setelement( - 3, - Root, - (gleam@map:update( - erlang:element(3, Root), - X, - fun(Node) -> _pipe = Node, - _pipe@1 = gleam@option:lazy_unwrap( - _pipe, - fun empty_command/0 - ), - do_add(_pipe@1, Xs, Contents) end - )) - ) - end. - --spec command(fun((command_input()) -> JHA)) -> command(JHA). -command(Runner) -> - {command, Runner, gleam@map:new(), <<""/utf8>>}. - --spec description(command(JHD), binary()) -> command(JHD). -description(Cmd, Description) -> - erlang:setelement(4, Cmd, Description). - --spec flag(command(JHG), binary(), glint@flag:flag_builder(any())) -> command(JHG). -flag(Cmd, Key, Flag) -> - erlang:setelement( - 3, - Cmd, - gleam@map:insert(erlang:element(3, Cmd), Key, glint@flag:build(Flag)) - ). - --spec flag_tuple(command(JHL), {binary(), glint@flag:flag_builder(any())}) -> command(JHL). -flag_tuple(Cmd, Tup) -> - flag(Cmd, erlang:element(1, Tup), erlang:element(2, Tup)). - --spec flags(command(JHQ), list({binary(), glint@flag:flag()})) -> command(JHQ). -flags(Cmd, Flags) -> - gleam@list:fold( - Flags, - Cmd, - fun(Cmd@1, _use1) -> - {Key, Flag} = _use1, - erlang:setelement( - 3, - Cmd@1, - gleam@map:insert(erlang:element(3, Cmd@1), Key, Flag) - ) - end - ). - --spec global_flag(glint(JHU), binary(), glint@flag:flag_builder(any())) -> glint(JHU). -global_flag(Glint, Key, Flag) -> - erlang:setelement( - 4, - Glint, - gleam@map:insert(erlang:element(4, Glint), Key, glint@flag:build(Flag)) - ). - --spec global_flag_tuple(glint(JHZ), {binary(), glint@flag:flag_builder(any())}) -> glint(JHZ). -global_flag_tuple(Glint, Tup) -> - global_flag(Glint, erlang:element(1, Tup), erlang:element(2, Tup)). - --spec global_flags(glint(JIE), list({binary(), glint@flag:flag()})) -> glint(JIE). -global_flags(Glint, Flags) -> - erlang:setelement( - 4, - Glint, - (gleam@list:fold( - Flags, - erlang:element(4, Glint), - fun(Acc, Tup) -> - gleam@map:insert( - Acc, - erlang:element(1, Tup), - erlang:element(2, Tup) - ) - end - )) - ). - --spec execute_root( - command_node(JIS), - gleam@dict:dict(binary(), glint@flag:flag()), - list(binary()), - list(binary()) -) -> {ok, out(JIS)} | {error, snag:snag()}. -execute_root(Cmd, Global_flags, Args, Flag_inputs) -> - _pipe@3 = case erlang:element(2, Cmd) of - {some, Contents} -> - gleam@result:'try'( - gleam@list:try_fold( - Flag_inputs, - gleam@map:merge(Global_flags, erlang:element(3, Contents)), - fun glint@flag:update_flags/2 - ), - fun(New_flags) -> _pipe = {command_input, Args, New_flags}, - _pipe@1 = (erlang:element(2, Contents))(_pipe), - _pipe@2 = {out, _pipe@1}, - {ok, _pipe@2} end - ); - - none -> - snag:error(<<"command not found"/utf8>>) - end, - snag:context(_pipe@3, <<"failed to run command"/utf8>>). - --spec default_pretty_help() -> pretty_help(). -default_pretty_help() -> - _assert_subject = gleam_community@colour:from_rgb255(182, 255, 234), - {ok, Usage_colour} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"glint"/utf8>>, - function => <<"default_pretty_help"/utf8>>, - line => 404}) - end, - _assert_subject@1 = gleam_community@colour:from_rgb255(255, 175, 243), - {ok, Flags_colour} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"glint"/utf8>>, - function => <<"default_pretty_help"/utf8>>, - line => 405}) - end, - _assert_subject@2 = gleam_community@colour:from_rgb255(252, 226, 174), - {ok, Subcommands_colour} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"glint"/utf8>>, - function => <<"default_pretty_help"/utf8>>, - line => 406}) - end, - {pretty_help, Usage_colour, Flags_colour, Subcommands_colour}. - --spec is_not_empty(binary()) -> boolean(). -is_not_empty(S) -> - S /= <<""/utf8>>. - --spec sanitize_path(list(binary())) -> list(binary()). -sanitize_path(Path) -> - _pipe = Path, - _pipe@1 = gleam@list:map(_pipe, fun gleam@string:trim/1), - gleam@list:filter(_pipe@1, fun is_not_empty/1). - --spec add(glint(JGM), list(binary()), command(JGM)) -> glint(JGM). -add(Glint, Path, Contents) -> - erlang:setelement( - 3, - Glint, - begin - _pipe = Path, - _pipe@1 = sanitize_path(_pipe), - do_add(erlang:element(3, Glint), _pipe@1, Contents) - end - ). - --spec help_flag() -> binary(). -help_flag() -> - <<(<<"--"/utf8>>)/binary, "help"/utf8>>. - --spec wrap_with_space(binary()) -> binary(). -wrap_with_space(S) -> - case S of - <<""/utf8>> -> - <<" "/utf8>>; - - _ -> - <<<<" "/utf8, S/binary>>/binary, " "/utf8>> - end. - --spec subcommand_help(binary(), command_node(any())) -> binary(). -subcommand_help(Name, Cmd) -> - case erlang:element(2, Cmd) of - none -> - Name; - - {some, Contents} -> - <<<>/binary, - (erlang:element(4, Contents))/binary>> - end. - --spec subcommands_help(gleam@dict:dict(binary(), command_node(any()))) -> binary(). -subcommands_help(Cmds) -> - _pipe = Cmds, - _pipe@1 = gleam@map:map_values(_pipe, fun subcommand_help/2), - _pipe@2 = gleam@map:values(_pipe@1), - _pipe@3 = gleam@list:sort(_pipe@2, fun gleam@string:compare/2), - gleam@string:join(_pipe@3, <<"\n\t"/utf8>>). - --spec heading_style(binary(), gleam_community@colour:colour()) -> binary(). -heading_style(Heading, Colour) -> - _pipe = Heading, - _pipe@1 = gleam_community@ansi:bold(_pipe), - _pipe@2 = gleam_community@ansi:underline(_pipe@1), - _pipe@3 = gleam_community@ansi:italic(_pipe@2), - _pipe@4 = gleam_community@ansi:hex( - _pipe@3, - gleam_community@colour:to_rgb_hex(Colour) - ), - gleam_community@ansi:reset(_pipe@4). - --spec usage_help( - binary(), - gleam@dict:dict(binary(), glint@flag:flag()), - config() -) -> binary(). -usage_help(Cmd_name, Flags, Config) -> - App_name = gleam@option:unwrap( - erlang:element(3, Config), - <<"gleam run"/utf8>> - ), - Flags@1 = begin - _pipe = Flags, - _pipe@1 = gleam@map:to_list(_pipe), - _pipe@2 = gleam@list:map(_pipe@1, fun glint@flag:flag_type_help/1), - gleam@list:sort(_pipe@2, fun gleam@string:compare/2) - end, - Flag_sb = case Flags@1 of - [] -> - gleam@string_builder:new(); - - _ -> - _pipe@3 = Flags@1, - _pipe@4 = gleam@list:intersperse(_pipe@3, <<" "/utf8>>), - _pipe@5 = gleam@string_builder:from_strings(_pipe@4), - _pipe@6 = gleam@string_builder:prepend(_pipe@5, <<" [ "/utf8>>), - gleam@string_builder:append(_pipe@6, <<" ]"/utf8>>) - end, - _pipe@7 = [App_name, wrap_with_space(Cmd_name), <<"[ ARGS ]"/utf8>>], - _pipe@8 = gleam@string_builder:from_strings(_pipe@7), - _pipe@9 = gleam@string_builder:append_builder(_pipe@8, Flag_sb), - _pipe@12 = gleam@string_builder:prepend( - _pipe@9, - <<(begin - _pipe@10 = erlang:element(2, Config), - _pipe@11 = gleam@option:map( - _pipe@10, - fun(Styling) -> - heading_style( - <<"USAGE:"/utf8>>, - erlang:element(2, Styling) - ) - end - ), - gleam@option:unwrap(_pipe@11, <<"USAGE:"/utf8>>) - end)/binary, - "\n\t"/utf8>> - ), - gleam@string_builder:to_string(_pipe@12). - --spec cmd_help( - list(binary()), - command_node(any()), - config(), - gleam@dict:dict(binary(), glint@flag:flag()) -) -> binary(). -cmd_help(Path, Cmd, Config, Global_flags) -> - Name = begin - _pipe = Path, - _pipe@1 = gleam@list:reverse(_pipe), - gleam@string:join(_pipe@1, <<" "/utf8>>) - end, - Flags = begin - _pipe@2 = gleam@option:map( - erlang:element(2, Cmd), - fun(Contents) -> erlang:element(3, Contents) end - ), - _pipe@3 = gleam@option:lazy_unwrap(_pipe@2, fun gleam@map:new/0), - gleam@map:merge(Global_flags, _pipe@3) - end, - Flags_help_body = <<<<(begin - _pipe@4 = erlang:element(2, Config), - _pipe@5 = gleam@option:map( - _pipe@4, - fun(P) -> - heading_style(<<"FLAGS:"/utf8>>, erlang:element(3, P)) - end - ), - gleam@option:unwrap(_pipe@5, <<"FLAGS:"/utf8>>) - end)/binary, - "\n\t"/utf8>>/binary, - (gleam@string:join( - gleam@list:sort( - [<<"--help\t\t\tPrint help information"/utf8>> | - glint@flag:flags_help(Flags)], - fun gleam@string:compare/2 - ), - <<"\n\t"/utf8>> - ))/binary>>, - Usage = usage_help(Name, Flags, Config), - Description = begin - _pipe@6 = erlang:element(2, Cmd), - _pipe@7 = gleam@option:map( - _pipe@6, - fun(Contents@1) -> erlang:element(4, Contents@1) end - ), - gleam@option:unwrap(_pipe@7, <<""/utf8>>) - end, - Header_items = begin - _pipe@8 = [Name, Description], - _pipe@9 = gleam@list:filter(_pipe@8, fun is_not_empty/1), - gleam@string:join(_pipe@9, <<"\n"/utf8>>) - end, - Subcommands = case subcommands_help(erlang:element(3, Cmd)) of - <<""/utf8>> -> - <<""/utf8>>; - - Subcommands_help_body -> - <<<<(begin - _pipe@10 = erlang:element(2, Config), - _pipe@11 = gleam@option:map( - _pipe@10, - fun(P@1) -> - heading_style( - <<"SUBCOMMANDS:"/utf8>>, - erlang:element(4, P@1) - ) - end - ), - gleam@option:unwrap(_pipe@11, <<"SUBCOMMANDS:"/utf8>>) - end)/binary, - "\n\t"/utf8>>/binary, - Subcommands_help_body/binary>> - end, - _pipe@12 = [Header_items, Usage, Flags_help_body, Subcommands], - _pipe@13 = gleam@list:filter(_pipe@12, fun is_not_empty/1), - gleam@string:join(_pipe@13, <<"\n\n"/utf8>>). - --spec do_execute( - command_node(JIM), - config(), - gleam@dict:dict(binary(), glint@flag:flag()), - list(binary()), - list(binary()), - boolean(), - list(binary()) -) -> {ok, out(JIM)} | {error, snag:snag()}. -do_execute(Cmd, Config, Global_flags, Args, Flags, Help, Command_path) -> - case Args of - [] when Help -> - _pipe = Command_path, - _pipe@1 = cmd_help(_pipe, Cmd, Config, Global_flags), - _pipe@2 = {help, _pipe@1}, - {ok, _pipe@2}; - - [] -> - execute_root(Cmd, Global_flags, [], Flags); - - [Arg | Rest] -> - case gleam@map:get(erlang:element(3, Cmd), Arg) of - {ok, Cmd@1} -> - do_execute( - Cmd@1, - Config, - Global_flags, - Rest, - Flags, - Help, - [Arg | Command_path] - ); - - _ when Help -> - _pipe@3 = Command_path, - _pipe@4 = cmd_help(_pipe@3, Cmd, Config, Global_flags), - _pipe@5 = {help, _pipe@4}, - {ok, _pipe@5}; - - _ -> - execute_root(Cmd, Global_flags, Args, Flags) - end - end. - --spec execute(glint(JII), list(binary())) -> {ok, out(JII)} | - {error, snag:snag()}. -execute(Glint, Args) -> - Help_flag = help_flag(), - {Help, Args@2} = case gleam@list:pop(Args, fun(S) -> S =:= Help_flag end) of - {ok, {_, Args@1}} -> - {true, Args@1}; - - _ -> - {false, Args} - end, - {Flags, Args@3} = gleam@list:partition( - Args@2, - fun(_capture) -> gleam@string:starts_with(_capture, <<"--"/utf8>>) end - ), - do_execute( - erlang:element(3, Glint), - erlang:element(2, Glint), - erlang:element(4, Glint), - Args@3, - Flags, - Help, - [] - ). - --spec run_and_handle(glint(JJA), list(binary()), fun((JJA) -> any())) -> nil. -run_and_handle(Glint, Args, Handle) -> - case execute(Glint, Args) of - {error, Err} -> - _pipe = Err, - _pipe@1 = snag:pretty_print(_pipe), - gleam@io:println(_pipe@1); - - {ok, {help, Help}} -> - gleam@io:println(Help); - - {ok, {out, Out}} -> - Handle(Out), - nil - end. - --spec run(glint(any()), list(binary())) -> nil. -run(Glint, Args) -> - run_and_handle(Glint, Args, gleam@function:constant(nil)). - --spec add_command_from_stub(glint(JJN), stub(JJN)) -> glint(JJN). -add_command_from_stub(Glint, Stub) -> - add( - Glint, - erlang:element(2, Stub), - begin - _pipe = command(erlang:element(3, Stub)), - _pipe@1 = flags(_pipe, erlang:element(4, Stub)), - description(_pipe@1, erlang:element(5, Stub)) - end - ). diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.cache b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.cache deleted file mode 100644 index 90aed37..0000000 Binary files a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.cache_meta b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.cache_meta deleted file mode 100644 index be367e3..0000000 Binary files a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.erl b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.erl deleted file mode 100644 index 634b37b..0000000 --- a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag.erl +++ /dev/null @@ -1,523 +0,0 @@ --module(glint@flag). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([string/0, string_list/0, build/1, constraint/2, description/2, default/2, build_map/1, int/0, int_list/0, float/0, float_list/0, bool/0, flag_type_help/1, flags_help/1, update_flags/2, get_int_value/1, get_int/2, get_ints_value/1, get_ints/2, get_bool_value/1, get_bool/2, get_string_value/1, get_string/2, get_strings_value/1, get_strings/2, get_float_value/1, get_float/2, get_floats_value/1, get_floats/2]). --export_type([value/0, flag_builder/1, internal/1, flag/0]). - --type value() :: {b, internal(boolean())} | - {i, internal(integer())} | - {li, internal(list(integer()))} | - {f, internal(float())} | - {lf, internal(list(float()))} | - {s, internal(binary())} | - {ls, internal(list(binary()))}. - --opaque flag_builder(IRX) :: {flag_builder, - binary(), - fun((binary()) -> {ok, IRX} | {error, snag:snag()}), - fun((internal(IRX)) -> value()), - gleam@option:option(IRX)}. - --opaque internal(IRY) :: {internal, - gleam@option:option(IRY), - fun((binary()) -> {ok, IRY} | {error, snag:snag()})}. - --type flag() :: {flag, value(), binary()}. - --spec new( - fun((internal(ISP)) -> value()), - fun((binary()) -> {ok, ISP} | {error, snag:snag()}) -) -> flag_builder(ISP). -new(Valuer, P) -> - {flag_builder, <<""/utf8>>, P, Valuer, none}. - --spec string() -> flag_builder(binary()). -string() -> - new(fun(Field@0) -> {s, Field@0} end, fun(S) -> {ok, S} end). - --spec string_list() -> flag_builder(list(binary())). -string_list() -> - new(fun(Field@0) -> {ls, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<","/utf8>>), - {ok, _pipe@1} end). - --spec build(flag_builder(any())) -> flag(). -build(Fb) -> - {flag, - (erlang:element(4, Fb))( - {internal, erlang:element(5, Fb), erlang:element(3, Fb)} - ), - erlang:element(2, Fb)}. - --spec attempt( - {ok, ITG} | {error, ITH}, - fun((ITG) -> {ok, any()} | {error, ITH}) -) -> {ok, ITG} | {error, ITH}. -attempt(Val, F) -> - gleam@result:'try'(Val, fun(A) -> gleam@result:replace(F(A), A) end). - --spec wrap_with_constraint( - fun((binary()) -> {ok, ITA} | {error, snag:snag()}), - fun((ITA) -> {ok, nil} | {error, snag:snag()}) -) -> fun((binary()) -> {ok, ITA} | {error, snag:snag()}). -wrap_with_constraint(P, Constraint) -> - fun(Input) -> attempt(P(Input), Constraint) end. - --spec constraint( - flag_builder(ISW), - fun((ISW) -> {ok, nil} | {error, snag:snag()}) -) -> flag_builder(ISW). -constraint(Builder, Constraint) -> - erlang:setelement( - 3, - Builder, - wrap_with_constraint(erlang:element(3, Builder), Constraint) - ). - --spec description(flag_builder(ITP), binary()) -> flag_builder(ITP). -description(Builder, Description) -> - erlang:setelement(2, Builder, Description). - --spec default(flag_builder(ITS), ITS) -> flag_builder(ITS). -default(Builder, Default) -> - erlang:setelement(5, Builder, {some, Default}). - --spec build_map(list({binary(), flag()})) -> gleam@dict:dict(binary(), flag()). -build_map(Flags) -> - gleam@map:from_list(Flags). - --spec access_type_error(binary()) -> {ok, any()} | {error, snag:snag()}. -access_type_error(Flag_type) -> - snag:error(<<"cannot access flag as "/utf8, Flag_type/binary>>). - --spec flag_not_provided_error() -> {ok, any()} | {error, snag:snag()}. -flag_not_provided_error() -> - snag:error(<<"no value provided"/utf8>>). - --spec construct_value(binary(), internal(IUC), fun((internal(IUC)) -> value())) -> {ok, - value()} | - {error, snag:snag()}. -construct_value(Input, Internal, Constructor) -> - gleam@result:map( - (erlang:element(3, Internal))(Input), - fun(Val) -> Constructor(erlang:setelement(2, Internal, {some, Val})) end - ). - --spec compute_flag(binary(), value()) -> {ok, value()} | {error, snag:snag()}. -compute_flag(Input, Current) -> - _pipe = Input, - _pipe@1 = case Current of - {i, Internal} -> - fun(_capture) -> - construct_value( - _capture, - Internal, - fun(Field@0) -> {i, Field@0} end - ) - end; - - {li, Internal@1} -> - fun(_capture@1) -> - construct_value( - _capture@1, - Internal@1, - fun(Field@0) -> {li, Field@0} end - ) - end; - - {f, Internal@2} -> - fun(_capture@2) -> - construct_value( - _capture@2, - Internal@2, - fun(Field@0) -> {f, Field@0} end - ) - end; - - {lf, Internal@3} -> - fun(_capture@3) -> - construct_value( - _capture@3, - Internal@3, - fun(Field@0) -> {lf, Field@0} end - ) - end; - - {s, Internal@4} -> - fun(_capture@4) -> - construct_value( - _capture@4, - Internal@4, - fun(Field@0) -> {s, Field@0} end - ) - end; - - {ls, Internal@5} -> - fun(_capture@5) -> - construct_value( - _capture@5, - Internal@5, - fun(Field@0) -> {ls, Field@0} end - ) - end; - - {b, Internal@6} -> - fun(_capture@6) -> - construct_value( - _capture@6, - Internal@6, - fun(Field@0) -> {b, Field@0} end - ) - end - end(_pipe), - snag:context(_pipe@1, <<"failed to compute value for flag"/utf8>>). - --spec layer_invalid_flag(snag:snag(), binary()) -> snag:snag(). -layer_invalid_flag(Err, Flag) -> - snag:layer(Err, <<<<"invalid flag '"/utf8, Flag/binary>>/binary, "'"/utf8>>). - --spec no_value_flag_err(binary()) -> snag:snag(). -no_value_flag_err(Flag_input) -> - _pipe = (<<<<"flag '"/utf8, Flag_input/binary>>/binary, - "' has no assigned value"/utf8>>), - _pipe@1 = snag:new(_pipe), - layer_invalid_flag(_pipe@1, Flag_input). - --spec undefined_flag_err(binary()) -> snag:snag(). -undefined_flag_err(Key) -> - _pipe = <<"flag provided but not defined"/utf8>>, - _pipe@1 = snag:new(_pipe), - layer_invalid_flag(_pipe@1, Key). - --spec cannot_parse(binary(), binary()) -> snag:snag(). -cannot_parse(Value, Kind) -> - _pipe = (<<<<<<"cannot parse value '"/utf8, Value/binary>>/binary, - "' as "/utf8>>/binary, - Kind/binary>>), - snag:new(_pipe). - --spec int() -> flag_builder(integer()). -int() -> - new(fun(Field@0) -> {i, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@int:parse(_pipe), - gleam@result:replace_error( - _pipe@1, - cannot_parse(Input, <<"int"/utf8>>) - ) end). - --spec int_list() -> flag_builder(list(integer())). -int_list() -> - new(fun(Field@0) -> {li, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<","/utf8>>), - _pipe@2 = gleam@list:try_map(_pipe@1, fun gleam@int:parse/1), - gleam@result:replace_error( - _pipe@2, - cannot_parse(Input, <<"int list"/utf8>>) - ) end). - --spec float() -> flag_builder(float()). -float() -> - new(fun(Field@0) -> {f, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@float:parse(_pipe), - gleam@result:replace_error( - _pipe@1, - cannot_parse(Input, <<"float"/utf8>>) - ) end). - --spec float_list() -> flag_builder(list(float())). -float_list() -> - new(fun(Field@0) -> {lf, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<","/utf8>>), - _pipe@2 = gleam@list:try_map(_pipe@1, fun gleam@float:parse/1), - gleam@result:replace_error( - _pipe@2, - cannot_parse(Input, <<"float list"/utf8>>) - ) end). - --spec bool() -> flag_builder(boolean()). -bool() -> - new( - fun(Field@0) -> {b, Field@0} end, - fun(Input) -> case gleam@string:lowercase(Input) of - <<"true"/utf8>> -> - {ok, true}; - - <<"t"/utf8>> -> - {ok, true}; - - <<"false"/utf8>> -> - {ok, false}; - - <<"f"/utf8>> -> - {ok, false}; - - _ -> - {error, cannot_parse(Input, <<"bool"/utf8>>)} - end end - ). - --spec flag_type_help({binary(), flag()}) -> binary(). -flag_type_help(Flag) -> - {Name, Contents} = Flag, - Kind = case erlang:element(2, Contents) of - {i, _} -> - <<"INT"/utf8>>; - - {b, _} -> - <<"BOOL"/utf8>>; - - {f, _} -> - <<"FLOAT"/utf8>>; - - {lf, _} -> - <<"FLOAT_LIST"/utf8>>; - - {li, _} -> - <<"INT_LIST"/utf8>>; - - {ls, _} -> - <<"STRING_LIST"/utf8>>; - - {s, _} -> - <<"STRING"/utf8>> - end, - <<<<<<<<<<"--"/utf8, Name/binary>>/binary, "="/utf8>>/binary, "<"/utf8>>/binary, - Kind/binary>>/binary, - ">"/utf8>>. - --spec flag_help({binary(), flag()}) -> binary(). -flag_help(Flag) -> - <<<<(flag_type_help(Flag))/binary, "\t\t"/utf8>>/binary, - (erlang:element(3, (erlang:element(2, Flag))))/binary>>. - --spec flags_help(gleam@dict:dict(binary(), flag())) -> list(binary()). -flags_help(Flags) -> - _pipe = Flags, - _pipe@1 = gleam@map:to_list(_pipe), - gleam@list:map(_pipe@1, fun flag_help/1). - --spec access(gleam@dict:dict(binary(), flag()), binary()) -> {ok, flag()} | - {error, snag:snag()}. -access(Flags, Name) -> - _pipe = gleam@map:get(Flags, Name), - gleam@result:replace_error(_pipe, undefined_flag_err(Name)). - --spec update_flag_value(gleam@dict:dict(binary(), flag()), {binary(), binary()}) -> {ok, - gleam@dict:dict(binary(), flag())} | - {error, snag:snag()}. -update_flag_value(Flags, Data) -> - {Key, Input} = Data, - gleam@result:'try'( - access(Flags, Key), - fun(Contents) -> - gleam@result:map( - begin - _pipe = compute_flag(Input, erlang:element(2, Contents)), - gleam@result:map_error( - _pipe, - fun(_capture) -> layer_invalid_flag(_capture, Key) end - ) - end, - fun(Value) -> - gleam@map:insert( - Flags, - Key, - erlang:setelement(2, Contents, Value) - ) - end - ) - end - ). - --spec attempt_toggle_flag(gleam@dict:dict(binary(), flag()), binary()) -> {ok, - gleam@dict:dict(binary(), flag())} | - {error, snag:snag()}. -attempt_toggle_flag(Flags, Key) -> - gleam@result:'try'( - access(Flags, Key), - fun(Contents) -> case erlang:element(2, Contents) of - {b, {internal, none, _} = Internal} -> - _pipe = erlang:setelement(2, Internal, {some, true}), - _pipe@1 = {b, _pipe}, - _pipe@2 = (fun(Val) -> - erlang:setelement(2, Contents, Val) - end)(_pipe@1), - _pipe@3 = gleam@map:insert(Flags, Key, _pipe@2), - {ok, _pipe@3}; - - {b, {internal, {some, Val@1}, _} = Internal@1} -> - _pipe@4 = erlang:setelement( - 2, - Internal@1, - {some, not Val@1} - ), - _pipe@5 = {b, _pipe@4}, - _pipe@6 = (fun(Val@2) -> - erlang:setelement(2, Contents, Val@2) - end)(_pipe@5), - _pipe@7 = gleam@map:insert(Flags, Key, _pipe@6), - {ok, _pipe@7}; - - _ -> - {error, no_value_flag_err(Key)} - end end - ). - --spec update_flags(gleam@dict:dict(binary(), flag()), binary()) -> {ok, - gleam@dict:dict(binary(), flag())} | - {error, snag:snag()}. -update_flags(Flags, Flag_input) -> - Flag_input@1 = gleam@string:drop_left( - Flag_input, - gleam@string:length(<<"--"/utf8>>) - ), - case gleam@string:split_once(Flag_input@1, <<"="/utf8>>) of - {ok, Data} -> - update_flag_value(Flags, Data); - - {error, _} -> - attempt_toggle_flag(Flags, Flag_input@1) - end. - --spec get_value( - gleam@dict:dict(binary(), flag()), - binary(), - fun((flag()) -> {ok, IUK} | {error, snag:snag()}) -) -> {ok, IUK} | {error, snag:snag()}. -get_value(Flags, Key, Kind) -> - _pipe = access(Flags, Key), - _pipe@1 = gleam@result:'try'(_pipe, Kind), - snag:context( - _pipe@1, - <<<<"failed to retrieve value for flag '"/utf8, Key/binary>>/binary, - "'"/utf8>> - ). - --spec get_int_value(flag()) -> {ok, integer()} | {error, snag:snag()}. -get_int_value(Flag) -> - case erlang:element(2, Flag) of - {i, {internal, {some, Val}, _}} -> - {ok, Val}; - - {i, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"int"/utf8>>) - end. - --spec get_int(gleam@dict:dict(binary(), flag()), binary()) -> {ok, integer()} | - {error, snag:snag()}. -get_int(Flags, Name) -> - get_value(Flags, Name, fun get_int_value/1). - --spec get_ints_value(flag()) -> {ok, list(integer())} | {error, snag:snag()}. -get_ints_value(Flag) -> - case erlang:element(2, Flag) of - {li, {internal, {some, Val}, _}} -> - {ok, Val}; - - {li, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"int list"/utf8>>) - end. - --spec get_ints(gleam@dict:dict(binary(), flag()), binary()) -> {ok, - list(integer())} | - {error, snag:snag()}. -get_ints(Flags, Name) -> - get_value(Flags, Name, fun get_ints_value/1). - --spec get_bool_value(flag()) -> {ok, boolean()} | {error, snag:snag()}. -get_bool_value(Flag) -> - case erlang:element(2, Flag) of - {b, {internal, {some, Val}, _}} -> - {ok, Val}; - - {b, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"bool"/utf8>>) - end. - --spec get_bool(gleam@dict:dict(binary(), flag()), binary()) -> {ok, boolean()} | - {error, snag:snag()}. -get_bool(Flags, Name) -> - get_value(Flags, Name, fun get_bool_value/1). - --spec get_string_value(flag()) -> {ok, binary()} | {error, snag:snag()}. -get_string_value(Flag) -> - case erlang:element(2, Flag) of - {s, {internal, {some, Val}, _}} -> - {ok, Val}; - - {s, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"string"/utf8>>) - end. - --spec get_string(gleam@dict:dict(binary(), flag()), binary()) -> {ok, binary()} | - {error, snag:snag()}. -get_string(Flags, Name) -> - get_value(Flags, Name, fun get_string_value/1). - --spec get_strings_value(flag()) -> {ok, list(binary())} | {error, snag:snag()}. -get_strings_value(Flag) -> - case erlang:element(2, Flag) of - {ls, {internal, {some, Val}, _}} -> - {ok, Val}; - - {ls, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"string list"/utf8>>) - end. - --spec get_strings(gleam@dict:dict(binary(), flag()), binary()) -> {ok, - list(binary())} | - {error, snag:snag()}. -get_strings(Flags, Name) -> - get_value(Flags, Name, fun get_strings_value/1). - --spec get_float_value(flag()) -> {ok, float()} | {error, snag:snag()}. -get_float_value(Flag) -> - case erlang:element(2, Flag) of - {f, {internal, {some, Val}, _}} -> - {ok, Val}; - - {f, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"float"/utf8>>) - end. - --spec get_float(gleam@dict:dict(binary(), flag()), binary()) -> {ok, float()} | - {error, snag:snag()}. -get_float(Flags, Name) -> - get_value(Flags, Name, fun get_float_value/1). - --spec get_floats_value(flag()) -> {ok, list(float())} | {error, snag:snag()}. -get_floats_value(Flag) -> - case erlang:element(2, Flag) of - {lf, {internal, {some, Val}, _}} -> - {ok, Val}; - - {lf, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"float list"/utf8>>) - end. - --spec get_floats(gleam@dict:dict(binary(), flag()), binary()) -> {ok, - list(float())} | - {error, snag:snag()}. -get_floats(Flags, Name) -> - get_value(Flags, Name, fun get_floats_value/1). diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache deleted file mode 100644 index 6881dda..0000000 Binary files a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache_meta b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache_meta deleted file mode 100644 index 355567d..0000000 Binary files a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.erl b/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.erl deleted file mode 100644 index 52eb319..0000000 --- a/aoc2023/build/dev/erlang/glint/_gleam_artefacts/glint@flag@constraint.erl +++ /dev/null @@ -1,68 +0,0 @@ --module(glint@flag@constraint). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([one_of/1, none_of/1, each/1]). - --spec one_of(list(IQG)) -> fun((IQG) -> {ok, nil} | {error, snag:snag()}). -one_of(Allowed) -> - Allowed_set = gleam@set:from_list(Allowed), - fun(Val) -> case gleam@set:contains(Allowed_set, Val) of - true -> - {ok, nil}; - - false -> - snag:error( - <<<<<<"invalid value '"/utf8, - (gleam@string:inspect(Val))/binary>>/binary, - "', must be one of: ["/utf8>>/binary, - ((<<(begin - _pipe = Allowed, - _pipe@1 = gleam@list:map( - _pipe, - fun(A) -> - <<<<"'"/utf8, - (gleam@string:inspect(A))/binary>>/binary, - "'"/utf8>> - end - ), - gleam@string:join(_pipe@1, <<", "/utf8>>) - end)/binary, - "]"/utf8>>))/binary>> - ) - end end. - --spec none_of(list(IQJ)) -> fun((IQJ) -> {ok, nil} | {error, snag:snag()}). -none_of(Disallowed) -> - Disallowed_set = gleam@set:from_list(Disallowed), - fun(Val) -> case gleam@set:contains(Disallowed_set, Val) of - false -> - {ok, nil}; - - true -> - snag:error( - <<<<<<"invalid value '"/utf8, - (gleam@string:inspect(Val))/binary>>/binary, - "', must not be one of: ["/utf8>>/binary, - (((<<(begin - _pipe = Disallowed, - _pipe@1 = gleam@list:map( - _pipe, - fun(A) -> - <<<<"'"/utf8, - (gleam@string:inspect(A))/binary>>/binary, - "'"/utf8>> - end - ), - gleam@string:join(_pipe@1, <<", "/utf8>>) - end)/binary, - "]"/utf8>>)))/binary>> - ) - end end. - --spec each(fun((IQM) -> {ok, nil} | {error, snag:snag()})) -> fun((list(IQM)) -> {ok, - nil} | - {error, snag:snag()}). -each(Constraint) -> - fun(L) -> _pipe = L, - _pipe@1 = gleam@list:try_map(_pipe, Constraint), - gleam@result:replace(_pipe@1, nil) end. diff --git a/aoc2023/build/dev/erlang/glint/ebin/glint.app b/aoc2023/build/dev/erlang/glint/ebin/glint.app deleted file mode 100644 index 41fba79..0000000 --- a/aoc2023/build/dev/erlang/glint/ebin/glint.app +++ /dev/null @@ -1,10 +0,0 @@ -{application, glint, [ - {vsn, "0.13.0"}, - {applications, [gleam_community_ansi, - gleam_community_colour, - gleam_stdlib, - snag]}, - {description, "Gleam command line argument parsing with basic flag support."}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/glint/ebin/glint.beam b/aoc2023/build/dev/erlang/glint/ebin/glint.beam deleted file mode 100644 index 39b9ce7..0000000 Binary files a/aoc2023/build/dev/erlang/glint/ebin/glint.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/ebin/glint@flag.beam b/aoc2023/build/dev/erlang/glint/ebin/glint@flag.beam deleted file mode 100644 index 14b7dec..0000000 Binary files a/aoc2023/build/dev/erlang/glint/ebin/glint@flag.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/ebin/glint@flag@constraint.beam b/aoc2023/build/dev/erlang/glint/ebin/glint@flag@constraint.beam deleted file mode 100644 index 1d36d10..0000000 Binary files a/aoc2023/build/dev/erlang/glint/ebin/glint@flag@constraint.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/glint/include/glint@flag_Flag.hrl b/aoc2023/build/dev/erlang/glint/include/glint@flag_Flag.hrl deleted file mode 100644 index 645cb12..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint@flag_Flag.hrl +++ /dev/null @@ -1 +0,0 @@ --record(flag, {value :: glint@flag:value(), description :: binary()}). diff --git a/aoc2023/build/dev/erlang/glint/include/glint@flag_FlagBuilder.hrl b/aoc2023/build/dev/erlang/glint/include/glint@flag_FlagBuilder.hrl deleted file mode 100644 index b5e21a2..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint@flag_FlagBuilder.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(flag_builder, { - desc :: binary(), - parser :: fun((binary()) -> {ok, any()} | {error, snag:snag()}), - value :: fun((glint@flag:internal(any())) -> glint@flag:value()), - default :: gleam@option:option(any()) -}). diff --git a/aoc2023/build/dev/erlang/glint/include/glint@flag_Internal.hrl b/aoc2023/build/dev/erlang/glint/include/glint@flag_Internal.hrl deleted file mode 100644 index 281bbd0..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint@flag_Internal.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(internal, { - value :: gleam@option:option(any()), - parser :: fun((binary()) -> {ok, any()} | {error, snag:snag()}) -}). diff --git a/aoc2023/build/dev/erlang/glint/include/glint_Command.hrl b/aoc2023/build/dev/erlang/glint/include/glint_Command.hrl deleted file mode 100644 index 2761365..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint_Command.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(command, { - do :: fun((glint:command_input()) -> any()), - flags :: gleam@dict:dict(binary(), glint@flag:flag()), - description :: binary() -}). diff --git a/aoc2023/build/dev/erlang/glint/include/glint_CommandInput.hrl b/aoc2023/build/dev/erlang/glint/include/glint_CommandInput.hrl deleted file mode 100644 index e0e1a81..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint_CommandInput.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(command_input, { - args :: list(binary()), - flags :: gleam@dict:dict(binary(), glint@flag:flag()) -}). diff --git a/aoc2023/build/dev/erlang/glint/include/glint_Config.hrl b/aoc2023/build/dev/erlang/glint/include/glint_Config.hrl deleted file mode 100644 index 70cf645..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint_Config.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(config, { - pretty_help :: gleam@option:option(glint:pretty_help()), - name :: gleam@option:option(binary()) -}). diff --git a/aoc2023/build/dev/erlang/glint/include/glint_Glint.hrl b/aoc2023/build/dev/erlang/glint/include/glint_Glint.hrl deleted file mode 100644 index f14c34c..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint_Glint.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(glint, { - config :: glint:config(), - cmd :: glint:command_node(any()), - global_flags :: gleam@dict:dict(binary(), glint@flag:flag()) -}). diff --git a/aoc2023/build/dev/erlang/glint/include/glint_PrettyHelp.hrl b/aoc2023/build/dev/erlang/glint/include/glint_PrettyHelp.hrl deleted file mode 100644 index 79bd887..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint_PrettyHelp.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(pretty_help, { - usage :: gleam_community@colour:colour(), - flags :: gleam_community@colour:colour(), - subcommands :: gleam_community@colour:colour() -}). diff --git a/aoc2023/build/dev/erlang/glint/include/glint_Stub.hrl b/aoc2023/build/dev/erlang/glint/include/glint_Stub.hrl deleted file mode 100644 index 5aa5d83..0000000 --- a/aoc2023/build/dev/erlang/glint/include/glint_Stub.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(stub, { - path :: list(binary()), - run :: fun((glint:command_input()) -> any()), - flags :: list({binary(), glint@flag:flag()}), - description :: binary() -}). diff --git a/aoc2023/build/dev/erlang/pqueue/LICENSE b/aoc2023/build/dev/erlang/pqueue/LICENSE deleted file mode 100644 index 5697803..0000000 --- a/aoc2023/build/dev/erlang/pqueue/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2011-2023 Michael Truog - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/aoc2023/build/dev/erlang/pqueue/README.markdown b/aoc2023/build/dev/erlang/pqueue/README.markdown deleted file mode 100644 index 77aaf1c..0000000 --- a/aoc2023/build/dev/erlang/pqueue/README.markdown +++ /dev/null @@ -1,31 +0,0 @@ -Erlang Priority Queue Implementation -==================================== - -The priority queue implementations implement a subset of the stdlib Erlang queue interface as seen in the implementation used by both [Riak and RabbitMQ](https://github.com/basho/riak_core/blob/master/src/riak_core_priority_queue.erl). - -The implementations: - -* `priority_queue` (fastest for any priorities when only using a single priority at a time) -* `pqueue` (fastest for 41 priorities, -20 (high) to 20 (low), when using 2 or more priorities at the same time) -* `pqueue2` (slower heap implementation) -* `pqueue3` (faster than `pqueue2` and `priority_queue` when using 64 or more priorities at the same time) -* `pqueue4` (slightly slower than `pqueue` but fastest for allowing 257 priorities, -128 (high) to 128 (low), i.e., fastest when using 42 or more priorities at the same time) - -[The latest results are here](http://okeuday.livejournal.com/19539.html), with [the benchmark here](http://github.com/okeuday/erlbench). - -Author ------- - -Michael Truog (mjtruog at protonmail dot com) - -Thanks ------- - -* Jesper Louis andersen (PropEr integration and testing) -* Ulf Wiger (suggestions and insight) - -License -------- - -MIT License - diff --git a/aoc2023/build/dev/erlang/pqueue/_build/prod/lib/.rebar3/rebar_compiler_erl/source.dag b/aoc2023/build/dev/erlang/pqueue/_build/prod/lib/.rebar3/rebar_compiler_erl/source.dag deleted file mode 100644 index fe3f9f8..0000000 Binary files a/aoc2023/build/dev/erlang/pqueue/_build/prod/lib/.rebar3/rebar_compiler_erl/source.dag and /dev/null differ diff --git a/aoc2023/build/dev/erlang/pqueue/doc/edoc-info b/aoc2023/build/dev/erlang/pqueue/doc/edoc-info deleted file mode 100644 index 5e5a8d3..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/edoc-info +++ /dev/null @@ -1,3 +0,0 @@ -%% encoding: UTF-8 -{application,pqueue}. -{modules,[pqueue,pqueue2,pqueue3,pqueue4]}. diff --git a/aoc2023/build/dev/erlang/pqueue/doc/erlang.png b/aoc2023/build/dev/erlang/pqueue/doc/erlang.png deleted file mode 100644 index 987a618..0000000 Binary files a/aoc2023/build/dev/erlang/pqueue/doc/erlang.png and /dev/null differ diff --git a/aoc2023/build/dev/erlang/pqueue/doc/index.html b/aoc2023/build/dev/erlang/pqueue/doc/index.html deleted file mode 100644 index d55b5e6..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -The pqueue application - - - - - - -<h2>This page uses frames</h2> -<p>Your browser does not accept frames. -<br>You should go to the <a href="overview-summary.html">non-frame version</a> instead. -</p> - - - \ No newline at end of file diff --git a/aoc2023/build/dev/erlang/pqueue/doc/modules-frame.html b/aoc2023/build/dev/erlang/pqueue/doc/modules-frame.html deleted file mode 100644 index 5a87cc4..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/modules-frame.html +++ /dev/null @@ -1,15 +0,0 @@ - - - -The pqueue application - - - -

Modules

- - - - -
pqueue
pqueue2
pqueue3
pqueue4
- - \ No newline at end of file diff --git a/aoc2023/build/dev/erlang/pqueue/doc/overview-summary.html b/aoc2023/build/dev/erlang/pqueue/doc/overview-summary.html deleted file mode 100644 index e2f8906..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/overview-summary.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - -The pqueue application - - - - -

The pqueue application

- -
- -

Generated by EDoc

- - diff --git a/aoc2023/build/dev/erlang/pqueue/doc/pqueue.html b/aoc2023/build/dev/erlang/pqueue/doc/pqueue.html deleted file mode 100644 index 40b05ac..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/pqueue.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - -Module pqueue - - - - -
- -

Module pqueue

- -

Static Priority Queue.

- This priority queue implementation depends on a static number of priorities - (-20 (high) to 20 (low)) so that tuple access times can be exploited for - quick in/out priority queue operations. -

Copyright © 2011-2020 Michael Truog

- -

Version: 2.0.1 Nov 26 2020 14:55:34 - ------------------------------------------------------------------------

-

Authors: Michael Truog (mjtruog at protonmail dot com).

- -

Description

-

Static Priority Queue.

- This priority queue implementation depends on a static number of priorities - (-20 (high) to 20 (low)) so that tuple access times can be exploited for - quick in/out priority queue operations. This implementation was created to - avoid the slowness within the priority queue used by both RabbitMQ and Riak - (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -

Data Types

- -

pqueue()

-

pqueue() = {integer(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, queue:queue(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}} | {empty, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, queue:queue(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}}

- - -

Function Index

- - - - - - - - - - - - -
in/2 -

Append an item to the tail of the 0 priority queue.

- O(1).
in/3 -

Append an item to the tail of a specific priority queue.

- O(1).
is_empty/1 -

Check if the priority queue is empty.

- O(1).
is_queue/1 -

Check if the priority queue type is as expected.

- O(1).
join/2 -

Join two priority queues.

- O(N).
len/1 -

Determine the length of a priority queue.

- O(N).
new/0 -

Create a new priority queue.

- O(1).
out/1 -

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case.
out/2 -

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case.
pout/1 -

Take an item from the head of the priority queue.

- Includes the priority in the return value.
test/0 -

Regression test.

.
to_list/1 -

Convert the priority queue to a list.

- O(N).
- -

Function Details

- -

in/2

-
-

in(X::term(), Q::pqueue()) -> pqueue()

-

-

Append an item to the tail of the 0 priority queue.

- O(1)

- -

in/3

-
-

in(X::term(), P::integer(), Q::pqueue()) -> pqueue()

-

-

Append an item to the tail of a specific priority queue.

- O(1)

- -

is_empty/1

-
-

is_empty(X1::pqueue()) -> true | false

-

-

Check if the priority queue is empty.

- O(1)

- -

is_queue/1

-
-

is_queue(X1::pqueue()) -> true | false

-

-

Check if the priority queue type is as expected.

- O(1)

- -

join/2

-
-

join(X1::pqueue(), X2::pqueue()) -> pqueue()

-

-

Join two priority queues.

- O(N)

- -

len/1

-
-

len(X1::pqueue()) -> non_neg_integer()

-

-

Determine the length of a priority queue.

- O(N)

- -

new/0

-
-

new() -> pqueue()

-

-

Create a new priority queue.

- O(1)

- -

out/1

-
-

out(Q::pqueue()) -> {{value, term()}, pqueue()} | {empty, pqueue()}

-

-

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case

- -

out/2

-
-

out(P::integer(), Q::pqueue()) -> {{value, term()}, pqueue()} | {empty, pqueue()}

-

-

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case

- -

pout/1

-
-

pout(Q::pqueue()) -> {{value, term(), integer()}, pqueue()} | {empty, pqueue()}

-

-

Take an item from the head of the priority queue.

- Includes the priority in the return value. - O(1) amortized, O(N) worst case

- -

test/0

-
-

test() -> any()

-

-

Regression test.

-

- -

to_list/1

-
-

to_list(X1::pqueue()) -> [term()]

-

-

Convert the priority queue to a list.

- O(N)

-
- - -

Generated by EDoc

- - diff --git a/aoc2023/build/dev/erlang/pqueue/doc/pqueue2.html b/aoc2023/build/dev/erlang/pqueue/doc/pqueue2.html deleted file mode 100644 index 2942b84..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/pqueue2.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - -Module pqueue2 - - - - -
- -

Module pqueue2

- -

Skew Heap Priority Queue.

- Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority - queue implementation. -

Copyright © 2011-2020 Michael Truog

- -

Version: 2.0.1 Nov 26 2020 14:55:32 - ------------------------------------------------------------------------

-

Authors: Michael Truog (mjtruog at protonmail dot com).

- -

Description

-

Skew Heap Priority Queue.

- Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority - queue implementation. Unfortunately, testing has shown this solution to - be more than 2 times slower than pqueue. -

Data Types

- -

pqueue2()

-

pqueue2() = empty | {integer(), pqueue2(), pqueue2(), element, term()} | {integer(), pqueue2(), pqueue2(), queue, queue:queue()}

- - -

Function Index

- - - - - - - - - - - -
in/2 -

Append an item to the tail of the 0 priority queue.

.
in/3 -

Append an item to the tail of a specific priority queue.

.
is_empty/1 -

Check if the priority queue is empty.

.
is_queue/1 -

Check if the priority queue type is as expected.

.
len/1 -

Determine the length of a priority queue.

.
new/0 -

Create a new priority queue.

.
out/1 -

Take an item from the head of the priority queue.

.
out/2 -

Take an item of a specific priority from the head of the queue.

.
pout/1 -

Take an item from the head of the priority queue.

- Includes the priority in the return value.
test/0 -

Regression test.

.
to_list/1 -

Convert the priority queue to a list.

.
- -

Function Details

- -

in/2

-
-

in(Value::term(), H::pqueue2()) -> pqueue2()

-

-

Append an item to the tail of the 0 priority queue.

-

- -

in/3

-
-

in(Value::term(), P::integer(), H::pqueue2()) -> pqueue2()

-

-

Append an item to the tail of a specific priority queue.

-

- -

is_empty/1

-
-

is_empty(X1::pqueue2()) -> true | false

-

-

Check if the priority queue is empty.

-

- -

is_queue/1

-
-

is_queue(X1::pqueue2()) -> true | false

-

-

Check if the priority queue type is as expected.

-

- -

len/1

-
-

len(H::pqueue2()) -> non_neg_integer()

-

-

Determine the length of a priority queue.

-

- -

new/0

-
-

new() -> pqueue2()

-

-

Create a new priority queue.

-

- -

out/1

-
-

out(X1::pqueue2()) -> {{value, term()}, pqueue2()} | {empty, pqueue2()}

-

-

Take an item from the head of the priority queue.

-

- -

out/2

-
-

out(P::integer(), H::pqueue2()) -> {{value, term()}, pqueue2()} | {empty, pqueue2()}

-

-

Take an item of a specific priority from the head of the queue.

-

- -

pout/1

-
-

pout(X1::pqueue2()) -> {{value, term(), integer()}, pqueue2()} | {empty, pqueue2()}

-

-

Take an item from the head of the priority queue.

- Includes the priority in the return value.

- -

test/0

-
-

test() -> any()

-

-

Regression test.

-

- -

to_list/1

-
-

to_list(H::pqueue2()) -> [term()]

-

-

Convert the priority queue to a list.

-

-
- - -

Generated by EDoc

- - diff --git a/aoc2023/build/dev/erlang/pqueue/doc/pqueue3.html b/aoc2023/build/dev/erlang/pqueue/doc/pqueue3.html deleted file mode 100644 index 35f1a7b..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/pqueue3.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Module pqueue3 - - - - -
- -

Module pqueue3

- -

A Large Priority Queue.

- This priority queue implementation depends on layered tuples, so that tuple - access times can be exploited for quick in/out priority queue operations - when using 64 or more total priorities. -

Copyright © 2011-2020 Michael Truog

- -

Version: 2.0.1 Nov 26 2020 14:55:32 - ------------------------------------------------------------------------

-

Authors: Michael Truog (mjtruog at protonmail dot com).

- -

Description

-

A Large Priority Queue.

- This priority queue implementation depends on layered tuples, so that tuple - access times can be exploited for quick in/out priority queue operations - when using 64 or more total priorities. This implementation was created - to avoid the slowness within the priority queue used by - both RabbitMQ and Riak - (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -

Data Types

- -

pqueue3()

-

pqueue3() = {integer(), integer(), empty | integer(), tuple()}

- - -

pqueue3_empty()

-

pqueue3_empty() = {integer(), integer(), empty, tuple()}

- - -

Function Index

- - - - - - - - - - - -
in/2 -

Append an item to the tail of the 0 priority queue.

- O(1).
in/3 -

Append an item to the tail of a specific priority queue.

- O(1).
is_empty/1 -

Check if the priority queue is empty.

- O(1).
is_queue/1 -

Check if the priority queue type is as expected.

- O(1).
len/1 -

Determine the length of a priority queue.

- O(N).
new/0 -

Create a new priority queue.

- O(1).
new/1 -

Create a new priority queue with customization options.

- O(1).
out/1 -

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case.
out/2 -

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case.
pout/1 -

Take an item from the head of the priority queue.

- Includes the priority in the return value.
to_list/1 -

Convert the priority queue to a list.

- O(N).
- -

Function Details

- -

in/2

-
-

in(Value::term(), Q::pqueue3()) -> pqueue3()

-

-

Append an item to the tail of the 0 priority queue.

- O(1)

- -

in/3

-
-

in(Value::term(), P::integer(), X3::pqueue3()) -> pqueue3()

-

-

Append an item to the tail of a specific priority queue.

- O(1)

- -

is_empty/1

-
-

is_empty(Q::pqueue3()) -> true | false

-

-

Check if the priority queue is empty.

- O(1)

- -

is_queue/1

-
-

is_queue(X1::pqueue3()) -> true | false

-

-

Check if the priority queue type is as expected.

- O(1)

- -

len/1

-
-

len(Q::pqueue3()) -> non_neg_integer()

-

-

Determine the length of a priority queue.

- O(N)

- -

new/0

-
-

new() -> pqueue3_empty()

-

-

Create a new priority queue.

- O(1)

- -

new/1

-
-

new(Options::[{atom(), term()}]) -> pqueue3()

-

-

Create a new priority queue with customization options.

- O(1)

- -

out/1

-
-

out(Q::pqueue3()) -> {{value, term()}, pqueue3()} | {empty, pqueue3()}

-

-

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case

- -

out/2

-
-

out(P::integer(), Q::pqueue3()) -> {{value, term()}, pqueue3()} | {empty, pqueue3()}

-

-

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case

- -

pout/1

-
-

pout(Q::pqueue3()) -> {{value, term(), integer()}, pqueue3()} | {empty, pqueue3()}

-

-

Take an item from the head of the priority queue.

- Includes the priority in the return value. - O(1) amortized, O(N) worst case

- -

to_list/1

-
-

to_list(Q::pqueue3()) -> [term()]

-

-

Convert the priority queue to a list.

- O(N)

-
- - -

Generated by EDoc

- - diff --git a/aoc2023/build/dev/erlang/pqueue/doc/pqueue4.html b/aoc2023/build/dev/erlang/pqueue/doc/pqueue4.html deleted file mode 100644 index edcdb6e..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/pqueue4.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -Module pqueue4 - - - - -
- -

Module pqueue4

- -

Static Priority Queue.

- This priority queue implementation depends on a static number of priorities - (-128 (high) to 128 (low)) so that tuple access times can be exploited for - quick in/out priority queue operations. -

Copyright © 2011-2020 Michael Truog

- -

Version: 2.0.1 Nov 26 2020 14:55:34 - ------------------------------------------------------------------------

-

Authors: Michael Truog (mjtruog at protonmail dot com).

- -

Description

-

Static Priority Queue.

- This priority queue implementation depends on a static number of priorities - (-128 (high) to 128 (low)) so that tuple access times can be exploited for - quick in/out priority queue operations. This implementation was created to - avoid the slowness within the priority queue used by both RabbitMQ and Riak - (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -

Data Types

- -

pqueue4()

-

pqueue4() = pqueue4(any())

- - -

pqueue4()

-

pqueue4(T) = {priority() | empty, non_neg_integer(), {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, queue:queue(T), {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}}

- - -

priority()

-

priority() = -128..128

- - -

Function Index

- - - - - - - - - - - - - - - -
filter/2 -

Filter the priority queue.

- O(N).
filter/3 -

Filter a specific priority within the priority queue.

- O(N).
in/2 -

Append an item to the tail of the 0 priority queue.

- O(1).
in/3 -

Append an item to the tail of a specific priority queue.

- O(1).
is_empty/1 -

Check if the priority queue is empty.

- O(1).
is_queue/1 -

Check if the priority queue type is as expected.

- O(1).
len/1 -

Determine the length of a priority queue.

- O(1).
new/0 -

Create a new priority queue.

- O(1).
out/1 -

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case.
out/2 -

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case.
pout/1 -

Take an item from the head of the priority queue.

- Includes the priority in the return value.
remove_unique/2 -

Remove a unique value from the priority queue with a binary predicate.

- O(N) but smaller constant than filter/2.
remove_unique/3 -

Remove a unique value in a specific priority within the priority queue with a binary predicate.

- O(N) but smaller constant than filter/3.
to_list/1 -

Convert the priority queue to a list.

- O(N).
to_plist/1 -

Convert the priority queue to a list with priorities.

- O(N).
- -

Function Details

- -

filter/2

-
-

filter(F::fun((any()) -> boolean()), Q::pqueue4()) -> pqueue4()

-

-

Filter the priority queue.

- O(N)

- -

filter/3

-
-

filter(F::fun((any()) -> boolean()), P::integer(), Q::pqueue4()) -> pqueue4()

-

-

Filter a specific priority within the priority queue.

- O(N)

- -

in/2

-
-

in(X::any(), Q::pqueue4()) -> pqueue4()

-

-

Append an item to the tail of the 0 priority queue.

- O(1)

- -

in/3

-
-

in(X::any(), P::integer(), Q::pqueue4()) -> pqueue4()

-

-

Append an item to the tail of a specific priority queue.

- O(1)

- -

is_empty/1

-
-

is_empty(X1::pqueue4()) -> true | false

-

-

Check if the priority queue is empty.

- O(1)

- -

is_queue/1

-
-

is_queue(X1::pqueue4()) -> true | false

-

-

Check if the priority queue type is as expected.

- O(1)

- -

len/1

-
-

len(X1::pqueue4()) -> non_neg_integer()

-

-

Determine the length of a priority queue.

- O(1)

- -

new/0

-
-

new() -> pqueue4()

-

-

Create a new priority queue.

- O(1)

- -

out/1

-
-

out(Q::pqueue4()) -> {{value, any()}, pqueue4()} | {empty, pqueue4()}

-

-

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case

- -

out/2

-
-

out(P::integer(), Q::pqueue4()) -> {{value, any()}, pqueue4()} | {empty, pqueue4()}

-

-

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case

- -

pout/1

-
-

pout(Q::pqueue4()) -> {{value, any(), integer()}, pqueue4()} | {empty, pqueue4()}

-

-

Take an item from the head of the priority queue.

- Includes the priority in the return value. - O(1) amortized, O(N) worst case

- -

remove_unique/2

-
-

remove_unique(F::fun((any()) -> boolean()), Q::pqueue4()) -> {boolean(), pqueue4()}

-

-

Remove a unique value from the priority queue with a binary predicate.

- O(N) but smaller constant than filter/2

- -

remove_unique/3

-
-

remove_unique(F::fun((any()) -> boolean()), P::integer(), Q::pqueue4()) -> {boolean(), pqueue4()}

-

-

Remove a unique value in a specific priority within the priority queue with a binary predicate.

- O(N) but smaller constant than filter/3

- -

to_list/1

-
-

to_list(Q::pqueue4()) -> list()

-

-

Convert the priority queue to a list.

- O(N)

- -

to_plist/1

-
-

to_plist(Q::pqueue4()) -> [{priority(), list()}]

-

-

Convert the priority queue to a list with priorities.

- O(N)

-
- - -

Generated by EDoc

- - diff --git a/aoc2023/build/dev/erlang/pqueue/doc/stylesheet.css b/aoc2023/build/dev/erlang/pqueue/doc/stylesheet.css deleted file mode 100644 index ab170c0..0000000 --- a/aoc2023/build/dev/erlang/pqueue/doc/stylesheet.css +++ /dev/null @@ -1,55 +0,0 @@ -/* standard EDoc style sheet */ -body { - font-family: Verdana, Arial, Helvetica, sans-serif; - margin-left: .25in; - margin-right: .2in; - margin-top: 0.2in; - margin-bottom: 0.2in; - color: #000000; - background-color: #ffffff; -} -h1,h2 { - margin-left: -0.2in; -} -div.navbar { - background-color: #add8e6; - padding: 0.2em; -} -h2.indextitle { - padding: 0.4em; - background-color: #add8e6; -} -h3.function,h3.typedecl { - background-color: #add8e6; - padding-left: 1em; -} -div.spec { - margin-left: 2em; - background-color: #eeeeee; -} -a.module { - text-decoration:none -} -a.module:hover { - background-color: #eeeeee; -} -ul.definitions { - list-style-type: none; -} -ul.index { - list-style-type: none; - background-color: #eeeeee; -} - -/* - * Minor style tweaks - */ -ul { - list-style-type: square; -} -table { - border-collapse: collapse; -} -td { - padding: 3 -} diff --git a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue.app b/aoc2023/build/dev/erlang/pqueue/ebin/pqueue.app deleted file mode 100644 index 974098f..0000000 --- a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue.app +++ /dev/null @@ -1,6 +0,0 @@ -{application,pqueue, - [{description,"Priority Queue Data Structures"}, - {vsn,"2.0.7"}, - {modules,[pqueue,pqueue2,pqueue3,pqueue4]}, - {registered,[]}, - {applications,[stdlib,kernel]}]}. diff --git a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue.beam b/aoc2023/build/dev/erlang/pqueue/ebin/pqueue.beam deleted file mode 100644 index bf379ea..0000000 Binary files a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue2.beam b/aoc2023/build/dev/erlang/pqueue/ebin/pqueue2.beam deleted file mode 100644 index 2913682..0000000 Binary files a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue2.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue3.beam b/aoc2023/build/dev/erlang/pqueue/ebin/pqueue3.beam deleted file mode 100644 index 1d55303..0000000 Binary files a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue3.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue4.beam b/aoc2023/build/dev/erlang/pqueue/ebin/pqueue4.beam deleted file mode 100644 index 13f75f5..0000000 Binary files a/aoc2023/build/dev/erlang/pqueue/ebin/pqueue4.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/pqueue/rebar.config b/aoc2023/build/dev/erlang/pqueue/rebar.config deleted file mode 100644 index f8022f0..0000000 --- a/aoc2023/build/dev/erlang/pqueue/rebar.config +++ /dev/null @@ -1,14 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: - -{erl_opts, - [{platform_define, "^R16", 'ERLANG_OTP_VERSION_16'}, - {platform_define, "^17\.", 'ERLANG_OTP_VERSION_17'}, - {platform_define, "^18\.", 'ERLANG_OTP_VERSION_18'}, - {platform_define, "^19\.", 'ERLANG_OTP_VERSION_19'}, - {platform_define, "^20\.", 'ERLANG_OTP_VERSION_20'}, - warn_export_vars, - warn_unused_import, - %warn_missing_spec, - warnings_as_errors]}. -{edoc_opts, [{preprocess, true}]}. diff --git a/aoc2023/build/dev/erlang/pqueue/src/pqueue.app.src b/aoc2023/build/dev/erlang/pqueue/src/pqueue.app.src deleted file mode 100644 index b153ad1..0000000 --- a/aoc2023/build/dev/erlang/pqueue/src/pqueue.app.src +++ /dev/null @@ -1,10 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: - -{application, pqueue, - [{description, "Priority Queue Data Structures"}, - {vsn, "2.0.7"}, - {modules, [pqueue, pqueue2, pqueue3, pqueue4]}, - {registered, []}, - {applications, [stdlib, kernel]}]}. - diff --git a/aoc2023/build/dev/erlang/pqueue/src/pqueue.erl b/aoc2023/build/dev/erlang/pqueue/src/pqueue.erl deleted file mode 100644 index 2c57fa2..0000000 --- a/aoc2023/build/dev/erlang/pqueue/src/pqueue.erl +++ /dev/null @@ -1,2246 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% @doc -%%% ==Static Priority Queue.== -%%% This priority queue implementation depends on a static number of priorities -%%% (-20 (high) to 20 (low)) so that tuple access times can be exploited for -%%% quick in/out priority queue operations. This implementation was created to -%%% avoid the slowness within the priority queue used by both RabbitMQ and Riak -%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -%%% @end -%%% -%%% MIT License -%%% -%%% Copyright (c) 2011-2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%% @author Michael Truog -%%% @copyright 2011-2020 Michael Truog -%%% @version 2.0.1 {@date} {@time} -%%%------------------------------------------------------------------------ - --module(pqueue). --author('mjtruog at protonmail dot com'). - -%% external interface --export([in/2, % O(1) - in/3, % O(1) - is_empty/1, % O(1) - is_queue/1, % O(1) - join/2, % O(N) typically (?) - len/1, % O(N) - new/0, % O(1) - out/1, % O(1) amortized, O(N) worst case - out/2, % O(1) amortized, O(N) worst case - pout/1, % O(1) amortized, O(N) worst case - to_list/1, % O(N) - test/0]). - -%%%------------------------------------------------------------------------ -%%% External interface functions -%%%------------------------------------------------------------------------ - --ifdef(ERLANG_OTP_VERSION_16). --type pqueue() :: - {integer(), - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue()}, - queue(), - {queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}} | - {'empty', - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue()}, - queue(), - {queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}}. --else. --type pqueue() :: - {integer(), - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue()}, - queue:queue(), - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}} | - {'empty', - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue()}, - queue:queue(), - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}}. --endif. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of the 0 priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), pqueue()) -> pqueue(). - -in(X, Q) -> - in(X, 0, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of a specific priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), integer(), pqueue()) -> pqueue(). - -in(_, P, _) - when P < -20; P > 20 -> - erlang:exit(badarg); -in(X, P, {empty, _, _, _, _, _, _, _} = Q) -> - in_higher(P, Q, X); -in(X, P, {Pc, _, _, _, _, _, _, _} = Q) - when P < Pc -> - in_higher(P, Q, X); -in(X, P, Q) -> - in_lower(P, Q, X). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue is empty.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_empty(pqueue()) -> 'true' | 'false'. - -is_empty({empty, _, _, _, _, _, _, _}) -> - true; -is_empty({_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - queue:is_empty(Qn20) and queue:is_empty(Qn19) and queue:is_empty(Qn18) and - queue:is_empty(Qn17) and queue:is_empty(Qn16) and queue:is_empty(Qn15) and - queue:is_empty(Qn14) and - queue:is_empty(Qn13) and queue:is_empty(Qn12) and queue:is_empty(Qn11) and - queue:is_empty(Qn10) and queue:is_empty(Qn9) and queue:is_empty(Qn8) and - queue:is_empty(Qn7) and - queue:is_empty(Qn6) and queue:is_empty(Qn5) and queue:is_empty(Qn4) and - queue:is_empty(Qn3) and queue:is_empty(Qn2) and queue:is_empty(Qn1) and - queue:is_empty(Q0) and - queue:is_empty(Qp1) and queue:is_empty(Qp2) and queue:is_empty(Qp3) and - queue:is_empty(Qp4) and queue:is_empty(Qp5) and queue:is_empty(Qp6) and - queue:is_empty(Qp7) and queue:is_empty(Qp8) and queue:is_empty(Qp9) and - queue:is_empty(Qp10) and queue:is_empty(Qp11) and queue:is_empty(Qp12) and - queue:is_empty(Qp13) and - queue:is_empty(Qp14) and queue:is_empty(Qp15) and queue:is_empty(Qp16) and - queue:is_empty(Qp17) and queue:is_empty(Qp18) and queue:is_empty(Qp19) and - queue:is_empty(Qp20). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue type is as expected.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_queue(pqueue()) -> 'true' | 'false'. - -is_queue({Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) - when tuple_size(Qsn14) == 7, tuple_size(Qsn7) == 7, tuple_size(Qsn1) == 6, - tuple_size(Qsp14) == 7, tuple_size(Qsp7) == 7, tuple_size(Qsp1) == 6 -> - (((Pc =:= empty) or is_integer(Pc)) and queue:is_queue(Q0)); -is_queue(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Join two priority queues.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec join(pqueue(), pqueue()) -> pqueue(). - -join({P1c, - {Q1_n20, Q1_n19, Q1_n18, Q1_n17, Q1_n16, Q1_n15, Q1_n14}, - {Q1_n13, Q1_n12, Q1_n11, Q1_n10, Q1_n9, Q1_n8, Q1_n7}, - {Q1_n6, Q1_n5, Q1_n4, Q1_n3, Q1_n2, Q1_n1}, - Q1_0, - {Q1_p1, Q1_p2, Q1_p3, Q1_p4, Q1_p5, Q1_p6}, - {Q1_p7, Q1_p8, Q1_p9, Q1_p10, Q1_p11, Q1_p12, Q1_p13}, - {Q1_p14, Q1_p15, Q1_p16, Q1_p17, Q1_p18, Q1_p19, Q1_p20}}, - {P2c, - {Q2_n20, Q2_n19, Q2_n18, Q2_n17, Q2_n16, Q2_n15, Q2_n14}, - {Q2_n13, Q2_n12, Q2_n11, Q2_n10, Q2_n9, Q2_n8, Q2_n7}, - {Q2_n6, Q2_n5, Q2_n4, Q2_n3, Q2_n2, Q2_n1}, - Q2_0, - {Q2_p1, Q2_p2, Q2_p3, Q2_p4, Q2_p5, Q2_p6}, - {Q2_p7, Q2_p8, Q2_p9, Q2_p10, Q2_p11, Q2_p12, Q2_p13}, - {Q2_p14, Q2_p15, Q2_p16, Q2_p17, Q2_p18, Q2_p19, Q2_p20}}) -> - {erlang:min(P1c, P2c), - {queue:join(Q1_n20, Q2_n20), queue:join(Q1_n19, Q2_n19), - queue:join(Q1_n18, Q2_n18), queue:join(Q1_n17, Q2_n17), - queue:join(Q1_n16, Q2_n16), queue:join(Q1_n15, Q2_n15), - queue:join(Q1_n14, Q2_n14)}, - {queue:join(Q1_n13, Q2_n13), queue:join(Q1_n12, Q2_n12), - queue:join(Q1_n11, Q2_n11), queue:join(Q1_n10, Q2_n10), - queue:join(Q1_n9, Q2_n9), queue:join(Q1_n8, Q2_n8), - queue:join(Q1_n7, Q2_n7)}, - {queue:join(Q1_n6, Q2_n6), queue:join(Q1_n5, Q2_n5), - queue:join(Q1_n4, Q2_n4), queue:join(Q1_n3, Q2_n3), - queue:join(Q1_n2, Q2_n2), queue:join(Q1_n1, Q2_n1)}, - queue:join(Q1_0, Q2_0), - {queue:join(Q1_p1, Q2_p1), queue:join(Q1_p2, Q2_p2), - queue:join(Q1_p3, Q2_p3), queue:join(Q1_p4, Q2_p4), - queue:join(Q1_p5, Q2_p5), queue:join(Q1_p6, Q2_p6)}, - {queue:join(Q1_p7, Q2_p7), queue:join(Q1_p8, Q2_p8), - queue:join(Q1_p9, Q2_p9), queue:join(Q1_p10, Q2_p10), - queue:join(Q1_p11, Q2_p11), queue:join(Q1_p12, Q2_p12), - queue:join(Q1_p13, Q2_p13)}, - {queue:join(Q1_p14, Q2_p14), queue:join(Q1_p15, Q2_p15), - queue:join(Q1_p16, Q2_p16), queue:join(Q1_p17, Q2_p17), - queue:join(Q1_p18, Q2_p18), queue:join(Q1_p19, Q2_p19), - queue:join(Q1_p20, Q2_p20)}}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Determine the length of a priority queue.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec len(pqueue()) -> non_neg_integer(). - -len({_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - queue:len(Qn20) + queue:len(Qn19) + queue:len(Qn18) + queue:len(Qn17) + - queue:len(Qn16) + queue:len(Qn15) + queue:len(Qn14) + - queue:len(Qn13) + queue:len(Qn12) + queue:len(Qn11) + queue:len(Qn10) + - queue:len(Qn9) + queue:len(Qn8) + queue:len(Qn7) + - queue:len(Qn6) + queue:len(Qn5) + queue:len(Qn4) + queue:len(Qn3) + - queue:len(Qn2) + queue:len(Qn1) + - queue:len(Q0) + - queue:len(Qp1) + queue:len(Qp2) + queue:len(Qp3) + queue:len(Qp4) + - queue:len(Qp5) + queue:len(Qp6) + - queue:len(Qp7) + queue:len(Qp8) + queue:len(Qp9) + queue:len(Qp10) + - queue:len(Qp11) + queue:len(Qp12) + queue:len(Qp13) + - queue:len(Qp14) + queue:len(Qp15) + queue:len(Qp16) + queue:len(Qp17) + - queue:len(Qp18) + queue:len(Qp19) + queue:len(Qp20). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec new() -> pqueue(). - -new() -> - {empty, % current priority - erlang:make_tuple(7, queue:new()), % priority [-20..-14] - erlang:make_tuple(7, queue:new()), % priority [-13.. -7] - erlang:make_tuple(6, queue:new()), % priority [ -6.. -1] - queue:new(), % priority 0 (default) - erlang:make_tuple(6, queue:new()), % priority [ 1.. 6] - erlang:make_tuple(7, queue:new()), % priority [ 7.. 13] - erlang:make_tuple(7, queue:new())}. % priority [ 14.. 20] - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(pqueue()) -> - {{'value', term()}, pqueue()} | {'empty', pqueue()}. - -out({empty, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -out({Pc, _, _, _, _, _, _, _} = Q) -> - out_current(Pc, Q, nopriority). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item of a specific priority from the head of the queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(integer(), pqueue()) -> - {{'value', term()}, pqueue()} | {'empty', pqueue()}. - -out(P, _) - when P < -20; P > 20 -> - erlang:exit(badarg); -out(_, {empty, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -out(P, Q) -> - out_specific(P, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% Includes the priority in the return value. -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec pout(pqueue()) -> - {{'value', term(), integer()}, pqueue()} | {'empty', pqueue()}. - -pout({empty, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -pout({Pc, _, _, _, _, _, _, _} = Q) -> - out_current(Pc, Q, priority). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec to_list(pqueue()) -> list(term()). - -to_list({_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - queue:to_list(Qn20) ++ queue:to_list(Qn19) ++ queue:to_list(Qn18) ++ - queue:to_list(Qn17) ++ queue:to_list(Qn16) ++ queue:to_list(Qn15) ++ - queue:to_list(Qn14) ++ - queue:to_list(Qn13) ++ queue:to_list(Qn12) ++ queue:to_list(Qn11) ++ - queue:to_list(Qn10) ++ queue:to_list(Qn9) ++ queue:to_list(Qn8) ++ - queue:to_list(Qn7) ++ - queue:to_list(Qn6) ++ queue:to_list(Qn5) ++ queue:to_list(Qn4) ++ - queue:to_list(Qn3) ++ queue:to_list(Qn2) ++ queue:to_list(Qn1) ++ - queue:to_list(Q0) ++ - queue:to_list(Qp1) ++ queue:to_list(Qp2) ++ queue:to_list(Qp3) ++ - queue:to_list(Qp4) ++ queue:to_list(Qp5) ++ queue:to_list(Qp6) ++ - queue:to_list(Qp7) ++ queue:to_list(Qp8) ++ queue:to_list(Qp9) ++ - queue:to_list(Qp10) ++ queue:to_list(Qp11) ++ queue:to_list(Qp12) ++ - queue:to_list(Qp13) ++ - queue:to_list(Qp14) ++ queue:to_list(Qp15) ++ queue:to_list(Qp16) ++ - queue:to_list(Qp17) ++ queue:to_list(Qp18) ++ queue:to_list(Qp19) ++ - queue:to_list(Qp20). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Regression test.=== -%% @end -%%------------------------------------------------------------------------- - -test() -> - Q0 = pqueue:new(), - true = pqueue:is_queue(Q0), - Q1 = pqueue:in(20, 20, Q0), - Q2 = pqueue:in(19, 19, Q1), - Q3 = pqueue:in(18, 18, Q2), - Q4 = pqueue:in(17, 17, Q3), - Q5 = pqueue:in(16, 16, Q4), - Q6 = pqueue:in(15, 15, Q5), - Q7 = pqueue:in(14, 14, Q6), - Q8 = pqueue:in(13, 13, Q7), - Q9 = pqueue:in(12, 12, Q8), - Q10 = pqueue:in(11, 11, Q9), - Q11 = pqueue:in(10, 10, Q10), - Q12 = pqueue:in(9, 9, Q11), - Q13 = pqueue:in(8, 8, Q12), - Q14 = pqueue:in(7, 7, Q13), - Q15 = pqueue:in(6, 6, Q14), - Q16 = pqueue:in(5, 5, Q15), - Q17 = pqueue:in(4, 4, Q16), - Q18 = pqueue:in(3, 3, Q17), - Q19 = pqueue:in(2, 2, Q18), - Q20 = pqueue:in(1, 1, Q19), - Q21 = pqueue:in(0, 0, Q20), - Q22 = pqueue:in(-1, -1, Q21), - Q23 = pqueue:in(-2, -2, Q22), - Q24 = pqueue:in(-3, -3, Q23), - Q25 = pqueue:in(-4, -4, Q24), - Q26 = pqueue:in(-5, -5, Q25), - Q27 = pqueue:in(-6, -6, Q26), - Q28 = pqueue:in(-7, -7, Q27), - Q29 = pqueue:in(-8, -8, Q28), - Q30 = pqueue:in(-9, -9, Q29), - Q31 = pqueue:in(-10, -10, Q30), - Q32 = pqueue:in(-11, -11, Q31), - Q33 = pqueue:in(-12, -12, Q32), - Q34 = pqueue:in(-13, -13, Q33), - Q35 = pqueue:in(-14, -14, Q34), - Q36 = pqueue:in(-15, -15, Q35), - Q37 = pqueue:in(-16, -16, Q36), - Q38 = pqueue:in(-17, -17, Q37), - Q39 = pqueue:in(-18, -18, Q38), - Q40 = pqueue:in(-19, -19, Q39), - Q41 = pqueue:in(-20, -20, Q40), - Q42 = pqueue:in(-20, -20, Q41), - Q43 = pqueue:in(-19, -19, Q42), - Q44 = pqueue:in(-18, -18, Q43), - Q45 = pqueue:in(-17, -17, Q44), - Q46 = pqueue:in(-16, -16, Q45), - Q47 = pqueue:in(-15, -15, Q46), - Q48 = pqueue:in(-14, -14, Q47), - Q49 = pqueue:in(-13, -13, Q48), - Q50 = pqueue:in(-12, -12, Q49), - Q51 = pqueue:in(-11, -11, Q50), - Q52 = pqueue:in(-10, -10, Q51), - Q53 = pqueue:in(-9, -9, Q52), - Q54 = pqueue:in(-8, -8, Q53), - Q55 = pqueue:in(-7, -7, Q54), - Q56 = pqueue:in(-6, -6, Q55), - Q57 = pqueue:in(-5, -5, Q56), - Q58 = pqueue:in(-4, -4, Q57), - Q59 = pqueue:in(-3, -3, Q58), - Q60 = pqueue:in(-2, -2, Q59), - Q61 = pqueue:in(-1, -1, Q60), - Q62 = pqueue:in(0, 0, Q61), - Q63 = pqueue:in(1, 1, Q62), - Q64 = pqueue:in(2, 2, Q63), - Q65 = pqueue:in(3, 3, Q64), - Q66 = pqueue:in(4, 4, Q65), - Q67 = pqueue:in(5, 5, Q66), - Q68 = pqueue:in(6, 6, Q67), - Q69 = pqueue:in(7, 7, Q68), - Q70 = pqueue:in(8, 8, Q69), - Q71 = pqueue:in(9, 9, Q70), - Q72 = pqueue:in(10, 10, Q71), - Q73 = pqueue:in(11, 11, Q72), - Q74 = pqueue:in(12, 12, Q73), - Q75 = pqueue:in(13, 13, Q74), - Q76 = pqueue:in(14, 14, Q75), - Q77 = pqueue:in(15, 15, Q76), - Q78 = pqueue:in(16, 16, Q77), - Q79 = pqueue:in(17, 17, Q78), - Q80 = pqueue:in(18, 18, Q79), - Q81 = pqueue:in(19, 19, Q80), - Q82 = pqueue:in(20, 20, Q81), - true = pqueue:is_queue(Q82), - 82 = pqueue:len(Q82), - [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14, - -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6, - -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, - 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, - 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue:to_list(Q82), - {{value, -20}, Q83} = pqueue:out(Q82), - {{value, -20}, Q84} = pqueue:out(Q83), - {{value, -19}, Q85} = pqueue:out(Q84), - {{value, -19}, Q86} = pqueue:out(Q85), - {{value, -18}, Q87} = pqueue:out(Q86), - {{value, -18}, Q88} = pqueue:out(Q87), - {{value, 0}, Q89} = pqueue:out(0, Q88), - {{value, 0}, Q90} = pqueue:out(0, Q89), - {empty, _} = pqueue:out(0, Q90), - {{value, -17, -17}, Q91} = pqueue:pout(Q90), - {{value, -17, -17}, Q92} = pqueue:pout(Q91), - {{value, -16, -16}, Q93} = pqueue:pout(Q92), - {{value, -16, -16}, Q94} = pqueue:pout(Q93), - {{value, -15, -15}, Q95} = pqueue:pout(Q94), - {{value, -15, -15}, Q96} = pqueue:pout(Q95), - {{value, -14, -14}, Q97} = pqueue:pout(Q96), - {{value, -14, -14}, Q98} = pqueue:pout(Q97), - {{value, -13, -13}, Q99} = pqueue:pout(Q98), - {{value, -13, -13}, Q100} = pqueue:pout(Q99), - {{value, -12, -12}, Q101} = pqueue:pout(Q100), - {{value, -12, -12}, Q102} = pqueue:pout(Q101), - {{value, -11, -11}, Q103} = pqueue:pout(Q102), - {{value, -11, -11}, Q104} = pqueue:pout(Q103), - {{value, -10, -10}, Q105} = pqueue:pout(Q104), - {{value, -10, -10}, Q106} = pqueue:pout(Q105), - {{value, -9, -9}, Q107} = pqueue:pout(Q106), - {{value, -9, -9}, Q108} = pqueue:pout(Q107), - {{value, -8, -8}, Q109} = pqueue:pout(Q108), - {{value, -8, -8}, Q110} = pqueue:pout(Q109), - {{value, -7, -7}, Q111} = pqueue:pout(Q110), - {{value, -7, -7}, Q112} = pqueue:pout(Q111), - {{value, -6, -6}, Q113} = pqueue:pout(Q112), - {{value, -6, -6}, Q114} = pqueue:pout(Q113), - {{value, -5, -5}, Q115} = pqueue:pout(Q114), - {{value, -5, -5}, Q116} = pqueue:pout(Q115), - {{value, -4, -4}, Q117} = pqueue:pout(Q116), - {{value, -4, -4}, Q118} = pqueue:pout(Q117), - {{value, -3, -3}, Q119} = pqueue:pout(Q118), - {{value, -3, -3}, Q120} = pqueue:pout(Q119), - {{value, -2, -2}, Q121} = pqueue:pout(Q120), - {{value, -2, -2}, Q122} = pqueue:pout(Q121), - {{value, -1, -1}, Q123} = pqueue:pout(Q122), - {{value, -1, -1}, Q124} = pqueue:pout(Q123), - {{value, 1, 1}, Q125} = pqueue:pout(Q124), - {{value, 1, 1}, Q126} = pqueue:pout(Q125), - {{value, 2, 2}, Q127} = pqueue:pout(Q126), - {{value, 2, 2}, Q128} = pqueue:pout(Q127), - {{value, 3, 3}, Q129} = pqueue:pout(Q128), - {{value, 3, 3}, Q130} = pqueue:pout(Q129), - {{value, 4, 4}, Q131} = pqueue:pout(Q130), - {{value, 4, 4}, Q132} = pqueue:pout(Q131), - {{value, 5, 5}, Q133} = pqueue:pout(Q132), - {{value, 5, 5}, Q134} = pqueue:pout(Q133), - {{value, 6, 6}, Q135} = pqueue:pout(Q134), - {{value, 6, 6}, Q136} = pqueue:pout(Q135), - {{value, 7, 7}, Q137} = pqueue:pout(Q136), - {{value, 7, 7}, Q138} = pqueue:pout(Q137), - {{value, 8, 8}, Q139} = pqueue:pout(Q138), - {{value, 8, 8}, Q140} = pqueue:pout(Q139), - {{value, 9, 9}, Q141} = pqueue:pout(Q140), - {{value, 9, 9}, Q142} = pqueue:pout(Q141), - {{value, 10, 10}, Q143} = pqueue:pout(Q142), - {{value, 10, 10}, Q144} = pqueue:pout(Q143), - {{value, 11, 11}, Q145} = pqueue:pout(Q144), - {{value, 11, 11}, Q146} = pqueue:pout(Q145), - {{value, 12, 12}, Q147} = pqueue:pout(Q146), - {{value, 12, 12}, Q148} = pqueue:pout(Q147), - {{value, 13, 13}, Q149} = pqueue:pout(Q148), - {{value, 13, 13}, Q150} = pqueue:pout(Q149), - {{value, 14, 14}, Q151} = pqueue:pout(Q150), - {{value, 14, 14}, Q152} = pqueue:pout(Q151), - {{value, 15, 15}, Q153} = pqueue:pout(Q152), - {{value, 15, 15}, Q154} = pqueue:pout(Q153), - {{value, 16, 16}, Q155} = pqueue:pout(Q154), - {{value, 16, 16}, Q156} = pqueue:pout(Q155), - {{value, 17, 17}, Q157} = pqueue:pout(Q156), - {{value, 17, 17}, Q158} = pqueue:pout(Q157), - {{value, 18, 18}, Q159} = pqueue:pout(Q158), - {{value, 18, 18}, Q160} = pqueue:pout(Q159), - {{value, 19, 19}, Q161} = pqueue:pout(Q160), - {{value, 19, 19}, Q162} = pqueue:pout(Q161), - {{value, 20, 20}, Q163} = pqueue:pout(Q162), - {{value, 20, 20}, Q164} = pqueue:pout(Q163), - true = pqueue:is_empty(Q164), - {empty, Q165} = pqueue:pout(Q164), - true = pqueue:is_empty(Q165), - ok. - -%%%------------------------------------------------------------------------ -%%% Private functions -%%%------------------------------------------------------------------------ - -in_higher(-20, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-20, - {queue:in(X, Qn20), Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-19, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-19, - {Qn20, queue:in(X, Qn19), Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-18, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-18, - {Qn20, Qn19, queue:in(X, Qn18), Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-17, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-17, - {Qn20, Qn19, Qn18, queue:in(X, Qn17), Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-16, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-16, - {Qn20, Qn19, Qn18, Qn17, queue:in(X, Qn16), Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-15, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-15, - {Qn20, Qn19, Qn18, Qn17, Qn16, queue:in(X, Qn15), Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-14, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-14, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, queue:in(X, Qn14)}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-13, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-13, Qsn14, - {queue:in(X, Qn13), Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-12, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-12, Qsn14, - {Qn13, queue:in(X, Qn12), Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-11, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-11, Qsn14, - {Qn13, Qn12, queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-10, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-10, Qsn14, - {Qn13, Qn12, Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-9, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-9, Qsn14, - {Qn13, Qn12, Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-8, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-8, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-7, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-7, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7)}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-6, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-6, Qsn14, Qsn7, - {queue:in(X, Qn6), Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-5, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-5, Qsn14, Qsn7, - {Qn6, queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-4, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-4, Qsn14, Qsn7, - {Qn6, Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-3, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-3, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-2, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-2, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-1, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-1, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(0, {_, Qsn14, Qsn7, Qsn1, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {0, Qsn14, Qsn7, Qsn1, - queue:in(X, Q0), - Qsp1, Qsp7, Qsp14}; -in_higher(1, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {1, Qsn14, Qsn7, Qsn1, Q0, - {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_higher(2, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {2, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_higher(3, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {3, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_higher(4, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {4, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, Qp6}, - Qsp7, Qsp14}; -in_higher(5, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {5, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), Qp6}, - Qsp7, Qsp14}; -in_higher(6, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {6, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, queue:in(X, Qp6)}, - Qsp7, Qsp14}; -in_higher(7, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {7, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_higher(8, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {8, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_higher(9, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {9, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_higher(10, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {10, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, Qp12, Qp13}, - Qsp14}; -in_higher(11, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {11, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), Qp12, Qp13}, - Qsp14}; -in_higher(12, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {12, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, queue:in(X, Qp12), Qp13}, - Qsp14}; -in_higher(13, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {13, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, queue:in(X, Qp13)}, - Qsp14}; -in_higher(14, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {14, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {queue:in(X, Qp14), Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}; -in_higher(15, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {15, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, queue:in(X, Qp15), Qp16, Qp17, Qp18, Qp19, Qp20}}; -in_higher(16, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {16, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, queue:in(X, Qp16), Qp17, Qp18, Qp19, Qp20}}; -in_higher(17, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {17, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, queue:in(X, Qp17), Qp18, Qp19, Qp20}}; -in_higher(18, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {18, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, queue:in(X, Qp18), Qp19, Qp20}}; -in_higher(19, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {19, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, queue:in(X, Qp19), Qp20}}; -in_higher(20, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {20, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, queue:in(X, Qp20)}}. - -in_lower(-20, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {queue:in(X, Qn20), Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-19, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, queue:in(X, Qn19), Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-18, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, queue:in(X, Qn18), Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-17, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, Qn18, queue:in(X, Qn17), Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-16, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, Qn18, Qn17, queue:in(X, Qn16), Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-15, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, queue:in(X, Qn15), Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-14, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, queue:in(X, Qn14)}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-13, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {queue:in(X, Qn13), Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-12, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, queue:in(X, Qn12), Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-11, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-10, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-9, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-8, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-7, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7)}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-6, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {queue:in(X, Qn6), Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-5, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-4, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-3, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-2, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-1, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(0, {Pc, Qsn14, Qsn7, Qsn1, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, - queue:in(X, Q0), - Qsp1, Qsp7, Qsp14}; -in_lower(1, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_lower(2, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_lower(3, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_lower(4, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, Qp6}, - Qsp7, Qsp14}; -in_lower(5, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), Qp6}, - Qsp7, Qsp14}; -in_lower(6, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, queue:in(X, Qp6)}, - Qsp7, Qsp14}; -in_lower(7, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_lower(8, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_lower(9, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_lower(10, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, Qp12, Qp13}, - Qsp14}; -in_lower(11, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), Qp12, Qp13}, - Qsp14}; -in_lower(12, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, queue:in(X, Qp12), Qp13}, - Qsp14}; -in_lower(13, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, queue:in(X, Qp13)}, - Qsp14}; -in_lower(14, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {queue:in(X, Qp14), Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}; -in_lower(15, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, queue:in(X, Qp15), Qp16, Qp17, Qp18, Qp19, Qp20}}; -in_lower(16, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, queue:in(X, Qp16), Qp17, Qp18, Qp19, Qp20}}; -in_lower(17, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, queue:in(X, Qp17), Qp18, Qp19, Qp20}}; -in_lower(18, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, queue:in(X, Qp18), Qp19, Qp20}}; -in_lower(19, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, queue:in(X, Qp19), Qp20}}; -in_lower(20, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, queue:in(X, Qp20)}}. - -out_current(-20, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn20} = queue:out(Qn20), - if - Value =:= empty -> - out_current(-19, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -20}; - true -> - Value - end, - {NewValue, - {-20, - {NewQn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-19, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn19} = queue:out(Qn19), - if - Value =:= empty -> - out_current(-18, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -19}; - true -> - Value - end, - {NewValue, - {-19, - {Qn20, NewQn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-18, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn18} = queue:out(Qn18), - if - Value =:= empty -> - out_current(-17, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -18}; - true -> - Value - end, - {NewValue, - {-18, - {Qn20, Qn19, NewQn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-17, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn17} = queue:out(Qn17), - if - Value =:= empty -> - out_current(-16, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -17}; - true -> - Value - end, - {NewValue, - {-17, - {Qn20, Qn19, Qn18, NewQn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-16, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn16} = queue:out(Qn16), - if - Value =:= empty -> - out_current(-15, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -16}; - true -> - Value - end, - {NewValue, - {-16, - {Qn20, Qn19, Qn18, Qn17, NewQn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-15, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn15} = queue:out(Qn15), - if - Value =:= empty -> - out_current(-14, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -15}; - true -> - Value - end, - {NewValue, - {-15, - {Qn20, Qn19, Qn18, Qn17, Qn16, NewQn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-14, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn14} = queue:out(Qn14), - if - Value =:= empty -> - out_current(-13, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -14}; - true -> - Value - end, - {NewValue, - {-14, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, NewQn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-13, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn13} = queue:out(Qn13), - if - Value =:= empty -> - out_current(-12, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -13}; - true -> - Value - end, - {NewValue, - {-13, Qsn14, - {NewQn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-12, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn12} = queue:out(Qn12), - if - Value =:= empty -> - out_current(-11, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -12}; - true -> - Value - end, - {NewValue, - {-12, Qsn14, - {Qn13, NewQn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-11, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn11} = queue:out(Qn11), - if - Value =:= empty -> - out_current(-10, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -11}; - true -> - Value - end, - {NewValue, - {-11, Qsn14, - {Qn13, Qn12, NewQn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-10, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn10} = queue:out(Qn10), - if - Value =:= empty -> - out_current(-9, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -10}; - true -> - Value - end, - {NewValue, - {-10, Qsn14, - {Qn13, Qn12, Qn11, NewQn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-9, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn9} = queue:out(Qn9), - if - Value =:= empty -> - out_current(-8, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -9}; - true -> - Value - end, - {NewValue, - {-9, Qsn14, - {Qn13, Qn12, Qn11, Qn10, NewQn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-8, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn8} = queue:out(Qn8), - if - Value =:= empty -> - out_current(-7, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -8}; - true -> - Value - end, - {NewValue, - {-8, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, NewQn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-7, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn7} = queue:out(Qn7), - if - Value =:= empty -> - out_current(-6, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -7}; - true -> - Value - end, - {NewValue, - {-7, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, NewQn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-6, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn6} = queue:out(Qn6), - if - Value =:= empty -> - out_current(-5, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -6}; - true -> - Value - end, - {NewValue, - {-6, Qsn14, Qsn7, - {NewQn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-5, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn5} = queue:out(Qn5), - if - Value =:= empty -> - out_current(-4, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -5}; - true -> - Value - end, - {NewValue, - {-5, Qsn14, Qsn7, - {Qn6, NewQn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-4, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn4} = queue:out(Qn4), - if - Value =:= empty -> - out_current(-3, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -4}; - true -> - Value - end, - {NewValue, - {-4, Qsn14, Qsn7, - {Qn6, Qn5, NewQn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-3, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn3} = queue:out(Qn3), - if - Value =:= empty -> - out_current(-2, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -3}; - true -> - Value - end, - {NewValue, - {-3, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, NewQn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-2, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn2} = queue:out(Qn2), - if - Value =:= empty -> - out_current(-1, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -2}; - true -> - Value - end, - {NewValue, - {-2, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, NewQn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-1, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn1} = queue:out(Qn1), - if - Value =:= empty -> - out_current(0, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -1}; - true -> - Value - end, - {NewValue, - {-1, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, NewQn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(0, - {_, Qsn14, Qsn7, Qsn1, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQ0} = queue:out(Q0), - if - Value =:= empty -> - out_current(1, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 0}; - true -> - Value - end, - {NewValue, - {0, Qsn14, Qsn7, Qsn1, - NewQ0, - Qsp1, Qsp7, Qsp14}} - end; -out_current(1, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp1} = queue:out(Qp1), - if - Value =:= empty -> - out_current(2, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 1}; - true -> - Value - end, - {NewValue, - {1, Qsn14, Qsn7, Qsn1, Q0, - {NewQp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(2, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp2} = queue:out(Qp2), - if - Value =:= empty -> - out_current(3, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 2}; - true -> - Value - end, - {NewValue, - {2, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, NewQp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(3, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp3} = queue:out(Qp3), - if - Value =:= empty -> - out_current(4, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 3}; - true -> - Value - end, - {NewValue, - {3, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, NewQp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(4, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp4} = queue:out(Qp4), - if - Value =:= empty -> - out_current(5, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 4}; - true -> - Value - end, - {NewValue, - {4, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, NewQp4, Qp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(5, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp5} = queue:out(Qp5), - if - Value =:= empty -> - out_current(6, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 5}; - true -> - Value - end, - {NewValue, - {5, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, NewQp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(6, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp6} = queue:out(Qp6), - if - Value =:= empty -> - out_current(7, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 6}; - true -> - Value - end, - {NewValue, - {6, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, NewQp6}, - Qsp7, Qsp14}} - end; -out_current(7, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp7} = queue:out(Qp7), - if - Value =:= empty -> - out_current(8, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 7}; - true -> - Value - end, - {NewValue, - {7, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {NewQp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(8, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp8} = queue:out(Qp8), - if - Value =:= empty -> - out_current(9, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 8}; - true -> - Value - end, - {NewValue, - {8, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, NewQp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(9, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp9} = queue:out(Qp9), - if - Value =:= empty -> - out_current(10, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 9}; - true -> - Value - end, - {NewValue, - {9, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, NewQp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(10, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp10} = queue:out(Qp10), - if - Value =:= empty -> - out_current(11, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 10}; - true -> - Value - end, - {NewValue, - {10, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, NewQp10, Qp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(11, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp11} = queue:out(Qp11), - if - Value =:= empty -> - out_current(12, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 11}; - true -> - Value - end, - {NewValue, - {11, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, NewQp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(12, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp12} = queue:out(Qp12), - if - Value =:= empty -> - out_current(13, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 12}; - true -> - Value - end, - {NewValue, - {12, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, NewQp12, Qp13}, - Qsp14}} - end; -out_current(13, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp13} = queue:out(Qp13), - if - Value =:= empty -> - out_current(14, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 13}; - true -> - Value - end, - {NewValue, - {13, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, NewQp13}, - Qsp14}} - end; -out_current(14, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp14} = queue:out(Qp14), - if - Value =:= empty -> - out_current(15, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 14}; - true -> - Value - end, - {NewValue, - {14, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {NewQp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}} - end; -out_current(15, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp15} = queue:out(Qp15), - if - Value =:= empty -> - out_current(16, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 15}; - true -> - Value - end, - {NewValue, - {15, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, NewQp15, Qp16, Qp17, Qp18, Qp19, Qp20}}} - end; -out_current(16, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp16} = queue:out(Qp16), - if - Value =:= empty -> - out_current(17, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 16}; - true -> - Value - end, - {NewValue, - {16, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, NewQp16, Qp17, Qp18, Qp19, Qp20}}} - end; -out_current(17, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp17} = queue:out(Qp17), - if - Value =:= empty -> - out_current(18, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 17}; - true -> - Value - end, - {NewValue, - {17, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, NewQp17, Qp18, Qp19, Qp20}}} - end; -out_current(18, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp18} = queue:out(Qp18), - if - Value =:= empty -> - out_current(19, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 18}; - true -> - Value - end, - {NewValue, - {18, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, NewQp18, Qp19, Qp20}}} - end; -out_current(19, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp19} = queue:out(Qp19), - if - Value =:= empty -> - out_current(20, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 19}; - true -> - Value - end, - {NewValue, - {19, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, NewQp19, Qp20}}} - end; -out_current(20, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20} = Qsp14}, ReturnType) -> - {Value, NewQp20} = queue:out(Qp20), - if - Value =:= empty -> - {empty, {empty, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 20}; - true -> - Value - end, - {NewValue, - {20, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, NewQp20}}} - end. - -out_specific(-20, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn20} = queue:out(Qn20), - {Value, - {Pc, - {NewQn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-19, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn19} = queue:out(Qn19), - {Value, - {Pc, - {Qn20, NewQn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-18, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn18} = queue:out(Qn18), - {Value, - {Pc, - {Qn20, Qn19, NewQn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-17, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn17} = queue:out(Qn17), - {Value, - {Pc, - {Qn20, Qn19, Qn18, NewQn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-16, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn16} = queue:out(Qn16), - {Value, - {Pc, - {Qn20, Qn19, Qn18, Qn17, NewQn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-15, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn15} = queue:out(Qn15), - {Value, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, NewQn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-14, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn14} = queue:out(Qn14), - {Value, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, NewQn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-13, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn13} = queue:out(Qn13), - {Value, - {Pc, Qsn14, - {NewQn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-12, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn12} = queue:out(Qn12), - {Value, - {Pc, Qsn14, - {Qn13, NewQn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-11, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn11} = queue:out(Qn11), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, NewQn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-10, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn10} = queue:out(Qn10), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, NewQn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-9, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn9} = queue:out(Qn9), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, NewQn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-8, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn8} = queue:out(Qn8), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, NewQn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-7, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn7} = queue:out(Qn7), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, NewQn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-6, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn6} = queue:out(Qn6), - {Value, - {Pc, Qsn14, Qsn7, - {NewQn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-5, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn5} = queue:out(Qn5), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, NewQn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-4, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn4} = queue:out(Qn4), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, NewQn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-3, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn3} = queue:out(Qn3), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, NewQn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-2, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn2} = queue:out(Qn2), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, NewQn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-1, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn1} = queue:out(Qn1), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, NewQn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(0, - {Pc, Qsn14, Qsn7, Qsn1, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQ0} = queue:out(Q0), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, - NewQ0, - Qsp1, Qsp7, Qsp14}}; -out_specific(1, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp1} = queue:out(Qp1), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {NewQp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(2, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp2} = queue:out(Qp2), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, NewQp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(3, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp3} = queue:out(Qp3), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, NewQp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(4, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp4} = queue:out(Qp4), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, NewQp4, Qp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(5, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp5} = queue:out(Qp5), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, NewQp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(6, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp6} = queue:out(Qp6), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, NewQp6}, - Qsp7, Qsp14}}; -out_specific(7, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp7} = queue:out(Qp7), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {NewQp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}}; -out_specific(8, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp8} = queue:out(Qp8), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, NewQp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}}; -out_specific(9, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp9} = queue:out(Qp9), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, NewQp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}}; -out_specific(10, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp10} = queue:out(Qp10), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, NewQp10, Qp11, Qp12, Qp13}, - Qsp14}}; -out_specific(11, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp11} = queue:out(Qp11), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, NewQp11, Qp12, Qp13}, - Qsp14}}; -out_specific(12, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp12} = queue:out(Qp12), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, NewQp12, Qp13}, - Qsp14}}; -out_specific(13, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp13} = queue:out(Qp13), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, NewQp13}, - Qsp14}}; -out_specific(14, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp14} = queue:out(Qp14), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {NewQp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}}; -out_specific(15, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp15} = queue:out(Qp15), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, NewQp15, Qp16, Qp17, Qp18, Qp19, Qp20}}}; -out_specific(16, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp16} = queue:out(Qp16), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, NewQp16, Qp17, Qp18, Qp19, Qp20}}}; -out_specific(17, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp17} = queue:out(Qp17), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, NewQp17, Qp18, Qp19, Qp20}}}; -out_specific(18, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp18} = queue:out(Qp18), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, NewQp18, Qp19, Qp20}}}; -out_specific(19, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp19} = queue:out(Qp19), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, NewQp19, Qp20}}}; -out_specific(20, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp20} = queue:out(Qp20), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, NewQp20}}}. - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - --include("pqueue_test.hrl"). - -module_test_() -> - {timeout, ?TEST_TIMEOUT, [ - {"internal tests", ?_assertOk(test())} - ]}. - -long_test_() -> - test_condition([ - {"proper tests", ?_assert(pqueue_proper:qc_pq())} - ], ?CLOUDI_LONG_TEST_TIMEOUT). - --endif. - diff --git a/aoc2023/build/dev/erlang/pqueue/src/pqueue2.erl b/aoc2023/build/dev/erlang/pqueue/src/pqueue2.erl deleted file mode 100644 index bbdeaaf..0000000 --- a/aoc2023/build/dev/erlang/pqueue/src/pqueue2.erl +++ /dev/null @@ -1,483 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% @doc -%%% ==Skew Heap Priority Queue.== -%%% Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority -%%% queue implementation. Unfortunately, testing has shown this solution to -%%% be more than 2 times slower than pqueue. -%%% @end -%%% -%%% MIT License -%%% -%%% Copyright (c) 2011-2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%% @author Michael Truog -%%% @copyright 2011-2020 Michael Truog -%%% @version 2.0.1 {@date} {@time} -%%%------------------------------------------------------------------------ - --module(pqueue2). --author('mjtruog at protonmail dot com'). - -%% external interface --export([in/2, - in/3, - is_empty/1, - is_queue/1, - len/1, - new/0, - out/1, - out/2, - pout/1, - to_list/1, - test/0]). - -%%%------------------------------------------------------------------------ -%%% External interface functions -%%%------------------------------------------------------------------------ - --ifdef(ERLANG_OTP_VERSION_16). --type pqueue2() :: - empty | - {integer(), pqueue2(), pqueue2(), element, term()} | - {integer(), pqueue2(), pqueue2(), queue, queue()}. --else. --type pqueue2() :: - empty | - {integer(), pqueue2(), pqueue2(), element, term()} | - {integer(), pqueue2(), pqueue2(), queue, queue:queue()}. --endif. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of the 0 priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), pqueue2()) -> pqueue2(). - -in(Value, H) -> - in(Value, 0, H). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of a specific priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), integer(), pqueue2()) -> pqueue2(). - -in(Value, P, H) -> - merge({P, empty, empty, element, Value}, H). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue is empty.=== -%% @end -%%------------------------------------------------------------------------- - --spec is_empty(pqueue2()) -> 'true' | 'false'. - -is_empty(empty) -> - true; -is_empty({_, HL, HR, queue, Queue}) -> - is_empty(HL) andalso is_empty(HR) andalso queue:is_empty(Queue); -is_empty(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue type is as expected.=== -%% @end -%%------------------------------------------------------------------------- - --spec is_queue(pqueue2()) -> 'true' | 'false'. - -is_queue(empty) -> - true; -is_queue({P, _, _, element, _}) - when is_integer(P) -> - true; -is_queue({P, _, _, queue, Queue}) - when is_integer(P) -> - queue:is_queue(Queue); -is_queue(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Determine the length of a priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec len(pqueue2()) -> non_neg_integer(). - -len(H) -> - len(0, out(H)). -len(I, {empty, _}) -> - I; -len(I, {{value, _}, H}) -> - len(I + 1, out(H)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec new() -> pqueue2(). - -new() -> - empty. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec out(pqueue2()) -> - {{'value', term()}, pqueue2()} | {'empty', pqueue2()}. - -out(empty) -> - {empty, empty}; -out({_, HL, HR, element, Value}) -> - {{value, Value}, merge(HL, HR)}; -out({P, HL, HR, queue, Queue}) -> - case queue:out(Queue) of - {{value, _} = Result, NewQueue} -> - {Result, {P, HL, HR, queue, NewQueue}}; - {empty, _} -> - out(merge(HL, HR)) - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item of a specific priority from the head of the queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec out(integer(), pqueue2()) -> - {{'value', term()}, pqueue2()} | {'empty', pqueue2()}. - -out(_, empty) -> - {empty, empty}; -out(P, {P1, _, _, _, _} = H) when P < P1 -> - {empty, H}; -out(P, {P1, HL1, HR1, T, D}) when P > P1 -> - case out(P, HL1) of - {{value, _} = Result, HL2} -> - {Result, {P1, HL2, HR1, T, D}}; - {empty, HL2} -> - case out(P, HR1) of - {{value, _} = Result, HR2} -> - {Result, {P1, HL2, HR2, T, D}}; - {empty, HR2} -> - {empty, {P1, HL2, HR2, T, D}} - end - end; -out(P, {P, HL, HR, element, Value}) -> - {{value, Value}, merge(HL, HR)}; -out(P, {P, HL, HR, queue, Queue}) -> - case queue:out(Queue) of - {{value, _} = Result, NewQueue} -> - {Result, {P, HL, HR, queue, NewQueue}}; - {empty, _} -> - out(P, merge(HL, HR)) - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% Includes the priority in the return value. -%% @end -%%------------------------------------------------------------------------- - --spec pout(pqueue2()) -> - {{'value', term(), integer()}, pqueue2()} | {'empty', pqueue2()}. - -pout(empty) -> - {empty, empty}; -pout({P, HL, HR, element, Value}) -> - {{value, Value, P}, merge(HL, HR)}; -pout({P, HL, HR, queue, Queue}) -> - case queue:out(Queue) of - {{value, Value}, NewQueue} -> - {{value, Value, P}, {P, HL, HR, queue, NewQueue}}; - {empty, _} -> - pout(merge(HL, HR)) - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list.=== -%% @end -%%------------------------------------------------------------------------- - --spec to_list(pqueue2()) -> list(term()). - -to_list(H) -> - to_list([], out(H)). -to_list(L, {empty, _}) -> - lists:reverse(L); -to_list(L, {{value, Value}, H}) -> - to_list([Value | L], out(H)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Regression test.=== -%% @end -%%------------------------------------------------------------------------- - -test() -> - Q0 = pqueue2:new(), - true = pqueue2:is_queue(Q0), - Q1 = pqueue2:in(20, 20, Q0), - Q2 = pqueue2:in(19, 19, Q1), - Q3 = pqueue2:in(18, 18, Q2), - Q4 = pqueue2:in(17, 17, Q3), - Q5 = pqueue2:in(16, 16, Q4), - Q6 = pqueue2:in(15, 15, Q5), - Q7 = pqueue2:in(14, 14, Q6), - Q8 = pqueue2:in(13, 13, Q7), - Q9 = pqueue2:in(12, 12, Q8), - Q10 = pqueue2:in(11, 11, Q9), - Q11 = pqueue2:in(10, 10, Q10), - Q12 = pqueue2:in(9, 9, Q11), - Q13 = pqueue2:in(8, 8, Q12), - Q14 = pqueue2:in(7, 7, Q13), - Q15 = pqueue2:in(6, 6, Q14), - Q16 = pqueue2:in(5, 5, Q15), - Q17 = pqueue2:in(4, 4, Q16), - Q18 = pqueue2:in(3, 3, Q17), - Q19 = pqueue2:in(2, 2, Q18), - Q20 = pqueue2:in(1, 1, Q19), - Q21 = pqueue2:in(0, 0, Q20), - Q22 = pqueue2:in(-1, -1, Q21), - Q23 = pqueue2:in(-2, -2, Q22), - Q24 = pqueue2:in(-3, -3, Q23), - Q25 = pqueue2:in(-4, -4, Q24), - Q26 = pqueue2:in(-5, -5, Q25), - Q27 = pqueue2:in(-6, -6, Q26), - Q28 = pqueue2:in(-7, -7, Q27), - Q29 = pqueue2:in(-8, -8, Q28), - Q30 = pqueue2:in(-9, -9, Q29), - Q31 = pqueue2:in(-10, -10, Q30), - Q32 = pqueue2:in(-11, -11, Q31), - Q33 = pqueue2:in(-12, -12, Q32), - Q34 = pqueue2:in(-13, -13, Q33), - Q35 = pqueue2:in(-14, -14, Q34), - Q36 = pqueue2:in(-15, -15, Q35), - Q37 = pqueue2:in(-16, -16, Q36), - Q38 = pqueue2:in(-17, -17, Q37), - Q39 = pqueue2:in(-18, -18, Q38), - Q40 = pqueue2:in(-19, -19, Q39), - Q41 = pqueue2:in(-20, -20, Q40), - Q42 = pqueue2:in(-20, -20, Q41), - Q43 = pqueue2:in(-19, -19, Q42), - Q44 = pqueue2:in(-18, -18, Q43), - Q45 = pqueue2:in(-17, -17, Q44), - Q46 = pqueue2:in(-16, -16, Q45), - Q47 = pqueue2:in(-15, -15, Q46), - Q48 = pqueue2:in(-14, -14, Q47), - Q49 = pqueue2:in(-13, -13, Q48), - Q50 = pqueue2:in(-12, -12, Q49), - Q51 = pqueue2:in(-11, -11, Q50), - Q52 = pqueue2:in(-10, -10, Q51), - Q53 = pqueue2:in(-9, -9, Q52), - Q54 = pqueue2:in(-8, -8, Q53), - Q55 = pqueue2:in(-7, -7, Q54), - Q56 = pqueue2:in(-6, -6, Q55), - Q57 = pqueue2:in(-5, -5, Q56), - Q58 = pqueue2:in(-4, -4, Q57), - Q59 = pqueue2:in(-3, -3, Q58), - Q60 = pqueue2:in(-2, -2, Q59), - Q61 = pqueue2:in(-1, -1, Q60), - Q62 = pqueue2:in(0, 0, Q61), - Q63 = pqueue2:in(1, 1, Q62), - Q64 = pqueue2:in(2, 2, Q63), - Q65 = pqueue2:in(3, 3, Q64), - Q66 = pqueue2:in(4, 4, Q65), - Q67 = pqueue2:in(5, 5, Q66), - Q68 = pqueue2:in(6, 6, Q67), - Q69 = pqueue2:in(7, 7, Q68), - Q70 = pqueue2:in(8, 8, Q69), - Q71 = pqueue2:in(9, 9, Q70), - Q72 = pqueue2:in(10, 10, Q71), - Q73 = pqueue2:in(11, 11, Q72), - Q74 = pqueue2:in(12, 12, Q73), - Q75 = pqueue2:in(13, 13, Q74), - Q76 = pqueue2:in(14, 14, Q75), - Q77 = pqueue2:in(15, 15, Q76), - Q78 = pqueue2:in(16, 16, Q77), - Q79 = pqueue2:in(17, 17, Q78), - Q80 = pqueue2:in(18, 18, Q79), - Q81 = pqueue2:in(19, 19, Q80), - Q82 = pqueue2:in(20, 20, Q81), - true = pqueue2:is_queue(Q82), - 82 = pqueue2:len(Q82), - [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14, - -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6, - -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, - 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, - 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue2:to_list(Q82), - {{value, -20}, Q83} = pqueue2:out(Q82), - {{value, -20}, Q84} = pqueue2:out(Q83), - {{value, -19}, Q85} = pqueue2:out(Q84), - {{value, -19}, Q86} = pqueue2:out(Q85), - {{value, -18}, Q87} = pqueue2:out(Q86), - {{value, -18}, Q88} = pqueue2:out(Q87), - {{value, 0}, Q89} = pqueue2:out(0, Q88), - {{value, 0}, Q90} = pqueue2:out(0, Q89), - {empty, _} = pqueue2:out(0, Q90), - {{value, -17, -17}, Q91} = pqueue2:pout(Q90), - {{value, -17, -17}, Q92} = pqueue2:pout(Q91), - {{value, -16, -16}, Q93} = pqueue2:pout(Q92), - {{value, -16, -16}, Q94} = pqueue2:pout(Q93), - {{value, -15, -15}, Q95} = pqueue2:pout(Q94), - {{value, -15, -15}, Q96} = pqueue2:pout(Q95), - {{value, -14, -14}, Q97} = pqueue2:pout(Q96), - {{value, -14, -14}, Q98} = pqueue2:pout(Q97), - {{value, -13, -13}, Q99} = pqueue2:pout(Q98), - {{value, -13, -13}, Q100} = pqueue2:pout(Q99), - {{value, -12, -12}, Q101} = pqueue2:pout(Q100), - {{value, -12, -12}, Q102} = pqueue2:pout(Q101), - {{value, -11, -11}, Q103} = pqueue2:pout(Q102), - {{value, -11, -11}, Q104} = pqueue2:pout(Q103), - {{value, -10, -10}, Q105} = pqueue2:pout(Q104), - {{value, -10, -10}, Q106} = pqueue2:pout(Q105), - {{value, -9, -9}, Q107} = pqueue2:pout(Q106), - {{value, -9, -9}, Q108} = pqueue2:pout(Q107), - {{value, -8, -8}, Q109} = pqueue2:pout(Q108), - {{value, -8, -8}, Q110} = pqueue2:pout(Q109), - {{value, -7, -7}, Q111} = pqueue2:pout(Q110), - {{value, -7, -7}, Q112} = pqueue2:pout(Q111), - {{value, -6, -6}, Q113} = pqueue2:pout(Q112), - {{value, -6, -6}, Q114} = pqueue2:pout(Q113), - {{value, -5, -5}, Q115} = pqueue2:pout(Q114), - {{value, -5, -5}, Q116} = pqueue2:pout(Q115), - {{value, -4, -4}, Q117} = pqueue2:pout(Q116), - {{value, -4, -4}, Q118} = pqueue2:pout(Q117), - {{value, -3, -3}, Q119} = pqueue2:pout(Q118), - {{value, -3, -3}, Q120} = pqueue2:pout(Q119), - {{value, -2, -2}, Q121} = pqueue2:pout(Q120), - {{value, -2, -2}, Q122} = pqueue2:pout(Q121), - {{value, -1, -1}, Q123} = pqueue2:pout(Q122), - {{value, -1, -1}, Q124} = pqueue2:pout(Q123), - {{value, 1, 1}, Q125} = pqueue2:pout(Q124), - {{value, 1, 1}, Q126} = pqueue2:pout(Q125), - {{value, 2, 2}, Q127} = pqueue2:pout(Q126), - {{value, 2, 2}, Q128} = pqueue2:pout(Q127), - {{value, 3, 3}, Q129} = pqueue2:pout(Q128), - {{value, 3, 3}, Q130} = pqueue2:pout(Q129), - {{value, 4, 4}, Q131} = pqueue2:pout(Q130), - {{value, 4, 4}, Q132} = pqueue2:pout(Q131), - {{value, 5, 5}, Q133} = pqueue2:pout(Q132), - {{value, 5, 5}, Q134} = pqueue2:pout(Q133), - {{value, 6, 6}, Q135} = pqueue2:pout(Q134), - {{value, 6, 6}, Q136} = pqueue2:pout(Q135), - {{value, 7, 7}, Q137} = pqueue2:pout(Q136), - {{value, 7, 7}, Q138} = pqueue2:pout(Q137), - {{value, 8, 8}, Q139} = pqueue2:pout(Q138), - {{value, 8, 8}, Q140} = pqueue2:pout(Q139), - {{value, 9, 9}, Q141} = pqueue2:pout(Q140), - {{value, 9, 9}, Q142} = pqueue2:pout(Q141), - {{value, 10, 10}, Q143} = pqueue2:pout(Q142), - {{value, 10, 10}, Q144} = pqueue2:pout(Q143), - {{value, 11, 11}, Q145} = pqueue2:pout(Q144), - {{value, 11, 11}, Q146} = pqueue2:pout(Q145), - {{value, 12, 12}, Q147} = pqueue2:pout(Q146), - {{value, 12, 12}, Q148} = pqueue2:pout(Q147), - {{value, 13, 13}, Q149} = pqueue2:pout(Q148), - {{value, 13, 13}, Q150} = pqueue2:pout(Q149), - {{value, 14, 14}, Q151} = pqueue2:pout(Q150), - {{value, 14, 14}, Q152} = pqueue2:pout(Q151), - {{value, 15, 15}, Q153} = pqueue2:pout(Q152), - {{value, 15, 15}, Q154} = pqueue2:pout(Q153), - {{value, 16, 16}, Q155} = pqueue2:pout(Q154), - {{value, 16, 16}, Q156} = pqueue2:pout(Q155), - {{value, 17, 17}, Q157} = pqueue2:pout(Q156), - {{value, 17, 17}, Q158} = pqueue2:pout(Q157), - {{value, 18, 18}, Q159} = pqueue2:pout(Q158), - {{value, 18, 18}, Q160} = pqueue2:pout(Q159), - {{value, 19, 19}, Q161} = pqueue2:pout(Q160), - {{value, 19, 19}, Q162} = pqueue2:pout(Q161), - {{value, 20, 20}, Q163} = pqueue2:pout(Q162), - {{value, 20, 20}, Q164} = pqueue2:pout(Q163), - true = pqueue2:is_empty(Q164), - {empty, Q165} = pqueue2:pout(Q164), - true = pqueue2:is_empty(Q165), - % test case 1, based on proper testing - C1V0 = pqueue2:in(-18, pqueue2:new()), - C1V1 = pqueue2:in(9, C1V0), - C1V2 = pqueue2:in(-10, -4, C1V1), - C1V3 = pqueue2:in(-29, C1V2), - C1V4 = pqueue2:in(11, C1V3), - 5 = pqueue2:len(C1V4), - [-10, -18, 9, -29, 11] = pqueue2:to_list(C1V4), - % test case 2, based on proper testing - C2V0 = pqueue2:in(-4, -15, pqueue2:new()), - C2V1 = pqueue2:in(13, C2V0), - C2V2 = pqueue2:in(2, C2V1), - [-4, 13, 2] = to_list(C2V2), - ok. - -%%%------------------------------------------------------------------------ -%%% Private functions -%%%------------------------------------------------------------------------ - -merge(empty, empty) -> - empty; -merge(empty, {_, _, _, _, _} = H) -> - H; -merge({_, _, _, _, _} = H, empty) -> - H; -merge({P1, HL1, HR1, T, D}, {P2, _, _, _, _} = H2) when P1 < P2 -> - {P1, HL1, merge(HR1, H2), T, D}; -merge({P1, _, _, _, _} = H1, {P2, HL2, HR2, T, D}) when P1 > P2 -> - {P2, HL2, merge(H1, HR2), T, D}; -merge({P, HL1, HR1, element, Value1}, {P, HL2, HR2, element, Value2}) -> - {P, merge(HL1, HR1), merge(HL2, HR2), queue, - queue:from_list([Value2, Value1])}; -merge({P, HL1, HR1, queue, Queue}, {P, HL2, HR2, element, Value}) -> - {P, merge(HL1, HR1), merge(HL2, HR2), queue, queue:in(Value, Queue)}; -merge({P, HL1, HR1, element, Value}, {P, HL2, HR2, queue, Queue}) -> - {P, merge(HL1, HR1), merge(HL2, HR2), queue, queue:in(Value, Queue)}. - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - --include("pqueue_test.hrl"). - -module_test_() -> - {timeout, ?TEST_TIMEOUT, [ - {"internal tests", ?_assertOk(test())} - ]}. - -long_test_() -> - test_condition([ - {"proper tests", ?_assert(pqueue_proper:qc_pq2())} - ], ?CLOUDI_LONG_TEST_TIMEOUT). - --endif. - diff --git a/aoc2023/build/dev/erlang/pqueue/src/pqueue3.erl b/aoc2023/build/dev/erlang/pqueue/src/pqueue3.erl deleted file mode 100644 index 03b370a..0000000 --- a/aoc2023/build/dev/erlang/pqueue/src/pqueue3.erl +++ /dev/null @@ -1,404 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% @doc -%%% ==A Large Priority Queue.== -%%% This priority queue implementation depends on layered tuples, so that tuple -%%% access times can be exploited for quick in/out priority queue operations -%%% when using 64 or more total priorities. This implementation was created -%%% to avoid the slowness within the priority queue used by -%%% both RabbitMQ and Riak -%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -%%% @end -%%% -%%% MIT License -%%% -%%% Copyright (c) 2011-2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%% @author Michael Truog -%%% @copyright 2011-2020 Michael Truog -%%% @version 2.0.1 {@date} {@time} -%%%------------------------------------------------------------------------ - --module(pqueue3). --author('mjtruog at protonmail dot com'). - -%% external interface --export([in/2, % O(1) - in/3, % O(1) - is_empty/1, % O(1) - is_queue/1, % O(1) - len/1, % O(N) - new/0, % O(1) - new/1, % O(1) - out/1, % O(1) amortized, O(N) worst case - out/2, % O(1) amortized, O(N) worst case - pout/1, % O(1) amortized, O(N) worst case - to_list/1]). % O(N) - -%%%------------------------------------------------------------------------ -%%% External interface functions -%%%------------------------------------------------------------------------ - --type pqueue3() :: {integer(), integer(), empty | integer(), tuple()}. --type pqueue3_empty() :: {integer(), integer(), empty, tuple()}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of the 0 priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), pqueue3()) -> pqueue3(). - -in(Value, Q) -> - in(Value, 0, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of a specific priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), integer(), pqueue3()) -> pqueue3(). - -in(_, P, {Size, Offset, _, _}) - when (P + Offset) < 0; (P + Offset) > Size -> - erlang:exit(badarg); -in(Value, P, {Size, Offset, empty, Bins}) -> - PriorityIndex = P + Offset, - {Size, Offset, PriorityIndex, - in_queue(layer_indexes(Size, PriorityIndex), Value, Bins)}; -in(Value, P, {Size, Offset, I, Bins}) - when (P + Offset) < I -> - PriorityIndex = P + Offset, - {Size, Offset, PriorityIndex, - in_queue(layer_indexes(Size, PriorityIndex), Value, Bins)}; -in(Value, P, {Size, Offset, I, Bins}) -> - {Size, Offset, I, - in_queue(layer_indexes(Size, P + Offset), Value, Bins)}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue is empty.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_empty(pqueue3()) -> 'true' | 'false'. - -is_empty({_, _, empty, _}) -> - true; -is_empty({_, _, _, _} = Q) -> - case out(Q) of - {empty, _} -> - true; - {{value, _}, _} -> - false - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue type is as expected.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_queue(pqueue3()) -> 'true' | 'false'. - -is_queue({Size, Offset, I, Bins}) - when is_integer(Size), is_integer(Offset), is_tuple(Bins) -> - (I =:= empty) or is_integer(I); -is_queue(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Determine the length of a priority queue.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec len(pqueue3()) -> non_neg_integer(). - -len(Q) -> - len(0, out(Q)). -len(I, {empty, _}) -> - I; -len(I, {{value, _}, Q}) -> - len(I + 1, out(Q)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec new() -> pqueue3_empty(). - -new() -> - new([]). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue with customization options.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec new(list({atom(), term()})) -> pqueue3(). - -new(Options) -> - Size = proplists:get_value(priorities, Options, 256), - MiddleZero = proplists:get_value(middle_priority_zero, Options, true), - Offset = if - MiddleZero =:= true -> - erlang:round((Size / 2) + 0.5) - 1; - true -> - 0 - end, - {Size, Offset, empty, create(layer_sizes(Size))}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(pqueue3()) -> - {{'value', term()}, pqueue3()} | {'empty', pqueue3()}. - -out({_, _, empty, _} = Q) -> - {empty, Q}; -out({Size, Offset, I, Bins}) -> - {Result, NewI, NewBins} = out_check( - I, Size, out_queue(layer_indexes(Size, I), Bins) - ), - {Result, {Size, Offset, NewI, NewBins}}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item of a specific priority from the head of the queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(integer(), pqueue3()) -> - {{'value', term()}, pqueue3()} | {'empty', pqueue3()}. - -out(P, {Size, Offset, _, _}) - when (P + Offset) < 0; (P + Offset) > Size -> - erlang:exit(badarg); -out(_, {_, _, empty, _} = Q) -> - {empty, Q}; -out(P, {Size, Offset, I, Bins}) -> - {Result, NewBins} = out_queue(layer_indexes(Size, P + Offset), Bins), - {Result, {Size, Offset, I, NewBins}}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% Includes the priority in the return value. -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec pout(pqueue3()) -> - {{'value', term(), integer()}, pqueue3()} | {'empty', pqueue3()}. - -pout({_, _, empty, _} = Q) -> - {empty, Q}; -pout({Size, Offset, I, Bins}) -> - {Result, NewI, NewBins} = pout_check( - I, Size, Offset, out_queue(layer_indexes(Size, I), Bins) - ), - {Result, {Size, Offset, NewI, NewBins}}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec to_list(pqueue3()) -> list(term()). - -to_list(Q) -> - to_list([], out(Q)). -to_list(L, {empty, _}) -> - lists:reverse(L); -to_list(L, {{value, Value}, Q}) -> - to_list([Value | L], out(Q)). - -%%%------------------------------------------------------------------------ -%%% Private functions -%%%------------------------------------------------------------------------ - -create([]) -> - queue:new(); - -create([I | Is]) -> - erlang:make_tuple(I + 1, create(Is)). - -in_queue({I1}, Value, Bins1) -> - erlang:setelement(I1, Bins1, queue:in(Value, erlang:element(I1, Bins1))); - -in_queue({I1, I2}, Value, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, queue:in(Value, erlang:element(I2, Bins2)))); - -in_queue({I1, I2, I3}, Value, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - Bins3 = erlang:element(I2, Bins2), - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, - erlang:setelement(I3, Bins3, queue:in(Value, erlang:element(I3, Bins3))))); - -in_queue({I1, I2, I3, I4}, Value, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - Bins3 = erlang:element(I2, Bins2), - Bins4 = erlang:element(I3, Bins3), - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, - erlang:setelement(I3, Bins3, - erlang:setelement(I4, Bins4, queue:in(Value, erlang:element(I4, Bins4)))))). - -pout_check(Size, Size, _, {empty, Bins}) -> - {empty, empty, Bins}; -pout_check(I, _, Offset, {{value, Value}, Bins}) -> - {{value, Value, I - Offset}, I, Bins}; -pout_check(I, Size, Offset, {empty, Bins}) -> - NewI = I + 1, - pout_check(NewI, Size, Offset, out_queue(layer_indexes(Size, NewI), Bins)). - -out_check(Size, Size, {empty, Bins}) -> - {empty, empty, Bins}; -out_check(I, _, {{value, _} = Result, Bins}) -> - {Result, I, Bins}; -out_check(I, Size, {empty, Bins}) -> - NewI = I + 1, - out_check(NewI, Size, out_queue(layer_indexes(Size, NewI), Bins)). - -out_queue({I1}, Bins1) -> - {Result, NewQueue} = queue:out(erlang:element(I1, Bins1)), - {Result, - erlang:setelement(I1, Bins1, NewQueue)}; - -out_queue({I1, I2}, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - {Result, NewQueue} = queue:out(erlang:element(I2, Bins2)), - {Result, - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, NewQueue))}; - -out_queue({I1, I2, I3}, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - Bins3 = erlang:element(I2, Bins2), - {Result, NewQueue} = queue:out(erlang:element(I3, Bins3)), - {Result, - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, - erlang:setelement(I3, Bins3, NewQueue)))}; - -out_queue({I1, I2, I3, I4}, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - Bins3 = erlang:element(I2, Bins2), - Bins4 = erlang:element(I3, Bins3), - {Result, NewQueue} = queue:out(erlang:element(I4, Bins4)), - {Result, - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, - erlang:setelement(I3, Bins3, - erlang:setelement(I4, Bins4, NewQueue))))}. - -layer_indexes(Size, PriorityIndex) -> - if - Size =< 127 -> - {PriorityIndex + 1}; - Size =< 255 -> - <> = <>, - {I1 + 1, I2 + 1}; - Size =< 511 -> - <> = <>, - {I1 + 1, I2 + 1}; - Size =< 1023 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 2047 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 4095 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 8191 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 16383 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 32767 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1, I4 + 1}; - Size =< 65535 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1, I4 + 1} - end. - -layer_sizes(Size) -> - if - Size =< 127 -> - <> = <<127:7>>, - [I1]; - Size =< 255 -> - <> = <<255:8>>, - [I1, I2]; - Size =< 511 -> - <> = <<511:9>>, - [I1, I2]; - Size =< 1023 -> - <> = <<1023:10>>, - [I1, I2, I3]; - Size =< 2047 -> - <> = <<2047:11>>, - [I1, I2, I3]; - Size =< 4095 -> - <> = <<4095:12>>, - [I1, I2, I3]; - Size =< 8191 -> - <> = <<8191:13>>, - [I1, I2, I3]; - Size =< 16383 -> - <> = <<16383:14>>, - [I1, I2, I3]; - Size =< 32767 -> - <> = <<32767:15>>, - [I1, I2, I3, I4]; - Size =< 65535 -> - <> = <<65535:16>>, - [I1, I2, I3, I4] - end. - diff --git a/aoc2023/build/dev/erlang/pqueue/src/pqueue4.erl b/aoc2023/build/dev/erlang/pqueue/src/pqueue4.erl deleted file mode 100644 index 30b188d..0000000 --- a/aoc2023/build/dev/erlang/pqueue/src/pqueue4.erl +++ /dev/null @@ -1,11662 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% @doc -%%% ==Static Priority Queue.== -%%% This priority queue implementation depends on a static number of priorities -%%% (-128 (high) to 128 (low)) so that tuple access times can be exploited for -%%% quick in/out priority queue operations. This implementation was created to -%%% avoid the slowness within the priority queue used by both RabbitMQ and Riak -%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -%%% @end -%%% -%%% MIT License -%%% -%%% Copyright (c) 2011-2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%% -%%% queue_remove_unique/2 is based on queue:filter/2 -%%% which is under the Apache License 2.0: -%%% -%%% Copyright Ericsson AB 1996-2016. All Rights Reserved. -%%% -%%% Licensed under the Apache License, Version 2.0 (the "License"); -%%% you may not use this file except in compliance with the License. -%%% You may obtain a copy of the License at -%%% -%%% http://www.apache.org/licenses/LICENSE-2.0 -%%% -%%% Unless required by applicable law or agreed to in writing, software -%%% distributed under the License is distributed on an "AS IS" BASIS, -%%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%%% See the License for the specific language governing permissions and -%%% limitations under the License. -%%% -%%% @author Michael Truog -%%% @copyright 2011-2020 Michael Truog -%%% @version 2.0.1 {@date} {@time} -%%%------------------------------------------------------------------------ - --module(pqueue4). --author('mjtruog at protonmail dot com'). - -%% external interface --export([filter/2, % O(N) - filter/3, % O(N) - in/2, % O(1) - in/3, % O(1) - is_empty/1, % O(1) - is_queue/1, % O(1) - len/1, % O(1) - new/0, % O(1) - out/1, % O(1) amortized, O(N) worst case - out/2, % O(1) amortized, O(N) worst case - pout/1, % O(1) amortized, O(N) worst case - remove_unique/2, % O(N) but smaller constant than filter/2 - remove_unique/3, % O(N) but smaller constant than filter/3 - to_list/1, % O(N) - to_plist/1, % O(N) - test/0]). - -%%%------------------------------------------------------------------------ -%%% External interface functions -%%%------------------------------------------------------------------------ - --type priority() :: -128..128. --ifdef(ERLANG_OTP_VERSION_16). --type pqueue4(_) :: - {priority() | 'empty', % current priority - non_neg_integer(), % total size - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - queue(), - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}}. --else. --type pqueue4(T) :: - {priority() | 'empty', % current priority - non_neg_integer(), % total size - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - queue:queue(T), - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}}. --endif. --type pqueue4() :: pqueue4(any()). --export_type([pqueue4/0, pqueue4/1]). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Filter the priority queue.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec filter(fun((any()) -> boolean()), pqueue4()) -> pqueue4(). - -filter(F, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) - when is_function(F, 1) -> - Q; -filter(F, {Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) - when is_function(F, 1) -> - filter_all(Pc, F, Q). - -filter_all(_, _, {_, 0, _, _, _, _, _, _, _, _, - _, _, _, _, _, _, _, _, _} = Q) -> - Q; -filter_all(128, F, Q) -> - filter_priority(128, F, Q); -filter_all(P, F, Q) when is_integer(P) -> - filter_all(P + 1, F, filter_priority(P, F, Q)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Filter a specific priority within the priority queue.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec filter(fun((any()) -> boolean()), integer(), pqueue4()) -> pqueue4(). - -filter(_, P, _) - when P < -128; P > 128 -> - erlang:exit(badarg); -filter(F, P, Q) when is_function(F, 1) -> - filter_priority(P, F, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of the 0 priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(any(), pqueue4()) -> pqueue4(). - -in(X, Q) -> - in(X, 0, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of a specific priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(any(), integer(), pqueue4()) -> pqueue4(). - -in(_, P, _) - when P < -128; P > 128 -> - erlang:exit(badarg); -in(X, P, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - in_higher(P, Q, X); % (in a higher priority) -in(X, P, {Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) - when P < Pc -> - in_higher(P, Q, X); % (in a higher priority) -in(X, P, Q) -> - in_lower(P, Q, X). % (in a lower priority) - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue is empty.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_empty(pqueue4()) -> 'true' | 'false'. - -is_empty({_, 0, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> - true; -is_empty({_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue type is as expected.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_queue(pqueue4()) -> 'true' | 'false'. - -is_queue({Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) - when is_integer(Size), - tuple_size(Qn128) == 16, tuple_size(Qn112) == 16, - tuple_size(Qn96) == 16, tuple_size(Qn80) == 16, - tuple_size(Qn64) == 16, tuple_size(Qn48) == 16, - tuple_size(Qn32) == 16, tuple_size(Qn16) == 16, - tuple_size(Qp16) == 16, tuple_size(Qp32) == 16, - tuple_size(Qp48) == 16, tuple_size(Qp64) == 16, - tuple_size(Qp80) == 16, tuple_size(Qp96) == 16, - tuple_size(Qp112) == 16, tuple_size(Qp128) == 16 -> - (((Pc =:= empty) or is_integer(Pc)) and queue:is_queue(Q0)); -is_queue(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Determine the length of a priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec len(pqueue4()) -> non_neg_integer(). - -len({_, Size, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> - Size. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec new() -> pqueue4(). - -new() -> - {empty, % current priority - 0, % current size - erlang:make_tuple(16, queue:new()), % priority [-128..-113] - erlang:make_tuple(16, queue:new()), % priority [-112.. -97] - erlang:make_tuple(16, queue:new()), % priority [ -96.. -81] - erlang:make_tuple(16, queue:new()), % priority [ -80.. -65] - erlang:make_tuple(16, queue:new()), % priority [ -64.. -49] - erlang:make_tuple(16, queue:new()), % priority [ -48.. -33] - erlang:make_tuple(16, queue:new()), % priority [ -32.. -17] - erlang:make_tuple(16, queue:new()), % priority [ -16.. -1] - queue:new(), % priority 0 (default) - erlang:make_tuple(16, queue:new()), % priority [ 1.. 16] - erlang:make_tuple(16, queue:new()), % priority [ 17.. 32] - erlang:make_tuple(16, queue:new()), % priority [ 33.. 48] - erlang:make_tuple(16, queue:new()), % priority [ 49.. 64] - erlang:make_tuple(16, queue:new()), % priority [ 65.. 80] - erlang:make_tuple(16, queue:new()), % priority [ 81.. 96] - erlang:make_tuple(16, queue:new()), % priority [ 97.. 112] - erlang:make_tuple(16, queue:new())}. % priority [ 113.. 128] - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(pqueue4()) -> - {{'value', any()}, pqueue4()} | {'empty', pqueue4()}. - -out({empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -out({Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - out_current(Pc, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item of a specific priority from the head of the queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(integer(), pqueue4()) -> - {{'value', any()}, pqueue4()} | {'empty', pqueue4()}. - -out(P, _) - when P < -128; P > 128 -> - erlang:exit(badarg); -out(_, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -out(P, Q) -> - out_specific(P, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% Includes the priority in the return value. -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec pout(pqueue4()) -> - {{'value', any(), integer()}, pqueue4()} | {'empty', pqueue4()}. - -pout({empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -pout({Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - out_current_p(Pc, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Remove a unique value from the priority queue with a binary predicate.=== -%% O(N) but smaller constant than filter/2 -%% @end -%%------------------------------------------------------------------------- - --spec remove_unique(fun((any()) -> boolean()), pqueue4()) -> - {boolean(), pqueue4()}. - -remove_unique(F, {_, 0, _, _, _, _, _, _, _, _, - _, _, _, _, _, _, _, _, _} = Q) - when is_function(F, 1) -> - {false, Q}; -remove_unique(F, {Pc, _, _, _, _, _, _, _, _, _, - _, _, _, _, _, _, _, _, _} = Q) - when is_function(F, 1) -> - remove_unique_all(Pc, F, Q). - -remove_unique_all(128, F, Q) -> - remove_unique_p(128, F, Q); -remove_unique_all(P, F, Q) when is_integer(P) -> - case remove_unique_p(P, F, Q) of - {true, _} = Result -> - Result; - {false, Q} -> - remove_unique_all(P + 1, F, Q) - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Remove a unique value in a specific priority within the priority queue with a binary predicate.=== -%% O(N) but smaller constant than filter/3 -%% @end -%%------------------------------------------------------------------------- - --spec remove_unique(fun((any()) -> boolean()), integer(), pqueue4()) -> - {boolean(), pqueue4()}. - -remove_unique(_, P, _) - when P < -128; P > 128 -> - erlang:exit(badarg); -remove_unique(F, P, Q) when is_function(F, 1) -> - remove_unique_p(P, F, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec to_list(pqueue4()) -> list(). - -to_list(Q) -> - to_list([], out(Q)). -to_list(L, {empty, _}) -> - lists:reverse(L); -to_list(L, {{value, Value}, Q}) -> - to_list([Value | L], out(Q)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list with priorities.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec to_plist(pqueue4()) -> list({priority(), list()}). - -to_plist(Q) -> - to_plist([], [], undefined, pout(Q)). -to_plist(L, [], _, {empty, _}) -> - lists:reverse(L); -to_plist(L, Lp, Pc, {empty, _}) -> - lists:reverse([{Pc, lists:reverse(Lp)} | L]); -to_plist(L, Lp, Pc, {{value, Value, Pc}, Q}) -> - to_plist(L, [Value | Lp], Pc, pout(Q)); -to_plist(L, [], _, {{value, Value, Pc}, Q}) -> - to_plist(L, [Value], Pc, pout(Q)); -to_plist(L, Lp, P, {{value, Value, Pc}, Q}) -> - to_plist([{P, lists:reverse(Lp)} | L], [Value], Pc, pout(Q)). - -%%------------------------------------------------------------------------- -%% @private -%% @doc -%% ===Regression test.=== -%% @end -%%------------------------------------------------------------------------- - -test() -> - Q0 = pqueue4:new(), - true = pqueue4:is_queue(Q0), - Q1 = pqueue4:in(20, 20, Q0), - Q2 = pqueue4:in(19, 19, Q1), - Q3 = pqueue4:in(18, 18, Q2), - Q4 = pqueue4:in(17, 17, Q3), - Q5 = pqueue4:in(16, 16, Q4), - Q6 = pqueue4:in(15, 15, Q5), - Q7 = pqueue4:in(14, 14, Q6), - Q8 = pqueue4:in(13, 13, Q7), - Q9 = pqueue4:in(12, 12, Q8), - Q10 = pqueue4:in(11, 11, Q9), - Q11 = pqueue4:in(10, 10, Q10), - Q12 = pqueue4:in(9, 9, Q11), - Q13 = pqueue4:in(8, 8, Q12), - Q14 = pqueue4:in(7, 7, Q13), - Q15 = pqueue4:in(6, 6, Q14), - Q16 = pqueue4:in(5, 5, Q15), - Q17 = pqueue4:in(4, 4, Q16), - Q18 = pqueue4:in(3, 3, Q17), - Q19 = pqueue4:in(2, 2, Q18), - Q20 = pqueue4:in(1, 1, Q19), - Q21 = pqueue4:in(0, 0, Q20), - Q22 = pqueue4:in(-1, -1, Q21), - Q23 = pqueue4:in(-2, -2, Q22), - Q24 = pqueue4:in(-3, -3, Q23), - Q25 = pqueue4:in(-4, -4, Q24), - Q26 = pqueue4:in(-5, -5, Q25), - Q27 = pqueue4:in(-6, -6, Q26), - Q28 = pqueue4:in(-7, -7, Q27), - Q29 = pqueue4:in(-8, -8, Q28), - Q30 = pqueue4:in(-9, -9, Q29), - Q31 = pqueue4:in(-10, -10, Q30), - Q32 = pqueue4:in(-11, -11, Q31), - Q33 = pqueue4:in(-12, -12, Q32), - Q34 = pqueue4:in(-13, -13, Q33), - Q35 = pqueue4:in(-14, -14, Q34), - Q36 = pqueue4:in(-15, -15, Q35), - Q37 = pqueue4:in(-16, -16, Q36), - Q38 = pqueue4:in(-17, -17, Q37), - Q39 = pqueue4:in(-18, -18, Q38), - Q40 = pqueue4:in(-19, -19, Q39), - Q41 = pqueue4:in(-20, -20, Q40), - Q42 = pqueue4:in(-20, -20, Q41), - Q43 = pqueue4:in(-19, -19, Q42), - Q44 = pqueue4:in(-18, -18, Q43), - Q45 = pqueue4:in(-17, -17, Q44), - Q46 = pqueue4:in(-16, -16, Q45), - Q47 = pqueue4:in(-15, -15, Q46), - Q48 = pqueue4:in(-14, -14, Q47), - Q49 = pqueue4:in(-13, -13, Q48), - Q50 = pqueue4:in(-12, -12, Q49), - Q51 = pqueue4:in(-11, -11, Q50), - Q52 = pqueue4:in(-10, -10, Q51), - Q53 = pqueue4:in(-9, -9, Q52), - Q54 = pqueue4:in(-8, -8, Q53), - Q55 = pqueue4:in(-7, -7, Q54), - Q56 = pqueue4:in(-6, -6, Q55), - Q57 = pqueue4:in(-5, -5, Q56), - Q58 = pqueue4:in(-4, -4, Q57), - Q59 = pqueue4:in(-3, -3, Q58), - Q60 = pqueue4:in(-2, -2, Q59), - Q61 = pqueue4:in(-1, -1, Q60), - Q62 = pqueue4:in(0, 0, Q61), - Q63 = pqueue4:in(1, 1, Q62), - Q64 = pqueue4:in(2, 2, Q63), - Q65 = pqueue4:in(3, 3, Q64), - Q66 = pqueue4:in(4, 4, Q65), - Q67 = pqueue4:in(5, 5, Q66), - Q68 = pqueue4:in(6, 6, Q67), - Q69 = pqueue4:in(7, 7, Q68), - Q70 = pqueue4:in(8, 8, Q69), - Q71 = pqueue4:in(9, 9, Q70), - Q72 = pqueue4:in(10, 10, Q71), - Q73 = pqueue4:in(11, 11, Q72), - Q74 = pqueue4:in(12, 12, Q73), - Q75 = pqueue4:in(13, 13, Q74), - Q76 = pqueue4:in(14, 14, Q75), - Q77 = pqueue4:in(15, 15, Q76), - Q78 = pqueue4:in(16, 16, Q77), - Q79 = pqueue4:in(17, 17, Q78), - Q80 = pqueue4:in(18, 18, Q79), - Q81 = pqueue4:in(19, 19, Q80), - Q82 = pqueue4:in(20, 20, Q81), - true = pqueue4:is_queue(Q82), - 82 = pqueue4:len(Q82), - [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14, - -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6, - -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, - 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, - 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue4:to_list(Q82), - [{-20, [-20, -20]}, {-19, [-19, -19]}, {-18, [-18, -18]}, - {-17, [-17, -17]}, {-16, [-16, -16]}, {-15, [-15, -15]}, - {-14, [-14, -14]}, {-13, [-13, -13]}, {-12, [-12, -12]}, - {-11, [-11, -11]}, {-10, [-10, -10]}, {-9, [-9, -9]}, - {-8, [-8, -8]}, {-7, [-7, -7]}, {-6, [-6, -6]}, - {-5, [-5, -5]}, {-4, [-4, -4]}, {-3, [-3, -3]}, - {-2, [-2, -2]}, {-1, [-1, -1]}, {0, [0, 0]}, - {1, [1, 1]}, {2, [2, 2]}, {3, [3, 3]}, - {4, [4, 4]}, {5, [5, 5]}, {6, [6, 6]}, - {7, [7, 7]}, {8, [8, 8]}, {9, [9, 9]}, - {10, [10, 10]}, {11, [11, 11]}, {12, [12, 12]}, - {13, [13, 13]}, {14, [14, 14]}, {15, [15, 15]}, - {16, [16, 16]}, {17, [17, 17]}, {18, [18, 18]}, - {19, [19, 19]}, {20, [20, 20]}] = pqueue4:to_plist(Q82), - {{value, -20}, Q83} = pqueue4:out(Q82), - {{value, -20}, Q84} = pqueue4:out(Q83), - {{value, -19}, Q85} = pqueue4:out(Q84), - {{value, -19}, Q86} = pqueue4:out(Q85), - {{value, -18}, Q87} = pqueue4:out(Q86), - {{value, -18}, Q88} = pqueue4:out(Q87), - {{value, 0}, Q89} = pqueue4:out(0, Q88), - {{value, 0}, Q90} = pqueue4:out(0, Q89), - {empty, _} = pqueue4:out(0, Q90), - {{value, -17, -17}, Q91} = pqueue4:pout(Q90), - {{value, -17, -17}, Q92} = pqueue4:pout(Q91), - {{value, -16, -16}, Q93} = pqueue4:pout(Q92), - {{value, -16, -16}, Q94} = pqueue4:pout(Q93), - {{value, -15, -15}, Q95} = pqueue4:pout(Q94), - {{value, -15, -15}, Q96} = pqueue4:pout(Q95), - {{value, -14, -14}, Q97} = pqueue4:pout(Q96), - {{value, -14, -14}, Q98} = pqueue4:pout(Q97), - {{value, -13, -13}, Q99} = pqueue4:pout(Q98), - {{value, -13, -13}, Q100} = pqueue4:pout(Q99), - {{value, -12, -12}, Q101} = pqueue4:pout(Q100), - {{value, -12, -12}, Q102} = pqueue4:pout(Q101), - {{value, -11, -11}, Q103} = pqueue4:pout(Q102), - {{value, -11, -11}, Q104} = pqueue4:pout(Q103), - {{value, -10, -10}, Q105} = pqueue4:pout(Q104), - {{value, -10, -10}, Q106} = pqueue4:pout(Q105), - {{value, -9, -9}, Q107} = pqueue4:pout(Q106), - {{value, -9, -9}, Q108} = pqueue4:pout(Q107), - {{value, -8, -8}, Q109} = pqueue4:pout(Q108), - {{value, -8, -8}, Q110} = pqueue4:pout(Q109), - {{value, -7, -7}, Q111} = pqueue4:pout(Q110), - {{value, -7, -7}, Q112} = pqueue4:pout(Q111), - {{value, -6, -6}, Q113} = pqueue4:pout(Q112), - {{value, -6, -6}, Q114} = pqueue4:pout(Q113), - {{value, -5, -5}, Q115} = pqueue4:pout(Q114), - {{value, -5, -5}, Q116} = pqueue4:pout(Q115), - {{value, -4, -4}, Q117} = pqueue4:pout(Q116), - {{value, -4, -4}, Q118} = pqueue4:pout(Q117), - {{value, -3, -3}, Q119} = pqueue4:pout(Q118), - {{value, -3, -3}, Q120} = pqueue4:pout(Q119), - {{value, -2, -2}, Q121} = pqueue4:pout(Q120), - {{value, -2, -2}, Q122} = pqueue4:pout(Q121), - {{value, -1, -1}, Q123} = pqueue4:pout(Q122), - {{value, -1, -1}, Q124} = pqueue4:pout(Q123), - {{value, 1, 1}, Q125} = pqueue4:pout(Q124), - {{value, 1, 1}, Q126} = pqueue4:pout(Q125), - {{value, 2, 2}, Q127} = pqueue4:pout(Q126), - {{value, 2, 2}, Q128} = pqueue4:pout(Q127), - {{value, 3, 3}, Q129} = pqueue4:pout(Q128), - {{value, 3, 3}, Q130} = pqueue4:pout(Q129), - {{value, 4, 4}, Q131} = pqueue4:pout(Q130), - {{value, 4, 4}, Q132} = pqueue4:pout(Q131), - {{value, 5, 5}, Q133} = pqueue4:pout(Q132), - {{value, 5, 5}, Q134} = pqueue4:pout(Q133), - {{value, 6, 6}, Q135} = pqueue4:pout(Q134), - {{value, 6, 6}, Q136} = pqueue4:pout(Q135), - {{value, 7, 7}, Q137} = pqueue4:pout(Q136), - {{value, 7, 7}, Q138} = pqueue4:pout(Q137), - {{value, 8, 8}, Q139} = pqueue4:pout(Q138), - {{value, 8, 8}, Q140} = pqueue4:pout(Q139), - {{value, 9, 9}, Q141} = pqueue4:pout(Q140), - {{value, 9, 9}, Q142} = pqueue4:pout(Q141), - {{value, 10, 10}, Q143} = pqueue4:pout(Q142), - {{value, 10, 10}, Q144} = pqueue4:pout(Q143), - {{value, 11, 11}, Q145} = pqueue4:pout(Q144), - {{value, 11, 11}, Q146} = pqueue4:pout(Q145), - {{value, 12, 12}, Q147} = pqueue4:pout(Q146), - {{value, 12, 12}, Q148} = pqueue4:pout(Q147), - {{value, 13, 13}, Q149} = pqueue4:pout(Q148), - {{value, 13, 13}, Q150} = pqueue4:pout(Q149), - {{value, 14, 14}, Q151} = pqueue4:pout(Q150), - {{value, 14, 14}, Q152} = pqueue4:pout(Q151), - {{value, 15, 15}, Q153} = pqueue4:pout(Q152), - {{value, 15, 15}, Q154} = pqueue4:pout(Q153), - {{value, 16, 16}, Q155} = pqueue4:pout(Q154), - {{value, 16, 16}, Q156} = pqueue4:pout(Q155), - {{value, 17, 17}, Q157} = pqueue4:pout(Q156), - {{value, 17, 17}, Q158} = pqueue4:pout(Q157), - {{value, 18, 18}, Q159} = pqueue4:pout(Q158), - {{value, 18, 18}, Q160} = pqueue4:pout(Q159), - {{value, 19, 19}, Q161} = pqueue4:pout(Q160), - {{value, 19, 19}, Q162} = pqueue4:pout(Q161), - {{value, 20, 20}, Q163} = pqueue4:pout(Q162), - {{value, 20, 20}, Q164} = pqueue4:pout(Q163), - {{value, 20}, Q164} = pqueue4:out(Q163), - {{value, 20}, Q164} = pqueue4:out(20, Q163), - true = pqueue4:is_empty(Q164), - empty = erlang:element(1, Q164), % current priority - 0 = erlang:element(2, Q164), % size - {empty, Q164} = pqueue4:pout(Q164), - {empty, Q164} = pqueue4:out(Q164), - {empty, Q164} = pqueue4:out(20, Q164), - - Queue0 = queue:new(), - "{[],[]}" = lists:flatten(io_lib:format("~p", [Queue0])), - Queue1 = queue:in(1, Queue0), - Queue2 = queue:in(2, Queue1), - Queue3 = queue:in(3, Queue2), - {{value, 1}, _} = queue:out(Queue2), - "{[3,2],[1]}" = lists:flatten(io_lib:format("~p", [Queue3])), - {true, {[3],[1]}} = queue_remove_unique(fun(I) -> I == 2 end, {[3,2],[1]}), - Queue4 = queue:filter(fun(I) -> not (I == 2) end, Queue3), - "{[3],[1]}" = lists:flatten(io_lib:format("~p", [Queue4])), - 2 = queue:len(Queue4), - {{value, 1}, _} = queue:out(Queue4), - [1, 3] = queue:to_list(Queue4), - - Q166 = pqueue4:new(), - true = pqueue4:is_queue(Q166), - Q167 = pqueue4:in(6, 1, Q166), - Q168 = pqueue4:in(7, 1, Q167), - Q169 = pqueue4:in(8, 1, Q168), - Q170 = pqueue4:in(3, 0, Q169), - Q171 = pqueue4:in(4, 0, Q170), - Q172 = pqueue4:in(5, 0, Q171), - Q173 = pqueue4:in(0, -1, Q172), - Q174 = pqueue4:in(1, -1, Q173), - Q175 = pqueue4:in(2, -1, Q174), - [{-1, [0, 1, 2]}, {0, [3, 4, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q175), - 3 = pqueue4:len(pqueue4:filter(fun(I) -> I > 5 end, Q175)), - 3 = pqueue4:len(pqueue4:filter(fun(I) -> I < 3 end, Q175)), - 3 = pqueue4:len(pqueue4:filter(fun(I) -> (I < 1) orelse (I > 6) end, Q175)), - {true, Q176} = pqueue4:remove_unique(fun(I) -> I == 4 end, Q175), - [{-1, [0, 1, 2]}, {0, [3, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q176), - {true, Q177} = pqueue4:remove_unique(fun(I) -> I == 1 end, Q176), - [{-1, [0, 2]}, {0, [3, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q177), - {true, Q178} = pqueue4:remove_unique(fun(I) -> I == 7 end, Q177), - [{-1, [0, 2]}, {0, [3, 5]}, {1, [6, 8]}] = pqueue4:to_plist(Q178), - 6 = pqueue4:len(Q178), - {{value, 0, -1}, Q179} = pqueue4:pout(Q178), - {{value, 2}, Q180} = pqueue4:out(Q179), - {{value, 6}, Q181} = pqueue4:out(1, Q180), - {false, Q181} = pqueue4:remove_unique(fun(I) -> I == 7 end, Q181), - [{0, [3, 5]}, {1, [8]}] = pqueue4:to_plist(Q181), - {true, Q182} = pqueue4:remove_unique(fun(I) -> I == 5 end, Q181), - {true, Q183} = pqueue4:remove_unique(fun(I) -> I == 8 end, 1, Q182), - {true, Q184} = pqueue4:remove_unique(fun(I) -> I == 3 end, Q183), - {empty, Q184} = pqueue4:pout(Q184), - {empty, Q184} = pqueue4:out(Q184), - {empty, Q184} = pqueue4:out(0, Q184), - ok. - -%%%------------------------------------------------------------------------ -%%% Private functions -%%%------------------------------------------------------------------------ - -%% @hidden --define(FILTER_P_Qn128(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn112(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn96(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn80(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn64(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn48(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn32(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn16(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp16(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp32(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp48(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp64(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp80(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}). --define(FILTER_P_Qp96(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}). --define(FILTER_P_Qp112(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}). --define(FILTER_P_Qp128(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}). - -?FILTER_P_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?FILTER_P_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?FILTER_P_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?FILTER_P_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?FILTER_P_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?FILTER_P_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?FILTER_P_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?FILTER_P_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?FILTER_P_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?FILTER_P_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?FILTER_P_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?FILTER_P_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?FILTER_P_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?FILTER_P_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?FILTER_P_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?FILTER_P_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?FILTER_P_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?FILTER_P_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?FILTER_P_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?FILTER_P_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?FILTER_P_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?FILTER_P_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?FILTER_P_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?FILTER_P_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -filter_priority(0, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - NewQ0 = queue:filter(F, Q0), - NewSize = Size - (queue:len(Q0) - queue:len(NewQ0)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}; -?FILTER_P_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?FILTER_P_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?FILTER_P_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?FILTER_P_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?FILTER_P_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?FILTER_P_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?FILTER_P_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?FILTER_P_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?FILTER_P_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?FILTER_P_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?FILTER_P_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?FILTER_P_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?FILTER_P_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?FILTER_P_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?FILTER_P_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?FILTER_P_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?FILTER_P_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?FILTER_P_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?FILTER_P_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?FILTER_P_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?FILTER_P_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?FILTER_P_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?FILTER_P_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -?FILTER_P_Qp128(128, - Qp128, NewQp128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, NewQp128}). - -%% @hidden --define(IN_HIGHER_Qn128(P, V), -in_higher(P, - {_, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - V, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn112(P, V), -in_higher(P, - {_, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, - V, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn96(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, - V, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn80(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, - V, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn64(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, - V, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn48(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, - V, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn32(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn16(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp16(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp32(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp48(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V, - Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp64(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V, - Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp80(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V, - Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp96(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V, - Qp112, Qp128}). --define(IN_HIGHER_Qp112(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V, - Qp128}). --define(IN_HIGHER_Qp128(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V}). - -?IN_HIGHER_Qn128(-128, - {queue:in(X, Qn128), Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-127, - {Qn128, queue:in(X, Qn127), Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-126, - {Qn128, Qn127, queue:in(X, Qn126), Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-125, - {Qn128, Qn127, Qn126, queue:in(X, Qn125), Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-124, - {Qn128, Qn127, Qn126, Qn125, queue:in(X, Qn124), - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - queue:in(X, Qn123), Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, queue:in(X, Qn122), Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, queue:in(X, Qn121), Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, queue:in(X, Qn120), Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, queue:in(X, Qn119), Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, queue:in(X, Qn118), - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - queue:in(X, Qn117), Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, queue:in(X, Qn116), Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, queue:in(X, Qn115), Qn114, Qn113}); -?IN_HIGHER_Qn128(-114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, queue:in(X, Qn114), Qn113}); -?IN_HIGHER_Qn128(-113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, queue:in(X, Qn113)}); -?IN_HIGHER_Qn112(-112, - {queue:in(X, Qn112), Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-111, - {Qn112, queue:in(X, Qn111), Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-110, - {Qn112, Qn111, queue:in(X, Qn110), Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-109, - {Qn112, Qn111, Qn110, queue:in(X, Qn109), Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-108, - {Qn112, Qn111, Qn110, Qn109, queue:in(X, Qn108), - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - queue:in(X, Qn107), Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, queue:in(X, Qn106), Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, queue:in(X, Qn105), Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, queue:in(X, Qn104), Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, queue:in(X, Qn103), Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, queue:in(X, Qn102), - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - queue:in(X, Qn101), Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, queue:in(X, Qn100), Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, queue:in(X, Qn99), Qn98, Qn97}); -?IN_HIGHER_Qn112(-98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, queue:in(X, Qn98), Qn97}); -?IN_HIGHER_Qn112(-97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, queue:in(X, Qn97)}); -?IN_HIGHER_Qn96(-96, - {queue:in(X, Qn96), Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-95, - {Qn96, queue:in(X, Qn95), Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-94, - {Qn96, Qn95, queue:in(X, Qn94), Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-93, - {Qn96, Qn95, Qn94, queue:in(X, Qn93), Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-92, - {Qn96, Qn95, Qn94, Qn93, queue:in(X, Qn92), - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - queue:in(X, Qn91), Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, queue:in(X, Qn90), Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, queue:in(X, Qn89), Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, queue:in(X, Qn88), Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, queue:in(X, Qn87), Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, queue:in(X, Qn86), - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - queue:in(X, Qn85), Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, queue:in(X, Qn84), Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, queue:in(X, Qn83), Qn82, Qn81}); -?IN_HIGHER_Qn96(-82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, queue:in(X, Qn82), Qn81}); -?IN_HIGHER_Qn96(-81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, queue:in(X, Qn81)}); -?IN_HIGHER_Qn80(-80, - {queue:in(X, Qn80), Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-79, - {Qn80, queue:in(X, Qn79), Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-78, - {Qn80, Qn79, queue:in(X, Qn78), Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-77, - {Qn80, Qn79, Qn78, queue:in(X, Qn77), Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-76, - {Qn80, Qn79, Qn78, Qn77, queue:in(X, Qn76), - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - queue:in(X, Qn75), Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, queue:in(X, Qn74), Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, queue:in(X, Qn73), Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, queue:in(X, Qn72), Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, queue:in(X, Qn71), Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, queue:in(X, Qn70), - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - queue:in(X, Qn69), Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, queue:in(X, Qn68), Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, queue:in(X, Qn67), Qn66, Qn65}); -?IN_HIGHER_Qn80(-66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, queue:in(X, Qn66), Qn65}); -?IN_HIGHER_Qn80(-65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, queue:in(X, Qn65)}); -?IN_HIGHER_Qn64(-64, - {queue:in(X, Qn64), Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-63, - {Qn64, queue:in(X, Qn63), Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-62, - {Qn64, Qn63, queue:in(X, Qn62), Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-61, - {Qn64, Qn63, Qn62, queue:in(X, Qn61), Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-60, - {Qn64, Qn63, Qn62, Qn61, queue:in(X, Qn60), - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - queue:in(X, Qn59), Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, queue:in(X, Qn58), Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, queue:in(X, Qn57), Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, queue:in(X, Qn56), Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, queue:in(X, Qn55), Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, queue:in(X, Qn54), - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - queue:in(X, Qn53), Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, queue:in(X, Qn52), Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, queue:in(X, Qn51), Qn50, Qn49}); -?IN_HIGHER_Qn64(-50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, queue:in(X, Qn50), Qn49}); -?IN_HIGHER_Qn64(-49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, queue:in(X, Qn49)}); -?IN_HIGHER_Qn48(-48, - {queue:in(X, Qn48), Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-47, - {Qn48, queue:in(X, Qn47), Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-46, - {Qn48, Qn47, queue:in(X, Qn46), Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-45, - {Qn48, Qn47, Qn46, queue:in(X, Qn45), Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-44, - {Qn48, Qn47, Qn46, Qn45, queue:in(X, Qn44), - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - queue:in(X, Qn43), Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, queue:in(X, Qn42), Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, queue:in(X, Qn41), Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, queue:in(X, Qn40), Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, queue:in(X, Qn39), Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, queue:in(X, Qn38), - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - queue:in(X, Qn37), Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, queue:in(X, Qn36), Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, queue:in(X, Qn35), Qn34, Qn33}); -?IN_HIGHER_Qn48(-34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, queue:in(X, Qn34), Qn33}); -?IN_HIGHER_Qn48(-33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, queue:in(X, Qn33)}); -?IN_HIGHER_Qn32(-32, - {queue:in(X, Qn32), Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-31, - {Qn32, queue:in(X, Qn31), Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-30, - {Qn32, Qn31, queue:in(X, Qn30), Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-29, - {Qn32, Qn31, Qn30, queue:in(X, Qn29), Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-28, - {Qn32, Qn31, Qn30, Qn29, queue:in(X, Qn28), - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - queue:in(X, Qn27), Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, queue:in(X, Qn26), Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, queue:in(X, Qn25), Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, queue:in(X, Qn24), Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, queue:in(X, Qn23), Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, queue:in(X, Qn22), - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - queue:in(X, Qn21), Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, queue:in(X, Qn20), Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, queue:in(X, Qn19), Qn18, Qn17}); -?IN_HIGHER_Qn32(-18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, queue:in(X, Qn18), Qn17}); -?IN_HIGHER_Qn32(-17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, queue:in(X, Qn17)}); -?IN_HIGHER_Qn16(-16, - {queue:in(X, Qn16), Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-15, - {Qn16, queue:in(X, Qn15), Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-14, - {Qn16, Qn15, queue:in(X, Qn14), Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-13, - {Qn16, Qn15, Qn14, queue:in(X, Qn13), Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-12, - {Qn16, Qn15, Qn14, Qn13, queue:in(X, Qn12), - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7), Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, queue:in(X, Qn6), - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1}); -?IN_HIGHER_Qn16(-2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1}); -?IN_HIGHER_Qn16(-1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)}); -in_higher(0, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {0, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - queue:in(X, Q0), - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}; -?IN_HIGHER_Qp16(1, - {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(2, - {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(3, - {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(4, - {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(5, - {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - queue:in(X, Qp6), Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - queue:in(X, Qp12), Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, queue:in(X, Qp13), Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, queue:in(X, Qp14), Qp15, Qp16}); -?IN_HIGHER_Qp16(15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, queue:in(X, Qp15), Qp16}); -?IN_HIGHER_Qp16(16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, queue:in(X, Qp16)}); -?IN_HIGHER_Qp32(17, - {queue:in(X, Qp17), Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(18, - {Qp17, queue:in(X, Qp18), Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(19, - {Qp17, Qp18, queue:in(X, Qp19), Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(20, - {Qp17, Qp18, Qp19, queue:in(X, Qp20), Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(21, - {Qp17, Qp18, Qp19, Qp20, queue:in(X, Qp21), - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - queue:in(X, Qp22), Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, queue:in(X, Qp23), Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, queue:in(X, Qp24), Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, queue:in(X, Qp25), Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, queue:in(X, Qp26), Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, queue:in(X, Qp27), - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - queue:in(X, Qp28), Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, queue:in(X, Qp29), Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, queue:in(X, Qp30), Qp31, Qp32}); -?IN_HIGHER_Qp32(31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, queue:in(X, Qp31), Qp32}); -?IN_HIGHER_Qp32(32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, queue:in(X, Qp32)}); -?IN_HIGHER_Qp48(33, - {queue:in(X, Qp33), Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(34, - {Qp33, queue:in(X, Qp34), Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(35, - {Qp33, Qp34, queue:in(X, Qp35), Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(36, - {Qp33, Qp34, Qp35, queue:in(X, Qp36), Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(37, - {Qp33, Qp34, Qp35, Qp36, queue:in(X, Qp37), - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - queue:in(X, Qp38), Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, queue:in(X, Qp39), Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, queue:in(X, Qp40), Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, queue:in(X, Qp41), Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, queue:in(X, Qp42), Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, queue:in(X, Qp43), - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - queue:in(X, Qp44), Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, queue:in(X, Qp45), Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, queue:in(X, Qp46), Qp47, Qp48}); -?IN_HIGHER_Qp48(47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, queue:in(X, Qp47), Qp48}); -?IN_HIGHER_Qp48(48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, queue:in(X, Qp48)}); -?IN_HIGHER_Qp64(49, - {queue:in(X, Qp49), Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(50, - {Qp49, queue:in(X, Qp50), Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(51, - {Qp49, Qp50, queue:in(X, Qp51), Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(52, - {Qp49, Qp50, Qp51, queue:in(X, Qp52), Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(53, - {Qp49, Qp50, Qp51, Qp52, queue:in(X, Qp53), - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - queue:in(X, Qp54), Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, queue:in(X, Qp55), Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, queue:in(X, Qp56), Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, queue:in(X, Qp57), Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, queue:in(X, Qp58), Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, queue:in(X, Qp59), - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - queue:in(X, Qp60), Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, queue:in(X, Qp61), Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, queue:in(X, Qp62), Qp63, Qp64}); -?IN_HIGHER_Qp64(63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, queue:in(X, Qp63), Qp64}); -?IN_HIGHER_Qp64(64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, queue:in(X, Qp64)}); -?IN_HIGHER_Qp80(65, - {queue:in(X, Qp65), Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(66, - {Qp65, queue:in(X, Qp66), Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(67, - {Qp65, Qp66, queue:in(X, Qp67), Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(68, - {Qp65, Qp66, Qp67, queue:in(X, Qp68), Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(69, - {Qp65, Qp66, Qp67, Qp68, queue:in(X, Qp69), - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - queue:in(X, Qp70), Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, queue:in(X, Qp71), Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, queue:in(X, Qp72), Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, queue:in(X, Qp73), Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, queue:in(X, Qp74), Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, queue:in(X, Qp75), - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - queue:in(X, Qp76), Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, queue:in(X, Qp77), Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, queue:in(X, Qp78), Qp79, Qp80}); -?IN_HIGHER_Qp80(79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, queue:in(X, Qp79), Qp80}); -?IN_HIGHER_Qp80(80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, queue:in(X, Qp80)}); -?IN_HIGHER_Qp96(81, - {queue:in(X, Qp81), Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(82, - {Qp81, queue:in(X, Qp82), Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(83, - {Qp81, Qp82, queue:in(X, Qp83), Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(84, - {Qp81, Qp82, Qp83, queue:in(X, Qp84), Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(85, - {Qp81, Qp82, Qp83, Qp84, queue:in(X, Qp85), - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - queue:in(X, Qp86), Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, queue:in(X, Qp87), Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, queue:in(X, Qp88), Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, queue:in(X, Qp89), Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, queue:in(X, Qp90), Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, queue:in(X, Qp91), - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - queue:in(X, Qp92), Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, queue:in(X, Qp93), Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, queue:in(X, Qp94), Qp95, Qp96}); -?IN_HIGHER_Qp96(95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, queue:in(X, Qp95), Qp96}); -?IN_HIGHER_Qp96(96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, queue:in(X, Qp96)}); -?IN_HIGHER_Qp112(97, - {queue:in(X, Qp97), Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(98, - {Qp97, queue:in(X, Qp98), Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(99, - {Qp97, Qp98, queue:in(X, Qp99), Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(100, - {Qp97, Qp98, Qp99, queue:in(X, Qp100), Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(101, - {Qp97, Qp98, Qp99, Qp100, queue:in(X, Qp101), - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - queue:in(X, Qp102), Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, queue:in(X, Qp103), Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, queue:in(X, Qp104), Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, queue:in(X, Qp105), Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, queue:in(X, Qp106), Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, queue:in(X, Qp107), - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - queue:in(X, Qp108), Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, queue:in(X, Qp109), Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, queue:in(X, Qp110), Qp111, Qp112}); -?IN_HIGHER_Qp112(111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, queue:in(X, Qp111), Qp112}); -?IN_HIGHER_Qp112(112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, queue:in(X, Qp112)}); -?IN_HIGHER_Qp128(113, - {queue:in(X, Qp113), Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(114, - {Qp113, queue:in(X, Qp114), Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(115, - {Qp113, Qp114, queue:in(X, Qp115), Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(116, - {Qp113, Qp114, Qp115, queue:in(X, Qp116), Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(117, - {Qp113, Qp114, Qp115, Qp116, queue:in(X, Qp117), - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - queue:in(X, Qp118), Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, queue:in(X, Qp119), Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, queue:in(X, Qp120), Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, queue:in(X, Qp121), Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, queue:in(X, Qp122), Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, queue:in(X, Qp123), - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - queue:in(X, Qp124), Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, queue:in(X, Qp125), Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, queue:in(X, Qp126), Qp127, Qp128}); -?IN_HIGHER_Qp128(127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, queue:in(X, Qp127), Qp128}); -?IN_HIGHER_Qp128(128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, queue:in(X, Qp128)}). - -%% @hidden --define(IN_LOWER_Qn128(P, V), -in_lower(P, - {Pc, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - V, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn112(P, V), -in_lower(P, - {Pc, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, - V, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn96(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, - V, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn80(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, - V, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn64(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, - V, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn48(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, - V, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn32(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn16(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp16(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp32(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp48(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V, - Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp64(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V, - Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp80(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V, - Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp96(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V, - Qp112, Qp128}). --define(IN_LOWER_Qp112(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V, - Qp128}). --define(IN_LOWER_Qp128(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V}). - -?IN_LOWER_Qn128(-128, - {queue:in(X, Qn128), Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-127, - {Qn128, queue:in(X, Qn127), Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-126, - {Qn128, Qn127, queue:in(X, Qn126), Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-125, - {Qn128, Qn127, Qn126, queue:in(X, Qn125), Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-124, - {Qn128, Qn127, Qn126, Qn125, queue:in(X, Qn124), - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - queue:in(X, Qn123), Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, queue:in(X, Qn122), Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, queue:in(X, Qn121), Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, queue:in(X, Qn120), Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, queue:in(X, Qn119), Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, queue:in(X, Qn118), - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - queue:in(X, Qn117), Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, queue:in(X, Qn116), Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, queue:in(X, Qn115), Qn114, Qn113}); -?IN_LOWER_Qn128(-114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, queue:in(X, Qn114), Qn113}); -?IN_LOWER_Qn128(-113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, queue:in(X, Qn113)}); -?IN_LOWER_Qn112(-112, - {queue:in(X, Qn112), Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-111, - {Qn112, queue:in(X, Qn111), Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-110, - {Qn112, Qn111, queue:in(X, Qn110), Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-109, - {Qn112, Qn111, Qn110, queue:in(X, Qn109), Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-108, - {Qn112, Qn111, Qn110, Qn109, queue:in(X, Qn108), - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - queue:in(X, Qn107), Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, queue:in(X, Qn106), Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, queue:in(X, Qn105), Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, queue:in(X, Qn104), Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, queue:in(X, Qn103), Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, queue:in(X, Qn102), - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - queue:in(X, Qn101), Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, queue:in(X, Qn100), Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, queue:in(X, Qn99), Qn98, Qn97}); -?IN_LOWER_Qn112(-98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, queue:in(X, Qn98), Qn97}); -?IN_LOWER_Qn112(-97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, queue:in(X, Qn97)}); -?IN_LOWER_Qn96(-96, - {queue:in(X, Qn96), Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-95, - {Qn96, queue:in(X, Qn95), Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-94, - {Qn96, Qn95, queue:in(X, Qn94), Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-93, - {Qn96, Qn95, Qn94, queue:in(X, Qn93), Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-92, - {Qn96, Qn95, Qn94, Qn93, queue:in(X, Qn92), - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - queue:in(X, Qn91), Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, queue:in(X, Qn90), Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, queue:in(X, Qn89), Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, queue:in(X, Qn88), Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, queue:in(X, Qn87), Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, queue:in(X, Qn86), - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - queue:in(X, Qn85), Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, queue:in(X, Qn84), Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, queue:in(X, Qn83), Qn82, Qn81}); -?IN_LOWER_Qn96(-82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, queue:in(X, Qn82), Qn81}); -?IN_LOWER_Qn96(-81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, queue:in(X, Qn81)}); -?IN_LOWER_Qn80(-80, - {queue:in(X, Qn80), Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-79, - {Qn80, queue:in(X, Qn79), Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-78, - {Qn80, Qn79, queue:in(X, Qn78), Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-77, - {Qn80, Qn79, Qn78, queue:in(X, Qn77), Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-76, - {Qn80, Qn79, Qn78, Qn77, queue:in(X, Qn76), - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - queue:in(X, Qn75), Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, queue:in(X, Qn74), Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, queue:in(X, Qn73), Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, queue:in(X, Qn72), Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, queue:in(X, Qn71), Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, queue:in(X, Qn70), - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - queue:in(X, Qn69), Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, queue:in(X, Qn68), Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, queue:in(X, Qn67), Qn66, Qn65}); -?IN_LOWER_Qn80(-66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, queue:in(X, Qn66), Qn65}); -?IN_LOWER_Qn80(-65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, queue:in(X, Qn65)}); -?IN_LOWER_Qn64(-64, - {queue:in(X, Qn64), Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-63, - {Qn64, queue:in(X, Qn63), Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-62, - {Qn64, Qn63, queue:in(X, Qn62), Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-61, - {Qn64, Qn63, Qn62, queue:in(X, Qn61), Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-60, - {Qn64, Qn63, Qn62, Qn61, queue:in(X, Qn60), - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - queue:in(X, Qn59), Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, queue:in(X, Qn58), Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, queue:in(X, Qn57), Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, queue:in(X, Qn56), Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, queue:in(X, Qn55), Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, queue:in(X, Qn54), - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - queue:in(X, Qn53), Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, queue:in(X, Qn52), Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, queue:in(X, Qn51), Qn50, Qn49}); -?IN_LOWER_Qn64(-50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, queue:in(X, Qn50), Qn49}); -?IN_LOWER_Qn64(-49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, queue:in(X, Qn49)}); -?IN_LOWER_Qn48(-48, - {queue:in(X, Qn48), Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-47, - {Qn48, queue:in(X, Qn47), Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-46, - {Qn48, Qn47, queue:in(X, Qn46), Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-45, - {Qn48, Qn47, Qn46, queue:in(X, Qn45), Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-44, - {Qn48, Qn47, Qn46, Qn45, queue:in(X, Qn44), - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - queue:in(X, Qn43), Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, queue:in(X, Qn42), Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, queue:in(X, Qn41), Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, queue:in(X, Qn40), Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, queue:in(X, Qn39), Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, queue:in(X, Qn38), - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - queue:in(X, Qn37), Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, queue:in(X, Qn36), Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, queue:in(X, Qn35), Qn34, Qn33}); -?IN_LOWER_Qn48(-34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, queue:in(X, Qn34), Qn33}); -?IN_LOWER_Qn48(-33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, queue:in(X, Qn33)}); -?IN_LOWER_Qn32(-32, - {queue:in(X, Qn32), Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-31, - {Qn32, queue:in(X, Qn31), Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-30, - {Qn32, Qn31, queue:in(X, Qn30), Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-29, - {Qn32, Qn31, Qn30, queue:in(X, Qn29), Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-28, - {Qn32, Qn31, Qn30, Qn29, queue:in(X, Qn28), - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - queue:in(X, Qn27), Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, queue:in(X, Qn26), Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, queue:in(X, Qn25), Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, queue:in(X, Qn24), Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, queue:in(X, Qn23), Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, queue:in(X, Qn22), - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - queue:in(X, Qn21), Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, queue:in(X, Qn20), Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, queue:in(X, Qn19), Qn18, Qn17}); -?IN_LOWER_Qn32(-18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, queue:in(X, Qn18), Qn17}); -?IN_LOWER_Qn32(-17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, queue:in(X, Qn17)}); -?IN_LOWER_Qn16(-16, - {queue:in(X, Qn16), Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-15, - {Qn16, queue:in(X, Qn15), Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-14, - {Qn16, Qn15, queue:in(X, Qn14), Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-13, - {Qn16, Qn15, Qn14, queue:in(X, Qn13), Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-12, - {Qn16, Qn15, Qn14, Qn13, queue:in(X, Qn12), - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7), Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, queue:in(X, Qn6), - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1}); -?IN_LOWER_Qn16(-2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1}); -?IN_LOWER_Qn16(-1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)}); -in_lower(0, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - queue:in(X, Q0), - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}; -?IN_LOWER_Qp16(1, - {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(2, - {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(3, - {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(4, - {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(5, - {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - queue:in(X, Qp6), Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - queue:in(X, Qp12), Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, queue:in(X, Qp13), Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, queue:in(X, Qp14), Qp15, Qp16}); -?IN_LOWER_Qp16(15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, queue:in(X, Qp15), Qp16}); -?IN_LOWER_Qp16(16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, queue:in(X, Qp16)}); -?IN_LOWER_Qp32(17, - {queue:in(X, Qp17), Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(18, - {Qp17, queue:in(X, Qp18), Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(19, - {Qp17, Qp18, queue:in(X, Qp19), Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(20, - {Qp17, Qp18, Qp19, queue:in(X, Qp20), Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(21, - {Qp17, Qp18, Qp19, Qp20, queue:in(X, Qp21), - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - queue:in(X, Qp22), Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, queue:in(X, Qp23), Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, queue:in(X, Qp24), Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, queue:in(X, Qp25), Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, queue:in(X, Qp26), Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, queue:in(X, Qp27), - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - queue:in(X, Qp28), Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, queue:in(X, Qp29), Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, queue:in(X, Qp30), Qp31, Qp32}); -?IN_LOWER_Qp32(31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, queue:in(X, Qp31), Qp32}); -?IN_LOWER_Qp32(32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, queue:in(X, Qp32)}); -?IN_LOWER_Qp48(33, - {queue:in(X, Qp33), Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(34, - {Qp33, queue:in(X, Qp34), Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(35, - {Qp33, Qp34, queue:in(X, Qp35), Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(36, - {Qp33, Qp34, Qp35, queue:in(X, Qp36), Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(37, - {Qp33, Qp34, Qp35, Qp36, queue:in(X, Qp37), - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - queue:in(X, Qp38), Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, queue:in(X, Qp39), Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, queue:in(X, Qp40), Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, queue:in(X, Qp41), Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, queue:in(X, Qp42), Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, queue:in(X, Qp43), - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - queue:in(X, Qp44), Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, queue:in(X, Qp45), Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, queue:in(X, Qp46), Qp47, Qp48}); -?IN_LOWER_Qp48(47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, queue:in(X, Qp47), Qp48}); -?IN_LOWER_Qp48(48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, queue:in(X, Qp48)}); -?IN_LOWER_Qp64(49, - {queue:in(X, Qp49), Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(50, - {Qp49, queue:in(X, Qp50), Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(51, - {Qp49, Qp50, queue:in(X, Qp51), Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(52, - {Qp49, Qp50, Qp51, queue:in(X, Qp52), Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(53, - {Qp49, Qp50, Qp51, Qp52, queue:in(X, Qp53), - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - queue:in(X, Qp54), Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, queue:in(X, Qp55), Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, queue:in(X, Qp56), Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, queue:in(X, Qp57), Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, queue:in(X, Qp58), Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, queue:in(X, Qp59), - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - queue:in(X, Qp60), Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, queue:in(X, Qp61), Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, queue:in(X, Qp62), Qp63, Qp64}); -?IN_LOWER_Qp64(63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, queue:in(X, Qp63), Qp64}); -?IN_LOWER_Qp64(64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, queue:in(X, Qp64)}); -?IN_LOWER_Qp80(65, - {queue:in(X, Qp65), Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(66, - {Qp65, queue:in(X, Qp66), Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(67, - {Qp65, Qp66, queue:in(X, Qp67), Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(68, - {Qp65, Qp66, Qp67, queue:in(X, Qp68), Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(69, - {Qp65, Qp66, Qp67, Qp68, queue:in(X, Qp69), - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - queue:in(X, Qp70), Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, queue:in(X, Qp71), Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, queue:in(X, Qp72), Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, queue:in(X, Qp73), Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, queue:in(X, Qp74), Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, queue:in(X, Qp75), - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - queue:in(X, Qp76), Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, queue:in(X, Qp77), Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, queue:in(X, Qp78), Qp79, Qp80}); -?IN_LOWER_Qp80(79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, queue:in(X, Qp79), Qp80}); -?IN_LOWER_Qp80(80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, queue:in(X, Qp80)}); -?IN_LOWER_Qp96(81, - {queue:in(X, Qp81), Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(82, - {Qp81, queue:in(X, Qp82), Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(83, - {Qp81, Qp82, queue:in(X, Qp83), Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(84, - {Qp81, Qp82, Qp83, queue:in(X, Qp84), Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(85, - {Qp81, Qp82, Qp83, Qp84, queue:in(X, Qp85), - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - queue:in(X, Qp86), Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, queue:in(X, Qp87), Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, queue:in(X, Qp88), Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, queue:in(X, Qp89), Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, queue:in(X, Qp90), Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, queue:in(X, Qp91), - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - queue:in(X, Qp92), Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, queue:in(X, Qp93), Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, queue:in(X, Qp94), Qp95, Qp96}); -?IN_LOWER_Qp96(95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, queue:in(X, Qp95), Qp96}); -?IN_LOWER_Qp96(96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, queue:in(X, Qp96)}); -?IN_LOWER_Qp112(97, - {queue:in(X, Qp97), Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(98, - {Qp97, queue:in(X, Qp98), Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(99, - {Qp97, Qp98, queue:in(X, Qp99), Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(100, - {Qp97, Qp98, Qp99, queue:in(X, Qp100), Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(101, - {Qp97, Qp98, Qp99, Qp100, queue:in(X, Qp101), - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - queue:in(X, Qp102), Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, queue:in(X, Qp103), Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, queue:in(X, Qp104), Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, queue:in(X, Qp105), Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, queue:in(X, Qp106), Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, queue:in(X, Qp107), - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - queue:in(X, Qp108), Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, queue:in(X, Qp109), Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, queue:in(X, Qp110), Qp111, Qp112}); -?IN_LOWER_Qp112(111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, queue:in(X, Qp111), Qp112}); -?IN_LOWER_Qp112(112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, queue:in(X, Qp112)}); -?IN_LOWER_Qp128(113, - {queue:in(X, Qp113), Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(114, - {Qp113, queue:in(X, Qp114), Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(115, - {Qp113, Qp114, queue:in(X, Qp115), Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(116, - {Qp113, Qp114, Qp115, queue:in(X, Qp116), Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(117, - {Qp113, Qp114, Qp115, Qp116, queue:in(X, Qp117), - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - queue:in(X, Qp118), Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, queue:in(X, Qp119), Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, queue:in(X, Qp120), Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, queue:in(X, Qp121), Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, queue:in(X, Qp122), Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, queue:in(X, Qp123), - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - queue:in(X, Qp124), Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, queue:in(X, Qp125), Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, queue:in(X, Qp126), Qp127, Qp128}); -?IN_LOWER_Qp128(127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, queue:in(X, Qp127), Qp128}); -?IN_LOWER_Qp128(128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, queue:in(X, Qp128)}). - -%% @hidden --define(OUT_CURRENT_Qn128(P, V1, V2, V3), -out_current(P, - {_, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn112(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn96(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn80(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn64(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn48(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn32(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn16(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp16(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp32(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp48(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp64(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp80(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp96(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp112(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}} - end). --define(OUT_CURRENT_Qp128(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}} - end). - -?OUT_CURRENT_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?OUT_CURRENT_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?OUT_CURRENT_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?OUT_CURRENT_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?OUT_CURRENT_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?OUT_CURRENT_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?OUT_CURRENT_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?OUT_CURRENT_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?OUT_CURRENT_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?OUT_CURRENT_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?OUT_CURRENT_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?OUT_CURRENT_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?OUT_CURRENT_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?OUT_CURRENT_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?OUT_CURRENT_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?OUT_CURRENT_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -out_current(0, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, NewQ0} = queue:out(Q0), - if - Value =:= empty -> - out_current(1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> 0 end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end; -?OUT_CURRENT_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?OUT_CURRENT_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?OUT_CURRENT_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?OUT_CURRENT_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?OUT_CURRENT_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?OUT_CURRENT_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?OUT_CURRENT_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?OUT_CURRENT_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?OUT_CURRENT_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?OUT_CURRENT_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?OUT_CURRENT_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?OUT_CURRENT_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?OUT_CURRENT_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?OUT_CURRENT_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?OUT_CURRENT_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -out_current(128, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - {Value, NewQp128} = queue:out(Qp128), - if - Value =:= empty -> - {empty, - {empty, - 0, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}}; - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> 128 end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}} - end. - -%% @hidden --define(OUT_CURRENT_P_Qn128(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn112(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn96(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn80(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn64(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn48(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn32(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn16(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp16(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp32(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp48(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp64(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp80(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp96(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp112(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}} - end). --define(OUT_CURRENT_P_Qp128(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}} - end). - -?OUT_CURRENT_P_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?OUT_CURRENT_P_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?OUT_CURRENT_P_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?OUT_CURRENT_P_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?OUT_CURRENT_P_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?OUT_CURRENT_P_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?OUT_CURRENT_P_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?OUT_CURRENT_P_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?OUT_CURRENT_P_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?OUT_CURRENT_P_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?OUT_CURRENT_P_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?OUT_CURRENT_P_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?OUT_CURRENT_P_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?OUT_CURRENT_P_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?OUT_CURRENT_P_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?OUT_CURRENT_P_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -out_current_p(0, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(Q0) of - {empty, _} -> - out_current_p(1, Q); - {{value, X}, NewQ0} -> - NewSize = Size - 1, - {{value, X, 0}, - {if NewSize == 0 -> empty; true -> 0 end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end; -?OUT_CURRENT_P_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?OUT_CURRENT_P_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?OUT_CURRENT_P_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?OUT_CURRENT_P_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?OUT_CURRENT_P_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?OUT_CURRENT_P_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?OUT_CURRENT_P_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?OUT_CURRENT_P_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?OUT_CURRENT_P_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?OUT_CURRENT_P_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?OUT_CURRENT_P_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?OUT_CURRENT_P_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?OUT_CURRENT_P_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?OUT_CURRENT_P_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?OUT_CURRENT_P_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -out_current_p(128, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - case queue:out(Qp128) of - {empty, _} -> - {empty, - {empty, - 0, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}}; - {{value, X}, NewQp128} -> - NewSize = Size - 1, - {{value, X, 128}, - {if NewSize == 0 -> empty; true -> 128 end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}} - end. - -%% @hidden --define(OUT_SPECIFIC_Qn128(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn112(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn96(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn80(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn64(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn48(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn32(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn16(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp16(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp32(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp48(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp64(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp80(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp96(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp112(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}}). --define(OUT_SPECIFIC_Qp128(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}}). - -?OUT_SPECIFIC_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?OUT_SPECIFIC_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?OUT_SPECIFIC_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?OUT_SPECIFIC_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?OUT_SPECIFIC_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?OUT_SPECIFIC_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?OUT_SPECIFIC_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?OUT_SPECIFIC_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?OUT_SPECIFIC_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?OUT_SPECIFIC_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?OUT_SPECIFIC_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?OUT_SPECIFIC_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?OUT_SPECIFIC_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?OUT_SPECIFIC_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?OUT_SPECIFIC_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?OUT_SPECIFIC_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -out_specific(0, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, NewQ0} = queue:out(Q0), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}; -?OUT_SPECIFIC_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?OUT_SPECIFIC_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?OUT_SPECIFIC_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?OUT_SPECIFIC_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?OUT_SPECIFIC_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?OUT_SPECIFIC_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?OUT_SPECIFIC_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?OUT_SPECIFIC_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?OUT_SPECIFIC_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?OUT_SPECIFIC_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?OUT_SPECIFIC_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?OUT_SPECIFIC_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?OUT_SPECIFIC_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?OUT_SPECIFIC_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?OUT_SPECIFIC_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -?OUT_SPECIFIC_Qp128(128, - Qp128, NewQp128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, NewQp128}). - -%% @hidden --define(REMOVE_UNIQ_P_Qn128(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn112(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn96(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn80(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn64(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn48(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn32(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn16(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp16(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp32(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp48(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp64(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp80(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp96(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp112(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}}). --define(REMOVE_UNIQ_P_Qp128(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}}). - -?REMOVE_UNIQ_P_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?REMOVE_UNIQ_P_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?REMOVE_UNIQ_P_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?REMOVE_UNIQ_P_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?REMOVE_UNIQ_P_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?REMOVE_UNIQ_P_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?REMOVE_UNIQ_P_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?REMOVE_UNIQ_P_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -remove_unique_p(0, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, NewQ0} = queue_remove_unique(F, Q0), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}; -?REMOVE_UNIQ_P_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?REMOVE_UNIQ_P_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?REMOVE_UNIQ_P_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?REMOVE_UNIQ_P_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?REMOVE_UNIQ_P_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?REMOVE_UNIQ_P_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?REMOVE_UNIQ_P_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?REMOVE_UNIQ_P_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(128, - Qp128, NewQp128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, NewQp128}). - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - --include("pqueue_test.hrl"). - -module_test_() -> - {timeout, ?TEST_TIMEOUT, [ - {"internal tests", ?_assertOk(test())} - ]}. - -long_test_() -> - test_condition([ - {"proper tests", ?_assert(pqueue_proper:qc_pq4())} - ], ?CLOUDI_LONG_TEST_TIMEOUT). - --endif. - -%%------------------------------------------------------------------------- -%% @hidden -%% remove a unique value from a queue based on a binary predicate, -%% traversal order is undefined to keep it efficient (i.e., shouldn't matter) -%% (based on the implementation of queue:filter/2 -%% which is under the Apache License 2.0) -%%------------------------------------------------------------------------- - --spec queue_remove_unique(F :: fun((any()) -> boolean()), - Q :: {list(), list()}) -> - {boolean(), {list(), list()}}. - -queue_remove_unique(Fun, {R0, F0} = Q) - when is_function(Fun, 1), is_list(R0), is_list(F0) -> - case queue_remove_unique_f(Fun, F0) of - {true, []} -> - {true, queue_r2f(R0)}; - {true, F1} -> - {true, {R0, F1}}; - {false, F1} -> - %true = F1 == F0, - case queue_remove_unique_f(Fun, R0) of % backwards - {true, []} -> - {true, queue_f2r(F1)}; - {true, R1} -> - {true, {R1, F1}}; - {false, _} -> - {false, Q} - end - end; -queue_remove_unique(Fun, Q) -> - erlang:error(badarg, [Fun,Q]). - -% Call Fun in front to back order -queue_remove_unique_f(_, [] = F) -> - {false, F}; -queue_remove_unique_f(Fun, F) -> - queue_remove_unique_f(F, [], F, Fun). - -queue_remove_unique_f([], _, F, _) -> - {false, F}; -queue_remove_unique_f([X | F0], F1, F, Fun) -> - case Fun(X) of - true -> - {true, lists:reverse(F1, F0)}; - false -> - queue_remove_unique_f(F0, [X | F1], F, Fun) - end. - --compile({inline, [{queue_r2f,1},{queue_f2r,1}]}). - -% Move half of elements from R to F, if there are at least three -queue_r2f([]) -> - {[],[]}; -queue_r2f([_]=R) -> - {[],R}; -queue_r2f([X,Y]) -> - {[X],[Y]}; -queue_r2f(List) -> - {FF,RR} = lists:split(length(List) div 2 + 1, List), - {FF,lists:reverse(RR, [])}. - -% Move half of elements from F to R, if there are enough -queue_f2r([]) -> - {[],[]}; -queue_f2r([_]=F) -> - {F,[]}; -queue_f2r([X,Y]) -> - {[Y],[X]}; -queue_f2r(List) -> - {FF,RR} = lists:split(length(List) div 2 + 1, List), - {lists:reverse(RR, []),FF}. - diff --git a/aoc2023/build/dev/erlang/pqueue/src/pqueue_test.hrl b/aoc2023/build/dev/erlang/pqueue/src/pqueue_test.hrl deleted file mode 100644 index cedffe0..0000000 --- a/aoc2023/build/dev/erlang/pqueue/src/pqueue_test.hrl +++ /dev/null @@ -1,49 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% pqueue eunit common functionality -%%% -%%% MIT License -%%% -%%% Copyright (c) 2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%%------------------------------------------------------------------------ - --ifndef(_assertOk). --define(_assertOk(Expr), ?_assertEqual(ok, Expr)). --endif. - --ifdef(CLOUDI_TEST_TIMEOUT). --define(TEST_TIMEOUT, ?CLOUDI_TEST_TIMEOUT). % seconds --else. --define(TEST_TIMEOUT, 10). % seconds --endif. --ifndef(CLOUDI_LONG_TEST_TIMEOUT). --define(CLOUDI_LONG_TEST_TIMEOUT, 60). % minutes --endif. - -test_condition(_, 0) -> - []; -test_condition(L, LongTestTimeout) - when LongTestTimeout > 0 -> - {timeout, LongTestTimeout * 60, L}. - diff --git a/aoc2023/build/dev/erlang/pqueue/test/pqueue_proper.erl b/aoc2023/build/dev/erlang/pqueue/test/pqueue_proper.erl deleted file mode 100644 index 6702960..0000000 --- a/aoc2023/build/dev/erlang/pqueue/test/pqueue_proper.erl +++ /dev/null @@ -1,156 +0,0 @@ --module(pqueue_proper). --ifdef(TEST). --include_lib("proper/include/proper.hrl"). - --behaviour(proper_statem). - --export([qc_pq/0, qc_pq2/0, qc_pq3/0, qc_pq4/0, correct/1]). - --export([command/1, initial_state/0, next_state/3, postcondition/3, - precondition/2]). - --type value() :: integer(). --record(state, { in_queue :: [{value(), term()}] }). --define(SERVER, queue_srv). - -priority() -> - integer(-20, 20). - -%% Selects priorities we have added -priority(InQ) -> - elements([P || {P, _} <- InQ]). - -value() -> - integer(). - -initial_state() -> - #state { in_queue = [] }. - -command(#state { in_queue = InQ }) -> - oneof([{call, ?SERVER, in, [value()]}, - {call, ?SERVER, in, [value(), priority()]}, - {call, ?SERVER, is_empty, []}, - {call, ?SERVER, is_queue, []}, - {call, ?SERVER, len, []}, - {call, ?SERVER, out, []}] ++ - [{call, ?SERVER, out, [priority(InQ)]} || InQ =/= []] ++ - [{call, ?SERVER, pout, []}, - {call, ?SERVER, to_list, []}]). - -next_state(#state { in_queue = InQ } = S, _V, {call, _, out, []}) -> - S#state { in_queue = listq_rem(InQ) }; -next_state(#state { in_queue = InQ } = S, _V, {call, _, out, [Prio]}) -> - S#state { in_queue = listq_rem(InQ, Prio) }; -next_state(#state { in_queue = InQ } = S, _V, {call, _, pout, _}) -> - S#state { in_queue = listq_rem(InQ) }; -next_state(S, _V, {call, _, to_list, _}) -> S; -next_state(S, _V, {call, _, is_queue, _}) -> S; -next_state(S, _V, {call, _, is_empty, _}) -> S; -next_state(S, _V, {call, _, len, _}) -> S; -next_state(#state { in_queue = InQ } = S, _V, {call, _, in, [Value, Prio]}) -> - S#state { in_queue = listq_insert({Prio, Value}, InQ) }; -next_state(#state { in_queue = InQ } = S, _V, {call, _, in, [Value]}) -> - S#state { in_queue = listq_insert({0, Value}, InQ) }. - -precondition(_S, _Call) -> - true. % No limitation on the things we can call at all. - -postcondition(#state { in_queue = InQ }, {call, _, out, [Prio]}, R) -> - R == listq_prio_peek(InQ, Prio); -postcondition(#state { in_queue = InQ }, {call, _, pout, _}, R) -> - R == listq_ppeek(InQ); -postcondition(#state { in_queue = InQ }, {call, _, out, _}, R) -> - R == listq_peek(InQ); -postcondition(S, {call, _, to_list, _}, R) -> - R == listq_to_list(S#state.in_queue); -postcondition(S, {call, _, len, _}, L) -> - L == listq_length(S#state.in_queue); -postcondition(_S, {call, _, is_queue, _}, true) -> true; -postcondition(S, {call, _, is_empty, _}, Res) -> - Res == (S#state.in_queue == []); -postcondition(_S, {call, _, in, _}, _) -> - true; -postcondition(_, _, _) -> - false. - -correct(M) -> - ?FORALL(Cmds, commands(?MODULE), - ?TRAPEXIT( - begin - ?SERVER:start_link(M), - {History,State,Result} = run_commands(?MODULE, Cmds), - ?SERVER:stop(), - ?WHENFAIL(io:format("History: ~w\nState: ~w\nResult: ~w\n", - [History,State,Result]), - aggregate(command_names(Cmds), Result =:= ok)) - end)). - -qc_opts() -> - [{numtests, 10000}]. - -qc_pq() -> - proper:quickcheck(pqueue_proper:correct(pqueue), qc_opts()). - -qc_pq2() -> - proper:quickcheck(pqueue_proper:correct(pqueue2), qc_opts()). - -qc_pq3() -> - proper:quickcheck(pqueue_proper:correct(pqueue3), qc_opts()). - -qc_pq4() -> - proper:quickcheck(pqueue_proper:correct(pqueue4), qc_opts()). - -%% ---------------------------------------------------------------------- - -%% A listq is a sorted list of priorities -listq_insert({P, V}, []) -> - [{P, [V]}]; -listq_insert({P, V}, [{P1, _} | _] = LQ) when P < P1 -> - [{P, [V]} | LQ]; -listq_insert({P, V}, [{P1, Vs} | Next]) when P == P1 -> - [{P, Vs ++ [V]} | Next]; -listq_insert({P, V}, [{P1, Vs} | Next]) when P > P1 -> - [{P1, Vs} | listq_insert({P, V}, Next)]. - -listq_to_list(L) -> - lists:concat( - [ Vals || {_Prio, Vals} <- L]). - -listq_length(L) -> - lists:sum( - [ length(Vs) || {_Prio, Vs} <- L]). - -listq_rem([]) -> - []; -listq_rem([{_P, [_V]} | Next]) -> - Next; -listq_rem([{P, [_V1 | Vs]} | Next]) -> - [{P, Vs} | Next]. - -listq_rem([], _P) -> - []; -listq_rem([{P, [_]} | Next], P) -> - Next; -listq_rem([{P, [_ | Vs]} | Next], P) -> - [{P, Vs} | Next]; -listq_rem([{P1, Vs} | Next], P) -> - [{P1, Vs} | listq_rem(Next, P)]. - -listq_peek([]) -> - empty; -listq_peek([{_P, [V | _]} | _]) -> - {value, V}. - -listq_prio_peek([{P, [V | _]} | _], P) -> - {value, V}; -listq_prio_peek([{_P1, _} | Next], P) -> - listq_prio_peek(Next, P); -listq_prio_peek([], _P) -> - empty. - -listq_ppeek([]) -> - empty; -listq_ppeek([{P, [V | _]} | _]) -> - {value, V, P}. - --endif. diff --git a/aoc2023/build/dev/erlang/pqueue/test/queue_srv.erl b/aoc2023/build/dev/erlang/pqueue/test/queue_srv.erl deleted file mode 100644 index 7fcb0a1..0000000 --- a/aoc2023/build/dev/erlang/pqueue/test/queue_srv.erl +++ /dev/null @@ -1,183 +0,0 @@ -%%%------------------------------------------------------------------- -%%% @author Jesper Louis andersen <> -%%% @copyright (C) 2011, Jesper Louis andersen -%%% @doc -%%% -%%% @end -%%% Created : 11 Nov 2011 by Jesper Louis andersen <> -%%%------------------------------------------------------------------- --module(queue_srv). - --behaviour(gen_server). - -%% API --export([start_link/1, stop/0, len/0, in/1, in/2, is_empty/0, - out/0, out/1, pout/0, - is_queue/0, to_list/0]). - -%% gen_server callbacks --export([init/1, handle_call/3, handle_cast/2, handle_info/2, - terminate/2, code_change/3]). - --define(SERVER, ?MODULE). - --record(state, { mod, q }). - -%%%=================================================================== -%%% API -%%%=================================================================== - -%%-------------------------------------------------------------------- -%% @doc -%% Starts the server -%% -%% @spec start_link(Mod) -> {ok, Pid} | ignore | {error, Error} -%% @end -%%-------------------------------------------------------------------- -start_link(Mod) -> - gen_server:start_link({local, ?SERVER}, ?MODULE, [Mod], []). - -stop() -> - gen_server:stop(?SERVER). - -call(M) -> - gen_server:call(?SERVER, M, infinity). - -in(I) -> - call({in, I}). - -in(I, P) -> - call({in, I, P}). - -len() -> - call(len). - -is_empty() -> - call(is_empty). - -is_queue() -> - call(is_queue). - -to_list() -> - call(to_list). - -out() -> - call(out). - -out(P) -> - call({out, P}). - -pout() -> - call(pout). - -%%%=================================================================== -%%% gen_server callbacks -%%%=================================================================== - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Initializes the server -%% -%% @spec init(Args) -> {ok, State} | -%% {ok, State, Timeout} | -%% ignore | -%% {stop, Reason} -%% @end -%%-------------------------------------------------------------------- -init([Mod]) -> - {ok, #state{ mod = Mod, - q = Mod:new() }}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling call messages -%% -%% @spec handle_call(Request, From, State) -> -%% {reply, Reply, State} | -%% {reply, Reply, State, Timeout} | -%% {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, Reply, State} | -%% {stop, Reason, State} -%% @end -%%-------------------------------------------------------------------- -handle_call({in, Item}, _F, #state { q = Q, mod = M } = S) -> - NQ = M:in(Item, Q), - {reply, ok, S#state { q = NQ }}; -handle_call({in, Item, Prio}, _F, #state { q = Q, mod = M } = S) -> - NQ = M:in(Item, Prio, Q), - {reply, ok, S#state { q = NQ }}; -handle_call({out, P}, _F, #state { q = Q, mod = M } = S) -> - {R, NQ} = M:out(P, Q), - {reply, R, S#state { q = NQ }}; -handle_call(Ty, _F, #state { q = Q, mod = M } = S) when Ty == out; - Ty == pout -> - {R, NQ} = M:Ty(Q), - {reply, R, S#state { q = NQ }}; -handle_call(Ty, _F, #state { q = Q, mod = M } = S) when Ty == is_queue; - Ty == is_empty; - Ty == len; - Ty == to_list -> - R = M:Ty(Q), - {reply, R, S}; -handle_call(Req, From, State) -> - error_logger:info_report([{handle_call, Req, From, State}]), - Reply = ok, - {reply, Reply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling cast messages -%% -%% @spec handle_cast(Msg, State) -> {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, State} -%% @end -%%-------------------------------------------------------------------- -handle_cast(_Msg, State) -> - {noreply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling all non call/cast messages -%% -%% @spec handle_info(Info, State) -> {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, State} -%% @end -%%-------------------------------------------------------------------- -handle_info(_Info, State) -> - {noreply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% This function is called by a gen_server when it is about to -%% terminate. It should be the opposite of Module:init/1 and do any -%% necessary cleaning up. When it returns, the gen_server terminates -%% with Reason. The return value is ignored. -%% -%% @spec terminate(Reason, State) -> void() -%% @end -%%-------------------------------------------------------------------- -terminate(_Reason, _State) -> - ok. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Convert process state when code is changed -%% -%% @spec code_change(OldVsn, State, Extra) -> {ok, NewState} -%% @end -%%-------------------------------------------------------------------- -code_change(_OldVsn, State, _Extra) -> - {ok, State}. - -%%%=================================================================== -%%% Internal functions -%%%=================================================================== diff --git a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.cache b/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.cache deleted file mode 100644 index 4ef501f..0000000 Binary files a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.cache_meta b/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.cache_meta deleted file mode 100644 index 90aa893..0000000 Binary files a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.erl b/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.erl deleted file mode 100644 index 59361a2..0000000 --- a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile.erl +++ /dev/null @@ -1,287 +0,0 @@ --module(simplifile). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([read/1, write/2, delete/1, delete_all/1, append/2, read_bits/1, write_bits/2, append_bits/2, is_directory/1, create_directory/1, read_directory/1, is_file/1, create_file/1, get_files/1, create_directory_all/1, copy_directory/2, rename_directory/2, copy_file/2, rename_file/2]). --export_type([file_error/0]). - --type file_error() :: eacces | - eagain | - ebadf | - ebadmsg | - ebusy | - edeadlk | - edeadlock | - edquot | - eexist | - efault | - efbig | - eftype | - eintr | - einval | - eio | - eisdir | - eloop | - emfile | - emlink | - emultihop | - enametoolong | - enfile | - enobufs | - enodev | - enolck | - enolink | - enoent | - enomem | - enospc | - enosr | - enostr | - enosys | - enotblk | - enotdir | - enotsup | - enxio | - eopnotsupp | - eoverflow | - eperm | - epipe | - erange | - erofs | - espipe | - esrch | - estale | - etxtbsy | - exdev | - not_utf8 | - unknown. - --spec do_append(binary(), binary()) -> {ok, nil} | {error, file_error()}. -do_append(Content, Filepath) -> - _pipe = Content, - _pipe@1 = gleam_stdlib:identity(_pipe), - simplifile_erl:append_file(_pipe@1, Filepath). - --spec do_write(binary(), binary()) -> {ok, nil} | {error, file_error()}. -do_write(Content, Filepath) -> - _pipe = Content, - _pipe@1 = gleam_stdlib:identity(_pipe), - simplifile_erl:write_file(_pipe@1, Filepath). - --spec do_read(binary()) -> {ok, binary()} | {error, file_error()}. -do_read(Filepath) -> - case simplifile_erl:read_file(Filepath) of - {ok, Bits} -> - case gleam@bit_array:to_string(Bits) of - {ok, Str} -> - {ok, Str}; - - _ -> - {error, not_utf8} - end; - - {error, E} -> - {error, E} - end. - --spec cast_error({ok, JXG} | {error, file_error()}) -> {ok, JXG} | - {error, file_error()}. -cast_error(Input) -> - Input. - --spec read(binary()) -> {ok, binary()} | {error, file_error()}. -read(Filepath) -> - _pipe = do_read(Filepath), - cast_error(_pipe). - --spec write(binary(), binary()) -> {ok, nil} | {error, file_error()}. -write(Filepath, Contents) -> - _pipe = do_write(Contents, Filepath), - cast_error(_pipe). - --spec delete(binary()) -> {ok, nil} | {error, file_error()}. -delete(Path) -> - _pipe = simplifile_erl:recursive_delete(Path), - cast_error(_pipe). - --spec delete_all(list(binary())) -> {ok, nil} | {error, file_error()}. -delete_all(Paths) -> - case Paths of - [] -> - {ok, nil}; - - [Path | Rest] -> - case delete(Path) of - {ok, nil} -> - delete_all(Rest); - - {error, enoent} -> - delete_all(Rest); - - E -> - E - end - end. - --spec append(binary(), binary()) -> {ok, nil} | {error, file_error()}. -append(Filepath, Contents) -> - _pipe = do_append(Contents, Filepath), - cast_error(_pipe). - --spec read_bits(binary()) -> {ok, bitstring()} | {error, file_error()}. -read_bits(Filepath) -> - _pipe = simplifile_erl:read_file(Filepath), - cast_error(_pipe). - --spec write_bits(binary(), bitstring()) -> {ok, nil} | {error, file_error()}. -write_bits(Filepath, Bits) -> - _pipe = simplifile_erl:write_file(Bits, Filepath), - cast_error(_pipe). - --spec append_bits(binary(), bitstring()) -> {ok, nil} | {error, file_error()}. -append_bits(Filepath, Bits) -> - _pipe = simplifile_erl:append_file(Bits, Filepath), - cast_error(_pipe). - --spec is_directory(binary()) -> boolean(). -is_directory(Filepath) -> - filelib:is_dir(Filepath). - --spec create_directory(binary()) -> {ok, nil} | {error, file_error()}. -create_directory(Filepath) -> - _pipe = simplifile_erl:make_directory(Filepath), - cast_error(_pipe). - --spec read_directory(binary()) -> {ok, list(binary())} | {error, file_error()}. -read_directory(Path) -> - _pipe = simplifile_erl:list_directory(Path), - cast_error(_pipe). - --spec is_file(binary()) -> boolean(). -is_file(Filepath) -> - simplifile_erl:is_file(Filepath). - --spec create_file(binary()) -> {ok, nil} | {error, file_error()}. -create_file(Filepath) -> - case begin - _pipe = Filepath, - is_file(_pipe) - end - orelse begin - _pipe@1 = Filepath, - is_directory(_pipe@1) - end of - true -> - {error, eexist}; - - false -> - write_bits(Filepath, <<>>) - end. - --spec do_copy_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}. -do_copy_directory(Src, Dest) -> - gleam@result:'try'( - read_directory(Src), - fun(Segments) -> - _pipe = Segments, - gleam@list:each( - _pipe, - fun(Segment) -> - Src_path = <<<>/binary, - Segment/binary>>, - Dest_path = <<<>/binary, - Segment/binary>>, - case {is_file(Src_path), is_directory(Src_path)} of - {true, false} -> - gleam@result:'try'( - read_bits(Src_path), - fun(Content) -> _pipe@1 = Content, - write_bits(Dest_path, _pipe@1) end - ); - - {false, true} -> - gleam@result:'try'( - create_directory(Dest_path), - fun(_) -> - do_copy_directory(Src_path, Dest_path) - end - ); - - {_, _} -> - erlang:error(#{gleam_error => panic, - message => <<"unreachable"/utf8>>, - module => <<"simplifile"/utf8>>, - function => <<"do_copy_directory"/utf8>>, - line => 341}) - end - end - ), - {ok, nil} - end - ). - --spec get_files(binary()) -> {ok, list(binary())} | {error, file_error()}. -get_files(Directory) -> - gleam@result:'try'( - read_directory(Directory), - fun(Contents) -> - Paths = gleam@list:map( - Contents, - fun(Segment) -> - <<<>/binary, Segment/binary>> - end - ), - Files = gleam@list:filter(Paths, fun is_file/1), - case gleam@list:filter(Paths, fun is_directory/1) of - [] -> - {ok, Files}; - - Directories -> - gleam@result:'try'( - gleam@list:try_map(Directories, fun get_files/1), - fun(Nested_files) -> - {ok, - gleam@list:append( - Files, - gleam@list:flatten(Nested_files) - )} - end - ) - end - end - ). - --spec create_directory_all(binary()) -> {ok, nil} | {error, file_error()}. -create_directory_all(Dirpath) -> - Path = case begin - _pipe = Dirpath, - gleam@string:ends_with(_pipe, <<"/"/utf8>>) - end of - true -> - Dirpath; - - false -> - <> - end, - _pipe@1 = simplifile_erl:create_dir_all(Path), - cast_error(_pipe@1). - --spec copy_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}. -copy_directory(Src, Dest) -> - gleam@result:'try'( - create_directory_all(Dest), - fun(_) -> do_copy_directory(Src, Dest) end - ). - --spec rename_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}. -rename_directory(Src, Dest) -> - gleam@result:'try'(copy_directory(Src, Dest), fun(_) -> delete(Src) end). - --spec copy_file(binary(), binary()) -> {ok, nil} | {error, file_error()}. -copy_file(Src, Dest) -> - _pipe = file:copy(Src, Dest), - _pipe@1 = gleam@result:replace(_pipe, nil), - cast_error(_pipe@1). - --spec rename_file(binary(), binary()) -> {ok, nil} | {error, file_error()}. -rename_file(Src, Dest) -> - _pipe = simplifile_erl:rename_file(Src, Dest), - cast_error(_pipe). diff --git a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile_erl.erl b/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile_erl.erl deleted file mode 100644 index dac135a..0000000 --- a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile_erl.erl +++ /dev/null @@ -1,70 +0,0 @@ --module(simplifile_erl). --export([ - read_file/1, - append_file/2, write_file/2, delete_file/1, delete_directory/1, recursive_delete/1, - list_directory/1, make_directory/1, is_file/1, create_dir_all/1, rename_file/2 -]). - --define(is_posix_error(Error), - Error =:= eacces orelse Error =:= eagain orelse Error =:= ebadf orelse - Error =:= ebadmsg orelse Error =:= ebusy orelse Error =:= edeadlk orelse - Error =:= edeadlock orelse Error =:= edquot orelse Error =:= eexist orelse - Error =:= efault orelse Error =:= efbig orelse Error =:= eftype orelse - Error =:= eintr orelse Error =:= einval orelse Error =:= eio orelse - Error =:= eisdir orelse Error =:= eloop orelse Error =:= emfile orelse - Error =:= emlink orelse Error =:= emultihop orelse Error =:= enametoolong orelse - Error =:= enfile orelse Error =:= enobufs orelse Error =:= enodev orelse - Error =:= enolck orelse Error =:= enolink orelse Error =:= enoent orelse - Error =:= enomem orelse Error =:= enospc orelse Error =:= enosr orelse - Error =:= enostr orelse Error =:= enosys orelse Error =:= enotblk orelse - Error =:= enotdir orelse Error =:= enotsup orelse Error =:= enxio orelse - Error =:= eopnotsupp orelse Error =:= eoverflow orelse Error =:= eperm orelse - Error =:= epipe orelse Error =:= erange orelse Error =:= erofs orelse - Error =:= espipe orelse Error =:= esrch orelse Error =:= estale orelse - Error =:= etxtbsy orelse Error =:= exdev -). - -posix_result(Result) -> - case Result of - ok -> {ok, nil}; - {ok, Value} -> {ok, Value}; - {error, Reason} when ?is_posix_error(Reason) -> {error, Reason} - end. - -read_file(Filename) -> - posix_result(file:read_file(Filename)). - -write_file(Contents, Filename) -> - posix_result(file:write_file(Filename, Contents)). - -append_file(Contents, Filename) -> - posix_result(file:write_file(Filename, Contents, [append])). - -delete_file(Filename) -> - posix_result(file:delete(Filename)). - -make_directory(Dir) -> - posix_result(file:make_dir(Dir)). - -list_directory(Dir) -> - case file:list_dir(Dir) of - {ok, Filenames} -> - {ok, [list_to_binary(Filename) || Filename <- Filenames]}; - {error, Reason} when ?is_posix_error(Reason) -> - {error, Reason} - end. - -delete_directory(Dir) -> - posix_result(file:del_dir(Dir)). - -recursive_delete(Dir) -> - posix_result(file:del_dir_r(Dir)). - -is_file(Filename) -> - not (file:read_file_info(Filename) == {error, enoent}) and not filelib: is_dir(Filename). - -create_dir_all(Filename) -> - posix_result(filelib:ensure_dir(Filename)). - -rename_file(Source, Destination) -> - posix_result(file:rename(Source, Destination)). diff --git a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile_js.mjs b/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile_js.mjs deleted file mode 100644 index faf4109..0000000 --- a/aoc2023/build/dev/erlang/simplifile/_gleam_artefacts/simplifile_js.mjs +++ /dev/null @@ -1,102 +0,0 @@ -import fs from "node:fs" -import path from "node:path" -import { BitArray, Ok, Error as GError, toList} from "./gleam.mjs"; - -export function readBits(filepath) { - try { - const contents = fs.readFileSync(path.normalize(filepath)) - return new Ok(new BitArray(new Uint8Array(contents))) - } catch(e) { - return new GError(stringifyError(e)) - } -} - -export function writeBits(contents, filepath) { - try { - fs.writeFileSync(path.normalize(filepath), contents.buffer) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function appendBits(contents, filepath) { - try { - fs.appendFileSync(path.normalize(filepath), contents.buffer) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -function stringifyError(e) { - return e.code -} - -export function isFile(filepath) { - let fp = path.normalize(filepath) - return fs.existsSync(fp) && fs.lstatSync(fp).isFile(); -} - -export function isDirectory(filepath) { - let fp = path.normalize(filepath) - return fs.existsSync(fp) && fs.lstatSync(fp).isDirectory(); -} - -export function makeDirectory(filepath) { - try { - fs.mkdirSync(path.normalize(filepath)) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function createDirAll(filepath) { - try { - fs.mkdirSync(filepath, { recursive: true }) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function deleteFileOrDirRecursive(fileOrDirPath) { - try { - if (isDirectory(fileOrDirPath)) { - fs.rmSync(path.normalize(fileOrDirPath), { recursive: true }) - } else { - fs.unlinkSync(path.normalize(fileOrDirPath)) - } - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function listContents(filepath) { - try { - const stuff = toList(fs.readdirSync(path.normalize(filepath))) - return new Ok(stuff) - } catch(e) { - return new GError(stringifyError(e)) - } -} - -export function copyFile(srcpath, destpath) { - try { - fs.copyFileSync(path.normalize(srcpath), path.normalize(destpath)) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function renameFile(srcpath, destpath) { - try { - fs.renameSync(path.normalize(srcpath), path.normalize(destpath)) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} \ No newline at end of file diff --git a/aoc2023/build/dev/erlang/simplifile/ebin/simplifile.app b/aoc2023/build/dev/erlang/simplifile/ebin/simplifile.app deleted file mode 100644 index 3bb63fa..0000000 --- a/aoc2023/build/dev/erlang/simplifile/ebin/simplifile.app +++ /dev/null @@ -1,7 +0,0 @@ -{application, simplifile, [ - {vsn, "1.0.0"}, - {applications, [gleam_stdlib]}, - {description, "Basic file operations that work on all targets"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/simplifile/ebin/simplifile.beam b/aoc2023/build/dev/erlang/simplifile/ebin/simplifile.beam deleted file mode 100644 index 7d3bcd6..0000000 Binary files a/aoc2023/build/dev/erlang/simplifile/ebin/simplifile.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/simplifile/ebin/simplifile_erl.beam b/aoc2023/build/dev/erlang/simplifile/ebin/simplifile_erl.beam deleted file mode 100644 index b859e1e..0000000 Binary files a/aoc2023/build/dev/erlang/simplifile/ebin/simplifile_erl.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/snag/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/snag/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/snag/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.cache b/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.cache deleted file mode 100644 index 7fa2fe5..0000000 Binary files a/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.cache_meta b/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.cache_meta deleted file mode 100644 index daef1e9..0000000 Binary files a/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.erl b/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.erl deleted file mode 100644 index a3ad8f4..0000000 --- a/aoc2023/build/dev/erlang/snag/_gleam_artefacts/snag.erl +++ /dev/null @@ -1,74 +0,0 @@ --module(snag). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/1, error/1, layer/2, context/2, pretty_print/1, line_print/1]). --export_type([snag/0]). - --type snag() :: {snag, binary(), list(binary())}. - --spec new(binary()) -> snag(). -new(Issue) -> - {snag, Issue, []}. - --spec error(binary()) -> {ok, any()} | {error, snag()}. -error(Issue) -> - {error, new(Issue)}. - --spec layer(snag(), binary()) -> snag(). -layer(Snag, Issue) -> - {snag, Issue, [erlang:element(2, Snag) | erlang:element(3, Snag)]}. - --spec context({ok, IOV} | {error, snag()}, binary()) -> {ok, IOV} | - {error, snag()}. -context(Result, Issue) -> - case Result of - {ok, _} -> - Result; - - {error, Snag} -> - {error, layer(Snag, Issue)} - end. - --spec pretty_print_cause(list(binary())) -> gleam@string_builder:string_builder(). -pretty_print_cause(Cause) -> - _pipe = Cause, - _pipe@1 = gleam@list:index_map( - _pipe, - fun(Index, Line) -> - gleam@string:concat( - [<<" "/utf8>>, - gleam@int:to_string(Index), - <<": "/utf8>>, - Line, - <<"\n"/utf8>>] - ) - end - ), - gleam@string_builder:from_strings(_pipe@1). - --spec pretty_print(snag()) -> binary(). -pretty_print(Snag) -> - Builder = gleam@string_builder:from_strings( - [<<"error: "/utf8>>, erlang:element(2, Snag), <<"\n"/utf8>>] - ), - gleam@string_builder:to_string(case erlang:element(3, Snag) of - [] -> - Builder; - - Cause -> - _pipe = Builder, - _pipe@1 = gleam@string_builder:append( - _pipe, - <<"\ncause:\n"/utf8>> - ), - gleam@string_builder:append_builder( - _pipe@1, - pretty_print_cause(Cause) - ) - end). - --spec line_print(snag()) -> binary(). -line_print(Snag) -> - _pipe = [gleam@string:append(<<"error: "/utf8>>, erlang:element(2, Snag)) | - erlang:element(3, Snag)], - gleam@string:join(_pipe, <<" <- "/utf8>>). diff --git a/aoc2023/build/dev/erlang/snag/ebin/snag.app b/aoc2023/build/dev/erlang/snag/ebin/snag.app deleted file mode 100644 index 724fb97..0000000 --- a/aoc2023/build/dev/erlang/snag/ebin/snag.app +++ /dev/null @@ -1,7 +0,0 @@ -{application, snag, [ - {vsn, "0.2.1"}, - {applications, [gleam_stdlib]}, - {description, "A boilerplate-free ad-hoc error type"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/snag/ebin/snag.beam b/aoc2023/build/dev/erlang/snag/ebin/snag.beam deleted file mode 100644 index 4af73ad..0000000 Binary files a/aoc2023/build/dev/erlang/snag/ebin/snag.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/snag/include/snag_Snag.hrl b/aoc2023/build/dev/erlang/snag/include/snag_Snag.hrl deleted file mode 100644 index 5d6614e..0000000 --- a/aoc2023/build/dev/erlang/snag/include/snag_Snag.hrl +++ /dev/null @@ -1 +0,0 @@ --record(snag, {issue :: binary(), cause :: list(binary())}). diff --git a/aoc2023/build/dev/erlang/tom/_gleam_artefacts/gleam@@compile.erl b/aoc2023/build/dev/erlang/tom/_gleam_artefacts/gleam@@compile.erl deleted file mode 100644 index 543db88..0000000 --- a/aoc2023/build/dev/erlang/tom/_gleam_artefacts/gleam@@compile.erl +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env escript - -% TODO: Don't concurrently print warnings and errors -% TODO: Some tests - --record(arguments, {lib = "./", out = "./", modules = []}). - -main(Args) -> - #arguments{out = Out, lib = Lib, modules = Modules} = parse(Args), - IsElixirModule = fun(Module) -> - filename:extension(Module) =:= ".ex" - end, - {ElixirModules, ErlangModules} = lists:partition(IsElixirModule, Modules), - ok = configure_logging(), - ok = add_lib_to_erlang_path(Lib), - ok = filelib:ensure_dir([Out, $/]), - {ErlangOk, _ErlangBeams} = compile_erlang(ErlangModules, Out), - {ElixirOk, _ElixirBeams} = case ErlangOk of - true -> compile_elixir(ElixirModules, Out); - false -> {false, []} - end, - case ErlangOk and ElixirOk of - true -> ok; - false -> erlang:halt(1) - end. - -compile_erlang(Modules, Out) -> - Workers = start_compiler_workers(Out), - ok = producer_loop(Modules, Workers), - collect_results({true, []}). - -collect_results(Acc = {Result, Beams}) -> - receive - {compiled, Beam} -> collect_results({Result, [Beam | Beams]}); - failed -> collect_results({false, Beams}) - after 0 -> Acc - end. - -producer_loop([], 0) -> - ok; -producer_loop([], Workers) -> - receive - {work_please, _} -> producer_loop([], Workers - 1) - end; -producer_loop([Module | Modules], Workers) -> - receive - {work_please, Worker} -> - erlang:send(Worker, {module, Module}), - producer_loop(Modules, Workers) - end. - -start_compiler_workers(Out) -> - Parent = self(), - NumSchedulers = erlang:system_info(schedulers), - SpawnWorker = fun(_) -> - erlang:spawn_link(fun() -> worker_loop(Parent, Out) end) - end, - lists:foreach(SpawnWorker, lists:seq(1, NumSchedulers)), - NumSchedulers. - -worker_loop(Parent, Out) -> - Options = [report_errors, report_warnings, debug_info, {outdir, Out}], - erlang:send(Parent, {work_please, self()}), - receive - {module, Module} -> - log({compiling, Module}), - case compile:file(Module, Options) of - {ok, ModuleName} -> - Beam = filename:join(Out, ModuleName) ++ ".beam", - Message = {compiled, Beam}, - log(Message), - erlang:send(Parent, Message); - error -> - log({failed, Module}), - erlang:send(Parent, failed) - end, - worker_loop(Parent, Out) - end. - -compile_elixir(Modules, Out) -> - Error = [ - "The program elixir was not found. Is it installed?", - $\n, - "Documentation for installing Elixir can be viewed here:", - $\n, - "https://elixir-lang.org/install.html" - ], - case Modules of - [] -> {true, []}; - _ -> - log({starting, "compiler.app"}), - ok = application:start(compiler), - log({starting, "elixir.app"}), - case application:start(elixir) of - ok -> do_compile_elixir(Modules, Out); - _ -> - io:put_chars(standard_error, [Error, $\n]), - {false, []} - end - end. - -do_compile_elixir(Modules, Out) -> - ModuleBins = lists:map(fun(Module) -> - log({compiling, Module}), - list_to_binary(Module) - end, Modules), - OutBin = list_to_binary(Out), - Options = [{dest, OutBin}], - % Silence "redefining module" warnings. - % Compiled modules in the build directory are added to the code path. - % These warnings result from recompiling loaded modules. - % TODO: This line can likely be removed if/when the build directory is cleaned before every compilation. - 'Elixir.Code':compiler_options([{ignore_module_conflict, true}]), - case 'Elixir.Kernel.ParallelCompiler':compile_to_path(ModuleBins, OutBin, Options) of - {ok, ModuleAtoms, _} -> - ToBeam = fun(ModuleAtom) -> - Beam = filename:join(Out, atom_to_list(ModuleAtom)) ++ ".beam", - log({compiled, Beam}), - Beam - end, - {true, lists:map(ToBeam, ModuleAtoms)}; - {error, Errors, _} -> - % Log all filenames associated with modules that failed to compile. - % Note: The compiler prints compilation errors upon encountering them. - ErrorFiles = lists:usort([File || {File, _, _} <- Errors]), - Log = fun(File) -> - log({failed, binary_to_list(File)}) - end, - lists:foreach(Log, ErrorFiles), - {false, []}; - _ -> {false, []} - end. - -add_lib_to_erlang_path(Lib) -> - code:add_paths(filelib:wildcard([Lib, "/*/ebin"])). - -parse(Args) -> - parse(Args, #arguments{}). - -parse([], Arguments) -> - Arguments; -parse(["--lib", Lib | Rest], Arguments) -> - parse(Rest, Arguments#arguments{lib = Lib}); -parse(["--out", Out | Rest], Arguments) -> - parse(Rest, Arguments#arguments{out = Out}); -parse([Module | Rest], Arguments = #arguments{modules = Modules}) -> - parse(Rest, Arguments#arguments{modules = [Module | Modules]}). - -configure_logging() -> - Enabled = os:getenv("GLEAM_LOG") /= false, - persistent_term:put(gleam_logging_enabled, Enabled). - -log(Term) -> - case persistent_term:get(gleam_logging_enabled) of - true -> erlang:display(Term), ok; - false -> ok - end. diff --git a/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.cache b/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.cache deleted file mode 100644 index 036c033..0000000 Binary files a/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.cache and /dev/null differ diff --git a/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.cache_meta b/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.cache_meta deleted file mode 100644 index 492599b..0000000 Binary files a/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.cache_meta and /dev/null differ diff --git a/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.erl b/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.erl deleted file mode 100644 index 0429a31..0000000 --- a/aoc2023/build/dev/erlang/tom/_gleam_artefacts/tom.erl +++ /dev/null @@ -1,2142 +0,0 @@ --module(tom). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get/2, get_int/2, get_float/2, get_bool/2, get_string/2, get_date/2, get_time/2, get_date_time/2, get_array/2, get_table/2, get_number/2, parse/1]). --export_type([toml/0, date_time/0, date/0, time/0, offset/0, sign/0, parse_error/0, number_/0, get_error/0]). - --type toml() :: {int, integer()} | - {float, float()} | - {infinity, sign()} | - {nan, sign()} | - {bool, boolean()} | - {string, binary()} | - {date, date()} | - {time, time()} | - {date_time, date_time()} | - {array, list(toml())} | - {array_of_tables, list(gleam@dict:dict(binary(), toml()))} | - {table, gleam@dict:dict(binary(), toml())} | - {inline_table, gleam@dict:dict(binary(), toml())}. - --type date_time() :: {date_time_value, date(), time(), offset()}. - --type date() :: {date_value, integer(), integer(), integer()}. - --type time() :: {time_value, integer(), integer(), integer(), integer()}. - --type offset() :: local | {offset, sign(), integer(), integer()}. - --type sign() :: positive | negative. - --type parse_error() :: {unexpected, binary(), binary()} | - {key_already_in_use, list(binary())}. - --type number_() :: {number_int, integer()} | - {number_float, float()} | - {number_infinity, sign()} | - {number_nan, sign()}. - --type get_error() :: {not_found, list(binary())} | - {wrong_type, list(binary()), binary(), binary()}. - --spec classify(toml()) -> binary(). -classify(Toml) -> - case Toml of - {int, _} -> - <<"Int"/utf8>>; - - {float, _} -> - <<"Float"/utf8>>; - - {nan, positive} -> - <<"NaN"/utf8>>; - - {nan, negative} -> - <<"Negative NaN"/utf8>>; - - {infinity, positive} -> - <<"Infinity"/utf8>>; - - {infinity, negative} -> - <<"Negative Infinity"/utf8>>; - - {bool, _} -> - <<"Bool"/utf8>>; - - {string, _} -> - <<"String"/utf8>>; - - {date, _} -> - <<"Date"/utf8>>; - - {time, _} -> - <<"Time"/utf8>>; - - {date_time, _} -> - <<"DateTime"/utf8>>; - - {array, _} -> - <<"Array"/utf8>>; - - {array_of_tables, _} -> - <<"Array"/utf8>>; - - {table, _} -> - <<"Table"/utf8>>; - - {inline_table, _} -> - <<"Table"/utf8>> - end. - --spec push_key({ok, KFC} | {error, get_error()}, binary()) -> {ok, KFC} | - {error, get_error()}. -push_key(Result, Key) -> - case Result of - {ok, T} -> - {ok, T}; - - {error, {not_found, Path}} -> - {error, {not_found, [Key | Path]}}; - - {error, {wrong_type, Path@1, Expected, Got}} -> - {error, {wrong_type, [Key | Path@1], Expected, Got}} - end. - --spec get(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, toml()} | - {error, get_error()}. -get(Toml, Key) -> - case Key of - [] -> - {error, {not_found, []}}; - - [K] -> - gleam@result:replace_error(gleam@map:get(Toml, K), {not_found, [K]}); - - [K@1 | Key@1] -> - case gleam@map:get(Toml, K@1) of - {ok, {table, T}} -> - push_key(get(T, Key@1), K@1); - - {ok, Other} -> - {error, - {wrong_type, [K@1], <<"Table"/utf8>>, classify(Other)}}; - - {error, _} -> - {error, {not_found, [K@1]}} - end - end. - --spec get_int(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - integer()} | - {error, get_error()}. -get_int(Toml, Key) -> - case get(Toml, Key) of - {ok, {int, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Int"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_float(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - float()} | - {error, get_error()}. -get_float(Toml, Key) -> - case get(Toml, Key) of - {ok, {float, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Float"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_bool(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - boolean()} | - {error, get_error()}. -get_bool(Toml, Key) -> - case get(Toml, Key) of - {ok, {bool, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Bool"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_string(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - binary()} | - {error, get_error()}. -get_string(Toml, Key) -> - case get(Toml, Key) of - {ok, {string, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"String"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_date(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - date()} | - {error, get_error()}. -get_date(Toml, Key) -> - case get(Toml, Key) of - {ok, {date, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Date"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_time(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - time()} | - {error, get_error()}. -get_time(Toml, Key) -> - case get(Toml, Key) of - {ok, {time, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Time"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_date_time(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - date_time()} | - {error, get_error()}. -get_date_time(Toml, Key) -> - case get(Toml, Key) of - {ok, {date_time, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"DateTime"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_array(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - list(toml())} | - {error, get_error()}. -get_array(Toml, Key) -> - case get(Toml, Key) of - {ok, {array, I}} -> - {ok, I}; - - {ok, {array_of_tables, I@1}} -> - {ok, gleam@list:map(I@1, fun(Field@0) -> {table, Field@0} end)}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Array"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_table(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - gleam@dict:dict(binary(), toml())} | - {error, get_error()}. -get_table(Toml, Key) -> - case get(Toml, Key) of - {ok, {table, I}} -> - {ok, I}; - - {ok, {inline_table, I@1}} -> - {ok, I@1}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Table"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_number(gleam@dict:dict(binary(), toml()), list(binary())) -> {ok, - number_()} | - {error, get_error()}. -get_number(Toml, Key) -> - case get(Toml, Key) of - {ok, {int, X}} -> - {ok, {number_int, X}}; - - {ok, {float, X@1}} -> - {ok, {number_float, X@1}}; - - {ok, {nan, X@2}} -> - {ok, {number_nan, X@2}}; - - {ok, {infinity, X@3}} -> - {ok, {number_infinity, X@3}}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Number"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec merge(gleam@dict:dict(binary(), toml()), binary(), toml(), toml()) -> {ok, - gleam@dict:dict(binary(), toml())} | - {error, list(binary())}. -merge(Table, Key, Old, New) -> - case {Old, New} of - {{array_of_tables, Tables}, {array_of_tables, New@1}} -> - {ok, - gleam@map:insert( - Table, - Key, - {array_of_tables, gleam@list:append(New@1, Tables)} - )}; - - {_, _} -> - {error, [Key]} - end. - --spec insert_loop(gleam@dict:dict(binary(), toml()), list(binary()), toml()) -> {ok, - gleam@dict:dict(binary(), toml())} | - {error, list(binary())}. -insert_loop(Table, Key, Value) -> - case Key of - [] -> - erlang:error(#{gleam_error => panic, - message => <<"unreachable"/utf8>>, - module => <<"tom"/utf8>>, - function => <<"insert_loop"/utf8>>, - line => 511}); - - [K] -> - case gleam@map:get(Table, K) of - {error, nil} -> - {ok, gleam@map:insert(Table, K, Value)}; - - {ok, Old} -> - merge(Table, K, Old, Value) - end; - - [K@1 | Key@1] -> - case gleam@map:get(Table, K@1) of - {error, nil} -> - case insert_loop(gleam@map:new(), Key@1, Value) of - {ok, Inner} -> - {ok, gleam@map:insert(Table, K@1, {table, Inner})}; - - {error, Path} -> - {error, [K@1 | Path]} - end; - - {ok, {array_of_tables, [Inner@1 | Rest]}} -> - case insert_loop(Inner@1, Key@1, Value) of - {ok, Inner@2} -> - {ok, - gleam@map:insert( - Table, - K@1, - {array_of_tables, [Inner@2 | Rest]} - )}; - - {error, Path@1} -> - {error, [K@1 | Path@1]} - end; - - {ok, {table, Inner@3}} -> - case insert_loop(Inner@3, Key@1, Value) of - {ok, Inner@4} -> - {ok, gleam@map:insert(Table, K@1, {table, Inner@4})}; - - {error, Path@2} -> - {error, [K@1 | Path@2]} - end; - - {ok, _} -> - {error, [K@1]} - end - end. - --spec insert(gleam@dict:dict(binary(), toml()), list(binary()), toml()) -> {ok, - gleam@dict:dict(binary(), toml())} | - {error, parse_error()}. -insert(Table, Key, Value) -> - case insert_loop(Table, Key, Value) of - {ok, Table@1} -> - {ok, Table@1}; - - {error, Path} -> - {error, {key_already_in_use, Path}} - end. - --spec expect_end_of_line( - list(binary()), - fun((list(binary())) -> {ok, {KHH, list(binary())}} | {error, parse_error()}) -) -> {ok, {KHH, list(binary())}} | {error, parse_error()}. -expect_end_of_line(Input, Next) -> - case Input of - [<<"\n"/utf8>> | Input@1] -> - Next(Input@1); - - [<<"\r\n"/utf8>> | Input@2] -> - Next(Input@2); - - [G | _] -> - {error, {unexpected, G, <<"\n"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\n"/utf8>>}} - end. - --spec parse_key_quoted(list(binary()), binary(), binary()) -> {ok, - {binary(), list(binary())}} | - {error, parse_error()}. -parse_key_quoted(Input, Close, Name) -> - case Input of - [G | Input@1] when G =:= Close -> - {ok, {Name, Input@1}}; - - [G@1 | Input@2] -> - parse_key_quoted(Input@2, Close, <>); - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, Close}} - end. - --spec parse_key_bare(list(binary()), binary()) -> {ok, - {binary(), list(binary())}} | - {error, parse_error()}. -parse_key_bare(Input, Name) -> - case Input of - [<<" "/utf8>> | Input@1] when Name =/= <<""/utf8>> -> - {ok, {Name, Input@1}}; - - [<<"="/utf8>> | _] when Name =/= <<""/utf8>> -> - {ok, {Name, Input}}; - - [<<"."/utf8>> | _] when Name =/= <<""/utf8>> -> - {ok, {Name, Input}}; - - [<<"]"/utf8>> | _] when Name =/= <<""/utf8>> -> - {ok, {Name, Input}}; - - [<<","/utf8>> | _] when Name =/= <<""/utf8>> -> - {error, {unexpected, <<","/utf8>>, <<"="/utf8>>}}; - - [<<"\n"/utf8>> | _] when Name =/= <<""/utf8>> -> - {error, {unexpected, <<"\n"/utf8>>, <<"="/utf8>>}}; - - [<<"\r\n"/utf8>> | _] when Name =/= <<""/utf8>> -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"="/utf8>>}}; - - [<<"\n"/utf8>> | _] -> - {error, {unexpected, <<"\n"/utf8>>, <<"key"/utf8>>}}; - - [<<"\r\n"/utf8>> | _] -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"key"/utf8>>}}; - - [<<"]"/utf8>> | _] -> - {error, {unexpected, <<"]"/utf8>>, <<"key"/utf8>>}}; - - [<<","/utf8>> | _] -> - {error, {unexpected, <<","/utf8>>, <<"key"/utf8>>}}; - - [G | Input@2] -> - parse_key_bare(Input@2, <>); - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"key"/utf8>>}} - end. - --spec skip_line_whitespace(list(binary())) -> list(binary()). -skip_line_whitespace(Input) -> - gleam@list:drop_while( - Input, - fun(G) -> (G =:= <<" "/utf8>>) orelse (G =:= <<"\t"/utf8>>) end - ). - --spec parse_key_segment(list(binary())) -> {ok, {binary(), list(binary())}} | - {error, parse_error()}. -parse_key_segment(Input) -> - Input@1 = skip_line_whitespace(Input), - case Input@1 of - [<<"="/utf8>> | _] -> - {error, {unexpected, <<"="/utf8>>, <<"Key"/utf8>>}}; - - [<<"\n"/utf8>> | _] -> - {error, {unexpected, <<"\n"/utf8>>, <<"Key"/utf8>>}}; - - [<<"\r\n"/utf8>> | _] -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"Key"/utf8>>}}; - - [<<"["/utf8>> | _] -> - {error, {unexpected, <<"["/utf8>>, <<"Key"/utf8>>}}; - - [<<"\""/utf8>> | Input@2] -> - parse_key_quoted(Input@2, <<"\""/utf8>>, <<""/utf8>>); - - [<<"'"/utf8>> | Input@3] -> - parse_key_quoted(Input@3, <<"'"/utf8>>, <<""/utf8>>); - - _ -> - parse_key_bare(Input@1, <<""/utf8>>) - end. - --spec skip_whitespace(list(binary())) -> list(binary()). -skip_whitespace(Input) -> - case Input of - [<<" "/utf8>> | Input@1] -> - skip_whitespace(Input@1); - - [<<"\t"/utf8>> | Input@2] -> - skip_whitespace(Input@2); - - [<<"\n"/utf8>> | Input@3] -> - skip_whitespace(Input@3); - - [<<"\r\n"/utf8>> | Input@4] -> - skip_whitespace(Input@4); - - Input@5 -> - Input@5 - end. - --spec drop_comments(list(binary()), list(binary())) -> list(binary()). -drop_comments(Input, Acc) -> - case Input of - [<<"#"/utf8>> | Input@1] -> - _pipe = Input@1, - _pipe@1 = gleam@list:drop_while( - _pipe, - fun(G) -> G /= <<"\n"/utf8>> end - ), - drop_comments(_pipe@1, Acc); - - [G@1 | Input@2] -> - drop_comments(Input@2, [G@1 | Acc]); - - [] -> - gleam@list:reverse(Acc) - end. - --spec do( - {ok, {KHS, list(binary())}} | {error, parse_error()}, - fun((KHS, list(binary())) -> {ok, KHV} | {error, parse_error()}) -) -> {ok, KHV} | {error, parse_error()}. -do(Result, Next) -> - case Result of - {ok, {A, Input}} -> - Next(A, Input); - - {error, E} -> - {error, E} - end. - --spec parse_key(list(binary()), list(binary())) -> {ok, - {list(binary()), list(binary())}} | - {error, parse_error()}. -parse_key(Input, Segments) -> - do( - parse_key_segment(Input), - fun(Segment, Input@1) -> - Segments@1 = [Segment | Segments], - Input@2 = skip_line_whitespace(Input@1), - case Input@2 of - [<<"."/utf8>> | Input@3] -> - parse_key(Input@3, Segments@1); - - _ -> - {ok, {gleam@list:reverse(Segments@1), Input@2}} - end - end - ). - --spec expect( - list(binary()), - binary(), - fun((list(binary())) -> {ok, {KIA, list(binary())}} | {error, parse_error()}) -) -> {ok, {KIA, list(binary())}} | {error, parse_error()}. -expect(Input, Expected, Next) -> - case Input of - [G | Input@1] when G =:= Expected -> - Next(Input@1); - - [G@1 | _] -> - {error, {unexpected, G@1, Expected}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, Expected}} - end. - --spec parse_table_header(list(binary())) -> {ok, - {list(binary()), list(binary())}} | - {error, parse_error()}. -parse_table_header(Input) -> - Input@1 = skip_line_whitespace(Input), - do( - parse_key(Input@1, []), - fun(Key, Input@2) -> - expect( - Input@2, - <<"]"/utf8>>, - fun(Input@3) -> - Input@4 = skip_line_whitespace(Input@3), - expect_end_of_line( - Input@4, - fun(Input@5) -> {ok, {Key, Input@5}} end - ) - end - ) - end - ). - --spec parse_hex(list(binary()), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_hex(Input, Number, Sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_hex(Input@1, Number, Sign); - - [<<"0"/utf8>> | Input@2] -> - parse_hex(Input@2, (Number * 16) + 0, Sign); - - [<<"1"/utf8>> | Input@3] -> - parse_hex(Input@3, (Number * 16) + 1, Sign); - - [<<"2"/utf8>> | Input@4] -> - parse_hex(Input@4, (Number * 16) + 2, Sign); - - [<<"3"/utf8>> | Input@5] -> - parse_hex(Input@5, (Number * 16) + 3, Sign); - - [<<"4"/utf8>> | Input@6] -> - parse_hex(Input@6, (Number * 16) + 4, Sign); - - [<<"5"/utf8>> | Input@7] -> - parse_hex(Input@7, (Number * 16) + 5, Sign); - - [<<"6"/utf8>> | Input@8] -> - parse_hex(Input@8, (Number * 16) + 6, Sign); - - [<<"7"/utf8>> | Input@9] -> - parse_hex(Input@9, (Number * 16) + 7, Sign); - - [<<"8"/utf8>> | Input@10] -> - parse_hex(Input@10, (Number * 16) + 8, Sign); - - [<<"9"/utf8>> | Input@11] -> - parse_hex(Input@11, (Number * 16) + 9, Sign); - - [<<"a"/utf8>> | Input@12] -> - parse_hex(Input@12, (Number * 16) + 10, Sign); - - [<<"b"/utf8>> | Input@13] -> - parse_hex(Input@13, (Number * 16) + 11, Sign); - - [<<"c"/utf8>> | Input@14] -> - parse_hex(Input@14, (Number * 16) + 12, Sign); - - [<<"d"/utf8>> | Input@15] -> - parse_hex(Input@15, (Number * 16) + 13, Sign); - - [<<"e"/utf8>> | Input@16] -> - parse_hex(Input@16, (Number * 16) + 14, Sign); - - [<<"f"/utf8>> | Input@17] -> - parse_hex(Input@17, (Number * 16) + 15, Sign); - - [<<"A"/utf8>> | Input@18] -> - parse_hex(Input@18, (Number * 16) + 10, Sign); - - [<<"B"/utf8>> | Input@19] -> - parse_hex(Input@19, (Number * 16) + 11, Sign); - - [<<"C"/utf8>> | Input@20] -> - parse_hex(Input@20, (Number * 16) + 12, Sign); - - [<<"D"/utf8>> | Input@21] -> - parse_hex(Input@21, (Number * 16) + 13, Sign); - - [<<"E"/utf8>> | Input@22] -> - parse_hex(Input@22, (Number * 16) + 14, Sign); - - [<<"F"/utf8>> | Input@23] -> - parse_hex(Input@23, (Number * 16) + 15, Sign); - - Input@24 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - - Number - end, - {ok, {{int, Number@1}, Input@24}} - end. - --spec parse_octal(list(binary()), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_octal(Input, Number, Sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_octal(Input@1, Number, Sign); - - [<<"0"/utf8>> | Input@2] -> - parse_octal(Input@2, (Number * 8) + 0, Sign); - - [<<"1"/utf8>> | Input@3] -> - parse_octal(Input@3, (Number * 8) + 1, Sign); - - [<<"2"/utf8>> | Input@4] -> - parse_octal(Input@4, (Number * 8) + 2, Sign); - - [<<"3"/utf8>> | Input@5] -> - parse_octal(Input@5, (Number * 8) + 3, Sign); - - [<<"4"/utf8>> | Input@6] -> - parse_octal(Input@6, (Number * 8) + 4, Sign); - - [<<"5"/utf8>> | Input@7] -> - parse_octal(Input@7, (Number * 8) + 5, Sign); - - [<<"6"/utf8>> | Input@8] -> - parse_octal(Input@8, (Number * 8) + 6, Sign); - - [<<"7"/utf8>> | Input@9] -> - parse_octal(Input@9, (Number * 8) + 7, Sign); - - Input@10 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - - Number - end, - {ok, {{int, Number@1}, Input@10}} - end. - --spec parse_binary(list(binary()), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_binary(Input, Number, Sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_binary(Input@1, Number, Sign); - - [<<"0"/utf8>> | Input@2] -> - parse_binary(Input@2, (Number * 2) + 0, Sign); - - [<<"1"/utf8>> | Input@3] -> - parse_binary(Input@3, (Number * 2) + 1, Sign); - - Input@4 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - - Number - end, - {ok, {{int, Number@1}, Input@4}} - end. - --spec parse_exponent(list(binary()), float(), sign(), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_exponent(Input, N, N_sign, Ex, Ex_sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_exponent(Input@1, N, N_sign, Ex, Ex_sign); - - [<<"0"/utf8>> | Input@2] -> - parse_exponent(Input@2, N, N_sign, Ex * 10, Ex_sign); - - [<<"1"/utf8>> | Input@3] -> - parse_exponent(Input@3, N, N_sign, (Ex * 10) + 1, Ex_sign); - - [<<"2"/utf8>> | Input@4] -> - parse_exponent(Input@4, N, N_sign, (Ex * 10) + 2, Ex_sign); - - [<<"3"/utf8>> | Input@5] -> - parse_exponent(Input@5, N, N_sign, (Ex * 10) + 3, Ex_sign); - - [<<"4"/utf8>> | Input@6] -> - parse_exponent(Input@6, N, N_sign, (Ex * 10) + 4, Ex_sign); - - [<<"5"/utf8>> | Input@7] -> - parse_exponent(Input@7, N, N_sign, (Ex * 10) + 5, Ex_sign); - - [<<"6"/utf8>> | Input@8] -> - parse_exponent(Input@8, N, N_sign, (Ex * 10) + 6, Ex_sign); - - [<<"7"/utf8>> | Input@9] -> - parse_exponent(Input@9, N, N_sign, (Ex * 10) + 7, Ex_sign); - - [<<"8"/utf8>> | Input@10] -> - parse_exponent(Input@10, N, N_sign, (Ex * 10) + 8, Ex_sign); - - [<<"9"/utf8>> | Input@11] -> - parse_exponent(Input@11, N, N_sign, (Ex * 10) + 9, Ex_sign); - - Input@12 -> - Number = case N_sign of - positive -> - N; - - negative -> - N * -1.0 - end, - Exponent = gleam@int:to_float(case Ex_sign of - positive -> - Ex; - - negative -> - - Ex - end), - Multiplier@1 = case gleam@float:power(10.0, Exponent) of - {ok, Multiplier} -> - Multiplier; - - {error, _} -> - 1.0 - end, - {ok, {{float, Number * Multiplier@1}, Input@12}} - end. - --spec parse_float(list(binary()), float(), sign(), float()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_float(Input, Number, Sign, Unit) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_float(Input@1, Number, Sign, Unit); - - [<<"0"/utf8>> | Input@2] -> - parse_float(Input@2, Number, Sign, Unit * 0.1); - - [<<"1"/utf8>> | Input@3] -> - parse_float(Input@3, Number + (1.0 * Unit), Sign, Unit * 0.1); - - [<<"2"/utf8>> | Input@4] -> - parse_float(Input@4, Number + (2.0 * Unit), Sign, Unit * 0.1); - - [<<"3"/utf8>> | Input@5] -> - parse_float(Input@5, Number + (3.0 * Unit), Sign, Unit * 0.1); - - [<<"4"/utf8>> | Input@6] -> - parse_float(Input@6, Number + (4.0 * Unit), Sign, Unit * 0.1); - - [<<"5"/utf8>> | Input@7] -> - parse_float(Input@7, Number + (5.0 * Unit), Sign, Unit * 0.1); - - [<<"6"/utf8>> | Input@8] -> - parse_float(Input@8, Number + (6.0 * Unit), Sign, Unit * 0.1); - - [<<"7"/utf8>> | Input@9] -> - parse_float(Input@9, Number + (7.0 * Unit), Sign, Unit * 0.1); - - [<<"8"/utf8>> | Input@10] -> - parse_float(Input@10, Number + (8.0 * Unit), Sign, Unit * 0.1); - - [<<"9"/utf8>> | Input@11] -> - parse_float(Input@11, Number + (9.0 * Unit), Sign, Unit * 0.1); - - [<<"e"/utf8>>, <<"+"/utf8>> | Input@12] -> - parse_exponent(Input@12, Number, Sign, 0, positive); - - [<<"e"/utf8>>, <<"-"/utf8>> | Input@13] -> - parse_exponent(Input@13, Number, Sign, 0, negative); - - [<<"e"/utf8>> | Input@14] -> - parse_exponent(Input@14, Number, Sign, 0, positive); - - [<<"E"/utf8>>, <<"+"/utf8>> | Input@15] -> - parse_exponent(Input@15, Number, Sign, 0, positive); - - [<<"E"/utf8>>, <<"-"/utf8>> | Input@16] -> - parse_exponent(Input@16, Number, Sign, 0, negative); - - [<<"E"/utf8>> | Input@17] -> - parse_exponent(Input@17, Number, Sign, 0, positive); - - Input@18 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - Number * -1.0 - end, - {ok, {{float, Number@1}, Input@18}} - end. - --spec parse_string(list(binary()), binary()) -> {ok, {toml(), list(binary())}} | - {error, parse_error()}. -parse_string(Input, String) -> - case Input of - [<<"\""/utf8>> | Input@1] -> - {ok, {{string, String}, Input@1}}; - - [<<"\\"/utf8>>, <<"t"/utf8>> | Input@2] -> - parse_string(Input@2, <>); - - [<<"\\"/utf8>>, <<"n"/utf8>> | Input@3] -> - parse_string(Input@3, <>); - - [<<"\\"/utf8>>, <<"r"/utf8>> | Input@4] -> - parse_string(Input@4, <>); - - [<<"\\"/utf8>>, <<"\""/utf8>> | Input@5] -> - parse_string(Input@5, <>); - - [<<"\\"/utf8>>, <<"\\"/utf8>> | Input@6] -> - parse_string(Input@6, <>); - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\""/utf8>>}}; - - [<<"\n"/utf8>> | _] -> - {error, {unexpected, <<"\n"/utf8>>, <<"\""/utf8>>}}; - - [<<"\r\n"/utf8>> | _] -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"\""/utf8>>}}; - - [G | Input@7] -> - parse_string(Input@7, <>) - end. - --spec parse_multi_line_string(list(binary()), binary()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_multi_line_string(Input, String) -> - case Input of - [<<"\""/utf8>>, <<"\""/utf8>>, <<"\""/utf8>> | Input@1] -> - {ok, {{string, String}, Input@1}}; - - [<<"\\"/utf8>>, <<"\n"/utf8>> | Input@2] -> - parse_multi_line_string(skip_whitespace(Input@2), String); - - [<<"\\"/utf8>>, <<"\r\n"/utf8>> | Input@3] -> - parse_multi_line_string(skip_whitespace(Input@3), String); - - [<<"\r\n"/utf8>> | Input@4] when String =:= <<""/utf8>> -> - parse_multi_line_string(Input@4, String); - - [<<"\n"/utf8>> | Input@5] when String =:= <<""/utf8>> -> - parse_multi_line_string(Input@5, String); - - [<<"\r\n"/utf8>> | Input@6] when String =:= <<""/utf8>> -> - parse_multi_line_string(Input@6, String); - - [<<"\\"/utf8>>, <<"t"/utf8>> | Input@7] -> - parse_multi_line_string(Input@7, <>); - - [<<"\\"/utf8>>, <<"n"/utf8>> | Input@8] -> - parse_multi_line_string(Input@8, <>); - - [<<"\\"/utf8>>, <<"r"/utf8>> | Input@9] -> - parse_multi_line_string(Input@9, <>); - - [<<"\\"/utf8>>, <<"\""/utf8>> | Input@10] -> - parse_multi_line_string(Input@10, <>); - - [<<"\\"/utf8>>, <<"\\"/utf8>> | Input@11] -> - parse_multi_line_string(Input@11, <>); - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\""/utf8>>}}; - - [G | Input@12] -> - parse_multi_line_string(Input@12, <>) - end. - --spec parse_multi_line_literal_string(list(binary()), binary()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_multi_line_literal_string(Input, String) -> - case Input of - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\""/utf8>>}}; - - [<<"'"/utf8>>, <<"'"/utf8>>, <<"'"/utf8>>, <<"'"/utf8>> | _] -> - {error, {unexpected, <<"''''"/utf8>>, <<"'''"/utf8>>}}; - - [<<"'"/utf8>>, <<"'"/utf8>>, <<"'"/utf8>> | Input@1] -> - {ok, {{string, String}, Input@1}}; - - [<<"\n"/utf8>> | Input@2] when String =:= <<""/utf8>> -> - parse_multi_line_literal_string(Input@2, String); - - [<<"\r\n"/utf8>> | Input@3] when String =:= <<""/utf8>> -> - parse_multi_line_literal_string(Input@3, String); - - [G | Input@4] -> - parse_multi_line_literal_string( - Input@4, - <> - ) - end. - --spec parse_literal_string(list(binary()), binary()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_literal_string(Input, String) -> - case Input of - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\""/utf8>>}}; - - [<<"\n"/utf8>> | _] -> - {error, {unexpected, <<"\n"/utf8>>, <<"'"/utf8>>}}; - - [<<"\r\n"/utf8>> | _] -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"'"/utf8>>}}; - - [<<"'"/utf8>> | Input@1] -> - {ok, {{string, String}, Input@1}}; - - [G | Input@2] -> - parse_literal_string(Input@2, <>) - end. - --spec parse_time_ms(list(binary()), integer(), integer()) -> {ok, - {{integer(), integer()}, list(binary())}} | - {error, parse_error()}. -parse_time_ms(Input, Seconds, Ms) -> - case Input of - [<<"0"/utf8>> | Input@1] when Ms < 100000 -> - parse_time_ms(Input@1, Seconds, (Ms * 10) + 0); - - [<<"1"/utf8>> | Input@2] when Ms < 100000 -> - parse_time_ms(Input@2, Seconds, (Ms * 10) + 1); - - [<<"2"/utf8>> | Input@3] when Ms < 100000 -> - parse_time_ms(Input@3, Seconds, (Ms * 10) + 2); - - [<<"3"/utf8>> | Input@4] when Ms < 100000 -> - parse_time_ms(Input@4, Seconds, (Ms * 10) + 3); - - [<<"4"/utf8>> | Input@5] when Ms < 100000 -> - parse_time_ms(Input@5, Seconds, (Ms * 10) + 4); - - [<<"5"/utf8>> | Input@6] when Ms < 100000 -> - parse_time_ms(Input@6, Seconds, (Ms * 10) + 5); - - [<<"6"/utf8>> | Input@7] when Ms < 100000 -> - parse_time_ms(Input@7, Seconds, (Ms * 10) + 6); - - [<<"7"/utf8>> | Input@8] when Ms < 100000 -> - parse_time_ms(Input@8, Seconds, (Ms * 10) + 7); - - [<<"8"/utf8>> | Input@9] when Ms < 100000 -> - parse_time_ms(Input@9, Seconds, (Ms * 10) + 8); - - [<<"9"/utf8>> | Input@10] when Ms < 100000 -> - parse_time_ms(Input@10, Seconds, (Ms * 10) + 9); - - _ -> - {ok, {{Seconds, Ms}, Input}} - end. - --spec parse_number_under_60(list(binary()), binary()) -> {ok, - {integer(), list(binary())}} | - {error, parse_error()}. -parse_number_under_60(Input, Expected) -> - case Input of - [<<"0"/utf8>>, <<"0"/utf8>> | Input@1] -> - {ok, {0, Input@1}}; - - [<<"0"/utf8>>, <<"1"/utf8>> | Input@2] -> - {ok, {1, Input@2}}; - - [<<"0"/utf8>>, <<"2"/utf8>> | Input@3] -> - {ok, {2, Input@3}}; - - [<<"0"/utf8>>, <<"3"/utf8>> | Input@4] -> - {ok, {3, Input@4}}; - - [<<"0"/utf8>>, <<"4"/utf8>> | Input@5] -> - {ok, {4, Input@5}}; - - [<<"0"/utf8>>, <<"5"/utf8>> | Input@6] -> - {ok, {5, Input@6}}; - - [<<"0"/utf8>>, <<"6"/utf8>> | Input@7] -> - {ok, {6, Input@7}}; - - [<<"0"/utf8>>, <<"7"/utf8>> | Input@8] -> - {ok, {7, Input@8}}; - - [<<"0"/utf8>>, <<"8"/utf8>> | Input@9] -> - {ok, {8, Input@9}}; - - [<<"0"/utf8>>, <<"9"/utf8>> | Input@10] -> - {ok, {9, Input@10}}; - - [<<"1"/utf8>>, <<"0"/utf8>> | Input@11] -> - {ok, {10, Input@11}}; - - [<<"1"/utf8>>, <<"1"/utf8>> | Input@12] -> - {ok, {11, Input@12}}; - - [<<"1"/utf8>>, <<"2"/utf8>> | Input@13] -> - {ok, {12, Input@13}}; - - [<<"1"/utf8>>, <<"3"/utf8>> | Input@14] -> - {ok, {13, Input@14}}; - - [<<"1"/utf8>>, <<"4"/utf8>> | Input@15] -> - {ok, {14, Input@15}}; - - [<<"1"/utf8>>, <<"5"/utf8>> | Input@16] -> - {ok, {15, Input@16}}; - - [<<"1"/utf8>>, <<"6"/utf8>> | Input@17] -> - {ok, {16, Input@17}}; - - [<<"1"/utf8>>, <<"7"/utf8>> | Input@18] -> - {ok, {17, Input@18}}; - - [<<"1"/utf8>>, <<"8"/utf8>> | Input@19] -> - {ok, {18, Input@19}}; - - [<<"1"/utf8>>, <<"9"/utf8>> | Input@20] -> - {ok, {19, Input@20}}; - - [<<"2"/utf8>>, <<"0"/utf8>> | Input@21] -> - {ok, {20, Input@21}}; - - [<<"2"/utf8>>, <<"1"/utf8>> | Input@22] -> - {ok, {21, Input@22}}; - - [<<"2"/utf8>>, <<"2"/utf8>> | Input@23] -> - {ok, {22, Input@23}}; - - [<<"2"/utf8>>, <<"3"/utf8>> | Input@24] -> - {ok, {23, Input@24}}; - - [<<"2"/utf8>>, <<"4"/utf8>> | Input@25] -> - {ok, {24, Input@25}}; - - [<<"2"/utf8>>, <<"5"/utf8>> | Input@26] -> - {ok, {25, Input@26}}; - - [<<"2"/utf8>>, <<"6"/utf8>> | Input@27] -> - {ok, {26, Input@27}}; - - [<<"2"/utf8>>, <<"7"/utf8>> | Input@28] -> - {ok, {27, Input@28}}; - - [<<"2"/utf8>>, <<"8"/utf8>> | Input@29] -> - {ok, {28, Input@29}}; - - [<<"2"/utf8>>, <<"9"/utf8>> | Input@30] -> - {ok, {29, Input@30}}; - - [<<"3"/utf8>>, <<"0"/utf8>> | Input@31] -> - {ok, {30, Input@31}}; - - [<<"3"/utf8>>, <<"1"/utf8>> | Input@32] -> - {ok, {31, Input@32}}; - - [<<"3"/utf8>>, <<"2"/utf8>> | Input@33] -> - {ok, {32, Input@33}}; - - [<<"3"/utf8>>, <<"3"/utf8>> | Input@34] -> - {ok, {33, Input@34}}; - - [<<"3"/utf8>>, <<"4"/utf8>> | Input@35] -> - {ok, {34, Input@35}}; - - [<<"3"/utf8>>, <<"5"/utf8>> | Input@36] -> - {ok, {35, Input@36}}; - - [<<"3"/utf8>>, <<"6"/utf8>> | Input@37] -> - {ok, {36, Input@37}}; - - [<<"3"/utf8>>, <<"7"/utf8>> | Input@38] -> - {ok, {37, Input@38}}; - - [<<"3"/utf8>>, <<"8"/utf8>> | Input@39] -> - {ok, {38, Input@39}}; - - [<<"3"/utf8>>, <<"9"/utf8>> | Input@40] -> - {ok, {39, Input@40}}; - - [<<"4"/utf8>>, <<"0"/utf8>> | Input@41] -> - {ok, {40, Input@41}}; - - [<<"4"/utf8>>, <<"1"/utf8>> | Input@42] -> - {ok, {41, Input@42}}; - - [<<"4"/utf8>>, <<"2"/utf8>> | Input@43] -> - {ok, {42, Input@43}}; - - [<<"4"/utf8>>, <<"3"/utf8>> | Input@44] -> - {ok, {43, Input@44}}; - - [<<"4"/utf8>>, <<"4"/utf8>> | Input@45] -> - {ok, {44, Input@45}}; - - [<<"4"/utf8>>, <<"5"/utf8>> | Input@46] -> - {ok, {45, Input@46}}; - - [<<"4"/utf8>>, <<"6"/utf8>> | Input@47] -> - {ok, {46, Input@47}}; - - [<<"4"/utf8>>, <<"7"/utf8>> | Input@48] -> - {ok, {47, Input@48}}; - - [<<"4"/utf8>>, <<"8"/utf8>> | Input@49] -> - {ok, {48, Input@49}}; - - [<<"4"/utf8>>, <<"9"/utf8>> | Input@50] -> - {ok, {49, Input@50}}; - - [<<"5"/utf8>>, <<"0"/utf8>> | Input@51] -> - {ok, {50, Input@51}}; - - [<<"5"/utf8>>, <<"1"/utf8>> | Input@52] -> - {ok, {51, Input@52}}; - - [<<"5"/utf8>>, <<"2"/utf8>> | Input@53] -> - {ok, {52, Input@53}}; - - [<<"5"/utf8>>, <<"3"/utf8>> | Input@54] -> - {ok, {53, Input@54}}; - - [<<"5"/utf8>>, <<"4"/utf8>> | Input@55] -> - {ok, {54, Input@55}}; - - [<<"5"/utf8>>, <<"5"/utf8>> | Input@56] -> - {ok, {55, Input@56}}; - - [<<"5"/utf8>>, <<"6"/utf8>> | Input@57] -> - {ok, {56, Input@57}}; - - [<<"5"/utf8>>, <<"7"/utf8>> | Input@58] -> - {ok, {57, Input@58}}; - - [<<"5"/utf8>>, <<"8"/utf8>> | Input@59] -> - {ok, {58, Input@59}}; - - [<<"5"/utf8>>, <<"9"/utf8>> | Input@60] -> - {ok, {59, Input@60}}; - - [G | _] -> - {error, {unexpected, G, Expected}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, Expected}} - end. - --spec parse_hour_minute(list(binary())) -> {ok, - {{integer(), integer()}, list(binary())}} | - {error, parse_error()}. -parse_hour_minute(Input) -> - do(case Input of - [<<"0"/utf8>>, <<"0"/utf8>>, <<":"/utf8>> | Input@1] -> - {ok, {0, Input@1}}; - - [<<"0"/utf8>>, <<"1"/utf8>>, <<":"/utf8>> | Input@2] -> - {ok, {1, Input@2}}; - - [<<"0"/utf8>>, <<"2"/utf8>>, <<":"/utf8>> | Input@3] -> - {ok, {2, Input@3}}; - - [<<"0"/utf8>>, <<"3"/utf8>>, <<":"/utf8>> | Input@4] -> - {ok, {3, Input@4}}; - - [<<"0"/utf8>>, <<"4"/utf8>>, <<":"/utf8>> | Input@5] -> - {ok, {4, Input@5}}; - - [<<"0"/utf8>>, <<"5"/utf8>>, <<":"/utf8>> | Input@6] -> - {ok, {5, Input@6}}; - - [<<"0"/utf8>>, <<"6"/utf8>>, <<":"/utf8>> | Input@7] -> - {ok, {6, Input@7}}; - - [<<"0"/utf8>>, <<"7"/utf8>>, <<":"/utf8>> | Input@8] -> - {ok, {7, Input@8}}; - - [<<"0"/utf8>>, <<"8"/utf8>>, <<":"/utf8>> | Input@9] -> - {ok, {8, Input@9}}; - - [<<"0"/utf8>>, <<"9"/utf8>>, <<":"/utf8>> | Input@10] -> - {ok, {9, Input@10}}; - - [<<"1"/utf8>>, <<"0"/utf8>>, <<":"/utf8>> | Input@11] -> - {ok, {10, Input@11}}; - - [<<"1"/utf8>>, <<"1"/utf8>>, <<":"/utf8>> | Input@12] -> - {ok, {11, Input@12}}; - - [<<"1"/utf8>>, <<"2"/utf8>>, <<":"/utf8>> | Input@13] -> - {ok, {12, Input@13}}; - - [<<"1"/utf8>>, <<"3"/utf8>>, <<":"/utf8>> | Input@14] -> - {ok, {13, Input@14}}; - - [<<"1"/utf8>>, <<"4"/utf8>>, <<":"/utf8>> | Input@15] -> - {ok, {14, Input@15}}; - - [<<"1"/utf8>>, <<"5"/utf8>>, <<":"/utf8>> | Input@16] -> - {ok, {15, Input@16}}; - - [<<"1"/utf8>>, <<"6"/utf8>>, <<":"/utf8>> | Input@17] -> - {ok, {16, Input@17}}; - - [<<"1"/utf8>>, <<"7"/utf8>>, <<":"/utf8>> | Input@18] -> - {ok, {17, Input@18}}; - - [<<"1"/utf8>>, <<"8"/utf8>>, <<":"/utf8>> | Input@19] -> - {ok, {18, Input@19}}; - - [<<"1"/utf8>>, <<"9"/utf8>>, <<":"/utf8>> | Input@20] -> - {ok, {19, Input@20}}; - - [<<"2"/utf8>>, <<"0"/utf8>>, <<":"/utf8>> | Input@21] -> - {ok, {20, Input@21}}; - - [<<"2"/utf8>>, <<"1"/utf8>>, <<":"/utf8>> | Input@22] -> - {ok, {21, Input@22}}; - - [<<"2"/utf8>>, <<"2"/utf8>>, <<":"/utf8>> | Input@23] -> - {ok, {22, Input@23}}; - - [<<"2"/utf8>>, <<"3"/utf8>>, <<":"/utf8>> | Input@24] -> - {ok, {23, Input@24}}; - - [G | _] -> - {error, {unexpected, G, <<"time"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"time"/utf8>>}} - end, fun(Hours, Input@25) -> - do( - parse_number_under_60(Input@25, <<"minutes"/utf8>>), - fun(Minutes, Input@26) -> {ok, {{Hours, Minutes}, Input@26}} end - ) - end). - --spec parse_time_s_ms(list(binary())) -> {ok, - {{integer(), integer()}, list(binary())}} | - {error, parse_error()}. -parse_time_s_ms(Input) -> - case Input of - [<<":"/utf8>> | Input@1] -> - do( - parse_number_under_60(Input@1, <<"seconds"/utf8>>), - fun(Seconds, Input@2) -> case Input@2 of - [<<"."/utf8>> | Input@3] -> - parse_time_ms(Input@3, Seconds, 0); - - _ -> - {ok, {{Seconds, 0}, Input@2}} - end end - ); - - _ -> - {ok, {{0, 0}, Input}} - end. - --spec parse_time_minute(list(binary()), integer()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_time_minute(Input, Hours) -> - do( - parse_number_under_60(Input, <<"minutes"/utf8>>), - fun(Minutes, Input@1) -> - do( - parse_time_s_ms(Input@1), - fun(_use0, Input@2) -> - {Seconds, Ms} = _use0, - Time = {time_value, Hours, Minutes, Seconds, Ms}, - {ok, {{time, Time}, Input@2}} - end - ) - end - ). - --spec parse_time_value(list(binary())) -> {ok, {time(), list(binary())}} | - {error, parse_error()}. -parse_time_value(Input) -> - do( - parse_hour_minute(Input), - fun(_use0, Input@1) -> - {Hours, Minutes} = _use0, - do( - parse_time_s_ms(Input@1), - fun(_use0@1, Input@2) -> - {Seconds, Ms} = _use0@1, - Time = {time_value, Hours, Minutes, Seconds, Ms}, - {ok, {Time, Input@2}} - end - ) - end - ). - --spec parse_offset_hours(list(binary()), sign()) -> {ok, - {offset(), list(binary())}} | - {error, parse_error()}. -parse_offset_hours(Input, Sign) -> - do( - parse_hour_minute(Input), - fun(_use0, Input@1) -> - {Hours, Minutes} = _use0, - {ok, {{offset, Sign, Hours, Minutes}, Input@1}} - end - ). - --spec parse_offset(list(binary())) -> {ok, {offset(), list(binary())}} | - {error, parse_error()}. -parse_offset(Input) -> - case Input of - [<<"Z"/utf8>> | Input@1] -> - {ok, {{offset, positive, 0, 0}, Input@1}}; - - [<<"+"/utf8>> | Input@2] -> - parse_offset_hours(Input@2, positive); - - [<<"-"/utf8>> | Input@3] -> - parse_offset_hours(Input@3, negative); - - _ -> - {ok, {local, Input}} - end. - --spec parse_date_end(list(binary()), integer(), integer(), integer()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_date_end(Input, Year, Month, Day) -> - Date = {date_value, Year, Month, Day}, - case Input of - [<<" "/utf8>> | Input@1] -> - do( - parse_time_value(Input@1), - fun(Time, Input@2) -> - do( - parse_offset(Input@2), - fun(Offset, Input@3) -> - {ok, - {{date_time, - {date_time_value, Date, Time, Offset}}, - Input@3}} - end - ) - end - ); - - [<<"T"/utf8>> | Input@1] -> - do( - parse_time_value(Input@1), - fun(Time, Input@2) -> - do( - parse_offset(Input@2), - fun(Offset, Input@3) -> - {ok, - {{date_time, - {date_time_value, Date, Time, Offset}}, - Input@3}} - end - ) - end - ); - - _ -> - {ok, {{date, Date}, Input}} - end. - --spec parse_date_day(list(binary()), integer(), integer()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_date_day(Input, Year, Month) -> - case Input of - [<<"0"/utf8>>, <<"1"/utf8>> | Input@1] -> - parse_date_end(Input@1, Year, Month, 1); - - [<<"0"/utf8>>, <<"2"/utf8>> | Input@2] -> - parse_date_end(Input@2, Year, Month, 2); - - [<<"0"/utf8>>, <<"3"/utf8>> | Input@3] -> - parse_date_end(Input@3, Year, Month, 3); - - [<<"0"/utf8>>, <<"4"/utf8>> | Input@4] -> - parse_date_end(Input@4, Year, Month, 4); - - [<<"0"/utf8>>, <<"5"/utf8>> | Input@5] -> - parse_date_end(Input@5, Year, Month, 5); - - [<<"0"/utf8>>, <<"6"/utf8>> | Input@6] -> - parse_date_end(Input@6, Year, Month, 6); - - [<<"0"/utf8>>, <<"7"/utf8>> | Input@7] -> - parse_date_end(Input@7, Year, Month, 7); - - [<<"0"/utf8>>, <<"8"/utf8>> | Input@8] -> - parse_date_end(Input@8, Year, Month, 8); - - [<<"0"/utf8>>, <<"9"/utf8>> | Input@9] -> - parse_date_end(Input@9, Year, Month, 9); - - [<<"1"/utf8>>, <<"0"/utf8>> | Input@10] -> - parse_date_end(Input@10, Year, Month, 10); - - [<<"1"/utf8>>, <<"1"/utf8>> | Input@11] -> - parse_date_end(Input@11, Year, Month, 11); - - [<<"1"/utf8>>, <<"2"/utf8>> | Input@12] -> - parse_date_end(Input@12, Year, Month, 12); - - [<<"1"/utf8>>, <<"3"/utf8>> | Input@13] -> - parse_date_end(Input@13, Year, Month, 13); - - [<<"1"/utf8>>, <<"4"/utf8>> | Input@14] -> - parse_date_end(Input@14, Year, Month, 14); - - [<<"1"/utf8>>, <<"5"/utf8>> | Input@15] -> - parse_date_end(Input@15, Year, Month, 15); - - [<<"1"/utf8>>, <<"6"/utf8>> | Input@16] -> - parse_date_end(Input@16, Year, Month, 16); - - [<<"1"/utf8>>, <<"7"/utf8>> | Input@17] -> - parse_date_end(Input@17, Year, Month, 17); - - [<<"1"/utf8>>, <<"8"/utf8>> | Input@18] -> - parse_date_end(Input@18, Year, Month, 18); - - [<<"1"/utf8>>, <<"9"/utf8>> | Input@19] -> - parse_date_end(Input@19, Year, Month, 19); - - [<<"2"/utf8>>, <<"0"/utf8>> | Input@20] -> - parse_date_end(Input@20, Year, Month, 20); - - [<<"2"/utf8>>, <<"1"/utf8>> | Input@21] -> - parse_date_end(Input@21, Year, Month, 21); - - [<<"2"/utf8>>, <<"2"/utf8>> | Input@22] -> - parse_date_end(Input@22, Year, Month, 22); - - [<<"2"/utf8>>, <<"3"/utf8>> | Input@23] -> - parse_date_end(Input@23, Year, Month, 23); - - [<<"2"/utf8>>, <<"4"/utf8>> | Input@24] -> - parse_date_end(Input@24, Year, Month, 24); - - [<<"2"/utf8>>, <<"5"/utf8>> | Input@25] -> - parse_date_end(Input@25, Year, Month, 25); - - [<<"2"/utf8>>, <<"6"/utf8>> | Input@26] -> - parse_date_end(Input@26, Year, Month, 26); - - [<<"2"/utf8>>, <<"7"/utf8>> | Input@27] -> - parse_date_end(Input@27, Year, Month, 27); - - [<<"2"/utf8>>, <<"8"/utf8>> | Input@28] -> - parse_date_end(Input@28, Year, Month, 28); - - [<<"2"/utf8>>, <<"9"/utf8>> | Input@29] -> - parse_date_end(Input@29, Year, Month, 29); - - [<<"3"/utf8>>, <<"0"/utf8>> | Input@30] -> - parse_date_end(Input@30, Year, Month, 30); - - [<<"3"/utf8>>, <<"1"/utf8>> | Input@31] -> - parse_date_end(Input@31, Year, Month, 31); - - [G | _] -> - {error, {unexpected, G, <<"date day"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"date day"/utf8>>}} - end. - --spec parse_date(list(binary()), integer()) -> {ok, {toml(), list(binary())}} | - {error, parse_error()}. -parse_date(Input, Year) -> - case Input of - [<<"0"/utf8>>, <<"1"/utf8>>, <<"-"/utf8>> | Input@1] -> - parse_date_day(Input@1, Year, 1); - - [<<"0"/utf8>>, <<"2"/utf8>>, <<"-"/utf8>> | Input@2] -> - parse_date_day(Input@2, Year, 2); - - [<<"0"/utf8>>, <<"3"/utf8>>, <<"-"/utf8>> | Input@3] -> - parse_date_day(Input@3, Year, 3); - - [<<"0"/utf8>>, <<"4"/utf8>>, <<"-"/utf8>> | Input@4] -> - parse_date_day(Input@4, Year, 4); - - [<<"0"/utf8>>, <<"5"/utf8>>, <<"-"/utf8>> | Input@5] -> - parse_date_day(Input@5, Year, 5); - - [<<"0"/utf8>>, <<"6"/utf8>>, <<"-"/utf8>> | Input@6] -> - parse_date_day(Input@6, Year, 6); - - [<<"0"/utf8>>, <<"7"/utf8>>, <<"-"/utf8>> | Input@7] -> - parse_date_day(Input@7, Year, 7); - - [<<"0"/utf8>>, <<"8"/utf8>>, <<"-"/utf8>> | Input@8] -> - parse_date_day(Input@8, Year, 8); - - [<<"0"/utf8>>, <<"9"/utf8>>, <<"-"/utf8>> | Input@9] -> - parse_date_day(Input@9, Year, 9); - - [<<"1"/utf8>>, <<"0"/utf8>>, <<"-"/utf8>> | Input@10] -> - parse_date_day(Input@10, Year, 10); - - [<<"1"/utf8>>, <<"1"/utf8>>, <<"-"/utf8>> | Input@11] -> - parse_date_day(Input@11, Year, 11); - - [<<"1"/utf8>>, <<"2"/utf8>>, <<"-"/utf8>> | Input@12] -> - parse_date_day(Input@12, Year, 12); - - [G | _] -> - {error, {unexpected, G, <<"date month"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"date month"/utf8>>}} - end. - --spec parse_number(list(binary()), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_number(Input, Number, Sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_number(Input@1, Number, Sign); - - [<<"0"/utf8>> | Input@2] -> - parse_number(Input@2, (Number * 10) + 0, Sign); - - [<<"1"/utf8>> | Input@3] -> - parse_number(Input@3, (Number * 10) + 1, Sign); - - [<<"2"/utf8>> | Input@4] -> - parse_number(Input@4, (Number * 10) + 2, Sign); - - [<<"3"/utf8>> | Input@5] -> - parse_number(Input@5, (Number * 10) + 3, Sign); - - [<<"4"/utf8>> | Input@6] -> - parse_number(Input@6, (Number * 10) + 4, Sign); - - [<<"5"/utf8>> | Input@7] -> - parse_number(Input@7, (Number * 10) + 5, Sign); - - [<<"6"/utf8>> | Input@8] -> - parse_number(Input@8, (Number * 10) + 6, Sign); - - [<<"7"/utf8>> | Input@9] -> - parse_number(Input@9, (Number * 10) + 7, Sign); - - [<<"8"/utf8>> | Input@10] -> - parse_number(Input@10, (Number * 10) + 8, Sign); - - [<<"9"/utf8>> | Input@11] -> - parse_number(Input@11, (Number * 10) + 9, Sign); - - [<<"-"/utf8>> | Input@12] -> - parse_date(Input@12, Number); - - [<<":"/utf8>> | Input@13] when Number < 24 -> - parse_time_minute(Input@13, Number); - - [<<"."/utf8>> | Input@14] -> - parse_float(Input@14, gleam@int:to_float(Number), Sign, 0.1); - - [<<"e"/utf8>>, <<"+"/utf8>> | Input@15] -> - parse_exponent( - Input@15, - gleam@int:to_float(Number), - Sign, - 0, - positive - ); - - [<<"e"/utf8>>, <<"-"/utf8>> | Input@16] -> - parse_exponent( - Input@16, - gleam@int:to_float(Number), - Sign, - 0, - negative - ); - - [<<"e"/utf8>> | Input@17] -> - parse_exponent( - Input@17, - gleam@int:to_float(Number), - Sign, - 0, - positive - ); - - [<<"E"/utf8>>, <<"+"/utf8>> | Input@18] -> - parse_exponent( - Input@18, - gleam@int:to_float(Number), - Sign, - 0, - positive - ); - - [<<"E"/utf8>>, <<"-"/utf8>> | Input@19] -> - parse_exponent( - Input@19, - gleam@int:to_float(Number), - Sign, - 0, - negative - ); - - [<<"E"/utf8>> | Input@20] -> - parse_exponent( - Input@20, - gleam@int:to_float(Number), - Sign, - 0, - positive - ); - - Input@21 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - - Number - end, - {ok, {{int, Number@1}, Input@21}} - end. - --spec reverse_arrays_of_tables(toml()) -> toml(). -reverse_arrays_of_tables(Toml) -> - case Toml of - {array_of_tables, Tables} -> - {array_of_tables, reverse_arrays_of_tables_array(Tables, [])}; - - {table, Table} -> - {table, reverse_arrays_of_tables_table(Table)}; - - _ -> - Toml - end. - --spec reverse_arrays_of_tables_table(gleam@dict:dict(binary(), toml())) -> gleam@dict:dict(binary(), toml()). -reverse_arrays_of_tables_table(Table) -> - gleam@map:map_values(Table, fun(_, V) -> reverse_arrays_of_tables(V) end). - --spec reverse_arrays_of_tables_array( - list(gleam@dict:dict(binary(), toml())), - list(gleam@dict:dict(binary(), toml())) -) -> list(gleam@dict:dict(binary(), toml())). -reverse_arrays_of_tables_array(Array, Acc) -> - case Array of - [] -> - Acc; - - [First | Rest] -> - First@1 = reverse_arrays_of_tables_table(First), - reverse_arrays_of_tables_array(Rest, [First@1 | Acc]) - end. - --spec parse_inline_table_property( - list(binary()), - gleam@dict:dict(binary(), toml()) -) -> {ok, {gleam@dict:dict(binary(), toml()), list(binary())}} | - {error, parse_error()}. -parse_inline_table_property(Input, Properties) -> - Input@1 = skip_whitespace(Input), - do( - parse_key(Input@1, []), - fun(Key, Input@2) -> - Input@3 = skip_line_whitespace(Input@2), - expect( - Input@3, - <<"="/utf8>>, - fun(Input@4) -> - Input@5 = skip_line_whitespace(Input@4), - do( - parse_value(Input@5), - fun(Value, Input@6) -> - case insert(Properties, Key, Value) of - {ok, Properties@1} -> - {ok, {Properties@1, Input@6}}; - - {error, E} -> - {error, E} - end - end - ) - end - ) - end - ). - --spec parse_value(list(binary())) -> {ok, {toml(), list(binary())}} | - {error, parse_error()}. -parse_value(Input) -> - case Input of - [<<"t"/utf8>>, <<"r"/utf8>>, <<"u"/utf8>>, <<"e"/utf8>> | Input@1] -> - {ok, {{bool, true}, Input@1}}; - - [<<"f"/utf8>>, - <<"a"/utf8>>, - <<"l"/utf8>>, - <<"s"/utf8>>, - <<"e"/utf8>> | - Input@2] -> - {ok, {{bool, false}, Input@2}}; - - [<<"n"/utf8>>, <<"a"/utf8>>, <<"n"/utf8>> | Input@3] -> - {ok, {{nan, positive}, Input@3}}; - - [<<"+"/utf8>>, <<"n"/utf8>>, <<"a"/utf8>>, <<"n"/utf8>> | Input@4] -> - {ok, {{nan, positive}, Input@4}}; - - [<<"-"/utf8>>, <<"n"/utf8>>, <<"a"/utf8>>, <<"n"/utf8>> | Input@5] -> - {ok, {{nan, negative}, Input@5}}; - - [<<"i"/utf8>>, <<"n"/utf8>>, <<"f"/utf8>> | Input@6] -> - {ok, {{infinity, positive}, Input@6}}; - - [<<"+"/utf8>>, <<"i"/utf8>>, <<"n"/utf8>>, <<"f"/utf8>> | Input@7] -> - {ok, {{infinity, positive}, Input@7}}; - - [<<"-"/utf8>>, <<"i"/utf8>>, <<"n"/utf8>>, <<"f"/utf8>> | Input@8] -> - {ok, {{infinity, negative}, Input@8}}; - - [<<"["/utf8>> | Input@9] -> - parse_array(Input@9, []); - - [<<"{"/utf8>> | Input@10] -> - parse_inline_table(Input@10, gleam@map:new()); - - [<<"0"/utf8>>, <<"x"/utf8>> | Input@11] -> - parse_hex(Input@11, 0, positive); - - [<<"+"/utf8>>, <<"0"/utf8>>, <<"x"/utf8>> | Input@12] -> - parse_hex(Input@12, 0, positive); - - [<<"-"/utf8>>, <<"0"/utf8>>, <<"x"/utf8>> | Input@13] -> - parse_hex(Input@13, 0, negative); - - [<<"0"/utf8>>, <<"o"/utf8>> | Input@14] -> - parse_octal(Input@14, 0, positive); - - [<<"+"/utf8>>, <<"0"/utf8>>, <<"o"/utf8>> | Input@15] -> - parse_octal(Input@15, 0, positive); - - [<<"-"/utf8>>, <<"0"/utf8>>, <<"o"/utf8>> | Input@16] -> - parse_octal(Input@16, 0, negative); - - [<<"0"/utf8>>, <<"b"/utf8>> | Input@17] -> - parse_binary(Input@17, 0, positive); - - [<<"+"/utf8>>, <<"0"/utf8>>, <<"b"/utf8>> | Input@18] -> - parse_binary(Input@18, 0, positive); - - [<<"-"/utf8>>, <<"0"/utf8>>, <<"b"/utf8>> | Input@19] -> - parse_binary(Input@19, 0, negative); - - [<<"+"/utf8>> | Input@20] -> - parse_number(Input@20, 0, positive); - - [<<"-"/utf8>> | Input@21] -> - parse_number(Input@21, 0, negative); - - [<<"0"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"1"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"2"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"3"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"4"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"5"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"6"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"7"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"8"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"9"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"\""/utf8>>, <<"\""/utf8>>, <<"\""/utf8>> | Input@22] -> - parse_multi_line_string(Input@22, <<""/utf8>>); - - [<<"\""/utf8>> | Input@23] -> - parse_string(Input@23, <<""/utf8>>); - - [<<"'"/utf8>>, <<"'"/utf8>>, <<"'"/utf8>> | Input@24] -> - parse_multi_line_literal_string(Input@24, <<""/utf8>>); - - [<<"'"/utf8>> | Input@25] -> - parse_literal_string(Input@25, <<""/utf8>>); - - [G | _] -> - {error, {unexpected, G, <<"value"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"value"/utf8>>}} - end. - --spec parse_inline_table(list(binary()), gleam@dict:dict(binary(), toml())) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_inline_table(Input, Properties) -> - Input@1 = skip_whitespace(Input), - case Input@1 of - [<<"}"/utf8>> | Input@2] -> - {ok, {{inline_table, Properties}, Input@2}}; - - _ -> - case parse_inline_table_property(Input@1, Properties) of - {ok, {Properties@1, Input@3}} -> - Input@4 = skip_whitespace(Input@3), - case Input@4 of - [<<"}"/utf8>> | Input@5] -> - {ok, {{inline_table, Properties@1}, Input@5}}; - - [<<","/utf8>> | Input@6] -> - Input@7 = skip_whitespace(Input@6), - parse_inline_table(Input@7, Properties@1); - - [G | _] -> - {error, {unexpected, G, <<"}"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"}"/utf8>>}} - end; - - {error, E} -> - {error, E} - end - end. - --spec parse_key_value(list(binary()), gleam@dict:dict(binary(), toml())) -> {ok, - {gleam@dict:dict(binary(), toml()), list(binary())}} | - {error, parse_error()}. -parse_key_value(Input, Toml) -> - do( - parse_key(Input, []), - fun(Key, Input@1) -> - Input@2 = skip_line_whitespace(Input@1), - expect( - Input@2, - <<"="/utf8>>, - fun(Input@3) -> - Input@4 = skip_line_whitespace(Input@3), - do( - parse_value(Input@4), - fun(Value, Input@5) -> case insert(Toml, Key, Value) of - {ok, Toml@1} -> - {ok, {Toml@1, Input@5}}; - - {error, E} -> - {error, E} - end end - ) - end - ) - end - ). - --spec parse_table(list(binary()), gleam@dict:dict(binary(), toml())) -> {ok, - {gleam@dict:dict(binary(), toml()), list(binary())}} | - {error, parse_error()}. -parse_table(Input, Toml) -> - Input@1 = skip_whitespace(Input), - case Input@1 of - [<<"["/utf8>> | _] -> - {ok, {Toml, Input@1}}; - - [] -> - {ok, {Toml, Input@1}}; - - _ -> - case parse_key_value(Input@1, Toml) of - {ok, {Toml@1, Input@2}} -> - case skip_line_whitespace(Input@2) of - [] -> - {ok, {Toml@1, []}}; - - [<<"\n"/utf8>> | In] -> - parse_table(In, Toml@1); - - [<<"\r\n"/utf8>> | In] -> - parse_table(In, Toml@1); - - [G | _] -> - {error, {unexpected, G, <<"\n"/utf8>>}} - end; - - E -> - E - end - end. - --spec parse_array_of_tables(list(binary())) -> {ok, - {{list(binary()), gleam@dict:dict(binary(), toml())}, list(binary())}} | - {error, parse_error()}. -parse_array_of_tables(Input) -> - Input@1 = skip_line_whitespace(Input), - do( - parse_key(Input@1, []), - fun(Key, Input@2) -> - expect( - Input@2, - <<"]"/utf8>>, - fun(Input@3) -> - expect( - Input@3, - <<"]"/utf8>>, - fun(Input@4) -> - do( - parse_table(Input@4, gleam@map:new()), - fun(Table, Input@5) -> - {ok, {{Key, Table}, Input@5}} - end - ) - end - ) - end - ) - end - ). - --spec parse_table_and_header(list(binary())) -> {ok, - {{list(binary()), gleam@dict:dict(binary(), toml())}, list(binary())}} | - {error, parse_error()}. -parse_table_and_header(Input) -> - do( - parse_table_header(Input), - fun(Key, Input@1) -> - do( - parse_table(Input@1, gleam@map:new()), - fun(Table, Input@2) -> {ok, {{Key, Table}, Input@2}} end - ) - end - ). - --spec parse_tables(list(binary()), gleam@dict:dict(binary(), toml())) -> {ok, - gleam@dict:dict(binary(), toml())} | - {error, parse_error()}. -parse_tables(Input, Toml) -> - case Input of - [<<"["/utf8>>, <<"["/utf8>> | Input@1] -> - case parse_array_of_tables(Input@1) of - {error, E} -> - {error, E}; - - {ok, {{Key, Table}, Input@2}} -> - case insert(Toml, Key, {array_of_tables, [Table]}) of - {ok, Toml@1} -> - parse_tables(Input@2, Toml@1); - - {error, E@1} -> - {error, E@1} - end - end; - - [<<"["/utf8>> | Input@3] -> - case parse_table_and_header(Input@3) of - {error, E@2} -> - {error, E@2}; - - {ok, {{Key@1, Table@1}, Input@4}} -> - case insert(Toml, Key@1, {table, Table@1}) of - {ok, Toml@2} -> - parse_tables(Input@4, Toml@2); - - {error, E@3} -> - {error, E@3} - end - end; - - [G | _] -> - {error, {unexpected, G, <<"["/utf8>>}}; - - [] -> - {ok, Toml} - end. - --spec parse(binary()) -> {ok, gleam@dict:dict(binary(), toml())} | - {error, parse_error()}. -parse(Input) -> - Input@1 = gleam@string:to_graphemes(Input), - Input@2 = drop_comments(Input@1, []), - Input@3 = skip_whitespace(Input@2), - do( - parse_table(Input@3, gleam@map:new()), - fun(Toml, Input@4) -> case parse_tables(Input@4, Toml) of - {ok, Toml@1} -> - {ok, reverse_arrays_of_tables_table(Toml@1)}; - - {error, E} -> - {error, E} - end end - ). - --spec parse_array(list(binary()), list(toml())) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_array(Input, Elements) -> - Input@1 = skip_whitespace(Input), - case Input@1 of - [<<"]"/utf8>> | Input@2] -> - {ok, {{array, gleam@list:reverse(Elements)}, Input@2}}; - - _ -> - do( - parse_value(Input@1), - fun(Element, Input@3) -> - Elements@1 = [Element | Elements], - Input@4 = skip_whitespace(Input@3), - case Input@4 of - [<<"]"/utf8>> | Input@5] -> - {ok, - {{array, gleam@list:reverse(Elements@1)}, - Input@5}}; - - [<<","/utf8>> | Input@6] -> - Input@7 = skip_whitespace(Input@6), - parse_array(Input@7, Elements@1); - - [G | _] -> - {error, {unexpected, G, <<"]"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"]"/utf8>>}} - end - end - ) - end. diff --git a/aoc2023/build/dev/erlang/tom/ebin/tom.app b/aoc2023/build/dev/erlang/tom/ebin/tom.app deleted file mode 100644 index ade9be1..0000000 --- a/aoc2023/build/dev/erlang/tom/ebin/tom.app +++ /dev/null @@ -1,7 +0,0 @@ -{application, tom, [ - {vsn, "0.2.1"}, - {applications, [gleam_stdlib]}, - {description, "A pure Gleam TOML parser!"}, - {modules, []}, - {registered, []} -]}. diff --git a/aoc2023/build/dev/erlang/tom/ebin/tom.beam b/aoc2023/build/dev/erlang/tom/ebin/tom.beam deleted file mode 100644 index 0d4e0d2..0000000 Binary files a/aoc2023/build/dev/erlang/tom/ebin/tom.beam and /dev/null differ diff --git a/aoc2023/build/dev/erlang/tom/include/tom_DateTimeValue.hrl b/aoc2023/build/dev/erlang/tom/include/tom_DateTimeValue.hrl deleted file mode 100644 index 3b1e660..0000000 --- a/aoc2023/build/dev/erlang/tom/include/tom_DateTimeValue.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(date_time_value, { - date :: tom:date(), - time :: tom:time(), - offset :: tom:offset() -}). diff --git a/aoc2023/build/dev/erlang/tom/include/tom_DateValue.hrl b/aoc2023/build/dev/erlang/tom/include/tom_DateValue.hrl deleted file mode 100644 index c41f901..0000000 --- a/aoc2023/build/dev/erlang/tom/include/tom_DateValue.hrl +++ /dev/null @@ -1 +0,0 @@ --record(date_value, {year :: integer(), month :: integer(), day :: integer()}). diff --git a/aoc2023/build/dev/erlang/tom/include/tom_KeyAlreadyInUse.hrl b/aoc2023/build/dev/erlang/tom/include/tom_KeyAlreadyInUse.hrl deleted file mode 100644 index 930df26..0000000 --- a/aoc2023/build/dev/erlang/tom/include/tom_KeyAlreadyInUse.hrl +++ /dev/null @@ -1 +0,0 @@ --record(key_already_in_use, {key :: list(binary())}). diff --git a/aoc2023/build/dev/erlang/tom/include/tom_NotFound.hrl b/aoc2023/build/dev/erlang/tom/include/tom_NotFound.hrl deleted file mode 100644 index 19c9a17..0000000 --- a/aoc2023/build/dev/erlang/tom/include/tom_NotFound.hrl +++ /dev/null @@ -1 +0,0 @@ --record(not_found, {key :: list(binary())}). diff --git a/aoc2023/build/dev/erlang/tom/include/tom_Offset.hrl b/aoc2023/build/dev/erlang/tom/include/tom_Offset.hrl deleted file mode 100644 index a58a8e1..0000000 --- a/aoc2023/build/dev/erlang/tom/include/tom_Offset.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(offset, { - direction :: tom:sign(), - hours :: integer(), - minutes :: integer() -}). diff --git a/aoc2023/build/dev/erlang/tom/include/tom_TimeValue.hrl b/aoc2023/build/dev/erlang/tom/include/tom_TimeValue.hrl deleted file mode 100644 index e1275de..0000000 --- a/aoc2023/build/dev/erlang/tom/include/tom_TimeValue.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(time_value, { - hour :: integer(), - minute :: integer(), - second :: integer(), - millisecond :: integer() -}). diff --git a/aoc2023/build/dev/erlang/tom/include/tom_Unexpected.hrl b/aoc2023/build/dev/erlang/tom/include/tom_Unexpected.hrl deleted file mode 100644 index ab1091c..0000000 --- a/aoc2023/build/dev/erlang/tom/include/tom_Unexpected.hrl +++ /dev/null @@ -1 +0,0 @@ --record(unexpected, {got :: binary(), expected :: binary()}). diff --git a/aoc2023/build/dev/erlang/tom/include/tom_WrongType.hrl b/aoc2023/build/dev/erlang/tom/include/tom_WrongType.hrl deleted file mode 100644 index ae57352..0000000 --- a/aoc2023/build/dev/erlang/tom/include/tom_WrongType.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(wrong_type, { - key :: list(binary()), - expected :: binary(), - got :: binary() -}). diff --git a/aoc2023/build/dev/javascript/gleam.lock b/aoc2023/build/dev/javascript/gleam.lock deleted file mode 100644 index e69de29..0000000 diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent.cache deleted file mode 100644 index 521ceaf..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent.cache_meta deleted file mode 100644 index 5b2e4fa..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@day.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@day.cache deleted file mode 100644 index 4a84a17..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@day.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@day.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@day.cache_meta deleted file mode 100644 index 13db829..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@day.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@init.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@init.cache deleted file mode 100644 index fc93f49..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@init.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@init.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@init.cache_meta deleted file mode 100644 index 25d46c5..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/adglent@init.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache deleted file mode 100644 index 3f2627e..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache_meta deleted file mode 100644 index ea20543..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@aoc_client.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@errors.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@errors.cache deleted file mode 100644 index 6b372e3..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@errors.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@errors.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@errors.cache_meta deleted file mode 100644 index d74550f..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@errors.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@prompt.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@prompt.cache deleted file mode 100644 index 892378a..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@prompt.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@prompt.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@prompt.cache_meta deleted file mode 100644 index 6069b5f..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@prompt.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@template.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@template.cache deleted file mode 100644 index 59c03e8..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@template.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@template.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@template.cache_meta deleted file mode 100644 index 4280edf..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@template.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache deleted file mode 100644 index eabceb6..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache_meta deleted file mode 100644 index efc3c1e..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@solution.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache deleted file mode 100644 index 7941b60..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache_meta deleted file mode 100644 index a43f871..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@test_main.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache deleted file mode 100644 index 3c13e17..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache_meta deleted file mode 100644 index 171b42d..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_gleeunit.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache deleted file mode 100644 index 6f3ef24..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache_meta deleted file mode 100644 index 943d5d1..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@templates@testfile_showtime.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@toml.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@toml.cache deleted file mode 100644 index 689de34..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@toml.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@toml.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@toml.cache_meta deleted file mode 100644 index dd43210..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/priv@toml.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime.cache deleted file mode 100644 index 222be7f..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime.cache_meta deleted file mode 100644 index a6a146a..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache deleted file mode 100644 index 2827e6a..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache_meta deleted file mode 100644 index 7772183..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@cli.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache deleted file mode 100644 index be4949e..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache_meta deleted file mode 100644 index c4fec3d..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@common_event_handler.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache deleted file mode 100644 index e21cf07..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache_meta deleted file mode 100644 index 1756ecb..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_result.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache deleted file mode 100644 index 6fc886b..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache_meta deleted file mode 100644 index 6ee96ca..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@common@test_suite.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache deleted file mode 100644 index 1fb5bce..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache_meta deleted file mode 100644 index f515230..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@discover.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache deleted file mode 100644 index a37646a..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache_meta deleted file mode 100644 index 7cfc212..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@event_handler.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache deleted file mode 100644 index 2215915..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache_meta deleted file mode 100644 index 39219c2..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@module_handler.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache deleted file mode 100644 index 6d99c72..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache_meta deleted file mode 100644 index 3c79f10..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@erlang@runner.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache deleted file mode 100644 index 552c884..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache_meta deleted file mode 100644 index b8918d9..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@compare.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache deleted file mode 100644 index 1a93299..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache_meta deleted file mode 100644 index 8edfde1..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@formatter.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache deleted file mode 100644 index 90c98f2..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache_meta deleted file mode 100644 index b116b96..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@styles.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache deleted file mode 100644 index 6fbddc2..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache_meta deleted file mode 100644 index ff3b647..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@internal@reports@table.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache deleted file mode 100644 index 6d293dd..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache_meta deleted file mode 100644 index 1236a4e..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@meta.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache deleted file mode 100644 index 56d5588..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache_meta deleted file mode 100644 index 8458464..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@should.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache deleted file mode 100644 index 18e4c90..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache_meta b/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache_meta deleted file mode 100644 index 784c0c6..0000000 Binary files a/aoc2023/build/lsp/erlang/adglent/_gleam_artefacts/showtime@tests@test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023.cache deleted file mode 100644 index 03ccd8d..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023.cache_meta deleted file mode 100644 index 010588b..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache deleted file mode 100644 index a3e359f..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache_meta deleted file mode 100644 index 7e5812c..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/aoc2023_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache deleted file mode 100644 index 679e63b..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache_meta deleted file mode 100644 index 492226f..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@day10_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@solve.cache deleted file mode 100644 index cac1824..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@solve.cache_meta deleted file mode 100644 index f684afc..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day10@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache deleted file mode 100644 index 1924a60..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache_meta deleted file mode 100644 index e9f22f9..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@day11_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@solve.cache deleted file mode 100644 index 94061b3..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@solve.cache_meta deleted file mode 100644 index fb68ddf..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day11@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache deleted file mode 100644 index ae12c19..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache_meta deleted file mode 100644 index 8696694..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@day12_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@solve.cache deleted file mode 100644 index d66a1b7..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@solve.cache_meta deleted file mode 100644 index dbcb771..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day12@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache deleted file mode 100644 index 6605c0f..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache_meta deleted file mode 100644 index e8e1290..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@day13_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@solve.cache deleted file mode 100644 index 285fc49..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@solve.cache_meta deleted file mode 100644 index 7ef4eea..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day13@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache deleted file mode 100644 index 99eb8b4..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache_meta deleted file mode 100644 index c6b6dc6..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@day14_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@solve.cache deleted file mode 100644 index 19fc049..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@solve.cache_meta deleted file mode 100644 index eb4b13e..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day14@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache deleted file mode 100644 index 2cd9b6f..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache_meta deleted file mode 100644 index a5a8349..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@day15_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@solve.cache deleted file mode 100644 index ec1b22a..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@solve.cache_meta deleted file mode 100644 index c27e086..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day15@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache deleted file mode 100644 index 9aed405..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache_meta deleted file mode 100644 index a3e7398..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@day16_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@solve.cache deleted file mode 100644 index 30d5d19..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@solve.cache_meta deleted file mode 100644 index 09cc64c..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day16@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache deleted file mode 100644 index a859e78..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache_meta deleted file mode 100644 index 1de55c9..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@day17_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@solve.cache deleted file mode 100644 index 2efed01..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@solve.cache_meta deleted file mode 100644 index 71761c7..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day17@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache deleted file mode 100644 index 65f231e..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache_meta deleted file mode 100644 index 8373480..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@day18_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@solve.cache deleted file mode 100644 index f9f0f27..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@solve.cache_meta deleted file mode 100644 index dcebbaf..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day18@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache deleted file mode 100644 index b29c52a..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache_meta deleted file mode 100644 index 51fdff1..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@day19_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@solve.cache deleted file mode 100644 index 586dc8a..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@solve.cache_meta deleted file mode 100644 index 7d7d9f7..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day19@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache deleted file mode 100644 index 81e1b95..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache_meta deleted file mode 100644 index 216bc61..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@day1_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@solve.cache deleted file mode 100644 index 7fb41c1..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@solve.cache_meta deleted file mode 100644 index 683844e..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day1@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache deleted file mode 100644 index 17bd031..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache_meta deleted file mode 100644 index a62c67e..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@day20_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@solve.cache deleted file mode 100644 index b0eb623..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@solve.cache_meta deleted file mode 100644 index 2fec13e..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day20@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@day21_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@day21_test.cache deleted file mode 100644 index 6ca601f..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@day21_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@day21_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@day21_test.cache_meta deleted file mode 100644 index d2ccb36..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@day21_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@solve.cache deleted file mode 100644 index 696553d..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@solve.cache_meta deleted file mode 100644 index d86557e..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day21@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@day22_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@day22_test.cache deleted file mode 100644 index ba7b665..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@day22_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@day22_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@day22_test.cache_meta deleted file mode 100644 index e3b757f..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@day22_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@solve.cache deleted file mode 100644 index 4367d01..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@solve.cache_meta deleted file mode 100644 index 1debfe9..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day22@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@day23_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@day23_test.cache deleted file mode 100644 index a911091..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@day23_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@day23_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@day23_test.cache_meta deleted file mode 100644 index 828230e..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@day23_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@solve.cache deleted file mode 100644 index 9b88d01..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@solve.cache_meta deleted file mode 100644 index 35a9a48..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day23@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache deleted file mode 100644 index 482a3bf..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache_meta deleted file mode 100644 index 2af1fbe..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@day2_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@solve.cache deleted file mode 100644 index 50d9065..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@solve.cache_meta deleted file mode 100644 index e326f72..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day2@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache deleted file mode 100644 index 80b9225..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache_meta deleted file mode 100644 index e9df393..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@day3_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@solve.cache deleted file mode 100644 index 52a1a03..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@solve.cache_meta deleted file mode 100644 index bb3d942..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day3@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache deleted file mode 100644 index 9adb008..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache_meta deleted file mode 100644 index d80de98..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@day4_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@solve.cache deleted file mode 100644 index fc70a08..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@solve.cache_meta deleted file mode 100644 index 3b1a2a0..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day4@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache deleted file mode 100644 index d2b4607..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache_meta deleted file mode 100644 index eca9fea..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@day5_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@solve.cache deleted file mode 100644 index 0a13d69..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@solve.cache_meta deleted file mode 100644 index 054cd0e..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day5@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache deleted file mode 100644 index 6764230..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache_meta deleted file mode 100644 index d316cb3..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@day6_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@solve.cache deleted file mode 100644 index 0172460..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@solve.cache_meta deleted file mode 100644 index bd28173..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day6@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache deleted file mode 100644 index fefff2d..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache_meta deleted file mode 100644 index 5355703..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@day7_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@solve.cache deleted file mode 100644 index 2c9cded..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@solve.cache_meta deleted file mode 100644 index a7d2130..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day7@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache deleted file mode 100644 index 4d54d49..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache_meta deleted file mode 100644 index 4f164d5..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@day8_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@solve.cache deleted file mode 100644 index 5fa8a20..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@solve.cache_meta deleted file mode 100644 index c13d429..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day8@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache deleted file mode 100644 index a99c932..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache_meta deleted file mode 100644 index bff2f05..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@day9_test.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@solve.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@solve.cache deleted file mode 100644 index beefe36..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@solve.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@solve.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@solve.cache_meta deleted file mode 100644 index de6a9ae..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/day9@solve.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache deleted file mode 100644 index afe092f..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache_meta deleted file mode 100644 index 88a04e0..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@array2d.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache deleted file mode 100644 index 9273efb..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache_meta deleted file mode 100644 index f81ca7a..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@memo.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache deleted file mode 100644 index 5a113a7..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache_meta b/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache_meta deleted file mode 100644 index f3cebb8..0000000 Binary files a/aoc2023/build/lsp/erlang/aoc2023/_gleam_artefacts/utilities@prioqueue.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap.cache b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap.cache deleted file mode 100644 index 58fdf0a..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap.cache_meta b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap.cache_meta deleted file mode 100644 index edd8d2a..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@comparison.cache b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@comparison.cache deleted file mode 100644 index df62224..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@comparison.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@comparison.cache_meta b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@comparison.cache_meta deleted file mode 100644 index 3bc139d..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@comparison.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@myers.cache b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@myers.cache deleted file mode 100644 index bbfe5ed..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@myers.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@myers.cache_meta b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@myers.cache_meta deleted file mode 100644 index 4a36f3c..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@myers.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache deleted file mode 100644 index 65752d7..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache_meta b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache_meta deleted file mode 100644 index ca915f3..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styled_comparison.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styling.cache b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styling.cache deleted file mode 100644 index c0172d9..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styling.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styling.cache_meta b/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styling.cache_meta deleted file mode 100644 index 3773567..0000000 Binary files a/aoc2023/build/lsp/erlang/gap/_gleam_artefacts/gap@styling.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam.lock b/aoc2023/build/lsp/erlang/gleam.lock deleted file mode 100644 index e69de29..0000000 diff --git a/aoc2023/build/lsp/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache b/aoc2023/build/lsp/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache deleted file mode 100644 index 5163da7..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache_meta deleted file mode 100644 index 6988904..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_ansi/_gleam_artefacts/gleam_community@ansi.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache b/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache deleted file mode 100644 index d1acf6b..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache_meta deleted file mode 100644 index 53e1ad9..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache b/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache deleted file mode 100644 index 7012d28..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache_meta deleted file mode 100644 index e926edf..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_colour/_gleam_artefacts/gleam_community@colour@accessibility.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache deleted file mode 100644 index dbe18f4..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache_meta deleted file mode 100644 index ac9cd0c..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@arithmetics.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache deleted file mode 100644 index 82de246..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache_meta deleted file mode 100644 index 8124d25..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@combinatorics.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache deleted file mode 100644 index 18e058a..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache_meta deleted file mode 100644 index eada136..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@conversion.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache deleted file mode 100644 index 706c48f..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache_meta deleted file mode 100644 index ade0e09..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@elementary.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache deleted file mode 100644 index e21f351..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache_meta deleted file mode 100644 index 7edd566..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@metrics.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache deleted file mode 100644 index 31e4bd8..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache_meta deleted file mode 100644 index 14c1d0f..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@piecewise.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache deleted file mode 100644 index a0c65e8..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache_meta deleted file mode 100644 index 8d56c49..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@predicates.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache deleted file mode 100644 index c1adae5..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache_meta deleted file mode 100644 index 3cfa2ef..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@sequences.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache deleted file mode 100644 index ecca197..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache_meta b/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache_meta deleted file mode 100644 index e8cada3..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_community_maths/_gleam_artefacts/gleam_community@maths@special.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache deleted file mode 100644 index 9cb4b7e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache_meta b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache_meta deleted file mode 100644 index d76e6b6..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache deleted file mode 100644 index ee9e3c5..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta deleted file mode 100644 index bfd938d..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache deleted file mode 100644 index 223f016..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta deleted file mode 100644 index 7996afc..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache deleted file mode 100644 index e935a8b..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache_meta b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache_meta deleted file mode 100644 index e194cad..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@file.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache deleted file mode 100644 index b0b77f7..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta deleted file mode 100644 index 4423143..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache deleted file mode 100644 index 977e362..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache_meta b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache_meta deleted file mode 100644 index a5a851f..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@os.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache deleted file mode 100644 index 4c47a8f..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta b/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta deleted file mode 100644 index 90df4b9..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http.cache b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http.cache deleted file mode 100644 index 6b925a9..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http.cache_meta b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http.cache_meta deleted file mode 100644 index f53edb8..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache deleted file mode 100644 index ab6b66d..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache_meta b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache_meta deleted file mode 100644 index 89d9a4d..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@cookie.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache deleted file mode 100644 index a5cf562..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache_meta b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache_meta deleted file mode 100644 index 91001e2..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@request.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache deleted file mode 100644 index 19c78e4..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache_meta b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache_meta deleted file mode 100644 index 37ee645..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@response.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache deleted file mode 100644 index 903ffa4..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache_meta b/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache_meta deleted file mode 100644 index 30e0838..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_http/_gleam_artefacts/gleam@http@service.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache b/aoc2023/build/lsp/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache deleted file mode 100644 index ba9ef78..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache_meta b/aoc2023/build/lsp/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache_meta deleted file mode 100644 index d66a2c3..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_httpc/_gleam_artefacts/gleam@httpc.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache deleted file mode 100644 index 739be7d..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache_meta b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache_meta deleted file mode 100644 index 01991ea..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@actor.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache deleted file mode 100644 index 24b814e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache_meta b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache_meta deleted file mode 100644 index ad921d2..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@intensity_tracker.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache deleted file mode 100644 index b35f9fd..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache_meta b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache_meta deleted file mode 100644 index ac4a4c2..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@port.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache deleted file mode 100644 index 30fbb09..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache_meta b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache_meta deleted file mode 100644 index a58472a..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@supervisor.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache deleted file mode 100644 index 9992f8e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache_meta b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache_meta deleted file mode 100644 index 830d435..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@system.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache deleted file mode 100644 index fb7d4a6..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache_meta b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache_meta deleted file mode 100644 index 26c03cf..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam@otp@task.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache deleted file mode 100644 index c447835..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache_meta b/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache_meta deleted file mode 100644 index 6beed5e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_otp/_gleam_artefacts/gleam_otp.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache deleted file mode 100644 index e295cef..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache_meta deleted file mode 100644 index d03bd4e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@base.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache deleted file mode 100644 index 6b43913..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta deleted file mode 100644 index 09e2f8a..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache deleted file mode 100644 index 122b269..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache_meta deleted file mode 100644 index b59a80e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_builder.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache deleted file mode 100644 index 7a80622..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache_meta deleted file mode 100644 index e7f013d..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bit_string.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache deleted file mode 100644 index 06a6c96..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta deleted file mode 100644 index e616ec0..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache deleted file mode 100644 index 01ea426..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache_meta deleted file mode 100644 index 701db1f..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@bytes_builder.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache deleted file mode 100644 index 49f4e5c..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta deleted file mode 100644 index fd97a7e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache deleted file mode 100644 index cbc0f1c..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta deleted file mode 100644 index e0ebbda..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache deleted file mode 100644 index 189b9ad..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta deleted file mode 100644 index 8778fab..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache deleted file mode 100644 index 726a070..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta deleted file mode 100644 index 8bfae6d..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache deleted file mode 100644 index 83be3b0..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta deleted file mode 100644 index 7c99d5d..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache deleted file mode 100644 index b20af0e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta deleted file mode 100644 index 48ca73e..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache deleted file mode 100644 index c3d8348..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache_meta deleted file mode 100644 index fb52d57..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@iterator.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache deleted file mode 100644 index 752dab0..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta deleted file mode 100644 index 6587875..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache deleted file mode 100644 index ba87194..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache_meta deleted file mode 100644 index 0b52486..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@map.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache deleted file mode 100644 index 100fb62..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta deleted file mode 100644 index 8b36f47..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache deleted file mode 100644 index cf6532f..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta deleted file mode 100644 index 2395015..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache deleted file mode 100644 index 8b90bd7..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta deleted file mode 100644 index a2089a5..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache deleted file mode 100644 index cbb4139..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache_meta deleted file mode 100644 index 6ec02d2..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@queue.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache deleted file mode 100644 index 04900e9..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache_meta deleted file mode 100644 index d6129ae..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@regex.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache deleted file mode 100644 index fa35d18..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta deleted file mode 100644 index f4e8874..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache deleted file mode 100644 index d33ebc9..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta deleted file mode 100644 index e4e832b..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache deleted file mode 100644 index 64e10ec..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta deleted file mode 100644 index 0f375fd..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache deleted file mode 100644 index 2130157..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache_meta deleted file mode 100644 index b367bfd..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@string_builder.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache deleted file mode 100644 index 0e387bb..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta b/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta deleted file mode 100644 index 2ae412b..0000000 Binary files a/aoc2023/build/lsp/erlang/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/gleam_version b/aoc2023/build/lsp/erlang/gleam_version deleted file mode 100644 index 048acbd..0000000 --- a/aoc2023/build/lsp/erlang/gleam_version +++ /dev/null @@ -1 +0,0 @@ -0.33.0-rc2 \ No newline at end of file diff --git a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint.cache b/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint.cache deleted file mode 100644 index eb7ff68..0000000 Binary files a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint.cache_meta b/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint.cache_meta deleted file mode 100644 index 961512a..0000000 Binary files a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag.cache b/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag.cache deleted file mode 100644 index 80596e9..0000000 Binary files a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag.cache_meta b/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag.cache_meta deleted file mode 100644 index 1c9f1af..0000000 Binary files a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache b/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache deleted file mode 100644 index cc6fd56..0000000 Binary files a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache_meta b/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache_meta deleted file mode 100644 index 9339182..0000000 Binary files a/aoc2023/build/lsp/erlang/glint/_gleam_artefacts/glint@flag@constraint.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/simplifile/_gleam_artefacts/simplifile.cache b/aoc2023/build/lsp/erlang/simplifile/_gleam_artefacts/simplifile.cache deleted file mode 100644 index 6012ccd..0000000 Binary files a/aoc2023/build/lsp/erlang/simplifile/_gleam_artefacts/simplifile.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/simplifile/_gleam_artefacts/simplifile.cache_meta b/aoc2023/build/lsp/erlang/simplifile/_gleam_artefacts/simplifile.cache_meta deleted file mode 100644 index 2120b13..0000000 Binary files a/aoc2023/build/lsp/erlang/simplifile/_gleam_artefacts/simplifile.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/snag/_gleam_artefacts/snag.cache b/aoc2023/build/lsp/erlang/snag/_gleam_artefacts/snag.cache deleted file mode 100644 index 72355df..0000000 Binary files a/aoc2023/build/lsp/erlang/snag/_gleam_artefacts/snag.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/snag/_gleam_artefacts/snag.cache_meta b/aoc2023/build/lsp/erlang/snag/_gleam_artefacts/snag.cache_meta deleted file mode 100644 index 181b01e..0000000 Binary files a/aoc2023/build/lsp/erlang/snag/_gleam_artefacts/snag.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/tom/_gleam_artefacts/tom.cache b/aoc2023/build/lsp/erlang/tom/_gleam_artefacts/tom.cache deleted file mode 100644 index c632faf..0000000 Binary files a/aoc2023/build/lsp/erlang/tom/_gleam_artefacts/tom.cache and /dev/null differ diff --git a/aoc2023/build/lsp/erlang/tom/_gleam_artefacts/tom.cache_meta b/aoc2023/build/lsp/erlang/tom/_gleam_artefacts/tom.cache_meta deleted file mode 100644 index 3371771..0000000 Binary files a/aoc2023/build/lsp/erlang/tom/_gleam_artefacts/tom.cache_meta and /dev/null differ diff --git a/aoc2023/build/lsp/javascript/gleam.lock b/aoc2023/build/lsp/javascript/gleam.lock deleted file mode 100644 index e69de29..0000000 diff --git a/aoc2023/build/packages/adglent/LICENSE b/aoc2023/build/packages/adglent/LICENSE deleted file mode 100644 index c7c82cc..0000000 --- a/aoc2023/build/packages/adglent/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright 2023 John Björk - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/aoc2023/build/packages/adglent/README.md b/aoc2023/build/packages/adglent/README.md deleted file mode 100644 index fcd81eb..0000000 --- a/aoc2023/build/packages/adglent/README.md +++ /dev/null @@ -1,115 +0,0 @@ -# adglent - -[![Package Version](https://img.shields.io/hexpm/v/adglent)](https://hex.pm/packages/adglent) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/adglent/) - -## About - -`adglent` is a Gleam library which can be used to setup testing code and a template for implementing solution to [Advent of code](https://adventofcode.com/) problems. - -> NOTE: `adglent` **only** supports `erlang` target (default) for Gleam. - -## Prerequisites - -`adglent` is written in `gleam` and runs and tests solutions written in Gleam. Read more about `gleam` at [gleam.run](https://gleam.run). - -The easiest way to install `gleam` is to use `asdf`: - -1. Install `asdf` according to the instructions at the [asdf website](https://asdf-vm.com/) -2. Install the gleam asdf plugin: `asdf plugin-add gleam` -3. Install the latest `asdf install gleam latest` -4. Use the latest gleam version globally: `asdf global gleam latest` - -> HINT: `asdf` can manage multiple versions of gleam and the version can be set globally and also locally (`asdf local gleam `) to use a specific gleam version in a project. - -## Installation - -Start a new gleam project for your AOC soluctions with `gleam new`. In the project folder run: - -```sh -gleam add --dev adglent -``` - -## Usage - -### Initializing - -First log in to [Advent of code](https://adventofcode.com/) and copy your personal `session-cookie`. The value can be found using developer tools in the browser (in Chrome: "Application->Cookies->https://adventofcode.com->session" and copy the Cookie-value) - -```sh -gleam run -m adglent/init -``` - -Input the AOC year, you personal AOC session cookie and select if `showtime` should be used for tests (otherwise it will assume the project uses `gleeunit` as is default for `gleam new `) - -> NOTE: `showtime` is an alternate gleam test-runner. It is still quite new and havn't been tested in as many project as `gleeunit`. It has a different way of formatting the test-results and also supports the possibility to run specific test-modules (which can be useful in AOC). `showtime` is a standalone project but have been embedded into `adglent`. - -### Add day - -To start working on the solution for a specific day run: - -```sh -gleam run -m adglent/day -``` - -Where `` is the day number of the day you want to solve a problem for. - -> Example (start solving 1st of December): -> -> ```sh -> gleam run -m adglent/day 1 -> ``` - -Adding a day will add tests in `test/day/day_test.gleam`and a `src/day/solve.gleam` file where the solution can be implemented. - -Furthermore it will also download the input for the problem to `src/day/input.txt` - -Before running the tests you need to provide one or more example. These can be found in the problem description for that day at the AOC website. - -Add an example to a part of the problem by adding examples to the `part1_examples` or `part2_examples` lists. - -> Example (input "Hello Joe!" should give answer 613411): -> -> ```gleam -> const part1_examples: List(Example(Problem1AnswerType)) = [ -> Example("Hello Joe!", "613411"), -> ] -> ``` - -The type of the answer for a part can be adjusted if needed by changing the type aliases `Problem1AnswerType` / `Problem2AnswerType`. Note that this will change the type that the `part1` / `part2` functions in `solve.gleam` expect to return. - -### Testing - -To test all days in the project use: - -```sh -gleam test -``` - -If you are using `showtime` you can test a single day by running: - -```sh -gleam test -- --modules=day/day_test -``` - -> Example (test solution for 1st of December): -> -> ```sh -> gleam test -- modules=day1/day1_test -> ``` - -### Get the answer - -To get the (hopefully correct) answer after the tests are ok run: - -```sh -gleam run -m day/solve -``` - -where `` is the day to solve and `` is the part of the problem (1 or 2) to solve. - -This will run the solver and print the answer to stdout. - -### Module documentation - -Module documentation can be found at . diff --git a/aoc2023/build/packages/adglent/gleam.toml b/aoc2023/build/packages/adglent/gleam.toml deleted file mode 100644 index e1d81b8..0000000 --- a/aoc2023/build/packages/adglent/gleam.toml +++ /dev/null @@ -1,29 +0,0 @@ -name = "adglent" -version = "1.2.0" - -description = "Advent of code helper - automating setup of tests, solution template and problem input" -licences = ["Apache-2.0"] -repository = { type = "github", user = "JohnBjrk", repo = "adglent" } - -internal_modules = [ - "adglent/priv", - "adglent/priv/*", - "showtime/internal/*", -] -gleam = ">= 0.32.0" - -[dependencies] -gleam_stdlib = "~> 0.32" -simplifile = "~> 1.0" -gleam_http = "~> 3.5" -gleam_erlang = "~> 0.23.0" -gleam_otp = "~> 0.8.0" -gleam_community_ansi = "~> 1.2" -glint = "~> 0.13.0" -gap = "~> 1.0" -snag = "~> 0.2.0" -tom = "~> 0.2.0" -gleam_httpc = "~> 2.1" - -[dev-dependencies] -gleeunit = "~> 1.0" diff --git a/aoc2023/build/packages/adglent/include/adglent_Example.hrl b/aoc2023/build/packages/adglent/include/adglent_Example.hrl deleted file mode 100644 index 615e473..0000000 --- a/aoc2023/build/packages/adglent/include/adglent_Example.hrl +++ /dev/null @@ -1 +0,0 @@ --record(example, {input :: binary(), answer :: any()}). diff --git a/aoc2023/build/packages/adglent/include/priv@toml_TomGetError.hrl b/aoc2023/build/packages/adglent/include/priv@toml_TomGetError.hrl deleted file mode 100644 index 4cd5ddd..0000000 --- a/aoc2023/build/packages/adglent/include/priv@toml_TomGetError.hrl +++ /dev/null @@ -1 +0,0 @@ --record(tom_get_error, {error :: tom:get_error()}). diff --git a/aoc2023/build/packages/adglent/include/priv@toml_TomParseError.hrl b/aoc2023/build/packages/adglent/include/priv@toml_TomParseError.hrl deleted file mode 100644 index 7306934..0000000 --- a/aoc2023/build/packages/adglent/include/priv@toml_TomParseError.hrl +++ /dev/null @@ -1 +0,0 @@ --record(tom_parse_error, {error :: tom:parse_error()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@common_event_handler_Finished.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@common_event_handler_Finished.hrl deleted file mode 100644 index 7d24e52..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@common_event_handler_Finished.hrl +++ /dev/null @@ -1 +0,0 @@ --record(finished, {num_modules :: integer()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@common_event_handler_HandlerState.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@common_event_handler_HandlerState.hrl deleted file mode 100644 index 2eceb23..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@common_event_handler_HandlerState.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(handler_state, { - test_state :: showtime@internal@common@common_event_handler:test_state(), - num_done :: integer(), - events :: gleam@map:map_(binary(), gleam@map:map_(binary(), showtime@internal@common@test_suite:test_run())) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ArgList.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ArgList.hrl deleted file mode 100644 index 79f34f8..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ArgList.hrl +++ /dev/null @@ -1 +0,0 @@ --record(arg_list, {arg_list :: list(gleam@dynamic:dynamic_())}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertEqual.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertEqual.hrl deleted file mode 100644 index c6458ba..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertEqual.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(assert_equal, { - details :: list(showtime@internal@common@test_result:reason_detail()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertMatch.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertMatch.hrl deleted file mode 100644 index 4920304..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertMatch.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(assert_match, { - details :: list(showtime@internal@common@test_result:reason_detail()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertNotEqual.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertNotEqual.hrl deleted file mode 100644 index 221c15f..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_AssertNotEqual.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(assert_not_equal, { - details :: list(showtime@internal@common@test_result:reason_detail()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ErlangException.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ErlangException.hrl deleted file mode 100644 index 9a31ba8..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ErlangException.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(erlang_exception, { - class :: showtime@internal@common@test_result:class(), - reason :: showtime@internal@common@test_result:reason(), - stacktrace :: showtime@internal@common@test_result:trace_list(), - output_buffer :: list(binary()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ErrorInfo.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ErrorInfo.hrl deleted file mode 100644 index 97d0802..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ErrorInfo.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(error_info, { - error_info :: gleam@map:map_(gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Expected.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Expected.hrl deleted file mode 100644 index 5e40ad3..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Expected.hrl +++ /dev/null @@ -1 +0,0 @@ --record(expected, {value :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Expression.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Expression.hrl deleted file mode 100644 index 7aa0c35..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Expression.hrl +++ /dev/null @@ -1 +0,0 @@ --record(expression, {expression :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_File.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_File.hrl deleted file mode 100644 index 1274b74..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_File.hrl +++ /dev/null @@ -1 +0,0 @@ --record(file, {filename :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GenericException.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GenericException.hrl deleted file mode 100644 index 7c33d0d..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GenericException.hrl +++ /dev/null @@ -1 +0,0 @@ --record(generic_exception, {value :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GleamAssert.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GleamAssert.hrl deleted file mode 100644 index 095748c..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GleamAssert.hrl +++ /dev/null @@ -1 +0,0 @@ --record(gleam_assert, {value :: gleam@dynamic:dynamic_(), line_no :: integer()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GleamError.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GleamError.hrl deleted file mode 100644 index 68e6645..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_GleamError.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(gleam_error, { - details :: showtime@internal@common@test_result:gleam_error_detail() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Ignored.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Ignored.hrl deleted file mode 100644 index 87b7e2f..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Ignored.hrl +++ /dev/null @@ -1 +0,0 @@ --record(ignored, {reason :: showtime@internal@common@test_result:ignore_reason()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_LetAssert.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_LetAssert.hrl deleted file mode 100644 index 5f3f60d..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_LetAssert.hrl +++ /dev/null @@ -1,7 +0,0 @@ --record(let_assert, { - module :: binary(), - function :: binary(), - line_no :: integer(), - message :: binary(), - value :: gleam@dynamic:dynamic_() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Line.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Line.hrl deleted file mode 100644 index 9807df6..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Line.hrl +++ /dev/null @@ -1 +0,0 @@ --record(line, {line_no :: integer()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Module.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Module.hrl deleted file mode 100644 index 8002c0c..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Module.hrl +++ /dev/null @@ -1 +0,0 @@ --record(module, {name :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Num.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Num.hrl deleted file mode 100644 index c36efa3..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Num.hrl +++ /dev/null @@ -1 +0,0 @@ --record(num, {arity :: integer()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Pattern.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Pattern.hrl deleted file mode 100644 index 6aa9c84..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Pattern.hrl +++ /dev/null @@ -1 +0,0 @@ --record(pattern, {pattern :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ReasonLine.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ReasonLine.hrl deleted file mode 100644 index b7ad1ab..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_ReasonLine.hrl +++ /dev/null @@ -1 +0,0 @@ --record(reason_line, {line_no :: integer()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TestFunctionReturn.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TestFunctionReturn.hrl deleted file mode 100644 index b0bc294..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TestFunctionReturn.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(test_function_return, { - value :: gleam@dynamic:dynamic_(), - output_buffer :: list(binary()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Trace.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Trace.hrl deleted file mode 100644 index 4cb007c..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Trace.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(trace, { - function :: binary(), - arity :: showtime@internal@common@test_result:arity_(), - extra_info :: list(showtime@internal@common@test_result:extra_info()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TraceList.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TraceList.hrl deleted file mode 100644 index c1aa9c5..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TraceList.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(trace_list, { - traces :: list(showtime@internal@common@test_result:trace()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TraceModule.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TraceModule.hrl deleted file mode 100644 index 595362f..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_TraceModule.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(trace_module, { - module :: binary(), - function :: binary(), - arity :: showtime@internal@common@test_result:arity_(), - extra_info :: list(showtime@internal@common@test_result:extra_info()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Value.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Value.hrl deleted file mode 100644 index 3a4b0dd..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_result_Value.hrl +++ /dev/null @@ -1 +0,0 @@ --record(value, {value :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_CompletedTestRun.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_CompletedTestRun.hrl deleted file mode 100644 index 927a0cf..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_CompletedTestRun.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(completed_test_run, { - test_function :: showtime@internal@common@test_suite:test_function(), - total_time :: integer(), - result :: {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()} -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTest.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTest.hrl deleted file mode 100644 index 13df1bf..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTest.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(end_test, { - test_module :: showtime@internal@common@test_suite:test_module(), - test_function :: showtime@internal@common@test_suite:test_function(), - result :: {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()} -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTestRun.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTestRun.hrl deleted file mode 100644 index 3f78991..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTestRun.hrl +++ /dev/null @@ -1 +0,0 @@ --record(end_test_run, {num_modules :: integer()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTestSuite.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTestSuite.hrl deleted file mode 100644 index a7f37b3..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_EndTestSuite.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(end_test_suite, { - test_module :: showtime@internal@common@test_suite:test_module() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_OngoingTestRun.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_OngoingTestRun.hrl deleted file mode 100644 index f52e5cc..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_OngoingTestRun.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(ongoing_test_run, { - test_function :: showtime@internal@common@test_suite:test_function(), - started_at :: integer() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_StartTest.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_StartTest.hrl deleted file mode 100644 index d532609..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_StartTest.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(start_test, { - test_module :: showtime@internal@common@test_suite:test_module(), - test_function :: showtime@internal@common@test_suite:test_function() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_StartTestSuite.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_StartTestSuite.hrl deleted file mode 100644 index d5a03d3..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_StartTestSuite.hrl +++ /dev/null @@ -1,3 +0,0 @@ --record(start_test_suite, { - test_module :: showtime@internal@common@test_suite:test_module() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestFunction.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestFunction.hrl deleted file mode 100644 index a783ba4..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestFunction.hrl +++ /dev/null @@ -1 +0,0 @@ --record(test_function, {name :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestModule.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestModule.hrl deleted file mode 100644 index ee9baaf..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestModule.hrl +++ /dev/null @@ -1 +0,0 @@ --record(test_module, {name :: binary(), path :: gleam@option:option(binary())}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestSuite.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestSuite.hrl deleted file mode 100644 index 253a946..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@common@test_suite_TestSuite.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(test_suite, { - module :: showtime@internal@common@test_suite:test_module(), - tests :: list(showtime@internal@common@test_suite:test_function()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignLeft.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignLeft.hrl deleted file mode 100644 index ca52968..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignLeft.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(align_left, { - content :: showtime@internal@reports@table:content(), - margin :: integer() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignLeftOverflow.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignLeftOverflow.hrl deleted file mode 100644 index 8d5a673..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignLeftOverflow.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(align_left_overflow, { - content :: showtime@internal@reports@table:content(), - margin :: integer() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignRight.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignRight.hrl deleted file mode 100644 index 7f7a3f0..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignRight.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(align_right, { - content :: showtime@internal@reports@table:content(), - margin :: integer() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignRightOverflow.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignRightOverflow.hrl deleted file mode 100644 index 4fc4536..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_AlignRightOverflow.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(align_right_overflow, { - content :: showtime@internal@reports@table:content(), - margin :: integer() -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Aligned.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Aligned.hrl deleted file mode 100644 index 2343dfd..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Aligned.hrl +++ /dev/null @@ -1 +0,0 @@ --record(aligned, {content :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Content.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Content.hrl deleted file mode 100644 index 044891b..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Content.hrl +++ /dev/null @@ -1 +0,0 @@ --record(content, {unstyled_text :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Separator.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Separator.hrl deleted file mode 100644 index db3f822..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Separator.hrl +++ /dev/null @@ -1 +0,0 @@ --record(separator, {char :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_StyledContent.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_StyledContent.hrl deleted file mode 100644 index ed500df..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_StyledContent.hrl +++ /dev/null @@ -1 +0,0 @@ --record(styled_content, {styled_text :: binary()}). diff --git a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Table.hrl b/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Table.hrl deleted file mode 100644 index 5b41bb1..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@internal@reports@table_Table.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(table, { - header :: gleam@option:option(binary()), - rows :: list(list(showtime@internal@reports@table:col())) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@tests@meta_Meta.hrl b/aoc2023/build/packages/adglent/include/showtime@tests@meta_Meta.hrl deleted file mode 100644 index 14184fb..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@tests@meta_Meta.hrl +++ /dev/null @@ -1 +0,0 @@ --record(meta, {description :: binary(), tags :: list(binary())}). diff --git a/aoc2023/build/packages/adglent/include/showtime@tests@should_Eq.hrl b/aoc2023/build/packages/adglent/include/showtime@tests@should_Eq.hrl deleted file mode 100644 index 6ebea34..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@tests@should_Eq.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(eq, { - a :: any(), - b :: any(), - meta :: gleam@option:option(showtime@tests@meta:meta()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@tests@should_Fail.hrl b/aoc2023/build/packages/adglent/include/showtime@tests@should_Fail.hrl deleted file mode 100644 index cf06a3c..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@tests@should_Fail.hrl +++ /dev/null @@ -1 +0,0 @@ --record(fail, {meta :: gleam@option:option(showtime@tests@meta:meta())}). diff --git a/aoc2023/build/packages/adglent/include/showtime@tests@should_IsError.hrl b/aoc2023/build/packages/adglent/include/showtime@tests@should_IsError.hrl deleted file mode 100644 index e9cabf3..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@tests@should_IsError.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(is_error, { - a :: {ok, any()} | {error, any()}, - meta :: gleam@option:option(showtime@tests@meta:meta()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@tests@should_IsOk.hrl b/aoc2023/build/packages/adglent/include/showtime@tests@should_IsOk.hrl deleted file mode 100644 index 37c24ca..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@tests@should_IsOk.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(is_ok, { - a :: {ok, any()} | {error, any()}, - meta :: gleam@option:option(showtime@tests@meta:meta()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@tests@should_NotEq.hrl b/aoc2023/build/packages/adglent/include/showtime@tests@should_NotEq.hrl deleted file mode 100644 index 2a6bf48..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@tests@should_NotEq.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(not_eq, { - a :: any(), - b :: any(), - meta :: gleam@option:option(showtime@tests@meta:meta()) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@tests@test_MetaShould.hrl b/aoc2023/build/packages/adglent/include/showtime@tests@test_MetaShould.hrl deleted file mode 100644 index a814a93..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@tests@test_MetaShould.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(meta_should, { - equal :: fun((any(), any()) -> nil), - not_equal :: fun((any(), any()) -> nil) -}). diff --git a/aoc2023/build/packages/adglent/include/showtime@tests@test_Test.hrl b/aoc2023/build/packages/adglent/include/showtime@tests@test_Test.hrl deleted file mode 100644 index e75a0b7..0000000 --- a/aoc2023/build/packages/adglent/include/showtime@tests@test_Test.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(test, { - meta :: showtime@tests@meta:meta(), - test_function :: fun(() -> nil) -}). diff --git a/aoc2023/build/packages/adglent/src/adglent.app.src b/aoc2023/build/packages/adglent/src/adglent.app.src deleted file mode 100644 index aa44f8b..0000000 --- a/aoc2023/build/packages/adglent/src/adglent.app.src +++ /dev/null @@ -1,45 +0,0 @@ -{application, adglent, [ - {vsn, "1.2.0"}, - {applications, [gap, - gleam_community_ansi, - gleam_erlang, - gleam_http, - gleam_httpc, - gleam_otp, - gleam_stdlib, - gleeunit, - glint, - simplifile, - snag, - tom]}, - {description, "Advent of code helper - automating setup of tests, solution template and problem input"}, - {modules, [adglent, - adglent@day, - adglent@init, - priv@aoc_client, - priv@errors, - priv@prompt, - priv@template, - priv@templates@solution, - priv@templates@test_main, - priv@templates@testfile_gleeunit, - priv@templates@testfile_showtime, - priv@toml, - showtime, - showtime@internal@common@cli, - showtime@internal@common@common_event_handler, - showtime@internal@common@test_result, - showtime@internal@common@test_suite, - showtime@internal@erlang@discover, - showtime@internal@erlang@event_handler, - showtime@internal@erlang@module_handler, - showtime@internal@erlang@runner, - showtime@internal@reports@compare, - showtime@internal@reports@formatter, - showtime@internal@reports@styles, - showtime@internal@reports@table, - showtime@tests@meta, - showtime@tests@should, - showtime@tests@test]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/adglent/src/adglent.erl b/aoc2023/build/packages/adglent/src/adglent.erl deleted file mode 100644 index e9df2b7..0000000 --- a/aoc2023/build/packages/adglent/src/adglent.erl +++ /dev/null @@ -1,55 +0,0 @@ --module(adglent). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([inspect/1, get_input/1, get_test_folder/1, start_arguments/0, get_part/0]). --export_type([example/1, problem/0, charlist/0]). - --type example(OFF) :: {example, binary(), OFF}. - --type problem() :: first | second. - --type charlist() :: any(). - --spec inspect(any()) -> binary(). -inspect(Value) -> - Inspected_value = gleam@string:inspect(Value), - case begin - _pipe = Inspected_value, - gleam@string:starts_with(_pipe, <<"\""/utf8>>) - end of - true -> - _pipe@1 = Inspected_value, - _pipe@2 = gleam@string:drop_left(_pipe@1, 1), - gleam@string:drop_right(_pipe@2, 1); - - false -> - Inspected_value - end. - --spec get_input(binary()) -> {ok, binary()} | {error, simplifile:file_error()}. -get_input(Day) -> - simplifile:read( - <<<<"src/day"/utf8, Day/binary>>/binary, "/input.txt"/utf8>> - ). - --spec get_test_folder(binary()) -> binary(). -get_test_folder(Day) -> - <<"test/day"/utf8, Day/binary>>. - --spec start_arguments() -> list(binary()). -start_arguments() -> - _pipe = init:get_plain_arguments(), - gleam@list:map(_pipe, fun unicode:characters_to_binary/1). - --spec get_part() -> {ok, problem()} | {error, nil}. -get_part() -> - case start_arguments() of - [<<"1"/utf8>>] -> - {ok, first}; - - [<<"2"/utf8>>] -> - {ok, second}; - - _ -> - {error, nil} - end. diff --git a/aoc2023/build/packages/adglent/src/adglent.gleam b/aoc2023/build/packages/adglent/src/adglent.gleam deleted file mode 100644 index 077d49d..0000000 --- a/aoc2023/build/packages/adglent/src/adglent.gleam +++ /dev/null @@ -1,56 +0,0 @@ -import simplifile.{type FileError} -import gleam/list -import gleam/string - -pub type Example(a) { - Example(input: String, answer: a) -} - -pub fn inspect(value: a) -> String { - let inspected_value = string.inspect(value) - case - inspected_value - |> string.starts_with("\"") - { - True -> - inspected_value - |> string.drop_left(1) - |> string.drop_right(1) - False -> inspected_value - } -} - -pub fn get_input(day: String) -> Result(String, FileError) { - simplifile.read("src/day" <> day <> "/input.txt") -} - -pub fn get_test_folder(day: String) -> String { - "test/day" <> day -} - -pub type Problem { - First - Second -} - -pub fn get_part() -> Result(Problem, Nil) { - case start_arguments() { - ["1"] -> Ok(First) - ["2"] -> Ok(Second) - _ -> Error(Nil) - } -} - -pub fn start_arguments() -> List(String) { - get_start_arguments() - |> list.map(to_string) -} - -type Charlist - -/// Transform a charlist to a string -@external(erlang, "unicode", "characters_to_binary") -fn to_string(a: Charlist) -> String - -@external(erlang, "init", "get_plain_arguments") -fn get_start_arguments() -> List(Charlist) diff --git a/aoc2023/build/packages/adglent/src/adglent/day.gleam b/aoc2023/build/packages/adglent/src/adglent/day.gleam deleted file mode 100644 index 69e4ccc..0000000 --- a/aoc2023/build/packages/adglent/src/adglent/day.gleam +++ /dev/null @@ -1,126 +0,0 @@ -import adglent -import gleam/string -import gleam/result -import priv/template -import priv/templates/testfile_gleeunit -import priv/templates/testfile_showtime -import priv/templates/solution -import priv/toml -import priv/aoc_client -import priv/errors -import simplifile - -pub fn main() { - let day = - case adglent.start_arguments() { - [day] -> Ok(day) - args -> Error("Expected day - found: " <> string.join(args, ", ")) - } - |> errors.map_error("Error when parsing command args") - |> errors.print_error - |> errors.assert_ok - - let aoc_toml = - simplifile.read("aoc.toml") - |> errors.map_error("Could not read aoc.toml") - |> errors.print_error - |> errors.assert_ok - - let aoc_toml_version = toml.get_int(aoc_toml, ["version"]) - let year = - toml.get_string(aoc_toml, ["year"]) - |> errors.map_error("Could not read \"year\" from aoc.toml") - |> errors.print_error - |> errors.assert_ok - let session = - toml.get_string(aoc_toml, ["session"]) - |> errors.map_error("Could not read \"session\" from aoc.toml") - |> errors.print_error - |> errors.assert_ok - - let showtime = case aoc_toml_version { - Ok(2) -> { - toml.get_bool(aoc_toml, ["showtime"]) - |> errors.map_error("Could not read \"showtime\" from aoc.toml") - |> errors.print_error - |> errors.assert_ok - } - _ -> - toml.get_string(aoc_toml, ["showtime"]) - |> result.map(fn(bool_string) { - case bool_string { - "True" -> True - _ -> False - } - }) - |> errors.map_error("Could not read \"showtime\" from aoc.toml") - |> errors.print_error - |> errors.assert_ok - } - - let test_folder = adglent.get_test_folder(day) - let test_file = test_folder <> "/day" <> day <> "_test.gleam" - - simplifile.create_directory_all(test_folder) - |> errors.map_error("Could not create folder \"" <> test_folder <> "\"") - |> errors.print_error - |> errors.assert_ok - - let testfile_template = case showtime { - True -> testfile_showtime.template - False -> testfile_gleeunit.template - } - - template.render(testfile_template, [#("day", day)]) - |> create_file_if_not_present(test_file) - |> errors.print_result - |> errors.assert_ok - - let solutions_folder = "src/day" <> day - let solution_file = solutions_folder <> "/solve.gleam" - - simplifile.create_directory_all(solutions_folder) - |> errors.map_error("Could not create folder \"" <> solutions_folder <> "\"") - |> errors.print_error - |> errors.assert_ok - - template.render(solution.template, [#("day", day)]) - |> create_file_if_not_present(solution_file) - |> errors.print_result - |> errors.assert_ok - - create_file_if_not_present("input.txt", solutions_folder <> "/.gitignore") - |> errors.print_result - |> errors.assert_ok - - let input = - aoc_client.get_input(year, day, session) - |> errors.map_error("Error when fetching input") - |> errors.print_error - |> errors.assert_ok - - input - |> string.trim - |> create_file_if_not_present(solutions_folder <> "/input.txt") - |> errors.print_result - |> errors.assert_ok -} - -fn create_file_if_not_present( - content: String, - path: String, -) -> Result(String, String) { - case simplifile.is_file(path) { - True -> { - Ok(path <> " already exists - skipped") - } - False -> { - use _ <- result.try( - simplifile.create_file(path) - |> errors.map_messages("Created " <> path, "Could not create " <> path), - ) - simplifile.write(content, to: path) - |> errors.map_messages("Wrote " <> path, "Could not write to " <> path) - } - } -} diff --git a/aoc2023/build/packages/adglent/src/adglent/init.gleam b/aoc2023/build/packages/adglent/src/adglent/init.gleam deleted file mode 100644 index 42eb833..0000000 --- a/aoc2023/build/packages/adglent/src/adglent/init.gleam +++ /dev/null @@ -1,110 +0,0 @@ -import priv/prompt -import priv/template -import priv/templates/test_main -import priv/errors -import priv/toml -import simplifile -import gleam/string -import gleam/list -import gleam/result -import gleam/bool - -const aoc_toml_template = " -version = {{ version }} -year = \"{{ year }}\" -session = \"{{ session }}\" -showtime = {{ showtime }} -" - -pub fn main() { - let year = prompt.value("Year", "2023", False) - let session = prompt.value("Session Cookie", "", False) - let use_showtime = prompt.confirm("Use showtime", False) - - let aoc_toml_file = "aoc.toml" - let overwrite = case simplifile.create_file(aoc_toml_file) { - Ok(_) -> True - Error(simplifile.Eexist) -> - prompt.confirm("aoc.toml exits - overwrite", False) - _ -> panic as "Could not create aoc.toml" - } - case overwrite { - True -> { - template.render( - aoc_toml_template, - [ - #("version", "2"), - #("year", year), - #("session", session), - #( - "showtime", - bool.to_string(use_showtime) - |> string.lowercase, - ), - ], - ) - |> simplifile.write(to: aoc_toml_file) - |> errors.map_messages( - "aoc.toml - written", - "Error when writing aoc.toml", - ) - } - - False -> Ok("aoc.toml - skipped") - } - |> errors.print_result - - let gleam_toml = - simplifile.read("gleam.toml") - |> errors.map_error("Could not read gleam.toml") - |> errors.print_error - |> errors.assert_ok - - let name = - toml.get_string(gleam_toml, ["name"]) - |> errors.map_error("Could not read \"name\" from gleam.toml") - |> errors.print_error - |> errors.assert_ok - - let test_main_file = "test/" <> name <> "_test.gleam" - - case use_showtime { - True -> { - template.render(test_main.template, []) - |> simplifile.write(to: test_main_file) - |> errors.map_messages( - "Wrote " <> test_main_file, - "Could not write to " <> test_main_file, - ) - } - False -> Ok("Using existing (gleeunit) " <> test_main_file) - } - |> errors.print_result - |> errors.assert_ok - - case simplifile.is_file(".gitignore") { - True -> { - use gitignore <- result.try( - simplifile.read(".gitignore") - |> result.map_error(fn(err) { - "Could not read .gitignore: " <> string.inspect(err) - }), - ) - let aoc_toml_ignored = - string.split(gitignore, "\n") - |> list.find(fn(line) { line == "aoc.toml" }) - case aoc_toml_ignored { - Error(_) -> { - simplifile.append("\naoc.toml", to: ".gitignore") - |> errors.map_messages( - ".gitignore written", - "Error when writing .gitignore", - ) - } - Ok(_) -> Ok(".gitignore - skipped (already configured)") - } - } - False -> Error("Could not find .gitignore") - } - |> errors.print_result -} diff --git a/aoc2023/build/packages/adglent/src/adglent@day.erl b/aoc2023/build/packages/adglent/src/adglent@day.erl deleted file mode 100644 index b80368f..0000000 --- a/aoc2023/build/packages/adglent/src/adglent@day.erl +++ /dev/null @@ -1,278 +0,0 @@ --module(adglent@day). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec create_file_if_not_present(binary(), binary()) -> {ok, binary()} | - {error, binary()}. -create_file_if_not_present(Content, Path) -> - case simplifile:is_file(Path) of - true -> - {ok, <>}; - - false -> - gleam@result:'try'( - begin - _pipe = simplifile:create_file(Path), - priv@errors:map_messages( - _pipe, - <<"Created "/utf8, Path/binary>>, - <<"Could not create "/utf8, Path/binary>> - ) - end, - fun(_) -> _pipe@1 = simplifile:write(Path, Content), - priv@errors:map_messages( - _pipe@1, - <<"Wrote "/utf8, Path/binary>>, - <<"Could not write to "/utf8, Path/binary>> - ) end - ) - end. - --spec main() -> binary(). -main() -> - Day@1 = begin - _pipe = case adglent:start_arguments() of - [Day] -> - {ok, Day}; - - Args -> - {error, - <<"Expected day - found: "/utf8, - (gleam@string:join(Args, <<", "/utf8>>))/binary>>} - end, - _pipe@1 = priv@errors:map_error( - _pipe, - <<"Error when parsing command args"/utf8>> - ), - _pipe@2 = priv@errors:print_error(_pipe@1), - priv@errors:assert_ok(_pipe@2) - end, - Aoc_toml = begin - _pipe@3 = simplifile:read(<<"aoc.toml"/utf8>>), - _pipe@4 = priv@errors:map_error( - _pipe@3, - <<"Could not read aoc.toml"/utf8>> - ), - _pipe@5 = priv@errors:print_error(_pipe@4), - priv@errors:assert_ok(_pipe@5) - end, - Aoc_toml_version = priv@toml:get_int(Aoc_toml, [<<"version"/utf8>>]), - Year = begin - _pipe@6 = priv@toml:get_string(Aoc_toml, [<<"year"/utf8>>]), - _pipe@7 = priv@errors:map_error( - _pipe@6, - <<"Could not read \"year\" from aoc.toml"/utf8>> - ), - _pipe@8 = priv@errors:print_error(_pipe@7), - priv@errors:assert_ok(_pipe@8) - end, - Session = begin - _pipe@9 = priv@toml:get_string(Aoc_toml, [<<"session"/utf8>>]), - _pipe@10 = priv@errors:map_error( - _pipe@9, - <<"Could not read \"session\" from aoc.toml"/utf8>> - ), - _pipe@11 = priv@errors:print_error(_pipe@10), - priv@errors:assert_ok(_pipe@11) - end, - Showtime = case Aoc_toml_version of - {ok, 2} -> - _pipe@12 = priv@toml:get_bool(Aoc_toml, [<<"showtime"/utf8>>]), - _pipe@13 = priv@errors:map_error( - _pipe@12, - <<"Could not read \"showtime\" from aoc.toml"/utf8>> - ), - _pipe@14 = priv@errors:print_error(_pipe@13), - priv@errors:assert_ok(_pipe@14); - - _ -> - _pipe@15 = priv@toml:get_string(Aoc_toml, [<<"showtime"/utf8>>]), - _pipe@16 = gleam@result:map( - _pipe@15, - fun(Bool_string) -> case Bool_string of - <<"True"/utf8>> -> - true; - - _ -> - false - end end - ), - _pipe@17 = priv@errors:map_error( - _pipe@16, - <<"Could not read \"showtime\" from aoc.toml"/utf8>> - ), - _pipe@18 = priv@errors:print_error(_pipe@17), - priv@errors:assert_ok(_pipe@18) - end, - Test_folder = adglent:get_test_folder(Day@1), - Test_file = <<<<<>/binary, Day@1/binary>>/binary, - "_test.gleam"/utf8>>, - _pipe@19 = simplifile:create_directory_all(Test_folder), - _pipe@20 = priv@errors:map_error( - _pipe@19, - <<<<"Could not create folder \""/utf8, Test_folder/binary>>/binary, - "\""/utf8>> - ), - _pipe@21 = priv@errors:print_error(_pipe@20), - priv@errors:assert_ok(_pipe@21), - Testfile_template = case Showtime of - true -> - <<" -import gleam/list -import showtime/tests/should -import adglent.{type Example, Example} -import day{{ day }}/solve - -type Problem1AnswerType = - String - -type Problem2AnswerType = - String - -/// Add examples for part 1 here: -/// ```gleam -///const part1_examples: List(Example(Problem1AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part1_examples: List(Example(Problem1AnswerType)) = [] - -/// Add examples for part 2 here: -/// ```gleam -///const part2_examples: List(Example(Problem2AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part2_examples: List(Example(Problem2AnswerType)) = [] - -pub fn part1_test() { - part1_examples - |> should.not_equal([]) - use example <- list.map(part1_examples) - solve.part1(example.input) - |> should.equal(example.answer) -} - -pub fn part2_test() { - part2_examples - |> should.not_equal([]) - use example <- list.map(part2_examples) - solve.part2(example.input) - |> should.equal(example.answer) -} - -"/utf8>>; - - false -> - <<" -import gleam/list -import gleeunit/should -import adglent.{type Example, Example} -import day{{ day }}/solve - -type Problem1AnswerType = - String - -type Problem2AnswerType = - String - -/// Add examples for part 1 here: -/// ```gleam -///const part1_examples: List(Example(Problem1AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part1_examples: List(Example(Problem1AnswerType)) = [] - -/// Add examples for part 2 here: -/// ```gleam -///const part2_examples: List(Example(Problem2AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part2_examples: List(Example(Problem2AnswerType)) = [] - -pub fn part1_test() { - part1_examples - |> should.not_equal([]) - use example <- list.map(part1_examples) - solve.part1(example.input) - |> should.equal(example.answer) -} - -pub fn part2_test() { - part2_examples - |> should.not_equal([]) - use example <- list.map(part2_examples) - solve.part2(example.input) - |> should.equal(example.answer) -} - -"/utf8>> - end, - _pipe@22 = priv@template:render( - Testfile_template, - [{<<"day"/utf8>>, Day@1}] - ), - _pipe@23 = create_file_if_not_present(_pipe@22, Test_file), - _pipe@24 = priv@errors:print_result(_pipe@23), - priv@errors:assert_ok(_pipe@24), - Solutions_folder = <<"src/day"/utf8, Day@1/binary>>, - Solution_file = <>, - _pipe@25 = simplifile:create_directory_all(Solutions_folder), - _pipe@26 = priv@errors:map_error( - _pipe@25, - <<<<"Could not create folder \""/utf8, Solutions_folder/binary>>/binary, - "\""/utf8>> - ), - _pipe@27 = priv@errors:print_error(_pipe@26), - priv@errors:assert_ok(_pipe@27), - _pipe@28 = priv@template:render( - <<" -import adglent.{First, Second} -import gleam/io - -pub fn part1(input: String) { - todo as \"Implement solution to part 1\" -} - -pub fn part2(input: String) { - todo as \"Implement solution to part 2\" -} - -pub fn main() { - let assert Ok(part) = adglent.get_part() - let assert Ok(input) = adglent.get_input(\"{{ day }}\") - case part { - First -> - part1(input) - |> adglent.inspect - |> io.println - Second -> - part2(input) - |> adglent.inspect - |> io.println - } -} -"/utf8>>, - [{<<"day"/utf8>>, Day@1}] - ), - _pipe@29 = create_file_if_not_present(_pipe@28, Solution_file), - _pipe@30 = priv@errors:print_result(_pipe@29), - priv@errors:assert_ok(_pipe@30), - _pipe@31 = create_file_if_not_present( - <<"input.txt"/utf8>>, - <> - ), - _pipe@32 = priv@errors:print_result(_pipe@31), - priv@errors:assert_ok(_pipe@32), - Input = begin - _pipe@33 = priv@aoc_client:get_input(Year, Day@1, Session), - _pipe@34 = priv@errors:map_error( - _pipe@33, - <<"Error when fetching input"/utf8>> - ), - _pipe@35 = priv@errors:print_error(_pipe@34), - priv@errors:assert_ok(_pipe@35) - end, - _pipe@36 = Input, - _pipe@37 = gleam@string:trim(_pipe@36), - _pipe@38 = create_file_if_not_present( - _pipe@37, - <> - ), - _pipe@39 = priv@errors:print_result(_pipe@38), - priv@errors:assert_ok(_pipe@39). diff --git a/aoc2023/build/packages/adglent/src/adglent@init.erl b/aoc2023/build/packages/adglent/src/adglent@init.erl deleted file mode 100644 index fb28101..0000000 --- a/aoc2023/build/packages/adglent/src/adglent@init.erl +++ /dev/null @@ -1,142 +0,0 @@ --module(adglent@init). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec main() -> {ok, binary()} | {error, binary()}. -main() -> - Year = priv@prompt:value(<<"Year"/utf8>>, <<"2023"/utf8>>, false), - Session = priv@prompt:value(<<"Session Cookie"/utf8>>, <<""/utf8>>, false), - Use_showtime = priv@prompt:confirm(<<"Use showtime"/utf8>>, false), - Aoc_toml_file = <<"aoc.toml"/utf8>>, - Overwrite = case simplifile:create_file(Aoc_toml_file) of - {ok, _} -> - true; - - {error, eexist} -> - priv@prompt:confirm(<<"aoc.toml exits - overwrite"/utf8>>, false); - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"Could not create aoc.toml"/utf8>>, - module => <<"adglent/init"/utf8>>, - function => <<"main"/utf8>>, - line => 29}) - end, - _pipe@3 = case Overwrite of - true -> - _pipe@1 = priv@template:render( - <<" -version = {{ version }} -year = \"{{ year }}\" -session = \"{{ session }}\" -showtime = {{ showtime }} -"/utf8>>, - [{<<"version"/utf8>>, <<"2"/utf8>>}, - {<<"year"/utf8>>, Year}, - {<<"session"/utf8>>, Session}, - {<<"showtime"/utf8>>, - begin - _pipe = gleam@bool:to_string(Use_showtime), - gleam@string:lowercase(_pipe) - end}] - ), - _pipe@2 = simplifile:write(Aoc_toml_file, _pipe@1), - priv@errors:map_messages( - _pipe@2, - <<"aoc.toml - written"/utf8>>, - <<"Error when writing aoc.toml"/utf8>> - ); - - false -> - {ok, <<"aoc.toml - skipped"/utf8>>} - end, - priv@errors:print_result(_pipe@3), - Gleam_toml = begin - _pipe@4 = simplifile:read(<<"gleam.toml"/utf8>>), - _pipe@5 = priv@errors:map_error( - _pipe@4, - <<"Could not read gleam.toml"/utf8>> - ), - _pipe@6 = priv@errors:print_error(_pipe@5), - priv@errors:assert_ok(_pipe@6) - end, - Name = begin - _pipe@7 = priv@toml:get_string(Gleam_toml, [<<"name"/utf8>>]), - _pipe@8 = priv@errors:map_error( - _pipe@7, - <<"Could not read \"name\" from gleam.toml"/utf8>> - ), - _pipe@9 = priv@errors:print_error(_pipe@8), - priv@errors:assert_ok(_pipe@9) - end, - Test_main_file = <<<<"test/"/utf8, Name/binary>>/binary, - "_test.gleam"/utf8>>, - _pipe@12 = case Use_showtime of - true -> - _pipe@10 = priv@template:render( - <<" -import showtime - -pub fn main() { - showtime.main() -} -"/utf8>>, - [] - ), - _pipe@11 = simplifile:write(Test_main_file, _pipe@10), - priv@errors:map_messages( - _pipe@11, - <<"Wrote "/utf8, Test_main_file/binary>>, - <<"Could not write to "/utf8, Test_main_file/binary>> - ); - - false -> - {ok, <<"Using existing (gleeunit) "/utf8, Test_main_file/binary>>} - end, - _pipe@13 = priv@errors:print_result(_pipe@12), - priv@errors:assert_ok(_pipe@13), - _pipe@17 = case simplifile:is_file(<<".gitignore"/utf8>>) of - true -> - gleam@result:'try'( - begin - _pipe@14 = simplifile:read(<<".gitignore"/utf8>>), - gleam@result:map_error( - _pipe@14, - fun(Err) -> - <<"Could not read .gitignore: "/utf8, - (gleam@string:inspect(Err))/binary>> - end - ) - end, - fun(Gitignore) -> - Aoc_toml_ignored = begin - _pipe@15 = gleam@string:split(Gitignore, <<"\n"/utf8>>), - gleam@list:find( - _pipe@15, - fun(Line) -> Line =:= <<"aoc.toml"/utf8>> end - ) - end, - case Aoc_toml_ignored of - {error, _} -> - _pipe@16 = simplifile:append( - <<".gitignore"/utf8>>, - <<"\naoc.toml"/utf8>> - ), - priv@errors:map_messages( - _pipe@16, - <<".gitignore written"/utf8>>, - <<"Error when writing .gitignore"/utf8>> - ); - - {ok, _} -> - {ok, - <<".gitignore - skipped (already configured)"/utf8>>} - end - end - ); - - false -> - {error, <<"Could not find .gitignore"/utf8>>} - end, - priv@errors:print_result(_pipe@17). diff --git a/aoc2023/build/packages/adglent/src/adglent_ffi.erl b/aoc2023/build/packages/adglent/src/adglent_ffi.erl deleted file mode 100644 index a6a92e6..0000000 --- a/aoc2023/build/packages/adglent/src/adglent_ffi.erl +++ /dev/null @@ -1,12 +0,0 @@ --module(adglent_ffi). - --export([get_line/1]). - --spec get_line(io:prompt()) -> {ok, unicode:unicode_binary()} | {error, eof | no_data}. -get_line(Prompt) -> - case io:get_line(Prompt) of - eof -> {error, eof}; - {error, _} -> {error, no_data}; - Data when is_binary(Data) -> {ok, Data}; - Data when is_list(Data) -> {ok, unicode:characters_to_binary(Data)} - end. diff --git a/aoc2023/build/packages/adglent/src/priv/aoc_client.gleam b/aoc2023/build/packages/adglent/src/priv/aoc_client.gleam deleted file mode 100644 index e18bafa..0000000 --- a/aoc2023/build/packages/adglent/src/priv/aoc_client.gleam +++ /dev/null @@ -1,37 +0,0 @@ -import gleam/result.{try} -import gleam/httpc -import gleam/http/request -import gleam/int -import gleam/string - -pub fn get_input( - year: String, - day: String, - session: String, -) -> Result(String, String) { - let url = "https://adventofcode.com/" <> year <> "/day/" <> day <> "/input" - use request <- try( - request.to(url) - |> result.map_error(fn(error) { - "Could not create request for \"" <> url <> "\": " <> string.inspect( - error, - ) - }), - ) - - // Send the HTTP request to the server - use response <- try( - request - |> request.prepend_header("Accept", "application/json") - |> request.prepend_header("Cookie", "session=" <> session <> ";") - |> httpc.send - |> result.map_error(fn(error) { - "Error when requesting \"" <> url <> "\": " <> string.inspect(error) - }), - ) - - case response.status { - status if status >= 200 && status < 300 -> Ok(response.body) - status -> Error(int.to_string(status) <> " - " <> response.body) - } -} diff --git a/aoc2023/build/packages/adglent/src/priv/errors.gleam b/aoc2023/build/packages/adglent/src/priv/errors.gleam deleted file mode 100644 index 14c35ca..0000000 --- a/aoc2023/build/packages/adglent/src/priv/errors.gleam +++ /dev/null @@ -1,54 +0,0 @@ -import gleam/result -import gleam/string -import gleam/io - -pub fn map_messages( - result: Result(a, b), - success_message: String, - error_message: String, -) -> Result(String, String) { - result - |> result.map_error(fn(error) { - "Error - " <> error_message <> ": " <> string.inspect(error) - }) - |> result.replace(success_message) -} - -pub fn map_error( - result: Result(a, b), - error_message: String, -) -> Result(a, String) { - result - |> result.map_error(fn(error) { - error_message <> ": " <> string.inspect(error) - }) -} - -pub fn print_result(result: Result(String, String)) { - result - |> result.unwrap_both - |> io.println - result -} - -pub fn print_error(result: Result(a, String)) { - result - |> result.map_error(fn(err) { - io.println(err) - err - }) -} - -pub fn assert_ok(result: Result(a, String)) { - let assert Ok(value) = - result - |> result.map_error(fn(err) { - halt(1) - err - }) - value -} - -@target(erlang) -@external(erlang, "erlang", "halt") -fn halt(a: Int) -> Nil diff --git a/aoc2023/build/packages/adglent/src/priv/prompt.gleam b/aoc2023/build/packages/adglent/src/priv/prompt.gleam deleted file mode 100644 index 6cee35a..0000000 --- a/aoc2023/build/packages/adglent/src/priv/prompt.gleam +++ /dev/null @@ -1,38 +0,0 @@ -import gleam/result -import gleam/string - -pub fn confirm(message: String, auto_accept: Bool) -> Bool { - auto_accept || case - get_line(message <> "? (Y/N): ") - |> result.unwrap("n") - |> string.trim() - { - "Y" | "y" -> True - _ -> False - } -} - -pub fn value(message: String, default: String, auto_accept: Bool) -> String { - case get_value_of_default(message, default, auto_accept) { - "" -> default - value -> value - } -} - -fn get_value_of_default(message: String, default: String, auto_accept: Bool) { - case auto_accept { - True -> default - False -> - get_line(message <> "? (" <> default <> "): ") - |> result.unwrap("") - |> string.trim() - } -} - -pub type GetLineError { - Eof - NoData -} - -@external(erlang, "adglent_ffi", "get_line") -pub fn get_line(prompt prompt: String) -> Result(String, GetLineError) diff --git a/aoc2023/build/packages/adglent/src/priv/template.gleam b/aoc2023/build/packages/adglent/src/priv/template.gleam deleted file mode 100644 index e946888..0000000 --- a/aoc2023/build/packages/adglent/src/priv/template.gleam +++ /dev/null @@ -1,18 +0,0 @@ -import gleam/list -import gleam/string - -pub fn render( - template: String, - substitutions: List(#(String, String)), -) -> String { - substitutions - |> list.fold( - template, - fn(template, substitution) { - let #(name, value) = substitution - template - |> string.replace("{{ " <> name <> " }}", value) - }, - ) - |> string.trim <> "\n" -} diff --git a/aoc2023/build/packages/adglent/src/priv/templates/solution.gleam b/aoc2023/build/packages/adglent/src/priv/templates/solution.gleam deleted file mode 100644 index 96085c3..0000000 --- a/aoc2023/build/packages/adglent/src/priv/templates/solution.gleam +++ /dev/null @@ -1,27 +0,0 @@ -pub const template = " -import adglent.{First, Second} -import gleam/io - -pub fn part1(input: String) { - todo as \"Implement solution to part 1\" -} - -pub fn part2(input: String) { - todo as \"Implement solution to part 2\" -} - -pub fn main() { - let assert Ok(part) = adglent.get_part() - let assert Ok(input) = adglent.get_input(\"{{ day }}\") - case part { - First -> - part1(input) - |> adglent.inspect - |> io.println - Second -> - part2(input) - |> adglent.inspect - |> io.println - } -} -" diff --git a/aoc2023/build/packages/adglent/src/priv/templates/test_main.gleam b/aoc2023/build/packages/adglent/src/priv/templates/test_main.gleam deleted file mode 100644 index 27548d3..0000000 --- a/aoc2023/build/packages/adglent/src/priv/templates/test_main.gleam +++ /dev/null @@ -1,7 +0,0 @@ -pub const template = " -import showtime - -pub fn main() { - showtime.main() -} -" diff --git a/aoc2023/build/packages/adglent/src/priv/templates/testfile_gleeunit.gleam b/aoc2023/build/packages/adglent/src/priv/templates/testfile_gleeunit.gleam deleted file mode 100644 index a1d56f6..0000000 --- a/aoc2023/build/packages/adglent/src/priv/templates/testfile_gleeunit.gleam +++ /dev/null @@ -1,41 +0,0 @@ -pub const template = " -import gleam/list -import gleeunit/should -import adglent.{type Example, Example} -import day{{ day }}/solve - -type Problem1AnswerType = - String - -type Problem2AnswerType = - String - -/// Add examples for part 1 here: -/// ```gleam -///const part1_examples: List(Example(Problem1AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part1_examples: List(Example(Problem1AnswerType)) = [] - -/// Add examples for part 2 here: -/// ```gleam -///const part2_examples: List(Example(Problem2AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part2_examples: List(Example(Problem2AnswerType)) = [] - -pub fn part1_test() { - part1_examples - |> should.not_equal([]) - use example <- list.map(part1_examples) - solve.part1(example.input) - |> should.equal(example.answer) -} - -pub fn part2_test() { - part2_examples - |> should.not_equal([]) - use example <- list.map(part2_examples) - solve.part2(example.input) - |> should.equal(example.answer) -} - -" diff --git a/aoc2023/build/packages/adglent/src/priv/templates/testfile_showtime.gleam b/aoc2023/build/packages/adglent/src/priv/templates/testfile_showtime.gleam deleted file mode 100644 index 699feb2..0000000 --- a/aoc2023/build/packages/adglent/src/priv/templates/testfile_showtime.gleam +++ /dev/null @@ -1,41 +0,0 @@ -pub const template = " -import gleam/list -import showtime/tests/should -import adglent.{type Example, Example} -import day{{ day }}/solve - -type Problem1AnswerType = - String - -type Problem2AnswerType = - String - -/// Add examples for part 1 here: -/// ```gleam -///const part1_examples: List(Example(Problem1AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part1_examples: List(Example(Problem1AnswerType)) = [] - -/// Add examples for part 2 here: -/// ```gleam -///const part2_examples: List(Example(Problem2AnswerType)) = [Example(\"some input\", \"\")] -/// ``` -const part2_examples: List(Example(Problem2AnswerType)) = [] - -pub fn part1_test() { - part1_examples - |> should.not_equal([]) - use example <- list.map(part1_examples) - solve.part1(example.input) - |> should.equal(example.answer) -} - -pub fn part2_test() { - part2_examples - |> should.not_equal([]) - use example <- list.map(part2_examples) - solve.part2(example.input) - |> should.equal(example.answer) -} - -" diff --git a/aoc2023/build/packages/adglent/src/priv/toml.gleam b/aoc2023/build/packages/adglent/src/priv/toml.gleam deleted file mode 100644 index 7042833..0000000 --- a/aoc2023/build/packages/adglent/src/priv/toml.gleam +++ /dev/null @@ -1,52 +0,0 @@ -import tom -import gleam/result - -pub type TomError { - TomParseError(error: tom.ParseError) - TomGetError(error: tom.GetError) -} - -pub fn get_string( - toml_content: String, - key_path: List(String), -) -> Result(String, TomError) { - use toml <- result.try( - tom.parse(toml_content <> "\n") - |> result.map_error(TomParseError), - ) - use value <- result.try( - tom.get_string(toml, key_path) - |> result.map_error(TomGetError), - ) - Ok(value) -} - -pub fn get_bool( - toml_content: String, - key_path: List(String), -) -> Result(Bool, TomError) { - use toml <- result.try( - tom.parse(toml_content <> "\n") - |> result.map_error(TomParseError), - ) - use value <- result.try( - tom.get_bool(toml, key_path) - |> result.map_error(TomGetError), - ) - Ok(value) -} - -pub fn get_int( - toml_content: String, - key_path: List(String), -) -> Result(Int, TomError) { - use toml <- result.try( - tom.parse(toml_content <> "\n") - |> result.map_error(TomParseError), - ) - use value <- result.try( - tom.get_int(toml, key_path) - |> result.map_error(TomGetError), - ) - Ok(value) -} diff --git a/aoc2023/build/packages/adglent/src/priv@aoc_client.erl b/aoc2023/build/packages/adglent/src/priv@aoc_client.erl deleted file mode 100644 index 1acb9b5..0000000 --- a/aoc2023/build/packages/adglent/src/priv@aoc_client.erl +++ /dev/null @@ -1,61 +0,0 @@ --module(priv@aoc_client). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get_input/3]). - --spec get_input(binary(), binary(), binary()) -> {ok, binary()} | - {error, binary()}. -get_input(Year, Day, Session) -> - Url = <<<<<<<<"https://adventofcode.com/"/utf8, Year/binary>>/binary, - "/day/"/utf8>>/binary, - Day/binary>>/binary, - "/input"/utf8>>, - gleam@result:'try'( - begin - _pipe = gleam@http@request:to(Url), - gleam@result:map_error( - _pipe, - fun(Error) -> - <<<<<<"Could not create request for \""/utf8, Url/binary>>/binary, - "\": "/utf8>>/binary, - (gleam@string:inspect(Error))/binary>> - end - ) - end, - fun(Request) -> - gleam@result:'try'( - begin - _pipe@1 = Request, - _pipe@2 = gleam@http@request:prepend_header( - _pipe@1, - <<"Accept"/utf8>>, - <<"application/json"/utf8>> - ), - _pipe@3 = gleam@http@request:prepend_header( - _pipe@2, - <<"Cookie"/utf8>>, - <<<<"session="/utf8, Session/binary>>/binary, ";"/utf8>> - ), - _pipe@4 = gleam@httpc:send(_pipe@3), - gleam@result:map_error( - _pipe@4, - fun(Error@1) -> - <<<<<<"Error when requesting \""/utf8, Url/binary>>/binary, - "\": "/utf8>>/binary, - (gleam@string:inspect(Error@1))/binary>> - end - ) - end, - fun(Response) -> case erlang:element(2, Response) of - Status when (Status >= 200) andalso (Status < 300) -> - {ok, erlang:element(4, Response)}; - - Status@1 -> - {error, - <<<<(gleam@int:to_string(Status@1))/binary, - " - "/utf8>>/binary, - (erlang:element(4, Response))/binary>>} - end end - ) - end - ). diff --git a/aoc2023/build/packages/adglent/src/priv@errors.erl b/aoc2023/build/packages/adglent/src/priv@errors.erl deleted file mode 100644 index 978c675..0000000 --- a/aoc2023/build/packages/adglent/src/priv@errors.erl +++ /dev/null @@ -1,74 +0,0 @@ --module(priv@errors). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([map_messages/3, map_error/2, print_result/1, print_error/1, assert_ok/1]). - --spec map_messages({ok, any()} | {error, any()}, binary(), binary()) -> {ok, - binary()} | - {error, binary()}. -map_messages(Result, Success_message, Error_message) -> - _pipe = Result, - _pipe@1 = gleam@result:map_error( - _pipe, - fun(Error) -> - <<<<<<"Error - "/utf8, Error_message/binary>>/binary, ": "/utf8>>/binary, - (gleam@string:inspect(Error))/binary>> - end - ), - gleam@result:replace(_pipe@1, Success_message). - --spec map_error({ok, NIB} | {error, any()}, binary()) -> {ok, NIB} | - {error, binary()}. -map_error(Result, Error_message) -> - _pipe = Result, - gleam@result:map_error( - _pipe, - fun(Error) -> - <<<>/binary, - (gleam@string:inspect(Error))/binary>> - end - ). - --spec print_result({ok, binary()} | {error, binary()}) -> {ok, binary()} | - {error, binary()}. -print_result(Result) -> - _pipe = Result, - _pipe@1 = gleam@result:unwrap_both(_pipe), - gleam@io:println(_pipe@1), - Result. - --spec print_error({ok, NIK} | {error, binary()}) -> {ok, NIK} | - {error, binary()}. -print_error(Result) -> - _pipe = Result, - gleam@result:map_error( - _pipe, - fun(Err) -> - gleam@io:println(Err), - Err - end - ). - --spec assert_ok({ok, NIO} | {error, binary()}) -> NIO. -assert_ok(Result) -> - _assert_subject = begin - _pipe = Result, - gleam@result:map_error( - _pipe, - fun(Err) -> - erlang:halt(1), - Err - end - ) - end, - {ok, Value} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"priv/errors"/utf8>>, - function => <<"assert_ok"/utf8>>, - line => 43}) - end, - Value. diff --git a/aoc2023/build/packages/adglent/src/priv@prompt.erl b/aoc2023/build/packages/adglent/src/priv@prompt.erl deleted file mode 100644 index 0277f14..0000000 --- a/aoc2023/build/packages/adglent/src/priv@prompt.erl +++ /dev/null @@ -1,53 +0,0 @@ --module(priv@prompt). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get_line/1, confirm/2, value/3]). --export_type([get_line_error/0]). - --type get_line_error() :: eof | no_data. - --spec get_line(binary()) -> {ok, binary()} | {error, get_line_error()}. -get_line(Prompt) -> - adglent_ffi:get_line(Prompt). - --spec confirm(binary(), boolean()) -> boolean(). -confirm(Message, Auto_accept) -> - Auto_accept orelse case begin - _pipe = adglent_ffi:get_line(<>), - _pipe@1 = gleam@result:unwrap(_pipe, <<"n"/utf8>>), - gleam@string:trim(_pipe@1) - end of - <<"Y"/utf8>> -> - true; - - <<"y"/utf8>> -> - true; - - _ -> - false - end. - --spec get_value_of_default(binary(), binary(), boolean()) -> binary(). -get_value_of_default(Message, Default, Auto_accept) -> - case Auto_accept of - true -> - Default; - - false -> - _pipe = adglent_ffi:get_line( - <<<<<>/binary, Default/binary>>/binary, - "): "/utf8>> - ), - _pipe@1 = gleam@result:unwrap(_pipe, <<""/utf8>>), - gleam@string:trim(_pipe@1) - end. - --spec value(binary(), binary(), boolean()) -> binary(). -value(Message, Default, Auto_accept) -> - case get_value_of_default(Message, Default, Auto_accept) of - <<""/utf8>> -> - Default; - - Value -> - Value - end. diff --git a/aoc2023/build/packages/adglent/src/priv@template.erl b/aoc2023/build/packages/adglent/src/priv@template.erl deleted file mode 100644 index 6a5d0bf..0000000 --- a/aoc2023/build/packages/adglent/src/priv@template.erl +++ /dev/null @@ -1,25 +0,0 @@ --module(priv@template). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([render/2]). - --spec render(binary(), list({binary(), binary()})) -> binary(). -render(Template, Substitutions) -> - <<(begin - _pipe = Substitutions, - _pipe@2 = gleam@list:fold( - _pipe, - Template, - fun(Template@1, Substitution) -> - {Name, Value} = Substitution, - _pipe@1 = Template@1, - gleam@string:replace( - _pipe@1, - <<<<"{{ "/utf8, Name/binary>>/binary, " }}"/utf8>>, - Value - ) - end - ), - gleam@string:trim(_pipe@2) - end)/binary, - "\n"/utf8>>. diff --git a/aoc2023/build/packages/adglent/src/priv@templates@solution.erl b/aoc2023/build/packages/adglent/src/priv@templates@solution.erl deleted file mode 100644 index 7e36387..0000000 --- a/aoc2023/build/packages/adglent/src/priv@templates@solution.erl +++ /dev/null @@ -1 +0,0 @@ --module(priv@templates@solution). diff --git a/aoc2023/build/packages/adglent/src/priv@templates@test_main.erl b/aoc2023/build/packages/adglent/src/priv@templates@test_main.erl deleted file mode 100644 index ca6b127..0000000 --- a/aoc2023/build/packages/adglent/src/priv@templates@test_main.erl +++ /dev/null @@ -1 +0,0 @@ --module(priv@templates@test_main). diff --git a/aoc2023/build/packages/adglent/src/priv@templates@testfile_gleeunit.erl b/aoc2023/build/packages/adglent/src/priv@templates@testfile_gleeunit.erl deleted file mode 100644 index 2f5a41e..0000000 --- a/aoc2023/build/packages/adglent/src/priv@templates@testfile_gleeunit.erl +++ /dev/null @@ -1 +0,0 @@ --module(priv@templates@testfile_gleeunit). diff --git a/aoc2023/build/packages/adglent/src/priv@templates@testfile_showtime.erl b/aoc2023/build/packages/adglent/src/priv@templates@testfile_showtime.erl deleted file mode 100644 index bbbc8b2..0000000 --- a/aoc2023/build/packages/adglent/src/priv@templates@testfile_showtime.erl +++ /dev/null @@ -1 +0,0 @@ --module(priv@templates@testfile_showtime). diff --git a/aoc2023/build/packages/adglent/src/priv@toml.erl b/aoc2023/build/packages/adglent/src/priv@toml.erl deleted file mode 100644 index 6c41fbf..0000000 --- a/aoc2023/build/packages/adglent/src/priv@toml.erl +++ /dev/null @@ -1,83 +0,0 @@ --module(priv@toml). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get_string/2, get_bool/2, get_int/2]). --export_type([tom_error/0]). - --type tom_error() :: {tom_parse_error, tom:parse_error()} | - {tom_get_error, tom:get_error()}. - --spec get_string(binary(), list(binary())) -> {ok, binary()} | - {error, tom_error()}. -get_string(Toml_content, Key_path) -> - gleam@result:'try'( - begin - _pipe = tom:parse(<>), - gleam@result:map_error( - _pipe, - fun(Field@0) -> {tom_parse_error, Field@0} end - ) - end, - fun(Toml) -> - gleam@result:'try'( - begin - _pipe@1 = tom:get_string(Toml, Key_path), - gleam@result:map_error( - _pipe@1, - fun(Field@0) -> {tom_get_error, Field@0} end - ) - end, - fun(Value) -> {ok, Value} end - ) - end - ). - --spec get_bool(binary(), list(binary())) -> {ok, boolean()} | - {error, tom_error()}. -get_bool(Toml_content, Key_path) -> - gleam@result:'try'( - begin - _pipe = tom:parse(<>), - gleam@result:map_error( - _pipe, - fun(Field@0) -> {tom_parse_error, Field@0} end - ) - end, - fun(Toml) -> - gleam@result:'try'( - begin - _pipe@1 = tom:get_bool(Toml, Key_path), - gleam@result:map_error( - _pipe@1, - fun(Field@0) -> {tom_get_error, Field@0} end - ) - end, - fun(Value) -> {ok, Value} end - ) - end - ). - --spec get_int(binary(), list(binary())) -> {ok, integer()} | - {error, tom_error()}. -get_int(Toml_content, Key_path) -> - gleam@result:'try'( - begin - _pipe = tom:parse(<>), - gleam@result:map_error( - _pipe, - fun(Field@0) -> {tom_parse_error, Field@0} end - ) - end, - fun(Toml) -> - gleam@result:'try'( - begin - _pipe@1 = tom:get_int(Toml, Key_path), - gleam@result:map_error( - _pipe@1, - fun(Field@0) -> {tom_get_error, Field@0} end - ) - end, - fun(Value) -> {ok, Value} end - ) - end - ). diff --git a/aoc2023/build/packages/adglent/src/showtime.erl b/aoc2023/build/packages/adglent/src/showtime.erl deleted file mode 100644 index 721bad4..0000000 --- a/aoc2023/build/packages/adglent/src/showtime.erl +++ /dev/null @@ -1,155 +0,0 @@ --module(showtime). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec mk_runner( - fun((gleam@option:option(list(binary())), list(binary()), showtime@internal@common@cli:capture()) -> OBY), - glint:command_input() -) -> OBY. -mk_runner(Func, Command) -> - _assert_subject = begin - _pipe = erlang:element(3, Command), - _pipe@1 = glint@flag:get_strings(_pipe, <<"modules"/utf8>>), - gleam@result:map(_pipe@1, fun(Modules) -> case Modules of - [] -> - none; - - Modules@1 -> - {some, Modules@1} - end end) - end, - {ok, Module_list} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime"/utf8>>, - function => <<"mk_runner"/utf8>>, - line => 91}) - end, - _assert_subject@1 = begin - _pipe@2 = erlang:element(3, Command), - glint@flag:get_strings(_pipe@2, <<"ignore"/utf8>>) - end, - {ok, Ignore_tags} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"showtime"/utf8>>, - function => <<"mk_runner"/utf8>>, - line => 100}) - end, - _assert_subject@2 = begin - _pipe@3 = erlang:element(3, Command), - _pipe@4 = glint@flag:get_string(_pipe@3, <<"capture"/utf8>>), - _pipe@5 = gleam@result:map( - _pipe@4, - fun(Arg) -> gleam@string:lowercase(Arg) end - ), - gleam@result:map(_pipe@5, fun(Arg@1) -> case Arg@1 of - <<"no"/utf8>> -> - no; - - <<"yes"/utf8>> -> - yes; - - <<"mixed"/utf8>> -> - mixed - end end) - end, - {ok, Capture_output} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"showtime"/utf8>>, - function => <<"mk_runner"/utf8>>, - line => 104}) - end, - Func(Module_list, Ignore_tags, Capture_output). - --spec start_with_args( - list(binary()), - fun((gleam@option:option(list(binary())), list(binary()), showtime@internal@common@cli:capture()) -> any()) -) -> nil. -start_with_args(Args, Func) -> - Modules_flag = begin - _pipe = glint@flag:string_list(), - _pipe@1 = glint@flag:default(_pipe, []), - glint@flag:description( - _pipe@1, - <<"Run only tests in the modules in this list"/utf8>> - ) - end, - Ignore_flag = begin - _pipe@2 = glint@flag:string_list(), - _pipe@3 = glint@flag:default(_pipe@2, []), - glint@flag:description( - _pipe@3, - <<"Ignore tests that are have tags matching a tag in this list"/utf8>> - ) - end, - Capture_flag = begin - _pipe@4 = glint@flag:string(), - _pipe@5 = glint@flag:default(_pipe@4, <<"no"/utf8>>), - _pipe@6 = glint@flag:constraint( - _pipe@5, - glint@flag@constraint:one_of( - [<<"yes"/utf8>>, <<"no"/utf8>>, <<"mixed"/utf8>>] - ) - ), - glint@flag:description( - _pipe@6, - <<"Capture output: no (default) - output when tests are run, yes - output is captured and shown in report, mixed - output when run and in report"/utf8>> - ) - end, - _pipe@7 = glint:new(), - _pipe@12 = glint:add( - _pipe@7, - [], - begin - _pipe@8 = glint:command( - fun(_capture) -> mk_runner(Func, _capture) end - ), - _pipe@9 = glint:flag(_pipe@8, <<"modules"/utf8>>, Modules_flag), - _pipe@10 = glint:flag(_pipe@9, <<"ignore"/utf8>>, Ignore_flag), - _pipe@11 = glint:flag(_pipe@10, <<"capture"/utf8>>, Capture_flag), - glint:description(_pipe@11, <<"Runs test"/utf8>>) - end - ), - _pipe@13 = glint:with_pretty_help(_pipe@12, glint:default_pretty_help()), - glint:run(_pipe@13, Args). - --spec main() -> nil. -main() -> - start_with_args( - gleam@erlang:start_arguments(), - fun(Module_list, Ignore_tags, Capture) -> - Test_event_handler = showtime@internal@erlang@event_handler:start(), - Test_module_handler = showtime@internal@erlang@module_handler:start( - Test_event_handler, - fun showtime@internal@erlang@discover:collect_test_functions/1, - fun showtime@internal@erlang@runner:run_test_suite/4, - Ignore_tags, - Capture - ), - Test_event_handler(start_test_run), - Modules = showtime@internal@erlang@discover:collect_modules( - Test_module_handler, - Module_list - ), - Test_event_handler( - {end_test_run, - begin - _pipe = Modules, - gleam@list:length(_pipe) - end} - ), - nil - end - ). diff --git a/aoc2023/build/packages/adglent/src/showtime.gleam b/aoc2023/build/packages/adglent/src/showtime.gleam deleted file mode 100644 index f0401c9..0000000 --- a/aoc2023/build/packages/adglent/src/showtime.gleam +++ /dev/null @@ -1,116 +0,0 @@ -import glint.{type CommandInput, flag} -import glint/flag -import glint/flag/constraint.{one_of} -import gleam/result -import gleam/string -import showtime/internal/common/cli.{Mixed, No, Yes} -@target(erlang) -import gleam/list -@target(erlang) -import gleam/option.{None, Some} -@target(erlang) -import gleam/erlang.{start_arguments} -@target(erlang) -import showtime/internal/common/test_suite.{EndTestRun, StartTestRun} -@target(erlang) -import showtime/internal/erlang/event_handler -@target(erlang) -import showtime/internal/erlang/module_handler -@target(erlang) -import showtime/internal/erlang/runner -@target(erlang) -import showtime/internal/erlang/discover.{ - collect_modules, collect_test_functions, -} - -// @target(javascript) -// import gleam/io - -@target(erlang) -pub fn main() { - use module_list, ignore_tags, capture <- start_with_args(start_arguments()) - // Start event handler which will collect test-results and eventually - // print test report - let test_event_handler = event_handler.start() - // Start module handler which receives msg about modules to test and - // runs the test-suite for the module - let test_module_handler = - module_handler.start( - test_event_handler, - collect_test_functions, - runner.run_test_suite, - ignore_tags, - capture, - ) - - test_event_handler(StartTestRun) - // Collect modules and notify the module handler to start the test-suites - let modules = collect_modules(test_module_handler, module_list) - test_event_handler(EndTestRun( - modules - |> list.length(), - )) - Nil -} - -fn start_with_args(args, func) { - let modules_flag = - flag.string_list() - |> flag.default([]) - |> flag.description("Run only tests in the modules in this list") - - let ignore_flag = - flag.string_list() - |> flag.default([]) - |> flag.description( - "Ignore tests that are have tags matching a tag in this list", - ) - - let capture_flag = - flag.string() - |> flag.default("no") - |> flag.constraint(one_of(["yes", "no", "mixed"])) - |> flag.description( - "Capture output: no (default) - output when tests are run, yes - output is captured and shown in report, mixed - output when run and in report", - ) - - glint.new() - |> glint.add( - at: [], - do: glint.command(mk_runner(func, _)) - |> glint.flag("modules", modules_flag) - |> glint.flag("ignore", ignore_flag) - |> glint.flag("capture", capture_flag) - |> glint.description("Runs test"), - ) - |> glint.with_pretty_help(glint.default_pretty_help()) - |> glint.run(args) -} - -fn mk_runner(func, command: CommandInput) { - let assert Ok(module_list) = - command.flags - |> flag.get_strings("modules") - |> result.map(fn(modules) { - case modules { - [] -> None - modules -> Some(modules) - } - }) - let assert Ok(ignore_tags) = - command.flags - |> flag.get_strings("ignore") - - let assert Ok(capture_output) = - command.flags - |> flag.get_string("capture") - |> result.map(fn(arg) { string.lowercase(arg) }) - |> result.map(fn(arg) { - case arg { - "no" -> No - "yes" -> Yes - "mixed" -> Mixed - } - }) - func(module_list, ignore_tags, capture_output) -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/common/cli.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/common/cli.gleam deleted file mode 100644 index 1c03211..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/common/cli.gleam +++ /dev/null @@ -1,5 +0,0 @@ -pub type Capture { - Yes - No - Mixed -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/common/common_event_handler.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/common/common_event_handler.gleam deleted file mode 100644 index b90af14..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/common/common_event_handler.gleam +++ /dev/null @@ -1,101 +0,0 @@ -import gleam/map.{type Map} -import showtime/internal/common/test_suite.{ - type TestEvent, type TestRun, CompletedTestRun, EndTest, EndTestRun, - EndTestSuite, OngoingTestRun, StartTest, StartTestRun, StartTestSuite, -} - -pub type TestState { - NotStarted - Running - Finished(num_modules: Int) -} - -pub type HandlerState { - HandlerState( - test_state: TestState, - num_done: Int, - events: Map(String, Map(String, TestRun)), - ) -} - -// This is the common event-handler (shared between erlang/JS targets) -// The main strategy is to collect the test-results in a map of maps: -// module_name -> -// test_name -> test_result -// It will also keep track of if it is running (i.e. did it receive the EndTestRun) -// so that the caller can determine when to print test-results -pub fn handle_event( - msg: TestEvent, - system_time: fn() -> Int, - state: HandlerState, -) { - let test_state = state.test_state - let num_done = state.num_done - let events = state.events - let #(updated_test_state, updated_num_done, updated_events) = case msg { - StartTestRun -> #(Running, num_done, events) - StartTestSuite(module) -> { - let maybe_module_events = map.get(events, module.name) - let new_events = case maybe_module_events { - Ok(_) -> events - Error(_) -> - events - |> map.insert(module.name, map.new()) - } - #(test_state, num_done, new_events) - } - StartTest(module, test) -> { - let current_time = system_time() - let maybe_module_events = map.get(events, module.name) - let new_events = case maybe_module_events { - Ok(module_events) -> { - let maybe_test_event = map.get(module_events, test.name) - case maybe_test_event { - Error(_) -> - events - |> map.insert( - module.name, - module_events - |> map.insert(test.name, OngoingTestRun(test, current_time)), - ) - Ok(_) -> events - } - } - Error(_) -> events - } - #(test_state, num_done, new_events) - } - EndTest(module, test, result) -> { - let current_time = system_time() - let maybe_module_events = map.get(events, module.name) - let new_events = case maybe_module_events { - Ok(module_events) -> { - let maybe_test_run = - module_events - |> map.get(test.name) - let updated_module_events = case maybe_test_run { - Ok(OngoingTestRun(test_function, started_at)) -> - module_events - |> map.insert( - test.name, - CompletedTestRun( - test_function, - current_time - started_at, - result, - ), - ) - Error(_) -> module_events - } - events - |> map.insert(module.name, updated_module_events) - } - Error(_) -> events - } - #(test_state, num_done, new_events) - } - EndTestSuite(_) -> #(test_state, num_done + 1, events) - EndTestRun(num_modules) -> #(Finished(num_modules), num_done, events) - _ -> #(Running, num_done, events) - } - HandlerState(updated_test_state, updated_num_done, updated_events) -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/common/test_result.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/common/test_result.gleam deleted file mode 100644 index a1d6bd9..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/common/test_result.gleam +++ /dev/null @@ -1,119 +0,0 @@ -import gleam/dynamic.{type Dynamic} -import gleam/map.{type Map} - -// These are all the types used for test-results -// NOTE: These are heavily used in the erlang/js ffi:s -// so any changes here are likely to break the ffi:s unless -// the corresponding change is introduced there -// -// Futhermore this has some erlang related names that should -// probably be cleaned up, but it is used by both the ffi:s - -// Currently only one reason, but could be possible to support -// more reasons in the future -pub type IgnoreReason { - Ignore -} - -// This is the return value from running the test-function -// or ignored if the test was ignored -pub type TestReturn { - TestFunctionReturn(value: Dynamic, output_buffer: List(String)) - Ignored(reason: IgnoreReason) -} - -// All data about an exception in the test function is captured -// in this type. -// This is also where the data about the assertions will end up (in reason) -pub type Exception { - ErlangException( - class: Class, - reason: Reason, - stacktrace: TraceList, - output_buffer: List(String), - ) -} - -// Alias for the test-result which is either a TestResult (passed test, ignored or a test-definition) -// or an Exception (failed test) -pub type TestResult = - Result(TestReturn, Exception) - -// Reason is either an assert equal (which is if the error was produced by gleeunit should) -// TODO: Add other asserts -// or it is a gleam error meaning that is was produced by showtime should -// TODO: Rename GleamError to ShowtimeError -pub type Reason { - AssertEqual(details: List(ReasonDetail)) - AssertNotEqual(details: List(ReasonDetail)) - AssertMatch(details: List(ReasonDetail)) - GleamError(details: GleamErrorDetail) - GleamAssert(value: Dynamic, line_no: Int) - GenericException(value: Dynamic) -} - -// ReasonDetail is the union-type used in erlang-exceptions where the reason -// is a list of such details -pub type ReasonDetail { - Module(name: String) - ReasonLine(line_no: Int) - Expression(expression: String) - Expected(value: Dynamic) - Value(value: Dynamic) - Pattern(pattern: String) -} - -// Gleam error detail is produced by showtime should and will hold all the information -// about the assertion (both expected and got) -pub type GleamErrorDetail { - LetAssert( - module: String, - function: String, - line_no: Int, - message: String, - value: Dynamic, - ) -} - -// Class is a part of standard erlang exceptions, but also used on js-side -// TODO: Extend to include a JS specific constructor -pub type Class { - ErlangError - Exit - Throw -} - -// The trace list is part of the standard erlang exception, but is also -// emulated on js-side. -// TODO: Maybe we need a js-version that contain some js-specific trace-elements -pub type TraceList { - TraceList(traces: List(Trace)) -} - -// Trace are the elements in the trace list in an erlang exception -// TODO: Maybe add a js-specific trace (since arity is not really a js attribute) -pub type Trace { - Trace(function: String, arity: Arity, extra_info: List(ExtraInfo)) - TraceModule( - module: String, - function: String, - arity: Arity, - extra_info: List(ExtraInfo), - ) -} - -// Extra info holds information about the file and line -// as well as some dynamic data in a map -// This is currently not used in the reporter -pub type ExtraInfo { - ErrorInfo(error_info: Map(Dynamic, Dynamic)) - File(filename: String) - Line(line_no: Int) -} - -// Arity is the erlang type for arity -// Can be either a number, or a list of arguments -pub type Arity { - Num(arity: Int) - ArgList(arg_list: List(Dynamic)) -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/common/test_suite.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/common/test_suite.gleam deleted file mode 100644 index eb58d64..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/common/test_suite.gleam +++ /dev/null @@ -1,63 +0,0 @@ -import gleam/option.{type Option} -import showtime/internal/common/test_result.{type TestResult} -import showtime/internal/common/cli.{type Capture} - -// The state (and result) of a test function -pub type TestRun { - OngoingTestRun(test_function: TestFunction, started_at: Int) - CompletedTestRun( - test_function: TestFunction, - total_time: Int, - result: TestResult, - ) -} - -// A test module (found by discovery) -pub type TestModule { - TestModule(name: String, path: Option(String)) -} - -// A test function -pub type TestFunction { - TestFunction(name: String) -} - -// A test suite is a test module together with the test functions -// that were collected from that module -pub type TestSuite { - TestSuite(module: TestModule, tests: List(TestFunction)) -} - -// Test event for the event handler -pub type TestEvent { - StartTestRun - StartTestSuite(test_module: TestModule) - StartTest(test_module: TestModule, test_function: TestFunction) - EndTest( - test_module: TestModule, - test_function: TestFunction, - result: TestResult, - ) - EndTestSuite(test_module: TestModule) - EndTestRun(num_modules: Int) -} - -// Interface for the module handler -pub type TestModuleHandler = - fn(TestModule) -> Nil - -// Interface for the event handler -pub type TestEventHandler = - fn(TestEvent) -> Nil - -// Interface for the module collector -pub type ModuleCollector = - fn(TestModuleHandler) -> List(TestModule) - -// Interface for the function collector -pub type TestFunctionCollector = - fn(TestModule) -> TestSuite - -// Interface for the test runner -pub type TestRunner = - fn(TestSuite, TestEventHandler, List(String), Capture) -> Nil diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/erlang/discover.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/erlang/discover.gleam deleted file mode 100644 index ecb752d..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/erlang/discover.gleam +++ /dev/null @@ -1,167 +0,0 @@ -@target(erlang) -import gleam/io -@target(erlang) -import gleam/dynamic.{type Dynamic} -@target(erlang) -import gleam/list -@target(erlang) -import gleam/string -@target(erlang) -import gleam/int -@target(erlang) -import gleam/option.{type Option, None, Some} -@target(erlang) -import gleam/erlang/atom.{type Atom} -@target(erlang) -import showtime/internal/common/test_suite.{ - type TestModule, type TestModuleHandler, type TestSuite, TestFunction, - TestModule, TestSuite, -} -import simplifile - -// Module collector for erlang -// Will search the test folder for files ending with _test and notify -// the module handler about each module it finds -@target(erlang) -pub fn collect_modules( - test_module_handler: TestModuleHandler, - only_modules: Option(List(String)), -) -> List(TestModule) { - collect_modules_in_folder("./test", test_module_handler, only_modules) -} - -@target(erlang) -fn collect_modules_in_folder( - path: String, - test_module_handler: TestModuleHandler, - only_modules: Option(List(String)), -) { - let module_prefix = get_module_prefix(path) - let assert Ok(files) = simplifile.read_directory(path) - let test_modules_in_folder = - files - |> list.filter(string.ends_with(_, "_test.gleam")) - |> list.filter_map(fn(test_module_file) { - let module_name = - module_prefix <> { - test_module_file - |> string.replace(".gleam", "") - } - case only_modules { - Some(only_modules_list) -> { - let module_in_list = - only_modules_list - |> list.any(fn(only_module_name) { - only_module_name == module_name - |> string.replace("@", "/") - }) - case module_in_list { - True -> { - let test_module = TestModule(module_name, Some(test_module_file)) - test_module_handler(test_module) - Ok(test_module) - } - - False -> Error(Nil) - } - } - None -> { - let test_module = TestModule(module_name, Some(test_module_file)) - test_module_handler(test_module) - Ok(test_module) - } - } - }) - let test_modules_in_subfolders = - files - |> list.map(fn(filename) { path <> "/" <> filename }) - |> list.filter(fn(file) { simplifile.is_directory(file) }) - |> list.fold( - [], - fn(modules, subfolder) { - modules - |> list.append(collect_modules_in_folder( - subfolder, - test_module_handler, - only_modules, - )) - }, - ) - test_modules_in_folder - |> list.append(test_modules_in_subfolders) -} - -@target(erlang) -fn get_module_prefix(path) { - let path_without_test = - path - |> string.replace("./test", "") - - let path_without_leading_slash = case - string.starts_with(path_without_test, "/") - { - True -> string.drop_left(path_without_test, 1) - False -> path_without_test - } - let module_prefix = - path_without_leading_slash - |> string.replace("/", "@") - case string.length(module_prefix) { - 0 -> module_prefix - _ -> module_prefix <> "@" - } -} - -// Test function collector for erlang -// Uses erlang `apply` to run `module_info` for the test module -// and collects all the exports ending with _test into a `TestSuite` -@target(erlang) -pub fn collect_test_functions(module: TestModule) -> TestSuite { - let test_functions: List(#(Atom, Int)) = - apply( - atom.create_from_string(module.name), - atom.create_from_string("module_info"), - [dynamic.from(atom.create_from_string("exports"))], - ) - |> dynamic.unsafe_coerce() - - let test_functions_filtered = - test_functions - |> list.map(fn(entry) { - let assert #(name, arity) = entry - #( - name - |> atom.to_string(), - arity, - ) - }) - |> list.filter_map(fn(entry) { - let assert #(name, arity) = entry - case string.ends_with(name, "_test") { - True -> - case arity { - 0 -> Ok(name) - _ -> { - io.println( - "WARNING: function \"" <> name <> "\" has arity: " <> int.to_string( - arity, - ) <> " - cannot be used as test (needs to be 0)", - ) - Error("Wrong arity") - } - } - False -> Error("Non matching name") - } - }) - |> list.filter(string.ends_with(_, "_test")) - |> list.map(fn(function_name) { TestFunction(function_name) }) - TestSuite(module, test_functions_filtered) -} - -@target(erlang) -@external(erlang, "erlang", "apply") -fn apply( - module module: Atom, - function function: Atom, - args args: List(Dynamic), -) -> Dynamic diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/erlang/event_handler.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/erlang/event_handler.gleam deleted file mode 100644 index 62a9caf..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/erlang/event_handler.gleam +++ /dev/null @@ -1,91 +0,0 @@ -@target(erlang) -import gleam/io -@target(erlang) -import gleam/otp/actor.{Continue, Stop} -@target(erlang) -import gleam/erlang/process.{type Subject, Normal} -@target(erlang) -import gleam/map -@target(erlang) -import showtime/internal/common/test_suite.{type TestEvent, EndTestRun} -@target(erlang) -import showtime/internal/common/common_event_handler.{ - Finished, HandlerState, NotStarted, handle_event, -} -@target(erlang) -import showtime/internal/reports/formatter.{create_test_report} -@target(erlang) -import gleam/erlang.{Millisecond} -@target(erlang) -import gleam/option.{None} - -@target(erlang) -type EventHandlerMessage { - EventHandlerMessage(test_event: TestEvent, reply_to: Subject(Int)) -} - -// Starts an actor that receives test events and forwards the to the event handler -// When handler updates the state to `Finished` the actor will wait until handler -// reports that all modules are done and the stop -@target(erlang) -pub fn start() { - let assert Ok(subject) = - actor.start( - #(NotStarted, 0, map.new()), - fn(msg: EventHandlerMessage, state) { - let EventHandlerMessage(test_event, reply_to) = msg - let #(test_state, num_done, events) = state - let updated_state = - handle_event( - test_event, - system_time, - HandlerState(test_state, num_done, events), - ) - case updated_state { - HandlerState(Finished(num_modules), num_done, events) if num_done == num_modules -> { - let #(test_report, num_failed) = create_test_report(events) - io.println(test_report) - process.send(reply_to, num_failed) - Stop(Normal) - } - HandlerState(test_state, num_done, events) -> - Continue(#(test_state, num_done, events), None) - } - }, - ) - let parent_subject = process.new_subject() - - let selector = - process.new_selector() - |> process.selecting(parent_subject, fn(x) { x }) - - // Returns a callback that can receive test events - fn(test_event: TestEvent) { - case test_event { - EndTestRun(..) -> { - // When EndTestRun has been received the callback will wait until the - // actor has stopped - // TODO: Use a timeout? - process.send(subject, EventHandlerMessage(test_event, parent_subject)) - let num_failed = process.select_forever(selector) - case num_failed > 0 { - True -> halt(1) - False -> halt(0) - } - } - - // Normally just send the test event to the actor - _ -> - process.send(subject, EventHandlerMessage(test_event, parent_subject)) - } - } -} - -@target(erlang) -@external(erlang, "erlang", "halt") -fn halt(a: Int) -> Nil - -@target(erlang) -fn system_time() { - erlang.system_time(Millisecond) -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/erlang/module_handler.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/erlang/module_handler.gleam deleted file mode 100644 index 88cc251..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/erlang/module_handler.gleam +++ /dev/null @@ -1,43 +0,0 @@ -@target(erlang) -import gleam/otp/actor.{Continue} -@target(erlang) -import gleam/erlang/process -@target(erlang) -import showtime/internal/common/test_suite.{ - type TestEventHandler, type TestFunctionCollector, type TestModule, - type TestRunner, EndTestSuite, StartTestSuite, -} -@target(erlang) -import showtime/internal/common/cli.{type Capture} -@target(erlang) -import gleam/option.{None} - -@target(erlang) -pub fn start( - test_event_handler: TestEventHandler, - test_function_collector: TestFunctionCollector, - run_test_suite: TestRunner, - ignore_tags: List(String), - capture: Capture, -) { - let assert Ok(subject) = - actor.start( - Nil, - fn(module: TestModule, state) { - process.start( - fn() { - let test_suite = test_function_collector(module) - test_event_handler(StartTestSuite(module)) - run_test_suite(test_suite, test_event_handler, ignore_tags, capture) - test_event_handler(EndTestSuite(module)) - }, - False, - ) - Continue(state, None) - }, - ) - fn(test_module: TestModule) { - process.send(subject, test_module) - Nil - } -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/erlang/runner.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/erlang/runner.gleam deleted file mode 100644 index ebbf426..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/erlang/runner.gleam +++ /dev/null @@ -1,59 +0,0 @@ -@target(erlang) -import gleam/list -@target(erlang) -import gleam/erlang/atom.{type Atom} -@target(erlang) -import showtime/internal/common/test_suite.{ - type TestEventHandler, type TestSuite, EndTest, StartTest, -} -@target(erlang) -import showtime/internal/common/test_result.{type TestResult} -@target(erlang) -import showtime/internal/common/cli.{type Capture} - -// Runs all tests in a test suite -@target(erlang) -pub fn run_test_suite( - test_suite: TestSuite, - test_event_handler: TestEventHandler, - ignore_tags: List(String), - capture: Capture, -) { - test_suite.tests - |> list.each(fn(test) { - test_event_handler(StartTest(test_suite.module, test)) - let result = - run_test(test_suite.module.name, test.name, ignore_tags, capture) - test_event_handler(EndTest(test_suite.module, test, result)) - }) -} - -// Wrapper around the ffi function that converts names to atoms -@target(erlang) -pub fn run_test( - module_name: String, - test_name: String, - ignore_tags: List(String), - capture: Capture, -) -> TestResult { - let result = - run_test_ffi( - atom.create_from_string(module_name), - atom.create_from_string(test_name), - ignore_tags, - capture, - ) - result -} - -// Calls ffi for running a test function -// The ffi will take care of mapping the result and exception to the data-types -// used in gleam -@target(erlang) -@external(erlang, "showtime_ffi", "run_test") -fn run_test_ffi( - module module: Atom, - function function: Atom, - ignore_tags ignore_tags: List(String), - capture capture: Capture, -) -> TestResult diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/reports/compare.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/reports/compare.gleam deleted file mode 100644 index 5ccddee..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/reports/compare.gleam +++ /dev/null @@ -1,42 +0,0 @@ -import gleam/dynamic.{type Dynamic} -import gleam/string -import showtime/internal/reports/styles.{expected_highlight, got_highlight} -import gap.{compare_lists, compare_strings} -import gap/styling.{from_comparison, highlight, to_styled_comparison} - -pub fn compare(expected: Dynamic, got: Dynamic) -> #(String, String) { - let expected_as_list = - expected - |> dynamic.list(dynamic.dynamic) - let got_as_list = - got - |> dynamic.list(dynamic.dynamic) - let expected_as_string = - expected - |> dynamic.string() - let got_as_string = - got - |> dynamic.string() - case expected_as_list, got_as_list, expected_as_string, got_as_string { - Ok(expected_list), Ok(got_list), _, _ -> { - let comparison = - compare_lists(expected_list, got_list) - |> from_comparison() - |> highlight(expected_highlight, got_highlight, fn(item) { item }) - |> to_styled_comparison() - #(comparison.first, comparison.second) - } - _, _, Ok(expected_string), Ok(got_string) -> { - let comparison = - compare_strings(expected_string, got_string) - |> from_comparison() - |> highlight(expected_highlight, got_highlight, fn(item) { item }) - |> to_styled_comparison() - #(comparison.first, comparison.second) - } - _, _, _, _ -> #( - expected_highlight(string.inspect(expected)), - got_highlight(string.inspect(got)), - ) - } -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/reports/formatter.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/reports/formatter.gleam deleted file mode 100644 index 8c1a6ac..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/reports/formatter.gleam +++ /dev/null @@ -1,480 +0,0 @@ -import gleam/io -import gleam/int -import gleam/list -import gleam/string -import gleam/option.{type Option, None, Some} -import gleam/map.{type Map} -import gleam/dynamic.{type Dynamic} -import showtime/internal/common/test_result.{ - type GleamErrorDetail, type ReasonDetail, type Trace, AssertEqual, AssertMatch, - AssertNotEqual, Expected, Expression, GenericException, GleamAssert, - GleamError, Ignored, LetAssert, Pattern, Trace, TraceModule, Value, -} -import showtime/internal/common/test_suite.{type TestRun, CompletedTestRun} -import showtime/tests/should.{type Assertion, Eq, Fail, IsError, IsOk, NotEq} -import showtime/internal/reports/styles.{ - error_style, expected_highlight, failed_style, function_style, got_highlight, - heading_style, ignored_style, not_style, passed_style, stacktrace_style, -} -import showtime/internal/reports/compare.{compare} -import showtime/internal/reports/table.{ - AlignLeft, AlignLeftOverflow, AlignRight, Content, Separator, StyledContent, - Table, align_table, to_string, -} -import showtime/tests/meta.{type Meta} - -type GleeUnitAssertionType { - GleeUnitAssertEqual(message: String) - GleeUnitAssertNotEqual(message: String) - GleeUnitAssertMatch(message: String) -} - -type ModuleAndTest { - ModuleAndTestRun(module_name: String, test_run: TestRun) -} - -type UnifiedError { - UnifiedError( - meta: Option(Meta), - reason: String, - message: String, - expected: String, - got: String, - line: Option(Int), - stacktrace: List(Trace), - ) -} - -pub fn create_test_report(test_results: Map(String, Map(String, TestRun))) { - let all_test_runs = - test_results - |> map.values() - |> list.flat_map(map.values) - let failed_test_runs = - test_results - |> map.to_list() - |> list.flat_map(fn(entry) { - let #(module_name, test_module_results) = entry - test_module_results - |> map.values() - |> list.filter_map(fn(test_run) { - case test_run { - CompletedTestRun(_test_function, _, result) -> - case result { - Error(_) -> Ok(ModuleAndTestRun(module_name, test_run)) - Ok(Ignored(_)) -> Error(Nil) - Ok(_) -> Error(Nil) - } - _ -> { - test_run - |> io.debug() - Error(Nil) - } - } - }) - }) - - let ignored_test_runs = - test_results - |> map.to_list() - |> list.flat_map(fn(entry) { - let #(module_name, test_module_results) = entry - test_module_results - |> map.values() - |> list.filter_map(fn(test_run) { - case test_run { - CompletedTestRun(test_function, _, result) -> - case result { - Ok(Ignored(reason)) -> - Ok(#(module_name <> "." <> test_function.name, reason)) - _ -> Error(Nil) - } - _ -> Error(Nil) - } - }) - }) - - let failed_tests_report = - failed_test_runs - |> list.filter_map(fn(module_and_test_run) { - case module_and_test_run.test_run { - CompletedTestRun(test_function, _total_time, result) -> - case result { - Error(exception) -> - case exception.reason { - AssertEqual(reason_details) -> - Ok(format_reason( - erlang_error_to_unified( - reason_details, - GleeUnitAssertEqual("Assert equal"), - exception.stacktrace.traces, - ), - module_and_test_run.module_name, - test_function.name, - exception.output_buffer, - )) - AssertNotEqual(reason_details) -> - Ok(format_reason( - erlang_error_to_unified( - reason_details, - GleeUnitAssertNotEqual("Assert not equal"), - exception.stacktrace.traces, - ), - module_and_test_run.module_name, - test_function.name, - exception.output_buffer, - )) - AssertMatch(reason_details) -> - Ok(format_reason( - erlang_error_to_unified( - reason_details, - GleeUnitAssertMatch("Assert match"), - exception.stacktrace.traces, - ), - module_and_test_run.module_name, - test_function.name, - exception.output_buffer, - )) - GleamError(reason) -> - Ok(format_reason( - gleam_error_to_unified(reason, exception.stacktrace.traces), - module_and_test_run.module_name, - test_function.name, - exception.output_buffer, - )) - // GleamAssert(value) -> Error(Nil) - GleamAssert(value, line_no) -> - Ok(format_reason( - UnifiedError( - None, - "gleam assert", - "Assert failed", - "Patterns should match", - error_style(string.inspect(value)), - Some(line_no), - exception.stacktrace.traces, - ), - module_and_test_run.module_name, - test_function.name, - exception.output_buffer, - )) - GenericException(value) -> - Ok(format_reason( - UnifiedError( - None, - "generic exception", - "Test function threw an exception", - "Exception in test function", - error_style(string.inspect(value)), - None, - exception.stacktrace.traces, - ), - module_and_test_run.module_name, - test_function.name, - exception.output_buffer, - )) - other -> { - io.println("Other: " <> string.inspect(other)) - panic - Error(Nil) - } - } - _ -> Error(Nil) - } - _ -> Error(Nil) - } - }) - |> list.fold([], fn(rows, test_rows) { list.append(rows, test_rows) }) - - let all_test_execution_time_reports = - all_test_runs - |> list.filter_map(fn(test_run) { - case test_run { - CompletedTestRun(test_function, total_time, _) -> - Ok(test_function.name <> ": " <> int.to_string(total_time) <> " ms") - _ -> Error(Nil) - } - }) - let _execution_times_report = - all_test_execution_time_reports - |> string.join("\n") - - let all_tests_count = - all_test_runs - |> list.length() - let ignored_tests_count = - ignored_test_runs - |> list.length() - let failed_tests_count = - failed_test_runs - |> list.length() - - let passed = - passed_style( - int.to_string(all_tests_count - failed_tests_count - ignored_tests_count) <> " passed", - ) - let failed = failed_style(int.to_string(failed_tests_count) <> " failed") - let ignored = case ignored_tests_count { - 0 -> "" - _ -> ", " <> ignored_style(int.to_string(ignored_tests_count) <> " ignored") - } - - let failed_tests_table = - Table(None, failed_tests_report) - |> align_table() - |> to_string() - - let test_report = - "\n" <> failed_tests_table <> "\n" <> passed <> ", " <> failed <> ignored - #(test_report, failed_tests_count) -} - -fn erlang_error_to_unified( - error_details: List(ReasonDetail), - assertion_type: GleeUnitAssertionType, - stacktrace: List(Trace), -) { - error_details - |> list.fold( - UnifiedError( - None, - "not_set", - assertion_type.message, - "", - "", - None, - stacktrace, - ), - fn(unified, reason) { - case reason { - Expression(expression) -> UnifiedError(..unified, reason: expression) - Expected(value) -> - case assertion_type { - GleeUnitAssertEqual(_messaged) -> - UnifiedError( - ..unified, - expected: expected_highlight(string.inspect(value)), - ) - _ -> unified - } - Value(value) -> - case assertion_type { - GleeUnitAssertNotEqual(_message) -> - UnifiedError( - ..unified, - expected: not_style("not ") <> string.inspect(value), - got: got_highlight(string.inspect(value)), - ) - _ -> - UnifiedError(..unified, got: got_highlight(string.inspect(value))) - } - Pattern(pattern) -> - case pattern { - "{ ok , _ }" -> - UnifiedError(..unified, expected: expected_highlight("Ok(_)")) - "{ error , _ }" -> - UnifiedError(..unified, expected: expected_highlight("Error(_)")) - _ -> unified - } - _ -> unified - } - }, - ) -} - -fn gleam_error_to_unified( - gleam_error: GleamErrorDetail, - stacktrace: List(Trace), -) -> UnifiedError { - case gleam_error { - LetAssert(_module, _function, _line_no, _message, value) -> { - let result: Result(Dynamic, Assertion(Dynamic, Dynamic)) = - dynamic.unsafe_coerce(value) - let assert Error(assertion) = result - case assertion { - Eq(got, expected, meta) -> { - let #(expected, got) = compare(expected, got) - UnifiedError( - meta, - "assert", - "Assert equal", - expected, - got, - None, - stacktrace, - ) - } - NotEq(got, expected, meta) -> - UnifiedError( - meta, - "assert", - "Assert not equal", - not_style("not ") <> string.inspect(expected), - string.inspect(got), - None, - stacktrace, - ) - IsOk(got, meta) -> - UnifiedError( - meta, - "assert", - "Assert is Ok", - expected_highlight("Ok(_)"), - got_highlight(string.inspect(got)), - None, - stacktrace, - ) - IsError(got, meta) -> - UnifiedError( - meta, - "assert", - "Assert is Ok", - expected_highlight("Error(_)"), - got_highlight(string.inspect(got)), - None, - stacktrace, - ) - Fail(meta) -> - UnifiedError( - meta, - "assert", - "Assert is Ok", - got_highlight("should.fail()"), - got_highlight("N/A - test always expected to fail"), - None, - stacktrace, - ) - } - } - } -} - -fn format_reason( - error: UnifiedError, - module: String, - function: String, - output_buffer: List(String), -) { - let meta = case error.meta { - Some(meta) -> - Some([ - AlignRight(StyledContent(heading_style("Description")), 2), - Separator(": "), - AlignLeft(Content(meta.description), 0), - ]) - - None -> None - } - - let stacktrace = - error.stacktrace - |> list.map(fn(trace) { - case trace { - Trace(function, _, _) if function == "" -> "(anonymous)" - TraceModule(module, function, _, _) if function == "" -> - module <> "." <> "(anonymous)" - Trace(function, _, _) -> function - TraceModule(module, function, _, _) -> module <> "." <> function - } - }) - let stacktrace_rows = case stacktrace { - [] -> [] - [first, ..rest] -> { - let first_row = - Some([ - AlignRight(StyledContent(heading_style("Stacktrace")), 2), - Separator(": "), - AlignLeft(StyledContent(stacktrace_style(first)), 0), - ]) - let rest_rows = - rest - |> list.map(fn(row) { - Some([ - AlignRight(Content(""), 2), - Separator(" "), - AlignLeft(StyledContent(stacktrace_style(row)), 0), - ]) - }) - [first_row, ..rest_rows] - } - } - - let output_rows = case - output_buffer - |> list.reverse() - |> list.map(fn(row) { string.trim_right(row) }) - { - [] -> [] - [first, ..rest] -> { - let first_row = - Some([ - AlignRight(StyledContent(heading_style("Output")), 2), - Separator(": "), - AlignLeftOverflow(StyledContent(stacktrace_style(first)), 0), - ]) - let rest_rows = - rest - |> list.map(fn(row) { - Some([ - AlignRight(Content(""), 2), - Separator(" "), - AlignLeftOverflow(StyledContent(stacktrace_style(row)), 0), - ]) - }) - [first_row, ..rest_rows] - } - } - - let line = - error.line - |> option.map(fn(line) { ":" <> int.to_string(line) }) - |> option.unwrap("") - - let arrow = - string.join( - list.repeat( - "-", - string.length(module) + 1 + { - string.length(function) + string.length(line) - } / 2, - ), - "", - ) <> "⌄" - let standard_table_rows = [ - Some([ - AlignRight(StyledContent(error_style("Failed")), 2), - Separator(": "), - AlignLeft(Content(arrow), 0), - ]), - Some([ - AlignRight(StyledContent(heading_style("Test")), 2), - Separator(": "), - AlignLeft( - StyledContent(module <> "." <> function_style(function <> line)), - 0, - ), - ]), - meta, - Some([ - AlignRight(StyledContent(heading_style("Expected")), 2), - Separator(": "), - AlignLeftOverflow(StyledContent(error.expected), 0), - ]), - Some([ - AlignRight(StyledContent(heading_style("Got")), 2), - Separator(": "), - AlignLeftOverflow(StyledContent(error.got), 0), - ]), - ] - standard_table_rows - |> list.append(stacktrace_rows) - |> list.append(output_rows) - |> list.append([ - Some([ - AlignRight(Content(""), 0), - AlignRight(Content(""), 0), - AlignRight(Content(""), 0), - ]), - ]) - |> list.filter_map(fn(row) { option.to_result(row, Nil) }) -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/reports/styles.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/reports/styles.gleam deleted file mode 100644 index b051dd3..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/reports/styles.gleam +++ /dev/null @@ -1,84 +0,0 @@ -import gleam_community/ansi -import gleam/list -import gleam/string -import gleam/bit_array - -pub fn passed_style(text) { - bold_green(text) -} - -pub fn failed_style(text) { - bold_red(text) -} - -pub fn ignored_style(text) { - bold_yellow(text) -} - -pub fn error_style(text) { - bold_red(text) -} - -pub fn expected_highlight(text) { - bold_green(text) -} - -pub fn got_highlight(text) { - bold_red(text) -} - -pub fn not_style(text) { - ansi.bold(text) -} - -pub fn module_style(text: String) { - ansi.cyan(text) -} - -pub fn heading_style(text: String) { - ansi.cyan(text) -} - -pub fn function_style(text: String) { - bold_cyan(text) -} - -pub fn stacktrace_style(text: String) { - text -} - -fn bold_red(text: String) { - ansi.bold(ansi.red(text)) -} - -fn bold_green(text) { - ansi.bold(ansi.green(text)) -} - -fn bold_yellow(text) { - ansi.bold(ansi.yellow(text)) -} - -fn bold_cyan(text) { - ansi.bold(ansi.cyan(text)) -} - -pub fn strip_style(text) { - let #(new_text, _) = - text - |> string.to_graphemes() - |> list.fold( - #("", False), - fn(acc, char) { - let #(str, removing) = acc - let bit_char = bit_array.from_string(char) - case bit_char, removing { - <<0x1b>>, _ -> #(str, True) - <<0x6d>>, True -> #(str, False) - _, True -> #(str, True) - _, False -> #(str <> char, False) - } - }, - ) - new_text -} diff --git a/aoc2023/build/packages/adglent/src/showtime/internal/reports/table.gleam b/aoc2023/build/packages/adglent/src/showtime/internal/reports/table.gleam deleted file mode 100644 index f8bc00c..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/internal/reports/table.gleam +++ /dev/null @@ -1,148 +0,0 @@ -import gleam/list -import gleam/string -import gleam/int -import gleam/option.{type Option} -import showtime/internal/reports/styles.{strip_style} - -pub type Content { - Content(unstyled_text: String) - StyledContent(styled_text: String) -} - -pub type Col { - AlignRight(content: Content, margin: Int) - AlignLeft(content: Content, margin: Int) - AlignRightOverflow(content: Content, margin: Int) - AlignLeftOverflow(content: Content, margin: Int) - Separator(char: String) - Aligned(content: String) -} - -pub type Table { - Table(header: Option(String), rows: List(List(Col))) -} - -pub fn to_string(table: Table) -> String { - let rows = - table.rows - |> list.map(fn(row) { - row - |> list.filter_map(fn(col) { - case col { - Separator(char) -> Ok(char) - Aligned(content) -> Ok(content) - _ -> Error(Nil) - } - }) - |> string.join("") - }) - |> string.join("\n") - let header = - table.header - |> option.map(fn(header) { header <> "\n" }) - |> option.unwrap("") - header <> rows -} - -pub fn align_table(table: Table) -> Table { - let cols = - table.rows - |> list.transpose() - let col_width = - cols - |> list.map(fn(col) { - col - |> list.map(fn(content) { - case content { - AlignRight(Content(unstyled), _) -> unstyled - AlignRight(StyledContent(styled), _) -> strip_style(styled) - AlignLeft(Content(unstyled), _) -> unstyled - AlignLeft(StyledContent(styled), _) -> strip_style(styled) - AlignLeftOverflow(_, _) -> "" - AlignRightOverflow(_, _) -> "" - Separator(char) -> char - Aligned(content) -> content - } - }) - |> list.fold(0, fn(max, str) { int.max(max, string.length(str)) }) - }) - let aligned_col = - cols - |> list.zip(col_width) - |> list.map(fn(col_and_width) { - let #(col, width) = col_and_width - col - |> list.map(fn(content) { - case content { - AlignRight(Content(unstyled), margin) -> - Aligned(pad_left( - unstyled, - width + margin - string.length(unstyled), - " ", - )) - AlignRight(StyledContent(styled), margin) -> - Aligned(pad_left( - styled, - width + margin - string.length(strip_style(styled)), - " ", - )) - AlignRightOverflow(Content(unstyled), margin) -> - Aligned(pad_left( - unstyled, - width + margin - string.length(unstyled), - " ", - )) - AlignRightOverflow(StyledContent(styled), margin) -> - Aligned(pad_left( - styled, - width + margin - string.length(strip_style(styled)), - " ", - )) - AlignLeft(Content(unstyled), margin) -> - Aligned(pad_right( - unstyled, - width + margin - string.length(unstyled), - " ", - )) - AlignLeft(StyledContent(styled), margin) -> - Aligned(pad_right( - styled, - width + margin - string.length(strip_style(styled)), - " ", - )) - AlignLeftOverflow(Content(unstyled), margin) -> - Aligned(pad_right( - unstyled, - width + margin - string.length(unstyled), - " ", - )) - AlignLeftOverflow(StyledContent(styled), margin) -> - Aligned(pad_right( - styled, - width + margin - string.length(strip_style(styled)), - " ", - )) - Separator(char) -> Separator(char) - Aligned(content) -> Aligned(content) - } - }) - }) - let aligned_rows = - aligned_col - |> list.transpose() - Table(..table, rows: aligned_rows) -} - -fn pad_left(str: String, num: Int, char: String) { - let padding = - list.repeat(char, num) - |> string.join("") - padding <> str -} - -fn pad_right(str: String, num: Int, char: String) { - let padding = - list.repeat(char, num) - |> string.join("") - str <> padding -} diff --git a/aoc2023/build/packages/adglent/src/showtime/tests/meta.gleam b/aoc2023/build/packages/adglent/src/showtime/tests/meta.gleam deleted file mode 100644 index cbba414..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/tests/meta.gleam +++ /dev/null @@ -1,3 +0,0 @@ -pub type Meta { - Meta(description: String, tags: List(String)) -} diff --git a/aoc2023/build/packages/adglent/src/showtime/tests/should.gleam b/aoc2023/build/packages/adglent/src/showtime/tests/should.gleam deleted file mode 100644 index 71578c7..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/tests/should.gleam +++ /dev/null @@ -1,113 +0,0 @@ -import gleam/option.{type Option, None, Some} -import showtime/tests/meta.{type Meta} - -pub type Assertion(t, e) { - Eq(a: t, b: t, meta: Option(Meta)) - NotEq(a: t, b: t, meta: Option(Meta)) - IsOk(a: Result(t, e), meta: Option(Meta)) - IsError(a: Result(t, e), meta: Option(Meta)) - Fail(meta: Option(Meta)) -} - -pub fn equal(a: t, b: t) { - evaluate(Eq(a, b, None)) -} - -pub fn equal_meta(a: t, b: t, meta: Meta) { - evaluate(Eq(a, b, Some(meta))) -} - -pub fn not_equal(a: t, b: t) { - evaluate(NotEq(a, b, None)) -} - -pub fn not_equal_meta(a: t, b: t, meta: Meta) { - evaluate(NotEq(a, b, Some(meta))) -} - -pub fn be_ok(a: Result(o, e)) { - evaluate(IsOk(a, None)) - let assert Ok(value) = a - value -} - -pub fn be_ok_meta(a: Result(o, e), meta: Meta) { - evaluate(IsOk(a, Some(meta))) -} - -pub fn be_error(a: Result(o, e)) { - evaluate(IsError(a, None)) - let assert Error(value) = a - value -} - -pub fn be_error_meta(a: Result(o, e), meta: Meta) { - evaluate(IsError(a, Some(meta))) -} - -pub fn fail() { - evaluate(Fail(None)) -} - -pub fn fail_meta(meta: Meta) { - evaluate(Fail(Some(meta))) -} - -pub fn be_true(a: Bool) { - a - |> equal(True) -} - -pub fn be_true_meta(a: Bool, meta: Meta) { - a - |> equal_meta(True, meta) -} - -pub fn be_false(a: Bool) { - a - |> equal(False) -} - -pub fn be_false_meta(a: Bool, meta: Meta) { - a - |> equal_meta(False, meta) -} - -@external(erlang, "showtime_ffi", "gleam_error") -fn gleam_error(value: Result(Nil, Assertion(a, b))) -> Nil - -pub fn evaluate(assertion) -> Nil { - case assertion { - Eq(a, b, _meta) -> - case a == b { - True -> Nil - False -> { - gleam_error(Error(assertion)) - } - } - NotEq(a, b, _meta) -> - case a != b { - True -> Nil - False -> { - gleam_error(Error(assertion)) - } - } - IsOk(a, _meta) -> - case a { - Ok(_) -> Nil - Error(_) -> { - gleam_error(Error(assertion)) - } - } - IsError(a, _meta) -> - case a { - Error(_) -> Nil - Ok(_) -> { - gleam_error(Error(assertion)) - } - } - Fail(_meta) -> { - gleam_error(Error(assertion)) - } - } -} diff --git a/aoc2023/build/packages/adglent/src/showtime/tests/test.gleam b/aoc2023/build/packages/adglent/src/showtime/tests/test.gleam deleted file mode 100644 index 730f943..0000000 --- a/aoc2023/build/packages/adglent/src/showtime/tests/test.gleam +++ /dev/null @@ -1,57 +0,0 @@ -import showtime/tests/should -import showtime/tests/meta.{type Meta} -import gleam/io - -pub type Test { - Test(meta: Meta, test_function: fn() -> Nil) -} - -pub type MetaShould(t) { - MetaShould(equal: fn(t, t) -> Nil, not_equal: fn(t, t) -> Nil) -} - -pub fn test(meta: Meta, test_function: fn(Meta) -> Nil) { - Test(meta, fn() { test_function(meta) }) -} - -pub fn with_meta(meta: Meta, test_function: fn(MetaShould(a)) -> Nil) { - Test( - meta, - fn() { - test_function(MetaShould( - fn(a, b) { equal(a, b, meta) }, - fn(a, b) { not_equal(a, b, meta) }, - )) - }, - ) -} - -pub fn equal(a: t, b: t, meta: Meta) { - io.debug(a) - io.debug(b) - should.equal_meta(a, b, meta) -} - -pub fn not_equal(a: t, b: t, meta: Meta) { - should.equal_meta(a, b, meta) -} - -pub fn be_ok(a: Result(o, e), meta: Meta) { - should.be_ok_meta(a, meta) -} - -pub fn be_error(a: Result(o, e), meta: Meta) { - should.be_error_meta(a, meta) -} - -pub fn fail(meta: Meta) { - should.fail_meta(meta) -} - -pub fn be_true(a: Bool, meta: Meta) { - should.be_true_meta(a, meta) -} - -pub fn be_false(a: Bool, meta: Meta) { - should.be_false_meta(a, meta) -} diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@common@cli.erl b/aoc2023/build/packages/adglent/src/showtime@internal@common@cli.erl deleted file mode 100644 index f2d2396..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@common@cli.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(showtime@internal@common@cli). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([capture/0]). - --type capture() :: yes | no | mixed. - - diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@common@common_event_handler.erl b/aoc2023/build/packages/adglent/src/showtime@internal@common@common_event_handler.erl deleted file mode 100644 index b0a6d7a..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@common@common_event_handler.erl +++ /dev/null @@ -1,131 +0,0 @@ --module(showtime@internal@common@common_event_handler). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([handle_event/3]). --export_type([test_state/0, handler_state/0]). - --type test_state() :: not_started | running | {finished, integer()}. - --type handler_state() :: {handler_state, - test_state(), - integer(), - gleam@map:map_(binary(), gleam@map:map_(binary(), showtime@internal@common@test_suite:test_run()))}. - --spec handle_event( - showtime@internal@common@test_suite:test_event(), - fun(() -> integer()), - handler_state() -) -> handler_state(). -handle_event(Msg, System_time, State) -> - Test_state = erlang:element(2, State), - Num_done = erlang:element(3, State), - Events = erlang:element(4, State), - {Updated_test_state, Updated_num_done, Updated_events} = case Msg of - start_test_run -> - {running, Num_done, Events}; - - {start_test_suite, Module} -> - Maybe_module_events = gleam@map:get( - Events, - erlang:element(2, Module) - ), - New_events = case Maybe_module_events of - {ok, _} -> - Events; - - {error, _} -> - _pipe = Events, - gleam@map:insert( - _pipe, - erlang:element(2, Module), - gleam@map:new() - ) - end, - {Test_state, Num_done, New_events}; - - {start_test, Module@1, Test} -> - Current_time = System_time(), - Maybe_module_events@1 = gleam@map:get( - Events, - erlang:element(2, Module@1) - ), - New_events@1 = case Maybe_module_events@1 of - {ok, Module_events} -> - Maybe_test_event = gleam@map:get( - Module_events, - erlang:element(2, Test) - ), - case Maybe_test_event of - {error, _} -> - _pipe@1 = Events, - gleam@map:insert( - _pipe@1, - erlang:element(2, Module@1), - begin - _pipe@2 = Module_events, - gleam@map:insert( - _pipe@2, - erlang:element(2, Test), - {ongoing_test_run, Test, Current_time} - ) - end - ); - - {ok, _} -> - Events - end; - - {error, _} -> - Events - end, - {Test_state, Num_done, New_events@1}; - - {end_test, Module@2, Test@1, Result} -> - Current_time@1 = System_time(), - Maybe_module_events@2 = gleam@map:get( - Events, - erlang:element(2, Module@2) - ), - New_events@2 = case Maybe_module_events@2 of - {ok, Module_events@1} -> - Maybe_test_run = begin - _pipe@3 = Module_events@1, - gleam@map:get(_pipe@3, erlang:element(2, Test@1)) - end, - Updated_module_events = case Maybe_test_run of - {ok, {ongoing_test_run, Test_function, Started_at}} -> - _pipe@4 = Module_events@1, - gleam@map:insert( - _pipe@4, - erlang:element(2, Test@1), - {completed_test_run, - Test_function, - Current_time@1 - Started_at, - Result} - ); - - {error, _} -> - Module_events@1 - end, - _pipe@5 = Events, - gleam@map:insert( - _pipe@5, - erlang:element(2, Module@2), - Updated_module_events - ); - - {error, _} -> - Events - end, - {Test_state, Num_done, New_events@2}; - - {end_test_suite, _} -> - {Test_state, Num_done + 1, Events}; - - {end_test_run, Num_modules} -> - {{finished, Num_modules}, Num_done, Events}; - - _ -> - {running, Num_done, Events} - end, - {handler_state, Updated_test_state, Updated_num_done, Updated_events}. diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@common@test_result.erl b/aoc2023/build/packages/adglent/src/showtime@internal@common@test_result.erl deleted file mode 100644 index b7b73be..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@common@test_result.erl +++ /dev/null @@ -1,54 +0,0 @@ --module(showtime@internal@common@test_result). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([ignore_reason/0, test_return/0, exception/0, reason/0, reason_detail/0, gleam_error_detail/0, class/0, trace_list/0, trace/0, extra_info/0, arity_/0]). - --type ignore_reason() :: ignore. - --type test_return() :: {test_function_return, - gleam@dynamic:dynamic_(), - list(binary())} | - {ignored, ignore_reason()}. - --type exception() :: {erlang_exception, - class(), - reason(), - trace_list(), - list(binary())}. - --type reason() :: {assert_equal, list(reason_detail())} | - {assert_not_equal, list(reason_detail())} | - {assert_match, list(reason_detail())} | - {gleam_error, gleam_error_detail()} | - {gleam_assert, gleam@dynamic:dynamic_(), integer()} | - {generic_exception, gleam@dynamic:dynamic_()}. - --type reason_detail() :: {module, binary()} | - {reason_line, integer()} | - {expression, binary()} | - {expected, gleam@dynamic:dynamic_()} | - {value, gleam@dynamic:dynamic_()} | - {pattern, binary()}. - --type gleam_error_detail() :: {let_assert, - binary(), - binary(), - integer(), - binary(), - gleam@dynamic:dynamic_()}. - --type class() :: erlang_error | exit | throw. - --type trace_list() :: {trace_list, list(trace())}. - --type trace() :: {trace, binary(), arity_(), list(extra_info())} | - {trace_module, binary(), binary(), arity_(), list(extra_info())}. - --type extra_info() :: {error_info, - gleam@map:map_(gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_())} | - {file, binary()} | - {line, integer()}. - --type arity_() :: {num, integer()} | {arg_list, list(gleam@dynamic:dynamic_())}. - - diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@common@test_suite.erl b/aoc2023/build/packages/adglent/src/showtime@internal@common@test_suite.erl deleted file mode 100644 index 6a56de8..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@common@test_suite.erl +++ /dev/null @@ -1,30 +0,0 @@ --module(showtime@internal@common@test_suite). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([test_run/0, test_module/0, test_function/0, test_suite/0, test_event/0]). - --type test_run() :: {ongoing_test_run, test_function(), integer()} | - {completed_test_run, - test_function(), - integer(), - {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()}}. - --type test_module() :: {test_module, binary(), gleam@option:option(binary())}. - --type test_function() :: {test_function, binary()}. - --type test_suite() :: {test_suite, test_module(), list(test_function())}. - --type test_event() :: start_test_run | - {start_test_suite, test_module()} | - {start_test, test_module(), test_function()} | - {end_test, - test_module(), - test_function(), - {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()}} | - {end_test_suite, test_module()} | - {end_test_run, integer()}. - - diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@discover.erl b/aoc2023/build/packages/adglent/src/showtime@internal@erlang@discover.erl deleted file mode 100644 index f0548aa..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@discover.erl +++ /dev/null @@ -1,230 +0,0 @@ --module(showtime@internal@erlang@discover). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([collect_modules/2, collect_test_functions/1]). - --spec get_module_prefix(binary()) -> binary(). -get_module_prefix(Path) -> - Path_without_test = begin - _pipe = Path, - gleam@string:replace(_pipe, <<"./test"/utf8>>, <<""/utf8>>) - end, - Path_without_leading_slash = case gleam@string:starts_with( - Path_without_test, - <<"/"/utf8>> - ) of - true -> - gleam@string:drop_left(Path_without_test, 1); - - false -> - Path_without_test - end, - Module_prefix = begin - _pipe@1 = Path_without_leading_slash, - gleam@string:replace(_pipe@1, <<"/"/utf8>>, <<"@"/utf8>>) - end, - case gleam@string:length(Module_prefix) of - 0 -> - Module_prefix; - - _ -> - <> - end. - --spec collect_modules_in_folder( - binary(), - fun((showtime@internal@common@test_suite:test_module()) -> nil), - gleam@option:option(list(binary())) -) -> list(showtime@internal@common@test_suite:test_module()). -collect_modules_in_folder(Path, Test_module_handler, Only_modules) -> - Module_prefix = get_module_prefix(Path), - _assert_subject = simplifile:read_directory(Path), - {ok, Files} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/erlang/discover"/utf8>>, - function => <<"collect_modules_in_folder"/utf8>>, - line => 40}) - end, - Test_modules_in_folder = begin - _pipe = Files, - _pipe@1 = gleam@list:filter( - _pipe, - fun(_capture) -> - gleam@string:ends_with(_capture, <<"_test.gleam"/utf8>>) - end - ), - gleam@list:filter_map( - _pipe@1, - fun(Test_module_file) -> - Module_name = <>, - <<""/utf8>> - ) - end)/binary>>, - case Only_modules of - {some, Only_modules_list} -> - Module_in_list = begin - _pipe@3 = Only_modules_list, - gleam@list:any( - _pipe@3, - fun(Only_module_name) -> - Only_module_name =:= begin - _pipe@4 = Module_name, - gleam@string:replace( - _pipe@4, - <<"@"/utf8>>, - <<"/"/utf8>> - ) - end - end - ) - end, - case Module_in_list of - true -> - Test_module = {test_module, - Module_name, - {some, Test_module_file}}, - Test_module_handler(Test_module), - {ok, Test_module}; - - false -> - {error, nil} - end; - - none -> - Test_module@1 = {test_module, - Module_name, - {some, Test_module_file}}, - Test_module_handler(Test_module@1), - {ok, Test_module@1} - end - end - ) - end, - Test_modules_in_subfolders = begin - _pipe@5 = Files, - _pipe@6 = gleam@list:map( - _pipe@5, - fun(Filename) -> - <<<>/binary, Filename/binary>> - end - ), - _pipe@7 = gleam@list:filter( - _pipe@6, - fun(File) -> simplifile:is_directory(File) end - ), - gleam@list:fold( - _pipe@7, - [], - fun(Modules, Subfolder) -> _pipe@8 = Modules, - gleam@list:append( - _pipe@8, - collect_modules_in_folder( - Subfolder, - Test_module_handler, - Only_modules - ) - ) end - ) - end, - _pipe@9 = Test_modules_in_folder, - gleam@list:append(_pipe@9, Test_modules_in_subfolders). - --spec collect_modules( - fun((showtime@internal@common@test_suite:test_module()) -> nil), - gleam@option:option(list(binary())) -) -> list(showtime@internal@common@test_suite:test_module()). -collect_modules(Test_module_handler, Only_modules) -> - collect_modules_in_folder( - <<"./test"/utf8>>, - Test_module_handler, - Only_modules - ). - --spec collect_test_functions(showtime@internal@common@test_suite:test_module()) -> showtime@internal@common@test_suite:test_suite(). -collect_test_functions(Module) -> - Test_functions = begin - _pipe = erlang:apply( - erlang:binary_to_atom(erlang:element(2, Module)), - erlang:binary_to_atom(<<"module_info"/utf8>>), - [gleam@dynamic:from(erlang:binary_to_atom(<<"exports"/utf8>>))] - ), - gleam@dynamic:unsafe_coerce(_pipe) - end, - Test_functions_filtered = begin - _pipe@1 = Test_functions, - _pipe@3 = gleam@list:map( - _pipe@1, - fun(Entry) -> - {Name, Arity} = case Entry of - {_, _} -> Entry; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/erlang/discover"/utf8>>, - function => <<"collect_test_functions"/utf8>>, - line => 131}) - end, - {begin - _pipe@2 = Name, - erlang:atom_to_binary(_pipe@2) - end, - Arity} - end - ), - _pipe@4 = gleam@list:filter_map( - _pipe@3, - fun(Entry@1) -> - {Name@1, Arity@1} = case Entry@1 of - {_, _} -> Entry@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"showtime/internal/erlang/discover"/utf8>>, - function => <<"collect_test_functions"/utf8>>, - line => 139}) - end, - case gleam@string:ends_with(Name@1, <<"_test"/utf8>>) of - true -> - case Arity@1 of - 0 -> - {ok, Name@1}; - - _ -> - gleam@io:println( - <<<<<<<<"WARNING: function \""/utf8, - Name@1/binary>>/binary, - "\" has arity: "/utf8>>/binary, - (gleam@int:to_string(Arity@1))/binary>>/binary, - " - cannot be used as test (needs to be 0)"/utf8>> - ), - {error, <<"Wrong arity"/utf8>>} - end; - - false -> - {error, <<"Non matching name"/utf8>>} - end - end - ), - _pipe@5 = gleam@list:filter( - _pipe@4, - fun(_capture) -> - gleam@string:ends_with(_capture, <<"_test"/utf8>>) - end - ), - gleam@list:map( - _pipe@5, - fun(Function_name) -> {test_function, Function_name} end - ) - end, - {test_suite, Module, Test_functions_filtered}. diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@event_handler.erl b/aoc2023/build/packages/adglent/src/showtime@internal@erlang@event_handler.erl deleted file mode 100644 index d72ce2c..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@event_handler.erl +++ /dev/null @@ -1,76 +0,0 @@ --module(showtime@internal@erlang@event_handler). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([start/0]). --export_type([event_handler_message/0]). - --type event_handler_message() :: {event_handler_message, - showtime@internal@common@test_suite:test_event(), - gleam@erlang@process:subject(integer())}. - --spec system_time() -> integer(). -system_time() -> - os:system_time(millisecond). - --spec start() -> fun((showtime@internal@common@test_suite:test_event()) -> nil). -start() -> - _assert_subject = gleam@otp@actor:start( - {not_started, 0, gleam@map:new()}, - fun(Msg, State) -> - {event_handler_message, Test_event, Reply_to} = Msg, - {Test_state, Num_done, Events} = State, - Updated_state = showtime@internal@common@common_event_handler:handle_event( - Test_event, - fun system_time/0, - {handler_state, Test_state, Num_done, Events} - ), - case Updated_state of - {handler_state, {finished, Num_modules}, Num_done@1, Events@1} when Num_done@1 =:= Num_modules -> - {Test_report, Num_failed} = showtime@internal@reports@formatter:create_test_report( - Events@1 - ), - gleam@io:println(Test_report), - gleam@erlang@process:send(Reply_to, Num_failed), - {stop, normal}; - - {handler_state, Test_state@1, Num_done@2, Events@2} -> - {continue, {Test_state@1, Num_done@2, Events@2}, none} - end - end - ), - {ok, Subject} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/erlang/event_handler"/utf8>>, - function => <<"start"/utf8>>, - line => 32}) - end, - Parent_subject = gleam@erlang@process:new_subject(), - Selector = begin - _pipe = gleam_erlang_ffi:new_selector(), - gleam@erlang@process:selecting(_pipe, Parent_subject, fun(X) -> X end) - end, - fun(Test_event@1) -> case Test_event@1 of - {end_test_run, _} -> - gleam@erlang@process:send( - Subject, - {event_handler_message, Test_event@1, Parent_subject} - ), - Num_failed@1 = gleam_erlang_ffi:select(Selector), - case Num_failed@1 > 0 of - true -> - erlang:halt(1); - - false -> - erlang:halt(0) - end; - - _ -> - gleam@erlang@process:send( - Subject, - {event_handler_message, Test_event@1, Parent_subject} - ) - end end. diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl b/aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl deleted file mode 100644 index a6959f5..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl +++ /dev/null @@ -1,53 +0,0 @@ --module(showtime@internal@erlang@module_handler). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([start/5]). - --spec start( - fun((showtime@internal@common@test_suite:test_event()) -> nil), - fun((showtime@internal@common@test_suite:test_module()) -> showtime@internal@common@test_suite:test_suite()), - fun((showtime@internal@common@test_suite:test_suite(), fun((showtime@internal@common@test_suite:test_event()) -> nil), list(binary()), showtime@internal@common@cli:capture()) -> nil), - list(binary()), - showtime@internal@common@cli:capture() -) -> fun((showtime@internal@common@test_suite:test_module()) -> nil). -start( - Test_event_handler, - Test_function_collector, - Run_test_suite, - Ignore_tags, - Capture -) -> - _assert_subject = gleam@otp@actor:start( - nil, - fun(Module, State) -> - gleam@erlang@process:start( - fun() -> - Test_suite = Test_function_collector(Module), - Test_event_handler({start_test_suite, Module}), - Run_test_suite( - Test_suite, - Test_event_handler, - Ignore_tags, - Capture - ), - Test_event_handler({end_test_suite, Module}) - end, - false - ), - {continue, State, none} - end - ), - {ok, Subject} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/erlang/module_handler"/utf8>>, - function => <<"start"/utf8>>, - line => 23}) - end, - fun(Test_module) -> - gleam@erlang@process:send(Subject, Test_module), - nil - end. diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@runner.erl b/aoc2023/build/packages/adglent/src/showtime@internal@erlang@runner.erl deleted file mode 100644 index 702fb75..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@runner.erl +++ /dev/null @@ -1,46 +0,0 @@ --module(showtime@internal@erlang@runner). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([run_test/4, run_test_suite/4]). - --spec run_test( - binary(), - binary(), - list(binary()), - showtime@internal@common@cli:capture() -) -> {ok, showtime@internal@common@test_result:test_return()} | - {error, showtime@internal@common@test_result:exception()}. -run_test(Module_name, Test_name, Ignore_tags, Capture) -> - Result = showtime_ffi:run_test( - erlang:binary_to_atom(Module_name), - erlang:binary_to_atom(Test_name), - Ignore_tags, - Capture - ), - Result. - --spec run_test_suite( - showtime@internal@common@test_suite:test_suite(), - fun((showtime@internal@common@test_suite:test_event()) -> nil), - list(binary()), - showtime@internal@common@cli:capture() -) -> nil. -run_test_suite(Test_suite, Test_event_handler, Ignore_tags, Capture) -> - _pipe = erlang:element(3, Test_suite), - gleam@list:each( - _pipe, - fun(Test) -> - Test_event_handler( - {start_test, erlang:element(2, Test_suite), Test} - ), - Result = run_test( - erlang:element(2, erlang:element(2, Test_suite)), - erlang:element(2, Test), - Ignore_tags, - Capture - ), - Test_event_handler( - {end_test, erlang:element(2, Test_suite), Test, Result} - ) - end - ). diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@reports@compare.erl b/aoc2023/build/packages/adglent/src/showtime@internal@reports@compare.erl deleted file mode 100644 index d2969b2..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@reports@compare.erl +++ /dev/null @@ -1,61 +0,0 @@ --module(showtime@internal@reports@compare). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([compare/2]). - --spec compare(gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> {binary(), - binary()}. -compare(Expected, Got) -> - Expected_as_list = begin - _pipe = Expected, - (gleam@dynamic:list(fun gleam@dynamic:dynamic/1))(_pipe) - end, - Got_as_list = begin - _pipe@1 = Got, - (gleam@dynamic:list(fun gleam@dynamic:dynamic/1))(_pipe@1) - end, - Expected_as_string = begin - _pipe@2 = Expected, - gleam@dynamic:string(_pipe@2) - end, - Got_as_string = begin - _pipe@3 = Got, - gleam@dynamic:string(_pipe@3) - end, - case {Expected_as_list, Got_as_list, Expected_as_string, Got_as_string} of - {{ok, Expected_list}, {ok, Got_list}, _, _} -> - Comparison = begin - _pipe@4 = gap:compare_lists(Expected_list, Got_list), - _pipe@5 = gap@styling:from_comparison(_pipe@4), - _pipe@6 = gap@styling:highlight( - _pipe@5, - fun showtime@internal@reports@styles:expected_highlight/1, - fun showtime@internal@reports@styles:got_highlight/1, - fun(Item) -> Item end - ), - gap@styling:to_styled_comparison(_pipe@6) - end, - {erlang:element(2, Comparison), erlang:element(3, Comparison)}; - - {_, _, {ok, Expected_string}, {ok, Got_string}} -> - Comparison@1 = begin - _pipe@7 = gap:compare_strings(Expected_string, Got_string), - _pipe@8 = gap@styling:from_comparison(_pipe@7), - _pipe@9 = gap@styling:highlight( - _pipe@8, - fun showtime@internal@reports@styles:expected_highlight/1, - fun showtime@internal@reports@styles:got_highlight/1, - fun(Item@1) -> Item@1 end - ), - gap@styling:to_styled_comparison(_pipe@9) - end, - {erlang:element(2, Comparison@1), erlang:element(3, Comparison@1)}; - - {_, _, _, _} -> - {showtime@internal@reports@styles:expected_highlight( - gleam@string:inspect(Expected) - ), - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Got) - )} - end. diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@reports@formatter.erl b/aoc2023/build/packages/adglent/src/showtime@internal@reports@formatter.erl deleted file mode 100644 index faea091..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@reports@formatter.erl +++ /dev/null @@ -1,749 +0,0 @@ --module(showtime@internal@reports@formatter). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([create_test_report/1]). --export_type([glee_unit_assertion_type/0, module_and_test/0, unified_error/0]). - --type glee_unit_assertion_type() :: {glee_unit_assert_equal, binary()} | - {glee_unit_assert_not_equal, binary()} | - {glee_unit_assert_match, binary()}. - --type module_and_test() :: {module_and_test_run, - binary(), - showtime@internal@common@test_suite:test_run()}. - --type unified_error() :: {unified_error, - gleam@option:option(showtime@tests@meta:meta()), - binary(), - binary(), - binary(), - binary(), - gleam@option:option(integer()), - list(showtime@internal@common@test_result:trace())}. - --spec erlang_error_to_unified( - list(showtime@internal@common@test_result:reason_detail()), - glee_unit_assertion_type(), - list(showtime@internal@common@test_result:trace()) -) -> unified_error(). -erlang_error_to_unified(Error_details, Assertion_type, Stacktrace) -> - _pipe = Error_details, - gleam@list:fold( - _pipe, - {unified_error, - none, - <<"not_set"/utf8>>, - erlang:element(2, Assertion_type), - <<""/utf8>>, - <<""/utf8>>, - none, - Stacktrace}, - fun(Unified, Reason) -> case Reason of - {expression, Expression} -> - erlang:setelement(3, Unified, Expression); - - {expected, Value} -> - case Assertion_type of - {glee_unit_assert_equal, _} -> - erlang:setelement( - 5, - Unified, - showtime@internal@reports@styles:expected_highlight( - gleam@string:inspect(Value) - ) - ); - - _ -> - Unified - end; - - {value, Value@1} -> - case Assertion_type of - {glee_unit_assert_not_equal, _} -> - erlang:setelement( - 6, - erlang:setelement( - 5, - Unified, - <<(showtime@internal@reports@styles:not_style( - <<"not "/utf8>> - ))/binary, - (gleam@string:inspect(Value@1))/binary>> - ), - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Value@1) - ) - ); - - _ -> - erlang:setelement( - 6, - Unified, - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Value@1) - ) - ) - end; - - {pattern, Pattern} -> - case Pattern of - <<"{ ok , _ }"/utf8>> -> - erlang:setelement( - 5, - Unified, - showtime@internal@reports@styles:expected_highlight( - <<"Ok(_)"/utf8>> - ) - ); - - <<"{ error , _ }"/utf8>> -> - erlang:setelement( - 5, - Unified, - showtime@internal@reports@styles:expected_highlight( - <<"Error(_)"/utf8>> - ) - ); - - _ -> - Unified - end; - - _ -> - Unified - end end - ). - --spec gleam_error_to_unified( - showtime@internal@common@test_result:gleam_error_detail(), - list(showtime@internal@common@test_result:trace()) -) -> unified_error(). -gleam_error_to_unified(Gleam_error, Stacktrace) -> - case Gleam_error of - {let_assert, _, _, _, _, Value} -> - Result = gleam@dynamic:unsafe_coerce(Value), - {error, Assertion} = case Result of - {error, _} -> Result; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/internal/reports/formatter"/utf8>>, - function => <<"gleam_error_to_unified"/utf8>>, - line => 293}) - end, - case Assertion of - {eq, Got, Expected, Meta} -> - {Expected@1, Got@1} = showtime@internal@reports@compare:compare( - Expected, - Got - ), - {unified_error, - Meta, - <<"assert"/utf8>>, - <<"Assert equal"/utf8>>, - Expected@1, - Got@1, - none, - Stacktrace}; - - {not_eq, Got@2, Expected@2, Meta@1} -> - {unified_error, - Meta@1, - <<"assert"/utf8>>, - <<"Assert not equal"/utf8>>, - <<(showtime@internal@reports@styles:not_style( - <<"not "/utf8>> - ))/binary, - (gleam@string:inspect(Expected@2))/binary>>, - gleam@string:inspect(Got@2), - none, - Stacktrace}; - - {is_ok, Got@3, Meta@2} -> - {unified_error, - Meta@2, - <<"assert"/utf8>>, - <<"Assert is Ok"/utf8>>, - showtime@internal@reports@styles:expected_highlight( - <<"Ok(_)"/utf8>> - ), - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Got@3) - ), - none, - Stacktrace}; - - {is_error, Got@4, Meta@3} -> - {unified_error, - Meta@3, - <<"assert"/utf8>>, - <<"Assert is Ok"/utf8>>, - showtime@internal@reports@styles:expected_highlight( - <<"Error(_)"/utf8>> - ), - showtime@internal@reports@styles:got_highlight( - gleam@string:inspect(Got@4) - ), - none, - Stacktrace}; - - {fail, Meta@4} -> - {unified_error, - Meta@4, - <<"assert"/utf8>>, - <<"Assert is Ok"/utf8>>, - showtime@internal@reports@styles:got_highlight( - <<"should.fail()"/utf8>> - ), - showtime@internal@reports@styles:got_highlight( - <<"N/A - test always expected to fail"/utf8>> - ), - none, - Stacktrace} - end - end. - --spec format_reason(unified_error(), binary(), binary(), list(binary())) -> list(list(showtime@internal@reports@table:col())). -format_reason(Error, Module, Function, Output_buffer) -> - Meta@1 = case erlang:element(2, Error) of - {some, Meta} -> - {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Description"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left, {content, erlang:element(2, Meta)}, 0}]}; - - none -> - none - end, - Stacktrace = begin - _pipe = erlang:element(8, Error), - gleam@list:map(_pipe, fun(Trace) -> case Trace of - {trace, Function@1, _, _} when Function@1 =:= <<""/utf8>> -> - <<"(anonymous)"/utf8>>; - - {trace_module, Module@1, Function@2, _, _} when Function@2 =:= <<""/utf8>> -> - <<<>/binary, - "(anonymous)"/utf8>>; - - {trace, Function@3, _, _} -> - Function@3; - - {trace_module, Module@2, Function@4, _, _} -> - <<<>/binary, - Function@4/binary>> - end end) - end, - Stacktrace_rows = case Stacktrace of - [] -> - []; - - [First | Rest] -> - First_row = {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Stacktrace"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left, - {styled_content, - showtime@internal@reports@styles:stacktrace_style( - First - )}, - 0}]}, - Rest_rows = begin - _pipe@1 = Rest, - gleam@list:map( - _pipe@1, - fun(Row) -> - {some, - [{align_right, {content, <<""/utf8>>}, 2}, - {separator, <<" "/utf8>>}, - {align_left, - {styled_content, - showtime@internal@reports@styles:stacktrace_style( - Row - )}, - 0}]} - end - ) - end, - [First_row | Rest_rows] - end, - Output_rows = case begin - _pipe@2 = Output_buffer, - _pipe@3 = gleam@list:reverse(_pipe@2), - gleam@list:map( - _pipe@3, - fun(Row@1) -> gleam@string:trim_right(Row@1) end - ) - end of - [] -> - []; - - [First@1 | Rest@1] -> - First_row@1 = {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Output"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left_overflow, - {styled_content, - showtime@internal@reports@styles:stacktrace_style( - First@1 - )}, - 0}]}, - Rest_rows@1 = begin - _pipe@4 = Rest@1, - gleam@list:map( - _pipe@4, - fun(Row@2) -> - {some, - [{align_right, {content, <<""/utf8>>}, 2}, - {separator, <<" "/utf8>>}, - {align_left_overflow, - {styled_content, - showtime@internal@reports@styles:stacktrace_style( - Row@2 - )}, - 0}]} - end - ) - end, - [First_row@1 | Rest_rows@1] - end, - Line@1 = begin - _pipe@5 = erlang:element(7, Error), - _pipe@6 = gleam@option:map( - _pipe@5, - fun(Line) -> <<":"/utf8, (gleam@int:to_string(Line))/binary>> end - ), - gleam@option:unwrap(_pipe@6, <<""/utf8>>) - end, - Arrow = <<(gleam@string:join( - gleam@list:repeat( - <<"-"/utf8>>, - (gleam@string:length(Module) + 1) + ((gleam@string:length( - Function - ) - + gleam@string:length(Line@1)) - div 2) - ), - <<""/utf8>> - ))/binary, - "⌄"/utf8>>, - Standard_table_rows = [{some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:error_style( - <<"Failed"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left, {content, Arrow}, 0}]}, - {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Test"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left, - {styled_content, - <<<>/binary, - (showtime@internal@reports@styles:function_style( - <> - ))/binary>>}, - 0}]}, - Meta@1, - {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Expected"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left_overflow, - {styled_content, erlang:element(5, Error)}, - 0}]}, - {some, - [{align_right, - {styled_content, - showtime@internal@reports@styles:heading_style( - <<"Got"/utf8>> - )}, - 2}, - {separator, <<": "/utf8>>}, - {align_left_overflow, - {styled_content, erlang:element(6, Error)}, - 0}]}], - _pipe@7 = Standard_table_rows, - _pipe@8 = gleam@list:append(_pipe@7, Stacktrace_rows), - _pipe@9 = gleam@list:append(_pipe@8, Output_rows), - _pipe@10 = gleam@list:append( - _pipe@9, - [{some, - [{align_right, {content, <<""/utf8>>}, 0}, - {align_right, {content, <<""/utf8>>}, 0}, - {align_right, {content, <<""/utf8>>}, 0}]}] - ), - gleam@list:filter_map( - _pipe@10, - fun(Row@3) -> gleam@option:to_result(Row@3, nil) end - ). - --spec create_test_report( - gleam@map:map_(binary(), gleam@map:map_(binary(), showtime@internal@common@test_suite:test_run())) -) -> {binary(), integer()}. -create_test_report(Test_results) -> - All_test_runs = begin - _pipe = Test_results, - _pipe@1 = gleam@map:values(_pipe), - gleam@list:flat_map(_pipe@1, fun gleam@map:values/1) - end, - Failed_test_runs = begin - _pipe@2 = Test_results, - _pipe@3 = gleam@map:to_list(_pipe@2), - gleam@list:flat_map( - _pipe@3, - fun(Entry) -> - {Module_name, Test_module_results} = Entry, - _pipe@4 = Test_module_results, - _pipe@5 = gleam@map:values(_pipe@4), - gleam@list:filter_map(_pipe@5, fun(Test_run) -> case Test_run of - {completed_test_run, _, _, Result} -> - case Result of - {error, _} -> - {ok, - {module_and_test_run, - Module_name, - Test_run}}; - - {ok, {ignored, _}} -> - {error, nil}; - - {ok, _} -> - {error, nil} - end; - - _ -> - _pipe@6 = Test_run, - gleam@io:debug(_pipe@6), - {error, nil} - end end) - end - ) - end, - Ignored_test_runs = begin - _pipe@7 = Test_results, - _pipe@8 = gleam@map:to_list(_pipe@7), - gleam@list:flat_map( - _pipe@8, - fun(Entry@1) -> - {Module_name@1, Test_module_results@1} = Entry@1, - _pipe@9 = Test_module_results@1, - _pipe@10 = gleam@map:values(_pipe@9), - gleam@list:filter_map( - _pipe@10, - fun(Test_run@1) -> case Test_run@1 of - {completed_test_run, Test_function, _, Result@1} -> - case Result@1 of - {ok, {ignored, Reason}} -> - {ok, - {<<<>/binary, - (erlang:element( - 2, - Test_function - ))/binary>>, - Reason}}; - - _ -> - {error, nil} - end; - - _ -> - {error, nil} - end end - ) - end - ) - end, - Failed_tests_report = begin - _pipe@11 = Failed_test_runs, - _pipe@12 = gleam@list:filter_map( - _pipe@11, - fun(Module_and_test_run) -> - case erlang:element(3, Module_and_test_run) of - {completed_test_run, Test_function@1, _, Result@2} -> - case Result@2 of - {error, Exception} -> - case erlang:element(3, Exception) of - {assert_equal, Reason_details} -> - {ok, - format_reason( - erlang_error_to_unified( - Reason_details, - {glee_unit_assert_equal, - <<"Assert equal"/utf8>>}, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - ) - ), - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {assert_not_equal, Reason_details@1} -> - {ok, - format_reason( - erlang_error_to_unified( - Reason_details@1, - {glee_unit_assert_not_equal, - <<"Assert not equal"/utf8>>}, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - ) - ), - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {assert_match, Reason_details@2} -> - {ok, - format_reason( - erlang_error_to_unified( - Reason_details@2, - {glee_unit_assert_match, - <<"Assert match"/utf8>>}, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - ) - ), - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {gleam_error, Reason@1} -> - {ok, - format_reason( - gleam_error_to_unified( - Reason@1, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - ) - ), - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {gleam_assert, Value, Line_no} -> - {ok, - format_reason( - {unified_error, - none, - <<"gleam assert"/utf8>>, - <<"Assert failed"/utf8>>, - <<"Patterns should match"/utf8>>, - showtime@internal@reports@styles:error_style( - gleam@string:inspect( - Value - ) - ), - {some, Line_no}, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - )}, - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - {generic_exception, Value@1} -> - {ok, - format_reason( - {unified_error, - none, - <<"generic exception"/utf8>>, - <<"Test function threw an exception"/utf8>>, - <<"Exception in test function"/utf8>>, - showtime@internal@reports@styles:error_style( - gleam@string:inspect( - Value@1 - ) - ), - none, - erlang:element( - 2, - erlang:element( - 4, - Exception - ) - )}, - erlang:element( - 2, - Module_and_test_run - ), - erlang:element( - 2, - Test_function@1 - ), - erlang:element(5, Exception) - )}; - - Other -> - gleam@io:println( - <<"Other: "/utf8, - (gleam@string:inspect(Other))/binary>> - ), - erlang:error(#{gleam_error => panic, - message => <<"panic expression evaluated"/utf8>>, - module => <<"showtime/internal/reports/formatter"/utf8>>, - function => <<"create_test_report"/utf8>>, - line => 178}), - {error, nil} - end; - - _ -> - {error, nil} - end; - - _ -> - {error, nil} - end - end - ), - gleam@list:fold( - _pipe@12, - [], - fun(Rows, Test_rows) -> gleam@list:append(Rows, Test_rows) end - ) - end, - All_test_execution_time_reports = begin - _pipe@13 = All_test_runs, - gleam@list:filter_map(_pipe@13, fun(Test_run@2) -> case Test_run@2 of - {completed_test_run, Test_function@2, Total_time, _} -> - {ok, - <<<<<<(erlang:element(2, Test_function@2))/binary, - ": "/utf8>>/binary, - (gleam@int:to_string(Total_time))/binary>>/binary, - " ms"/utf8>>}; - - _ -> - {error, nil} - end end) - end, - _ = begin - _pipe@14 = All_test_execution_time_reports, - gleam@string:join(_pipe@14, <<"\n"/utf8>>) - end, - All_tests_count = begin - _pipe@15 = All_test_runs, - gleam@list:length(_pipe@15) - end, - Ignored_tests_count = begin - _pipe@16 = Ignored_test_runs, - gleam@list:length(_pipe@16) - end, - Failed_tests_count = begin - _pipe@17 = Failed_test_runs, - gleam@list:length(_pipe@17) - end, - Passed = showtime@internal@reports@styles:passed_style( - <<(gleam@int:to_string( - (All_tests_count - Failed_tests_count) - Ignored_tests_count - ))/binary, - " passed"/utf8>> - ), - Failed = showtime@internal@reports@styles:failed_style( - <<(gleam@int:to_string(Failed_tests_count))/binary, " failed"/utf8>> - ), - Ignored = case Ignored_tests_count of - 0 -> - <<""/utf8>>; - - _ -> - <<", "/utf8, - (showtime@internal@reports@styles:ignored_style( - <<(gleam@int:to_string(Ignored_tests_count))/binary, - " ignored"/utf8>> - ))/binary>> - end, - Failed_tests_table = begin - _pipe@18 = {table, none, Failed_tests_report}, - _pipe@19 = showtime@internal@reports@table:align_table(_pipe@18), - showtime@internal@reports@table:to_string(_pipe@19) - end, - Test_report = <<<<<<<<<<<<"\n"/utf8, Failed_tests_table/binary>>/binary, - "\n"/utf8>>/binary, - Passed/binary>>/binary, - ", "/utf8>>/binary, - Failed/binary>>/binary, - Ignored/binary>>, - {Test_report, Failed_tests_count}. diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@reports@styles.erl b/aoc2023/build/packages/adglent/src/showtime@internal@reports@styles.erl deleted file mode 100644 index ec6230c..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@reports@styles.erl +++ /dev/null @@ -1,93 +0,0 @@ --module(showtime@internal@reports@styles). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([not_style/1, module_style/1, heading_style/1, stacktrace_style/1, failed_style/1, error_style/1, got_highlight/1, passed_style/1, expected_highlight/1, ignored_style/1, function_style/1, strip_style/1]). - --spec not_style(binary()) -> binary(). -not_style(Text) -> - gleam_community@ansi:bold(Text). - --spec module_style(binary()) -> binary(). -module_style(Text) -> - gleam_community@ansi:cyan(Text). - --spec heading_style(binary()) -> binary(). -heading_style(Text) -> - gleam_community@ansi:cyan(Text). - --spec stacktrace_style(binary()) -> binary(). -stacktrace_style(Text) -> - Text. - --spec bold_red(binary()) -> binary(). -bold_red(Text) -> - gleam_community@ansi:bold(gleam_community@ansi:red(Text)). - --spec failed_style(binary()) -> binary(). -failed_style(Text) -> - bold_red(Text). - --spec error_style(binary()) -> binary(). -error_style(Text) -> - bold_red(Text). - --spec got_highlight(binary()) -> binary(). -got_highlight(Text) -> - bold_red(Text). - --spec bold_green(binary()) -> binary(). -bold_green(Text) -> - gleam_community@ansi:bold(gleam_community@ansi:green(Text)). - --spec passed_style(binary()) -> binary(). -passed_style(Text) -> - bold_green(Text). - --spec expected_highlight(binary()) -> binary(). -expected_highlight(Text) -> - bold_green(Text). - --spec bold_yellow(binary()) -> binary(). -bold_yellow(Text) -> - gleam_community@ansi:bold(gleam_community@ansi:yellow(Text)). - --spec ignored_style(binary()) -> binary(). -ignored_style(Text) -> - bold_yellow(Text). - --spec bold_cyan(binary()) -> binary(). -bold_cyan(Text) -> - gleam_community@ansi:bold(gleam_community@ansi:cyan(Text)). - --spec function_style(binary()) -> binary(). -function_style(Text) -> - bold_cyan(Text). - --spec strip_style(binary()) -> binary(). -strip_style(Text) -> - {New_text, _} = begin - _pipe = Text, - _pipe@1 = gleam@string:to_graphemes(_pipe), - gleam@list:fold( - _pipe@1, - {<<""/utf8>>, false}, - fun(Acc, Char) -> - {Str, Removing} = Acc, - Bit_char = gleam_stdlib:identity(Char), - case {Bit_char, Removing} of - {<<16#1b>>, _} -> - {Str, true}; - - {<<16#6d>>, true} -> - {Str, false}; - - {_, true} -> - {Str, true}; - - {_, false} -> - {<>, false} - end - end - ) - end, - New_text. diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@reports@table.erl b/aoc2023/build/packages/adglent/src/showtime@internal@reports@table.erl deleted file mode 100644 index 35dbba3..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@internal@reports@table.erl +++ /dev/null @@ -1,229 +0,0 @@ --module(showtime@internal@reports@table). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([to_string/1, align_table/1]). --export_type([content/0, col/0, table/0]). - --type content() :: {content, binary()} | {styled_content, binary()}. - --type col() :: {align_right, content(), integer()} | - {align_left, content(), integer()} | - {align_right_overflow, content(), integer()} | - {align_left_overflow, content(), integer()} | - {separator, binary()} | - {aligned, binary()}. - --type table() :: {table, gleam@option:option(binary()), list(list(col()))}. - --spec to_string(table()) -> binary(). -to_string(Table) -> - Rows = begin - _pipe = erlang:element(3, Table), - _pipe@3 = gleam@list:map(_pipe, fun(Row) -> _pipe@1 = Row, - _pipe@2 = gleam@list:filter_map(_pipe@1, fun(Col) -> case Col of - {separator, Char} -> - {ok, Char}; - - {aligned, Content} -> - {ok, Content}; - - _ -> - {error, nil} - end end), - gleam@string:join(_pipe@2, <<""/utf8>>) end), - gleam@string:join(_pipe@3, <<"\n"/utf8>>) - end, - Header@1 = begin - _pipe@4 = erlang:element(2, Table), - _pipe@5 = gleam@option:map( - _pipe@4, - fun(Header) -> <
> end - ), - gleam@option:unwrap(_pipe@5, <<""/utf8>>) - end, - <>. - --spec pad_left(binary(), integer(), binary()) -> binary(). -pad_left(Str, Num, Char) -> - Padding = begin - _pipe = gleam@list:repeat(Char, Num), - gleam@string:join(_pipe, <<""/utf8>>) - end, - <>. - --spec pad_right(binary(), integer(), binary()) -> binary(). -pad_right(Str, Num, Char) -> - Padding = begin - _pipe = gleam@list:repeat(Char, Num), - gleam@string:join(_pipe, <<""/utf8>>) - end, - <>. - --spec align_table(table()) -> table(). -align_table(Table) -> - Cols = begin - _pipe = erlang:element(3, Table), - gleam@list:transpose(_pipe) - end, - Col_width = begin - _pipe@1 = Cols, - gleam@list:map(_pipe@1, fun(Col) -> _pipe@2 = Col, - _pipe@3 = gleam@list:map( - _pipe@2, - fun(Content) -> case Content of - {align_right, {content, Unstyled}, _} -> - Unstyled; - - {align_right, {styled_content, Styled}, _} -> - showtime@internal@reports@styles:strip_style( - Styled - ); - - {align_left, {content, Unstyled@1}, _} -> - Unstyled@1; - - {align_left, {styled_content, Styled@1}, _} -> - showtime@internal@reports@styles:strip_style( - Styled@1 - ); - - {align_left_overflow, _, _} -> - <<""/utf8>>; - - {align_right_overflow, _, _} -> - <<""/utf8>>; - - {separator, Char} -> - Char; - - {aligned, Content@1} -> - Content@1 - end end - ), - gleam@list:fold( - _pipe@3, - 0, - fun(Max, Str) -> - gleam@int:max(Max, gleam@string:length(Str)) - end - ) end) - end, - Aligned_col = begin - _pipe@4 = Cols, - _pipe@5 = gleam@list:zip(_pipe@4, Col_width), - gleam@list:map( - _pipe@5, - fun(Col_and_width) -> - {Col@1, Width} = Col_and_width, - _pipe@6 = Col@1, - gleam@list:map(_pipe@6, fun(Content@2) -> case Content@2 of - {align_right, {content, Unstyled@2}, Margin} -> - {aligned, - pad_left( - Unstyled@2, - (Width + Margin) - gleam@string:length( - Unstyled@2 - ), - <<" "/utf8>> - )}; - - {align_right, {styled_content, Styled@2}, Margin@1} -> - {aligned, - pad_left( - Styled@2, - (Width + Margin@1) - gleam@string:length( - showtime@internal@reports@styles:strip_style( - Styled@2 - ) - ), - <<" "/utf8>> - )}; - - {align_right_overflow, - {content, Unstyled@3}, - Margin@2} -> - {aligned, - pad_left( - Unstyled@3, - (Width + Margin@2) - gleam@string:length( - Unstyled@3 - ), - <<" "/utf8>> - )}; - - {align_right_overflow, - {styled_content, Styled@3}, - Margin@3} -> - {aligned, - pad_left( - Styled@3, - (Width + Margin@3) - gleam@string:length( - showtime@internal@reports@styles:strip_style( - Styled@3 - ) - ), - <<" "/utf8>> - )}; - - {align_left, {content, Unstyled@4}, Margin@4} -> - {aligned, - pad_right( - Unstyled@4, - (Width + Margin@4) - gleam@string:length( - Unstyled@4 - ), - <<" "/utf8>> - )}; - - {align_left, {styled_content, Styled@4}, Margin@5} -> - {aligned, - pad_right( - Styled@4, - (Width + Margin@5) - gleam@string:length( - showtime@internal@reports@styles:strip_style( - Styled@4 - ) - ), - <<" "/utf8>> - )}; - - {align_left_overflow, - {content, Unstyled@5}, - Margin@6} -> - {aligned, - pad_right( - Unstyled@5, - (Width + Margin@6) - gleam@string:length( - Unstyled@5 - ), - <<" "/utf8>> - )}; - - {align_left_overflow, - {styled_content, Styled@5}, - Margin@7} -> - {aligned, - pad_right( - Styled@5, - (Width + Margin@7) - gleam@string:length( - showtime@internal@reports@styles:strip_style( - Styled@5 - ) - ), - <<" "/utf8>> - )}; - - {separator, Char@1} -> - {separator, Char@1}; - - {aligned, Content@3} -> - {aligned, Content@3} - end end) - end - ) - end, - Aligned_rows = begin - _pipe@7 = Aligned_col, - gleam@list:transpose(_pipe@7) - end, - erlang:setelement(3, Table, Aligned_rows). diff --git a/aoc2023/build/packages/adglent/src/showtime@tests@meta.erl b/aoc2023/build/packages/adglent/src/showtime@tests@meta.erl deleted file mode 100644 index c975467..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@tests@meta.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(showtime@tests@meta). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([meta/0]). - --type meta() :: {meta, binary(), list(binary())}. - - diff --git a/aoc2023/build/packages/adglent/src/showtime@tests@should.erl b/aoc2023/build/packages/adglent/src/showtime@tests@should.erl deleted file mode 100644 index 29906b4..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@tests@should.erl +++ /dev/null @@ -1,143 +0,0 @@ --module(showtime@tests@should). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([evaluate/1, equal/2, equal_meta/3, not_equal/2, not_equal_meta/3, be_ok/1, be_ok_meta/2, be_error/1, be_error_meta/2, fail/0, fail_meta/1, be_true/1, be_true_meta/2, be_false/1, be_false_meta/2]). --export_type([assertion/2]). - --type assertion(MXP, MXQ) :: {eq, - MXP, - MXP, - gleam@option:option(showtime@tests@meta:meta())} | - {not_eq, MXP, MXP, gleam@option:option(showtime@tests@meta:meta())} | - {is_ok, - {ok, MXP} | {error, MXQ}, - gleam@option:option(showtime@tests@meta:meta())} | - {is_error, - {ok, MXP} | {error, MXQ}, - gleam@option:option(showtime@tests@meta:meta())} | - {fail, gleam@option:option(showtime@tests@meta:meta())}. - --spec evaluate(assertion(any(), any())) -> nil. -evaluate(Assertion) -> - case Assertion of - {eq, A, B, _} -> - case A =:= B of - true -> - nil; - - false -> - showtime_ffi:gleam_error({error, Assertion}) - end; - - {not_eq, A@1, B@1, _} -> - case A@1 /= B@1 of - true -> - nil; - - false -> - showtime_ffi:gleam_error({error, Assertion}) - end; - - {is_ok, A@2, _} -> - case A@2 of - {ok, _} -> - nil; - - {error, _} -> - showtime_ffi:gleam_error({error, Assertion}) - end; - - {is_error, A@3, _} -> - case A@3 of - {error, _} -> - nil; - - {ok, _} -> - showtime_ffi:gleam_error({error, Assertion}) - end; - - {fail, _} -> - showtime_ffi:gleam_error({error, Assertion}) - end. - --spec equal(MXR, MXR) -> nil. -equal(A, B) -> - evaluate({eq, A, B, none}). - --spec equal_meta(MXT, MXT, showtime@tests@meta:meta()) -> nil. -equal_meta(A, B, Meta) -> - evaluate({eq, A, B, {some, Meta}}). - --spec not_equal(MXV, MXV) -> nil. -not_equal(A, B) -> - evaluate({not_eq, A, B, none}). - --spec not_equal_meta(MXX, MXX, showtime@tests@meta:meta()) -> nil. -not_equal_meta(A, B, Meta) -> - evaluate({not_eq, A, B, {some, Meta}}). - --spec be_ok({ok, MXZ} | {error, any()}) -> MXZ. -be_ok(A) -> - evaluate({is_ok, A, none}), - {ok, Value} = case A of - {ok, _} -> A; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/tests/should"/utf8>>, - function => <<"be_ok"/utf8>>, - line => 30}) - end, - Value. - --spec be_ok_meta({ok, any()} | {error, any()}, showtime@tests@meta:meta()) -> nil. -be_ok_meta(A, Meta) -> - evaluate({is_ok, A, {some, Meta}}). - --spec be_error({ok, any()} | {error, MYK}) -> MYK. -be_error(A) -> - evaluate({is_error, A, none}), - {error, Value} = case A of - {error, _} -> A; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"showtime/tests/should"/utf8>>, - function => <<"be_error"/utf8>>, - line => 40}) - end, - Value. - --spec be_error_meta({ok, any()} | {error, any()}, showtime@tests@meta:meta()) -> nil. -be_error_meta(A, Meta) -> - evaluate({is_error, A, {some, Meta}}). - --spec fail() -> nil. -fail() -> - evaluate({fail, none}). - --spec fail_meta(showtime@tests@meta:meta()) -> nil. -fail_meta(Meta) -> - evaluate({fail, {some, Meta}}). - --spec be_true(boolean()) -> nil. -be_true(A) -> - _pipe = A, - equal(_pipe, true). - --spec be_true_meta(boolean(), showtime@tests@meta:meta()) -> nil. -be_true_meta(A, Meta) -> - _pipe = A, - equal_meta(_pipe, true, Meta). - --spec be_false(boolean()) -> nil. -be_false(A) -> - _pipe = A, - equal(_pipe, false). - --spec be_false_meta(boolean(), showtime@tests@meta:meta()) -> nil. -be_false_meta(A, Meta) -> - _pipe = A, - equal_meta(_pipe, false, Meta). diff --git a/aoc2023/build/packages/adglent/src/showtime@tests@test.erl b/aoc2023/build/packages/adglent/src/showtime@tests@test.erl deleted file mode 100644 index 2f23b9f..0000000 --- a/aoc2023/build/packages/adglent/src/showtime@tests@test.erl +++ /dev/null @@ -1,57 +0,0 @@ --module(showtime@tests@test). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([test/2, equal/3, not_equal/3, with_meta/2, be_ok/2, be_error/2, fail/1, be_true/2, be_false/2]). --export_type([test/0, meta_should/1]). - --type test() :: {test, showtime@tests@meta:meta(), fun(() -> nil)}. - --type meta_should(NDO) :: {meta_should, - fun((NDO, NDO) -> nil), - fun((NDO, NDO) -> nil)}. - --spec test(showtime@tests@meta:meta(), fun((showtime@tests@meta:meta()) -> nil)) -> test(). -test(Meta, Test_function) -> - {test, Meta, fun() -> Test_function(Meta) end}. - --spec equal(NDT, NDT, showtime@tests@meta:meta()) -> nil. -equal(A, B, Meta) -> - gleam@io:debug(A), - gleam@io:debug(B), - showtime@tests@should:equal_meta(A, B, Meta). - --spec not_equal(NDV, NDV, showtime@tests@meta:meta()) -> nil. -not_equal(A, B, Meta) -> - showtime@tests@should:equal_meta(A, B, Meta). - --spec with_meta(showtime@tests@meta:meta(), fun((meta_should(any())) -> nil)) -> test(). -with_meta(Meta, Test_function) -> - {test, - Meta, - fun() -> - Test_function( - {meta_should, - fun(A, B) -> equal(A, B, Meta) end, - fun(A@1, B@1) -> not_equal(A@1, B@1, Meta) end} - ) - end}. - --spec be_ok({ok, any()} | {error, any()}, showtime@tests@meta:meta()) -> nil. -be_ok(A, Meta) -> - showtime@tests@should:be_ok_meta(A, Meta). - --spec be_error({ok, any()} | {error, any()}, showtime@tests@meta:meta()) -> nil. -be_error(A, Meta) -> - showtime@tests@should:be_error_meta(A, Meta). - --spec fail(showtime@tests@meta:meta()) -> nil. -fail(Meta) -> - showtime@tests@should:fail_meta(Meta). - --spec be_true(boolean(), showtime@tests@meta:meta()) -> nil. -be_true(A, Meta) -> - showtime@tests@should:be_true_meta(A, Meta). - --spec be_false(boolean(), showtime@tests@meta:meta()) -> nil. -be_false(A, Meta) -> - showtime@tests@should:be_false_meta(A, Meta). diff --git a/aoc2023/build/packages/adglent/src/showtime_ffi.erl b/aoc2023/build/packages/adglent/src/showtime_ffi.erl deleted file mode 100644 index 3259623..0000000 --- a/aoc2023/build/packages/adglent/src/showtime_ffi.erl +++ /dev/null @@ -1,187 +0,0 @@ --module(showtime_ffi). - --export([run_test/4, functions/0, capture_output/1, gleam_error/1]). - -gleam_error(Value) -> - erlang:error(#{ - gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => Value, - module => <<"this/is/not/used"/utf8>>, - function => <<"gleam_error"/utf8>>, - % Not used - line => 0 - }). - -start_output_capture(Capture) -> - OldGroupLeader = group_leader(), - CapturePid = spawn(showtime_ffi, capture_output, [{[], {OldGroupLeader, Capture}}]), - group_leader(CapturePid, self()), - {CapturePid, OldGroupLeader}. - -stop_output_capture({CapturePid, OldGroupLeader}) -> - group_leader(OldGroupLeader, self()), - CapturePid ! {capture_done, self()}, - receive - Buffer -> - Buffer - end. - -capture_output({Buffer, {OldGroupLeader, Capture}}) -> - receive - {io_request, From, ReplyAs, {put_chars, unicode, BitString}} -> - case Capture of - yes -> - From ! {io_reply, ReplyAs, ok}, - capture_output({[BitString | Buffer], {OldGroupLeader, Capture}}); - mixed -> - OldGroupLeader ! {io_request, From, ReplyAs, {put_chars, unicode, BitString}}, - capture_output({[BitString | Buffer], {OldGroupLeader, Capture}}); - no -> - OldGroupLeader ! {io_request, From, ReplyAs, {put_chars, unicode, BitString}}, - capture_output({Buffer, {OldGroupLeader, Capture}}) - end; - {capture_done, SenderPid} -> - SenderPid ! Buffer; - OtherMessage -> - OldGroupLeader ! OtherMessage, - capture_output({Buffer, {OldGroupLeader, Capture}}) - end. - -run_test(Module, Function, IgnoreTags, Capture) -> - OutputCapture = start_output_capture(Capture), - try - Result = apply(Module, Function, []), - {ResultType, FinalResult} = - case Result of - {test, {meta, _Description, Tags}, TestFun} -> - case - lists:any( - fun(Tag) -> - lists:any(fun(IgnoreTag) -> IgnoreTag == Tag end, IgnoreTags) - end, - Tags - ) - of - true -> - {ignored, ignore}; - false -> - {test_function_return, TestFun()} - end; - DirectResult -> - {test_function_return, DirectResult} - end, - OutputCaptureBuffer = stop_output_capture(OutputCapture), - case ResultType of - ignored -> {ok, {ResultType, FinalResult}}; - _ -> {ok, {ResultType, FinalResult, OutputCaptureBuffer}} - end - catch - Class:Reason:Stacktrace -> - GleamReason = - case Reason of - {Assertion, ReasonList} -> - ErlangReasonList = - lists:map( - fun(ReasonDetail) -> - case ReasonDetail of - {line, LineNo} -> - {reason_line, LineNo}; - {expression, List} -> - {expression, list_to_binary(List)}; - {module, ModuleAtom} -> - {module, atom_to_binary(ModuleAtom)}; - {pattern, Pattern} -> - {pattern, list_to_binary(Pattern)}; - Other -> - Other - end - end, - ReasonList - ), - GleamAssertionType = - case Assertion of - assertEqual -> - assert_equal; - assertNotEqual -> - assert_not_equal; - assertMatch -> - assert_match; - OtherAssertionType -> - OtherAssertionType - end, - {GleamAssertionType, ErlangReasonList}; - #{ - function := GleamFunction, - gleam_error := GleamError, - line := Line, - message := Message, - module := GleamModule, - value := Value - } -> - case Value of - {error, {OkValue, _, _, _}} when OkValue == not_eq; OkValue == eq -> - {gleam_error, - {GleamError, GleamModule, GleamFunction, Line, Message, Value}}; - {error, {OkValue, _, _}} when OkValue == is_ok; OkValue == is_error -> - {gleam_error, - {GleamError, GleamModule, GleamFunction, Line, Message, Value}}; - {error, {OkValue, _}} when OkValue == fail -> - {gleam_error, - {GleamError, GleamModule, GleamFunction, Line, Message, Value}}; - _ -> - {gleam_assert, Value, Line} - end; - OtherReason -> - {generic_exception, OtherReason} - end, - GleamClass = - case Class of - error -> - erlang_error; - Other -> - Other - end, - GleamTraceList = - lists:map( - fun(Trace) -> - case Trace of - {ModuleName, FunctionName, Arity, ExtraInfoList} -> - {trace_module, atom_to_binary(ModuleName), - atom_to_binary(FunctionName), map_arity(Arity), - map_extra_info_list(ExtraInfoList)}; - {FunctionName, Arity, ExtraInfoList} -> - {trace, atom_to_binary(FunctionName), map_arity(Arity), - map_extra_info_list(ExtraInfoList)} - end - end, - Stacktrace - ), - OutputCaptureBufferCatch = stop_output_capture(OutputCapture), - {error, - {erlang_exception, GleamClass, GleamReason, {trace_list, GleamTraceList}, - OutputCaptureBufferCatch}} - end. - -map_extra_info_list(ExtraInfoList) -> - lists:map( - fun(ExtraInfo) -> - case ExtraInfo of - {file, FileNameList} -> {file, list_to_binary(FileNameList)}; - Other -> Other - end - end, - ExtraInfoList - ). - -map_arity(Arity) -> - if - is_list(Arity) -> - {arg_list, Arity}; - is_integer(Arity) -> - {num, Arity} - end. - -functions() -> - Funs = module_info(exports), - Funs. diff --git a/aoc2023/build/packages/gap/LICENSE b/aoc2023/build/packages/gap/LICENSE deleted file mode 100644 index d1cec9b..0000000 --- a/aoc2023/build/packages/gap/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2023 John Björk - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/aoc2023/build/packages/gap/README.md b/aoc2023/build/packages/gap/README.md deleted file mode 100644 index 3e02686..0000000 --- a/aoc2023/build/packages/gap/README.md +++ /dev/null @@ -1,202 +0,0 @@ -# gap - -[![Package Version](https://img.shields.io/hexpm/v/gap)](https://hex.pm/packages/gap) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/gap/) - -A Gleam library for comparing strings/lists and producing a textual (styled) representation of the differences. - -A typical styled output from the comparison can look like this: - -Image of two strings with highlighted differences - -## Installation - -If available on Hex this package can be added to your Gleam project: - -```sh -gleam add gap -``` - -Documentation can be found at . - -## Usage - -# Introduction - -Gap implements string/list comparison by finding the longest common subsequence. The result of the comparison are two sequences -(one for each of the compared strings/lists) consisting of subsequences that are annotated as matching or non-matching. - -For example comparing the strings in the example above will look as follows: - -```gleam -let comparison = -compare_strings( - "lucy in the sky with diamonds", - "lucy is the shy with diagrams", -) -|> io.debug() -// StringComparison( -// [ -// Match(["l", "u", "c", "y", " ", "i"]), -// NoMatch(["n"]), -// Match([" ", "t", "h", "e", " ", "s"]), -// NoMatch(["k"]), -// Match(["y", " ", "w", "i", "t", "h", " ", "d", "i", "a", "m"]), -// NoMatch(["o", "n", "d"]), -// Match(["s"]), -// ], -// [ -// Match(["l", "u", "c", "y", " ", "i"]), -// NoMatch(["s", " "]), -// Match([" ", "t", "h", "e", " ", "s"]), -// NoMatch(["h"]), -// Match(["y", " ", "w", "i", "t", "h", " ", "d", "i"]), -// NoMatch(["a", "g", "r"]), -// Match(["a", "m", "s"]), -// ], -// ) -``` - -## Styling - -This is useful information but a bit overwhelming to look at (specially for longer string) so the library -has some built in functions to display the differences using colors instead. - -Using the same example again we can style the result and print it to the console - -```gleam -let comparison = -compare_strings( - "lucy in the sky with diamonds", - "lucy is the shy with diagrams", -) -|> to_styled() -io.println(comparison.first) -io.println(comparison.second) -``` - -This will give us something similar to the output above. - -## Comparing list - -It is also possible to compare lists with elements of arbitrary types. - -```gleam -pub type Warning { - Please - Mind - The(what: String) -} - -compare_lists([Mind, The("Gap")], [Please, Mind, The("What")]) -|> io.debug() -// ListComparison( -// [Match([Mind]), NoMatch([The("Gap")])], -// [NoMatch([Please]), Match([Mind]), NoMatch([The("What")])], -// ) -``` - -## Customize styling - -The visual representation of the comparison can be customized. To do this use a `Styling` created from -the comparison that should be styled. This example uses [gleam_community/ansi](https://hexdocs.pm/gleam_community_ansi/index.html) -to highlight the non-matches in different colors. - -```gleam -let comparison = -compare_strings( - "Strings are made of smaller things", - "Things are maybe smaller string", -) -|> from_comparison() -|> highlight( - fn(first) { ansi.cyan(first) }, - fn(second) { ansi.magenta(second) }, - fn(matching) { matching }, -) -|> to_styled_comparison() -io.println(comparison.first) -io.println(comparison.second) -``` - -This will output something similar to this - -Image of two strings with highlighted differences - -### Serialization - -Furthermore it is also possible to customize the styling by changing the way that the comparison is serialized. An easy way to do -this is to use the utility function `mk_generic_serializer` which creates a serializer which some specific separator and a hook -for surrounding the result with some content. Here is a somewhat contrived example - -```gleam -let comparison = -compare_lists(["one", "two", "three"], ["two", "two", "tree"]) -|> from_comparison() -|> highlight( - fn(first) { first <> " was not found in other" }, - fn(second) { second <> " was not found in other" }, -) -|> serialize(mk_generic_serializer( - ", and ", - fn(result) { "Comparing the lists gave the following result: " <> result }, -)) -|> to_styled_comparison() -io.println(comparison.first) -io.println(comparison.second) -// Comparing the lists gave the following result: "one" was not found in other, and "two" was found in other, and "three" was not found in other -// Comparing the lists gave the following result: "two" was not found in other, and "two" was found in other, and "tree" was not found in other -``` - -### Custom serialization - -Serializers can of course have a custom implementation. The following example utilizes this together with custom highlighters, -creating a patch-like output (this is not exactly the same as patch-format since that shows the changes in relation to the original - to do -that both lists of matching/non-matching lines would need to be processed together) - -```gleam -let comparison = -compare_lists( - [ - "pub type Gap = List(EmptyString)", "", "pub type Traveler {", - " OnTrain", " OverGap(gap: Gap)", " OnPlatform", "}", - ], - [ - "pub type Traveler {", " OnTrain", " OverGap(gap: String)", - " OnPlatform", "}", - ], -) -|> from_comparison() -|> highlight( - fn(first) { "+" <> first }, - fn(second) { "-" <> second }, - fn(matching) { " " <> matching }, -) -|> serialize(fn(part) { - case part { - Part(acc, lines, highlight) -> - acc <> { - lines - |> list.map(fn(line) { highlight(line) }) - |> string.join("\n") - } <> "\n" - All(result) -> result - } -}) -|> to_styled_comparison() -io.println(comparison.first) -io.println(comparison.second) -// +pub type Gap = List(EmptyString) -// + -// pub type Traveler { -// OnTrain -// + OverGap(gap: Gap) -// OnPlatform -// } -// -// pub type Traveler { -// OnTrain -// - OverGap(gap: String) -// OnPlatform -// } -``` diff --git a/aoc2023/build/packages/gap/gleam.toml b/aoc2023/build/packages/gap/gleam.toml deleted file mode 100644 index ec35329..0000000 --- a/aoc2023/build/packages/gap/gleam.toml +++ /dev/null @@ -1,18 +0,0 @@ -name = "gap" -gleam = ">= 0.32.2" -version = "1.0.1" -description = "A Gleam library for comparing strings/lists and producing a textual (styled) representation of the differences." - -# Fill out these fields if you intend to generate HTML documentation or publish -# your project to the Hex package manager. -# -licences = ["Apache-2.0"] -repository = { type = "github", user = "JohnBjrk", repo = "gap" } -# links = [{ title = "Website", href = "https://gleam.run" }] - -[dependencies] -gleam_stdlib = "~> 0.32" -gleam_community_ansi = "~> 1.2" - -[dev-dependencies] -gleeunit = "~> 1.0" diff --git a/aoc2023/build/packages/gap/include/gap@comparison_ListComparison.hrl b/aoc2023/build/packages/gap/include/gap@comparison_ListComparison.hrl deleted file mode 100644 index 5e4b20d..0000000 --- a/aoc2023/build/packages/gap/include/gap@comparison_ListComparison.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(list_comparison, { - first :: list(gap@comparison:match(list(any()))), - second :: list(gap@comparison:match(list(any()))) -}). diff --git a/aoc2023/build/packages/gap/include/gap@comparison_Match.hrl b/aoc2023/build/packages/gap/include/gap@comparison_Match.hrl deleted file mode 100644 index f1225dd..0000000 --- a/aoc2023/build/packages/gap/include/gap@comparison_Match.hrl +++ /dev/null @@ -1 +0,0 @@ --record(match, {item :: any()}). diff --git a/aoc2023/build/packages/gap/include/gap@comparison_NoMatch.hrl b/aoc2023/build/packages/gap/include/gap@comparison_NoMatch.hrl deleted file mode 100644 index 742783b..0000000 --- a/aoc2023/build/packages/gap/include/gap@comparison_NoMatch.hrl +++ /dev/null @@ -1 +0,0 @@ --record(no_match, {item :: any()}). diff --git a/aoc2023/build/packages/gap/include/gap@comparison_StringComparison.hrl b/aoc2023/build/packages/gap/include/gap@comparison_StringComparison.hrl deleted file mode 100644 index c0b1a75..0000000 --- a/aoc2023/build/packages/gap/include/gap@comparison_StringComparison.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(string_comparison, { - first :: list(gap@comparison:match(list(binary()))), - second :: list(gap@comparison:match(list(binary()))) -}). diff --git a/aoc2023/build/packages/gap/include/gap@styled_comparison_StyledComparison.hrl b/aoc2023/build/packages/gap/include/gap@styled_comparison_StyledComparison.hrl deleted file mode 100644 index 0e7c64a..0000000 --- a/aoc2023/build/packages/gap/include/gap@styled_comparison_StyledComparison.hrl +++ /dev/null @@ -1 +0,0 @@ --record(styled_comparison, {first :: binary(), second :: binary()}). diff --git a/aoc2023/build/packages/gap/include/gap@styling_All.hrl b/aoc2023/build/packages/gap/include/gap@styling_All.hrl deleted file mode 100644 index c11a9a6..0000000 --- a/aoc2023/build/packages/gap/include/gap@styling_All.hrl +++ /dev/null @@ -1 +0,0 @@ --record(all, {all :: binary()}). diff --git a/aoc2023/build/packages/gap/include/gap@styling_Highlighters.hrl b/aoc2023/build/packages/gap/include/gap@styling_Highlighters.hrl deleted file mode 100644 index 6e073b3..0000000 --- a/aoc2023/build/packages/gap/include/gap@styling_Highlighters.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(highlighters, { - first :: fun((binary()) -> binary()), - second :: fun((binary()) -> binary()), - matching :: fun((binary()) -> binary()) -}). diff --git a/aoc2023/build/packages/gap/include/gap@styling_Part.hrl b/aoc2023/build/packages/gap/include/gap@styling_Part.hrl deleted file mode 100644 index db45796..0000000 --- a/aoc2023/build/packages/gap/include/gap@styling_Part.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(part, { - acc :: binary(), - part :: list(any()), - highlight :: fun((binary()) -> binary()) -}). diff --git a/aoc2023/build/packages/gap/include/gap@styling_Styling.hrl b/aoc2023/build/packages/gap/include/gap@styling_Styling.hrl deleted file mode 100644 index a7341c6..0000000 --- a/aoc2023/build/packages/gap/include/gap@styling_Styling.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(styling, { - comparison :: gap@comparison:comparison(any()), - serializer :: gleam@option:option(fun((gap@styling:part(any())) -> binary())), - highlight :: gleam@option:option(gap@styling:highlighters()) -}). diff --git a/aoc2023/build/packages/gap/src/gap.app.src b/aoc2023/build/packages/gap/src/gap.app.src deleted file mode 100644 index 1abc7df..0000000 --- a/aoc2023/build/packages/gap/src/gap.app.src +++ /dev/null @@ -1,13 +0,0 @@ -{application, gap, [ - {vsn, "1.0.1"}, - {applications, [gleam_community_ansi, - gleam_stdlib, - gleeunit]}, - {description, "A Gleam library for comparing strings/lists and producing a textual (styled) representation of the differences."}, - {modules, [gap, - gap@comparison, - gap@myers, - gap@styled_comparison, - gap@styling]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gap/src/gap.erl b/aoc2023/build/packages/gap/src/gap.erl deleted file mode 100644 index 827e5ce..0000000 --- a/aoc2023/build/packages/gap/src/gap.erl +++ /dev/null @@ -1,538 +0,0 @@ --module(gap). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([to_styled/1, compare_strings_with_algorithm/3, compare_lists_with_algorithm/3, myers/2, compare_lists/2, compare_strings/2, lcs/2]). --export_type([score/1]). - --type score(GAM) :: {score, integer(), gleam@option:option(GAM)}. - --spec to_styled(gap@comparison:comparison(any())) -> gap@styled_comparison:styled_comparison(). -to_styled(Comparison) -> - _pipe = Comparison, - _pipe@1 = gap@styling:from_comparison(_pipe), - _pipe@2 = gap@styling:highlight( - _pipe@1, - fun gap@styling:first_highlight_default/1, - fun gap@styling:second_highlight_default/1, - fun gap@styling:no_highlight/1 - ), - gap@styling:to_styled_comparison(_pipe@2). - --spec compare_strings_with_algorithm( - binary(), - binary(), - fun((list(binary()), list(binary())) -> gap@comparison:comparison(binary())) -) -> gap@comparison:comparison(binary()). -compare_strings_with_algorithm(First, Second, Algorithm) -> - Comparison = Algorithm( - gleam@string:to_graphemes(First), - gleam@string:to_graphemes(Second) - ), - case Comparison of - {list_comparison, First@1, Second@1} -> - {string_comparison, First@1, Second@1}; - - {string_comparison, First@2, Second@2} -> - {string_comparison, First@2, Second@2} - end. - --spec compare_lists_with_algorithm( - list(GBB), - list(GBB), - fun((list(GBB), list(GBB)) -> gap@comparison:comparison(GBB)) -) -> gap@comparison:comparison(GBB). -compare_lists_with_algorithm(First_sequence, Second_sequence, Algorithm) -> - Algorithm(First_sequence, Second_sequence). - --spec myers(list(GBG), list(GBG)) -> gap@comparison:comparison(GBG). -myers(First_sequence, Second_sequence) -> - Edits = gap@myers:difference(First_sequence, Second_sequence), - _pipe = Edits, - _pipe@1 = gleam@list:reverse(_pipe), - gleam@list:fold( - _pipe@1, - {list_comparison, [], []}, - fun(Comparison, Edit) -> case Comparison of - {list_comparison, First, Second} -> - case Edit of - {eq, Segment} -> - {list_comparison, - [{match, Segment} | First], - [{match, Segment} | Second]}; - - {ins, Segment@1} -> - {list_comparison, - First, - [{no_match, Segment@1} | Second]}; - - {del, Segment@2} -> - {list_comparison, - [{no_match, Segment@2} | First], - Second} - end; - - {string_comparison, _, _} -> - Comparison - end end - ). - --spec compare_lists(list(GAX), list(GAX)) -> gap@comparison:comparison(GAX). -compare_lists(First_sequence, Second_sequence) -> - myers(First_sequence, Second_sequence). - --spec compare_strings(binary(), binary()) -> gap@comparison:comparison(binary()). -compare_strings(First, Second) -> - Comparison = compare_lists( - gleam@string:to_graphemes(First), - gleam@string:to_graphemes(Second) - ), - case Comparison of - {list_comparison, First@1, Second@1} -> - {string_comparison, First@1, Second@1}; - - {string_comparison, First@2, Second@2} -> - {string_comparison, First@2, Second@2} - end. - --spec prepend_and_merge( - list(gap@comparison:match(list(GBO))), - gap@comparison:match(list(GBO)) -) -> list(gap@comparison:match(list(GBO))). -prepend_and_merge(Matches, Match) -> - case {Matches, Match} of - {[], _} -> - [Match]; - - {[{match, First_match} | Rest], {match, _}} -> - [{match, - begin - _pipe = erlang:element(2, Match), - gleam@list:append(_pipe, First_match) - end} | - Rest]; - - {[{no_match, First_match@1} | Rest@1], {no_match, _}} -> - [{no_match, - begin - _pipe@1 = erlang:element(2, Match), - gleam@list:append(_pipe@1, First_match@1) - end} | - Rest@1]; - - {Matches@1, Match@1} -> - [Match@1 | Matches@1] - end. - --spec append_and_merge( - list(gap@comparison:match(list(GBX))), - gap@comparison:match(list(GBX)) -) -> list(gap@comparison:match(list(GBX))). -append_and_merge(Matches, Match) -> - _pipe@3 = case {begin - _pipe = Matches, - gleam@list:reverse(_pipe) - end, - Match} of - {[], _} -> - [Match]; - - {[{match, First_match} | Rest], {match, _}} -> - [{match, - begin - _pipe@1 = First_match, - gleam@list:append(_pipe@1, erlang:element(2, Match)) - end} | - Rest]; - - {[{no_match, First_match@1} | Rest@1], {no_match, _}} -> - [{no_match, - begin - _pipe@2 = First_match@1, - gleam@list:append(_pipe@2, erlang:element(2, Match)) - end} | - Rest@1]; - - {Matches@1, Match@1} -> - [Match@1 | Matches@1] - end, - gleam@list:reverse(_pipe@3). - --spec collect_matches( - gleam@map:map_(GFY, any()), - list(GCH), - fun((GFY) -> integer()) -) -> list(gap@comparison:match(list(GCH))). -collect_matches(Tracking, Str, Extract_fun) -> - Matching_indexes = begin - _pipe = gleam@map:keys(Tracking), - _pipe@1 = gleam@list:map(_pipe, Extract_fun), - gleam@set:from_list(_pipe@1) - end, - Matches = begin - _pipe@2 = Str, - gleam@list:index_map( - _pipe@2, - fun(Index, Item) -> - case gleam@set:contains(Matching_indexes, Index) of - true -> - {match, Item}; - - false -> - {no_match, Item} - end - end - ) - end, - _pipe@3 = Matches, - _pipe@4 = gleam@list:chunk(_pipe@3, fun(Match) -> case Match of - {match, _} -> - true; - - {no_match, _} -> - false - end end), - gleam@list:map(_pipe@4, fun(Match_list) -> case Match_list of - [{match, _} | _] -> - {match, - gleam@list:filter_map( - Match_list, - fun(Match@1) -> case Match@1 of - {match, Item@1} -> - {ok, Item@1}; - - {no_match, _} -> - {error, nil} - end end - )}; - - [{no_match, _} | _] -> - {no_match, - gleam@list:filter_map( - Match_list, - fun(Match@2) -> case Match@2 of - {no_match, Item@2} -> - {ok, Item@2}; - - {match, _} -> - {error, nil} - end end - )} - end end). - --spec back_track( - gleam@map:map_({integer(), integer()}, score(GCL)), - integer(), - integer(), - list({{integer(), integer()}, GCL}) -) -> list({{integer(), integer()}, GCL}). -back_track(Diff_map, First_index, Second_index, Stack) -> - case (First_index =:= 0) orelse (Second_index =:= 0) of - true -> - This_score = begin - _pipe = gleam@map:get(Diff_map, {First_index, Second_index}), - gleam@result:unwrap(_pipe, {score, 0, none}) - end, - case This_score of - {score, _, {some, Item}} -> - [{{First_index, Second_index}, Item} | Stack]; - - _ -> - case {First_index, Second_index} of - {0, A} when A > 0 -> - back_track( - Diff_map, - First_index, - Second_index - 1, - Stack - ); - - {A@1, 0} when A@1 > 0 -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ); - - {0, 0} -> - Stack; - - {_, _} -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ) - end - end; - - false -> - This_score@1 = begin - _pipe@1 = gleam@map:get(Diff_map, {First_index, Second_index}), - gleam@result:unwrap(_pipe@1, {score, 0, none}) - end, - case This_score@1 of - {score, _, {some, Item@1}} -> - back_track( - Diff_map, - First_index - 1, - Second_index - 1, - [{{First_index, Second_index}, Item@1} | Stack] - ); - - {score, _, none} -> - Up = begin - _pipe@2 = gleam@map:get( - Diff_map, - {First_index, Second_index - 1} - ), - gleam@result:unwrap(_pipe@2, {score, 0, none}) - end, - Back = begin - _pipe@3 = gleam@map:get( - Diff_map, - {First_index - 1, Second_index} - ), - gleam@result:unwrap(_pipe@3, {score, 0, none}) - end, - case gleam@int:compare( - erlang:element(2, Up), - erlang:element(2, Back) - ) of - gt -> - back_track( - Diff_map, - First_index, - Second_index - 1, - Stack - ); - - lt -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ); - - eq -> - case {First_index, Second_index} of - {0, A@2} when A@2 > 0 -> - back_track( - Diff_map, - First_index, - Second_index - 1, - Stack - ); - - {A@3, 0} when A@3 > 0 -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ); - - {0, 0} -> - Stack; - - {_, _} -> - back_track( - Diff_map, - First_index - 1, - Second_index, - Stack - ) - end - end - end - end. - --spec build_diff_map( - GCR, - integer(), - GCR, - integer(), - gleam@map:map_({integer(), integer()}, score(GCR)) -) -> gleam@map:map_({integer(), integer()}, score(GCR)). -build_diff_map(First_item, First_index, Second_item, Second_index, Diff_map) -> - Prev_score = begin - _pipe = gleam@map:get(Diff_map, {First_index - 1, Second_index - 1}), - gleam@result:unwrap(_pipe, {score, 0, none}) - end, - Derived_score_up = begin - _pipe@1 = Diff_map, - _pipe@2 = gleam@map:get(_pipe@1, {First_index, Second_index - 1}), - gleam@result:unwrap(_pipe@2, {score, 0, none}) - end, - Derived_score_back = begin - _pipe@3 = Diff_map, - _pipe@4 = gleam@map:get(_pipe@3, {First_index - 1, Second_index}), - gleam@result:unwrap(_pipe@4, {score, 0, none}) - end, - Derived_score = gleam@int:max( - erlang:element(2, Derived_score_up), - erlang:element(2, Derived_score_back) - ), - This_score = case First_item =:= Second_item of - true -> - {score, erlang:element(2, Prev_score) + 1, {some, First_item}}; - - false -> - {score, Derived_score, none} - end, - _pipe@5 = Diff_map, - gleam@map:insert(_pipe@5, {First_index, Second_index}, This_score). - --spec lcs(list(GBK), list(GBK)) -> gap@comparison:comparison(GBK). -lcs(First_sequence, Second_sequence) -> - Leading_matches = begin - _pipe = gleam@list:zip(First_sequence, Second_sequence), - _pipe@1 = gleam@list:take_while( - _pipe, - fun(Pair) -> erlang:element(1, Pair) =:= erlang:element(2, Pair) end - ), - gleam@list:map(_pipe@1, fun gleam@pair:first/1) - end, - Num_leading_matches = gleam@list:length(Leading_matches), - Trailing_matches = begin - _pipe@2 = gleam@list:zip( - gleam@list:reverse(First_sequence), - gleam@list:reverse(Second_sequence) - ), - _pipe@3 = gleam@list:take_while( - _pipe@2, - fun(Pair@1) -> - erlang:element(1, Pair@1) =:= erlang:element(2, Pair@1) - end - ), - _pipe@4 = gleam@list:map(_pipe@3, fun gleam@pair:first/1), - gleam@list:reverse(_pipe@4) - end, - Num_trailing_matches = gleam@list:length(Trailing_matches), - First_sequence_to_diff = begin - _pipe@5 = First_sequence, - _pipe@6 = gleam@list:drop(_pipe@5, Num_leading_matches), - gleam@list:take( - _pipe@6, - (gleam@list:length(First_sequence) - Num_leading_matches) - Num_trailing_matches - ) - end, - Second_sequence_to_diff = begin - _pipe@7 = Second_sequence, - _pipe@8 = gleam@list:drop(_pipe@7, Num_leading_matches), - gleam@list:take( - _pipe@8, - (gleam@list:length(Second_sequence) - Num_leading_matches) - Num_trailing_matches - ) - end, - Diff_map@2 = begin - _pipe@9 = Second_sequence_to_diff, - gleam@list:index_fold( - _pipe@9, - gleam@map:new(), - fun(Diff_map, Item_second, Index_second) -> - _pipe@10 = First_sequence_to_diff, - gleam@list:index_fold( - _pipe@10, - Diff_map, - fun(Diff_map@1, Item_first, Index_first) -> - build_diff_map( - Item_first, - Index_first, - Item_second, - Index_second, - Diff_map@1 - ) - end - ) - end - ) - end, - {First_segments@1, Second_segments@1} = case {First_sequence_to_diff, - Second_sequence_to_diff} of - {[], []} -> - {[], []}; - - {First_matching, []} -> - {[{no_match, First_matching}], []}; - - {[], Second_matching} -> - {[], [{no_match, Second_matching}]}; - - {First_sequence_to_diff@1, Second_sequence_to_diff@1} -> - Tracking = begin - _pipe@11 = back_track( - Diff_map@2, - gleam@list:length(First_sequence_to_diff@1) - 1, - gleam@list:length(Second_sequence_to_diff@1) - 1, - [] - ), - gleam@map:from_list(_pipe@11) - end, - First_segments = collect_matches( - Tracking, - First_sequence_to_diff@1, - fun(Key) -> - {First, _} = Key, - First - end - ), - Second_segments = collect_matches( - Tracking, - Second_sequence_to_diff@1, - fun(Key@1) -> - {_, Second} = Key@1, - Second - end - ), - {First_segments, Second_segments} - end, - {First_segments_with_leading_trailing, - Second_segments_with_leading_trailing} = case {Leading_matches, - Trailing_matches} of - {[], []} -> - {First_segments@1, Second_segments@1}; - - {[], Trailing_matches@1} -> - {begin - _pipe@12 = First_segments@1, - append_and_merge(_pipe@12, {match, Trailing_matches@1}) - end, - begin - _pipe@13 = Second_segments@1, - append_and_merge(_pipe@13, {match, Trailing_matches@1}) - end}; - - {Leading_matches@1, []} -> - {begin - _pipe@14 = First_segments@1, - prepend_and_merge(_pipe@14, {match, Leading_matches@1}) - end, - begin - _pipe@15 = Second_segments@1, - prepend_and_merge(_pipe@15, {match, Leading_matches@1}) - end}; - - {Leading_matches@2, Trailing_matches@2} -> - {begin - _pipe@16 = First_segments@1, - _pipe@17 = prepend_and_merge( - _pipe@16, - {match, Leading_matches@2} - ), - append_and_merge(_pipe@17, {match, Trailing_matches@2}) - end, - begin - _pipe@18 = Second_segments@1, - _pipe@19 = prepend_and_merge( - _pipe@18, - {match, Leading_matches@2} - ), - append_and_merge(_pipe@19, {match, Trailing_matches@2}) - end} - end, - {list_comparison, - First_segments_with_leading_trailing, - Second_segments_with_leading_trailing}. diff --git a/aoc2023/build/packages/gap/src/gap.gleam b/aoc2023/build/packages/gap/src/gap.gleam deleted file mode 100644 index 7eb0e7f..0000000 --- a/aoc2023/build/packages/gap/src/gap.gleam +++ /dev/null @@ -1,438 +0,0 @@ -import gleam/string -import gleam/list -import gleam/pair -import gleam/map.{type Map} -import gleam/result -import gleam/option.{type Option, None, Some} -import gleam/int -import gleam/order.{Eq, Gt, Lt} -import gleam/set -import gap/comparison.{ - type Comparison, type Match, type Segments, ListComparison, Match, NoMatch, - StringComparison, -} -import gap/styled_comparison.{type StyledComparison} -import gap/styling.{ - first_highlight_default, from_comparison, highlight, no_highlight, - second_highlight_default, to_styled_comparison, -} -import gap/myers.{type Edit, Del, Eq as MyerEq, Ins} - -type MatchedItem(a) = - #(#(Int, Int), a) - -type Score(a) { - Score(value: Int, item: Option(a)) -} - -type DiffMap(a) = - Map(#(Int, Int), Score(a)) - -/// Creates a `StyledComparison` from `Comparison` using default values for -/// highting and serialization. -/// -/// ## Example -/// -/// ```gleam -/// > compare_strings("abc", "abe") |> to_styled() -/// ``` -/// This will return a `StyledComparison(first, second)` where "c" in `first` is green -/// and "e" in `second` is red. -pub fn to_styled(comparison: Comparison(a)) -> StyledComparison { - comparison - |> from_comparison() - |> highlight(first_highlight_default, second_highlight_default, no_highlight) - |> to_styled_comparison() -} - -/// Compare two string and return a `StringComparison` which will be styled as string -/// when passed to `to_styled` -/// -/// Will use the default `myers` algorithm -pub fn compare_strings(first: String, second: String) -> Comparison(String) { - let comparison = - compare_lists(string.to_graphemes(first), string.to_graphemes(second)) - case comparison { - ListComparison(first, second) -> StringComparison(first, second) - StringComparison(first, second) -> StringComparison(first, second) - } -} - -/// Compare two string and return a `StringComparison` which will be styled as string -/// when passed to `to_styled` -/// -/// Algorithm can be used to select either `myers` or the legacy `lcs` algorithm -pub fn compare_strings_with_algorithm( - first: String, - second: String, - algorithm, -) -> Comparison(String) { - let comparison = - algorithm(string.to_graphemes(first), string.to_graphemes(second)) - case comparison { - ListComparison(first, second) -> StringComparison(first, second) - StringComparison(first, second) -> StringComparison(first, second) - } -} - -/// Compare two lists and return a `ListComparison` which will be styled as list -/// when passed to `to_styled` -/// -/// Will use the default `myers` algorithm -pub fn compare_lists( - first_sequence: List(a), - second_sequence: List(a), -) -> Comparison(a) { - myers(first_sequence, second_sequence) -} - -/// Compare two lists and return a `ListComparison` which will be styled as list -/// when passed to `to_styled` -/// -/// Algorithm can be used to select either `myers` or the legacy `lcs` algorithm -pub fn compare_lists_with_algorithm( - first_sequence: List(a), - second_sequence: List(a), - algorithm, -) -> Comparison(a) { - algorithm(first_sequence, second_sequence) -} - -/// An adapter for the the `myers` algorithm. -/// Intended to be use as an argument to `compare_strings_with_algorithm` or -/// `compare_lists_with_algorithm` -pub fn myers(first_sequence: List(a), second_sequence: List(a)) -> Comparison(a) { - let edits = myers.difference(first_sequence, second_sequence) - edits - |> list.reverse() - |> list.fold( - ListComparison([], []), - fn(comparison: Comparison(a), edit: Edit(a)) { - case comparison { - ListComparison(first, second) -> { - case edit { - MyerEq(segment) -> - ListComparison( - [Match(segment), ..first], - [Match(segment), ..second], - ) - Ins(segment) -> ListComparison(first, [NoMatch(segment), ..second]) - Del(segment) -> ListComparison([NoMatch(segment), ..first], second) - } - } - StringComparison(..) -> comparison - } - }, - ) -} - -/// An adapter for the the `lcs` (longest common subsequence) algorithm. -/// Intended to be use as an argument to `compare_strings_with_algorithm` or -/// `compare_lists_with_algorithm` -pub fn lcs(first_sequence: List(a), second_sequence: List(a)) -> Comparison(a) { - let leading_matches = - list.zip(first_sequence, second_sequence) - |> list.take_while(fn(pair) { pair.0 == pair.1 }) - |> list.map(pair.first) - let num_leading_matches = list.length(leading_matches) - let trailing_matches = - list.zip(list.reverse(first_sequence), list.reverse(second_sequence)) - |> list.take_while(fn(pair) { pair.0 == pair.1 }) - |> list.map(pair.first) - |> list.reverse() - let num_trailing_matches = list.length(trailing_matches) - let first_sequence_to_diff = - first_sequence - |> list.drop(num_leading_matches) - |> list.take( - list.length(first_sequence) - num_leading_matches - num_trailing_matches, - ) - let second_sequence_to_diff = - second_sequence - |> list.drop(num_leading_matches) - |> list.take( - list.length(second_sequence) - num_leading_matches - num_trailing_matches, - ) - - let diff_map = - second_sequence_to_diff - |> list.index_fold( - map.new(), - fn(diff_map, item_second, index_second) { - first_sequence_to_diff - |> list.index_fold( - diff_map, - fn(diff_map, item_first, index_first) { - build_diff_map( - item_first, - index_first, - item_second, - index_second, - diff_map, - ) - }, - ) - }, - ) - let #(first_segments, second_segments) = case - first_sequence_to_diff, - second_sequence_to_diff - { - [], [] -> #([], []) - first_matching, [] -> #([NoMatch(first_matching)], []) - [], second_matching -> #([], [NoMatch(second_matching)]) - first_sequence_to_diff, second_sequence_to_diff -> { - let tracking = - back_track( - diff_map, - list.length(first_sequence_to_diff) - 1, - list.length(second_sequence_to_diff) - 1, - [], - ) - |> map.from_list() - - let first_segments = - collect_matches( - tracking, - first_sequence_to_diff, - fn(key) { - let #(first, _) = key - first - }, - ) - let second_segments = - collect_matches( - tracking, - second_sequence_to_diff, - fn(key) { - let #(_, second) = key - second - }, - ) - #(first_segments, second_segments) - } - } - - let #( - first_segments_with_leading_trailing, - second_segments_with_leading_trailing, - ) = case leading_matches, trailing_matches { - [], [] -> #(first_segments, second_segments) - [], trailing_matches -> #( - first_segments - |> append_and_merge(Match(trailing_matches)), - second_segments - |> append_and_merge(Match(trailing_matches)), - ) - leading_matches, [] -> #( - first_segments - |> prepend_and_merge(Match(leading_matches)), - second_segments - |> prepend_and_merge(Match(leading_matches)), - ) - leading_matches, trailing_matches -> #( - first_segments - |> prepend_and_merge(Match(leading_matches)) - |> append_and_merge(Match(trailing_matches)), - second_segments - |> prepend_and_merge(Match(leading_matches)) - |> append_and_merge(Match(trailing_matches)), - ) - } - - ListComparison( - first_segments_with_leading_trailing, - second_segments_with_leading_trailing, - ) -} - -fn prepend_and_merge( - matches: List(Match(List(a))), - match: Match(List(a)), -) -> List(Match(List(a))) { - case matches, match { - [], _ -> [match] - [Match(first_match), ..rest], Match(_) -> [ - Match( - match.item - |> list.append(first_match), - ), - ..rest - ] - [NoMatch(first_match), ..rest], NoMatch(_) -> [ - NoMatch( - match.item - |> list.append(first_match), - ), - ..rest - ] - matches, match -> [match, ..matches] - } -} - -fn append_and_merge( - matches: List(Match(List(a))), - match: Match(List(a)), -) -> List(Match(List(a))) { - case - matches - |> list.reverse(), - match - { - [], _ -> [match] - [Match(first_match), ..rest], Match(_) -> [ - Match( - first_match - |> list.append(match.item), - ), - ..rest - ] - [NoMatch(first_match), ..rest], NoMatch(_) -> [ - NoMatch( - first_match - |> list.append(match.item), - ), - ..rest - ] - matches, match -> [match, ..matches] - } - |> list.reverse() -} - -fn collect_matches(tracking, str: List(a), extract_fun) -> Segments(a) { - let matching_indexes = - map.keys(tracking) - |> list.map(extract_fun) - |> set.from_list() - - let matches = - str - |> list.index_map(fn(index, item) { - case set.contains(matching_indexes, index) { - True -> Match(item) - False -> NoMatch(item) - } - }) - - matches - |> list.chunk(fn(match) { - case match { - Match(_) -> True - NoMatch(_) -> False - } - }) - |> list.map(fn(match_list) { - case match_list { - [Match(_), ..] -> - Match(list.filter_map( - match_list, - fn(match) { - case match { - Match(item) -> Ok(item) - NoMatch(_) -> Error(Nil) - } - }, - )) - [NoMatch(_), ..] -> - NoMatch(list.filter_map( - match_list, - fn(match) { - case match { - NoMatch(item) -> Ok(item) - Match(_) -> Error(Nil) - } - }, - )) - } - }) -} - -fn back_track( - diff_map: DiffMap(a), - first_index: Int, - second_index: Int, - stack: List(MatchedItem(a)), -) -> List(MatchedItem(a)) { - case first_index == 0 || second_index == 0 { - True -> { - let this_score = - map.get(diff_map, #(first_index, second_index)) - |> result.unwrap(Score(0, None)) - case this_score { - Score(_, Some(item)) -> [#(#(first_index, second_index), item), ..stack] - _ -> - case first_index, second_index { - 0, a if a > 0 -> - back_track(diff_map, first_index, second_index - 1, stack) - a, 0 if a > 0 -> - back_track(diff_map, first_index - 1, second_index, stack) - 0, 0 -> stack - _, _ -> back_track(diff_map, first_index - 1, second_index, stack) - } - } - } - False -> { - let this_score = - map.get(diff_map, #(first_index, second_index)) - |> result.unwrap(Score(0, None)) - case this_score { - Score(_, Some(item)) -> - back_track( - diff_map, - first_index - 1, - second_index - 1, - [#(#(first_index, second_index), item), ..stack], - ) - Score(_, None) -> { - let up = - map.get(diff_map, #(first_index, second_index - 1)) - |> result.unwrap(Score(0, None)) - let back = - map.get(diff_map, #(first_index - 1, second_index)) - |> result.unwrap(Score(0, None)) - case int.compare(up.value, back.value) { - Gt -> back_track(diff_map, first_index, second_index - 1, stack) - Lt -> back_track(diff_map, first_index - 1, second_index, stack) - Eq -> - case first_index, second_index { - 0, a if a > 0 -> - back_track(diff_map, first_index, second_index - 1, stack) - a, 0 if a > 0 -> - back_track(diff_map, first_index - 1, second_index, stack) - 0, 0 -> stack - _, _ -> - back_track(diff_map, first_index - 1, second_index, stack) - } - } - } - } - } - } -} - -fn build_diff_map( - first_item: a, - first_index: Int, - second_item: a, - second_index: Int, - diff_map: DiffMap(a), -) -> DiffMap(a) { - let prev_score = - map.get(diff_map, #(first_index - 1, second_index - 1)) - |> result.unwrap(Score(0, None)) - let derived_score_up = - diff_map - |> map.get(#(first_index, second_index - 1)) - |> result.unwrap(Score(0, None)) - let derived_score_back = - diff_map - |> map.get(#(first_index - 1, second_index)) - |> result.unwrap(Score(0, None)) - let derived_score = int.max(derived_score_up.value, derived_score_back.value) - let this_score = case first_item == second_item { - True -> Score(prev_score.value + 1, Some(first_item)) - False -> Score(derived_score, None) - } - diff_map - |> map.insert(#(first_index, second_index), this_score) -} diff --git a/aoc2023/build/packages/gap/src/gap/comparison.gleam b/aoc2023/build/packages/gap/src/gap/comparison.gleam deleted file mode 100644 index da30c29..0000000 --- a/aoc2023/build/packages/gap/src/gap/comparison.gleam +++ /dev/null @@ -1,22 +0,0 @@ -/// Comparison of two strings or lists -/// -/// The comparison consists of two lists of matched segments. The segments represent -/// a sequence of succeeding matches or non-matches (up until the next match/non-match) -/// -/// For lists the elements in the segment will be same as the elements in the list, and -/// for strings the elements will be the graphemes of the string -pub type Comparison(a) { - ListComparison(first: Segments(a), second: Segments(a)) - StringComparison(first: Segments(String), second: Segments(String)) -} - -/// Indicating that the item has a matching (`Match`) or no matching (`NoMatch`) item in the -/// other string/list -pub type Match(a) { - Match(item: a) - NoMatch(item: a) -} - -/// List of segments of succeeding matches / non-matches -pub type Segments(a) = - List(Match(List(a))) diff --git a/aoc2023/build/packages/gap/src/gap/myers.gleam b/aoc2023/build/packages/gap/src/gap/myers.gleam deleted file mode 100644 index f0b8ddc..0000000 --- a/aoc2023/build/packages/gap/src/gap/myers.gleam +++ /dev/null @@ -1,122 +0,0 @@ -import gleam/list - -pub type Edit(a) { - Eq(List(a)) - Del(List(a)) - Ins(List(a)) -} - -type Path(a) { - Path(x: Int, y: Int, list1: List(a), list2: List(a), edits: List(Edit(a))) -} - -type Status(a) { - Done(edits: List(Edit(a))) - Next(paths: List(Path(a))) - Cont(path: Path(a)) -} - -/// The algorithm is outlined in the -/// "An O(ND) Difference Algorithm and Its Variations" paper by E. Myers. -/// -/// Adapted from the implementation of "myers_difference" in Elixirs List module -pub fn difference(list1: List(a), list2: List(a)) -> List(Edit(a)) { - let path = Path(0, 0, list1, list2, []) - find_script(0, list.length(list1) + list.length(list2), [path]) -} - -fn find_script(envelope: Int, max: Int, paths: List(Path(a))) { - case envelope > max { - True -> [] - False -> { - case each_diagonal(-envelope, envelope, paths, []) { - Done(edits) -> compact_reverse(edits, []) - Next(paths) -> find_script(envelope + 1, max, paths) - _ -> panic as "Didn't expect a Cont here" - } - } - } -} - -fn compact_reverse(edits: List(Edit(a)), acc: List(Edit(a))) -> List(Edit(a)) { - case edits, acc { - [], acc -> acc - [Eq(elem), ..rest], [Eq(result), ..acc_rest] -> - compact_reverse(rest, [Eq(list.flatten([elem, result])), ..acc_rest]) - [Del(elem), ..rest], [Del(result), ..acc_rest] -> - compact_reverse(rest, [Del(list.flatten([elem, result])), ..acc_rest]) - [Ins(elem), ..rest], [Ins(result), ..acc_rest] -> - compact_reverse(rest, [Ins(list.flatten([elem, result])), ..acc_rest]) - [Eq(elem), ..rest], acc -> compact_reverse(rest, [Eq(elem), ..acc]) - [Del(elem), ..rest], acc -> compact_reverse(rest, [Del(elem), ..acc]) - [Ins(elem), ..rest], acc -> compact_reverse(rest, [Ins(elem), ..acc]) - } -} - -fn each_diagonal( - diag: Int, - limit: Int, - paths: List(Path(a)), - next_paths: List(Path(a)), -) -> Status(a) { - case diag > limit { - True -> Next(list.reverse(next_paths)) - False -> { - let #(path, rest) = proceed_path(diag, limit, paths) - case follow_snake(path) { - Cont(path) -> each_diagonal(diag + 2, limit, rest, [path, ..next_paths]) - other -> other - } - } - } -} - -fn proceed_path( - diag: Int, - limit: Int, - paths: List(Path(a)), -) -> #(Path(a), List(Path(a))) { - let neg_limit = -limit - case diag, limit, paths { - 0, 0, [path] -> #(path, []) - diag, _limit, [path, ..] as paths if diag == neg_limit -> #( - move_down(path), - paths, - ) - diag, limit, [path, ..] as paths if diag == limit -> #( - move_right(path), - paths, - ) - _diag, _limit, [path1, path2, ..rest] -> { - case path1.y > path2.y { - True -> #(move_right(path1), [path2, ..rest]) - False -> #(move_down(path2), [path2, ..rest]) - } - } - } -} - -fn move_right(path: Path(a)) -> Path(a) { - case path { - Path(x, y, list1, [elem, ..rest], edits) -> - Path(x + 1, y, list1, rest, [Ins([elem]), ..edits]) - Path(x, y, list1, [], edits) -> Path(x + 1, y, list1, [], edits) - } -} - -fn move_down(path: Path(a)) -> Path(a) { - case path { - Path(x, y, [elem, ..rest], list2, edits) -> - Path(x, y + 1, rest, list2, [Del([elem]), ..edits]) - Path(x, y, [], list2, edits) -> Path(x, y + 1, [], list2, edits) - } -} - -fn follow_snake(path: Path(a)) -> Status(a) { - case path { - Path(x, y, [elem1, ..rest1], [elem2, ..rest2], edits) if elem1 == elem2 -> - follow_snake(Path(x + 1, y + 1, rest1, rest2, [Eq([elem1]), ..edits])) - Path(_x, _y, [], [], edits) -> Done(edits) - _ -> Cont(path) - } -} diff --git a/aoc2023/build/packages/gap/src/gap/styled_comparison.gleam b/aoc2023/build/packages/gap/src/gap/styled_comparison.gleam deleted file mode 100644 index 7103c2e..0000000 --- a/aoc2023/build/packages/gap/src/gap/styled_comparison.gleam +++ /dev/null @@ -1,4 +0,0 @@ -/// A comparison where the parts have been styled (serialized and highlighted) -pub type StyledComparison { - StyledComparison(first: String, second: String) -} diff --git a/aoc2023/build/packages/gap/src/gap/styling.gleam b/aoc2023/build/packages/gap/src/gap/styling.gleam deleted file mode 100644 index 623ae8a..0000000 --- a/aoc2023/build/packages/gap/src/gap/styling.gleam +++ /dev/null @@ -1,233 +0,0 @@ -import gleam/option.{type Option, None, Some} -import gleam/list -import gleam/string -import gleam_community/ansi -import gap/comparison.{ - type Comparison, type Segments, ListComparison, Match, NoMatch, - StringComparison, -} -import gap/styled_comparison.{type StyledComparison, StyledComparison} - -/// The `Highlighter`takes a string representation of the item that was not matching -/// and should return a string representation that can be used to visually indicate that -/// it is a non-matching item. -/// -/// The default implementation of the highlighters uses the -/// [gleam_community/ansi](https://hexdocs.pm/gleam_community_ansi/index.html) library -/// to set a different color for the item, but any type if indication can be used as long -/// as it returns a valid string -pub type Highlighter = - fn(String) -> String - -/// `Part` is used to indicate to a custom serializer if it should produce a serialization -/// based on a segment with items or the final string that contains already serialized segments -pub type Part(a) { - /// `acc` the already serialized part of the result, `part` is the current segment that should be serialized and appended and `highlighter` is the `Highlighter` that can be used to indicate non-matching items - Part(acc: String, part: List(a), highlight: Highlighter) - /// `all` is a string representing all serialized segments. This can be useful if some string should be prepended/appended to the final result - All(all: String) -} - -/// A `Serializer`can be used to create string representation of the comparison results -/// -/// See [serialize](#serialize) for adding custom serializers and [mk_generic_serializer](#mk_generic_serializer) -pub type Serializer(a) = - fn(Part(a)) -> String - -/// Highlighters to use for indicating matches / non-matches -/// -/// `first` is used to highlight non-matches in the first string/list -/// `second` is used to highlight non-matches in the second string/list -/// `matching` is used to highlight matches in the both strings/lists -pub type Highlighters { - Highlighters(first: Highlighter, second: Highlighter, matching: Highlighter) -} - -/// Styling of a `Comparison` -/// -/// See [from_comparison](#from_comparison) -pub opaque type Styling(a) { - Styling( - comparison: Comparison(a), - serializer: Option(Serializer(a)), - highlight: Option(Highlighters), - ) -} - -/// Create a new `Styling` from a `Comparison` -/// -/// The `Styling` can be customized by adding highlighters and a serializer -/// See [highlight](#highlight) and [serialize](#serialize) -pub fn from_comparison(comparison: Comparison(a)) -> Styling(a) { - Styling(comparison, None, None) -} - -/// Add highlighters to the `Styling` -/// -/// The highlighters are used to mark the matching/non-matching items in the -/// first/second list/string -pub fn highlight( - styling: Styling(a), - first: Highlighter, - second: Highlighter, - matching: Highlighter, -) -> Styling(a) { - Styling(..styling, highlight: Some(Highlighters(first, second, matching))) -} - -/// Add a serializer to the `Styling` -/// -/// The serializer is used to create string representation of the items in the segments of the `Comparison` -/// See [Part](#part) for details -/// -/// > **NOTE:** `StringComparison` will always use the default string serializer (concatenating the graphemes). -/// > If there is a need for custom serialization of `StringComparison` convert the string to a list of -/// > graphemes and treat it as a `ListComparison` -pub fn serialize(styling: Styling(a), serializer: Serializer(a)) -> Styling(a) { - Styling(..styling, serializer: Some(serializer)) -} - -/// Creates a styled comparison using either custom highlighters/serializer if they where added or default -/// highlighters and/or serializer -pub fn to_styled_comparison(styling: Styling(a)) -> StyledComparison { - let highlight = - styling.highlight - |> option.unwrap(Highlighters( - first_highlight_default, - second_highlight_default, - no_highlight, - )) - case styling.comparison { - StringComparison(first, second) -> - to_strings( - first, - second, - // NOTE: Using string serializer here because otherwise we need to have a specific string serializer on the styling - string_serializer, - highlight.first, - highlight.second, - highlight.matching, - ) - ListComparison(first, second) -> - to_strings( - first, - second, - option.unwrap(styling.serializer, generic_serializer), - highlight.first, - highlight.second, - highlight.matching, - ) - } -} - -/// Default highlighter for the first string/list in the comparison -pub fn first_highlight_default(string: String) -> String { - case string { - " " -> - string - |> ansi.underline() - |> ansi.bold() - |> ansi.green() - - _ -> - string - |> ansi.green() - |> ansi.bold() - } -} - -/// Default highlighter for the second string/list in the comparison -pub fn second_highlight_default(string: String) -> String { - case string { - " " -> - string - |> ansi.underline() - |> ansi.bold() - |> ansi.red() - - _ -> - string - |> ansi.red() - |> ansi.bold() - } -} - -/// Default highlighter used for matching items -pub fn no_highlight(string: String) -> String { - string -} - -fn string_serializer(part: Part(String)) -> String { - case part { - Part(acc, sequence, highlight) -> - acc <> { - sequence - |> list.map(highlight) - |> string.join("") - } - All(string) -> string - } -} - -fn generic_serializer(part: Part(a)) -> String { - mk_generic_serializer(", ", fn(all) { "[" <> all <> "]" })(part) -} - -/// Creates a generic serializer that uses `separator` between all items and calls -/// `around` for possibility to prepend/append strings to the final result -pub fn mk_generic_serializer(separator: String, around: fn(String) -> String) { - fn(part) { - case part { - Part(acc, sequence, highlight) -> { - let segment_separator = case acc { - "" -> "" - _ -> separator - } - acc <> segment_separator <> { - sequence - |> list.map(string.inspect) - |> list.map(highlight) - |> string.join(separator) - } - } - All(string) -> around(string) - } - } -} - -fn to_strings( - first: Segments(a), - second: Segments(a), - serializer: Serializer(a), - first_highlight: Highlighter, - second_highlight: Highlighter, - no_highlight: Highlighter, -) -> StyledComparison { - let first_styled = - first - |> list.fold( - "", - fn(str, match) { - case match { - Match(item) -> serializer(Part(str, item, no_highlight)) - NoMatch(item) -> serializer(Part(str, item, first_highlight)) - } - }, - ) - let second_styled = - second - |> list.fold( - "", - fn(str, match) { - case match { - Match(item) -> serializer(Part(str, item, no_highlight)) - NoMatch(item) -> serializer(Part(str, item, second_highlight)) - } - }, - ) - - StyledComparison( - serializer(All(first_styled)), - serializer(All(second_styled)), - ) -} diff --git a/aoc2023/build/packages/gap/src/gap@comparison.erl b/aoc2023/build/packages/gap/src/gap@comparison.erl deleted file mode 100644 index 36bd1c3..0000000 --- a/aoc2023/build/packages/gap/src/gap@comparison.erl +++ /dev/null @@ -1,15 +0,0 @@ --module(gap@comparison). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([comparison/1, match/1]). - --type comparison(FQT) :: {list_comparison, - list(match(list(FQT))), - list(match(list(FQT)))} | - {string_comparison, - list(match(list(binary()))), - list(match(list(binary())))}. - --type match(FQU) :: {match, FQU} | {no_match, FQU}. - - diff --git a/aoc2023/build/packages/gap/src/gap@myers.erl b/aoc2023/build/packages/gap/src/gap@myers.erl deleted file mode 100644 index 6a8ad35..0000000 --- a/aoc2023/build/packages/gap/src/gap@myers.erl +++ /dev/null @@ -1,156 +0,0 @@ --module(gap@myers). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([difference/2]). --export_type([edit/1, path/1, status/1]). - --type edit(FUV) :: {eq, list(FUV)} | {del, list(FUV)} | {ins, list(FUV)}. - --type path(FUW) :: {path, - integer(), - integer(), - list(FUW), - list(FUW), - list(edit(FUW))}. - --type status(FUX) :: {done, list(edit(FUX))} | - {next, list(path(FUX))} | - {cont, path(FUX)}. - --spec compact_reverse(list(edit(FVH)), list(edit(FVH))) -> list(edit(FVH)). -compact_reverse(Edits, Acc) -> - case {Edits, Acc} of - {[], Acc@1} -> - Acc@1; - - {[{eq, Elem} | Rest], [{eq, Result} | Acc_rest]} -> - compact_reverse( - Rest, - [{eq, gleam@list:flatten([Elem, Result])} | Acc_rest] - ); - - {[{del, Elem@1} | Rest@1], [{del, Result@1} | Acc_rest@1]} -> - compact_reverse( - Rest@1, - [{del, gleam@list:flatten([Elem@1, Result@1])} | Acc_rest@1] - ); - - {[{ins, Elem@2} | Rest@2], [{ins, Result@2} | Acc_rest@2]} -> - compact_reverse( - Rest@2, - [{ins, gleam@list:flatten([Elem@2, Result@2])} | Acc_rest@2] - ); - - {[{eq, Elem@3} | Rest@3], Acc@2} -> - compact_reverse(Rest@3, [{eq, Elem@3} | Acc@2]); - - {[{del, Elem@4} | Rest@4], Acc@3} -> - compact_reverse(Rest@4, [{del, Elem@4} | Acc@3]); - - {[{ins, Elem@5} | Rest@5], Acc@4} -> - compact_reverse(Rest@5, [{ins, Elem@5} | Acc@4]) - end. - --spec move_right(path(FWA)) -> path(FWA). -move_right(Path) -> - case Path of - {path, X, Y, List1, [Elem | Rest], Edits} -> - {path, X + 1, Y, List1, Rest, [{ins, [Elem]} | Edits]}; - - {path, X@1, Y@1, List1@1, [], Edits@1} -> - {path, X@1 + 1, Y@1, List1@1, [], Edits@1} - end. - --spec move_down(path(FWD)) -> path(FWD). -move_down(Path) -> - case Path of - {path, X, Y, [Elem | Rest], List2, Edits} -> - {path, X, Y + 1, Rest, List2, [{del, [Elem]} | Edits]}; - - {path, X@1, Y@1, [], List2@1, Edits@1} -> - {path, X@1, Y@1 + 1, [], List2@1, Edits@1} - end. - --spec proceed_path(integer(), integer(), list(path(FVU))) -> {path(FVU), - list(path(FVU))}. -proceed_path(Diag, Limit, Paths) -> - Neg_limit = - Limit, - case {Diag, Limit, Paths} of - {0, 0, [Path]} -> - {Path, []}; - - {Diag@1, _, [Path@1 | _] = Paths@1} when Diag@1 =:= Neg_limit -> - {move_down(Path@1), Paths@1}; - - {Diag@2, Limit@1, [Path@2 | _] = Paths@2} when Diag@2 =:= Limit@1 -> - {move_right(Path@2), Paths@2}; - - {_, _, [Path1, Path2 | Rest]} -> - case erlang:element(3, Path1) > erlang:element(3, Path2) of - true -> - {move_right(Path1), [Path2 | Rest]}; - - false -> - {move_down(Path2), [Path2 | Rest]} - end - end. - --spec follow_snake(path(FWG)) -> status(FWG). -follow_snake(Path) -> - case Path of - {path, X, Y, [Elem1 | Rest1], [Elem2 | Rest2], Edits} when Elem1 =:= Elem2 -> - follow_snake( - {path, X + 1, Y + 1, Rest1, Rest2, [{eq, [Elem1]} | Edits]} - ); - - {path, _, _, [], [], Edits@1} -> - {done, Edits@1}; - - _ -> - {cont, Path} - end. - --spec each_diagonal(integer(), integer(), list(path(FVO)), list(path(FVO))) -> status(FVO). -each_diagonal(Diag, Limit, Paths, Next_paths) -> - case Diag > Limit of - true -> - {next, gleam@list:reverse(Next_paths)}; - - false -> - {Path, Rest} = proceed_path(Diag, Limit, Paths), - case follow_snake(Path) of - {cont, Path@1} -> - each_diagonal(Diag + 2, Limit, Rest, [Path@1 | Next_paths]); - - Other -> - Other - end - end. - --spec find_script(integer(), integer(), list(path(FVD))) -> list(edit(FVD)). -find_script(Envelope, Max, Paths) -> - case Envelope > Max of - true -> - []; - - false -> - case each_diagonal(- Envelope, Envelope, Paths, []) of - {done, Edits} -> - compact_reverse(Edits, []); - - {next, Paths@1} -> - find_script(Envelope + 1, Max, Paths@1); - - _ -> - erlang:error(#{gleam_error => panic, - message => <<"Didn't expect a Cont here"/utf8>>, - module => <<"gap/myers"/utf8>>, - function => <<"find_script"/utf8>>, - line => 35}) - end - end. - --spec difference(list(FUY), list(FUY)) -> list(edit(FUY)). -difference(List1, List2) -> - Path = {path, 0, 0, List1, List2, []}, - find_script(0, gleam@list:length(List1) + gleam@list:length(List2), [Path]). diff --git a/aoc2023/build/packages/gap/src/gap@styled_comparison.erl b/aoc2023/build/packages/gap/src/gap@styled_comparison.erl deleted file mode 100644 index 14cc390..0000000 --- a/aoc2023/build/packages/gap/src/gap@styled_comparison.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(gap@styled_comparison). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([styled_comparison/0]). - --type styled_comparison() :: {styled_comparison, binary(), binary()}. - - diff --git a/aoc2023/build/packages/gap/src/gap@styling.erl b/aoc2023/build/packages/gap/src/gap@styling.erl deleted file mode 100644 index ba226c3..0000000 --- a/aoc2023/build/packages/gap/src/gap@styling.erl +++ /dev/null @@ -1,202 +0,0 @@ --module(gap@styling). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_comparison/1, highlight/4, serialize/2, first_highlight_default/1, second_highlight_default/1, no_highlight/1, mk_generic_serializer/2, to_styled_comparison/1]). --export_type([part/1, highlighters/0, styling/1]). - --type part(FRE) :: {part, binary(), list(FRE), fun((binary()) -> binary())} | - {all, binary()}. - --type highlighters() :: {highlighters, - fun((binary()) -> binary()), - fun((binary()) -> binary()), - fun((binary()) -> binary())}. - --opaque styling(FRF) :: {styling, - gap@comparison:comparison(FRF), - gleam@option:option(fun((part(FRF)) -> binary())), - gleam@option:option(highlighters())}. - --spec from_comparison(gap@comparison:comparison(FRI)) -> styling(FRI). -from_comparison(Comparison) -> - {styling, Comparison, none, none}. - --spec highlight( - styling(FRL), - fun((binary()) -> binary()), - fun((binary()) -> binary()), - fun((binary()) -> binary()) -) -> styling(FRL). -highlight(Styling, First, Second, Matching) -> - erlang:setelement( - 4, - Styling, - {some, {highlighters, First, Second, Matching}} - ). - --spec serialize(styling(FRO), fun((part(FRO)) -> binary())) -> styling(FRO). -serialize(Styling, Serializer) -> - erlang:setelement(3, Styling, {some, Serializer}). - --spec first_highlight_default(binary()) -> binary(). -first_highlight_default(String) -> - case String of - <<" "/utf8>> -> - _pipe = String, - _pipe@1 = gleam_community@ansi:underline(_pipe), - _pipe@2 = gleam_community@ansi:bold(_pipe@1), - gleam_community@ansi:green(_pipe@2); - - _ -> - _pipe@3 = String, - _pipe@4 = gleam_community@ansi:green(_pipe@3), - gleam_community@ansi:bold(_pipe@4) - end. - --spec second_highlight_default(binary()) -> binary(). -second_highlight_default(String) -> - case String of - <<" "/utf8>> -> - _pipe = String, - _pipe@1 = gleam_community@ansi:underline(_pipe), - _pipe@2 = gleam_community@ansi:bold(_pipe@1), - gleam_community@ansi:red(_pipe@2); - - _ -> - _pipe@3 = String, - _pipe@4 = gleam_community@ansi:red(_pipe@3), - gleam_community@ansi:bold(_pipe@4) - end. - --spec no_highlight(binary()) -> binary(). -no_highlight(String) -> - String. - --spec string_serializer(part(binary())) -> binary(). -string_serializer(Part) -> - case Part of - {part, Acc, Sequence, Highlight} -> - <>) - end)/binary>>; - - {all, String} -> - String - end. - --spec mk_generic_serializer(binary(), fun((binary()) -> binary())) -> fun((part(any())) -> binary()). -mk_generic_serializer(Separator, Around) -> - fun(Part) -> case Part of - {part, Acc, Sequence, Highlight} -> - Segment_separator = case Acc of - <<""/utf8>> -> - <<""/utf8>>; - - _ -> - Separator - end, - <<<>/binary, - (begin - _pipe = Sequence, - _pipe@1 = gleam@list:map( - _pipe, - fun gleam@string:inspect/1 - ), - _pipe@2 = gleam@list:map(_pipe@1, Highlight), - gleam@string:join(_pipe@2, Separator) - end)/binary>>; - - {all, String} -> - Around(String) - end end. - --spec generic_serializer(part(any())) -> binary(). -generic_serializer(Part) -> - (mk_generic_serializer( - <<", "/utf8>>, - fun(All) -> <<<<"["/utf8, All/binary>>/binary, "]"/utf8>> end - ))(Part). - --spec to_strings( - list(gap@comparison:match(list(FRY))), - list(gap@comparison:match(list(FRY))), - fun((part(FRY)) -> binary()), - fun((binary()) -> binary()), - fun((binary()) -> binary()), - fun((binary()) -> binary()) -) -> gap@styled_comparison:styled_comparison(). -to_strings( - First, - Second, - Serializer, - First_highlight, - Second_highlight, - No_highlight -) -> - First_styled = begin - _pipe = First, - gleam@list:fold(_pipe, <<""/utf8>>, fun(Str, Match) -> case Match of - {match, Item} -> - Serializer({part, Str, Item, No_highlight}); - - {no_match, Item@1} -> - Serializer({part, Str, Item@1, First_highlight}) - end end) - end, - Second_styled = begin - _pipe@1 = Second, - gleam@list:fold( - _pipe@1, - <<""/utf8>>, - fun(Str@1, Match@1) -> case Match@1 of - {match, Item@2} -> - Serializer({part, Str@1, Item@2, No_highlight}); - - {no_match, Item@3} -> - Serializer({part, Str@1, Item@3, Second_highlight}) - end end - ) - end, - {styled_comparison, - Serializer({all, First_styled}), - Serializer({all, Second_styled})}. - --spec to_styled_comparison(styling(any())) -> gap@styled_comparison:styled_comparison(). -to_styled_comparison(Styling) -> - Highlight = begin - _pipe = erlang:element(4, Styling), - gleam@option:unwrap( - _pipe, - {highlighters, - fun first_highlight_default/1, - fun second_highlight_default/1, - fun no_highlight/1} - ) - end, - case erlang:element(2, Styling) of - {string_comparison, First, Second} -> - to_strings( - First, - Second, - fun string_serializer/1, - erlang:element(2, Highlight), - erlang:element(3, Highlight), - erlang:element(4, Highlight) - ); - - {list_comparison, First@1, Second@1} -> - to_strings( - First@1, - Second@1, - gleam@option:unwrap( - erlang:element(3, Styling), - fun generic_serializer/1 - ), - erlang:element(2, Highlight), - erlang:element(3, Highlight), - erlang:element(4, Highlight) - ) - end. diff --git a/aoc2023/build/packages/gap/src/gap_ffi.mjs b/aoc2023/build/packages/gap/src/gap_ffi.mjs deleted file mode 100644 index 235c80b..0000000 --- a/aoc2023/build/packages/gap/src/gap_ffi.mjs +++ /dev/null @@ -1,431 +0,0 @@ -import { - Error, - List, - Ok, - inspect, - toList, - makeError, - isEqual, -} from "./gleam.mjs"; -import * as $option from "../gleam_stdlib/gleam/option.mjs"; - -const HASHCODE_CACHE = new WeakMap(); -const Nil = undefined; - -class MutableMap { - static #hashcode_cache = new WeakMap(); - - static hash(value) { - let existing = this.#hashcode_cache.get(value); - if (existing) { - return existing; - } else if (value instanceof Object) { - let hashcode = inspect(value); - HASHCODE_CACHE.set(value, hashcode); - return hashcode; - } else { - return value.toString(); - } - } - - constructor() { - this.entries = new globalThis.Map(); - } - - get size() { - return this.entries.size; - } - - inspect() { - let entries = [...this.entries.values()] - .map((pair) => inspect(pair)) - .join(", "); - return `map.from_list([${entries}])`; - } - - toList() { - return List.fromArray([...this.entries.values()]); - } - - insert(k, v) { - this.entries.set(MutableMap.hash(k), [k, v]); - return this; - } - - delete(k) { - this.entries.delete(MutableMap.hash(k)); - return this; - } - - get(key) { - let code = MutableMap.hash(key); - if (this.entries.has(code)) { - return new Ok(this.entries.get(code)[1]); - } else { - return new Error(Nil); - } - } -} - -export function new_mutable_map() { - return new MutableMap(); -} - -export function mutable_map_size(map) { - return map.size; -} - -export function mutable_map_to_list(map) { - return map.toList(); -} - -export function mutable_map_remove(k, map) { - return map.delete(k); -} - -export function mutable_map_get(map, key) { - return map.get(key); -} - -export function mutable_map_insert(key, value, map) { - return map.insert(key, value); -} - -// From map.mjs - -export function size(map) { - return mutable_map_size(map); -} - -export function to_list(map) { - return mutable_map_to_list(map); -} - -export function new$() { - return new_mutable_map(); -} - -export function get(from, get) { - return mutable_map_get(from, get); -} - -function do_has_key(key, map) { - return !isEqual(get(map, key), new Error(undefined)); -} - -export function has_key(map, key) { - return do_has_key(key, map); -} - -export function insert(map, key, value) { - return mutable_map_insert(key, value, map); -} - -function insert_pair(map, pair) { - return insert(map, pair[0], pair[1]); -} - -export function update(map, key, fun) { - let _pipe = map; - let _pipe$1 = get(_pipe, key); - let _pipe$2 = $option.from_result(_pipe$1); - let _pipe$3 = fun(_pipe$2); - return ((_capture) => { - return insert(map, key, _capture); - })(_pipe$3); -} - -export function delete$(map, key) { - return mutable_map_remove(key, map); -} - -function fold_list_of_pair(loop$list, loop$initial) { - while (true) { - let list = loop$list; - let initial = loop$initial; - if (list.hasLength(0)) { - return initial; - } else if (list.atLeastLength(1)) { - let x = list.head; - let rest = list.tail; - loop$list = rest; - loop$initial = insert(initial, x[0], x[1]); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 98, - "fold_list_of_pair", - "No case clause matched", - { values: [list] } - ); - } - } -} - -function do_from_list(list) { - return fold_list_of_pair(list, new$()); -} - -export function from_list(list) { - return do_from_list(list); -} - -function do_fold(loop$list, loop$initial, loop$fun) { - while (true) { - let list = loop$list; - let initial = loop$initial; - let fun = loop$fun; - if (list.hasLength(0)) { - return initial; - } else if (list.atLeastLength(1)) { - let k = list.head[0]; - let v = list.head[1]; - let tail = list.tail; - loop$list = tail; - loop$initial = fun(initial, k, v); - loop$fun = fun; - } else { - throw makeError( - "case_no_match", - "gleam/map", - 558, - "do_fold", - "No case clause matched", - { values: [list] } - ); - } - } -} - -export function fold(map, initial, fun) { - let _pipe = map; - let _pipe$1 = to_list(_pipe); - return do_fold(_pipe$1, initial, fun); -} - -function do_map_values(f, map) { - let f$1 = (map, k, v) => { - return insert(map, k, f(k, v)); - }; - let _pipe = map; - return fold(_pipe, new$(), f$1); -} - -export function map_values(map, fun) { - return do_map_values(fun, map); -} - -function do_filter(f, map) { - let insert$1 = (map, k, v) => { - let $ = f(k, v); - if ($) { - return insert(map, k, v); - } else { - return map; - } - }; - let _pipe = map; - return fold(_pipe, new$(), insert$1); -} - -export function filter(map, property) { - return do_filter(property, map); -} - -function do_keys_acc(loop$list, loop$acc) { - while (true) { - let list = loop$list; - let acc = loop$acc; - if (list.hasLength(0)) { - return reverse_and_concat(acc, toList([])); - } else if (list.atLeastLength(1)) { - let x = list.head; - let xs = list.tail; - loop$list = xs; - loop$acc = toList([x[0]], acc); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 276, - "do_keys_acc", - "No case clause matched", - { values: [list] } - ); - } - } -} - -function do_keys(map) { - let list_of_pairs = (() => { - let _pipe = map; - return to_list(_pipe); - })(); - return do_keys_acc(list_of_pairs, toList([])); -} - -export function keys(map) { - return do_keys(map); -} - -function reverse_and_concat(loop$remaining, loop$accumulator) { - while (true) { - let remaining = loop$remaining; - let accumulator = loop$accumulator; - if (remaining.hasLength(0)) { - return accumulator; - } else if (remaining.atLeastLength(1)) { - let item = remaining.head; - let rest = remaining.tail; - loop$remaining = rest; - loop$accumulator = toList([item], accumulator); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 269, - "reverse_and_concat", - "No case clause matched", - { values: [remaining] } - ); - } - } -} - -function do_values_acc(loop$list, loop$acc) { - while (true) { - let list = loop$list; - let acc = loop$acc; - if (list.hasLength(0)) { - return reverse_and_concat(acc, toList([])); - } else if (list.atLeastLength(1)) { - let x = list.head; - let xs = list.tail; - loop$list = xs; - loop$acc = toList([x[1]], acc); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 314, - "do_values_acc", - "No case clause matched", - { values: [list] } - ); - } - } -} - -function do_values(map) { - let list_of_pairs = (() => { - let _pipe = map; - return to_list(_pipe); - })(); - return do_values_acc(list_of_pairs, toList([])); -} - -export function values(map) { - return do_values(map); -} - -function insert_taken(loop$map, loop$desired_keys, loop$acc) { - while (true) { - let map = loop$map; - let desired_keys = loop$desired_keys; - let acc = loop$acc; - let insert$1 = (taken, key) => { - let $ = get(map, key); - if ($.isOk()) { - let value = $[0]; - return insert(taken, key, value); - } else { - return taken; - } - }; - if (desired_keys.hasLength(0)) { - return acc; - } else if (desired_keys.atLeastLength(1)) { - let x = desired_keys.head; - let xs = desired_keys.tail; - loop$map = map; - loop$desired_keys = xs; - loop$acc = insert$1(acc, x); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 411, - "insert_taken", - "No case clause matched", - { values: [desired_keys] } - ); - } - } -} - -function do_take(desired_keys, map) { - return insert_taken(map, desired_keys, new$()); -} - -export function take(map, desired_keys) { - return do_take(desired_keys, map); -} - -function fold_inserts(loop$new_entries, loop$map) { - while (true) { - let new_entries = loop$new_entries; - let map = loop$map; - if (new_entries.hasLength(0)) { - return map; - } else if (new_entries.atLeastLength(1)) { - let x = new_entries.head; - let xs = new_entries.tail; - loop$new_entries = xs; - loop$map = insert_pair(map, x); - } else { - throw makeError( - "case_no_match", - "gleam/map", - 451, - "fold_inserts", - "No case clause matched", - { values: [new_entries] } - ); - } - } -} - -function do_merge(map, new_entries) { - let _pipe = new_entries; - let _pipe$1 = to_list(_pipe); - return fold_inserts(_pipe$1, map); -} - -export function merge(map, new_entries) { - return do_merge(map, new_entries); -} - -export function drop(loop$map, loop$disallowed_keys) { - while (true) { - let map = loop$map; - let disallowed_keys = loop$disallowed_keys; - if (disallowed_keys.hasLength(0)) { - return map; - } else if (disallowed_keys.atLeastLength(1)) { - let x = disallowed_keys.head; - let xs = disallowed_keys.tail; - loop$map = delete$(map, x); - loop$disallowed_keys = xs; - } else { - throw makeError( - "case_no_match", - "gleam/map", - 514, - "drop", - "No case clause matched", - { values: [disallowed_keys] } - ); - } - } -} diff --git a/aoc2023/build/packages/gleam.lock b/aoc2023/build/packages/gleam.lock deleted file mode 100644 index e69de29..0000000 diff --git a/aoc2023/build/packages/gleam_community_ansi/LICENCE b/aoc2023/build/packages/gleam_community_ansi/LICENCE deleted file mode 100644 index a84f0ec..0000000 --- a/aoc2023/build/packages/gleam_community_ansi/LICENCE +++ /dev/null @@ -1,190 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2023 Gleam Community Contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/aoc2023/build/packages/gleam_community_ansi/README.md b/aoc2023/build/packages/gleam_community_ansi/README.md deleted file mode 100644 index 90ab0d5..0000000 --- a/aoc2023/build/packages/gleam_community_ansi/README.md +++ /dev/null @@ -1,72 +0,0 @@ -# gleam-community/ansi - -Format text with ANSI escape sequences. - -[![Package Version](https://img.shields.io/hexpm/v/gleam_community_ansi)](https://hex.pm/packages/gleam_community_ansi) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/gleam_community_ansi/) - -✨ This project is written in _pure Gleam_ so you can use it anywhere Gleam runs: -Erlang, Elixir, Node, Deno, even [some browsers](https://bit.ly/devtools-console-ansi-support)! - ---- - -## Quickstart - -```gleam -import gleam/io -import gleam_community/ansi - -pub fn main() { - let greeting = "Hello, " <> ansi.pink("world") <> "!" - - greeting - |> ansi.bg_white - |> io.println -} - -``` - -## Installation - -`gleam_community` packages are published to [hex.pm](https://hex.pm/packages/gleam_community_ansi) -with the prefix `gleam_community_`. You can add them to your Gleam projects directly: - -```sh -gleam add gleam_community_ansi -``` - -The docs can be found over at [hexdocs.pm](https://hexdocs.pm/gleam_community_ansi). - -## ANSI-what? - -ANSI escape sequences date back to the 70s as a standard way to format text on -various video text terminals. Since then they have been adopted by many software -terminal emulators and platforms, including some Web browsers, and are a simple -way to format text without platform-specific APIs. - -The point of this package is to abstract the specific codes away and give you an -easy-to-understand API for formatting and colouring terminal text. Still, here is -a quick couple of examples of what's happening under the hood. - -You can copy these examples straight into your terminal to see them in action! - -- Colour text yellow: - - ```shell - $ echo "\e[33mhello" - ``` - -- Colour the background pink: - - ```shell - $ echo "\e[45mhello" - ``` - -- Render text italic: - - ```shell - $ echo "\e[3mhello\e[23m" - ``` - -As you can see, the escape sequences are a bit obscure. Sure, you could hard code -them, or you could use this package! diff --git a/aoc2023/build/packages/gleam_community_ansi/gleam.toml b/aoc2023/build/packages/gleam_community_ansi/gleam.toml deleted file mode 100644 index 5da1f7e..0000000 --- a/aoc2023/build/packages/gleam_community_ansi/gleam.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = "gleam_community_ansi" -version = "1.2.0" -licences = ["Apache-2.0"] -description = "ANSI colours, formatting, and control codes" -repository = { type = "github", user = "gleam-community", repo = "ansi" } -gleam = ">= 0.32.0" - -[dependencies] -gleam_stdlib = "~> 0.32" -gleam_community_colour = "~> 1.2" - -[dev-dependencies] -gleeunit = "~> 0.11" diff --git a/aoc2023/build/packages/gleam_community_ansi/src/gleam_community/ansi.gleam b/aoc2023/build/packages/gleam_community_ansi/src/gleam_community/ansi.gleam deleted file mode 100644 index a542dda..0000000 --- a/aoc2023/build/packages/gleam_community_ansi/src/gleam_community/ansi.gleam +++ /dev/null @@ -1,2317 +0,0 @@ -//// -//// - **Text style** -//// - [`bold`](#bold) -//// - [`italic`](#italic) -//// - [`underline`](#underline) -//// - [`strikethrough`](#strikethrough) -//// - [`inverse`](#inverse) -//// - [`dim`](#dim) -//// - [`hidden`](#hidden) -//// - [`reset`](#reset) -//// - **Text colour** -//// - [`black`](#black) -//// - [`red`](#red) -//// - [`green`](#green) -//// - [`yellow`](#yellow) -//// - [`blue`](#blue) -//// - [`magenta`](#magenta) -//// - [`cyan`](#cyan) -//// - [`white`](#white) -//// - [`pink`](#pink) -//// - [`grey`](#grey) -//// - [`gray`](#gray) -//// - [`bright_black`](#bright_black) -//// - [`bright_red`](#bright_red) -//// - [`bright_green`](#bright_green) -//// - [`bright_yellow`](#bright_yellow) -//// - [`bright_blue`](#bright_blue) -//// - [`bright_magenta`](#bright_magenta) -//// - [`bright_cyan`](#bright_cyan) -//// - [`bright_white`](#bright_white) -//// - [`hex`](#hex) -//// - [`colour`](#colour) -//// - [`color`](#color) -//// - **Background colour** -//// - [`bg_black`](#bg_black) -//// - [`bg_red`](#bg_red) -//// - [`bg_green`](#bg_green) -//// - [`bg_yellow`](#bg_yellow) -//// - [`bg_blue`](#bg_blue) -//// - [`bg_magenta`](#bg_magenta) -//// - [`bg_cyan`](#bg_cyan) -//// - [`bg_white`](#bg_white) -//// - [`bg_pink`](#bg_pink) -//// - [`bg_bright_black`](#bg_bright_black) -//// - [`bg_bright_red`](#bg_bright_red) -//// - [`bg_bright_green`](#bg_bright_green) -//// - [`bg_bright_yellow`](#bg_bright_yellow) -//// - [`bg_bright_blue`](#bg_bright_blue) -//// - [`bg_bright_magenta`](#bg_bright_magenta) -//// - [`bg_bright_cyan`](#bg_bright_cyan) -//// - [`bg_bright_white`](#bg_bright_white) -//// - [`bg_hex`](#bg_hex) -//// - [`bg_colour`](#bg_colour) -//// - [`bg_color`](#bg_color) -//// -//// --- -//// -//// This package was heavily inspired by the `colours` module in the Deno standard -//// library. The original source code can be found -//// here. -//// -////
-//// The license of that package is produced below: -//// -//// -//// > MIT License -//// -//// > Copyright 2018-2022 the Deno authors. -//// -//// > Permission is hereby granted, free of charge, to any person obtaining a copy -//// of this software and associated documentation files (the "Software"), to deal -//// in the Software without restriction, including without limitation the rights -//// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -//// copies of the Software, and to permit persons to whom the Software is -//// furnished to do so, subject to the following conditions: -//// -//// > The above copyright notice and this permission notice shall be included in all -//// copies or substantial portions of the Software. -////
-//// - -// Just in case we decide in the future to no longer include the above reference -// and license, this package was initially a port of the Deno `colours` module: -// -// https://deno.land/std@0.167.0/fmt/colours.ts -// - -// This seems like a really handy reference if/when we want to expand this beyond -// formatting escape sequences: -// -// https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 -// - -// IMPORTS -------------------------------------------------------------------- - -import gleam/int -import gleam/list -import gleam/string -import gleam_community/colour.{type Colour} as gc_colour - -// CONSTS --------------------------------------------------------------------- - -const asci_escape_character = "" - -// TYPES ---------------------------------------------------------------------- - -type Code { - Code(open: String, close: String, regexp: String) -} - -// UTILITY -------------------------------------------------------------------- - -/// Builds colour code -fn code(open: List(Int), close: Int) -> Code { - let close_str = int.to_string(close) - let open_strs = list.map(open, int.to_string) - - Code( - open: asci_escape_character <> "[" <> string.join(open_strs, ";") <> "m", - close: asci_escape_character <> "[" <> close_str <> "m", - regexp: asci_escape_character <> "[" <> close_str <> "m", - ) -} - -/// Applies colour and background based on colour code and its associated text -fn run(text: String, code: Code) -> String { - code.open <> string.replace(text, code.regexp, code.open) <> code.close -} - -// STYLES --------------------------------------------------------------------- - -/// Reset the text modified -pub fn reset(text: String) -> String { - run(text, code([0], 0)) -} - -/// Style the given text bold. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bold("lucy") -/// // => "\x1B[1mlucy\x1B[22m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[22m"` added to the string. This is the escape code -/// for the "default" bold/dim style of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// style, it will use both the outter style and the inner style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.dim("Isn't " <> ansi.bold("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be dim but the text "fun?" will be -/// both underlined, *and* bold! -///
-/// -/// -/// -pub fn bold(text: String) -> String { - run(text, code([1], 22)) -} - -/// Style the given text's colour to be dimmer. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.dim("lucy") -/// // => "\x1B[2mlucy\x1B[22m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[22m"` added to the string. This is the escape code -/// for the "default" bold/dim style of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// style, it will use both the outter style and the inner style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.dim("Isn't " <> ansi.bold("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be dim but the text "fun?" will be -/// both underlined, *and* bold! -///
-/// -/// -/// -pub fn dim(text: String) -> String { - run(text, code([2], 22)) -} - -/// Style the given text italic. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.italic("lucy") -/// // => "\x1B[3mlucy\x1B[23m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[23m"` added to the string. This is the escape code -/// for the "default" italic style of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// style, it will use both the outter style and the inner style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.underline("Isn't " <> ansi.bold("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be underlined but the text "fun?" will be -/// both underlined, *and* bold! -///
-/// -/// -/// -pub fn italic(text: String) -> String { - run(text, code([3], 23)) -} - -/// Style the given text's colour to be dimmer. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.underline("lucy") -/// // => "\x1B[4mlucy\x1B[24m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[24m"` added to the string. This is the escape code -/// for the "default" underline style of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// style, it will use both the outter style and the inner style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.dim("Isn't " <> ansi.bold("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be dim but the text "fun?" will be -/// both underlined, *and* bold! -///
-/// -/// -/// -pub fn underline(text: String) -> String { - run(text, code([4], 24)) -} - -/// Inverse the given text's colour, and background colour. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.inverse("lucy") -/// // => "\x1B[7mlucy\x1B[27m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[27m"` added to the string. This is the escape code -/// for the "default" inverse style of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// style, it will use both the outter style and the inner style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.dim("Isn't " <> ansi.bold("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be dim but the text "fun?" will be -/// both underlined, *and* bold! -///
-/// -/// -/// -pub fn inverse(text: String) -> String { - run(text, code([7], 27)) -} - -/// Style the given text to be hidden. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.hidden("lucy") -/// // => "\x1B[8mlucy\x1B[28m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[28m"` added to the string. This is the escape code -/// for the "default" hidden style of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// style, it will use both the outter style and the inner style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.dim("Isn't " <> ansi.bold("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be dim but the text "fun?" will be -/// both underlined, *and* bold! -///
-/// -/// -/// -pub fn hidden(text: String) -> String { - run(text, code([8], 28)) -} - -/// Style the given text to be striked through. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.strikethrough("lucy") -/// // => "\x1B[9mlucy\x1B[29m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[29m"` added to the string. This is the escape code -/// for the "default" strikethrough style of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// style, it will use both the outter style and the inner style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.dim("Isn't " <> ansi.bold("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be dim but the text "fun?" will be -/// both underlined, *and* bold! -///
-/// -/// -/// -pub fn strikethrough(text: String) -> String { - run(text, code([9], 29)) -} - -// FOREGROUND ----------------------------------------------------------------- - -/// Colour the given text black. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.black("lucy") -/// // => "\x1B[30mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn black(text: String) -> String { - run(text, code([30], 39)) -} - -/// Colour the given text red. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.red("lucy") -/// // => "\x1B[31mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn red(text: String) -> String { - run(text, code([31], 39)) -} - -/// Colour the given text green. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.green("lucy") -/// // => "\x1B[32mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn green(text: String) -> String { - run(text, code([32], 39)) -} - -/// Colour the given text yellow. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("lucy") -/// // => "\x1B[33mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn yellow(text: String) -> String { - run(text, code([33], 39)) -} - -/// Colour the given text blue. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.blue("lucy") -/// // => "\x1B[34mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn blue(text: String) -> String { - run(text, code([34], 39)) -} - -/// Colour the given text magenta. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.magenta("lucy") -/// // => "\x1B[35mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn magenta(text: String) -> String { - run(text, code([35], 39)) -} - -/// Colour the given text cyan. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.cyan("lucy") -/// // => "\x1B[36mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn cyan(text: String) -> String { - run(text, code([36], 39)) -} - -/// Colour the given text white. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.white("lucy") -/// // => "\x1B[37mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn white(text: String) -> String { - run(text, code([37], 39)) -} - -/// Colour the given text gray. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.gray("lucy") -/// // => "\x1B[90mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn grey(text: String) -> String { - bright_black(text) -} - -/// This is an alias for [`grey`](#grey) for those who prefer the American English -/// spelling. -/// -pub fn gray(text: String) -> String { - bright_black(text) -} - -/// Colour the given text bright black. This should increase the luminosity of -/// the base colour, but some terminals will interpret this as bold instead. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bright_black("lucy") -/// // => "\x1B[90mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bright_black(text: String) -> String { - run(text, code([90], 39)) -} - -/// Colour the given text bright red. This should increase the luminosity of -/// the base colour, but some terminals will interpret this as bold instead. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bright_red("lucy") -/// // => "\x1B[91mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bright_red(text: String) -> String { - run(text, code([91], 39)) -} - -/// Colour the given text bright green. This should increase the luminosity of -/// the base colour, but some terminals will interpret this as bold instead. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// ansi.bright_green("lucy") -/// // => "\x1B[92mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bright_green(text: String) -> String { - run(text, code([92], 39)) -} - -/// Colour the given text bright yellow. This should increase the luminosity of -/// the base colour, but some terminals will interpret this as bold instead. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// ansi.bright_yellow("lucy") -/// // => "\x1B[93mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bright_yellow(text: String) -> String { - run(text, code([93], 39)) -} - -/// Colour the given text bright blue. This should increase the luminosity of -/// the base colour, but some terminals will interpret this as bold instead. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// ansi.bright_blue("lucy") -/// // => "\x1B[94mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bright_blue(text: String) -> String { - run(text, code([94], 39)) -} - -/// Colour the given text bright gremagentaen. This should increase the luminosity -/// of the base colour, but some terminals will interpret this as bold instead. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// ansi.bright_magenta("lucy") -/// // => "\x1B[95mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bright_magenta(text: String) -> String { - run(text, code([95], 39)) -} - -/// Colour the given text bright cyan. This should increase the luminosity of -/// the base colour, but some terminals will interpret this as bold instead. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// ansi.bright_cyan("lucy") -/// // => "\x1B[96mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bright_cyan(text: String) -> String { - run(text, code([96], 39)) -} - -/// Colour the given text bright white. This should increase the luminosity of -/// the base colour, but some terminals will interpret this as bold instead. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// ansi.bright_white("lucy") -/// // => "\x1B[97mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bright_white(text: String) -> String { - run(text, code([97], 39)) -} - -/// Colour the given text pink. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.pink("lucy") -/// // => "\x1B[38;2;255;175;243mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[39m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn pink(text: String) -> String { - hex(text, 0xffaff3) -} - -/// Colour the given text the given colour represented by a hex `Int`. -/// -/// The given hex Int can be any valid [shorthand hexadecimal form](https://en.wikipedia.org/wiki/Web_colors#Shorthand_hexadecimal_form). -/// -/// ❗️ Note that if supplied hex Int is less than 0 or larger than 0xfffff the -/// colour will be set to black and white respectively. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.hex("lucy", 0xffaff3) -/// // => "\x1B[38;2;255;175;243mlucy\x1B[39m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn hex(text: String, colour: Int) -> String { - let colour = int.clamp(colour, max: 0xffffff, min: 0x0) - run( - text, - code( - [ - 38, - 2, - int.bitwise_shift_right(colour, 16) - |> int.bitwise_and(0xff), - int.bitwise_shift_right(colour, 8) - |> int.bitwise_and(0xff), - int.bitwise_and(colour, 0xff), - ], - 39, - ), - ) -} - -/// Colour the given text the given colour represented by a `Colour`. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// import gleam_community/colour.{Colour} -/// -/// fn example() { -/// let pink = colour.from_hsl(0.8583, 1.0, 0,84) -/// ansi.colour("lucy", pink) -/// // => "\x1B[48;2;255;175;243mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn colour(text: String, colour: Colour) -> String { - let hex_colour = gc_colour.to_rgb_hex(colour) - hex(text, hex_colour) -} - -/// This is an alias for [`colour`](#colour) for those who prefer the American English -/// spelling. -/// -pub fn color(text: String, color: Colour) -> String { - colour(text, color) -} - -// BACKGROUND ----------------------------------------------------------------- - -/// Colour the given text's background black. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_black("lucy") -/// // => "\x1B[40mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_black(text: String) -> String { - run(text, code([40], 49)) -} - -/// Colour the given text's background red. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_red("lucy") -/// // => "\x1B[41mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_red(text: String) -> String { - run(text, code([41], 49)) -} - -/// Colour the given text's background green. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_green("lucy") -/// // => "\x1B[42mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_green(text: String) -> String { - run(text, code([42], 49)) -} - -/// Colour the given text's background yellow. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_yellow("lucy") -/// // => "\x1B[43mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_yellow(text: String) -> String { - run(text, code([43], 49)) -} - -/// Colour the given text's background blue. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_blue("lucy") -/// // => "\x1B[44mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_blue(text: String) -> String { - run(text, code([44], 49)) -} - -/// Colour the given text's background magenta. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_magenta("lucy") -/// // => "\x1B[45mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_magenta(text: String) -> String { - run(text, code([45], 49)) -} - -/// Colour the given text's background cyan. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_cyan("lucy") -/// // => "\x1B[46mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_cyan(text: String) -> String { - run(text, code([46], 49)) -} - -/// Colour the given text's background white. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_white("lucy") -/// // => "\x1B[47mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_white(text: String) -> String { - run(text, code([47], 49)) -} - -/// Colour the given text's background bright black. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_bright_black("lucy") -/// // => "\x1B[100mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_bright_black(text: String) -> String { - run(text, code([100], 49)) -} - -/// Colour the given text's background bright red. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_bright_red("lucy") -/// // => "\x1B[101mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_bright_red(text: String) -> String { - run(text, code([101], 49)) -} - -/// Colour the given text's background bright green. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_bright_green("lucy") -/// // => "\x1B[102mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_bright_green(text: String) -> String { - run(text, code([102], 49)) -} - -/// Colour the given text's background bright yellow. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_bright_yellow("lucy") -/// // => "\x1B[103mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_bright_yellow(text: String) -> String { - run(text, code([103], 49)) -} - -/// Colour the given text's background bright blue. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_bright_blue("lucy") -/// // => "\x1B[104mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_bright_blue(text: String) -> String { - run(text, code([104], 49)) -} - -/// Colour the given text's background bright magenta. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_bright_magenta("lucy") -/// // => "\x1B[105mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_bright_magenta(text: String) -> String { - run(text, code([105], 49)) -} - -/// Colour the given text's background bright cyan. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_bright_cyan("lucy") -/// // => "\x1B[106mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_bright_cyan(text: String) -> String { - run(text, code([106], 49)) -} - -/// Colour the given text's background bright white. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_bright_white("lucy") -/// // => "\x1B[107mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_bright_white(text: String) -> String { - run(text, code([107], 49)) -} - -/// Colour the given text's background pink. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.bg_pink("lucy") -/// // => "\x1B[48;2;255;175;243mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_pink(text: String) -> String { - bg_hex(text, 0xffaff3) -} - -/// Colour the given text's background the given colour represented by a hex `Int`. -/// -/// The given hex Int can be any valid [shorthand hexadecimal form](https://en.wikipedia.org/wiki/Web_colors#Shorthand_hexadecimal_form). -/// -/// ❗️ Note that if supplied hex Int is less than 0 or larger than 0xfffff the -/// colour will be set to black and white respectively. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.hex("lucy", 0xffaff3) -/// // => "\x1B[48;2;255;175;243mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_hex(text: String, colour: Int) -> String { - run( - text, - code( - [ - 48, - 2, - int.bitwise_shift_right(colour, 16) - |> int.bitwise_and(0xff), - int.bitwise_shift_right(colour, 8) - |> int.bitwise_and(0xff), - int.bitwise_and(colour, 0xff), - ], - 49, - ), - ) -} - -/// Colour the given text's background with the given colour represented by a `Colour`. -/// -///
-/// Example: -/// -/// ```gleam -/// import gleam_community/ansi -/// import gleam_community/colour.{Colour} -/// -/// fn example() { -/// let pink = colour.from_hsl(0.8583, 1.0, 0,84) -/// ansi.bg_colour("lucy", pink) -/// // => "\x1B[48;2;255;175;243mlucy\x1B[49m" -/// } -/// ``` -/// -/// ❗️ Note the trailing `"\x1B[49m"` added to the string. This is the escape code -/// for the "default" colour of the terminal. This means text you write after -/// this will revert back to default. -/// -/// ✨ `gleam_community/ansi` is smart about nested styles; instead of using the default -/// colour, it will use the colour of the outter style. -/// -/// ```gleam -/// import gleam_community/ansi -/// -/// fn example() { -/// ansi.yellow("Isn't " <> ansi.pink("Gleam") <> " fun?") -/// } -/// ``` -/// -/// In this example, the text "Gleam" will be pink but the text "fun?" will be -/// yellow, *not* the default colour! -///
-/// -/// -/// -pub fn bg_colour(text: String, colour: Colour) -> String { - let hex_colour = gc_colour.to_rgb_hex(colour) - bg_hex(text, hex_colour) -} - -/// This is an alias for [`bg_colour`](#bg_colour) for those who prefer the American English -/// spelling. -/// -pub fn bg_color(text: String, colour: Colour) -> String { - bg_colour(text, colour) -} diff --git a/aoc2023/build/packages/gleam_community_ansi/src/gleam_community@ansi.erl b/aoc2023/build/packages/gleam_community_ansi/src/gleam_community@ansi.erl deleted file mode 100644 index 8b7a4c9..0000000 --- a/aoc2023/build/packages/gleam_community_ansi/src/gleam_community@ansi.erl +++ /dev/null @@ -1,263 +0,0 @@ --module(gleam_community@ansi). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([reset/1, bold/1, dim/1, italic/1, underline/1, inverse/1, hidden/1, strikethrough/1, black/1, red/1, green/1, yellow/1, blue/1, magenta/1, cyan/1, white/1, bright_black/1, grey/1, gray/1, bright_red/1, bright_green/1, bright_yellow/1, bright_blue/1, bright_magenta/1, bright_cyan/1, bright_white/1, hex/2, pink/1, colour/2, color/2, bg_black/1, bg_red/1, bg_green/1, bg_yellow/1, bg_blue/1, bg_magenta/1, bg_cyan/1, bg_white/1, bg_bright_black/1, bg_bright_red/1, bg_bright_green/1, bg_bright_yellow/1, bg_bright_blue/1, bg_bright_magenta/1, bg_bright_cyan/1, bg_bright_white/1, bg_hex/2, bg_pink/1, bg_colour/2, bg_color/2]). --export_type([code/0]). - --type code() :: {code, binary(), binary(), binary()}. - --spec code(list(integer()), integer()) -> code(). -code(Open, Close) -> - Close_str = gleam@int:to_string(Close), - Open_strs = gleam@list:map(Open, fun gleam@int:to_string/1), - {code, - <<<<<<""/utf8, "["/utf8>>/binary, - (gleam@string:join(Open_strs, <<";"/utf8>>))/binary>>/binary, - "m"/utf8>>, - <<<<<<""/utf8, "["/utf8>>/binary, Close_str/binary>>/binary, "m"/utf8>>, - <<<<<<""/utf8, "["/utf8>>/binary, Close_str/binary>>/binary, "m"/utf8>>}. - --spec run(binary(), code()) -> binary(). -run(Text, Code) -> - <<<<(erlang:element(2, Code))/binary, - (gleam@string:replace( - Text, - erlang:element(4, Code), - erlang:element(2, Code) - ))/binary>>/binary, - (erlang:element(3, Code))/binary>>. - --spec reset(binary()) -> binary(). -reset(Text) -> - run(Text, code([0], 0)). - --spec bold(binary()) -> binary(). -bold(Text) -> - run(Text, code([1], 22)). - --spec dim(binary()) -> binary(). -dim(Text) -> - run(Text, code([2], 22)). - --spec italic(binary()) -> binary(). -italic(Text) -> - run(Text, code([3], 23)). - --spec underline(binary()) -> binary(). -underline(Text) -> - run(Text, code([4], 24)). - --spec inverse(binary()) -> binary(). -inverse(Text) -> - run(Text, code([7], 27)). - --spec hidden(binary()) -> binary(). -hidden(Text) -> - run(Text, code([8], 28)). - --spec strikethrough(binary()) -> binary(). -strikethrough(Text) -> - run(Text, code([9], 29)). - --spec black(binary()) -> binary(). -black(Text) -> - run(Text, code([30], 39)). - --spec red(binary()) -> binary(). -red(Text) -> - run(Text, code([31], 39)). - --spec green(binary()) -> binary(). -green(Text) -> - run(Text, code([32], 39)). - --spec yellow(binary()) -> binary(). -yellow(Text) -> - run(Text, code([33], 39)). - --spec blue(binary()) -> binary(). -blue(Text) -> - run(Text, code([34], 39)). - --spec magenta(binary()) -> binary(). -magenta(Text) -> - run(Text, code([35], 39)). - --spec cyan(binary()) -> binary(). -cyan(Text) -> - run(Text, code([36], 39)). - --spec white(binary()) -> binary(). -white(Text) -> - run(Text, code([37], 39)). - --spec bright_black(binary()) -> binary(). -bright_black(Text) -> - run(Text, code([90], 39)). - --spec grey(binary()) -> binary(). -grey(Text) -> - bright_black(Text). - --spec gray(binary()) -> binary(). -gray(Text) -> - bright_black(Text). - --spec bright_red(binary()) -> binary(). -bright_red(Text) -> - run(Text, code([91], 39)). - --spec bright_green(binary()) -> binary(). -bright_green(Text) -> - run(Text, code([92], 39)). - --spec bright_yellow(binary()) -> binary(). -bright_yellow(Text) -> - run(Text, code([93], 39)). - --spec bright_blue(binary()) -> binary(). -bright_blue(Text) -> - run(Text, code([94], 39)). - --spec bright_magenta(binary()) -> binary(). -bright_magenta(Text) -> - run(Text, code([95], 39)). - --spec bright_cyan(binary()) -> binary(). -bright_cyan(Text) -> - run(Text, code([96], 39)). - --spec bright_white(binary()) -> binary(). -bright_white(Text) -> - run(Text, code([97], 39)). - --spec hex(binary(), integer()) -> binary(). -hex(Text, Colour) -> - Colour@1 = gleam@int:clamp(Colour, 16#0, 16#ffffff), - run( - Text, - code( - [38, - 2, - begin - _pipe = erlang:'bsr'(Colour@1, 16), - erlang:'band'(_pipe, 16#ff) - end, - begin - _pipe@1 = erlang:'bsr'(Colour@1, 8), - erlang:'band'(_pipe@1, 16#ff) - end, - erlang:'band'(Colour@1, 16#ff)], - 39 - ) - ). - --spec pink(binary()) -> binary(). -pink(Text) -> - hex(Text, 16#ffaff3). - --spec colour(binary(), gleam_community@colour:colour()) -> binary(). -colour(Text, Colour) -> - Hex_colour = gleam_community@colour:to_rgb_hex(Colour), - hex(Text, Hex_colour). - --spec color(binary(), gleam_community@colour:colour()) -> binary(). -color(Text, Color) -> - colour(Text, Color). - --spec bg_black(binary()) -> binary(). -bg_black(Text) -> - run(Text, code([40], 49)). - --spec bg_red(binary()) -> binary(). -bg_red(Text) -> - run(Text, code([41], 49)). - --spec bg_green(binary()) -> binary(). -bg_green(Text) -> - run(Text, code([42], 49)). - --spec bg_yellow(binary()) -> binary(). -bg_yellow(Text) -> - run(Text, code([43], 49)). - --spec bg_blue(binary()) -> binary(). -bg_blue(Text) -> - run(Text, code([44], 49)). - --spec bg_magenta(binary()) -> binary(). -bg_magenta(Text) -> - run(Text, code([45], 49)). - --spec bg_cyan(binary()) -> binary(). -bg_cyan(Text) -> - run(Text, code([46], 49)). - --spec bg_white(binary()) -> binary(). -bg_white(Text) -> - run(Text, code([47], 49)). - --spec bg_bright_black(binary()) -> binary(). -bg_bright_black(Text) -> - run(Text, code([100], 49)). - --spec bg_bright_red(binary()) -> binary(). -bg_bright_red(Text) -> - run(Text, code([101], 49)). - --spec bg_bright_green(binary()) -> binary(). -bg_bright_green(Text) -> - run(Text, code([102], 49)). - --spec bg_bright_yellow(binary()) -> binary(). -bg_bright_yellow(Text) -> - run(Text, code([103], 49)). - --spec bg_bright_blue(binary()) -> binary(). -bg_bright_blue(Text) -> - run(Text, code([104], 49)). - --spec bg_bright_magenta(binary()) -> binary(). -bg_bright_magenta(Text) -> - run(Text, code([105], 49)). - --spec bg_bright_cyan(binary()) -> binary(). -bg_bright_cyan(Text) -> - run(Text, code([106], 49)). - --spec bg_bright_white(binary()) -> binary(). -bg_bright_white(Text) -> - run(Text, code([107], 49)). - --spec bg_hex(binary(), integer()) -> binary(). -bg_hex(Text, Colour) -> - run( - Text, - code( - [48, - 2, - begin - _pipe = erlang:'bsr'(Colour, 16), - erlang:'band'(_pipe, 16#ff) - end, - begin - _pipe@1 = erlang:'bsr'(Colour, 8), - erlang:'band'(_pipe@1, 16#ff) - end, - erlang:'band'(Colour, 16#ff)], - 49 - ) - ). - --spec bg_pink(binary()) -> binary(). -bg_pink(Text) -> - bg_hex(Text, 16#ffaff3). - --spec bg_colour(binary(), gleam_community@colour:colour()) -> binary(). -bg_colour(Text, Colour) -> - Hex_colour = gleam_community@colour:to_rgb_hex(Colour), - bg_hex(Text, Hex_colour). - --spec bg_color(binary(), gleam_community@colour:colour()) -> binary(). -bg_color(Text, Colour) -> - bg_colour(Text, Colour). diff --git a/aoc2023/build/packages/gleam_community_ansi/src/gleam_community_ansi.app.src b/aoc2023/build/packages/gleam_community_ansi/src/gleam_community_ansi.app.src deleted file mode 100644 index dfcfdc3..0000000 --- a/aoc2023/build/packages/gleam_community_ansi/src/gleam_community_ansi.app.src +++ /dev/null @@ -1,9 +0,0 @@ -{application, gleam_community_ansi, [ - {vsn, "1.2.0"}, - {applications, [gleam_community_colour, - gleam_stdlib, - gleeunit]}, - {description, "ANSI colours, formatting, and control codes"}, - {modules, [gleam_community@ansi]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gleam_community_colour/LICENCE b/aoc2023/build/packages/gleam_community_colour/LICENCE deleted file mode 100644 index a84f0ec..0000000 --- a/aoc2023/build/packages/gleam_community_colour/LICENCE +++ /dev/null @@ -1,190 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2023 Gleam Community Contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/aoc2023/build/packages/gleam_community_colour/README.md b/aoc2023/build/packages/gleam_community_colour/README.md deleted file mode 100644 index 0eccdd7..0000000 --- a/aoc2023/build/packages/gleam_community_colour/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# gleam-community/colour - -A package for a standard Colour type, conversions, and other utilities. - -[![Package Version](https://img.shields.io/hexpm/v/gleam_community_colour)](https://hex.pm/packages/gleam_community_colour) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/gleam_community_colour/) - -✨ This project is written in pure Gleam so you can use it anywhere Gleam runs: Erlang, Elixir, Node, Deno, and the browser! - ---- - -## Quickstart - -```gleam -import gleam_community/colour -import gleam_community/colour/accessibility - -pub fn main() { - let foreground = colour.from_hsl(h: 0.858, s: 1.0, l: 0.843) - - let background_options = [colour.light_grey, colour.dark_grey] - - let background = accessibility.maximum_contrast(foreground, background_options) -} -``` - -## Installation - -`gleam_community` packages are published to [hex.pm](https://hex.pm/packages/gleam_community_colour) -with the prefix `gleam_community_`. You can add them to your Gleam projects directly: - -```sh -gleam add gleam_community_colour -``` - -The docs can be found over at [hexdocs.pm](https://hexdocs.pm/gleam_community_colour). diff --git a/aoc2023/build/packages/gleam_community_colour/gleam.toml b/aoc2023/build/packages/gleam_community_colour/gleam.toml deleted file mode 100644 index 07a81bf..0000000 --- a/aoc2023/build/packages/gleam_community_colour/gleam.toml +++ /dev/null @@ -1,11 +0,0 @@ -name = "gleam_community_colour" -version = "1.2.0" -licences = ["Apache-2.0"] -description = "Colour types, conversions, and other utilities" -repository = { type = "github", user = "gleam-community", repo = "colour" } - -[dependencies] -gleam_stdlib = "~> 0.32" - -[dev-dependencies] -gleeunit = "~> 0.11" diff --git a/aoc2023/build/packages/gleam_community_colour/include/gleam_community@colour_Hsla.hrl b/aoc2023/build/packages/gleam_community_colour/include/gleam_community@colour_Hsla.hrl deleted file mode 100644 index 06116df..0000000 --- a/aoc2023/build/packages/gleam_community_colour/include/gleam_community@colour_Hsla.hrl +++ /dev/null @@ -1 +0,0 @@ --record(hsla, {h :: float(), s :: float(), l :: float(), a :: float()}). diff --git a/aoc2023/build/packages/gleam_community_colour/include/gleam_community@colour_Rgba.hrl b/aoc2023/build/packages/gleam_community_colour/include/gleam_community@colour_Rgba.hrl deleted file mode 100644 index fff139e..0000000 --- a/aoc2023/build/packages/gleam_community_colour/include/gleam_community@colour_Rgba.hrl +++ /dev/null @@ -1 +0,0 @@ --record(rgba, {r :: float(), g :: float(), b :: float(), a :: float()}). diff --git a/aoc2023/build/packages/gleam_community_colour/src/gleam_community/colour.gleam b/aoc2023/build/packages/gleam_community_colour/src/gleam_community/colour.gleam deleted file mode 100644 index 1f5872f..0000000 --- a/aoc2023/build/packages/gleam_community_colour/src/gleam_community/colour.gleam +++ /dev/null @@ -1,1126 +0,0 @@ -//// -//// - **Types** -//// - [`Colour`](#Colour) -//// - [`Color`](#Color) -//// - **Constructors** -//// - [`from_rgb255`](#from_rgb255) -//// - [`from_rgb`](#from_rgb) -//// - [`from_rgba`](#from_rgba) -//// - [`from_hsl`](#from_hsl) -//// - [`from_hsla`](#from_hsla) -//// - [`from_rgb_hex`](#from_rgb_hex) -//// - [`from_rgba_hex`](#from_rgba_hex) -//// - [`from_rgb_hex_string`](#from_rgb_hex_string) -//// - [`from_rgba_hex_string`](#from_rgba_hex_string) -//// - **Conversions** -//// - [`to_rgba`](#to_rgba) -//// - [`to_hsla`](#hsla) -//// - [`to_css_rgba_string`](#to_css_rgba_string) -//// - [`to_rgba_hex_string`](#to_rgba_hex_string) -//// - [`to_rgb_hex_string`](#to_rgb_hex_string) -//// - [`to_rgba_hex`](#to_rgba_hex) -//// - [`to_rgb_hex`](#to_rgb_hex) -//// - **Colours** -//// - [`light_red`](#light_red) -//// - [`red`](#red) -//// - [`dark_red`](#dark_red) -//// - [`light_orange`](#light_orange) -//// - [`orange`](#orange) -//// - [`dark_orange`](#dark_orange) -//// - [`light_yellow`](#light_yellow) -//// - [`yellow`](#yellow) -//// - [`dark_yellow`](#dark_yellow) -//// - [`light_green`](#light_green) -//// - [`green`](#green) -//// - [`dark_green`](#dark_green) -//// - [`light_blue`](#light_blue) -//// - [`blue`](#blue) -//// - [`dark_blue`](#dark_blue) -//// - [`light_purple`](#light_purple) -//// - [`purple`](#purple) -//// - [`dark_purple`](#dark_purple) -//// - [`light_brown`](#light_brown) -//// - [`brown`](#brown) -//// - [`dark_brown`](#dark_brown) -//// - [`black`](#black) -//// - [`white`](#white) -//// - [`light_grey`](#light_grey) -//// - [`grey`](#grey) -//// - [`dark_grey`](#dark_grey) -//// - [`light_gray`](#light_gray) -//// - [`gray`](#gray) -//// - [`dark_gray`](#dark_gray) -//// - [`light_charcoal`](#light_charcoal) -//// - [`charcoal`](#charcoal) -//// - [`dark_charcoal`](#dark_charcoal) -//// - [`pink`](#pink) -//// -//// --- -//// -//// This package was heavily inspired by the `elm-color` module. -//// The original source code can be found -//// here. -//// -////
-//// The license of that package is produced below: -//// -//// -//// > MIT License -//// -//// > Copyright 2018 Aaron VonderHaar -//// -//// > Redistribution and use in source and binary forms, with or without modification, -//// are permitted provided that the following conditions are met: -//// -//// 1. Redistributions of source code must retain the above copyright notice, -//// this list of conditions and the following disclaimer. -//// -//// 2. Redistributions in binary form must reproduce the above copyright notice, -//// this list of conditions and the following disclaimer in the documentation -//// and/or other materials provided with the distribution. -//// -//// 3. Neither the name of the copyright holder nor the names of its contributors -//// may be used to endorse or promote products derived from this software without -//// specific prior written permission. -//// -//// > THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -//// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -//// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -//// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -//// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -//// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -//// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -//// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -//// -//// > The above copyright notice and this permission notice shall be included in all -//// copies or substantial portions of the Software. -////
-//// - -// Just in case we decide in the future to no longer include the above reference -// and license, this package was initially a port of the `elm-color` module: -// -// https://github.com/avh4/elm-color/ -// - -// IMPORTS -------------------------------------------------------------------- - -import gleam/int -import gleam/float -import gleam/result -import gleam/string -import gleam/list - -// TYPES ---------------------------------------------------------------------- - -/// A representation of a colour that can be converted to RGBA or HSLA format. -/// -/// -///
-/// -pub opaque type Colour { - Rgba(r: Float, g: Float, b: Float, a: Float) - Hsla(h: Float, s: Float, l: Float, a: Float) -} - -/// Type alias for `Colour` -/// -/// -///
-/// -pub type Color = - Colour - -// UTILITY -------------------------------------------------------------------- - -fn valid_colour_value(c: Float) -> Result(Float, Nil) { - case c >. 1.0 || c <. 0.0 { - True -> Error(Nil) - False -> Ok(c) - } -} - -fn hue_to_rgb(hue: Float, m1: Float, m2: Float) -> Float { - let h = case hue { - _ if hue <. 0.0 -> hue +. 1.0 - _ if hue >. 1.0 -> hue -. 1.0 - _ -> hue - } - - let h_t_6 = h *. 6.0 - let h_t_2 = h *. 2.0 - let h_t_3 = h *. 3.0 - - case h { - _ if h_t_6 <. 1.0 -> m1 +. { m2 -. m1 } *. h *. 6.0 - _ if h_t_2 <. 1.0 -> m2 - _ if h_t_3 <. 2.0 -> m1 +. { m2 -. m1 } *. { 2.0 /. 3.0 -. h } *. 6.0 - _ -> m1 - } -} - -fn hex_string_to_int(hex_string: String) -> Result(Int, Nil) { - let hex = case hex_string { - "#" <> hex_number -> hex_number - "0x" <> hex_number -> hex_number - _ -> hex_string - } - - hex - |> string.lowercase() - |> string.to_graphemes() - |> list.reverse() - |> list.index_fold( - Ok(0), - fn(total, char, index) { - case total { - Error(Nil) -> Error(Nil) - Ok(v) -> { - use num <- result.then(case char { - "a" -> Ok(10) - "b" -> Ok(11) - "c" -> Ok(12) - "d" -> Ok(13) - "e" -> Ok(14) - "f" -> Ok(15) - _ -> int.parse(char) - }) - use base <- result.then(int.power(16, int.to_float(index))) - Ok(v + float.round(int.to_float(num) *. base)) - } - } - }, - ) -} - -fn hsla_to_rgba( - h: Float, - s: Float, - l: Float, - a: Float, -) -> #(Float, Float, Float, Float) { - let m2 = case l <=. 0.5 { - True -> l *. { s +. 1.0 } - False -> l +. s -. l *. s - } - - let m1 = l *. 2.0 -. m2 - - let r = hue_to_rgb(h +. 1.0 /. 3.0, m1, m2) - let g = hue_to_rgb(h, m1, m2) - let b = hue_to_rgb(h -. 1.0 /. 3.0, m1, m2) - - #(r, g, b, a) -} - -fn rgba_to_hsla( - r: Float, - g: Float, - b: Float, - a: Float, -) -> #(Float, Float, Float, Float) { - let min_colour = float.min(r, float.min(g, b)) - - let max_colour = float.max(r, float.max(g, b)) - - let h1 = case True { - _ if max_colour == r -> float.divide(g -. b, max_colour -. min_colour) - _ if max_colour == g -> - float.divide(b -. r, max_colour -. min_colour) - |> result.then(fn(d) { Ok(2.0 +. d) }) - _ -> - float.divide(r -. g, max_colour -. min_colour) - |> result.then(fn(d) { Ok(4.0 +. d) }) - } - - let h2 = case h1 { - Ok(v) -> Ok(v *. { 1.0 /. 6.0 }) - _ -> h1 - } - - let h3 = case h2 { - Ok(v) if v <. 0.0 -> v +. 1.0 - Ok(v) -> v - _ -> 0.0 - } - - let l = { min_colour +. max_colour } /. 2.0 - - let s = case True { - _ if min_colour == max_colour -> 0.0 - _ if l <. 0.5 -> - { max_colour -. min_colour } /. { max_colour +. min_colour } - _ -> { max_colour -. min_colour } /. { 2.0 -. max_colour -. min_colour } - } - - #(h3, s, l, a) -} - -// CONSTRUCTORS --------------------------------------------------------------- - -/// Returns a `Result(Colour)` created from the given 8 bit RGB values. -/// -/// Returns `Error(Nil)` if the supplied RGB values are greater than 255 or less than 0. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgb255(255, 0, 0) -/// } -/// ``` -///
-/// -/// -/// -pub fn from_rgb255(r red: Int, g green: Int, b blue: Int) -> Result(Colour, Nil) { - use r <- result.then( - red - |> int.to_float() - |> float.divide(255.0) - |> result.then(valid_colour_value), - ) - - use g <- result.then( - green - |> int.to_float() - |> float.divide(255.0) - |> result.then(valid_colour_value), - ) - - use b <- result.then( - blue - |> int.to_float() - |> float.divide(255.0) - |> result.then(valid_colour_value), - ) - - Ok(Rgba(r: r, g: g, b: b, a: 1.0)) -} - -/// Returns `Result(Colour)` created from the given RGB values. -/// -/// If the supplied RGB values are greater than 1.0 or less than 0.0 returns `Error(Nil)` -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgb(1.0, 0.0, 0.0) -/// } -/// ``` -///
-/// -/// -/// -pub fn from_rgb( - r red: Float, - g green: Float, - b blue: Float, -) -> Result(Colour, Nil) { - use r <- result.then(valid_colour_value(red)) - use g <- result.then(valid_colour_value(green)) - use b <- result.then(valid_colour_value(blue)) - - Ok(Rgba(r: r, g: g, b: b, a: 1.0)) -} - -/// Returns `Result(Colour)` created from the given RGBA values. -/// -/// Returns `Error(Nil)` if the supplied RGBA values are greater than 1.0 or less than 0.0. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red_half_opacity) = from_rbga(1.0, 0.0, 0.0, 0.5) -/// } -/// ``` -///
-/// -/// -/// -pub fn from_rgba( - r red: Float, - g green: Float, - b blue: Float, - a alpha: Float, -) -> Result(Colour, Nil) { - use r <- result.then(valid_colour_value(red)) - use g <- result.then(valid_colour_value(green)) - use b <- result.then(valid_colour_value(blue)) - use a <- result.then(valid_colour_value(alpha)) - - Ok(Rgba(r: r, g: g, b: b, a: a)) -} - -/// Returns `Result(Colour)` created from the given HSLA values. -/// -/// Returns `Error(Nil)`f the supplied HSLA values are greater than 1.0 or less than 0.0. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red_half_opacity) = from_hsla(0.0, 1.0, 0.5, 0.5) -/// } -/// ``` -///
-/// -/// -/// -pub fn from_hsla( - h hue: Float, - s saturation: Float, - l lightness: Float, - a alpha: Float, -) -> Result(Colour, Nil) { - use h <- result.then(valid_colour_value(hue)) - use s <- result.then(valid_colour_value(saturation)) - use l <- result.then(valid_colour_value(lightness)) - use a <- result.then(valid_colour_value(alpha)) - - Ok(Hsla(h: h, s: s, l: l, a: a)) -} - -/// Returns `Result(Colour)` created from the given HSL values. -/// -/// Returns `Error(Nil)` if the supplied HSL values are greater than 1.0 or less than 0.0. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_hsla(0.0, 1.0, 0.5) -/// } -/// ``` -///
-/// -/// -/// -pub fn from_hsl( - h hue: Float, - s saturation: Float, - l lightness: Float, -) -> Result(Colour, Nil) { - from_hsla(hue, saturation, lightness, 1.0) -} - -/// Returns a `Result(Colour)` created from the given hex `Int`. -/// -/// Returns `Error(Nil)` if the supplied hex `Int is greater than 0xffffff or less than 0x0. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgb_hex(0xff0000) -/// } -/// ``` -///
-/// -/// -/// -pub fn from_rgb_hex(hex: Int) -> Result(Colour, Nil) { - case hex > 0xffffff || hex < 0 { - True -> Error(Nil) - False -> { - let r = - int.bitwise_shift_right(hex, 16) - |> int.bitwise_and(0xff) - let g = - int.bitwise_shift_right(hex, 8) - |> int.bitwise_and(0xff) - let b = int.bitwise_and(hex, 0xff) - from_rgb255(r, g, b) - } - } -} - -/// Returns a `Result(Colour)` created from the given RGB hex `String`. -/// -/// Returns `Error(Nil)` if the supplied hex `String` is invalid, or greater than `"#ffffff" or less than `"#0"` -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgb_hex_string("#ff0000") -/// } -/// ``` -///
-/// -/// -/// -pub fn from_rgb_hex_string(hex_string: String) -> Result(Colour, Nil) { - use hex_int <- result.then(hex_string_to_int(hex_string)) - - from_rgb_hex(hex_int) -} - -/// Returns a `Result(Colour)` created from the given RGBA hex `String`. -/// -/// Returns `Error(Nil)` if the supplied hex `String` is invalid, or greater than `"#ffffffff" or less than `"#0"` -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red_half_opacity) = from_rgba_hex_string("#ff00007f") -/// } -/// ``` -///
-/// -/// -/// -pub fn from_rgba_hex_string(hex_string: String) -> Result(Colour, Nil) { - use hex_int <- result.then(hex_string_to_int(hex_string)) - - from_rgba_hex(hex_int) -} - -/// Returns a `Result(Colour)` created from the given hex `Int`. -/// -/// Returns `Error(Nil)` if the supplied hex `Int is greater than 0xffffffff or less than 0x0. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red_half_opacity) = from_rgba_hex(0xff00007f) -/// } -/// ``` -///
-/// -/// -/// -pub fn from_rgba_hex(hex: Int) -> Result(Colour, Nil) { - case hex > 0xffffffff || hex < 0 { - True -> Error(Nil) - False -> { - // This won't fail because we are always dividing by 255.0 - let assert Ok(r) = - int.bitwise_shift_right(hex, 24) - |> int.bitwise_and(0xff) - |> int.to_float() - |> float.divide(255.0) - // This won't fail because we are always dividing by 255.0 - let assert Ok(g) = - int.bitwise_shift_right(hex, 16) - |> int.bitwise_and(0xff) - |> int.to_float() - |> float.divide(255.0) - // This won't fail because we are always dividing by 255.0 - let assert Ok(b) = - int.bitwise_shift_right(hex, 8) - |> int.bitwise_and(0xff) - |> int.to_float() - |> float.divide(255.0) - // This won't fail because we are always dividing by 255.0 - let assert Ok(a) = - int.bitwise_and(hex, 0xff) - |> int.to_float() - |> float.divide(255.0) - from_rgba(r, g, b, a) - } - } -} - -// CONVERSIONS ---------------------------------------------------------------- - -/// Returns `#(Float, Float, Float, Float)` representing the given `Colour`'s -/// R, G, B, and A values respectively. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgb255(255, 0, 0) -/// let #(r, g, b, a) = to_rgba(red) -/// } -/// ``` -///
-/// -/// -/// -pub fn to_rgba(colour: Colour) -> #(Float, Float, Float, Float) { - case colour { - Rgba(r, g, b, a) -> #(r, g, b, a) - Hsla(h, s, l, a) -> hsla_to_rgba(h, s, l, a) - } -} - -/// Returns `#(Float, Float, Float, Float)` representing the given `Colour`'s -/// H, S, L, and A values respectively. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgb255(255, 0, 0) -/// let #(h, s, l, a) = to_hsla(red) -/// } -/// ``` -///
-/// -/// -/// -pub fn to_hsla(colour: Colour) -> #(Float, Float, Float, Float) { - case colour { - Hsla(h, s, l, a) -> #(h, s, l, a) - Rgba(r, g, b, a) -> rgba_to_hsla(r, g, b, a) - } -} - -/// Returns an rgba formatted CSS `String` created from the given `Colour`. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgb255(255, 0, 0) -/// let css_red = to_css_rgba_string(red) -/// } -/// ``` -///
-/// -/// -/// -pub fn to_css_rgba_string(colour: Colour) -> String { - let #(r, g, b, a) = to_rgba(colour) - - let percent = fn(x: Float) -> Float { - // This won't fail because we are always dividing by 100.0 - let assert Ok(p) = - x - |> float.multiply(10_000.0) - |> float.round() - |> int.to_float() - |> float.divide(100.0) - - p - } - - let round_to = fn(x: Float) -> Float { - // This won't fail because we are always dividing by 1000.0 - let assert Ok(r) = - x - |> float.multiply(1000.0) - |> float.round() - |> int.to_float() - |> float.divide(1000.0) - - r - } - - string.join( - [ - "rgba(", - float.to_string(percent(r)) <> "%,", - float.to_string(percent(g)) <> "%,", - float.to_string(percent(b)) <> "%,", - float.to_string(round_to(a)), - ")", - ], - "", - ) -} - -/// Returns an rgba hex formatted `String` created from the given `Colour`. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgba(1.0, 0.0, 0.0, 1.0) -/// let red_hex = to_rgba_hex_string(red) -/// } -/// ``` -///
-/// -/// -/// -pub fn to_rgba_hex_string(colour: Colour) -> String { - to_rgba_hex(colour) - |> int.to_base16() -} - -/// Returns an rgb hex formatted `String` created from the given `Colour`. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgba(255, 0, 0) -/// let red_hex = to_rgb_hex_string(red) -/// } -/// ``` -///
-/// -/// -/// -pub fn to_rgb_hex_string(colour: Colour) -> String { - to_rgb_hex(colour) - |> int.to_base16() -} - -/// Returns an hex `Int` created from the given `Colour`. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgba(1.0, 0.0, 0.0, 1.0) -/// let red_hex_int = to_rgba_hex(red) -/// } -/// ``` -///
-/// -/// -/// -pub fn to_rgba_hex(colour: Colour) -> Int { - let #(r, g, b, a) = to_rgba(colour) - - let red = - r *. 255.0 - |> float.round() - |> int.bitwise_shift_left(24) - - let green = - g *. 255.0 - |> float.round() - |> int.bitwise_shift_left(16) - - let blue = - b *. 255.0 - |> float.round() - |> int.bitwise_shift_left(8) - - let alpha = - a *. 255.0 - |> float.round() - - red + green + blue + alpha -} - -/// Returns a rgb hex `Int` created from the given `Colour`. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// assert Ok(red) = from_rgba(255, 0, 0) -/// let red_hex_int = to_rgb_hex(red) -/// } -/// ``` -///
-/// -/// -/// -pub fn to_rgb_hex(colour: Colour) -> Int { - let #(r, g, b, _) = to_rgba(colour) - - let red = - r *. 255.0 - |> float.round() - |> int.bitwise_shift_left(16) - - let green = - g *. 255.0 - |> float.round() - |> int.bitwise_shift_left(8) - - let blue = - b *. 255.0 - |> float.round() - - red + green + blue -} - -// COLOURS -------------------------------------------------------------------- - -/// A `Colour` reprsenting the colour RGBA(239, 41, 41, 1.0) -pub const light_red = Rgba( - r: 0.9372549019607843, - g: 0.1607843137254902, - b: 0.1607843137254902, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(204, 0, 0, 1.0) -pub const red = Rgba(r: 0.8, g: 0.0, b: 0.0, a: 1.0) - -/// A `Colour` reprsenting the colour RGBA(164, 0, 0, 1.0) -pub const dark_red = Rgba(r: 0.6431372549019608, g: 0.0, b: 0.0, a: 1.0) - -/// A `Colour` reprsenting the colour RGBA(252, 175, 62, 1.0) -pub const light_orange = Rgba( - r: 0.9882352941176471, - g: 0.6862745098039216, - b: 0.24313725490196078, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(245, 121, 0, 1.0) -pub const orange = Rgba( - r: 0.9607843137254902, - g: 0.4745098039215686, - b: 0.0, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(206, 92, 0, 1.0) -pub const dark_orange = Rgba( - r: 0.807843137254902, - g: 0.3607843137254902, - b: 0.0, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(255, 233, 79, 1.0) -pub const light_yellow = Rgba( - r: 1.0, - g: 0.9137254901960784, - b: 0.30980392156862746, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(237, 212, 0, 1.0) -pub const yellow = Rgba( - r: 0.9294117647058824, - g: 0.8313725490196079, - b: 0.0, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(196, 160, 0, 1.0) -pub const dark_yellow = Rgba( - r: 0.7686274509803922, - g: 0.6274509803921569, - b: 0.0, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(138, 226, 52, 1.0) -pub const light_green = Rgba( - r: 0.5411764705882353, - g: 0.8862745098039215, - b: 0.20392156862745098, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(115, 210, 22, 1.0) -pub const green = Rgba( - r: 0.45098039215686275, - g: 0.8235294117647058, - b: 0.08627450980392157, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(78, 154, 6, 1.0) -pub const dark_green = Rgba( - r: 0.3058823529411765, - g: 0.6039215686274509, - b: 0.023529411764705882, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(114, 159, 207, 1.0) -pub const light_blue = Rgba( - r: 0.4470588235294118, - g: 0.6235294117647059, - b: 0.8117647058823529, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(52, 101, 164, 1.0) -pub const blue = Rgba( - r: 0.20392156862745098, - g: 0.396078431372549, - b: 0.6431372549019608, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(32, 74, 135, 1.0) -pub const dark_blue = Rgba( - r: 0.12549019607843137, - g: 0.2901960784313726, - b: 0.5294117647058824, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(173, 127, 168, 1.0) -pub const light_purple = Rgba( - r: 0.6784313725490196, - g: 0.4980392156862745, - b: 0.6588235294117647, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(117, 80, 123, 1.0) -pub const purple = Rgba( - r: 0.4588235294117647, - g: 0.3137254901960784, - b: 0.4823529411764706, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(92, 53, 102, 1.0) -pub const dark_purple = Rgba( - r: 0.3607843137254902, - g: 0.20784313725490197, - b: 0.4, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(233, 185, 110, 1.0) -pub const light_brown = Rgba( - r: 0.9137254901960784, - g: 0.7254901960784313, - b: 0.43137254901960786, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(193, 125, 17, 1.0) -pub const brown = Rgba( - r: 0.7568627450980392, - g: 0.49019607843137253, - b: 0.06666666666666667, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(143, 89, 2, 1.0) -pub const dark_brown = Rgba( - r: 0.5607843137254902, - g: 0.34901960784313724, - b: 0.00784313725490196, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(0, 0, 0, 1.0) -pub const black = Rgba(r: 0.0, g: 0.0, b: 0.0, a: 1.0) - -/// A `Colour` reprsenting the colour RGBA(255, 255, 255, 1.0) -pub const white = Rgba(r: 1.0, g: 1.0, b: 1.0, a: 1.0) - -/// A `Colour` reprsenting the colour RGBA(238, 238, 236, 1.0) -pub const light_grey = Rgba( - r: 0.9333333333333333, - g: 0.9333333333333333, - b: 0.9254901960784314, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(211, 215, 207, 1.0) -pub const grey = Rgba( - r: 0.8274509803921568, - g: 0.8431372549019608, - b: 0.8117647058823529, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(186, 189, 182, 1.0) -pub const dark_grey = Rgba( - r: 0.7294117647058823, - g: 0.7411764705882353, - b: 0.7137254901960784, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(238, 238, 236, 1.0) -pub const light_gray = Rgba( - r: 0.9333333333333333, - g: 0.9333333333333333, - b: 0.9254901960784314, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(211, 215, 207, 1.0) -pub const gray = Rgba( - r: 0.8274509803921568, - g: 0.8431372549019608, - b: 0.8117647058823529, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(186, 189, 182, 1.0) -pub const dark_gray = Rgba( - r: 0.7294117647058823, - g: 0.7411764705882353, - b: 0.7137254901960784, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(136, 138, 133, 1.0) -pub const light_charcoal = Rgba( - r: 0.5333333333333333, - g: 0.5411764705882353, - b: 0.5215686274509804, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(85, 87, 83, 1.0) -pub const charcoal = Rgba( - r: 0.3333333333333333, - g: 0.3411764705882353, - b: 0.3254901960784314, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(46, 52, 54, 1.0) -pub const dark_charcoal = Rgba( - r: 0.1803921568627451, - g: 0.20392156862745098, - b: 0.21176470588235294, - a: 1.0, -) - -/// A `Colour` reprsenting the colour RGBA(255, 175, 243, 1.0) -pub const pink = Rgba( - r: 1.0, - g: 0.6862745098039216, - b: 0.9529411764705882, - a: 1.0, -) diff --git a/aoc2023/build/packages/gleam_community_colour/src/gleam_community/colour/accessibility.gleam b/aoc2023/build/packages/gleam_community_colour/src/gleam_community/colour/accessibility.gleam deleted file mode 100644 index 54f75e4..0000000 --- a/aoc2023/build/packages/gleam_community_colour/src/gleam_community/colour/accessibility.gleam +++ /dev/null @@ -1,173 +0,0 @@ -//// -//// - **Accessibility** -//// - [`luminance`](#luminance) -//// - [`contrast_ratio`](#contrast_ratio) -//// - [`maximum_contrast`](#maximum_contrast) -//// -//// --- -//// -//// This package was heavily inspired by the `elm-color-extra` module. -//// The original source code can be found -//// here. -//// -////
-//// The license of that package is produced below: -//// -//// -//// > MIT License -//// -//// > Copyright (c) 2016 Andreas Köberle -//// -//// > Permission is hereby granted, free of charge, to any person obtaining a copy -//// of this software and associated documentation files (the "Software"), to deal -//// in the Software without restriction, including without limitation the rights -//// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -//// copies of the Software, and to permit persons to whom the Software is -//// furnished to do so, subject to the following conditions: -//// -//// > The above copyright notice and this permission notice shall be included in all -//// copies or substantial portions of the Software. -//// -//// > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -//// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -//// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -//// SOFTWARE. -//// -////
-//// - -// Just in case we decide in the future to no longer include the above reference -// and license, this package was initially a port of the `elm-color-extra` module: -// -// https://github.com/noahzgordon/elm-color-extra -// - -// IMPORTS -------------------------------------------------------------------- - -import gleam/float -import gleam/list -import gleam_community/colour.{type Colour} - -// UTILITIES ------------------------------------------------------------------ - -fn intensity(colour_value: Float) -> Float { - // Calculation taken from https://www.w3.org/TR/WCAG20/#relativeluminancedef - case True { - _ if colour_value <=. 0.03928 -> colour_value /. 12.92 - _ -> { - // Is this guaranteed to be `OK`? - let assert Ok(i) = float.power({ colour_value +. 0.055 } /. 1.055, 2.4) - i - } - } -} - -// ACCESSIBILITY -------------------------------------------------------------- - -/// Returns the relative brightness of the given `Colour` as a `Float` between -/// 0.0, and 1.0 with 0.0 being the darkest possible colour and 1.0 being the lightest. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// luminance(colour.white) // 1.0 -/// } -/// ``` -///
-/// -/// -/// -pub fn luminance(colour: Colour) -> Float { - // Calculation taken from https://www.w3.org/TR/WCAG20/#relativeluminancedef - let #(r, g, b, _) = colour.to_rgba(colour) - - let r_intensity = intensity(r) - let g_intensity = intensity(g) - let b_intensity = intensity(b) - - 0.2126 *. r_intensity +. 0.7152 *. g_intensity +. 0.0722 *. b_intensity -} - -/// Returns the contrast between two `Colour` values as a `Float` between 1.0, -/// and 21.0 with 1.0 being no contrast and, 21.0 being the highest possible contrast. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// contrast_ratio(between: colour.white, and: colour.black) // 21.0 -/// } -/// ``` -///
-/// -/// -/// -pub fn contrast_ratio(between colour_a: Colour, and colour_b: Colour) -> Float { - // Calculation taken from https://www.w3.org/TR/WCAG20/#contrast-ratiodef - let luminance_a = luminance(colour_a) +. 0.05 - let luminance_b = luminance(colour_b) +. 0.05 - - case luminance_a >. luminance_b { - True -> luminance_a /. luminance_b - False -> luminance_b /. luminance_a - } -} - -/// Returns the `Colour` with the highest contrast between the base `Colour`, -/// and and the other provided `Colour` values. -/// -///
-/// Example: -/// -/// ```gleam -/// fn example() { -/// maximum_contrast( -/// colour.yellow, -/// [colour.white, colour.dark_blue, colour.green], -/// ) -/// } -/// ``` -///
-/// -/// -/// -pub fn maximum_contrast( - base: Colour, - colours: List(Colour), -) -> Result(Colour, Nil) { - colours - |> list.sort(fn(colour_a, colour_b) { - let contrast_a = contrast_ratio(base, colour_a) - let contrast_b = contrast_ratio(base, colour_b) - - float.compare(contrast_b, contrast_a) - }) - |> list.first() -} diff --git a/aoc2023/build/packages/gleam_community_colour/src/gleam_community@colour.erl b/aoc2023/build/packages/gleam_community_colour/src/gleam_community@colour.erl deleted file mode 100644 index 21e4c81..0000000 --- a/aoc2023/build/packages/gleam_community_colour/src/gleam_community@colour.erl +++ /dev/null @@ -1,511 +0,0 @@ --module(gleam_community@colour). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_rgb255/3, from_rgb/3, from_rgba/4, from_hsla/4, from_hsl/3, from_rgb_hex/1, from_rgb_hex_string/1, from_rgba_hex/1, from_rgba_hex_string/1, to_rgba/1, to_hsla/1, to_css_rgba_string/1, to_rgba_hex/1, to_rgba_hex_string/1, to_rgb_hex/1, to_rgb_hex_string/1]). --export_type([colour/0]). - --opaque colour() :: {rgba, float(), float(), float(), float()} | - {hsla, float(), float(), float(), float()}. - --spec valid_colour_value(float()) -> {ok, float()} | {error, nil}. -valid_colour_value(C) -> - case (C > 1.0) orelse (C < +0.0) of - true -> - {error, nil}; - - false -> - {ok, C} - end. - --spec hue_to_rgb(float(), float(), float()) -> float(). -hue_to_rgb(Hue, M1, M2) -> - H = case Hue of - _ when Hue < +0.0 -> - Hue + 1.0; - - _ when Hue > 1.0 -> - Hue - 1.0; - - _ -> - Hue - end, - H_t_6 = H * 6.0, - H_t_2 = H * 2.0, - H_t_3 = H * 3.0, - case H of - _ when H_t_6 < 1.0 -> - M1 + (((M2 - M1) * H) * 6.0); - - _ when H_t_2 < 1.0 -> - M2; - - _ when H_t_3 < 2.0 -> - M1 + (((M2 - M1) * ((2.0 / 3.0) - H)) * 6.0); - - _ -> - M1 - end. - --spec hex_string_to_int(binary()) -> {ok, integer()} | {error, nil}. -hex_string_to_int(Hex_string) -> - Hex = case Hex_string of - <<"#"/utf8, Hex_number/binary>> -> - Hex_number; - - <<"0x"/utf8, Hex_number@1/binary>> -> - Hex_number@1; - - _ -> - Hex_string - end, - _pipe = Hex, - _pipe@1 = gleam@string:lowercase(_pipe), - _pipe@2 = gleam@string:to_graphemes(_pipe@1), - _pipe@3 = gleam@list:reverse(_pipe@2), - gleam@list:index_fold( - _pipe@3, - {ok, 0}, - fun(Total, Char, Index) -> case Total of - {error, nil} -> - {error, nil}; - - {ok, V} -> - gleam@result:then(case Char of - <<"a"/utf8>> -> - {ok, 10}; - - <<"b"/utf8>> -> - {ok, 11}; - - <<"c"/utf8>> -> - {ok, 12}; - - <<"d"/utf8>> -> - {ok, 13}; - - <<"e"/utf8>> -> - {ok, 14}; - - <<"f"/utf8>> -> - {ok, 15}; - - _ -> - gleam@int:parse(Char) - end, fun(Num) -> - gleam@result:then( - gleam@int:power(16, gleam@int:to_float(Index)), - fun(Base) -> - {ok, - V + gleam@float:round( - gleam@int:to_float(Num) * Base - )} - end - ) - end) - end end - ). - --spec hsla_to_rgba(float(), float(), float(), float()) -> {float(), - float(), - float(), - float()}. -hsla_to_rgba(H, S, L, A) -> - M2 = case L =< 0.5 of - true -> - L * (S + 1.0); - - false -> - (L + S) - (L * S) - end, - M1 = (L * 2.0) - M2, - R = hue_to_rgb(H + (1.0 / 3.0), M1, M2), - G = hue_to_rgb(H, M1, M2), - B = hue_to_rgb(H - (1.0 / 3.0), M1, M2), - {R, G, B, A}. - --spec rgba_to_hsla(float(), float(), float(), float()) -> {float(), - float(), - float(), - float()}. -rgba_to_hsla(R, G, B, A) -> - Min_colour = gleam@float:min(R, gleam@float:min(G, B)), - Max_colour = gleam@float:max(R, gleam@float:max(G, B)), - H1 = case true of - _ when Max_colour =:= R -> - gleam@float:divide(G - B, Max_colour - Min_colour); - - _ when Max_colour =:= G -> - _pipe = gleam@float:divide(B - R, Max_colour - Min_colour), - gleam@result:then(_pipe, fun(D) -> {ok, 2.0 + D} end); - - _ -> - _pipe@1 = gleam@float:divide(R - G, Max_colour - Min_colour), - gleam@result:then(_pipe@1, fun(D@1) -> {ok, 4.0 + D@1} end) - end, - H2 = case H1 of - {ok, V} -> - {ok, V * (1.0 / 6.0)}; - - _ -> - H1 - end, - H3 = case H2 of - {ok, V@1} when V@1 < +0.0 -> - V@1 + 1.0; - - {ok, V@2} -> - V@2; - - _ -> - +0.0 - end, - L = (Min_colour + Max_colour) / 2.0, - S = case true of - _ when Min_colour =:= Max_colour -> - +0.0; - - _ when L < 0.5 -> - case (Max_colour + Min_colour) of - 0.0 -> 0.0; - Gleam@denominator -> (Max_colour - Min_colour) / Gleam@denominator - end; - - _ -> - case ((2.0 - Max_colour) - Min_colour) of - 0.0 -> 0.0; - Gleam@denominator@1 -> (Max_colour - Min_colour) / Gleam@denominator@1 - end - end, - {H3, S, L, A}. - --spec from_rgb255(integer(), integer(), integer()) -> {ok, colour()} | - {error, nil}. -from_rgb255(Red, Green, Blue) -> - gleam@result:then( - begin - _pipe = Red, - _pipe@1 = gleam@int:to_float(_pipe), - _pipe@2 = gleam@float:divide(_pipe@1, 255.0), - gleam@result:then(_pipe@2, fun valid_colour_value/1) - end, - fun(R) -> - gleam@result:then( - begin - _pipe@3 = Green, - _pipe@4 = gleam@int:to_float(_pipe@3), - _pipe@5 = gleam@float:divide(_pipe@4, 255.0), - gleam@result:then(_pipe@5, fun valid_colour_value/1) - end, - fun(G) -> - gleam@result:then( - begin - _pipe@6 = Blue, - _pipe@7 = gleam@int:to_float(_pipe@6), - _pipe@8 = gleam@float:divide(_pipe@7, 255.0), - gleam@result:then(_pipe@8, fun valid_colour_value/1) - end, - fun(B) -> {ok, {rgba, R, G, B, 1.0}} end - ) - end - ) - end - ). - --spec from_rgb(float(), float(), float()) -> {ok, colour()} | {error, nil}. -from_rgb(Red, Green, Blue) -> - gleam@result:then( - valid_colour_value(Red), - fun(R) -> - gleam@result:then( - valid_colour_value(Green), - fun(G) -> - gleam@result:then( - valid_colour_value(Blue), - fun(B) -> {ok, {rgba, R, G, B, 1.0}} end - ) - end - ) - end - ). - --spec from_rgba(float(), float(), float(), float()) -> {ok, colour()} | - {error, nil}. -from_rgba(Red, Green, Blue, Alpha) -> - gleam@result:then( - valid_colour_value(Red), - fun(R) -> - gleam@result:then( - valid_colour_value(Green), - fun(G) -> - gleam@result:then( - valid_colour_value(Blue), - fun(B) -> - gleam@result:then( - valid_colour_value(Alpha), - fun(A) -> {ok, {rgba, R, G, B, A}} end - ) - end - ) - end - ) - end - ). - --spec from_hsla(float(), float(), float(), float()) -> {ok, colour()} | - {error, nil}. -from_hsla(Hue, Saturation, Lightness, Alpha) -> - gleam@result:then( - valid_colour_value(Hue), - fun(H) -> - gleam@result:then( - valid_colour_value(Saturation), - fun(S) -> - gleam@result:then( - valid_colour_value(Lightness), - fun(L) -> - gleam@result:then( - valid_colour_value(Alpha), - fun(A) -> {ok, {hsla, H, S, L, A}} end - ) - end - ) - end - ) - end - ). - --spec from_hsl(float(), float(), float()) -> {ok, colour()} | {error, nil}. -from_hsl(Hue, Saturation, Lightness) -> - from_hsla(Hue, Saturation, Lightness, 1.0). - --spec from_rgb_hex(integer()) -> {ok, colour()} | {error, nil}. -from_rgb_hex(Hex) -> - case (Hex > 16#ffffff) orelse (Hex < 0) of - true -> - {error, nil}; - - false -> - R = begin - _pipe = erlang:'bsr'(Hex, 16), - erlang:'band'(_pipe, 16#ff) - end, - G = begin - _pipe@1 = erlang:'bsr'(Hex, 8), - erlang:'band'(_pipe@1, 16#ff) - end, - B = erlang:'band'(Hex, 16#ff), - from_rgb255(R, G, B) - end. - --spec from_rgb_hex_string(binary()) -> {ok, colour()} | {error, nil}. -from_rgb_hex_string(Hex_string) -> - gleam@result:then( - hex_string_to_int(Hex_string), - fun(Hex_int) -> from_rgb_hex(Hex_int) end - ). - --spec from_rgba_hex(integer()) -> {ok, colour()} | {error, nil}. -from_rgba_hex(Hex) -> - case (Hex > 16#ffffffff) orelse (Hex < 0) of - true -> - {error, nil}; - - false -> - _assert_subject = begin - _pipe = erlang:'bsr'(Hex, 24), - _pipe@1 = erlang:'band'(_pipe, 16#ff), - _pipe@2 = gleam@int:to_float(_pipe@1), - gleam@float:divide(_pipe@2, 255.0) - end, - {ok, R} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/colour"/utf8>>, - function => <<"from_rgba_hex"/utf8>>, - line => 588}) - end, - _assert_subject@1 = begin - _pipe@3 = erlang:'bsr'(Hex, 16), - _pipe@4 = erlang:'band'(_pipe@3, 16#ff), - _pipe@5 = gleam@int:to_float(_pipe@4), - gleam@float:divide(_pipe@5, 255.0) - end, - {ok, G} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/colour"/utf8>>, - function => <<"from_rgba_hex"/utf8>>, - line => 594}) - end, - _assert_subject@2 = begin - _pipe@6 = erlang:'bsr'(Hex, 8), - _pipe@7 = erlang:'band'(_pipe@6, 16#ff), - _pipe@8 = gleam@int:to_float(_pipe@7), - gleam@float:divide(_pipe@8, 255.0) - end, - {ok, B} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"gleam_community/colour"/utf8>>, - function => <<"from_rgba_hex"/utf8>>, - line => 600}) - end, - _assert_subject@3 = begin - _pipe@9 = erlang:'band'(Hex, 16#ff), - _pipe@10 = gleam@int:to_float(_pipe@9), - gleam@float:divide(_pipe@10, 255.0) - end, - {ok, A} = case _assert_subject@3 of - {ok, _} -> _assert_subject@3; - _assert_fail@3 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@3, - module => <<"gleam_community/colour"/utf8>>, - function => <<"from_rgba_hex"/utf8>>, - line => 606}) - end, - from_rgba(R, G, B, A) - end. - --spec from_rgba_hex_string(binary()) -> {ok, colour()} | {error, nil}. -from_rgba_hex_string(Hex_string) -> - gleam@result:then( - hex_string_to_int(Hex_string), - fun(Hex_int) -> from_rgba_hex(Hex_int) end - ). - --spec to_rgba(colour()) -> {float(), float(), float(), float()}. -to_rgba(Colour) -> - case Colour of - {rgba, R, G, B, A} -> - {R, G, B, A}; - - {hsla, H, S, L, A@1} -> - hsla_to_rgba(H, S, L, A@1) - end. - --spec to_hsla(colour()) -> {float(), float(), float(), float()}. -to_hsla(Colour) -> - case Colour of - {hsla, H, S, L, A} -> - {H, S, L, A}; - - {rgba, R, G, B, A@1} -> - rgba_to_hsla(R, G, B, A@1) - end. - --spec to_css_rgba_string(colour()) -> binary(). -to_css_rgba_string(Colour) -> - {R, G, B, A} = to_rgba(Colour), - Percent = fun(X) -> - _assert_subject = begin - _pipe = X, - _pipe@1 = gleam@float:multiply(_pipe, 10000.0), - _pipe@2 = gleam@float:round(_pipe@1), - _pipe@3 = gleam@int:to_float(_pipe@2), - gleam@float:divide(_pipe@3, 100.0) - end, - {ok, P} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/colour"/utf8>>, - function => <<"to_css_rgba_string"/utf8>>, - line => 704}) - end, - P - end, - Round_to = fun(X@1) -> - _assert_subject@1 = begin - _pipe@4 = X@1, - _pipe@5 = gleam@float:multiply(_pipe@4, 1000.0), - _pipe@6 = gleam@float:round(_pipe@5), - _pipe@7 = gleam@int:to_float(_pipe@6), - gleam@float:divide(_pipe@7, 1000.0) - end, - {ok, R@1} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/colour"/utf8>>, - function => <<"to_css_rgba_string"/utf8>>, - line => 716}) - end, - R@1 - end, - gleam@string:join( - [<<"rgba("/utf8>>, - <<(gleam@float:to_string(Percent(R)))/binary, "%,"/utf8>>, - <<(gleam@float:to_string(Percent(G)))/binary, "%,"/utf8>>, - <<(gleam@float:to_string(Percent(B)))/binary, "%,"/utf8>>, - gleam@float:to_string(Round_to(A)), - <<")"/utf8>>], - <<""/utf8>> - ). - --spec to_rgba_hex(colour()) -> integer(). -to_rgba_hex(Colour) -> - {R, G, B, A} = to_rgba(Colour), - Red = begin - _pipe = R * 255.0, - _pipe@1 = gleam@float:round(_pipe), - erlang:'bsl'(_pipe@1, 24) - end, - Green = begin - _pipe@2 = G * 255.0, - _pipe@3 = gleam@float:round(_pipe@2), - erlang:'bsl'(_pipe@3, 16) - end, - Blue = begin - _pipe@4 = B * 255.0, - _pipe@5 = gleam@float:round(_pipe@4), - erlang:'bsl'(_pipe@5, 8) - end, - Alpha = begin - _pipe@6 = A * 255.0, - gleam@float:round(_pipe@6) - end, - ((Red + Green) + Blue) + Alpha. - --spec to_rgba_hex_string(colour()) -> binary(). -to_rgba_hex_string(Colour) -> - _pipe = to_rgba_hex(Colour), - gleam@int:to_base16(_pipe). - --spec to_rgb_hex(colour()) -> integer(). -to_rgb_hex(Colour) -> - {R, G, B, _} = to_rgba(Colour), - Red = begin - _pipe = R * 255.0, - _pipe@1 = gleam@float:round(_pipe), - erlang:'bsl'(_pipe@1, 16) - end, - Green = begin - _pipe@2 = G * 255.0, - _pipe@3 = gleam@float:round(_pipe@2), - erlang:'bsl'(_pipe@3, 8) - end, - Blue = begin - _pipe@4 = B * 255.0, - gleam@float:round(_pipe@4) - end, - (Red + Green) + Blue. - --spec to_rgb_hex_string(colour()) -> binary(). -to_rgb_hex_string(Colour) -> - _pipe = to_rgb_hex(Colour), - gleam@int:to_base16(_pipe). diff --git a/aoc2023/build/packages/gleam_community_colour/src/gleam_community@colour@accessibility.erl b/aoc2023/build/packages/gleam_community_colour/src/gleam_community@colour@accessibility.erl deleted file mode 100644 index 64d37bf..0000000 --- a/aoc2023/build/packages/gleam_community_colour/src/gleam_community@colour@accessibility.erl +++ /dev/null @@ -1,73 +0,0 @@ --module(gleam_community@colour@accessibility). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([luminance/1, contrast_ratio/2, maximum_contrast/2]). - --spec intensity(float()) -> float(). -intensity(Colour_value) -> - case true of - _ when Colour_value =< 0.03928 -> - Colour_value / 12.92; - - _ -> - _assert_subject = gleam@float:power( - (Colour_value + 0.055) / 1.055, - 2.4 - ), - {ok, I} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/colour/accessibility"/utf8>>, - function => <<"intensity"/utf8>>, - line => 62}) - end, - I - end. - --spec luminance(gleam_community@colour:colour()) -> float(). -luminance(Colour) -> - {R, G, B, _} = gleam_community@colour:to_rgba(Colour), - R_intensity = intensity(R), - G_intensity = intensity(G), - B_intensity = intensity(B), - ((0.2126 * R_intensity) + (0.7152 * G_intensity)) + (0.0722 * B_intensity). - --spec contrast_ratio( - gleam_community@colour:colour(), - gleam_community@colour:colour() -) -> float(). -contrast_ratio(Colour_a, Colour_b) -> - Luminance_a = luminance(Colour_a) + 0.05, - Luminance_b = luminance(Colour_b) + 0.05, - case Luminance_a > Luminance_b of - true -> - case Luminance_b of - 0.0 -> 0.0; - Gleam@denominator -> Luminance_a / Gleam@denominator - end; - - false -> - case Luminance_a of - 0.0 -> 0.0; - Gleam@denominator@1 -> Luminance_b / Gleam@denominator@1 - end - end. - --spec maximum_contrast( - gleam_community@colour:colour(), - list(gleam_community@colour:colour()) -) -> {ok, gleam_community@colour:colour()} | {error, nil}. -maximum_contrast(Base, Colours) -> - _pipe = Colours, - _pipe@1 = gleam@list:sort( - _pipe, - fun(Colour_a, Colour_b) -> - Contrast_a = contrast_ratio(Base, Colour_a), - Contrast_b = contrast_ratio(Base, Colour_b), - gleam@float:compare(Contrast_b, Contrast_a) - end - ), - gleam@list:first(_pipe@1). diff --git a/aoc2023/build/packages/gleam_community_colour/src/gleam_community_colour.app.src b/aoc2023/build/packages/gleam_community_colour/src/gleam_community_colour.app.src deleted file mode 100644 index a327650..0000000 --- a/aoc2023/build/packages/gleam_community_colour/src/gleam_community_colour.app.src +++ /dev/null @@ -1,9 +0,0 @@ -{application, gleam_community_colour, [ - {vsn, "1.2.0"}, - {applications, [gleam_stdlib, - gleeunit]}, - {description, "Colour types, conversions, and other utilities"}, - {modules, [gleam_community@colour, - gleam_community@colour@accessibility]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gleam_community_maths/LICENCE b/aoc2023/build/packages/gleam_community_maths/LICENCE deleted file mode 100644 index a84f0ec..0000000 --- a/aoc2023/build/packages/gleam_community_maths/LICENCE +++ /dev/null @@ -1,190 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2023 Gleam Community Contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/aoc2023/build/packages/gleam_community_maths/README.md b/aoc2023/build/packages/gleam_community_maths/README.md deleted file mode 100644 index c912757..0000000 --- a/aoc2023/build/packages/gleam_community_maths/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# gleam-community/maths - -[![Package Version](https://img.shields.io/hexpm/v/gleam_community_maths)](https://hex.pm/packages/gleam_community_maths) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/gleam_community_maths/) - -A basic mathematics library that contains some of the most fundamental mathematics functions and utilities. - -The library supports both targets: Erlang and JavaScript. - -## Quickstart - -```gleam -import gleam_community/maths/arithmetics -import gleam_community/maths/combinatorics -import gleam_community/maths/elementary -import gleam_community/maths/piecewise -import gleam_community/maths/predicates -import gleam/float - -pub fn main() { - // Evaluate the sine function - elementary.sin(elementary.pi()) - // Returns Float: 0.0 - - // Find the greatest common divisor - arithmetics.gcd(54, 24) - // Returns Int: 6 - - // Find the minimum and maximum of a list - piecewise.extrema([10.0, 3.0, 50.0, 20.0, 3.0], float.compare) - // Returns Tuple: Ok(#(3.0, 50.0)) - - // Find the list indices of the smallest value - piecewise.arg_minimum([10, 3, 50, 20, 3], float.compare) - // Returns List: Ok([1, 4]) - - // Determine if a number is fractional - predicates.is_fractional(0.3333) - // Returns Bool: True - - // Determine if 28 is a power of 3 - predicates.is_power(28, 3) - // Returns Bool: False - - // Generate all k = 1 combinations of [1, 2] - combinatorics.list_combination([1, 2], 1) - // Returns List: Ok([[1], [2]]) -} - -``` - -## Installation - -`gleam_community` packages are published to [hex.pm](https://hex.pm/packages/gleam_community_maths) -with the prefix `gleam_community_`. You can add them to your Gleam projects directly: - -```sh -gleam add gleam_community_maths -``` diff --git a/aoc2023/build/packages/gleam_community_maths/gleam.toml b/aoc2023/build/packages/gleam_community_maths/gleam.toml deleted file mode 100644 index 9dc5fd7..0000000 --- a/aoc2023/build/packages/gleam_community_maths/gleam.toml +++ /dev/null @@ -1,12 +0,0 @@ -name = "gleam_community_maths" -version = "1.0.1" - -licences = ["Apache-2.0"] -description = "A basic maths library" -repository = { type = "github", user = "gleam-community", repo = "maths" } - -[dependencies] -gleam_stdlib = "~> 0.33" - -[dev-dependencies] -gleeunit = "~> 1.0" diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/arithmetics.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/arithmetics.gleam deleted file mode 100644 index 3e0f63a..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/arithmetics.gleam +++ /dev/null @@ -1,618 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Arithmetics: A module containing a collection of fundamental mathematical functions relating to simple arithmetics (addition, subtraction, multiplication, etc.), but also number theory. -//// -//// * **Division functions** -//// * [`gcd`](#gcd) -//// * [`lcm`](#lcm) -//// * [`divisors`](#divisors) -//// * [`proper_divisors`](#proper_divisors) -//// * **Sums and products** -//// * [`float_sum`](#float_sum) -//// * [`int_sum`](#int_sum) -//// * [`float_product`](#float_product) -//// * [`int_product`](#int_product) -//// * [`float_cumulative_sum`](#float_cumulative_sum) -//// * [`int_cumulative_sum`](#int_cumulative_sum) -//// * [`float_cumulative_product`](#float_cumulative_product) -//// * [`int_cumulative_product`](#int_cumulative_product) -//// - -import gleam/int -import gleam/list -import gleam_community/maths/conversion -import gleam_community/maths/elementary -import gleam_community/maths/piecewise - -/// -/// -/// The function calculates the greatest common multiple of two integers $$x, y \in \mathbb{Z}$$. -/// The greatest common multiple is the largest positive integer that is divisible by both $$x$$ and $$y$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example() { -/// arithmetics.lcm(1, 1) -/// |> should.equal(1) -/// -/// arithmetics.lcm(100, 10) -/// |> should.equal(10) -/// -/// arithmetics.gcd(-36, -17) -/// |> should.equal(1) -/// } -///
-/// -/// -/// -pub fn gcd(x: Int, y: Int) -> Int { - let absx: Int = piecewise.int_absolute_value(x) - let absy: Int = piecewise.int_absolute_value(y) - do_gcd(absx, absy) -} - -fn do_gcd(x: Int, y: Int) -> Int { - case x == 0 { - True -> y - False -> { - let assert Ok(z) = int.modulo(y, x) - do_gcd(z, x) - } - } -} - -/// -/// -/// The function calculates the least common multiple of two integers $$x, y \in \mathbb{Z}$$. -/// The least common multiple is the smallest positive integer that has both $$x$$ and $$y$$ as factors. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example() { -/// arithmetics.lcm(1, 1) -/// |> should.equal(1) -/// -/// arithmetics.lcm(100, 10) -/// |> should.equal(100) -/// -/// arithmetics.lcm(-36, -17) -/// |> should.equal(612) -/// } -///
-/// -/// -/// -pub fn lcm(x: Int, y: Int) -> Int { - let absx: Int = piecewise.int_absolute_value(x) - let absy: Int = piecewise.int_absolute_value(y) - absx * absy / do_gcd(absx, absy) -} - -/// -/// -/// The function returns all the positive divisors of an integer, including the number iteself. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example() { -/// arithmetics.divisors(4) -/// |> should.equal([1, 2, 4]) -/// -/// arithmetics.divisors(6) -/// |> should.equal([1, 2, 3, 6]) -/// -/// arithmetics.proper_divisors(13) -/// |> should.equal([1, 13]) -/// } -///
-/// -/// -/// -pub fn divisors(n: Int) -> List(Int) { - find_divisors(n) -} - -fn find_divisors(n: Int) -> List(Int) { - let nabs: Float = piecewise.float_absolute_value(conversion.int_to_float(n)) - let assert Ok(sqrt_result) = elementary.square_root(nabs) - let max: Int = conversion.float_to_int(sqrt_result) + 1 - list.range(2, max) - |> list.fold( - [1, n], - fn(acc: List(Int), i: Int) -> List(Int) { - case n % i == 0 { - True -> [i, n / i, ..acc] - False -> acc - } - }, - ) - |> list.unique() - |> list.sort(int.compare) -} - -/// -/// -/// The function returns all the positive divisors of an integer, excluding the number iteself. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example() { -/// arithmetics.proper_divisors(4) -/// |> should.equal([1, 2]) -/// -/// arithmetics.proper_divisors(6) -/// |> should.equal([1, 2, 3]) -/// -/// arithmetics.proper_divisors(13) -/// |> should.equal([1]) -/// } -///
-/// -/// -/// -pub fn proper_divisors(n: Int) -> List(Int) { - let divisors: List(Int) = find_divisors(n) - divisors - |> list.take(list.length(divisors) - 1) -} - -/// -/// -/// Calculcate the sum of the elements in a list: -/// -/// \\[ -/// \sum_{i=1}^n x_i -/// \\] -/// -/// In the formula, $$n$$ is the length of the list and $$x_i \in \mathbb{R}$$ is the value in the input list indexed by $$i$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example () { -/// // An empty list returns an error -/// [] -/// |> arithmetics.float_sum() -/// |> should.equal(0.0) -/// -/// // Valid input returns a result -/// [1.0, 2.0, 3.0] -/// |> arithmetics.float_sum() -/// |> should.equal(6.0) -/// } -///
-/// -/// -/// -pub fn float_sum(arr: List(Float)) -> Float { - case arr { - [] -> 0.0 - _ -> - arr - |> list.fold(0.0, fn(acc: Float, a: Float) -> Float { a +. acc }) - } -} - -/// -/// -/// Calculcate the sum of the elements in a list: -/// -/// \\[ -/// \sum_{i=1}^n x_i -/// \\] -/// -/// In the formula, $$n$$ is the length of the list and $$x_i \in \mathbb{Z}$$ is the value in the input list indexed by $$i$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example () { -/// // An empty list returns 0 -/// [] -/// |> arithmetics.int_sum() -/// |> should.equal(0) -/// -/// // Valid input returns a result -/// [1, 2, 3] -/// |> arithmetics.int_sum() -/// |> should.equal(6) -/// } -///
-/// -/// -/// -pub fn int_sum(arr: List(Int)) -> Int { - case arr { - [] -> 0 - _ -> - arr - |> list.fold(0, fn(acc: Int, a: Int) -> Int { a + acc }) - } -} - -/// -/// -/// Calculcate the product of the elements in a list: -/// -/// \\[ -/// \prod_{i=1}^n x_i -/// \\] -/// -/// In the formula, $$n$$ is the length of the list and $$x_i \in \mathbb{R}$$ is the value in the input list indexed by $$i$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example () { -/// // An empty list returns 0.0 -/// [] -/// |> arithmetics.float_product() -/// |> should.equal(0.0) -/// -/// // Valid input returns a result -/// [1.0, 2.0, 3.0] -/// |> arithmetics.float_product() -/// |> should.equal(6.0) -/// } -///
-/// -/// -/// -pub fn float_product(arr: List(Float)) -> Float { - case arr { - [] -> 1.0 - _ -> - arr - |> list.fold(1.0, fn(acc: Float, a: Float) -> Float { a *. acc }) - } -} - -/// -/// -/// Calculcate the product of the elements in a list: -/// -/// \\[ -/// \prod_{i=1}^n x_i -/// \\] -/// -/// In the formula, $$n$$ is the length of the list and $$x_i \in \mathbb{Z}$$ is the value in the input list indexed by $$i$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example () { -/// // An empty list returns 0 -/// [] -/// |> arithmetics.int_product() -/// |> should.equal(0) -/// -/// // Valid input returns a result -/// [1, 2, 3] -/// |> arithmetics.int_product() -/// |> should.equal(6) -/// } -///
-/// -/// -/// -pub fn int_product(arr: List(Int)) -> Int { - case arr { - [] -> 1 - _ -> - arr - |> list.fold(1, fn(acc: Int, a: Int) -> Int { a * acc }) - } -} - -/// -/// -/// Calculcate the cumulative sum of the elements in a list: -/// -/// \\[ -/// v_j = \sum_{i=1}^j x_i \\;\\; \forall j = 1,\dots, n -/// \\] -/// -/// In the formula, $$v_j$$ is the $$j$$'th element in the cumulative sum of $$n$$ elements. -/// That is, $$n$$ is the length of the list and $$x_i \in \mathbb{R}$$ is the value in the input list indexed by $$i$$. -/// The value $$v_j$$ is thus the sum of the $$1$$ to $$j$$ first elements in the given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example () { -/// [] -/// |> arithmetics.float_cumulative_sum() -/// |> should.equal([]) -/// -/// // Valid input returns a result -/// [1.0, 2.0, 3.0] -/// |> arithmetics.float_cumulative_sum() -/// |> should.equal([1.0, 3.0, 6.0]) -/// } -///
-/// -/// -/// -pub fn float_cumulative_sum(arr: List(Float)) -> List(Float) { - case arr { - [] -> [] - _ -> - arr - |> list.scan(0.0, fn(acc: Float, a: Float) -> Float { a +. acc }) - } -} - -/// -/// -/// Calculcate the cumulative sum of the elements in a list: -/// -/// \\[ -/// v_j = \sum_{i=1}^j x_i \\;\\; \forall j = 1,\dots, n -/// \\] -/// -/// In the formula, $$v_j$$ is the $$j$$'th element in the cumulative sum of $$n$$ elements. -/// That is, $$n$$ is the length of the list and $$x_i \in \mathbb{Z}$$ is the value in the input list indexed by $$i$$. -/// The value $$v_j$$ is thus the sum of the $$1$$ to $$j$$ first elements in the given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example () { -/// [] -/// |> arithmetics.int_cumulative_sum() -/// |> should.equal([]) -/// -/// // Valid input returns a result -/// [1, 2, 3] -/// |> arithmetics.int_cumulative_sum() -/// |> should.equal([1, 3, 6]) -/// } -///
-/// -/// -/// -pub fn int_cumulative_sum(arr: List(Int)) -> List(Int) { - case arr { - [] -> [] - _ -> - arr - |> list.scan(0, fn(acc: Int, a: Int) -> Int { a + acc }) - } -} - -/// -/// -/// Calculcate the cumulative product of the elements in a list: -/// -/// \\[ -/// v_j = \prod_{i=1}^j x_i \\;\\; \forall j = 1,\dots, n -/// \\] -/// -/// In the formula, $$v_j$$ is the $$j$$'th element in the cumulative product of $$n$$ elements. -/// That is, $$n$$ is the length of the list and $$x_i \in \mathbb{R}$$ is the value in the input list indexed by $$i$$. -/// The value $$v_j$$ is thus the sum of the $$1$$ to $$j$$ first elements in the given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example () { -/// // An empty list returns an error -/// [] -/// |> arithmetics.float_cumulative_product() -/// |> should.equal([]) -/// -/// // Valid input returns a result -/// [1.0, 2.0, 3.0] -/// |> arithmetics.float_cumulative_product() -/// |> should.equal([1.0, 2.0, 6.0]) -/// } -///
-/// -/// -/// -pub fn float_cumumlative_product(arr: List(Float)) -> List(Float) { - case arr { - [] -> [] - _ -> - arr - |> list.scan(1.0, fn(acc: Float, a: Float) -> Float { a *. acc }) - } -} - -/// -/// -/// Calculcate the cumulative product of the elements in a list: -/// -/// \\[ -/// v_j = \prod_{i=1}^j x_i \\;\\; \forall j = 1,\dots, n -/// \\] -/// -/// In the formula, $$v_j$$ is the $$j$$'th element in the cumulative product of $$n$$ elements. -/// That is, $$n$$ is the length of the list and $$x_i \in \mathbb{Z}$$ is the value in the input list indexed by $$i$$. -/// The value $$v_j$$ is thus the product of the $$1$$ to $$j$$ first elements in the given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/arithmetics -/// -/// pub fn example () { -/// // An empty list returns an error -/// [] -/// |> arithmetics.int_cumulative_product() -/// |> should.equal([]) -/// -/// // Valid input returns a result -/// [1, 2, 3] -/// |> arithmetics.int_cumulative_product() -/// |> should.equal([1, 2, 6]) -/// } -///
-/// -/// -/// -pub fn int_cumulative_product(arr: List(Int)) -> List(Int) { - case arr { - [] -> [] - _ -> - arr - |> list.scan(1, fn(acc: Int, a: Int) -> Int { a * acc }) - } -} diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/combinatorics.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/combinatorics.gleam deleted file mode 100644 index ee771a1..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/combinatorics.gleam +++ /dev/null @@ -1,432 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Combinatorics: A module that offers mathematical functions related to counting, arrangements, and combinations. -//// -//// * **Combinatorial functions** -//// * [`combination`](#combination) -//// * [`factorial`](#factorial) -//// * [`permutation`](#permutation) -//// * [`list_combination`](#list_combination) -//// * [`list_permutation`](#list_permutation) -//// * [`cartesian_product`](#cartesian_product) -//// - -import gleam/list -import gleam/set - -/// -/// -/// A combinatorial function for computing the number of a $$k$$-combinations of $$n$$ elements: -/// -/// \\[ -/// C(n, k) = \binom{n}{k} = \frac{n!}{k! (n-k)!} -/// \\] -/// Also known as "$$n$$ choose $$k$$" or the binomial coefficient. -/// -/// The implementation uses the effecient iterative multiplicative formula for the computation. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/combinatorics -/// -/// pub fn example() { -/// // Invalid input gives an error -/// // Error on: n = -1 < 0 -/// combinatorics.combination(-1, 1) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// combinatorics.combination(4, 0) -/// |> should.equal(Ok(1)) -/// -/// combinatorics.combination(4, 4) -/// |> should.equal(Ok(1)) -/// -/// combinatorics.combination(4, 2) -/// |> should.equal(Ok(6)) -/// } -///
-/// -/// -/// -pub fn combination(n: Int, k: Int) -> Result(Int, String) { - case n < 0 { - True -> - "Invalid input argument: n < 0. Valid input is n > 0." - |> Error - False -> - case k < 0 || k > n { - True -> - 0 - |> Ok - False -> - case k == 0 || k == n { - True -> - 1 - |> Ok - False -> { - let min = case k < n - k { - True -> k - False -> n - k - } - list.range(1, min) - |> list.fold( - 1, - fn(acc: Int, x: Int) -> Int { acc * { n + 1 - x } / x }, - ) - |> Ok - } - } - } - } -} - -/// -/// -/// A combinatorial function for computing the total number of combinations of $$n$$ -/// elements, that is $$n!$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/combinatorics -/// -/// pub fn example() { -/// // Invalid input gives an error -/// combinatorics.factorial(-1) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// combinatorics.factorial(0) -/// |> should.equal(Ok(1)) -/// -/// combinatorics.factorial(1) -/// |> should.equal(Ok(1)) -/// -/// combinatorics.factorial(2) -/// |> should.equal(Ok(2)) -/// -/// combinatorics.factorial(3) -/// |> should.equal(Ok(6)) -/// -/// combinatorics.factorial(4) -/// |> should.equal(Ok(24)) -/// } -///
-/// -/// -/// -pub fn factorial(n) -> Result(Int, String) { - case n < 0 { - True -> - "Invalid input argument: n < 0. Valid input is n > 0." - |> Error - False -> - case n { - 0 -> - 1 - |> Ok - 1 -> - 1 - |> Ok - _ -> - list.range(1, n) - |> list.fold(1, fn(acc: Int, x: Int) { acc * x }) - |> Ok - } - } -} - -/// -/// -/// A combinatorial function for computing the number of $$k$$-permuations (without repetitions) -/// of $$n$$ elements: -/// -/// \\[ -/// P(n, k) = \frac{n!}{(n - k)!} -/// \\] -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/combinatorics -/// -/// pub fn example() { -/// // Invalid input gives an error -/// // Error on: n = -1 < 0 -/// combinatorics.permutation(-1, 1) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// combinatorics.permutation(4, 0) -/// |> should.equal(Ok(1)) -/// -/// combinatorics.permutation(4, 4) -/// |> should.equal(Ok(1)) -/// -/// combinatorics.permutation(4, 2) -/// |> should.equal(Ok(12)) -/// } -///
-/// -/// -/// -pub fn permutation(n: Int, k: Int) -> Result(Int, String) { - case n < 0 { - True -> - "Invalid input argument: n < 0. Valid input is n > 0." - |> Error - False -> - case k < 0 || k > n { - True -> - 0 - |> Ok - False -> - case k == n { - True -> - 1 - |> Ok - False -> { - let assert Ok(v1) = factorial(n) - let assert Ok(v2) = factorial(n - k) - v1 / v2 - |> Ok - } - } - } - } -} - -/// -/// -/// Generate all $$k$$-combinations based on a given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/set -/// import gleam_community/maths/combinatorics -/// -/// pub fn example () { -/// let assert Ok(result) = combinatorics.list_combination([1, 2, 3, 4], 3) -/// result -/// |> set.from_list() -/// |> should.equal(set.from_list([[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]])) -/// } -///
-/// -/// -/// -pub fn list_combination(arr: List(a), k: Int) -> Result(List(List(a)), String) { - case k < 0 { - True -> - "Invalid input argument: k < 0. Valid input is k > 0." - |> Error - False -> { - case k > list.length(arr) { - True -> - "Invalid input argument: k > length(arr). Valid input is 0 < k <= length(arr)." - |> Error - False -> { - do_list_combination(arr, k, []) - |> Ok - } - } - } - } -} - -fn do_list_combination(arr: List(a), k: Int, prefix: List(a)) -> List(List(a)) { - case k { - 0 -> [list.reverse(prefix)] - _ -> - case arr { - [] -> [] - [x, ..xs] -> { - let with_x = do_list_combination(xs, k - 1, [x, ..prefix]) - let without_x = do_list_combination(xs, k, prefix) - list.append(with_x, without_x) - } - } - } -} - -/// -/// -/// Generate all permutations of a given list. -/// -/// Repeated elements are treated as distinct for the -/// purpose of permutations, so two identical elements -/// for example will appear "both ways round". This -/// means lists with repeated elements return the same -/// number of permutations as ones without. -/// -/// N.B. The output of this function is a list of size -/// factorial in the size of the input list. Caution is -/// advised on input lists longer than ~11 elements, which -/// may cause the VM to use unholy amounts of memory for -/// the output. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/set -/// import gleam_community/maths/combinatorics -/// -/// pub fn example () { -/// [1, 2, 3] -/// |> combinatorics.list_permutation() -/// |> set.from_list() -/// |> should.equal(set.from_list([ -/// [1, 2, 3], -/// [2, 1, 3], -/// [3, 1, 2], -/// [1, 3, 2], -/// [2, 3, 1], -/// [3, 2, 1], -/// ])) -/// -/// [1.0, 1.0] -/// |> combinatorics.list_permutation() -/// |> should.equal([[1.0, 1.0], [1.0, 1.0]]) -/// } -///
-/// -/// -/// -pub fn list_permutation(arr: List(a)) -> List(List(a)) { - case arr { - [] -> [[]] - _ -> { - use x <- list.flat_map(arr) - // `x` is drawn from the list `arr` above, - // so Ok(...) can be safely asserted as the result of `list.pop` below - let assert Ok(#(_, remaining)) = list.pop(arr, fn(y) { x == y }) - list.map(list_permutation(remaining), fn(perm) { [x, ..perm] }) - } - } -} - -/// -/// -/// Generate a list containing all combinations of pairs of elements coming from two given lists. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/list -/// import gleam_community/maths/combinatorics -/// -/// pub fn example () { -/// [] -/// |> combinatorics.cartesian_product([]) -/// |> should.equal([]) -/// -/// [1.0, 10.0] -/// |> combinatorics.cartesian_product([1.0, 2.0]) -/// |> should.equal([#(1.0, 1.0), #(1.0, 2.0), #(10.0, 1.0), #(10.0, 2.0)]) -/// } -///
-/// -/// -/// -pub fn cartesian_product(xarr: List(a), yarr: List(a)) -> List(#(a, a)) { - let xset: set.Set(a) = - xarr - |> set.from_list() - let yset: set.Set(a) = - yarr - |> set.from_list() - xset - |> set.fold( - set.new(), - fn(accumulator0: set.Set(#(a, a)), member0: a) -> set.Set(#(a, a)) { - set.fold( - yset, - accumulator0, - fn(accumulator1: set.Set(#(a, a)), member1: a) -> set.Set(#(a, a)) { - set.insert(accumulator1, #(member0, member1)) - }, - ) - }, - ) - |> set.to_list() -} diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/conversion.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/conversion.gleam deleted file mode 100644 index 017aabd..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/conversion.gleam +++ /dev/null @@ -1,183 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Conversion: A module containing various functions for converting between types and quantities. -//// -//// * **Misc. functions** -//// * [`float_to_int`](#float_to_int) -//// * [`int_to_float`](#int_to_float) -//// * [`degrees_to_radians`](#degrees_to_radians) -//// * [`radians_to_degrees`](#radians_to_degrees) - -import gleam/int - -/// -/// -/// A function that produces a number of type `Float` from an `Int`. -/// -/// Note: The function is equivalent to the `int.to_float` function in the Gleam stdlib. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/conversion -/// -/// pub fn example() { -/// conversion.int_to_float(-1) -/// |> should.equal(-1.0) -/// -/// conversion.int_to_float(1) -/// |> should.equal(1.0) -/// } -///
-/// -/// -/// -pub fn int_to_float(x: Int) -> Float { - int.to_float(x) -} - -/// -/// -/// The function returns the integral part of a given floating point value. -/// That is, everything after the decimal point of a given floating point value is discarded and only the integer value before the decimal point is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/option -/// import gleam_community/maths/conversion -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// conversion.float_to_int(12.0654) -/// |> should.equal(12) -/// -/// // Note: Making the following function call is equivalent -/// // but instead of returning a value of type 'Int' a value -/// // of type 'Float' is returned. -/// piecewise.round(12.0654, option.Some(0), option.Some(piecewise.RoundToZero)) -/// |> should.equal(Ok(12.0)) -/// } -///
-/// -/// -/// -pub fn float_to_int(x: Float) -> Int { - do_to_int(x) -} - -@external(erlang, "erlang", "trunc") -@external(javascript, "../../maths.mjs", "truncate") -fn do_to_int(a: Float) -> Int - -/// -/// -/// Convert a value in degrees to a value measured in radians. -/// That is, $$1 \text{ degrees } = \frac{\pi}{180} \text{ radians }$$. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/conversion -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// conversion.degrees_to_radians(360.) -/// |> should.equal(2. *. elementary.pi()) -/// } -///
-/// -/// -/// -pub fn degrees_to_radians(x: Float) -> Float { - x *. do_pi() /. 180.0 -} - -/// -/// -/// Convert a value in degrees to a value measured in radians. -/// That is, $$1 \text{ radians } = \frac{180}{\pi} \text{ degrees }$$. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/conversion -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// conversion.radians_to_degrees(0.0) -/// |> should.equal(0.0) -/// -/// conversion.radians_to_degrees(2. *. elementary.pi()) -/// |> should.equal(360.) -/// } -///
-/// -/// -/// -pub fn radians_to_degrees(x: Float) -> Float { - x *. 180.0 /. do_pi() -} - -@external(erlang, "math", "pi") -@external(javascript, "../../maths.mjs", "pi") -fn do_pi() -> Float diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/elementary.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/elementary.gleam deleted file mode 100644 index 1b518a4..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/elementary.gleam +++ /dev/null @@ -1,1256 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Elementary: A module containing a comprehensive set of foundational mathematical functions and constants. -//// -//// * **Trigonometric and hyperbolic functions** -//// * [`acos`](#acos) -//// * [`acosh`](#acosh) -//// * [`asin`](#asin) -//// * [`asinh`](#asinh) -//// * [`atan`](#atan) -//// * [`atan2`](#atan2) -//// * [`atanh`](#atanh) -//// * [`cos`](#cos) -//// * [`cosh`](#cosh) -//// * [`sin`](#sin) -//// * [`sinh`](#sinh) -//// * [`tan`](#tan) -//// * [`tanh`](#tanh) -//// * **Powers, logs and roots** -//// * [`exponential`](#exponential) -//// * [`natural_logarithm`](#natural_logarithm) -//// * [`logarithm`](#logarithm) -//// * [`logarithm_2`](#logarithm_2) -//// * [`logarithm_10`](#logarithm_10) -//// * [`power`](#power) -//// * [`square_root`](#square_root) -//// * [`cube_root`](#cube_root) -//// * [`nth_root`](#nth_root) -//// * **Mathematical constants** -//// * [`pi`](#pi) -//// * [`tau`](#tau) -//// * [`e`](#e) -//// - -import gleam/int -import gleam/option - -/// -/// -/// The inverse cosine function: -/// -/// \\[ -/// \forall x \in \[-1, 1\], \\; \cos^{-1}{(x)} = y \in \[0, \pi \] -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\[-1, 1\]$$ as input and returns a -/// numeric value $$y$$ that lies in the range $$\[0, \pi \]$$ (an angle in radians). -/// If the input value is outside the domain of the function an error is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.acos(1.0) -/// |> should.equal(Ok(0.0)) -/// -/// elementary.acos(1.1) -/// |> should.be_error() -/// -/// elementary.acos(-1.1) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn acos(x: Float) -> Result(Float, String) { - case x >=. -1.0 && x <=. 1.0 { - True -> - do_acos(x) - |> Ok - False -> - "Invalid input argument: x >= -1 or x <= 1. Valid input is -1. <= x <= 1." - |> Error - } -} - -@external(erlang, "math", "acos") -@external(javascript, "../../maths.mjs", "acos") -fn do_acos(a: Float) -> Float - -/// -/// -/// The inverse hyperbolic cosine function: -/// -/// \\[ -/// \forall x \in [1, +\infty\), \\; \cosh^{-1}{(x)} = y \in \[0, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\[1, +\infty\)$$ as input and returns -/// a numeric value $$y$$ that lies in the range $$\[0, +\infty\)$$ (an angle in radians). -/// If the input value is outside the domain of the function an error is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.acosh(1.0) -/// |> should.equal(Ok(0.0)) -/// -/// elementary.acosh(0.0) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn acosh(x: Float) -> Result(Float, String) { - case x >=. 1.0 { - True -> - do_acosh(x) - |> Ok - False -> - "Invalid input argument: x < 1. Valid input is x >= 1." - |> Error - } -} - -@external(erlang, "math", "acosh") -@external(javascript, "../../maths.mjs", "acosh") -fn do_acosh(a: Float) -> Float - -/// -/// -/// The inverse sine function: -/// -/// \\[ -/// \forall x \in \[-1, 1\], \\; \sin^{-1}{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\[-1, 1\]$$ as input and returns a numeric -/// value $$y$$ that lies in the range $$\[-\frac{\pi}{2}, \frac{\pi}{2}\]$$ (an angle in radians). -/// If the input value is outside the domain of the function an error is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.asin(0.0) -/// |> should.equal(Ok(0.0)) -/// -/// elementary.asin(1.1) -/// |> should.be_error() -/// -/// elementary.asin(-1.1) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn asin(x: Float) -> Result(Float, String) { - case x >=. -1.0 && x <=. 1.0 { - True -> - do_asin(x) - |> Ok - False -> - "Invalid input argument: x >= -1 or x <= 1. Valid input is -1. <= x <= 1." - |> Error - } -} - -@external(erlang, "math", "asin") -@external(javascript, "../../maths.mjs", "asin") -fn do_asin(a: Float) -> Float - -/// -/// -/// The inverse hyperbolic sine function: -/// -/// \\[ -/// \forall x \in \(-\infty, \infty\), \\; \sinh^{-1}{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-\infty, +\infty\)$$ as input and returns -/// a numeric value $$y$$ that lies in the range $$\(-\infty, +\infty\)$$ (an angle in radians). -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.asinh(0.0) -/// |> should.equal(0.0) -/// } -///
-/// -/// -/// -pub fn asinh(x: Float) -> Float { - do_asinh(x) -} - -@external(erlang, "math", "asinh") -@external(javascript, "../../maths.mjs", "asinh") -fn do_asinh(a: Float) -> Float - -/// -/// -/// The inverse tangent function: -/// -/// \\[ -/// \forall x \in \(-\infty, \infty\), \\; \tan^{-1}{(x)} = y \in \[-\frac{\pi}{2}, \frac{\pi}{2}\] -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-\infty, +\infty\)$$ as input and returns -/// a numeric value $$y$$ that lies in the range $$\[-\frac{\pi}{2}, \frac{\pi}{2}\]$$ (an angle in radians). -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.atan(0.0) -/// |> should.equal(0.0) -/// } -///
-/// -/// -/// -pub fn atan(x: Float) -> Float { - do_atan(x) -} - -@external(erlang, "math", "atan") -@external(javascript, "../../maths.mjs", "atan") -fn do_atan(a: Float) -> Float - -/// -/// -/// The inverse 2-argument tangent function: -/// -/// \\[ -/// \text{atan2}(y, x) = -/// \begin{cases} -/// \tan^{-1}(\frac y x) &\text{if } x > 0, \\\\ -/// \tan^{-1}(\frac y x) + \pi &\text{if } x < 0 \text{ and } y \ge 0, \\\\ -/// \tan^{-1}(\frac y x) - \pi &\text{if } x < 0 \text{ and } y < 0, \\\\ -/// +\frac{\pi}{2} &\text{if } x = 0 \text{ and } y > 0, \\\\ -/// -\frac{\pi}{2} &\text{if } x = 0 \text{ and } y < 0, \\\\ -/// \text{undefined} &\text{if } x = 0 \text{ and } y = 0. -/// \end{cases} -/// \\] -/// -/// The function returns the angle in radians from the x-axis to the line containing the -/// origin $$\(0, 0\)$$ and a point given as input with coordinates $$\(x, y\)$$. The numeric value -/// returned by $$\text{atan2}(y, x)$$ is in the range $$\[-\pi, \pi\]$$. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.atan2(0.0, 0.0) -/// |> should.equal(0.0) -/// } -///
-/// -/// -/// -pub fn atan2(y: Float, x: Float) -> Float { - do_atan2(y, x) -} - -@external(erlang, "math", "atan2") -@external(javascript, "../../maths.mjs", "atan2") -fn do_atan2(a: Float, b: Float) -> Float - -/// -/// -/// The inverse hyperbolic tangent function: -/// -/// \\[ -/// \forall x \in \(-1, 1\), \\; \tanh^{-1}{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-1, 1\)$$ as input and returns -/// a numeric value $$y$$ that lies in the range $$\(-\infty, \infty\)$$ (an angle in radians). -/// If the input value is outside the domain of the function an error is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.atanh(0.0) -/// |> should.equal(Ok(0.0)) -/// -/// elementary.atanh(1.0) -/// |> should.be_error() -/// -/// elementary.atanh(-1.0) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn atanh(x: Float) -> Result(Float, String) { - case x >. -1.0 && x <. 1.0 { - True -> - do_atanh(x) - |> Ok - False -> - "Invalid input argument: x > -1 or x < 1. Valid input is -1. < x < 1." - |> Error - } -} - -@external(erlang, "math", "atanh") -@external(javascript, "../../maths.mjs", "atanh") -fn do_atanh(a: Float) -> Float - -/// -/// -/// The cosine function: -/// -/// \\[ -/// \forall x \in \(-\infty, +\infty\), \\; \cos{(x)} = y \in \[-1, 1\] -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-\infty, \infty\)$$ (an angle in radians) -/// as input and returns a numeric value $$y$$ that lies in the range $$\[-1, 1\]$$. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.cos(0.0) -/// |> should.equal(1.0) -/// -/// elementary.cos(elementary.pi()) -/// |> should.equal(-1.0) -/// } -///
-/// -/// -/// -pub fn cos(x: Float) -> Float { - do_cos(x) -} - -@external(erlang, "math", "cos") -@external(javascript, "../../maths.mjs", "cos") -fn do_cos(a: Float) -> Float - -/// -/// -/// The hyperbolic cosine function: -/// -/// \\[ -/// \forall x \in \(-\infty, \infty\), \\; \cosh{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-\infty, \infty\)$$ as input (an angle in radians) -/// and returns a numeric value $$y$$ that lies in the range $$\(-\infty, \infty\)$$. -/// If the input value is too large an overflow error might occur. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.cosh(0.0) -/// |> should.equal(0.0) -/// } -///
-/// -/// -/// -pub fn cosh(x: Float) -> Float { - do_cosh(x) -} - -@external(erlang, "math", "cosh") -@external(javascript, "../../maths.mjs", "cosh") -fn do_cosh(a: Float) -> Float - -/// -/// -/// The sine function: -/// -/// \\[ -/// \forall x \in \(-\infty, +\infty\), \\; \sin{(x)} = y \in \[-1, 1\] -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-\infty, \infty\)$$ (an angle in radians) -/// as input and returns a numeric value $$y$$ that lies in the range $$\[-1, 1\]$$. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.sin(0.0) -/// |> should.equal(0.0) -/// -/// elementary.sin(0.5 *. elementary.pi()) -/// |> should.equal(1.0) -/// } -///
-/// -/// -/// -pub fn sin(x: Float) -> Float { - do_sin(x) -} - -@external(erlang, "math", "sin") -@external(javascript, "../../maths.mjs", "sin") -fn do_sin(a: Float) -> Float - -/// -/// -/// The hyperbolic sine function: -/// -/// \\[ -/// \forall x \in \(-\infty, +\infty\), \\; \sinh{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-\infty, +\infty\)$$ as input -/// (an angle in radians) and returns a numeric value $$y$$ that lies in the range -/// $$\(-\infty, +\infty\)$$. If the input value is too large an overflow error might -/// occur. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.sinh(0.0) -/// |> should.equal(0.0) -/// } -///
-/// -/// -/// -pub fn sinh(x: Float) -> Float { - do_sinh(x) -} - -@external(erlang, "math", "sinh") -@external(javascript, "../../maths.mjs", "sinh") -fn do_sinh(a: Float) -> Float - -/// -/// -/// The tangent function: -/// -/// \\[ -/// \forall x \in \(-\infty, +\infty\), \\; \tan{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-\infty, +\infty\)$$ as input -/// (an angle in radians) and returns a numeric value $$y$$ that lies in the range -/// $$\(-\infty, +\infty\)$$. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.tan(0.0) -/// |> should.equal(0.0) -/// } -///
-/// -/// -/// -pub fn tan(x: Float) -> Float { - do_tan(x) -} - -@external(erlang, "math", "tan") -@external(javascript, "../../maths.mjs", "tan") -fn do_tan(a: Float) -> Float - -/// -/// -/// The hyperbolic tangent function: -/// -/// \\[ -/// \forall x \in \(-\infty, \infty\), \\; \tanh{(x)} = y \in \[-1, 1\] -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(-\infty, \infty\)$$ as input (an angle in radians) -/// and returns a numeric value $$y$$ that lies in the range $$\[-1, 1\]$$. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example () { -/// elementary.tanh(0.0) -/// |> should.equal(0.0) -/// -/// elementary.tanh(25.0) -/// |> should.equal(1.0) -/// -/// elementary.tanh(-25.0) -/// |> should.equal(-1.0) -/// } -///
-/// -/// -/// -pub fn tanh(x: Float) -> Float { - do_tanh(x) -} - -@external(erlang, "math", "tanh") -@external(javascript, "../../maths.mjs", "tanh") -fn do_tanh(a: Float) -> Float - -/// -/// -/// The exponential function: -/// -/// \\[ -/// \forall x \in \(-\infty, \infty\), \\; e^{(x)} = y \in \(0, +\infty\) -/// \\] -/// -/// $$e \approx 2.71828\dots$$ is Eulers' number. -/// -/// Note: If the input value $$x$$ is too large an overflow error might occur. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.exponential(0.0) -/// |> should.equal(1.0) -/// } -///
-/// -/// -/// -pub fn exponential(x: Float) -> Float { - do_exponential(x) -} - -@external(erlang, "math", "exp") -@external(javascript, "../../maths.mjs", "exponential") -fn do_exponential(a: Float) -> Float - -/// -/// -/// The natural logarithm function: -/// -/// \\[ -/// \forall x \in \(0, \infty\), \\; \log_{e}{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(0, \infty\)$$ as input and returns -/// a numeric value $$y$$ that lies in the range $$\(-\infty, \infty\)$$. -/// If the input value is outside the domain of the function an error is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example () { -/// elementary.natural_logarithm(1.0) -/// |> should.equal(Ok(0.0)) -/// -/// elementary.natural_logarithm(elementary.e()) -/// |> should.equal(Ok(1.0)) -/// -/// elementary.natural_logarithm(-1.0) -/// |> should.be_error() -/// } -///
-/// -/// -/// -/// -pub fn natural_logarithm(x: Float) -> Result(Float, String) { - case x >. 0.0 { - True -> - do_natural_logarithm(x) - |> Ok - False -> - "Invalid input argument: x <= 0. Valid input is x > 0." - |> Error - } -} - -@external(erlang, "math", "log") -@external(javascript, "../../maths.mjs", "logarithm") -fn do_natural_logarithm(a: Float) -> Float - -/// -/// -/// The base $$b$$ logarithm function (computed through the "change of base" formula): -/// -/// \\[ -/// \forall x \in \(0, \infty\) \textnormal{ and } b > 1, \\; \log_{b}{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(0, \infty\)$$ and a base $$b > 1$$ as input and returns -/// a numeric value $$y$$ that lies in the range $$\(-\infty, \infty\)$$. -/// If the input value is outside the domain of the function an error is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/option -/// import gleam_community/maths/elementary -/// -/// pub fn example () { -/// elementary.logarithm(1.0, option.Some(10.0)) -/// |> should.equal(Ok(0.0)) -/// -/// elementary.logarithm(elementary.e(), option.Some(elementary.e())) -/// |> should.equal(Ok(1.0)) -/// -/// elementary.logarithm(-1.0, option.Some(2.0)) -/// |> should.be_error() -/// } -///
-/// -/// -/// -/// -pub fn logarithm(x: Float, base: option.Option(Float)) -> Result(Float, String) { - case x >. 0.0 { - True -> - case base { - option.Some(a) -> - case a >. 0.0 && a != 1.0 { - True -> { - // Apply the "change of base formula" - let assert Ok(numerator) = logarithm_10(x) - let assert Ok(denominator) = logarithm_10(a) - numerator /. denominator - |> Ok - } - False -> - "Invalid input argument: base <= 0 or base == 1. Valid input is base > 0 and base != 1." - |> Error - } - _ -> - "Invalid input argument: base <= 0 or base == 1. Valid input is base > 0 and base != 1." - |> Error - } - _ -> - "Invalid input argument: x <= 0. Valid input is x > 0." - |> Error - } -} - -/// -/// -/// The The base-2 logarithm function: -/// -/// \\[ -/// \forall x \in \(0, \infty), \\; \log_{2}{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(0, \infty\)$$ as input and returns -/// a numeric value $$y$$ that lies in the range $$\(-\infty, \infty\)$$. -/// If the input value is outside the domain of the function an error is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example () { -/// elementary.logarithm_2(1.0) -/// |> should.equal(Ok(0.0)) -/// -/// elementary.logarithm_2(2.0) -/// |> should.equal(Ok(1.0)) -/// -/// elementary.logarithm_2(-1.0) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn logarithm_2(x: Float) -> Result(Float, String) { - case x >. 0.0 { - True -> - do_logarithm_2(x) - |> Ok - False -> - "Invalid input argument: x <= 0. Valid input is x > 0." - |> Error - } -} - -@external(erlang, "math", "log2") -@external(javascript, "../../maths.mjs", "logarithm_2") -fn do_logarithm_2(a: Float) -> Float - -/// -/// -/// The base-10 logarithm function: -/// -/// \\[ -/// \forall x \in \(0, \infty), \\; \log_{10}{(x)} = y \in \(-\infty, +\infty\) -/// \\] -/// -/// The function takes a number $$x$$ in its domain $$\(0, \infty\)$$ as input and returns -/// a numeric value $$y$$ that lies in the range $$\(-\infty, \infty\)$$. -/// If the input value is outside the domain of the function an error is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example () { -/// elementary.logarithm_10(1.0) -/// |> should.equal(Ok(0.0)) -/// -/// elementary.logarithm_10(10.0) -/// |> should.equal(Ok(1.0)) -/// -/// elementary.logarithm_10(-1.0) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn logarithm_10(x: Float) -> Result(Float, String) { - case x >. 0.0 { - True -> - do_logarithm_10(x) - |> Ok - False -> - "Invalid input argument: x <= 0. Valid input is x > 0." - |> Error - } -} - -@external(erlang, "math", "log10") -@external(javascript, "../../maths.mjs", "logarithm_10") -fn do_logarithm_10(a: Float) -> Float - -/// -/// -/// -/// -/// The exponentiation function: $$y = x^{a}$$. -/// -/// Note that the function is not defined if: -/// 1. The base is negative ($$x < 0$$) and the exponent is fractional -/// ($$a = \frac{n}{m}$$ is an irrreducible fraction). An error will be returned -/// as an imaginary number will otherwise have to be returned. -/// 2. The base is zero ($$x = 0$$) and the exponent is negative ($$a < 0$$) then the -/// expression is equivalent to the exponent $$y$$ divided by $$0$$ and an -/// error will have to be returned as the expression is otherwise undefined. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.power(2., -1.) -/// |> should.equal(Ok(0.5)) -/// -/// elementary.power(2., 2.) -/// |> should.equal(Ok(4.0)) -/// -/// elementary.power(-1., 0.5) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn power(x: Float, y: Float) -> Result(Float, String) { - let fractional: Bool = do_ceiling(y) -. y >. 0.0 - // In the following check: - // 1. If the base (x) is negative and the exponent (y) is fractional - // then return an error as it will otherwise be an imaginary number - // 2. If the base (x) is 0 and the exponent (y) is negative then the - // expression is equivalent to the exponent (y) divided by 0 and an - // error should be returned - case x <. 0.0 && fractional || x == 0.0 && y <. 0.0 { - True -> - "Invalid input argument: x < 0 and y is fractional or x = 0 and y < 0." - |> Error - False -> - do_power(x, y) - |> Ok - } -} - -@external(erlang, "math", "pow") -@external(javascript, "../../maths.mjs", "power") -fn do_power(a: Float, b: Float) -> Float - -@external(erlang, "math", "ceil") -@external(javascript, "../../maths.mjs", "ceiling") -fn do_ceiling(a: Float) -> Float - -/// -/// -/// The square root function: $$y = \sqrt[2]{x} = x^{\frac{1}{2}}$$. -/// -/// Note that the function is not defined if: -/// 1. The input is negative ($$x < 0$$). An error will be returned -/// as an imaginary number will otherwise have to be returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.square_root(1.0) -/// |> should.equal(Ok(1.0)) -/// -/// elementary.square_root(4.0) -/// |> should.equal(Ok(2.0)) -/// -/// elementary.square_root(-1.0) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn square_root(x: Float) -> Result(Float, String) { - // In the following check: - // 1. If x is negative then return an error as it will otherwise be an - // imaginary number - case x <. 0.0 { - True -> - "Invalid input argument: x < 0." - |> Error - False -> { - let assert Ok(result) = power(x, 1.0 /. 2.0) - result - |> Ok - } - } -} - -/// -/// -/// The cube root function: $$y = \sqrt[3]{x} = x^{\frac{1}{3}}$$. -/// -/// Note that the function is not defined if: -/// 1. The input is negative ($$x < 0$$). An error will be returned -/// as an imaginary number will otherwise have to be returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.cube_root(1.0) -/// |> should.equal(Ok(1.0)) -/// -/// elementary.cube_root(27.0) -/// |> should.equal(Ok(3.0)) -/// -/// elementary.cube_root(-1.0) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn cube_root(x: Float) -> Result(Float, String) { - // In the following check: - // 1. If x is negative then return an error as it will otherwise be an - // imaginary number - case x <. 0.0 { - True -> - "Invalid input argument: x < 0." - |> Error - False -> { - let assert Ok(result) = power(x, 1.0 /. 3.0) - result - |> Ok - } - } -} - -/// -/// -/// The $$n$$'th root function: $$y = \sqrt[n]{x} = x^{\frac{1}{n}}$$. -/// -/// Note that the function is not defined if: -/// 1. The input is negative ($$x < 0$$). An error will be returned -/// as an imaginary number will otherwise have to be returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// elementary.nth_root(1.0, 2) -/// |> should.equal(Ok(1.0)) -/// -/// elementary.nth_root(27.0, 3) -/// |> should.equal(Ok(3.0)) -/// -/// elementary.nth_root(256.0, 4) -/// |> should.equal(Ok(4.0)) -/// -/// elementary.nth_root(-1.0, 2) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn nth_root(x: Float, n: Int) -> Result(Float, String) { - // In the following check: - // 1. If x is negative then return an error as it will otherwise be an - // imaginary number - case x <. 0.0 { - True -> - "Invalid input argument: x < 0. Valid input is x > 0" - |> Error - False -> - case n >= 1 { - True -> { - let assert Ok(result) = power(x, 1.0 /. int.to_float(n)) - result - |> Ok - } - False -> - "Invalid input argument: n < 1. Valid input is n >= 2." - |> Error - } - } -} - -/// -/// -/// The mathematical constant pi: $$\pi \approx 3.1415\dots$$ -/// -/// -/// -pub fn pi() -> Float { - do_pi() -} - -@external(erlang, "math", "pi") -@external(javascript, "../../maths.mjs", "pi") -fn do_pi() -> Float - -/// -/// -/// The mathematical constant tau: $$\tau = 2 \cdot \pi \approx 6.283\dots$$ -/// -/// -/// -pub fn tau() -> Float { - 2.0 *. pi() -} - -/// -/// -/// Euler's number $$e \approx 2.71828\dots$$. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// -/// pub fn example() { -/// // Test that the constant is approximately equal to 2.7128... -/// elementary.e() -/// |> elementary.is_close(2.7128, 0.0, 0.000001) -/// |> should.be_true() -/// } -///
-/// -/// -/// -pub fn e() -> Float { - exponential(1.0) -} diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/metrics.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/metrics.gleam deleted file mode 100644 index 1dab2b4..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/metrics.gleam +++ /dev/null @@ -1,560 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Metrics: A module offering functions for calculating distances and other types of metrics. -//// -//// * **Distances** -//// * [`norm`](#norm) -//// * [`manhatten_distance`](#float_manhatten_distance) -//// * [`minkowski_distance`](#minkowski_distance) -//// * [`euclidean_distance`](#euclidean_distance) -//// * **Basic statistical measures** -//// * [`mean`](#mean) -//// * [`median`](#median) -//// * [`variance`](#variance) -//// * [`standard_deviation`](#standard_deviation) -//// - -import gleam_community/maths/elementary -import gleam_community/maths/piecewise -import gleam_community/maths/arithmetics -import gleam_community/maths/predicates -import gleam_community/maths/conversion -import gleam/list -import gleam/pair -import gleam/float - -/// -/// -/// Calculcate the $$p$$-norm of a list (representing a vector): -/// -/// \\[ -/// \left( \sum_{i=1}^n \left|x_i\right|^{p} \right)^{\frac{1}{p}} -/// \\] -/// -/// In the formula, $$n$$ is the length of the list and $$x_i$$ is the value in the input list indexed by $$i$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// import gleam_community/maths/metrics -/// import gleam_community/maths/predicates -/// -/// pub fn example () { -/// let assert Ok(tol) = elementary.power(-10.0, -6.0) -/// -/// [1.0, 1.0, 1.0] -/// |> metrics.norm(1.0) -/// |> predicates.is_close(3.0, 0.0, tol) -/// |> should.be_true() -/// -/// [1.0, 1.0, 1.0] -/// |> metrics.norm(-1.0) -/// |> predicates.is_close(0.3333333333333333, 0.0, tol) -/// |> should.be_true() -/// } -///
-/// -/// -/// -pub fn norm(arr: List(Float), p: Float) -> Float { - case arr { - [] -> 0.0 - _ -> { - let agg: Float = - arr - |> list.fold( - 0.0, - fn(acc: Float, a: Float) -> Float { - let assert Ok(result) = - elementary.power(piecewise.float_absolute_value(a), p) - result +. acc - }, - ) - let assert Ok(result) = elementary.power(agg, 1.0 /. p) - result - } - } -} - -/// -/// -/// Calculcate the Manhatten distance between two lists (representing vectors): -/// -/// \\[ -/// \sum_{i=1}^n \left|x_i - y_i \right| -/// \\] -/// -/// In the formula, $$n$$ is the length of the two lists and $$x_i, y_i$$ are the values in the respective input lists indexed by $$i, j$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// import gleam_community/maths/metrics -/// import gleam_community/maths/predicates -/// -/// pub fn example () { -/// let assert Ok(tol) = elementary.power(-10.0, -6.0) -/// -/// // Empty lists returns 0.0 -/// metrics.float_manhatten_distance([], []) -/// |> should.equal(Ok(0.0)) -/// -/// // Differing lengths returns error -/// metrics.manhatten_distance([], [1.0]) -/// |> should.be_error() -/// -/// let assert Ok(result) = metrics.manhatten_distance([0.0, 0.0], [1.0, 2.0]) -/// result -/// |> predicates.is_close(3.0, 0.0, tol) -/// |> should.be_true() -/// } -///
-/// -/// -/// -pub fn manhatten_distance( - xarr: List(Float), - yarr: List(Float), -) -> Result(Float, String) { - minkowski_distance(xarr, yarr, 1.0) -} - -/// -/// -/// Calculcate the Minkowski distance between two lists (representing vectors): -/// -/// \\[ -/// \left( \sum_{i=1}^n \left|x_i - y_i \right|^{p} \right)^{\frac{1}{p}} -/// \\] -/// -/// In the formula, $$p >= 1$$ is the order, $$n$$ is the length of the two lists and $$x_i, y_i$$ are the values in the respective input lists indexed by $$i, j$$. -/// -/// The Minkowski distance is a generalization of both the Euclidean distance ($$p=2$$) and the Manhattan distance ($$p = 1$$). -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// import gleam_community/maths/metrics -/// import gleam_community/maths/predicates -/// -/// pub fn example () { -/// let assert Ok(tol) = elementary.power(-10.0, -6.0) -/// -/// // Empty lists returns 0.0 -/// metrics.minkowski_distance([], [], 1.0) -/// |> should.equal(Ok(0.0)) -/// -/// // Differing lengths returns error -/// metrics.minkowski_distance([], [1.0], 1.0) -/// |> should.be_error() -/// -/// // Test order < 1 -/// metrics.minkowski_distance([0.0, 0.0], [0.0, 0.0], -1.0) -/// |> should.be_error() -/// -/// let assert Ok(result) = metrics.minkowski_distance([0.0, 0.0], [1.0, 2.0], 1.0) -/// result -/// |> predicates.is_close(3.0, 0.0, tol) -/// |> should.be_true() -/// } -///
-/// -/// -/// -pub fn minkowski_distance( - xarr: List(Float), - yarr: List(Float), - p: Float, -) -> Result(Float, String) { - let xlen: Int = list.length(xarr) - let ylen: Int = list.length(yarr) - case xlen == ylen { - False -> - "Invalid input argument: length(xarr) != length(yarr). Valid input is when length(xarr) == length(yarr)." - |> Error - True -> - case p <. 1.0 { - True -> - "Invalid input argument: p < 1. Valid input is p >= 1." - |> Error - False -> - list.zip(xarr, yarr) - |> list.map(fn(tuple: #(Float, Float)) -> Float { - pair.first(tuple) -. pair.second(tuple) - }) - |> norm(p) - |> Ok - } - } -} - -/// -/// -/// Calculcate the Euclidean distance between two lists (representing vectors): -/// -/// \\[ -/// \left( \sum_{i=1}^n \left|x_i - y_i \right|^{2} \right)^{\frac{1}{2}} -/// \\] -/// -/// In the formula, $$n$$ is the length of the two lists and $$x_i, y_i$$ are the values in the respective input lists indexed by $$i, j$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// import gleam_community/maths/metrics -/// import gleam_community/maths/predicates -/// -/// pub fn example () { -/// let assert Ok(tol) = elementary.power(-10.0, -6.0) -/// -/// // Empty lists returns 0.0 -/// metrics.euclidean_distance([], []) -/// |> should.equal(Ok(0.0)) -/// -/// // Differing lengths returns error -/// metrics.euclidean_distance([], [1.0]) -/// |> should.be_error() -/// -/// let assert Ok(result) = metrics.euclidean_distance([0.0, 0.0], [1.0, 2.0]) -/// result -/// |> predicates.is_close(2.23606797749979, 0.0, tol) -/// |> should.be_true() -/// } -///
-/// -/// -/// -pub fn euclidean_distance( - xarr: List(Float), - yarr: List(Float), -) -> Result(Float, String) { - minkowski_distance(xarr, yarr, 2.0) -} - -/// -/// -/// Calculcate the arithmetic mean of the elements in a list: -/// -/// \\[ -/// \bar{x} = \frac{1}{n}\sum_{i=1}^n x_i -/// \\] -/// -/// In the formula, $$n$$ is the sample size (the length of the list) and -/// $$x_i$$ is the sample point in the input list indexed by $$i$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/metrics -/// -/// pub fn example () { -/// // An empty list returns an error -/// [] -/// |> metrics.mean() -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [1., 2., 3.] -/// |> metrics.mean() -/// |> should.equal(Ok(2.)) -/// } -///
-/// -/// -/// -pub fn mean(arr: List(Float)) -> Result(Float, String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> - arr - |> arithmetics.float_sum() - |> fn(a: Float) -> Float { - a /. conversion.int_to_float(list.length(arr)) - } - |> Ok - } -} - -/// -/// -/// Calculcate the median of the elements in a list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/metrics -/// -/// pub fn example () { -/// // An empty list returns an error -/// [] -/// |> metrics.median() -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [1., 2., 3.] -/// |> metrics.median() -/// |> should.equal(Ok(2.)) -/// -/// [1., 2., 3., 4.] -/// |> metrics.median() -/// |> should.equal(Ok(2.5)) -/// } -///
-/// -/// -/// -pub fn median(arr: List(Float)) -> Result(Float, String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> { - let count: Int = list.length(arr) - let mid: Int = list.length(arr) / 2 - let sorted: List(Float) = list.sort(arr, float.compare) - case predicates.is_odd(count) { - // If there is an odd number of elements in the list, then the median - // is just the middle value - True -> { - let assert Ok(val0) = list.at(sorted, mid) - val0 - |> Ok - } - // If there is an even number of elements in the list, then the median - // is the mean of the two middle values - False -> { - let assert Ok(val0) = list.at(sorted, mid - 1) - let assert Ok(val1) = list.at(sorted, mid) - [val0, val1] - |> mean() - } - } - } - } -} - -/// -/// -/// Calculcate the sample variance of the elements in a list: -/// \\[ -/// s^{2} = \frac{1}{n - d} \sum_{i=1}^{n}(x_i - \bar{x}) -/// \\] -/// -/// In the formula, $$n$$ is the sample size (the length of the list) and -/// $$x_i$$ is the sample point in the input list indexed by $$i$$. -/// Furthermore, $$\bar{x}$$ is the sample mean and $$d$$ is the "Delta -/// Degrees of Freedom", and is by default set to $$d = 0$$, which gives a biased -/// estimate of the sample variance. Setting $$d = 1$$ gives an unbiased estimate. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/metrics -/// -/// pub fn example () { -/// // Degrees of freedom -/// let ddof: Int = 1 -/// -/// // An empty list returns an error -/// [] -/// |> metrics.variance(ddof) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [1., 2., 3.] -/// |> metrics.variance(ddof) -/// |> should.equal(Ok(1.)) -/// } -///
-/// -/// -/// -pub fn variance(arr: List(Float), ddof: Int) -> Result(Float, String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> - case ddof < 0 { - True -> - "Invalid input argument: ddof < 0. Valid input is ddof >= 0." - |> Error - False -> { - let assert Ok(mean) = mean(arr) - arr - |> list.map(fn(a: Float) -> Float { - let assert Ok(result) = elementary.power(a -. mean, 2.0) - result - }) - |> arithmetics.float_sum() - |> fn(a: Float) -> Float { - a /. { - conversion.int_to_float(list.length(arr)) -. conversion.int_to_float( - ddof, - ) - } - } - |> Ok - } - } - } -} - -/// -/// -/// Calculcate the sample standard deviation of the elements in a list: -/// \\[ -/// s = \left(\frac{1}{n - d} \sum_{i=1}^{n}(x_i - \bar{x})\right)^{\frac{1}{2}} -/// \\] -/// -/// In the formula, $$n$$ is the sample size (the length of the list) and -/// $$x_i$$ is the sample point in the input list indexed by $$i$$. -/// Furthermore, $$\bar{x}$$ is the sample mean and $$d$$ is the "Delta -/// Degrees of Freedom", and is by default set to $$d = 0$$, which gives a biased -/// estimate of the sample standard deviation. Setting $$d = 1$$ gives an unbiased estimate. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/metrics -/// -/// pub fn example () { -/// // Degrees of freedom -/// let ddof: Int = 1 -/// -/// // An empty list returns an error -/// [] -/// |> metrics.standard_deviationddof) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [1., 2., 3.] -/// |> metrics.standard_deviation(ddof) -/// |> should.equal(Ok(1.)) -/// } -///
-/// -/// -/// -pub fn standard_deviation(arr: List(Float), ddof: Int) -> Result(Float, String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> - case ddof < 0 { - True -> - "Invalid input argument: ddof < 0. Valid input is ddof >= 0." - |> Error - False -> { - let assert Ok(variance) = variance(arr, ddof) - // The computed variance will always be positive - // So an error should never be returned - let assert Ok(stdev) = elementary.square_root(variance) - stdev - |> Ok - } - } - } -} diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/piecewise.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/piecewise.gleam deleted file mode 100644 index 3b40a18..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/piecewise.gleam +++ /dev/null @@ -1,1228 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Piecewise: A module containing functions that have different definitions depending on conditions or intervals of their domain. -//// -//// * **Rounding functions** -//// * [`ceiling`](#ceiling) -//// * [`floor`](#floor) -//// * [`truncate`](#truncate) -//// * [`round`](#round) -//// * **Sign and absolute value functions** -//// * [`float_absolute_value`](#float_absolute_value) -//// * [`int_absolute_value`](#int_absolute_value) -//// * [`float_absolute_difference`](#float_absolute_difference) -//// * [`int_absolute_difference`](#int_absolute_difference) -//// * [`float_sign`](#float_sign) -//// * [`int_sign`](#int_sign) -//// * [`float_copy_sign`](#float_copy_sign) -//// * [`int_copy_sign`](#float_copy_sign) -//// * [`float_flip_sign`](#float_flip_sign) -//// * [`int_flip_sign`](#int_flip_sign) -//// * **Misc. mathematical functions** -//// * [`minimum`](#minimum) -//// * [`maximum`](#maximum) -//// * [`minmax`](#minmax) -//// * [`list_minimum`](#list_minimum) -//// * [`list_maximum`](#list_maximum) -//// * [`extrema`](#extrema) -//// * [`arg_minimum`](#arg_minimum) -//// * [`arg_maximum`](#arg_maximum) -//// - -import gleam/option -import gleam/list -import gleam/order -import gleam/pair -import gleam/int -import gleam_community/maths/conversion -import gleam_community/maths/elementary - -/// -/// -/// The ceiling function rounds a given input value $$x \in \mathbb{R}$$ to the nearest integer value (at the specified digit) that is larger than or equal to the input $$x$$. -/// -/// Note: The ceiling function is used as an alias for the rounding function [`round`](#round) with rounding mode `RoundUp`. -/// -///
-/// Details -/// -/// For example, $$12.0654$$ is rounded to: -/// - $$13.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.1$$ for 1 digit after the decimal point (`digits = 1`) -/// - $$12.07$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.066$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// For example, $$12.0654$$ is rounded to: -/// - $$20.0$$ for 1 digit places before the decimal point (`digit = -1`) -/// - $$100.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$1000.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -///
-/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/option -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// piecewise.ceiling(12.0654, option.Some(1)) -/// |> should.equal(Ok(12.1)) -/// -/// piecewise.ceiling(12.0654, option.Some(2)) -/// |> should.equal(Ok(12.07)) -/// -/// piecewise.ceiling(12.0654, option.Some(3)) -/// |> should.equal(Ok(12.066)) -/// } -///
-/// -/// -/// -pub fn ceiling(x: Float, digits: option.Option(Int)) -> Result(Float, String) { - round(x, digits, option.Some(RoundUp)) -} - -/// -/// -/// The floor function rounds input $$x \in \mathbb{R}$$ to the nearest integer value (at the specified digit) that is less than or equal to the input $$x$$. -/// -/// Note: The floor function is used as an alias for the rounding function [`round`](#round) with rounding mode `RoundDown`. -/// -///
-/// Details -/// -/// For example, $$12.0654$$ is rounded to: -/// - $$12.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.0$$ for 1 digits after the decimal point (`digits = 1`) -/// - $$12.06$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.065$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// - $$10.0$$ for 1 digit before the decimal point (`digits = -1`) -/// - $$0.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$0.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -///
-/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/option -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// piecewise.floor(12.0654, option.Some(1)) -/// |> should.equal(Ok(12.0)) -/// -/// piecewise.floor(12.0654, option.Some(2)) -/// |> should.equal(Ok(12.06)) -/// -/// piecewise.floor(12.0654, option.Some(3)) -/// |> should.equal(Ok(12.065)) -/// } -///
-/// -/// -/// -pub fn floor(x: Float, digits: option.Option(Int)) -> Result(Float, String) { - round(x, digits, option.Some(RoundDown)) -} - -/// -/// -/// The truncate function rounds a given input $$x \in \mathbb{R}$$ to the nearest integer value (at the specified digit) that is less than or equal to the absolute value of the input $$x$$. -/// -/// Note: The truncate function is used as an alias for the rounding function [`round`](#round) with rounding mode `RoundToZero`. -/// -///
-/// Details -/// -/// For example, $$12.0654$$ is rounded to: -/// - $$12.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.0$$ for 1 digits after the decimal point (`digits = 1`) -/// - $$12.06$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.065$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// - $$10.0$$ for 1 digit before the decimal point (`digits = -1`) -/// - $$0.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$0.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -///
-/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/option -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// piecewise.truncate(12.0654, option.Some(1)) -/// |> should.equal(Ok(12.0)) -/// -/// piecewise.truncate(12.0654, option.Some(2)) -/// |> should.equal(Ok(12.0)) -/// -/// piecewise.truncate(12.0654, option.Some(3)) -/// |> should.equal(Ok(12.0)) -/// } -///
-/// -/// -/// -pub fn truncate(x: Float, digits: option.Option(Int)) -> Result(Float, String) { - round(x, digits, option.Some(RoundToZero)) -} - -/// -/// -/// The function rounds a float to a specific number of digits (after the decimal place or before if negative) using a specified rounding mode. -/// -/// Valid rounding modes include: -/// - `RoundNearest` (default): The input $$x$$ is rounded to the nearest integer value (at the specified digit) with ties (fractional values of 0.5) being rounded to the nearest even integer. -/// - `RoundTiesAway`: The input $$x$$ is rounded to the nearest integer value (at the specified digit) with ties (fractional values of 0.5) being rounded away from zero (C/C++ rounding behavior). -/// - `RoundTiesUp`: The input $$x$$ is rounded to the nearest integer value (at the specified digit) with ties (fractional values of 0.5) being rounded towards $$+\infty$$ (Java/JavaScript rounding behaviour). -/// - `RoundToZero`: The input $$x$$ is rounded to the nearest integer value (at the specified digit) that is less than or equal to the absolute value of the input $$x$$. An alias for this rounding mode is [`truncate`](#truncate). -/// - `RoundDown`: The input $$x$$ is rounded to the nearest integer value (at the specified digit) that is less than or equal to the input $$x$$. An alias for this rounding mode is [`floor`](#floor). -/// - `RoundUp`: The input $$x$$ is rounded to the nearest integer value (at the specified digit) that is larger than or equal to the input $$x$$. An alias for this rounding mode is [`ceiling`](#ceiling). -/// -///
-/// Details -/// -/// The `RoundNearest` rounding mode, rounds $$12.0654$$ to: -/// - $$12.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.1$$ for 1 digit after the decimal point (`digits = 1`) -/// - $$12.07$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.065$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// - $$10.0$$ for 1 digit before the decimal point (`digits = -1`) -/// - $$0.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$0.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -/// The `RoundTiesAway` rounding mode, rounds $$12.0654$$ to: -/// - $$12.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.1$$ for 1 digit after the decimal point (`digits = 1`) -/// - $$12.07$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.065$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// - $$10.0$$ for 1 digit before the decimal point (`digits = -1`) -/// - $$0.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$0.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -/// The `RoundTiesUp` rounding mode, rounds $$12.0654$$ to: -/// - $$12.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.1$$ for 1 digits after the decimal point (`digits = 1`) -/// - $$12.07$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.065$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// - $$10.0$$ for 1 digit before the decimal point (`digits = -1`) -/// - $$0.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$0.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -/// The `RoundToZero` rounding mode, rounds $$12.0654$$ to: -/// - $$12.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.0$$ for 1 digit after the decimal point (`digits = 1`) -/// - $$12.06$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.065$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// - $$10.0$$ for 1 digit before the decimal point (`digits = -1`) -/// - $$0.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$0.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -/// The `RoundDown` rounding mode, rounds $$12.0654$$ to: -/// - $$12.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.0$$ for 1 digits after the decimal point (`digits = 1`) -/// - $$12.06$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.065$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// - $$10.0$$ for 1 digit before the decimal point (`digits = -1`) -/// - $$0.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$0.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -/// The `RoundUp` rounding mode, rounds $$12.0654$$ to: -/// - $$13.0$$ for 0 digits after the decimal point (`digits = 0`) -/// - $$12.1$$ for 1 digit after the decimal point (`digits = 1`) -/// - $$12.07$$ for 2 digits after the decimal point (`digits = 2`) -/// - $$12.066$$ for 3 digits after the decimal point (`digits = 3`) -/// -/// It is also possible to specify a negative number of digits. In that case, the negative number refers to the digits before the decimal point. -/// - $$20.0$$ for 1 digit places before the decimal point (`digit = -1`) -/// - $$100.0$$ for 2 digits before the decimal point (`digits = -2`) -/// - $$1000.0$$ for 3 digits before the decimal point (`digits = -3`) -/// -///
-/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/option -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// // The default number of digits is 0 if None is provided -/// piecewise.round(12.0654, option.None, option.Some(piecewise.RoundNearest)) -/// |> should.equal(Ok(12.0)) -/// -/// // The default rounding mode is "RoundNearest" if None is provided -/// piecewise.round(12.0654, option.None, option.None) -/// |> should.equal(Ok(12.0)) -/// -/// // Try different rounding modes -/// piecewise.round(12.0654, option.Some(2), option.Some(piecewise.RoundNearest)) -/// |> should.equal(Ok(12.07)) -/// -/// piecewise.round(12.0654, option.Some(2), option.Some(piecewise.RoundTiesAway)) -/// |> should.equal(Ok(12.07)) -/// -/// piecewise.round(12.0654, option.Some(2), option.Some(piecewise.RoundTiesUp)) -/// |> should.equal(Ok(12.07)) -/// -/// piecewise.round(12.0654, option.Some(2), option.Some(piecewise.RoundToZero)) -/// |> should.equal(Ok(12.06)) -/// -/// piecewise.round(12.0654, option.Some(2), option.Some(piecewise.RoundDown)) -/// |> should.equal(Ok(12.06)) -/// -/// piecewise.round(12.0654, option.Some(2), option.Some(piecewise.RoundUp)) -/// |> should.equal(Ok(12.07)) -/// } -///
-/// -/// -/// -pub fn round( - x: Float, - digits: option.Option(Int), - mode: option.Option(RoundingMode), -) -> Result(Float, String) { - case digits { - option.Some(a) -> { - let assert Ok(p) = elementary.power(10.0, conversion.int_to_float(a)) - // Round the given input x using at the specified digit - do_round(p, x, mode) - } - // Round the given input x using at the default digit - option.None -> do_round(1.0, x, mode) - } -} - -pub type RoundingMode { - RoundNearest - RoundTiesAway - RoundTiesUp - RoundToZero - RoundDown - RoundUp -} - -fn do_round( - p: Float, - x: Float, - mode: option.Option(RoundingMode), -) -> Result(Float, String) { - case mode { - // Determine the rounding mode - option.Some(RoundNearest) -> - round_to_nearest(p, x) - |> Ok - option.Some(RoundTiesAway) -> - round_ties_away(p, x) - |> Ok - option.Some(RoundTiesUp) -> - round_ties_up(p, x) - |> Ok - option.Some(RoundToZero) -> - round_to_zero(p, x) - |> Ok - option.Some(RoundDown) -> - round_down(p, x) - |> Ok - option.Some(RoundUp) -> - round_up(p, x) - |> Ok - // Otherwise, use the default rounding mode - option.None -> - round_to_nearest(p, x) - |> Ok - } -} - -fn round_to_nearest(p: Float, x: Float) -> Float { - let xabs: Float = float_absolute_value(x) *. p - let xabs_truncated: Float = truncate_float(xabs) - let remainder: Float = xabs -. xabs_truncated - case remainder { - _ if remainder >. 0.5 -> float_sign(x) *. truncate_float(xabs +. 1.0) /. p - _ if remainder == 0.5 -> { - let assert Ok(is_even) = int.modulo(conversion.float_to_int(xabs), 2) - case is_even == 0 { - True -> float_sign(x) *. xabs_truncated /. p - False -> float_sign(x) *. truncate_float(xabs +. 1.0) /. p - } - } - _ -> float_sign(x) *. xabs_truncated /. p - } -} - -fn round_ties_away(p: Float, x: Float) -> Float { - let xabs: Float = float_absolute_value(x) *. p - let remainder: Float = xabs -. truncate_float(xabs) - case remainder { - _ if remainder >=. 0.5 -> float_sign(x) *. truncate_float(xabs +. 1.0) /. p - _ -> float_sign(x) *. truncate_float(xabs) /. p - } -} - -fn round_ties_up(p: Float, x: Float) -> Float { - let xabs: Float = float_absolute_value(x) *. p - let xabs_truncated: Float = truncate_float(xabs) - let remainder: Float = xabs -. xabs_truncated - case remainder { - _ if remainder >=. 0.5 && x >=. 0.0 -> - float_sign(x) *. truncate_float(xabs +. 1.0) /. p - _ -> float_sign(x) *. xabs_truncated /. p - } -} - -// Rounding mode: ToZero / Truncate -fn round_to_zero(p: Float, x: Float) -> Float { - truncate_float(x *. p) /. p -} - -fn truncate_float(x: Float) -> Float { - do_truncate_float(x) -} - -@external(erlang, "erlang", "trunc") -@external(javascript, "../../maths.mjs", "truncate") -fn do_truncate_float(a: Float) -> Float - -// Rounding mode: Down / Floor -fn round_down(p: Float, x: Float) -> Float { - do_floor(x *. p) /. p -} - -@external(erlang, "math", "floor") -@external(javascript, "../../maths.mjs", "floor") -fn do_floor(a: Float) -> Float - -// Rounding mode: Up / Ceiling -fn round_up(p: Float, x: Float) -> Float { - do_ceiling(x *. p) /. p -} - -@external(erlang, "math", "ceil") -@external(javascript, "../../maths.mjs", "ceiling") -fn do_ceiling(a: Float) -> Float - -/// -/// -/// The absolute value: -/// -/// \\[ -/// \forall x, y \in \mathbb{R}, \\; |x| \in \mathbb{R}_{+}. -/// \\] -/// -/// The function takes an input $$x$$ and returns a positive float value. -/// -/// -/// -/// -/// -pub fn float_absolute_value(x: Float) -> Float { - case x >. 0.0 { - True -> x - False -> -1.0 *. x - } -} - -/// -/// -/// The absolute value: -/// -/// \\[ -/// \forall x, y \in \mathbb{Z}, \\; |x| \in \mathbb{Z}_{+}. -/// \\] -/// -/// The function takes an input $$x$$ and returns a positive integer value. -/// -/// -/// -/// -/// -pub fn int_absolute_value(x: Int) -> Int { - case x > 0 { - True -> x - False -> -1 * x - } -} - -/// -/// -/// The absolute difference: -/// -/// \\[ -/// \forall x, y \in \mathbb{R}, \\; |x - y| \in \mathbb{R}_{+}. -/// \\] -/// -/// The function takes two inputs $$x$$ and $$y$$ and returns a positive float -/// value which is the the absolute difference of the inputs. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// piecewise.float_absolute_difference(-10.0, 10.0) -/// |> should.equal(20.0) -/// -/// piecewise.float_absolute_difference(0.0, -2.0) -/// |> should.equal(2.0) -/// } -///
-/// -/// -/// -pub fn float_absolute_difference(a: Float, b: Float) -> Float { - a -. b - |> float_absolute_value() -} - -/// -/// -/// The absolute difference: -/// -/// \\[ -/// \forall x, y \in \mathbb{Z}, \\; |x - y| \in \mathbb{Z}_{+}. -/// \\] -/// -/// The function takes two inputs $$x$$ and $$y$$ and returns a positive integer value which is the the absolute difference of the inputs. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// piecewise.absolute_difference(-10, 10) -/// |> should.equal(20) -/// -/// piecewise.absolute_difference(0, -2) -/// |> should.equal(2) -/// } -///
-/// -/// -/// -pub fn int_absolute_difference(a: Int, b: Int) -> Int { - a - b - |> int_absolute_value() -} - -/// -/// -/// The function takes an input $$x \in \mathbb{R}$$ and returns the sign of -/// the input, indicating whether it is positive (+1.0), negative (-1.0), or -/// zero (0.0). -/// -/// -/// -pub fn float_sign(x: Float) -> Float { - do_float_sign(x) -} - -@target(erlang) -fn do_float_sign(x: Float) -> Float { - case x <. 0.0 { - True -> -1.0 - False -> - case x == 0.0 { - True -> 0.0 - False -> 1.0 - } - } -} - -@target(javascript) -@external(javascript, "../../maths.mjs", "sign") -fn do_float_sign(a: Float) -> Float - -/// -/// -/// The function takes an input $$x \in \mathbb{Z}$$ and returns the sign of -/// the input, indicating whether it is positive (+1), negative (-1), or zero -/// (0). -/// -/// -/// -pub fn int_sign(x: Int) -> Int { - do_int_sign(x) -} - -@target(erlang) -fn do_int_sign(x: Int) -> Int { - case x < 0 { - True -> -1 - False -> - case x == 0 { - True -> 0 - False -> 1 - } - } -} - -@target(javascript) -@external(javascript, "../../maths.mjs", "sign") -fn do_int_sign(a: Int) -> Int - -/// -/// -/// The function takes two arguments $$x, y \in \mathbb{R}$$ and returns $$x$$ such that it has the same sign as $$y$$. -/// -/// -/// -pub fn float_copy_sign(x: Float, y: Float) -> Float { - case float_sign(x) == float_sign(y) { - // x and y have the same sign, just return x - True -> x - // x and y have different signs: - // - x is positive and y is negative, then flip sign of x - // - x is negative and y is positive, then flip sign of x - False -> float_flip_sign(x) - } -} - -/// -/// -/// The function takes two arguments $$x, y \in \mathbb{Z}$$ and returns $$x$$ such that it has the same sign as $$y$$. -/// -/// -/// -pub fn int_copy_sign(x: Int, y: Int) -> Int { - case int_sign(x) == int_sign(y) { - // x and y have the same sign, just return x - True -> x - // x and y have different signs: - // - x is positive and y is negative, then flip sign of x - // - x is negative and y is positive, then flip sign of x - False -> int_flip_sign(x) - } -} - -/// -/// -/// The function flips the sign of a given input value $$x \in \mathbb{R}$$. -/// -/// -/// -pub fn float_flip_sign(x: Float) -> Float { - -1.0 *. x -} - -/// -/// -/// The function flips the sign of a given input value $$x \in \mathbb{Z}$$. -/// -/// -/// -pub fn int_flip_sign(x: Int) -> Int { - -1 * x -} - -/// -/// -/// The minimum function takes two arguments $$x, y$$ along with a function -/// for comparing $$x, y$$. The function returns the smallest of the two given -/// values. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/float -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// piecewise.minimum(2.0, 1.5, float.compare) -/// |> should.equal(1.5) -/// -/// piecewise.minimum(1.5, 2.0, float.compare) -/// |> should.equal(1.5) -/// } -///
-/// -/// -/// -pub fn minimum(x: a, y: a, compare: fn(a, a) -> order.Order) -> a { - case compare(x, y) { - order.Lt -> x - order.Eq -> x - order.Gt -> y - } -} - -/// -/// -/// -/// -/// The maximum function takes two arguments $$x, y$$ along with a function -/// for comparing $$x, y$$. The function returns the largest of the two given -/// values. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/float -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// piecewise.maximum(2.0, 1.5, float.compare) -/// |> should.equal(1.5) -/// -/// piecewise.maximum(1.5, 2.0, float.compare) -/// |> should.equal(1.5) -/// } -///
-/// -/// -/// -pub fn maximum(x: a, y: a, compare: fn(a, a) -> order.Order) -> a { - case compare(x, y) { - order.Lt -> y - order.Eq -> y - order.Gt -> x - } -} - -/// -/// -/// The minmax function takes two arguments $$x, y$$ along with a function -/// for comparing $$x, y$$. The function returns a tuple with the smallest -/// value first and largest second. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam/float -/// import gleam_community/maths/piecewise -/// -/// pub fn example() { -/// piecewise.minmax(2.0, 1.5, float.compare) -/// |> should.equal(#(1.5, 2.0)) -/// -/// piecewise.minmax(1.5, 2.0, float.compare) -/// |> should.equal(#(1.5, 2.0)) -/// } -///
-/// -/// -/// -pub fn minmax(x: a, y: a, compare: fn(a, a) -> order.Order) -> #(a, a) { - #(minimum(x, y, compare), maximum(x, y, compare)) -} - -/// -/// -/// Returns the minimum value of a given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/int -/// import gleam_community/maths/piecewise -/// -/// pub fn example () { -/// // An empty lists returns an error -/// [] -/// |> piecewise.list_minimum(int.compare) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [4, 4, 3, 2, 1] -/// |> piecewise.list_minimum(int.compare) -/// |> should.equal(Ok(1)) -/// } -///
-/// -/// -pub fn list_minimum( - arr: List(a), - compare: fn(a, a) -> order.Order, -) -> Result(a, String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> { - let assert Ok(val0) = list.at(arr, 0) - arr - |> list.fold( - val0, - fn(acc: a, element: a) { - case compare(element, acc) { - order.Lt -> element - _ -> acc - } - }, - ) - |> Ok - } - } -} - -/// -/// -/// Returns the maximum value of a given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/float -/// import gleam_community/maths/piecewise -/// -/// pub fn example () { -/// // An empty lists returns an error -/// [] -/// |> piecewise.list_maximum(float.compare) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [4.0, 4.0, 3.0, 2.0, 1.0] -/// |> piecewise.list_maximum(float.compare) -/// |> should.equal(Ok(4.0)) -/// } -///
-/// -/// -/// -pub fn list_maximum( - arr: List(a), - compare: fn(a, a) -> order.Order, -) -> Result(a, String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> { - let assert Ok(val0) = list.at(arr, 0) - arr - |> list.fold( - val0, - fn(acc: a, element: a) { - case compare(acc, element) { - order.Lt -> element - _ -> acc - } - }, - ) - |> Ok - } - } -} - -/// -/// -/// -/// -/// Returns the indices of the minimum values in a given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/float -/// import gleam_community/maths/piecewise -/// -/// pub fn example () { -/// // An empty lists returns an error -/// [] -/// |> piecewise.arg_minimum(float.compare) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [4.0, 4.0, 3.0, 2.0, 1.0] -/// |> piecewise.arg_minimum(float.compare) -/// |> should.equal(Ok([4])) -/// } -///
-/// -/// -/// -pub fn arg_minimum( - arr: List(a), - compare: fn(a, a) -> order.Order, -) -> Result(List(Int), String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> { - let assert Ok(min) = - arr - |> list_minimum(compare) - arr - |> list.index_map(fn(index: Int, element: a) -> Int { - case compare(element, min) { - order.Eq -> index - _ -> -1 - } - }) - |> list.filter(fn(index: Int) -> Bool { - case index { - -1 -> False - _ -> True - } - }) - |> Ok - } - } -} - -/// -/// -/// -/// -/// Returns the indices of the maximum values in a given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/float -/// import gleam_community/maths/piecewise -/// -/// pub fn example () { -/// // An empty lists returns an error -/// [] -/// |> piecewise.arg_maximum(float.compare) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [4.0, 4.0, 3.0, 2.0, 1.0] -/// |> piecewise.arg_maximum(float.compare) -/// |> should.equal(Ok([0, 1])) -/// } -///
-/// -/// -/// -pub fn arg_maximum( - arr: List(a), - compare: fn(a, a) -> order.Order, -) -> Result(List(Int), String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> { - let assert Ok(max) = - arr - |> list_maximum(compare) - arr - |> list.index_map(fn(index: Int, element: a) -> Int { - case compare(element, max) { - order.Eq -> index - _ -> -1 - } - }) - |> list.filter(fn(index: Int) -> Bool { - case index { - -1 -> False - _ -> True - } - }) - |> Ok - } - } -} - -/// -/// -/// -/// -/// Returns a tuple consisting of the minimum and maximum values of a given list. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/float -/// import gleam_community/maths/piecewise -/// -/// pub fn example () { -/// // An empty lists returns an error -/// [] -/// |> piecewise.extrema(float.compare) -/// |> should.be_error() -/// -/// // Valid input returns a result -/// [4.0, 4.0, 3.0, 2.0, 1.0] -/// |> piecewise.extrema(float.compare) -/// |> should.equal(Ok(#(1.0, 4.0))) -/// } -///
-/// -/// -/// -pub fn extrema( - arr: List(a), - compare: fn(a, a) -> order.Order, -) -> Result(#(a, a), String) { - case arr { - [] -> - "Invalid input argument: The list is empty." - |> Error - _ -> { - let assert Ok(val_max) = list.at(arr, 0) - let assert Ok(val_min) = list.at(arr, 0) - arr - |> list.fold( - #(val_min, val_max), - fn(acc: #(a, a), element: a) { - let first: a = pair.first(acc) - let second: a = pair.second(acc) - case compare(element, first), compare(second, element) { - order.Lt, order.Lt -> #(element, element) - order.Lt, _ -> #(element, second) - _, order.Lt -> #(first, element) - _, _ -> #(first, second) - } - }, - ) - |> Ok - } - } -} diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/predicates.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/predicates.gleam deleted file mode 100644 index f8d357c..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/predicates.gleam +++ /dev/null @@ -1,363 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Predicates: A module containing functions for testing various mathematical properties of numbers. -//// -//// * **Tests** -//// * [`is_close`](#is_close) -//// * [`list_all_close`](#all_close) -//// * [`is_fractional`](#is_fractional) -//// * [`is_power`](#is_power) -//// * [`is_perfect`](#is_perfect) -//// * [`is_even`](#is_even) -//// * [`is_odd`](#is_odd) - -import gleam/pair -import gleam/int -import gleam/list -import gleam/option -import gleam_community/maths/elementary -import gleam_community/maths/piecewise -import gleam_community/maths/arithmetics - -/// -/// -/// Determine if a given value $$a$$ is close to or equivalent to a reference value -/// $$b$$ based on supplied relative $$r_{tol}$$ and absolute $$a_{tol}$$ tolerance values. -/// The equivalance of the two given values are then determined based on the equation: -/// -/// \\[ -/// \|a - b\| \leq (a_{tol} + r_{tol} \cdot \|b\|) -/// \\] -/// -/// `True` is returned if statement holds, otherwise `False` is returned. -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/tests -/// -/// pub fn example () { -/// let val: Float = 99. -/// let ref_val: Float = 100. -/// // We set 'atol' and 'rtol' such that the values are equivalent -/// // if 'val' is within 1 percent of 'ref_val' +/- 0.1 -/// let rtol: Float = 0.01 -/// let atol: Float = 0.10 -/// floatx.is_close(val, ref_val, rtol, atol) -/// |> should.be_true() -/// } -///
-/// -/// -/// -pub fn is_close(a: Float, b: Float, rtol: Float, atol: Float) -> Bool { - let x: Float = float_absolute_difference(a, b) - let y: Float = atol +. rtol *. float_absolute_value(b) - case x <=. y { - True -> True - False -> False - } -} - -fn float_absolute_value(x: Float) -> Float { - case x >. 0.0 { - True -> x - False -> -1.0 *. x - } -} - -fn float_absolute_difference(a: Float, b: Float) -> Float { - a -. b - |> float_absolute_value() -} - -/// -/// -/// Determine if a list of values are close to or equivalent to a another list of reference values. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam/list -/// import gleam_community/maths/tests -/// -/// pub fn example () { -/// let val: Float = 99. -/// let ref_val: Float = 100. -/// let xarr: List(Float) = list.repeat(val, 42) -/// let yarr: List(Float) = list.repeat(ref_val, 42) -/// // We set 'atol' and 'rtol' such that the values are equivalent -/// // if 'val' is within 1 percent of 'ref_val' +/- 0.1 -/// let rtol: Float = 0.01 -/// let atol: Float = 0.10 -/// tests.all_close(xarr, yarr, rtol, atol) -/// |> fn(zarr: Result(List(Bool), String)) -> Result(Bool, Nil) { -/// case zarr { -/// Ok(arr) -> -/// arr -/// |> list.all(fn(a: Bool) -> Bool { a }) -/// |> Ok -/// _ -> Nil |> Error -/// } -/// } -/// |> should.equal(Ok(True)) -/// } -///
-/// -/// -/// -pub fn all_close( - xarr: List(Float), - yarr: List(Float), - rtol: Float, - atol: Float, -) -> Result(List(Bool), String) { - let xlen: Int = list.length(xarr) - let ylen: Int = list.length(yarr) - case xlen == ylen { - False -> - "Invalid input argument: length(xarr) != length(yarr). Valid input is when length(xarr) == length(yarr)." - |> Error - True -> - list.zip(xarr, yarr) - |> list.map(fn(z: #(Float, Float)) -> Bool { - is_close(pair.first(z), pair.second(z), rtol, atol) - }) - |> Ok - } -} - -/// -/// -/// Determine if a given value is fractional. -/// -/// `True` is returned if the given value is fractional, otherwise `False` is returned. -/// -///
-/// Example -/// -/// import gleeunit/should -/// import gleam_community/maths/tests -/// -/// pub fn example () { -/// tests.is_fractional(0.3333) -/// |> should.equal(True) -/// -/// tests.is_fractional(1.0) -/// |> should.equal(False) -/// } -///
-/// -/// -/// -pub fn is_fractional(x: Float) -> Bool { - do_ceiling(x) -. x >. 0.0 -} - -@external(erlang, "math", "ceil") -@external(javascript, "../../maths.mjs", "ceiling") -fn do_ceiling(a: Float) -> Float - -/// -/// -/// A function that tests whether a given integer value $$x \in \mathbb{Z}$$ is a power of another integer value $$y \in \mathbb{Z}$$. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/tests -/// -/// pub fn example() { -/// // Check if 4 is a power of 2 (it is) -/// tests.is_power(4, 2) -/// |> should.equal(True) -/// -/// // Check if 5 is a power of 2 (it is not) -/// tests.is_power(5, 2) -/// |> should.equal(False) -/// } -///
-/// -/// -/// -pub fn is_power(x: Int, y: Int) -> Bool { - let assert Ok(value) = - elementary.logarithm(int.to_float(x), option.Some(int.to_float(y))) - let assert Ok(truncated) = piecewise.truncate(value, option.Some(0)) - let rem = value -. truncated - rem == 0.0 -} - -/// -/// -/// A function that tests whether a given integer value $$n \in \mathbb{Z}$$ is a perfect number. A number is perfect if it is equal to the sum of its proper positive divisors. -/// -///
-/// Details -/// -/// For example: -/// - $$6$$ is a perfect number since the divisors of 6 are $$1 + 2 + 3 = 6$$. -/// - $$28$$ is a perfect number since the divisors of 28 are $$1 + 2 + 4 + 7 + 14 = 28$$ -/// -///
-/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/tests -/// -/// pub fn example() { -/// tests.is_perfect(6) -/// |> should.equal(True) -/// -/// tests.is_perfect(28) -/// |> should.equal(True) -/// } -///
-/// -/// -/// -pub fn is_perfect(n: Int) -> Bool { - do_sum(arithmetics.proper_divisors(n)) == n -} - -fn do_sum(arr: List(Int)) -> Int { - case arr { - [] -> 0 - _ -> - arr - |> list.fold(0, fn(acc: Int, a: Int) -> Int { a + acc }) - } -} - -/// -/// -/// A function that tests whether a given integer value $$x \in \mathbb{Z}$$ is even. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/tests -/// -/// pub fn example() { -/// tests.is_even(-3) -/// |> should.equal(False) -/// -/// tests.is_even(-4) -/// |> should.equal(True) -/// } -///
-/// -/// -/// -pub fn is_even(x: Int) -> Bool { - x % 2 == 0 -} - -/// -/// -/// A function that tests whether a given integer value $$x \in \mathbb{Z}$$ is odd. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/tests -/// -/// pub fn example() { -/// tests.is_odd(-3) -/// |> should.equal(True) -/// -/// tests.is_odd(-4) -/// |> should.equal(False) -/// } -///
-/// -/// -/// -pub fn is_odd(x: Int) -> Bool { - x % 2 != 0 -} diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/sequences.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/sequences.gleam deleted file mode 100644 index e7c0388..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/sequences.gleam +++ /dev/null @@ -1,302 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Sequences: A module containing functions for generating various types of sequences, ranges and intervals. -//// -//// * **Ranges and intervals** -//// * [`arange`](#arange) -//// * [`linear_space`](#linear_space) -//// * [`logarithmic_space`](#logarithmic_space) -//// * [`geometric_space`](#geometric_space) - -import gleam_community/maths/elementary -import gleam_community/maths/piecewise -import gleam_community/maths/conversion -import gleam/list - -/// -/// -/// The function returns a list with evenly spaced values within a given interval based on a start, stop value and a given increment (step-length) between consecutive values. -/// The list returned includes the given start value but excludes the stop value. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/sequences -/// -/// pub fn example () { -/// sequences.arange(1.0, 5.0, 1.0) -/// |> should.equal([1.0, 2.0, 3.0, 4.0]) -/// -/// // No points returned since -/// // start smaller than stop and positive step -/// sequences.arange(5.0, 1.0, 1.0) -/// |> should.equal([]) -/// -/// // Points returned since -/// // start smaller than stop but negative step -/// sequences.arange(5.0, 1.0, -1.0) -/// |> should.equal([5.0, 4.0, 3.0, 2.0]) -/// } -///
-/// -/// -/// -pub fn arange(start: Float, stop: Float, step: Float) -> List(Float) { - case start >=. stop && step >. 0.0 || start <=. stop && step <. 0.0 { - True -> [] - False -> { - let direction: Float = case start <=. stop { - True -> 1.0 - False -> -1.0 - } - let step_abs: Float = piecewise.float_absolute_value(step) - let num: Float = piecewise.float_absolute_value(start -. stop) /. step_abs - - list.range(0, conversion.float_to_int(num) - 1) - |> list.map(fn(i: Int) -> Float { - start +. conversion.int_to_float(i) *. step_abs *. direction - }) - } - } -} - -/// -/// -/// Generate a linearly spaced list of points over a specified interval. The endpoint of the interval can optionally be included/excluded. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// import gleam_community/maths/sequences -/// import gleam_community/maths/predicates -/// -/// pub fn example () { -/// let assert Ok(tol) = elementary.power(-10.0, -6.0) -/// let assert Ok(linspace) = sequences.linear_space(10.0, 50.0, 5, True) -/// let assert Ok(result) = -/// predicates.all_close(linspace, [10.0, 20.0, 30.0, 40.0, 50.0], 0.0, tol) -/// result -/// |> list.all(fn(x) { x == True }) -/// |> should.be_true() -/// -/// // A negative number of points (-5) does not work -/// sequences.linear_space(10.0, 50.0, -5, True) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn linear_space( - start: Float, - stop: Float, - num: Int, - endpoint: Bool, -) -> Result(List(Float), String) { - let direction: Float = case start <=. stop { - True -> 1.0 - False -> -1.0 - } - case num > 0 { - True -> - case endpoint { - True -> { - let increment: Float = - piecewise.float_absolute_value(start -. stop) /. conversion.int_to_float( - num - 1, - ) - list.range(0, num - 1) - |> list.map(fn(i: Int) -> Float { - start +. conversion.int_to_float(i) *. increment *. direction - }) - |> Ok - } - False -> { - let increment: Float = - piecewise.float_absolute_value(start -. stop) /. conversion.int_to_float( - num, - ) - list.range(0, num - 1) - |> list.map(fn(i: Int) -> Float { - start +. conversion.int_to_float(i) *. increment *. direction - }) - |> Ok - } - } - - False -> - "Invalid input: num < 0. Valid input is num > 0." - |> Error - } -} - -/// -/// -/// Generate a logarithmically spaced list of points over a specified interval. The endpoint of the interval can optionally be included/excluded. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// import gleam_community/maths/sequences -/// import gleam_community/maths/predicates -/// -/// pub fn example () { -/// let assert Ok(tol) = elementary.power(-10.0, -6.0) -/// let assert Ok(logspace) = sequences.logarithmic_space(1.0, 3.0, 3, True, 10.0) -/// let assert Ok(result) = -/// predicates.all_close(logspace, [10.0, 100.0, 1000.0], 0.0, tol) -/// result -/// |> list.all(fn(x) { x == True }) -/// |> should.be_true() -/// -/// // A negative number of points (-3) does not work -/// sequences.logarithmic_space(1.0, 3.0, -3, False, 10.0) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn logarithmic_space( - start: Float, - stop: Float, - num: Int, - endpoint: Bool, - base: Float, -) -> Result(List(Float), String) { - case num > 0 { - True -> { - let assert Ok(linspace) = linear_space(start, stop, num, endpoint) - linspace - |> list.map(fn(i: Float) -> Float { - let assert Ok(result) = elementary.power(base, i) - result - }) - |> Ok - } - False -> - "Invalid input: num < 0. Valid input is num > 0." - |> Error - } -} - -/// -/// -/// The function returns a list of numbers spaced evenly on a log scale (a geometric progression). Each point in the list is a constant multiple of the previous. -/// The function is similar to the [`logarithmic_space`](#logarithmic_space) function, but with endpoints specified directly. -/// -///
-/// Example: -/// -/// import gleeunit/should -/// import gleam_community/maths/elementary -/// import gleam_community/maths/sequences -/// import gleam_community/maths/predicates -/// -/// pub fn example () { -/// let assert Ok(tol) = elementary.power(-10.0, -6.0) -/// let assert Ok(logspace) = sequences.geometric_space(10.0, 1000.0, 3, True) -/// let assert Ok(result) = -/// predicates.all_close(logspace, [10.0, 100.0, 1000.0], 0.0, tol) -/// result -/// |> list.all(fn(x) { x == True }) -/// |> should.be_true() -/// -/// // Input (start and stop can't be equal to 0.0) -/// sequences.geometric_space(0.0, 1000.0, 3, False) -/// |> should.be_error() -/// -/// sequences.geometric_space(-1000.0, 0.0, 3, False) -/// |> should.be_error() -/// -/// // A negative number of points (-3) does not work -/// sequences.geometric_space(10.0, 1000.0, -3, False) -/// |> should.be_error() -/// } -///
-/// -/// -/// -pub fn geometric_space( - start: Float, - stop: Float, - num: Int, - endpoint: Bool, -) -> Result(List(Float), String) { - case start == 0.0 || stop == 0.0 { - True -> - "" - |> Error - False -> - case num > 0 { - True -> { - let assert Ok(log_start) = elementary.logarithm_10(start) - let assert Ok(log_stop) = elementary.logarithm_10(stop) - logarithmic_space(log_start, log_stop, num, endpoint, 10.0) - } - False -> - "Invalid input: num < 0. Valid input is num > 0." - |> Error - } - } -} diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/special.gleam b/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/special.gleam deleted file mode 100644 index dfd9cbb..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community/maths/special.gleam +++ /dev/null @@ -1,205 +0,0 @@ -//// -//// -//// -//// -//// -//// -//// --- -//// -//// Special: A module containing special mathematical functions. -//// -//// * **Special mathematical functions** -//// * [`beta`](#beta) -//// * [`erf`](#erf) -//// * [`gamma`](#gamma) -//// * [`incomplete_gamma`](#incomplete_gamma) -//// - -import gleam_community/maths/conversion -import gleam_community/maths/elementary -import gleam_community/maths/piecewise -import gleam/list - -/// -/// -/// The beta function over the real numbers: -/// -/// \\[ -/// \text{B}(x, y) = \frac{\Gamma(x) \cdot \Gamma(y)}{\Gamma(x + y)} -/// \\] -/// -/// The beta function is evaluated through the use of the gamma function. -/// -/// -/// -pub fn beta(x: Float, y: Float) -> Float { - gamma(x) *. gamma(y) /. gamma(x +. y) -} - -/// -/// -/// The error function. -/// -/// -/// -pub fn erf(x: Float) -> Float { - let assert [a1, a2, a3, a4, a5]: List(Float) = [ - 0.254829592, -0.284496736, 1.421413741, -1.453152027, 1.061405429, - ] - let p: Float = 0.3275911 - - let sign: Float = piecewise.float_sign(x) - let x: Float = piecewise.float_absolute_value(x) - - // Formula 7.1.26 given in Abramowitz and Stegun. - let t: Float = 1.0 /. { 1.0 +. p *. x } - let y: Float = - 1.0 -. { { { { a5 *. t +. a4 } *. t +. a3 } *. t +. a2 } *. t +. a1 } *. t *. elementary.exponential( - -1.0 *. x *. x, - ) - sign *. y -} - -/// -/// -/// The gamma function over the real numbers. The function is essentially equal to the -/// factorial for any positive integer argument: $$\Gamma(n) = (n - 1)!$$ -/// -/// The implemented gamma function is approximated through Lanczos approximation -/// using the same coefficients used by the GNU Scientific Library. -/// -/// -/// -pub fn gamma(x: Float) -> Float { - gamma_lanczos(x) -} - -const lanczos_g: Float = 7.0 - -const lanczos_p: List(Float) = [ - 0.99999999999980993, 676.5203681218851, -1259.1392167224028, - 771.32342877765313, -176.61502916214059, 12.507343278686905, - -0.13857109526572012, 0.0000099843695780195716, 0.00000015056327351493116, -] - -fn gamma_lanczos(x: Float) -> Float { - case x <. 0.5 { - True -> - elementary.pi() /. { - elementary.sin(elementary.pi() *. x) *. gamma_lanczos(1.0 -. x) - } - False -> { - let z = x -. 1.0 - let x: Float = - list.index_fold( - lanczos_p, - 0.0, - fn(acc: Float, v: Float, index: Int) { - case index > 0 { - True -> acc +. v /. { z +. conversion.int_to_float(index) } - False -> v - } - }, - ) - let t: Float = z +. lanczos_g +. 0.5 - let assert Ok(v1) = elementary.power(2.0 *. elementary.pi(), 0.5) - let assert Ok(v2) = elementary.power(t, z +. 0.5) - v1 *. v2 *. elementary.exponential(-1.0 *. t) *. x - } - } -} - -/// -/// -/// The lower incomplete gamma function over the real numbers. -/// -/// The implemented incomplete gamma function is evaluated through a power series -/// expansion. -/// -/// -/// -pub fn incomplete_gamma(a: Float, x: Float) -> Result(Float, String) { - case a >. 0.0 && x >=. 0.0 { - True -> { - let assert Ok(v) = elementary.power(x, a) - v *. elementary.exponential(-1.0 *. x) *. incomplete_gamma_sum( - a, - x, - 1.0 /. a, - 0.0, - 1.0, - ) - |> Ok - } - - False -> - "Invlaid input argument: a <= 0 or x < 0. Valid input is a > 0 and x >= 0." - |> Error - } -} - -fn incomplete_gamma_sum( - a: Float, - x: Float, - t: Float, - s: Float, - n: Float, -) -> Float { - case t { - 0.0 -> s - _ -> { - let ns: Float = s +. t - let nt: Float = t *. { x /. { a +. n } } - incomplete_gamma_sum(a, x, nt, ns, n +. 1.0) - } - } -} diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@arithmetics.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@arithmetics.erl deleted file mode 100644 index ca266c8..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@arithmetics.erl +++ /dev/null @@ -1,172 +0,0 @@ --module(gleam_community@maths@arithmetics). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([gcd/2, lcm/2, divisors/1, proper_divisors/1, float_sum/1, int_sum/1, float_product/1, int_product/1, float_cumulative_sum/1, int_cumulative_sum/1, float_cumumlative_product/1, int_cumulative_product/1]). - --spec do_gcd(integer(), integer()) -> integer(). -do_gcd(X, Y) -> - case X =:= 0 of - true -> - Y; - - false -> - _assert_subject = gleam@int:modulo(Y, X), - {ok, Z} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/arithmetics"/utf8>>, - function => <<"do_gcd"/utf8>>, - line => 93}) - end, - do_gcd(Z, X) - end. - --spec gcd(integer(), integer()) -> integer(). -gcd(X, Y) -> - Absx = gleam_community@maths@piecewise:int_absolute_value(X), - Absy = gleam_community@maths@piecewise:int_absolute_value(Y), - do_gcd(Absx, Absy). - --spec lcm(integer(), integer()) -> integer(). -lcm(X, Y) -> - Absx = gleam_community@maths@piecewise:int_absolute_value(X), - Absy = gleam_community@maths@piecewise:int_absolute_value(Y), - case do_gcd(Absx, Absy) of - 0 -> 0; - Gleam@denominator -> (Absx * Absy) div Gleam@denominator - end. - --spec find_divisors(integer()) -> list(integer()). -find_divisors(N) -> - Nabs = gleam_community@maths@piecewise:float_absolute_value( - gleam_community@maths@conversion:int_to_float(N) - ), - _assert_subject = gleam_community@maths@elementary:square_root(Nabs), - {ok, Sqrt_result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/arithmetics"/utf8>>, - function => <<"find_divisors"/utf8>>, - line => 176}) - end, - Max = gleam_community@maths@conversion:float_to_int(Sqrt_result) + 1, - _pipe = gleam@list:range(2, Max), - _pipe@1 = gleam@list:fold(_pipe, [1, N], fun(Acc, I) -> case (case I of - 0 -> 0; - Gleam@denominator -> N rem Gleam@denominator - end) =:= 0 of - true -> - [I, case I of - 0 -> 0; - Gleam@denominator@1 -> N div Gleam@denominator@1 - end | Acc]; - - false -> - Acc - end end), - _pipe@2 = gleam@list:unique(_pipe@1), - gleam@list:sort(_pipe@2, fun gleam@int:compare/2). - --spec divisors(integer()) -> list(integer()). -divisors(N) -> - find_divisors(N). - --spec proper_divisors(integer()) -> list(integer()). -proper_divisors(N) -> - Divisors = find_divisors(N), - _pipe = Divisors, - gleam@list:take(_pipe, gleam@list:length(Divisors) - 1). - --spec float_sum(list(float())) -> float(). -float_sum(Arr) -> - case Arr of - [] -> - +0.0; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, +0.0, fun(Acc, A) -> A + Acc end) - end. - --spec int_sum(list(integer())) -> integer(). -int_sum(Arr) -> - case Arr of - [] -> - 0; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, 0, fun(Acc, A) -> A + Acc end) - end. - --spec float_product(list(float())) -> float(). -float_product(Arr) -> - case Arr of - [] -> - 1.0; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, 1.0, fun(Acc, A) -> A * Acc end) - end. - --spec int_product(list(integer())) -> integer(). -int_product(Arr) -> - case Arr of - [] -> - 1; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, 1, fun(Acc, A) -> A * Acc end) - end. - --spec float_cumulative_sum(list(float())) -> list(float()). -float_cumulative_sum(Arr) -> - case Arr of - [] -> - []; - - _ -> - _pipe = Arr, - gleam@list:scan(_pipe, +0.0, fun(Acc, A) -> A + Acc end) - end. - --spec int_cumulative_sum(list(integer())) -> list(integer()). -int_cumulative_sum(Arr) -> - case Arr of - [] -> - []; - - _ -> - _pipe = Arr, - gleam@list:scan(_pipe, 0, fun(Acc, A) -> A + Acc end) - end. - --spec float_cumumlative_product(list(float())) -> list(float()). -float_cumumlative_product(Arr) -> - case Arr of - [] -> - []; - - _ -> - _pipe = Arr, - gleam@list:scan(_pipe, 1.0, fun(Acc, A) -> A * Acc end) - end. - --spec int_cumulative_product(list(integer())) -> list(integer()). -int_cumulative_product(Arr) -> - case Arr of - [] -> - []; - - _ -> - _pipe = Arr, - gleam@list:scan(_pipe, 1, fun(Acc, A) -> A * Acc end) - end. diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@combinatorics.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@combinatorics.erl deleted file mode 100644 index 17644c4..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@combinatorics.erl +++ /dev/null @@ -1,218 +0,0 @@ --module(gleam_community@maths@combinatorics). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([combination/2, factorial/1, permutation/2, list_combination/2, list_permutation/1, cartesian_product/2]). - --spec combination(integer(), integer()) -> {ok, integer()} | {error, binary()}. -combination(N, K) -> - case N < 0 of - true -> - _pipe = <<"Invalid input argument: n < 0. Valid input is n > 0."/utf8>>, - {error, _pipe}; - - false -> - case (K < 0) orelse (K > N) of - true -> - _pipe@1 = 0, - {ok, _pipe@1}; - - false -> - case (K =:= 0) orelse (K =:= N) of - true -> - _pipe@2 = 1, - {ok, _pipe@2}; - - false -> - Min = case K < (N - K) of - true -> - K; - - false -> - N - K - end, - _pipe@3 = gleam@list:range(1, Min), - _pipe@4 = gleam@list:fold( - _pipe@3, - 1, - fun(Acc, X) -> case X of - 0 -> 0; - Gleam@denominator -> (Acc * ((N + 1) - X)) - div Gleam@denominator - end end - ), - {ok, _pipe@4} - end - end - end. - --spec factorial(integer()) -> {ok, integer()} | {error, binary()}. -factorial(N) -> - case N < 0 of - true -> - _pipe = <<"Invalid input argument: n < 0. Valid input is n > 0."/utf8>>, - {error, _pipe}; - - false -> - case N of - 0 -> - _pipe@1 = 1, - {ok, _pipe@1}; - - 1 -> - _pipe@2 = 1, - {ok, _pipe@2}; - - _ -> - _pipe@3 = gleam@list:range(1, N), - _pipe@4 = gleam@list:fold( - _pipe@3, - 1, - fun(Acc, X) -> Acc * X end - ), - {ok, _pipe@4} - end - end. - --spec permutation(integer(), integer()) -> {ok, integer()} | {error, binary()}. -permutation(N, K) -> - case N < 0 of - true -> - _pipe = <<"Invalid input argument: n < 0. Valid input is n > 0."/utf8>>, - {error, _pipe}; - - false -> - case (K < 0) orelse (K > N) of - true -> - _pipe@1 = 0, - {ok, _pipe@1}; - - false -> - case K =:= N of - true -> - _pipe@2 = 1, - {ok, _pipe@2}; - - false -> - _assert_subject = factorial(N), - {ok, V1} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/combinatorics"/utf8>>, - function => <<"permutation"/utf8>>, - line => 241}) - end, - _assert_subject@1 = factorial(N - K), - {ok, V2} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/combinatorics"/utf8>>, - function => <<"permutation"/utf8>>, - line => 242}) - end, - _pipe@3 = case V2 of - 0 -> 0; - Gleam@denominator -> V1 div Gleam@denominator - end, - {ok, _pipe@3} - end - end - end. - --spec do_list_combination(list(GIO), integer(), list(GIO)) -> list(list(GIO)). -do_list_combination(Arr, K, Prefix) -> - case K of - 0 -> - [gleam@list:reverse(Prefix)]; - - _ -> - case Arr of - [] -> - []; - - [X | Xs] -> - With_x = do_list_combination(Xs, K - 1, [X | Prefix]), - Without_x = do_list_combination(Xs, K, Prefix), - gleam@list:append(With_x, Without_x) - end - end. - --spec list_combination(list(GII), integer()) -> {ok, list(list(GII))} | - {error, binary()}. -list_combination(Arr, K) -> - case K < 0 of - true -> - _pipe = <<"Invalid input argument: k < 0. Valid input is k > 0."/utf8>>, - {error, _pipe}; - - false -> - case K > gleam@list:length(Arr) of - true -> - _pipe@1 = <<"Invalid input argument: k > length(arr). Valid input is 0 < k <= length(arr)."/utf8>>, - {error, _pipe@1}; - - false -> - _pipe@2 = do_list_combination(Arr, K, []), - {ok, _pipe@2} - end - end. - --spec list_permutation(list(GIT)) -> list(list(GIT)). -list_permutation(Arr) -> - case Arr of - [] -> - [[]]; - - _ -> - gleam@list:flat_map( - Arr, - fun(X) -> - _assert_subject = gleam@list:pop(Arr, fun(Y) -> X =:= Y end), - {ok, {_, Remaining}} = case _assert_subject of - {ok, {_, _}} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/combinatorics"/utf8>>, - function => <<"list_permutation"/utf8>>, - line => 373}) - end, - gleam@list:map( - list_permutation(Remaining), - fun(Perm) -> [X | Perm] end - ) - end - ) - end. - --spec cartesian_product(list(GIX), list(GIX)) -> list({GIX, GIX}). -cartesian_product(Xarr, Yarr) -> - Xset = begin - _pipe = Xarr, - gleam@set:from_list(_pipe) - end, - Yset = begin - _pipe@1 = Yarr, - gleam@set:from_list(_pipe@1) - end, - _pipe@2 = Xset, - _pipe@3 = gleam@set:fold( - _pipe@2, - gleam@set:new(), - fun(Accumulator0, Member0) -> - gleam@set:fold( - Yset, - Accumulator0, - fun(Accumulator1, Member1) -> - gleam@set:insert(Accumulator1, {Member0, Member1}) - end - ) - end - ), - gleam@set:to_list(_pipe@3). diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@conversion.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@conversion.erl deleted file mode 100644 index 0f6decb..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@conversion.erl +++ /dev/null @@ -1,23 +0,0 @@ --module(gleam_community@maths@conversion). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([int_to_float/1, float_to_int/1, degrees_to_radians/1, radians_to_degrees/1]). - --spec int_to_float(integer()) -> float(). -int_to_float(X) -> - gleam@int:to_float(X). - --spec float_to_int(float()) -> integer(). -float_to_int(X) -> - erlang:trunc(X). - --spec degrees_to_radians(float()) -> float(). -degrees_to_radians(X) -> - (X * math:pi()) / 180.0. - --spec radians_to_degrees(float()) -> float(). -radians_to_degrees(X) -> - case math:pi() of - 0.0 -> 0.0; - Gleam@denominator -> (X * 180.0) / Gleam@denominator - end. diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@elementary.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@elementary.erl deleted file mode 100644 index dab5d68..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@elementary.erl +++ /dev/null @@ -1,284 +0,0 @@ --module(gleam_community@maths@elementary). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([acos/1, acosh/1, asin/1, asinh/1, atan/1, atan2/2, atanh/1, cos/1, cosh/1, sin/1, sinh/1, tan/1, tanh/1, exponential/1, natural_logarithm/1, logarithm_2/1, logarithm_10/1, logarithm/2, power/2, square_root/1, cube_root/1, nth_root/2, pi/0, tau/0, e/0]). - --spec acos(float()) -> {ok, float()} | {error, binary()}. -acos(X) -> - case (X >= -1.0) andalso (X =< 1.0) of - true -> - _pipe = math:acos(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x >= -1 or x <= 1. Valid input is -1. <= x <= 1."/utf8>>, - {error, _pipe@1} - end. - --spec acosh(float()) -> {ok, float()} | {error, binary()}. -acosh(X) -> - case X >= 1.0 of - true -> - _pipe = math:acosh(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x < 1. Valid input is x >= 1."/utf8>>, - {error, _pipe@1} - end. - --spec asin(float()) -> {ok, float()} | {error, binary()}. -asin(X) -> - case (X >= -1.0) andalso (X =< 1.0) of - true -> - _pipe = math:asin(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x >= -1 or x <= 1. Valid input is -1. <= x <= 1."/utf8>>, - {error, _pipe@1} - end. - --spec asinh(float()) -> float(). -asinh(X) -> - math:asinh(X). - --spec atan(float()) -> float(). -atan(X) -> - math:atan(X). - --spec atan2(float(), float()) -> float(). -atan2(Y, X) -> - math:atan2(Y, X). - --spec atanh(float()) -> {ok, float()} | {error, binary()}. -atanh(X) -> - case (X > -1.0) andalso (X < 1.0) of - true -> - _pipe = math:atanh(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x > -1 or x < 1. Valid input is -1. < x < 1."/utf8>>, - {error, _pipe@1} - end. - --spec cos(float()) -> float(). -cos(X) -> - math:cos(X). - --spec cosh(float()) -> float(). -cosh(X) -> - math:cosh(X). - --spec sin(float()) -> float(). -sin(X) -> - math:sin(X). - --spec sinh(float()) -> float(). -sinh(X) -> - math:sinh(X). - --spec tan(float()) -> float(). -tan(X) -> - math:tan(X). - --spec tanh(float()) -> float(). -tanh(X) -> - math:tanh(X). - --spec exponential(float()) -> float(). -exponential(X) -> - math:exp(X). - --spec natural_logarithm(float()) -> {ok, float()} | {error, binary()}. -natural_logarithm(X) -> - case X > +0.0 of - true -> - _pipe = math:log(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x <= 0. Valid input is x > 0."/utf8>>, - {error, _pipe@1} - end. - --spec logarithm_2(float()) -> {ok, float()} | {error, binary()}. -logarithm_2(X) -> - case X > +0.0 of - true -> - _pipe = math:log2(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x <= 0. Valid input is x > 0."/utf8>>, - {error, _pipe@1} - end. - --spec logarithm_10(float()) -> {ok, float()} | {error, binary()}. -logarithm_10(X) -> - case X > +0.0 of - true -> - _pipe = math:log10(X), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: x <= 0. Valid input is x > 0."/utf8>>, - {error, _pipe@1} - end. - --spec logarithm(float(), gleam@option:option(float())) -> {ok, float()} | - {error, binary()}. -logarithm(X, Base) -> - case X > +0.0 of - true -> - case Base of - {some, A} -> - case (A > +0.0) andalso (A /= 1.0) of - true -> - _assert_subject = logarithm_10(X), - {ok, Numerator} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"logarithm"/utf8>>, - line => 820}) - end, - _assert_subject@1 = logarithm_10(A), - {ok, Denominator} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"logarithm"/utf8>>, - line => 821}) - end, - _pipe = case Denominator of - 0.0 -> 0.0; - Gleam@denominator -> Numerator / Gleam@denominator - end, - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invalid input argument: base <= 0 or base == 1. Valid input is base > 0 and base != 1."/utf8>>, - {error, _pipe@1} - end; - - _ -> - _pipe@2 = <<"Invalid input argument: base <= 0 or base == 1. Valid input is base > 0 and base != 1."/utf8>>, - {error, _pipe@2} - end; - - _ -> - _pipe@3 = <<"Invalid input argument: x <= 0. Valid input is x > 0."/utf8>>, - {error, _pipe@3} - end. - --spec power(float(), float()) -> {ok, float()} | {error, binary()}. -power(X, Y) -> - Fractional = (math:ceil(Y) - Y) > +0.0, - case ((X < +0.0) andalso Fractional) orelse ((X =:= +0.0) andalso (Y < +0.0)) of - true -> - _pipe = <<"Invalid input argument: x < 0 and y is fractional or x = 0 and y < 0."/utf8>>, - {error, _pipe}; - - false -> - _pipe@1 = math:pow(X, Y), - {ok, _pipe@1} - end. - --spec square_root(float()) -> {ok, float()} | {error, binary()}. -square_root(X) -> - case X < +0.0 of - true -> - _pipe = <<"Invalid input argument: x < 0."/utf8>>, - {error, _pipe}; - - false -> - _assert_subject = power(X, 1.0 / 2.0), - {ok, Result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"square_root"/utf8>>, - line => 1066}) - end, - _pipe@1 = Result, - {ok, _pipe@1} - end. - --spec cube_root(float()) -> {ok, float()} | {error, binary()}. -cube_root(X) -> - case X < +0.0 of - true -> - _pipe = <<"Invalid input argument: x < 0."/utf8>>, - {error, _pipe}; - - false -> - _assert_subject = power(X, 1.0 / 3.0), - {ok, Result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"cube_root"/utf8>>, - line => 1118}) - end, - _pipe@1 = Result, - {ok, _pipe@1} - end. - --spec nth_root(float(), integer()) -> {ok, float()} | {error, binary()}. -nth_root(X, N) -> - case X < +0.0 of - true -> - _pipe = <<"Invalid input argument: x < 0. Valid input is x > 0"/utf8>>, - {error, _pipe}; - - false -> - case N >= 1 of - true -> - _assert_subject = power(X, case gleam@int:to_float(N) of - 0.0 -> 0.0; - Gleam@denominator -> 1.0 / Gleam@denominator - end), - {ok, Result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/elementary"/utf8>>, - function => <<"nth_root"/utf8>>, - line => 1175}) - end, - _pipe@1 = Result, - {ok, _pipe@1}; - - false -> - _pipe@2 = <<"Invalid input argument: n < 1. Valid input is n >= 2."/utf8>>, - {error, _pipe@2} - end - end. - --spec pi() -> float(). -pi() -> - math:pi(). - --spec tau() -> float(). -tau() -> - 2.0 * pi(). - --spec e() -> float(). -e() -> - exponential(1.0). diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@metrics.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@metrics.erl deleted file mode 100644 index 2a58da6..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@metrics.erl +++ /dev/null @@ -1,278 +0,0 @@ --module(gleam_community@maths@metrics). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([norm/2, minkowski_distance/3, manhatten_distance/2, euclidean_distance/2, mean/1, median/1, variance/2, standard_deviation/2]). - --spec norm(list(float()), float()) -> float(). -norm(Arr, P) -> - case Arr of - [] -> - +0.0; - - _ -> - Agg = begin - _pipe = Arr, - gleam@list:fold( - _pipe, - +0.0, - fun(Acc, A) -> - _assert_subject = gleam_community@maths@elementary:power( - gleam_community@maths@piecewise:float_absolute_value( - A - ), - P - ), - {ok, Result} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"norm"/utf8>>, - line => 101}) - end, - Result + Acc - end - ) - end, - _assert_subject@1 = gleam_community@maths@elementary:power( - Agg, - case P of - 0.0 -> 0.0; - Gleam@denominator -> 1.0 / Gleam@denominator - end - ), - {ok, Result@1} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"norm"/utf8>>, - line => 106}) - end, - Result@1 - end. - --spec minkowski_distance(list(float()), list(float()), float()) -> {ok, float()} | - {error, binary()}. -minkowski_distance(Xarr, Yarr, P) -> - Xlen = gleam@list:length(Xarr), - Ylen = gleam@list:length(Yarr), - case Xlen =:= Ylen of - false -> - _pipe = <<"Invalid input argument: length(xarr) != length(yarr). Valid input is when length(xarr) == length(yarr)."/utf8>>, - {error, _pipe}; - - true -> - case P < 1.0 of - true -> - _pipe@1 = <<"Invalid input argument: p < 1. Valid input is p >= 1."/utf8>>, - {error, _pipe@1}; - - false -> - _pipe@2 = gleam@list:zip(Xarr, Yarr), - _pipe@3 = gleam@list:map( - _pipe@2, - fun(Tuple) -> - gleam@pair:first(Tuple) - gleam@pair:second(Tuple) - end - ), - _pipe@4 = norm(_pipe@3, P), - {ok, _pipe@4} - end - end. - --spec manhatten_distance(list(float()), list(float())) -> {ok, float()} | - {error, binary()}. -manhatten_distance(Xarr, Yarr) -> - minkowski_distance(Xarr, Yarr, 1.0). - --spec euclidean_distance(list(float()), list(float())) -> {ok, float()} | - {error, binary()}. -euclidean_distance(Xarr, Yarr) -> - minkowski_distance(Xarr, Yarr, 2.0). - --spec mean(list(float())) -> {ok, float()} | {error, binary()}. -mean(Arr) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _pipe@1 = Arr, - _pipe@2 = gleam_community@maths@arithmetics:float_sum(_pipe@1), - _pipe@3 = (fun(A) -> - case gleam_community@maths@conversion:int_to_float( - gleam@list:length(Arr) - ) of - 0.0 -> 0.0; - Gleam@denominator -> A / Gleam@denominator - end - end)(_pipe@2), - {ok, _pipe@3} - end. - --spec median(list(float())) -> {ok, float()} | {error, binary()}. -median(Arr) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - Count = gleam@list:length(Arr), - Mid = gleam@list:length(Arr) div 2, - Sorted = gleam@list:sort(Arr, fun gleam@float:compare/2), - case gleam_community@maths@predicates:is_odd(Count) of - true -> - _assert_subject = gleam@list:at(Sorted, Mid), - {ok, Val0} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"median"/utf8>>, - line => 402}) - end, - _pipe@1 = Val0, - {ok, _pipe@1}; - - false -> - _assert_subject@1 = gleam@list:at(Sorted, Mid - 1), - {ok, Val0@1} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"median"/utf8>>, - line => 409}) - end, - _assert_subject@2 = gleam@list:at(Sorted, Mid), - {ok, Val1} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"median"/utf8>>, - line => 410}) - end, - _pipe@2 = [Val0@1, Val1], - mean(_pipe@2) - end - end. - --spec variance(list(float()), integer()) -> {ok, float()} | {error, binary()}. -variance(Arr, Ddof) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - case Ddof < 0 of - true -> - _pipe@1 = <<"Invalid input argument: ddof < 0. Valid input is ddof >= 0."/utf8>>, - {error, _pipe@1}; - - false -> - _assert_subject = mean(Arr), - {ok, Mean} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"variance"/utf8>>, - line => 475}) - end, - _pipe@2 = Arr, - _pipe@3 = gleam@list:map( - _pipe@2, - fun(A) -> - _assert_subject@1 = gleam_community@maths@elementary:power( - A - Mean, - 2.0 - ), - {ok, Result} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"variance"/utf8>>, - line => 478}) - end, - Result - end - ), - _pipe@4 = gleam_community@maths@arithmetics:float_sum( - _pipe@3 - ), - _pipe@5 = (fun(A@1) -> - case (gleam_community@maths@conversion:int_to_float( - gleam@list:length(Arr) - ) - - gleam_community@maths@conversion:int_to_float(Ddof)) of - 0.0 -> 0.0; - Gleam@denominator -> A@1 / Gleam@denominator - end - end)(_pipe@4), - {ok, _pipe@5} - end - end. - --spec standard_deviation(list(float()), integer()) -> {ok, float()} | - {error, binary()}. -standard_deviation(Arr, Ddof) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - case Ddof < 0 of - true -> - _pipe@1 = <<"Invalid input argument: ddof < 0. Valid input is ddof >= 0."/utf8>>, - {error, _pipe@1}; - - false -> - _assert_subject = variance(Arr, Ddof), - {ok, Variance} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"standard_deviation"/utf8>>, - line => 551}) - end, - _assert_subject@1 = gleam_community@maths@elementary:square_root( - Variance - ), - {ok, Stdev} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/metrics"/utf8>>, - function => <<"standard_deviation"/utf8>>, - line => 554}) - end, - _pipe@2 = Stdev, - {ok, _pipe@2} - end - end. diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@piecewise.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@piecewise.erl deleted file mode 100644 index 258d879..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@piecewise.erl +++ /dev/null @@ -1,553 +0,0 @@ --module(gleam_community@maths@piecewise). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([float_absolute_value/1, int_absolute_value/1, float_absolute_difference/2, int_absolute_difference/2, float_sign/1, round/3, ceiling/2, floor/2, truncate/2, int_sign/1, float_flip_sign/1, float_copy_sign/2, int_flip_sign/1, int_copy_sign/2, minimum/3, maximum/3, minmax/3, list_minimum/2, list_maximum/2, arg_minimum/2, arg_maximum/2, extrema/2]). --export_type([rounding_mode/0]). - --type rounding_mode() :: round_nearest | - round_ties_away | - round_ties_up | - round_to_zero | - round_down | - round_up. - --spec truncate_float(float()) -> float(). -truncate_float(X) -> - erlang:trunc(X). - --spec round_to_zero(float(), float()) -> float(). -round_to_zero(P, X) -> - case P of - 0.0 -> 0.0; - Gleam@denominator -> truncate_float(X * P) / Gleam@denominator - end. - --spec round_down(float(), float()) -> float(). -round_down(P, X) -> - case P of - 0.0 -> 0.0; - Gleam@denominator -> math:floor(X * P) / Gleam@denominator - end. - --spec round_up(float(), float()) -> float(). -round_up(P, X) -> - case P of - 0.0 -> 0.0; - Gleam@denominator -> math:ceil(X * P) / Gleam@denominator - end. - --spec float_absolute_value(float()) -> float(). -float_absolute_value(X) -> - case X > +0.0 of - true -> - X; - - false -> - -1.0 * X - end. - --spec int_absolute_value(integer()) -> integer(). -int_absolute_value(X) -> - case X > 0 of - true -> - X; - - false -> - -1 * X - end. - --spec float_absolute_difference(float(), float()) -> float(). -float_absolute_difference(A, B) -> - _pipe = A - B, - float_absolute_value(_pipe). - --spec int_absolute_difference(integer(), integer()) -> integer(). -int_absolute_difference(A, B) -> - _pipe = A - B, - int_absolute_value(_pipe). - --spec do_float_sign(float()) -> float(). -do_float_sign(X) -> - case X < +0.0 of - true -> - -1.0; - - false -> - case X =:= +0.0 of - true -> - +0.0; - - false -> - 1.0 - end - end. - --spec float_sign(float()) -> float(). -float_sign(X) -> - do_float_sign(X). - --spec round_to_nearest(float(), float()) -> float(). -round_to_nearest(P, X) -> - Xabs = float_absolute_value(X) * P, - Xabs_truncated = truncate_float(Xabs), - Remainder = Xabs - Xabs_truncated, - case Remainder of - _ when Remainder > 0.5 -> - case P of - 0.0 -> 0.0; - Gleam@denominator -> (float_sign(X) * truncate_float(Xabs + 1.0)) - / Gleam@denominator - end; - - _ when Remainder =:= 0.5 -> - _assert_subject = gleam@int:modulo( - gleam_community@maths@conversion:float_to_int(Xabs), - 2 - ), - {ok, Is_even} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"round_to_nearest"/utf8>>, - line => 423}) - end, - case Is_even =:= 0 of - true -> - case P of - 0.0 -> 0.0; - Gleam@denominator@1 -> (float_sign(X) * Xabs_truncated) - / Gleam@denominator@1 - end; - - false -> - case P of - 0.0 -> 0.0; - Gleam@denominator@2 -> (float_sign(X) * truncate_float( - Xabs + 1.0 - )) - / Gleam@denominator@2 - end - end; - - _ -> - case P of - 0.0 -> 0.0; - Gleam@denominator@3 -> (float_sign(X) * Xabs_truncated) / Gleam@denominator@3 - end - end. - --spec round_ties_away(float(), float()) -> float(). -round_ties_away(P, X) -> - Xabs = float_absolute_value(X) * P, - Remainder = Xabs - truncate_float(Xabs), - case Remainder of - _ when Remainder >= 0.5 -> - case P of - 0.0 -> 0.0; - Gleam@denominator -> (float_sign(X) * truncate_float(Xabs + 1.0)) - / Gleam@denominator - end; - - _ -> - case P of - 0.0 -> 0.0; - Gleam@denominator@1 -> (float_sign(X) * truncate_float(Xabs)) / Gleam@denominator@1 - end - end. - --spec round_ties_up(float(), float()) -> float(). -round_ties_up(P, X) -> - Xabs = float_absolute_value(X) * P, - Xabs_truncated = truncate_float(Xabs), - Remainder = Xabs - Xabs_truncated, - case Remainder of - _ when (Remainder >= 0.5) andalso (X >= +0.0) -> - case P of - 0.0 -> 0.0; - Gleam@denominator -> (float_sign(X) * truncate_float(Xabs + 1.0)) - / Gleam@denominator - end; - - _ -> - case P of - 0.0 -> 0.0; - Gleam@denominator@1 -> (float_sign(X) * Xabs_truncated) / Gleam@denominator@1 - end - end. - --spec do_round(float(), float(), gleam@option:option(rounding_mode())) -> {ok, - float()} | - {error, binary()}. -do_round(P, X, Mode) -> - case Mode of - {some, round_nearest} -> - _pipe = round_to_nearest(P, X), - {ok, _pipe}; - - {some, round_ties_away} -> - _pipe@1 = round_ties_away(P, X), - {ok, _pipe@1}; - - {some, round_ties_up} -> - _pipe@2 = round_ties_up(P, X), - {ok, _pipe@2}; - - {some, round_to_zero} -> - _pipe@3 = round_to_zero(P, X), - {ok, _pipe@3}; - - {some, round_down} -> - _pipe@4 = round_down(P, X), - {ok, _pipe@4}; - - {some, round_up} -> - _pipe@5 = round_up(P, X), - {ok, _pipe@5}; - - none -> - _pipe@6 = round_to_nearest(P, X), - {ok, _pipe@6} - end. - --spec round( - float(), - gleam@option:option(integer()), - gleam@option:option(rounding_mode()) -) -> {ok, float()} | {error, binary()}. -round(X, Digits, Mode) -> - case Digits of - {some, A} -> - _assert_subject = gleam_community@maths@elementary:power( - 10.0, - gleam_community@maths@conversion:int_to_float(A) - ), - {ok, P} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"round"/utf8>>, - line => 366}) - end, - do_round(P, X, Mode); - - none -> - do_round(1.0, X, Mode) - end. - --spec ceiling(float(), gleam@option:option(integer())) -> {ok, float()} | - {error, binary()}. -ceiling(X, Digits) -> - round(X, Digits, {some, round_up}). - --spec floor(float(), gleam@option:option(integer())) -> {ok, float()} | - {error, binary()}. -floor(X, Digits) -> - round(X, Digits, {some, round_down}). - --spec truncate(float(), gleam@option:option(integer())) -> {ok, float()} | - {error, binary()}. -truncate(X, Digits) -> - round(X, Digits, {some, round_to_zero}). - --spec do_int_sign(integer()) -> integer(). -do_int_sign(X) -> - case X < 0 of - true -> - -1; - - false -> - case X =:= 0 of - true -> - 0; - - false -> - 1 - end - end. - --spec int_sign(integer()) -> integer(). -int_sign(X) -> - do_int_sign(X). - --spec float_flip_sign(float()) -> float(). -float_flip_sign(X) -> - -1.0 * X. - --spec float_copy_sign(float(), float()) -> float(). -float_copy_sign(X, Y) -> - case float_sign(X) =:= float_sign(Y) of - true -> - X; - - false -> - float_flip_sign(X) - end. - --spec int_flip_sign(integer()) -> integer(). -int_flip_sign(X) -> - -1 * X. - --spec int_copy_sign(integer(), integer()) -> integer(). -int_copy_sign(X, Y) -> - case int_sign(X) =:= int_sign(Y) of - true -> - X; - - false -> - int_flip_sign(X) - end. - --spec minimum(FQL, FQL, fun((FQL, FQL) -> gleam@order:order())) -> FQL. -minimum(X, Y, Compare) -> - case Compare(X, Y) of - lt -> - X; - - eq -> - X; - - gt -> - Y - end. - --spec maximum(FQM, FQM, fun((FQM, FQM) -> gleam@order:order())) -> FQM. -maximum(X, Y, Compare) -> - case Compare(X, Y) of - lt -> - Y; - - eq -> - Y; - - gt -> - X - end. - --spec minmax(FQN, FQN, fun((FQN, FQN) -> gleam@order:order())) -> {FQN, FQN}. -minmax(X, Y, Compare) -> - {minimum(X, Y, Compare), maximum(X, Y, Compare)}. - --spec list_minimum(list(FQO), fun((FQO, FQO) -> gleam@order:order())) -> {ok, - FQO} | - {error, binary()}. -list_minimum(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = gleam@list:at(Arr, 0), - {ok, Val0} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"list_minimum"/utf8>>, - line => 945}) - end, - _pipe@1 = Arr, - _pipe@2 = gleam@list:fold( - _pipe@1, - Val0, - fun(Acc, Element) -> case Compare(Element, Acc) of - lt -> - Element; - - _ -> - Acc - end end - ), - {ok, _pipe@2} - end. - --spec list_maximum(list(FQS), fun((FQS, FQS) -> gleam@order:order())) -> {ok, - FQS} | - {error, binary()}. -list_maximum(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = gleam@list:at(Arr, 0), - {ok, Val0} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"list_maximum"/utf8>>, - line => 1004}) - end, - _pipe@1 = Arr, - _pipe@2 = gleam@list:fold( - _pipe@1, - Val0, - fun(Acc, Element) -> case Compare(Acc, Element) of - lt -> - Element; - - _ -> - Acc - end end - ), - {ok, _pipe@2} - end. - --spec arg_minimum(list(FQW), fun((FQW, FQW) -> gleam@order:order())) -> {ok, - list(integer())} | - {error, binary()}. -arg_minimum(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = begin - _pipe@1 = Arr, - list_minimum(_pipe@1, Compare) - end, - {ok, Min} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"arg_minimum"/utf8>>, - line => 1069}) - end, - _pipe@2 = Arr, - _pipe@3 = gleam@list:index_map( - _pipe@2, - fun(Index, Element) -> case Compare(Element, Min) of - eq -> - Index; - - _ -> - -1 - end end - ), - _pipe@4 = gleam@list:filter(_pipe@3, fun(Index@1) -> case Index@1 of - -1 -> - false; - - _ -> - true - end end), - {ok, _pipe@4} - end. - --spec arg_maximum(list(FRB), fun((FRB, FRB) -> gleam@order:order())) -> {ok, - list(integer())} | - {error, binary()}. -arg_maximum(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = begin - _pipe@1 = Arr, - list_maximum(_pipe@1, Compare) - end, - {ok, Max} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"arg_maximum"/utf8>>, - line => 1139}) - end, - _pipe@2 = Arr, - _pipe@3 = gleam@list:index_map( - _pipe@2, - fun(Index, Element) -> case Compare(Element, Max) of - eq -> - Index; - - _ -> - -1 - end end - ), - _pipe@4 = gleam@list:filter(_pipe@3, fun(Index@1) -> case Index@1 of - -1 -> - false; - - _ -> - true - end end), - {ok, _pipe@4} - end. - --spec extrema(list(FRG), fun((FRG, FRG) -> gleam@order:order())) -> {ok, - {FRG, FRG}} | - {error, binary()}. -extrema(Arr, Compare) -> - case Arr of - [] -> - _pipe = <<"Invalid input argument: The list is empty."/utf8>>, - {error, _pipe}; - - _ -> - _assert_subject = gleam@list:at(Arr, 0), - {ok, Val_max} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"extrema"/utf8>>, - line => 1209}) - end, - _assert_subject@1 = gleam@list:at(Arr, 0), - {ok, Val_min} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/piecewise"/utf8>>, - function => <<"extrema"/utf8>>, - line => 1210}) - end, - _pipe@1 = Arr, - _pipe@2 = gleam@list:fold( - _pipe@1, - {Val_min, Val_max}, - fun(Acc, Element) -> - First = gleam@pair:first(Acc), - Second = gleam@pair:second(Acc), - case {Compare(Element, First), Compare(Second, Element)} of - {lt, lt} -> - {Element, Element}; - - {lt, _} -> - {Element, Second}; - - {_, lt} -> - {First, Element}; - - {_, _} -> - {First, Second} - end - end - ), - {ok, _pipe@2} - end. diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@predicates.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@predicates.erl deleted file mode 100644 index d991d89..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@predicates.erl +++ /dev/null @@ -1,118 +0,0 @@ --module(gleam_community@maths@predicates). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([is_close/4, all_close/4, is_fractional/1, is_power/2, is_perfect/1, is_even/1, is_odd/1]). - --spec float_absolute_value(float()) -> float(). -float_absolute_value(X) -> - case X > +0.0 of - true -> - X; - - false -> - -1.0 * X - end. - --spec float_absolute_difference(float(), float()) -> float(). -float_absolute_difference(A, B) -> - _pipe = A - B, - float_absolute_value(_pipe). - --spec is_close(float(), float(), float(), float()) -> boolean(). -is_close(A, B, Rtol, Atol) -> - X = float_absolute_difference(A, B), - Y = Atol + (Rtol * float_absolute_value(B)), - case X =< Y of - true -> - true; - - false -> - false - end. - --spec all_close(list(float()), list(float()), float(), float()) -> {ok, - list(boolean())} | - {error, binary()}. -all_close(Xarr, Yarr, Rtol, Atol) -> - Xlen = gleam@list:length(Xarr), - Ylen = gleam@list:length(Yarr), - case Xlen =:= Ylen of - false -> - _pipe = <<"Invalid input argument: length(xarr) != length(yarr). Valid input is when length(xarr) == length(yarr)."/utf8>>, - {error, _pipe}; - - true -> - _pipe@1 = gleam@list:zip(Xarr, Yarr), - _pipe@2 = gleam@list:map( - _pipe@1, - fun(Z) -> - is_close( - gleam@pair:first(Z), - gleam@pair:second(Z), - Rtol, - Atol - ) - end - ), - {ok, _pipe@2} - end. - --spec is_fractional(float()) -> boolean(). -is_fractional(X) -> - (math:ceil(X) - X) > +0.0. - --spec is_power(integer(), integer()) -> boolean(). -is_power(X, Y) -> - _assert_subject = gleam_community@maths@elementary:logarithm( - gleam@int:to_float(X), - {some, gleam@int:to_float(Y)} - ), - {ok, Value} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/predicates"/utf8>>, - function => <<"is_power"/utf8>>, - line => 241}) - end, - _assert_subject@1 = gleam_community@maths@piecewise:truncate( - Value, - {some, 0} - ), - {ok, Truncated} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/predicates"/utf8>>, - function => <<"is_power"/utf8>>, - line => 243}) - end, - Rem = Value - Truncated, - Rem =:= +0.0. - --spec do_sum(list(integer())) -> integer(). -do_sum(Arr) -> - case Arr of - [] -> - 0; - - _ -> - _pipe = Arr, - gleam@list:fold(_pipe, 0, fun(Acc, A) -> A + Acc end) - end. - --spec is_perfect(integer()) -> boolean(). -is_perfect(N) -> - do_sum(gleam_community@maths@arithmetics:proper_divisors(N)) =:= N. - --spec is_even(integer()) -> boolean(). -is_even(X) -> - (X rem 2) =:= 0. - --spec is_odd(integer()) -> boolean(). -is_odd(X) -> - (X rem 2) /= 0. diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@sequences.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@sequences.erl deleted file mode 100644 index 74dcff4..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@sequences.erl +++ /dev/null @@ -1,199 +0,0 @@ --module(gleam_community@maths@sequences). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([arange/3, linear_space/4, logarithmic_space/5, geometric_space/4]). - --spec arange(float(), float(), float()) -> list(float()). -arange(Start, Stop, Step) -> - case ((Start >= Stop) andalso (Step > +0.0)) orelse ((Start =< Stop) andalso (Step - < +0.0)) of - true -> - []; - - false -> - Direction = case Start =< Stop of - true -> - 1.0; - - false -> - -1.0 - end, - Step_abs = gleam_community@maths@piecewise:float_absolute_value( - Step - ), - Num = case Step_abs of - 0.0 -> 0.0; - Gleam@denominator -> gleam_community@maths@piecewise:float_absolute_value( - Start - Stop - ) - / Gleam@denominator - end, - _pipe = gleam@list:range( - 0, - gleam_community@maths@conversion:float_to_int(Num) - 1 - ), - gleam@list:map( - _pipe, - fun(I) -> - Start + ((gleam_community@maths@conversion:int_to_float(I) * Step_abs) - * Direction) - end - ) - end. - --spec linear_space(float(), float(), integer(), boolean()) -> {ok, - list(float())} | - {error, binary()}. -linear_space(Start, Stop, Num, Endpoint) -> - Direction = case Start =< Stop of - true -> - 1.0; - - false -> - -1.0 - end, - case Num > 0 of - true -> - case Endpoint of - true -> - Increment = case gleam_community@maths@conversion:int_to_float( - Num - 1 - ) of - 0.0 -> 0.0; - Gleam@denominator -> gleam_community@maths@piecewise:float_absolute_value( - Start - Stop - ) - / Gleam@denominator - end, - _pipe = gleam@list:range(0, Num - 1), - _pipe@1 = gleam@list:map( - _pipe, - fun(I) -> - Start + ((gleam_community@maths@conversion:int_to_float( - I - ) - * Increment) - * Direction) - end - ), - {ok, _pipe@1}; - - false -> - Increment@1 = case gleam_community@maths@conversion:int_to_float( - Num - ) of - 0.0 -> 0.0; - Gleam@denominator@1 -> gleam_community@maths@piecewise:float_absolute_value( - Start - Stop - ) - / Gleam@denominator@1 - end, - _pipe@2 = gleam@list:range(0, Num - 1), - _pipe@3 = gleam@list:map( - _pipe@2, - fun(I@1) -> - Start + ((gleam_community@maths@conversion:int_to_float( - I@1 - ) - * Increment@1) - * Direction) - end - ), - {ok, _pipe@3} - end; - - false -> - _pipe@4 = <<"Invalid input: num < 0. Valid input is num > 0."/utf8>>, - {error, _pipe@4} - end. - --spec logarithmic_space(float(), float(), integer(), boolean(), float()) -> {ok, - list(float())} | - {error, binary()}. -logarithmic_space(Start, Stop, Num, Endpoint, Base) -> - case Num > 0 of - true -> - _assert_subject = linear_space(Start, Stop, Num, Endpoint), - {ok, Linspace} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/sequences"/utf8>>, - function => <<"logarithmic_space"/utf8>>, - line => 221}) - end, - _pipe = Linspace, - _pipe@1 = gleam@list:map( - _pipe, - fun(I) -> - _assert_subject@1 = gleam_community@maths@elementary:power( - Base, - I - ), - {ok, Result} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/sequences"/utf8>>, - function => <<"logarithmic_space"/utf8>>, - line => 224}) - end, - Result - end - ), - {ok, _pipe@1}; - - false -> - _pipe@2 = <<"Invalid input: num < 0. Valid input is num > 0."/utf8>>, - {error, _pipe@2} - end. - --spec geometric_space(float(), float(), integer(), boolean()) -> {ok, - list(float())} | - {error, binary()}. -geometric_space(Start, Stop, Num, Endpoint) -> - case (Start =:= +0.0) orelse (Stop =:= +0.0) of - true -> - _pipe = <<""/utf8>>, - {error, _pipe}; - - false -> - case Num > 0 of - true -> - _assert_subject = gleam_community@maths@elementary:logarithm_10( - Start - ), - {ok, Log_start} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/sequences"/utf8>>, - function => <<"geometric_space"/utf8>>, - line => 293}) - end, - _assert_subject@1 = gleam_community@maths@elementary:logarithm_10( - Stop - ), - {ok, Log_stop} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/sequences"/utf8>>, - function => <<"geometric_space"/utf8>>, - line => 294}) - end, - logarithmic_space(Log_start, Log_stop, Num, Endpoint, 10.0); - - false -> - _pipe@1 = <<"Invalid input: num < 0. Valid input is num > 0."/utf8>>, - {error, _pipe@1} - end - end. diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@special.erl b/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@special.erl deleted file mode 100644 index 925f4bb..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community@maths@special.erl +++ /dev/null @@ -1,157 +0,0 @@ --module(gleam_community@maths@special). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([erf/1, gamma/1, beta/2, incomplete_gamma/2]). - --spec erf(float()) -> float(). -erf(X) -> - _assert_subject = [0.254829592, - -0.284496736, - 1.421413741, - -1.453152027, - 1.061405429], - [A1, A2, A3, A4, A5] = case _assert_subject of - [_, _, _, _, _] -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/special"/utf8>>, - function => <<"erf"/utf8>>, - line => 79}) - end, - P = 0.3275911, - Sign = gleam_community@maths@piecewise:float_sign(X), - X@1 = gleam_community@maths@piecewise:float_absolute_value(X), - T = case (1.0 + (P * X@1)) of - 0.0 -> 0.0; - Gleam@denominator -> 1.0 / Gleam@denominator - end, - Y = 1.0 - ((((((((((A5 * T) + A4) * T) + A3) * T) + A2) * T) + A1) * T) * gleam_community@maths@elementary:exponential( - (-1.0 * X@1) * X@1 - )), - Sign * Y. - --spec gamma_lanczos(float()) -> float(). -gamma_lanczos(X) -> - case X < 0.5 of - true -> - case (gleam_community@maths@elementary:sin( - gleam_community@maths@elementary:pi() * X - ) - * gamma_lanczos(1.0 - X)) of - 0.0 -> 0.0; - Gleam@denominator -> gleam_community@maths@elementary:pi() / Gleam@denominator - end; - - false -> - Z = X - 1.0, - X@1 = gleam@list:index_fold( - [0.99999999999980993, - 676.5203681218851, - -1259.1392167224028, - 771.32342877765313, - -176.61502916214059, - 12.507343278686905, - -0.13857109526572012, - 0.0000099843695780195716, - 0.00000015056327351493116], - +0.0, - fun(Acc, V, Index) -> case Index > 0 of - true -> - Acc + (case (Z + gleam_community@maths@conversion:int_to_float( - Index - )) of - 0.0 -> 0.0; - Gleam@denominator@1 -> V / Gleam@denominator@1 - end); - - false -> - V - end end - ), - T = (Z + 7.0) + 0.5, - _assert_subject = gleam_community@maths@elementary:power( - 2.0 * gleam_community@maths@elementary:pi(), - 0.5 - ), - {ok, V1} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/special"/utf8>>, - function => <<"gamma_lanczos"/utf8>>, - line => 146}) - end, - _assert_subject@1 = gleam_community@maths@elementary:power( - T, - Z + 0.5 - ), - {ok, V2} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"gleam_community/maths/special"/utf8>>, - function => <<"gamma_lanczos"/utf8>>, - line => 147}) - end, - ((V1 * V2) * gleam_community@maths@elementary:exponential(-1.0 * T)) - * X@1 - end. - --spec gamma(float()) -> float(). -gamma(X) -> - gamma_lanczos(X). - --spec beta(float(), float()) -> float(). -beta(X, Y) -> - case gamma(X + Y) of - 0.0 -> 0.0; - Gleam@denominator -> (gamma(X) * gamma(Y)) / Gleam@denominator - end. - --spec incomplete_gamma_sum(float(), float(), float(), float(), float()) -> float(). -incomplete_gamma_sum(A, X, T, S, N) -> - case T of - +0.0 -> - S; - - _ -> - Ns = S + T, - Nt = T * (case (A + N) of - 0.0 -> 0.0; - Gleam@denominator -> X / Gleam@denominator - end), - incomplete_gamma_sum(A, X, Nt, Ns, N + 1.0) - end. - --spec incomplete_gamma(float(), float()) -> {ok, float()} | {error, binary()}. -incomplete_gamma(A, X) -> - case (A > +0.0) andalso (X >= +0.0) of - true -> - _assert_subject = gleam_community@maths@elementary:power(X, A), - {ok, V} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam_community/maths/special"/utf8>>, - function => <<"incomplete_gamma"/utf8>>, - line => 173}) - end, - _pipe = (V * gleam_community@maths@elementary:exponential(-1.0 * X)) - * incomplete_gamma_sum(A, X, case A of - 0.0 -> 0.0; - Gleam@denominator -> 1.0 / Gleam@denominator - end, +0.0, 1.0), - {ok, _pipe}; - - false -> - _pipe@1 = <<"Invlaid input argument: a <= 0 or x < 0. Valid input is a > 0 and x >= 0."/utf8>>, - {error, _pipe@1} - end. diff --git a/aoc2023/build/packages/gleam_community_maths/src/gleam_community_maths.app.src b/aoc2023/build/packages/gleam_community_maths/src/gleam_community_maths.app.src deleted file mode 100644 index 091e679..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/gleam_community_maths.app.src +++ /dev/null @@ -1,16 +0,0 @@ -{application, gleam_community_maths, [ - {vsn, "1.0.1"}, - {applications, [gleam_stdlib, - gleeunit]}, - {description, "A basic maths library"}, - {modules, [gleam_community@maths@arithmetics, - gleam_community@maths@combinatorics, - gleam_community@maths@conversion, - gleam_community@maths@elementary, - gleam_community@maths@metrics, - gleam_community@maths@piecewise, - gleam_community@maths@predicates, - gleam_community@maths@sequences, - gleam_community@maths@special]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gleam_community_maths/src/maths.mjs b/aoc2023/build/packages/gleam_community_maths/src/maths.mjs deleted file mode 100644 index 5c5ab31..0000000 --- a/aoc2023/build/packages/gleam_community_maths/src/maths.mjs +++ /dev/null @@ -1,95 +0,0 @@ -export function sin(float) { - return Math.sin(float) -} - -export function pi() { - return Math.PI -} - -export function acos(float) { - return Math.acos(float) -} - -export function acosh(float) { - return Math.acosh(float) -} - -export function asin(float) { - return Math.asin(float) -} - -export function asinh(float) { - return Math.asinh(float) -} - -export function atan(float) { - return Math.atan(float) -} - -export function tan(float) { - return Math.tan(float) -} - -export function atan2(floaty, floatx) { - return Math.atan2(floaty, floatx) -} - -export function atanh(float) { - return Math.atanh(float) -} - -export function cos(float) { - return Math.cos(float) -} - -export function cosh(float) { - return Math.cosh(float) -} - -export function exponential(float) { - return Math.exp(float) -} - -export function ceiling(float) { - return Math.ceil(float) -} - -export function floor(float) { - return Math.floor(float) -} - -export function power(base, exponent) { - return Math.pow(base, exponent) -} - -export function logarithm(float) { - return Math.log(float) -} - -export function logarithm_10(float) { - return Math.log10(float) -} - -export function logarithm_2(float) { - return Math.log2(float) -} - -export function sinh(float) { - return Math.sinh(float) -} - -export function tanh(float) { - return Math.tanh(float) -} - -export function sign(float) { - return Math.sign(float) -} - -export function truncate(float) { - return Math.trunc(float) -} - -export function to_int(float) { - return Math.trunc(float) -} diff --git a/aoc2023/build/packages/gleam_erlang/LICENSE b/aoc2023/build/packages/gleam_erlang/LICENSE deleted file mode 100644 index 59e1345..0000000 --- a/aoc2023/build/packages/gleam_erlang/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright {{copyright_year}}, {{author_name}} <{{author_email}}>. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/aoc2023/build/packages/gleam_erlang/README.md b/aoc2023/build/packages/gleam_erlang/README.md deleted file mode 100644 index ffee4cd..0000000 --- a/aoc2023/build/packages/gleam_erlang/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Gleam Erlang 🐙 - -A library for making use of Erlang specific code! - -## Features - -- Typed Erlang processes and message sending. -- Erlang binary format (de)serialisation. -- Functions for working with Erlang's charlists. -- Reading, writing, and deletion of files. -- Basic distributed Erlang support and working with nodes. -- Reading and writing of environment variables. -- Functions for working with atoms. - -## Usage - -Add this library to your Gleam project - -```shell -gleam add gleam_erlang -``` - -And then use it in your code - -```gleam -import gleam/io -import gleam/erlang/file - -pub fn main() { - assert Ok(contents) = file.read("pokedex.txt") - io.println(contents) -} -``` - -Documentation can be found at . - -This library requires OTP 23.0 or higher. diff --git a/aoc2023/build/packages/gleam_erlang/gleam.toml b/aoc2023/build/packages/gleam_erlang/gleam.toml deleted file mode 100644 index 8d62603..0000000 --- a/aoc2023/build/packages/gleam_erlang/gleam.toml +++ /dev/null @@ -1,18 +0,0 @@ -name = "gleam_erlang" - -version = "0.23.1" -licences = ["Apache-2.0"] -description = "A Gleam library for working with Erlang" - -repository = { type = "github", user = "gleam-lang", repo = "erlang" } -links = [ - { title = "Website", href = "https://gleam.run" }, - { title = "Sponsor", href = "https://github.com/sponsors/lpil" }, -] -gleam = ">= 0.32.0" - -[dependencies] -gleam_stdlib = "~> 0.32" - -[dev-dependencies] -gleeunit = "~> 0.6" diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@file_FileInfo.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@file_FileInfo.hrl deleted file mode 100644 index b38d11e..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@file_FileInfo.hrl +++ /dev/null @@ -1,15 +0,0 @@ --record(file_info, { - size :: integer(), - file_type :: gleam@erlang@file:file_type(), - access :: gleam@erlang@file:access(), - atime :: integer(), - mtime :: integer(), - ctime :: integer(), - mode :: integer(), - links :: integer(), - major_device :: integer(), - minor_device :: integer(), - inode :: integer(), - user_id :: integer(), - group_id :: integer() -}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Abnormal.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Abnormal.hrl deleted file mode 100644 index 4cd0452..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Abnormal.hrl +++ /dev/null @@ -1 +0,0 @@ --record(abnormal, {reason :: binary()}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_CalleeDown.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_CalleeDown.hrl deleted file mode 100644 index 5dd5047..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_CalleeDown.hrl +++ /dev/null @@ -1 +0,0 @@ --record(callee_down, {reason :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Cancelled.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Cancelled.hrl deleted file mode 100644 index b82b49f..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Cancelled.hrl +++ /dev/null @@ -1 +0,0 @@ --record(cancelled, {time_remaining :: integer()}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ExitMessage.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ExitMessage.hrl deleted file mode 100644 index c476308..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ExitMessage.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(exit_message, { - pid :: gleam@erlang@process:pid_(), - reason :: gleam@erlang@process:exit_reason() -}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ProcessDown.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ProcessDown.hrl deleted file mode 100644 index df0b6b7..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ProcessDown.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(process_down, { - pid :: gleam@erlang@process:pid_(), - reason :: gleam@dynamic:dynamic_() -}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ProcessMonitor.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ProcessMonitor.hrl deleted file mode 100644 index ce552e2..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_ProcessMonitor.hrl +++ /dev/null @@ -1 +0,0 @@ --record(process_monitor, {tag :: gleam@erlang:reference_()}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Subject.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Subject.hrl deleted file mode 100644 index abc46b2..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang@process_Subject.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(subject, { - owner :: gleam@erlang@process:pid_(), - tag :: gleam@erlang:reference_() -}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang_ApplicationFailedToStart.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang_ApplicationFailedToStart.hrl deleted file mode 100644 index 52c9896..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang_ApplicationFailedToStart.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(application_failed_to_start, { - name :: gleam@erlang@atom:atom_(), - reason :: gleam@dynamic:dynamic_() -}). diff --git a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang_UnknownApplication.hrl b/aoc2023/build/packages/gleam_erlang/include/gleam@erlang_UnknownApplication.hrl deleted file mode 100644 index fde3c61..0000000 --- a/aoc2023/build/packages/gleam_erlang/include/gleam@erlang_UnknownApplication.hrl +++ /dev/null @@ -1 +0,0 @@ --record(unknown_application, {name :: gleam@erlang@atom:atom_()}). diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang.gleam b/aoc2023/build/packages/gleam_erlang/src/gleam/erlang.gleam deleted file mode 100644 index 783cd53..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang.gleam +++ /dev/null @@ -1,158 +0,0 @@ -import gleam/dynamic.{type Dynamic} -import gleam/list -import gleam/erlang/atom.{type Atom} -import gleam/erlang/charlist.{type Charlist} - -@external(erlang, "io_lib", "format") -fn erl_format(a: String, b: List(a)) -> Charlist - -/// Return a string representation of any term -pub fn format(term: any) -> String { - charlist.to_string(erl_format("~p", [term])) -} - -@external(erlang, "erlang", "term_to_binary") -pub fn term_to_binary(a: a) -> BitArray - -type Safe { - Safe -} - -@external(erlang, "erlang", "binary_to_term") -fn erl_binary_to_term(a: BitArray, b: List(Safe)) -> Dynamic - -pub fn binary_to_term(binary: BitArray) -> Result(Dynamic, Nil) { - case rescue(fn() { erl_binary_to_term(binary, [Safe]) }) { - Ok(term) -> Ok(term) - Error(_) -> Error(Nil) - } -} - -pub fn unsafe_binary_to_term(binary: BitArray) -> Result(Dynamic, Nil) { - case rescue(fn() { erl_binary_to_term(binary, []) }) { - Ok(term) -> Ok(term) - Error(_) -> Error(Nil) - } -} - -/// Error value returned by `get_line` function -/// -pub type GetLineError { - Eof - NoData -} - -/// Reads a line from standard input with the given prompt. -/// -/// # Example -/// -/// > get_line("Language: ") -/// // -> Language: <- gleam -/// Ok("gleam\n") -/// -@external(erlang, "gleam_erlang_ffi", "get_line") -pub fn get_line(prompt prompt: String) -> Result(String, GetLineError) - -pub type TimeUnit { - Second - Millisecond - Microsecond - Nanosecond -} - -/// Returns the current OS system time. -/// -/// -@external(erlang, "os", "system_time") -pub fn system_time(a: TimeUnit) -> Int - -/// Returns the current OS system time as a tuple of Ints -/// -/// http://erlang.org/doc/man/os.html#timestamp-0 -@external(erlang, "os", "timestamp") -pub fn erlang_timestamp() -> #(Int, Int, Int) - -/// Gleam doesn't offer any way to raise exceptions, but they may still occur -/// due to bugs when working with unsafe code, such as when calling Erlang -/// function. -/// -/// This function will catch any error thrown and convert it into a result -/// rather than crashing the process. -/// -@external(erlang, "gleam_erlang_ffi", "rescue") -pub fn rescue(a: fn() -> a) -> Result(a, Crash) - -pub type Crash { - Exited(Dynamic) - Thrown(Dynamic) - Errored(Dynamic) -} - -@external(erlang, "init", "get_plain_arguments") -fn get_start_arguments() -> List(Charlist) - -/// Get the arguments given to the program when it was started. -/// -/// This is sometimes called `argv` in other languages. -pub fn start_arguments() -> List(String) { - get_start_arguments() - |> list.map(charlist.to_string) -} - -/// Starts an OTP application's process tree in the background, as well as -/// the trees of any applications that the given application depends upon. An -/// OTP application typically maps onto a Gleam or Hex package. -/// -/// Returns a list of the applications that were started. Calling this function -/// for application that have already been started is a no-op so you do not need -/// to check the application state beforehand. -/// -/// In Gleam we prefer to not use these implicit background process trees, but -/// you will likely still need to start the trees of OTP applications written in -/// other BEAM languages such as Erlang or Elixir, including those included by -/// default with Erlang/OTP. -/// -/// For more information see the OTP documentation. -/// - -/// - -/// -@external(erlang, "gleam_erlang_ffi", "ensure_all_started") -pub fn ensure_all_started( - application application: Atom, -) -> Result(List(Atom), EnsureAllStartedError) - -pub type EnsureAllStartedError { - UnknownApplication(name: Atom) - ApplicationFailedToStart(name: Atom, reason: Dynamic) -} - -/// A unique reference value. -/// -/// It holds no particular meaning or value, but unique values are often useful -/// in programs are used heavily within both Gleam and Erlang's OTP frameworks. -/// -/// More can be read about references in the [Erlang documentation][1]. -/// -/// [1]: https://www.erlang.org/doc/efficiency_guide/advanced.html#unique_references -/// -pub type Reference - -/// Create a new unique reference. -/// -@external(erlang, "erlang", "make_ref") -pub fn make_reference() -> Reference - -/// Returns the path of a package's `priv` directory, where extra non-Gleam -/// or Erlang files are typically kept. -/// -/// Returns an error if no package was found with the given name. -/// -/// # Example -/// -/// ```gleam -/// > erlang.priv_directory("my_app") -/// // -> Ok("/some/location/my_app/priv") -/// ``` -/// -@external(erlang, "gleam_erlang_ffi", "priv_directory") -pub fn priv_directory(name: String) -> Result(String, Nil) diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/atom.gleam b/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/atom.gleam deleted file mode 100644 index a27289c..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/atom.gleam +++ /dev/null @@ -1,79 +0,0 @@ -import gleam/dynamic.{type DecodeErrors, type Dynamic} - -/// Atom is a special string-like data-type that is most commonly used for -/// interfacing with code written in other BEAM languages such as Erlang and -/// Elixir. It is preferable to define your own custom types to use instead of -/// atoms where possible. -/// -/// Atoms are not used much in typical Gleam code! -/// -/// ## Creating atoms -/// -/// We can create atoms with the the [`create_from_string`](#create_from_string) -/// function, though we must be careful when doing so as atoms are never -/// garbage collected. If we create too many atoms (for example, if we convert -/// user input into atoms) we may hit the max limit of atoms and cause the -/// virtual machine to crash. -/// -pub type Atom - -/// An error returned when no atom is found in the virtual machine's atom table -/// for a given string when calling the [`from_string`](#from_string) function. -pub type FromStringError { - AtomNotLoaded -} - -/// Finds an existing Atom for the given String. -/// -/// If no atom is found in the virtual machine's atom table for the String then -/// an error is returned. -/// -/// ## Examples -/// -/// > from_string("ok") -/// Ok(create_from_string("ok")) -/// -/// > from_string("some_new_atom") -/// Error(AtomNotLoaded) -/// -@external(erlang, "gleam_erlang_ffi", "atom_from_string") -pub fn from_string(a: String) -> Result(Atom, FromStringError) - -/// Creates an atom from a string, inserting a new value into the virtual -/// machine's atom table if an atom does not already exist for the given -/// string. -/// -/// We must be careful when using this function as there is a limit to the -/// number of atom that can fit in the virtual machine's atom table. Never -/// convert user input into atoms as filling the atom table will cause the -/// virtual machine to crash! -/// -@external(erlang, "erlang", "binary_to_atom") -pub fn create_from_string(a: String) -> Atom - -/// Returns a `String` corresponding to the text representation of the given -/// `Atom`. -/// -/// ## Examples -/// -/// > let ok_atom = create_from_string("ok") -/// > to_string(ok_atom) -/// "ok" -/// -@external(erlang, "erlang", "atom_to_binary") -pub fn to_string(a: Atom) -> String - -/// Checks to see whether a `Dynamic` value is an atom, and return the atom if -/// it is. -/// -/// ## Examples -/// -/// > import gleam/dynamic -/// > from_dynamic(dynamic.from(create_from_string("hello"))) -/// Ok(create_from_string("hello")) -/// -/// > from_dynamic(dynamic.from(123)) -/// Error([DecodeError(expected: "Atom", found: "Int", path: [])]) -/// -@external(erlang, "gleam_erlang_ffi", "atom_from_dynamic") -pub fn from_dynamic(from from: Dynamic) -> Result(Atom, DecodeErrors) diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/charlist.gleam b/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/charlist.gleam deleted file mode 100644 index e5b6d65..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/charlist.gleam +++ /dev/null @@ -1,25 +0,0 @@ -//// A charlist is a list of integers where all the integers are valid code -//// points. -//// -//// In practice, you will not come across them often, except perhaps when -//// interfacing with Erlang, in particular when using older libraries that do -//// not accept binaries as arguments. - -/// A list of characters represented as ints. Commonly used by older Erlang -/// modules. -pub type Charlist - -/// Transform a charlist to a string -@external(erlang, "unicode", "characters_to_binary") -pub fn to_string(a: Charlist) -> String - -// Calls `unicode:characters_to_binary(Data, unicode, unicode)` -// Note: `unicode is an alias for utf8` -// See - -/// Transform a string to a charlist -@external(erlang, "unicode", "characters_to_list") -pub fn from_string(a: String) -> Charlist -// Calls `unicode:characters_to_list(Data, unicode)` -// Note: `unicode is an alias for utf8` -// See diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/file.gleam b/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/file.gleam deleted file mode 100644 index 48e11a7..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/file.gleam +++ /dev/null @@ -1,737 +0,0 @@ -//// Working with files on the filesystem. -//// -//// The functions included in this module are for high-level concepts such as -//// reading and writing. - -import gleam/bit_array -import gleam/result - -/// Reason represents all of the reasons that Erlang surfaces of why a file -/// system operation could fail. Most of these reasons are POSIX errors, which -/// come from the operating system and start with `E`. Others have been added to -/// represent other issues that may arise. -pub type Reason { - /// Permission denied. - Eacces - /// Resource temporarily unavailable. - Eagain - /// Bad file number - Ebadf - /// Bad message. - Ebadmsg - /// File busy. - Ebusy - /// Resource deadlock avoided. - Edeadlk - /// On most architectures, same as `Edeadlk`. On some architectures, it - /// means "File locking deadlock error." - Edeadlock - /// Disk quota exceeded. - Edquot - /// File already exists. - Eexist - /// Bad address in system call argument. - Efault - /// File too large. - Efbig - /// Inappropriate file type or format. Usually caused by trying to set the - /// "sticky bit" on a regular file (not a directory). - Eftype - /// Interrupted system call. - Eintr - /// Invalid argument. - Einval - /// I/O error. - Eio - /// Illegal operation on a directory. - Eisdir - /// Too many levels of symbolic links. - Eloop - /// Too many open files. - Emfile - /// Too many links. - Emlink - /// Multihop attempted. - Emultihop - /// Filename too long - Enametoolong - /// File table overflow - Enfile - /// No buffer space available. - Enobufs - /// No such device. - Enodev - /// No locks available. - Enolck - /// Link has been severed. - Enolink - /// No such file or directory. - Enoent - /// Not enough memory. - Enomem - /// No space left on device. - Enospc - /// No STREAM resources. - Enosr - /// Not a STREAM. - Enostr - /// Function not implemented. - Enosys - /// Block device required. - Enotblk - /// Not a directory. - Enotdir - /// Operation not supported. - Enotsup - /// No such device or address. - Enxio - /// Operation not supported on socket. - Eopnotsupp - /// Value too large to be stored in data type. - Eoverflow - /// Not owner. - Eperm - /// Broken pipe. - Epipe - /// Result too large. - Erange - /// Read-only file system. - Erofs - /// Invalid seek. - Espipe - /// No such process. - Esrch - /// Stale remote file handle. - Estale - /// Text file busy. - Etxtbsy - /// Cross-domain link. - Exdev - /// File was requested to be read as UTF-8, but is not UTF-8 encoded. - NotUtf8 -} - -/// The type of file found by `file_info` or `link_info`. -/// -pub type FileType { - Device - Directory - Other - Regular - Symlink -} - -/// The read/write permissions a user can have for a file. -/// -pub type Access { - NoAccess - Read - ReadWrite - Write -} - -/// Meta information for a file. -/// -/// Timestamps are in seconds before or after the Unix time epoch, -/// `1970-01-01 00:00:00 UTC`. -/// -pub type FileInfo { - FileInfo( - /// File size in bytes. - /// - size: Int, - /// `Regular`, `Directory`, `Symlink`, `Device`, or `Other`. - /// - file_type: FileType, - /// `ReadWrite`, `Read`, `Write`, or `NoAccess`. - /// - access: Access, - /// Timestamp of most recent access. - /// - atime: Int, - /// Timestamp of most recent modification. - /// - mtime: Int, - /// Timestamp of most recent change (or file creation, depending on - /// operating system). - /// - ctime: Int, - /// File permissions encoded as a sum of bit values, including but not - /// limited to: - /// - /// Owner read, write, execute. - /// - /// `0o400`, `0o200`, `0o100` - /// - /// Group read, write, execute. - /// - /// `0o40`, `0o20`, `0o10` - /// - /// Other read, write, execute. - /// - /// `0o4`, `0o2`, `0o1` - /// - /// Set user ID, group ID on execution. - /// - /// `0x800`, `0x400` - /// - mode: Int, - /// Total links to a file (always `1` for file systems without links). - /// - links: Int, - /// The file system where a file is located (`0` for drive `A:` on Windows, - /// `1` for `B:`, etc.). - /// - major_device: Int, - /// Character device (or `0` on non-Unix systems). - /// - minor_device: Int, - /// The `inode` number for a file (always `0` on non-Unix file systems). - /// - inode: Int, - /// The owner of a file (always `0` on non-Unix file systems). - /// - user_id: Int, - /// The group id of a file (always `0` on non-Unix file systems). - /// - group_id: Int, - ) -} - -/// Results in `FileInfo` about the given `path` on success, otherwise a -/// `Reason` for failure. -/// -/// When `path` refers to a symlink, the result pertains to the link's target. -/// To get `FileInfo` about a symlink itself, use `link_info`. -/// -/// ## Examples -/// -/// ```gleam -/// > file_info("gleam.toml") -/// Ok(FileInfo( -/// size: 430, -/// file_type: Regular, -/// access: ReadWrite, -/// atime: 1680580321, -/// mtime: 1680580272, -/// ctime: 1680580272, -/// mode: 33188, -/// links: 1, -/// major_device: 64, -/// minor_device: 0, -/// inode: 469028, -/// user_id: 1000, -/// group_id: 1000, -/// )) -/// -/// > file_info("/root") -/// Ok(FileInfo( -/// size: 16, -/// file_type: Directory, -/// access: Read, -/// atime: 1677789967, -/// mtime: 1664561240, -/// ctime: 1664561240, -/// mode: 16877, -/// links: 11, -/// major_device: 54, -/// minor_device: 0, -/// inode: 34, -/// user_id: 0, -/// group_id: 0, -/// )) -/// -/// > file_info("./build/dev/erlang/rad/priv") -/// Ok(FileInfo( -/// size: 140, -/// file_type: Directory, -/// access: ReadWrite, -/// atime: 1680580321, -/// mtime: 1680580272, -/// ctime: 1680580272, -/// mode: 33188, -/// links: 1, -/// major_device: 64, -/// minor_device: 0, -/// inode: 469028, -/// user_id: 1000, -/// group_id: 1000, -/// )) -/// -/// > file_info("/does_not_exist") -/// Error(Enoent) -/// -/// > file_info("/root/.local/maybe_exists") -/// Error(Eacces) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn file_info(a: String) -> Result(FileInfo, Reason) { - do_file_info(a) -} - -@external(erlang, "gleam_erlang_ffi", "file_info") -fn do_file_info(a: String) -> Result(FileInfo, Reason) - -/// Results in `FileInfo` about the given `path` on success, otherwise a -/// `Reason` for failure. -/// -/// When `path` refers to a symlink, the result pertains to the link itself. -/// To get `FileInfo` about a symlink's target, use `file_info`. -/// -/// ## Examples -/// -/// ```gleam -/// > link_info("gleam.toml") -/// Ok(FileInfo( -/// size: 430, -/// file_type: Regular, -/// access: ReadWrite, -/// atime: 1680580321, -/// mtime: 1680580272, -/// ctime: 1680580272, -/// mode: 33188, -/// links: 1, -/// major_device: 64, -/// minor_device: 0, -/// inode: 469028, -/// user_id: 1000, -/// group_id: 1000, -/// )) -/// -/// > link_info("/root") -/// Ok(FileInfo( -/// size: 16, -/// file_type: Directory, -/// access: Read, -/// atime: 1677789967, -/// mtime: 1664561240, -/// ctime: 1664561240, -/// mode: 16877, -/// links: 11, -/// major_device: 54, -/// minor_device: 0, -/// inode: 34, -/// user_id: 0, -/// group_id: 0, -/// )) -/// -/// > link_info("./build/dev/erlang/rad/priv") -/// Ok(FileInfo( -/// size: 41, -/// file_type: Symlink, -/// access: ReadWrite, -/// atime: 1680581150, -/// mtime: 1680581150, -/// ctime: 1680581150, -/// mode: 41471, -/// links: 1, -/// major_device: 64, -/// minor_device: 0, -/// inode: 471587, -/// user_id: 1000, -/// group_id: 1000, -/// )) -/// -/// > link_info("/does_not_exist") -/// Error(Enoent) -/// -/// > link_info("/root/.local/maybe_exists") -/// Error(Eacces) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn link_info(a: String) -> Result(FileInfo, Reason) { - do_link_info(a) -} - -@external(erlang, "gleam_erlang_ffi", "link_info") -fn do_link_info(a: String) -> Result(FileInfo, Reason) - -/// Results in a `Bool` on success that indicates whether the given `path` has -/// a `Directory` `FileType`, otherwise a `Reason` for failure. -/// -/// When `path` refers to a symlink, the result pertains to the link's target. -/// -/// ## Examples -/// -/// ```gleam -/// > is_directory("/tmp") -/// Ok(True) -/// -/// > is_directory("resume.pdf") -/// Ok(False) -/// -/// > is_directory("/does_not_exist") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn is_directory(path: String) -> Result(Bool, Reason) { - use FileInfo(file_type: file_type, ..) <- result.map(over: do_file_info(path)) - file_type == Directory -} - -/// Results in a `Bool` on success that indicates whether the given `path` has -/// a `Regular` `FileType`, otherwise a `Reason` for failure. -/// -/// When `path` refers to a symlink, the result pertains to the link's target. -/// -/// ## Examples -/// -/// ```gleam -/// > is_regular("resume.pdf") -/// Ok(True) -/// -/// > is_regular("/tmp") -/// Ok(False) -/// -/// > is_regular("/does_not_exist.txt") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn is_regular(path: String) -> Result(Bool, Reason) { - use FileInfo(file_type: file_type, ..) <- result.map(over: do_file_info(path)) - file_type == Regular -} - -/// Results in a `Bool` on success that indicates whether the given `path` -/// exists, otherwise a `Reason` for failure. -/// -/// When `path` refers to a symlink, the result pertains to the link's target. -/// To find whether a symlink itself exists, use `link_exists`. -/// -/// ## Examples -/// -/// ```gleam -/// > file_exists("resume.pdf") -/// Ok(True) -/// -/// > file_exists("/tmp") -/// Ok(True) -/// -/// > file_exists("/does_not_exist") -/// Ok(False) -/// -/// > file_exists("/root/.local/maybe_exists") -/// Error(Eacces) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn file_exists(path: String) -> Result(Bool, Reason) { - let result = - path - |> do_file_info - |> result.replace(True) - case result { - Error(Enoent) -> Ok(False) - _ -> result - } -} - -/// Results in a `Bool` on success that indicates whether the given `path` -/// exists, otherwise a `Reason` for failure. -/// -/// When `path` refers to a symlink, the result pertains to the link itself. -/// To find whether a symlink's target exists, use `file_exists`. -/// -/// ## Examples -/// -/// ```gleam -/// > link_exists("resume.pdf") -/// Ok(True) -/// -/// > link_exists("/tmp") -/// Ok(True) -/// -/// > link_exists("/does_not_exist") -/// Ok(False) -/// -/// > link_exists("/root/.local/maybe_exists") -/// Error(Eacces) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn link_exists(path: String) -> Result(Bool, Reason) { - let result = - path - |> do_link_info - |> result.replace(True) - case result { - Error(Enoent) -> Ok(False) - _ -> result - } -} - -/// Tries to create a directory. Missing parent directories are not created. -/// -/// Returns a Result of nil if the directory is created or Reason if the -/// operation failed. -/// -/// ## Examples -/// -/// ```gleam -/// > make_directory("/tmp/foo") -/// Ok(Nil) -/// -/// > make_directory("relative_directory") -/// Ok(Nil) -/// -/// > make_directory("/tmp/missing_intermediate_directory/foo") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -@external(erlang, "gleam_erlang_ffi", "make_directory") -pub fn make_directory(a: String) -> Result(Nil, Reason) - -/// Lists all files in a directory, except files with -/// [raw filenames](https://www.erlang.org/doc/apps/stdlib/unicode_usage.html#notes-about-raw-filenames). -/// -/// Returns a Result containing the list of filenames in the directory, or Reason -/// if the operation failed. -/// -/// ## Examples -/// -/// ```gleam -/// > list_directory("/tmp") -/// Ok(["FB01293B-8597-4359-80D5-130140A0C0DE","AlTest2.out"]) -/// -/// > list_directory("resume.docx") -/// Error(Enotdir) -/// ``` -/// -@deprecated("Use the simplifile package instead") -@external(erlang, "gleam_erlang_ffi", "list_directory") -pub fn list_directory(a: String) -> Result(List(String), Reason) - -/// Deletes a directory. -/// -/// The directory must be empty before it can be deleted. Returns a nil Success -/// or Reason if the operation failed. -/// -/// ## Examples -/// -/// ```gleam -/// > delete_directory("foo") -/// Ok(Nil) -/// -/// > delete_directory("does_not_exist/") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -@external(erlang, "gleam_erlang_ffi", "delete_directory") -pub fn delete_directory(a: String) -> Result(Nil, Reason) - -/// Deletes a file or directory recursively. -/// -/// Returns a nil Success or Reason if the operation failed. -/// -/// ## Examples -/// -/// ```gleam -/// > recursive_delete("foo") -/// Ok(Nil) -/// -/// > recursive_delete("/bar") -/// Ok(Nil) -/// -/// > recursive_delete("does_not_exist/") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -@external(erlang, "gleam_erlang_ffi", "recursive_delete") -pub fn recursive_delete(a: String) -> Result(Nil, Reason) - -/// Read the contents of the given file as a String -/// -/// Assumes the file is UTF-8 encoded. Returns a Result containing the file's -/// contents as a String if the operation was successful, or Reason if the file -/// operation failed. If the file is not UTF-8 encoded, the `NotUTF8` variant -/// will be returned. -/// -/// ## Examples -/// -/// ```gleam -/// > read("example.txt") -/// Ok("Hello, World!") -/// -/// > read(from: "example.txt") -/// Ok("Hello, World!") -/// -/// > read("does_not_exist.txt") -/// Error(Enoent) -/// -/// > read("cat.gif") -/// Error(NotUTF8) -/// ``` -/// -@deprecated("Use the simplifile package instead?") -pub fn read(from path: String) -> Result(String, Reason) { - path - |> do_read_bits() - |> result.then(fn(content) { - case bit_array.to_string(content) { - Ok(string) -> Ok(string) - Error(Nil) -> Error(NotUtf8) - } - }) -} - -/// Read the contents of the given file as a BitString -/// -/// Returns a Result containing the file's contents as a BitString if the -/// operation was successful, or Reason if the operation failed. -/// -/// ## Examples -/// -/// ```gleam -/// > read_bits("example.txt") -/// Ok(<<"Hello, World!">>) -/// -/// > read_bits(from: "cat.gif") -/// Ok(<<71,73,70,56,57,97,1,0,1,0,0,0,0,59>>) -/// -/// > read_bits("does_not_exist.txt") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn read_bits(from path: String) -> Result(BitArray, Reason) { - do_read_bits(path) -} - -@external(erlang, "gleam_erlang_ffi", "read_file") -fn do_read_bits(a: path) -> Result(BitArray, Reason) - -/// Write the given String contents to a file of the given name. -/// -/// Returns a Result with Nil if the operation was successful or a Reason -/// otherwise. -/// -/// ## Examples -/// -/// ```gleam -/// > write("Hello, World!", "file.txt") -/// Ok(Nil) -/// -/// > write(to: "file.txt", contents: "Hello, World!") -/// Ok(Nil) -/// -/// > write("Hello, World!", "does_not_exist/file.txt") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn write(contents contents: String, to path: String) -> Result(Nil, Reason) { - contents - |> bit_array.from_string - |> do_write_bits(path) -} - -/// Write the given BitString contents to a file of the given name. -/// -/// Returns a Result with Nil if the operation was successful or a Reason -/// otherwise. -/// -/// ## Examples -/// -/// ```gleam -/// > write_bits(<<71,73,70,56,57,97,1,0,1,0,0,0,0,59>>, "cat.gif") -/// Ok(Nil) -/// -/// > write_bits(to: "cat.gif", contents: <<71,73,70,56,57,97,1,0,1,0,0,0,0,59>>) -/// Ok(Nil) -/// -/// > write_bits(<<71,73,70,56,57,97,1,0,1,0,0,0,0,59>>, "does_not_exist/cat.gif") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn write_bits( - contents contents: BitArray, - to path: String, -) -> Result(Nil, Reason) { - do_write_bits(contents, path) -} - -@external(erlang, "gleam_erlang_ffi", "write_file") -fn do_write_bits(a: BitArray, b: String) -> Result(Nil, Reason) - -/// Append the given String contents to a file of the given name. -/// -/// Returns a Result with Nil if the operation was successful or a Reason -/// otherwise. -/// -/// ## Examples -/// -/// ```gleam -/// > append("Hello, World!", "file.txt") -/// Ok(Nil) -/// -/// > append(to: "file.txt", contents: "Hello, World!") -/// Ok(Nil) -/// -/// > append("Hello, World!", "does_not_exist/file.txt") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -pub fn append(contents contents: String, to path: String) -> Result(Nil, Reason) { - contents - |> bit_array.from_string - |> do_append_bits(path) -} - -/// Append the given BitString contents to a file of the given name. -/// -/// Returns a Result with Nil if the operation was successful or a Reason -/// otherwise. -/// -/// ## Examples -/// -/// ```gleam -/// > append_bits(<<71,73,70,56,57,97,1,0,1,0,0,0,0,59>>, "cat.gif") -/// Ok(Nil) -/// -/// > append_bits(to: "cat.gif", contents: <<71,73,70,56,57,97,1,0,1,0,0,0,0,59>>) -/// Ok(Nil) -/// -/// > append_bits(<<71,73,70,56,57,97,1,0,1,0,0,0,0,59>>, "does_not_exist/cat.gif") -/// Error(Enoent) -/// ``` -/// -pub fn append_bits( - contents contents: BitArray, - to path: String, -) -> Result(Nil, Reason) { - do_append_bits(contents, path) -} - -@external(erlang, "gleam_erlang_ffi", "append_file") -fn do_append_bits( - contents contents: BitArray, - path path: String, -) -> Result(Nil, Reason) - -/// Delete the given file. -/// -/// Returns a Result with Nil if the operation was successful or a Reason -/// otherwise. -/// -/// ## Examples -/// -/// ```gleam -/// > delete("file.txt") -/// Ok(Nil) -/// -/// > delete("does_not_exist.txt") -/// Error(Enoent) -/// ``` -/// -@deprecated("Use the simplifile package instead") -@external(erlang, "gleam_erlang_ffi", "delete_file") -pub fn delete(a: String) -> Result(Nil, Reason) diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/node.gleam b/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/node.gleam deleted file mode 100644 index 339415c..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/node.gleam +++ /dev/null @@ -1,62 +0,0 @@ -import gleam/erlang/atom.{type Atom} - -pub type Node - -type DoNotLeak - -/// Return the current node. -/// -@external(erlang, "erlang", "node") -pub fn self() -> Node - -/// Return a list of all visible nodes in the cluster, not including the current -/// node. -/// -/// The current node can be included by calling `self()` and prepending the -/// result. -/// -/// ```gleam -/// let all_nodes = [node.self(), ..node.visible()] -/// ``` -/// -@external(erlang, "erlang", "nodes") -pub fn visible() -> List(Node) - -pub type ConnectError { - /// Was unable to connect to the node. - FailedToConnect - /// The local node is not alive, so it is not possible to connect to the other - /// node. - LocalNodeIsNotAlive -} - -// TODO: test unknown node -// TODO: test successfully connecting -/// Establish a connection to a node, so the nodes can send messages to each -/// other and any other connected nodes. -/// -/// Returns `Error(FailedToConnect)` if the node is not reachable. -/// -/// Returns `Error(LocalNodeIsNotAlive)` if the local node is not alive, meaning -/// it is not running in distributed mode. -/// -@external(erlang, "gleam_erlang_ffi", "connect_node") -pub fn connect(node: Atom) -> Result(Node, ConnectError) - -// TODO: test -/// Send a message to a named process on a given node. -/// -/// These messages are untyped, like regular Erlang messages. -/// -pub fn send(node: Node, name: Atom, message: message) -> Nil { - raw_send(#(name, node), message) - Nil -} - -@external(erlang, "erlang", "send") -fn raw_send(receiver: #(Atom, Node), message: message) -> DoNotLeak - -/// Convert a node to the atom of its name. -/// -@external(erlang, "gleam_erlang_ffi", "identity") -pub fn to_atom(node: Node) -> Atom diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/os.gleam b/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/os.gleam deleted file mode 100644 index e135974..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/os.gleam +++ /dev/null @@ -1,95 +0,0 @@ -//// Access to the shell's environment variables - -import gleam/map.{type Map} - -/// Returns the list of all available environment variables as a list of key, -/// tuples. -/// -/// ## Examples -/// -/// > get_all_env() -/// map.from_list([ -/// #("SHELL", "/bin/bash"), -/// #("PWD", "/home/j3rn"), -/// ... -/// ]) -/// -@external(erlang, "gleam_erlang_ffi", "get_all_env") -pub fn get_all_env() -> Map(String, String) - -/// Returns the value associated with the given environment variable name. -/// -/// ## Examples -/// -/// > get_env("SHELL") -/// "/bin/bash" -/// -/// > get_env(name: "PWD") -/// "/home/j3rn" -/// -@external(erlang, "gleam_erlang_ffi", "get_env") -pub fn get_env(name name: String) -> Result(String, Nil) - -/// Associates the given value with the given environment variable name. -/// -/// ## Examples -/// -/// > set_env("MYVAR", "MYVALUE") -/// Nil -/// > get_env("MYVAR") -/// "MYVALUE" -/// -/// > set_env(value: "MYVALUE", name: "MYVAR") -/// Nil -/// -@external(erlang, "gleam_erlang_ffi", "set_env") -pub fn set_env(name name: String, value value: String) -> Nil - -/// Removes the environment variable with the given name. -/// -/// Returns Nil regardless of whether the variable ever existed. -/// -/// ## Examples -/// -/// > get_env("MYVAR") -/// Ok("MYVALUE") -/// > unset_env("MYVAR") -/// Nil -/// > get_env("MYVAR") -/// Error(Nil) -/// -/// > unset_env(name: "MYVAR") -/// Nil -/// -@external(erlang, "gleam_erlang_ffi", "unset_env") -pub fn unset_env(name name: String) -> Nil - -/// Represents operating system kernels -pub type OsFamily { - // The family which includes modern versions of the Windows operating system. - WindowsNt - // The family of operating systems based on the open source Linux kernel. - Linux - // The family of Apple operating systems such as macOS and iOS. - Darwin - // The family of operating systems based on the FreeBSD kernel. - FreeBsd - // An operating system kernel other than Linux, Darwin, FreeBSD, or NT. - Other(String) -} - -/// Returns the kernel of the host operating system. -/// -/// Unknown kernels are reported as `Other(String)`; e.g. `Other("sunos")`. -/// -/// ## Examples -/// -/// > family() -/// Linux -/// > family() -/// Darwin -/// > family() -/// Other("sunos") -/// -@external(erlang, "gleam_erlang_ffi", "os_family") -pub fn family() -> OsFamily diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/process.gleam b/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/process.gleam deleted file mode 100644 index f660306..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam/erlang/process.gleam +++ /dev/null @@ -1,744 +0,0 @@ -import gleam/string -import gleam/dynamic.{type Dynamic} -import gleam/erlang.{type Reference} -import gleam/erlang/atom.{type Atom} - -/// A `Pid` (or Process identifier) is a reference to an Erlang process. Each -/// process has a `Pid` and it is one of the lowest level building blocks of -/// inter-process communication in the Erlang and Gleam OTP frameworks. -/// -pub type Pid - -/// Get the `Pid` for the current process. -@external(erlang, "erlang", "self") -pub fn self() -> Pid - -/// Create a new Erlang process that runs concurrently to the creator. In other -/// languages this might be called a fibre, a green thread, or a coroutine. -/// -/// If `linked` is `True` then the created process is linked to the creator -/// process. When a process terminates an exit signal is sent to all other -/// processes that are linked to it, causing the process to either terminate or -/// have to handle the signal. -/// -/// More can be read about processes and links in the [Erlang documentation][1]. -/// -/// [1]: https://www.erlang.org/doc/reference_manual/processes.html -/// -pub fn start(running implementation: fn() -> anything, linked link: Bool) -> Pid { - case link { - True -> spawn_link(implementation) - False -> spawn(implementation) - } -} - -@external(erlang, "erlang", "spawn") -fn spawn(a: fn() -> anything) -> Pid - -@external(erlang, "erlang", "spawn_link") -fn spawn_link(a: fn() -> anything) -> Pid - -/// A `Subject` is a value that processes can use to send and receive messages -/// to and from each other in a well typed way. -/// -/// Each subject is "owned" by the process that created it. Any process can use -/// the `send` function to sent a message of the correct type to the process -/// that owns the subject, and the owner can use the `receive` function or the -/// `Selector` type to receive these messages. -/// -/// The `Subject` type is similar to the "channel" types found in other -/// languages and the "topic" concept found in some pub-sub systems. -/// -/// # Examples -/// -/// ```gleam -/// let subject = new_subject() -/// -/// // Send a message with the subject -/// send(subject, "Hello, Joe!") -/// -/// // Receive the message -/// receive(subject, within: 10) -/// ``` -/// -pub opaque type Subject(message) { - Subject(owner: Pid, tag: Reference) -} - -/// Create a new `Subject` owned by the current process. -/// -pub fn new_subject() -> Subject(message) { - Subject(owner: self(), tag: erlang.make_reference()) -} - -/// Get the owner process for a `Subject`. This is the process that created the -/// `Subject` and will receive messages sent with it. -/// -pub fn subject_owner(subject: Subject(message)) -> Pid { - subject.owner -} - -type DoNotLeak - -@external(erlang, "erlang", "send") -fn raw_send(a: Pid, b: message) -> DoNotLeak - -/// Send a message to a process using a `Subject`. The message must be of the -/// type that the `Subject` accepts. -/// -/// This function does not wait for the `Subject` owner process to call the -/// `receive` function, instead it returns once the message has been placed in -/// the process' mailbox. -/// -/// # Ordering -/// -/// If process P1 sends two messages to process P2 it is guaranteed that process -/// P1 will receive the messages in the order they were sent. -/// -/// If you wish to receive the messages in a different order you can send them -/// on two different subjects and the receiver function can call the `receive` -/// function for each subject in the desired order, or you can write some Erlang -/// code to perform a selective receive. -/// -/// # Examples -/// -/// ```gleam -/// let subject = new_subject() -/// send(subject, "Hello, Joe!") -/// ``` -/// -pub fn send(subject: Subject(message), message: message) -> Nil { - raw_send(subject.owner, #(subject.tag, message)) - Nil -} - -/// Receive a message that has been sent to current process using the `Subject`. -/// -/// If there is not an existing message for the `Subject` in the process' -/// mailbox or one does not arrive `within` the permitted timeout then the -/// `Error(Nil)` is returned. -/// -/// Only the process that is owner of the `Subject` can receive a message using -/// it. If a process that does not own the `Subject` attempts to receive with it -/// then it will not receive a message. -/// -/// To wait for messages from multiple `Subject`s at the same time see the -/// `Selector` type. -/// -pub fn receive( - from subject: Subject(message), - within milliseconds: Int, -) -> Result(message, Nil) { - new_selector() - |> selecting(subject, fn(x) { x }) - |> select(within: milliseconds) -} - -/// A type that enables a process to wait for messages from multiple `Subject`s -/// at the same time, returning whichever message arrives first. -/// -/// Used with the `new_selector`, `selecting`, and `select` functions. -/// -/// # Examples -/// -/// ```gleam -/// > let int_subject = new_subject() -/// > let float_subject = new_subject() -/// > send(int_subject, 1) -/// > -/// > let selector = -/// > new_selector() -/// > |> selecting(int_subject, int.to_string) -/// > |> selecting(float_subject, float.to_string) -/// > -/// > select(selector, 10) -/// Ok("1") -/// ``` -/// -pub type Selector(payload) - -/// Create a new `Selector` which can be used to receive messages on multiple -/// `Subject`s at once. -/// -@external(erlang, "gleam_erlang_ffi", "new_selector") -pub fn new_selector() -> Selector(payload) - -/// Receive a message that has been sent to current process using any of the -/// `Subject`s that have been added to the `Selector` with the `selecting` -/// function. -/// -/// If there is not an existing message for the `Selector` in the process' -/// mailbox or one does not arrive `within` the permitted timeout then the -/// `Error(Nil)` is returned. -/// -/// Only the process that is owner of the `Subject`s can receive a message using -/// them. If a process that does not own the a `Subject` attempts to receive -/// with it then it will not receive a message. -/// -/// To wait forever for the next message rather than for a limited amount of -/// time see the `select_forever` function. -/// -@external(erlang, "gleam_erlang_ffi", "select") -pub fn select( - from from: Selector(payload), - within within: Int, -) -> Result(payload, Nil) - -/// Similar to the `select` function but will wait forever for a message to -/// arrive rather than timing out after a specified amount of time. -/// -@external(erlang, "gleam_erlang_ffi", "select") -pub fn select_forever(from from: Selector(payload)) -> payload - -/// Add a transformation function to a selector. When a message is received -/// using this selector the transformation function is applied to the message. -/// -/// This function can be used to change the type of messages received and may -/// be useful when combined with the `merge_selector` function. -/// -@external(erlang, "gleam_erlang_ffi", "map_selector") -pub fn map_selector(a: Selector(a), b: fn(a) -> b) -> Selector(b) - -/// Merge one selector into another, producing a selector that contains the -/// message handlers of both. -/// -/// If a subject is handled by both selectors the handler function of the -/// second selector is used. -/// -@external(erlang, "gleam_erlang_ffi", "merge_selector") -pub fn merge_selector(a: Selector(a), b: Selector(a)) -> Selector(a) - -pub type ExitMessage { - ExitMessage(pid: Pid, reason: ExitReason) -} - -pub type ExitReason { - Normal - Killed - Abnormal(reason: String) -} - -/// Add a handler for trapped exit messages. In order for these messages to be -/// sent to the process when a linked process exits the process must call the -/// `trap_exit` beforehand. -/// -pub fn selecting_trapped_exits( - selector: Selector(a), - handler: fn(ExitMessage) -> a, -) -> Selector(a) { - let tag = atom.create_from_string("EXIT") - let handler = fn(message: #(Atom, Pid, Dynamic)) -> a { - let reason = message.2 - let normal = dynamic.from(Normal) - let killed = dynamic.from(Killed) - let reason = case dynamic.string(reason) { - _ if reason == normal -> Normal - _ if reason == killed -> Killed - Ok(reason) -> Abnormal(reason) - Error(_) -> Abnormal(string.inspect(reason)) - } - handler(ExitMessage(message.1, reason)) - } - insert_selector_handler(selector, #(tag, 3), handler) -} - -// TODO: implement in Gleam -/// Discard all messages in the current process' mailbox. -/// -/// Warning: This function may cause other processes to crash if they sent a -/// message to the current process and are waiting for a response, so use with -/// caution. -/// -@external(erlang, "gleam_erlang_ffi", "flush_messages") -pub fn flush_messages() -> Nil - -/// Add a new `Subject` to the `Selector` to that it's messages can be received. -/// -/// The `mapping` function provided with the `Subject` can be used to convert -/// the type of messages received using this `Subject`. This is useful for when -/// you wish to add multiple `Subject`s to a `Seletor` when they have differing -/// message types. If you do not wish to transform the incoming messages in any -/// way then the `identity` function can be given. -/// -pub fn selecting( - selector: Selector(payload), - for subject: Subject(message), - mapping transform: fn(message) -> payload, -) -> Selector(payload) { - let handler = fn(message: #(Reference, message)) { transform(message.1) } - insert_selector_handler(selector, #(subject.tag, 2), handler) -} - -/// Add a handler to a selector for 2 element tuple messages with a given tag -/// element in the first position. -/// -/// Typically you want to use the `selecting` function with a `Subject` instead, -/// but this function may be useful if you need to receive messages sent from -/// other BEAM languages that do not use the `Subject` type. -/// -pub fn selecting_record2( - selector: Selector(payload), - tag: tag, - mapping transform: fn(Dynamic) -> payload, -) -> Selector(payload) { - let handler = fn(message: #(tag, Dynamic)) { transform(message.1) } - insert_selector_handler(selector, #(tag, 2), handler) -} - -/// Add a handler to a selector for 3 element tuple messages with a given tag -/// element in the first position. -/// -/// Typically you want to use the `selecting` function with a `Subject` instead, -/// but this function may be useful if you need to receive messages sent from -/// other BEAM languages that do not use the `Subject` type. -/// -pub fn selecting_record3( - selector: Selector(payload), - tag: tag, - mapping transform: fn(Dynamic, Dynamic) -> payload, -) -> Selector(payload) { - let handler = fn(message: #(tag, Dynamic, Dynamic)) { - transform(message.1, message.2) - } - insert_selector_handler(selector, #(tag, 3), handler) -} - -/// Add a handler to a selector for 4 element tuple messages with a given tag -/// element in the first position. -/// -/// Typically you want to use the `selecting` function with a `Subject` instead, -/// but this function may be useful if you need to receive messages sent from -/// other BEAM languages that do not use the `Subject` type. -/// -pub fn selecting_record4( - selector: Selector(payload), - tag: tag, - mapping transform: fn(Dynamic, Dynamic, Dynamic) -> payload, -) -> Selector(payload) { - let handler = fn(message: #(tag, Dynamic, Dynamic, Dynamic)) { - transform(message.1, message.2, message.3) - } - insert_selector_handler(selector, #(tag, 4), handler) -} - -/// Add a handler to a selector for 5 element tuple messages with a given tag -/// element in the first position. -/// -/// Typically you want to use the `selecting` function with a `Subject` instead, -/// but this function may be useful if you need to receive messages sent from -/// other BEAM languages that do not use the `Subject` type. -/// -pub fn selecting_record5( - selector: Selector(payload), - tag: tag, - mapping transform: fn(Dynamic, Dynamic, Dynamic, Dynamic) -> payload, -) -> Selector(payload) { - let handler = fn(message: #(tag, Dynamic, Dynamic, Dynamic, Dynamic)) { - transform(message.1, message.2, message.3, message.4) - } - insert_selector_handler(selector, #(tag, 5), handler) -} - -/// Add a handler to a selector for 6 element tuple messages with a given tag -/// element in the first position. -/// -/// Typically you want to use the `selecting` function with a `Subject` instead, -/// but this function may be useful if you need to receive messages sent from -/// other BEAM languages that do not use the `Subject` type. -/// -pub fn selecting_record6( - selector: Selector(payload), - tag: tag, - mapping transform: fn(Dynamic, Dynamic, Dynamic, Dynamic, Dynamic) -> payload, -) -> Selector(payload) { - let handler = fn(message: #(tag, Dynamic, Dynamic, Dynamic, Dynamic, Dynamic)) { - transform(message.1, message.2, message.3, message.4, message.5) - } - insert_selector_handler(selector, #(tag, 6), handler) -} - -/// Add a handler to a selector for 7 element tuple messages with a given tag -/// element in the first position. -/// -/// Typically you want to use the `selecting` function with a `Subject` instead, -/// but this function may be useful if you need to receive messages sent from -/// other BEAM languages that do not use the `Subject` type. -/// -pub fn selecting_record7( - selector: Selector(payload), - tag: tag, - mapping transform: fn(Dynamic, Dynamic, Dynamic, Dynamic, Dynamic, Dynamic) -> - payload, -) -> Selector(payload) { - let handler = fn( - message: #(tag, Dynamic, Dynamic, Dynamic, Dynamic, Dynamic, Dynamic), - ) { - transform(message.1, message.2, message.3, message.4, message.5, message.6) - } - insert_selector_handler(selector, #(tag, 7), handler) -} - -/// Add a handler to a selector for 8 element tuple messages with a given tag -/// element in the first position. -/// -/// Typically you want to use the `selecting` function with a `Subject` instead, -/// but this function may be useful if you need to receive messages sent from -/// other BEAM languages that do not use the `Subject` type. -/// -pub fn selecting_record8( - selector: Selector(payload), - tag: tag, - mapping transform: fn( - Dynamic, - Dynamic, - Dynamic, - Dynamic, - Dynamic, - Dynamic, - Dynamic, - ) -> - payload, -) -> Selector(payload) { - let handler = fn( - message: #( - tag, - Dynamic, - Dynamic, - Dynamic, - Dynamic, - Dynamic, - Dynamic, - Dynamic, - ), - ) { - transform( - message.1, - message.2, - message.3, - message.4, - message.5, - message.6, - message.7, - ) - } - insert_selector_handler(selector, #(tag, 8), handler) -} - -type AnythingSelectorTag { - Anything -} - -/// Add a catch-all handler to a selector that will be used when no other -/// handler in a selector is suitable for a given message. -/// -/// This may be useful for when you want to ensure that any message in the inbox -/// is handled, or when you need to handle messages from other BEAM languages -/// which do not use subjects or record format messages. -/// -pub fn selecting_anything( - selector: Selector(payload), - mapping handler: fn(Dynamic) -> payload, -) -> Selector(payload) { - insert_selector_handler(selector, Anything, handler) -} - -@external(erlang, "gleam_erlang_ffi", "insert_selector_handler") -fn insert_selector_handler( - a: Selector(payload), - for for: tag, - mapping mapping: fn(message) -> payload, -) -> Selector(payload) - -/// Suspends the process calling this function for the specified number of -/// milliseconds. -/// -@external(erlang, "gleam_erlang_ffi", "sleep") -pub fn sleep(a: Int) -> Nil - -/// Suspends the process forever! This may be useful for suspending the main -/// process in a Gleam program when it has no more work to do but we want other -/// processes to continue to work. -/// -@external(erlang, "gleam_erlang_ffi", "sleep_forever") -pub fn sleep_forever() -> Nil - -/// Check to see whether the process for a given `Pid` is alive. -/// -/// See the [Erlang documentation][1] for more information. -/// -/// [1]: http://erlang.org/doc/man/erlang.html#is_process_alive-1 -/// -@external(erlang, "erlang", "is_process_alive") -pub fn is_alive(a: Pid) -> Bool - -type ProcessMonitorFlag { - Process -} - -@external(erlang, "erlang", "monitor") -fn erlang_monitor_process(a: ProcessMonitorFlag, b: Pid) -> Reference - -pub opaque type ProcessMonitor { - ProcessMonitor(tag: Reference) -} - -/// A message received when a monitored process exits. -/// -pub type ProcessDown { - ProcessDown(pid: Pid, reason: Dynamic) -} - -/// Start monitoring a process so that when the monitored process exits a -/// message is sent to the monitoring process. -/// -/// The message is only sent once, when the target process exits. If the -/// process was not alive when this function is called the message will never -/// be received. -/// -/// The down message can be received with a `Selector` and the -/// `selecting_process_down` function. -/// -/// The process can be demonitored with the `demonitor_process` function. -/// -pub fn monitor_process(pid: Pid) -> ProcessMonitor { - Process - |> erlang_monitor_process(pid) - |> ProcessMonitor -} - -/// Add a `ProcessMonitor` to a `Selector` so that the `ProcessDown` message can -/// be received using the `Selector` and the `select` function. -/// -pub fn selecting_process_down( - selector: Selector(payload), - monitor: ProcessMonitor, - mapping: fn(ProcessDown) -> payload, -) -> Selector(payload) { - insert_selector_handler(selector, monitor.tag, mapping) -} - -/// Remove the monitor for a process so that when the monitor process exits a -/// `ProcessDown` message is not sent to the monitoring process. -/// -/// If the message has already been sent it is removed from the monitoring -/// process' mailbox. -/// -@external(erlang, "gleam_erlang_ffi", "demonitor") -pub fn demonitor_process(monitor monitor: ProcessMonitor) -> Nil - -/// An error returned when making a call to a process. -/// -pub type CallError(msg) { - /// The process being called exited before it sent a response. - /// - CalleeDown(reason: Dynamic) - - /// The process being called did not response within the permitted amount of - /// time. - /// - CallTimeout -} - -// This function is based off of Erlang's gen:do_call/4. -/// Send a message to a process and wait for a reply. -/// -/// If the receiving process exits or does not reply within the allowed amount -/// of time then an error is returned. -/// -pub fn try_call( - subject: Subject(request), - make_request: fn(Subject(response)) -> request, - within timeout: Int, -) -> Result(response, CallError(response)) { - let reply_subject = new_subject() - - // Monitor the callee process so we can tell if it goes down (meaning we - // won't get a reply) - let monitor = monitor_process(subject_owner(subject)) - - // Send the request to the process over the channel - send(subject, make_request(reply_subject)) - - // Await a reply or handle failure modes (timeout, process down, etc) - let result = - new_selector() - |> selecting(reply_subject, Ok) - |> selecting_process_down( - monitor, - fn(down: ProcessDown) { Error(CalleeDown(reason: down.reason)) }, - ) - |> select(timeout) - - // Demonitor the process and close the channels as we're done - demonitor_process(monitor) - - // Prepare an appropriate error (if present) for the caller - case result { - Error(Nil) -> Error(CallTimeout) - Ok(res) -> res - } -} - -/// Send a message to a process and wait for a reply. -/// -/// If the receiving process exits or does not reply within the allowed amount -/// of time the calling process crashes. If you wish an error to be returned -/// instead see the `try_call` function. -/// -pub fn call( - subject: Subject(request), - make_request: fn(Subject(response)) -> request, - within timeout: Int, -) -> response { - let assert Ok(resp) = try_call(subject, make_request, timeout) - resp -} - -/// Creates a link between the calling process and another process. -/// -/// When a process crashes any linked processes will also crash. This is useful -/// to ensure that groups of processes that depend on each other all either -/// succeed or fail together. -/// -/// Returns `True` if the link was created successfully, returns `False` if the -/// process was not alive and as such could not be linked. -/// -@external(erlang, "gleam_erlang_ffi", "link") -pub fn link(pid pid: Pid) -> Bool - -@external(erlang, "erlang", "unlink") -fn erlang_unlink(pid pid: Pid) -> Bool - -/// Removes any existing link between the caller process and the target process. -/// -pub fn unlink(pid: Pid) -> Nil { - erlang_unlink(pid) - Nil -} - -pub type Timer - -@external(erlang, "erlang", "send_after") -fn erlang_send_after(a: Int, b: Pid, c: msg) -> Timer - -/// Send a message over a channel after a specified number of milliseconds. -/// -pub fn send_after(subject: Subject(msg), delay: Int, message: msg) -> Timer { - erlang_send_after(delay, subject.owner, #(subject.tag, message)) -} - -@external(erlang, "erlang", "cancel_timer") -fn erlang_cancel_timer(a: Timer) -> Dynamic - -/// Values returned when a timer is cancelled. -/// -pub type Cancelled { - /// The timer could not be found. It likely has already triggered. - /// - TimerNotFound - - /// The timer was found and cancelled before it triggered. - /// - /// The amount of remaining time before the timer was due to be triggered is - /// returned in milliseconds. - /// - Cancelled(time_remaining: Int) -} - -/// Cancel a given timer, causing it not to trigger if it has not done already. -/// -pub fn cancel_timer(timer: Timer) -> Cancelled { - case dynamic.int(erlang_cancel_timer(timer)) { - Ok(i) -> Cancelled(i) - Error(_) -> TimerNotFound - } -} - -type KillFlag { - Kill -} - -@external(erlang, "erlang", "exit") -fn erlang_kill(to to: Pid, because because: KillFlag) -> Bool - -// Go, my pretties. Kill! Kill! -// - Bart Simpson -// -/// Send an untrappable `kill` exit signal to the target process. -/// -/// See the documentation for the Erlang [`erlang:exit`][1] function for more -/// information. -/// -/// [1]: https://erlang.org/doc/man/erlang.html#exit-1 -/// -pub fn kill(pid: Pid) -> Nil { - erlang_kill(pid, Kill) - Nil -} - -@external(erlang, "erlang", "exit") -fn erlang_send_exit(to to: Pid, because because: whatever) -> Bool - -// TODO: test -/// Sends an exit signal to a process, indicating that the process is to shut -/// down. -/// -/// See the [Erlang documentation][erl] for more information. -/// [erl]: http://erlang.org/doc/man/erlang.html#exit-2 -/// -pub fn send_exit(to pid: Pid) -> Nil { - erlang_send_exit(pid, Normal) - Nil -} - -/// Sends an exit signal to a process, indicating that the process is to shut -/// down due to an abnormal reason such as a failure. -/// -/// See the [Erlang documentation][erl] for more information. -/// [erl]: http://erlang.org/doc/man/erlang.html#exit-2 -/// -pub fn send_abnormal_exit(pid: Pid, reason: String) -> Nil { - erlang_send_exit(pid, Abnormal(reason)) - Nil -} - -/// Set whether the current process is to trap exit signals or not. -/// -/// When not trapping exits if a linked process crashes the exit signal -/// propagates to the process which will also crash. -/// This is the normal behaviour before this function is called. -/// -/// When trapping exits (after this function is called) if a linked process -/// crashes an exit message is sent to the process instead. These messages can -/// be handled with the `selecting_trapped_exits` function. -/// -@external(erlang, "gleam_erlang_ffi", "trap_exits") -pub fn trap_exits(a: Bool) -> Nil - -/// Register a process under a given name, allowing it to be looked up using -/// the `named` function. -/// -/// This function will return an error under the following conditions: -/// - The process for the pid no longer exists. -/// - The name has already been registered. -/// - The process already has a name. -/// - The name is the atom `undefined`, which is reserved by Erlang. -/// -@external(erlang, "gleam_erlang_ffi", "register_process") -pub fn register(pid: Pid, name: Atom) -> Result(Nil, Nil) - -/// Un-register a process name, after which the process can no longer be looked -/// up by that name, and both the name and the process can be re-used in other -/// registrations. -/// -/// It is possible to un-register process that are not from your application, -/// including those from Erlang/OTP itself. This is not recommended and will -/// likely result in undesirable behaviour and crashes. -/// -@external(erlang, "gleam_erlang_ffi", "unregister_process") -pub fn unregister(name: Atom) -> Result(Nil, Nil) - -/// Look up a process by name, returning the pid if it exists. -/// -@external(erlang, "gleam_erlang_ffi", "process_named") -pub fn named(name: Atom) -> Result(Pid, Nil) diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang.erl b/aoc2023/build/packages/gleam_erlang/src/gleam@erlang.erl deleted file mode 100644 index 14a5538..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang.erl +++ /dev/null @@ -1,90 +0,0 @@ --module(gleam@erlang). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([format/1, term_to_binary/1, get_line/1, system_time/1, erlang_timestamp/0, rescue/1, binary_to_term/1, unsafe_binary_to_term/1, start_arguments/0, ensure_all_started/1, make_reference/0, priv_directory/1]). --export_type([safe/0, get_line_error/0, time_unit/0, crash/0, ensure_all_started_error/0, reference_/0]). - --type safe() :: safe. - --type get_line_error() :: eof | no_data. - --type time_unit() :: second | millisecond | microsecond | nanosecond. - --type crash() :: {exited, gleam@dynamic:dynamic_()} | - {thrown, gleam@dynamic:dynamic_()} | - {errored, gleam@dynamic:dynamic_()}. - --type ensure_all_started_error() :: {unknown_application, - gleam@erlang@atom:atom_()} | - {application_failed_to_start, - gleam@erlang@atom:atom_(), - gleam@dynamic:dynamic_()}. - --type reference_() :: any(). - --spec format(any()) -> binary(). -format(Term) -> - unicode:characters_to_binary(io_lib:format(<<"~p"/utf8>>, [Term])). - --spec term_to_binary(any()) -> bitstring(). -term_to_binary(A) -> - erlang:term_to_binary(A). - --spec get_line(binary()) -> {ok, binary()} | {error, get_line_error()}. -get_line(Prompt) -> - gleam_erlang_ffi:get_line(Prompt). - --spec system_time(time_unit()) -> integer(). -system_time(A) -> - os:system_time(A). - --spec erlang_timestamp() -> {integer(), integer(), integer()}. -erlang_timestamp() -> - os:timestamp(). - --spec rescue(fun(() -> FHH)) -> {ok, FHH} | {error, crash()}. -rescue(A) -> - gleam_erlang_ffi:rescue(A). - --spec binary_to_term(bitstring()) -> {ok, gleam@dynamic:dynamic_()} | - {error, nil}. -binary_to_term(Binary) -> - case gleam_erlang_ffi:rescue( - fun() -> erlang:binary_to_term(Binary, [safe]) end - ) of - {ok, Term} -> - {ok, Term}; - - {error, _} -> - {error, nil} - end. - --spec unsafe_binary_to_term(bitstring()) -> {ok, gleam@dynamic:dynamic_()} | - {error, nil}. -unsafe_binary_to_term(Binary) -> - case gleam_erlang_ffi:rescue(fun() -> erlang:binary_to_term(Binary, []) end) of - {ok, Term} -> - {ok, Term}; - - {error, _} -> - {error, nil} - end. - --spec start_arguments() -> list(binary()). -start_arguments() -> - _pipe = init:get_plain_arguments(), - gleam@list:map(_pipe, fun unicode:characters_to_binary/1). - --spec ensure_all_started(gleam@erlang@atom:atom_()) -> {ok, - list(gleam@erlang@atom:atom_())} | - {error, ensure_all_started_error()}. -ensure_all_started(Application) -> - gleam_erlang_ffi:ensure_all_started(Application). - --spec make_reference() -> reference_(). -make_reference() -> - erlang:make_ref(). - --spec priv_directory(binary()) -> {ok, binary()} | {error, nil}. -priv_directory(Name) -> - gleam_erlang_ffi:priv_directory(Name). diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@atom.erl b/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@atom.erl deleted file mode 100644 index e9ad530..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@atom.erl +++ /dev/null @@ -1,26 +0,0 @@ --module(gleam@erlang@atom). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_string/1, create_from_string/1, to_string/1, from_dynamic/1]). --export_type([atom_/0, from_string_error/0]). - --type atom_() :: any(). - --type from_string_error() :: atom_not_loaded. - --spec from_string(binary()) -> {ok, atom_()} | {error, from_string_error()}. -from_string(A) -> - gleam_erlang_ffi:atom_from_string(A). - --spec create_from_string(binary()) -> atom_(). -create_from_string(A) -> - erlang:binary_to_atom(A). - --spec to_string(atom_()) -> binary(). -to_string(A) -> - erlang:atom_to_binary(A). - --spec from_dynamic(gleam@dynamic:dynamic_()) -> {ok, atom_()} | - {error, list(gleam@dynamic:decode_error())}. -from_dynamic(From) -> - gleam_erlang_ffi:atom_from_dynamic(From). diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@charlist.erl b/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@charlist.erl deleted file mode 100644 index 9f9c0fa..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@charlist.erl +++ /dev/null @@ -1,15 +0,0 @@ --module(gleam@erlang@charlist). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([to_string/1, from_string/1]). --export_type([charlist/0]). - --type charlist() :: any(). - --spec to_string(charlist()) -> binary(). -to_string(A) -> - unicode:characters_to_binary(A). - --spec from_string(binary()) -> charlist(). -from_string(A) -> - unicode:characters_to_list(A). diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@file.erl b/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@file.erl deleted file mode 100644 index 1fe6628..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@file.erl +++ /dev/null @@ -1,190 +0,0 @@ --module(gleam@erlang@file). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([file_info/1, link_info/1, is_directory/1, is_regular/1, file_exists/1, link_exists/1, make_directory/1, list_directory/1, delete_directory/1, recursive_delete/1, read/1, read_bits/1, write/2, write_bits/2, append/2, append_bits/2, delete/1]). --export_type([reason/0, file_type/0, access/0, file_info/0]). - --type reason() :: eacces | - eagain | - ebadf | - ebadmsg | - ebusy | - edeadlk | - edeadlock | - edquot | - eexist | - efault | - efbig | - eftype | - eintr | - einval | - eio | - eisdir | - eloop | - emfile | - emlink | - emultihop | - enametoolong | - enfile | - enobufs | - enodev | - enolck | - enolink | - enoent | - enomem | - enospc | - enosr | - enostr | - enosys | - enotblk | - enotdir | - enotsup | - enxio | - eopnotsupp | - eoverflow | - eperm | - epipe | - erange | - erofs | - espipe | - esrch | - estale | - etxtbsy | - exdev | - not_utf8. - --type file_type() :: device | directory | other | regular | symlink. - --type access() :: no_access | read | read_write | write. - --type file_info() :: {file_info, - integer(), - file_type(), - access(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer(), - integer()}. - --spec file_info(binary()) -> {ok, file_info()} | {error, reason()}. -file_info(A) -> - gleam_erlang_ffi:file_info(A). - --spec link_info(binary()) -> {ok, file_info()} | {error, reason()}. -link_info(A) -> - gleam_erlang_ffi:link_info(A). - --spec is_directory(binary()) -> {ok, boolean()} | {error, reason()}. -is_directory(Path) -> - gleam@result:map( - gleam_erlang_ffi:file_info(Path), - fun(_use0) -> - {file_info, _, File_type, _, _, _, _, _, _, _, _, _, _, _} = _use0, - File_type =:= directory - end - ). - --spec is_regular(binary()) -> {ok, boolean()} | {error, reason()}. -is_regular(Path) -> - gleam@result:map( - gleam_erlang_ffi:file_info(Path), - fun(_use0) -> - {file_info, _, File_type, _, _, _, _, _, _, _, _, _, _, _} = _use0, - File_type =:= regular - end - ). - --spec file_exists(binary()) -> {ok, boolean()} | {error, reason()}. -file_exists(Path) -> - Result = begin - _pipe = Path, - _pipe@1 = gleam_erlang_ffi:file_info(_pipe), - gleam@result:replace(_pipe@1, true) - end, - case Result of - {error, enoent} -> - {ok, false}; - - _ -> - Result - end. - --spec link_exists(binary()) -> {ok, boolean()} | {error, reason()}. -link_exists(Path) -> - Result = begin - _pipe = Path, - _pipe@1 = gleam_erlang_ffi:link_info(_pipe), - gleam@result:replace(_pipe@1, true) - end, - case Result of - {error, enoent} -> - {ok, false}; - - _ -> - Result - end. - --spec make_directory(binary()) -> {ok, nil} | {error, reason()}. -make_directory(A) -> - gleam_erlang_ffi:make_directory(A). - --spec list_directory(binary()) -> {ok, list(binary())} | {error, reason()}. -list_directory(A) -> - gleam_erlang_ffi:list_directory(A). - --spec delete_directory(binary()) -> {ok, nil} | {error, reason()}. -delete_directory(A) -> - gleam_erlang_ffi:delete_directory(A). - --spec recursive_delete(binary()) -> {ok, nil} | {error, reason()}. -recursive_delete(A) -> - gleam_erlang_ffi:recursive_delete(A). - --spec read(binary()) -> {ok, binary()} | {error, reason()}. -read(Path) -> - _pipe = Path, - _pipe@1 = gleam_erlang_ffi:read_file(_pipe), - gleam@result:then( - _pipe@1, - fun(Content) -> case gleam@bit_array:to_string(Content) of - {ok, String} -> - {ok, String}; - - {error, nil} -> - {error, not_utf8} - end end - ). - --spec read_bits(binary()) -> {ok, bitstring()} | {error, reason()}. -read_bits(Path) -> - gleam_erlang_ffi:read_file(Path). - --spec write(binary(), binary()) -> {ok, nil} | {error, reason()}. -write(Contents, Path) -> - _pipe = Contents, - _pipe@1 = gleam_stdlib:identity(_pipe), - gleam_erlang_ffi:write_file(_pipe@1, Path). - --spec write_bits(bitstring(), binary()) -> {ok, nil} | {error, reason()}. -write_bits(Contents, Path) -> - gleam_erlang_ffi:write_file(Contents, Path). - --spec append(binary(), binary()) -> {ok, nil} | {error, reason()}. -append(Contents, Path) -> - _pipe = Contents, - _pipe@1 = gleam_stdlib:identity(_pipe), - gleam_erlang_ffi:append_file(_pipe@1, Path). - --spec append_bits(bitstring(), binary()) -> {ok, nil} | {error, reason()}. -append_bits(Contents, Path) -> - gleam_erlang_ffi:append_file(Contents, Path). - --spec delete(binary()) -> {ok, nil} | {error, reason()}. -delete(A) -> - gleam_erlang_ffi:delete_file(A). diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@node.erl b/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@node.erl deleted file mode 100644 index f57d029..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@node.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(gleam@erlang@node). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([self/0, visible/0, connect/1, send/3, to_atom/1]). --export_type([node_/0, do_not_leak/0, connect_error/0]). - --type node_() :: any(). - --type do_not_leak() :: any(). - --type connect_error() :: failed_to_connect | local_node_is_not_alive. - --spec self() -> node_(). -self() -> - erlang:node(). - --spec visible() -> list(node_()). -visible() -> - erlang:nodes(). - --spec connect(gleam@erlang@atom:atom_()) -> {ok, node_()} | - {error, connect_error()}. -connect(Node) -> - gleam_erlang_ffi:connect_node(Node). - --spec send(node_(), gleam@erlang@atom:atom_(), any()) -> nil. -send(Node, Name, Message) -> - erlang:send({Name, Node}, Message), - nil. - --spec to_atom(node_()) -> gleam@erlang@atom:atom_(). -to_atom(Node) -> - gleam_erlang_ffi:identity(Node). diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@os.erl b/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@os.erl deleted file mode 100644 index 6604255..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@os.erl +++ /dev/null @@ -1,27 +0,0 @@ --module(gleam@erlang@os). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get_all_env/0, get_env/1, set_env/2, unset_env/1, family/0]). --export_type([os_family/0]). - --type os_family() :: windows_nt | linux | darwin | free_bsd | {other, binary()}. - --spec get_all_env() -> gleam@map:map_(binary(), binary()). -get_all_env() -> - gleam_erlang_ffi:get_all_env(). - --spec get_env(binary()) -> {ok, binary()} | {error, nil}. -get_env(Name) -> - gleam_erlang_ffi:get_env(Name). - --spec set_env(binary(), binary()) -> nil. -set_env(Name, Value) -> - gleam_erlang_ffi:set_env(Name, Value). - --spec unset_env(binary()) -> nil. -unset_env(Name) -> - gleam_erlang_ffi:unset_env(Name). - --spec family() -> os_family(). -family() -> - gleam_erlang_ffi:os_family(). diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@process.erl b/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@process.erl deleted file mode 100644 index fc8e0ff..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam@erlang@process.erl +++ /dev/null @@ -1,374 +0,0 @@ --module(gleam@erlang@process). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([self/0, start/2, new_subject/0, subject_owner/1, send/2, new_selector/0, select/2, select_forever/1, map_selector/2, merge_selector/2, flush_messages/0, selecting_trapped_exits/2, selecting/3, 'receive'/2, selecting_record2/3, selecting_record3/3, selecting_record4/3, selecting_record5/3, selecting_record6/3, selecting_record7/3, selecting_record8/3, selecting_anything/2, sleep/1, sleep_forever/0, is_alive/1, monitor_process/1, selecting_process_down/3, demonitor_process/1, try_call/3, call/3, link/1, unlink/1, send_after/3, cancel_timer/1, kill/1, send_exit/1, send_abnormal_exit/2, trap_exits/1, register/2, unregister/1, named/1]). --export_type([pid_/0, subject/1, do_not_leak/0, selector/1, exit_message/0, exit_reason/0, anything_selector_tag/0, process_monitor_flag/0, process_monitor/0, process_down/0, call_error/1, timer/0, cancelled/0, kill_flag/0]). - --type pid_() :: any(). - --opaque subject(FJD) :: {subject, pid_(), gleam@erlang:reference_()} | - {gleam_phantom, FJD}. - --type do_not_leak() :: any(). - --type selector(FJE) :: any() | {gleam_phantom, FJE}. - --type exit_message() :: {exit_message, pid_(), exit_reason()}. - --type exit_reason() :: normal | killed | {abnormal, binary()}. - --type anything_selector_tag() :: anything. - --type process_monitor_flag() :: process. - --opaque process_monitor() :: {process_monitor, gleam@erlang:reference_()}. - --type process_down() :: {process_down, pid_(), gleam@dynamic:dynamic_()}. - --type call_error(FJF) :: {callee_down, gleam@dynamic:dynamic_()} | - call_timeout | - {gleam_phantom, FJF}. - --type timer() :: any(). - --type cancelled() :: timer_not_found | {cancelled, integer()}. - --type kill_flag() :: kill. - --spec self() -> pid_(). -self() -> - erlang:self(). - --spec start(fun(() -> any()), boolean()) -> pid_(). -start(Implementation, Link) -> - case Link of - true -> - erlang:spawn_link(Implementation); - - false -> - erlang:spawn(Implementation) - end. - --spec new_subject() -> subject(any()). -new_subject() -> - {subject, erlang:self(), erlang:make_ref()}. - --spec subject_owner(subject(any())) -> pid_(). -subject_owner(Subject) -> - erlang:element(2, Subject). - --spec send(subject(FJO), FJO) -> nil. -send(Subject, Message) -> - erlang:send( - erlang:element(2, Subject), - {erlang:element(3, Subject), Message} - ), - nil. - --spec new_selector() -> selector(any()). -new_selector() -> - gleam_erlang_ffi:new_selector(). - --spec select(selector(FJW), integer()) -> {ok, FJW} | {error, nil}. -select(From, Within) -> - gleam_erlang_ffi:select(From, Within). - --spec select_forever(selector(FKA)) -> FKA. -select_forever(From) -> - gleam_erlang_ffi:select(From). - --spec map_selector(selector(FKC), fun((FKC) -> FKE)) -> selector(FKE). -map_selector(A, B) -> - gleam_erlang_ffi:map_selector(A, B). - --spec merge_selector(selector(FKG), selector(FKG)) -> selector(FKG). -merge_selector(A, B) -> - gleam_erlang_ffi:merge_selector(A, B). - --spec flush_messages() -> nil. -flush_messages() -> - gleam_erlang_ffi:flush_messages(). - --spec selecting_trapped_exits(selector(FKK), fun((exit_message()) -> FKK)) -> selector(FKK). -selecting_trapped_exits(Selector, Handler) -> - Tag = erlang:binary_to_atom(<<"EXIT"/utf8>>), - Handler@1 = fun(Message) -> - Reason = erlang:element(3, Message), - Normal = gleam@dynamic:from(normal), - Killed = gleam@dynamic:from(killed), - Reason@2 = case gleam@dynamic:string(Reason) of - _ when Reason =:= Normal -> - normal; - - _ when Reason =:= Killed -> - killed; - - {ok, Reason@1} -> - {abnormal, Reason@1}; - - {error, _} -> - {abnormal, gleam@string:inspect(Reason)} - end, - Handler({exit_message, erlang:element(2, Message), Reason@2}) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 3}, Handler@1). - --spec selecting(selector(FKN), subject(FKP), fun((FKP) -> FKN)) -> selector(FKN). -selecting(Selector, Subject, Transform) -> - Handler = fun(Message) -> Transform(erlang:element(2, Message)) end, - gleam_erlang_ffi:insert_selector_handler( - Selector, - {erlang:element(3, Subject), 2}, - Handler - ). - --spec 'receive'(subject(FJQ), integer()) -> {ok, FJQ} | {error, nil}. -'receive'(Subject, Milliseconds) -> - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = selecting(_pipe, Subject, fun(X) -> X end), - gleam_erlang_ffi:select(_pipe@1, Milliseconds). - --spec selecting_record2( - selector(FKS), - any(), - fun((gleam@dynamic:dynamic_()) -> FKS) -) -> selector(FKS). -selecting_record2(Selector, Tag, Transform) -> - Handler = fun(Message) -> Transform(erlang:element(2, Message)) end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 2}, Handler). - --spec selecting_record3( - selector(FKW), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> FKW) -) -> selector(FKW). -selecting_record3(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform(erlang:element(2, Message), erlang:element(3, Message)) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 3}, Handler). - --spec selecting_record4( - selector(FLA), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> FLA) -) -> selector(FLA). -selecting_record4(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 4}, Handler). - --spec selecting_record5( - selector(FLE), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> FLE) -) -> selector(FLE). -selecting_record5(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message), - erlang:element(5, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 5}, Handler). - --spec selecting_record6( - selector(FLI), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> FLI) -) -> selector(FLI). -selecting_record6(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message), - erlang:element(5, Message), - erlang:element(6, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 6}, Handler). - --spec selecting_record7( - selector(FLM), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> FLM) -) -> selector(FLM). -selecting_record7(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message), - erlang:element(5, Message), - erlang:element(6, Message), - erlang:element(7, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 7}, Handler). - --spec selecting_record8( - selector(FLQ), - any(), - fun((gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_(), gleam@dynamic:dynamic_()) -> FLQ) -) -> selector(FLQ). -selecting_record8(Selector, Tag, Transform) -> - Handler = fun(Message) -> - Transform( - erlang:element(2, Message), - erlang:element(3, Message), - erlang:element(4, Message), - erlang:element(5, Message), - erlang:element(6, Message), - erlang:element(7, Message), - erlang:element(8, Message) - ) - end, - gleam_erlang_ffi:insert_selector_handler(Selector, {Tag, 8}, Handler). - --spec selecting_anything(selector(FLU), fun((gleam@dynamic:dynamic_()) -> FLU)) -> selector(FLU). -selecting_anything(Selector, Handler) -> - gleam_erlang_ffi:insert_selector_handler(Selector, anything, Handler). - --spec sleep(integer()) -> nil. -sleep(A) -> - gleam_erlang_ffi:sleep(A). - --spec sleep_forever() -> nil. -sleep_forever() -> - gleam_erlang_ffi:sleep_forever(). - --spec is_alive(pid_()) -> boolean(). -is_alive(A) -> - erlang:is_process_alive(A). - --spec monitor_process(pid_()) -> process_monitor(). -monitor_process(Pid) -> - _pipe = process, - _pipe@1 = erlang:monitor(_pipe, Pid), - {process_monitor, _pipe@1}. - --spec selecting_process_down( - selector(FMC), - process_monitor(), - fun((process_down()) -> FMC) -) -> selector(FMC). -selecting_process_down(Selector, Monitor, Mapping) -> - gleam_erlang_ffi:insert_selector_handler( - Selector, - erlang:element(2, Monitor), - Mapping - ). - --spec demonitor_process(process_monitor()) -> nil. -demonitor_process(Monitor) -> - gleam_erlang_ffi:demonitor(Monitor). - --spec try_call(subject(FMF), fun((subject(FMH)) -> FMF), integer()) -> {ok, FMH} | - {error, call_error(FMH)}. -try_call(Subject, Make_request, Timeout) -> - Reply_subject = new_subject(), - Monitor = monitor_process(subject_owner(Subject)), - send(Subject, Make_request(Reply_subject)), - Result = begin - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = selecting( - _pipe, - Reply_subject, - fun(Field@0) -> {ok, Field@0} end - ), - _pipe@2 = selecting_process_down( - _pipe@1, - Monitor, - fun(Down) -> {error, {callee_down, erlang:element(3, Down)}} end - ), - gleam_erlang_ffi:select(_pipe@2, Timeout) - end, - gleam_erlang_ffi:demonitor(Monitor), - case Result of - {error, nil} -> - {error, call_timeout}; - - {ok, Res} -> - Res - end. - --spec call(subject(FMM), fun((subject(FMO)) -> FMM), integer()) -> FMO. -call(Subject, Make_request, Timeout) -> - _assert_subject = try_call(Subject, Make_request, Timeout), - {ok, Resp} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/erlang/process"/utf8>>, - function => <<"call"/utf8>>, - line => 593}) - end, - Resp. - --spec link(pid_()) -> boolean(). -link(Pid) -> - gleam_erlang_ffi:link(Pid). - --spec unlink(pid_()) -> nil. -unlink(Pid) -> - erlang:unlink(Pid), - nil. - --spec send_after(subject(FMR), integer(), FMR) -> timer(). -send_after(Subject, Delay, Message) -> - erlang:send_after( - Delay, - erlang:element(2, Subject), - {erlang:element(3, Subject), Message} - ). - --spec cancel_timer(timer()) -> cancelled(). -cancel_timer(Timer) -> - case gleam@dynamic:int(erlang:cancel_timer(Timer)) of - {ok, I} -> - {cancelled, I}; - - {error, _} -> - timer_not_found - end. - --spec kill(pid_()) -> nil. -kill(Pid) -> - erlang:exit(Pid, kill), - nil. - --spec send_exit(pid_()) -> nil. -send_exit(Pid) -> - erlang:exit(Pid, normal), - nil. - --spec send_abnormal_exit(pid_(), binary()) -> nil. -send_abnormal_exit(Pid, Reason) -> - erlang:exit(Pid, {abnormal, Reason}), - nil. - --spec trap_exits(boolean()) -> nil. -trap_exits(A) -> - gleam_erlang_ffi:trap_exits(A). - --spec register(pid_(), gleam@erlang@atom:atom_()) -> {ok, nil} | {error, nil}. -register(Pid, Name) -> - gleam_erlang_ffi:register_process(Pid, Name). - --spec unregister(gleam@erlang@atom:atom_()) -> {ok, nil} | {error, nil}. -unregister(Name) -> - gleam_erlang_ffi:unregister_process(Name). - --spec named(gleam@erlang@atom:atom_()) -> {ok, pid_()} | {error, nil}. -named(Name) -> - gleam_erlang_ffi:process_named(Name). diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam_erlang.app.src b/aoc2023/build/packages/gleam_erlang/src/gleam_erlang.app.src deleted file mode 100644 index bb1b8e6..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam_erlang.app.src +++ /dev/null @@ -1,14 +0,0 @@ -{application, gleam_erlang, [ - {vsn, "0.23.1"}, - {applications, [gleam_stdlib, - gleeunit]}, - {description, "A Gleam library for working with Erlang"}, - {modules, [gleam@erlang, - gleam@erlang@atom, - gleam@erlang@charlist, - gleam@erlang@file, - gleam@erlang@node, - gleam@erlang@os, - gleam@erlang@process]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gleam_erlang/src/gleam_erlang_ffi.erl b/aoc2023/build/packages/gleam_erlang/src/gleam_erlang_ffi.erl deleted file mode 100644 index 872126f..0000000 --- a/aoc2023/build/packages/gleam_erlang/src/gleam_erlang_ffi.erl +++ /dev/null @@ -1,263 +0,0 @@ --module(gleam_erlang_ffi). --export([ - atom_from_dynamic/1, rescue/1, atom_from_string/1, get_line/1, - ensure_all_started/1, sleep/1, os_family/0, sleep_forever/0, read_file/1, - append_file/2, write_file/2, delete_file/1, get_all_env/0, get_env/1, - set_env/2, unset_env/1, delete_directory/1, recursive_delete/1, - list_directory/1, demonitor/1, make_directory/1, new_selector/0, link/1, - insert_selector_handler/3, select/1, select/2, trap_exits/1, map_selector/2, - merge_selector/2, flush_messages/0, file_info/1, link_info/1, - priv_directory/1, connect_node/1, register_process/2, unregister_process/1, - process_named/1, identity/1 -]). - --define(is_posix_error(Error), - Error =:= eacces orelse Error =:= eagain orelse Error =:= ebadf orelse - Error =:= ebadmsg orelse Error =:= ebusy orelse Error =:= edeadlk orelse - Error =:= edeadlock orelse Error =:= edquot orelse Error =:= eexist orelse - Error =:= efault orelse Error =:= efbig orelse Error =:= eftype orelse - Error =:= eintr orelse Error =:= einval orelse Error =:= eio orelse - Error =:= eisdir orelse Error =:= eloop orelse Error =:= emfile orelse - Error =:= emlink orelse Error =:= emultihop orelse Error =:= enametoolong orelse - Error =:= enfile orelse Error =:= enobufs orelse Error =:= enodev orelse - Error =:= enolck orelse Error =:= enolink orelse Error =:= enoent orelse - Error =:= enomem orelse Error =:= enospc orelse Error =:= enosr orelse - Error =:= enostr orelse Error =:= enosys orelse Error =:= enotblk orelse - Error =:= enotdir orelse Error =:= enotsup orelse Error =:= enxio orelse - Error =:= eopnotsupp orelse Error =:= eoverflow orelse Error =:= eperm orelse - Error =:= epipe orelse Error =:= erange orelse Error =:= erofs orelse - Error =:= espipe orelse Error =:= esrch orelse Error =:= estale orelse - Error =:= etxtbsy orelse Error =:= exdev -). - --spec atom_from_string(binary()) -> {ok, atom()} | {error, atom_not_loaded}. -atom_from_string(S) -> - try {ok, binary_to_existing_atom(S)} - catch error:badarg -> {error, atom_not_loaded} - end. - -atom_from_dynamic(Data) when is_atom(Data) -> - {ok, Data}; -atom_from_dynamic(Data) -> - {error, [{decode_error, <<"Atom">>, gleam@dynamic:classify(Data), []}]}. - --spec get_line(io:prompt()) -> {ok, unicode:unicode_binary()} | {error, eof | no_data}. -get_line(Prompt) -> - case io:get_line(Prompt) of - eof -> {error, eof}; - {error, _} -> {error, no_data}; - Data when is_binary(Data) -> {ok, Data}; - Data when is_list(Data) -> {ok, unicode:characters_to_binary(Data)} - end. - -rescue(F) -> - try {ok, F()} - catch - throw:X -> {error, {thrown, X}}; - error:X -> {error, {errored, X}}; - exit:X -> {error, {exited, X}} - end. - -ensure_all_started(Application) -> - case application:ensure_all_started(Application) of - {ok, _} = Ok -> Ok; - - {error, {ProblemApp, {"no such file or directory", _}}} -> - {error, {unknown_application, ProblemApp}} - end. - -sleep(Microseconds) -> - timer:sleep(Microseconds), - nil. - -sleep_forever() -> - timer:sleep(infinity), - nil. - -file_info_result(Result) -> - case Result of - {ok, {file_info, Size, Type, Access, Atime, Mtime, Ctime, Mode, Links, MajorDevice, MinorDevice, Inode, Uid, Gid}} when Access =:= none -> - {ok, {file_info, Size, Type, no_access, Atime, Mtime, Ctime, Mode, Links, MajorDevice, MinorDevice, Inode, Uid, Gid}}; - {ok, _} -> - Result; - {error, Reason} when ?is_posix_error(Reason) -> - Result - end. - -file_info(Filename) -> - file_info_result(file:read_file_info(Filename, [{time, posix}])). - -link_info(Filename) -> - file_info_result(file:read_link_info(Filename, [{time, posix}])). - -posix_result(Result) -> - case Result of - ok -> {ok, nil}; - {ok, Value} -> {ok, Value}; - {error, Reason} when ?is_posix_error(Reason) -> {error, Reason} - end. - -read_file(Filename) -> - posix_result(file:read_file(Filename)). - -write_file(Contents, Filename) -> - posix_result(file:write_file(Filename, Contents)). - -append_file(Contents, Filename) -> - posix_result(file:write_file(Filename, Contents, [append])). - -delete_file(Filename) -> - posix_result(file:delete(Filename)). - -make_directory(Dir) -> - posix_result(file:make_dir(Dir)). - -list_directory(Dir) -> - case file:list_dir(Dir) of - {ok, Filenames} -> - {ok, [list_to_binary(Filename) || Filename <- Filenames]}; - {error, Reason} when ?is_posix_error(Reason) -> - {error, Reason} - end. - -delete_directory(Dir) -> - posix_result(file:del_dir(Dir)). - -recursive_delete(Dir) -> - posix_result(file:del_dir_r(Dir)). - -get_all_env() -> - BinVars = lists:map(fun(VarString) -> - [VarName, VarVal] = string:split(VarString, "="), - {list_to_binary(VarName), list_to_binary(VarVal)} - end, os:getenv()), - maps:from_list(BinVars). - -get_env(Name) -> - case os:getenv(binary_to_list(Name)) of - false -> {error, nil}; - Value -> {ok, list_to_binary(Value)} - end. - -set_env(Name, Value) -> - os:putenv(binary_to_list(Name), binary_to_list(Value)), - nil. - -unset_env(Name) -> - os:unsetenv(binary_to_list(Name)), - nil. - -os_family() -> - case os:type() of - {win32, nt} -> - windows_nt; - {unix, linux} -> - linux; - {unix, darwin} -> - darwin; - {unix, freebsd} -> - free_bsd; - {_, Other} -> - {other, atom_to_binary(Other, utf8)} - end. - -new_selector() -> - {selector, #{}}. - -map_selector({selector, Handlers}, Fn) -> - MappedHandlers = maps:map(fun(_Tag, Handler) -> - fun(Message) -> Fn(Handler(Message)) end - end, Handlers), - {selector, MappedHandlers}. - -merge_selector({selector, HandlersA}, {selector, HandlersB}) -> - {selector, maps:merge(HandlersA, HandlersB)}. - -insert_selector_handler({selector, Handlers}, Tag, Fn) -> - {selector, Handlers#{Tag => Fn}}. - -select(Selector) -> - {ok, Message} = select(Selector, infinity), - Message. - -select({selector, Handlers}, Timeout) -> - AnythingHandler = maps:get(anything, Handlers, undefined), - receive - % Monitored process down messages. - % This is special cased so we can selectively receive based on the - % reference as well as the record tag. - {'DOWN', Ref, process, Pid, Reason} when is_map_key(Ref, Handlers) -> - Fn = maps:get(Ref, Handlers), - {ok, Fn({process_down, Pid, Reason})}; - - Msg when is_map_key({element(1, Msg), tuple_size(Msg)}, Handlers) -> - Fn = maps:get({element(1, Msg), tuple_size(Msg)}, Handlers), - {ok, Fn(Msg)}; - - Msg when AnythingHandler =/= undefined -> - {ok, AnythingHandler(Msg)} - after Timeout -> - {error, nil} - end. - -demonitor({_, Reference}) -> - erlang:demonitor(Reference, [flush]). - -link(Pid) -> - try - erlang:link(Pid) - catch - error:_ -> false - end. - -trap_exits(ShouldTrap) -> - erlang:process_flag(trap_exit, ShouldTrap), - nil. - -flush_messages() -> - receive _Message -> flush_messages() - after 0 -> nil - end. - -priv_directory(Name) -> - try erlang:binary_to_existing_atom(Name) of - Atom -> - case code:priv_dir(Atom) of - {error, _} -> {error, nil}; - Path -> {ok, unicode:characters_to_binary(Path)} - end - catch - error:badarg -> {error, nil} - end. - -connect_node(Node) -> - case net_kernel:connect_node(Node) of - true -> {ok, Node}; - false -> {error, failed_to_connect}; - ignored -> {error, local_node_is_not_alive} - end. - -register_process(Pid, Name) -> - try - true = erlang:register(Name, Pid), - {ok, nil} - catch - error:badarg -> {error, nil} - end. - -unregister_process(Name) -> - try - true = erlang:unregister(Name), - {ok, nil} - catch - error:badarg -> {error, nil} - end. - -process_named(Name) -> - case erlang:whereis(Name) of - Pid when is_pid(Pid) -> {ok, Pid}; - _ -> {error, nil} - end. - -identity(X) -> - X. diff --git a/aoc2023/build/packages/gleam_http/LICENSE b/aoc2023/build/packages/gleam_http/LICENSE deleted file mode 100644 index 619ec77..0000000 --- a/aoc2023/build/packages/gleam_http/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2019, Louis Pilfold . - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/aoc2023/build/packages/gleam_http/README.md b/aoc2023/build/packages/gleam_http/README.md deleted file mode 100644 index 9e06952..0000000 --- a/aoc2023/build/packages/gleam_http/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# Gleam HTTP - -Types and functions for HTTP clients and servers! - -## HTTP Service Example - -```gleam -import gleam/http/elli -import gleam/http/response.{Response} -import gleam/http/request.{Request} -import gleam/bit_builder.{BitBuilder} - -// Define a HTTP service -// -pub fn my_service(request: Request(t)) -> Response(BitBuilder) { - let body = bit_builder.from_string("Hello, world!") - - response.new(200) - |> response.prepend_header("made-with", "Gleam") - |> response.set_body(body) -} - -// Start it on port 3000 using the Elli web server -// -pub fn main() { - elli.become(my_service, on_port: 3000) -} -``` - -## Server adapters - -In the example above the Elli Erlang web server is used to run the Gleam HTTP -service. Here's a full list of the server adapters available, sorted -alphabetically. - -| Adapter | About | -| --- | --- | -| [Mist][mist] | [Mist][mist] is a high performance pure Gleam web server | -| [gleam_cowboy][cowboy-adapter] | [Cowboy][cowboy] is an Erlang HTTP2 & HTTP1.1 web server | -| [gleam_elli][elli-adapter] | [Elli][elli] is an Erlang HTTP1.1 web server | -| [gleam_plug][plug-adapter] | [Plug][plug] is an Elixir web application interface | - -[cowboy]:https://github.com/ninenines/cowboy -[cowboy-adapter]: https://github.com/gleam-lang/cowboy -[elli]:https://github.com/elli-lib/elli -[elli-adapter]: https://github.com/gleam-lang/elli -[plug]:https://github.com/elixir-plug/plug -[plug-adapter]: https://github.com/gleam-lang/plug -[mist]: https://github.com/rawhat/mist - -## Client adapters - -Client adapters are used to send HTTP requests to services over the network. -Here's a full list of the client adapters available, sorted alphabetically. - -| Adapter | About | -| --- | --- | -| [gleam_fetch][fetch-adapter] | [fetch][fetch] is a HTTP client included with JavaScript | -| [gleam_hackney][hackney-adapter] | [Hackney][hackney] is a simple HTTP client for Erlang | -| [gleam_httpc][httpc-adapter] | [httpc][httpc] is a HTTP client included with Erlang | - -[hackney]: https://github.com/benoitc/hackney -[hackney-adapter]: https://github.com/gleam-lang/hackney -[httpc]: https://erlang.org/doc/man/httpc.html -[httpc-adapter]: https://github.com/gleam-lang/httpc -[fetch]: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API -[fetch-adapter]: https://github.com/gleam-lang/fetch diff --git a/aoc2023/build/packages/gleam_http/gleam.toml b/aoc2023/build/packages/gleam_http/gleam.toml deleted file mode 100644 index ba733e8..0000000 --- a/aoc2023/build/packages/gleam_http/gleam.toml +++ /dev/null @@ -1,17 +0,0 @@ -name = "gleam_http" -version = "3.5.2" -licences = ["Apache-2.0"] -description = "Types and functions for Gleam HTTP clients and servers" -gleam = ">= 0.32.0" - -repository = { type = "github", user = "gleam-lang", repo = "http" } -links = [ - { title = "Website", href = "https://gleam.run" }, - { title = "Sponsor", href = "https://github.com/sponsors/lpil" }, -] - -[dependencies] -gleam_stdlib = "~> 0.32" - -[dev-dependencies] -gleeunit = "~> 1.0" diff --git a/aoc2023/build/packages/gleam_http/include/gleam@http@cookie_Attributes.hrl b/aoc2023/build/packages/gleam_http/include/gleam@http@cookie_Attributes.hrl deleted file mode 100644 index 78a7d02..0000000 --- a/aoc2023/build/packages/gleam_http/include/gleam@http@cookie_Attributes.hrl +++ /dev/null @@ -1,8 +0,0 @@ --record(attributes, { - max_age :: gleam@option:option(integer()), - domain :: gleam@option:option(binary()), - path :: gleam@option:option(binary()), - secure :: boolean(), - http_only :: boolean(), - same_site :: gleam@option:option(gleam@http@cookie:same_site_policy()) -}). diff --git a/aoc2023/build/packages/gleam_http/include/gleam@http@request_Request.hrl b/aoc2023/build/packages/gleam_http/include/gleam@http@request_Request.hrl deleted file mode 100644 index c8bbae6..0000000 --- a/aoc2023/build/packages/gleam_http/include/gleam@http@request_Request.hrl +++ /dev/null @@ -1,10 +0,0 @@ --record(request, { - method :: gleam@http:method(), - headers :: list({binary(), binary()}), - body :: any(), - scheme :: gleam@http:scheme(), - host :: binary(), - port :: gleam@option:option(integer()), - path :: binary(), - 'query' :: gleam@option:option(binary()) -}). diff --git a/aoc2023/build/packages/gleam_http/include/gleam@http@response_Response.hrl b/aoc2023/build/packages/gleam_http/include/gleam@http@response_Response.hrl deleted file mode 100644 index ba6f077..0000000 --- a/aoc2023/build/packages/gleam_http/include/gleam@http@response_Response.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(response, { - status :: integer(), - headers :: list({binary(), binary()}), - body :: any() -}). diff --git a/aoc2023/build/packages/gleam_http/include/gleam@http_MoreRequiredForBody.hrl b/aoc2023/build/packages/gleam_http/include/gleam@http_MoreRequiredForBody.hrl deleted file mode 100644 index abd56dd..0000000 --- a/aoc2023/build/packages/gleam_http/include/gleam@http_MoreRequiredForBody.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(more_required_for_body, { - chunk :: bitstring(), - continuation :: fun((bitstring()) -> {ok, gleam@http:multipart_body()} | - {error, nil}) -}). diff --git a/aoc2023/build/packages/gleam_http/include/gleam@http_MoreRequiredForHeaders.hrl b/aoc2023/build/packages/gleam_http/include/gleam@http_MoreRequiredForHeaders.hrl deleted file mode 100644 index 43729c1..0000000 --- a/aoc2023/build/packages/gleam_http/include/gleam@http_MoreRequiredForHeaders.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(more_required_for_headers, { - continuation :: fun((bitstring()) -> {ok, gleam@http:multipart_headers()} | - {error, nil}) -}). diff --git a/aoc2023/build/packages/gleam_http/include/gleam@http_MultipartBody.hrl b/aoc2023/build/packages/gleam_http/include/gleam@http_MultipartBody.hrl deleted file mode 100644 index 4521591..0000000 --- a/aoc2023/build/packages/gleam_http/include/gleam@http_MultipartBody.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(multipart_body, { - chunk :: bitstring(), - done :: boolean(), - remaining :: bitstring() -}). diff --git a/aoc2023/build/packages/gleam_http/include/gleam@http_MultipartHeaders.hrl b/aoc2023/build/packages/gleam_http/include/gleam@http_MultipartHeaders.hrl deleted file mode 100644 index d9fca5c..0000000 --- a/aoc2023/build/packages/gleam_http/include/gleam@http_MultipartHeaders.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(multipart_headers, { - headers :: list({binary(), binary()}), - remaining :: bitstring() -}). diff --git a/aoc2023/build/packages/gleam_http/src/gleam/http.gleam b/aoc2023/build/packages/gleam_http/src/gleam/http.gleam deleted file mode 100644 index a892006..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam/http.gleam +++ /dev/null @@ -1,560 +0,0 @@ -//// Functions for working with HTTP data structures in Gleam. -//// -//// This module makes it easy to create and modify Requests and Responses, data types. -//// A general HTTP message type is defined that enables functions to work on both requests and responses. -//// -//// This module does not implement a HTTP client or HTTP server, but it can be used as a base for them. - -import gleam/dynamic.{type DecodeError, type Dynamic, DecodeError} -import gleam/string -import gleam/bit_array -import gleam/result -import gleam/list -import gleam/bool - -/// HTTP standard method as defined by [RFC 2616](https://tools.ietf.org/html/rfc2616), -/// and PATCH which is defined by [RFC 5789](https://tools.ietf.org/html/rfc5789). -pub type Method { - Get - Post - Head - Put - Delete - Trace - Connect - Options - Patch - - /// Non-standard but valid HTTP methods. - Other(String) -} - -// TODO: check if the a is a valid HTTP method (i.e. it is a token, as per the -// spec) and return Ok(Other(s)) if so. -pub fn parse_method(s) -> Result(Method, Nil) { - case string.lowercase(s) { - "connect" -> Ok(Connect) - "delete" -> Ok(Delete) - "get" -> Ok(Get) - "head" -> Ok(Head) - "options" -> Ok(Options) - "patch" -> Ok(Patch) - "post" -> Ok(Post) - "put" -> Ok(Put) - "trace" -> Ok(Trace) - _ -> Error(Nil) - } -} - -pub fn method_to_string(method: Method) -> String { - case method { - Connect -> "connect" - Delete -> "delete" - Get -> "get" - Head -> "head" - Options -> "options" - Patch -> "patch" - Post -> "post" - Put -> "put" - Trace -> "trace" - Other(s) -> s - } -} - -/// The two URI schemes for HTTP -/// -pub type Scheme { - Http - Https -} - -/// Convert a scheme into a string. -/// -/// # Examples -/// -/// > scheme_to_string(Http) -/// "http" -/// -/// > scheme_to_string(Https) -/// "https" -/// -pub fn scheme_to_string(scheme: Scheme) -> String { - case scheme { - Http -> "http" - Https -> "https" - } -} - -/// Parse a HTTP scheme from a string -/// -/// # Examples -/// -/// > scheme_from_string("http") -/// Ok(Http) -/// -/// > scheme_from_string("ftp") -/// Error(Nil) -/// -pub fn scheme_from_string(scheme: String) -> Result(Scheme, Nil) { - case string.lowercase(scheme) { - "http" -> Ok(Http) - "https" -> Ok(Https) - _ -> Error(Nil) - } -} - -pub fn method_from_dynamic(value: Dynamic) -> Result(Method, List(DecodeError)) { - case do_method_from_dynamic(value) { - Ok(method) -> Ok(method) - Error(_) -> Error([DecodeError("HTTP method", dynamic.classify(value), [])]) - } -} - -pub type MultipartHeaders { - /// The headers for the part have been fully parsed. - MultipartHeaders( - headers: List(Header), - /// The remaining content that has not yet been parsed. This will contain - /// the body for this part, if any, and can be parsed with the - /// `parse_multipart_body` function. - remaining: BitArray, - ) - /// More input is required to parse the headers for this part. - MoreRequiredForHeaders( - /// Call this function to continue parsing the headers for this part. - continuation: fn(BitArray) -> Result(MultipartHeaders, Nil), - ) -} - -pub type MultipartBody { - /// The body for the part has been fully parsed. - MultipartBody( - // The rest of the body for this part. The full body of the part is this - // concatenated onto the end of each chunk returned by any previous - // `MoreRequiredForBody` returns. - chunk: BitArray, - /// This is `True` if this was the last part in the multipart message, - /// otherwise there are more parts to parse. - done: Bool, - /// The remaining content that has not yet been parsed. This will contain - /// the next part if `done` is `False`, otherwise it will contain the - /// epilogue, if any. - remaining: BitArray, - ) - MoreRequiredForBody( - // The body that has been parsed so far. The full body of the part is this - // concatenated with the chunk returned by each `MoreRequiredForBody` return - // value, and the final `MultipartBody` return value. - chunk: BitArray, - /// Call this function to continue parsing the body for this part. - continuation: fn(BitArray) -> Result(MultipartBody, Nil), - ) -} - -/// Parse the headers for part of a multipart message, as defined in RFC 2045. -/// -/// This function skips any preamble before the boundary. The preamble may be -/// retrieved using `parse_multipart_body`. -/// -/// This function will accept input of any size, it is up to the caller to limit -/// it if needed. -/// -/// To enable streaming parsing of multipart messages, this function will return -/// a continuation if there is not enough data to fully parse the headers. -/// Further information is available in the documentation for `MultipartBody`. -/// -pub fn parse_multipart_headers( - data: BitArray, - boundary: String, -) -> Result(MultipartHeaders, Nil) { - let boundary = bit_array.from_string(boundary) - // TODO: rewrite this to use a bit pattern once JavaScript supports - // the `b:binary-size(bsize)` pattern. - let prefix = <<45, 45, boundary:bits>> - case bit_array.slice(data, 0, bit_array.byte_size(prefix)) == Ok(prefix) { - // There is no preamble, parse the headers. - True -> parse_headers_after_prelude(data, boundary) - // There is a preamble, skip it before parsing. - False -> skip_preamble(data, boundary) - } -} - -/// Parse the body for part of a multipart message, as defined in RFC 2045. The -/// body is everything until the next boundary. This function is generally to be -/// called after calling `parse_multipart_headers` for a given part. -/// -/// This function will accept input of any size, it is up to the caller to limit -/// it if needed. -/// -/// To enable streaming parsing of multipart messages, this function will return -/// a continuation if there is not enough data to fully parse the body, along -/// with the data that has been parsed so far. Further information is available -/// in the documentation for `MultipartBody`. -/// -pub fn parse_multipart_body( - data: BitArray, - boundary: String, -) -> Result(MultipartBody, Nil) { - boundary - |> bit_array.from_string - |> parse_body_with_bit_array(data, _) -} - -fn parse_body_with_bit_array( - data: BitArray, - boundary: BitArray, -) -> Result(MultipartBody, Nil) { - let bsize = bit_array.byte_size(boundary) - let prefix = bit_array.slice(data, 0, 2 + bsize) - case prefix == Ok(<<45, 45, boundary:bits>>) { - True -> Ok(MultipartBody(<<>>, done: False, remaining: data)) - False -> parse_body_loop(data, boundary, <<>>) - } -} - -fn parse_body_loop( - data: BitArray, - boundary: BitArray, - body: BitArray, -) -> Result(MultipartBody, Nil) { - let dsize = bit_array.byte_size(data) - let bsize = bit_array.byte_size(boundary) - let required = 6 + bsize - case data { - _ if dsize < required -> { - more_please_body(parse_body_loop(_, boundary, <<>>), body, data) - } - - // TODO: flatten this into a single case expression once JavaScript supports - // the `b:binary-size(bsize)` pattern. - // - // \r\n - <<13, 10, data:bytes>> -> { - let desired = <<45, 45, boundary:bits>> - let size = bit_array.byte_size(desired) - let dsize = bit_array.byte_size(data) - let prefix = bit_array.slice(data, 0, size) - let rest = bit_array.slice(data, size, dsize - size) - case prefix == Ok(desired), rest { - // --boundary\r\n - True, Ok(<<13, 10, _:bytes>>) -> - Ok(MultipartBody(body, done: False, remaining: data)) - - // --boundary-- - True, Ok(<<45, 45, data:bytes>>) -> - Ok(MultipartBody(body, done: True, remaining: data)) - - False, _ -> parse_body_loop(data, boundary, <>) - _, _ -> Error(Nil) - } - } - - <> -> { - parse_body_loop(data, boundary, <>) - } - } -} - -fn parse_headers_after_prelude( - data: BitArray, - boundary: BitArray, -) -> Result(MultipartHeaders, Nil) { - let dsize = bit_array.byte_size(data) - let bsize = bit_array.byte_size(boundary) - let required_size = bsize + 4 - - // TODO: this could be written as a single case expression if JavaScript had - // support for the `b:binary-size(bsize)` pattern. Rewrite this once the - // compiler support this. - - use <- bool.guard( - when: dsize < required_size, - return: more_please_headers(parse_headers_after_prelude(_, boundary), data), - ) - - use prefix <- result.try(bit_array.slice(data, 0, required_size - 2)) - use second <- result.try(bit_array.slice(data, 2 + bsize, 2)) - let desired = <<45, 45, boundary:bits>> - - use <- bool.guard(prefix != desired, return: Error(Nil)) - - case second == <<45, 45>> { - // --boundary-- - // The last boundary. Return the epilogue. - True -> { - let rest_size = dsize - required_size - use data <- result.map(bit_array.slice(data, required_size, rest_size)) - MultipartHeaders([], remaining: data) - } - - // --boundary - False -> { - let start = required_size - 2 - let rest_size = dsize - required_size + 2 - use data <- result.try(bit_array.slice(data, start, rest_size)) - do_parse_headers(data) - } - } -} - -fn skip_preamble( - data: BitArray, - boundary: BitArray, -) -> Result(MultipartHeaders, Nil) { - let data_size = bit_array.byte_size(data) - let boundary_size = bit_array.byte_size(boundary) - let required = boundary_size + 4 - case data { - _ if data_size < required -> - more_please_headers(skip_preamble(_, boundary), data) - - // TODO: change this to use one non-nested case expression once the compiler - // supports the `b:binary-size(bsize)` pattern on JS. - // \r\n-- - <<13, 10, 45, 45, data:bytes>> -> { - case bit_array.slice(data, 0, boundary_size) { - // --boundary - Ok(prefix) if prefix == boundary -> { - let start = boundary_size - let length = bit_array.byte_size(data) - boundary_size - use rest <- result.try(bit_array.slice(data, start, length)) - do_parse_headers(rest) - } - Ok(_) -> skip_preamble(data, boundary) - Error(_) -> Error(Nil) - } - } - - <<_, data:bytes>> -> skip_preamble(data, boundary) - } -} - -fn skip_whitespace(data: BitArray) -> BitArray { - case data { - // Space or tab. - <<32, data:bytes>> | <<9, data:bytes>> -> skip_whitespace(data) - _ -> data - } -} - -fn do_parse_headers(data: BitArray) -> Result(MultipartHeaders, Nil) { - case data { - // \r\n\r\n - // We've reached the end, there are no headers. - <<13, 10, 13, 10, data:bytes>> -> Ok(MultipartHeaders([], remaining: data)) - - // \r\n - // Skip the line break after the boundary. - <<13, 10, data:bytes>> -> parse_header_name(data, [], <<>>) - - <<13>> | <<>> -> more_please_headers(do_parse_headers, data) - - _ -> Error(Nil) - } -} - -fn parse_header_name( - data: BitArray, - headers: List(Header), - name: BitArray, -) -> Result(MultipartHeaders, Nil) { - case skip_whitespace(data) { - // : - <<58, data:bytes>> -> - data - |> skip_whitespace - |> parse_header_value(headers, name, <<>>) - - <> -> - parse_header_name(data, headers, <>) - - <<>> -> more_please_headers(parse_header_name(_, headers, name), data) - } -} - -fn parse_header_value( - data: BitArray, - headers: List(Header), - name: BitArray, - value: BitArray, -) -> Result(MultipartHeaders, Nil) { - let size = bit_array.byte_size(data) - case data { - // We need at least 4 bytes to check for the end of the headers. - _ if size < 4 -> - fn(data) { - data - |> skip_whitespace - |> parse_header_value(headers, name, value) - } - |> more_please_headers(data) - - // \r\n\r\n - <<13, 10, 13, 10, data:bytes>> -> { - use name <- result.try(bit_array.to_string(name)) - use value <- result.map(bit_array.to_string(value)) - let headers = list.reverse([#(string.lowercase(name), value), ..headers]) - MultipartHeaders(headers, data) - } - - // \r\n\s - // \r\n\t - <<13, 10, 32, data:bytes>> | <<13, 10, 9, data:bytes>> -> - parse_header_value(data, headers, name, value) - - // \r\n - <<13, 10, data:bytes>> -> { - use name <- result.try(bit_array.to_string(name)) - use value <- result.try(bit_array.to_string(value)) - let headers = [#(string.lowercase(name), value), ..headers] - parse_header_name(data, headers, <<>>) - } - - <> -> { - let value = <> - parse_header_value(rest, headers, name, value) - } - - _ -> Error(Nil) - } -} - -fn more_please_headers( - continuation: fn(BitArray) -> Result(MultipartHeaders, Nil), - existing: BitArray, -) -> Result(MultipartHeaders, Nil) { - Ok(MoreRequiredForHeaders(fn(more) { - use <- bool.guard(more == <<>>, return: Error(Nil)) - continuation(<>) - })) -} - -pub type ContentDisposition { - ContentDisposition(String, parameters: List(#(String, String))) -} - -pub fn parse_content_disposition( - header: String, -) -> Result(ContentDisposition, Nil) { - parse_content_disposition_type(header, "") -} - -fn parse_content_disposition_type( - header: String, - name: String, -) -> Result(ContentDisposition, Nil) { - case string.pop_grapheme(header) { - Error(Nil) -> Ok(ContentDisposition(name, [])) - - Ok(#(" ", rest)) | Ok(#("\t", rest)) | Ok(#(";", rest)) -> { - let result = parse_rfc_2045_parameters(rest, []) - use parameters <- result.map(result) - ContentDisposition(name, parameters) - } - - Ok(#(grapheme, rest)) -> - parse_content_disposition_type(rest, name <> string.lowercase(grapheme)) - } -} - -fn parse_rfc_2045_parameters( - header: String, - parameters: List(#(String, String)), -) -> Result(List(#(String, String)), Nil) { - case string.pop_grapheme(header) { - Error(Nil) -> Ok(list.reverse(parameters)) - - Ok(#(";", rest)) | Ok(#(" ", rest)) | Ok(#("\t", rest)) -> - parse_rfc_2045_parameters(rest, parameters) - - Ok(#(grapheme, rest)) -> { - let acc = string.lowercase(grapheme) - use #(parameter, rest) <- result.try(parse_rfc_2045_parameter(rest, acc)) - parse_rfc_2045_parameters(rest, [parameter, ..parameters]) - } - } -} - -fn parse_rfc_2045_parameter( - header: String, - name: String, -) -> Result(#(#(String, String), String), Nil) { - use #(grapheme, rest) <- result.try(string.pop_grapheme(header)) - case grapheme { - "=" -> parse_rfc_2045_parameter_value(rest, name) - _ -> parse_rfc_2045_parameter(rest, name <> string.lowercase(grapheme)) - } -} - -fn parse_rfc_2045_parameter_value( - header: String, - name: String, -) -> Result(#(#(String, String), String), Nil) { - case string.pop_grapheme(header) { - Error(Nil) -> Error(Nil) - Ok(#("\"", rest)) -> parse_rfc_2045_parameter_quoted_value(rest, name, "") - Ok(#(grapheme, rest)) -> - Ok(parse_rfc_2045_parameter_unquoted_value(rest, name, grapheme)) - } -} - -fn parse_rfc_2045_parameter_quoted_value( - header: String, - name: String, - value: String, -) -> Result(#(#(String, String), String), Nil) { - case string.pop_grapheme(header) { - Error(Nil) -> Error(Nil) - Ok(#("\"", rest)) -> Ok(#(#(name, value), rest)) - Ok(#("\\", rest)) -> { - use #(grapheme, rest) <- result.try(string.pop_grapheme(rest)) - parse_rfc_2045_parameter_quoted_value(rest, name, value <> grapheme) - } - Ok(#(grapheme, rest)) -> - parse_rfc_2045_parameter_quoted_value(rest, name, value <> grapheme) - } -} - -fn parse_rfc_2045_parameter_unquoted_value( - header: String, - name: String, - value: String, -) -> #(#(String, String), String) { - case string.pop_grapheme(header) { - Error(Nil) -> #(#(name, value), header) - - Ok(#(";", rest)) | Ok(#(" ", rest)) | Ok(#("\t", rest)) -> #( - #(name, value), - rest, - ) - - Ok(#(grapheme, rest)) -> - parse_rfc_2045_parameter_unquoted_value(rest, name, value <> grapheme) - } -} - -fn more_please_body( - continuation: fn(BitArray) -> Result(MultipartBody, Nil), - chunk: BitArray, - existing: BitArray, -) -> Result(MultipartBody, Nil) { - fn(more) { - use <- bool.guard(more == <<>>, return: Error(Nil)) - continuation(<>) - } - |> MoreRequiredForBody(chunk, _) - |> Ok -} - -@target(erlang) -@external(erlang, "gleam_http_native", "decode_method") -fn do_method_from_dynamic(a: Dynamic) -> Result(Method, nil) - -@target(javascript) -@external(javascript, "../gleam_http_native.mjs", "decode_method") -fn do_method_from_dynamic(a: Dynamic) -> Result(Method, Nil) - -/// A HTTP header is a key-value pair. Header keys should be all lowercase -/// characters. -pub type Header = - #(String, String) diff --git a/aoc2023/build/packages/gleam_http/src/gleam/http/cookie.gleam b/aoc2023/build/packages/gleam_http/src/gleam/http/cookie.gleam deleted file mode 100644 index e9ccb55..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam/http/cookie.gleam +++ /dev/null @@ -1,128 +0,0 @@ -import gleam/result -import gleam/int -import gleam/list -import gleam/regex -import gleam/string -import gleam/option.{type Option, Some} -import gleam/http.{type Scheme} - -/// Policy options for the SameSite cookie attribute -/// -/// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite -pub type SameSitePolicy { - Lax - Strict - None -} - -fn same_site_to_string(policy) { - case policy { - Lax -> "Lax" - Strict -> "Strict" - None -> "None" - } -} - -/// Attributes of a cookie when sent to a client in the `set-cookie` header. -pub type Attributes { - Attributes( - max_age: Option(Int), - domain: Option(String), - path: Option(String), - secure: Bool, - http_only: Bool, - same_site: Option(SameSitePolicy), - ) -} - -/// Helper to create sensible default attributes for a set cookie. -/// -/// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#Attributes -pub fn defaults(scheme: Scheme) { - Attributes( - max_age: option.None, - domain: option.None, - path: option.Some("/"), - secure: scheme == http.Https, - http_only: True, - same_site: Some(Lax), - ) -} - -const epoch = "Expires=Thu, 01 Jan 1970 00:00:00 GMT" - -fn cookie_attributes_to_list(attributes) { - let Attributes( - max_age: max_age, - domain: domain, - path: path, - secure: secure, - http_only: http_only, - same_site: same_site, - ) = attributes - [ - // Expires is a deprecated attribute for cookies, it has been replaced with MaxAge - // MaxAge is widely supported and so Expires values are not set. - // Only when deleting cookies is the exception made to use the old format, - // to ensure complete clearup of cookies if required by an application. - case max_age { - option.Some(0) -> option.Some([epoch]) - _ -> option.None - }, - option.map(max_age, fn(max_age) { ["Max-Age=", int.to_string(max_age)] }), - option.map(domain, fn(domain) { ["Domain=", domain] }), - option.map(path, fn(path) { ["Path=", path] }), - case secure { - True -> option.Some(["Secure"]) - False -> option.None - }, - case http_only { - True -> option.Some(["HttpOnly"]) - False -> option.None - }, - option.map( - same_site, - fn(same_site) { ["SameSite=", same_site_to_string(same_site)] }, - ), - ] - |> list.filter_map(option.to_result(_, Nil)) -} - -pub fn set_header(name: String, value: String, attributes: Attributes) -> String { - [[name, "=", value], ..cookie_attributes_to_list(attributes)] - |> list.map(string.join(_, "")) - |> string.join("; ") -} - -/// Parse a list of cookies from a header string. Any malformed cookies will be -/// discarded. -/// -pub fn parse(cookie_string: String) -> List(#(String, String)) { - let assert Ok(re) = regex.from_string("[,;]") - regex.split(re, cookie_string) - |> list.filter_map(fn(pair) { - case string.split_once(string.trim(pair), "=") { - Ok(#("", _)) -> Error(Nil) - Ok(#(key, value)) -> { - let key = string.trim(key) - let value = string.trim(value) - use _ <- result.then(check_token(key)) - use _ <- result.then(check_token(value)) - Ok(#(key, value)) - } - Error(Nil) -> Error(Nil) - } - }) -} - -fn check_token(token: String) -> Result(Nil, Nil) { - case string.pop_grapheme(token) { - Error(Nil) -> Ok(Nil) - Ok(#(" ", _)) -> Error(Nil) - Ok(#("\t", _)) -> Error(Nil) - Ok(#("\r", _)) -> Error(Nil) - Ok(#("\n", _)) -> Error(Nil) - Ok(#("\f", _)) -> Error(Nil) - Ok(#(_, rest)) -> check_token(rest) - } -} diff --git a/aoc2023/build/packages/gleam_http/src/gleam/http/request.gleam b/aoc2023/build/packages/gleam_http/src/gleam/http/request.gleam deleted file mode 100644 index 0bf9af9..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam/http/request.gleam +++ /dev/null @@ -1,267 +0,0 @@ -import gleam/result -// TODO: validate_req -import gleam/http.{type Header, type Method, type Scheme, Get} -import gleam/http/cookie -import gleam/option.{type Option} -import gleam/uri.{type Uri, Uri} -import gleam/list -import gleam/string -import gleam/string_builder - -// TODO: document -pub type Request(body) { - Request( - method: Method, - headers: List(Header), - body: body, - scheme: Scheme, - host: String, - port: Option(Int), - path: String, - query: Option(String), - ) -} - -/// Return the uri that a request was sent to. -/// -pub fn to_uri(request: Request(a)) -> Uri { - Uri( - scheme: option.Some(http.scheme_to_string(request.scheme)), - userinfo: option.None, - host: option.Some(request.host), - port: request.port, - path: request.path, - query: request.query, - fragment: option.None, - ) -} - -/// Construct a request from a URI. -/// -pub fn from_uri(uri: Uri) -> Result(Request(String), Nil) { - use scheme <- result.then( - uri.scheme - |> option.unwrap("") - |> http.scheme_from_string, - ) - use host <- result.then( - uri.host - |> option.to_result(Nil), - ) - let req = - Request( - method: Get, - headers: [], - body: "", - scheme: scheme, - host: host, - port: uri.port, - path: uri.path, - query: uri.query, - ) - Ok(req) -} - -/// Get the value for a given header. -/// -/// If the request does not have that header then `Error(Nil)` is returned. -/// -pub fn get_header(request: Request(body), key: String) -> Result(String, Nil) { - list.key_find(request.headers, string.lowercase(key)) -} - -/// Set the header with the given value under the given header key. -/// -/// If already present, it is replaced. -pub fn set_header( - request: Request(body), - key: String, - value: String, -) -> Request(body) { - let headers = list.key_set(request.headers, string.lowercase(key), value) - Request(..request, headers: headers) -} - -/// Prepend the header with the given value under the given header key. -/// -/// Similar to `set_header` except if the header already exists it prepends -/// another header with the same key. -pub fn prepend_header( - request: Request(body), - key: String, - value: String, -) -> Request(body) { - let headers = [#(string.lowercase(key), value), ..request.headers] - Request(..request, headers: headers) -} - -// TODO: record update syntax, which can't be done currently as body type changes -/// Set the body of the request, overwriting any existing body. -/// -pub fn set_body(req: Request(old_body), body: new_body) -> Request(new_body) { - let Request( - method: method, - headers: headers, - scheme: scheme, - host: host, - port: port, - path: path, - query: query, - .., - ) = req - Request( - method: method, - headers: headers, - body: body, - scheme: scheme, - host: host, - port: port, - path: path, - query: query, - ) -} - -/// Update the body of a request using a given function. -/// -pub fn map( - request: Request(old_body), - transform: fn(old_body) -> new_body, -) -> Request(new_body) { - request.body - |> transform - |> set_body(request, _) -} - -/// Return the non-empty segments of a request path. -/// -/// # Examples -/// -/// ```gleam -/// > new() -/// > |> set_path("/one/two/three") -/// > |> path_segments -/// ["one", "two", "three"] -/// ``` -/// -pub fn path_segments(request: Request(body)) -> List(String) { - request.path - |> uri.path_segments -} - -/// Decode the query of a request. -pub fn get_query(request: Request(body)) -> Result(List(#(String, String)), Nil) { - case request.query { - option.Some(query_string) -> uri.parse_query(query_string) - option.None -> Ok([]) - } -} - -// TODO: escape -/// Set the query of the request. -/// -pub fn set_query( - req: Request(body), - query: List(#(String, String)), -) -> Request(body) { - let pair = fn(t: #(String, String)) { - string_builder.from_strings([t.0, "=", t.1]) - } - let query = - query - |> list.map(pair) - |> list.intersperse(string_builder.from_string("&")) - |> string_builder.concat - |> string_builder.to_string - |> option.Some - Request(..req, query: query) -} - -/// Set the method of the request. -/// -pub fn set_method(req: Request(body), method: Method) -> Request(body) { - Request(..req, method: method) -} - -/// A request with commonly used default values. This request can be used as -/// an initial value and then update to create the desired request. -/// -pub fn new() -> Request(String) { - Request( - method: Get, - headers: [], - body: "", - scheme: http.Https, - host: "localhost", - port: option.None, - path: "", - query: option.None, - ) -} - -/// Construct a request from a URL string -/// -pub fn to(url: String) -> Result(Request(String), Nil) { - url - |> uri.parse - |> result.then(from_uri) -} - -/// Set the scheme (protocol) of the request. -/// -pub fn set_scheme(req: Request(body), scheme: Scheme) -> Request(body) { - Request(..req, scheme: scheme) -} - -/// Set the method of the request. -/// -pub fn set_host(req: Request(body), host: String) -> Request(body) { - Request(..req, host: host) -} - -/// Set the port of the request. -/// -pub fn set_port(req: Request(body), port: Int) -> Request(body) { - Request(..req, port: option.Some(port)) -} - -/// Set the path of the request. -/// -pub fn set_path(req: Request(body), path: String) -> Request(body) { - Request(..req, path: path) -} - -/// Send a cookie with a request -/// -/// Multiple cookies are added to the same cookie header. -pub fn set_cookie(req: Request(body), name: String, value: String) { - let new_cookie_string = string.join([name, value], "=") - - let #(cookies_string, headers) = case list.key_pop(req.headers, "cookie") { - Ok(#(cookies_string, headers)) -> { - let cookies_string = - string.join([cookies_string, new_cookie_string], "; ") - #(cookies_string, headers) - } - Error(Nil) -> #(new_cookie_string, req.headers) - } - - Request(..req, headers: [#("cookie", cookies_string), ..headers]) -} - -/// Fetch the cookies sent in a request. -/// -/// Note badly formed cookie pairs will be ignored. -/// RFC6265 specifies that invalid cookie names/attributes should be ignored. -pub fn get_cookies(req) -> List(#(String, String)) { - let Request(headers: headers, ..) = req - - headers - |> list.filter_map(fn(header) { - let #(name, value) = header - case name { - "cookie" -> Ok(cookie.parse(value)) - _ -> Error(Nil) - } - }) - |> list.flatten() -} diff --git a/aoc2023/build/packages/gleam_http/src/gleam/http/response.gleam b/aoc2023/build/packages/gleam_http/src/gleam/http/response.gleam deleted file mode 100644 index 87f9140..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam/http/response.gleam +++ /dev/null @@ -1,141 +0,0 @@ -import gleam/result -import gleam/http.{type Header} -import gleam/http/cookie -import gleam/list -import gleam/string -import gleam/option - -// TODO: document -pub type Response(body) { - Response(status: Int, headers: List(Header), body: body) -} - -/// Update the body of a response using a given result returning function. -/// -/// If the given function returns an `Ok` value the body is set, if it returns -/// an `Error` value then the error is returned. -/// -pub fn try_map( - response: Response(old_body), - transform: fn(old_body) -> Result(new_body, error), -) -> Result(Response(new_body), error) { - use body <- result.then(transform(response.body)) - Ok(set_body(response, body)) -} - -/// Construct an empty Response. -/// -/// The body type of the returned response is `String` and could be set with a -/// call to `set_body`. -/// -pub fn new(status: Int) -> Response(String) { - Response(status: status, headers: [], body: "") -} - -/// Get the value for a given header. -/// -/// If the response does not have that header then `Error(Nil)` is returned. -/// -pub fn get_header(response: Response(body), key: String) -> Result(String, Nil) { - list.key_find(response.headers, string.lowercase(key)) -} - -/// Set the header with the given value under the given header key. -/// -/// If the response already has that key, it is replaced. -pub fn set_header( - response: Response(body), - key: String, - value: String, -) -> Response(body) { - let headers = list.key_set(response.headers, string.lowercase(key), value) - Response(..response, headers: headers) -} - -/// Prepend the header with the given value under the given header key. -/// -/// Similar to `set_header` except if the header already exists it prepends -/// another header with the same key. -pub fn prepend_header( - response: Response(body), - key: String, - value: String, -) -> Response(body) { - let headers = [#(string.lowercase(key), value), ..response.headers] - Response(..response, headers: headers) -} - -/// Set the body of the response, overwriting any existing body. -/// -pub fn set_body( - response: Response(old_body), - body: new_body, -) -> Response(new_body) { - let Response(status: status, headers: headers, ..) = response - Response(status: status, headers: headers, body: body) -} - -/// Update the body of a response using a given function. -/// -pub fn map( - response: Response(old_body), - transform: fn(old_body) -> new_body, -) -> Response(new_body) { - response.body - |> transform - |> set_body(response, _) -} - -/// Create a response that redirects to the given uri. -/// -pub fn redirect(uri: String) -> Response(String) { - Response( - status: 303, - headers: [#("location", uri)], - body: string.append("You are being redirected to ", uri), - ) -} - -/// Fetch the cookies sent in a response. -/// -/// Badly formed cookies will be discarded. -/// -pub fn get_cookies(resp) -> List(#(String, String)) { - let Response(headers: headers, ..) = resp - headers - |> list.filter_map(fn(header) { - let #(name, value) = header - case name { - "set-cookie" -> Ok(cookie.parse(value)) - _ -> Error(Nil) - } - }) - |> list.flatten() -} - -/// Set a cookie value for a client -/// -pub fn set_cookie( - response: Response(t), - name: String, - value: String, - attributes: cookie.Attributes, -) -> Response(t) { - prepend_header( - response, - "set-cookie", - cookie.set_header(name, value, attributes), - ) -} - -/// Expire a cookie value for a client -/// -/// Note: The attributes value should be the same as when the response cookie was set. -pub fn expire_cookie( - response: Response(t), - name: String, - attributes: cookie.Attributes, -) -> Response(t) { - let attrs = cookie.Attributes(..attributes, max_age: option.Some(0)) - set_cookie(response, name, "", attrs) -} diff --git a/aoc2023/build/packages/gleam_http/src/gleam/http/service.gleam b/aoc2023/build/packages/gleam_http/src/gleam/http/service.gleam deleted file mode 100644 index 3dfac87..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam/http/service.gleam +++ /dev/null @@ -1,82 +0,0 @@ -import gleam/http.{Delete, Patch, Post, Put} -import gleam/http/request.{type Request} -import gleam/http/response.{type Response} -import gleam/list -import gleam/result - -// TODO: document -pub type Service(in, out) = - fn(Request(in)) -> Response(out) - -pub type Middleware(before_req, before_resp, after_req, after_resp) = - fn(Service(before_req, before_resp)) -> Service(after_req, after_resp) - -/// A middleware that transform the response body returned by the service using -/// a given function. -/// -pub fn map_response_body( - service: Service(req, a), - with mapper: fn(a) -> b, -) -> Service(req, b) { - fn(req) { - req - |> service - |> response.map(mapper) - } -} - -/// A middleware that prepends a header to the request. -/// -pub fn prepend_response_header( - service: Service(req, resp), - key: String, - value: String, -) -> Service(req, resp) { - fn(req) { - req - |> service - |> response.prepend_header(key, value) - } -} - -fn ensure_post(req: Request(a)) { - case req.method { - Post -> Ok(req) - _ -> Error(Nil) - } -} - -fn get_override_method(request: Request(t)) -> Result(http.Method, Nil) { - use query_params <- result.then(request.get_query(request)) - use method <- result.then(list.key_find(query_params, "_method")) - use method <- result.then(http.parse_method(method)) - case method { - Put | Patch | Delete -> Ok(method) - _ -> Error(Nil) - } -} - -/// A middleware that overrides an incoming POST request with a method given in -/// the request's `_method` query paramerter. This is useful as web browsers -/// typically only support GET and POST requests, but our application may -/// expect other HTTP methods that are more semantically correct. -/// -/// The methods PUT, PATCH, and DELETE are accepted for overriding, all others -/// are ignored. -/// -/// The `_method` query paramerter can be specified in a HTML form like so: -/// -///
-/// -///
-/// -pub fn method_override(service: Service(req, resp)) -> Service(req, resp) { - fn(request) { - request - |> ensure_post - |> result.then(get_override_method) - |> result.map(request.set_method(request, _)) - |> result.unwrap(request) - |> service - } -} diff --git a/aoc2023/build/packages/gleam_http/src/gleam@http.erl b/aoc2023/build/packages/gleam_http/src/gleam@http.erl deleted file mode 100644 index 91ee6e8..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam@http.erl +++ /dev/null @@ -1,626 +0,0 @@ --module(gleam@http). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([parse_method/1, method_to_string/1, scheme_to_string/1, scheme_from_string/1, parse_content_disposition/1, parse_multipart_body/2, method_from_dynamic/1, parse_multipart_headers/2]). --export_type([method/0, scheme/0, multipart_headers/0, multipart_body/0, content_disposition/0]). - --type method() :: get | - post | - head | - put | - delete | - trace | - connect | - options | - patch | - {other, binary()}. - --type scheme() :: http | https. - --type multipart_headers() :: {multipart_headers, - list({binary(), binary()}), - bitstring()} | - {more_required_for_headers, - fun((bitstring()) -> {ok, multipart_headers()} | {error, nil})}. - --type multipart_body() :: {multipart_body, bitstring(), boolean(), bitstring()} | - {more_required_for_body, - bitstring(), - fun((bitstring()) -> {ok, multipart_body()} | {error, nil})}. - --type content_disposition() :: {content_disposition, - binary(), - list({binary(), binary()})}. - --spec parse_method(binary()) -> {ok, method()} | {error, nil}. -parse_method(S) -> - case gleam@string:lowercase(S) of - <<"connect"/utf8>> -> - {ok, connect}; - - <<"delete"/utf8>> -> - {ok, delete}; - - <<"get"/utf8>> -> - {ok, get}; - - <<"head"/utf8>> -> - {ok, head}; - - <<"options"/utf8>> -> - {ok, options}; - - <<"patch"/utf8>> -> - {ok, patch}; - - <<"post"/utf8>> -> - {ok, post}; - - <<"put"/utf8>> -> - {ok, put}; - - <<"trace"/utf8>> -> - {ok, trace}; - - _ -> - {error, nil} - end. - --spec method_to_string(method()) -> binary(). -method_to_string(Method) -> - case Method of - connect -> - <<"connect"/utf8>>; - - delete -> - <<"delete"/utf8>>; - - get -> - <<"get"/utf8>>; - - head -> - <<"head"/utf8>>; - - options -> - <<"options"/utf8>>; - - patch -> - <<"patch"/utf8>>; - - post -> - <<"post"/utf8>>; - - put -> - <<"put"/utf8>>; - - trace -> - <<"trace"/utf8>>; - - {other, S} -> - S - end. - --spec scheme_to_string(scheme()) -> binary(). -scheme_to_string(Scheme) -> - case Scheme of - http -> - <<"http"/utf8>>; - - https -> - <<"https"/utf8>> - end. - --spec scheme_from_string(binary()) -> {ok, scheme()} | {error, nil}. -scheme_from_string(Scheme) -> - case gleam@string:lowercase(Scheme) of - <<"http"/utf8>> -> - {ok, http}; - - <<"https"/utf8>> -> - {ok, https}; - - _ -> - {error, nil} - end. - --spec skip_whitespace(bitstring()) -> bitstring(). -skip_whitespace(Data) -> - case Data of - <<32, Data@1/binary>> -> - skip_whitespace(Data@1); - - <<9, Data@1/binary>> -> - skip_whitespace(Data@1); - - _ -> - Data - end. - --spec more_please_headers( - fun((bitstring()) -> {ok, multipart_headers()} | {error, nil}), - bitstring() -) -> {ok, multipart_headers()} | {error, nil}. -more_please_headers(Continuation, Existing) -> - {ok, - {more_required_for_headers, - fun(More) -> - gleam@bool:guard( - More =:= <<>>, - {error, nil}, - fun() -> - Continuation(<>) - end - ) - end}}. - --spec parse_rfc_2045_parameter_quoted_value(binary(), binary(), binary()) -> {ok, - {{binary(), binary()}, binary()}} | - {error, nil}. -parse_rfc_2045_parameter_quoted_value(Header, Name, Value) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {error, nil}; - - {ok, {<<"\""/utf8>>, Rest}} -> - {ok, {{Name, Value}, Rest}}; - - {ok, {<<"\\"/utf8>>, Rest@1}} -> - gleam@result:'try'( - gleam@string:pop_grapheme(Rest@1), - fun(_use0) -> - {Grapheme, Rest@2} = _use0, - parse_rfc_2045_parameter_quoted_value( - Rest@2, - Name, - <> - ) - end - ); - - {ok, {Grapheme@1, Rest@3}} -> - parse_rfc_2045_parameter_quoted_value( - Rest@3, - Name, - <> - ) - end. - --spec parse_rfc_2045_parameter_unquoted_value(binary(), binary(), binary()) -> {{binary(), - binary()}, - binary()}. -parse_rfc_2045_parameter_unquoted_value(Header, Name, Value) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {{Name, Value}, Header}; - - {ok, {<<";"/utf8>>, Rest}} -> - {{Name, Value}, Rest}; - - {ok, {<<" "/utf8>>, Rest}} -> - {{Name, Value}, Rest}; - - {ok, {<<"\t"/utf8>>, Rest}} -> - {{Name, Value}, Rest}; - - {ok, {Grapheme, Rest@1}} -> - parse_rfc_2045_parameter_unquoted_value( - Rest@1, - Name, - <> - ) - end. - --spec parse_rfc_2045_parameter_value(binary(), binary()) -> {ok, - {{binary(), binary()}, binary()}} | - {error, nil}. -parse_rfc_2045_parameter_value(Header, Name) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {error, nil}; - - {ok, {<<"\""/utf8>>, Rest}} -> - parse_rfc_2045_parameter_quoted_value(Rest, Name, <<""/utf8>>); - - {ok, {Grapheme, Rest@1}} -> - {ok, - parse_rfc_2045_parameter_unquoted_value(Rest@1, Name, Grapheme)} - end. - --spec parse_rfc_2045_parameter(binary(), binary()) -> {ok, - {{binary(), binary()}, binary()}} | - {error, nil}. -parse_rfc_2045_parameter(Header, Name) -> - gleam@result:'try'( - gleam@string:pop_grapheme(Header), - fun(_use0) -> - {Grapheme, Rest} = _use0, - case Grapheme of - <<"="/utf8>> -> - parse_rfc_2045_parameter_value(Rest, Name); - - _ -> - parse_rfc_2045_parameter( - Rest, - <> - ) - end - end - ). - --spec parse_rfc_2045_parameters(binary(), list({binary(), binary()})) -> {ok, - list({binary(), binary()})} | - {error, nil}. -parse_rfc_2045_parameters(Header, Parameters) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {ok, gleam@list:reverse(Parameters)}; - - {ok, {<<";"/utf8>>, Rest}} -> - parse_rfc_2045_parameters(Rest, Parameters); - - {ok, {<<" "/utf8>>, Rest}} -> - parse_rfc_2045_parameters(Rest, Parameters); - - {ok, {<<"\t"/utf8>>, Rest}} -> - parse_rfc_2045_parameters(Rest, Parameters); - - {ok, {Grapheme, Rest@1}} -> - Acc = gleam@string:lowercase(Grapheme), - gleam@result:'try'( - parse_rfc_2045_parameter(Rest@1, Acc), - fun(_use0) -> - {Parameter, Rest@2} = _use0, - parse_rfc_2045_parameters(Rest@2, [Parameter | Parameters]) - end - ) - end. - --spec parse_content_disposition_type(binary(), binary()) -> {ok, - content_disposition()} | - {error, nil}. -parse_content_disposition_type(Header, Name) -> - case gleam@string:pop_grapheme(Header) of - {error, nil} -> - {ok, {content_disposition, Name, []}}; - - {ok, {<<" "/utf8>>, Rest}} -> - Result = parse_rfc_2045_parameters(Rest, []), - gleam@result:map( - Result, - fun(Parameters) -> {content_disposition, Name, Parameters} end - ); - - {ok, {<<"\t"/utf8>>, Rest}} -> - Result = parse_rfc_2045_parameters(Rest, []), - gleam@result:map( - Result, - fun(Parameters) -> {content_disposition, Name, Parameters} end - ); - - {ok, {<<";"/utf8>>, Rest}} -> - Result = parse_rfc_2045_parameters(Rest, []), - gleam@result:map( - Result, - fun(Parameters) -> {content_disposition, Name, Parameters} end - ); - - {ok, {Grapheme, Rest@1}} -> - parse_content_disposition_type( - Rest@1, - <> - ) - end. - --spec parse_content_disposition(binary()) -> {ok, content_disposition()} | - {error, nil}. -parse_content_disposition(Header) -> - parse_content_disposition_type(Header, <<""/utf8>>). - --spec more_please_body( - fun((bitstring()) -> {ok, multipart_body()} | {error, nil}), - bitstring(), - bitstring() -) -> {ok, multipart_body()} | {error, nil}. -more_please_body(Continuation, Chunk, Existing) -> - _pipe = fun(More) -> - gleam@bool:guard( - More =:= <<>>, - {error, nil}, - fun() -> Continuation(<>) end - ) - end, - _pipe@1 = {more_required_for_body, Chunk, _pipe}, - {ok, _pipe@1}. - --spec parse_body_loop(bitstring(), bitstring(), bitstring()) -> {ok, - multipart_body()} | - {error, nil}. -parse_body_loop(Data, Boundary, Body) -> - Dsize = erlang:byte_size(Data), - Bsize = erlang:byte_size(Boundary), - Required = 6 + Bsize, - case Data of - _ when Dsize < Required -> - more_please_body( - fun(_capture) -> parse_body_loop(_capture, Boundary, <<>>) end, - Body, - Data - ); - - <<13, 10, Data@1/binary>> -> - Desired = <<45, 45, Boundary/bitstring>>, - Size = erlang:byte_size(Desired), - Dsize@1 = erlang:byte_size(Data@1), - Prefix = gleam_stdlib:bit_array_slice(Data@1, 0, Size), - Rest = gleam_stdlib:bit_array_slice(Data@1, Size, Dsize@1 - Size), - case {Prefix =:= {ok, Desired}, Rest} of - {true, {ok, <<13, 10, _/binary>>}} -> - {ok, {multipart_body, Body, false, Data@1}}; - - {true, {ok, <<45, 45, Data@2/binary>>}} -> - {ok, {multipart_body, Body, true, Data@2}}; - - {false, _} -> - parse_body_loop( - Data@1, - Boundary, - <> - ); - - {_, _} -> - {error, nil} - end; - - <> -> - parse_body_loop(Data@3, Boundary, <>) - end. - --spec parse_body_with_bit_array(bitstring(), bitstring()) -> {ok, - multipart_body()} | - {error, nil}. -parse_body_with_bit_array(Data, Boundary) -> - Bsize = erlang:byte_size(Boundary), - Prefix = gleam_stdlib:bit_array_slice(Data, 0, 2 + Bsize), - case Prefix =:= {ok, <<45, 45, Boundary/bitstring>>} of - true -> - {ok, {multipart_body, <<>>, false, Data}}; - - false -> - parse_body_loop(Data, Boundary, <<>>) - end. - --spec parse_multipart_body(bitstring(), binary()) -> {ok, multipart_body()} | - {error, nil}. -parse_multipart_body(Data, Boundary) -> - _pipe = Boundary, - _pipe@1 = gleam_stdlib:identity(_pipe), - parse_body_with_bit_array(Data, _pipe@1). - --spec method_from_dynamic(gleam@dynamic:dynamic_()) -> {ok, method()} | - {error, list(gleam@dynamic:decode_error())}. -method_from_dynamic(Value) -> - case gleam_http_native:decode_method(Value) of - {ok, Method} -> - {ok, Method}; - - {error, _} -> - {error, - [{decode_error, - <<"HTTP method"/utf8>>, - gleam@dynamic:classify(Value), - []}]} - end. - --spec parse_header_value( - bitstring(), - list({binary(), binary()}), - bitstring(), - bitstring() -) -> {ok, multipart_headers()} | {error, nil}. -parse_header_value(Data, Headers, Name, Value) -> - Size = erlang:byte_size(Data), - case Data of - _ when Size < 4 -> - _pipe@2 = fun(Data@1) -> _pipe = Data@1, - _pipe@1 = skip_whitespace(_pipe), - parse_header_value(_pipe@1, Headers, Name, Value) end, - more_please_headers(_pipe@2, Data); - - <<13, 10, 13, 10, Data@2/binary>> -> - gleam@result:'try'( - gleam@bit_array:to_string(Name), - fun(Name@1) -> - gleam@result:map( - gleam@bit_array:to_string(Value), - fun(Value@1) -> - Headers@1 = gleam@list:reverse( - [{gleam@string:lowercase(Name@1), Value@1} | - Headers] - ), - {multipart_headers, Headers@1, Data@2} - end - ) - end - ); - - <<13, 10, 32, Data@3/binary>> -> - parse_header_value(Data@3, Headers, Name, Value); - - <<13, 10, 9, Data@3/binary>> -> - parse_header_value(Data@3, Headers, Name, Value); - - <<13, 10, Data@4/binary>> -> - gleam@result:'try'( - gleam@bit_array:to_string(Name), - fun(Name@2) -> - gleam@result:'try'( - gleam@bit_array:to_string(Value), - fun(Value@2) -> - Headers@2 = [{gleam@string:lowercase(Name@2), - Value@2} | - Headers], - parse_header_name(Data@4, Headers@2, <<>>) - end - ) - end - ); - - <> -> - Value@3 = <>, - parse_header_value(Rest, Headers, Name, Value@3); - - _ -> - {error, nil} - end. - --spec parse_header_name(bitstring(), list({binary(), binary()}), bitstring()) -> {ok, - multipart_headers()} | - {error, nil}. -parse_header_name(Data, Headers, Name) -> - case skip_whitespace(Data) of - <<58, Data@1/binary>> -> - _pipe = Data@1, - _pipe@1 = skip_whitespace(_pipe), - parse_header_value(_pipe@1, Headers, Name, <<>>); - - <> -> - parse_header_name(Data@2, Headers, <>); - - <<>> -> - more_please_headers( - fun(_capture) -> parse_header_name(_capture, Headers, Name) end, - Data - ) - end. - --spec do_parse_headers(bitstring()) -> {ok, multipart_headers()} | {error, nil}. -do_parse_headers(Data) -> - case Data of - <<13, 10, 13, 10, Data@1/binary>> -> - {ok, {multipart_headers, [], Data@1}}; - - <<13, 10, Data@2/binary>> -> - parse_header_name(Data@2, [], <<>>); - - <<13>> -> - more_please_headers(fun do_parse_headers/1, Data); - - <<>> -> - more_please_headers(fun do_parse_headers/1, Data); - - _ -> - {error, nil} - end. - --spec parse_headers_after_prelude(bitstring(), bitstring()) -> {ok, - multipart_headers()} | - {error, nil}. -parse_headers_after_prelude(Data, Boundary) -> - Dsize = erlang:byte_size(Data), - Bsize = erlang:byte_size(Boundary), - Required_size = Bsize + 4, - gleam@bool:guard( - Dsize < Required_size, - more_please_headers( - fun(_capture) -> parse_headers_after_prelude(_capture, Boundary) end, - Data - ), - fun() -> - gleam@result:'try'( - gleam_stdlib:bit_array_slice(Data, 0, Required_size - 2), - fun(Prefix) -> - gleam@result:'try'( - gleam_stdlib:bit_array_slice(Data, 2 + Bsize, 2), - fun(Second) -> - Desired = <<45, 45, Boundary/bitstring>>, - gleam@bool:guard( - Prefix /= Desired, - {error, nil}, - fun() -> case Second =:= <<45, 45>> of - true -> - Rest_size = Dsize - Required_size, - gleam@result:map( - gleam_stdlib:bit_array_slice( - Data, - Required_size, - Rest_size - ), - fun(Data@1) -> - {multipart_headers, - [], - Data@1} - end - ); - - false -> - Start = Required_size - 2, - Rest_size@1 = (Dsize - Required_size) - + 2, - gleam@result:'try'( - gleam_stdlib:bit_array_slice( - Data, - Start, - Rest_size@1 - ), - fun(Data@2) -> - do_parse_headers(Data@2) - end - ) - end end - ) - end - ) - end - ) - end - ). - --spec skip_preamble(bitstring(), bitstring()) -> {ok, multipart_headers()} | - {error, nil}. -skip_preamble(Data, Boundary) -> - Data_size = erlang:byte_size(Data), - Boundary_size = erlang:byte_size(Boundary), - Required = Boundary_size + 4, - case Data of - _ when Data_size < Required -> - more_please_headers( - fun(_capture) -> skip_preamble(_capture, Boundary) end, - Data - ); - - <<13, 10, 45, 45, Data@1/binary>> -> - case gleam_stdlib:bit_array_slice(Data@1, 0, Boundary_size) of - {ok, Prefix} when Prefix =:= Boundary -> - Start = Boundary_size, - Length = erlang:byte_size(Data@1) - Boundary_size, - gleam@result:'try'( - gleam_stdlib:bit_array_slice(Data@1, Start, Length), - fun(Rest) -> do_parse_headers(Rest) end - ); - - {ok, _} -> - skip_preamble(Data@1, Boundary); - - {error, _} -> - {error, nil} - end; - - <<_, Data@2/binary>> -> - skip_preamble(Data@2, Boundary) - end. - --spec parse_multipart_headers(bitstring(), binary()) -> {ok, - multipart_headers()} | - {error, nil}. -parse_multipart_headers(Data, Boundary) -> - Boundary@1 = gleam_stdlib:identity(Boundary), - Prefix = <<45, 45, Boundary@1/bitstring>>, - case gleam_stdlib:bit_array_slice(Data, 0, erlang:byte_size(Prefix)) =:= {ok, - Prefix} of - true -> - parse_headers_after_prelude(Data, Boundary@1); - - false -> - skip_preamble(Data, Boundary@1) - end. diff --git a/aoc2023/build/packages/gleam_http/src/gleam@http@cookie.erl b/aoc2023/build/packages/gleam_http/src/gleam@http@cookie.erl deleted file mode 100644 index 9d6d13e..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam@http@cookie.erl +++ /dev/null @@ -1,153 +0,0 @@ --module(gleam@http@cookie). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([defaults/1, set_header/3, parse/1]). --export_type([same_site_policy/0, attributes/0]). - --type same_site_policy() :: lax | strict | none. - --type attributes() :: {attributes, - gleam@option:option(integer()), - gleam@option:option(binary()), - gleam@option:option(binary()), - boolean(), - boolean(), - gleam@option:option(same_site_policy())}. - --spec same_site_to_string(same_site_policy()) -> binary(). -same_site_to_string(Policy) -> - case Policy of - lax -> - <<"Lax"/utf8>>; - - strict -> - <<"Strict"/utf8>>; - - none -> - <<"None"/utf8>> - end. - --spec defaults(gleam@http:scheme()) -> attributes(). -defaults(Scheme) -> - {attributes, - none, - none, - {some, <<"/"/utf8>>}, - Scheme =:= https, - true, - {some, lax}}. - --spec cookie_attributes_to_list(attributes()) -> list(list(binary())). -cookie_attributes_to_list(Attributes) -> - {attributes, Max_age, Domain, Path, Secure, Http_only, Same_site} = Attributes, - _pipe = [case Max_age of - {some, 0} -> - {some, [<<"Expires=Thu, 01 Jan 1970 00:00:00 GMT"/utf8>>]}; - - _ -> - none - end, gleam@option:map( - Max_age, - fun(Max_age@1) -> - [<<"Max-Age="/utf8>>, gleam@int:to_string(Max_age@1)] - end - ), gleam@option:map( - Domain, - fun(Domain@1) -> [<<"Domain="/utf8>>, Domain@1] end - ), gleam@option:map(Path, fun(Path@1) -> [<<"Path="/utf8>>, Path@1] end), case Secure of - true -> - {some, [<<"Secure"/utf8>>]}; - - false -> - none - end, case Http_only of - true -> - {some, [<<"HttpOnly"/utf8>>]}; - - false -> - none - end, gleam@option:map( - Same_site, - fun(Same_site@1) -> - [<<"SameSite="/utf8>>, same_site_to_string(Same_site@1)] - end - )], - gleam@list:filter_map( - _pipe, - fun(_capture) -> gleam@option:to_result(_capture, nil) end - ). - --spec set_header(binary(), binary(), attributes()) -> binary(). -set_header(Name, Value, Attributes) -> - _pipe = [[Name, <<"="/utf8>>, Value] | - cookie_attributes_to_list(Attributes)], - _pipe@1 = gleam@list:map( - _pipe, - fun(_capture) -> gleam@string:join(_capture, <<""/utf8>>) end - ), - gleam@string:join(_pipe@1, <<"; "/utf8>>). - --spec check_token(binary()) -> {ok, nil} | {error, nil}. -check_token(Token) -> - case gleam@string:pop_grapheme(Token) of - {error, nil} -> - {ok, nil}; - - {ok, {<<" "/utf8>>, _}} -> - {error, nil}; - - {ok, {<<"\t"/utf8>>, _}} -> - {error, nil}; - - {ok, {<<"\r"/utf8>>, _}} -> - {error, nil}; - - {ok, {<<"\n"/utf8>>, _}} -> - {error, nil}; - - {ok, {<<"\f"/utf8>>, _}} -> - {error, nil}; - - {ok, {_, Rest}} -> - check_token(Rest) - end. - --spec parse(binary()) -> list({binary(), binary()}). -parse(Cookie_string) -> - _assert_subject = gleam@regex:from_string(<<"[,;]"/utf8>>), - {ok, Re} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/http/cookie"/utf8>>, - function => <<"parse"/utf8>>, - line => 101}) - end, - _pipe = gleam@regex:split(Re, Cookie_string), - gleam@list:filter_map( - _pipe, - fun(Pair) -> - case gleam@string:split_once(gleam@string:trim(Pair), <<"="/utf8>>) of - {ok, {<<""/utf8>>, _}} -> - {error, nil}; - - {ok, {Key, Value}} -> - Key@1 = gleam@string:trim(Key), - Value@1 = gleam@string:trim(Value), - gleam@result:then( - check_token(Key@1), - fun(_) -> - gleam@result:then( - check_token(Value@1), - fun(_) -> {ok, {Key@1, Value@1}} end - ) - end - ); - - {error, nil} -> - {error, nil} - end - end - ). diff --git a/aoc2023/build/packages/gleam_http/src/gleam@http@request.erl b/aoc2023/build/packages/gleam_http/src/gleam@http@request.erl deleted file mode 100644 index 630788d..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam@http@request.erl +++ /dev/null @@ -1,202 +0,0 @@ --module(gleam@http@request). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([to_uri/1, from_uri/1, get_header/2, set_header/3, prepend_header/3, set_body/2, map/2, path_segments/1, get_query/1, set_query/2, set_method/2, new/0, to/1, set_scheme/2, set_host/2, set_port/2, set_path/2, set_cookie/3, get_cookies/1]). --export_type([request/1]). - --type request(FYJ) :: {request, - gleam@http:method(), - list({binary(), binary()}), - FYJ, - gleam@http:scheme(), - binary(), - gleam@option:option(integer()), - binary(), - gleam@option:option(binary())}. - --spec to_uri(request(any())) -> gleam@uri:uri(). -to_uri(Request) -> - {uri, - {some, gleam@http:scheme_to_string(erlang:element(5, Request))}, - none, - {some, erlang:element(6, Request)}, - erlang:element(7, Request), - erlang:element(8, Request), - erlang:element(9, Request), - none}. - --spec from_uri(gleam@uri:uri()) -> {ok, request(binary())} | {error, nil}. -from_uri(Uri) -> - gleam@result:then( - begin - _pipe = erlang:element(2, Uri), - _pipe@1 = gleam@option:unwrap(_pipe, <<""/utf8>>), - gleam@http:scheme_from_string(_pipe@1) - end, - fun(Scheme) -> - gleam@result:then( - begin - _pipe@2 = erlang:element(4, Uri), - gleam@option:to_result(_pipe@2, nil) - end, - fun(Host) -> - Req = {request, - get, - [], - <<""/utf8>>, - Scheme, - Host, - erlang:element(5, Uri), - erlang:element(6, Uri), - erlang:element(7, Uri)}, - {ok, Req} - end - ) - end - ). - --spec get_header(request(any()), binary()) -> {ok, binary()} | {error, nil}. -get_header(Request, Key) -> - gleam@list:key_find(erlang:element(3, Request), gleam@string:lowercase(Key)). - --spec set_header(request(FYT), binary(), binary()) -> request(FYT). -set_header(Request, Key, Value) -> - Headers = gleam@list:key_set( - erlang:element(3, Request), - gleam@string:lowercase(Key), - Value - ), - erlang:setelement(3, Request, Headers). - --spec prepend_header(request(FYW), binary(), binary()) -> request(FYW). -prepend_header(Request, Key, Value) -> - Headers = [{gleam@string:lowercase(Key), Value} | - erlang:element(3, Request)], - erlang:setelement(3, Request, Headers). - --spec set_body(request(any()), FZB) -> request(FZB). -set_body(Req, Body) -> - {request, Method, Headers, _, Scheme, Host, Port, Path, Query} = Req, - {request, Method, Headers, Body, Scheme, Host, Port, Path, Query}. - --spec map(request(FZD), fun((FZD) -> FZF)) -> request(FZF). -map(Request, Transform) -> - _pipe = erlang:element(4, Request), - _pipe@1 = Transform(_pipe), - set_body(Request, _pipe@1). - --spec path_segments(request(any())) -> list(binary()). -path_segments(Request) -> - _pipe = erlang:element(8, Request), - gleam@uri:path_segments(_pipe). - --spec get_query(request(any())) -> {ok, list({binary(), binary()})} | - {error, nil}. -get_query(Request) -> - case erlang:element(9, Request) of - {some, Query_string} -> - gleam@uri:parse_query(Query_string); - - none -> - {ok, []} - end. - --spec set_query(request(FZP), list({binary(), binary()})) -> request(FZP). -set_query(Req, Query) -> - Pair = fun(T) -> - gleam@string_builder:from_strings( - [erlang:element(1, T), <<"="/utf8>>, erlang:element(2, T)] - ) - end, - Query@1 = begin - _pipe = Query, - _pipe@1 = gleam@list:map(_pipe, Pair), - _pipe@2 = gleam@list:intersperse( - _pipe@1, - gleam@string_builder:from_string(<<"&"/utf8>>) - ), - _pipe@3 = gleam@string_builder:concat(_pipe@2), - _pipe@4 = gleam@string_builder:to_string(_pipe@3), - {some, _pipe@4} - end, - erlang:setelement(9, Req, Query@1). - --spec set_method(request(FZT), gleam@http:method()) -> request(FZT). -set_method(Req, Method) -> - erlang:setelement(2, Req, Method). - --spec new() -> request(binary()). -new() -> - {request, - get, - [], - <<""/utf8>>, - https, - <<"localhost"/utf8>>, - none, - <<""/utf8>>, - none}. - --spec to(binary()) -> {ok, request(binary())} | {error, nil}. -to(Url) -> - _pipe = Url, - _pipe@1 = gleam@uri:parse(_pipe), - gleam@result:then(_pipe@1, fun from_uri/1). - --spec set_scheme(request(GAA), gleam@http:scheme()) -> request(GAA). -set_scheme(Req, Scheme) -> - erlang:setelement(5, Req, Scheme). - --spec set_host(request(GAD), binary()) -> request(GAD). -set_host(Req, Host) -> - erlang:setelement(6, Req, Host). - --spec set_port(request(GAG), integer()) -> request(GAG). -set_port(Req, Port) -> - erlang:setelement(7, Req, {some, Port}). - --spec set_path(request(GAJ), binary()) -> request(GAJ). -set_path(Req, Path) -> - erlang:setelement(8, Req, Path). - --spec set_cookie(request(GAM), binary(), binary()) -> request(GAM). -set_cookie(Req, Name, Value) -> - New_cookie_string = gleam@string:join([Name, Value], <<"="/utf8>>), - {Cookies_string@2, Headers@1} = case gleam@list:key_pop( - erlang:element(3, Req), - <<"cookie"/utf8>> - ) of - {ok, {Cookies_string, Headers}} -> - Cookies_string@1 = gleam@string:join( - [Cookies_string, New_cookie_string], - <<"; "/utf8>> - ), - {Cookies_string@1, Headers}; - - {error, nil} -> - {New_cookie_string, erlang:element(3, Req)} - end, - erlang:setelement( - 3, - Req, - [{<<"cookie"/utf8>>, Cookies_string@2} | Headers@1] - ). - --spec get_cookies(request(any())) -> list({binary(), binary()}). -get_cookies(Req) -> - {request, _, Headers, _, _, _, _, _, _} = Req, - _pipe = Headers, - _pipe@1 = gleam@list:filter_map( - _pipe, - fun(Header) -> - {Name, Value} = Header, - case Name of - <<"cookie"/utf8>> -> - {ok, gleam@http@cookie:parse(Value)}; - - _ -> - {error, nil} - end - end - ), - gleam@list:flatten(_pipe@1). diff --git a/aoc2023/build/packages/gleam_http/src/gleam@http@response.erl b/aoc2023/build/packages/gleam_http/src/gleam@http@response.erl deleted file mode 100644 index b073c1d..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam@http@response.erl +++ /dev/null @@ -1,97 +0,0 @@ --module(gleam@http@response). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/1, get_header/2, set_header/3, prepend_header/3, set_body/2, try_map/2, map/2, redirect/1, get_cookies/1, set_cookie/4, expire_cookie/3]). --export_type([response/1]). - --type response(GFN) :: {response, integer(), list({binary(), binary()}), GFN}. - --spec new(integer()) -> response(binary()). -new(Status) -> - {response, Status, [], <<""/utf8>>}. - --spec get_header(response(any()), binary()) -> {ok, binary()} | {error, nil}. -get_header(Response, Key) -> - gleam@list:key_find( - erlang:element(3, Response), - gleam@string:lowercase(Key) - ). - --spec set_header(response(GGC), binary(), binary()) -> response(GGC). -set_header(Response, Key, Value) -> - Headers = gleam@list:key_set( - erlang:element(3, Response), - gleam@string:lowercase(Key), - Value - ), - erlang:setelement(3, Response, Headers). - --spec prepend_header(response(GGF), binary(), binary()) -> response(GGF). -prepend_header(Response, Key, Value) -> - Headers = [{gleam@string:lowercase(Key), Value} | - erlang:element(3, Response)], - erlang:setelement(3, Response, Headers). - --spec set_body(response(any()), GGK) -> response(GGK). -set_body(Response, Body) -> - {response, Status, Headers, _} = Response, - {response, Status, Headers, Body}. - --spec try_map(response(GFO), fun((GFO) -> {ok, GFQ} | {error, GFR})) -> {ok, - response(GFQ)} | - {error, GFR}. -try_map(Response, Transform) -> - gleam@result:then( - Transform(erlang:element(4, Response)), - fun(Body) -> {ok, set_body(Response, Body)} end - ). - --spec map(response(GGM), fun((GGM) -> GGO)) -> response(GGO). -map(Response, Transform) -> - _pipe = erlang:element(4, Response), - _pipe@1 = Transform(_pipe), - set_body(Response, _pipe@1). - --spec redirect(binary()) -> response(binary()). -redirect(Uri) -> - {response, - 303, - [{<<"location"/utf8>>, Uri}], - gleam@string:append(<<"You are being redirected to "/utf8>>, Uri)}. - --spec get_cookies(response(any())) -> list({binary(), binary()}). -get_cookies(Resp) -> - {response, _, Headers, _} = Resp, - _pipe = Headers, - _pipe@1 = gleam@list:filter_map( - _pipe, - fun(Header) -> - {Name, Value} = Header, - case Name of - <<"set-cookie"/utf8>> -> - {ok, gleam@http@cookie:parse(Value)}; - - _ -> - {error, nil} - end - end - ), - gleam@list:flatten(_pipe@1). - --spec set_cookie( - response(GGT), - binary(), - binary(), - gleam@http@cookie:attributes() -) -> response(GGT). -set_cookie(Response, Name, Value, Attributes) -> - prepend_header( - Response, - <<"set-cookie"/utf8>>, - gleam@http@cookie:set_header(Name, Value, Attributes) - ). - --spec expire_cookie(response(GGW), binary(), gleam@http@cookie:attributes()) -> response(GGW). -expire_cookie(Response, Name, Attributes) -> - Attrs = erlang:setelement(2, Attributes, {some, 0}), - set_cookie(Response, Name, <<""/utf8>>, Attrs). diff --git a/aoc2023/build/packages/gleam_http/src/gleam@http@service.erl b/aoc2023/build/packages/gleam_http/src/gleam@http@service.erl deleted file mode 100644 index d07b31f..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam@http@service.erl +++ /dev/null @@ -1,82 +0,0 @@ --module(gleam@http@service). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([map_response_body/2, prepend_response_header/3, method_override/1]). - --spec map_response_body( - fun((gleam@http@request:request(GJL)) -> gleam@http@response:response(GJM)), - fun((GJM) -> GJP) -) -> fun((gleam@http@request:request(GJL)) -> gleam@http@response:response(GJP)). -map_response_body(Service, Mapper) -> - fun(Req) -> _pipe = Req, - _pipe@1 = Service(_pipe), - gleam@http@response:map(_pipe@1, Mapper) end. - --spec prepend_response_header( - fun((gleam@http@request:request(GJS)) -> gleam@http@response:response(GJT)), - binary(), - binary() -) -> fun((gleam@http@request:request(GJS)) -> gleam@http@response:response(GJT)). -prepend_response_header(Service, Key, Value) -> - fun(Req) -> _pipe = Req, - _pipe@1 = Service(_pipe), - gleam@http@response:prepend_header(_pipe@1, Key, Value) end. - --spec ensure_post(gleam@http@request:request(GJY)) -> {ok, - gleam@http@request:request(GJY)} | - {error, nil}. -ensure_post(Req) -> - case erlang:element(2, Req) of - post -> - {ok, Req}; - - _ -> - {error, nil} - end. - --spec get_override_method(gleam@http@request:request(any())) -> {ok, - gleam@http:method()} | - {error, nil}. -get_override_method(Request) -> - gleam@result:then( - gleam@http@request:get_query(Request), - fun(Query_params) -> - gleam@result:then( - gleam@list:key_find(Query_params, <<"_method"/utf8>>), - fun(Method) -> - gleam@result:then( - gleam@http:parse_method(Method), - fun(Method@1) -> case Method@1 of - put -> - {ok, Method@1}; - - patch -> - {ok, Method@1}; - - delete -> - {ok, Method@1}; - - _ -> - {error, nil} - end end - ) - end - ) - end - ). - --spec method_override( - fun((gleam@http@request:request(GKF)) -> gleam@http@response:response(GKG)) -) -> fun((gleam@http@request:request(GKF)) -> gleam@http@response:response(GKG)). -method_override(Service) -> - fun(Request) -> _pipe = Request, - _pipe@1 = ensure_post(_pipe), - _pipe@2 = gleam@result:then(_pipe@1, fun get_override_method/1), - _pipe@3 = gleam@result:map( - _pipe@2, - fun(_capture) -> - gleam@http@request:set_method(Request, _capture) - end - ), - _pipe@4 = gleam@result:unwrap(_pipe@3, Request), - Service(_pipe@4) end. diff --git a/aoc2023/build/packages/gleam_http/src/gleam_http.app.src b/aoc2023/build/packages/gleam_http/src/gleam_http.app.src deleted file mode 100644 index c37ad54..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam_http.app.src +++ /dev/null @@ -1,12 +0,0 @@ -{application, gleam_http, [ - {vsn, "3.5.2"}, - {applications, [gleam_stdlib, - gleeunit]}, - {description, "Types and functions for Gleam HTTP clients and servers"}, - {modules, [gleam@http, - gleam@http@cookie, - gleam@http@request, - gleam@http@response, - gleam@http@service]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gleam_http/src/gleam_http_native.erl b/aoc2023/build/packages/gleam_http/src/gleam_http_native.erl deleted file mode 100644 index bb499bb..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam_http_native.erl +++ /dev/null @@ -1,88 +0,0 @@ --module(gleam_http_native). --export([decode_method/1]). - -decode_method(Term) -> - case Term of - "connect" -> {ok, connect}; - "delete" -> {ok, delete}; - "get" -> {ok, get}; - "head" -> {ok, head}; - "options" -> {ok, options}; - "patch" -> {ok, patch}; - "post" -> {ok, post}; - "put" -> {ok, put}; - "trace" -> {ok, trace}; - "CONNECT" -> {ok, connect}; - "DELETE" -> {ok, delete}; - "GET" -> {ok, get}; - "HEAD" -> {ok, head}; - "OPTIONS" -> {ok, options}; - "PATCH" -> {ok, patch}; - "POST" -> {ok, post}; - "PUT" -> {ok, put}; - "TRACE" -> {ok, trace}; - "Connect" -> {ok, connect}; - "Delete" -> {ok, delete}; - "Get" -> {ok, get}; - "Head" -> {ok, head}; - "Options" -> {ok, options}; - "Patch" -> {ok, patch}; - "Post" -> {ok, post}; - "Put" -> {ok, put}; - "Trace" -> {ok, trace}; - 'connect' -> {ok, connect}; - 'delete' -> {ok, delete}; - 'get' -> {ok, get}; - 'head' -> {ok, head}; - 'options' -> {ok, options}; - 'patch' -> {ok, patch}; - 'post' -> {ok, post}; - 'put' -> {ok, put}; - 'trace' -> {ok, trace}; - 'CONNECT' -> {ok, connect}; - 'DELETE' -> {ok, delete}; - 'GET' -> {ok, get}; - 'HEAD' -> {ok, head}; - 'OPTIONS' -> {ok, options}; - 'PATCH' -> {ok, patch}; - 'POST' -> {ok, post}; - 'PUT' -> {ok, put}; - 'TRACE' -> {ok, trace}; - 'Connect' -> {ok, connect}; - 'Delete' -> {ok, delete}; - 'Get' -> {ok, get}; - 'Head' -> {ok, head}; - 'Options' -> {ok, options}; - 'Patch' -> {ok, patch}; - 'Post' -> {ok, post}; - 'Put' -> {ok, put}; - 'Trace' -> {ok, trace}; - <<"connect">> -> {ok, connect}; - <<"delete">> -> {ok, delete}; - <<"get">> -> {ok, get}; - <<"head">> -> {ok, head}; - <<"options">> -> {ok, options}; - <<"patch">> -> {ok, patch}; - <<"post">> -> {ok, post}; - <<"put">> -> {ok, put}; - <<"trace">> -> {ok, trace}; - <<"CONNECT">> -> {ok, connect}; - <<"DELETE">> -> {ok, delete}; - <<"GET">> -> {ok, get}; - <<"HEAD">> -> {ok, head}; - <<"OPTIONS">> -> {ok, options}; - <<"PATCH">> -> {ok, patch}; - <<"POST">> -> {ok, post}; - <<"PUT">> -> {ok, put}; - <<"TRACE">> -> {ok, trace}; - <<"Connect">> -> {ok, connect}; - <<"Delete">> -> {ok, delete}; - <<"Get">> -> {ok, get}; - <<"Head">> -> {ok, head}; - <<"Options">> -> {ok, options}; - <<"Patch">> -> {ok, patch}; - <<"Post">> -> {ok, post}; - <<"Put">> -> {ok, put}; - <<"Trace">> -> {ok, trace}; - _ -> {error, nil} - end. diff --git a/aoc2023/build/packages/gleam_http/src/gleam_http_native.mjs b/aoc2023/build/packages/gleam_http/src/gleam_http_native.mjs deleted file mode 100644 index c871a8b..0000000 --- a/aoc2023/build/packages/gleam_http/src/gleam_http_native.mjs +++ /dev/null @@ -1,38 +0,0 @@ -import { Ok, Error } from "./gleam.mjs"; -import { - Get, - Post, - Head, - Put, - Delete, - Trace, - Connect, - Options, - Patch, -} from "./gleam/http.mjs"; - -export function decode_method(value) { - try { - switch (value.toLowerCase()) { - case "get": - return new Ok(new Get()); - case "post": - return new Ok(new Post()); - case "head": - return new Ok(new Head()); - case "put": - return new Ok(new Put()); - case "delete": - return new Ok(new Delete()); - case "trace": - return new Ok(new Trace()); - case "connect": - return new Ok(new Connect()); - case "options": - return new Ok(new Options()); - case "patch": - return new Ok(new Patch()); - } - } catch {} - return new Error(undefined); -} diff --git a/aoc2023/build/packages/gleam_httpc/LICENSE b/aoc2023/build/packages/gleam_httpc/LICENSE deleted file mode 100644 index 59e1345..0000000 --- a/aoc2023/build/packages/gleam_httpc/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright {{copyright_year}}, {{author_name}} <{{author_email}}>. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/aoc2023/build/packages/gleam_httpc/README.md b/aoc2023/build/packages/gleam_httpc/README.md deleted file mode 100644 index c2363c5..0000000 --- a/aoc2023/build/packages/gleam_httpc/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# httpc -GitHub release -Discord chat -![CI](https://github.com/gleam-lang/httpc/workflows/test/badge.svg?branch=main) - -Bindings to Erlang's built in HTTP client, `httpc`. - -```gleam -import gleam/httpc -import gleam/http.{Get} -import gleam/http/request -import gleam/http/response -import gleeunit/should - -pub fn main() { - // Prepare a HTTP request record - let request = request.new() - |> request.set_method(Get) - |> request.set_host("test-api.service.hmrc.gov.uk") - |> request.set_path("/hello/world") - |> request.prepend_header("accept", "application/vnd.hmrc.1.0+json") - - // Send the HTTP request to the server - try resp = httpc.send(req) - - // We get a response record back - resp.status - |> should.equal(200) - - resp - |> response.get_header("content-type") - |> should.equal(Ok("application/json")) - - resp.body - |> should.equal("{\"message\":\"Hello World\"}") - - Ok(resp) -} -``` - -## Installation - -```shell -gleam add gleam_httpc -``` - -## Use with Erlang/OTP versions older than 26.0 - -Older versions of HTTPC do not verify TLS connections by default, so with them -your connection may not be secure when using this library. Consider upgrading to -a newer version of Erlang/OTP, or using a different HTTP client such as -[hackney](https://github.com/gleam-lang/hackney). diff --git a/aoc2023/build/packages/gleam_httpc/gleam.toml b/aoc2023/build/packages/gleam_httpc/gleam.toml deleted file mode 100644 index d623a94..0000000 --- a/aoc2023/build/packages/gleam_httpc/gleam.toml +++ /dev/null @@ -1,23 +0,0 @@ -name = "gleam_httpc" -version = "2.1.1" -gleam = ">= 0.32.0" - -licences = ["Apache-2.0"] -description = "Gleam bindings to Erlang's built in HTTP client, httpc" - -repository = { type = "github", user = "gleam-lang", repo = "httpc" } -links = [ - { title = "Website", href = "https://gleam.run" }, - { title = "Sponsor", href = "https://github.com/sponsors/lpil" }, -] - -[erlang] -extra_applications = ["inets", "ssl"] - -[dependencies] -gleam_stdlib = "~> 0.32" -gleam_http = "~> 3.0" - -[dev-dependencies] -gleeunit = "~> 0.6" -gleam_erlang = "~> 0.9" diff --git a/aoc2023/build/packages/gleam_httpc/src/gleam/httpc.gleam b/aoc2023/build/packages/gleam_httpc/src/gleam/httpc.gleam deleted file mode 100644 index cf166c3..0000000 --- a/aoc2023/build/packages/gleam_httpc/src/gleam/httpc.gleam +++ /dev/null @@ -1,105 +0,0 @@ -import gleam/dynamic.{type Dynamic} -import gleam/http.{type Method} -import gleam/http/response.{type Response, Response} -import gleam/http/request.{type Request} -import gleam/bit_array -import gleam/result -import gleam/list -import gleam/uri - -type Charlist - -@external(erlang, "erlang", "binary_to_list") -fn binary_to_list(a: String) -> Charlist - -@external(erlang, "erlang", "list_to_binary") -fn list_to_binary(a: Charlist) -> String - -type ErlHttpOption - -type BodyFormat { - Binary -} - -type ErlOption { - BodyFormat(BodyFormat) -} - -@external(erlang, "httpc", "request") -fn erl_request( - a: Method, - b: #(Charlist, List(#(Charlist, Charlist)), Charlist, BitArray), - c: List(ErlHttpOption), - d: List(ErlOption), -) -> Result( - #(#(Charlist, Int, Charlist), List(#(Charlist, Charlist)), BitArray), - Dynamic, -) - -@external(erlang, "httpc", "request") -fn erl_request_no_body( - a: Method, - b: #(Charlist, List(#(Charlist, Charlist))), - c: List(ErlHttpOption), - d: List(ErlOption), -) -> Result( - #(#(Charlist, Int, Charlist), List(#(Charlist, Charlist)), BitArray), - Dynamic, -) - -fn charlist_header(header: #(String, String)) -> #(Charlist, Charlist) { - let #(k, v) = header - #(binary_to_list(k), binary_to_list(v)) -} - -fn string_header(header: #(Charlist, Charlist)) -> #(String, String) { - let #(k, v) = header - #(list_to_binary(k), list_to_binary(v)) -} - -// TODO: test -// TODO: refine error type -pub fn send_bits(req: Request(BitArray)) -> Result(Response(BitArray), Dynamic) { - let erl_url = - req - |> request.to_uri - |> uri.to_string - |> binary_to_list - let erl_headers = list.map(req.headers, charlist_header) - let erl_http_options = [] - let erl_options = [BodyFormat(Binary)] - - use response <- result.then(case req.method { - http.Options | http.Head | http.Get -> { - let erl_req = #(erl_url, erl_headers) - erl_request_no_body(req.method, erl_req, erl_http_options, erl_options) - } - _ -> { - let erl_content_type = - req - |> request.get_header("content-type") - |> result.unwrap("application/octet-stream") - |> binary_to_list - let erl_req = #(erl_url, erl_headers, erl_content_type, req.body) - erl_request(req.method, erl_req, erl_http_options, erl_options) - } - }) - - let #(#(_version, status, _status), headers, resp_body) = response - Ok(Response(status, list.map(headers, string_header), resp_body)) -} - -// TODO: test -// TODO: refine error type -pub fn send(req: Request(String)) -> Result(Response(String), Dynamic) { - use resp <- result.then( - req - |> request.map(bit_array.from_string) - |> send_bits, - ) - - case bit_array.to_string(resp.body) { - Ok(body) -> Ok(response.set_body(resp, body)) - Error(_) -> Error(dynamic.from("Response body was not valid UTF-8")) - } -} diff --git a/aoc2023/build/packages/gleam_httpc/src/gleam@httpc.erl b/aoc2023/build/packages/gleam_httpc/src/gleam@httpc.erl deleted file mode 100644 index 1d634df..0000000 --- a/aoc2023/build/packages/gleam_httpc/src/gleam@httpc.erl +++ /dev/null @@ -1,118 +0,0 @@ --module(gleam@httpc). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([send_bits/1, send/1]). --export_type([charlist/0, erl_http_option/0, body_format/0, erl_option/0]). - --type charlist() :: any(). - --type erl_http_option() :: any(). - --type body_format() :: binary. - --type erl_option() :: {body_format, body_format()}. - --spec charlist_header({binary(), binary()}) -> {charlist(), charlist()}. -charlist_header(Header) -> - {K, V} = Header, - {erlang:binary_to_list(K), erlang:binary_to_list(V)}. - --spec string_header({charlist(), charlist()}) -> {binary(), binary()}. -string_header(Header) -> - {K, V} = Header, - {erlang:list_to_binary(K), erlang:list_to_binary(V)}. - --spec send_bits(gleam@http@request:request(bitstring())) -> {ok, - gleam@http@response:response(bitstring())} | - {error, gleam@dynamic:dynamic_()}. -send_bits(Req) -> - Erl_url = begin - _pipe = Req, - _pipe@1 = gleam@http@request:to_uri(_pipe), - _pipe@2 = gleam@uri:to_string(_pipe@1), - erlang:binary_to_list(_pipe@2) - end, - Erl_headers = gleam@list:map(erlang:element(3, Req), fun charlist_header/1), - Erl_http_options = [], - Erl_options = [{body_format, binary}], - gleam@result:then(case erlang:element(2, Req) of - options -> - Erl_req = {Erl_url, Erl_headers}, - httpc:request( - erlang:element(2, Req), - Erl_req, - Erl_http_options, - Erl_options - ); - - head -> - Erl_req = {Erl_url, Erl_headers}, - httpc:request( - erlang:element(2, Req), - Erl_req, - Erl_http_options, - Erl_options - ); - - get -> - Erl_req = {Erl_url, Erl_headers}, - httpc:request( - erlang:element(2, Req), - Erl_req, - Erl_http_options, - Erl_options - ); - - _ -> - Erl_content_type = begin - _pipe@3 = Req, - _pipe@4 = gleam@http@request:get_header( - _pipe@3, - <<"content-type"/utf8>> - ), - _pipe@5 = gleam@result:unwrap( - _pipe@4, - <<"application/octet-stream"/utf8>> - ), - erlang:binary_to_list(_pipe@5) - end, - Erl_req@1 = {Erl_url, - Erl_headers, - Erl_content_type, - erlang:element(4, Req)}, - httpc:request( - erlang:element(2, Req), - Erl_req@1, - Erl_http_options, - Erl_options - ) - end, fun(Response) -> - {{_, Status, _}, Headers, Resp_body} = Response, - {ok, - {response, - Status, - gleam@list:map(Headers, fun string_header/1), - Resp_body}} - end). - --spec send(gleam@http@request:request(binary())) -> {ok, - gleam@http@response:response(binary())} | - {error, gleam@dynamic:dynamic_()}. -send(Req) -> - gleam@result:then( - begin - _pipe = Req, - _pipe@1 = gleam@http@request:map(_pipe, fun gleam_stdlib:identity/1), - send_bits(_pipe@1) - end, - fun(Resp) -> case gleam@bit_array:to_string(erlang:element(4, Resp)) of - {ok, Body} -> - {ok, gleam@http@response:set_body(Resp, Body)}; - - {error, _} -> - {error, - gleam@dynamic:from( - <<"Response body was not valid UTF-8"/utf8>> - )} - end end - ). diff --git a/aoc2023/build/packages/gleam_httpc/src/gleam_httpc.app.src b/aoc2023/build/packages/gleam_httpc/src/gleam_httpc.app.src deleted file mode 100644 index c0d2b20..0000000 --- a/aoc2023/build/packages/gleam_httpc/src/gleam_httpc.app.src +++ /dev/null @@ -1,12 +0,0 @@ -{application, gleam_httpc, [ - {vsn, "2.1.1"}, - {applications, [gleam_erlang, - gleam_http, - gleam_stdlib, - gleeunit, - inets, - ssl]}, - {description, "Gleam bindings to Erlang's built in HTTP client, httpc"}, - {modules, [gleam@httpc]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gleam_otp/LICENCE b/aoc2023/build/packages/gleam_otp/LICENCE deleted file mode 100644 index 619ec77..0000000 --- a/aoc2023/build/packages/gleam_otp/LICENCE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2019, Louis Pilfold . - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/aoc2023/build/packages/gleam_otp/README.md b/aoc2023/build/packages/gleam_otp/README.md deleted file mode 100644 index 3c313a1..0000000 --- a/aoc2023/build/packages/gleam_otp/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# Gleam OTP - -GitHub release -Discord chat -![CI](https://github.com/gleam-lang/otp/workflows/test/badge.svg?branch=main) - -A Gleam library for building fault tolerant multi-core programs using the -actor model. It is compatible with Erlang's OTP framework. - -This library is experimental and will likely have many breaking changes in the -future! - -Gleam’s actor system is built with a few primary goals: - -- Full type safety of actors and messages. -- Be compatible with Erlang’s OTP actor framework. -- Provide fault tolerance and self-healing through supervisors. -- Have equivalent performance to Erlang’s OTP. - -This library documents its abstractions and functionality, but you may also wish -to read the documentation or other material on Erlang’s OTP framework to get a -fuller understanding of OTP, the problems it solves, and and the motivations for -its design. - -## Usage - -Add this library to your Gleam project. - -```shell -gleam add gleam_otp -``` - -## Actor hierarchy - -This library provides several different types of actor that can be used in -Gleam programs. - -### Process - -The process is the lowest level building block of OTP, all other actors are -built on top of processes either directly or indirectly. Typically this -abstraction would be not be used very often in Gleam applications, favour -other actor types that provide more functionality. - -Gleam's process module is defined in the `gleam_erlang` library. - -[[Documentation]](https://hexdocs.pm/gleam_erlang/gleam/erlang/process.html) - -### Actor - -The `actor` is the most commonly used process type in Gleam and serves as a good -building block for other abstractions. Like Erlang's `gen_server` it handles -OTP's system messages automatically to enable OTP's debugging and tracing -functionality. - -[[Documentation]](https://hexdocs.pm/gleam_otp/gleam/otp/actor.html) - -### Task - -A task is a kind of process that performs a single task and then shuts down. -Commonly tasks are used to convert sequential code into concurrent code by -performing computation in another process. - -[[Documentation]](https://hexdocs.pm/gleam_otp/gleam/otp/task.html) - -### Supervisor - -Supervisors is a process that starts and then supervises a group of processes, -restarting them if they crash. Supervisors can start other supervisors, -resulting in a hierarchical process structure called a supervision tree, -providing fault tolerance to a Gleam application. - -[[Documentation]](https://hexdocs.pm/gleam_otp/gleam/otp/supervisor.html) - -## Limitations and known issues - -This library is experimental there are some limitations that not yet been resolved. - -- There is no support for named processes. They are untyped global mutable - variables which may be uninitialized, more research is needed to find a - suitable type safe alternative. -- There are relatively few actor abstractions provided by this library. More - will be added in the future. -- Actors do not yet support all OTP system messages. Unsupported messages are - dropped. -- Supervisors do not yet support different shutdown periods per child. In - practice this means that children that are supervisors do not get an - unlimited amount of time to shut down, as is expected in Erlang or Elixir. -- This library has not seen much testing compared to the Erlang OTP - libraries, both in terms of unit tests and real world testing in - applications. diff --git a/aoc2023/build/packages/gleam_otp/gleam.toml b/aoc2023/build/packages/gleam_otp/gleam.toml deleted file mode 100644 index 26e451b..0000000 --- a/aoc2023/build/packages/gleam_otp/gleam.toml +++ /dev/null @@ -1,19 +0,0 @@ -name = "gleam_otp" -version = "0.8.0" -licences = ["Apache-2.0"] -description = "Fault tolerant multicore Gleam programs with OTP" - -gleam = ">= 0.32.0" - -repository = { type = "github", user = "gleam-lang", repo = "otp" } -links = [ - { title = "Website", href = "https://gleam.run" }, - { title = "Sponsor", href = "https://github.com/sponsors/lpil" }, -] - -[dependencies] -gleam_stdlib = "~> 0.32" -gleam_erlang = "~> 0.22" - -[dev-dependencies] -gleeunit = "~> 1.0" diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Continue.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Continue.hrl deleted file mode 100644 index 85677d1..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Continue.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(continue, { - state :: any(), - selector :: gleam@option:option(gleam@erlang@process:selector(any())) -}). diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Ready.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Ready.hrl deleted file mode 100644 index 75faa95..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Ready.hrl +++ /dev/null @@ -1 +0,0 @@ --record(ready, {state :: any(), selector :: gleam@erlang@process:selector(any())}). diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Spec.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Spec.hrl deleted file mode 100644 index 5287439..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@actor_Spec.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(spec, { - init :: fun(() -> gleam@otp@actor:init_result(any(), any())), - init_timeout :: integer(), - loop :: fun((any(), any()) -> gleam@otp@actor:next(any(), any())) -}). diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@intensity_tracker_IntensityTracker.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@intensity_tracker_IntensityTracker.hrl deleted file mode 100644 index 3ed0b01..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@intensity_tracker_IntensityTracker.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(intensity_tracker, { - limit :: integer(), - period :: integer(), - events :: list(integer()) -}). diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@supervisor_ChildSpec.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@supervisor_ChildSpec.hrl deleted file mode 100644 index 7afd07f..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@supervisor_ChildSpec.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(child_spec, { - start :: fun((any()) -> {ok, gleam@erlang@process:subject(any())} | - {error, gleam@otp@actor:start_error()}), - returning :: fun((any(), gleam@erlang@process:subject(any())) -> any()) -}). diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@supervisor_Spec.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@supervisor_Spec.hrl deleted file mode 100644 index b10bd9f..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@supervisor_Spec.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(spec, { - argument :: any(), - max_frequency :: integer(), - frequency_period :: integer(), - init :: fun((gleam@otp@supervisor:children(any())) -> gleam@otp@supervisor:children(any())) -}). diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@system_StatusInfo.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@system_StatusInfo.hrl deleted file mode 100644 index 99ab4cb..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@system_StatusInfo.hrl +++ /dev/null @@ -1,7 +0,0 @@ --record(status_info, { - module :: gleam@erlang@atom:atom_(), - parent :: gleam@erlang@process:pid_(), - mode :: gleam@otp@system:mode(), - debug_state :: gleam@otp@system:debug_state(), - state :: gleam@dynamic:dynamic_() -}). diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@task_Exit.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@task_Exit.hrl deleted file mode 100644 index 7c83874..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@task_Exit.hrl +++ /dev/null @@ -1 +0,0 @@ --record(exit, {reason :: gleam@dynamic:dynamic_()}). diff --git a/aoc2023/build/packages/gleam_otp/include/gleam@otp@task_Task.hrl b/aoc2023/build/packages/gleam_otp/include/gleam@otp@task_Task.hrl deleted file mode 100644 index 959bea8..0000000 --- a/aoc2023/build/packages/gleam_otp/include/gleam@otp@task_Task.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(task, { - owner :: gleam@erlang@process:pid_(), - pid :: gleam@erlang@process:pid_(), - monitor :: gleam@erlang@process:process_monitor(), - selector :: gleam@erlang@process:selector(gleam@otp@task:message(any())) -}). diff --git a/aoc2023/build/packages/gleam_otp/src/gleam/otp/actor.gleam b/aoc2023/build/packages/gleam_otp/src/gleam/otp/actor.gleam deleted file mode 100644 index 9f6a6c4..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam/otp/actor.gleam +++ /dev/null @@ -1,504 +0,0 @@ -//// This module provides the _Actor_ abstraction, one of the most common -//// building blocks of Gleam OTP programs. -//// -//// An Actor is a process like any other BEAM process and can be be used to hold -//// state, execute code, and communicate with other processes by sending and -//// receiving messages. The advantage of using the actor abstraction over a bare -//// process is that it provides a single interface for commonly needed -//// functionality, including support for the [tracing and debugging -//// features in OTP](erlang-sys). -//// -//// Gleam's Actor is similar to Erlang's `gen_server` and Elixir's `GenServer` -//// but differs in that it offers a fully typed interface. This different API is -//// why Gleam uses the name Actor rather than some variation of generic-server. -//// -//// [erlang-sys]: https://www.erlang.org/doc/man/sys.html -//// -//// ## Example -//// -//// An Actor can be used to create a client-server interaction between an Actor -//// (the server) and other processes (the clients). In this example we have an -//// Actor that works as a stack, allowing clients to push and pop elements. -//// -//// ```gleam -//// pub fn main() { -//// // Start the actor with initial state of an empty list, and the -//// // `handle_message` callback function (defined below). -//// // We assert that it starts successfully. -//// // -//// // In real-world Gleam OTP programs we would likely write a wrapper functions -//// // called `start`, `push` `pop`, `shutdown` to start and interact with the -//// // Actor. We are not doing that here for the sake of showing how the Actor -//// // API works. -//// let assert Ok(actor) = actor.start([], handle_message) -//// -//// // We can send a message to the actor to push elements onto the stack. -//// process.send(actor, Push("Joe")) -//// process.send(actor, Push("Mike")) -//// process.send(actor, Push("Robert")) -//// -//// // The `Push` message expects no response, these messages are sent purely for -//// // the side effect of mutating the state held by the actor. -//// // -//// // We can also send the `Pop` message to take a value off of the actor's -//// // stack. This message expects a response, so we use `process.call` to send a -//// // message and wait until a reply is received. -//// // -//// // In this instance we are giving the actor 10 milliseconds to reply, if the -//// // `call` function doesn't get a reply within this time it will panic and -//// // crash the client process. -//// let assert Ok("Robert") = process.call(actor, Pop, 10) -//// let assert Ok("Mike") = process.call(actor, Pop, 10) -//// let assert Ok("Joe") = process.call(actor, Pop, 10) -//// -//// // The stack is now empty, so if we pop again the actor replies with an error. -//// let assert Error(Nil) = process.call(actor, Pop, 10) -//// -//// // Lastly, we can send a message to the actor asking it to shut down. -//// process.send(actor, Shutdown) -//// } -//// ``` -//// -//// Here is the code that is used to implement this actor: -//// -//// ```gleam -//// // First step of implementing the stack Actor is to define the message type that -//// // it can receive. -//// // -//// // The type of the elements in the stack is no fixed so a type parameter is used -//// // for it instead of a concrete type such as `String` or `Int`. -//// pub type Message(element) { -//// // The `Shutdown` message is used to tell the actor to stop. -//// // It is the simplest message type, it contains no data. -//// Shutdown -//// -//// // The `Push` message is used to add a new element to the stack. -//// // It contains the item to add, the type of which is the `element` -//// // parameterised type. -//// Push(push: element) -//// -//// // The `Pop` message is used to remove an element from the stack. -//// // It contains a `Subject`, which is used to send the response back to the -//// // message sender. In this case the reply is of type `Result(element, Nil)`. -//// Pop(reply_with: Subject(Result(element, Nil))) -//// } -//// -//// // The last part is to implement the `handle_message` callback function. -//// // -//// // This function is called by the Actor each for each message it receives. -//// // Actor is single threaded only does one thing at a time, so it handles -//// // messages sequentially and one at a time, in the order they are received. -//// // -//// // The function takes the message and the current state, and returns a data -//// // structure that indicates what to do next, along with the new state. -//// fn handle_message( -//// message: Message(e), -//// stack: List(e), -//// ) -> actor.Next(Message(e), List(e)) { -//// case message { -//// // For the `Shutdown` message we return the `actor.Stop` value, which causes -//// // the actor to discard any remaining messages and stop. -//// Shutdown -> actor.Stop(process.Normal) -//// -//// // For the `Push` message we add the new element to the stack and return -//// // `actor.continue` with this new stack, causing the actor to process any -//// // queued messages or wait for more. -//// Push(value) -> { -//// let new_state = [value, ..stack] -//// actor.continue(new_state) -//// } -//// -//// // For the `Pop` message we attempt to remove an element from the stack, -//// // sending it or an error back to the caller, before continuing. -//// Pop(client) -> -//// case stack { -//// [] -> { -//// // When the stack is empty we can't pop an element, so we send an -//// // error back. -//// process.send(client, Error(Nil)) -//// actor.continue([]) -//// } -//// -//// [first, ..rest] -> { -//// // Otherwise we send the first element back and use the remaining -//// // elements as the new state. -//// process.send(client, Ok(first)) -//// actor.continue(rest) -//// } -//// } -//// } -//// } -//// ``` - -import gleam/erlang/process.{ - type ExitReason, type Pid, type Selector, type Subject, Abnormal, -} -import gleam/erlang/charlist.{type Charlist} -import gleam/otp/system.{ - type DebugState, type Mode, type StatusInfo, type SystemMessage, GetState, - GetStatus, Resume, Running, StatusInfo, Suspend, Suspended, -} -import gleam/string -import gleam/dynamic.{type Dynamic} -import gleam/erlang/atom -import gleam/option.{type Option, None, Some} - -type Message(message) { - /// A regular message excepted by the process - Message(message) - - /// An OTP system message, for debugging or maintenance - System(SystemMessage) - - /// An unexpected message - Unexpected(Dynamic) -} - -/// The type used to indicate what to do after handling a message. -/// -pub type Next(message, state) { - /// Continue handling messages. - /// - Continue(state: state, selector: Option(Selector(message))) - - /// Stop handling messages and shut down. - /// - Stop(ExitReason) -} - -pub fn continue(state: state) -> Next(message, state) { - Continue(state, None) -} - -pub fn with_selector( - value: Next(message, state), - selector: Selector(message), -) -> Next(message, state) { - case value { - Continue(state, _) -> Continue(state, Some(selector)) - _ -> value - } -} - -/// The type used to indicate whether an actor has started successfully or not. -/// -pub type InitResult(state, message) { - /// The actor has successfully initialised. The actor can start handling - /// messages and actor's channel sender can be returned to the parent - /// process. - /// - Ready(state: state, selector: Selector(message)) - - /// The actor has failed to initialise. The actor shuts down and an error is - /// returned to the parent process. - /// - Failed(String) -} - -type Self(state, msg) { - Self( - mode: Mode, - parent: Pid, - state: state, - subject: Subject(msg), - selector: Selector(Message(msg)), - debug_state: DebugState, - message_handler: fn(msg, state) -> Next(msg, state), - ) -} - -/// This data structure holds all the values required by the `start_spec` -/// function in order to create an actor. -/// -/// If you do not need to configure the initialisation behaviour of your actor -/// consider using the `start` function. -/// -pub type Spec(state, msg) { - Spec( - /// The initialisation functionality for the actor. This function is called - /// just after the actor starts but before the channel sender is returned - /// to the parent. - /// - /// This function is used to ensure that any required data or state is - /// correct. If this function returns an error it means that the actor has - /// failed to start and an error is returned to the parent. - /// - init: fn() -> InitResult(state, msg), - /// How many milliseconds the `init` function has to return before it is - /// considered to have taken too long and failed. - /// - init_timeout: Int, - /// This function is called to handle each message that the actor receives. - /// - loop: fn(msg, state) -> Next(msg, state), - ) -} - -// TODO: Check needed functionality here to be OTP compatible -fn exit_process(reason: ExitReason) -> ExitReason { - // TODO - reason -} - -fn receive_message(self: Self(state, msg)) -> Message(msg) { - let selector = case self.mode { - // When suspended we only respond to system messages - Suspended -> - process.new_selector() - |> selecting_system_messages - - // When running we respond to all messages - Running -> - // We add the handler for unexpected messages first so that the user - // supplied selector can override it if desired - process.new_selector() - |> process.selecting_anything(Unexpected) - |> process.merge_selector(self.selector) - |> selecting_system_messages - } - - process.select_forever(selector) -} - -fn selecting_system_messages( - selector: Selector(Message(msg)), -) -> Selector(Message(msg)) { - selector - |> process.selecting_record3( - atom.create_from_string("system"), - convert_system_message, - ) -} - -@external(erlang, "gleam_otp_external", "convert_system_message") -fn convert_system_message(a: Dynamic, b: Dynamic) -> Message(msg) - -fn process_status_info(self: Self(state, msg)) -> StatusInfo { - StatusInfo( - module: atom.create_from_string("gleam@otp@actor"), - parent: self.parent, - mode: self.mode, - debug_state: self.debug_state, - state: dynamic.from(self.state), - ) -} - -fn loop(self: Self(state, msg)) -> ExitReason { - case receive_message(self) { - System(system) -> - case system { - GetState(callback) -> { - callback(dynamic.from(self.state)) - loop(self) - } - Resume(callback) -> { - callback() - loop(Self(..self, mode: Running)) - } - Suspend(callback) -> { - callback() - loop(Self(..self, mode: Suspended)) - } - GetStatus(callback) -> { - callback(process_status_info(self)) - loop(self) - } - } - - Unexpected(message) -> { - log_warning( - charlist.from_string("Actor discarding unexpected message: ~s"), - [charlist.from_string(string.inspect(message))], - ) - loop(self) - } - - Message(msg) -> - case self.message_handler(msg, self.state) { - Stop(reason) -> exit_process(reason) - Continue(state: state, selector: new_selector) -> { - let selector = - new_selector - |> option.map(init_selector(self.subject, _)) - |> option.unwrap(self.selector) - loop(Self(..self, state: state, selector: selector)) - } - } - } -} - -// TODO: replace this when we have Gleam bindings to the logger -@external(erlang, "logger", "warning") -fn log_warning(a: Charlist, b: List(Charlist)) -> Nil - -fn initialise_actor( - spec: Spec(state, msg), - ack: Subject(Result(Subject(msg), ExitReason)), -) { - let subject = process.new_subject() - case spec.init() { - Ready(state, selector) -> { - let selector = init_selector(subject, selector) - // Signal to parent that the process has initialised successfully - process.send(ack, Ok(subject)) - // Start message receive loop - let self = - Self( - state: state, - parent: process.subject_owner(ack), - subject: subject, - selector: selector, - message_handler: spec.loop, - debug_state: system.debug_state([]), - mode: Running, - ) - loop(self) - } - - Failed(reason) -> { - process.send(ack, Error(Abnormal(reason))) - exit_process(Abnormal(reason)) - } - } -} - -fn init_selector(subject, selector) { - process.new_selector() - |> process.selecting(subject, Message) - |> process.merge_selector(process.map_selector(selector, Message)) -} - -pub type StartError { - InitTimeout - InitFailed(ExitReason) - InitCrashed(Dynamic) -} - -/// The result of starting a Gleam actor. -/// -/// This type is compatible with Gleam supervisors. If you wish to convert it -/// to a type compatible with Erlang supervisors see the `ErlangStartResult` -/// type and `erlang_start_result` function. -/// -pub type StartResult(msg) = - Result(Subject(msg), StartError) - -/// An Erlang supervisor compatible process start result. -/// -/// If you wish to convert this into a `StartResult` compatible with Gleam -/// supervisors see the `from_erlang_start_result` and `wrap_erlang_starter` -/// functions. -/// -pub type ErlangStartResult = - Result(Pid, Dynamic) - -/// Convert a Gleam actor start result into an Erlang supervisor compatible -/// process start result. -/// -pub fn to_erlang_start_result(res: StartResult(msg)) -> ErlangStartResult { - case res { - Ok(x) -> Ok(process.subject_owner(x)) - Error(x) -> Error(dynamic.from(x)) - } -} - -type StartInitMessage(msg) { - Ack(Result(Subject(msg), ExitReason)) - Mon(process.ProcessDown) -} - -// TODO: test init_timeout. Currently if we test it eunit prints an error from -// the process death. How do we avoid this? -// -/// Start an actor from a given specification. If the actor's `init` function -/// returns an error or does not return within `init_timeout` then an error is -/// returned. -/// -/// If you do not need to specify the initialisation behaviour of your actor -/// consider using the `start` function. -/// -pub fn start_spec(spec: Spec(state, msg)) -> Result(Subject(msg), StartError) { - let ack_subject = process.new_subject() - - let child = - process.start( - linked: True, - running: fn() { initialise_actor(spec, ack_subject) }, - ) - - let monitor = process.monitor_process(child) - let selector = - process.new_selector() - |> process.selecting(ack_subject, Ack) - |> process.selecting_process_down(monitor, Mon) - - let result = case process.select(selector, spec.init_timeout) { - // Child started OK - Ok(Ack(Ok(channel))) -> Ok(channel) - - // Child initialiser returned an error - Ok(Ack(Error(reason))) -> Error(InitFailed(reason)) - - // Child went down while initialising - Ok(Mon(down)) -> Error(InitCrashed(down.reason)) - - // Child did not finish initialising in time - Error(Nil) -> { - process.kill(child) - Error(InitTimeout) - } - } - - // Remove the monitor used for the starting of the actor as to avoid an extra - // message arriving at the parent if the child dies later. - process.demonitor_process(monitor) - - result -} - -/// Start an actor with a given initial state and message handling loop -/// function. -/// -/// This function returns a `Result` but it will always be `Ok` so it is safe -/// to use with `assert` if you are not starting this actor as part of a -/// supervision tree. -/// -/// If you wish to configure the initialisation behaviour of a new actor see -/// the `Spec` record and the `start_spec` function. -/// -pub fn start( - state: state, - loop: fn(msg, state) -> Next(msg, state), -) -> Result(Subject(msg), StartError) { - start_spec(Spec( - init: fn() { Ready(state, process.new_selector()) }, - loop: loop, - init_timeout: 5000, - )) -} - -/// Send a message over a given channel. -/// -/// This is a re-export of `process.send`, for the sake of convenience. -/// -pub fn send(subject: Subject(msg), msg: msg) -> Nil { - process.send(subject, msg) -} - -// TODO: test -/// Send a synchronous message and wait for a response from the receiving -/// process. -/// -/// If a reply is not received within the given timeout then the sender process -/// crashes. If you wish receive a `Result` rather than crashing see the -/// `process.try_call` function. -/// -/// This is a re-export of `process.call`, for the sake of convenience. -/// -pub fn call( - selector: Subject(message), - make_message: fn(Subject(reply)) -> message, - timeout: Int, -) -> reply { - process.call(selector, make_message, timeout) -} diff --git a/aoc2023/build/packages/gleam_otp/src/gleam/otp/intensity_tracker.gleam b/aoc2023/build/packages/gleam_otp/src/gleam/otp/intensity_tracker.gleam deleted file mode 100644 index 2044be0..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam/otp/intensity_tracker.gleam +++ /dev/null @@ -1,46 +0,0 @@ -//// The intensity tracker is used to monitor how frequently an event happens, -//// erroring if it happens too many times within a period of time. - -import gleam/list - -// TODO: test -pub opaque type IntensityTracker { - IntensityTracker(limit: Int, period: Int, events: List(Int)) -} - -pub type TooIntense { - TooIntense -} - -pub fn new(limit limit: Int, period period: Int) -> IntensityTracker { - IntensityTracker(limit: limit, period: period, events: []) -} - -@external(erlang, "erlang", "monotonic_time") -fn monotonic_time(a: Int) -> Int - -fn now_seconds() -> Int { - monotonic_time(1) -} - -pub fn trim_window(events: List(Int), now: Int, period: Int) -> List(Int) { - case events { - [] -> [] - [event, ..events] -> - case now >= event + period { - True -> [event, ..trim_window(events, now, period)] - False -> [] - } - } -} - -pub fn add_event( - tracker: IntensityTracker, -) -> Result(IntensityTracker, TooIntense) { - let now = now_seconds() - let events = trim_window([now, ..tracker.events], now, tracker.period) - case list.length(events) >= tracker.limit { - True -> Error(TooIntense) - False -> Ok(IntensityTracker(..tracker, events: events)) - } -} diff --git a/aoc2023/build/packages/gleam_otp/src/gleam/otp/port.gleam b/aoc2023/build/packages/gleam_otp/src/gleam/otp/port.gleam deleted file mode 100644 index 4e1b4d8..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam/otp/port.gleam +++ /dev/null @@ -1,9 +0,0 @@ -/// Ports are how code running on the Erlang virtual machine interacts with -/// the outside world. Bytes of data can be sent to and read from ports, -/// providing a form of message passing to an external program or resource. -/// -/// For more information on ports see the [Erlang ports documentation][1]. -/// -/// [1]: https://erlang.org/doc/reference_manual/ports.html -/// -pub type Port diff --git a/aoc2023/build/packages/gleam_otp/src/gleam/otp/supervisor.gleam b/aoc2023/build/packages/gleam_otp/src/gleam/otp/supervisor.gleam deleted file mode 100644 index b99ad8e..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam/otp/supervisor.gleam +++ /dev/null @@ -1,410 +0,0 @@ -// TODO: specify amount of time permitted for shut-down -import gleam/result -import gleam/string -import gleam/option.{type Option, None, Some} -import gleam/erlang/process.{type Pid, type Subject} -import gleam/otp/actor.{type StartError} -import gleam/otp/intensity_tracker.{type IntensityTracker} -import gleam/erlang/node.{type Node} - -/// This data structure holds all the values required by the `start_spec` -/// function in order to create an supervisor. -/// -/// If you do not need to configure the behaviour of your supervisor consider -/// using the `start` function. -/// -pub type Spec(argument, return) { - Spec( - argument: argument, - max_frequency: Int, - frequency_period: Int, - init: fn(Children(argument)) -> Children(return), - ) -} - -/// This type represents the starting children of a supervisor within the -/// `init` function. -/// -pub opaque type Children(argument) { - Ready(Starter(argument)) - Failed(ChildStartError) -} - -/// This type contains all the information required to start a new child and -/// add it to the `Children`. -/// -/// This is typically created with the `worker` function. -/// -pub opaque type ChildSpec(msg, argument, returning) { - ChildSpec( - // TODO: merge this into one field - start: fn(argument) -> Result(Subject(msg), StartError), - returning: fn(argument, Subject(msg)) -> returning, - ) -} - -type ChildStartError { - ChildStartError(previous_pid: Option(Pid), error: StartError) -} - -pub opaque type Message { - Exit(process.ExitMessage) - RetryRestart(Pid) -} - -type Instruction { - StartAll - StartFrom(Pid) -} - -type State(a) { - State( - restarts: IntensityTracker, - starter: Starter(a), - retry_restarts: Subject(Pid), - ) -} - -type Starter(argument) { - Starter( - argument: argument, - exec: Option( - fn(Instruction) -> - Result(#(Starter(argument), Instruction), ChildStartError), - ), - ) -} - -type Child(argument) { - Child(pid: Pid, argument: argument) -} - -fn start_child( - child_spec: ChildSpec(msg, argument_in, argument_out), - argument: argument_in, -) -> Result(Child(argument_out), ChildStartError) { - use subject <- result.then( - child_spec.start(argument) - |> result.map_error(ChildStartError(None, _)), - ) - - Ok(Child( - pid: process.subject_owner(subject), - // Merge the new child's pid into the argument to produce the new argument - // used to start any remaining children. - argument: child_spec.returning(argument, subject), - )) -} - -// TODO: more sophsiticated stopping of processes. i.e. give supervisors -// more time to shut down. -fn shutdown_child(pid: Pid, _spec: ChildSpec(msg, arg_1, arg_2)) -> Nil { - process.send_exit(pid) -} - -fn perform_instruction_for_child( - argument: argument_in, - instruction: Instruction, - child_spec: ChildSpec(msg, argument_in, argument_out), - child: Child(argument_out), -) -> Result(#(Child(argument_out), Instruction), ChildStartError) { - let current = child.pid - case instruction { - // This child is older than the StartFrom target, we don't need to - // restart it - StartFrom(target) if target != current -> Ok(#(child, instruction)) - - // This pid either is the cause of the problem, or we have the StartAll - // instruction. Either way it and its younger siblings need to be restarted. - _ -> { - shutdown_child(current, child_spec) - use child <- result.then(start_child(child_spec, argument)) - Ok(#(child, StartAll)) - } - } -} - -fn add_child_to_starter( - starter: Starter(argument_in), - child_spec: ChildSpec(msg, argument_in, argument_out), - child: Child(argument_out), -) -> Starter(argument_out) { - let starter = fn(instruction) { - // Restart the older children. We use `try` to return early if the older - // children failed to start - use #(starter, instruction) <- result.then(case starter.exec { - Some(start) -> start(instruction) - None -> Ok(#(starter, instruction)) - }) - - // Perform the instruction, restarting the child as required - use #(child, instruction) <- result.then(perform_instruction_for_child( - starter.argument, - instruction, - child_spec, - child, - )) - - // Create a new starter for the next time the supervisor needs to restart - let starter = add_child_to_starter(starter, child_spec, child) - - Ok(#(starter, instruction)) - } - - Starter(exec: Some(starter), argument: child.argument) -} - -fn start_and_add_child( - state: Starter(argument_0), - child_spec: ChildSpec(msg, argument_0, argument_1), -) -> Children(argument_1) { - case start_child(child_spec, state.argument) { - Ok(child) -> Ready(add_child_to_starter(state, child_spec, child)) - Error(reason) -> Failed(reason) - } -} - -/// Add a child to the collection of children of the supervisor -/// -/// This function starts the child from the child spec. -/// -pub fn add( - children: Children(argument), - child_spec: ChildSpec(msg, argument, new_argument), -) -> Children(new_argument) { - case children { - // If one of the previous children has failed then we cannot continue - Failed(fail) -> Failed(fail) - - // If everything is OK so far then we can add the child - Ready(state) -> start_and_add_child(state, child_spec) - } -} - -// TODO: test -// TODO: unlimitd shut down duration -/// Prepare a new supervisor type child. -/// -/// If you wish to prepare a new non-supervisor type child see the `worker` -/// function. -/// -/// If you wish to change the type of the argument for later children see the -/// `returning` function. -/// -/// Note: Gleam supervisors do not yet support different shutdown periods per -/// child so this function is currently identical in behaviour to `worker`. It is -/// recommended to use this function for supervisor children nevertheless so the -/// correct shut down behaviour is used in later releases of this library. -/// -pub fn supervisor( - start: fn(argument) -> Result(Subject(msg), StartError), -) -> ChildSpec(msg, argument, argument) { - ChildSpec(start: start, returning: fn(argument, _channel) { argument }) -} - -/// Prepare a new worker type child. -/// -/// If you wish to prepare a new supervisor type child see the `supervisor` -/// function. -/// -/// If you wish to change the type of the argument for later children see the -/// `returning` function. -/// -pub fn worker( - start: fn(argument) -> Result(Subject(msg), StartError), -) -> ChildSpec(msg, argument, argument) { - ChildSpec(start: start, returning: fn(argument, _channel) { argument }) -} - -// TODO: test -/// As each child is added to a supervisors children a new argument is prepared -/// with which to start the next child. By default argument is the same as the -/// previous argument, but this function can be used to change it to something -/// else by passing a function that takes the previous argument and the sender -/// of the previous child. -/// -pub fn returning( - child: ChildSpec(msg, argument_a, argument_b), - updater: fn(argument_a, Subject(msg)) -> argument_c, -) -> ChildSpec(msg, argument_a, argument_c) { - ChildSpec(start: child.start, returning: updater) -} - -fn init( - spec: Spec(argument, return), -) -> actor.InitResult(State(return), Message) { - // Create a subject so that we can asynchronously retry restarting when we - // fail to bring an exited child - let retry = process.new_subject() - - // Trap exits so that we get a message when a child crashes - process.trap_exits(True) - - // Combine selectors - let selector = - process.new_selector() - |> process.selecting(retry, RetryRestart) - |> process.selecting_trapped_exits(Exit) - - // Start any children - let result = - Starter(argument: spec.argument, exec: None) - |> Ready - |> spec.init - - // Pass back up the result - case result { - Ready(starter) -> { - let restarts = - intensity_tracker.new( - limit: spec.max_frequency, - period: spec.frequency_period, - ) - let state = - State(starter: starter, restarts: restarts, retry_restarts: retry) - actor.Ready(state, selector) - } - - Failed(error) -> - actor.Failed(case error.error { - actor.InitTimeout -> "Child initialisation timed out" - actor.InitCrashed(reason) -> - string.append( - "Child crashed during initialisation: ", - string.inspect(reason), - ) - actor.InitFailed(reason) -> - string.append( - "Child failed to start during initialisation: ", - string.inspect(reason), - ) - }) - } -} - -type HandleExitError { - RestartFailed(pid: Pid, restarts: IntensityTracker) - TooManyRestarts -} - -fn handle_exit(pid: Pid, state: State(a)) -> actor.Next(Message, State(a)) { - let outcome = { - // If we are handling an exit then we must have some children - let assert Some(start) = state.starter.exec - - // Check to see if there has been too many restarts in this period - use restarts <- result.then( - state.restarts - |> intensity_tracker.add_event - |> result.map_error(fn(_) { TooManyRestarts }), - ) - - // Restart the exited child and any following children - use #(starter, _) <- result.then( - start(StartFrom(pid)) - |> result.map_error(fn(e: ChildStartError) { - RestartFailed(option.unwrap(e.previous_pid, pid), restarts) - }), - ) - - Ok(State(..state, starter: starter, restarts: restarts)) - } - - case outcome { - Ok(state) -> actor.continue(state) - Error(RestartFailed(failed_child, restarts)) -> { - // Asynchronously enqueue the restarting of this child again as we were - // unable to restart them this time. We do this asynchronously as we want - // to have a chance to handle any system messages that have come in. - process.send(state.retry_restarts, failed_child) - let state = State(..state, restarts: restarts) - actor.continue(state) - } - Error(TooManyRestarts) -> - actor.Stop(process.Abnormal( - "Child processes restarted too many times within allowed period", - )) - } -} - -fn loop( - message: Message, - state: State(argument), -) -> actor.Next(Message, State(argument)) { - case message { - Exit(exit_message) -> handle_exit(exit_message.pid, state) - RetryRestart(pid) -> handle_exit(pid, state) - } -} - -/// Start a supervisor from a given specification. -/// -pub fn start_spec(spec: Spec(a, b)) -> Result(Subject(Message), StartError) { - actor.start_spec(actor.Spec( - init: fn() { init(spec) }, - loop: loop, - init_timeout: 60_000, - )) -} - -/// Start a supervisor from a given `init` function. -/// -/// The init argument passed to children will be `Nil` and the maximum restart -/// intensity will be 1 restart per 5 seconds (the same as the default for -/// [Erlang supervisors][erl-sup]). If you wish to specify these values, see -/// the `start_spec` function and the `Spec` type. -/// -/// [erl-sup]: https://www.erlang.org/doc/design_principles/sup_princ.html#maximum-restart-intensity -/// -pub fn start( - init: fn(Children(Nil)) -> Children(a), -) -> Result(Subject(Message), StartError) { - start_spec(Spec( - init: init, - argument: Nil, - max_frequency: 1, - frequency_period: 5, - )) -} - -/// A type used to describe the situation in which an Erlang based application -/// is starting. -/// -/// For more information see the [Erlang distributed application -/// documentation][1] and the Learn Your Some Erlang chapter on [distributed -/// applications][2]. -/// -/// [1]: https://erlang.org/doc/design_principles/distributed_applications.html -/// [2]: https://learnyousomeerlang.com/distributed-otp-applications -/// -pub type ApplicationStartMode { - Normal - Takeover(Node) - Failover(Node) -} - -pub type ApplicationStop - -@external(erlang, "gleam_otp_external", "application_stopped") -pub fn application_stopped() -> ApplicationStop - -/// The result of starting a Gleam actor. -/// -/// This type is compatible with Gleam supervisors. If you wish to convert it -/// to a type compatible with Erlang supervisors see the `ErlangStartResult` -/// type and `erlang_start_result` function. -/// -pub type StartResult(msg) = - actor.StartResult(msg) - -/// An Erlang supervisor compatible process start result. -/// -pub type ErlangStartResult = - actor.ErlangStartResult - -/// Convert a Gleam actor start result into an Erlang supervisor compatible -/// process start result. -/// -pub fn to_erlang_start_result(res: StartResult(msg)) -> ErlangStartResult { - actor.to_erlang_start_result(res) -} diff --git a/aoc2023/build/packages/gleam_otp/src/gleam/otp/system.gleam b/aoc2023/build/packages/gleam_otp/src/gleam/otp/system.gleam deleted file mode 100644 index c05646b..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam/otp/system.gleam +++ /dev/null @@ -1,89 +0,0 @@ -import gleam/dynamic.{type Dynamic} -import gleam/erlang/atom.{type Atom} -import gleam/erlang/process.{type Pid} - -pub type Mode { - Running - Suspended -} - -pub type DebugOption { - NoDebug -} - -pub type DebugState - -@external(erlang, "sys", "debug_options") -pub fn debug_state(a: List(DebugOption)) -> DebugState - -pub type StatusInfo { - StatusInfo( - module: Atom, - parent: Pid, - mode: Mode, - debug_state: DebugState, - state: Dynamic, - ) -} - -// TODO: document -// TODO: implement remaining messages -pub type SystemMessage { - // {replace_state, StateFn} - // {change_code, Mod, Vsn, Extra} - // {terminate, Reason} - // {debug, {log, Flag}} - // {debug, {trace, Flag}} - // {debug, {log_to_file, FileName}} - // {debug, {statistics, Flag}} - // {debug, no_debug} - // {debug, {install, {Func, FuncState}}} - // {debug, {install, {FuncId, Func, FuncState}}} - // {debug, {remove, FuncOrId}} - Resume(fn() -> Nil) - Suspend(fn() -> Nil) - GetState(fn(Dynamic) -> Nil) - GetStatus(fn(StatusInfo) -> Nil) -} - -type DoNotLeak - -/// Get the state of a given OTP compatible process. This function is only -/// intended for debugging. -/// -/// For more information see the [Erlang documentation][1]. -/// -/// [1]: https://erlang.org/doc/man/sys.html#get_state-1 -/// -@external(erlang, "sys", "get_state") -pub fn get_state(from from: Pid) -> Dynamic - -@external(erlang, "sys", "suspend") -fn erl_suspend(a: Pid) -> DoNotLeak - -/// Request an OTP compatible process to suspend, causing it to only handle -/// system messages. -/// -/// For more information see the [Erlang documentation][1]. -/// -/// [1]: https://erlang.org/doc/man/sys.html#suspend-1 -/// -pub fn suspend(pid: Pid) -> Nil { - erl_suspend(pid) - Nil -} - -@external(erlang, "sys", "resume") -fn erl_resume(from from: Pid) -> DoNotLeak - -/// Request a suspended OTP compatible process to result, causing it to handle -/// all messages rather than only system messages. -/// -/// For more information see the [Erlang documentation][1]. -/// -/// [1]: https://erlang.org/doc/man/sys.html#resume-1 -/// -pub fn resume(pid: Pid) -> Nil { - erl_resume(pid) - Nil -} diff --git a/aoc2023/build/packages/gleam_otp/src/gleam/otp/task.gleam b/aoc2023/build/packages/gleam_otp/src/gleam/otp/task.gleam deleted file mode 100644 index b2b2c5c..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam/otp/task.gleam +++ /dev/null @@ -1,151 +0,0 @@ -//// A task is a kind of process that performs a single task and then shuts -//// down. Commonly tasks are used to convert sequential code into concurrent -//// code by performing computation in another process. -//// -//// let task = task.async(fn() { do_some_work() }) -//// let value = do_some_other_work() -//// value + task.await(task, 100) -//// -//// Tasks spawned with async can be awaited on by their caller process (and -//// only their caller) as shown in the example above. They are implemented by -//// spawning a process that sends a message to the caller once the given -//// computation is performed. -//// -//// There are two important things to consider when using `async`: -//// -//// 1. If you are using async tasks, you must await a reply as they are always -//// sent. -//// -//// 2. async tasks link the caller and the spawned process. This means that, -//// if the caller crashes, the task will crash too and vice-versa. This is -//// on purpose: if the process meant to receive the result no longer -//// exists, there is no purpose in completing the computation. -//// -//// This module is inspired by Elixir's [Task module][1]. -//// -//// [1]: https://hexdocs.pm/elixir/master/Task.html -//// - -// TODO: await_many -import gleam/erlang/process.{type Pid, type ProcessMonitor, type Selector} -import gleam/dynamic.{type Dynamic} - -pub opaque type Task(value) { - Task( - owner: Pid, - pid: Pid, - monitor: ProcessMonitor, - selector: Selector(Message(value)), - ) -} - -// TODO: test -/// Spawn a task process that calls a given function in order to perform some -/// work. The result of this function is send back to the parent and can be -/// received using the `await` function. -/// -/// See the top level module documentation for more information on async/await. -/// -pub fn async(work: fn() -> value) -> Task(value) { - let owner = process.self() - let subject = process.new_subject() - let pid = - process.start(linked: True, running: fn() { process.send(subject, work()) }) - let monitor = process.monitor_process(pid) - let selector = - process.new_selector() - |> process.selecting_process_down(monitor, FromMonitor) - |> process.selecting(subject, FromSubject) - Task(owner: owner, pid: pid, monitor: monitor, selector: selector) -} - -pub type AwaitError { - Timeout - Exit(reason: Dynamic) -} - -// We can only wait on a task if we are the owner of it so crash if we are -// waiting on a task we don't own. -fn assert_owner(task: Task(a)) -> Nil { - let self = process.self() - case task.owner == self { - True -> Nil - False -> - process.send_abnormal_exit( - self, - "awaited on a task that does not belong to this process", - ) - } -} - -type Message(value) { - FromMonitor(process.ProcessDown) - FromSubject(value) -} - -// TODO: test -/// Wait for the value computed by a task. -/// -/// If the a value is not received before the timeout has elapsed or if the -/// task process crashes then an error is returned. -/// -pub fn try_await(task: Task(value), timeout: Int) -> Result(value, AwaitError) { - assert_owner(task) - case process.select(task.selector, timeout) { - // The task process has sent back a value - Ok(FromSubject(x)) -> { - process.demonitor_process(task.monitor) - Ok(x) - } - - // The task process crashed without sending a value - Ok(FromMonitor(process.ProcessDown(reason: reason, ..))) -> - Error(Exit(reason)) - - // The task process is alive but has not sent a value yet - Error(Nil) -> Error(Timeout) - } -} - -// TODO: test -/// Wait for the value computed by a task. -/// -/// If the a value is not received before the timeout has elapsed or if the -/// task process crashes then this function crashes. -/// -pub fn await(task: Task(value), timeout: Int) -> value { - let assert Ok(value) = try_await(task, timeout) - value -} - -/// Wait endlessly for the value computed by a task. -/// -/// Be Careful! This function does not return until there is a value to -/// receive. If a value is not received then the process will be stuck waiting -/// forever. -/// -pub fn try_await_forever(task: Task(value)) -> Result(value, AwaitError) { - assert_owner(task) - case process.select_forever(task.selector) { - // The task process has sent back a value - FromSubject(x) -> { - process.demonitor_process(task.monitor) - Ok(x) - } - - // The task process crashed without sending a value - FromMonitor(process.ProcessDown(reason: reason, ..)) -> Error(Exit(reason)) - } -} - -/// Wait endlessly for the value computed by a task. -/// -/// Be Careful! Like `try_await_forever`, this function does not return until there is a value to -/// receive. -/// -/// If the task process crashes then this function crashes. -/// -pub fn await_forever(task: Task(value)) -> value { - let assert Ok(value) = try_await_forever(task) - value -} diff --git a/aoc2023/build/packages/gleam_otp/src/gleam@otp@actor.erl b/aoc2023/build/packages/gleam_otp/src/gleam@otp@actor.erl deleted file mode 100644 index 0606147..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam@otp@actor.erl +++ /dev/null @@ -1,273 +0,0 @@ --module(gleam@otp@actor). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([continue/1, with_selector/2, to_erlang_start_result/1, start_spec/1, start/2, send/2, call/3]). --export_type([message/1, next/2, init_result/2, self/2, spec/2, start_error/0, start_init_message/1]). - --type message(GAS) :: {message, GAS} | - {system, gleam@otp@system:system_message()} | - {unexpected, gleam@dynamic:dynamic_()}. - --type next(GAT, GAU) :: {continue, - GAU, - gleam@option:option(gleam@erlang@process:selector(GAT))} | - {stop, gleam@erlang@process:exit_reason()}. - --type init_result(GAV, GAW) :: {ready, GAV, gleam@erlang@process:selector(GAW)} | - {failed, binary()}. - --type self(GAX, GAY) :: {self, - gleam@otp@system:mode(), - gleam@erlang@process:pid_(), - GAX, - gleam@erlang@process:subject(GAY), - gleam@erlang@process:selector(message(GAY)), - gleam@otp@system:debug_state(), - fun((GAY, GAX) -> next(GAY, GAX))}. - --type spec(GAZ, GBA) :: {spec, - fun(() -> init_result(GAZ, GBA)), - integer(), - fun((GBA, GAZ) -> next(GBA, GAZ))}. - --type start_error() :: init_timeout | - {init_failed, gleam@erlang@process:exit_reason()} | - {init_crashed, gleam@dynamic:dynamic_()}. - --type start_init_message(GBB) :: {ack, - {ok, gleam@erlang@process:subject(GBB)} | - {error, gleam@erlang@process:exit_reason()}} | - {mon, gleam@erlang@process:process_down()}. - --spec continue(GBI) -> next(any(), GBI). -continue(State) -> - {continue, State, none}. - --spec with_selector(next(GBM, GBN), gleam@erlang@process:selector(GBM)) -> next(GBM, GBN). -with_selector(Value, Selector) -> - case Value of - {continue, State, _} -> - {continue, State, {some, Selector}}; - - _ -> - Value - end. - --spec exit_process(gleam@erlang@process:exit_reason()) -> gleam@erlang@process:exit_reason(). -exit_process(Reason) -> - Reason. - --spec selecting_system_messages(gleam@erlang@process:selector(message(GBY))) -> gleam@erlang@process:selector(message(GBY)). -selecting_system_messages(Selector) -> - _pipe = Selector, - gleam@erlang@process:selecting_record3( - _pipe, - erlang:binary_to_atom(<<"system"/utf8>>), - fun gleam_otp_external:convert_system_message/2 - ). - --spec receive_message(self(any(), GBU)) -> message(GBU). -receive_message(Self) -> - Selector = case erlang:element(2, Self) of - suspended -> - _pipe = gleam_erlang_ffi:new_selector(), - selecting_system_messages(_pipe); - - running -> - _pipe@1 = gleam_erlang_ffi:new_selector(), - _pipe@2 = gleam@erlang@process:selecting_anything( - _pipe@1, - fun(Field@0) -> {unexpected, Field@0} end - ), - _pipe@3 = gleam_erlang_ffi:merge_selector( - _pipe@2, - erlang:element(6, Self) - ), - selecting_system_messages(_pipe@3) - end, - gleam_erlang_ffi:select(Selector). - --spec process_status_info(self(any(), any())) -> gleam@otp@system:status_info(). -process_status_info(Self) -> - {status_info, - erlang:binary_to_atom(<<"gleam@otp@actor"/utf8>>), - erlang:element(3, Self), - erlang:element(2, Self), - erlang:element(7, Self), - gleam@dynamic:from(erlang:element(4, Self))}. - --spec init_selector( - gleam@erlang@process:subject(GGN), - gleam@erlang@process:selector(GGN) -) -> gleam@erlang@process:selector(message(GGN)). -init_selector(Subject, Selector) -> - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = gleam@erlang@process:selecting( - _pipe, - Subject, - fun(Field@0) -> {message, Field@0} end - ), - gleam_erlang_ffi:merge_selector( - _pipe@1, - gleam_erlang_ffi:map_selector( - Selector, - fun(Field@0) -> {message, Field@0} end - ) - ). - --spec loop(self(any(), any())) -> gleam@erlang@process:exit_reason(). -loop(Self) -> - case receive_message(Self) of - {system, System} -> - case System of - {get_state, Callback} -> - Callback(gleam@dynamic:from(erlang:element(4, Self))), - loop(Self); - - {resume, Callback@1} -> - Callback@1(), - loop(erlang:setelement(2, Self, running)); - - {suspend, Callback@2} -> - Callback@2(), - loop(erlang:setelement(2, Self, suspended)); - - {get_status, Callback@3} -> - Callback@3(process_status_info(Self)), - loop(Self) - end; - - {unexpected, Message} -> - logger:warning( - unicode:characters_to_list( - <<"Actor discarding unexpected message: ~s"/utf8>> - ), - [unicode:characters_to_list(gleam@string:inspect(Message))] - ), - loop(Self); - - {message, Msg} -> - case (erlang:element(8, Self))(Msg, erlang:element(4, Self)) of - {stop, Reason} -> - exit_process(Reason); - - {continue, State, New_selector} -> - Selector = begin - _pipe = New_selector, - _pipe@1 = gleam@option:map( - _pipe, - fun(_capture) -> - init_selector(erlang:element(5, Self), _capture) - end - ), - gleam@option:unwrap(_pipe@1, erlang:element(6, Self)) - end, - loop( - erlang:setelement( - 6, - erlang:setelement(4, Self, State), - Selector - ) - ) - end - end. - --spec initialise_actor( - spec(any(), GCP), - gleam@erlang@process:subject({ok, gleam@erlang@process:subject(GCP)} | - {error, gleam@erlang@process:exit_reason()}) -) -> gleam@erlang@process:exit_reason(). -initialise_actor(Spec, Ack) -> - Subject = gleam@erlang@process:new_subject(), - case (erlang:element(2, Spec))() of - {ready, State, Selector} -> - Selector@1 = init_selector(Subject, Selector), - gleam@erlang@process:send(Ack, {ok, Subject}), - Self = {self, - running, - gleam@erlang@process:subject_owner(Ack), - State, - Subject, - Selector@1, - sys:debug_options([]), - erlang:element(4, Spec)}, - loop(Self); - - {failed, Reason} -> - gleam@erlang@process:send(Ack, {error, {abnormal, Reason}}), - exit_process({abnormal, Reason}) - end. - --spec to_erlang_start_result( - {ok, gleam@erlang@process:subject(any())} | {error, start_error()} -) -> {ok, gleam@erlang@process:pid_()} | {error, gleam@dynamic:dynamic_()}. -to_erlang_start_result(Res) -> - case Res of - {ok, X} -> - {ok, gleam@erlang@process:subject_owner(X)}; - - {error, X@1} -> - {error, gleam@dynamic:from(X@1)} - end. - --spec start_spec(spec(any(), GDD)) -> {ok, gleam@erlang@process:subject(GDD)} | - {error, start_error()}. -start_spec(Spec) -> - Ack_subject = gleam@erlang@process:new_subject(), - Child = gleam@erlang@process:start( - fun() -> initialise_actor(Spec, Ack_subject) end, - true - ), - Monitor = gleam@erlang@process:monitor_process(Child), - Selector = begin - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = gleam@erlang@process:selecting( - _pipe, - Ack_subject, - fun(Field@0) -> {ack, Field@0} end - ), - gleam@erlang@process:selecting_process_down( - _pipe@1, - Monitor, - fun(Field@0) -> {mon, Field@0} end - ) - end, - Result = case gleam_erlang_ffi:select(Selector, erlang:element(3, Spec)) of - {ok, {ack, {ok, Channel}}} -> - {ok, Channel}; - - {ok, {ack, {error, Reason}}} -> - {error, {init_failed, Reason}}; - - {ok, {mon, Down}} -> - {error, {init_crashed, erlang:element(3, Down)}}; - - {error, nil} -> - gleam@erlang@process:kill(Child), - {error, init_timeout} - end, - gleam_erlang_ffi:demonitor(Monitor), - Result. - --spec start(GDJ, fun((GDK, GDJ) -> next(GDK, GDJ))) -> {ok, - gleam@erlang@process:subject(GDK)} | - {error, start_error()}. -start(State, Loop) -> - start_spec( - {spec, - fun() -> {ready, State, gleam_erlang_ffi:new_selector()} end, - 5000, - Loop} - ). - --spec send(gleam@erlang@process:subject(GDQ), GDQ) -> nil. -send(Subject, Msg) -> - gleam@erlang@process:send(Subject, Msg). - --spec call( - gleam@erlang@process:subject(GDS), - fun((gleam@erlang@process:subject(GDU)) -> GDS), - integer() -) -> GDU. -call(Selector, Make_message, Timeout) -> - gleam@erlang@process:call(Selector, Make_message, Timeout). diff --git a/aoc2023/build/packages/gleam_otp/src/gleam@otp@intensity_tracker.erl b/aoc2023/build/packages/gleam_otp/src/gleam@otp@intensity_tracker.erl deleted file mode 100644 index 8792f14..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam@otp@intensity_tracker.erl +++ /dev/null @@ -1,53 +0,0 @@ --module(gleam@otp@intensity_tracker). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/2, trim_window/3, add_event/1]). --export_type([intensity_tracker/0, too_intense/0]). - --opaque intensity_tracker() :: {intensity_tracker, - integer(), - integer(), - list(integer())}. - --type too_intense() :: too_intense. - --spec new(integer(), integer()) -> intensity_tracker(). -new(Limit, Period) -> - {intensity_tracker, Limit, Period, []}. - --spec now_seconds() -> integer(). -now_seconds() -> - erlang:monotonic_time(1). - --spec trim_window(list(integer()), integer(), integer()) -> list(integer()). -trim_window(Events, Now, Period) -> - case Events of - [] -> - []; - - [Event | Events@1] -> - case Now >= (Event + Period) of - true -> - [Event | trim_window(Events@1, Now, Period)]; - - false -> - [] - end - end. - --spec add_event(intensity_tracker()) -> {ok, intensity_tracker()} | - {error, too_intense()}. -add_event(Tracker) -> - Now = now_seconds(), - Events = trim_window( - [Now | erlang:element(4, Tracker)], - Now, - erlang:element(3, Tracker) - ), - case gleam@list:length(Events) >= erlang:element(2, Tracker) of - true -> - {error, too_intense}; - - false -> - {ok, erlang:setelement(4, Tracker, Events)} - end. diff --git a/aoc2023/build/packages/gleam_otp/src/gleam@otp@port.erl b/aoc2023/build/packages/gleam_otp/src/gleam@otp@port.erl deleted file mode 100644 index b205739..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam@otp@port.erl +++ /dev/null @@ -1,8 +0,0 @@ --module(gleam@otp@port). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export_type([port_/0]). - --type port_() :: any(). - - diff --git a/aoc2023/build/packages/gleam_otp/src/gleam@otp@supervisor.erl b/aoc2023/build/packages/gleam_otp/src/gleam@otp@supervisor.erl deleted file mode 100644 index 39118f1..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam@otp@supervisor.erl +++ /dev/null @@ -1,322 +0,0 @@ --module(gleam@otp@supervisor). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([add/2, supervisor/1, worker/1, returning/2, start_spec/1, start/1, application_stopped/0, to_erlang_start_result/1]). --export_type([spec/2, children/1, child_spec/3, child_start_error/0, message/0, instruction/0, state/1, starter/1, child/1, handle_exit_error/0, application_start_mode/0, application_stop/0]). - --type spec(GLS, GLT) :: {spec, - GLS, - integer(), - integer(), - fun((children(GLS)) -> children(GLT))}. - --opaque children(GLU) :: {ready, starter(GLU)} | {failed, child_start_error()}. - --opaque child_spec(GLV, GLW, GLX) :: {child_spec, - fun((GLW) -> {ok, gleam@erlang@process:subject(GLV)} | - {error, gleam@otp@actor:start_error()}), - fun((GLW, gleam@erlang@process:subject(GLV)) -> GLX)}. - --type child_start_error() :: {child_start_error, - gleam@option:option(gleam@erlang@process:pid_()), - gleam@otp@actor:start_error()}. - --opaque message() :: {exit, gleam@erlang@process:exit_message()} | - {retry_restart, gleam@erlang@process:pid_()}. - --type instruction() :: start_all | {start_from, gleam@erlang@process:pid_()}. - --type state(GLY) :: {state, - gleam@otp@intensity_tracker:intensity_tracker(), - starter(GLY), - gleam@erlang@process:subject(gleam@erlang@process:pid_())}. - --type starter(GLZ) :: {starter, - GLZ, - gleam@option:option(fun((instruction()) -> {ok, - {starter(GLZ), instruction()}} | - {error, child_start_error()}))}. - --type child(GMA) :: {child, gleam@erlang@process:pid_(), GMA}. - --type handle_exit_error() :: {restart_failed, - gleam@erlang@process:pid_(), - gleam@otp@intensity_tracker:intensity_tracker()} | - too_many_restarts. - --type application_start_mode() :: normal | - {takeover, gleam@erlang@node:node_()} | - {failover, gleam@erlang@node:node_()}. - --type application_stop() :: any(). - --spec start_child(child_spec(any(), GME, GMF), GME) -> {ok, child(GMF)} | - {error, child_start_error()}. -start_child(Child_spec, Argument) -> - gleam@result:then( - begin - _pipe = (erlang:element(2, Child_spec))(Argument), - gleam@result:map_error( - _pipe, - fun(_capture) -> {child_start_error, none, _capture} end - ) - end, - fun(Subject) -> - {ok, - {child, - gleam@erlang@process:subject_owner(Subject), - (erlang:element(3, Child_spec))(Argument, Subject)}} - end - ). - --spec shutdown_child( - gleam@erlang@process:pid_(), - child_spec(any(), any(), any()) -) -> nil. -shutdown_child(Pid, _) -> - gleam@erlang@process:send_exit(Pid). - --spec perform_instruction_for_child( - GMS, - instruction(), - child_spec(any(), GMS, GMU), - child(GMU) -) -> {ok, {child(GMU), instruction()}} | {error, child_start_error()}. -perform_instruction_for_child(Argument, Instruction, Child_spec, Child) -> - Current = erlang:element(2, Child), - case Instruction of - {start_from, Target} when Target =/= Current -> - {ok, {Child, Instruction}}; - - _ -> - shutdown_child(Current, Child_spec), - gleam@result:then( - start_child(Child_spec, Argument), - fun(Child@1) -> {ok, {Child@1, start_all}} end - ) - end. - --spec add_child_to_starter( - starter(GNC), - child_spec(any(), GNC, GNF), - child(GNF) -) -> starter(GNF). -add_child_to_starter(Starter, Child_spec, Child) -> - Starter@3 = fun(Instruction) -> - gleam@result:then(case erlang:element(3, Starter) of - {some, Start} -> - Start(Instruction); - - none -> - {ok, {Starter, Instruction}} - end, fun(_use0) -> - {Starter@1, Instruction@1} = _use0, - gleam@result:then( - perform_instruction_for_child( - erlang:element(2, Starter@1), - Instruction@1, - Child_spec, - Child - ), - fun(_use0@1) -> - {Child@1, Instruction@2} = _use0@1, - Starter@2 = add_child_to_starter( - Starter@1, - Child_spec, - Child@1 - ), - {ok, {Starter@2, Instruction@2}} - end - ) - end) - end, - {starter, erlang:element(3, Child), {some, Starter@3}}. - --spec start_and_add_child(starter(GNL), child_spec(any(), GNL, GNO)) -> children(GNO). -start_and_add_child(State, Child_spec) -> - case start_child(Child_spec, erlang:element(2, State)) of - {ok, Child} -> - {ready, add_child_to_starter(State, Child_spec, Child)}; - - {error, Reason} -> - {failed, Reason} - end. - --spec add(children(GNT), child_spec(any(), GNT, GNW)) -> children(GNW). -add(Children, Child_spec) -> - case Children of - {failed, Fail} -> - {failed, Fail}; - - {ready, State} -> - start_and_add_child(State, Child_spec) - end. - --spec supervisor( - fun((GOB) -> {ok, gleam@erlang@process:subject(GOC)} | - {error, gleam@otp@actor:start_error()}) -) -> child_spec(GOC, GOB, GOB). -supervisor(Start) -> - {child_spec, Start, fun(Argument, _) -> Argument end}. - --spec worker( - fun((GOJ) -> {ok, gleam@erlang@process:subject(GOK)} | - {error, gleam@otp@actor:start_error()}) -) -> child_spec(GOK, GOJ, GOJ). -worker(Start) -> - {child_spec, Start, fun(Argument, _) -> Argument end}. - --spec returning( - child_spec(GOR, GOS, any()), - fun((GOS, gleam@erlang@process:subject(GOR)) -> GOY) -) -> child_spec(GOR, GOS, GOY). -returning(Child, Updater) -> - {child_spec, erlang:element(2, Child), Updater}. - --spec init(spec(any(), GPD)) -> gleam@otp@actor:init_result(state(GPD), message()). -init(Spec) -> - Retry = gleam@erlang@process:new_subject(), - gleam_erlang_ffi:trap_exits(true), - Selector = begin - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = gleam@erlang@process:selecting( - _pipe, - Retry, - fun(Field@0) -> {retry_restart, Field@0} end - ), - gleam@erlang@process:selecting_trapped_exits( - _pipe@1, - fun(Field@0) -> {exit, Field@0} end - ) - end, - Result = begin - _pipe@2 = {starter, erlang:element(2, Spec), none}, - _pipe@3 = {ready, _pipe@2}, - (erlang:element(5, Spec))(_pipe@3) - end, - case Result of - {ready, Starter} -> - Restarts = gleam@otp@intensity_tracker:new( - erlang:element(3, Spec), - erlang:element(4, Spec) - ), - State = {state, Restarts, Starter, Retry}, - {ready, State, Selector}; - - {failed, Error} -> - {failed, case erlang:element(3, Error) of - init_timeout -> - <<"Child initialisation timed out"/utf8>>; - - {init_crashed, Reason} -> - gleam@string:append( - <<"Child crashed during initialisation: "/utf8>>, - gleam@string:inspect(Reason) - ); - - {init_failed, Reason@1} -> - gleam@string:append( - <<"Child failed to start during initialisation: "/utf8>>, - gleam@string:inspect(Reason@1) - ) - end} - end. - --spec handle_exit(gleam@erlang@process:pid_(), state(GPJ)) -> gleam@otp@actor:next(message(), state(GPJ)). -handle_exit(Pid, State) -> - Outcome = begin - _assert_subject = erlang:element(3, erlang:element(3, State)), - {some, Start} = case _assert_subject of - {some, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/otp/supervisor"/utf8>>, - function => <<"handle_exit"/utf8>>, - line => 293}) - end, - gleam@result:then( - begin - _pipe = erlang:element(2, State), - _pipe@1 = gleam@otp@intensity_tracker:add_event(_pipe), - gleam@result:map_error(_pipe@1, fun(_) -> too_many_restarts end) - end, - fun(Restarts) -> - gleam@result:then( - begin - _pipe@2 = Start({start_from, Pid}), - gleam@result:map_error( - _pipe@2, - fun(E) -> - {restart_failed, - gleam@option:unwrap( - erlang:element(2, E), - Pid - ), - Restarts} - end - ) - end, - fun(_use0) -> - {Starter, _} = _use0, - {ok, - erlang:setelement( - 2, - erlang:setelement(3, State, Starter), - Restarts - )} - end - ) - end - ) - end, - case Outcome of - {ok, State@1} -> - gleam@otp@actor:continue(State@1); - - {error, {restart_failed, Failed_child, Restarts@1}} -> - gleam@erlang@process:send(erlang:element(4, State), Failed_child), - State@2 = erlang:setelement(2, State, Restarts@1), - gleam@otp@actor:continue(State@2); - - {error, too_many_restarts} -> - {stop, - {abnormal, - <<"Child processes restarted too many times within allowed period"/utf8>>}} - end. - --spec loop(message(), state(GPO)) -> gleam@otp@actor:next(message(), state(GPO)). -loop(Message, State) -> - case Message of - {exit, Exit_message} -> - handle_exit(erlang:element(2, Exit_message), State); - - {retry_restart, Pid} -> - handle_exit(Pid, State) - end. - --spec start_spec(spec(any(), any())) -> {ok, - gleam@erlang@process:subject(message())} | - {error, gleam@otp@actor:start_error()}. -start_spec(Spec) -> - gleam@otp@actor:start_spec( - {spec, fun() -> init(Spec) end, 60000, fun loop/2} - ). - --spec start(fun((children(nil)) -> children(any()))) -> {ok, - gleam@erlang@process:subject(message())} | - {error, gleam@otp@actor:start_error()}. -start(Init) -> - start_spec({spec, nil, 1, 5, Init}). - --spec application_stopped() -> application_stop(). -application_stopped() -> - gleam_otp_external:application_stopped(). - --spec to_erlang_start_result( - {ok, gleam@erlang@process:subject(any())} | - {error, gleam@otp@actor:start_error()} -) -> {ok, gleam@erlang@process:pid_()} | {error, gleam@dynamic:dynamic_()}. -to_erlang_start_result(Res) -> - gleam@otp@actor:to_erlang_start_result(Res). diff --git a/aoc2023/build/packages/gleam_otp/src/gleam@otp@system.erl b/aoc2023/build/packages/gleam_otp/src/gleam@otp@system.erl deleted file mode 100644 index 622e5ea..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam@otp@system.erl +++ /dev/null @@ -1,43 +0,0 @@ --module(gleam@otp@system). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([debug_state/1, get_state/1, suspend/1, resume/1]). --export_type([mode/0, debug_option/0, debug_state/0, status_info/0, system_message/0, do_not_leak/0]). - --type mode() :: running | suspended. - --type debug_option() :: no_debug. - --type debug_state() :: any(). - --type status_info() :: {status_info, - gleam@erlang@atom:atom_(), - gleam@erlang@process:pid_(), - mode(), - debug_state(), - gleam@dynamic:dynamic_()}. - --type system_message() :: {resume, fun(() -> nil)} | - {suspend, fun(() -> nil)} | - {get_state, fun((gleam@dynamic:dynamic_()) -> nil)} | - {get_status, fun((status_info()) -> nil)}. - --type do_not_leak() :: any(). - --spec debug_state(list(debug_option())) -> debug_state(). -debug_state(A) -> - sys:debug_options(A). - --spec get_state(gleam@erlang@process:pid_()) -> gleam@dynamic:dynamic_(). -get_state(From) -> - sys:get_state(From). - --spec suspend(gleam@erlang@process:pid_()) -> nil. -suspend(Pid) -> - sys:suspend(Pid), - nil. - --spec resume(gleam@erlang@process:pid_()) -> nil. -resume(Pid) -> - sys:resume(Pid), - nil. diff --git a/aoc2023/build/packages/gleam_otp/src/gleam@otp@task.erl b/aoc2023/build/packages/gleam_otp/src/gleam@otp@task.erl deleted file mode 100644 index e004284..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam@otp@task.erl +++ /dev/null @@ -1,111 +0,0 @@ --module(gleam@otp@task). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([async/1, try_await/2, await/2, try_await_forever/1, await_forever/1]). --export_type([task/1, await_error/0, message/1]). - --opaque task(FWJ) :: {task, - gleam@erlang@process:pid_(), - gleam@erlang@process:pid_(), - gleam@erlang@process:process_monitor(), - gleam@erlang@process:selector(message(FWJ))}. - --type await_error() :: timeout | {exit, gleam@dynamic:dynamic_()}. - --type message(FWK) :: {from_monitor, gleam@erlang@process:process_down()} | - {from_subject, FWK}. - --spec async(fun(() -> FWL)) -> task(FWL). -async(Work) -> - Owner = erlang:self(), - Subject = gleam@erlang@process:new_subject(), - Pid = gleam@erlang@process:start( - fun() -> gleam@erlang@process:send(Subject, Work()) end, - true - ), - Monitor = gleam@erlang@process:monitor_process(Pid), - Selector = begin - _pipe = gleam_erlang_ffi:new_selector(), - _pipe@1 = gleam@erlang@process:selecting_process_down( - _pipe, - Monitor, - fun(Field@0) -> {from_monitor, Field@0} end - ), - gleam@erlang@process:selecting( - _pipe@1, - Subject, - fun(Field@0) -> {from_subject, Field@0} end - ) - end, - {task, Owner, Pid, Monitor, Selector}. - --spec assert_owner(task(any())) -> nil. -assert_owner(Task) -> - Self = erlang:self(), - case erlang:element(2, Task) =:= Self of - true -> - nil; - - false -> - gleam@erlang@process:send_abnormal_exit( - Self, - <<"awaited on a task that does not belong to this process"/utf8>> - ) - end. - --spec try_await(task(FWP), integer()) -> {ok, FWP} | {error, await_error()}. -try_await(Task, Timeout) -> - assert_owner(Task), - case gleam_erlang_ffi:select(erlang:element(5, Task), Timeout) of - {ok, {from_subject, X}} -> - gleam_erlang_ffi:demonitor(erlang:element(4, Task)), - {ok, X}; - - {ok, {from_monitor, {process_down, _, Reason}}} -> - {error, {exit, Reason}}; - - {error, nil} -> - {error, timeout} - end. - --spec await(task(FWT), integer()) -> FWT. -await(Task, Timeout) -> - _assert_subject = try_await(Task, Timeout), - {ok, Value} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/otp/task"/utf8>>, - function => <<"await"/utf8>>, - line => 117}) - end, - Value. - --spec try_await_forever(task(FWV)) -> {ok, FWV} | {error, await_error()}. -try_await_forever(Task) -> - assert_owner(Task), - case gleam_erlang_ffi:select(erlang:element(5, Task)) of - {from_subject, X} -> - gleam_erlang_ffi:demonitor(erlang:element(4, Task)), - {ok, X}; - - {from_monitor, {process_down, _, Reason}} -> - {error, {exit, Reason}} - end. - --spec await_forever(task(FWZ)) -> FWZ. -await_forever(Task) -> - _assert_subject = try_await_forever(Task), - {ok, Value} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"gleam/otp/task"/utf8>>, - function => <<"await_forever"/utf8>>, - line => 149}) - end, - Value. diff --git a/aoc2023/build/packages/gleam_otp/src/gleam_otp.app.src b/aoc2023/build/packages/gleam_otp/src/gleam_otp.app.src deleted file mode 100644 index 5c52295..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam_otp.app.src +++ /dev/null @@ -1,15 +0,0 @@ -{application, gleam_otp, [ - {vsn, "0.8.0"}, - {applications, [gleam_erlang, - gleam_stdlib, - gleeunit]}, - {description, "Fault tolerant multicore Gleam programs with OTP"}, - {modules, [gleam@otp@actor, - gleam@otp@intensity_tracker, - gleam@otp@port, - gleam@otp@supervisor, - gleam@otp@system, - gleam@otp@task, - gleam_otp]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gleam_otp/src/gleam_otp.erl b/aoc2023/build/packages/gleam_otp/src/gleam_otp.erl deleted file mode 100644 index 9381ad2..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam_otp.erl +++ /dev/null @@ -1,28 +0,0 @@ --module(gleam_otp). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([main/0]). - --spec spawn_task(integer()) -> gleam@otp@task:task(nil). -spawn_task(I) -> - gleam@otp@task:async(fun() -> case (I rem 500) =:= 0 of - true -> - gleam@io:println( - <<"Hello from "/utf8, (gleam@int:to_string(I))/binary>> - ); - - false -> - nil - end end). - --spec main() -> integer(). -main() -> - gleam@io:debug( - gleam_otp_test_external:get_message_queue_length(erlang:self()) - ), - _pipe = gleam@list:range(0, 1000000), - _pipe@1 = gleam@list:map(_pipe, fun spawn_task/1), - gleam@list:each(_pipe@1, fun gleam@otp@task:await_forever/1), - gleam@io:debug( - gleam_otp_test_external:get_message_queue_length(erlang:self()) - ). diff --git a/aoc2023/build/packages/gleam_otp/src/gleam_otp.gleam b/aoc2023/build/packages/gleam_otp/src/gleam_otp.gleam deleted file mode 100644 index 69cdd5b..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam_otp.gleam +++ /dev/null @@ -1,27 +0,0 @@ -import gleam/io -import gleam/int -import gleam/list -import gleam/otp/task -import gleam/erlang/process.{type Pid} - -@external(erlang, "gleam_otp_test_external", "get_message_queue_length") -fn get_message_queue_length(pid pid: Pid) -> Int - -fn spawn_task(i) { - task.async(fn() { - case i % 500 == 0 { - True -> io.println("Hello from " <> int.to_string(i)) - False -> Nil - } - }) -} - -pub fn main() { - io.debug(get_message_queue_length(process.self())) - - list.range(0, 1_000_000) - |> list.map(spawn_task) - |> list.each(task.await_forever) - - io.debug(get_message_queue_length(process.self())) -} diff --git a/aoc2023/build/packages/gleam_otp/src/gleam_otp_external.erl b/aoc2023/build/packages/gleam_otp/src/gleam_otp_external.erl deleted file mode 100644 index 8910a67..0000000 --- a/aoc2023/build/packages/gleam_otp/src/gleam_otp_external.erl +++ /dev/null @@ -1,43 +0,0 @@ --module(gleam_otp_external). - --export([application_stopped/0, convert_system_message/2]). - -% TODO: support other system messages -% {replace_state, StateFn} -% {change_code, Mod, Vsn, Extra} -% {terminate, Reason} -% {debug, {log, Flag}} -% {debug, {trace, Flag}} -% {debug, {log_to_file, FileName}} -% {debug, {statistics, Flag}} -% {debug, no_debug} -% {debug, {install, {Func, FuncState}}} -% {debug, {install, {FuncId, Func, FuncState}}} -% {debug, {remove, FuncOrId}} -% GetStatus(Subject(StatusInfo)) -convert_system_message({From, Ref}, Request) when is_pid(From) -> - Reply = fun(Msg) -> - erlang:send(From, {Ref, Msg}), - nil - end, - System = fun(Callback) -> - {system, {Request, Callback}} - end, - case Request of - get_status -> System(fun(Status) -> Reply(process_status(Status)) end); - get_state -> System(Reply); - suspend -> System(fun() -> Reply(ok) end); - resume -> System(fun() -> Reply(ok) end); - Other -> {unexpeceted, Other} - end. - -process_status({status_info, Module, Parent, Mode, DebugState, State}) -> - Data = [ - get(), Mode, Parent, DebugState, - [{header, "Status for Gleam process " ++ pid_to_list(self())}, - {data, [{'Status', Mode}, {'Parent', Parent}, {'State', State}]}] - ], - {status, self(), {module, Module}, Data}. - -application_stopped() -> - ok. diff --git a/aoc2023/build/packages/gleam_stdlib/LICENCE b/aoc2023/build/packages/gleam_stdlib/LICENCE deleted file mode 100644 index c1dabd0..0000000 --- a/aoc2023/build/packages/gleam_stdlib/LICENCE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2018, Louis Pilfold . - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/aoc2023/build/packages/gleam_stdlib/README.md b/aoc2023/build/packages/gleam_stdlib/README.md deleted file mode 100644 index 05c68ca..0000000 --- a/aoc2023/build/packages/gleam_stdlib/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# stdlib - -GitHub release -Discord chat -![CI](https://github.com/gleam-lang/stdlib/workflows/CI/badge.svg?branch=main) - -Gleam's standard library! -Documentation available on [HexDocs](https://hexdocs.pm/gleam_stdlib/). - -## Installation - -Add `gleam_stdlib` to your Gleam project. - -```sh -gleam add gleam_stdlib -``` - -## Usage - -Import the modules you want to use and write some code! - -```gleam -import gleam/string - -pub fn greet(name: String) -> String { - string.concat(["Hello ", name, "!"]) -} -``` - -## Targets - -Gleam's standard library supports both targets: Erlang and JavaScript. - -### Compatibility - -This library is compatible with all versions of Erlang/OTP, NodeJS, and -major browsers that are currently supported by their maintainers. If you -have a compatibility issue with any platform open an issue and we'll see -what we can do to help. diff --git a/aoc2023/build/packages/gleam_stdlib/gleam.toml b/aoc2023/build/packages/gleam_stdlib/gleam.toml deleted file mode 100644 index 0cb0531..0000000 --- a/aoc2023/build/packages/gleam_stdlib/gleam.toml +++ /dev/null @@ -1,16 +0,0 @@ -name = "gleam_stdlib" -version = "0.33.0" -gleam = ">= 0.32.0" -licences = ["Apache-2.0"] -description = "A standard library for the Gleam programming language" - -repository = { type = "github", user = "gleam-lang", repo = "stdlib" } -links = [ - { title = "Website", href = "https://gleam.run" }, - { title = "Sponsor", href = "https://github.com/sponsors/lpil" }, -] - -[javascript.deno] -allow_read = [ - "./", -] diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@dynamic_DecodeError.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@dynamic_DecodeError.hrl deleted file mode 100644 index b1135f2..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@dynamic_DecodeError.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(decode_error, { - expected :: binary(), - found :: binary(), - path :: list(binary()) -}). diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@iterator_Iterator.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@iterator_Iterator.hrl deleted file mode 100644 index b0d08dc..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@iterator_Iterator.hrl +++ /dev/null @@ -1 +0,0 @@ --record(iterator, {continuation :: fun(() -> gleam@iterator:action(any()))}). diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@iterator_Next.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@iterator_Next.hrl deleted file mode 100644 index 1f61922..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@iterator_Next.hrl +++ /dev/null @@ -1 +0,0 @@ --record(next, {element :: any(), accumulator :: any()}). diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@queue_Queue.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@queue_Queue.hrl deleted file mode 100644 index 88ac25e..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@queue_Queue.hrl +++ /dev/null @@ -1 +0,0 @@ --record(queue, {in :: list(any()), out :: list(any())}). diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_CompileError.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_CompileError.hrl deleted file mode 100644 index ad5511e..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_CompileError.hrl +++ /dev/null @@ -1 +0,0 @@ --record(compile_error, {error :: binary(), byte_index :: integer()}). diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_Match.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_Match.hrl deleted file mode 100644 index 4216619..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_Match.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(match, { - content :: binary(), - submatches :: list(gleam@option:option(binary())) -}). diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_Options.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_Options.hrl deleted file mode 100644 index 0074603..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@regex_Options.hrl +++ /dev/null @@ -1 +0,0 @@ --record(options, {case_insensitive :: boolean(), multi_line :: boolean()}). diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@set_Set.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@set_Set.hrl deleted file mode 100644 index 6e1e226..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@set_Set.hrl +++ /dev/null @@ -1 +0,0 @@ --record(set, {map :: gleam@dict:dict(any(), list(nil))}). diff --git a/aoc2023/build/packages/gleam_stdlib/include/gleam@uri_Uri.hrl b/aoc2023/build/packages/gleam_stdlib/include/gleam@uri_Uri.hrl deleted file mode 100644 index 50150f4..0000000 --- a/aoc2023/build/packages/gleam_stdlib/include/gleam@uri_Uri.hrl +++ /dev/null @@ -1,9 +0,0 @@ --record(uri, { - scheme :: gleam@option:option(binary()), - userinfo :: gleam@option:option(binary()), - host :: gleam@option:option(binary()), - port :: gleam@option:option(integer()), - path :: binary(), - 'query' :: gleam@option:option(binary()), - fragment :: gleam@option:option(binary()) -}). diff --git a/aoc2023/build/packages/gleam_stdlib/src/dict.mjs b/aoc2023/build/packages/gleam_stdlib/src/dict.mjs deleted file mode 100644 index a8309e0..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/dict.mjs +++ /dev/null @@ -1,957 +0,0 @@ -/** - * This file uses jsdoc to annotate types. - * These types can be checked using the typescript compiler with "checkjs" option. - */ - -import { isEqual } from "./gleam.mjs"; - -const referenceMap = new WeakMap(); -const tempDataView = new DataView(new ArrayBuffer(8)); -let referenceUID = 0; -/** - * hash the object by reference using a weak map and incrementing uid - * @param {any} o - * @returns {number} - */ -function hashByReference(o) { - const known = referenceMap.get(o); - if (known !== undefined) { - return known; - } - const hash = referenceUID++; - if (referenceUID === 0x7fffffff) { - referenceUID = 0; - } - referenceMap.set(o, hash); - return hash; -} -/** - * merge two hashes in an order sensitive way - * @param {number} a - * @param {number} b - * @returns {number} - */ -function hashMerge(a, b) { - return (a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2))) | 0; -} -/** - * standard string hash popularised by java - * @param {string} s - * @returns {number} - */ -function hashString(s) { - let hash = 0; - const len = s.length; - for (let i = 0; i < len; i++) { - hash = (Math.imul(31, hash) + s.charCodeAt(i)) | 0; - } - return hash; -} -/** - * hash a number by converting to two integers and do some jumbling - * @param {number} n - * @returns {number} - */ -function hashNumber(n) { - tempDataView.setFloat64(0, n); - const i = tempDataView.getInt32(0); - const j = tempDataView.getInt32(4); - return Math.imul(0x45d9f3b, (i >> 16) ^ i) ^ j; -} -/** - * hash a BigInt by converting it to a string and hashing that - * @param {BigInt} n - * @returns {number} - */ -function hashBigInt(n) { - return hashString(n.toString()); -} -/** - * hash any js object - * @param {any} o - * @returns {number} - */ -function hashObject(o) { - const proto = Object.getPrototypeOf(o); - if (proto !== null && typeof proto.hashCode === "function") { - try { - const code = o.hashCode(o); - if (typeof code === "number") { - return code; - } - } catch {} - } - if (o instanceof Promise || o instanceof WeakSet || o instanceof WeakMap) { - return hashByReference(o); - } - if (o instanceof Date) { - return hashNumber(o.getTime()); - } - let h = 0; - if (o instanceof ArrayBuffer) { - o = new Uint8Array(o); - } - if (Array.isArray(o) || o instanceof Uint8Array) { - for (let i = 0; i < o.length; i++) { - h = (Math.imul(31, h) + getHash(o[i])) | 0; - } - } else if (o instanceof Set) { - o.forEach((v) => { - h = (h + getHash(v)) | 0; - }); - } else if (o instanceof Map) { - o.forEach((v, k) => { - h = (h + hashMerge(getHash(v), getHash(k))) | 0; - }); - } else { - const keys = Object.keys(o); - for (let i = 0; i < keys.length; i++) { - const k = keys[i]; - const v = o[k]; - h = (h + hashMerge(getHash(v), hashString(k))) | 0; - } - } - return h; -} -/** - * hash any js value - * @param {any} u - * @returns {number} - */ -export function getHash(u) { - if (u === null) return 0x42108422; - if (u === undefined) return 0x42108423; - if (u === true) return 0x42108421; - if (u === false) return 0x42108420; - switch (typeof u) { - case "number": - return hashNumber(u); - case "string": - return hashString(u); - case "bigint": - return hashBigInt(u); - case "object": - return hashObject(u); - case "symbol": - return hashByReference(u); - case "function": - return hashByReference(u); - default: - return 0; // should be unreachable - } -} -/** - * @template K,V - * @typedef {ArrayNode | IndexNode | CollisionNode} Node - */ -/** - * @template K,V - * @typedef {{ type: typeof ENTRY, k: K, v: V }} Entry - */ -/** - * @template K,V - * @typedef {{ type: typeof ARRAY_NODE, size: number, array: (undefined | Entry | Node)[] }} ArrayNode - */ -/** - * @template K,V - * @typedef {{ type: typeof INDEX_NODE, bitmap: number, array: (Entry | Node)[] }} IndexNode - */ -/** - * @template K,V - * @typedef {{ type: typeof COLLISION_NODE, hash: number, array: Entry[] }} CollisionNode - */ -/** - * @typedef {{ val: boolean }} Flag - */ -const SHIFT = 5; // number of bits you need to shift by to get the next bucket -const BUCKET_SIZE = Math.pow(2, SHIFT); -const MASK = BUCKET_SIZE - 1; // used to zero out all bits not in the bucket -const MAX_INDEX_NODE = BUCKET_SIZE / 2; // when does index node grow into array node -const MIN_ARRAY_NODE = BUCKET_SIZE / 4; // when does array node shrink to index node -const ENTRY = 0; -const ARRAY_NODE = 1; -const INDEX_NODE = 2; -const COLLISION_NODE = 3; -/** @type {IndexNode} */ -const EMPTY = { - type: INDEX_NODE, - bitmap: 0, - array: [], -}; -/** - * Mask the hash to get only the bucket corresponding to shift - * @param {number} hash - * @param {number} shift - * @returns {number} - */ -function mask(hash, shift) { - return (hash >>> shift) & MASK; -} -/** - * Set only the Nth bit where N is the masked hash - * @param {number} hash - * @param {number} shift - * @returns {number} - */ -function bitpos(hash, shift) { - return 1 << mask(hash, shift); -} -/** - * Count the number of 1 bits in a number - * @param {number} x - * @returns {number} - */ -function bitcount(x) { - x -= (x >> 1) & 0x55555555; - x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - x = (x + (x >> 4)) & 0x0f0f0f0f; - x += x >> 8; - x += x >> 16; - return x & 0x7f; -} -/** - * Calculate the array index of an item in a bitmap index node - * @param {number} bitmap - * @param {number} bit - * @returns {number} - */ -function index(bitmap, bit) { - return bitcount(bitmap & (bit - 1)); -} -/** - * Efficiently copy an array and set one value at an index - * @template T - * @param {T[]} arr - * @param {number} at - * @param {T} val - * @returns {T[]} - */ -function cloneAndSet(arr, at, val) { - const len = arr.length; - const out = new Array(len); - for (let i = 0; i < len; ++i) { - out[i] = arr[i]; - } - out[at] = val; - return out; -} -/** - * Efficiently copy an array and insert one value at an index - * @template T - * @param {T[]} arr - * @param {number} at - * @param {T} val - * @returns {T[]} - */ -function spliceIn(arr, at, val) { - const len = arr.length; - const out = new Array(len + 1); - let i = 0; - let g = 0; - while (i < at) { - out[g++] = arr[i++]; - } - out[g++] = val; - while (i < len) { - out[g++] = arr[i++]; - } - return out; -} -/** - * Efficiently copy an array and remove one value at an index - * @template T - * @param {T[]} arr - * @param {number} at - * @returns {T[]} - */ -function spliceOut(arr, at) { - const len = arr.length; - const out = new Array(len - 1); - let i = 0; - let g = 0; - while (i < at) { - out[g++] = arr[i++]; - } - ++i; - while (i < len) { - out[g++] = arr[i++]; - } - return out; -} -/** - * Create a new node containing two entries - * @template K,V - * @param {number} shift - * @param {K} key1 - * @param {V} val1 - * @param {number} key2hash - * @param {K} key2 - * @param {V} val2 - * @returns {Node} - */ -function createNode(shift, key1, val1, key2hash, key2, val2) { - const key1hash = getHash(key1); - if (key1hash === key2hash) { - return { - type: COLLISION_NODE, - hash: key1hash, - array: [ - { type: ENTRY, k: key1, v: val1 }, - { type: ENTRY, k: key2, v: val2 }, - ], - }; - } - const addedLeaf = { val: false }; - return assoc( - assocIndex(EMPTY, shift, key1hash, key1, val1, addedLeaf), - shift, - key2hash, - key2, - val2, - addedLeaf - ); -} -/** - * @template T,K,V - * @callback AssocFunction - * @param {T} root - * @param {number} shift - * @param {number} hash - * @param {K} key - * @param {V} val - * @param {Flag} addedLeaf - * @returns {Node} - */ -/** - * Associate a node with a new entry, creating a new node - * @template T,K,V - * @type {AssocFunction,K,V>} - */ -function assoc(root, shift, hash, key, val, addedLeaf) { - switch (root.type) { - case ARRAY_NODE: - return assocArray(root, shift, hash, key, val, addedLeaf); - case INDEX_NODE: - return assocIndex(root, shift, hash, key, val, addedLeaf); - case COLLISION_NODE: - return assocCollision(root, shift, hash, key, val, addedLeaf); - } -} -/** - * @template T,K,V - * @type {AssocFunction,K,V>} - */ -function assocArray(root, shift, hash, key, val, addedLeaf) { - const idx = mask(hash, shift); - const node = root.array[idx]; - // if the corresponding index is empty set the index to a newly created node - if (node === undefined) { - addedLeaf.val = true; - return { - type: ARRAY_NODE, - size: root.size + 1, - array: cloneAndSet(root.array, idx, { type: ENTRY, k: key, v: val }), - }; - } - if (node.type === ENTRY) { - // if keys are equal replace the entry - if (isEqual(key, node.k)) { - if (val === node.v) { - return root; - } - return { - type: ARRAY_NODE, - size: root.size, - array: cloneAndSet(root.array, idx, { - type: ENTRY, - k: key, - v: val, - }), - }; - } - // otherwise upgrade the entry to a node and insert - addedLeaf.val = true; - return { - type: ARRAY_NODE, - size: root.size, - array: cloneAndSet( - root.array, - idx, - createNode(shift + SHIFT, node.k, node.v, hash, key, val) - ), - }; - } - // otherwise call assoc on the child node - const n = assoc(node, shift + SHIFT, hash, key, val, addedLeaf); - // if the child node hasn't changed just return the old root - if (n === node) { - return root; - } - // otherwise set the index to the new node - return { - type: ARRAY_NODE, - size: root.size, - array: cloneAndSet(root.array, idx, n), - }; -} -/** - * @template T,K,V - * @type {AssocFunction,K,V>} - */ -function assocIndex(root, shift, hash, key, val, addedLeaf) { - const bit = bitpos(hash, shift); - const idx = index(root.bitmap, bit); - // if there is already a item at this hash index.. - if ((root.bitmap & bit) !== 0) { - // if there is a node at the index (not an entry), call assoc on the child node - const node = root.array[idx]; - if (node.type !== ENTRY) { - const n = assoc(node, shift + SHIFT, hash, key, val, addedLeaf); - if (n === node) { - return root; - } - return { - type: INDEX_NODE, - bitmap: root.bitmap, - array: cloneAndSet(root.array, idx, n), - }; - } - // otherwise there is an entry at the index - // if the keys are equal replace the entry with the updated value - const nodeKey = node.k; - if (isEqual(key, nodeKey)) { - if (val === node.v) { - return root; - } - return { - type: INDEX_NODE, - bitmap: root.bitmap, - array: cloneAndSet(root.array, idx, { - type: ENTRY, - k: key, - v: val, - }), - }; - } - // if the keys are not equal, replace the entry with a new child node - addedLeaf.val = true; - return { - type: INDEX_NODE, - bitmap: root.bitmap, - array: cloneAndSet( - root.array, - idx, - createNode(shift + SHIFT, nodeKey, node.v, hash, key, val) - ), - }; - } else { - // else there is currently no item at the hash index - const n = root.array.length; - // if the number of nodes is at the maximum, expand this node into an array node - if (n >= MAX_INDEX_NODE) { - // create a 32 length array for the new array node (one for each bit in the hash) - const nodes = new Array(32); - // create and insert a node for the new entry - const jdx = mask(hash, shift); - nodes[jdx] = assocIndex(EMPTY, shift + SHIFT, hash, key, val, addedLeaf); - let j = 0; - let bitmap = root.bitmap; - // place each item in the index node into the correct spot in the array node - // loop through all 32 bits / array positions - for (let i = 0; i < 32; i++) { - if ((bitmap & 1) !== 0) { - const node = root.array[j++]; - nodes[i] = node; - } - // shift the bitmap to process the next bit - bitmap = bitmap >>> 1; - } - return { - type: ARRAY_NODE, - size: n + 1, - array: nodes, - }; - } else { - // else there is still space in this index node - // simply insert a new entry at the hash index - const newArray = spliceIn(root.array, idx, { - type: ENTRY, - k: key, - v: val, - }); - addedLeaf.val = true; - return { - type: INDEX_NODE, - bitmap: root.bitmap | bit, - array: newArray, - }; - } - } -} -/** - * @template T,K,V - * @type {AssocFunction,K,V>} - */ -function assocCollision(root, shift, hash, key, val, addedLeaf) { - // if there is a hash collision - if (hash === root.hash) { - const idx = collisionIndexOf(root, key); - // if this key already exists replace the entry with the new value - if (idx !== -1) { - const entry = root.array[idx]; - if (entry.v === val) { - return root; - } - return { - type: COLLISION_NODE, - hash: hash, - array: cloneAndSet(root.array, idx, { type: ENTRY, k: key, v: val }), - }; - } - // otherwise insert the entry at the end of the array - const size = root.array.length; - addedLeaf.val = true; - return { - type: COLLISION_NODE, - hash: hash, - array: cloneAndSet(root.array, size, { type: ENTRY, k: key, v: val }), - }; - } - // if there is no hash collision, upgrade to an index node - return assoc( - { - type: INDEX_NODE, - bitmap: bitpos(root.hash, shift), - array: [root], - }, - shift, - hash, - key, - val, - addedLeaf - ); -} -/** - * Find the index of a key in the collision node's array - * @template K,V - * @param {CollisionNode} root - * @param {K} key - * @returns {number} - */ -function collisionIndexOf(root, key) { - const size = root.array.length; - for (let i = 0; i < size; i++) { - if (isEqual(key, root.array[i].k)) { - return i; - } - } - return -1; -} -/** - * @template T,K,V - * @callback FindFunction - * @param {T} root - * @param {number} shift - * @param {number} hash - * @param {K} key - * @returns {undefined | Entry} - */ -/** - * Return the found entry or undefined if not present in the root - * @template K,V - * @type {FindFunction,K,V>} - */ -function find(root, shift, hash, key) { - switch (root.type) { - case ARRAY_NODE: - return findArray(root, shift, hash, key); - case INDEX_NODE: - return findIndex(root, shift, hash, key); - case COLLISION_NODE: - return findCollision(root, key); - } -} -/** - * @template K,V - * @type {FindFunction,K,V>} - */ -function findArray(root, shift, hash, key) { - const idx = mask(hash, shift); - const node = root.array[idx]; - if (node === undefined) { - return undefined; - } - if (node.type !== ENTRY) { - return find(node, shift + SHIFT, hash, key); - } - if (isEqual(key, node.k)) { - return node; - } - return undefined; -} -/** - * @template K,V - * @type {FindFunction,K,V>} - */ -function findIndex(root, shift, hash, key) { - const bit = bitpos(hash, shift); - if ((root.bitmap & bit) === 0) { - return undefined; - } - const idx = index(root.bitmap, bit); - const node = root.array[idx]; - if (node.type !== ENTRY) { - return find(node, shift + SHIFT, hash, key); - } - if (isEqual(key, node.k)) { - return node; - } - return undefined; -} -/** - * @template K,V - * @param {CollisionNode} root - * @param {K} key - * @returns {undefined | Entry} - */ -function findCollision(root, key) { - const idx = collisionIndexOf(root, key); - if (idx < 0) { - return undefined; - } - return root.array[idx]; -} -/** - * @template T,K,V - * @callback WithoutFunction - * @param {T} root - * @param {number} shift - * @param {number} hash - * @param {K} key - * @returns {undefined | Node} - */ -/** - * Remove an entry from the root, returning the updated root. - * Returns undefined if the node should be removed from the parent. - * @template K,V - * @type {WithoutFunction,K,V>} - * */ -function without(root, shift, hash, key) { - switch (root.type) { - case ARRAY_NODE: - return withoutArray(root, shift, hash, key); - case INDEX_NODE: - return withoutIndex(root, shift, hash, key); - case COLLISION_NODE: - return withoutCollision(root, key); - } -} -/** - * @template K,V - * @type {WithoutFunction,K,V>} - */ -function withoutArray(root, shift, hash, key) { - const idx = mask(hash, shift); - const node = root.array[idx]; - if (node === undefined) { - return root; // already empty - } - let n = undefined; - // if node is an entry and the keys are not equal there is nothing to remove - // if node is not an entry do a recursive call - if (node.type === ENTRY) { - if (!isEqual(node.k, key)) { - return root; // no changes - } - } else { - n = without(node, shift + SHIFT, hash, key); - if (n === node) { - return root; // no changes - } - } - // if the recursive call returned undefined the node should be removed - if (n === undefined) { - // if the number of child nodes is at the minimum, pack into an index node - if (root.size <= MIN_ARRAY_NODE) { - const arr = root.array; - const out = new Array(root.size - 1); - let i = 0; - let j = 0; - let bitmap = 0; - while (i < idx) { - const nv = arr[i]; - if (nv !== undefined) { - out[j] = nv; - bitmap |= 1 << i; - ++j; - } - ++i; - } - ++i; // skip copying the removed node - while (i < arr.length) { - const nv = arr[i]; - if (nv !== undefined) { - out[j] = nv; - bitmap |= 1 << i; - ++j; - } - ++i; - } - return { - type: INDEX_NODE, - bitmap: bitmap, - array: out, - }; - } - return { - type: ARRAY_NODE, - size: root.size - 1, - array: cloneAndSet(root.array, idx, n), - }; - } - return { - type: ARRAY_NODE, - size: root.size, - array: cloneAndSet(root.array, idx, n), - }; -} -/** - * @template K,V - * @type {WithoutFunction,K,V>} - */ -function withoutIndex(root, shift, hash, key) { - const bit = bitpos(hash, shift); - if ((root.bitmap & bit) === 0) { - return root; // already empty - } - const idx = index(root.bitmap, bit); - const node = root.array[idx]; - // if the item is not an entry - if (node.type !== ENTRY) { - const n = without(node, shift + SHIFT, hash, key); - if (n === node) { - return root; // no changes - } - // if not undefined, the child node still has items, so update it - if (n !== undefined) { - return { - type: INDEX_NODE, - bitmap: root.bitmap, - array: cloneAndSet(root.array, idx, n), - }; - } - // otherwise the child node should be removed - // if it was the only child node, remove this node from the parent - if (root.bitmap === bit) { - return undefined; - } - // otherwise just remove the child node - return { - type: INDEX_NODE, - bitmap: root.bitmap ^ bit, - array: spliceOut(root.array, idx), - }; - } - // otherwise the item is an entry, remove it if the key matches - if (isEqual(key, node.k)) { - if (root.bitmap === bit) { - return undefined; - } - return { - type: INDEX_NODE, - bitmap: root.bitmap ^ bit, - array: spliceOut(root.array, idx), - }; - } - return root; -} -/** - * @template K,V - * @param {CollisionNode} root - * @param {K} key - * @returns {undefined | Node} - */ -function withoutCollision(root, key) { - const idx = collisionIndexOf(root, key); - // if the key not found, no changes - if (idx < 0) { - return root; - } - // otherwise the entry was found, remove it - // if it was the only entry in this node, remove the whole node - if (root.array.length === 1) { - return undefined; - } - // otherwise just remove the entry - return { - type: COLLISION_NODE, - hash: root.hash, - array: spliceOut(root.array, idx), - }; -} -/** - * @template K,V - * @param {undefined | Node} root - * @param {(value:V,key:K)=>void} fn - * @returns {void} - */ -function forEach(root, fn) { - if (root === undefined) { - return; - } - const items = root.array; - const size = items.length; - for (let i = 0; i < size; i++) { - const item = items[i]; - if (item === undefined) { - continue; - } - if (item.type === ENTRY) { - fn(item.v, item.k); - continue; - } - forEach(item, fn); - } -} -/** - * Extra wrapper to keep track of Dict size and clean up the API - * @template K,V - */ -export default class Dict { - /** - * @template V - * @param {Record} o - * @returns {Dict} - */ - static fromObject(o) { - const keys = Object.keys(o); - /** @type Dict */ - let m = Dict.new(); - for (let i = 0; i < keys.length; i++) { - const k = keys[i]; - m = m.set(k, o[k]); - } - return m; - } - /** - * @template K,V - * @param {Map} o - * @returns {Dict} - */ - static fromMap(o) { - /** @type Dict */ - let m = Dict.new(); - o.forEach((v, k) => { - m = m.set(k, v); - }); - return m; - } - static new() { - return new Dict(undefined, 0); - } - /** - * @param {undefined | Node} root - * @param {number} size - */ - constructor(root, size) { - this.root = root; - this.size = size; - } - /** - * @template NotFound - * @param {K} key - * @param {NotFound} notFound - * @returns {NotFound | V} - */ - get(key, notFound) { - if (this.root === undefined) { - return notFound; - } - const found = find(this.root, 0, getHash(key), key); - if (found === undefined) { - return notFound; - } - return found.v; - } - /** - * @param {K} key - * @param {V} val - * @returns {Dict} - */ - set(key, val) { - const addedLeaf = { val: false }; - const root = this.root === undefined ? EMPTY : this.root; - const newRoot = assoc(root, 0, getHash(key), key, val, addedLeaf); - if (newRoot === this.root) { - return this; - } - return new Dict(newRoot, addedLeaf.val ? this.size + 1 : this.size); - } - /** - * @param {K} key - * @returns {Dict} - */ - delete(key) { - if (this.root === undefined) { - return this; - } - const newRoot = without(this.root, 0, getHash(key), key); - if (newRoot === this.root) { - return this; - } - if (newRoot === undefined) { - return Dict.new(); - } - return new Dict(newRoot, this.size - 1); - } - /** - * @param {K} key - * @returns {boolean} - */ - has(key) { - if (this.root === undefined) { - return false; - } - return find(this.root, 0, getHash(key), key) !== undefined; - } - /** - * @returns {[K,V][]} - */ - entries() { - if (this.root === undefined) { - return []; - } - /** @type [K,V][] */ - const result = []; - this.forEach((v, k) => result.push([k, v])); - return result; - } - /** - * - * @param {(val:V,key:K)=>void} fn - */ - forEach(fn) { - forEach(this.root, fn); - } - hashCode() { - let h = 0; - this.forEach((v, k) => { - h = (h + hashMerge(getHash(v), getHash(k))) | 0; - }); - return h; - } - /** - * @param {unknown} o - * @returns {boolean} - */ - equals(o) { - if (!(o instanceof Dict) || this.size !== o.size) { - return false; - } - let equal = true; - this.forEach((v, k) => { - equal = equal && isEqual(o.get(k, !v), v); - }); - return equal; - } -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/base.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/base.gleam deleted file mode 100644 index eab2f0b..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/base.gleam +++ /dev/null @@ -1,21 +0,0 @@ -import gleam/bit_array - -@deprecated("Please use `base64_encode` in the `gleam/bit_array` module instead.") -pub fn encode64(input: BitArray, padding: Bool) -> String { - bit_array.base64_encode(input, padding) -} - -@deprecated("Please use `base64_decode` in the `gleam/bit_array` module instead.") -pub fn decode64(encoded: String) -> Result(BitArray, Nil) { - bit_array.base64_decode(encoded) -} - -@deprecated("Please use `base64_url_encode` in the `gleam/bit_array` module instead.") -pub fn url_encode64(input: BitArray, padding: Bool) -> String { - bit_array.base64_url_encode(input, padding) -} - -@deprecated("Please use `base64_url_decode` in the `gleam/bit_array` module instead.") -pub fn url_decode64(encoded: String) -> Result(BitArray, Nil) { - bit_array.base64_url_decode(encoded) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_array.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_array.gleam deleted file mode 100644 index 79860e9..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_array.gleam +++ /dev/null @@ -1,157 +0,0 @@ -//// BitArrays are a sequence of binary data of any length. - -import gleam/string - -/// Converts a UTF-8 `String` type into a `BitArray`. -/// -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "bit_array_from_string") -pub fn from_string(x: String) -> BitArray - -/// Returns an integer which is the number of bytes in the bit array. -/// -@external(erlang, "erlang", "byte_size") -@external(javascript, "../gleam_stdlib.mjs", "length") -pub fn byte_size(x: BitArray) -> Int - -/// Creates a new bit array by joining two bit arrays. -/// -/// ## Examples -/// -/// ```gleam -/// > append(to: from_string("butter"), suffix: from_string("fly")) -/// from_string("butterfly") -/// ``` -/// -pub fn append(to first: BitArray, suffix second: BitArray) -> BitArray { - concat([first, second]) -} - -/// Extracts a sub-section of a bit array. -/// -/// The slice will start at given position and continue up to specified -/// length. -/// A negative length can be used to extract bytes at the end of a bit array. -/// -/// This function runs in constant time. -/// -@external(erlang, "gleam_stdlib", "bit_array_slice") -@external(javascript, "../gleam_stdlib.mjs", "bit_array_slice") -pub fn slice( - from string: BitArray, - at position: Int, - take length: Int, -) -> Result(BitArray, Nil) - -/// Tests to see whether a bit array is valid UTF-8. -/// -pub fn is_utf8(bits: BitArray) -> Bool { - do_is_utf8(bits) -} - -@target(erlang) -fn do_is_utf8(bits: BitArray) -> Bool { - case bits { - <<>> -> True - <<_:utf8, rest:bytes>> -> do_is_utf8(rest) - _ -> False - } -} - -@target(javascript) -fn do_is_utf8(bits: BitArray) -> Bool { - case to_string(bits) { - Ok(_) -> True - _ -> False - } -} - -/// Converts a bit array to a string. -/// -/// Returns an error if the bit array is invalid UTF-8 data. -/// -pub fn to_string(bits: BitArray) -> Result(String, Nil) { - do_to_string(bits) -} - -@target(erlang) -@external(erlang, "gleam_stdlib", "identity") -fn unsafe_to_string(a: BitArray) -> String - -@target(erlang) -fn do_to_string(bits: BitArray) -> Result(String, Nil) { - case is_utf8(bits) { - True -> Ok(unsafe_to_string(bits)) - False -> Error(Nil) - } -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "bit_array_to_string") -fn do_to_string(a: BitArray) -> Result(String, Nil) - -/// Creates a new bit array by joining multiple binaries. -/// -/// ## Examples -/// -/// ```gleam -/// > concat([from_string("butter"), from_string("fly")]) -/// from_string("butterfly") -/// ``` -/// -@external(erlang, "gleam_stdlib", "bit_array_concat") -@external(javascript, "../gleam_stdlib.mjs", "bit_array_concat") -pub fn concat(bit_arrays: List(BitArray)) -> BitArray - -/// Encodes a BitArray into a base 64 encoded string. -/// -pub fn base64_encode(input: BitArray, padding: Bool) -> String { - let encoded = encode64(input) - case padding { - True -> encoded - False -> string.replace(encoded, "=", "") - } -} - -@external(erlang, "base64", "encode") -@external(javascript, "../gleam_stdlib.mjs", "encode64") -fn encode64(a: BitArray) -> String - -/// Decodes a base 64 encoded string into a `BitArray`. -/// -pub fn base64_decode(encoded: String) -> Result(BitArray, Nil) { - let padded = case byte_size(from_string(encoded)) % 4 { - 0 -> encoded - n -> string.append(encoded, string.repeat("=", 4 - n)) - } - decode64(padded) -} - -@external(erlang, "gleam_stdlib", "base_decode64") -@external(javascript, "../gleam_stdlib.mjs", "decode64") -fn decode64(a: String) -> Result(BitArray, Nil) - -/// Encodes a `BitArray` into a base 64 encoded string with URL and filename safe alphabet. -/// -pub fn base64_url_encode(input: BitArray, padding: Bool) -> String { - base64_encode(input, padding) - |> string.replace("+", "-") - |> string.replace("/", "_") -} - -/// Decodes a base 64 encoded string with URL and filename safe alphabet into a `BitArray`. -/// -pub fn base64_url_decode(encoded: String) -> Result(BitArray, Nil) { - encoded - |> string.replace("-", "+") - |> string.replace("_", "/") - |> base64_decode() -} - -@external(erlang, "binary", "encode_hex") -@external(javascript, "../gleam_stdlib.mjs", "base16_encode") -pub fn base16_encode(input: BitArray) -> String - -@external(erlang, "gleam_stdlib", "base16_decode") -@external(javascript, "../gleam_stdlib.mjs", "base16_decode") -pub fn base16_decode(input: String) -> Result(BitArray, Nil) diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_builder.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_builder.gleam deleted file mode 100644 index ce6fe52..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_builder.gleam +++ /dev/null @@ -1,80 +0,0 @@ -//// This module has been deprecated in favour of `gleam/bytes_builder`. - -import gleam/bytes_builder -import gleam/string_builder.{type StringBuilder} - -pub type BitBuilder = - bytes_builder.BytesBuilder - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn new() -> BitBuilder { - bytes_builder.new() -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn prepend(to: BitBuilder, prefix: BitArray) -> BitBuilder { - bytes_builder.prepend(to, prefix) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn append(to: BitBuilder, suffix: BitArray) -> BitBuilder { - bytes_builder.append(to, suffix) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn prepend_builder(to: BitBuilder, prefix: BitBuilder) -> BitBuilder { - bytes_builder.prepend_builder(to, prefix) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn append_builder( - to first: BitBuilder, - suffix second: BitBuilder, -) -> BitBuilder { - bytes_builder.append_builder(first, second) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn prepend_string(to: BitBuilder, prefix: String) -> BitBuilder { - bytes_builder.prepend_string(to, prefix) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn append_string(to: BitBuilder, suffix: String) -> BitBuilder { - bytes_builder.append_string(to, suffix) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn concat(builders: List(BitBuilder)) -> BitBuilder { - bytes_builder.concat(builders) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn concat_bit_strings(bits: List(BitArray)) -> BitBuilder { - bytes_builder.concat_bit_arrays(bits) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn from_string(string: String) -> BitBuilder { - bytes_builder.from_string(string) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn from_string_builder(builder: StringBuilder) -> BitBuilder { - bytes_builder.from_string_builder(builder) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn from_bit_string(bits: BitArray) -> BitBuilder { - bytes_builder.from_bit_array(bits) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn to_bit_string(builder: BitBuilder) -> BitArray { - bytes_builder.to_bit_array(builder) -} - -@deprecated("Please use the `gleam/bytes_builder` module instead.") -pub fn byte_size(builder: BitBuilder) -> Int { - bytes_builder.byte_size(builder) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_string.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_string.gleam deleted file mode 100644 index b703da0..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/bit_string.gleam +++ /dev/null @@ -1,43 +0,0 @@ -//// This module has been deprecated. Please use the `gleam/bit_array` module -//// instead. - -import gleam/bit_array - -@deprecated("Please use the `gleam/bit_array` module instead.") -pub fn from_string(x: String) -> BitArray { - bit_array.from_string(x) -} - -@deprecated("Please use the `gleam/bit_array` module instead.") -pub fn byte_size(x: BitArray) -> Int { - bit_array.byte_size(x) -} - -@deprecated("Please use the `gleam/bit_array` module instead.") -pub fn append(to first: BitArray, suffix second: BitArray) -> BitArray { - bit_array.append(first, second) -} - -@deprecated("Please use the `gleam/bit_array` module instead.") -pub fn slice( - from string: BitArray, - at position: Int, - take length: Int, -) -> Result(BitArray, Nil) { - bit_array.slice(string, position, length) -} - -@deprecated("Please use the `gleam/bit_array` module instead.") -pub fn is_utf8(bits: BitArray) -> Bool { - bit_array.is_utf8(bits) -} - -@deprecated("Please use the `gleam/bit_array` module instead.") -pub fn to_string(bits: BitArray) -> Result(String, Nil) { - bit_array.to_string(bits) -} - -@deprecated("Please use the `gleam/bit_array` module instead.") -pub fn concat(bit_strings: List(BitArray)) -> BitArray { - bit_array.concat(bit_strings) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/bool.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/bool.gleam deleted file mode 100644 index 91bd6b7..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/bool.gleam +++ /dev/null @@ -1,428 +0,0 @@ -//// A type with two possible values, `True` and `False`. Used to indicate whether -//// things are... true or false! -//// -//// Often is it clearer and offers more type safety to define a custom type -//// than to use `Bool`. For example, rather than having a `is_teacher: Bool` -//// field consider having a `role: SchoolRole` field where `SchoolRole` is a custom -//// type that can be either `Student` or `Teacher`. - -import gleam/order.{type Order} - -/// Returns the and of two bools, but it evaluates both arguments. -/// -/// It's the function equivalent of the `&&` operator. -/// This function is useful in higher order functions or pipes. -/// -/// ## Examples -/// -/// ```gleam -/// > and(True, True) -/// True -/// ``` -/// -/// ```gleam -/// > and(False, True) -/// False -/// ``` -/// -/// ```gleam -/// > False |> and(True) -/// False -/// ``` -/// -pub fn and(a: Bool, b: Bool) -> Bool { - a && b -} - -/// Returns the or of two bools, but it evaluates both arguments. -/// -/// It's the function equivalent of the `||` operator. -/// This function is useful in higher order functions or pipes. -/// -/// ## Examples -/// -/// ```gleam -/// > or(True, True) -/// True -/// ``` -/// -/// ```gleam -/// > or(False, True) -/// True -/// ``` -/// -/// ```gleam -/// > False |> or(True) -/// True -/// ``` -/// -pub fn or(a: Bool, b: Bool) -> Bool { - a || b -} - -/// Returns the opposite bool value. -/// -/// This is the same as the `!` or `not` operators in some other languages. -/// -/// ## Examples -/// -/// ```gleam -/// > negate(True) -/// False -/// ``` -/// -/// ```gleam -/// > negate(False) -/// True -/// ``` -/// -pub fn negate(bool: Bool) -> Bool { - case bool { - True -> False - False -> True - } -} - -/// Returns the nor of two bools. -/// -/// ## Examples -/// -/// ```gleam -/// > nor(False, False) -/// True -/// ``` -/// -/// ```gleam -/// > nor(False, True) -/// False -/// ``` -/// -/// ```gleam -/// > nor(True, False) -/// False -/// ``` -/// -/// ```gleam -/// > nor(True, True) -/// False -/// ``` -/// -pub fn nor(a: Bool, b: Bool) -> Bool { - case a, b { - False, False -> True - False, True -> False - True, False -> False - True, True -> False - } -} - -/// Returns the nand of two bools. -/// -/// ## Examples -/// -/// ```gleam -/// > nand(False, False) -/// True -/// ``` -/// -/// ```gleam -/// > nand(False, True) -/// True -/// ``` -/// -/// ```gleam -/// > nand(True, False) -/// True -/// ``` -/// -/// ```gleam -/// > nand(True, True) -/// False -/// ``` -/// -pub fn nand(a: Bool, b: Bool) -> Bool { - case a, b { - False, False -> True - False, True -> True - True, False -> True - True, True -> False - } -} - -/// Returns the exclusive or of two bools. -/// -/// ## Examples -/// -/// ```gleam -/// > exclusive_or(False, False) -/// False -/// ``` -/// -/// ```gleam -/// > exclusive_or(False, True) -/// True -/// ``` -/// -/// ```gleam -/// > exclusive_or(True, False) -/// True -/// ``` -/// -/// ```gleam -/// > exclusive_or(True, True) -/// False -/// ``` -/// -pub fn exclusive_or(a: Bool, b: Bool) -> Bool { - case a, b { - False, False -> False - False, True -> True - True, False -> True - True, True -> False - } -} - -/// Returns the exclusive nor of two bools. -/// -/// ## Examples -/// -/// ```gleam -/// > exclusive_nor(False, False) -/// True -/// ``` -/// -/// ```gleam -/// > exclusive_nor(False, True) -/// False -/// ``` -/// -/// ```gleam -/// > exclusive_nor(True, False) -/// False -/// ``` -/// -/// ```gleam -/// > exclusive_nor(True, True) -/// True -/// ``` -/// -pub fn exclusive_nor(a: Bool, b: Bool) -> Bool { - case a, b { - False, False -> True - False, True -> False - True, False -> False - True, True -> True - } -} - -/// Compares two bools and returns the first value's `Order` to the second. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/order -/// > compare(True, False) -/// order.Gt -/// ``` -/// -pub fn compare(a: Bool, with b: Bool) -> Order { - case a, b { - True, True -> order.Eq - True, False -> order.Gt - False, False -> order.Eq - False, True -> order.Lt - } -} - -/// Returns `True` if either argument's value is `True`. -/// -/// ## Examples -/// -/// ```gleam -/// > max(True, False) -/// True -/// ``` -/// -/// ```gleam -/// > max(False, True) -/// True -/// ``` -/// -/// ```gleam -/// > max(False, False) -/// False -/// ``` -/// -pub fn max(a: Bool, b: Bool) -> Bool { - case a { - True -> True - False -> b - } -} - -/// Returns `False` if either bool value is `False`. -/// -/// ## Examples -/// -/// ```gleam -/// > min(True, False) -/// False -/// ``` -/// -/// ```gleam -/// > min(False, True) -/// False -/// -/// > min(False, False) -/// False -/// ``` -/// -pub fn min(a: Bool, b: Bool) -> Bool { - case a { - False -> False - True -> b - } -} - -/// Returns a numeric representation of the given bool. -/// -/// ## Examples -/// -/// ```gleam -/// > to_int(True) -/// 1 -/// -/// > to_int(False) -/// 0 -/// ``` -/// -pub fn to_int(bool: Bool) -> Int { - case bool { - False -> 0 - True -> 1 - } -} - -/// Returns a string representation of the given bool. -/// -/// ## Examples -/// -/// ```gleam -/// > to_string(True) -/// "True" -/// ``` -/// -/// ```gleam -/// > to_string(False) -/// "False" -/// ``` -/// -pub fn to_string(bool: Bool) -> String { - case bool { - False -> "False" - True -> "True" - } -} - -/// Run a callback function if the given bool is `False`, otherwise return a -/// default value. -/// -/// With a `use` expression this function can simulate the early-return pattern -/// found in some other programming languages. -/// -/// In a procedural language: -/// -/// ```js -/// if (predicate) return value; -/// // ... -/// ``` -/// -/// In Gleam with a `use` expression: -/// -/// ```gleam -/// use <- guard(when: predicate, return: value) -/// // ... -/// ``` -/// -/// Like everything in Gleam `use` is an expression, so it short circuits the -/// current block, not the entire function. As a result you can assign the value -/// to a variable: -/// -/// ```gleam -/// let x = { -/// use <- guard(when: predicate, return: value) -/// // ... -/// } -/// ``` -/// -/// Note that unlike in procedural languages the `return` value is evaluated -/// even when the predicate is `False`, so it is advisable not to perform -/// expensive computation there. -/// -/// -/// ## Examples -/// -/// ```gleam -/// > let name = "" -/// > use <- guard(when: name == "", return: "Welcome!") -/// > "Hello, " <> name -/// "Welcome!" -/// ``` -/// -/// ```gleam -/// > let name = "Kamaka" -/// > use <- guard(when: name == "", return: "Welcome!") -/// > "Hello, " <> name -/// "Hello, Kamaka" -/// ``` -/// -pub fn guard( - when requirement: Bool, - return consequence: t, - otherwise alternative: fn() -> t, -) -> t { - case requirement { - True -> consequence - False -> alternative() - } -} - -/// Runs a callback function if the given bool is `True`, otherwise runs an -/// alternative callback function. -/// -/// Useful when further computation should be delayed regardless of the given -/// bool's value. -/// -/// See [`guard`](#guard) for more info. -/// -/// ## Examples -/// -/// ```gleam -/// > let name = "Kamaka" -/// > let inquiry = fn() { "How may we address you?" } -/// > use <- lazy_guard(when: name == "", return: inquiry) -/// > "Hello, " <> name -/// "Hello, Kamaka" -/// ``` -/// -/// ```gleam -/// > import gleam/int -/// > let name = "" -/// > let greeting = fn() { "Hello, " <> name } -/// > use <- lazy_guard(when: name == "", otherwise: greeting) -/// > let number = int.random(1, 99) -/// > let name = "User " <> int.to_string(number) -/// > "Welcome, " <> name -/// "Welcome, User 54" -/// ``` -/// -pub fn lazy_guard( - when requirement: Bool, - return consequence: fn() -> a, - otherwise alternative: fn() -> a, -) -> a { - case requirement { - True -> consequence() - False -> alternative() - } -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/bytes_builder.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/bytes_builder.gleam deleted file mode 100644 index 20c145d..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/bytes_builder.gleam +++ /dev/null @@ -1,197 +0,0 @@ -//// BytesBuilder is a type used for efficiently concatenating bytes together -//// without copying. -//// -//// If we append one bit array to another the bit arrays must be copied to a -//// new location in memory so that they can sit together. This behaviour -//// enables efficient reading of the string but copying can be expensive, -//// especially if we want to join many bit arrays together. -//// -//// BytesBuilder is different in that it can be joined together in constant -//// time using minimal memory, and then can be efficiently converted to a -//// bit array using the `to_bit_array` function. -//// -//// Byte builders are always byte aligned, so that a number of bits that is not -//// divisible by 8 will be padded with 0s. -//// -//// On Erlang this type is compatible with Erlang's iolists. - -// TODO: pad bit arrays to byte boundaries when adding to a builder. -import gleam/string_builder.{type StringBuilder} -import gleam/list -import gleam/bit_array - -pub opaque type BytesBuilder { - Bytes(BitArray) - Text(StringBuilder) - Many(List(BytesBuilder)) -} - -/// Create an empty `BytesBuilder`. Useful as the start of a pipe chaining many -/// builders together. -/// -pub fn new() -> BytesBuilder { - concat([]) -} - -/// Prepends a bit array to the start of a builder. -/// -/// Runs in constant time. -/// -pub fn prepend(to second: BytesBuilder, prefix first: BitArray) -> BytesBuilder { - append_builder(from_bit_array(first), second) -} - -/// Appends a bit array to the end of a builder. -/// -/// Runs in constant time. -/// -pub fn append(to first: BytesBuilder, suffix second: BitArray) -> BytesBuilder { - append_builder(first, from_bit_array(second)) -} - -/// Prepends a builder onto the start of another. -/// -/// Runs in constant time. -/// -pub fn prepend_builder( - to second: BytesBuilder, - prefix first: BytesBuilder, -) -> BytesBuilder { - append_builder(first, second) -} - -/// Appends a builder onto the end of another. -/// -/// Runs in constant time. -/// -@external(erlang, "gleam_stdlib", "iodata_append") -pub fn append_builder( - to first: BytesBuilder, - suffix second: BytesBuilder, -) -> BytesBuilder { - case second { - Many(builders) -> Many([first, ..builders]) - _ -> Many([first, second]) - } -} - -/// Prepends a string onto the start of a builder. -/// -/// Runs in constant time when running on Erlang. -/// Runs in linear time with the length of the string otherwise. -/// -pub fn prepend_string( - to second: BytesBuilder, - prefix first: String, -) -> BytesBuilder { - append_builder(from_string(first), second) -} - -/// Appends a string onto the end of a builder. -/// -/// Runs in constant time when running on Erlang. -/// Runs in linear time with the length of the string otherwise. -/// -pub fn append_string( - to first: BytesBuilder, - suffix second: String, -) -> BytesBuilder { - append_builder(first, from_string(second)) -} - -/// Joins a list of builders into a single builder. -/// -/// Runs in constant time. -/// -@external(erlang, "gleam_stdlib", "identity") -pub fn concat(builders: List(BytesBuilder)) -> BytesBuilder { - Many(builders) -} - -/// Joins a list of bit arrays into a single builder. -/// -/// Runs in constant time. -/// -@external(erlang, "gleam_stdlib", "identity") -pub fn concat_bit_arrays(bits: List(BitArray)) -> BytesBuilder { - bits - |> list.map(fn(b) { from_bit_array(b) }) - |> concat() -} - -/// Creates a new builder from a string. -/// -/// Runs in constant time when running on Erlang. -/// Runs in linear time otherwise. -/// -@external(erlang, "gleam_stdlib", "wrap_list") -pub fn from_string(string: String) -> BytesBuilder { - Text(string_builder.from_string(string)) -} - -/// Creates a new builder from a string builder. -/// -/// Runs in constant time when running on Erlang. -/// Runs in linear time otherwise. -/// -@external(erlang, "gleam_stdlib", "wrap_list") -pub fn from_string_builder(builder: StringBuilder) -> BytesBuilder { - Text(builder) -} - -/// Creates a new builder from a bit array. -/// -/// Runs in constant time. -/// -@external(erlang, "gleam_stdlib", "wrap_list") -pub fn from_bit_array(bits: BitArray) -> BytesBuilder { - Bytes(bits) -} - -/// Turns an builder into a bit array. -/// -/// Runs in linear time. -/// -/// When running on Erlang this function is implemented natively by the -/// virtual machine and is highly optimised. -/// -@external(erlang, "erlang", "list_to_bitstring") -pub fn to_bit_array(builder: BytesBuilder) -> BitArray { - [[builder]] - |> to_list([]) - |> list.reverse - |> bit_array.concat -} - -fn to_list( - stack: List(List(BytesBuilder)), - acc: List(BitArray), -) -> List(BitArray) { - case stack { - [] -> acc - - [[], ..remaining_stack] -> to_list(remaining_stack, acc) - - [[Bytes(bits), ..rest], ..remaining_stack] -> - to_list([rest, ..remaining_stack], [bits, ..acc]) - - [[Text(builder), ..rest], ..remaining_stack] -> { - let bits = bit_array.from_string(string_builder.to_string(builder)) - to_list([rest, ..remaining_stack], [bits, ..acc]) - } - - [[Many(builders), ..rest], ..remaining_stack] -> - to_list([builders, rest, ..remaining_stack], acc) - } -} - -/// Returns the size of the builder's content in bytes. -/// -/// Runs in linear time. -/// -@external(erlang, "erlang", "iolist_size") -pub fn byte_size(builder: BytesBuilder) -> Int { - [[builder]] - |> to_list([]) - |> list.fold(0, fn(acc, builder) { bit_array.byte_size(builder) + acc }) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/dict.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/dict.gleam deleted file mode 100644 index 280bf9d..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/dict.gleam +++ /dev/null @@ -1,544 +0,0 @@ -import gleam/option.{type Option} - -/// A dictionary of keys and values. -/// -/// Any type can be used for the keys and values of a dict, but all the keys -/// must be of the same type and all the values must be of the same type. -/// -/// Each key can only be present in a dict once. -/// -/// Dicts are not ordered in any way, and any unintentional ordering is not to -/// be relied upon in your code as it may change in future versions of Erlang -/// or Gleam. -/// -/// See [the Erlang map module](https://erlang.org/doc/man/maps.html) for more -/// information. -/// -pub type Dict(key, value) - -/// Determines the number of key-value pairs in the dict. -/// This function runs in constant time and does not need to iterate the dict. -/// -/// ## Examples -/// -/// ```gleam -/// > new() |> size() -/// 0 -/// ``` -/// -/// ```gleam -/// > new() |> insert("key", "value") |> size() -/// 1 -/// ``` -/// -pub fn size(dict: Dict(k, v)) -> Int { - do_size(dict) -} - -@external(erlang, "maps", "size") -@external(javascript, "../gleam_stdlib.mjs", "map_size") -fn do_size(a: Dict(k, v)) -> Int - -/// Converts the dict to a list of 2-element tuples `#(key, value)`, one for -/// each key-value pair in the dict. -/// -/// The tuples in the list have no specific order. -/// -/// ## Examples -/// -/// ```gleam -/// > new() |> to_list() -/// [] -/// ``` -/// -/// ```gleam -/// > new() |> insert("key", 0) |> to_list() -/// [#("key", 0)] -/// ``` -/// -pub fn to_list(dict: Dict(key, value)) -> List(#(key, value)) { - do_to_list(dict) -} - -@external(erlang, "maps", "to_list") -@external(javascript, "../gleam_stdlib.mjs", "map_to_list") -fn do_to_list(a: Dict(key, value)) -> List(#(key, value)) - -/// Converts a list of 2-element tuples `#(key, value)` to a dict. -/// -/// If two tuples have the same key the last one in the list will be the one -/// that is present in the dict. -/// -pub fn from_list(list: List(#(k, v))) -> Dict(k, v) { - do_from_list(list) -} - -@target(erlang) -@external(erlang, "maps", "from_list") -fn do_from_list(a: List(#(key, value))) -> Dict(key, value) - -@target(javascript) -fn fold_list_of_pair( - over list: List(#(k, v)), - from initial: Dict(k, v), -) -> Dict(k, v) { - case list { - [] -> initial - [x, ..rest] -> fold_list_of_pair(rest, insert(initial, x.0, x.1)) - } -} - -@target(javascript) -fn do_from_list(list: List(#(k, v))) -> Dict(k, v) { - fold_list_of_pair(list, new()) -} - -/// Determines whether or not a value present in the dict for a given key. -/// -/// ## Examples -/// -/// ```gleam -/// > new() |> insert("a", 0) |> has_key("a") -/// True -/// ``` -/// -/// ```gleam -/// > new() |> insert("a", 0) |> has_key("b") -/// False -/// ``` -/// -pub fn has_key(dict: Dict(k, v), key: k) -> Bool { - do_has_key(key, dict) -} - -@target(erlang) -@external(erlang, "maps", "is_key") -fn do_has_key(a: key, b: Dict(key, v)) -> Bool - -@target(javascript) -fn do_has_key(key: k, dict: Dict(k, v)) -> Bool { - get(dict, key) != Error(Nil) -} - -/// Creates a fresh dict that contains no values. -/// -pub fn new() -> Dict(key, value) { - do_new() -} - -@external(erlang, "maps", "new") -@external(javascript, "../gleam_stdlib.mjs", "new_map") -fn do_new() -> Dict(key, value) - -/// Fetches a value from a dict for a given key. -/// -/// The dict may not have a value for the key, so the value is wrapped in a -/// `Result`. -/// -/// ## Examples -/// -/// ```gleam -/// > new() |> insert("a", 0) |> get("a") -/// Ok(0) -/// ``` -/// -/// ```gleam -/// > new() |> insert("a", 0) |> get("b") -/// Error(Nil) -/// ``` -/// -pub fn get(from: Dict(key, value), get: key) -> Result(value, Nil) { - do_get(from, get) -} - -@external(erlang, "gleam_stdlib", "map_get") -@external(javascript, "../gleam_stdlib.mjs", "map_get") -fn do_get(a: Dict(key, value), b: key) -> Result(value, Nil) - -/// Inserts a value into the dict with the given key. -/// -/// If the dict already has a value for the given key then the value is -/// replaced with the new value. -/// -/// ## Examples -/// -/// ```gleam -/// > new() |> insert("a", 0) |> to_list -/// [#("a", 0)] -/// ``` -/// -/// ```gleam -/// > new() |> insert("a", 0) |> insert("a", 5) |> to_list -/// [#("a", 5)] -/// ``` -/// -pub fn insert(into dict: Dict(k, v), for key: k, insert value: v) -> Dict(k, v) { - do_insert(key, value, dict) -} - -@external(erlang, "maps", "put") -@external(javascript, "../gleam_stdlib.mjs", "map_insert") -fn do_insert(a: key, b: value, c: Dict(key, value)) -> Dict(key, value) - -/// Updates all values in a given dict by calling a given function on each key -/// and value. -/// -/// ## Examples -/// -/// ```gleam -/// > [#(3, 3), #(2, 4)] -/// > |> from_list -/// > |> map_values(fn(key, value) { key * value }) -/// [#(3, 9), #(2, 8)] -/// ``` -/// -pub fn map_values(in dict: Dict(k, v), with fun: fn(k, v) -> w) -> Dict(k, w) { - do_map_values(fun, dict) -} - -@target(erlang) -@external(erlang, "maps", "map") -fn do_map_values(a: fn(key, value) -> b, b: Dict(key, value)) -> Dict(key, b) - -@target(javascript) -fn do_map_values(f: fn(key, value) -> b, dict: Dict(key, value)) -> Dict(key, b) { - let f = fn(dict, k, v) { insert(dict, k, f(k, v)) } - dict - |> fold(from: new(), with: f) -} - -/// Gets a list of all keys in a given dict. -/// -/// Dicts are not ordered so the keys are not returned in any specific order. Do -/// not write code that relies on the order keys are returned by this function -/// as it may change in later versions of Gleam or Erlang. -/// -/// ## Examples -/// -/// ```gleam -/// > keys([#("a", 0), #("b", 1)]) -/// ["a", "b"] -/// ``` -/// -pub fn keys(dict: Dict(keys, v)) -> List(keys) { - do_keys(dict) -} - -@target(erlang) -@external(erlang, "maps", "keys") -fn do_keys(a: Dict(keys, v)) -> List(keys) - -@target(javascript) -fn reverse_and_concat(remaining, accumulator) { - case remaining { - [] -> accumulator - [item, ..rest] -> reverse_and_concat(rest, [item, ..accumulator]) - } -} - -@target(javascript) -fn do_keys_acc(list: List(#(k, v)), acc: List(k)) -> List(k) { - case list { - [] -> reverse_and_concat(acc, []) - [x, ..xs] -> do_keys_acc(xs, [x.0, ..acc]) - } -} - -@target(javascript) -fn do_keys(dict: Dict(k, v)) -> List(k) { - let list_of_pairs = to_list(dict) - do_keys_acc(list_of_pairs, []) -} - -/// Gets a list of all values in a given dict. -/// -/// Dicts are not ordered so the values are not returned in any specific order. Do -/// not write code that relies on the order values are returned by this function -/// as it may change in later versions of Gleam or Erlang. -/// -/// ## Examples -/// -/// ```gleam -/// > values(from_list([#("a", 0), #("b", 1)])) -/// [0, 1] -/// ``` -/// -pub fn values(dict: Dict(k, values)) -> List(values) { - do_values(dict) -} - -@target(erlang) -@external(erlang, "maps", "values") -fn do_values(a: Dict(k, values)) -> List(values) - -@target(javascript) -fn do_values_acc(list: List(#(k, v)), acc: List(v)) -> List(v) { - case list { - [] -> reverse_and_concat(acc, []) - [x, ..xs] -> do_values_acc(xs, [x.1, ..acc]) - } -} - -@target(javascript) -fn do_values(dict: Dict(k, v)) -> List(v) { - let list_of_pairs = to_list(dict) - do_values_acc(list_of_pairs, []) -} - -/// Creates a new dict from a given dict, minus any entries that a given function -/// returns `False` for. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([#("a", 0), #("b", 1)]) -/// > |> filter(fn(key, value) { value != 0 }) -/// from_list([#("b", 1)]) -/// ``` -/// -/// ```gleam -/// > from_list([#("a", 0), #("b", 1)]) -/// > |> filter(fn(key, value) { True }) -/// from_list([#("a", 0), #("b", 1)]) -/// ``` -/// -pub fn filter( - in dict: Dict(k, v), - keeping predicate: fn(k, v) -> Bool, -) -> Dict(k, v) { - do_filter(predicate, dict) -} - -@target(erlang) -@external(erlang, "maps", "filter") -fn do_filter(a: fn(key, value) -> Bool, b: Dict(key, value)) -> Dict(key, value) - -@target(javascript) -fn do_filter( - f: fn(key, value) -> Bool, - dict: Dict(key, value), -) -> Dict(key, value) { - let insert = fn(dict, k, v) { - case f(k, v) { - True -> insert(dict, k, v) - _ -> dict - } - } - dict - |> fold(from: new(), with: insert) -} - -/// Creates a new dict from a given dict, only including any entries for which the -/// keys are in a given list. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([#("a", 0), #("b", 1)]) -/// > |> take(["b"]) -/// from_list([#("b", 1)]) -/// ``` -/// -/// ```gleam -/// > from_list([#("a", 0), #("b", 1)]) -/// > |> take(["a", "b", "c"]) -/// from_list([#("a", 0), #("b", 1)]) -/// ``` -/// -pub fn take(from dict: Dict(k, v), keeping desired_keys: List(k)) -> Dict(k, v) { - do_take(desired_keys, dict) -} - -@target(erlang) -@external(erlang, "maps", "with") -fn do_take(a: List(k), b: Dict(k, v)) -> Dict(k, v) - -@target(javascript) -fn insert_taken( - dict: Dict(k, v), - desired_keys: List(k), - acc: Dict(k, v), -) -> Dict(k, v) { - let insert = fn(taken, key) { - case get(dict, key) { - Ok(value) -> insert(taken, key, value) - _ -> taken - } - } - case desired_keys { - [] -> acc - [x, ..xs] -> insert_taken(dict, xs, insert(acc, x)) - } -} - -@target(javascript) -fn do_take(desired_keys: List(k), dict: Dict(k, v)) -> Dict(k, v) { - insert_taken(dict, desired_keys, new()) -} - -/// Creates a new dict from a pair of given dicts by combining their entries. -/// -/// If there are entries with the same keys in both dicts the entry from the -/// second dict takes precedence. -/// -/// ## Examples -/// -/// ```gleam -/// > let a = from_list([#("a", 0), #("b", 1)]) -/// > let b = from_list([#("b", 2), #("c", 3)]) -/// > merge(a, b) -/// from_list([#("a", 0), #("b", 2), #("c", 3)]) -/// ``` -/// -pub fn merge(into dict: Dict(k, v), from new_entries: Dict(k, v)) -> Dict(k, v) { - do_merge(dict, new_entries) -} - -@target(erlang) -@external(erlang, "maps", "merge") -fn do_merge(a: Dict(k, v), b: Dict(k, v)) -> Dict(k, v) - -@target(javascript) -fn insert_pair(dict: Dict(k, v), pair: #(k, v)) -> Dict(k, v) { - insert(dict, pair.0, pair.1) -} - -@target(javascript) -fn fold_inserts(new_entries: List(#(k, v)), dict: Dict(k, v)) -> Dict(k, v) { - case new_entries { - [] -> dict - [x, ..xs] -> fold_inserts(xs, insert_pair(dict, x)) - } -} - -@target(javascript) -fn do_merge(dict: Dict(k, v), new_entries: Dict(k, v)) -> Dict(k, v) { - new_entries - |> to_list - |> fold_inserts(dict) -} - -/// Creates a new dict from a given dict with all the same entries except for the -/// one with a given key, if it exists. -/// -/// ## Examples -/// -/// ```gleam -/// > delete([#("a", 0), #("b", 1)], "a") -/// from_list([#("b", 1)]) -/// ``` -/// -/// ```gleam -/// > delete([#("a", 0), #("b", 1)], "c") -/// from_list([#("a", 0), #("b", 1)]) -/// ``` -/// -pub fn delete(from dict: Dict(k, v), delete key: k) -> Dict(k, v) { - do_delete(key, dict) -} - -@external(erlang, "maps", "remove") -@external(javascript, "../gleam_stdlib.mjs", "map_remove") -fn do_delete(a: k, b: Dict(k, v)) -> Dict(k, v) - -/// Creates a new dict from a given dict with all the same entries except any with -/// keys found in a given list. -/// -/// ## Examples -/// -/// ```gleam -/// > drop([#("a", 0), #("b", 1)], ["a"]) -/// from_list([#("b", 2)]) -/// ``` -/// -/// ```gleam -/// > delete([#("a", 0), #("b", 1)], ["c"]) -/// from_list([#("a", 0), #("b", 1)]) -/// ``` -/// -/// ```gleam -/// > drop([#("a", 0), #("b", 1)], ["a", "b", "c"]) -/// from_list([]) -/// ``` -/// -pub fn drop(from dict: Dict(k, v), drop disallowed_keys: List(k)) -> Dict(k, v) { - case disallowed_keys { - [] -> dict - [x, ..xs] -> drop(delete(dict, x), xs) - } -} - -/// Creates a new dict with one entry updated using a given function. -/// -/// If there was not an entry in the dict for the given key then the function -/// gets `None` as its argument, otherwise it gets `Some(value)`. -/// -/// ## Example -/// -/// ```gleam -/// > let increment = fn(x) { -/// > case x { -/// > Some(i) -> i + 1 -/// > None -> 0 -/// > } -/// > } -/// > let dict = from_list([#("a", 0)]) -/// > -/// > update(dict, "a", increment) -/// from_list([#("a", 1)]) -/// ``` -/// -/// ```gleam -/// > update(dict, "b", increment) -/// from_list([#("a", 0), #("b", 0)]) -/// ``` -/// -pub fn update( - in dict: Dict(k, v), - update key: k, - with fun: fn(Option(v)) -> v, -) -> Dict(k, v) { - dict - |> get(key) - |> option.from_result - |> fun - |> insert(dict, key, _) -} - -fn do_fold(list: List(#(k, v)), initial: acc, fun: fn(acc, k, v) -> acc) -> acc { - case list { - [] -> initial - [#(k, v), ..rest] -> do_fold(rest, fun(initial, k, v), fun) - } -} - -/// Combines all entries into a single value by calling a given function on each -/// one. -/// -/// Dicts are not ordered so the values are not returned in any specific order. Do -/// not write code that relies on the order entries are used by this function -/// as it may change in later versions of Gleam or Erlang. -/// -/// # Examples -/// -/// ```gleam -/// > let dict = from_list([#("a", 1), #("b", 3), #("c", 9)]) -/// > fold(dict, 0, fn(accumulator, key, value) { accumulator + value }) -/// 13 -/// ``` -/// -/// ```gleam -/// > import gleam/string.{append} -/// > fold(dict, "", fn(accumulator, key, value) { append(accumulator, key) }) -/// "abc" -/// ``` -/// -pub fn fold( - over dict: Dict(k, v), - from initial: acc, - with fun: fn(acc, k, v) -> acc, -) -> acc { - dict - |> to_list - |> do_fold(initial, fun) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/dynamic.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/dynamic.gleam deleted file mode 100644 index c71c6f3..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/dynamic.gleam +++ /dev/null @@ -1,1508 +0,0 @@ -import gleam/int -import gleam/list -import gleam/dict.{type Dict} -import gleam/option.{type Option} -import gleam/result -import gleam/string_builder -@target(erlang) -import gleam/bit_array - -/// `Dynamic` data is data that we don't know the type of yet. -/// We likely get data like this from interop with Erlang, or from -/// IO with the outside world. -/// -pub type Dynamic - -/// Error returned when unexpected data is encountered -/// -pub type DecodeError { - DecodeError(expected: String, found: String, path: List(String)) -} - -pub type DecodeErrors = - List(DecodeError) - -pub type Decoder(t) = - fn(Dynamic) -> Result(t, DecodeErrors) - -/// Converts any Gleam data into `Dynamic` data. -/// -pub fn from(a) -> Dynamic { - do_from(a) -} - -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "identity") -fn do_from(a: anything) -> Dynamic - -/// Unsafely casts a Dynamic value into any other type. -/// -/// This is an escape hatch for the type system that may be useful when wrapping -/// native Erlang APIs. It is to be used as a last measure only! -/// -/// If you can avoid using this function, do! -/// -pub fn unsafe_coerce(a: Dynamic) -> anything { - do_unsafe_coerce(a) -} - -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "identity") -fn do_unsafe_coerce(a: Dynamic) -> a - -/// Decodes a `Dynamic` value from a `Dynamic` value. -/// -/// This function doesn't seem very useful at first, but it can be convenient -/// when you need to give a decoder function but you don't actually care what -/// the to-decode value is. -/// -pub fn dynamic(value: Dynamic) -> Result(Dynamic, List(DecodeError)) { - Ok(value) -} - -/// Checks to see whether a `Dynamic` value is a bit array, and returns that bit -/// array if it is. -/// -/// ## Examples -/// -/// ```gleam -/// > bit_array(from("Hello")) == bit_array.from_string("Hello") -/// True -/// ``` -/// -/// ```gleam -/// > bit_array(from(123)) -/// Error([DecodeError(expected: "BitArray", found: "Int", path: [])]) -/// ``` -/// -pub fn bit_array(from data: Dynamic) -> Result(BitArray, DecodeErrors) { - decode_bit_array(data) -} - -@deprecated("Please use `bit_array` instead") -pub fn bit_string(from data: Dynamic) -> Result(BitArray, DecodeErrors) { - bit_array(data) -} - -@external(erlang, "gleam_stdlib", "decode_bit_array") -@external(javascript, "../gleam_stdlib.mjs", "decode_bit_array") -fn decode_bit_array(a: Dynamic) -> Result(BitArray, DecodeErrors) - -/// Checks to see whether a `Dynamic` value is a string, and returns that string if -/// it is. -/// -/// ## Examples -/// -/// ```gleam -/// > string(from("Hello")) -/// Ok("Hello") -/// ``` -/// -/// ```gleam -/// > string(from(123)) -/// Error([DecodeError(expected: "String", found: "Int", path: [])]) -/// ``` -/// -pub fn string(from data: Dynamic) -> Result(String, DecodeErrors) { - decode_string(data) -} - -fn map_errors( - result: Result(t, DecodeErrors), - f: fn(DecodeError) -> DecodeError, -) -> Result(t, DecodeErrors) { - result.map_error(result, list.map(_, f)) -} - -@target(erlang) -fn decode_string(data: Dynamic) -> Result(String, DecodeErrors) { - bit_array(data) - |> map_errors(put_expected(_, "String")) - |> result.try(fn(raw) { - case bit_array.to_string(raw) { - Ok(string) -> Ok(string) - Error(Nil) -> - Error([DecodeError(expected: "String", found: "BitArray", path: [])]) - } - }) -} - -@target(erlang) -fn put_expected(error: DecodeError, expected: String) -> DecodeError { - DecodeError(..error, expected: expected) -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "decode_string") -fn decode_string(a: Dynamic) -> Result(String, DecodeErrors) - -/// Return a string indicating the type of the dynamic value. -/// -/// ```gleam -/// > classify(from("Hello")) -/// "String" -/// ``` -/// -pub fn classify(data: Dynamic) -> String { - do_classify(data) -} - -@external(erlang, "gleam_stdlib", "classify_dynamic") -@external(javascript, "../gleam_stdlib.mjs", "classify_dynamic") -fn do_classify(a: Dynamic) -> String - -/// Checks to see whether a `Dynamic` value is an int, and returns that int if it -/// is. -/// -/// ## Examples -/// -/// ```gleam -/// > int(from(123)) -/// Ok(123) -/// ``` -/// -/// ```gleam -/// > int(from("Hello")) -/// Error([DecodeError(expected: "Int", found: "String", path: [])]) -/// ``` -/// -pub fn int(from data: Dynamic) -> Result(Int, DecodeErrors) { - decode_int(data) -} - -@external(erlang, "gleam_stdlib", "decode_int") -@external(javascript, "../gleam_stdlib.mjs", "decode_int") -fn decode_int(a: Dynamic) -> Result(Int, DecodeErrors) - -/// Checks to see whether a `Dynamic` value is a float, and returns that float if -/// it is. -/// -/// ## Examples -/// -/// ```gleam -/// > float(from(2.0)) -/// Ok(2.0) -/// ``` -/// -/// ```gleam -/// > float(from(123)) -/// Error([DecodeError(expected: "Float", found: "Int", path: [])]) -/// ``` -/// -pub fn float(from data: Dynamic) -> Result(Float, DecodeErrors) { - decode_float(data) -} - -@external(erlang, "gleam_stdlib", "decode_float") -@external(javascript, "../gleam_stdlib.mjs", "decode_float") -fn decode_float(a: Dynamic) -> Result(Float, DecodeErrors) - -/// Checks to see whether a `Dynamic` value is a bool, and returns that bool if -/// it is. -/// -/// ## Examples -/// -/// ```gleam -/// > bool(from(True)) -/// Ok(True) -/// ``` -/// -/// ```gleam -/// > bool(from(123)) -/// Error([DecodeError(expected: "Bool", found: "Int", path: [])]) -/// ``` -/// -pub fn bool(from data: Dynamic) -> Result(Bool, DecodeErrors) { - decode_bool(data) -} - -@external(erlang, "gleam_stdlib", "decode_bool") -@external(javascript, "../gleam_stdlib.mjs", "decode_bool") -fn decode_bool(a: Dynamic) -> Result(Bool, DecodeErrors) - -/// Checks to see whether a `Dynamic` value is a list, and returns that list if it -/// is. The types of the elements are not checked. -/// -/// If you wish to decode all the elements in the list use the `list` function -/// instead. -/// -/// ## Examples -/// -/// ```gleam -/// > shallow_list(from(["a", "b", "c"])) -/// Ok([from("a"), from("b"), from("c")]) -/// ``` -/// -/// ```gleam -/// > shallow_list(1) -/// Error([DecodeError(expected: "List", found: "Int", path: [])]) -/// ``` -/// -pub fn shallow_list(from value: Dynamic) -> Result(List(Dynamic), DecodeErrors) { - decode_list(value) -} - -@external(erlang, "gleam_stdlib", "decode_list") -@external(javascript, "../gleam_stdlib.mjs", "decode_list") -fn decode_list(a: Dynamic) -> Result(List(Dynamic), DecodeErrors) - -@external(erlang, "gleam_stdlib", "decode_result") -@external(javascript, "../gleam_stdlib.mjs", "decode_result") -fn decode_result(a: Dynamic) -> Result(Result(a, e), DecodeErrors) - -/// Checks to see whether a `Dynamic` value is a result of a particular type, and -/// returns that result if it is. -/// -/// The `ok` and `error` arguments are decoders for decoding the `Ok` and -/// `Error` values of the result. -/// -/// ## Examples -/// -/// ```gleam -/// > from(Ok(1)) -/// > |> result(ok: int, error: string) -/// Ok(Ok(1)) -/// ``` -/// -/// ```gleam -/// > from(Error("boom")) -/// > |> result(ok: int, error: string) -/// Ok(Error("boom")) -/// ``` -/// -/// ```gleam -/// > from(123) -/// > |> result(ok: int, error: string) -/// Error([DecodeError(expected: "Result", found: "Int", path: [])]) -/// ``` -/// -pub fn result( - ok decode_ok: Decoder(a), - error decode_error: Decoder(e), -) -> Decoder(Result(a, e)) { - fn(value) { - use inner_result <- result.try(decode_result(value)) - - case inner_result { - Ok(raw) -> { - use value <- result.try( - decode_ok(raw) - |> map_errors(push_path(_, "ok")), - ) - Ok(Ok(value)) - } - Error(raw) -> { - use value <- result.try( - decode_error(raw) - |> map_errors(push_path(_, "error")), - ) - Ok(Error(value)) - } - } - } -} - -/// Checks to see whether a `Dynamic` value is a list of a particular type, and -/// returns that list if it is. -/// -/// The second argument is a decoder function used to decode the elements of -/// the list. The list is only decoded if all elements in the list can be -/// successfully decoded using this function. -/// -/// If you do not wish to decode all the elements in the list use the `shallow_list` -/// function instead. -/// -/// ## Examples -/// -/// ```gleam -/// > from(["a", "b", "c"]) -/// > |> list(of: string) -/// Ok(["a", "b", "c"]) -/// ``` -/// -/// ```gleam -/// > from([1, 2, 3]) -/// > |> list(of: string) -/// Error([DecodeError(expected: "String", found: "Int", path: ["*"])]) -/// ``` -/// -/// ```gleam -/// > from("ok") -/// > |> list(of: string) -/// Error([DecodeError(expected: "List", found: "String", path: [])]) -/// ``` -/// -pub fn list( - of decoder_type: fn(Dynamic) -> Result(inner, DecodeErrors), -) -> Decoder(List(inner)) { - fn(dynamic) { - use list <- result.try(shallow_list(dynamic)) - list - |> list.try_map(decoder_type) - |> map_errors(push_path(_, "*")) - } -} - -/// Checks to see if a `Dynamic` value is a nullable version of a particular -/// type, and returns a corresponding `Option` if it is. -/// -/// ## Examples -/// -/// ```gleam -/// > from("Hello") -/// > |> optional(string) -/// Ok(Some("Hello")) -/// ``` -/// -/// ```gleam -/// > from("Hello") -/// > |> optional(string) -/// Ok(Some("Hello")) -/// ``` -/// -/// ```gleam -/// > from(atom.from_string("null")) -/// > |> optional(string) -/// Ok(None) -/// ``` -/// -/// ```gleam -/// > from(atom.from_string("nil")) -/// > |> optional(string) -/// Ok(None) -/// ``` -/// -/// ```gleam -/// > from(atom.from_string("undefined")) -/// > |> optional(string) -/// Ok(None) -/// ``` -/// -/// ```gleam -/// > from(123) -/// > |> optional(string) -/// Error([DecodeError(expected: "String", found: "Int", path: [])]) -/// ``` -/// -pub fn optional(of decode: Decoder(inner)) -> Decoder(Option(inner)) { - fn(value) { decode_optional(value, decode) } -} - -@external(erlang, "gleam_stdlib", "decode_option") -@external(javascript, "../gleam_stdlib.mjs", "decode_option") -fn decode_optional(a: Dynamic, b: Decoder(a)) -> Result(Option(a), DecodeErrors) - -/// Checks to see if a `Dynamic` value is a map with a specific field, and returns -/// the value of that field if it is. -/// -/// This will not succeed on a record. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/dict -/// > dict.new() -/// > |> dict.insert("Hello", "World") -/// > |> from -/// > |> field(named: "Hello", of: string) -/// Ok("World") -/// ``` -/// -/// ```gleam -/// > from(123) -/// > |> field("Hello", string) -/// Error([DecodeError(expected: "Map", found: "Int", path: [])]) -/// ``` -/// -pub fn field(named name: a, of inner_type: Decoder(t)) -> Decoder(t) { - fn(value) { - let missing_field_error = - DecodeError(expected: "field", found: "nothing", path: []) - - use maybe_inner <- result.try(decode_field(value, name)) - maybe_inner - |> option.to_result([missing_field_error]) - |> result.try(inner_type) - |> map_errors(push_path(_, name)) - } -} - -/// Checks to see if a `Dynamic` value is a map with a specific field. -/// If the map does not have the specified field, returns an `Ok(None)` instead of failing; otherwise, -/// returns the decoded field wrapped in `Some(_)`. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/dict -/// > dict.new() -/// > |> dict.insert("Hello", "World") -/// > |> from -/// > |> field(named: "Hello", of: string) -/// Ok(Some("World")) -/// ``` -/// -/// ```gleam -/// > import gleam/dict -/// > dict.new() -/// > |> from -/// > |> field(named: "Hello", of: string) -/// Ok(None) -/// ``` -/// -/// ```gleam -/// > from(123) -/// > |> field("Hello", string) -/// Error([DecodeError(expected: "Map", found: "Int", path: [])]) -/// ``` -/// -pub fn optional_field( - named name: a, - of inner_type: Decoder(t), -) -> Decoder(Option(t)) { - fn(value) { - use maybe_inner <- result.try(decode_field(value, name)) - case maybe_inner { - option.None -> Ok(option.None) - option.Some(dynamic_inner) -> - dynamic_inner - |> decode_optional(inner_type) - |> map_errors(push_path(_, name)) - } - } -} - -@external(erlang, "gleam_stdlib", "decode_field") -@external(javascript, "../gleam_stdlib.mjs", "decode_field") -fn decode_field(a: Dynamic, b: name) -> Result(Option(Dynamic), DecodeErrors) - -/// Checks to see if a `Dynamic` value is a tuple large enough to have a certain -/// index, and returns the value of that index if it is. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2)) -/// > |> element(0, int) -/// Ok(from(1)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2)) -/// > |> element(2, int) -/// Error([ -/// DecodeError( -/// expected: "Tuple of at least 3 elements", -/// found: "Tuple of 2 elements", -/// path: [], -/// ), -/// ]) -/// ``` -/// -pub fn element(at index: Int, of inner_type: Decoder(t)) -> Decoder(t) { - fn(data: Dynamic) { - use tuple <- result.try(decode_tuple(data)) - let size = tuple_size(tuple) - use data <- result.try(case index >= 0 { - True -> - case index < size { - True -> tuple_get(tuple, index) - False -> at_least_decode_tuple_error(index + 1, data) - } - False -> - case int.absolute_value(index) <= size { - True -> tuple_get(tuple, size + index) - False -> at_least_decode_tuple_error(int.absolute_value(index), data) - } - }) - inner_type(data) - |> map_errors(push_path(_, index)) - } -} - -fn at_least_decode_tuple_error( - size: Int, - data: Dynamic, -) -> Result(a, DecodeErrors) { - let s = case size { - 1 -> "" - _ -> "s" - } - let error = - ["Tuple of at least ", int.to_string(size), " element", s] - |> string_builder.from_strings - |> string_builder.to_string - |> DecodeError(found: classify(data), path: []) - Error([error]) -} - -// A tuple of unknown size -type UnknownTuple - -@external(erlang, "gleam_stdlib", "decode_tuple") -@external(javascript, "../gleam_stdlib.mjs", "decode_tuple") -fn decode_tuple(a: Dynamic) -> Result(UnknownTuple, DecodeErrors) - -@external(erlang, "gleam_stdlib", "decode_tuple2") -@external(javascript, "../gleam_stdlib.mjs", "decode_tuple2") -fn decode_tuple2(a: Dynamic) -> Result(#(Dynamic, Dynamic), DecodeErrors) - -@external(erlang, "gleam_stdlib", "decode_tuple3") -@external(javascript, "../gleam_stdlib.mjs", "decode_tuple3") -fn decode_tuple3( - a: Dynamic, -) -> Result(#(Dynamic, Dynamic, Dynamic), DecodeErrors) - -@external(erlang, "gleam_stdlib", "decode_tuple4") -@external(javascript, "../gleam_stdlib.mjs", "decode_tuple4") -fn decode_tuple4( - a: Dynamic, -) -> Result(#(Dynamic, Dynamic, Dynamic, Dynamic), DecodeErrors) - -@external(erlang, "gleam_stdlib", "decode_tuple5") -@external(javascript, "../gleam_stdlib.mjs", "decode_tuple5") -fn decode_tuple5( - a: Dynamic, -) -> Result(#(Dynamic, Dynamic, Dynamic, Dynamic, Dynamic), DecodeErrors) - -@external(erlang, "gleam_stdlib", "decode_tuple6") -@external(javascript, "../gleam_stdlib.mjs", "decode_tuple6") -fn decode_tuple6( - a: Dynamic, -) -> Result( - #(Dynamic, Dynamic, Dynamic, Dynamic, Dynamic, Dynamic), - DecodeErrors, -) - -@external(erlang, "gleam_stdlib", "tuple_get") -@external(javascript, "../gleam_stdlib.mjs", "tuple_get") -fn tuple_get(a: UnknownTuple, b: Int) -> Result(Dynamic, DecodeErrors) - -@external(erlang, "gleam_stdlib", "size_of_tuple") -@external(javascript, "../gleam_stdlib.mjs", "length") -fn tuple_size(a: UnknownTuple) -> Int - -fn tuple_errors( - result: Result(a, List(DecodeError)), - name: String, -) -> List(DecodeError) { - case result { - Ok(_) -> [] - Error(errors) -> list.map(errors, push_path(_, name)) - } -} - -fn push_path(error: DecodeError, name: t) -> DecodeError { - let name = from(name) - let decoder = any([string, fn(x) { result.map(int(x), int.to_string) }]) - let name = case decoder(name) { - Ok(name) -> name - Error(_) -> - ["<", classify(name), ">"] - |> string_builder.from_strings - |> string_builder.to_string - } - DecodeError(..error, path: [name, ..error.path]) -} - -/// Checks to see if a `Dynamic` value is a 2-element tuple, list or array containing -/// specifically typed elements. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2)) -/// > |> tuple2(int, int) -/// Ok(#(1, 2)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2.0)) -/// > |> tuple2(int, float) -/// Ok(#(1, 2.0)) -/// ``` -/// -/// ```gleam -/// > from([1, 2]) -/// > |> tuple2(int, int) -/// Ok(#(1, 2)) -/// ``` -/// -/// ```gleam -/// > from([from(1), from(2.0)]) -/// > |> tuple2(int, float) -/// Ok(#(1, 2.0)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2, 3)) -/// > |> tuple2(int, float) -/// Error([ -/// DecodeError(expected: "Tuple of 2 elements", found: "Tuple of 3 elements", path: []), -/// ]) -/// ``` -/// -/// ```gleam -/// > from("") -/// > |> tuple2(int, float) -/// Error([DecodeError(expected: "Tuple of 2 elements", found: "String", path: [])]) -/// ``` -/// -pub fn tuple2( - first decode1: Decoder(a), - second decode2: Decoder(b), -) -> Decoder(#(a, b)) { - fn(value) { - use #(a, b) <- result.try(decode_tuple2(value)) - case decode1(a), decode2(b) { - Ok(a), Ok(b) -> Ok(#(a, b)) - a, b -> - tuple_errors(a, "0") - |> list.append(tuple_errors(b, "1")) - |> Error - } - } -} - -/// Checks to see if a `Dynamic` value is a 3-element tuple, list or array containing -/// specifically typed elements. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2, 3)) -/// > |> tuple3(int, int, int) -/// Ok(#(1, 2, 3)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2.0, "3")) -/// > |> tuple3(int, float, string) -/// Ok(#(1, 2.0, "3")) -/// ``` -/// -/// ```gleam -/// > from([1, 2, 3]) -/// > |> tuple3(int, int, int) -/// Ok(#(1, 2, 3)) -/// ``` -/// -/// ```gleam -/// > from([from(1), from(2.0), from("3")]) -/// > |> tuple3(int, float, string) -/// Ok(#(1, 2.0, "3")) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2)) -/// > |> tuple3(int, float, string) -/// Error([ -/// DecodeError(expected: "Tuple of 3 elements", found: "Tuple of 2 elements", path: [])), -/// ]) -/// ``` -/// -/// ```gleam -/// > from("") -/// > |> tuple3(int, float, string) -/// Error([ -/// DecodeError(expected: "Tuple of 3 elements", found: "String", path: []), -/// ]) -/// ``` -/// -pub fn tuple3( - first decode1: Decoder(a), - second decode2: Decoder(b), - third decode3: Decoder(c), -) -> Decoder(#(a, b, c)) { - fn(value) { - use #(a, b, c) <- result.try(decode_tuple3(value)) - case decode1(a), decode2(b), decode3(c) { - Ok(a), Ok(b), Ok(c) -> Ok(#(a, b, c)) - a, b, c -> - tuple_errors(a, "0") - |> list.append(tuple_errors(b, "1")) - |> list.append(tuple_errors(c, "2")) - |> Error - } - } -} - -/// Checks to see if a `Dynamic` value is a 4-element tuple, list or array containing -/// specifically typed elements. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2, 3, 4)) -/// > |> tuple4(int, int, int, int) -/// Ok(#(1, 2, 3, 4)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2.0, "3", 4)) -/// > |> tuple4(int, float, string, int) -/// Ok(#(1, 2.0, "3", 4)) -/// ``` -/// -/// ```gleam -/// > from([1, 2, 3, 4]) -/// > |> tuple4(int, int, int, int) -/// Ok(#(1, 2, 3, 4)) -/// ``` -/// -/// ```gleam -/// > from([from(1), from(2.0), from("3"), from(4)]) -/// > |> tuple4(int, float, string, int) -/// Ok(#(1, 2.0, "3", 4)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2)) -/// > |> tuple4(int, float, string, int) -/// Error([ -/// DecodeError(expected: "Tuple of 4 elements", found: "Tuple of 2 elements", path: []), -/// ]) -/// ``` -/// -/// ```gleam -/// > from("") -/// > |> tuple4(int, float, string, int) -/// Error([ -/// DecodeError(expected: "Tuple of 4 elements", found: "String", path: []), -/// ]) -/// ``` -/// -pub fn tuple4( - first decode1: Decoder(a), - second decode2: Decoder(b), - third decode3: Decoder(c), - fourth decode4: Decoder(d), -) -> Decoder(#(a, b, c, d)) { - fn(value) { - use #(a, b, c, d) <- result.try(decode_tuple4(value)) - case decode1(a), decode2(b), decode3(c), decode4(d) { - Ok(a), Ok(b), Ok(c), Ok(d) -> Ok(#(a, b, c, d)) - a, b, c, d -> - tuple_errors(a, "0") - |> list.append(tuple_errors(b, "1")) - |> list.append(tuple_errors(c, "2")) - |> list.append(tuple_errors(d, "3")) - |> Error - } - } -} - -/// Checks to see if a `Dynamic` value is a 5-element tuple, list or array containing -/// specifically typed elements. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2, 3, 4, 5)) -/// > |> tuple5(int, int, int, int, int) -/// Ok(#(1, 2, 3, 4, 5)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2.0, "3", 4, 5)) -/// > |> tuple5(int, float, string, int, int) -/// Ok(#(1, 2.0, "3", 4, 5)) -/// ``` -/// -/// ```gleam -/// > from([1, 2, 3, 4, 5]) -/// > |> tuple5(int, int, int, int, int) -/// Ok(#(1, 2, 3, 4, 5)) -/// ``` -/// -/// ```gleam -/// > from([from(1), from(2.0), from("3"), from(4), from(True)]) -/// > |> tuple5(int, float, string, int, bool) -/// Ok(#(1, 2.0, "3", 4, True)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2)) -/// > |> tuple5(int, float, string, int, int) -/// Error([ -/// DecodeError(expected: "Tuple of 5 elements", found: "Tuple of 2 elements", path: [])), -/// ]) -/// ``` -/// -/// ```gleam -/// > from("") -/// > |> tuple5(int, float, string, int, int) -/// Error([DecodeError(expected: "Tuple of 5 elements", found: "String", path: [])]) -/// ``` -/// -pub fn tuple5( - first decode1: Decoder(a), - second decode2: Decoder(b), - third decode3: Decoder(c), - fourth decode4: Decoder(d), - fifth decode5: Decoder(e), -) -> Decoder(#(a, b, c, d, e)) { - fn(value) { - use #(a, b, c, d, e) <- result.try(decode_tuple5(value)) - case decode1(a), decode2(b), decode3(c), decode4(d), decode5(e) { - Ok(a), Ok(b), Ok(c), Ok(d), Ok(e) -> Ok(#(a, b, c, d, e)) - a, b, c, d, e -> - tuple_errors(a, "0") - |> list.append(tuple_errors(b, "1")) - |> list.append(tuple_errors(c, "2")) - |> list.append(tuple_errors(d, "3")) - |> list.append(tuple_errors(e, "4")) - |> Error - } - } -} - -/// Checks to see if a `Dynamic` value is a 6-element tuple, list or array containing -/// specifically typed elements. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2, 3, 4, 5, 6)) -/// > |> tuple6(int, int, int, int, int, int) -/// Ok(#(1, 2, 3, 4, 5, 6)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2.0, "3", 4, 5, 6)) -/// > |> tuple6(int, float, string, int, int, int) -/// Ok(#(1, 2.0, "3", 4, 5, 6)) -/// ``` -/// -/// ```gleam -/// > from([1, 2, 3, 4, 5, 6]) -/// > |> tuple6(int, int, int, int, int, int) -/// Ok(#(1, 2, 3, 4, 5, 6)) -/// ``` -/// -/// ```gleam -/// > from([from(1), from(2.0), from("3"), from(4), from(True), from(False)]) -/// > |> tuple6(int, float, string, int, bool, bool) -/// Ok(#(1, 2.0, "3", 4, True, False)) -/// ``` -/// -/// ```gleam -/// > from(#(1, 2)) -/// > |> tuple6(int, float, string, int, int, int) -/// Error([ -/// DecodeError(expected: "Tuple of 6 elements", found: "Tuple of 2 elements", path: []), -/// ]) -/// ``` -/// -/// ```gleam -/// > from("") -/// > |> tuple6(int, float, string, int, int, int) -/// Error([DecodeError(expected: "Tuple of 6 elements", found: "String", path: [])]) -/// ``` -/// -pub fn tuple6( - first decode1: Decoder(a), - second decode2: Decoder(b), - third decode3: Decoder(c), - fourth decode4: Decoder(d), - fifth decode5: Decoder(e), - sixth decode6: Decoder(f), -) -> Decoder(#(a, b, c, d, e, f)) { - fn(value) { - use #(a, b, c, d, e, f) <- result.try(decode_tuple6(value)) - case - decode1(a), - decode2(b), - decode3(c), - decode4(d), - decode5(e), - decode6(f) - { - Ok(a), Ok(b), Ok(c), Ok(d), Ok(e), Ok(f) -> Ok(#(a, b, c, d, e, f)) - a, b, c, d, e, f -> - tuple_errors(a, "0") - |> list.append(tuple_errors(b, "1")) - |> list.append(tuple_errors(c, "2")) - |> list.append(tuple_errors(d, "3")) - |> list.append(tuple_errors(e, "4")) - |> list.append(tuple_errors(f, "5")) - |> Error - } - } -} - -/// Checks to see if a `Dynamic` value is a dict. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/dict -/// > dict.new() |> from |> map(string, int) -/// Ok(dict.new()) -/// ``` -/// -/// ```gleam -/// > from(1) |> map(string, int) -/// Error(DecodeError(expected: "Map", found: "Int", path: [])) -/// ``` -/// -/// ```gleam -/// > from("") |> map(string, int) -/// Error(DecodeError(expected: "Map", found: "String", path: [])) -/// ``` -/// -pub fn dict( - of key_type: Decoder(k), - to value_type: Decoder(v), -) -> Decoder(Dict(k, v)) { - fn(value) { - use map <- result.try(decode_map(value)) - use pairs <- result.try( - map - |> dict.to_list - |> list.try_map(fn(pair) { - let #(k, v) = pair - use k <- result.try( - key_type(k) - |> map_errors(push_path(_, "keys")), - ) - use v <- result.try( - value_type(v) - |> map_errors(push_path(_, "values")), - ) - Ok(#(k, v)) - }), - ) - Ok(dict.from_list(pairs)) - } -} - -@deprecated("Use `dict` instead") -pub fn map( - of key_type: Decoder(k), - to value_type: Decoder(v), -) -> Decoder(Dict(k, v)) { - dict(key_type, value_type) -} - -@external(erlang, "gleam_stdlib", "decode_map") -@external(javascript, "../gleam_stdlib.mjs", "decode_map") -fn decode_map(a: Dynamic) -> Result(Dict(Dynamic, Dynamic), DecodeErrors) - -/// Joins multiple decoders into one. When run they will each be tried in turn -/// until one succeeds, or they all fail. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/result -/// > let bool_or_string = any(of: [ -/// > string, -/// > fn(x) { result.map(bool(x), fn(_) { "a bool" }) } -/// > ]) -/// > bool_or_string(from("ok")) -/// Ok("ok") -/// ``` -/// -/// ```gleam -/// > bool_or_string(from(True)) -/// Ok("a bool") -/// ``` -/// -/// ```gleam -/// > bool_or_string(from(1)) -/// Error(DecodeError(expected: "another type", found: "Int", path: [])) -/// ``` -/// -pub fn any(of decoders: List(Decoder(t))) -> Decoder(t) { - fn(data) { - case decoders { - [] -> - Error([ - DecodeError(found: classify(data), expected: "another type", path: []), - ]) - - [decoder, ..decoders] -> - case decoder(data) { - Ok(decoded) -> Ok(decoded) - Error(_) -> any(decoders)(data) - } - } - } -} - -/// Decode 1 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.0, "3")) -/// > |> decode1(MyRecord, element(0, int)) -/// Ok(MyRecord(1)) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "")) -/// > |> decode1(MyRecord, element(0, int)) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// ]) -/// ``` -/// -pub fn decode1(constructor: fn(t1) -> t, t1: Decoder(t1)) -> Decoder(t) { - fn(value) { - case t1(value) { - Ok(a) -> Ok(constructor(a)) - a -> Error(all_errors(a)) - } - } -} - -/// Decode 2 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.0, "3")) -/// > |> decode2(MyRecord, element(0, int), element(1, float)) -/// Ok(MyRecord(1, 2.0)) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "")) -/// > |> decode2(MyRecord, element(0, int), element(1, float)) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// DecodeError(expected: "Float", found: "String", path: ["1"]), -/// ]) -/// ``` -/// -pub fn decode2( - constructor: fn(t1, t2) -> t, - t1: Decoder(t1), - t2: Decoder(t2), -) -> Decoder(t) { - fn(value) { - case t1(value), t2(value) { - Ok(a), Ok(b) -> Ok(constructor(a, b)) - a, b -> Error(list.concat([all_errors(a), all_errors(b)])) - } - } -} - -/// Decode 3 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.0, "3")) -/// > |> decode3(MyRecord, element(0, int), element(1, float), element(2, string)) -/// Ok(MyRecord(1, 2.0, "3")) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "")) -/// > |> decode3(MyRecord, element(0, int), element(1, float), element(2, string)) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// DecodeError(expected: "Float", found: "String", path: ["1"]), -/// ]) -/// ``` -/// -pub fn decode3( - constructor: fn(t1, t2, t3) -> t, - t1: Decoder(t1), - t2: Decoder(t2), - t3: Decoder(t3), -) -> Decoder(t) { - fn(value) { - case t1(value), t2(value), t3(value) { - Ok(a), Ok(b), Ok(c) -> Ok(constructor(a, b, c)) - a, b, c -> - Error(list.concat([all_errors(a), all_errors(b), all_errors(c)])) - } - } -} - -/// Decode 4 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.1, "3", "4")) -/// > |> decode4( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > ) -/// Ok(MyRecord(1, 2.1, "3", "4")) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "", "")) -/// > |> decode4( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > ) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// DecodeError(expected: "Float", found: "String", path: ["1"]), -/// ]) -/// ``` -/// -pub fn decode4( - constructor: fn(t1, t2, t3, t4) -> t, - t1: Decoder(t1), - t2: Decoder(t2), - t3: Decoder(t3), - t4: Decoder(t4), -) -> Decoder(t) { - fn(x: Dynamic) { - case t1(x), t2(x), t3(x), t4(x) { - Ok(a), Ok(b), Ok(c), Ok(d) -> Ok(constructor(a, b, c, d)) - a, b, c, d -> - Error(list.concat([ - all_errors(a), - all_errors(b), - all_errors(c), - all_errors(d), - ])) - } - } -} - -/// Decode 5 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.1, "3", "4", "5")) -/// > |> decode5( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > ) -/// Ok(MyRecord(1, 2.1, "3", "4", "5")) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "", "", "")) -/// > |> decode5( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > ) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// DecodeError(expected: "Float", found: "String", path: ["1"]), -/// ]) -/// ``` -/// -pub fn decode5( - constructor: fn(t1, t2, t3, t4, t5) -> t, - t1: Decoder(t1), - t2: Decoder(t2), - t3: Decoder(t3), - t4: Decoder(t4), - t5: Decoder(t5), -) -> Decoder(t) { - fn(x: Dynamic) { - case t1(x), t2(x), t3(x), t4(x), t5(x) { - Ok(a), Ok(b), Ok(c), Ok(d), Ok(e) -> Ok(constructor(a, b, c, d, e)) - a, b, c, d, e -> - Error(list.concat([ - all_errors(a), - all_errors(b), - all_errors(c), - all_errors(d), - all_errors(e), - ])) - } - } -} - -/// Decode 6 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.1, "3", "4", "5", "6")) -/// > |> decode6( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > element(5, string), -/// > ) -/// Ok(MyRecord(1, 2.1, "3", "4", "5", "6")) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "", "", "", "")) -/// > |> decode6( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > element(5, string), -/// > ) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// DecodeError(expected: "Float", found: "String", path: ["1"]), -/// ]) -/// ``` -/// -pub fn decode6( - constructor: fn(t1, t2, t3, t4, t5, t6) -> t, - t1: Decoder(t1), - t2: Decoder(t2), - t3: Decoder(t3), - t4: Decoder(t4), - t5: Decoder(t5), - t6: Decoder(t6), -) -> Decoder(t) { - fn(x: Dynamic) { - case t1(x), t2(x), t3(x), t4(x), t5(x), t6(x) { - Ok(a), Ok(b), Ok(c), Ok(d), Ok(e), Ok(f) -> - Ok(constructor(a, b, c, d, e, f)) - a, b, c, d, e, f -> - Error(list.concat([ - all_errors(a), - all_errors(b), - all_errors(c), - all_errors(d), - all_errors(e), - all_errors(f), - ])) - } - } -} - -/// Decode 7 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.1, "3", "4", "5", "6")) -/// > |> decode7( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > element(5, string), -/// > element(6, string), -/// > ) -/// Ok(MyRecord(1, 2.1, "3", "4", "5", "6", "7")) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "", "", "", "", "")) -/// > |> decode7( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > element(5, string), -/// > element(6, string), -/// > ) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// DecodeError(expected: "Float", found: "String", path: ["1"]), -/// ]) -/// ``` -/// -pub fn decode7( - constructor: fn(t1, t2, t3, t4, t5, t6, t7) -> t, - t1: Decoder(t1), - t2: Decoder(t2), - t3: Decoder(t3), - t4: Decoder(t4), - t5: Decoder(t5), - t6: Decoder(t6), - t7: Decoder(t7), -) -> Decoder(t) { - fn(x: Dynamic) { - case t1(x), t2(x), t3(x), t4(x), t5(x), t6(x), t7(x) { - Ok(a), Ok(b), Ok(c), Ok(d), Ok(e), Ok(f), Ok(g) -> - Ok(constructor(a, b, c, d, e, f, g)) - a, b, c, d, e, f, g -> - Error(list.concat([ - all_errors(a), - all_errors(b), - all_errors(c), - all_errors(d), - all_errors(e), - all_errors(f), - all_errors(g), - ])) - } - } -} - -/// Decode 8 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.1, "3", "4", "5", "6", "7", "8")) -/// > |> decode8( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > element(5, string), -/// > element(6, string), -/// > element(7, string), -/// > ) -/// Ok(MyRecord(1, 2.1, "3", "4", "5", "6", "7", "8")) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "", "", "", "", "", "")) -/// > |> decode8( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > element(5, string), -/// > element(6, string), -/// > element(7, string), -/// > ) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// DecodeError(expected: "Float", found: "String", path: ["1"]), -/// ]) -/// ``` -/// -pub fn decode8( - constructor: fn(t1, t2, t3, t4, t5, t6, t7, t8) -> t, - t1: Decoder(t1), - t2: Decoder(t2), - t3: Decoder(t3), - t4: Decoder(t4), - t5: Decoder(t5), - t6: Decoder(t6), - t7: Decoder(t7), - t8: Decoder(t8), -) -> Decoder(t) { - fn(x: Dynamic) { - case t1(x), t2(x), t3(x), t4(x), t5(x), t6(x), t7(x), t8(x) { - Ok(a), Ok(b), Ok(c), Ok(d), Ok(e), Ok(f), Ok(g), Ok(h) -> - Ok(constructor(a, b, c, d, e, f, g, h)) - a, b, c, d, e, f, g, h -> - Error(list.concat([ - all_errors(a), - all_errors(b), - all_errors(c), - all_errors(d), - all_errors(e), - all_errors(f), - all_errors(g), - all_errors(h), - ])) - } - } -} - -/// Decode 9 values from a `Dynamic` value. -/// -/// ## Examples -/// -/// ```gleam -/// > from(#(1, 2.1, "3", "4", "5", "6", "7", "8", "9")) -/// > |> decode9( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > element(5, string), -/// > element(6, string), -/// > element(7, string), -/// > element(8, string), -/// > ) -/// Ok(MyRecord(1, 2.1, "3", "4", "5", "6", "7", "8", "9")) -/// ``` -/// -/// ```gleam -/// > from(#("", "", "", "", "", "", "", "", "")) -/// > |> decode9( -/// > MyRecord, -/// > element(0, int), -/// > element(1, float), -/// > element(2, string), -/// > element(3, string), -/// > element(4, string), -/// > element(5, string), -/// > element(6, string), -/// > element(7, string), -/// > element(8, string), -/// > ) -/// Error([ -/// DecodeError(expected: "Int", found: "String", path: ["0"]), -/// DecodeError(expected: "Float", found: "String", path: ["1"]), -/// ]) -/// ``` -/// -pub fn decode9( - constructor: fn(t1, t2, t3, t4, t5, t6, t7, t8, t9) -> t, - t1: Decoder(t1), - t2: Decoder(t2), - t3: Decoder(t3), - t4: Decoder(t4), - t5: Decoder(t5), - t6: Decoder(t6), - t7: Decoder(t7), - t8: Decoder(t8), - t9: Decoder(t9), -) -> Decoder(t) { - fn(x: Dynamic) { - case t1(x), t2(x), t3(x), t4(x), t5(x), t6(x), t7(x), t8(x), t9(x) { - Ok(a), Ok(b), Ok(c), Ok(d), Ok(e), Ok(f), Ok(g), Ok(h), Ok(i) -> - Ok(constructor(a, b, c, d, e, f, g, h, i)) - a, b, c, d, e, f, g, h, i -> - Error(list.concat([ - all_errors(a), - all_errors(b), - all_errors(c), - all_errors(d), - all_errors(e), - all_errors(f), - all_errors(g), - all_errors(h), - all_errors(i), - ])) - } - } -} - -fn all_errors(result: Result(a, List(DecodeError))) -> List(DecodeError) { - case result { - Ok(_) -> [] - Error(errors) -> errors - } -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/float.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/float.gleam deleted file mode 100644 index 5d62419..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/float.gleam +++ /dev/null @@ -1,546 +0,0 @@ -//// Functions for working with floats. -//// -//// ## Division by zero -//// -//// Gleam runs on the Erlang virtual machine, which does not follow the IEEE -//// 754 standard for floating point arithmetic and does not have an `Infinity` -//// value. In Erlang division by zero results in a crash, however Gleam does -//// not have partial functions and operators in core so instead division by zero -//// returns zero, a behaviour taken from Pony, Coq, and Lean. -//// -//// This may seem unexpected at first, but it is no less mathematically valid -//// than crashing or returning a special value. Division by zero is undefined -//// in mathematics. - -import gleam/order.{type Order} - -/// Attempts to parse a string as a `Float`, returning `Error(Nil)` if it was -/// not possible. -/// -/// ## Examples -/// -/// ```gleam -/// > parse("2.3") -/// Ok(2.3) -/// ``` -/// -/// ```gleam -/// > parse("ABC") -/// Error(Nil) -/// ``` -/// -pub fn parse(string: String) -> Result(Float, Nil) { - do_parse(string) -} - -@external(erlang, "gleam_stdlib", "parse_float") -@external(javascript, "../gleam_stdlib.mjs", "parse_float") -fn do_parse(a: String) -> Result(Float, Nil) - -/// Returns the string representation of the provided `Float`. -/// -/// ## Examples -/// -/// ```gleam -/// > to_string(2.3) -/// "2.3" -/// ``` -/// -pub fn to_string(x: Float) -> String { - do_to_string(x) -} - -@external(erlang, "gleam_stdlib", "float_to_string") -@external(javascript, "../gleam_stdlib.mjs", "float_to_string") -fn do_to_string(a: Float) -> String - -/// Restricts a `Float` between a lower and upper bound. -/// -/// ## Examples -/// -/// ```gleam -/// > clamp(1.2, min: 1.4, max: 1.6) -/// 1.4 -/// ``` -/// -pub fn clamp(x: Float, min min_bound: Float, max max_bound: Float) -> Float { - x - |> min(max_bound) - |> max(min_bound) -} - -/// Compares two `Float`s, returning an `Order`: -/// `Lt` for lower than, `Eq` for equals, or `Gt` for greater than. -/// -/// ## Examples -/// -/// ```gleam -/// > compare(2.0, 2.3) -/// Lt -/// ``` -/// -/// To handle -/// [Floating Point Imprecision](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems) -/// you may use [`loosely_compare`](#loosely_compare) instead. -/// -pub fn compare(a: Float, with b: Float) -> Order { - case a == b { - True -> order.Eq - False -> - case a <. b { - True -> order.Lt - False -> order.Gt - } - } -} - -/// Compares two `Float`s within a tolerance, returning an `Order`: -/// `Lt` for lower than, `Eq` for equals, or `Gt` for greater than. -/// -/// This function allows Float comparison while handling -/// [Floating Point Imprecision](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems). -/// -/// Notice: For `Float`s the tolerance won't be exact: -/// `5.3 - 5.0` is not exactly `0.3`. -/// -/// ## Examples -/// -/// ```gleam -/// > loosely_compare(5.0, with: 5.3, tolerating: 0.5) -/// Eq -/// ``` -/// -/// If you want to check only for equality you may use -/// [`loosely_equals`](#loosely_equals) instead. -/// -pub fn loosely_compare( - a: Float, - with b: Float, - tolerating tolerance: Float, -) -> Order { - let difference = absolute_value(a -. b) - case difference <=. tolerance { - True -> order.Eq - False -> compare(a, b) - } -} - -/// Checks for equality of two `Float`s within a tolerance, -/// returning an `Bool`. -/// -/// This function allows Float comparison while handling -/// [Floating Point Imprecision](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems). -/// -/// Notice: For `Float`s the tolerance won't be exact: -/// `5.3 - 5.0` is not exactly `0.3`. -/// -/// ## Examples -/// -/// ```gleam -/// > loosely_equals(5.0, with: 5.3, tolerating: 0.5) -/// True -/// ``` -/// -/// ```gleam -/// > loosely_equals(5.0, with: 5.1, tolerating: 0.1) -/// False -/// ``` -/// -pub fn loosely_equals( - a: Float, - with b: Float, - tolerating tolerance: Float, -) -> Bool { - let difference = absolute_value(a -. b) - difference <=. tolerance -} - -/// Compares two `Float`s, returning the smaller of the two. -/// -/// ## Examples -/// -/// ```gleam -/// > min(2.0, 2.3) -/// 2.0 -/// ``` -/// -pub fn min(a: Float, b: Float) -> Float { - case a <. b { - True -> a - False -> b - } -} - -/// Compares two `Float`s, returning the larger of the two. -/// -/// ## Examples -/// -/// ```gleam -/// > max(2.0, 2.3) -/// 2.3 -/// ``` -/// -pub fn max(a: Float, b: Float) -> Float { - case a >. b { - True -> a - False -> b - } -} - -/// Rounds the value to the next highest whole number as a `Float`. -/// -/// ## Examples -/// -/// ```gleam -/// > ceiling(2.3) -/// 3.0 -/// ``` -/// -pub fn ceiling(x: Float) -> Float { - do_ceiling(x) -} - -@external(erlang, "math", "ceil") -@external(javascript, "../gleam_stdlib.mjs", "ceiling") -fn do_ceiling(a: Float) -> Float - -/// Rounds the value to the next lowest whole number as a `Float`. -/// -/// ## Examples -/// -/// ```gleam -/// > floor(2.3) -/// 2.0 -/// ``` -/// -pub fn floor(x: Float) -> Float { - do_floor(x) -} - -@external(erlang, "math", "floor") -@external(javascript, "../gleam_stdlib.mjs", "floor") -fn do_floor(a: Float) -> Float - -/// Rounds the value to the nearest whole number as an `Int`. -/// -/// ## Examples -/// -/// ```gleam -/// > round(2.3) -/// 2 -/// ``` -/// -/// ```gleam -/// > round(2.5) -/// 3 -/// ``` -/// -pub fn round(x: Float) -> Int { - do_round(x) -} - -@target(erlang) -@external(erlang, "erlang", "round") -fn do_round(a: Float) -> Int - -@target(javascript) -fn do_round(x: Float) -> Int { - case x >=. 0.0 { - True -> js_round(x) - _ -> 0 - js_round(negate(x)) - } -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "round") -fn js_round(a: Float) -> Int - -/// Returns the value as an `Int`, truncating all decimal digits. -/// -/// ## Examples -/// -/// ```gleam -/// > truncate(2.4343434847383438) -/// 2 -/// ``` -/// -pub fn truncate(x: Float) -> Int { - do_truncate(x) -} - -@external(erlang, "erlang", "trunc") -@external(javascript, "../gleam_stdlib.mjs", "truncate") -fn do_truncate(a: Float) -> Int - -/// Returns the absolute value of the input as a `Float`. -/// -/// ## Examples -/// -/// ```gleam -/// > absolute_value(-12.5) -/// 12.5 -/// ``` -/// -/// ```gleam -/// > absolute_value(10.2) -/// 10.2 -/// ``` -/// -pub fn absolute_value(x: Float) -> Float { - case x >=. 0.0 { - True -> x - _ -> 0.0 -. x - } -} - -/// Returns the results of the base being raised to the power of the -/// exponent, as a `Float`. -/// -/// ## Examples -/// -/// ```gleam -/// > power(2.0, -1.0) -/// Ok(0.5) -/// ``` -/// -/// ```gleam -/// > power(2.0, 2.0) -/// Ok(4.0) -/// ``` -/// -/// ```gleam -/// > power(8.0, 1.5) -/// Ok(22.627416997969522) -/// ``` -/// -/// ```gleam -/// > 4.0 |> power(of: 2.0) -/// Ok(16.0) -/// ``` -/// -/// ```gleam -/// > power(-1.0, 0.5) -/// Error(Nil) -/// ``` -/// -pub fn power(base: Float, of exponent: Float) -> Result(Float, Nil) { - let fractional: Bool = ceiling(exponent) -. exponent >. 0.0 - // In the following check: - // 1. If the base is negative and the exponent is fractional then - // return an error as it will otherwise be an imaginary number - // 2. If the base is 0 and the exponent is negative then the expression - // is equivalent to the exponent divided by 0 and an error should be - // returned - case base <. 0.0 && fractional || base == 0.0 && exponent <. 0.0 { - True -> Error(Nil) - False -> Ok(do_power(base, exponent)) - } -} - -@external(erlang, "math", "pow") -@external(javascript, "../gleam_stdlib.mjs", "power") -fn do_power(a: Float, b: Float) -> Float - -/// Returns the square root of the input as a `Float`. -/// -/// ## Examples -/// -/// ```gleam -/// > square_root(4.0) -/// Ok(2.0) -/// ``` -/// -/// ```gleam -/// > square_root(-16.0) -/// Error(Nil) -/// ``` -/// -pub fn square_root(x: Float) -> Result(Float, Nil) { - power(x, 0.5) -} - -/// Returns the negative of the value provided. -/// -/// ## Examples -/// -/// ```gleam -/// > negate(1.0) -/// -1.0 -/// ``` -/// -pub fn negate(x: Float) -> Float { - -1.0 *. x -} - -/// Sums a list of `Float`s. -/// -/// ## Example -/// -/// ```gleam -/// > sum([1.0, 2.2, 3.3]) -/// 6.5 -/// ``` -/// -pub fn sum(numbers: List(Float)) -> Float { - numbers - |> do_sum(0.0) -} - -fn do_sum(numbers: List(Float), initial: Float) -> Float { - case numbers { - [] -> initial - [x, ..rest] -> do_sum(rest, x +. initial) - } -} - -/// Multiplies a list of `Float`s and returns the product. -/// -/// ## Example -/// -/// ```gleam -/// > product([2.5, 3.2, 4.2]) -/// 33.6 -/// ``` -/// -pub fn product(numbers: List(Float)) -> Float { - case numbers { - [] -> 1.0 - _ -> do_product(numbers, 1.0) - } -} - -fn do_product(numbers: List(Float), initial: Float) -> Float { - case numbers { - [] -> initial - [x, ..rest] -> do_product(rest, x *. initial) - } -} - -/// Generates a random float between the given minimum and maximum values. -/// -/// -/// ## Examples -/// -/// ```gleam -/// > random(1.0, 5.0) -/// 2.646355926896028 -/// ``` -/// -pub fn random(min: Float, max: Float) -> Float { - do_random_uniform() *. { max -. min } +. min -} - -/// Returns a random float uniformly distributed in the value range -/// 0.0 =< X < 1.0 and updates the state in the process dictionary. -/// See: -/// -@external(erlang, "rand", "uniform") -@external(javascript, "../gleam_stdlib.mjs", "random_uniform") -fn do_random_uniform() -> Float - -/// Returns division of the inputs as a `Result`. -/// -/// ## Examples -/// -/// ```gleam -/// > divide(0.0, 1.0) -/// Ok(1.0) -/// ``` -/// -/// ```gleam -/// > divide(1.0, 0.0) -/// Error(Nil) -/// ``` -/// -pub fn divide(a: Float, by b: Float) -> Result(Float, Nil) { - case b { - 0.0 -> Error(Nil) - b -> Ok(a /. b) - } -} - -/// Adds two floats together. -/// -/// It's the function equivalent of the `+.` operator. -/// This function is useful in higher order functions or pipes. -/// -/// ## Examples -/// -/// ```gleam -/// > add(1.0, 2.0) -/// 3.0 -/// ``` -/// -/// ```gleam -/// > import gleam/list -/// > list.fold([1.0, 2.0, 3.0], 0.0, add) -/// 6.0 -/// ``` -/// -/// ```gleam -/// > 3.0 |> add(2.0) -/// 5.0 -/// ``` -/// -pub fn add(a: Float, b: Float) -> Float { - a +. b -} - -/// Multiplies two floats together. -/// -/// It's the function equivalent of the `*.` operator. -/// This function is useful in higher order functions or pipes. -/// -/// ## Examples -/// -/// ```gleam -/// > multiply(2.0, 4.0) -/// 8.0 -/// ``` -/// -/// ```gleam -/// import gleam/list -/// > list.fold([2.0, 3.0, 4.0], 1.0, multiply) -/// 24.0 -/// ``` -/// -/// ```gleam -/// > 3.0 |> multiply(2.0) -/// 6.0 -/// ``` -/// -pub fn multiply(a: Float, b: Float) -> Float { - a *. b -} - -/// Subtracts one float from another. -/// -/// It's the function equivalent of the `-.` operator. -/// This function is useful in higher order functions or pipes. -/// -/// ## Examples -/// -/// ```gleam -/// > subtract(3.0, 1.0) -/// 2.0 -/// ``` -/// -/// ```gleam -/// > import gleam/list -/// > list.fold([1.0, 2.0, 3.0], 10.0, subtract) -/// 4.0 -/// ``` -/// -/// ```gleam -/// > 3.0 |> subtract(_, 2.0) -/// 1.0 -/// ``` -/// -/// ```gleam -/// > 3.0 |> subtract(2.0, _) -/// -1.0 -/// ``` -/// -pub fn subtract(a: Float, b: Float) -> Float { - a -. b -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/function.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/function.gleam deleted file mode 100644 index daa997d..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/function.gleam +++ /dev/null @@ -1,162 +0,0 @@ -/// Takes two functions and chains them together to form one function that -/// takes the input from the first and returns the output of the second. -/// -pub fn compose(fun1: fn(a) -> b, fun2: fn(b) -> c) -> fn(a) -> c { - fn(a) { fun2(fun1(a)) } -} - -/// Takes a function with `2` arguments (an arity of `2`), and returns the -/// curried equivalent. -/// -/// `fn(a, b) -> c` becomes `fn(a) -> fn(b) -> c`. -/// -/// ## Examples -/// -/// *Currying* creates a new function that is identical to the given function -/// except that arguments must now be supplied one by one over several function -/// calls. It thus is the process of taking a function with `n` arguments -/// and producing a sequence of `n` single-argument functions. Given: -/// -/// ```gleam -/// > fn my_fun(i: Int, s: String) -> String { ... } -/// ``` -/// -/// …calling `curry2(my_fun)` would return the curried equivalent, like so: -/// -/// ```gleam -/// > curry2(my_fun) -/// fn(Int) -> fn(String) -> String -/// ``` -/// -/// Currying is useful when you want to partially apply a function with -/// some arguments and then pass it somewhere else, for example: -/// -/// ```gleam -/// > import gleam/list -/// > let multiply = curry2(fn(x, y) { x * y }) -/// > let doubles = list.map([1, 2, 3], multiply(2)) -/// [2, 4, 6] -/// ``` -/// -pub fn curry2(fun: fn(a, b) -> value) { - fn(a) { fn(b) { fun(a, b) } } -} - -/// Takes a function with `3` arguments (an arity of `3`), and returns the -/// curried equivalent. -/// -/// `fn(a, b, c) -> d` becomes `fn(a) -> fn(b) -> fn(c) -> d`. -/// -/// See [`curry2`](#curry2) for a detailed explanation. -/// -pub fn curry3(fun: fn(a, b, c) -> value) { - fn(a) { fn(b) { fn(c) { fun(a, b, c) } } } -} - -/// Takes a function with `4` arguments (an arity of `4`), and returns the -/// curried equivalent. -/// -/// `fn(a, b, c, d) -> e` becomes `fn(a) -> fn(b) -> fn(c) -> fn(d) -> e`. -/// -/// See [`curry2`](#curry2) for a detailed explanation. -/// -pub fn curry4(fun: fn(a, b, c, d) -> value) { - fn(a) { fn(b) { fn(c) { fn(d) { fun(a, b, c, d) } } } } -} - -/// Takes a function with `5` arguments (an arity of `5`), and returns the -/// curried equivalent. -/// -/// `fn(a, b, c, d, e) -> f` becomes -/// `fn(a) -> fn(b) -> fn(c) -> fn(d) -> fn(e) -> f`. -/// -/// See [`curry2`](#curry2) for a detailed explanation. -/// -pub fn curry5(fun: fn(a, b, c, d, e) -> value) { - fn(a) { fn(b) { fn(c) { fn(d) { fn(e) { fun(a, b, c, d, e) } } } } } -} - -/// Takes a function with `6` arguments (an arity of `6`), and returns the -/// curried equivalent. -/// -/// `fn(a, b, c, d, e, f) -> g` becomes -/// `fn(a) -> fn(b) -> fn(c) -> fn(d) -> fn(e) -> fn(f) -> g`. -/// -/// See [`curry2`](#curry2) for a detailed explanation. -/// -pub fn curry6(fun: fn(a, b, c, d, e, f) -> value) { - fn(a) { - fn(b) { fn(c) { fn(d) { fn(e) { fn(f) { fun(a, b, c, d, e, f) } } } } } - } -} - -/// Takes a function that takes two arguments and returns a new function that -/// takes the same two arguments, but in reverse order. -/// -pub fn flip(fun: fn(a, b) -> c) -> fn(b, a) -> c { - fn(b, a) { fun(a, b) } -} - -/// Takes a single argument and always returns its input value. -/// -pub fn identity(x: a) -> a { - x -} - -/// Takes a single argument and returns a new function that -/// ignores its argument and always returns the input value. -/// -pub fn constant(value: a) -> fn(b) -> a { - fn(_) { value } -} - -/// Takes an argument and a single function, -/// calls that function with that argument -/// and returns that argument instead of the function return value. -/// Useful for running synchronous side effects in a pipeline. -/// -pub fn tap(arg: a, effect: fn(a) -> b) -> a { - effect(arg) - arg -} - -/// Takes a function with arity one and an argument, -/// calls that function with the argument and returns the function return value. -/// -/// Useful for concisely calling functions returned as a part of a pipeline. -/// -/// ## Example -/// -/// ```gleam -/// > let doubler = fn() { -/// > fn(x: Int) { x * 2 } -/// > } -/// > -/// > doubler() -/// > |> apply1(2) -/// 4 -/// ``` -/// -pub fn apply1(fun: fn(a) -> value, arg1: a) -> value { - fun(arg1) -} - -/// Takes a function with arity two and two arguments, -/// calls that function with the arguments -/// and returns the function return value. -/// -/// See [`apply1`](#apply1) for more details. -/// -pub fn apply2(fun: fn(a, b) -> value, arg1: a, arg2: b) -> value { - fun(arg1, arg2) -} - -/// Takes a function with arity three and three arguments, -/// calls that function with the arguments -/// and returns the function return value. -/// -/// See [`apply1`](#apply1) for more details. -/// -pub fn apply3(fun: fn(a, b, c) -> value, arg1: a, arg2: b, arg3: c) -> value { - fun(arg1, arg2, arg3) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/int.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/int.gleam deleted file mode 100644 index d93c16a..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/int.gleam +++ /dev/null @@ -1,874 +0,0 @@ -//// Functions for working with integers. -//// -//// ## Division by zero -//// -//// In Erlang division by zero results in a crash, however Gleam does not have -//// partial functions and operators in core so instead division by zero returns -//// zero, a behaviour taken from Pony, Coq, and Lean. -//// -//// This may seem unexpected at first, but it is no less mathematically valid -//// than crashing or returning a special value. Division by zero is undefined -//// in mathematics. - -import gleam/float -import gleam/order.{type Order} - -/// Returns the absolute value of the input. -/// -/// ## Examples -/// -/// ```gleam -/// > absolute_value(-12) -/// 12 -/// ``` -/// -/// ```gleam -/// > absolute_value(10) -/// 10 -/// ``` -/// -pub fn absolute_value(x: Int) -> Int { - case x >= 0 { - True -> x - False -> x * -1 - } -} - -/// Returns the results of the base being raised to the power of the -/// exponent, as a `Float`. -/// -/// ## Examples -/// -/// ```gleam -/// > power(2, -1.0) -/// Ok(0.5) -/// ``` -/// -/// ```gleam -/// > power(2, 2.0) -/// Ok(4.0) -/// ``` -/// -/// ```gleam -/// > power(8, 1.5) -/// Ok(22.627416997969522) -/// ``` -/// -/// ```gleam -/// > 4 |> power(of: 2.0) -/// Ok(16.0) -/// ``` -/// -/// ```gleam -/// > power(-1, 0.5) -/// Error(Nil) -/// ``` -/// -pub fn power(base: Int, of exponent: Float) -> Result(Float, Nil) { - base - |> to_float() - |> float.power(exponent) -} - -/// Returns the square root of the input as a `Float`. -/// -/// ## Examples -/// -/// ```gleam -/// > square_root(4) -/// Ok(2.0) -/// ``` -/// -/// ```gleam -/// > square_root(-16) -/// Error(Nil) -/// ``` -/// -pub fn square_root(x: Int) -> Result(Float, Nil) { - x - |> to_float() - |> float.square_root() -} - -/// Parses a given string as an int if possible. -/// -/// ## Examples -/// -/// ```gleam -/// > parse("2") -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > parse("ABC") -/// Error(Nil) -/// ``` -/// -pub fn parse(string: String) -> Result(Int, Nil) { - do_parse(string) -} - -@external(erlang, "gleam_stdlib", "parse_int") -@external(javascript, "../gleam_stdlib.mjs", "parse_int") -fn do_parse(a: String) -> Result(Int, Nil) - -/// Parses a given string as an int in a given base if possible. -/// Supports only bases 2 to 36, for values outside of which this function returns an `Error(Nil)`. -/// -/// ## Examples -/// -/// ```gleam -/// > base_parse("10", 2) -/// Ok(2) -/// -/// > base_parse("30", 16) -/// Ok(48) -/// -/// > base_parse("1C", 36) -/// Ok(48) -/// -/// > base_parse("48", 1) -/// Error(Nil) -/// -/// > base_parse("48", 37) -/// Error(Nil) -/// ``` -/// -pub fn base_parse(string: String, base: Int) -> Result(Int, Nil) { - case base >= 2 && base <= 36 { - True -> do_base_parse(string, base) - False -> Error(Nil) - } -} - -@external(erlang, "gleam_stdlib", "int_from_base_string") -@external(javascript, "../gleam_stdlib.mjs", "int_from_base_string") -fn do_base_parse(a: String, b: Int) -> Result(Int, Nil) - -/// Prints a given int to a string. -/// -/// ## Examples -/// -/// ```gleam -/// > to_string(2) -/// "2" -/// ``` -/// -pub fn to_string(x: Int) { - do_to_string(x) -} - -@external(erlang, "erlang", "integer_to_binary") -@external(javascript, "../gleam_stdlib.mjs", "to_string") -fn do_to_string(a: Int) -> String - -/// Error value when trying to operate with a base out of the allowed range. -/// -pub type InvalidBase { - InvalidBase -} - -/// Prints a given int to a string using the base number provided. -/// Supports only bases 2 to 36, for values outside of which this function returns an `Error(InvalidBase)`. -/// For common bases (2, 8, 16, 36), use the `to_baseN` functions. -/// -/// ## Examples -/// -/// ```gleam -/// > to_base_string(2, 2) -/// Ok("10") -/// ``` -/// -/// ```gleam -/// > to_base_string(48, 16) -/// Ok("30") -/// ``` -/// -/// ```gleam -/// > to_base_string(48, 36) -/// Ok("1C") -/// ``` -/// -/// ```gleam -/// > to_base_string(48, 1) -/// Error(InvalidBase) -/// ``` -/// -/// ```gleam -/// > to_base_string(48, 37) -/// Error(InvalidBase) -/// ``` -/// -pub fn to_base_string(x: Int, base: Int) -> Result(String, InvalidBase) { - case base >= 2 && base <= 36 { - True -> Ok(do_to_base_string(x, base)) - False -> Error(InvalidBase) - } -} - -@external(erlang, "erlang", "integer_to_binary") -@external(javascript, "../gleam_stdlib.mjs", "int_to_base_string") -fn do_to_base_string(a: Int, b: Int) -> String - -/// Prints a given int to a string using base-2. -/// -/// ## Examples -/// -/// ```gleam -/// > to_base2(2) -/// "10" -/// ``` -/// -pub fn to_base2(x: Int) -> String { - do_to_base_string(x, 2) -} - -/// Prints a given int to a string using base-8. -/// -/// ## Examples -/// -/// ```gleam -/// > to_base8(15) -/// "17" -/// ``` -/// -pub fn to_base8(x: Int) -> String { - do_to_base_string(x, 8) -} - -/// Prints a given int to a string using base-16. -/// -/// ## Examples -/// -/// ```gleam -/// > to_base16(48) -/// "30" -/// ``` -/// -pub fn to_base16(x: Int) -> String { - do_to_base_string(x, 16) -} - -/// Prints a given int to a string using base-36. -/// -/// ## Examples -/// -/// ```gleam -/// > to_base36(48) -/// "1C" -/// ``` -/// -pub fn to_base36(x: Int) -> String { - do_to_base_string(x, 36) -} - -/// Takes an int and returns its value as a float. -/// -/// ## Examples -/// -/// ```gleam -/// > to_float(5) -/// 5.0 -/// ``` -/// -/// ```gleam -/// > to_float(0) -/// 0.0 -/// ``` -/// -/// ```gleam -/// > to_float(-3) -/// -3.0 -/// ``` -/// -pub fn to_float(x: Int) -> Float { - do_to_float(x) -} - -@external(erlang, "erlang", "float") -@external(javascript, "../gleam_stdlib.mjs", "identity") -fn do_to_float(a: Int) -> Float - -/// Restricts an int between a lower and upper bound. -/// -/// ## Examples -/// -/// ```gleam -/// > clamp(40, min: 50, max: 60) -/// 50 -/// ``` -/// -pub fn clamp(x: Int, min min_bound: Int, max max_bound: Int) -> Int { - x - |> min(max_bound) - |> max(min_bound) -} - -/// Compares two ints, returning an order. -/// -/// ## Examples -/// -/// ```gleam -/// > compare(2, 3) -/// Lt -/// ``` -/// -/// ```gleam -/// > compare(4, 3) -/// Gt -/// ``` -/// -/// ```gleam -/// > compare(3, 3) -/// Eq -/// ``` -/// -pub fn compare(a: Int, with b: Int) -> Order { - case a == b { - True -> order.Eq - False -> - case a < b { - True -> order.Lt - False -> order.Gt - } - } -} - -/// Compares two ints, returning the smaller of the two. -/// -/// ## Examples -/// -/// ```gleam -/// > min(2, 3) -/// 2 -/// ``` -/// -pub fn min(a: Int, b: Int) -> Int { - case a < b { - True -> a - False -> b - } -} - -/// Compares two ints, returning the larger of the two. -/// -/// ## Examples -/// -/// ```gleam -/// > max(2, 3) -/// 3 -/// ``` -/// -pub fn max(a: Int, b: Int) -> Int { - case a > b { - True -> a - False -> b - } -} - -/// Returns whether the value provided is even. -/// -/// ## Examples -/// -/// ```gleam -/// > is_even(2) -/// True -/// ``` -/// -/// ```gleam -/// > is_even(3) -/// False -/// ``` -/// -pub fn is_even(x: Int) -> Bool { - x % 2 == 0 -} - -/// Returns whether the value provided is odd. -/// -/// ## Examples -/// -/// ```gleam -/// > is_odd(3) -/// True -/// ``` -/// -/// ```gleam -/// > is_odd(2) -/// False -/// ``` -/// -pub fn is_odd(x: Int) -> Bool { - x % 2 != 0 -} - -/// Returns the negative of the value provided. -/// -/// ## Examples -/// -/// ```gleam -/// > negate(1) -/// -1 -/// ``` -/// -pub fn negate(x: Int) -> Int { - -1 * x -} - -/// Sums a list of ints. -/// -/// ## Example -/// -/// ```gleam -/// > sum([1, 2, 3]) -/// 6 -/// ``` -/// -pub fn sum(numbers: List(Int)) -> Int { - numbers - |> do_sum(0) -} - -fn do_sum(numbers: List(Int), initial: Int) -> Int { - case numbers { - [] -> initial - [x, ..rest] -> do_sum(rest, x + initial) - } -} - -/// Multiplies a list of ints and returns the product. -/// -/// ## Example -/// -/// ```gleam -/// > product([2, 3, 4]) -/// 24 -/// ``` -/// -pub fn product(numbers: List(Int)) -> Int { - case numbers { - [] -> 1 - _ -> do_product(numbers, 1) - } -} - -fn do_product(numbers: List(Int), initial: Int) -> Int { - case numbers { - [] -> initial - [x, ..rest] -> do_product(rest, x * initial) - } -} - -/// Splits an integer into its digit representation in the specified base -/// -/// ## Examples -/// -/// ```gleam -/// > digits(234, 10) -/// Ok([2,3,4]) -/// ``` -/// -/// ```gleam -/// > digits(234, 1) -/// Error(InvalidBase) -/// ``` -/// -pub fn digits(x: Int, base: Int) -> Result(List(Int), InvalidBase) { - case base < 2 { - True -> Error(InvalidBase) - False -> Ok(do_digits(x, base, [])) - } -} - -fn do_digits(x: Int, base: Int, acc: List(Int)) -> List(Int) { - case absolute_value(x) < base { - True -> [x, ..acc] - False -> do_digits(x / base, base, [x % base, ..acc]) - } -} - -/// Joins a list of digits into a single value. -/// Returns an error if the base is less than 2 or if the list contains a digit greater than or equal to the specified base. -/// -/// ## Examples -/// -/// ```gleam -/// > undigits([2,3,4], 10) -/// Ok(234) -/// ``` -/// -/// ```gleam -/// > undigits([2,3,4], 1) -/// Error(InvalidBase) -/// ``` -/// -/// ```gleam -/// > undigits([2,3,4], 2) -/// Error(InvalidBase) -/// ``` -/// -pub fn undigits(numbers: List(Int), base: Int) -> Result(Int, InvalidBase) { - case base < 2 { - True -> Error(InvalidBase) - False -> do_undigits(numbers, base, 0) - } -} - -fn do_undigits( - numbers: List(Int), - base: Int, - acc: Int, -) -> Result(Int, InvalidBase) { - case numbers { - [] -> Ok(acc) - [digit, ..] if digit >= base -> Error(InvalidBase) - [digit, ..rest] -> do_undigits(rest, base, acc * base + digit) - } -} - -/// Generates a random int between the given minimum and maximum values. -/// -/// ## Examples -/// -/// ```gleam -/// > random(1, 5) -/// 2 -/// ``` -/// -pub fn random(min: Int, max: Int) -> Int { - float.random(to_float(min), to_float(max)) - |> float.floor() - |> float.round() -} - -/// Performs a truncated integer division. -/// -/// Returns division of the inputs as a `Result`: If the given divisor equals -/// `0`, this function returns an `Error`. -/// -/// ## Examples -/// -/// ```gleam -/// > divide(0, 1) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > divide(1, 0) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > divide(5, 2) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > divide(-99, 2) -/// Ok(-49) -/// ``` -/// -pub fn divide(dividend: Int, by divisor: Int) -> Result(Int, Nil) { - case divisor { - 0 -> Error(Nil) - divisor -> Ok(dividend / divisor) - } -} - -/// Computes the remainder of an integer division of inputs as a `Result`. -/// -/// Returns division of the inputs as a `Result`: If the given divisor equals -/// `0`, this function returns an `Error`. -/// -/// Most the time you will want to use the `%` operator instead of this -/// function. -/// -/// ## Examples -/// -/// ```gleam -/// > remainder(3, 2) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > remainder(1, 0) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > remainder(10, -1) -/// Ok(0) -/// ``` -/// -/// ```gleam -/// > remainder(13, by: 3) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > remainder(-13, by: 3) -/// Ok(-1) -/// ``` -/// -/// ```gleam -/// > remainder(13, by: -3) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > remainder(-13, by: -3) -/// Ok(-1) -/// ``` -/// -pub fn remainder(dividend: Int, by divisor: Int) -> Result(Int, Nil) { - case divisor { - 0 -> Error(Nil) - divisor -> Ok(dividend % divisor) - } -} - -/// Computes the modulo of an integer division of inputs as a `Result`. -/// -/// Returns division of the inputs as a `Result`: If the given divisor equals -/// `0`, this function returns an `Error`. -/// -/// Most the time you will want to use the `%` operator instead of this -/// function. -/// -/// ## Examples -/// -/// ```gleam -/// > modulo(3, 2) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > modulo(1, 0) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > modulo(10, -1) -/// Ok(0) -/// ``` -/// -/// ```gleam -/// > modulo(13, by: 3) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > modulo(-13, by: 3) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > modulo(13, by: -3) -/// Ok(-2) -/// ``` -/// -/// ```gleam -/// > modulo(-13, by: -3) -/// Ok(-1) -/// ``` -/// -pub fn modulo(dividend: Int, by divisor: Int) -> Result(Int, Nil) { - case divisor { - 0 -> Error(Nil) - _ -> { - let remainder = dividend % divisor - case remainder * divisor < 0 { - True -> Ok(remainder + divisor) - False -> Ok(remainder) - } - } - } -} - -/// Performs a *floored* integer division, which means that the result will -/// always be rounded towards negative infinity. -/// -/// If you want to perform truncated integer division (rounding towards zero), -/// use `int.divide()` or the `/` operator instead. -/// -/// Returns division of the inputs as a `Result`: If the given divisor equals -/// `0`, this function returns an `Error`. -/// -/// ## Examples -/// -/// ```gleam -/// > floor_divide(1, 0) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > floor_divide(5, 2) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > floor_divide(6, -4) -/// Ok(-2) -/// ``` -/// -/// ```gleam -/// > floor_divide(-99, 2) -/// Ok(-50) -/// ``` -/// -pub fn floor_divide(dividend: Int, by divisor: Int) -> Result(Int, Nil) { - case divisor { - 0 -> Error(Nil) - divisor -> - case dividend * divisor < 0 && dividend % divisor != 0 { - True -> Ok(dividend / divisor - 1) - False -> Ok(dividend / divisor) - } - } -} - -/// Adds two integers together. -/// -/// It's the function equivalent of the `+` operator. -/// This function is useful in higher order functions or pipes. -/// -/// ## Examples -/// -/// ```gleam -/// > add(1, 2) -/// 3 -/// ``` -/// -/// ```gleam -/// import gleam/list -/// > list.fold([1, 2, 3], 0, add) -/// 6 -/// ``` -/// -/// ```gleam -/// > 3 |> add(2) -/// 5 -/// ``` -/// -pub fn add(a: Int, b: Int) -> Int { - a + b -} - -/// Multiplies two integers together. -/// -/// It's the function equivalent of the `*` operator. -/// This function is useful in higher order functions or pipes. -/// -/// ## Examples -/// -/// ```gleam -/// > multiply(2, 4) -/// 8 -/// ``` -/// -/// ```gleam -/// import gleam/list -/// > list.fold([2, 3, 4], 1, multiply) -/// 24 -/// ``` -/// -/// ```gleam -/// > 3 |> multiply(2) -/// 6 -/// ``` -/// -pub fn multiply(a: Int, b: Int) -> Int { - a * b -} - -/// Subtracts one int from another. -/// -/// It's the function equivalent of the `-` operator. -/// This function is useful in higher order functions or pipes. -/// -/// ## Examples -/// -/// ```gleam -/// > subtract(3, 1) -/// 2.0 -/// ``` -/// -/// ```gleam -/// import gleam/list -/// > list.fold([1, 2, 3], 10, subtract) -/// 4 -/// ``` -/// -/// ```gleam -/// > 3 |> subtract(2) -/// 1 -/// ``` -/// -/// ```gleam -/// > 3 |> subtract(2, _) -/// -1 -/// ``` -/// -pub fn subtract(a: Int, b: Int) -> Int { - a - b -} - -/// Calculates the bitwise AND of its arguments. -/// -/// The exact behaviour of this function depends on the target platform. -/// On Erlang it is equivalent to bitwise operations on ints, on JavaScript it -/// is equivalent to bitwise operations on big-ints. -/// -@external(erlang, "erlang", "band") -@external(javascript, "../gleam_stdlib.mjs", "bitwise_and") -pub fn bitwise_and(x: Int, y: Int) -> Int - -/// Calculates the bitwise NOT of its argument. -/// -/// The exact behaviour of this function depends on the target platform. -/// On Erlang it is equivalent to bitwise operations on ints, on JavaScript it -/// is equivalent to bitwise operations on big-ints. -/// -@external(erlang, "erlang", "bnot") -@external(javascript, "../gleam_stdlib.mjs", "bitwise_not") -pub fn bitwise_not(x: Int) -> Int - -/// Calculates the bitwise OR of its arguments. -/// -/// The exact behaviour of this function depends on the target platform. -/// On Erlang it is equivalent to bitwise operations on ints, on JavaScript it -/// is equivalent to bitwise operations on big-ints. -/// -@external(erlang, "erlang", "bor") -@external(javascript, "../gleam_stdlib.mjs", "bitwise_or") -pub fn bitwise_or(x: Int, y: Int) -> Int - -/// Calculates the bitwise XOR of its arguments. -/// -/// The exact behaviour of this function depends on the target platform. -/// On Erlang it is equivalent to bitwise operations on ints, on JavaScript it -/// is equivalent to bitwise operations on big-ints. -/// -@external(erlang, "erlang", "bxor") -@external(javascript, "../gleam_stdlib.mjs", "bitwise_exclusive_or") -pub fn bitwise_exclusive_or(x: Int, y: Int) -> Int - -/// Calculates the result of an arithmetic left bitshift. -/// -/// The exact behaviour of this function depends on the target platform. -/// On Erlang it is equivalent to bitwise operations on ints, on JavaScript it -/// is equivalent to bitwise operations on big-ints. -/// -@external(erlang, "erlang", "bsl") -@external(javascript, "../gleam_stdlib.mjs", "bitwise_shift_left") -pub fn bitwise_shift_left(x: Int, y: Int) -> Int - -/// Calculates the result of an arithmetic right bitshift. -/// -/// The exact behaviour of this function depends on the target platform. -/// On Erlang it is equivalent to bitwise operations on ints, on JavaScript it -/// is equivalent to bitwise operations on big-ints. -/// -@external(erlang, "erlang", "bsr") -@external(javascript, "../gleam_stdlib.mjs", "bitwise_shift_right") -pub fn bitwise_shift_right(x: Int, y: Int) -> Int diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/io.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/io.gleam deleted file mode 100644 index 0c0a3ee..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/io.gleam +++ /dev/null @@ -1,117 +0,0 @@ -import gleam/string - -/// Writes a string to standard output. -/// -/// If you want your output to be printed on its own line see `println`. -/// -/// ## Example -/// -/// ```gleam -/// > io.print("Hi mum") -/// // -> Hi mum -/// Nil -/// ``` -/// -pub fn print(string: String) -> Nil { - do_print(string) -} - -@external(erlang, "gleam_stdlib", "print") -@external(javascript, "../gleam_stdlib.mjs", "print") -fn do_print(string string: String) -> Nil - -/// Writes a string to standard error. -/// -/// If you want your output to be printed on its own line see `println_error`. -/// -/// ## Example -/// -/// ``` -/// > io.print_error("Hi pop") -/// // -> Hi pop -/// Nil -/// ``` -/// -pub fn print_error(string: String) -> Nil { - do_print_error(string) -} - -@external(erlang, "gleam_stdlib", "print_error") -@external(javascript, "../gleam_stdlib.mjs", "print_error") -fn do_print_error(string string: String) -> Nil - -/// Writes a string to standard output, appending a newline to the end. -/// -/// ## Example -/// -/// ```gleam -/// > io.println("Hi mum") -/// // -> Hi mum -/// Nil -/// ``` -/// -pub fn println(string: String) -> Nil { - do_println(string) -} - -@external(erlang, "gleam_stdlib", "println") -@external(javascript, "../gleam_stdlib.mjs", "console_log") -fn do_println(string string: String) -> Nil - -/// Writes a string to standard error, appending a newline to the end. -/// -/// ## Example -/// -/// ```gleam -/// > io.println_error("Hi pop") -/// // -> Hi mum -/// Nil -/// ``` -/// -pub fn println_error(string: String) -> Nil { - do_println_error(string) -} - -@external(erlang, "gleam_stdlib", "println_error") -@external(javascript, "../gleam_stdlib.mjs", "console_error") -fn do_println_error(string string: String) -> Nil - -/// Prints a value to standard error (stderr) yielding Gleam syntax. -/// -/// The value is returned after being printed so it can be used in pipelines. -/// -/// ## Example -/// -/// ```gleam -/// > debug("Hi mum") -/// // -> <<"Hi mum">> -/// "Hi mum" -/// ``` -/// -/// ```gleam -/// > debug(Ok(1)) -/// // -> {ok, 1} -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > import list -/// > [1, 2] -/// > |> list.map(fn(x) { x + 1 }) -/// > |> debug -/// > |> list.map(fn(x) { x * 2 }) -/// // -> [2, 3] -/// [4, 6] -/// ``` -/// -pub fn debug(term: anything) -> anything { - term - |> string.inspect - |> do_debug_println - - term -} - -@external(erlang, "gleam_stdlib", "println_error") -@external(javascript, "../gleam_stdlib.mjs", "print_debug") -fn do_debug_println(string string: String) -> Nil diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/iterator.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/iterator.gleam deleted file mode 100644 index c57e7fd..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/iterator.gleam +++ /dev/null @@ -1,1530 +0,0 @@ -import gleam/result -import gleam/int -import gleam/list -import gleam/dict.{type Dict} -import gleam/option.{type Option, None, Some} -import gleam/order - -// Internal private representation of an Iterator -type Action(element) { - // Dedicated to Electric Six - // https://youtu.be/_30t2dzEgiw?t=162 - Stop - Continue(element, fn() -> Action(element)) -} - -/// An iterator is a lazily evaluated sequence of element. -/// -/// Iterators are useful when working with collections that are too large to -/// fit in memory (or those that are infinite in size) as they only require the -/// elements currently being processed to be in memory. -/// -/// As a lazy data structure no work is done when an iterator is filters, -/// mapped, etc, instead a new iterator is returned with these transformations -/// applied to the stream. Once the stream has all the required transformations -/// applied it can be evaluated using functions such as `fold` and `to_list`. -/// -pub opaque type Iterator(element) { - Iterator(continuation: fn() -> Action(element)) -} - -// Public API for iteration -pub type Step(element, accumulator) { - Next(element: element, accumulator: accumulator) - Done -} - -// Shortcut for an empty iterator. -fn stop() -> Action(element) { - Stop -} - -// Creating Iterators -fn do_unfold( - initial: acc, - f: fn(acc) -> Step(element, acc), -) -> fn() -> Action(element) { - fn() { - case f(initial) { - Next(x, acc) -> Continue(x, do_unfold(acc, f)) - Done -> Stop - } - } -} - -/// Creates an iterator from a given function and accumulator. -/// -/// The function is called on the accumulator and returns either `Done`, -/// indicating the iterator has no more elements, or `Next` which contains a -/// new element and accumulator. The element is yielded by the iterator and the -/// new accumulator is used with the function to compute the next element in -/// the sequence. -/// -/// ## Examples -/// -/// ```gleam -/// > unfold(from: 5, with: fn(n) { -/// > case n { -/// > 0 -> Done -/// > n -> Next(element: n, accumulator: n - 1) -/// > } -/// > }) -/// > |> to_list -/// [5, 4, 3, 2, 1] -/// ``` -/// -pub fn unfold( - from initial: acc, - with f: fn(acc) -> Step(element, acc), -) -> Iterator(element) { - initial - |> do_unfold(f) - |> Iterator -} - -// TODO: test -/// Creates an iterator that yields values created by calling a given function -/// repeatedly. -/// -pub fn repeatedly(f: fn() -> element) -> Iterator(element) { - unfold(Nil, fn(_) { Next(f(), Nil) }) -} - -/// Creates an iterator that returns the same value infinitely. -/// -/// ## Examples -/// -/// ```gleam -/// > repeat(10) -/// > |> take(4) -/// > |> to_list -/// [10, 10, 10, 10] -/// ``` -/// -pub fn repeat(x: element) -> Iterator(element) { - repeatedly(fn() { x }) -} - -/// Creates an iterator that yields each element from the given list. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3, 4]) -/// > |> to_list -/// [1, 2, 3, 4] -/// ``` -/// -pub fn from_list(list: List(element)) -> Iterator(element) { - let yield = fn(acc) { - case acc { - [] -> Done - [head, ..tail] -> Next(head, tail) - } - } - unfold(list, yield) -} - -// Consuming Iterators -fn do_transform( - continuation: fn() -> Action(a), - state: acc, - f: fn(acc, a) -> Step(b, acc), -) -> fn() -> Action(b) { - fn() { - case continuation() { - Stop -> Stop - Continue(el, next) -> - case f(state, el) { - Done -> Stop - Next(yield, next_state) -> - Continue(yield, do_transform(next, next_state, f)) - } - } - } -} - -/// Creates an iterator from an existing iterator -/// and a stateful function that may short-circuit. -/// -/// `f` takes arguments `acc` for current state and `el` for current element from underlying iterator, -/// and returns either `Next` with yielded element and new state value, or `Done` to halt the iterator. -/// -/// ## Examples -/// -/// Approximate implementation of `index` in terms of `transform`: -/// -/// ```gleam -/// > from_list(["a", "b", "c"]) -/// > |> transform(0, fn(i, el) { Next(#(i, el), i + 1) }) -/// > |> to_list -/// [#(0, "a"), #(1, "b"), #(2, "c")] -/// ``` -pub fn transform( - over iterator: Iterator(a), - from initial: acc, - with f: fn(acc, a) -> Step(b, acc), -) -> Iterator(b) { - do_transform(iterator.continuation, initial, f) - |> Iterator -} - -fn do_fold( - continuation: fn() -> Action(e), - f: fn(acc, e) -> acc, - accumulator: acc, -) -> acc { - case continuation() { - Continue(elem, next) -> do_fold(next, f, f(accumulator, elem)) - Stop -> accumulator - } -} - -/// Reduces an iterator of elements into a single value by calling a given -/// function on each element in turn. -/// -/// If called on an iterator of infinite length then this function will never -/// return. -/// -/// If you do not care about the end value and only wish to evaluate the -/// iterator for side effects consider using the `run` function instead. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 3, 4] -/// > |> from_list -/// > |> fold(from: 0, with: fn(acc, element) { element + acc }) -/// 10 -/// ``` -/// -pub fn fold( - over iterator: Iterator(e), - from initial: acc, - with f: fn(acc, e) -> acc, -) -> acc { - iterator.continuation - |> do_fold(f, initial) -} - -// TODO: test -/// Evaluates all elements emitted by the given iterator. This function is useful for when -/// you wish to trigger any side effects that would occur when evaluating -/// the iterator. -/// -pub fn run(iterator: Iterator(e)) -> Nil { - fold(iterator, Nil, fn(_, _) { Nil }) -} - -/// Evaluates an iterator and returns all the elements as a list. -/// -/// If called on an iterator of infinite length then this function will never -/// return. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 3] -/// > |> from_list -/// > |> map(fn(x) { x * 2 }) -/// > |> to_list -/// [2, 4, 6] -/// ``` -/// -pub fn to_list(iterator: Iterator(element)) -> List(element) { - iterator - |> fold([], fn(acc, e) { [e, ..acc] }) - |> list.reverse -} - -/// Eagerly accesses the first value of an iterator, returning a `Next` -/// that contains the first value and the rest of the iterator. -/// -/// If called on an empty iterator, `Done` is returned. -/// -/// ## Examples -/// -/// ```gleam -/// > let assert Next(first, rest) = [1, 2, 3, 4] -/// > |> from_list -/// > |> step -/// > first -/// 1 -/// ``` -/// -/// ```gleam -/// > rest |> to_list -/// [2, 3, 4] -/// ``` -/// -/// ```gleam -/// > empty() |> step -/// Done -/// ``` -/// -pub fn step(iterator: Iterator(e)) -> Step(e, Iterator(e)) { - case iterator.continuation() { - Stop -> Done - Continue(e, a) -> Next(e, Iterator(a)) - } -} - -fn do_take(continuation: fn() -> Action(e), desired: Int) -> fn() -> Action(e) { - fn() { - case desired > 0 { - False -> Stop - True -> - case continuation() { - Stop -> Stop - Continue(e, next) -> Continue(e, do_take(next, desired - 1)) - } - } - } -} - -/// Creates an iterator that only yields the first `desired` elements. -/// -/// If the iterator does not have enough elements all of them are yielded. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 3, 4, 5] -/// > |> from_list -/// > |> take(up_to: 3) -/// > |> to_list -/// [1, 2, 3] -/// ``` -/// -/// ```gleam -/// > [1, 2] -/// > |> from_list -/// > |> take(up_to: 3) -/// > |> to_list -/// [1, 2] -/// ``` -/// -pub fn take(from iterator: Iterator(e), up_to desired: Int) -> Iterator(e) { - iterator.continuation - |> do_take(desired) - |> Iterator -} - -fn do_drop(continuation: fn() -> Action(e), desired: Int) -> Action(e) { - case continuation() { - Stop -> Stop - Continue(e, next) -> - case desired > 0 { - True -> do_drop(next, desired - 1) - False -> Continue(e, next) - } - } -} - -/// Evaluates and discards the first N elements in an iterator, returning a new -/// iterator. -/// -/// If the iterator does not have enough elements an empty iterator is -/// returned. -/// -/// This function does not evaluate the elements of the iterator, the -/// computation is performed when the iterator is later run. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 3, 4, 5] -/// > |> from_list -/// > |> drop(up_to: 3) -/// > |> to_list -/// [4, 5] -/// ``` -/// -/// ```gleam -/// > [1, 2] -/// > |> from_list -/// > |> drop(up_to: 3) -/// > |> to_list -/// [] -/// ``` -/// -pub fn drop(from iterator: Iterator(e), up_to desired: Int) -> Iterator(e) { - fn() { do_drop(iterator.continuation, desired) } - |> Iterator -} - -fn do_map(continuation: fn() -> Action(a), f: fn(a) -> b) -> fn() -> Action(b) { - fn() { - case continuation() { - Stop -> Stop - Continue(e, continuation) -> Continue(f(e), do_map(continuation, f)) - } - } -} - -/// Creates an iterator from an existing iterator and a transformation function. -/// -/// Each element in the new iterator will be the result of calling the given -/// function on the elements in the given iterator. -/// -/// This function does not evaluate the elements of the iterator, the -/// computation is performed when the iterator is later run. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 3] -/// > |> from_list -/// > |> map(fn(x) { x * 2 }) -/// > |> to_list -/// [2, 4, 6] -/// ``` -/// -pub fn map(over iterator: Iterator(a), with f: fn(a) -> b) -> Iterator(b) { - iterator.continuation - |> do_map(f) - |> Iterator -} - -fn do_map2( - continuation1: fn() -> Action(a), - continuation2: fn() -> Action(b), - with fun: fn(a, b) -> c, -) -> fn() -> Action(c) { - fn() { - case continuation1() { - Stop -> Stop - Continue(a, next_a) -> - case continuation2() { - Stop -> Stop - Continue(b, next_b) -> - Continue(fun(a, b), do_map2(next_a, next_b, fun)) - } - } - } -} - -/// Combines two interators into a single one using the given function. -/// -/// If an iterator is longer than the other the extra elements are dropped. -/// -/// This function does not evaluate the elements of the two iterators, the -/// computation is performed when the resulting iterator is later run. -/// -/// ## Examples -/// -/// ```gleam -/// let first = from_list([1, 2, 3]) -/// let second = from_list([4, 5, 6]) -/// map2(first, second, fn(x, y) { x + y }) |> to_list -/// // -> [5, 7, 9] -/// ``` -/// -/// ```gleam -/// let first = from_list([1, 2]) -/// let second = from_list(["a", "b", "c"]) -/// map2(first, second, fn(i, x) { #(i, x) }) |> to_list -/// // -> [#(1, "a"), #(2, "b")] -/// ``` -/// -pub fn map2( - iterator1: Iterator(a), - iterator2: Iterator(b), - with fun: fn(a, b) -> c, -) -> Iterator(c) { - do_map2(iterator1.continuation, iterator2.continuation, fun) - |> Iterator -} - -fn do_append(first: fn() -> Action(a), second: fn() -> Action(a)) -> Action(a) { - case first() { - Continue(e, first) -> Continue(e, fn() { do_append(first, second) }) - Stop -> second() - } -} - -/// Appends two iterators, producing a new iterator. -/// -/// This function does not evaluate the elements of the iterators, the -/// computation is performed when the resulting iterator is later run. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2] -/// > |> from_list -/// > |> append([3, 4] |> from_list) -/// > |> to_list -/// [1, 2, 3, 4] -/// ``` -/// -pub fn append(to first: Iterator(a), suffix second: Iterator(a)) -> Iterator(a) { - fn() { do_append(first.continuation, second.continuation) } - |> Iterator -} - -fn do_flatten(flattened: fn() -> Action(Iterator(a))) -> Action(a) { - case flattened() { - Stop -> Stop - Continue(it, next_iterator) -> - do_append(it.continuation, fn() { do_flatten(next_iterator) }) - } -} - -/// Flattens an iterator of iterators, creating a new iterator. -/// -/// This function does not evaluate the elements of the iterator, the -/// computation is performed when the iterator is later run. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([[1, 2], [3, 4]]) -/// > |> map(from_list) -/// > |> flatten -/// > |> to_list -/// [1, 2, 3, 4] -/// ``` -/// -pub fn flatten(iterator: Iterator(Iterator(a))) -> Iterator(a) { - fn() { do_flatten(iterator.continuation) } - |> Iterator -} - -/// Joins a list of iterators into a single iterator. -/// -/// This function does not evaluate the elements of the iterator, the -/// computation is performed when the iterator is later run. -/// -/// ## Examples -/// -/// ```gleam -/// > [[1, 2], [3, 4]] -/// > |> map(from_list) -/// > |> concat -/// > |> to_list -/// [1, 2, 3, 4] -/// ``` -/// -pub fn concat(iterators: List(Iterator(a))) -> Iterator(a) { - flatten(from_list(iterators)) -} - -/// Creates an iterator from an existing iterator and a transformation function. -/// -/// Each element in the new iterator will be the result of calling the given -/// function on the elements in the given iterator and then flattening the -/// results. -/// -/// This function does not evaluate the elements of the iterator, the -/// computation is performed when the iterator is later run. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2] -/// > |> from_list -/// > |> flat_map(fn(x) { from_list([x, x + 1]) }) -/// > |> to_list -/// [1, 2, 2, 3] -/// ``` -/// -pub fn flat_map( - over iterator: Iterator(a), - with f: fn(a) -> Iterator(b), -) -> Iterator(b) { - iterator - |> map(f) - |> flatten -} - -fn do_filter( - continuation: fn() -> Action(e), - predicate: fn(e) -> Bool, -) -> Action(e) { - case continuation() { - Stop -> Stop - Continue(e, iterator) -> - case predicate(e) { - True -> Continue(e, fn() { do_filter(iterator, predicate) }) - False -> do_filter(iterator, predicate) - } - } -} - -/// Creates an iterator from an existing iterator and a predicate function. -/// -/// The new iterator will contain elements from the first iterator for which -/// the given function returns `True`. -/// -/// This function does not evaluate the elements of the iterator, the -/// computation is performed when the iterator is later run. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/int -/// > [1, 2, 3, 4] -/// > |> from_list -/// > |> filter(int.is_even) -/// > |> to_list -/// [2, 4] -/// ``` -/// -pub fn filter( - iterator: Iterator(a), - keeping predicate: fn(a) -> Bool, -) -> Iterator(a) { - fn() { do_filter(iterator.continuation, predicate) } - |> Iterator -} - -/// Creates an iterator that repeats a given iterator infinitely. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2] -/// > |> from_list -/// > |> cycle -/// > |> take(6) -/// > |> to_list -/// [1, 2, 1, 2, 1, 2] -/// ``` -/// -pub fn cycle(iterator: Iterator(a)) -> Iterator(a) { - repeat(iterator) - |> flatten -} - -/// Creates an iterator of ints, starting at a given start int and stepping by -/// one to a given end int. -/// -/// ## Examples -/// -/// ```gleam -/// > range(from: 1, to: 5) |> to_list -/// [1, 2, 3, 4, 5] -/// ``` -/// -/// ```gleam -/// > range(from: 1, to: -2) |> to_list -/// [1, 0, -1, -2] -/// ``` -/// -/// ```gleam -/// > range(from: 0, to: 0) |> to_list -/// [0] -/// ``` -/// -pub fn range(from start: Int, to stop: Int) -> Iterator(Int) { - case int.compare(start, stop) { - order.Eq -> once(fn() { start }) - order.Gt -> - unfold( - from: start, - with: fn(current) { - case current < stop { - False -> Next(current, current - 1) - True -> Done - } - }, - ) - - order.Lt -> - unfold( - from: start, - with: fn(current) { - case current > stop { - False -> Next(current, current + 1) - True -> Done - } - }, - ) - } -} - -fn do_find(continuation: fn() -> Action(a), f: fn(a) -> Bool) -> Result(a, Nil) { - case continuation() { - Stop -> Error(Nil) - Continue(e, next) -> - case f(e) { - True -> Ok(e) - False -> do_find(next, f) - } - } -} - -/// Finds the first element in a given iterator for which the given function returns -/// `True`. -/// -/// Returns `Error(Nil)` if the function does not return `True` for any of the -/// elements. -/// -/// ## Examples -/// -/// ```gleam -/// > find(from_list([1, 2, 3]), fn(x) { x > 2 }) -/// Ok(3) -/// ``` -/// -/// ```gleam -/// > find(from_list([1, 2, 3]), fn(x) { x > 4 }) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > find(empty(), fn(_) { True }) -/// Error(Nil) -/// ``` -/// -pub fn find( - in haystack: Iterator(a), - one_that is_desired: fn(a) -> Bool, -) -> Result(a, Nil) { - haystack.continuation - |> do_find(is_desired) -} - -fn do_index( - continuation: fn() -> Action(element), - next: Int, -) -> fn() -> Action(#(Int, element)) { - fn() { - case continuation() { - Stop -> Stop - Continue(e, continuation) -> - Continue(#(next, e), do_index(continuation, next + 1)) - } - } -} - -/// Wraps values yielded from an iterator with indices, starting from 0. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list(["a", "b", "c"]) |> index |> to_list -/// [#(0, "a"), #(1, "b"), #(2, "c")] -/// ``` -/// -pub fn index(over iterator: Iterator(element)) -> Iterator(#(Int, element)) { - iterator.continuation - |> do_index(0) - |> Iterator -} - -/// Creates an iterator that inifinitely applies a function to a value. -/// -/// ## Examples -/// -/// ```gleam -/// > iterate(1, fn(n) { n * 3 }) |> take(5) |> to_list -/// [1, 3, 9, 27, 81] -/// ``` -/// -pub fn iterate( - from initial: element, - with f: fn(element) -> element, -) -> Iterator(element) { - unfold(initial, fn(element) { Next(element, f(element)) }) -} - -fn do_take_while( - continuation: fn() -> Action(element), - predicate: fn(element) -> Bool, -) -> fn() -> Action(element) { - fn() { - case continuation() { - Stop -> Stop - Continue(e, next) -> - case predicate(e) { - False -> Stop - True -> Continue(e, do_take_while(next, predicate)) - } - } - } -} - -/// Creates an iterator that yields elements while the predicate returns `True`. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3, 2, 4]) -/// > |> take_while(satisfying: fn(x) { x < 3 }) -/// > |> to_list -/// [1, 2] -/// ``` -/// -pub fn take_while( - in iterator: Iterator(element), - satisfying predicate: fn(element) -> Bool, -) -> Iterator(element) { - iterator.continuation - |> do_take_while(predicate) - |> Iterator -} - -fn do_drop_while( - continuation: fn() -> Action(element), - predicate: fn(element) -> Bool, -) -> Action(element) { - case continuation() { - Stop -> Stop - Continue(e, next) -> - case predicate(e) { - False -> Continue(e, next) - True -> do_drop_while(next, predicate) - } - } -} - -/// Creates an iterator that drops elements while the predicate returns `True`, -/// and then yields the remaining elements. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3, 4, 2, 5]) -/// > |> drop_while(satisfying: fn(x) { x < 4 }) -/// > |> to_list -/// [4, 2, 5] -/// ``` -/// -pub fn drop_while( - in iterator: Iterator(element), - satisfying predicate: fn(element) -> Bool, -) -> Iterator(element) { - fn() { do_drop_while(iterator.continuation, predicate) } - |> Iterator -} - -fn do_scan( - continuation: fn() -> Action(element), - f: fn(acc, element) -> acc, - accumulator: acc, -) -> fn() -> Action(acc) { - fn() { - case continuation() { - Stop -> Stop - Continue(el, next) -> { - let accumulated = f(accumulator, el) - Continue(accumulated, do_scan(next, f, accumulated)) - } - } - } -} - -/// Creates an iterator from an existing iterator and a stateful function. -/// -/// Specifically, this behaves like `fold`, but yields intermediate results. -/// -/// ## Examples -/// -/// ```gleam -/// // Generate a sequence of partial sums -/// > from_list([1, 2, 3, 4, 5]) -/// > |> scan(from: 0, with: fn(acc, el) { acc + el }) -/// > |> to_list -/// [1, 3, 6, 10, 15] -/// ``` -/// -pub fn scan( - over iterator: Iterator(element), - from initial: acc, - with f: fn(acc, element) -> acc, -) -> Iterator(acc) { - iterator.continuation - |> do_scan(f, initial) - |> Iterator -} - -fn do_zip( - left: fn() -> Action(a), - right: fn() -> Action(b), -) -> fn() -> Action(#(a, b)) { - fn() { - case left() { - Stop -> Stop - Continue(el_left, next_left) -> - case right() { - Stop -> Stop - Continue(el_right, next_right) -> - Continue(#(el_left, el_right), do_zip(next_left, next_right)) - } - } - } -} - -/// Zips two iterators together, emitting values from both -/// until the shorter one runs out. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list(["a", "b", "c"]) -/// > |> zip(range(20, 30)) -/// > |> to_list -/// [#("a", 20), #("b", 21), #("c", 22)] -/// ``` -/// -pub fn zip(left: Iterator(a), right: Iterator(b)) -> Iterator(#(a, b)) { - do_zip(left.continuation, right.continuation) - |> Iterator -} - -// Result of collecting a single chunk by key -type Chunk(element, key) { - AnotherBy(List(element), key, element, fn() -> Action(element)) - LastBy(List(element)) -} - -fn next_chunk( - continuation: fn() -> Action(element), - f: fn(element) -> key, - previous_key: key, - current_chunk: List(element), -) -> Chunk(element, key) { - case continuation() { - Stop -> LastBy(list.reverse(current_chunk)) - Continue(e, next) -> { - let key = f(e) - case key == previous_key { - True -> next_chunk(next, f, key, [e, ..current_chunk]) - False -> AnotherBy(list.reverse(current_chunk), key, e, next) - } - } - } -} - -fn do_chunk( - continuation: fn() -> Action(element), - f: fn(element) -> key, - previous_key: key, - previous_element: element, -) -> Action(List(element)) { - case next_chunk(continuation, f, previous_key, [previous_element]) { - LastBy(chunk) -> Continue(chunk, stop) - AnotherBy(chunk, key, el, next) -> - Continue(chunk, fn() { do_chunk(next, f, key, el) }) - } -} - -/// Creates an iterator that emits chunks of elements -/// for which `f` returns the same value. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 2, 3, 4, 4, 6, 7, 7]) -/// > |> chunk(by: fn(n) { n % 2 }) -/// > |> to_list -/// [[1], [2, 2], [3], [4, 4, 6], [7, 7]] -/// ``` -/// -pub fn chunk( - over iterator: Iterator(element), - by f: fn(element) -> key, -) -> Iterator(List(element)) { - fn() { - case iterator.continuation() { - Stop -> Stop - Continue(e, next) -> do_chunk(next, f, f(e), e) - } - } - |> Iterator -} - -// Result of collecting a single sized chunk -type SizedChunk(element) { - Another(List(element), fn() -> Action(element)) - Last(List(element)) - NoMore -} - -fn next_sized_chunk( - continuation: fn() -> Action(element), - left: Int, - current_chunk: List(element), -) -> SizedChunk(element) { - case continuation() { - Stop -> - case current_chunk { - [] -> NoMore - remaining -> Last(list.reverse(remaining)) - } - Continue(e, next) -> { - let chunk = [e, ..current_chunk] - case left > 1 { - False -> Another(list.reverse(chunk), next) - True -> next_sized_chunk(next, left - 1, chunk) - } - } - } -} - -fn do_sized_chunk( - continuation: fn() -> Action(element), - count: Int, -) -> fn() -> Action(List(element)) { - fn() { - case next_sized_chunk(continuation, count, []) { - NoMore -> Stop - Last(chunk) -> Continue(chunk, stop) - Another(chunk, next_element) -> - Continue(chunk, do_sized_chunk(next_element, count)) - } - } -} - -/// Creates an iterator that emits chunks of given size. -/// -/// If the last chunk does not have `count` elements, it is yielded -/// as a partial chunk, with less than `count` elements. -/// -/// For any `count` less than 1 this function behaves as if it was set to 1. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3, 4, 5, 6]) -/// > |> sized_chunk(into: 2) -/// > |> to_list -/// [[1, 2], [3, 4], [5, 6]] -/// ``` -/// -/// ```gleam -/// > from_list([1, 2, 3, 4, 5, 6, 7, 8]) -/// > |> sized_chunk(into: 3) -/// > |> to_list -/// [[1, 2, 3], [4, 5, 6], [7, 8]] -/// ``` -/// -pub fn sized_chunk( - over iterator: Iterator(element), - into count: Int, -) -> Iterator(List(element)) { - iterator.continuation - |> do_sized_chunk(count) - |> Iterator -} - -fn do_intersperse( - continuation: fn() -> Action(element), - separator: element, -) -> Action(element) { - case continuation() { - Stop -> Stop - Continue(e, next) -> { - let next_interspersed = fn() { do_intersperse(next, separator) } - Continue(separator, fn() { Continue(e, next_interspersed) }) - } - } -} - -/// Creates an iterator that yields the given `elem` element -/// between elements emitted by the underlying iterator. -/// -/// ## Examples -/// -/// ```gleam -/// > empty() -/// > |> intersperse(with: 0) -/// > |> to_list -/// [] -/// -/// > from_list([1]) -/// > |> intersperse(with: 0) -/// > |> to_list -/// [1] -/// -/// > from_list([1, 2, 3, 4, 5]) -/// > |> intersperse(with: 0) -/// > |> to_list -/// [1, 0, 2, 0, 3, 0, 4, 0, 5] -/// ``` -/// -pub fn intersperse( - over iterator: Iterator(element), - with elem: element, -) -> Iterator(element) { - fn() { - case iterator.continuation() { - Stop -> Stop - Continue(e, next) -> Continue(e, fn() { do_intersperse(next, elem) }) - } - } - |> Iterator -} - -fn do_any( - continuation: fn() -> Action(element), - predicate: fn(element) -> Bool, -) -> Bool { - case continuation() { - Stop -> False - Continue(e, next) -> - case predicate(e) { - True -> True - False -> do_any(next, predicate) - } - } -} - -/// Returns `True` if any element emitted by the iterator satisfies the given predicate, -/// `False` otherwise. -/// -/// This function short-circuits once it finds a satisfying element. -/// -/// An empty iterator results in `False`. -/// -/// ## Examples -/// -/// ```gleam -/// > empty() |> any(fn(n) { n % 2 == 0 }) -/// False -/// ``` -/// -/// ```gleam -/// > from_list([1, 2, 5, 7, 9]) |> any(fn(n) { n % 2 == 0 }) -/// True -/// ``` -/// -/// ```gleam -/// > from_list([1, 3, 5, 7, 9]) |> any(fn(n) { n % 2 == 0 }) -/// False -/// ``` -/// -pub fn any( - in iterator: Iterator(element), - satisfying predicate: fn(element) -> Bool, -) -> Bool { - iterator.continuation - |> do_any(predicate) -} - -fn do_all( - continuation: fn() -> Action(element), - predicate: fn(element) -> Bool, -) -> Bool { - case continuation() { - Stop -> True - Continue(e, next) -> - case predicate(e) { - True -> do_all(next, predicate) - False -> False - } - } -} - -/// Returns `True` if all elements emitted by the iterator satisfy the given predicate, -/// `False` otherwise. -/// -/// This function short-circuits once it finds a non-satisfying element. -/// -/// An empty iterator results in `True`. -/// -/// ## Examples -/// -/// ```gleam -/// > empty() |> all(fn(n) { n % 2 == 0 }) -/// True -/// ``` -/// -/// ```gleam -/// > from_list([2, 4, 6, 8]) |> all(fn(n) { n % 2 == 0 }) -/// True -/// ``` -/// -/// ```gleam -/// > from_list([2, 4, 5, 8]) |> all(fn(n) { n % 2 == 0 }) -/// False -/// ``` -/// -pub fn all( - in iterator: Iterator(element), - satisfying predicate: fn(element) -> Bool, -) -> Bool { - iterator.continuation - |> do_all(predicate) -} - -fn update_group_with(el: element) -> fn(Option(List(element))) -> List(element) { - fn(maybe_group) { - case maybe_group { - Some(group) -> [el, ..group] - None -> [el] - } - } -} - -fn group_updater( - f: fn(element) -> key, -) -> fn(Dict(key, List(element)), element) -> Dict(key, List(element)) { - fn(groups, elem) { - groups - |> dict.update(f(elem), update_group_with(elem)) - } -} - -/// Returns a `Dict(k, List(element))` of elements from the given iterator -/// grouped with the given key function. -/// -/// The order within each group is preserved from the iterator. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3, 4, 5, 6]) |> group(by: fn(n) { n % 3 }) -/// dict.from_list([#(0, [3, 6]), #(1, [1, 4]), #(2, [2, 5])]) -/// ``` -/// -pub fn group( - in iterator: Iterator(element), - by key: fn(element) -> key, -) -> Dict(key, List(element)) { - iterator - |> fold(dict.new(), group_updater(key)) - |> dict.map_values(fn(_, group) { list.reverse(group) }) -} - -/// This function acts similar to fold, but does not take an initial state. -/// Instead, it starts from the first yielded element -/// and combines it with each subsequent element in turn using the given function. -/// The function is called as `f(accumulator, current_element)`. -/// -/// Returns `Ok` to indicate a successful run, and `Error` if called on an empty iterator. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([]) |> reduce(fn(acc, x) { acc + x }) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > from_list([1, 2, 3, 4, 5]) |> reduce(fn(acc, x) { acc + x }) -/// Ok(15) -/// ``` -/// -pub fn reduce( - over iterator: Iterator(e), - with f: fn(e, e) -> e, -) -> Result(e, Nil) { - case iterator.continuation() { - Stop -> Error(Nil) - Continue(e, next) -> - do_fold(next, f, e) - |> Ok - } -} - -/// Returns the last element in the given iterator. -/// -/// Returns `Error(Nil)` if the iterator is empty. -/// -/// This function runs in linear time. -/// -/// ## Examples -/// -/// ```gleam -/// > empty() |> last -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > range(1, 10) |> last -/// Ok(9) -/// ``` -/// -pub fn last(iterator: Iterator(element)) -> Result(element, Nil) { - iterator - |> reduce(fn(_, elem) { elem }) -} - -/// Creates an iterator that yields no elements. -/// -/// ## Examples -/// -/// ```gleam -/// > empty() |> to_list -/// [] -/// ``` -/// -pub fn empty() -> Iterator(element) { - Iterator(stop) -} - -/// Creates an iterator that yields exactly one element provided by calling the given function. -/// -/// ## Examples -/// -/// ```gleam -/// > once(fn() { 1 }) |> to_list -/// [1] -/// ``` -/// -pub fn once(f: fn() -> element) -> Iterator(element) { - fn() { Continue(f(), stop) } - |> Iterator -} - -/// Creates an iterator that yields the given element exactly once. -/// -/// ## Examples -/// -/// ```gleam -/// > single(1) |> to_list -/// [1] -/// ``` -/// -pub fn single(elem: element) -> Iterator(element) { - once(fn() { elem }) -} - -fn do_interleave( - current: fn() -> Action(element), - next: fn() -> Action(element), -) -> Action(element) { - case current() { - Stop -> next() - Continue(e, next_other) -> - Continue(e, fn() { do_interleave(next, next_other) }) - } -} - -/// Creates an iterator that alternates between the two given iterators -/// until both have run out. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3, 4]) |> interleave(from_list([11, 12, 13, 14])) |> to_list -/// [1, 11, 2, 12, 3, 13, 4, 14] -/// ``` -/// -/// ```gleam -/// > from_list([1, 2, 3, 4]) |> interleave(from_list([100])) |> to_list -/// [1, 100, 2, 3, 4] -/// ``` -/// -pub fn interleave( - left: Iterator(element), - with right: Iterator(element), -) -> Iterator(element) { - fn() { do_interleave(left.continuation, right.continuation) } - |> Iterator -} - -fn do_fold_until( - continuation: fn() -> Action(e), - f: fn(acc, e) -> list.ContinueOrStop(acc), - accumulator: acc, -) -> acc { - case continuation() { - Stop -> accumulator - Continue(elem, next) -> - case f(accumulator, elem) { - list.Continue(accumulator) -> do_fold_until(next, f, accumulator) - list.Stop(accumulator) -> accumulator - } - } -} - -/// Like `fold`, `fold_until` reduces an iterator of elements into a single value by calling a given -/// function on each element in turn, but uses `list.ContinueOrStop` to determine -/// whether or not to keep iterating. -/// -/// If called on an iterator of infinite length then this function will only ever -/// return if the function returns `list.Stop`. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/list -/// > let f = fn(acc, e) { -/// > case e { -/// > _ if e < 4 -> list.Continue(e + acc) -/// > _ -> list.Stop(acc) -/// > } -/// > } -/// > -/// > [1, 2, 3, 4] -/// > |> from_list -/// > |> fold_until(from: acc, with: f) -/// 6 -/// ``` -/// -pub fn fold_until( - over iterator: Iterator(e), - from initial: acc, - with f: fn(acc, e) -> list.ContinueOrStop(acc), -) -> acc { - iterator.continuation - |> do_fold_until(f, initial) -} - -fn do_try_fold( - over continuation: fn() -> Action(a), - with f: fn(acc, a) -> Result(acc, err), - from accumulator: acc, -) -> Result(acc, err) { - case continuation() { - Stop -> Ok(accumulator) - Continue(elem, next) -> { - use accumulator <- result.try(f(accumulator, elem)) - do_try_fold(next, f, accumulator) - } - } -} - -/// A variant of fold that might fail. -/// -/// The folding function should return `Result(accumulator, error)`. -/// If the returned value is `Ok(accumulator)` try_fold will try the next value in the iterator. -/// If the returned value is `Error(error)` try_fold will stop and return that error. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 3, 4] -/// > |> iterator.from_list() -/// > |> try_fold(0, fn(acc, i) { -/// > case i < 3 { -/// > True -> Ok(acc + i) -/// > False -> Error(Nil) -/// > } -/// > }) -/// Error(Nil) -/// ``` -/// -pub fn try_fold( - over iterator: Iterator(e), - from initial: acc, - with f: fn(acc, e) -> Result(acc, err), -) -> Result(acc, err) { - iterator.continuation - |> do_try_fold(f, initial) -} - -/// Returns the first element yielded by the given iterator, if it exists, -/// or `Error(Nil)` otherwise. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3]) |> first -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > empty() |> first -/// Error(Nil) -/// ``` -pub fn first(from iterator: Iterator(e)) -> Result(e, Nil) { - case iterator.continuation() { - Stop -> Error(Nil) - Continue(e, _) -> Ok(e) - } -} - -/// Returns nth element yielded by the given iterator, where `0` means the first element. -/// -/// If there are not enough elements in the iterator, `Error(Nil)` is returned. -/// -/// For any `index` less than `0` this function behaves as if it was set to `0`. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3, 4]) |> at(2) -/// Ok(3) -/// ``` -/// -/// ```gleam -/// > from_list([1, 2, 3, 4]) |> at(4) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > empty() |> at(0) -/// Error(Nil) -/// ``` -/// -pub fn at(in iterator: Iterator(e), get index: Int) -> Result(e, Nil) { - iterator - |> drop(index) - |> first -} - -fn do_length(over continuation: fn() -> Action(e), with length: Int) -> Int { - case continuation() { - Stop -> length - Continue(_, next) -> do_length(next, length + 1) - } -} - -/// Counts the number of elements in the given iterator. -/// -/// This function has to traverse the entire iterator to count its elements, -/// so it runs in linear time. -/// -/// ## Examples -/// -/// ```gleam -/// > empty() |> length -/// 0 -/// ``` -/// -/// ```gleam -/// > from_list([1, 2, 3, 4]) |> length -/// 4 -/// ``` -/// -pub fn length(over iterator: Iterator(e)) -> Int { - iterator.continuation - |> do_length(0) -} - -/// Traverse an iterator, calling a function on each element. -/// -/// ## Examples -/// -/// ```gleam -/// > empty() |> each(io.println) -/// Nil -/// ``` -/// -/// ```gleam -/// > from_list(["Tom", "Malory", "Louis"]) |> each(io.println) -/// // -> Tom -/// // -> Malory -/// // -> Louis -/// Nil -/// ``` -/// -pub fn each(over iterator: Iterator(a), with f: fn(a) -> b) -> Nil { - iterator - |> map(f) - |> run -} - -/// Add a new element to the start of an iterator. -/// -/// This function is for use with `use` expressions, to replicate the behaviour -/// of the `yield` keyword found in other languages. -/// -/// ## Examples -/// -/// ```gleam -/// > use <- iterator.yield(1) -/// > use <- iterator.yield(2) -/// > use <- iterator.yield(3) -/// > iterator.empty() -/// iterator.from_list([1, 2, 3]) -/// ``` -/// -pub fn yield(element: a, next: fn() -> Iterator(a)) -> Iterator(a) { - Iterator(fn() { Continue(element, next().continuation) }) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/list.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/list.gleam deleted file mode 100644 index a5cffa9..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/list.gleam +++ /dev/null @@ -1,2154 +0,0 @@ -//// Lists are an ordered sequence of elements and are one of the most common -//// data types in Gleam. -//// -//// New elements can be added and removed from the front of a list in -//// constant time, while adding and removing from the end requires traversing -//// the copying the whole list, so keep this in mind when designing your -//// programs. -//// -//// There is a dedicated syntax for prefixing to a list: -//// -//// ```gleam -//// let new_list = [1, 2, ..existing_list] -//// ``` -//// -//// And a matching syntax for getting the first elements of a list: -//// -//// ```gleam -//// case list { -//// [first_element, ..rest] -> first_element -//// _ -> "this pattern matches when the list is empty" -//// } -//// ``` -//// - -import gleam/int -import gleam/float -import gleam/order.{type Order} -import gleam/pair -import gleam/dict.{type Dict} - -/// An error value returned by the `strict_zip` function. -/// -pub type LengthMismatch { - LengthMismatch -} - -/// Counts the number of elements in a given list. -/// -/// This function has to traverse the list to determine the number of elements, -/// so it runs in linear time. -/// -/// This function is natively implemented by the virtual machine and is highly -/// optimised. -/// -/// ## Examples -/// -/// ```gleam -/// > length([]) -/// 0 -/// ``` -/// -/// ```gleam -/// > length([1]) -/// 1 -/// ``` -/// -/// ```gleam -/// > length([1, 2]) -/// 2 -/// ``` -/// -pub fn length(of list: List(a)) -> Int { - do_length(list) -} - -@target(erlang) -@external(erlang, "erlang", "length") -fn do_length(a: List(a)) -> Int - -@target(javascript) -fn do_length(list: List(a)) -> Int { - do_length_acc(list, 0) -} - -@target(javascript) -fn do_length_acc(list: List(a), count: Int) -> Int { - case list { - [_, ..list] -> do_length_acc(list, count + 1) - _ -> count - } -} - -/// Creates a new list from a given list containing the same elements but in the -/// opposite order. -/// -/// This function has to traverse the list to create the new reversed list, so -/// it runs in linear time. -/// -/// This function is natively implemented by the virtual machine and is highly -/// optimised. -/// -/// ## Examples -/// -/// ```gleam -/// > reverse([]) -/// [] -/// ``` -/// -/// ```gleam -/// > reverse([1]) -/// [1] -/// ``` -/// -/// ```gleam -/// > reverse([1, 2]) -/// [2, 1] -/// ``` -/// -pub fn reverse(xs: List(a)) -> List(a) { - do_reverse(xs) -} - -@target(erlang) -@external(erlang, "lists", "reverse") -fn do_reverse(a: List(a)) -> List(a) - -@target(javascript) -fn do_reverse(list) { - do_reverse_acc(list, []) -} - -@target(javascript) -fn do_reverse_acc(remaining, accumulator) { - case remaining { - [] -> accumulator - [item, ..rest] -> do_reverse_acc(rest, [item, ..accumulator]) - } -} - -/// Determines whether or not the list is empty. -/// -/// This function runs in constant time. -/// -/// ## Examples -/// -/// ```gleam -/// > is_empty([]) -/// True -/// ``` -/// -/// ```gleam -/// > is_empty([1]) -/// False -/// ``` -/// -/// ```gleam -/// > is_empty([1, 1]) -/// False -/// ``` -/// -pub fn is_empty(list: List(a)) -> Bool { - list == [] -} - -/// Determines whether or not a given element exists within a given list. -/// -/// This function traverses the list to find the element, so it runs in linear -/// time. -/// -/// ## Examples -/// -/// ```gleam -/// > [] |> contains(any: 0) -/// False -/// ``` -/// -/// ```gleam -/// > [0] |> contains(any: 0) -/// True -/// ``` -/// -/// ```gleam -/// > [1] |> contains(any: 0) -/// False -/// ``` -/// -/// ```gleam -/// > [1, 1] |> contains(any: 0) -/// False -/// ``` -/// -/// ```gleam -/// > [1, 0] |> contains(any: 0) -/// True -/// ``` -/// -pub fn contains(list: List(a), any elem: a) -> Bool { - case list { - [] -> False - [first, ..] if first == elem -> True - [_, ..rest] -> contains(rest, elem) - } -} - -/// Gets the first element from the start of the list, if there is one. -/// -/// ## Examples -/// -/// ```gleam -/// > first([]) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > first([0]) -/// Ok(0) -/// ``` -/// -/// ```gleam -/// > first([1, 2]) -/// Ok(1) -/// ``` -/// -pub fn first(list: List(a)) -> Result(a, Nil) { - case list { - [] -> Error(Nil) - [x, ..] -> Ok(x) - } -} - -/// Returns the list minus the first element. If the list is empty, `Error(Nil)` is -/// returned. -/// -/// This function runs in constant time and does not make a copy of the list. -/// -/// ## Examples -/// -/// ```gleam -/// > rest([]) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > rest([0]) -/// Ok([]) -/// ``` -/// -/// ```gleam -/// > rest([1, 2]) -/// Ok([2]) -/// ``` -/// -pub fn rest(list: List(a)) -> Result(List(a), Nil) { - case list { - [] -> Error(Nil) - [_, ..xs] -> Ok(xs) - } -} - -fn update_group( - f: fn(element) -> key, -) -> fn(Dict(key, List(element)), element) -> Dict(key, List(element)) { - fn(groups, elem) { - case dict.get(groups, f(elem)) { - Ok(existing) -> dict.insert(groups, f(elem), [elem, ..existing]) - Error(_) -> dict.insert(groups, f(elem), [elem]) - } - } -} - -/// Takes a list and groups the values by a key -/// which is built from a key function. -/// -/// Does not preserve the initial value order. -/// -/// ## Examples -/// -/// ```gleam -/// > [Ok(3), Error("Wrong"), Ok(200), Ok(73)] -/// |> group(by: fn(i) { -/// case i { -/// Ok(_) -> "Successful" -/// Error(_) -> "Failed" -/// } -/// }) -/// |> dict.to_list -/// -/// [ -/// #("Failed", [Error("Wrong")]), -/// #("Successful", [Ok(73), Ok(200), Ok(3)]) -/// ] -/// -/// > group([1,2,3,4,5], by: fn(i) { i - i / 3 * 3 }) -/// |> dict.to_list -/// [#(0, [3]), #(1, [4, 1]), #(2, [5, 2])] -/// ``` -/// -pub fn group(list: List(v), by key: fn(v) -> k) -> Dict(k, List(v)) { - fold(list, dict.new(), update_group(key)) -} - -fn do_filter(list: List(a), fun: fn(a) -> Bool, acc: List(a)) -> List(a) { - case list { - [] -> reverse(acc) - [x, ..xs] -> { - let new_acc = case fun(x) { - True -> [x, ..acc] - False -> acc - } - do_filter(xs, fun, new_acc) - } - } -} - -/// Returns a new list containing only the elements from the first list for -/// which the given functions returns `True`. -/// -/// ## Examples -/// -/// ```gleam -/// > filter([2, 4, 6, 1], fn(x) { x > 2 }) -/// [4, 6] -/// ``` -/// -/// ```gleam -/// > filter([2, 4, 6, 1], fn(x) { x > 6 }) -/// [] -/// ``` -/// -pub fn filter(list: List(a), keeping predicate: fn(a) -> Bool) -> List(a) { - do_filter(list, predicate, []) -} - -fn do_filter_map( - list: List(a), - fun: fn(a) -> Result(b, e), - acc: List(b), -) -> List(b) { - case list { - [] -> reverse(acc) - [x, ..xs] -> { - let new_acc = case fun(x) { - Ok(x) -> [x, ..acc] - Error(_) -> acc - } - do_filter_map(xs, fun, new_acc) - } - } -} - -/// Returns a new list containing only the elements from the first list for -/// which the given functions returns `Ok(_)`. -/// -/// ## Examples -/// -/// ```gleam -/// > filter_map([2, 4, 6, 1], Error) -/// [] -/// ``` -/// -/// ```gleam -/// > filter_map([2, 4, 6, 1], fn(x) { Ok(x + 1) }) -/// [3, 5, 7, 2] -/// ``` -/// -pub fn filter_map(list: List(a), with fun: fn(a) -> Result(b, e)) -> List(b) { - do_filter_map(list, fun, []) -} - -fn do_map(list: List(a), fun: fn(a) -> b, acc: List(b)) -> List(b) { - case list { - [] -> reverse(acc) - [x, ..xs] -> do_map(xs, fun, [fun(x), ..acc]) - } -} - -/// Returns a new list containing only the elements of the first list after the -/// function has been applied to each one. -/// -/// ## Examples -/// -/// ```gleam -/// > map([2, 4, 6], fn(x) { x * 2 }) -/// [4, 8, 12] -/// ``` -/// -pub fn map(list: List(a), with fun: fn(a) -> b) -> List(b) { - do_map(list, fun, []) -} - -/// Combines two lists into a single list using the given function. -/// -/// If a list is longer than the other the extra elements are dropped. -/// -/// ## Examples -/// -/// ```gleam -/// > map2([1, 2, 3], [4, 5, 6], fn(x, y) { x + y }) -/// [5, 7, 9] -/// ``` -/// -/// ```gleam -/// > map2([1, 2], ["a", "b", "c"], fn(i, x) { #(i, x) }) -/// [#(1, "a"), #(2, "b")] -/// ``` -/// -pub fn map2(list1: List(a), list2: List(b), with fun: fn(a, b) -> c) -> List(c) { - do_map2(list1, list2, fun, []) -} - -fn do_map2( - list1: List(a), - list2: List(b), - fun: fn(a, b) -> c, - acc: List(c), -) -> List(c) { - case list1, list2 { - [], _ | _, [] -> reverse(acc) - [a, ..as_], [b, ..bs] -> do_map2(as_, bs, fun, [fun(a, b), ..acc]) - } -} - -/// Similar to `map` but also lets you pass around an accumulated value. -/// -/// ## Examples -/// -/// ```gleam -/// > map_fold( -/// over: [1, 2, 3], -/// from: 100, -/// with: fn(memo, i) { #(memo + i, i * 2) } -/// ) -/// #(106, [2, 4, 6]) -/// ``` -/// -pub fn map_fold( - over list: List(a), - from acc: acc, - with fun: fn(acc, a) -> #(acc, b), -) -> #(acc, List(b)) { - fold( - over: list, - from: #(acc, []), - with: fn(acc, item) { - let #(current_acc, items) = acc - let #(next_acc, next_item) = fun(current_acc, item) - #(next_acc, [next_item, ..items]) - }, - ) - |> pair.map_second(reverse) -} - -fn do_index_map( - list: List(a), - fun: fn(Int, a) -> b, - index: Int, - acc: List(b), -) -> List(b) { - case list { - [] -> reverse(acc) - [x, ..xs] -> { - let acc = [fun(index, x), ..acc] - do_index_map(xs, fun, index + 1, acc) - } - } -} - -/// Returns a new list containing only the elements of the first list after the -/// function has been applied to each one and their index. -/// -/// The index starts at 0, so the first element is 0, the second is 1, and so -/// on. -/// -/// ## Examples -/// -/// ```gleam -/// > index_map(["a", "b"], fn(i, x) { #(i, x) }) -/// [#(0, "a"), #(1, "b")] -/// ``` -/// -pub fn index_map(list: List(a), with fun: fn(Int, a) -> b) -> List(b) { - do_index_map(list, fun, 0, []) -} - -fn do_try_map( - list: List(a), - fun: fn(a) -> Result(b, e), - acc: List(b), -) -> Result(List(b), e) { - case list { - [] -> Ok(reverse(acc)) - [x, ..xs] -> - case fun(x) { - Ok(y) -> do_try_map(xs, fun, [y, ..acc]) - Error(error) -> Error(error) - } - } -} - -/// Takes a function that returns a `Result` and applies it to each element in a -/// given list in turn. -/// -/// If the function returns `Ok(new_value)` for all elements in the list then a -/// list of the new values is returned. -/// -/// If the function returns `Error(reason)` for any of the elements then it is -/// returned immediately. None of the elements in the list are processed after -/// one returns an `Error`. -/// -/// ## Examples -/// -/// ```gleam -/// > try_map([1, 2, 3], fn(x) { Ok(x + 2) }) -/// Ok([3, 4, 5]) -/// ``` -/// -/// ```gleam -/// > try_map([1, 2, 3], fn(_) { Error(0) }) -/// Error(0) -/// ``` -/// -/// ```gleam -/// > try_map([[1], [2, 3]], first) -/// Ok([1, 2]) -/// ``` -/// -/// ```gleam -/// > try_map([[1], [], [2]], first) -/// Error(Nil) -/// ``` -/// -pub fn try_map( - over list: List(a), - with fun: fn(a) -> Result(b, e), -) -> Result(List(b), e) { - do_try_map(list, fun, []) -} - -/// Returns a list that is the given list with up to the given number of -/// elements removed from the front of the list. -/// -/// If the element has less than the number of elements an empty list is -/// returned. -/// -/// This function runs in linear time but does not copy the list. -/// -/// ## Examples -/// -/// ```gleam -/// > drop([1, 2, 3, 4], 2) -/// [3, 4] -/// ``` -/// -/// ```gleam -/// > drop([1, 2, 3, 4], 9) -/// [] -/// ``` -/// -pub fn drop(from list: List(a), up_to n: Int) -> List(a) { - case n <= 0 { - True -> list - False -> - case list { - [] -> [] - [_, ..xs] -> drop(xs, n - 1) - } - } -} - -fn do_take(list: List(a), n: Int, acc: List(a)) -> List(a) { - case n <= 0 { - True -> reverse(acc) - False -> - case list { - [] -> reverse(acc) - [x, ..xs] -> do_take(xs, n - 1, [x, ..acc]) - } - } -} - -/// Returns a list containing the first given number of elements from the given -/// list. -/// -/// If the element has less than the number of elements then the full list is -/// returned. -/// -/// This function runs in linear time but does not copy the list. -/// -/// ## Examples -/// -/// ```gleam -/// > take([1, 2, 3, 4], 2) -/// [1, 2] -/// ``` -/// -/// ```gleam -/// > take([1, 2, 3, 4], 9) -/// [1, 2, 3, 4] -/// ``` -/// -pub fn take(from list: List(a), up_to n: Int) -> List(a) { - do_take(list, n, []) -} - -/// Returns a new empty list. -/// -/// ## Examples -/// -/// ```gleam -/// > new() -/// [] -/// ``` -/// -pub fn new() -> List(a) { - [] -} - -/// Joins one list onto the end of another. -/// -/// This function runs in linear time, and it traverses and copies the first -/// list. -/// -/// ## Examples -/// -/// ```gleam -/// > append([1, 2], [3]) -/// [1, 2, 3] -/// ``` -/// -pub fn append(first: List(a), second: List(a)) -> List(a) { - do_append(first, second) -} - -@target(erlang) -@external(erlang, "lists", "append") -fn do_append(a: List(a), b: List(a)) -> List(a) - -@target(javascript) -fn do_append(first: List(a), second: List(a)) -> List(a) { - do_append_acc(reverse(first), second) -} - -@target(javascript) -fn do_append_acc(first: List(a), second: List(a)) -> List(a) { - case first { - [] -> second - [item, ..rest] -> do_append_acc(rest, [item, ..second]) - } -} - -/// Prefixes an item to a list. This can also be done using the dedicated -/// syntax instead -/// -/// ```gleam -/// let new_list = [1, ..existing_list] -/// ``` -/// -pub fn prepend(to list: List(a), this item: a) -> List(a) { - [item, ..list] -} - -// Reverses a list and prepends it to another list -fn reverse_and_prepend(list prefix: List(a), to suffix: List(a)) -> List(a) { - case prefix { - [] -> suffix - [first, ..rest] -> reverse_and_prepend(list: rest, to: [first, ..suffix]) - } -} - -fn do_concat(lists: List(List(a)), acc: List(a)) -> List(a) { - case lists { - [] -> reverse(acc) - [list, ..further_lists] -> - do_concat(further_lists, reverse_and_prepend(list: list, to: acc)) - } -} - -/// Joins a list of lists into a single list. -/// -/// This function traverses all elements twice. -/// -/// ## Examples -/// -/// ```gleam -/// > concat([[1], [2, 3], []]) -/// [1, 2, 3] -/// ``` -/// -pub fn concat(lists: List(List(a))) -> List(a) { - do_concat(lists, []) -} - -/// This is the same as `concat`: it joins a list of lists into a single -/// list. -/// -/// This function traverses all elements twice. -/// -/// ## Examples -/// -/// ```gleam -/// > flatten([[1], [2, 3], []]) -/// [1, 2, 3] -/// ``` -/// -pub fn flatten(lists: List(List(a))) -> List(a) { - do_concat(lists, []) -} - -/// Maps the list with the given function into a list of lists, and then flattens it. -/// -/// ## Examples -/// -/// ```gleam -/// > flat_map([2, 4, 6], fn(x) { [x, x + 1] }) -/// [2, 3, 4, 5, 6, 7] -/// ``` -/// -pub fn flat_map(over list: List(a), with fun: fn(a) -> List(b)) -> List(b) { - map(list, fun) - |> concat -} - -/// Reduces a list of elements into a single value by calling a given function -/// on each element, going from left to right. -/// -/// `fold([1, 2, 3], 0, add)` is the equivalent of -/// `add(add(add(0, 1), 2), 3)`. -/// -/// This function runs in linear time. -/// -pub fn fold( - over list: List(a), - from initial: acc, - with fun: fn(acc, a) -> acc, -) -> acc { - case list { - [] -> initial - [x, ..rest] -> fold(rest, fun(initial, x), fun) - } -} - -/// Reduces a list of elements into a single value by calling a given function -/// on each element, going from right to left. -/// -/// `fold_right([1, 2, 3], 0, add)` is the equivalent of -/// `add(add(add(0, 3), 2), 1)`. -/// -/// This function runs in linear time. -/// -/// Unlike `fold` this function is not tail recursive. Where possible use -/// `fold` instead as it will use less memory. -/// -pub fn fold_right( - over list: List(a), - from initial: acc, - with fun: fn(acc, a) -> acc, -) -> acc { - case list { - [] -> initial - [x, ..rest] -> fun(fold_right(rest, initial, fun), x) - } -} - -fn do_index_fold( - over: List(a), - acc: acc, - with: fn(acc, a, Int) -> acc, - index: Int, -) -> acc { - case over { - [] -> acc - [first, ..rest] -> - do_index_fold(rest, with(acc, first, index), with, index + 1) - } -} - -/// Like fold but the folding function also receives the index of the current element. -/// -/// ## Examples -/// -/// ```gleam -/// ["a", "b", "c"] -/// |> index_fold([], fn(acc, item, index) { ... }) -/// ``` -/// -pub fn index_fold( - over over: List(a), - from initial: acc, - with fun: fn(acc, a, Int) -> acc, -) -> acc { - do_index_fold(over, initial, fun, 0) -} - -/// A variant of fold that might fail. -/// -/// The folding function should return `Result(accumulator, error)`. -/// If the returned value is `Ok(accumulator)` try_fold will try the next value in the list. -/// If the returned value is `Error(error)` try_fold will stop and return that error. -/// -/// ## Examples -/// -/// ```gleam -/// [1, 2, 3, 4] -/// |> try_fold(0, fn(acc, i) { -/// case i < 3 { -/// True -> Ok(acc + i) -/// False -> Error(Nil) -/// } -/// }) -/// ``` -/// -pub fn try_fold( - over collection: List(a), - from accumulator: acc, - with fun: fn(acc, a) -> Result(acc, e), -) -> Result(acc, e) { - case collection { - [] -> Ok(accumulator) - [first, ..rest] -> - case fun(accumulator, first) { - Ok(result) -> try_fold(rest, result, fun) - Error(_) as error -> error - } - } -} - -pub type ContinueOrStop(a) { - Continue(a) - Stop(a) -} - -/// A variant of fold that allows to stop folding earlier. -/// -/// The folding function should return `ContinueOrStop(accumulator)`. -/// If the returned value is `Continue(accumulator)` fold_until will try the next value in the list. -/// If the returned value is `Stop(accumulator)` fold_until will stop and return that accumulator. -/// -/// ## Examples -/// -/// ```gleam -/// [1, 2, 3, 4] -/// |> fold_until(0, fn(acc, i) { -/// case i < 3 { -/// True -> Continue(acc + i) -/// False -> Stop(acc) -/// } -/// }) -/// ``` -/// -pub fn fold_until( - over collection: List(a), - from accumulator: acc, - with fun: fn(acc, a) -> ContinueOrStop(acc), -) -> acc { - case collection { - [] -> accumulator - [first, ..rest] -> - case fun(accumulator, first) { - Continue(next_accumulator) -> fold_until(rest, next_accumulator, fun) - Stop(b) -> b - } - } -} - -/// Finds the first element in a given list for which the given function returns -/// `True`. -/// -/// Returns `Error(Nil)` if no such element is found. -/// -/// ## Examples -/// -/// ```gleam -/// > find([1, 2, 3], fn(x) { x > 2 }) -/// Ok(3) -/// ``` -/// -/// ```gleam -/// > find([1, 2, 3], fn(x) { x > 4 }) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > find([], fn(_) { True }) -/// Error(Nil) -/// ``` -/// -pub fn find( - in haystack: List(a), - one_that is_desired: fn(a) -> Bool, -) -> Result(a, Nil) { - case haystack { - [] -> Error(Nil) - [x, ..rest] -> - case is_desired(x) { - True -> Ok(x) - _ -> find(in: rest, one_that: is_desired) - } - } -} - -/// Finds the first element in a given list for which the given function returns -/// `Ok(new_value)`, then returns the wrapped `new_value`. -/// -/// Returns `Error(Nil)` if no such element is found. -/// -/// ## Examples -/// -/// ```gleam -/// > find_map([[], [2], [3]], first) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > find_map([[], []], first) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > find_map([], first) -/// Error(Nil) -/// ``` -/// -pub fn find_map( - in haystack: List(a), - with fun: fn(a) -> Result(b, c), -) -> Result(b, Nil) { - case haystack { - [] -> Error(Nil) - [x, ..rest] -> - case fun(x) { - Ok(x) -> Ok(x) - _ -> find_map(in: rest, with: fun) - } - } -} - -/// Returns `True` if the given function returns `True` for all the elements in -/// the given list. If the function returns `False` for any of the elements it -/// immediately returns `False` without checking the rest of the list. -/// -/// ## Examples -/// -/// ```gleam -/// > all([], fn(x) { x > 3 }) -/// True -/// ``` -/// -/// ```gleam -/// > all([4, 5], fn(x) { x > 3 }) -/// True -/// ``` -/// -/// ```gleam -/// > all([4, 3], fn(x) { x > 3 }) -/// False -/// ``` -/// -pub fn all(in list: List(a), satisfying predicate: fn(a) -> Bool) -> Bool { - case list { - [] -> True - [first, ..rest] -> - case predicate(first) { - True -> all(rest, predicate) - False -> False - } - } -} - -/// Returns `True` if the given function returns `True` for any the elements in -/// the given list. If the function returns `True` for any of the elements it -/// immediately returns `True` without checking the rest of the list. -/// -/// ## Examples -/// -/// ```gleam -/// > any([], fn(x) { x > 3 }) -/// False -/// ``` -/// -/// ```gleam -/// > any([4, 5], fn(x) { x > 3 }) -/// True -/// ``` -/// -/// ```gleam -/// > any([4, 3], fn(x) { x > 4 }) -/// False -/// ``` -/// -/// ```gleam -/// > any([3, 4], fn(x) { x > 3 }) -/// True -/// ``` -/// -pub fn any(in list: List(a), satisfying predicate: fn(a) -> Bool) -> Bool { - case list { - [] -> False - [first, ..rest] -> - case predicate(first) { - True -> True - False -> any(rest, predicate) - } - } -} - -fn do_zip(xs: List(a), ys: List(b), acc: List(#(a, b))) -> List(#(a, b)) { - case xs, ys { - [x, ..xs], [y, ..ys] -> do_zip(xs, ys, [#(x, y), ..acc]) - _, _ -> reverse(acc) - } -} - -/// Takes two lists and returns a single list of 2-element tuples. -/// -/// If one of the lists is longer than the other, the remaining elements from -/// the longer list are not used. -/// -/// ## Examples -/// -/// ```gleam -/// > zip([], []) -/// [] -/// ``` -/// -/// ```gleam -/// > zip([1, 2], [3]) -/// [#(1, 3)] -/// ``` -/// -/// ```gleam -/// > zip([1], [3, 4]) -/// [#(1, 3)] -/// ``` -/// -/// ```gleam -/// > zip([1, 2], [3, 4]) -/// [#(1, 3), #(2, 4)] -/// ``` -/// -pub fn zip(list: List(a), with other: List(b)) -> List(#(a, b)) { - do_zip(list, other, []) -} - -/// Takes two lists and returns a single list of 2-element tuples. -/// -/// If one of the lists is longer than the other, an `Error` is returned. -/// -/// ## Examples -/// -/// ```gleam -/// > strict_zip([], []) -/// Ok([]) -/// ``` -/// -/// ```gleam -/// > strict_zip([1, 2], [3]) -/// Error(LengthMismatch) -/// ``` -/// -/// ```gleam -/// > strict_zip([1], [3, 4]) -/// Error(LengthMismatch) -/// ``` -/// -/// ```gleam -/// > strict_zip([1, 2], [3, 4]) -/// Ok([#(1, 3), #(2, 4)]) -/// ``` -/// -pub fn strict_zip( - list: List(a), - with other: List(b), -) -> Result(List(#(a, b)), LengthMismatch) { - case length(of: list) == length(of: other) { - True -> Ok(zip(list, other)) - False -> Error(LengthMismatch) - } -} - -fn do_unzip(input, xs, ys) { - case input { - [] -> #(reverse(xs), reverse(ys)) - [#(x, y), ..rest] -> do_unzip(rest, [x, ..xs], [y, ..ys]) - } -} - -/// Takes a single list of 2-element tuples and returns two lists. -/// -/// ## Examples -/// -/// ```gleam -/// > unzip([#(1, 2), #(3, 4)]) -/// #([1, 3], [2, 4]) -/// ``` -/// -/// ```gleam -/// > unzip([]) -/// #([], []) -/// ``` -/// -pub fn unzip(input: List(#(a, b))) -> #(List(a), List(b)) { - do_unzip(input, [], []) -} - -fn do_intersperse(list: List(a), separator: a, acc: List(a)) -> List(a) { - case list { - [] -> reverse(acc) - [x, ..rest] -> do_intersperse(rest, separator, [x, separator, ..acc]) - } -} - -/// Inserts a given value between each existing element in a given list. -/// -/// This function runs in linear time and copies the list. -/// -/// ## Examples -/// -/// ```gleam -/// > intersperse([1, 1, 1], 2) -/// [1, 2, 1, 2, 1] -/// ``` -/// -/// ```gleam -/// > intersperse([], 2) -/// [] -/// ``` -/// -pub fn intersperse(list: List(a), with elem: a) -> List(a) { - case list { - [] | [_] -> list - [x, ..rest] -> do_intersperse(rest, elem, [x]) - } -} - -/// Returns the element in the Nth position in the list, with 0 being the first -/// position. -/// -/// `Error(Nil)` is returned if the list is not long enough for the given index -/// or if the index is less than 0. -/// -/// ## Examples -/// -/// ```gleam -/// > at([1, 2, 3], 1) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > at([1, 2, 3], 5) -/// Error(Nil) -/// ``` -/// -pub fn at(in list: List(a), get index: Int) -> Result(a, Nil) { - case index >= 0 { - True -> - list - |> drop(index) - |> first - False -> Error(Nil) - } -} - -/// Removes any duplicate elements from a given list. -/// -/// This function returns in loglinear time. -/// -/// ## Examples -/// -/// ```gleam -/// > unique([1, 1, 1, 4, 7, 3, 3, 4]) -/// [1, 4, 7, 3] -/// ``` -/// -pub fn unique(list: List(a)) -> List(a) { - case list { - [] -> [] - [x, ..rest] -> [x, ..unique(filter(rest, fn(y) { y != x }))] - } -} - -/// Merge lists `a` and `b` in ascending order -/// but only up to `na` and `nb` number of items respectively. -/// -fn merge_up( - na: Int, - nb: Int, - a: List(a), - b: List(a), - acc: List(a), - compare: fn(a, a) -> Order, -) { - case na, nb, a, b { - 0, 0, _, _ -> acc - _, 0, [ax, ..ar], _ -> merge_up(na - 1, nb, ar, b, [ax, ..acc], compare) - 0, _, _, [bx, ..br] -> merge_up(na, nb - 1, a, br, [bx, ..acc], compare) - _, _, [ax, ..ar], [bx, ..br] -> - case compare(ax, bx) { - order.Gt -> merge_up(na, nb - 1, a, br, [bx, ..acc], compare) - _ -> merge_up(na - 1, nb, ar, b, [ax, ..acc], compare) - } - _, _, _, _ -> acc - } -} - -/// Merge lists `a` and `b` in descending order -/// but only up to `na` and `nb` number of items respectively. -/// -fn merge_down( - na: Int, - nb: Int, - a: List(a), - b: List(a), - acc: List(a), - compare: fn(a, a) -> Order, -) { - case na, nb, a, b { - 0, 0, _, _ -> acc - _, 0, [ax, ..ar], _ -> merge_down(na - 1, nb, ar, b, [ax, ..acc], compare) - 0, _, _, [bx, ..br] -> merge_down(na, nb - 1, a, br, [bx, ..acc], compare) - _, _, [ax, ..ar], [bx, ..br] -> - case compare(bx, ax) { - order.Lt -> merge_down(na - 1, nb, ar, b, [ax, ..acc], compare) - _ -> merge_down(na, nb - 1, a, br, [bx, ..acc], compare) - } - _, _, _, _ -> acc - } -} - -/// Merge sort that alternates merging in ascending and descending order -/// because the merge process also reverses the list. -/// -/// Some copying is avoided by merging only a subset of the lists -/// instead of creating and merging new smaller lists. -/// -fn merge_sort( - l: List(a), - ln: Int, - compare: fn(a, a) -> Order, - down: Bool, -) -> List(a) { - let n = ln / 2 - let a = l - let b = drop(l, n) - case ln < 3 { - True -> - case down { - True -> merge_down(n, ln - n, a, b, [], compare) - False -> merge_up(n, ln - n, a, b, [], compare) - } - False -> - case down { - True -> - merge_down( - n, - ln - n, - merge_sort(a, n, compare, False), - merge_sort(b, ln - n, compare, False), - [], - compare, - ) - False -> - merge_up( - n, - ln - n, - merge_sort(a, n, compare, True), - merge_sort(b, ln - n, compare, True), - [], - compare, - ) - } - } -} - -/// Sorts from smallest to largest based upon the ordering specified by a given -/// function. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/int -/// > list.sort([4, 3, 6, 5, 4, 1, 2], by: int.compare) -/// [1, 2, 3, 4, 4, 5, 6] -/// ``` -/// -pub fn sort(list: List(a), by compare: fn(a, a) -> Order) -> List(a) { - merge_sort(list, length(list), compare, True) -} - -/// Creates a list of ints ranging from a given start and finish. -/// -/// ## Examples -/// -/// ```gleam -/// > range(0, 0) -/// [0] -/// ``` -/// -/// ```gleam -/// > range(0, 5) -/// [0, 1, 2, 3, 4, 5] -/// ``` -/// -/// ```gleam -/// > range(1, -5) -/// [1, 0, -1, -2, -3, -4, -5] -/// ``` -/// -pub fn range(from start: Int, to stop: Int) -> List(Int) { - tail_recursive_range(start, stop, []) -} - -fn tail_recursive_range(start: Int, stop: Int, acc: List(Int)) -> List(Int) { - case int.compare(start, stop) { - order.Eq -> [stop, ..acc] - order.Gt -> tail_recursive_range(start, stop + 1, [stop, ..acc]) - order.Lt -> tail_recursive_range(start, stop - 1, [stop, ..acc]) - } -} - -fn do_repeat(a: a, times: Int, acc: List(a)) -> List(a) { - case times <= 0 { - True -> acc - False -> do_repeat(a, times - 1, [a, ..acc]) - } -} - -/// Builds a list of a given value a given number of times. -/// -/// ## Examples -/// -/// ```gleam -/// > repeat("a", times: 0) -/// [] -/// ``` -/// -/// ```gleam -/// > repeat("a", times: 5) -/// ["a", "a", "a", "a", "a"] -/// ``` -/// -pub fn repeat(item a: a, times times: Int) -> List(a) { - do_repeat(a, times, []) -} - -fn do_split(list: List(a), n: Int, taken: List(a)) -> #(List(a), List(a)) { - case n <= 0 { - True -> #(reverse(taken), list) - False -> - case list { - [] -> #(reverse(taken), []) - [x, ..xs] -> do_split(xs, n - 1, [x, ..taken]) - } - } -} - -/// Splits a list in two before the given index. -/// -/// If the list is not long enough to have the given index the before list will -/// be the input list, and the after list will be empty. -/// -/// ## Examples -/// -/// ```gleam -/// > split([6, 7, 8, 9], 0) -/// #([], [6, 7, 8, 9]) -/// ``` -/// -/// ```gleam -/// > split([6, 7, 8, 9], 2) -/// #([6, 7], [8, 9]) -/// ``` -/// -/// ```gleam -/// > split([6, 7, 8, 9], 4) -/// #([6, 7, 8, 9], []) -/// ``` -/// -pub fn split(list list: List(a), at index: Int) -> #(List(a), List(a)) { - do_split(list, index, []) -} - -fn do_split_while( - list: List(a), - f: fn(a) -> Bool, - acc: List(a), -) -> #(List(a), List(a)) { - case list { - [] -> #(reverse(acc), []) - [x, ..xs] -> - case f(x) { - False -> #(reverse(acc), list) - _ -> do_split_while(xs, f, [x, ..acc]) - } - } -} - -/// Splits a list in two before the first element that a given function returns -/// `False` for. -/// -/// If the function returns `True` for all elements the first list will be the -/// input list, and the second list will be empty. -/// -/// ## Examples -/// -/// ```gleam -/// > split_while([1, 2, 3, 4, 5], fn(x) { x <= 3 }) -/// #([1, 2, 3], [4, 5]) -/// ``` -/// -/// ```gleam -/// > split_while([1, 2, 3, 4, 5], fn(x) { x <= 5 }) -/// #([1, 2, 3, 4, 5], []) -/// ``` -/// -pub fn split_while( - list list: List(a), - satisfying predicate: fn(a) -> Bool, -) -> #(List(a), List(a)) { - do_split_while(list, predicate, []) -} - -/// Given a list of 2-element tuples, finds the first tuple that has a given -/// key as the first element and returns the second element. -/// -/// If no tuple is found with the given key then `Error(Nil)` is returned. -/// -/// This function may be useful for interacting with Erlang code where lists of -/// tuples are common. -/// -/// ## Examples -/// -/// ```gleam -/// > key_find([#("a", 0), #("b", 1)], "a") -/// Ok(0) -/// ``` -/// -/// ```gleam -/// > key_find([#("a", 0), #("b", 1)], "b") -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > key_find([#("a", 0), #("b", 1)], "c") -/// Error(Nil) -/// ``` -/// -pub fn key_find( - in keyword_list: List(#(k, v)), - find desired_key: k, -) -> Result(v, Nil) { - find_map( - keyword_list, - fn(keyword) { - let #(key, value) = keyword - case key == desired_key { - True -> Ok(value) - False -> Error(Nil) - } - }, - ) -} - -/// Given a list of 2-element tuples, finds all tuples that have a given -/// key as the first element and returns the second element. -/// -/// This function may be useful for interacting with Erlang code where lists of -/// tuples are common. -/// -/// ## Examples -/// -/// ```gleam -/// > key_filter([#("a", 0), #("b", 1), #("a", 2)], "a") -/// [0, 2] -/// ``` -/// -/// ```gleam -/// > key_filter([#("a", 0), #("b", 1)], "c") -/// [] -/// ``` -/// -pub fn key_filter( - in keyword_list: List(#(k, v)), - find desired_key: k, -) -> List(v) { - filter_map( - keyword_list, - fn(keyword) { - let #(key, value) = keyword - case key == desired_key { - True -> Ok(value) - False -> Error(Nil) - } - }, - ) -} - -fn do_pop(haystack, predicate, checked) { - case haystack { - [] -> Error(Nil) - [x, ..rest] -> - case predicate(x) { - True -> Ok(#(x, append(reverse(checked), rest))) - False -> do_pop(rest, predicate, [x, ..checked]) - } - } -} - -/// Removes the first element in a given list for which the predicate function returns `True`. -/// -/// Returns `Error(Nil)` if no such element is found. -/// -/// ## Examples -/// -/// ```gleam -/// > pop([1, 2, 3], fn(x) { x > 2 }) -/// Ok(#(3, [1, 2])) -/// ``` -/// -/// ```gleam -/// > pop([1, 2, 3], fn(x) { x > 4 }) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > pop([], fn(_) { True }) -/// Error(Nil) -/// ``` -/// -pub fn pop( - in haystack: List(a), - one_that is_desired: fn(a) -> Bool, -) -> Result(#(a, List(a)), Nil) { - do_pop(haystack, is_desired, []) -} - -fn do_pop_map(haystack, mapper, checked) { - case haystack { - [] -> Error(Nil) - [x, ..rest] -> - case mapper(x) { - Ok(y) -> Ok(#(y, append(reverse(checked), rest))) - Error(_) -> do_pop_map(rest, mapper, [x, ..checked]) - } - } -} - -/// Removes the first element in a given list for which the given function returns -/// `Ok(new_value)`, then returns the wrapped `new_value` as well as list with the value removed. -/// -/// Returns `Error(Nil)` if no such element is found. -/// -/// ## Examples -/// -/// ```gleam -/// > pop_map([[], [2], [3]], first) -/// Ok(#(2, [[], [3]])) -/// ``` -/// -/// ```gleam -/// > pop_map([[], []], first) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > pop_map([], first) -/// Error(Nil) -/// ``` -/// -pub fn pop_map( - in haystack: List(a), - one_that is_desired: fn(a) -> Result(b, c), -) -> Result(#(b, List(a)), Nil) { - do_pop_map(haystack, is_desired, []) -} - -/// Given a list of 2-element tuples, finds the first tuple that has a given -/// key as the first element. This function will return the second element -/// of the found tuple and list with tuple removed. -/// -/// If no tuple is found with the given key then `Error(Nil)` is returned. -/// -/// ## Examples -/// -/// ```gleam -/// > key_pop([#("a", 0), #("b", 1)], "a") -/// Ok(#(0, [#("b", 1)])) -/// ``` -/// -/// ```gleam -/// > key_pop([#("a", 0), #("b", 1)], "b") -/// Ok(#(1, [#("a", 0)])) -/// ``` -/// -/// ```gleam -/// > key_pop([#("a", 0), #("b", 1)], "c") -/// Error(Nil) -/// ``` -/// -pub fn key_pop( - haystack: List(#(k, v)), - key: k, -) -> Result(#(v, List(#(k, v))), Nil) { - pop_map( - haystack, - fn(entry) { - let #(k, v) = entry - case k { - k if k == key -> Ok(v) - _ -> Error(Nil) - } - }, - ) -} - -/// Given a list of 2-element tuples, inserts a key and value into the list. -/// -/// If there was already a tuple with the key then it is replaced, otherwise it -/// is added to the end of the list. -/// -/// ## Examples -/// -/// ```gleam -/// > key_set([#(5, 0), #(4, 1)], 4, 100) -/// [#(5, 0), #(4, 100)] -/// ``` -/// -/// ```gleam -/// > key_set([#(5, 0), #(4, 1)], 1, 100) -/// [#(5, 0), #(4, 1), #(1, 100)] -/// ``` -/// -pub fn key_set(list: List(#(a, b)), key: a, value: b) -> List(#(a, b)) { - case list { - [] -> [#(key, value)] - [#(k, _), ..rest] if k == key -> [#(key, value), ..rest] - [first, ..rest] -> [first, ..key_set(rest, key, value)] - } -} - -/// Calls a function for each element in a list, discarding the return value. -/// -/// Useful for calling a side effect for every item of a list. -/// -/// ```gleam -/// > list.each([1, 2, 3], io.println) -/// Nil -/// ``` -/// -pub fn each(list: List(a), f: fn(a) -> b) -> Nil { - case list { - [] -> Nil - [x, ..xs] -> { - f(x) - each(xs, f) - } - } -} - -/// Calls a `Result` returning function for each element in a list, discarding -/// the return value. If the function returns `Error` then the iteration is -/// stopped and the error is returned. -/// -/// Useful for calling a side effect for every item of a list. -/// -/// ## Examples -/// -/// ```gleam -/// > try_each( -/// > over: [1, 2, 3], -/// > with: function_that_might_fail, -/// > ) -/// Ok(Nil) -/// ``` -/// -pub fn try_each( - over list: List(a), - with fun: fn(a) -> Result(b, e), -) -> Result(Nil, e) { - case list { - [] -> Ok(Nil) - [x, ..xs] -> - case fun(x) { - Ok(_) -> try_each(over: xs, with: fun) - Error(e) -> Error(e) - } - } -} - -fn do_partition(list, categorise, trues, falses) { - case list { - [] -> #(reverse(trues), reverse(falses)) - [x, ..xs] -> - case categorise(x) { - True -> do_partition(xs, categorise, [x, ..trues], falses) - False -> do_partition(xs, categorise, trues, [x, ..falses]) - } - } -} - -/// Partitions a list into a tuple/pair of lists -/// by a given categorisation function. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 3, 4, 5] |> list.partition(int.is_odd) -/// #([1, 3, 5], [2, 4]) -/// ``` -/// -pub fn partition( - list: List(a), - with categorise: fn(a) -> Bool, -) -> #(List(a), List(a)) { - do_partition(list, categorise, [], []) -} - -/// Returns all the permutations of a list. -/// -/// ## Examples -/// -/// ```gleam -/// > permutations([1, 2]) -/// [[1, 2], [2, 1]] -/// ``` -/// -pub fn permutations(l: List(a)) -> List(List(a)) { - case l { - [] -> [[]] - _ -> - l - |> index_map(fn(i_idx, i) { - l - |> index_fold( - [], - fn(acc, j, j_idx) { - case i_idx == j_idx { - True -> acc - False -> [j, ..acc] - } - }, - ) - |> reverse - |> permutations - |> map(fn(permutation) { [i, ..permutation] }) - }) - |> concat - } -} - -fn do_window(acc: List(List(a)), l: List(a), n: Int) -> List(List(a)) { - let window = take(l, n) - - case length(window) == n { - True -> do_window([window, ..acc], drop(l, 1), n) - False -> acc - } -} - -/// Returns a list of sliding windows. -/// -/// ## Examples -/// -/// ```gleam -/// > window([1,2,3,4,5], 3) -/// [[1, 2, 3], [2, 3, 4], [3, 4, 5]] -/// ``` -/// -/// ```gleam -/// > window([1, 2], 4) -/// [] -/// ``` -/// -pub fn window(l: List(a), by n: Int) -> List(List(a)) { - do_window([], l, n) - |> reverse -} - -/// Returns a list of tuples containing two contiguous elements. -/// -/// ## Examples -/// -/// ```gleam -/// > window_by_2([1,2,3,4]) -/// [#(1, 2), #(2, 3), #(3, 4)] -/// ``` -/// -/// ```gleam -/// > window_by_2([1]) -/// [] -/// ``` -/// -pub fn window_by_2(l: List(a)) -> List(#(a, a)) { - zip(l, drop(l, 1)) -} - -/// Drops the first elements in a given list for which the predicate function returns `True`. -/// -/// ## Examples -/// -/// ```gleam -/// > drop_while([1, 2, 3, 4], fn (x) { x < 3 }) -/// [3, 4] -/// ``` -/// -pub fn drop_while( - in list: List(a), - satisfying predicate: fn(a) -> Bool, -) -> List(a) { - case list { - [] -> [] - [x, ..xs] -> - case predicate(x) { - True -> drop_while(xs, predicate) - False -> [x, ..xs] - } - } -} - -fn do_take_while( - list: List(a), - predicate: fn(a) -> Bool, - acc: List(a), -) -> List(a) { - case list { - [] -> reverse(acc) - [first, ..rest] -> - case predicate(first) { - True -> do_take_while(rest, predicate, [first, ..acc]) - False -> reverse(acc) - } - } -} - -/// Takes the first elements in a given list for which the predicate function returns `True`. -/// -/// ## Examples -/// -/// ```gleam -/// > take_while([1, 2, 3, 2, 4], fn (x) { x < 3 }) -/// [1, 2] -/// ``` -/// -pub fn take_while( - in list: List(a), - satisfying predicate: fn(a) -> Bool, -) -> List(a) { - do_take_while(list, predicate, []) -} - -fn do_chunk( - list: List(a), - f: fn(a) -> key, - previous_key: key, - current_chunk: List(a), - acc: List(List(a)), -) -> List(List(a)) { - case list { - [first, ..rest] -> { - let key = f(first) - case key == previous_key { - False -> { - let new_acc = [reverse(current_chunk), ..acc] - do_chunk(rest, f, key, [first], new_acc) - } - _true -> do_chunk(rest, f, key, [first, ..current_chunk], acc) - } - } - _empty -> reverse([reverse(current_chunk), ..acc]) - } -} - -/// Returns a list of chunks in which -/// the return value of calling `f` on each element is the same. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 2, 3, 4, 4, 6, 7, 7] |> chunk(by: fn(n) { n % 2 }) -/// [[1], [2, 2], [3], [4, 4, 6], [7, 7]] -/// ``` -/// -pub fn chunk(in list: List(a), by f: fn(a) -> key) -> List(List(a)) { - case list { - [] -> [] - [first, ..rest] -> do_chunk(rest, f, f(first), [first], []) - } -} - -fn do_sized_chunk( - list: List(a), - count: Int, - left: Int, - current_chunk: List(a), - acc: List(List(a)), -) -> List(List(a)) { - case list { - [] -> - case current_chunk { - [] -> reverse(acc) - remaining -> reverse([reverse(remaining), ..acc]) - } - [first, ..rest] -> { - let chunk = [first, ..current_chunk] - case left > 1 { - False -> do_sized_chunk(rest, count, count, [], [reverse(chunk), ..acc]) - True -> do_sized_chunk(rest, count, left - 1, chunk, acc) - } - } - } -} - -/// Returns a list of chunks containing `count` elements each. -/// -/// If the last chunk does not have `count` elements, it is instead -/// a partial chunk, with less than `count` elements. -/// -/// For any `count` less than 1 this function behaves as if it was set to 1. -/// -/// ## Examples -/// -/// ```gleam -/// > [1, 2, 3, 4, 5, 6] |> sized_chunk(into: 2) -/// [[1, 2], [3, 4], [5, 6]] -/// ``` -/// -/// ```gleam -/// > [1, 2, 3, 4, 5, 6, 7, 8] |> sized_chunk(into: 3) -/// [[1, 2, 3], [4, 5, 6], [7, 8]] -/// ``` -/// -pub fn sized_chunk(in list: List(a), into count: Int) -> List(List(a)) { - do_sized_chunk(list, count, count, [], []) -} - -/// This function acts similar to fold, but does not take an initial state. -/// Instead, it starts from the first element in the list -/// and combines it with each subsequent element in turn using the given -/// function. The function is called as `fun(accumulator, current_element)`. -/// -/// Returns `Ok` to indicate a successful run, and `Error` if called on an -/// empty list. -/// -/// ## Examples -/// -/// ```gleam -/// > [] |> reduce(fn(acc, x) { acc + x }) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > [1, 2, 3, 4, 5] |> reduce(fn(acc, x) { acc + x }) -/// Ok(15) -/// ``` -/// -pub fn reduce(over list: List(a), with fun: fn(a, a) -> a) -> Result(a, Nil) { - case list { - [] -> Error(Nil) - [first, ..rest] -> Ok(fold(rest, first, fun)) - } -} - -fn do_scan( - list: List(a), - accumulator: acc, - accumulated: List(acc), - fun: fn(acc, a) -> acc, -) -> List(acc) { - case list { - [] -> reverse(accumulated) - [x, ..xs] -> { - let next = fun(accumulator, x) - do_scan(xs, next, [next, ..accumulated], fun) - } - } -} - -/// Similar to `fold`, but yields the state of the accumulator at each stage. -/// -/// ## Examples -/// -/// ```gleam -/// > scan(over: [1, 2, 3], from: 100, with: fn(acc, i) { acc + i }) -/// [101, 103, 106] -/// ``` -/// -pub fn scan( - over list: List(a), - from initial: acc, - with fun: fn(acc, a) -> acc, -) -> List(acc) { - do_scan(list, initial, [], fun) -} - -/// Returns the last element in the given list. -/// -/// Returns `Error(Nil)` if the list is empty. -/// -/// This function runs in linear time. -/// For a collection oriented around performant access at either end, -/// see `gleam/queue.Queue`. -/// -/// ## Examples -/// -/// ```gleam -/// > last([]) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > last([1, 2, 3, 4, 5]) -/// Ok(5) -/// ``` -/// -pub fn last(list: List(a)) -> Result(a, Nil) { - list - |> reduce(fn(_, elem) { elem }) -} - -/// Return unique combinations of elements in the list. -/// -/// ## Examples -/// -/// ```gleam -/// > combinations([1, 2, 3], 2) -/// [[1, 2], [1, 3], [2, 3]] -/// ``` -/// -/// ```gleam -/// > combinations([1, 2, 3, 4], 3) -/// [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]] -/// ``` -/// -pub fn combinations(items: List(a), by n: Int) -> List(List(a)) { - case n { - 0 -> [[]] - _ -> - case items { - [] -> [] - [x, ..xs] -> { - let first_combinations = - map(combinations(xs, n - 1), with: fn(com) { [x, ..com] }) - |> reverse - fold( - first_combinations, - combinations(xs, n), - fn(acc, c) { [c, ..acc] }, - ) - } - } - } -} - -fn do_combination_pairs(items: List(a)) -> List(List(#(a, a))) { - case items { - [] -> [] - [x, ..xs] -> { - let first_combinations = map(xs, with: fn(other) { #(x, other) }) - [first_combinations, ..do_combination_pairs(xs)] - } - } -} - -/// Return unique pair combinations of elements in the list -/// -/// ## Examples -/// -/// ```gleam -/// > combination_pairs([1, 2, 3]) -/// [#(1, 2), #(1, 3), #(2, 3)] -/// ``` -/// -pub fn combination_pairs(items: List(a)) -> List(#(a, a)) { - do_combination_pairs(items) - |> concat -} - -/// Make a list alternating the elements from the given lists -/// -/// ## Examples -/// -/// ```gleam -/// > list.interleave([[1, 2], [101, 102], [201, 202]]) -/// [1, 101, 201, 2, 102, 202] -/// ``` -/// -pub fn interleave(list: List(List(a))) -> List(a) { - transpose(list) - |> concat -} - -/// Transpose rows and columns of the list of lists. -/// -/// Notice: This function is not tail recursive, -/// and thus may exceed stack size if called, -/// with large lists (on target JavaScript). -/// -/// ## Examples -/// -/// ```gleam -/// > transpose([[1, 2, 3], [101, 102, 103]]) -/// [[1, 101], [2, 102], [3, 103]] -/// ``` -/// -pub fn transpose(list_of_list: List(List(a))) -> List(List(a)) { - let take_first = fn(list) { - case list { - [] -> [] - [f] -> [f] - [f, ..] -> [f] - } - } - - case list_of_list { - [] -> [] - [[], ..xss] -> transpose(xss) - rows -> { - let firsts = - rows - |> map(take_first) - |> concat - let rest = transpose(map(rows, drop(_, 1))) - [firsts, ..rest] - } - } -} - -fn do_shuffle_pair_unwrap(list: List(#(Float, a)), acc: List(a)) -> List(a) { - case list { - [] -> acc - [elem_pair, ..enumerable] -> - do_shuffle_pair_unwrap(enumerable, [elem_pair.1, ..acc]) - } -} - -fn do_shuffle_by_pair_indexes( - list_of_pairs: List(#(Float, a)), -) -> List(#(Float, a)) { - sort( - list_of_pairs, - fn(a_pair: #(Float, a), b_pair: #(Float, a)) -> Order { - float.compare(a_pair.0, b_pair.0) - }, - ) -} - -/// Takes a list, randomly sorts all items and returns the shuffled list. -/// -/// This function uses Erlang's `:rand` module or Javascript's -/// `Math.random()` to calculate the index shuffling. -/// -/// ## Example -/// -/// ```gleam -/// > range(1, 10) -/// > |> shuffle() -/// [1, 6, 9, 10, 3, 8, 4, 2, 7, 5] -/// ``` -/// -pub fn shuffle(list: List(a)) -> List(a) { - list - |> fold(from: [], with: fn(acc, a) { [#(float.random(0.0, 1.0), a), ..acc] }) - |> do_shuffle_by_pair_indexes() - |> do_shuffle_pair_unwrap([]) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/map.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/map.gleam deleted file mode 100644 index 1f8b228..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/map.gleam +++ /dev/null @@ -1,127 +0,0 @@ -import gleam/option.{type Option} -import gleam/dict - -@deprecated("Please use the `gleam/dict` module instead") -pub type Map(key, value) = - dict.Dict(key, value) - -@deprecated("Please use the `gleam/dict` module instead") -pub fn size(map) -> Int { - dict.size(map) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn to_list(map) -> List(#(key, value)) { - dict.to_list(map) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn from_list(list: List(#(k, v))) { - dict.from_list(list) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn has_key(map, key: k) -> Bool { - dict.has_key(map, key) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn new() { - dict.new() -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn get(from, get: key) -> Result(value, Nil) { - dict.get(from, get) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn insert(into map, for key: k, insert value: v) { - dict.insert(map, key, value) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn map_values(in map, with fun: fn(k, v) -> w) { - dict.map_values(map, fun) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn keys(map) -> List(keys) { - dict.keys(map) -} - -@target(javascript) -fn reverse_and_concat(remaining, accumulator) { - case remaining { - [] -> accumulator - [item, ..rest] -> reverse_and_concat(rest, [item, ..accumulator]) - } -} - -@target(javascript) -fn do_keys_acc(list: List(#(k, v)), acc: List(k)) -> List(k) { - case list { - [] -> reverse_and_concat(acc, []) - [x, ..xs] -> do_keys_acc(xs, [x.0, ..acc]) - } -} - -@target(javascript) -fn do_keys(map) -> List(k) { - let list_of_pairs = - map - |> to_list - do_keys_acc(list_of_pairs, []) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn values(map) -> List(values) { - dict.values(map) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn filter(in map, keeping predicate: fn(k, v) -> Bool) { - dict.filter(map, predicate) -} - -@target(javascript) -fn do_filter(f: fn(key, value) -> Bool, map) { - let insert = fn(map, k, v) { - case f(k, v) { - True -> insert(map, k, v) - _ -> map - } - } - map - |> fold(from: new(), with: insert) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn take(from map, keeping desired_keys: List(k)) { - dict.take(map, desired_keys) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn merge(into map, from new_entries) { - dict.merge(map, new_entries) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn delete(from map, delete key: k) { - dict.delete(map, key) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn drop(from map, drop disallowed_keys: List(k)) { - dict.drop(map, disallowed_keys) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn update(in map, update key: k, with fun: fn(Option(v)) -> v) { - dict.update(map, key, fun) -} - -@deprecated("Please use the `gleam/dict` module instead") -pub fn fold(over map, from initial: acc, with fun: fn(acc, k, v) -> acc) -> acc { - dict.fold(map, initial, fun) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/option.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/option.gleam deleted file mode 100644 index 6015c0f..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/option.gleam +++ /dev/null @@ -1,346 +0,0 @@ -/// `Option` represents a value that may be present or not. `Some` means the value is -/// present, `None` means the value is not. -/// -/// This is Gleam's alternative to having a value that could be Null, as is -/// possible in some other languages. -/// -pub type Option(a) { - Some(a) - None -} - -fn do_all(list: List(Option(a)), acc: List(a)) -> Option(List(a)) { - case list { - [] -> Some(acc) - [x, ..rest] -> { - let accumulate = fn(acc, item) { - case acc, item { - Some(values), Some(value) -> Some([value, ..values]) - _, _ -> None - } - } - accumulate(do_all(rest, acc), x) - } - } -} - -/// Combines a list of `Option`s into a single `Option`. -/// If all elements in the list are `Some` then returns a `Some` holding the list of values. -/// If any element is `None` then returns`None`. -/// -/// ## Examples -/// -/// ```gleam -/// > all([Some(1), Some(2)]) -/// Some([1, 2]) -/// ``` -/// -/// ```gleam -/// > all([Some(1), None]) -/// None -/// ``` -/// -pub fn all(list: List(Option(a))) -> Option(List(a)) { - do_all(list, []) -} - -/// Checks whether the `Option` is a `Some` value. -/// -/// ## Examples -/// -/// ```gleam -/// > is_some(Some(1)) -/// True -/// ``` -/// -/// ```gleam -/// > is_some(None) -/// False -/// ``` -/// -pub fn is_some(option: Option(a)) -> Bool { - option != None -} - -/// Checks whether the `Option` is a `None` value. -/// -/// ## Examples -/// -/// ```gleam -/// > is_none(Some(1)) -/// False -/// ``` -/// -/// ```gleam -/// > is_none(None) -/// True -/// ``` -/// -pub fn is_none(option: Option(a)) -> Bool { - option == None -} - -/// Converts an `Option` type to a `Result` type. -/// -/// ## Examples -/// -/// ```gleam -/// > to_result(Some(1), "some_error") -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > to_result(None, "some_error") -/// Error("some_error") -/// ``` -/// -pub fn to_result(option: Option(a), e) -> Result(a, e) { - case option { - Some(a) -> Ok(a) - _ -> Error(e) - } -} - -/// Converts a `Result` type to an `Option` type. -/// -/// ## Examples -/// -/// ```gleam -/// > from_result(Ok(1)) -/// Some(1) -/// ``` -/// -/// ```gleam -/// > from_result(Error("some_error")) -/// None -/// ``` -/// -pub fn from_result(result: Result(a, e)) -> Option(a) { - case result { - Ok(a) -> Some(a) - _ -> None - } -} - -/// Extracts the value from an `Option`, returning a default value if there is none. -/// -/// ## Examples -/// -/// ```gleam -/// > unwrap(Some(1), 0) -/// 1 -/// ``` -/// -/// ```gleam -/// > unwrap(None, 0) -/// 0 -/// ``` -/// -pub fn unwrap(option: Option(a), or default: a) -> a { - case option { - Some(x) -> x - None -> default - } -} - -/// Extracts the value from an `Option`, evaluating the default function if the option is `None`. -/// -/// ## Examples -/// -/// ```gleam -/// > lazy_unwrap(Some(1), fn() { 0 }) -/// 1 -/// ``` -/// -/// ```gleam -/// > lazy_unwrap(None, fn() { 0 }) -/// 0 -/// ``` -/// -pub fn lazy_unwrap(option: Option(a), or default: fn() -> a) -> a { - case option { - Some(x) -> x - None -> default() - } -} - -/// Updates a value held within the `Some` of an `Option` by calling a given function -/// on it. -/// -/// If the `Option` is a `None` rather than `Some`, the function is not called and the -/// `Option` stays the same. -/// -/// ## Examples -/// -/// ```gleam -/// > map(over: Some(1), with: fn(x) { x + 1 }) -/// Some(2) -/// ``` -/// -/// ```gleam -/// > map(over: None, with: fn(x) { x + 1 }) -/// None -/// ``` -/// -pub fn map(over option: Option(a), with fun: fn(a) -> b) -> Option(b) { - case option { - Some(x) -> Some(fun(x)) - None -> None - } -} - -/// Merges a nested `Option` into a single layer. -/// -/// ## Examples -/// -/// ```gleam -/// > flatten(Some(Some(1))) -/// Some(1) -/// ``` -/// -/// ```gleam -/// > flatten(Some(None)) -/// None -/// ``` -/// -/// ```gleam -/// > flatten(None) -/// None -/// ``` -/// -pub fn flatten(option: Option(Option(a))) -> Option(a) { - case option { - Some(x) -> x - None -> None - } -} - -/// Updates a value held within the `Some` of an `Option` by calling a given function -/// on it, where the given function also returns an `Option`. The two options are -/// then merged together into one `Option`. -/// -/// If the `Option` is a `None` rather than `Some` the function is not called and the -/// option stays the same. -/// -/// This function is the equivalent of calling `map` followed by `flatten`, and -/// it is useful for chaining together multiple functions that return `Option`. -/// -/// ## Examples -/// -/// ```gleam -/// > then(Some(1), fn(x) { Some(x + 1) }) -/// Some(2) -/// ``` -/// -/// ```gleam -/// > then(Some(1), fn(x) { Some(#("a", x)) }) -/// Some(#("a", 1)) -/// ``` -/// -/// ```gleam -/// > then(Some(1), fn(_) { None }) -/// None -/// ``` -/// -/// ```gleam -/// > then(None, fn(x) { Some(x + 1) }) -/// None -/// ``` -/// -pub fn then(option: Option(a), apply fun: fn(a) -> Option(b)) -> Option(b) { - case option { - Some(x) -> fun(x) - None -> None - } -} - -/// Returns the first value if it is `Some`, otherwise returns the second value. -/// -/// ## Examples -/// -/// ```gleam -/// > or(Some(1), Some(2)) -/// Some(1) -/// ``` -/// -/// ```gleam -/// > or(Some(1), None) -/// Some(1) -/// ``` -/// -/// ```gleam -/// > or(None, Some(2)) -/// Some(2) -/// ``` -/// -/// ```gleam -/// > or(None, None) -/// None -/// ``` -/// -pub fn or(first: Option(a), second: Option(a)) -> Option(a) { - case first { - Some(_) -> first - None -> second - } -} - -/// Returns the first value if it is `Some`, otherwise evaluates the given function for a fallback value. -/// -/// ## Examples -/// -/// ```gleam -/// > lazy_or(Some(1), fn() { Some(2) }) -/// Some(1) -/// ``` -/// -/// ```gleam -/// > lazy_or(Some(1), fn() { None }) -/// Some(1) -/// ``` -/// -/// ```gleam -/// > lazy_or(None, fn() { Some(2) }) -/// Some(2) -/// ``` -/// -/// ```gleam -/// > lazy_or(None, fn() { None }) -/// None -/// ``` -/// -pub fn lazy_or(first: Option(a), second: fn() -> Option(a)) -> Option(a) { - case first { - Some(_) -> first - None -> second() - } -} - -fn do_values(list: List(Option(a)), acc: List(a)) -> List(a) { - case list { - [] -> acc - [x, ..xs] -> { - let accumulate = fn(acc, item) { - case item { - Some(value) -> [value, ..acc] - None -> acc - } - } - accumulate(do_values(xs, acc), x) - } - } -} - -/// Given a list of `Option`s, -/// returns only the values inside `Some`. -/// -/// ## Examples -/// -/// ```gleam -/// > values([Some(1), None, Some(3)]) -/// [1, 3] -/// ``` -/// -pub fn values(options: List(Option(a))) -> List(a) { - do_values(options, []) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/order.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/order.gleam deleted file mode 100644 index 12ce011..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/order.gleam +++ /dev/null @@ -1,133 +0,0 @@ -/// Represents the result of a single comparison to determine the precise -/// ordering of two values. -/// -pub type Order { - /// Less-than - Lt - - /// Equal - Eq - - /// Greater than - Gt -} - -/// Inverts an order, so less-than becomes greater-than and greater-than -/// becomes less-than. -/// -/// ## Examples -/// -/// ```gleam -/// > negate(Lt) -/// Gt -/// ``` -/// -/// ```gleam -/// > negate(Eq) -/// Eq -/// ``` -/// -/// ```gleam -/// > negate(Lt) -/// Gt -/// ``` -/// -pub fn negate(order: Order) -> Order { - case order { - Lt -> Gt - Eq -> Eq - Gt -> Lt - } -} - -/// Produces a numeric representation of the order. -/// -/// ## Examples -/// -/// ```gleam -/// > to_int(Lt) -/// -1 -/// ``` -/// -/// ```gleam -/// > to_int(Eq) -/// 0 -/// ``` -/// -/// ```gleam -/// > to_int(Gt) -/// 1 -/// ``` -/// -pub fn to_int(order: Order) -> Int { - case order { - Lt -> -1 - Eq -> 0 - Gt -> 1 - } -} - -/// Compares two `Order` values to one another, producing a new `Order`. -/// -/// ## Examples -/// -/// ```gleam -/// > compare(Eq, with: Lt) -/// Gt -/// ``` -/// -pub fn compare(a: Order, with b: Order) -> Order { - case a, b { - x, y if x == y -> Eq - Lt, _ | Eq, Gt -> Lt - _, _ -> Gt - } -} - -/// Returns the largest of two orders given that `Gt > Eq > Lt`. -/// -/// ## Examples -/// -/// ```gleam -/// > max(Eq, Lt) -/// Eq -/// ``` -/// -pub fn max(a: Order, b: Order) -> Order { - case a, b { - Gt, _ -> Gt - Eq, Lt -> Eq - _, _ -> b - } -} - -/// Returns the smallest of two orders given that `Gt > Eq > Lt`. -/// -/// ## Examples -/// -/// ```gleam -/// > min(Eq, Lt) -/// Lt -/// ``` -/// -pub fn min(a: Order, b: Order) -> Order { - case a, b { - Lt, _ -> Lt - Eq, Gt -> Eq - _, _ -> b - } -} - -/// Inverts an ordering function, so less-than becomes greater-than and greater-than -/// becomes less-than. -/// -/// ## Examples -/// -/// ```gleam -/// > list.sort([1, 5, 4], by: reverse(int.compare)) -/// [5, 4, 1] -/// ``` -/// -pub fn reverse(orderer: fn(a, a) -> Order) -> fn(a, a) -> Order { - fn(a, b) { orderer(b, a) } -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/pair.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/pair.gleam deleted file mode 100644 index 894e6a8..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/pair.gleam +++ /dev/null @@ -1,85 +0,0 @@ -/// Returns the first element in a pair. -/// -/// ## Examples -/// -/// ```gleam -/// > first(#(1, 2)) -/// 1 -/// ``` -/// -pub fn first(pair: #(a, b)) -> a { - let #(a, _) = pair - a -} - -/// Returns the second element in a pair. -/// -/// ## Examples -/// -/// ```gleam -/// > second(#(1, 2)) -/// 2 -/// ``` -/// -pub fn second(pair: #(a, b)) -> b { - let #(_, a) = pair - a -} - -/// Returns a new pair with the elements swapped. -/// -/// ## Examples -/// -/// ```gleam -/// > swap(#(1, 2)) -/// #(2, 1) -/// ``` -/// -pub fn swap(pair: #(a, b)) -> #(b, a) { - let #(a, b) = pair - #(b, a) -} - -/// Returns a new pair with the first element having had `with` applied to -/// it. -/// -/// ## Examples -/// -/// ```gleam -/// > #(1, 2) |> map_first(fn(n) { n * 2 }) -/// #(2, 2) -/// ``` -/// -pub fn map_first(of pair: #(a, b), with fun: fn(a) -> c) -> #(c, b) { - let #(a, b) = pair - #(fun(a), b) -} - -/// Returns a new pair with the second element having had `with` applied to -/// it. -/// -/// ## Examples -/// -/// ```gleam -/// > #(1, 2) |> map_second(fn(n) { n * 2 }) -/// #(1, 4) -/// ``` -/// -pub fn map_second(of pair: #(a, b), with fun: fn(b) -> c) -> #(a, c) { - let #(a, b) = pair - #(a, fun(b)) -} - -/// Returns a new pair with the given elements. This can also be done using the dedicated -/// syntax instead: `new(1, 2) == #(1, 2)`. -/// -/// ## Examples -/// -/// ```gleam -/// > new(1, 2) -/// #(1, 2) -/// ``` -/// -pub fn new(first: a, second: b) -> #(a, b) { - #(first, second) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/queue.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/queue.gleam deleted file mode 100644 index 5bf60c8..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/queue.gleam +++ /dev/null @@ -1,292 +0,0 @@ -import gleam/list - -/// A queue is an ordered collection of elements. It is similar to a list, but -/// unlike a list elements can be added to or removed from either the front or -/// the back in a performant fashion. -/// -/// The internal representation may be different for two queues with the same -/// elements in the same order if the queues were constructed in different -/// ways. This is the price paid for a queue's fast access at both the front -/// and the back. -/// -/// Because of unpredictable internal representation the equality operator `==` -/// may return surprising results, and the `is_equal` and `is_logically_equal` -/// functions are the recommended way to test queues for equality. -/// -pub opaque type Queue(element) { - Queue(in: List(element), out: List(element)) -} - -/// Creates a fresh queue that contains no values. -/// -pub fn new() -> Queue(a) { - Queue(in: [], out: []) -} - -/// Converts a list of elements into a queue of the same elements in the same -/// order. The first element in the list becomes the front element in the queue. -/// -/// This function runs in constant time. -/// -/// # Examples -/// -/// ```gleam -/// > [1, 2, 3] |> from_list |> length -/// 3 -/// ``` -/// -pub fn from_list(list: List(a)) -> Queue(a) { - Queue(in: [], out: list) -} - -/// Converts a queue of elements into a list of the same elements in the same -/// order. The front element in the queue becomes the first element in the list. -/// -/// This function runs in linear time. -/// -/// # Examples -/// -/// ```gleam -/// > new() |> push_back(1) |> push_back(2) |> to_list -/// [1, 2] -/// ``` -/// -pub fn to_list(queue: Queue(a)) -> List(a) { - queue.out - |> list.append(list.reverse(queue.in)) -} - -/// Determines whether or not the queue is empty. -/// -/// This function runs in constant time. -/// -/// ## Examples -/// -/// ```gleam -/// > [] |> from_list |> is_empty -/// True -/// ``` -/// -/// ```gleam -/// > [1] |> from_list |> is_empty -/// False -/// ``` -/// -/// ```gleam -/// > [1, 2] |> from_list |> is_empty -/// False -/// ``` -/// -pub fn is_empty(queue: Queue(a)) -> Bool { - queue.in == [] && queue.out == [] -} - -/// Counts the number of elements in a given queue. -/// -/// This function has to traverse the queue to determine the number of elements, -/// so it runs in linear time. -/// -/// ## Examples -/// -/// ```gleam -/// > length(from_list([])) -/// 0 -/// ``` -/// -/// ```gleam -/// > length(from_list([1])) -/// 1 -/// ``` -/// -/// ```gleam -/// > length(from_list([1, 2])) -/// 2 -/// ``` -/// -pub fn length(queue: Queue(a)) -> Int { - list.length(queue.in) + list.length(queue.out) -} - -/// Pushes an element onto the back of the queue. -/// -/// # Examples -/// -/// ```gleam -/// > [1, 2] |> from_list |> push_back(3) |> to_list -/// [1, 2, 3] -/// ``` -/// -pub fn push_back(onto queue: Queue(a), this item: a) -> Queue(a) { - Queue(in: [item, ..queue.in], out: queue.out) -} - -/// Pushes an element onto the front of the queue. -/// -/// # Examples -/// -/// ```gleam -/// > [0, 0] |> from_list |> push_front(1) |> to_list -/// [1, 0, 0] -/// ``` -/// -pub fn push_front(onto queue: Queue(a), this item: a) -> Queue(a) { - Queue(in: queue.in, out: [item, ..queue.out]) -} - -/// Gets the last element from the queue, returning the -/// element and a new queue without that element. -/// -/// This function typically runs in constant time, but will occasionally run in -/// linear time. -/// -/// # Examples -/// -/// ```gleam -/// > new() -/// > |> push_back(0) -/// > |> push_back(1) -/// > |> pop_back() -/// Ok(#(1, push_front(new(), 0))) -/// ``` -/// -/// ```gleam -/// > new() -/// > |> push_front(0) -/// > |> pop_back() -/// Ok(#(0, new())) -/// ``` -/// -/// ```gleam -/// > new() -/// > |> pop_back() -/// Error(Nil) -/// ``` -/// -pub fn pop_back(from queue: Queue(a)) -> Result(#(a, Queue(a)), Nil) { - case queue { - Queue(in: [], out: []) -> Error(Nil) - Queue(in: [], out: out) -> pop_back(Queue(in: list.reverse(out), out: [])) - Queue(in: [first, ..rest], out: out) -> { - let queue = Queue(in: rest, out: out) - Ok(#(first, queue)) - } - } -} - -/// Gets the first element from the queue, returning the -/// element and a new queue without that element. -/// -/// This function typically runs in constant time, but will occasionally run in -/// linear time. -/// -/// # Examples -/// -/// ```gleam -/// > queue.new() -/// > |> queue.push_front(1) -/// > |> queue.push_front(0) -/// > |> queue.pop_front() -/// Ok(#(0, queue.push_back(queue.new(), 1))) -/// ``` -/// -/// ```gleam -/// > queue.new() -/// > |> queue.push_back(0) -/// > |> queue.pop_front() -/// Ok(#(0, queue.new())) -/// ``` -/// -/// ```gleam -/// > queue.new() -/// > |> queue.pop_back() -/// Error(Nil) -/// ``` -/// -pub fn pop_front(from queue: Queue(a)) -> Result(#(a, Queue(a)), Nil) { - case queue { - Queue(in: [], out: []) -> Error(Nil) - Queue(in: in, out: []) -> pop_front(Queue(in: [], out: list.reverse(in))) - Queue(in: in, out: [first, ..rest]) -> { - let queue = Queue(in: in, out: rest) - Ok(#(first, queue)) - } - } -} - -/// Creates a new queue from a given queue containing the same elements, but in -/// the opposite order. -/// -/// This function runs in constant time. -/// -/// ## Examples -/// -/// ```gleam -/// > [] |> from_list |> reverse |> to_list -/// [] -/// ``` -/// -/// ```gleam -/// > [1] |> from_list |> reverse |> to_list -/// [1] -/// ``` -/// -/// ```gleam -/// > [1, 2] |> from_list |> reverse |> to_list -/// [2, 1] -/// ``` -/// -pub fn reverse(queue: Queue(a)) -> Queue(a) { - Queue(in: queue.out, out: queue.in) -} - -fn check_equal( - xs: List(t), - x_tail: List(t), - ys: List(t), - y_tail: List(t), - eq: fn(t, t) -> Bool, -) -> Bool { - case xs, x_tail, ys, y_tail { - [], [], [], [] -> True - [x, ..xs], _, [y, ..ys], _ -> - case eq(x, y) { - False -> False - True -> check_equal(xs, x_tail, ys, y_tail, eq) - } - [], [_, ..], _, _ -> check_equal(list.reverse(x_tail), [], ys, y_tail, eq) - _, _, [], [_, ..] -> check_equal(xs, x_tail, list.reverse(y_tail), [], eq) - _, _, _, _ -> False - } -} - -/// Checks whether two queues have equal elements in the same order, where the -/// equality of elements is determined by a given equality checking function. -/// -/// This function is useful as the internal representation may be different for -/// two queues with the same elements in the same order depending on how they -/// were constructed, so the equality operator `==` may return surprising -/// results. -/// -/// This function runs in linear time multiplied by the time taken by the -/// element equality checking function. -/// -pub fn is_logically_equal( - a: Queue(t), - to b: Queue(t), - checking element_is_equal: fn(t, t) -> Bool, -) -> Bool { - check_equal(a.out, a.in, b.out, b.in, element_is_equal) -} - -/// Checks whether two queues have the same elements in the same order. -/// -/// This function is useful as the internal representation may be different for -/// two queues with the same elements in the same order depending on how they -/// were constructed, so the equality operator `==` may return surprising -/// results. -/// -/// This function runs in linear time. -/// -pub fn is_equal(a: Queue(t), to b: Queue(t)) -> Bool { - check_equal(a.out, a.in, b.out, b.in, fn(a, b) { a == b }) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/regex.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/regex.gleam deleted file mode 100644 index 9ffda78..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/regex.gleam +++ /dev/null @@ -1,214 +0,0 @@ -//// This module contains regular expression matching functions for strings. -//// The matching algorithms of the library are based on the PCRE library, but not -//// all of the PCRE library is interfaced and some parts of the library go beyond -//// what PCRE offers. Currently PCRE version 8.40 (release date 2017-01-11) is used. - -import gleam/option.{type Option} - -pub type Regex - -/// The details about a particular match: -/// -pub type Match { - Match( - /// The full string of the match. - content: String, - /// A `Regex` can have subpatterns, sup-parts that are in parentheses. - submatches: List(Option(String)), - ) -} - -/// When a regular expression fails to compile: -/// -pub type CompileError { - CompileError( - /// The problem encountered that caused the compilation to fail - error: String, - /// The byte index into the string to where the problem was found - /// This value may not be correct in JavaScript environments. - byte_index: Int, - ) -} - -pub type Options { - Options(case_insensitive: Bool, multi_line: Bool) -} - -/// Creates a `Regex` with some additional options. -/// -/// ## Examples -/// -/// ```gleam -/// > let options = Options(case_insensitive: False, multi_line: True) -/// > let assert Ok(re) = compile("^[0-9]", with: options) -/// > check(re, "abc\n123") -/// True -/// ``` -/// -/// ```gleam -/// > let options = Options(case_insensitive: True, multi_line: False) -/// > let assert Ok(re) = compile("[A-Z]", with: options) -/// > check(re, "abc123") -/// True -/// ``` -/// -pub fn compile( - pattern: String, - with options: Options, -) -> Result(Regex, CompileError) { - do_compile(pattern, options) -} - -@external(erlang, "gleam_stdlib", "compile_regex") -@external(javascript, "../gleam_stdlib.mjs", "compile_regex") -fn do_compile(a: String, with with: Options) -> Result(Regex, CompileError) - -/// Creates a new `Regex`. -/// -/// ## Examples -/// -/// ```gleam -/// > let assert Ok(re) = from_string("[0-9]") -/// > check(re, "abc123") -/// True -/// ``` -/// -/// ```gleam -/// > check(re, "abcxyz") -/// False -/// ``` -/// -/// ```gleam -/// > from_string("[0-9") -/// Error( -/// CompileError( -/// error: "missing terminating ] for character class", -/// byte_index: 4 -/// ) -/// ) -/// ``` -/// -pub fn from_string(pattern: String) -> Result(Regex, CompileError) { - compile(pattern, Options(case_insensitive: False, multi_line: False)) -} - -/// Returns a boolean indicating whether there was a match or not. -/// -/// ## Examples -/// -/// ```gleam -/// > let assert Ok(re) = from_string("^f.o.?") -/// > check(with: re, content: "foo") -/// True -/// ``` -/// -/// ```gleam -/// > check(with: re, content: "boo") -/// False -/// ``` -/// -pub fn check(with regex: Regex, content content: String) -> Bool { - do_check(regex, content) -} - -@external(erlang, "gleam_stdlib", "regex_check") -@external(javascript, "../gleam_stdlib.mjs", "regex_check") -fn do_check(a: Regex, b: String) -> Bool - -/// Splits a string. -/// -/// ## Examples -/// -/// ```gleam -/// > let assert Ok(re) = from_string(" *, *") -/// > split(with: re, content: "foo,32, 4, 9 ,0") -/// ["foo", "32", "4", "9", "0"] -/// ``` -/// -pub fn split(with regex: Regex, content string: String) -> List(String) { - do_split(regex, string) -} - -@target(erlang) -@external(erlang, "gleam_stdlib", "regex_split") -fn do_split(a: Regex, b: String) -> List(String) - -@target(javascript) -fn do_split(regex, string) -> List(String) { - js_split(string, regex) -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "split") -fn js_split(a: String, b: Regex) -> List(String) - -/// Collects all matches of the regular expression. -/// -/// ## Examples -/// -/// ```gleam -/// > let assert Ok(re) = from_string("[oi]n a (\\w+)") -/// > scan(with: re, content: "I am on a boat in a lake.") -/// [ -/// Match( -/// content: "on a boat", -/// submatches: [Some("boat")] -/// ), -/// Match( -/// content: "in a lake", -/// submatches: [Some("lake")] -/// ) -/// ] -/// ``` -/// -/// ```gleam -/// > let assert Ok(re) = regex.from_string("([+|\\-])?(\\d+)(\\w+)?") -/// > scan(with: re, content: "-36") -/// [ -/// Match( -/// content: "-36", -/// submatches: [Some("-"), Some("36")] -/// ) -/// ] -/// -/// > scan(with: re, content: "36") -/// [ -/// Match( -/// content: "36", -/// submatches: [None, Some("36")] -/// ) -/// ] -/// ``` -/// -/// ```gleam -/// > let assert Ok(re) = regex.from_string("var\\s*(\\w+)\\s*(int|string)?\\s*=\\s*(.*)") -/// > scan(with: re, content: "var age = 32") -/// [ -/// Match( -/// content: "var age = 32", -/// submatches: [Some("age"), None, Some("32")] -/// ) -/// ] -/// ``` -/// -/// ```gleam -/// > let assert Ok(re) = regex.from_string("let (\\w+) = (\\w+)") -/// > scan(with: re, content: "let age = 32") -/// [ -/// Match( -/// content: "let age = 32", -/// submatches: [Some("age"), Some("32")] -/// ) -/// ] -/// -/// > scan(with: re, content: "const age = 32") -/// [] -/// ``` -/// -pub fn scan(with regex: Regex, content string: String) -> List(Match) { - do_scan(regex, string) -} - -@external(erlang, "gleam_stdlib", "regex_scan") -@external(javascript, "../gleam_stdlib.mjs", "regex_scan") -fn do_scan(a: Regex, b: String) -> List(Match) diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/result.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/result.gleam deleted file mode 100644 index fb6dddb..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/result.gleam +++ /dev/null @@ -1,482 +0,0 @@ -//// Result represents the result of something that may succeed or not. -//// `Ok` means it was successful, `Error` means it was not successful. - -import gleam/list - -/// Checks whether the result is an `Ok` value. -/// -/// ## Examples -/// -/// ```gleam -/// > is_ok(Ok(1)) -/// True -/// ``` -/// -/// ```gleam -/// > is_ok(Error(Nil)) -/// False -/// ``` -/// -pub fn is_ok(result: Result(a, e)) -> Bool { - case result { - Error(_) -> False - Ok(_) -> True - } -} - -/// Checks whether the result is an `Error` value. -/// -/// ## Examples -/// -/// ```gleam -/// > is_error(Ok(1)) -/// False -/// ``` -/// -/// ```gleam -/// > is_error(Error(Nil)) -/// True -/// ``` -/// -pub fn is_error(result: Result(a, e)) -> Bool { - case result { - Ok(_) -> False - Error(_) -> True - } -} - -/// Updates a value held within the `Ok` of a result by calling a given function -/// on it. -/// -/// If the result is an `Error` rather than `Ok` the function is not called and the -/// result stays the same. -/// -/// ## Examples -/// -/// ```gleam -/// > map(over: Ok(1), with: fn(x) { x + 1 }) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > map(over: Error(1), with: fn(x) { x + 1 }) -/// Error(1) -/// ``` -/// -pub fn map(over result: Result(a, e), with fun: fn(a) -> b) -> Result(b, e) { - case result { - Ok(x) -> Ok(fun(x)) - Error(e) -> Error(e) - } -} - -/// Updates a value held within the `Error` of a result by calling a given function -/// on it. -/// -/// If the result is `Ok` rather than `Error` the function is not called and the -/// result stays the same. -/// -/// ## Examples -/// -/// ```gleam -/// > map_error(over: Error(1), with: fn(x) { x + 1 }) -/// Error(2) -/// ``` -/// -/// ```gleam -/// > map_error(over: Ok(1), with: fn(x) { x + 1 }) -/// Ok(1) -/// ``` -/// -pub fn map_error( - over result: Result(a, e), - with fun: fn(e) -> f, -) -> Result(a, f) { - case result { - Ok(x) -> Ok(x) - Error(error) -> Error(fun(error)) - } -} - -/// Merges a nested `Result` into a single layer. -/// -/// ## Examples -/// -/// ```gleam -/// > flatten(Ok(Ok(1))) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > flatten(Ok(Error(""))) -/// Error("") -/// ``` -/// -/// ```gleam -/// > flatten(Error(Nil)) -/// Error(Nil) -/// ``` -/// -pub fn flatten(result: Result(Result(a, e), e)) -> Result(a, e) { - case result { - Ok(x) -> x - Error(error) -> Error(error) - } -} - -/// "Updates" an `Ok` result by passing its value to a function that yields a result, -/// and returning the yielded result. (This may "replace" the `Ok` with an `Error`.) -/// -/// If the input is an `Error` rather than an `Ok`, the function is not called and -/// the original `Error` is returned. -/// -/// This function is the equivalent of calling `map` followed by `flatten`, and -/// it is useful for chaining together multiple functions that may fail. -/// -/// ## Examples -/// -/// ```gleam -/// > try(Ok(1), fn(x) { Ok(x + 1) }) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > try(Ok(1), fn(x) { Ok(#("a", x)) }) -/// Ok(#("a", 1)) -/// ``` -/// -/// ```gleam -/// > try(Ok(1), fn(_) { Error("Oh no") }) -/// Error("Oh no") -/// ``` -/// -/// ```gleam -/// > try(Error(Nil), fn(x) { Ok(x + 1) }) -/// Error(Nil) -/// ``` -/// -pub fn try( - result: Result(a, e), - apply fun: fn(a) -> Result(b, e), -) -> Result(b, e) { - case result { - Ok(x) -> fun(x) - Error(e) -> Error(e) - } -} - -/// An alias for `try`. See the documentation for that function for more information. -/// -pub fn then( - result: Result(a, e), - apply fun: fn(a) -> Result(b, e), -) -> Result(b, e) { - try(result, fun) -} - -/// Extracts the `Ok` value from a result, returning a default value if the result -/// is an `Error`. -/// -/// ## Examples -/// -/// ```gleam -/// > unwrap(Ok(1), 0) -/// 1 -/// ``` -/// -/// ```gleam -/// > unwrap(Error(""), 0) -/// 0 -/// ``` -/// -pub fn unwrap(result: Result(a, e), or default: a) -> a { - case result { - Ok(v) -> v - Error(_) -> default - } -} - -/// Extracts the `Ok` value from a result, evaluating the default function if the result -/// is an `Error`. -/// -/// ## Examples -/// -/// ```gleam -/// > lazy_unwrap(Ok(1), fn() { 0 }) -/// 1 -/// ``` -/// -/// ```gleam -/// > lazy_unwrap(Error(""), fn() { 0 }) -/// 0 -/// ``` -/// -pub fn lazy_unwrap(result: Result(a, e), or default: fn() -> a) -> a { - case result { - Ok(v) -> v - Error(_) -> default() - } -} - -/// Extracts the `Error` value from a result, returning a default value if the result -/// is an `Ok`. -/// -/// ## Examples -/// -/// ```gleam -/// > unwrap_error(Error(1), 0) -/// 1 -/// ``` -/// -/// ```gleam -/// > unwrap_error(Ok(""), 0) -/// 0 -/// ``` -/// -pub fn unwrap_error(result: Result(a, e), or default: e) -> e { - case result { - Ok(_) -> default - Error(e) -> e - } -} - -/// Extracts the inner value from a result. Both the value and error must be of -/// the same type. -/// -/// ## Examples -/// -/// ```gleam -/// > unwrap_both(Error(1)) -/// 1 -/// ``` -/// -/// ```gleam -/// > unwrap_both(Ok(2)) -/// 2 -/// ``` -/// -pub fn unwrap_both(result: Result(a, a)) -> a { - case result { - Ok(a) -> a - Error(a) -> a - } -} - -/// Transforms any error into `Error(Nil)`. -/// -/// ## Examples -/// -/// ```gleam -/// > nil_error(Error(1)) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > nil_error(Ok(1)) -/// Ok(1) -/// ``` -/// -pub fn nil_error(result: Result(a, e)) -> Result(a, Nil) { - map_error(result, fn(_) { Nil }) -} - -/// Returns the first value if it is `Ok`, otherwise returns the second value. -/// -/// ## Examples -/// -/// ```gleam -/// > or(Ok(1), Ok(2)) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > or(Ok(1), Error("Error 2")) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > or(Error("Error 1"), Ok(2)) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > or(Error("Error 1"), Error("Error 2")) -/// Error("Error 2") -/// ``` -/// -pub fn or(first: Result(a, e), second: Result(a, e)) -> Result(a, e) { - case first { - Ok(_) -> first - Error(_) -> second - } -} - -/// Returns the first value if it is `Ok`, otherwise evaluates the given function for a fallback value. -/// -/// ## Examples -/// -/// ```gleam -/// > lazy_or(Ok(1), fn() { Ok(2) }) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > lazy_or(Ok(1), fn() { Error("Error 2") }) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > lazy_or(Error("Error 1"), fn() { Ok(2) }) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > lazy_or(Error("Error 1"), fn() { Error("Error 2") }) -/// Error("Error 2") -/// ``` -/// -pub fn lazy_or( - first: Result(a, e), - second: fn() -> Result(a, e), -) -> Result(a, e) { - case first { - Ok(_) -> first - Error(_) -> second() - } -} - -/// Combines a list of results into a single result. -/// If all elements in the list are `Ok` then returns an `Ok` holding the list of values. -/// If any element is `Error` then returns the first error. -/// -/// ## Examples -/// -/// ```gleam -/// > all([Ok(1), Ok(2)]) -/// Ok([1, 2]) -/// ``` -/// -/// ```gleam -/// > all([Ok(1), Error("e")]) -/// Error("e") -/// ``` -/// -pub fn all(results: List(Result(a, e))) -> Result(List(a), e) { - list.try_map(results, fn(x) { x }) -} - -/// Given a list of results, returns a pair where the first element is a list -/// of all the values inside `Ok` and the second element is a list with all the -/// values inside `Error`. The values in both lists appear in reverse order with -/// respect to their position in the original list of results. -/// -/// ## Examples -/// -/// ```gleam -/// > partition([Ok(1), Error("a"), Error("b"), Ok(2)]) -/// #([2, 1], ["b", "a"]) -/// ``` -/// -pub fn partition(results: List(Result(a, e))) -> #(List(a), List(e)) { - do_partition(results, [], []) -} - -fn do_partition(results: List(Result(a, e)), oks: List(a), errors: List(e)) { - case results { - [] -> #(oks, errors) - [Ok(a), ..rest] -> do_partition(rest, [a, ..oks], errors) - [Error(e), ..rest] -> do_partition(rest, oks, [e, ..errors]) - } -} - -/// Replace the value within a result -/// -/// ## Examples -/// -/// ```gleam -/// > replace(Ok(1), Nil) -/// Ok(Nil) -/// ``` -/// -/// ```gleam -/// > replace(Error(1), Nil) -/// Error(1) -/// ``` -/// -pub fn replace(result: Result(a, e), value: b) -> Result(b, e) { - case result { - Ok(_) -> Ok(value) - Error(error) -> Error(error) - } -} - -/// Replace the error within a result -/// -/// ## Examples -/// -/// ```gleam -/// > replace_error(Error(1), Nil) -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > replace_error(Ok(1), Nil) -/// Ok(1) -/// ``` -/// -pub fn replace_error(result: Result(a, e1), error: e2) -> Result(a, e2) { - case result { - Ok(x) -> Ok(x) - Error(_) -> Error(error) - } -} - -/// Given a list of results, returns only the values inside `Ok`. -/// -/// ## Examples -/// -/// ```gleam -/// > values([Ok(1), Error("a"), Ok(3)]) -/// [1, 3] -/// ``` -/// -pub fn values(results: List(Result(a, e))) -> List(a) { - list.filter_map(results, fn(r) { r }) -} - -/// Updates a value held within the `Error` of a result by calling a given function -/// on it, where the given function also returns a result. The two results are -/// then merged together into one result. -/// -/// If the result is an `Ok` rather than `Error` the function is not called and the -/// result stays the same. -/// -/// This function is useful for chaining together computations that may fail -/// and trying to recover from possible errors. -/// -/// ## Examples -/// -/// ```gleam -/// > Ok(1) |> try_recover(with: fn(_) { Error("failed to recover") }) -/// Ok(1) -/// ``` -/// -/// ```gleam -/// > Error(1) |> try_recover(with: fn(error) { Ok(error + 1) }) -/// Ok(2) -/// ``` -/// -/// ```gleam -/// > Error(1) |> try_recover(with: fn(error) { Error("failed to recover") }) -/// Error("failed to recover") -/// ``` -/// -pub fn try_recover( - result: Result(a, e), - with fun: fn(e) -> Result(a, f), -) -> Result(a, f) { - case result { - Ok(value) -> Ok(value) - Error(error) -> fun(error) - } -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/set.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/set.gleam deleted file mode 100644 index df8d500..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/set.gleam +++ /dev/null @@ -1,264 +0,0 @@ -import gleam/list -import gleam/dict.{type Dict} -import gleam/result - -// A list is used as the map value as an empty list has the smallest -// representation in Erlang's binary format -@target(erlang) -type Token = - List(Nil) - -@target(erlang) -const token = [] - -@target(javascript) -type Token = - Nil - -@target(javascript) -const token = Nil - -/// A set is a collection of unique members of the same type. -/// -/// It is implemented using the `gleam/map` module, so inserts and lookups have -/// logarithmic time complexity. -/// -pub opaque type Set(member) { - Set(map: Dict(member, Token)) -} - -/// Creates a new empty set. -/// -pub fn new() -> Set(member) { - Set(dict.new()) -} - -/// Gets the number of members in a set. -/// -/// This function runs in constant time. -/// -/// ## Examples -/// -/// ```gleam -/// > new() -/// > |> insert(1) -/// > |> insert(2) -/// > |> size -/// 2 -/// ``` -/// -pub fn size(set: Set(member)) -> Int { - dict.size(set.map) -} - -/// Inserts an member into the set. -/// -/// This function runs in logarithmic time. -/// -/// ## Examples -/// -/// ```gleam -/// > new() -/// > |> insert(1) -/// > |> insert(2) -/// > |> size -/// 2 -/// ``` -/// -pub fn insert(into set: Set(member), this member: member) -> Set(member) { - Set(map: dict.insert(set.map, member, token)) -} - -/// Checks whether a set contains a given member. -/// -/// This function runs in logarithmic time. -/// -/// ## Examples -/// -/// ```gleam -/// > new() -/// > |> insert(2) -/// > |> contains(2) -/// True -/// ``` -/// -/// ```gleam -/// > new() -/// > |> insert(2) -/// > |> contains(1) -/// False -/// ``` -/// -pub fn contains(in set: Set(member), this member: member) -> Bool { - set.map - |> dict.get(member) - |> result.is_ok -} - -/// Removes a member from a set. If the set does not contain the member then -/// the set is returned unchanged. -/// -/// This function runs in logarithmic time. -/// -/// ## Examples -/// -/// ```gleam -/// > new() -/// > |> insert(2) -/// > |> delete(2) -/// > |> contains(1) -/// False -/// ``` -/// -pub fn delete(from set: Set(member), this member: member) -> Set(member) { - Set(map: dict.delete(set.map, member)) -} - -/// Converts the set into a list of the contained members. -/// -/// The list has no specific ordering, any unintentional ordering may change in -/// future versions of Gleam or Erlang. -/// -/// This function runs in linear time. -/// -/// ## Examples -/// -/// ```gleam -/// > new() |> insert(2) |> to_list -/// [2] -/// ``` -/// -pub fn to_list(set: Set(member)) -> List(member) { - dict.keys(set.map) -} - -/// Creates a new set of the members in a given list. -/// -/// This function runs in loglinear time. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/list -/// > [1, 1, 2, 4, 3, 2] |> from_list |> to_list |> list.sort -/// [1, 3, 3, 4] -/// ``` -/// -pub fn from_list(members: List(member)) -> Set(member) { - let map = - list.fold( - over: members, - from: dict.new(), - with: fn(m, k) { dict.insert(m, k, token) }, - ) - Set(map) -} - -/// Combines all entries into a single value by calling a given function on each -/// one. -/// -/// Sets are not ordered so the values are not returned in any specific order. -/// Do not write code that relies on the order entries are used by this -/// function as it may change in later versions of Gleam or Erlang. -/// -/// # Examples -/// -/// ```gleam -/// > from_list([1, 3, 9]) -/// > |> fold(0, fn(member, accumulator) { accumulator + member }) -/// 13 -/// ``` -/// -pub fn fold( - over set: Set(member), - from initial: acc, - with reducer: fn(acc, member) -> acc, -) -> acc { - dict.fold(over: set.map, from: initial, with: fn(a, k, _) { reducer(a, k) }) -} - -/// Creates a new set from an existing set, minus any members that a given -/// function returns `False` for. -/// -/// This function runs in loglinear time. -/// -/// ## Examples -/// -/// ```gleam -/// > import gleam/int -/// > from_list([1, 4, 6, 3, 675, 44, 67]) -/// > |> filter(for: int.is_even) -/// > |> to_list -/// [4, 6, 44] -/// ``` -/// -pub fn filter( - in set: Set(member), - keeping predicate: fn(member) -> Bool, -) -> Set(member) { - Set(dict.filter(in: set.map, keeping: fn(m, _) { predicate(m) })) -} - -pub fn drop(from set: Set(member), drop disallowed: List(member)) -> Set(member) { - list.fold(over: disallowed, from: set, with: delete) -} - -/// Creates a new map from a given map, only including any members which are in -/// a given list. -/// -/// This function runs in loglinear time. -/// -/// ## Examples -/// -/// ```gleam -/// > from_list([1, 2, 3]) -/// > |> take([1, 3, 5]) -/// > |> to_list -/// [1, 3] -/// ``` -/// -pub fn take(from set: Set(member), keeping desired: List(member)) -> Set(member) { - Set(dict.take(from: set.map, keeping: desired)) -} - -fn order(first: Set(member), second: Set(member)) -> #(Set(member), Set(member)) { - case dict.size(first.map) > dict.size(second.map) { - True -> #(first, second) - False -> #(second, first) - } -} - -/// Creates a new set that contains all members of both given sets. -/// -/// This function runs in loglinear time. -/// -/// ## Examples -/// -/// ```gleam -/// > union(from_list([1, 2]), from_list([2, 3])) |> to_list -/// [1, 2, 3] -/// ``` -/// -pub fn union(of first: Set(member), and second: Set(member)) -> Set(member) { - let #(larger, smaller) = order(first, second) - fold(over: smaller, from: larger, with: insert) -} - -/// Creates a new set that contains members that are present in both given sets. -/// -/// This function runs in loglinear time. -/// -/// ## Examples -/// -/// ```gleam -/// > intersection(from_list([1, 2]), from_list([2, 3])) |> to_list -/// [2] -/// ``` -/// -pub fn intersection( - of first: Set(member), - and second: Set(member), -) -> Set(member) { - let #(larger, smaller) = order(first, second) - take(from: larger, keeping: to_list(smaller)) -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/string.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/string.gleam deleted file mode 100644 index d4496f3..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/string.gleam +++ /dev/null @@ -1,906 +0,0 @@ -//// Strings in Gleam are UTF-8 binaries. They can be written in your code as -//// text surrounded by `"double quotes"`. - -import gleam/iterator.{type Iterator} -import gleam/list -import gleam/option.{type Option, None, Some} -import gleam/order -import gleam/string_builder.{type StringBuilder} - -/// Determines if a `String` is empty. -/// -/// ## Examples -/// -/// ```gleam -/// > is_empty("") -/// True -/// ``` -/// -/// ```gleam -/// > is_empty("the world") -/// False -/// ``` -/// -pub fn is_empty(str: String) -> Bool { - str == "" -} - -/// Gets the number of grapheme clusters in a given `String`. -/// -/// This function has to iterate across the whole string to count the number of -/// graphemes, so it runs in linear time. -/// -/// ## Examples -/// -/// ```gleam -/// > length("Gleam") -/// 5 -/// ``` -/// -/// ```gleam -/// > length("ß↑e̊") -/// 3 -/// ``` -/// -/// ```gleam -/// > length("") -/// 0 -/// ``` -/// -pub fn length(string: String) -> Int { - do_length(string) -} - -@external(erlang, "string", "length") -@external(javascript, "../gleam_stdlib.mjs", "string_length") -fn do_length(a: String) -> Int - -/// Reverses a `String`. -/// -/// This function has to iterate across the whole `String` so it runs in linear -/// time. -/// -/// ## Examples -/// -/// ```gleam -/// > reverse("stressed") -/// "desserts" -/// ``` -/// -pub fn reverse(string: String) -> String { - do_reverse(string) -} - -@target(erlang) -fn do_reverse(string: String) -> String { - string - |> string_builder.from_string - |> string_builder.reverse - |> string_builder.to_string -} - -@target(javascript) -fn do_reverse(string: String) -> String { - string - |> to_graphemes - |> list.reverse - |> concat -} - -/// Creates a new `String` by replacing all occurrences of a given substring. -/// -/// ## Examples -/// -/// ```gleam -/// > replace("www.example.com", each: ".", with: "-") -/// "www-example-com" -/// ``` -/// -/// ```gleam -/// > replace("a,b,c,d,e", each: ",", with: "/") -/// "a/b/c/d/e" -/// ``` -/// -pub fn replace( - in string: String, - each pattern: String, - with substitute: String, -) -> String { - string - |> string_builder.from_string - |> string_builder.replace(each: pattern, with: substitute) - |> string_builder.to_string -} - -/// Creates a new `String` with all the graphemes in the input `String` converted to -/// lowercase. -/// -/// Useful for case-insensitive comparisons. -/// -/// ## Examples -/// -/// ```gleam -/// > lowercase("X-FILES") -/// "x-files" -/// ``` -/// -pub fn lowercase(string: String) -> String { - do_lowercase(string) -} - -@external(erlang, "string", "lowercase") -@external(javascript, "../gleam_stdlib.mjs", "lowercase") -fn do_lowercase(a: String) -> String - -/// Creates a new `String` with all the graphemes in the input `String` converted to -/// uppercase. -/// -/// Useful for case-insensitive comparisons and VIRTUAL YELLING. -/// -/// ## Examples -/// -/// ```gleam -/// > uppercase("skinner") -/// "SKINNER" -/// ``` -/// -pub fn uppercase(string: String) -> String { - do_uppercase(string) -} - -@external(erlang, "string", "uppercase") -@external(javascript, "../gleam_stdlib.mjs", "uppercase") -fn do_uppercase(a: String) -> String - -/// Compares two `String`s to see which is "larger" by comparing their graphemes. -/// -/// This does not compare the size or length of the given `String`s. -/// -/// ## Examples -/// -/// ```gleam -/// > compare("Anthony", "Anthony") -/// order.Eq -/// ``` -/// -/// ```gleam -/// > compare("A", "B") -/// order.Lt -/// ``` -/// -pub fn compare(a: String, b: String) -> order.Order { - case a == b { - True -> order.Eq - _ -> - case less_than(a, b) { - True -> order.Lt - _ -> order.Gt - } - } -} - -@external(erlang, "gleam_stdlib", "less_than") -@external(javascript, "../gleam_stdlib.mjs", "less_than") -fn less_than(a: String, b: String) -> Bool - -/// Takes a substring given a start grapheme index and a length. Negative indexes -/// are taken starting from the *end* of the list. -/// -/// ## Examples -/// -/// ```gleam -/// > slice(from: "gleam", at_index: 1, length: 2) -/// "le" -/// ``` -/// -/// ```gleam -/// > slice(from: "gleam", at_index: 1, length: 10) -/// "leam" -/// ``` -/// -/// ```gleam -/// > slice(from: "gleam", at_index: 10, length: 3) -/// "" -/// ``` -/// -/// ```gleam -/// > slice(from: "gleam", at_index: -2, length: 2) -/// "am" -/// ``` -/// -/// ```gleam -/// > slice(from: "gleam", at_index: -12, length: 2) -/// "" -/// ``` -/// -pub fn slice(from string: String, at_index idx: Int, length len: Int) -> String { - case len < 0 { - True -> "" - False -> - case idx < 0 { - True -> { - let translated_idx = length(string) + idx - case translated_idx < 0 { - True -> "" - False -> do_slice(string, translated_idx, len) - } - } - False -> do_slice(string, idx, len) - } - } -} - -@target(erlang) -@external(erlang, "string", "slice") -fn do_slice(a: String, b: Int, c: Int) -> String - -@target(javascript) -fn do_slice(string: String, idx: Int, len: Int) -> String { - string - |> to_graphemes - |> list.drop(idx) - |> list.take(len) - |> concat -} - -/// Drops contents of the first `String` that occur before the second `String`. -/// If the `from` string does not contain the `before` string, `from` is returned unchanged. -/// -/// ## Examples -/// -/// ```gleam -/// > crop(from: "The Lone Gunmen", before: "Lone") -/// "Lone Gunmen" -/// ``` -/// -@external(erlang, "gleam_stdlib", "crop_string") -@external(javascript, "../gleam_stdlib.mjs", "crop_string") -pub fn crop(from string: String, before substring: String) -> String - -/// Drops *n* graphemes from the left side of a `String`. -/// -/// ## Examples -/// -/// ```gleam -/// > drop_left(from: "The Lone Gunmen", up_to: 2) -/// "e Lone Gunmen" -/// ``` -/// -pub fn drop_left(from string: String, up_to num_graphemes: Int) -> String { - case num_graphemes < 0 { - True -> string - False -> slice(string, num_graphemes, length(string) - num_graphemes) - } -} - -/// Drops *n* graphemes from the right side of a `String`. -/// -/// ## Examples -/// -/// ```gleam -/// > drop_right(from: "Cigarette Smoking Man", up_to: 2) -/// "Cigarette Smoking M" -/// ``` -/// -pub fn drop_right(from string: String, up_to num_graphemes: Int) -> String { - case num_graphemes < 0 { - True -> string - False -> slice(string, 0, length(string) - num_graphemes) - } -} - -/// Checks if the first `String` contains the second. -/// -/// ## Examples -/// -/// ```gleam -/// > contains(does: "theory", contain: "ory") -/// True -/// ``` -/// -/// ```gleam -/// > contains(does: "theory", contain: "the") -/// True -/// ``` -/// -/// ```gleam -/// > contains(does: "theory", contain: "THE") -/// False -/// ``` -/// -@external(erlang, "gleam_stdlib", "contains_string") -@external(javascript, "../gleam_stdlib.mjs", "contains_string") -pub fn contains(does haystack: String, contain needle: String) -> Bool - -/// Checks whether the first `String` starts with the second one. -/// -/// ## Examples -/// -/// ```gleam -/// > starts_with("theory", "ory") -/// False -/// ``` -/// -pub fn starts_with(string: String, prefix: String) -> Bool { - do_starts_with(string, prefix) -} - -@external(erlang, "gleam_stdlib", "string_starts_with") -@external(javascript, "../gleam_stdlib.mjs", "starts_with") -fn do_starts_with(a: String, b: String) -> Bool - -/// Checks whether the first `String` ends with the second one. -/// -/// ## Examples -/// -/// ```gleam -/// > ends_with("theory", "ory") -/// True -/// ``` -/// -pub fn ends_with(string: String, suffix: String) -> Bool { - do_ends_with(string, suffix) -} - -@external(erlang, "gleam_stdlib", "string_ends_with") -@external(javascript, "../gleam_stdlib.mjs", "ends_with") -fn do_ends_with(a: String, b: String) -> Bool - -/// Creates a list of `String`s by splitting a given string on a given substring. -/// -/// ## Examples -/// -/// ```gleam -/// > split("home/gleam/desktop/", on: "/") -/// ["home", "gleam", "desktop", ""] -/// ``` -/// -pub fn split(x: String, on substring: String) -> List(String) { - case substring { - "" -> to_graphemes(x) - _ -> - x - |> string_builder.from_string - |> string_builder.split(on: substring) - |> list.map(with: string_builder.to_string) - } -} - -/// Splits a `String` a single time on the given substring. -/// -/// Returns an `Error` if substring not present. -/// -/// ## Examples -/// -/// ```gleam -/// > split_once("home/gleam/desktop/", on: "/") -/// Ok(#("home", "gleam/desktop/")) -/// ``` -/// -/// ```gleam -/// > split_once("home/gleam/desktop/", on: "?") -/// Error(Nil) -/// ``` -/// -pub fn split_once( - x: String, - on substring: String, -) -> Result(#(String, String), Nil) { - do_split_once(x, substring) -} - -@target(erlang) -@external(erlang, "string", "split") -fn erl_split(a: String, b: String) -> List(String) - -@target(erlang) -fn do_split_once(x: String, substring: String) -> Result(#(String, String), Nil) { - case erl_split(x, substring) { - [first, rest] -> Ok(#(first, rest)) - _ -> Error(Nil) - } -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "split_once") -fn do_split_once( - x x: String, - substring substring: String, -) -> Result(#(String, String), Nil) - -/// Creates a new `String` by joining two `String`s together. -/// -/// This function copies both `String`s and runs in linear time. If you find -/// yourself joining `String`s frequently consider using the [`string_builder`](../gleam/string_builder.html) -/// module as it can append `String`s much faster! -/// -/// ## Examples -/// -/// ```gleam -/// > append(to: "butter", suffix: "fly") -/// "butterfly" -/// ``` -/// -pub fn append(to first: String, suffix second: String) -> String { - first - |> string_builder.from_string - |> string_builder.append(second) - |> string_builder.to_string -} - -/// Creates a new `String` by joining many `String`s together. -/// -/// This function copies both `String`s and runs in linear time. If you find -/// yourself joining `String`s frequently consider using the [`string_builder`](../gleam/string_builder.html) -/// module as it can append `String`s much faster! -/// -/// ## Examples -/// -/// ```gleam -/// > concat(["never", "the", "less"]) -/// "nevertheless" -/// ``` -/// -pub fn concat(strings: List(String)) -> String { - strings - |> string_builder.from_strings - |> string_builder.to_string -} - -/// Creates a new `String` by repeating a `String` a given number of times. -/// -/// This function runs in linear time. -/// -/// ## Examples -/// -/// ```gleam -/// > repeat("ha", times: 3) -/// "hahaha" -/// ``` -/// -pub fn repeat(string: String, times times: Int) -> String { - iterator.repeat(string) - |> iterator.take(times) - |> iterator.to_list - |> concat -} - -/// Joins many `String`s together with a given separator. -/// -/// This function runs in linear time. -/// -/// ## Examples -/// -/// ```gleam -/// > join(["home","evan","Desktop"], with: "/") -/// "home/evan/Desktop" -/// ``` -/// -pub fn join(strings: List(String), with separator: String) -> String { - do_join(strings, separator) -} - -@target(erlang) -fn do_join(strings: List(String), separator: String) -> String { - strings - |> list.intersperse(with: separator) - |> concat -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "join") -fn do_join(strings strings: List(String), string string: String) -> String - -/// Pads a `String` on the left until it has at least given number of graphemes. -/// -/// ## Examples -/// -/// ```gleam -/// > pad_left("121", to: 5, with: ".") -/// "..121" -/// ``` -/// -/// ```gleam -/// > pad_left("121", to: 3, with: ".") -/// "121" -/// ``` -/// -/// ```gleam -/// > pad_left("121", to: 2, with: ".") -/// "121" -/// ``` -/// -pub fn pad_left(string: String, to desired_length: Int, with pad_string: String) { - let current_length = length(string) - let to_pad_length = desired_length - current_length - padding(to_pad_length, pad_string) - |> iterator.append(iterator.single(string)) - |> iterator.to_list - |> concat -} - -/// Pads a `String` on the right until it has a given length. -/// -/// ## Examples -/// -/// ```gleam -/// > pad_right("123", to: 5, with: ".") -/// "123.." -/// ``` -/// -/// ```gleam -/// > pad_right("123", to: 3, with: ".") -/// "123" -/// ``` -/// -/// ```gleam -/// > pad_right("123", to: 2, with: ".") -/// "123" -/// ``` -/// -pub fn pad_right( - string: String, - to desired_length: Int, - with pad_string: String, -) { - let current_length = length(string) - let to_pad_length = desired_length - current_length - iterator.single(string) - |> iterator.append(padding(to_pad_length, pad_string)) - |> iterator.to_list - |> concat -} - -fn padding(size: Int, pad_string: String) -> Iterator(String) { - let pad_length = length(pad_string) - let num_pads = size / pad_length - let extra = size % pad_length - iterator.repeat(pad_string) - |> iterator.take(num_pads) - |> iterator.append(iterator.single(slice(pad_string, 0, extra))) -} - -/// Removes whitespace on both sides of a `String`. -/// -/// ## Examples -/// -/// ```gleam -/// > trim(" hats \n") -/// "hats" -/// ``` -/// -pub fn trim(string: String) -> String { - do_trim(string) -} - -@target(erlang) -fn do_trim(string: String) -> String { - erl_trim(string, Both) -} - -@target(erlang) -type Direction { - Leading - Trailing - Both -} - -@target(erlang) -@external(erlang, "string", "trim") -fn erl_trim(a: String, b: Direction) -> String - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "trim") -fn do_trim(string string: String) -> String - -/// Removes whitespace on the left of a `String`. -/// -/// ## Examples -/// -/// ```gleam -/// > trim_left(" hats \n") -/// "hats \n" -/// ``` -/// -pub fn trim_left(string: String) -> String { - do_trim_left(string) -} - -@target(erlang) -fn do_trim_left(string: String) -> String { - erl_trim(string, Leading) -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "trim_left") -fn do_trim_left(string string: String) -> String - -/// Removes whitespace on the right of a `String`. -/// -/// ## Examples -/// -/// ```gleam -/// > trim_right(" hats \n") -/// " hats" -/// ``` -/// -pub fn trim_right(string: String) -> String { - do_trim_right(string) -} - -@target(erlang) -fn do_trim_right(string: String) -> String { - erl_trim(string, Trailing) -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "trim_right") -fn do_trim_right(string string: String) -> String - -/// Splits a non-empty `String` into its first element (head) and rest (tail). -/// This lets you pattern match on `String`s exactly as you would with lists. -/// -/// Note on JavaScript using the function to iterate over a string will likely -/// be slower than using `to_graphemes` due to string slicing being more -/// expensive on JavaScript than Erlang. -/// -/// ## Examples -/// -/// ```gleam -/// > pop_grapheme("gleam") -/// Ok(#("g", "leam")) -/// ``` -/// -/// ```gleam -/// > pop_grapheme("") -/// Error(Nil) -/// ``` -/// -pub fn pop_grapheme(string: String) -> Result(#(String, String), Nil) { - do_pop_grapheme(string) -} - -@external(erlang, "gleam_stdlib", "string_pop_grapheme") -@external(javascript, "../gleam_stdlib.mjs", "pop_grapheme") -fn do_pop_grapheme(string string: String) -> Result(#(String, String), Nil) - -/// Converts a `String` to a list of -/// [graphemes](https://en.wikipedia.org/wiki/Grapheme). -/// -/// ```gleam -/// > to_graphemes("abc") -/// ["a", "b", "c"] -/// ``` -/// -@external(javascript, "../gleam_stdlib.mjs", "graphemes") -pub fn to_graphemes(string: String) -> List(String) { - do_to_graphemes(string, []) - |> list.reverse -} - -fn do_to_graphemes(string: String, acc: List(String)) -> List(String) { - case pop_grapheme(string) { - Ok(#(grapheme, rest)) -> do_to_graphemes(rest, [grapheme, ..acc]) - _ -> acc - } -} - -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "codepoint") -fn unsafe_int_to_utf_codepoint(a: Int) -> UtfCodepoint - -/// Converts a `String` to a `List` of `UtfCodepoint`. -/// -/// See and -/// for an -/// explanation on code points. -/// -/// ## Examples -/// -/// ```gleam -/// > "a" |> to_utf_codepoints -/// [UtfCodepoint(97)] -/// ``` -/// -/// ```gleam -/// // Semantically the same as: -/// // ["🏳", "️", "‍", "🌈"] or: -/// // [waving_white_flag, variant_selector_16, zero_width_joiner, rainbow] -/// > "🏳️‍🌈" |> to_utf_codepoints -/// [UtfCodepoint(127987), UtfCodepoint(65039), UtfCodepoint(8205), UtfCodepoint(127752)] -/// ``` -/// -pub fn to_utf_codepoints(string: String) -> List(UtfCodepoint) { - do_to_utf_codepoints(string) -} - -@target(erlang) -fn do_to_utf_codepoints(string: String) -> List(UtfCodepoint) { - do_to_utf_codepoints_impl(<>, []) - |> list.reverse -} - -@target(erlang) -fn do_to_utf_codepoints_impl( - bit_array: BitArray, - acc: List(UtfCodepoint), -) -> List(UtfCodepoint) { - case bit_array { - <> -> - do_to_utf_codepoints_impl(rest, [first, ..acc]) - _ -> acc - } -} - -@target(javascript) -fn do_to_utf_codepoints(string: String) -> List(UtfCodepoint) { - string - |> string_to_codepoint_integer_list - |> list.map(unsafe_int_to_utf_codepoint) -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "string_to_codepoint_integer_list") -fn string_to_codepoint_integer_list(a: String) -> List(Int) - -/// Converts a `List` of `UtfCodepoint`s to a `String`. -/// -/// See and -/// for an -/// explanation on code points. -/// -/// ## Examples -/// -/// ```gleam -/// > { -/// > let assert #(Ok(a), Ok(b), Ok(c)) = #( -/// > utf_codepoint(97), -/// > utf_codepoint(98), -/// > utf_codepoint(99), -/// > ) -/// > [a, b, c] -/// > } -/// > |> from_utf_codepoints -/// "abc" -/// ``` -/// -@external(erlang, "gleam_stdlib", "utf_codepoint_list_to_string") -@external(javascript, "../gleam_stdlib.mjs", "utf_codepoint_list_to_string") -pub fn from_utf_codepoints(utf_codepoints: List(UtfCodepoint)) -> String - -/// Converts an integer to a `UtfCodepoint`. -/// -/// Returns an `Error` if the integer does not represent a valid UTF codepoint. -/// -pub fn utf_codepoint(value: Int) -> Result(UtfCodepoint, Nil) { - case value { - i if i > 1_114_111 -> Error(Nil) - 65_534 | 65_535 -> Error(Nil) - i if i >= 55_296 && i <= 57_343 -> Error(Nil) - i -> Ok(unsafe_int_to_utf_codepoint(i)) - } -} - -/// Converts an UtfCodepoint to its ordinal code point value. -/// -/// ## Examples -/// -/// ```gleam -/// > let assert [utf_codepoint, ..] = to_utf_codepoints("💜") -/// > utf_codepoint_to_int(utf_codepoint) -/// 128156 -/// ``` -/// -pub fn utf_codepoint_to_int(cp: UtfCodepoint) -> Int { - do_utf_codepoint_to_int(cp) -} - -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "utf_codepoint_to_int") -fn do_utf_codepoint_to_int(cp cp: UtfCodepoint) -> Int - -/// Converts a `String` into `Option(String)` where an empty `String` becomes -/// `None`. -/// -/// ## Examples -/// -/// ```gleam -/// > to_option("") -/// None -/// ``` -/// -/// ```gleam -/// > to_option("hats") -/// Some("hats") -/// ``` -/// -pub fn to_option(s: String) -> Option(String) { - case s { - "" -> None - _ -> Some(s) - } -} - -/// Returns the first grapheme cluster in a given `String` and wraps it in a -/// `Result(String, Nil)`. If the `String` is empty, it returns `Error(Nil)`. -/// Otherwise, it returns `Ok(String)`. -/// -/// ## Examples -/// -/// ```gleam -/// > first("") -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > first("icecream") -/// Ok("i") -/// ``` -/// -pub fn first(s: String) -> Result(String, Nil) { - case pop_grapheme(s) { - Ok(#(first, _)) -> Ok(first) - Error(e) -> Error(e) - } -} - -/// Returns the last grapheme cluster in a given `String` and wraps it in a -/// `Result(String, Nil)`. If the `String` is empty, it returns `Error(Nil)`. -/// Otherwise, it returns `Ok(String)`. -/// -/// ## Examples -/// -/// ```gleam -/// > last("") -/// Error(Nil) -/// ``` -/// -/// ```gleam -/// > last("icecream") -/// Ok("m") -/// ``` -/// -pub fn last(s: String) -> Result(String, Nil) { - case pop_grapheme(s) { - Ok(#(first, "")) -> Ok(first) - Ok(#(_, rest)) -> Ok(slice(rest, -1, 1)) - Error(e) -> Error(e) - } -} - -/// Creates a new `String` with the first grapheme in the input `String` -/// converted to uppercase and the remaining graphemes to lowercase. -/// -/// ## Examples -/// -/// ```gleam -/// > capitalise("mamouna") -/// "Mamouna" -/// ``` -/// -pub fn capitalise(s: String) -> String { - case pop_grapheme(s) { - Ok(#(first, rest)) -> append(to: uppercase(first), suffix: lowercase(rest)) - _ -> "" - } -} - -/// Returns a `String` representation of a term in Gleam syntax. -/// -pub fn inspect(term: anything) -> String { - do_inspect(term) - |> string_builder.to_string -} - -@external(erlang, "gleam_stdlib", "inspect") -@external(javascript, "../gleam_stdlib.mjs", "inspect") -fn do_inspect(term term: anything) -> StringBuilder - -/// Returns the number of bytes in a `String`. -/// -/// This function runs in constant time on Erlang and in linear time on -/// JavaScript. -/// -@external(erlang, "erlang", "byte_size") -@external(javascript, "../gleam_stdlib.mjs", "byte_size") -pub fn byte_size(string: String) -> Int diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/string_builder.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/string_builder.gleam deleted file mode 100644 index 5792ca8..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/string_builder.gleam +++ /dev/null @@ -1,298 +0,0 @@ -import gleam/list - -/// `StringBuilder` is a type used for efficiently building strings. -/// -/// When we append one string to another the strings must be copied to a -/// new location in memory so that they can sit together. This behaviour -/// enables efficient reading of the string but copying can be expensive, -/// especially if we want to join many strings together. -/// -/// `StringBuilder` is different in that it can be joined together in constant time -/// using minimal memory, and then can be efficiently converted to a string -/// using the `to_string` function. -/// -/// On Erlang this type is compatible with Erlang's iodata. On JavaScript this -/// type is compatible with normal strings. -/// -pub type StringBuilder - -/// Create an empty `StringBuilder`. Useful as the start of a pipe chaining many -/// builders together. -/// -pub fn new() -> StringBuilder { - do_from_strings([]) -} - -/// Prepends a `String` onto the start of some `StringBuilder`. -/// -/// Runs in constant time. -/// -pub fn prepend( - to builder: StringBuilder, - prefix prefix: String, -) -> StringBuilder { - append_builder(from_string(prefix), builder) -} - -/// Appends a `String` onto the end of some `StringBuilder`. -/// -/// Runs in constant time. -/// -pub fn append(to builder: StringBuilder, suffix second: String) -> StringBuilder { - append_builder(builder, from_string(second)) -} - -/// Prepends some `StringBuilder` onto the start of another. -/// -/// Runs in constant time. -/// -pub fn prepend_builder( - to builder: StringBuilder, - prefix prefix: StringBuilder, -) -> StringBuilder { - do_append(prefix, builder) -} - -/// Appends some `StringBuilder` onto the end of another. -/// -/// Runs in constant time. -/// -pub fn append_builder( - to builder: StringBuilder, - suffix suffix: StringBuilder, -) -> StringBuilder { - do_append(builder, suffix) -} - -@external(erlang, "gleam_stdlib", "iodata_append") -@external(javascript, "../gleam_stdlib.mjs", "add") -fn do_append(a: StringBuilder, b: StringBuilder) -> StringBuilder - -/// Converts a list of strings into a builder. -/// -/// Runs in constant time. -/// -pub fn from_strings(strings: List(String)) -> StringBuilder { - do_from_strings(strings) -} - -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "concat") -fn do_from_strings(a: List(String)) -> StringBuilder - -/// Joins a list of builders into a single builder. -/// -/// Runs in constant time. -/// -pub fn concat(builders: List(StringBuilder)) -> StringBuilder { - do_concat(builders) -} - -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "concat") -fn do_concat(a: List(StringBuilder)) -> StringBuilder - -/// Converts a string into a builder. -/// -/// Runs in constant time. -/// -pub fn from_string(string: String) -> StringBuilder { - do_from_string(string) -} - -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "identity") -fn do_from_string(a: String) -> StringBuilder - -/// Turns an `StringBuilder` into a `String` -/// -/// This function is implemented natively by the virtual machine and is highly -/// optimised. -/// -pub fn to_string(builder: StringBuilder) -> String { - do_to_string(builder) -} - -@external(erlang, "unicode", "characters_to_binary") -@external(javascript, "../gleam_stdlib.mjs", "identity") -fn do_to_string(a: StringBuilder) -> String - -/// Returns the size of the `StringBuilder` in bytes. -/// -pub fn byte_size(builder: StringBuilder) -> Int { - do_byte_size(builder) -} - -@external(erlang, "erlang", "iolist_size") -@external(javascript, "../gleam_stdlib.mjs", "length") -fn do_byte_size(a: StringBuilder) -> Int - -/// Joins the given builders into a new builder separated with the given string -/// -pub fn join(builders: List(StringBuilder), with sep: String) -> StringBuilder { - builders - |> list.intersperse(from_string(sep)) - |> concat -} - -/// Converts a builder to a new builder where the contents have been -/// lowercased. -/// -pub fn lowercase(builder: StringBuilder) -> StringBuilder { - do_lowercase(builder) -} - -@external(erlang, "string", "lowercase") -@external(javascript, "../gleam_stdlib.mjs", "lowercase") -fn do_lowercase(a: StringBuilder) -> StringBuilder - -/// Converts a builder to a new builder where the contents have been -/// uppercased. -/// -pub fn uppercase(builder: StringBuilder) -> StringBuilder { - do_uppercase(builder) -} - -@external(erlang, "string", "uppercase") -@external(javascript, "../gleam_stdlib.mjs", "uppercase") -fn do_uppercase(a: StringBuilder) -> StringBuilder - -/// Converts a builder to a new builder with the contents reversed. -/// -pub fn reverse(builder: StringBuilder) -> StringBuilder { - do_reverse(builder) -} - -@target(erlang) -@external(erlang, "string", "reverse") -fn do_reverse(a: StringBuilder) -> StringBuilder - -@target(javascript) -fn do_reverse(builder: StringBuilder) -> StringBuilder { - builder - |> to_string - |> do_to_graphemes - |> list.reverse - |> from_strings -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "graphemes") -fn do_to_graphemes(string string: String) -> List(String) - -/// Splits a builder on a given pattern into a list of builders. -/// -pub fn split(iodata: StringBuilder, on pattern: String) -> List(StringBuilder) { - do_split(iodata, pattern) -} - -@target(erlang) -type Direction { - All -} - -@target(erlang) -@external(erlang, "string", "split") -fn erl_split(a: StringBuilder, b: String, c: Direction) -> List(StringBuilder) - -@target(erlang) -fn do_split(iodata: StringBuilder, pattern: String) -> List(StringBuilder) { - erl_split(iodata, pattern, All) -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "split") -fn do_split( - builder builder: StringBuilder, - pattern pattern: String, -) -> List(StringBuilder) - -/// Replaces all instances of a pattern with a given string substitute. -/// -pub fn replace( - in builder: StringBuilder, - each pattern: String, - with substitute: String, -) -> StringBuilder { - do_replace(builder, pattern, substitute) -} - -@target(erlang) -fn do_replace( - iodata: StringBuilder, - pattern: String, - substitute: String, -) -> StringBuilder { - erl_replace(iodata, pattern, substitute, All) -} - -@target(erlang) -@external(erlang, "string", "replace") -fn erl_replace( - a: StringBuilder, - b: String, - c: String, - d: Direction, -) -> StringBuilder - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "string_replace") -fn do_replace(a: StringBuilder, b: String, c: String) -> StringBuilder - -/// Compares two builders to determine if they have the same textual content. -/// -/// Comparing two iodata using the `==` operator may return `False` even if they -/// have the same content as they may have been build in different ways, so -/// using this function is often preferred. -/// -/// ## Examples -/// -/// ```gleam -/// > from_strings(["a", "b"]) == from_string("ab") -/// False -/// ``` -/// -/// ```gleam -/// > is_equal(from_strings(["a", "b"]), from_string("ab")) -/// True -/// ``` -/// -pub fn is_equal(a: StringBuilder, b: StringBuilder) -> Bool { - do_is_equal(a, b) -} - -@external(erlang, "string", "equal") -@external(javascript, "../gleam_stdlib.mjs", "equal") -fn do_is_equal(a: StringBuilder, b: StringBuilder) -> Bool - -/// Inspects a builder to determine if it is equivalent to an empty string. -/// -/// ## Examples -/// -/// ```gleam -/// > from_string("ok") |> is_empty -/// False -/// ``` -/// -/// ```gleam -/// > from_string("") |> is_empty -/// True -/// ``` -/// -/// ```gleam -/// > from_strings([]) |> is_empty -/// True -/// ``` -/// -pub fn is_empty(builder: StringBuilder) -> Bool { - do_is_empty(builder) -} - -@target(erlang) -@external(erlang, "string", "is_empty") -fn do_is_empty(a: StringBuilder) -> Bool - -@target(javascript) -fn do_is_empty(builder: StringBuilder) -> Bool { - from_string("") == builder -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam/uri.gleam b/aoc2023/build/packages/gleam_stdlib/src/gleam/uri.gleam deleted file mode 100644 index 11f6ea6..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam/uri.gleam +++ /dev/null @@ -1,462 +0,0 @@ -//// Utilities for working with URIs -//// -//// This module provides functions for working with URIs (for example, parsing -//// URIs or encoding query strings). The functions in this module are implemented -//// according to [RFC 3986](https://tools.ietf.org/html/rfc3986). -//// -//// Query encoding (Form encoding) is defined in the -//// [W3C specification](https://www.w3.org/TR/html52/sec-forms.html#urlencoded-form-data). - -import gleam/int -import gleam/list -import gleam/option.{type Option, None, Some} -import gleam/string -import gleam/string_builder.{type StringBuilder} -@target(javascript) -import gleam/pair -@target(javascript) -import gleam/regex -@target(javascript) -import gleam/result - -/// Type representing holding the parsed components of an URI. -/// All components of a URI are optional, except the path. -/// -pub type Uri { - Uri( - scheme: Option(String), - userinfo: Option(String), - host: Option(String), - port: Option(Int), - path: String, - query: Option(String), - fragment: Option(String), - ) -} - -/// Parses a compliant URI string into the `Uri` Type. -/// If the string is not a valid URI string then an error is returned. -/// -/// The opposite operation is `uri.to_string`. -/// -/// ## Examples -/// -/// ```gleam -/// > parse("https://example.com:1234/a/b?query=true#fragment") -/// Ok( -/// Uri( -/// scheme: Some("https"), -/// userinfo: None, -/// host: Some("example.com"), -/// port: Some(1234), -/// path: "/a/b", -/// query: Some("query=true"), -/// fragment: Some("fragment") -/// ) -/// ) -/// ``` -/// -pub fn parse(uri_string: String) -> Result(Uri, Nil) { - do_parse(uri_string) -} - -@target(erlang) -@external(erlang, "gleam_stdlib", "uri_parse") -fn do_parse(a: String) -> Result(Uri, Nil) - -@target(javascript) -fn do_parse(uri_string: String) -> Result(Uri, Nil) { - // From https://tools.ietf.org/html/rfc3986#appendix-B - let pattern = - // 12 3 4 5 6 7 8 - "^(([a-z][a-z0-9\\+\\-\\.]*):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#.*)?" - let matches = - pattern - |> regex_submatches(uri_string) - |> pad_list(8) - - let #(scheme, authority, path, query, fragment) = case matches { - [ - _scheme_with_colon, - scheme, - authority_with_slashes, - _authority, - path, - query_with_question_mark, - _query, - fragment, - ] -> #( - scheme, - authority_with_slashes, - path, - query_with_question_mark, - fragment, - ) - _ -> #(None, None, None, None, None) - } - - let scheme = noneify_empty_string(scheme) - let path = option.unwrap(path, "") - let query = noneify_query(query) - let #(userinfo, host, port) = split_authority(authority) - let fragment = - fragment - |> option.to_result(Nil) - |> result.try(string.pop_grapheme) - |> result.map(pair.second) - |> option.from_result - let scheme = - scheme - |> noneify_empty_string - |> option.map(string.lowercase) - Ok(Uri( - scheme: scheme, - userinfo: userinfo, - host: host, - port: port, - path: path, - query: query, - fragment: fragment, - )) -} - -@target(javascript) -fn regex_submatches(pattern: String, string: String) -> List(Option(String)) { - pattern - |> regex.compile(regex.Options(case_insensitive: True, multi_line: False)) - |> result.nil_error - |> result.map(regex.scan(_, string)) - |> result.try(list.first) - |> result.map(fn(m: regex.Match) { m.submatches }) - |> result.unwrap([]) -} - -@target(javascript) -fn noneify_query(x: Option(String)) -> Option(String) { - case x { - None -> None - Some(x) -> - case string.pop_grapheme(x) { - Ok(#("?", query)) -> Some(query) - _ -> None - } - } -} - -@target(javascript) -fn noneify_empty_string(x: Option(String)) -> Option(String) { - case x { - Some("") | None -> None - Some(_) -> x - } -} - -// Split an authority into its userinfo, host and port parts. -@target(javascript) -fn split_authority( - authority: Option(String), -) -> #(Option(String), Option(String), Option(Int)) { - case option.unwrap(authority, "") { - "" -> #(None, None, None) - "//" -> #(None, Some(""), None) - authority -> { - let matches = - "^(//)?((.*)@)?(\\[[a-zA-Z0-9:.]*\\]|[^:]*)(:(\\d*))?" - |> regex_submatches(authority) - |> pad_list(6) - case matches { - [_, _, userinfo, host, _, port] -> { - let userinfo = noneify_empty_string(userinfo) - let host = noneify_empty_string(host) - let port = - port - |> option.unwrap("") - |> int.parse - |> option.from_result - #(userinfo, host, port) - } - _ -> #(None, None, None) - } - } - } -} - -@target(javascript) -fn pad_list(list: List(Option(a)), size: Int) -> List(Option(a)) { - list - |> list.append(list.repeat(None, extra_required(list, size))) -} - -@target(javascript) -fn extra_required(list: List(a), remaining: Int) -> Int { - case list { - _ if remaining == 0 -> 0 - [] -> remaining - [_, ..xs] -> extra_required(xs, remaining - 1) - } -} - -/// Parses an urlencoded query string into a list of key value pairs. -/// Returns an error for invalid encoding. -/// -/// The opposite operation is `uri.query_to_string`. -/// -/// ## Examples -/// -/// ```gleam -/// > parse_query("a=1&b=2") -/// Ok([#("a", "1"), #("b", "2")]) -/// ``` -/// -pub fn parse_query(query: String) -> Result(List(#(String, String)), Nil) { - do_parse_query(query) -} - -@external(erlang, "gleam_stdlib", "parse_query") -@external(javascript, "../gleam_stdlib.mjs", "parse_query") -fn do_parse_query(a: String) -> Result(List(#(String, String)), Nil) - -/// Encodes a list of key value pairs as a URI query string. -/// -/// The opposite operation is `uri.parse_query`. -/// -/// ## Examples -/// -/// ```gleam -/// > query_to_string([#("a", "1"), #("b", "2")]) -/// "a=1&b=2" -/// ``` -/// -pub fn query_to_string(query: List(#(String, String))) -> String { - query - |> list.map(query_pair) - |> list.intersperse(string_builder.from_string("&")) - |> string_builder.concat - |> string_builder.to_string -} - -fn query_pair(pair: #(String, String)) -> StringBuilder { - string_builder.from_strings([ - percent_encode(pair.0), - "=", - percent_encode(pair.1), - ]) -} - -/// Encodes a string into a percent encoded representation. -/// -/// ## Examples -/// -/// ```gleam -/// > percent_encode("100% great") -/// "100%25%20great" -/// ``` -/// -pub fn percent_encode(value: String) -> String { - do_percent_encode(value) -} - -@external(erlang, "gleam_stdlib", "percent_encode") -@external(javascript, "../gleam_stdlib.mjs", "percent_encode") -fn do_percent_encode(a: String) -> String - -/// Decodes a percent encoded string. -/// -/// ## Examples -/// -/// ```gleam -/// > percent_decode("100%25+great") -/// Ok("100% great") -/// ``` -/// -pub fn percent_decode(value: String) -> Result(String, Nil) { - do_percent_decode(value) -} - -@external(erlang, "gleam_stdlib", "percent_decode") -@external(javascript, "../gleam_stdlib.mjs", "percent_decode") -fn do_percent_decode(a: String) -> Result(String, Nil) - -fn do_remove_dot_segments( - input: List(String), - accumulator: List(String), -) -> List(String) { - case input { - [] -> list.reverse(accumulator) - [segment, ..rest] -> { - let accumulator = case segment, accumulator { - "", accumulator -> accumulator - ".", accumulator -> accumulator - "..", [] -> [] - "..", [_, ..accumulator] -> accumulator - segment, accumulator -> [segment, ..accumulator] - } - do_remove_dot_segments(rest, accumulator) - } - } -} - -fn remove_dot_segments(input: List(String)) -> List(String) { - do_remove_dot_segments(input, []) -} - -/// Splits the path section of a URI into it's constituent segments. -/// -/// Removes empty segments and resolves dot-segments as specified in -/// [section 5.2](https://www.ietf.org/rfc/rfc3986.html#section-5.2) of the RFC. -/// -/// ## Examples -/// -/// ```gleam -/// > path_segments("/users/1") -/// ["users" ,"1"] -/// ``` -/// -pub fn path_segments(path: String) -> List(String) { - remove_dot_segments(string.split(path, "/")) -} - -/// Encodes a `Uri` value as a URI string. -/// -/// The opposite operation is `uri.parse`. -/// -/// ## Examples -/// -/// ```gleam -/// > let uri = Uri(Some("http"), None, Some("example.com"), ...) -/// > to_string(uri) -/// "http://example.com" -/// ``` -/// -pub fn to_string(uri: Uri) -> String { - let parts = case uri.fragment { - Some(fragment) -> ["#", fragment] - _ -> [] - } - let parts = case uri.query { - Some(query) -> ["?", query, ..parts] - _ -> parts - } - let parts = [uri.path, ..parts] - let parts = case uri.host, string.starts_with(uri.path, "/") { - Some(host), False if host != "" -> ["/", ..parts] - _, _ -> parts - } - let parts = case uri.host, uri.port { - Some(_), Some(port) -> [":", int.to_string(port), ..parts] - _, _ -> parts - } - let parts = case uri.scheme, uri.userinfo, uri.host { - Some(s), Some(u), Some(h) -> [s, "://", u, "@", h, ..parts] - Some(s), None, Some(h) -> [s, "://", h, ..parts] - Some(s), Some(_), None | Some(s), None, None -> [s, ":", ..parts] - None, None, Some(h) -> ["//", h, ..parts] - _, _, _ -> parts - } - string.concat(parts) -} - -/// Fetches the origin of a URI. -/// -/// Returns the origin of a uri as defined in -/// [RFC 6454](https://tools.ietf.org/html/rfc6454) -/// -/// The supported URI schemes are `http` and `https`. -/// URLs without a scheme will return `Error`. -/// -/// ## Examples -/// -/// ```gleam -/// > let assert Ok(uri) = parse("http://example.com/path?foo#bar") -/// > origin(uri) -/// Ok("http://example.com") -/// ``` -/// -pub fn origin(uri: Uri) -> Result(String, Nil) { - let Uri(scheme: scheme, host: host, port: port, ..) = uri - case scheme { - Some("https") if port == Some(443) -> { - let origin = Uri(scheme, None, host, None, "", None, None) - Ok(to_string(origin)) - } - Some("http") if port == Some(80) -> { - let origin = Uri(scheme, None, host, None, "", None, None) - Ok(to_string(origin)) - } - Some(s) if s == "http" || s == "https" -> { - let origin = Uri(scheme, None, host, port, "", None, None) - Ok(to_string(origin)) - } - _ -> Error(Nil) - } -} - -fn drop_last(elements: List(a)) -> List(a) { - list.take(from: elements, up_to: list.length(elements) - 1) -} - -fn join_segments(segments: List(String)) -> String { - string.join(["", ..segments], "/") -} - -/// Resolves a URI with respect to the given base URI. -/// -/// The base URI must be an absolute URI or this function will return an error. -/// The algorithm for merging uris is described in -/// [RFC 3986](https://tools.ietf.org/html/rfc3986#section-5.2). -/// -pub fn merge(base: Uri, relative: Uri) -> Result(Uri, Nil) { - case base { - Uri(scheme: Some(_), host: Some(_), ..) -> - case relative { - Uri(host: Some(_), ..) -> { - let path = - string.split(relative.path, "/") - |> remove_dot_segments() - |> join_segments() - let resolved = - Uri( - option.or(relative.scheme, base.scheme), - None, - relative.host, - option.or(relative.port, base.port), - path, - relative.query, - relative.fragment, - ) - Ok(resolved) - } - _ -> { - let #(new_path, new_query) = case relative.path { - "" -> #(base.path, option.or(relative.query, base.query)) - _ -> { - let path_segments = case string.starts_with(relative.path, "/") { - True -> string.split(relative.path, "/") - False -> - string.split(base.path, "/") - |> drop_last() - |> list.append(string.split(relative.path, "/")) - } - let path = - path_segments - |> remove_dot_segments() - |> join_segments() - #(path, relative.query) - } - } - let resolved = - Uri( - base.scheme, - None, - base.host, - base.port, - new_path, - new_query, - relative.fragment, - ) - Ok(resolved) - } - } - _ -> Error(Nil) - } -} diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@base.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@base.erl deleted file mode 100644 index 65bc3f6..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@base.erl +++ /dev/null @@ -1,20 +0,0 @@ --module(gleam@base). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([encode64/2, decode64/1, url_encode64/2, url_decode64/1]). - --spec encode64(bitstring(), boolean()) -> binary(). -encode64(Input, Padding) -> - gleam@bit_array:base64_encode(Input, Padding). - --spec decode64(binary()) -> {ok, bitstring()} | {error, nil}. -decode64(Encoded) -> - gleam@bit_array:base64_decode(Encoded). - --spec url_encode64(bitstring(), boolean()) -> binary(). -url_encode64(Input, Padding) -> - gleam@bit_array:base64_url_encode(Input, Padding). - --spec url_decode64(binary()) -> {ok, bitstring()} | {error, nil}. -url_decode64(Encoded) -> - gleam@bit_array:base64_url_decode(Encoded). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_array.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_array.erl deleted file mode 100644 index ba18dfa..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_array.erl +++ /dev/null @@ -1,102 +0,0 @@ --module(gleam@bit_array). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_string/1, byte_size/1, slice/3, is_utf8/1, to_string/1, concat/1, append/2, base64_encode/2, base64_decode/1, base64_url_encode/2, base64_url_decode/1, base16_encode/1, base16_decode/1]). - --spec from_string(binary()) -> bitstring(). -from_string(X) -> - gleam_stdlib:identity(X). - --spec byte_size(bitstring()) -> integer(). -byte_size(X) -> - erlang:byte_size(X). - --spec slice(bitstring(), integer(), integer()) -> {ok, bitstring()} | - {error, nil}. -slice(String, Position, Length) -> - gleam_stdlib:bit_array_slice(String, Position, Length). - --spec do_is_utf8(bitstring()) -> boolean(). -do_is_utf8(Bits) -> - case Bits of - <<>> -> - true; - - <<_/utf8, Rest/binary>> -> - do_is_utf8(Rest); - - _ -> - false - end. - --spec is_utf8(bitstring()) -> boolean(). -is_utf8(Bits) -> - do_is_utf8(Bits). - --spec do_to_string(bitstring()) -> {ok, binary()} | {error, nil}. -do_to_string(Bits) -> - case is_utf8(Bits) of - true -> - {ok, gleam_stdlib:identity(Bits)}; - - false -> - {error, nil} - end. - --spec to_string(bitstring()) -> {ok, binary()} | {error, nil}. -to_string(Bits) -> - do_to_string(Bits). - --spec concat(list(bitstring())) -> bitstring(). -concat(Bit_arrays) -> - gleam_stdlib:bit_array_concat(Bit_arrays). - --spec append(bitstring(), bitstring()) -> bitstring(). -append(First, Second) -> - gleam_stdlib:bit_array_concat([First, Second]). - --spec base64_encode(bitstring(), boolean()) -> binary(). -base64_encode(Input, Padding) -> - Encoded = base64:encode(Input), - case Padding of - true -> - Encoded; - - false -> - gleam@string:replace(Encoded, <<"="/utf8>>, <<""/utf8>>) - end. - --spec base64_decode(binary()) -> {ok, bitstring()} | {error, nil}. -base64_decode(Encoded) -> - Padded = case erlang:byte_size(gleam_stdlib:identity(Encoded)) rem 4 of - 0 -> - Encoded; - - N -> - gleam@string:append( - Encoded, - gleam@string:repeat(<<"="/utf8>>, 4 - N) - ) - end, - gleam_stdlib:base_decode64(Padded). - --spec base64_url_encode(bitstring(), boolean()) -> binary(). -base64_url_encode(Input, Padding) -> - _pipe = base64_encode(Input, Padding), - _pipe@1 = gleam@string:replace(_pipe, <<"+"/utf8>>, <<"-"/utf8>>), - gleam@string:replace(_pipe@1, <<"/"/utf8>>, <<"_"/utf8>>). - --spec base64_url_decode(binary()) -> {ok, bitstring()} | {error, nil}. -base64_url_decode(Encoded) -> - _pipe = Encoded, - _pipe@1 = gleam@string:replace(_pipe, <<"-"/utf8>>, <<"+"/utf8>>), - _pipe@2 = gleam@string:replace(_pipe@1, <<"_"/utf8>>, <<"/"/utf8>>), - base64_decode(_pipe@2). - --spec base16_encode(bitstring()) -> binary(). -base16_encode(Input) -> - binary:encode_hex(Input). - --spec base16_decode(binary()) -> {ok, bitstring()} | {error, nil}. -base16_decode(Input) -> - gleam_stdlib:base16_decode(Input). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_builder.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_builder.erl deleted file mode 100644 index 284c6d4..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_builder.erl +++ /dev/null @@ -1,66 +0,0 @@ --module(gleam@bit_builder). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/0, prepend/2, append/2, prepend_builder/2, append_builder/2, prepend_string/2, append_string/2, concat/1, concat_bit_strings/1, from_string/1, from_string_builder/1, from_bit_string/1, to_bit_string/1, byte_size/1]). - --spec new() -> gleam@bytes_builder:bytes_builder(). -new() -> - gleam@bytes_builder:new(). - --spec prepend(gleam@bytes_builder:bytes_builder(), bitstring()) -> gleam@bytes_builder:bytes_builder(). -prepend(To, Prefix) -> - gleam@bytes_builder:prepend(To, Prefix). - --spec append(gleam@bytes_builder:bytes_builder(), bitstring()) -> gleam@bytes_builder:bytes_builder(). -append(To, Suffix) -> - gleam@bytes_builder:append(To, Suffix). - --spec prepend_builder( - gleam@bytes_builder:bytes_builder(), - gleam@bytes_builder:bytes_builder() -) -> gleam@bytes_builder:bytes_builder(). -prepend_builder(To, Prefix) -> - gleam@bytes_builder:prepend_builder(To, Prefix). - --spec append_builder( - gleam@bytes_builder:bytes_builder(), - gleam@bytes_builder:bytes_builder() -) -> gleam@bytes_builder:bytes_builder(). -append_builder(First, Second) -> - gleam_stdlib:iodata_append(First, Second). - --spec prepend_string(gleam@bytes_builder:bytes_builder(), binary()) -> gleam@bytes_builder:bytes_builder(). -prepend_string(To, Prefix) -> - gleam@bytes_builder:prepend_string(To, Prefix). - --spec append_string(gleam@bytes_builder:bytes_builder(), binary()) -> gleam@bytes_builder:bytes_builder(). -append_string(To, Suffix) -> - gleam@bytes_builder:append_string(To, Suffix). - --spec concat(list(gleam@bytes_builder:bytes_builder())) -> gleam@bytes_builder:bytes_builder(). -concat(Builders) -> - gleam_stdlib:identity(Builders). - --spec concat_bit_strings(list(bitstring())) -> gleam@bytes_builder:bytes_builder(). -concat_bit_strings(Bits) -> - gleam_stdlib:identity(Bits). - --spec from_string(binary()) -> gleam@bytes_builder:bytes_builder(). -from_string(String) -> - gleam_stdlib:wrap_list(String). - --spec from_string_builder(gleam@string_builder:string_builder()) -> gleam@bytes_builder:bytes_builder(). -from_string_builder(Builder) -> - gleam_stdlib:wrap_list(Builder). - --spec from_bit_string(bitstring()) -> gleam@bytes_builder:bytes_builder(). -from_bit_string(Bits) -> - gleam_stdlib:wrap_list(Bits). - --spec to_bit_string(gleam@bytes_builder:bytes_builder()) -> bitstring(). -to_bit_string(Builder) -> - erlang:list_to_bitstring(Builder). - --spec byte_size(gleam@bytes_builder:bytes_builder()) -> integer(). -byte_size(Builder) -> - erlang:iolist_size(Builder). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_string.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_string.erl deleted file mode 100644 index 7dabaa3..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@bit_string.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(gleam@bit_string). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from_string/1, byte_size/1, append/2, slice/3, is_utf8/1, to_string/1, concat/1]). - --spec from_string(binary()) -> bitstring(). -from_string(X) -> - gleam_stdlib:identity(X). - --spec byte_size(bitstring()) -> integer(). -byte_size(X) -> - erlang:byte_size(X). - --spec append(bitstring(), bitstring()) -> bitstring(). -append(First, Second) -> - gleam@bit_array:append(First, Second). - --spec slice(bitstring(), integer(), integer()) -> {ok, bitstring()} | - {error, nil}. -slice(String, Position, Length) -> - gleam_stdlib:bit_array_slice(String, Position, Length). - --spec is_utf8(bitstring()) -> boolean(). -is_utf8(Bits) -> - gleam@bit_array:is_utf8(Bits). - --spec to_string(bitstring()) -> {ok, binary()} | {error, nil}. -to_string(Bits) -> - gleam@bit_array:to_string(Bits). - --spec concat(list(bitstring())) -> bitstring(). -concat(Bit_strings) -> - gleam_stdlib:bit_array_concat(Bit_strings). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@bool.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@bool.erl deleted file mode 100644 index cd55358..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@bool.erl +++ /dev/null @@ -1,162 +0,0 @@ --module(gleam@bool). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export(['and'/2, 'or'/2, negate/1, nor/2, nand/2, exclusive_or/2, exclusive_nor/2, compare/2, max/2, min/2, to_int/1, to_string/1, guard/3, lazy_guard/3]). - --spec 'and'(boolean(), boolean()) -> boolean(). -'and'(A, B) -> - A andalso B. - --spec 'or'(boolean(), boolean()) -> boolean(). -'or'(A, B) -> - A orelse B. - --spec negate(boolean()) -> boolean(). -negate(Bool) -> - case Bool of - true -> - false; - - false -> - true - end. - --spec nor(boolean(), boolean()) -> boolean(). -nor(A, B) -> - case {A, B} of - {false, false} -> - true; - - {false, true} -> - false; - - {true, false} -> - false; - - {true, true} -> - false - end. - --spec nand(boolean(), boolean()) -> boolean(). -nand(A, B) -> - case {A, B} of - {false, false} -> - true; - - {false, true} -> - true; - - {true, false} -> - true; - - {true, true} -> - false - end. - --spec exclusive_or(boolean(), boolean()) -> boolean(). -exclusive_or(A, B) -> - case {A, B} of - {false, false} -> - false; - - {false, true} -> - true; - - {true, false} -> - true; - - {true, true} -> - false - end. - --spec exclusive_nor(boolean(), boolean()) -> boolean(). -exclusive_nor(A, B) -> - case {A, B} of - {false, false} -> - true; - - {false, true} -> - false; - - {true, false} -> - false; - - {true, true} -> - true - end. - --spec compare(boolean(), boolean()) -> gleam@order:order(). -compare(A, B) -> - case {A, B} of - {true, true} -> - eq; - - {true, false} -> - gt; - - {false, false} -> - eq; - - {false, true} -> - lt - end. - --spec max(boolean(), boolean()) -> boolean(). -max(A, B) -> - case A of - true -> - true; - - false -> - B - end. - --spec min(boolean(), boolean()) -> boolean(). -min(A, B) -> - case A of - false -> - false; - - true -> - B - end. - --spec to_int(boolean()) -> integer(). -to_int(Bool) -> - case Bool of - false -> - 0; - - true -> - 1 - end. - --spec to_string(boolean()) -> binary(). -to_string(Bool) -> - case Bool of - false -> - <<"False"/utf8>>; - - true -> - <<"True"/utf8>> - end. - --spec guard(boolean(), DDZ, fun(() -> DDZ)) -> DDZ. -guard(Requirement, Consequence, Alternative) -> - case Requirement of - true -> - Consequence; - - false -> - Alternative() - end. - --spec lazy_guard(boolean(), fun(() -> DEA), fun(() -> DEA)) -> DEA. -lazy_guard(Requirement, Consequence, Alternative) -> - case Requirement of - true -> - Consequence(); - - false -> - Alternative() - end. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@bytes_builder.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@bytes_builder.erl deleted file mode 100644 index 2f6dd93..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@bytes_builder.erl +++ /dev/null @@ -1,87 +0,0 @@ --module(gleam@bytes_builder). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([append_builder/2, prepend_builder/2, concat/1, new/0, from_string/1, prepend_string/2, append_string/2, from_string_builder/1, from_bit_array/1, prepend/2, append/2, concat_bit_arrays/1, to_bit_array/1, byte_size/1]). --export_type([bytes_builder/0]). - --opaque bytes_builder() :: {bytes, bitstring()} | - {text, gleam@string_builder:string_builder()} | - {many, list(bytes_builder())}. - --spec append_builder(bytes_builder(), bytes_builder()) -> bytes_builder(). -append_builder(First, Second) -> - gleam_stdlib:iodata_append(First, Second). - --spec prepend_builder(bytes_builder(), bytes_builder()) -> bytes_builder(). -prepend_builder(Second, First) -> - gleam_stdlib:iodata_append(First, Second). - --spec concat(list(bytes_builder())) -> bytes_builder(). -concat(Builders) -> - gleam_stdlib:identity(Builders). - --spec new() -> bytes_builder(). -new() -> - gleam_stdlib:identity([]). - --spec from_string(binary()) -> bytes_builder(). -from_string(String) -> - gleam_stdlib:wrap_list(String). - --spec prepend_string(bytes_builder(), binary()) -> bytes_builder(). -prepend_string(Second, First) -> - gleam_stdlib:iodata_append(gleam_stdlib:wrap_list(First), Second). - --spec append_string(bytes_builder(), binary()) -> bytes_builder(). -append_string(First, Second) -> - gleam_stdlib:iodata_append(First, gleam_stdlib:wrap_list(Second)). - --spec from_string_builder(gleam@string_builder:string_builder()) -> bytes_builder(). -from_string_builder(Builder) -> - gleam_stdlib:wrap_list(Builder). - --spec from_bit_array(bitstring()) -> bytes_builder(). -from_bit_array(Bits) -> - gleam_stdlib:wrap_list(Bits). - --spec prepend(bytes_builder(), bitstring()) -> bytes_builder(). -prepend(Second, First) -> - gleam_stdlib:iodata_append(gleam_stdlib:wrap_list(First), Second). - --spec append(bytes_builder(), bitstring()) -> bytes_builder(). -append(First, Second) -> - gleam_stdlib:iodata_append(First, gleam_stdlib:wrap_list(Second)). - --spec concat_bit_arrays(list(bitstring())) -> bytes_builder(). -concat_bit_arrays(Bits) -> - gleam_stdlib:identity(Bits). - --spec to_list(list(list(bytes_builder())), list(bitstring())) -> list(bitstring()). -to_list(Stack, Acc) -> - case Stack of - [] -> - Acc; - - [[] | Remaining_stack] -> - to_list(Remaining_stack, Acc); - - [[{bytes, Bits} | Rest] | Remaining_stack@1] -> - to_list([Rest | Remaining_stack@1], [Bits | Acc]); - - [[{text, Builder} | Rest@1] | Remaining_stack@2] -> - Bits@1 = gleam_stdlib:identity( - gleam@string_builder:to_string(Builder) - ), - to_list([Rest@1 | Remaining_stack@2], [Bits@1 | Acc]); - - [[{many, Builders} | Rest@2] | Remaining_stack@3] -> - to_list([Builders, Rest@2 | Remaining_stack@3], Acc) - end. - --spec to_bit_array(bytes_builder()) -> bitstring(). -to_bit_array(Builder) -> - erlang:list_to_bitstring(Builder). - --spec byte_size(bytes_builder()) -> integer(). -byte_size(Builder) -> - erlang:iolist_size(Builder). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@dict.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@dict.erl deleted file mode 100644 index 44b89ea..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@dict.erl +++ /dev/null @@ -1,97 +0,0 @@ --module(gleam@dict). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([size/1, to_list/1, from_list/1, has_key/2, new/0, get/2, insert/3, map_values/2, keys/1, values/1, filter/2, take/2, merge/2, delete/2, drop/2, update/3, fold/3]). --export_type([dict/2]). - --type dict(KS, KT) :: any() | {gleam_phantom, KS, KT}. - --spec size(dict(any(), any())) -> integer(). -size(Dict) -> - maps:size(Dict). - --spec to_list(dict(LC, LD)) -> list({LC, LD}). -to_list(Dict) -> - maps:to_list(Dict). - --spec from_list(list({LM, LN})) -> dict(LM, LN). -from_list(List) -> - maps:from_list(List). - --spec has_key(dict(LW, any()), LW) -> boolean(). -has_key(Dict, Key) -> - maps:is_key(Key, Dict). - --spec new() -> dict(any(), any()). -new() -> - maps:new(). - --spec get(dict(MM, MN), MM) -> {ok, MN} | {error, nil}. -get(From, Get) -> - gleam_stdlib:map_get(From, Get). - --spec insert(dict(MY, MZ), MY, MZ) -> dict(MY, MZ). -insert(Dict, Key, Value) -> - maps:put(Key, Value, Dict). - --spec map_values(dict(NK, NL), fun((NK, NL) -> NO)) -> dict(NK, NO). -map_values(Dict, Fun) -> - maps:map(Fun, Dict). - --spec keys(dict(NY, any())) -> list(NY). -keys(Dict) -> - maps:keys(Dict). - --spec values(dict(any(), OJ)) -> list(OJ). -values(Dict) -> - maps:values(Dict). - --spec filter(dict(OS, OT), fun((OS, OT) -> boolean())) -> dict(OS, OT). -filter(Dict, Predicate) -> - maps:filter(Predicate, Dict). - --spec take(dict(PE, PF), list(PE)) -> dict(PE, PF). -take(Dict, Desired_keys) -> - maps:with(Desired_keys, Dict). - --spec merge(dict(PS, PT), dict(PS, PT)) -> dict(PS, PT). -merge(Dict, New_entries) -> - maps:merge(Dict, New_entries). - --spec delete(dict(QI, QJ), QI) -> dict(QI, QJ). -delete(Dict, Key) -> - maps:remove(Key, Dict). - --spec drop(dict(QU, QV), list(QU)) -> dict(QU, QV). -drop(Dict, Disallowed_keys) -> - case Disallowed_keys of - [] -> - Dict; - - [X | Xs] -> - drop(delete(Dict, X), Xs) - end. - --spec update(dict(RB, RC), RB, fun((gleam@option:option(RC)) -> RC)) -> dict(RB, RC). -update(Dict, Key, Fun) -> - _pipe = Dict, - _pipe@1 = get(_pipe, Key), - _pipe@2 = gleam@option:from_result(_pipe@1), - _pipe@3 = Fun(_pipe@2), - insert(Dict, Key, _pipe@3). - --spec do_fold(list({RI, RJ}), RL, fun((RL, RI, RJ) -> RL)) -> RL. -do_fold(List, Initial, Fun) -> - case List of - [] -> - Initial; - - [{K, V} | Rest] -> - do_fold(Rest, Fun(Initial, K, V), Fun) - end. - --spec fold(dict(RM, RN), RQ, fun((RQ, RM, RN) -> RQ)) -> RQ. -fold(Dict, Initial, Fun) -> - _pipe = Dict, - _pipe@1 = to_list(_pipe), - do_fold(_pipe@1, Initial, Fun). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@dynamic.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@dynamic.erl deleted file mode 100644 index 38f4b4e..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@dynamic.erl +++ /dev/null @@ -1,808 +0,0 @@ --module(gleam@dynamic). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([from/1, unsafe_coerce/1, dynamic/1, bit_array/1, bit_string/1, classify/1, int/1, float/1, bool/1, shallow_list/1, optional/1, any/1, decode1/2, result/2, list/1, string/1, field/2, optional_field/2, element/2, tuple2/2, tuple3/3, tuple4/4, tuple5/5, tuple6/6, dict/2, map/2, decode2/3, decode3/4, decode4/5, decode5/6, decode6/7, decode7/8, decode8/9, decode9/10]). --export_type([dynamic_/0, decode_error/0, unknown_tuple/0]). - --type dynamic_() :: any(). - --type decode_error() :: {decode_error, binary(), binary(), list(binary())}. - --type unknown_tuple() :: any(). - --spec from(any()) -> dynamic_(). -from(A) -> - gleam_stdlib:identity(A). - --spec unsafe_coerce(dynamic_()) -> any(). -unsafe_coerce(A) -> - gleam_stdlib:identity(A). - --spec dynamic(dynamic_()) -> {ok, dynamic_()} | {error, list(decode_error())}. -dynamic(Value) -> - {ok, Value}. - --spec bit_array(dynamic_()) -> {ok, bitstring()} | {error, list(decode_error())}. -bit_array(Data) -> - gleam_stdlib:decode_bit_array(Data). - --spec bit_string(dynamic_()) -> {ok, bitstring()} | - {error, list(decode_error())}. -bit_string(Data) -> - bit_array(Data). - --spec put_expected(decode_error(), binary()) -> decode_error(). -put_expected(Error, Expected) -> - erlang:setelement(2, Error, Expected). - --spec classify(dynamic_()) -> binary(). -classify(Data) -> - gleam_stdlib:classify_dynamic(Data). - --spec int(dynamic_()) -> {ok, integer()} | {error, list(decode_error())}. -int(Data) -> - gleam_stdlib:decode_int(Data). - --spec float(dynamic_()) -> {ok, float()} | {error, list(decode_error())}. -float(Data) -> - gleam_stdlib:decode_float(Data). - --spec bool(dynamic_()) -> {ok, boolean()} | {error, list(decode_error())}. -bool(Data) -> - gleam_stdlib:decode_bool(Data). - --spec shallow_list(dynamic_()) -> {ok, list(dynamic_())} | - {error, list(decode_error())}. -shallow_list(Value) -> - gleam_stdlib:decode_list(Value). - --spec optional(fun((dynamic_()) -> {ok, DZX} | {error, list(decode_error())})) -> fun((dynamic_()) -> {ok, - gleam@option:option(DZX)} | - {error, list(decode_error())}). -optional(Decode) -> - fun(Value) -> gleam_stdlib:decode_option(Value, Decode) end. - --spec at_least_decode_tuple_error(integer(), dynamic_()) -> {ok, any()} | - {error, list(decode_error())}. -at_least_decode_tuple_error(Size, Data) -> - S = case Size of - 1 -> - <<""/utf8>>; - - _ -> - <<"s"/utf8>> - end, - Error = begin - _pipe = [<<"Tuple of at least "/utf8>>, - gleam@int:to_string(Size), - <<" element"/utf8>>, - S], - _pipe@1 = gleam@string_builder:from_strings(_pipe), - _pipe@2 = gleam@string_builder:to_string(_pipe@1), - {decode_error, _pipe@2, classify(Data), []} - end, - {error, [Error]}. - --spec any(list(fun((dynamic_()) -> {ok, EEE} | {error, list(decode_error())}))) -> fun((dynamic_()) -> {ok, - EEE} | - {error, list(decode_error())}). -any(Decoders) -> - fun(Data) -> case Decoders of - [] -> - {error, - [{decode_error, <<"another type"/utf8>>, classify(Data), []}]}; - - [Decoder | Decoders@1] -> - case Decoder(Data) of - {ok, Decoded} -> - {ok, Decoded}; - - {error, _} -> - (any(Decoders@1))(Data) - end - end end. - --spec all_errors({ok, any()} | {error, list(decode_error())}) -> list(decode_error()). -all_errors(Result) -> - case Result of - {ok, _} -> - []; - - {error, Errors} -> - Errors - end. - --spec decode1( - fun((EEI) -> EEJ), - fun((dynamic_()) -> {ok, EEI} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EEJ} | {error, list(decode_error())}). -decode1(Constructor, T1) -> - fun(Value) -> case T1(Value) of - {ok, A} -> - {ok, Constructor(A)}; - - A@1 -> - {error, all_errors(A@1)} - end end. - --spec push_path(decode_error(), any()) -> decode_error(). -push_path(Error, Name) -> - Name@1 = from(Name), - Decoder = any( - [fun string/1, - fun(X) -> gleam@result:map(int(X), fun gleam@int:to_string/1) end] - ), - Name@3 = case Decoder(Name@1) of - {ok, Name@2} -> - Name@2; - - {error, _} -> - _pipe = [<<"<"/utf8>>, classify(Name@1), <<">"/utf8>>], - _pipe@1 = gleam@string_builder:from_strings(_pipe), - gleam@string_builder:to_string(_pipe@1) - end, - erlang:setelement(4, Error, [Name@3 | erlang:element(4, Error)]). - --spec result( - fun((dynamic_()) -> {ok, DZL} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, DZN} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {ok, DZL} | {error, DZN}} | - {error, list(decode_error())}). -result(Decode_ok, Decode_error) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_result(Value), - fun(Inner_result) -> case Inner_result of - {ok, Raw} -> - gleam@result:'try'( - begin - _pipe = Decode_ok(Raw), - map_errors( - _pipe, - fun(_capture) -> - push_path(_capture, <<"ok"/utf8>>) - end - ) - end, - fun(Value@1) -> {ok, {ok, Value@1}} end - ); - - {error, Raw@1} -> - gleam@result:'try'( - begin - _pipe@1 = Decode_error(Raw@1), - map_errors( - _pipe@1, - fun(_capture@1) -> - push_path(_capture@1, <<"error"/utf8>>) - end - ) - end, - fun(Value@2) -> {ok, {error, Value@2}} end - ) - end end - ) - end. - --spec list(fun((dynamic_()) -> {ok, DZS} | {error, list(decode_error())})) -> fun((dynamic_()) -> {ok, - list(DZS)} | - {error, list(decode_error())}). -list(Decoder_type) -> - fun(Dynamic) -> - gleam@result:'try'(shallow_list(Dynamic), fun(List) -> _pipe = List, - _pipe@1 = gleam@list:try_map(_pipe, Decoder_type), - map_errors( - _pipe@1, - fun(_capture) -> push_path(_capture, <<"*"/utf8>>) end - ) end) - end. - --spec map_errors( - {ok, DYG} | {error, list(decode_error())}, - fun((decode_error()) -> decode_error()) -) -> {ok, DYG} | {error, list(decode_error())}. -map_errors(Result, F) -> - gleam@result:map_error( - Result, - fun(_capture) -> gleam@list:map(_capture, F) end - ). - --spec decode_string(dynamic_()) -> {ok, binary()} | - {error, list(decode_error())}. -decode_string(Data) -> - _pipe = bit_array(Data), - _pipe@1 = map_errors( - _pipe, - fun(_capture) -> put_expected(_capture, <<"String"/utf8>>) end - ), - gleam@result:'try'( - _pipe@1, - fun(Raw) -> case gleam@bit_array:to_string(Raw) of - {ok, String} -> - {ok, String}; - - {error, nil} -> - {error, - [{decode_error, - <<"String"/utf8>>, - <<"BitArray"/utf8>>, - []}]} - end end - ). - --spec string(dynamic_()) -> {ok, binary()} | {error, list(decode_error())}. -string(Data) -> - decode_string(Data). - --spec field( - any(), - fun((dynamic_()) -> {ok, EAH} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EAH} | {error, list(decode_error())}). -field(Name, Inner_type) -> - fun(Value) -> - Missing_field_error = {decode_error, - <<"field"/utf8>>, - <<"nothing"/utf8>>, - []}, - gleam@result:'try'( - gleam_stdlib:decode_field(Value, Name), - fun(Maybe_inner) -> _pipe = Maybe_inner, - _pipe@1 = gleam@option:to_result(_pipe, [Missing_field_error]), - _pipe@2 = gleam@result:'try'(_pipe@1, Inner_type), - map_errors( - _pipe@2, - fun(_capture) -> push_path(_capture, Name) end - ) end - ) - end. - --spec optional_field( - any(), - fun((dynamic_()) -> {ok, EAL} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, gleam@option:option(EAL)} | - {error, list(decode_error())}). -optional_field(Name, Inner_type) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_field(Value, Name), - fun(Maybe_inner) -> case Maybe_inner of - none -> - {ok, none}; - - {some, Dynamic_inner} -> - _pipe = Dynamic_inner, - _pipe@1 = gleam_stdlib:decode_option(_pipe, Inner_type), - map_errors( - _pipe@1, - fun(_capture) -> push_path(_capture, Name) end - ) - end end - ) - end. - --spec element( - integer(), - fun((dynamic_()) -> {ok, EAT} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EAT} | {error, list(decode_error())}). -element(Index, Inner_type) -> - fun(Data) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple(Data), - fun(Tuple) -> - Size = gleam_stdlib:size_of_tuple(Tuple), - gleam@result:'try'(case Index >= 0 of - true -> - case Index < Size of - true -> - gleam_stdlib:tuple_get(Tuple, Index); - - false -> - at_least_decode_tuple_error(Index + 1, Data) - end; - - false -> - case gleam@int:absolute_value(Index) =< Size of - true -> - gleam_stdlib:tuple_get(Tuple, Size + Index); - - false -> - at_least_decode_tuple_error( - gleam@int:absolute_value(Index), - Data - ) - end - end, fun(Data@1) -> _pipe = Inner_type(Data@1), - map_errors( - _pipe, - fun(_capture) -> push_path(_capture, Index) end - ) end) - end - ) - end. - --spec tuple_errors({ok, any()} | {error, list(decode_error())}, binary()) -> list(decode_error()). -tuple_errors(Result, Name) -> - case Result of - {ok, _} -> - []; - - {error, Errors} -> - gleam@list:map( - Errors, - fun(_capture) -> push_path(_capture, Name) end - ) - end. - --spec tuple2( - fun((dynamic_()) -> {ok, EBT} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EBV} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {EBT, EBV}} | {error, list(decode_error())}). -tuple2(Decode1, Decode2) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple2(Value), - fun(_use0) -> - {A, B} = _use0, - case {Decode1(A), Decode2(B)} of - {{ok, A@1}, {ok, B@1}} -> - {ok, {A@1, B@1}}; - - {A@2, B@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - {error, _pipe@1} - end - end - ) - end. - --spec tuple3( - fun((dynamic_()) -> {ok, EBY} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECA} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECC} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {EBY, ECA, ECC}} | {error, list(decode_error())}). -tuple3(Decode1, Decode2, Decode3) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple3(Value), - fun(_use0) -> - {A, B, C} = _use0, - case {Decode1(A), Decode2(B), Decode3(C)} of - {{ok, A@1}, {ok, B@1}, {ok, C@1}} -> - {ok, {A@1, B@1, C@1}}; - - {A@2, B@2, C@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - _pipe@2 = gleam@list:append( - _pipe@1, - tuple_errors(C@2, <<"2"/utf8>>) - ), - {error, _pipe@2} - end - end - ) - end. - --spec tuple4( - fun((dynamic_()) -> {ok, ECF} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECH} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECJ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECL} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {ECF, ECH, ECJ, ECL}} | - {error, list(decode_error())}). -tuple4(Decode1, Decode2, Decode3, Decode4) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple4(Value), - fun(_use0) -> - {A, B, C, D} = _use0, - case {Decode1(A), Decode2(B), Decode3(C), Decode4(D)} of - {{ok, A@1}, {ok, B@1}, {ok, C@1}, {ok, D@1}} -> - {ok, {A@1, B@1, C@1, D@1}}; - - {A@2, B@2, C@2, D@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - _pipe@2 = gleam@list:append( - _pipe@1, - tuple_errors(C@2, <<"2"/utf8>>) - ), - _pipe@3 = gleam@list:append( - _pipe@2, - tuple_errors(D@2, <<"3"/utf8>>) - ), - {error, _pipe@3} - end - end - ) - end. - --spec tuple5( - fun((dynamic_()) -> {ok, ECO} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECQ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECS} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECU} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, ECW} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {ECO, ECQ, ECS, ECU, ECW}} | - {error, list(decode_error())}). -tuple5(Decode1, Decode2, Decode3, Decode4, Decode5) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple5(Value), - fun(_use0) -> - {A, B, C, D, E} = _use0, - case {Decode1(A), - Decode2(B), - Decode3(C), - Decode4(D), - Decode5(E)} of - {{ok, A@1}, {ok, B@1}, {ok, C@1}, {ok, D@1}, {ok, E@1}} -> - {ok, {A@1, B@1, C@1, D@1, E@1}}; - - {A@2, B@2, C@2, D@2, E@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - _pipe@2 = gleam@list:append( - _pipe@1, - tuple_errors(C@2, <<"2"/utf8>>) - ), - _pipe@3 = gleam@list:append( - _pipe@2, - tuple_errors(D@2, <<"3"/utf8>>) - ), - _pipe@4 = gleam@list:append( - _pipe@3, - tuple_errors(E@2, <<"4"/utf8>>) - ), - {error, _pipe@4} - end - end - ) - end. - --spec tuple6( - fun((dynamic_()) -> {ok, ECZ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EDB} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EDD} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EDF} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EDH} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EDJ} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, {ECZ, EDB, EDD, EDF, EDH, EDJ}} | - {error, list(decode_error())}). -tuple6(Decode1, Decode2, Decode3, Decode4, Decode5, Decode6) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_tuple6(Value), - fun(_use0) -> - {A, B, C, D, E, F} = _use0, - case {Decode1(A), - Decode2(B), - Decode3(C), - Decode4(D), - Decode5(E), - Decode6(F)} of - {{ok, A@1}, - {ok, B@1}, - {ok, C@1}, - {ok, D@1}, - {ok, E@1}, - {ok, F@1}} -> - {ok, {A@1, B@1, C@1, D@1, E@1, F@1}}; - - {A@2, B@2, C@2, D@2, E@2, F@2} -> - _pipe = tuple_errors(A@2, <<"0"/utf8>>), - _pipe@1 = gleam@list:append( - _pipe, - tuple_errors(B@2, <<"1"/utf8>>) - ), - _pipe@2 = gleam@list:append( - _pipe@1, - tuple_errors(C@2, <<"2"/utf8>>) - ), - _pipe@3 = gleam@list:append( - _pipe@2, - tuple_errors(D@2, <<"3"/utf8>>) - ), - _pipe@4 = gleam@list:append( - _pipe@3, - tuple_errors(E@2, <<"4"/utf8>>) - ), - _pipe@5 = gleam@list:append( - _pipe@4, - tuple_errors(F@2, <<"5"/utf8>>) - ), - {error, _pipe@5} - end - end - ) - end. - --spec dict( - fun((dynamic_()) -> {ok, EDM} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EDO} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, gleam@dict:dict(EDM, EDO)} | - {error, list(decode_error())}). -dict(Key_type, Value_type) -> - fun(Value) -> - gleam@result:'try'( - gleam_stdlib:decode_map(Value), - fun(Map) -> - gleam@result:'try'( - begin - _pipe = Map, - _pipe@1 = gleam@dict:to_list(_pipe), - gleam@list:try_map( - _pipe@1, - fun(Pair) -> - {K, V} = Pair, - gleam@result:'try'( - begin - _pipe@2 = Key_type(K), - map_errors( - _pipe@2, - fun(_capture) -> - push_path( - _capture, - <<"keys"/utf8>> - ) - end - ) - end, - fun(K@1) -> - gleam@result:'try'( - begin - _pipe@3 = Value_type(V), - map_errors( - _pipe@3, - fun(_capture@1) -> - push_path( - _capture@1, - <<"values"/utf8>> - ) - end - ) - end, - fun(V@1) -> {ok, {K@1, V@1}} end - ) - end - ) - end - ) - end, - fun(Pairs) -> {ok, gleam@dict:from_list(Pairs)} end - ) - end - ) - end. - --spec map( - fun((dynamic_()) -> {ok, EDT} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EDV} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, gleam@dict:dict(EDT, EDV)} | - {error, list(decode_error())}). -map(Key_type, Value_type) -> - dict(Key_type, Value_type). - --spec decode2( - fun((EEM, EEN) -> EEO), - fun((dynamic_()) -> {ok, EEM} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EEN} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EEO} | {error, list(decode_error())}). -decode2(Constructor, T1, T2) -> - fun(Value) -> case {T1(Value), T2(Value)} of - {{ok, A}, {ok, B}} -> - {ok, Constructor(A, B)}; - - {A@1, B@1} -> - {error, gleam@list:concat([all_errors(A@1), all_errors(B@1)])} - end end. - --spec decode3( - fun((EES, EET, EEU) -> EEV), - fun((dynamic_()) -> {ok, EES} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EET} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EEU} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EEV} | {error, list(decode_error())}). -decode3(Constructor, T1, T2, T3) -> - fun(Value) -> case {T1(Value), T2(Value), T3(Value)} of - {{ok, A}, {ok, B}, {ok, C}} -> - {ok, Constructor(A, B, C)}; - - {A@1, B@1, C@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), all_errors(B@1), all_errors(C@1)] - )} - end end. - --spec decode4( - fun((EFA, EFB, EFC, EFD) -> EFE), - fun((dynamic_()) -> {ok, EFA} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFB} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFC} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFD} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EFE} | {error, list(decode_error())}). -decode4(Constructor, T1, T2, T3, T4) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X)} of - {{ok, A}, {ok, B}, {ok, C}, {ok, D}} -> - {ok, Constructor(A, B, C, D)}; - - {A@1, B@1, C@1, D@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1)] - )} - end end. - --spec decode5( - fun((EFK, EFL, EFM, EFN, EFO) -> EFP), - fun((dynamic_()) -> {ok, EFK} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFL} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFM} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFN} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFO} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EFP} | {error, list(decode_error())}). -decode5(Constructor, T1, T2, T3, T4, T5) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X), T5(X)} of - {{ok, A}, {ok, B}, {ok, C}, {ok, D}, {ok, E}} -> - {ok, Constructor(A, B, C, D, E)}; - - {A@1, B@1, C@1, D@1, E@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1)] - )} - end end. - --spec decode6( - fun((EFW, EFX, EFY, EFZ, EGA, EGB) -> EGC), - fun((dynamic_()) -> {ok, EFW} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFX} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFY} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EFZ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EGA} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EGB} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EGC} | {error, list(decode_error())}). -decode6(Constructor, T1, T2, T3, T4, T5, T6) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X), T5(X), T6(X)} of - {{ok, A}, {ok, B}, {ok, C}, {ok, D}, {ok, E}, {ok, F}} -> - {ok, Constructor(A, B, C, D, E, F)}; - - {A@1, B@1, C@1, D@1, E@1, F@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1), - all_errors(F@1)] - )} - end end. - --spec decode7( - fun((EGK, EGL, EGM, EGN, EGO, EGP, EGQ) -> EGR), - fun((dynamic_()) -> {ok, EGK} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EGL} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EGM} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EGN} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EGO} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EGP} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EGQ} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EGR} | {error, list(decode_error())}). -decode7(Constructor, T1, T2, T3, T4, T5, T6, T7) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X), T5(X), T6(X), T7(X)} of - {{ok, A}, {ok, B}, {ok, C}, {ok, D}, {ok, E}, {ok, F}, {ok, G}} -> - {ok, Constructor(A, B, C, D, E, F, G)}; - - {A@1, B@1, C@1, D@1, E@1, F@1, G@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1), - all_errors(F@1), - all_errors(G@1)] - )} - end end. - --spec decode8( - fun((EHA, EHB, EHC, EHD, EHE, EHF, EHG, EHH) -> EHI), - fun((dynamic_()) -> {ok, EHA} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHB} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHC} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHD} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHE} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHF} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHG} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHH} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EHI} | {error, list(decode_error())}). -decode8(Constructor, T1, T2, T3, T4, T5, T6, T7, T8) -> - fun(X) -> case {T1(X), T2(X), T3(X), T4(X), T5(X), T6(X), T7(X), T8(X)} of - {{ok, A}, - {ok, B}, - {ok, C}, - {ok, D}, - {ok, E}, - {ok, F}, - {ok, G}, - {ok, H}} -> - {ok, Constructor(A, B, C, D, E, F, G, H)}; - - {A@1, B@1, C@1, D@1, E@1, F@1, G@1, H@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1), - all_errors(F@1), - all_errors(G@1), - all_errors(H@1)] - )} - end end. - --spec decode9( - fun((EHS, EHT, EHU, EHV, EHW, EHX, EHY, EHZ, EIA) -> EIB), - fun((dynamic_()) -> {ok, EHS} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHT} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHU} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHV} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHW} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHX} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHY} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EHZ} | {error, list(decode_error())}), - fun((dynamic_()) -> {ok, EIA} | {error, list(decode_error())}) -) -> fun((dynamic_()) -> {ok, EIB} | {error, list(decode_error())}). -decode9(Constructor, T1, T2, T3, T4, T5, T6, T7, T8, T9) -> - fun(X) -> - case {T1(X), T2(X), T3(X), T4(X), T5(X), T6(X), T7(X), T8(X), T9(X)} of - {{ok, A}, - {ok, B}, - {ok, C}, - {ok, D}, - {ok, E}, - {ok, F}, - {ok, G}, - {ok, H}, - {ok, I}} -> - {ok, Constructor(A, B, C, D, E, F, G, H, I)}; - - {A@1, B@1, C@1, D@1, E@1, F@1, G@1, H@1, I@1} -> - {error, - gleam@list:concat( - [all_errors(A@1), - all_errors(B@1), - all_errors(C@1), - all_errors(D@1), - all_errors(E@1), - all_errors(F@1), - all_errors(G@1), - all_errors(H@1), - all_errors(I@1)] - )} - end - end. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@float.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@float.erl deleted file mode 100644 index 33b3d4a..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@float.erl +++ /dev/null @@ -1,181 +0,0 @@ --module(gleam@float). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([parse/1, to_string/1, compare/2, min/2, max/2, clamp/3, ceiling/1, floor/1, round/1, truncate/1, absolute_value/1, loosely_compare/3, loosely_equals/3, power/2, square_root/1, negate/1, sum/1, product/1, random/2, divide/2, add/2, multiply/2, subtract/2]). - --spec parse(binary()) -> {ok, float()} | {error, nil}. -parse(String) -> - gleam_stdlib:parse_float(String). - --spec to_string(float()) -> binary(). -to_string(X) -> - gleam_stdlib:float_to_string(X). - --spec compare(float(), float()) -> gleam@order:order(). -compare(A, B) -> - case A =:= B of - true -> - eq; - - false -> - case A < B of - true -> - lt; - - false -> - gt - end - end. - --spec min(float(), float()) -> float(). -min(A, B) -> - case A < B of - true -> - A; - - false -> - B - end. - --spec max(float(), float()) -> float(). -max(A, B) -> - case A > B of - true -> - A; - - false -> - B - end. - --spec clamp(float(), float(), float()) -> float(). -clamp(X, Min_bound, Max_bound) -> - _pipe = X, - _pipe@1 = min(_pipe, Max_bound), - max(_pipe@1, Min_bound). - --spec ceiling(float()) -> float(). -ceiling(X) -> - math:ceil(X). - --spec floor(float()) -> float(). -floor(X) -> - math:floor(X). - --spec round(float()) -> integer(). -round(X) -> - erlang:round(X). - --spec truncate(float()) -> integer(). -truncate(X) -> - erlang:trunc(X). - --spec absolute_value(float()) -> float(). -absolute_value(X) -> - case X >= +0.0 of - true -> - X; - - _ -> - +0.0 - X - end. - --spec loosely_compare(float(), float(), float()) -> gleam@order:order(). -loosely_compare(A, B, Tolerance) -> - Difference = absolute_value(A - B), - case Difference =< Tolerance of - true -> - eq; - - false -> - compare(A, B) - end. - --spec loosely_equals(float(), float(), float()) -> boolean(). -loosely_equals(A, B, Tolerance) -> - Difference = absolute_value(A - B), - Difference =< Tolerance. - --spec power(float(), float()) -> {ok, float()} | {error, nil}. -power(Base, Exponent) -> - Fractional = (ceiling(Exponent) - Exponent) > +0.0, - case ((Base < +0.0) andalso Fractional) orelse ((Base =:= +0.0) andalso (Exponent - < +0.0)) of - true -> - {error, nil}; - - false -> - {ok, math:pow(Base, Exponent)} - end. - --spec square_root(float()) -> {ok, float()} | {error, nil}. -square_root(X) -> - power(X, 0.5). - --spec negate(float()) -> float(). -negate(X) -> - -1.0 * X. - --spec do_sum(list(float()), float()) -> float(). -do_sum(Numbers, Initial) -> - case Numbers of - [] -> - Initial; - - [X | Rest] -> - do_sum(Rest, X + Initial) - end. - --spec sum(list(float())) -> float(). -sum(Numbers) -> - _pipe = Numbers, - do_sum(_pipe, +0.0). - --spec do_product(list(float()), float()) -> float(). -do_product(Numbers, Initial) -> - case Numbers of - [] -> - Initial; - - [X | Rest] -> - do_product(Rest, X * Initial) - end. - --spec product(list(float())) -> float(). -product(Numbers) -> - case Numbers of - [] -> - 1.0; - - _ -> - do_product(Numbers, 1.0) - end. - --spec random(float(), float()) -> float(). -random(Min, Max) -> - (rand:uniform() * (Max - Min)) + Min. - --spec divide(float(), float()) -> {ok, float()} | {error, nil}. -divide(A, B) -> - case B of - +0.0 -> - {error, nil}; - - B@1 -> - {ok, case B@1 of - +0.0 -> +0.0; - -0.0 -> -0.0; - Gleam@denominator -> A / Gleam@denominator - end} - end. - --spec add(float(), float()) -> float(). -add(A, B) -> - A + B. - --spec multiply(float(), float()) -> float(). -multiply(A, B) -> - A * B. - --spec subtract(float(), float()) -> float(). -subtract(A, B) -> - A - B. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@function.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@function.erl deleted file mode 100644 index 3496318..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@function.erl +++ /dev/null @@ -1,67 +0,0 @@ --module(gleam@function). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([compose/2, curry2/1, curry3/1, curry4/1, curry5/1, curry6/1, flip/1, identity/1, constant/1, tap/2, apply1/2, apply2/3, apply3/4]). - --spec compose(fun((DOO) -> DOP), fun((DOP) -> DOQ)) -> fun((DOO) -> DOQ). -compose(Fun1, Fun2) -> - fun(A) -> Fun2(Fun1(A)) end. - --spec curry2(fun((DOR, DOS) -> DOT)) -> fun((DOR) -> fun((DOS) -> DOT)). -curry2(Fun) -> - fun(A) -> fun(B) -> Fun(A, B) end end. - --spec curry3(fun((DOV, DOW, DOX) -> DOY)) -> fun((DOV) -> fun((DOW) -> fun((DOX) -> DOY))). -curry3(Fun) -> - fun(A) -> fun(B) -> fun(C) -> Fun(A, B, C) end end end. - --spec curry4(fun((DPA, DPB, DPC, DPD) -> DPE)) -> fun((DPA) -> fun((DPB) -> fun((DPC) -> fun((DPD) -> DPE)))). -curry4(Fun) -> - fun(A) -> fun(B) -> fun(C) -> fun(D) -> Fun(A, B, C, D) end end end end. - --spec curry5(fun((DPG, DPH, DPI, DPJ, DPK) -> DPL)) -> fun((DPG) -> fun((DPH) -> fun((DPI) -> fun((DPJ) -> fun((DPK) -> DPL))))). -curry5(Fun) -> - fun(A) -> - fun(B) -> - fun(C) -> fun(D) -> fun(E) -> Fun(A, B, C, D, E) end end end - end - end. - --spec curry6(fun((DPN, DPO, DPP, DPQ, DPR, DPS) -> DPT)) -> fun((DPN) -> fun((DPO) -> fun((DPP) -> fun((DPQ) -> fun((DPR) -> fun((DPS) -> DPT)))))). -curry6(Fun) -> - fun(A) -> - fun(B) -> - fun(C) -> - fun(D) -> fun(E) -> fun(F) -> Fun(A, B, C, D, E, F) end end end - end - end - end. - --spec flip(fun((DPV, DPW) -> DPX)) -> fun((DPW, DPV) -> DPX). -flip(Fun) -> - fun(B, A) -> Fun(A, B) end. - --spec identity(DPY) -> DPY. -identity(X) -> - X. - --spec constant(DPZ) -> fun((any()) -> DPZ). -constant(Value) -> - fun(_) -> Value end. - --spec tap(DQB, fun((DQB) -> any())) -> DQB. -tap(Arg, Effect) -> - Effect(Arg), - Arg. - --spec apply1(fun((DQD) -> DQE), DQD) -> DQE. -apply1(Fun, Arg1) -> - Fun(Arg1). - --spec apply2(fun((DQF, DQG) -> DQH), DQF, DQG) -> DQH. -apply2(Fun, Arg1, Arg2) -> - Fun(Arg1, Arg2). - --spec apply3(fun((DQI, DQJ, DQK) -> DQL), DQI, DQJ, DQK) -> DQL. -apply3(Fun, Arg1, Arg2, Arg3) -> - Fun(Arg1, Arg2, Arg3). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@int.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@int.erl deleted file mode 100644 index 2a5dd2c..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@int.erl +++ /dev/null @@ -1,332 +0,0 @@ --module(gleam@int). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([absolute_value/1, parse/1, base_parse/2, to_string/1, to_base_string/2, to_base2/1, to_base8/1, to_base16/1, to_base36/1, to_float/1, power/2, square_root/1, compare/2, min/2, max/2, clamp/3, is_even/1, is_odd/1, negate/1, sum/1, product/1, digits/2, undigits/2, random/2, divide/2, remainder/2, modulo/2, floor_divide/2, add/2, multiply/2, subtract/2, bitwise_and/2, bitwise_not/1, bitwise_or/2, bitwise_exclusive_or/2, bitwise_shift_left/2, bitwise_shift_right/2]). --export_type([invalid_base/0]). - --type invalid_base() :: invalid_base. - --spec absolute_value(integer()) -> integer(). -absolute_value(X) -> - case X >= 0 of - true -> - X; - - false -> - X * -1 - end. - --spec parse(binary()) -> {ok, integer()} | {error, nil}. -parse(String) -> - gleam_stdlib:parse_int(String). - --spec base_parse(binary(), integer()) -> {ok, integer()} | {error, nil}. -base_parse(String, Base) -> - case (Base >= 2) andalso (Base =< 36) of - true -> - gleam_stdlib:int_from_base_string(String, Base); - - false -> - {error, nil} - end. - --spec to_string(integer()) -> binary(). -to_string(X) -> - erlang:integer_to_binary(X). - --spec to_base_string(integer(), integer()) -> {ok, binary()} | - {error, invalid_base()}. -to_base_string(X, Base) -> - case (Base >= 2) andalso (Base =< 36) of - true -> - {ok, erlang:integer_to_binary(X, Base)}; - - false -> - {error, invalid_base} - end. - --spec to_base2(integer()) -> binary(). -to_base2(X) -> - erlang:integer_to_binary(X, 2). - --spec to_base8(integer()) -> binary(). -to_base8(X) -> - erlang:integer_to_binary(X, 8). - --spec to_base16(integer()) -> binary(). -to_base16(X) -> - erlang:integer_to_binary(X, 16). - --spec to_base36(integer()) -> binary(). -to_base36(X) -> - erlang:integer_to_binary(X, 36). - --spec to_float(integer()) -> float(). -to_float(X) -> - erlang:float(X). - --spec power(integer(), float()) -> {ok, float()} | {error, nil}. -power(Base, Exponent) -> - _pipe = Base, - _pipe@1 = to_float(_pipe), - gleam@float:power(_pipe@1, Exponent). - --spec square_root(integer()) -> {ok, float()} | {error, nil}. -square_root(X) -> - _pipe = X, - _pipe@1 = to_float(_pipe), - gleam@float:square_root(_pipe@1). - --spec compare(integer(), integer()) -> gleam@order:order(). -compare(A, B) -> - case A =:= B of - true -> - eq; - - false -> - case A < B of - true -> - lt; - - false -> - gt - end - end. - --spec min(integer(), integer()) -> integer(). -min(A, B) -> - case A < B of - true -> - A; - - false -> - B - end. - --spec max(integer(), integer()) -> integer(). -max(A, B) -> - case A > B of - true -> - A; - - false -> - B - end. - --spec clamp(integer(), integer(), integer()) -> integer(). -clamp(X, Min_bound, Max_bound) -> - _pipe = X, - _pipe@1 = min(_pipe, Max_bound), - max(_pipe@1, Min_bound). - --spec is_even(integer()) -> boolean(). -is_even(X) -> - (X rem 2) =:= 0. - --spec is_odd(integer()) -> boolean(). -is_odd(X) -> - (X rem 2) /= 0. - --spec negate(integer()) -> integer(). -negate(X) -> - -1 * X. - --spec do_sum(list(integer()), integer()) -> integer(). -do_sum(Numbers, Initial) -> - case Numbers of - [] -> - Initial; - - [X | Rest] -> - do_sum(Rest, X + Initial) - end. - --spec sum(list(integer())) -> integer(). -sum(Numbers) -> - _pipe = Numbers, - do_sum(_pipe, 0). - --spec do_product(list(integer()), integer()) -> integer(). -do_product(Numbers, Initial) -> - case Numbers of - [] -> - Initial; - - [X | Rest] -> - do_product(Rest, X * Initial) - end. - --spec product(list(integer())) -> integer(). -product(Numbers) -> - case Numbers of - [] -> - 1; - - _ -> - do_product(Numbers, 1) - end. - --spec do_digits(integer(), integer(), list(integer())) -> list(integer()). -do_digits(X, Base, Acc) -> - case absolute_value(X) < Base of - true -> - [X | Acc]; - - false -> - do_digits(case Base of - 0 -> 0; - Gleam@denominator -> X div Gleam@denominator - end, Base, [case Base of - 0 -> 0; - Gleam@denominator@1 -> X rem Gleam@denominator@1 - end | Acc]) - end. - --spec digits(integer(), integer()) -> {ok, list(integer())} | - {error, invalid_base()}. -digits(X, Base) -> - case Base < 2 of - true -> - {error, invalid_base}; - - false -> - {ok, do_digits(X, Base, [])} - end. - --spec do_undigits(list(integer()), integer(), integer()) -> {ok, integer()} | - {error, invalid_base()}. -do_undigits(Numbers, Base, Acc) -> - case Numbers of - [] -> - {ok, Acc}; - - [Digit | _] when Digit >= Base -> - {error, invalid_base}; - - [Digit@1 | Rest] -> - do_undigits(Rest, Base, (Acc * Base) + Digit@1) - end. - --spec undigits(list(integer()), integer()) -> {ok, integer()} | - {error, invalid_base()}. -undigits(Numbers, Base) -> - case Base < 2 of - true -> - {error, invalid_base}; - - false -> - do_undigits(Numbers, Base, 0) - end. - --spec random(integer(), integer()) -> integer(). -random(Min, Max) -> - _pipe = gleam@float:random(to_float(Min), to_float(Max)), - _pipe@1 = gleam@float:floor(_pipe), - gleam@float:round(_pipe@1). - --spec divide(integer(), integer()) -> {ok, integer()} | {error, nil}. -divide(Dividend, Divisor) -> - case Divisor of - 0 -> - {error, nil}; - - Divisor@1 -> - {ok, case Divisor@1 of - 0 -> 0; - Gleam@denominator -> Dividend div Gleam@denominator - end} - end. - --spec remainder(integer(), integer()) -> {ok, integer()} | {error, nil}. -remainder(Dividend, Divisor) -> - case Divisor of - 0 -> - {error, nil}; - - Divisor@1 -> - {ok, case Divisor@1 of - 0 -> 0; - Gleam@denominator -> Dividend rem Gleam@denominator - end} - end. - --spec modulo(integer(), integer()) -> {ok, integer()} | {error, nil}. -modulo(Dividend, Divisor) -> - case Divisor of - 0 -> - {error, nil}; - - _ -> - Remainder = case Divisor of - 0 -> 0; - Gleam@denominator -> Dividend rem Gleam@denominator - end, - case (Remainder * Divisor) < 0 of - true -> - {ok, Remainder + Divisor}; - - false -> - {ok, Remainder} - end - end. - --spec floor_divide(integer(), integer()) -> {ok, integer()} | {error, nil}. -floor_divide(Dividend, Divisor) -> - case Divisor of - 0 -> - {error, nil}; - - Divisor@1 -> - case ((Dividend * Divisor@1) < 0) andalso ((case Divisor@1 of - 0 -> 0; - Gleam@denominator -> Dividend rem Gleam@denominator - end) /= 0) of - true -> - {ok, (case Divisor@1 of - 0 -> 0; - Gleam@denominator@1 -> Dividend div Gleam@denominator@1 - end) - 1}; - - false -> - {ok, case Divisor@1 of - 0 -> 0; - Gleam@denominator@2 -> Dividend div Gleam@denominator@2 - end} - end - end. - --spec add(integer(), integer()) -> integer(). -add(A, B) -> - A + B. - --spec multiply(integer(), integer()) -> integer(). -multiply(A, B) -> - A * B. - --spec subtract(integer(), integer()) -> integer(). -subtract(A, B) -> - A - B. - --spec bitwise_and(integer(), integer()) -> integer(). -bitwise_and(X, Y) -> - erlang:'band'(X, Y). - --spec bitwise_not(integer()) -> integer(). -bitwise_not(X) -> - erlang:'bnot'(X). - --spec bitwise_or(integer(), integer()) -> integer(). -bitwise_or(X, Y) -> - erlang:'bor'(X, Y). - --spec bitwise_exclusive_or(integer(), integer()) -> integer(). -bitwise_exclusive_or(X, Y) -> - erlang:'bxor'(X, Y). - --spec bitwise_shift_left(integer(), integer()) -> integer(). -bitwise_shift_left(X, Y) -> - erlang:'bsl'(X, Y). - --spec bitwise_shift_right(integer(), integer()) -> integer(). -bitwise_shift_right(X, Y) -> - erlang:'bsr'(X, Y). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@io.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@io.erl deleted file mode 100644 index a46eae3..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@io.erl +++ /dev/null @@ -1,27 +0,0 @@ --module(gleam@io). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([print/1, print_error/1, println/1, println_error/1, debug/1]). - --spec print(binary()) -> nil. -print(String) -> - gleam_stdlib:print(String). - --spec print_error(binary()) -> nil. -print_error(String) -> - gleam_stdlib:print_error(String). - --spec println(binary()) -> nil. -println(String) -> - gleam_stdlib:println(String). - --spec println_error(binary()) -> nil. -println_error(String) -> - gleam_stdlib:println_error(String). - --spec debug(CZT) -> CZT. -debug(Term) -> - _pipe = Term, - _pipe@1 = gleam@string:inspect(_pipe), - gleam_stdlib:println_error(_pipe@1), - Term. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@iterator.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@iterator.erl deleted file mode 100644 index aa84139..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@iterator.erl +++ /dev/null @@ -1,744 +0,0 @@ --module(gleam@iterator). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([unfold/2, repeatedly/1, repeat/1, from_list/1, transform/3, fold/3, run/1, to_list/1, step/1, take/2, drop/2, map/2, map2/3, append/2, flatten/1, concat/1, flat_map/2, filter/2, cycle/1, find/2, index/1, iterate/2, take_while/2, drop_while/2, scan/3, zip/2, chunk/2, sized_chunk/2, intersperse/2, any/2, all/2, group/2, reduce/2, last/1, empty/0, once/1, range/2, single/1, interleave/2, fold_until/3, try_fold/3, first/1, at/2, length/1, each/2, yield/2]). --export_type([action/1, iterator/1, step/2, chunk/2, sized_chunk/1]). - --type action(BPF) :: stop | {continue, BPF, fun(() -> action(BPF))}. - --opaque iterator(BPG) :: {iterator, fun(() -> action(BPG))}. - --type step(BPH, BPI) :: {next, BPH, BPI} | done. - --type chunk(BPJ, BPK) :: {another_by, - list(BPJ), - BPK, - BPJ, - fun(() -> action(BPJ))} | - {last_by, list(BPJ)}. - --type sized_chunk(BPL) :: {another, list(BPL), fun(() -> action(BPL))} | - {last, list(BPL)} | - no_more. - --spec stop() -> action(any()). -stop() -> - stop. - --spec do_unfold(BPO, fun((BPO) -> step(BPP, BPO))) -> fun(() -> action(BPP)). -do_unfold(Initial, F) -> - fun() -> case F(Initial) of - {next, X, Acc} -> - {continue, X, do_unfold(Acc, F)}; - - done -> - stop - end end. - --spec unfold(BPT, fun((BPT) -> step(BPU, BPT))) -> iterator(BPU). -unfold(Initial, F) -> - _pipe = Initial, - _pipe@1 = do_unfold(_pipe, F), - {iterator, _pipe@1}. - --spec repeatedly(fun(() -> BPY)) -> iterator(BPY). -repeatedly(F) -> - unfold(nil, fun(_) -> {next, F(), nil} end). - --spec repeat(BQA) -> iterator(BQA). -repeat(X) -> - repeatedly(fun() -> X end). - --spec from_list(list(BQC)) -> iterator(BQC). -from_list(List) -> - Yield = fun(Acc) -> case Acc of - [] -> - done; - - [Head | Tail] -> - {next, Head, Tail} - end end, - unfold(List, Yield). - --spec do_transform( - fun(() -> action(BQF)), - BQH, - fun((BQH, BQF) -> step(BQI, BQH)) -) -> fun(() -> action(BQI)). -do_transform(Continuation, State, F) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, El, Next} -> - case F(State, El) of - done -> - stop; - - {next, Yield, Next_state} -> - {continue, Yield, do_transform(Next, Next_state, F)} - end - end end. - --spec transform(iterator(BQM), BQO, fun((BQO, BQM) -> step(BQP, BQO))) -> iterator(BQP). -transform(Iterator, Initial, F) -> - _pipe = do_transform(erlang:element(2, Iterator), Initial, F), - {iterator, _pipe}. - --spec do_fold(fun(() -> action(BQT)), fun((BQV, BQT) -> BQV), BQV) -> BQV. -do_fold(Continuation, F, Accumulator) -> - case Continuation() of - {continue, Elem, Next} -> - do_fold(Next, F, F(Accumulator, Elem)); - - stop -> - Accumulator - end. - --spec fold(iterator(BQW), BQY, fun((BQY, BQW) -> BQY)) -> BQY. -fold(Iterator, Initial, F) -> - _pipe = erlang:element(2, Iterator), - do_fold(_pipe, F, Initial). - --spec run(iterator(any())) -> nil. -run(Iterator) -> - fold(Iterator, nil, fun(_, _) -> nil end). - --spec to_list(iterator(BRB)) -> list(BRB). -to_list(Iterator) -> - _pipe = Iterator, - _pipe@1 = fold(_pipe, [], fun(Acc, E) -> [E | Acc] end), - gleam@list:reverse(_pipe@1). - --spec step(iterator(BRE)) -> step(BRE, iterator(BRE)). -step(Iterator) -> - case (erlang:element(2, Iterator))() of - stop -> - done; - - {continue, E, A} -> - {next, E, {iterator, A}} - end. - --spec do_take(fun(() -> action(BRJ)), integer()) -> fun(() -> action(BRJ)). -do_take(Continuation, Desired) -> - fun() -> case Desired > 0 of - false -> - stop; - - true -> - case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - {continue, E, do_take(Next, Desired - 1)} - end - end end. - --spec take(iterator(BRM), integer()) -> iterator(BRM). -take(Iterator, Desired) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_take(_pipe, Desired), - {iterator, _pipe@1}. - --spec do_drop(fun(() -> action(BRP)), integer()) -> action(BRP). -do_drop(Continuation, Desired) -> - case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - case Desired > 0 of - true -> - do_drop(Next, Desired - 1); - - false -> - {continue, E, Next} - end - end. - --spec drop(iterator(BRS), integer()) -> iterator(BRS). -drop(Iterator, Desired) -> - _pipe = fun() -> do_drop(erlang:element(2, Iterator), Desired) end, - {iterator, _pipe}. - --spec do_map(fun(() -> action(BRV)), fun((BRV) -> BRX)) -> fun(() -> action(BRX)). -do_map(Continuation, F) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, E, Continuation@1} -> - {continue, F(E), do_map(Continuation@1, F)} - end end. - --spec map(iterator(BRZ), fun((BRZ) -> BSB)) -> iterator(BSB). -map(Iterator, F) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_map(_pipe, F), - {iterator, _pipe@1}. - --spec do_map2( - fun(() -> action(BSD)), - fun(() -> action(BSF)), - fun((BSD, BSF) -> BSH) -) -> fun(() -> action(BSH)). -do_map2(Continuation1, Continuation2, Fun) -> - fun() -> case Continuation1() of - stop -> - stop; - - {continue, A, Next_a} -> - case Continuation2() of - stop -> - stop; - - {continue, B, Next_b} -> - {continue, Fun(A, B), do_map2(Next_a, Next_b, Fun)} - end - end end. - --spec map2(iterator(BSJ), iterator(BSL), fun((BSJ, BSL) -> BSN)) -> iterator(BSN). -map2(Iterator1, Iterator2, Fun) -> - _pipe = do_map2( - erlang:element(2, Iterator1), - erlang:element(2, Iterator2), - Fun - ), - {iterator, _pipe}. - --spec do_append(fun(() -> action(BSP)), fun(() -> action(BSP))) -> action(BSP). -do_append(First, Second) -> - case First() of - {continue, E, First@1} -> - {continue, E, fun() -> do_append(First@1, Second) end}; - - stop -> - Second() - end. - --spec append(iterator(BST), iterator(BST)) -> iterator(BST). -append(First, Second) -> - _pipe = fun() -> - do_append(erlang:element(2, First), erlang:element(2, Second)) - end, - {iterator, _pipe}. - --spec do_flatten(fun(() -> action(iterator(BSX)))) -> action(BSX). -do_flatten(Flattened) -> - case Flattened() of - stop -> - stop; - - {continue, It, Next_iterator} -> - do_append( - erlang:element(2, It), - fun() -> do_flatten(Next_iterator) end - ) - end. - --spec flatten(iterator(iterator(BTB))) -> iterator(BTB). -flatten(Iterator) -> - _pipe = fun() -> do_flatten(erlang:element(2, Iterator)) end, - {iterator, _pipe}. - --spec concat(list(iterator(BTF))) -> iterator(BTF). -concat(Iterators) -> - flatten(from_list(Iterators)). - --spec flat_map(iterator(BTJ), fun((BTJ) -> iterator(BTL))) -> iterator(BTL). -flat_map(Iterator, F) -> - _pipe = Iterator, - _pipe@1 = map(_pipe, F), - flatten(_pipe@1). - --spec do_filter(fun(() -> action(BTO)), fun((BTO) -> boolean())) -> action(BTO). -do_filter(Continuation, Predicate) -> - case Continuation() of - stop -> - stop; - - {continue, E, Iterator} -> - case Predicate(E) of - true -> - {continue, E, fun() -> do_filter(Iterator, Predicate) end}; - - false -> - do_filter(Iterator, Predicate) - end - end. - --spec filter(iterator(BTR), fun((BTR) -> boolean())) -> iterator(BTR). -filter(Iterator, Predicate) -> - _pipe = fun() -> do_filter(erlang:element(2, Iterator), Predicate) end, - {iterator, _pipe}. - --spec cycle(iterator(BTU)) -> iterator(BTU). -cycle(Iterator) -> - _pipe = repeat(Iterator), - flatten(_pipe). - --spec do_find(fun(() -> action(BTY)), fun((BTY) -> boolean())) -> {ok, BTY} | - {error, nil}. -do_find(Continuation, F) -> - case Continuation() of - stop -> - {error, nil}; - - {continue, E, Next} -> - case F(E) of - true -> - {ok, E}; - - false -> - do_find(Next, F) - end - end. - --spec find(iterator(BUC), fun((BUC) -> boolean())) -> {ok, BUC} | {error, nil}. -find(Haystack, Is_desired) -> - _pipe = erlang:element(2, Haystack), - do_find(_pipe, Is_desired). - --spec do_index(fun(() -> action(BUG)), integer()) -> fun(() -> action({integer(), - BUG})). -do_index(Continuation, Next) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, E, Continuation@1} -> - {continue, {Next, E}, do_index(Continuation@1, Next + 1)} - end end. - --spec index(iterator(BUJ)) -> iterator({integer(), BUJ}). -index(Iterator) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_index(_pipe, 0), - {iterator, _pipe@1}. - --spec iterate(BUM, fun((BUM) -> BUM)) -> iterator(BUM). -iterate(Initial, F) -> - unfold(Initial, fun(Element) -> {next, Element, F(Element)} end). - --spec do_take_while(fun(() -> action(BUO)), fun((BUO) -> boolean())) -> fun(() -> action(BUO)). -do_take_while(Continuation, Predicate) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - case Predicate(E) of - false -> - stop; - - true -> - {continue, E, do_take_while(Next, Predicate)} - end - end end. - --spec take_while(iterator(BUR), fun((BUR) -> boolean())) -> iterator(BUR). -take_while(Iterator, Predicate) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_take_while(_pipe, Predicate), - {iterator, _pipe@1}. - --spec do_drop_while(fun(() -> action(BUU)), fun((BUU) -> boolean())) -> action(BUU). -do_drop_while(Continuation, Predicate) -> - case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - case Predicate(E) of - false -> - {continue, E, Next}; - - true -> - do_drop_while(Next, Predicate) - end - end. - --spec drop_while(iterator(BUX), fun((BUX) -> boolean())) -> iterator(BUX). -drop_while(Iterator, Predicate) -> - _pipe = fun() -> do_drop_while(erlang:element(2, Iterator), Predicate) end, - {iterator, _pipe}. - --spec do_scan(fun(() -> action(BVA)), fun((BVC, BVA) -> BVC), BVC) -> fun(() -> action(BVC)). -do_scan(Continuation, F, Accumulator) -> - fun() -> case Continuation() of - stop -> - stop; - - {continue, El, Next} -> - Accumulated = F(Accumulator, El), - {continue, Accumulated, do_scan(Next, F, Accumulated)} - end end. - --spec scan(iterator(BVE), BVG, fun((BVG, BVE) -> BVG)) -> iterator(BVG). -scan(Iterator, Initial, F) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_scan(_pipe, F, Initial), - {iterator, _pipe@1}. - --spec do_zip(fun(() -> action(BVI)), fun(() -> action(BVK))) -> fun(() -> action({BVI, - BVK})). -do_zip(Left, Right) -> - fun() -> case Left() of - stop -> - stop; - - {continue, El_left, Next_left} -> - case Right() of - stop -> - stop; - - {continue, El_right, Next_right} -> - {continue, - {El_left, El_right}, - do_zip(Next_left, Next_right)} - end - end end. - --spec zip(iterator(BVN), iterator(BVP)) -> iterator({BVN, BVP}). -zip(Left, Right) -> - _pipe = do_zip(erlang:element(2, Left), erlang:element(2, Right)), - {iterator, _pipe}. - --spec next_chunk(fun(() -> action(BVS)), fun((BVS) -> BVU), BVU, list(BVS)) -> chunk(BVS, BVU). -next_chunk(Continuation, F, Previous_key, Current_chunk) -> - case Continuation() of - stop -> - {last_by, gleam@list:reverse(Current_chunk)}; - - {continue, E, Next} -> - Key = F(E), - case Key =:= Previous_key of - true -> - next_chunk(Next, F, Key, [E | Current_chunk]); - - false -> - {another_by, - gleam@list:reverse(Current_chunk), - Key, - E, - Next} - end - end. - --spec do_chunk(fun(() -> action(BVY)), fun((BVY) -> BWA), BWA, BVY) -> action(list(BVY)). -do_chunk(Continuation, F, Previous_key, Previous_element) -> - case next_chunk(Continuation, F, Previous_key, [Previous_element]) of - {last_by, Chunk} -> - {continue, Chunk, fun stop/0}; - - {another_by, Chunk@1, Key, El, Next} -> - {continue, Chunk@1, fun() -> do_chunk(Next, F, Key, El) end} - end. - --spec chunk(iterator(BWD), fun((BWD) -> any())) -> iterator(list(BWD)). -chunk(Iterator, F) -> - _pipe = fun() -> case (erlang:element(2, Iterator))() of - stop -> - stop; - - {continue, E, Next} -> - do_chunk(Next, F, F(E), E) - end end, - {iterator, _pipe}. - --spec next_sized_chunk(fun(() -> action(BWI)), integer(), list(BWI)) -> sized_chunk(BWI). -next_sized_chunk(Continuation, Left, Current_chunk) -> - case Continuation() of - stop -> - case Current_chunk of - [] -> - no_more; - - Remaining -> - {last, gleam@list:reverse(Remaining)} - end; - - {continue, E, Next} -> - Chunk = [E | Current_chunk], - case Left > 1 of - false -> - {another, gleam@list:reverse(Chunk), Next}; - - true -> - next_sized_chunk(Next, Left - 1, Chunk) - end - end. - --spec do_sized_chunk(fun(() -> action(BWM)), integer()) -> fun(() -> action(list(BWM))). -do_sized_chunk(Continuation, Count) -> - fun() -> case next_sized_chunk(Continuation, Count, []) of - no_more -> - stop; - - {last, Chunk} -> - {continue, Chunk, fun stop/0}; - - {another, Chunk@1, Next_element} -> - {continue, Chunk@1, do_sized_chunk(Next_element, Count)} - end end. - --spec sized_chunk(iterator(BWQ), integer()) -> iterator(list(BWQ)). -sized_chunk(Iterator, Count) -> - _pipe = erlang:element(2, Iterator), - _pipe@1 = do_sized_chunk(_pipe, Count), - {iterator, _pipe@1}. - --spec do_intersperse(fun(() -> action(BWU)), BWU) -> action(BWU). -do_intersperse(Continuation, Separator) -> - case Continuation() of - stop -> - stop; - - {continue, E, Next} -> - Next_interspersed = fun() -> do_intersperse(Next, Separator) end, - {continue, Separator, fun() -> {continue, E, Next_interspersed} end} - end. - --spec intersperse(iterator(BWX), BWX) -> iterator(BWX). -intersperse(Iterator, Elem) -> - _pipe = fun() -> case (erlang:element(2, Iterator))() of - stop -> - stop; - - {continue, E, Next} -> - {continue, E, fun() -> do_intersperse(Next, Elem) end} - end end, - {iterator, _pipe}. - --spec do_any(fun(() -> action(BXA)), fun((BXA) -> boolean())) -> boolean(). -do_any(Continuation, Predicate) -> - case Continuation() of - stop -> - false; - - {continue, E, Next} -> - case Predicate(E) of - true -> - true; - - false -> - do_any(Next, Predicate) - end - end. - --spec any(iterator(BXC), fun((BXC) -> boolean())) -> boolean(). -any(Iterator, Predicate) -> - _pipe = erlang:element(2, Iterator), - do_any(_pipe, Predicate). - --spec do_all(fun(() -> action(BXE)), fun((BXE) -> boolean())) -> boolean(). -do_all(Continuation, Predicate) -> - case Continuation() of - stop -> - true; - - {continue, E, Next} -> - case Predicate(E) of - true -> - do_all(Next, Predicate); - - false -> - false - end - end. - --spec all(iterator(BXG), fun((BXG) -> boolean())) -> boolean(). -all(Iterator, Predicate) -> - _pipe = erlang:element(2, Iterator), - do_all(_pipe, Predicate). - --spec update_group_with(BXI) -> fun((gleam@option:option(list(BXI))) -> list(BXI)). -update_group_with(El) -> - fun(Maybe_group) -> case Maybe_group of - {some, Group} -> - [El | Group]; - - none -> - [El] - end end. - --spec group_updater(fun((BXM) -> BXN)) -> fun((gleam@dict:dict(BXN, list(BXM)), BXM) -> gleam@dict:dict(BXN, list(BXM))). -group_updater(F) -> - fun(Groups, Elem) -> _pipe = Groups, - gleam@dict:update(_pipe, F(Elem), update_group_with(Elem)) end. - --spec group(iterator(BXU), fun((BXU) -> BXW)) -> gleam@dict:dict(BXW, list(BXU)). -group(Iterator, Key) -> - _pipe = Iterator, - _pipe@1 = fold(_pipe, gleam@dict:new(), group_updater(Key)), - gleam@dict:map_values( - _pipe@1, - fun(_, Group) -> gleam@list:reverse(Group) end - ). - --spec reduce(iterator(BYA), fun((BYA, BYA) -> BYA)) -> {ok, BYA} | {error, nil}. -reduce(Iterator, F) -> - case (erlang:element(2, Iterator))() of - stop -> - {error, nil}; - - {continue, E, Next} -> - _pipe = do_fold(Next, F, E), - {ok, _pipe} - end. - --spec last(iterator(BYE)) -> {ok, BYE} | {error, nil}. -last(Iterator) -> - _pipe = Iterator, - reduce(_pipe, fun(_, Elem) -> Elem end). - --spec empty() -> iterator(any()). -empty() -> - {iterator, fun stop/0}. - --spec once(fun(() -> BYK)) -> iterator(BYK). -once(F) -> - _pipe = fun() -> {continue, F(), fun stop/0} end, - {iterator, _pipe}. - --spec range(integer(), integer()) -> iterator(integer()). -range(Start, Stop) -> - case gleam@int:compare(Start, Stop) of - eq -> - once(fun() -> Start end); - - gt -> - unfold(Start, fun(Current) -> case Current < Stop of - false -> - {next, Current, Current - 1}; - - true -> - done - end end); - - lt -> - unfold(Start, fun(Current@1) -> case Current@1 > Stop of - false -> - {next, Current@1, Current@1 + 1}; - - true -> - done - end end) - end. - --spec single(BYM) -> iterator(BYM). -single(Elem) -> - once(fun() -> Elem end). - --spec do_interleave(fun(() -> action(BYO)), fun(() -> action(BYO))) -> action(BYO). -do_interleave(Current, Next) -> - case Current() of - stop -> - Next(); - - {continue, E, Next_other} -> - {continue, E, fun() -> do_interleave(Next, Next_other) end} - end. - --spec interleave(iterator(BYS), iterator(BYS)) -> iterator(BYS). -interleave(Left, Right) -> - _pipe = fun() -> - do_interleave(erlang:element(2, Left), erlang:element(2, Right)) - end, - {iterator, _pipe}. - --spec do_fold_until( - fun(() -> action(BYW)), - fun((BYY, BYW) -> gleam@list:continue_or_stop(BYY)), - BYY -) -> BYY. -do_fold_until(Continuation, F, Accumulator) -> - case Continuation() of - stop -> - Accumulator; - - {continue, Elem, Next} -> - case F(Accumulator, Elem) of - {continue, Accumulator@1} -> - do_fold_until(Next, F, Accumulator@1); - - {stop, Accumulator@2} -> - Accumulator@2 - end - end. - --spec fold_until( - iterator(BZA), - BZC, - fun((BZC, BZA) -> gleam@list:continue_or_stop(BZC)) -) -> BZC. -fold_until(Iterator, Initial, F) -> - _pipe = erlang:element(2, Iterator), - do_fold_until(_pipe, F, Initial). - --spec do_try_fold( - fun(() -> action(BZE)), - fun((BZG, BZE) -> {ok, BZG} | {error, BZH}), - BZG -) -> {ok, BZG} | {error, BZH}. -do_try_fold(Continuation, F, Accumulator) -> - case Continuation() of - stop -> - {ok, Accumulator}; - - {continue, Elem, Next} -> - gleam@result:'try'( - F(Accumulator, Elem), - fun(Accumulator@1) -> do_try_fold(Next, F, Accumulator@1) end - ) - end. - --spec try_fold(iterator(BZM), BZO, fun((BZO, BZM) -> {ok, BZO} | {error, BZP})) -> {ok, - BZO} | - {error, BZP}. -try_fold(Iterator, Initial, F) -> - _pipe = erlang:element(2, Iterator), - do_try_fold(_pipe, F, Initial). - --spec first(iterator(BZU)) -> {ok, BZU} | {error, nil}. -first(Iterator) -> - case (erlang:element(2, Iterator))() of - stop -> - {error, nil}; - - {continue, E, _} -> - {ok, E} - end. - --spec at(iterator(BZY), integer()) -> {ok, BZY} | {error, nil}. -at(Iterator, Index) -> - _pipe = Iterator, - _pipe@1 = drop(_pipe, Index), - first(_pipe@1). - --spec do_length(fun(() -> action(any())), integer()) -> integer(). -do_length(Continuation, Length) -> - case Continuation() of - stop -> - Length; - - {continue, _, Next} -> - do_length(Next, Length + 1) - end. - --spec length(iterator(any())) -> integer(). -length(Iterator) -> - _pipe = erlang:element(2, Iterator), - do_length(_pipe, 0). - --spec each(iterator(CAG), fun((CAG) -> any())) -> nil. -each(Iterator, F) -> - _pipe = Iterator, - _pipe@1 = map(_pipe, F), - run(_pipe@1). - --spec yield(CAJ, fun(() -> iterator(CAJ))) -> iterator(CAJ). -yield(Element, Next) -> - {iterator, fun() -> {continue, Element, erlang:element(2, Next())} end}. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@list.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@list.erl deleted file mode 100644 index 6c2e684..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@list.erl +++ /dev/null @@ -1,1129 +0,0 @@ --module(gleam@list). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([length/1, reverse/1, is_empty/1, contains/2, first/1, rest/1, filter/2, filter_map/2, map/2, map2/3, index_map/2, try_map/2, drop/2, take/2, new/0, append/2, prepend/2, concat/1, flatten/1, flat_map/2, fold/3, group/2, map_fold/3, fold_right/3, index_fold/3, try_fold/3, fold_until/3, find/2, find_map/2, all/2, any/2, zip/2, strict_zip/2, unzip/1, intersperse/2, at/2, unique/1, sort/2, range/2, repeat/2, split/2, split_while/2, key_find/2, key_filter/2, pop/2, pop_map/2, key_pop/2, key_set/3, each/2, try_each/2, partition/2, permutations/1, window/2, window_by_2/1, drop_while/2, take_while/2, chunk/2, sized_chunk/2, reduce/2, scan/3, last/1, combinations/2, combination_pairs/1, transpose/1, interleave/1, shuffle/1]). --export_type([length_mismatch/0, continue_or_stop/1]). - --type length_mismatch() :: length_mismatch. - --type continue_or_stop(UD) :: {continue, UD} | {stop, UD}. - --spec length(list(any())) -> integer(). -length(List) -> - erlang:length(List). - --spec reverse(list(UI)) -> list(UI). -reverse(Xs) -> - lists:reverse(Xs). - --spec is_empty(list(any())) -> boolean(). -is_empty(List) -> - List =:= []. - --spec contains(list(UQ), UQ) -> boolean(). -contains(List, Elem) -> - case List of - [] -> - false; - - [First | _] when First =:= Elem -> - true; - - [_ | Rest] -> - contains(Rest, Elem) - end. - --spec first(list(US)) -> {ok, US} | {error, nil}. -first(List) -> - case List of - [] -> - {error, nil}; - - [X | _] -> - {ok, X} - end. - --spec rest(list(UW)) -> {ok, list(UW)} | {error, nil}. -rest(List) -> - case List of - [] -> - {error, nil}; - - [_ | Xs] -> - {ok, Xs} - end. - --spec update_group(fun((VB) -> VC)) -> fun((gleam@dict:dict(VC, list(VB)), VB) -> gleam@dict:dict(VC, list(VB))). -update_group(F) -> - fun(Groups, Elem) -> case gleam@dict:get(Groups, F(Elem)) of - {ok, Existing} -> - gleam@dict:insert(Groups, F(Elem), [Elem | Existing]); - - {error, _} -> - gleam@dict:insert(Groups, F(Elem), [Elem]) - end end. - --spec do_filter(list(VP), fun((VP) -> boolean()), list(VP)) -> list(VP). -do_filter(List, Fun, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - New_acc = case Fun(X) of - true -> - [X | Acc]; - - false -> - Acc - end, - do_filter(Xs, Fun, New_acc) - end. - --spec filter(list(VT), fun((VT) -> boolean())) -> list(VT). -filter(List, Predicate) -> - do_filter(List, Predicate, []). - --spec do_filter_map(list(VW), fun((VW) -> {ok, VY} | {error, any()}), list(VY)) -> list(VY). -do_filter_map(List, Fun, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - New_acc = case Fun(X) of - {ok, X@1} -> - [X@1 | Acc]; - - {error, _} -> - Acc - end, - do_filter_map(Xs, Fun, New_acc) - end. - --spec filter_map(list(WE), fun((WE) -> {ok, WG} | {error, any()})) -> list(WG). -filter_map(List, Fun) -> - do_filter_map(List, Fun, []). - --spec do_map(list(WL), fun((WL) -> WN), list(WN)) -> list(WN). -do_map(List, Fun, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - do_map(Xs, Fun, [Fun(X) | Acc]) - end. - --spec map(list(WQ), fun((WQ) -> WS)) -> list(WS). -map(List, Fun) -> - do_map(List, Fun, []). - --spec do_map2(list(XA), list(XC), fun((XA, XC) -> XE), list(XE)) -> list(XE). -do_map2(List1, List2, Fun, Acc) -> - case {List1, List2} of - {[], _} -> - reverse(Acc); - - {_, []} -> - reverse(Acc); - - {[A | As_], [B | Bs]} -> - do_map2(As_, Bs, Fun, [Fun(A, B) | Acc]) - end. - --spec map2(list(WU), list(WW), fun((WU, WW) -> WY)) -> list(WY). -map2(List1, List2, Fun) -> - do_map2(List1, List2, Fun, []). - --spec do_index_map(list(XM), fun((integer(), XM) -> XO), integer(), list(XO)) -> list(XO). -do_index_map(List, Fun, Index, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - Acc@1 = [Fun(Index, X) | Acc], - do_index_map(Xs, Fun, Index + 1, Acc@1) - end. - --spec index_map(list(XR), fun((integer(), XR) -> XT)) -> list(XT). -index_map(List, Fun) -> - do_index_map(List, Fun, 0, []). - --spec do_try_map(list(XV), fun((XV) -> {ok, XX} | {error, XY}), list(XX)) -> {ok, - list(XX)} | - {error, XY}. -do_try_map(List, Fun, Acc) -> - case List of - [] -> - {ok, reverse(Acc)}; - - [X | Xs] -> - case Fun(X) of - {ok, Y} -> - do_try_map(Xs, Fun, [Y | Acc]); - - {error, Error} -> - {error, Error} - end - end. - --spec try_map(list(YF), fun((YF) -> {ok, YH} | {error, YI})) -> {ok, list(YH)} | - {error, YI}. -try_map(List, Fun) -> - do_try_map(List, Fun, []). - --spec drop(list(YO), integer()) -> list(YO). -drop(List, N) -> - case N =< 0 of - true -> - List; - - false -> - case List of - [] -> - []; - - [_ | Xs] -> - drop(Xs, N - 1) - end - end. - --spec do_take(list(YR), integer(), list(YR)) -> list(YR). -do_take(List, N, Acc) -> - case N =< 0 of - true -> - reverse(Acc); - - false -> - case List of - [] -> - reverse(Acc); - - [X | Xs] -> - do_take(Xs, N - 1, [X | Acc]) - end - end. - --spec take(list(YV), integer()) -> list(YV). -take(List, N) -> - do_take(List, N, []). - --spec new() -> list(any()). -new() -> - []. - --spec append(list(AAA), list(AAA)) -> list(AAA). -append(First, Second) -> - lists:append(First, Second). - --spec prepend(list(AAI), AAI) -> list(AAI). -prepend(List, Item) -> - [Item | List]. - --spec reverse_and_prepend(list(AAL), list(AAL)) -> list(AAL). -reverse_and_prepend(Prefix, Suffix) -> - case Prefix of - [] -> - Suffix; - - [First | Rest] -> - reverse_and_prepend(Rest, [First | Suffix]) - end. - --spec do_concat(list(list(AAP)), list(AAP)) -> list(AAP). -do_concat(Lists, Acc) -> - case Lists of - [] -> - reverse(Acc); - - [List | Further_lists] -> - do_concat(Further_lists, reverse_and_prepend(List, Acc)) - end. - --spec concat(list(list(AAU))) -> list(AAU). -concat(Lists) -> - do_concat(Lists, []). - --spec flatten(list(list(AAY))) -> list(AAY). -flatten(Lists) -> - do_concat(Lists, []). - --spec flat_map(list(ABC), fun((ABC) -> list(ABE))) -> list(ABE). -flat_map(List, Fun) -> - _pipe = map(List, Fun), - concat(_pipe). - --spec fold(list(ABH), ABJ, fun((ABJ, ABH) -> ABJ)) -> ABJ. -fold(List, Initial, Fun) -> - case List of - [] -> - Initial; - - [X | Rest] -> - fold(Rest, Fun(Initial, X), Fun) - end. - --spec group(list(VJ), fun((VJ) -> VL)) -> gleam@dict:dict(VL, list(VJ)). -group(List, Key) -> - fold(List, gleam@dict:new(), update_group(Key)). - --spec map_fold(list(XH), XJ, fun((XJ, XH) -> {XJ, XK})) -> {XJ, list(XK)}. -map_fold(List, Acc, Fun) -> - _pipe = fold( - List, - {Acc, []}, - fun(Acc@1, Item) -> - {Current_acc, Items} = Acc@1, - {Next_acc, Next_item} = Fun(Current_acc, Item), - {Next_acc, [Next_item | Items]} - end - ), - gleam@pair:map_second(_pipe, fun reverse/1). - --spec fold_right(list(ABK), ABM, fun((ABM, ABK) -> ABM)) -> ABM. -fold_right(List, Initial, Fun) -> - case List of - [] -> - Initial; - - [X | Rest] -> - Fun(fold_right(Rest, Initial, Fun), X) - end. - --spec do_index_fold( - list(ABN), - ABP, - fun((ABP, ABN, integer()) -> ABP), - integer() -) -> ABP. -do_index_fold(Over, Acc, With, Index) -> - case Over of - [] -> - Acc; - - [First | Rest] -> - do_index_fold(Rest, With(Acc, First, Index), With, Index + 1) - end. - --spec index_fold(list(ABQ), ABS, fun((ABS, ABQ, integer()) -> ABS)) -> ABS. -index_fold(Over, Initial, Fun) -> - do_index_fold(Over, Initial, Fun, 0). - --spec try_fold(list(ABT), ABV, fun((ABV, ABT) -> {ok, ABV} | {error, ABW})) -> {ok, - ABV} | - {error, ABW}. -try_fold(Collection, Accumulator, Fun) -> - case Collection of - [] -> - {ok, Accumulator}; - - [First | Rest] -> - case Fun(Accumulator, First) of - {ok, Result} -> - try_fold(Rest, Result, Fun); - - {error, _} = Error -> - Error - end - end. - --spec fold_until(list(ACB), ACD, fun((ACD, ACB) -> continue_or_stop(ACD))) -> ACD. -fold_until(Collection, Accumulator, Fun) -> - case Collection of - [] -> - Accumulator; - - [First | Rest] -> - case Fun(Accumulator, First) of - {continue, Next_accumulator} -> - fold_until(Rest, Next_accumulator, Fun); - - {stop, B} -> - B - end - end. - --spec find(list(ACF), fun((ACF) -> boolean())) -> {ok, ACF} | {error, nil}. -find(Haystack, Is_desired) -> - case Haystack of - [] -> - {error, nil}; - - [X | Rest] -> - case Is_desired(X) of - true -> - {ok, X}; - - _ -> - find(Rest, Is_desired) - end - end. - --spec find_map(list(ACJ), fun((ACJ) -> {ok, ACL} | {error, any()})) -> {ok, ACL} | - {error, nil}. -find_map(Haystack, Fun) -> - case Haystack of - [] -> - {error, nil}; - - [X | Rest] -> - case Fun(X) of - {ok, X@1} -> - {ok, X@1}; - - _ -> - find_map(Rest, Fun) - end - end. - --spec all(list(ACR), fun((ACR) -> boolean())) -> boolean(). -all(List, Predicate) -> - case List of - [] -> - true; - - [First | Rest] -> - case Predicate(First) of - true -> - all(Rest, Predicate); - - false -> - false - end - end. - --spec any(list(ACT), fun((ACT) -> boolean())) -> boolean(). -any(List, Predicate) -> - case List of - [] -> - false; - - [First | Rest] -> - case Predicate(First) of - true -> - true; - - false -> - any(Rest, Predicate) - end - end. - --spec do_zip(list(ACV), list(ACX), list({ACV, ACX})) -> list({ACV, ACX}). -do_zip(Xs, Ys, Acc) -> - case {Xs, Ys} of - {[X | Xs@1], [Y | Ys@1]} -> - do_zip(Xs@1, Ys@1, [{X, Y} | Acc]); - - {_, _} -> - reverse(Acc) - end. - --spec zip(list(ADB), list(ADD)) -> list({ADB, ADD}). -zip(List, Other) -> - do_zip(List, Other, []). - --spec strict_zip(list(ADG), list(ADI)) -> {ok, list({ADG, ADI})} | - {error, length_mismatch()}. -strict_zip(List, Other) -> - case length(List) =:= length(Other) of - true -> - {ok, zip(List, Other)}; - - false -> - {error, length_mismatch} - end. - --spec do_unzip(list({ATA, ATB}), list(ATA), list(ATB)) -> {list(ATA), list(ATB)}. -do_unzip(Input, Xs, Ys) -> - case Input of - [] -> - {reverse(Xs), reverse(Ys)}; - - [{X, Y} | Rest] -> - do_unzip(Rest, [X | Xs], [Y | Ys]) - end. - --spec unzip(list({ADR, ADS})) -> {list(ADR), list(ADS)}. -unzip(Input) -> - do_unzip(Input, [], []). - --spec do_intersperse(list(ADW), ADW, list(ADW)) -> list(ADW). -do_intersperse(List, Separator, Acc) -> - case List of - [] -> - reverse(Acc); - - [X | Rest] -> - do_intersperse(Rest, Separator, [X, Separator | Acc]) - end. - --spec intersperse(list(AEA), AEA) -> list(AEA). -intersperse(List, Elem) -> - case List of - [] -> - List; - - [_] -> - List; - - [X | Rest] -> - do_intersperse(Rest, Elem, [X]) - end. - --spec at(list(AED), integer()) -> {ok, AED} | {error, nil}. -at(List, Index) -> - case Index >= 0 of - true -> - _pipe = List, - _pipe@1 = drop(_pipe, Index), - first(_pipe@1); - - false -> - {error, nil} - end. - --spec unique(list(AEH)) -> list(AEH). -unique(List) -> - case List of - [] -> - []; - - [X | Rest] -> - [X | unique(filter(Rest, fun(Y) -> Y /= X end))] - end. - --spec merge_up( - integer(), - integer(), - list(AEK), - list(AEK), - list(AEK), - fun((AEK, AEK) -> gleam@order:order()) -) -> list(AEK). -merge_up(Na, Nb, A, B, Acc, Compare) -> - case {Na, Nb, A, B} of - {0, 0, _, _} -> - Acc; - - {_, 0, [Ax | Ar], _} -> - merge_up(Na - 1, Nb, Ar, B, [Ax | Acc], Compare); - - {0, _, _, [Bx | Br]} -> - merge_up(Na, Nb - 1, A, Br, [Bx | Acc], Compare); - - {_, _, [Ax@1 | Ar@1], [Bx@1 | Br@1]} -> - case Compare(Ax@1, Bx@1) of - gt -> - merge_up(Na, Nb - 1, A, Br@1, [Bx@1 | Acc], Compare); - - _ -> - merge_up(Na - 1, Nb, Ar@1, B, [Ax@1 | Acc], Compare) - end; - - {_, _, _, _} -> - Acc - end. - --spec merge_down( - integer(), - integer(), - list(AEP), - list(AEP), - list(AEP), - fun((AEP, AEP) -> gleam@order:order()) -) -> list(AEP). -merge_down(Na, Nb, A, B, Acc, Compare) -> - case {Na, Nb, A, B} of - {0, 0, _, _} -> - Acc; - - {_, 0, [Ax | Ar], _} -> - merge_down(Na - 1, Nb, Ar, B, [Ax | Acc], Compare); - - {0, _, _, [Bx | Br]} -> - merge_down(Na, Nb - 1, A, Br, [Bx | Acc], Compare); - - {_, _, [Ax@1 | Ar@1], [Bx@1 | Br@1]} -> - case Compare(Bx@1, Ax@1) of - lt -> - merge_down(Na - 1, Nb, Ar@1, B, [Ax@1 | Acc], Compare); - - _ -> - merge_down(Na, Nb - 1, A, Br@1, [Bx@1 | Acc], Compare) - end; - - {_, _, _, _} -> - Acc - end. - --spec merge_sort( - list(AEU), - integer(), - fun((AEU, AEU) -> gleam@order:order()), - boolean() -) -> list(AEU). -merge_sort(L, Ln, Compare, Down) -> - N = Ln div 2, - A = L, - B = drop(L, N), - case Ln < 3 of - true -> - case Down of - true -> - merge_down(N, Ln - N, A, B, [], Compare); - - false -> - merge_up(N, Ln - N, A, B, [], Compare) - end; - - false -> - case Down of - true -> - merge_down( - N, - Ln - N, - merge_sort(A, N, Compare, false), - merge_sort(B, Ln - N, Compare, false), - [], - Compare - ); - - false -> - merge_up( - N, - Ln - N, - merge_sort(A, N, Compare, true), - merge_sort(B, Ln - N, Compare, true), - [], - Compare - ) - end - end. - --spec sort(list(AEX), fun((AEX, AEX) -> gleam@order:order())) -> list(AEX). -sort(List, Compare) -> - merge_sort(List, length(List), Compare, true). - --spec tail_recursive_range(integer(), integer(), list(integer())) -> list(integer()). -tail_recursive_range(Start, Stop, Acc) -> - case gleam@int:compare(Start, Stop) of - eq -> - [Stop | Acc]; - - gt -> - tail_recursive_range(Start, Stop + 1, [Stop | Acc]); - - lt -> - tail_recursive_range(Start, Stop - 1, [Stop | Acc]) - end. - --spec range(integer(), integer()) -> list(integer()). -range(Start, Stop) -> - tail_recursive_range(Start, Stop, []). - --spec do_repeat(AFD, integer(), list(AFD)) -> list(AFD). -do_repeat(A, Times, Acc) -> - case Times =< 0 of - true -> - Acc; - - false -> - do_repeat(A, Times - 1, [A | Acc]) - end. - --spec repeat(AFG, integer()) -> list(AFG). -repeat(A, Times) -> - do_repeat(A, Times, []). - --spec do_split(list(AFI), integer(), list(AFI)) -> {list(AFI), list(AFI)}. -do_split(List, N, Taken) -> - case N =< 0 of - true -> - {reverse(Taken), List}; - - false -> - case List of - [] -> - {reverse(Taken), []}; - - [X | Xs] -> - do_split(Xs, N - 1, [X | Taken]) - end - end. - --spec split(list(AFN), integer()) -> {list(AFN), list(AFN)}. -split(List, Index) -> - do_split(List, Index, []). - --spec do_split_while(list(AFR), fun((AFR) -> boolean()), list(AFR)) -> {list(AFR), - list(AFR)}. -do_split_while(List, F, Acc) -> - case List of - [] -> - {reverse(Acc), []}; - - [X | Xs] -> - case F(X) of - false -> - {reverse(Acc), List}; - - _ -> - do_split_while(Xs, F, [X | Acc]) - end - end. - --spec split_while(list(AFW), fun((AFW) -> boolean())) -> {list(AFW), list(AFW)}. -split_while(List, Predicate) -> - do_split_while(List, Predicate, []). - --spec key_find(list({AGA, AGB}), AGA) -> {ok, AGB} | {error, nil}. -key_find(Keyword_list, Desired_key) -> - find_map( - Keyword_list, - fun(Keyword) -> - {Key, Value} = Keyword, - case Key =:= Desired_key of - true -> - {ok, Value}; - - false -> - {error, nil} - end - end - ). - --spec key_filter(list({AGF, AGG}), AGF) -> list(AGG). -key_filter(Keyword_list, Desired_key) -> - filter_map( - Keyword_list, - fun(Keyword) -> - {Key, Value} = Keyword, - case Key =:= Desired_key of - true -> - {ok, Value}; - - false -> - {error, nil} - end - end - ). - --spec do_pop(list(AWT), fun((AWT) -> boolean()), list(AWT)) -> {ok, - {AWT, list(AWT)}} | - {error, nil}. -do_pop(Haystack, Predicate, Checked) -> - case Haystack of - [] -> - {error, nil}; - - [X | Rest] -> - case Predicate(X) of - true -> - {ok, {X, append(reverse(Checked), Rest)}}; - - false -> - do_pop(Rest, Predicate, [X | Checked]) - end - end. - --spec pop(list(AGN), fun((AGN) -> boolean())) -> {ok, {AGN, list(AGN)}} | - {error, nil}. -pop(Haystack, Is_desired) -> - do_pop(Haystack, Is_desired, []). - --spec do_pop_map(list(AXH), fun((AXH) -> {ok, AXU} | {error, any()}), list(AXH)) -> {ok, - {AXU, list(AXH)}} | - {error, nil}. -do_pop_map(Haystack, Mapper, Checked) -> - case Haystack of - [] -> - {error, nil}; - - [X | Rest] -> - case Mapper(X) of - {ok, Y} -> - {ok, {Y, append(reverse(Checked), Rest)}}; - - {error, _} -> - do_pop_map(Rest, Mapper, [X | Checked]) - end - end. - --spec pop_map(list(AGW), fun((AGW) -> {ok, AGY} | {error, any()})) -> {ok, - {AGY, list(AGW)}} | - {error, nil}. -pop_map(Haystack, Is_desired) -> - do_pop_map(Haystack, Is_desired, []). - --spec key_pop(list({AHF, AHG}), AHF) -> {ok, {AHG, list({AHF, AHG})}} | - {error, nil}. -key_pop(Haystack, Key) -> - pop_map( - Haystack, - fun(Entry) -> - {K, V} = Entry, - case K of - K@1 when K@1 =:= Key -> - {ok, V}; - - _ -> - {error, nil} - end - end - ). - --spec key_set(list({AHL, AHM}), AHL, AHM) -> list({AHL, AHM}). -key_set(List, Key, Value) -> - case List of - [] -> - [{Key, Value}]; - - [{K, _} | Rest] when K =:= Key -> - [{Key, Value} | Rest]; - - [First | Rest@1] -> - [First | key_set(Rest@1, Key, Value)] - end. - --spec each(list(AHP), fun((AHP) -> any())) -> nil. -each(List, F) -> - case List of - [] -> - nil; - - [X | Xs] -> - F(X), - each(Xs, F) - end. - --spec try_each(list(AHS), fun((AHS) -> {ok, any()} | {error, AHV})) -> {ok, nil} | - {error, AHV}. -try_each(List, Fun) -> - case List of - [] -> - {ok, nil}; - - [X | Xs] -> - case Fun(X) of - {ok, _} -> - try_each(Xs, Fun); - - {error, E} -> - {error, E} - end - end. - --spec do_partition(list(AZB), fun((AZB) -> boolean()), list(AZB), list(AZB)) -> {list(AZB), - list(AZB)}. -do_partition(List, Categorise, Trues, Falses) -> - case List of - [] -> - {reverse(Trues), reverse(Falses)}; - - [X | Xs] -> - case Categorise(X) of - true -> - do_partition(Xs, Categorise, [X | Trues], Falses); - - false -> - do_partition(Xs, Categorise, Trues, [X | Falses]) - end - end. - --spec partition(list(AIF), fun((AIF) -> boolean())) -> {list(AIF), list(AIF)}. -partition(List, Categorise) -> - do_partition(List, Categorise, [], []). - --spec permutations(list(AIJ)) -> list(list(AIJ)). -permutations(L) -> - case L of - [] -> - [[]]; - - _ -> - _pipe = L, - _pipe@5 = index_map(_pipe, fun(I_idx, I) -> _pipe@1 = L, - _pipe@2 = index_fold( - _pipe@1, - [], - fun(Acc, J, J_idx) -> case I_idx =:= J_idx of - true -> - Acc; - - false -> - [J | Acc] - end end - ), - _pipe@3 = reverse(_pipe@2), - _pipe@4 = permutations(_pipe@3), - map(_pipe@4, fun(Permutation) -> [I | Permutation] end) end), - concat(_pipe@5) - end. - --spec do_window(list(list(AIN)), list(AIN), integer()) -> list(list(AIN)). -do_window(Acc, L, N) -> - Window = take(L, N), - case length(Window) =:= N of - true -> - do_window([Window | Acc], drop(L, 1), N); - - false -> - Acc - end. - --spec window(list(AIT), integer()) -> list(list(AIT)). -window(L, N) -> - _pipe = do_window([], L, N), - reverse(_pipe). - --spec window_by_2(list(AIX)) -> list({AIX, AIX}). -window_by_2(L) -> - zip(L, drop(L, 1)). - --spec drop_while(list(AJA), fun((AJA) -> boolean())) -> list(AJA). -drop_while(List, Predicate) -> - case List of - [] -> - []; - - [X | Xs] -> - case Predicate(X) of - true -> - drop_while(Xs, Predicate); - - false -> - [X | Xs] - end - end. - --spec do_take_while(list(AJD), fun((AJD) -> boolean()), list(AJD)) -> list(AJD). -do_take_while(List, Predicate, Acc) -> - case List of - [] -> - reverse(Acc); - - [First | Rest] -> - case Predicate(First) of - true -> - do_take_while(Rest, Predicate, [First | Acc]); - - false -> - reverse(Acc) - end - end. - --spec take_while(list(AJH), fun((AJH) -> boolean())) -> list(AJH). -take_while(List, Predicate) -> - do_take_while(List, Predicate, []). - --spec do_chunk(list(AJK), fun((AJK) -> AJM), AJM, list(AJK), list(list(AJK))) -> list(list(AJK)). -do_chunk(List, F, Previous_key, Current_chunk, Acc) -> - case List of - [First | Rest] -> - Key = F(First), - case Key =:= Previous_key of - false -> - New_acc = [reverse(Current_chunk) | Acc], - do_chunk(Rest, F, Key, [First], New_acc); - - _ -> - do_chunk(Rest, F, Key, [First | Current_chunk], Acc) - end; - - _ -> - reverse([reverse(Current_chunk) | Acc]) - end. - --spec chunk(list(AJS), fun((AJS) -> any())) -> list(list(AJS)). -chunk(List, F) -> - case List of - [] -> - []; - - [First | Rest] -> - do_chunk(Rest, F, F(First), [First], []) - end. - --spec do_sized_chunk( - list(AJX), - integer(), - integer(), - list(AJX), - list(list(AJX)) -) -> list(list(AJX)). -do_sized_chunk(List, Count, Left, Current_chunk, Acc) -> - case List of - [] -> - case Current_chunk of - [] -> - reverse(Acc); - - Remaining -> - reverse([reverse(Remaining) | Acc]) - end; - - [First | Rest] -> - Chunk = [First | Current_chunk], - case Left > 1 of - false -> - do_sized_chunk( - Rest, - Count, - Count, - [], - [reverse(Chunk) | Acc] - ); - - true -> - do_sized_chunk(Rest, Count, Left - 1, Chunk, Acc) - end - end. - --spec sized_chunk(list(AKE), integer()) -> list(list(AKE)). -sized_chunk(List, Count) -> - do_sized_chunk(List, Count, Count, [], []). - --spec reduce(list(AKI), fun((AKI, AKI) -> AKI)) -> {ok, AKI} | {error, nil}. -reduce(List, Fun) -> - case List of - [] -> - {error, nil}; - - [First | Rest] -> - {ok, fold(Rest, First, Fun)} - end. - --spec do_scan(list(AKM), AKO, list(AKO), fun((AKO, AKM) -> AKO)) -> list(AKO). -do_scan(List, Accumulator, Accumulated, Fun) -> - case List of - [] -> - reverse(Accumulated); - - [X | Xs] -> - Next = Fun(Accumulator, X), - do_scan(Xs, Next, [Next | Accumulated], Fun) - end. - --spec scan(list(AKR), AKT, fun((AKT, AKR) -> AKT)) -> list(AKT). -scan(List, Initial, Fun) -> - do_scan(List, Initial, [], Fun). - --spec last(list(AKV)) -> {ok, AKV} | {error, nil}. -last(List) -> - _pipe = List, - reduce(_pipe, fun(_, Elem) -> Elem end). - --spec combinations(list(AKZ), integer()) -> list(list(AKZ)). -combinations(Items, N) -> - case N of - 0 -> - [[]]; - - _ -> - case Items of - [] -> - []; - - [X | Xs] -> - First_combinations = begin - _pipe = map( - combinations(Xs, N - 1), - fun(Com) -> [X | Com] end - ), - reverse(_pipe) - end, - fold( - First_combinations, - combinations(Xs, N), - fun(Acc, C) -> [C | Acc] end - ) - end - end. - --spec do_combination_pairs(list(ALD)) -> list(list({ALD, ALD})). -do_combination_pairs(Items) -> - case Items of - [] -> - []; - - [X | Xs] -> - First_combinations = map(Xs, fun(Other) -> {X, Other} end), - [First_combinations | do_combination_pairs(Xs)] - end. - --spec combination_pairs(list(ALH)) -> list({ALH, ALH}). -combination_pairs(Items) -> - _pipe = do_combination_pairs(Items), - concat(_pipe). - --spec transpose(list(list(ALO))) -> list(list(ALO)). -transpose(List_of_list) -> - Take_first = fun(List) -> case List of - [] -> - []; - - [F] -> - [F]; - - [F@1 | _] -> - [F@1] - end end, - case List_of_list of - [] -> - []; - - [[] | Xss] -> - transpose(Xss); - - Rows -> - Firsts = begin - _pipe = Rows, - _pipe@1 = map(_pipe, Take_first), - concat(_pipe@1) - end, - Rest = transpose(map(Rows, fun(_capture) -> drop(_capture, 1) end)), - [Firsts | Rest] - end. - --spec interleave(list(list(ALK))) -> list(ALK). -interleave(List) -> - _pipe = transpose(List), - concat(_pipe). - --spec do_shuffle_pair_unwrap(list({float(), ALT}), list(ALT)) -> list(ALT). -do_shuffle_pair_unwrap(List, Acc) -> - case List of - [] -> - Acc; - - [Elem_pair | Enumerable] -> - do_shuffle_pair_unwrap( - Enumerable, - [erlang:element(2, Elem_pair) | Acc] - ) - end. - --spec do_shuffle_by_pair_indexes(list({float(), ALX})) -> list({float(), ALX}). -do_shuffle_by_pair_indexes(List_of_pairs) -> - sort( - List_of_pairs, - fun(A_pair, B_pair) -> - gleam@float:compare( - erlang:element(1, A_pair), - erlang:element(1, B_pair) - ) - end - ). - --spec shuffle(list(AMA)) -> list(AMA). -shuffle(List) -> - _pipe = List, - _pipe@1 = fold( - _pipe, - [], - fun(Acc, A) -> [{gleam@float:random(+0.0, 1.0), A} | Acc] end - ), - _pipe@2 = do_shuffle_by_pair_indexes(_pipe@1), - do_shuffle_pair_unwrap(_pipe@2, []). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@map.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@map.erl deleted file mode 100644 index 33e89a9..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@map.erl +++ /dev/null @@ -1,76 +0,0 @@ --module(gleam@map). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([size/1, to_list/1, from_list/1, has_key/2, new/0, get/2, insert/3, map_values/2, keys/1, values/1, filter/2, take/2, merge/2, delete/2, drop/2, update/3, fold/3]). - --spec size(gleam@dict:dict(any(), any())) -> integer(). -size(Map) -> - gleam@dict:size(Map). - --spec to_list(gleam@dict:dict(DAJ, DAK)) -> list({DAJ, DAK}). -to_list(Map) -> - gleam@dict:to_list(Map). - --spec from_list(list({DAM, DAN})) -> gleam@dict:dict(DAM, DAN). -from_list(List) -> - gleam@dict:from_list(List). - --spec has_key(gleam@dict:dict(DAR, any()), DAR) -> boolean(). -has_key(Map, Key) -> - gleam@dict:has_key(Map, Key). - --spec new() -> gleam@dict:dict(any(), any()). -new() -> - gleam@dict:new(). - --spec get(gleam@dict:dict(DAU, DAV), DAU) -> {ok, DAV} | {error, nil}. -get(From, Get) -> - gleam@dict:get(From, Get). - --spec insert(gleam@dict:dict(DAZ, DBA), DAZ, DBA) -> gleam@dict:dict(DAZ, DBA). -insert(Map, Key, Value) -> - gleam@dict:insert(Map, Key, Value). - --spec map_values(gleam@dict:dict(DBD, DBE), fun((DBD, DBE) -> DBF)) -> gleam@dict:dict(DBD, DBF). -map_values(Map, Fun) -> - gleam@dict:map_values(Map, Fun). - --spec keys(gleam@dict:dict(DBI, any())) -> list(DBI). -keys(Map) -> - gleam@dict:keys(Map). - --spec values(gleam@dict:dict(any(), DBL)) -> list(DBL). -values(Map) -> - gleam@dict:values(Map). - --spec filter(gleam@dict:dict(DBO, DBP), fun((DBO, DBP) -> boolean())) -> gleam@dict:dict(DBO, DBP). -filter(Map, Predicate) -> - gleam@dict:filter(Map, Predicate). - --spec take(gleam@dict:dict(DBS, DDM), list(DBS)) -> gleam@dict:dict(DBS, DDM). -take(Map, Desired_keys) -> - gleam@dict:take(Map, Desired_keys). - --spec merge(gleam@dict:dict(DDN, DDO), gleam@dict:dict(DDN, DDO)) -> gleam@dict:dict(DDN, DDO). -merge(Map, New_entries) -> - gleam@dict:merge(Map, New_entries). - --spec delete(gleam@dict:dict(DBZ, DDQ), DBZ) -> gleam@dict:dict(DBZ, DDQ). -delete(Map, Key) -> - gleam@dict:delete(Map, Key). - --spec drop(gleam@dict:dict(DCC, DDS), list(DCC)) -> gleam@dict:dict(DCC, DDS). -drop(Map, Disallowed_keys) -> - gleam@dict:drop(Map, Disallowed_keys). - --spec update( - gleam@dict:dict(DCG, DCH), - DCG, - fun((gleam@option:option(DCH)) -> DCH) -) -> gleam@dict:dict(DCG, DCH). -update(Map, Key, Fun) -> - gleam@dict:update(Map, Key, Fun). - --spec fold(gleam@dict:dict(DCM, DCN), DCL, fun((DCL, DCM, DCN) -> DCL)) -> DCL. -fold(Map, Initial, Fun) -> - gleam@dict:fold(Map, Initial, Fun). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl deleted file mode 100644 index 5c20713..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl +++ /dev/null @@ -1,147 +0,0 @@ --module(gleam@option). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([all/1, is_some/1, is_none/1, to_result/2, from_result/1, unwrap/2, lazy_unwrap/2, map/2, flatten/1, then/2, 'or'/2, lazy_or/2, values/1]). --export_type([option/1]). - --type option(GB) :: {some, GB} | none. - --spec do_all(list(option(GC)), list(GC)) -> option(list(GC)). -do_all(List, Acc) -> - case List of - [] -> - {some, Acc}; - - [X | Rest] -> - Accumulate = fun(Acc@1, Item) -> case {Acc@1, Item} of - {{some, Values}, {some, Value}} -> - {some, [Value | Values]}; - - {_, _} -> - none - end end, - Accumulate(do_all(Rest, Acc), X) - end. - --spec all(list(option(GI))) -> option(list(GI)). -all(List) -> - do_all(List, []). - --spec is_some(option(any())) -> boolean(). -is_some(Option) -> - Option /= none. - --spec is_none(option(any())) -> boolean(). -is_none(Option) -> - Option =:= none. - --spec to_result(option(GR), GU) -> {ok, GR} | {error, GU}. -to_result(Option, E) -> - case Option of - {some, A} -> - {ok, A}; - - _ -> - {error, E} - end. - --spec from_result({ok, GX} | {error, any()}) -> option(GX). -from_result(Result) -> - case Result of - {ok, A} -> - {some, A}; - - _ -> - none - end. - --spec unwrap(option(HC), HC) -> HC. -unwrap(Option, Default) -> - case Option of - {some, X} -> - X; - - none -> - Default - end. - --spec lazy_unwrap(option(HE), fun(() -> HE)) -> HE. -lazy_unwrap(Option, Default) -> - case Option of - {some, X} -> - X; - - none -> - Default() - end. - --spec map(option(HG), fun((HG) -> HI)) -> option(HI). -map(Option, Fun) -> - case Option of - {some, X} -> - {some, Fun(X)}; - - none -> - none - end. - --spec flatten(option(option(HK))) -> option(HK). -flatten(Option) -> - case Option of - {some, X} -> - X; - - none -> - none - end. - --spec then(option(HO), fun((HO) -> option(HQ))) -> option(HQ). -then(Option, Fun) -> - case Option of - {some, X} -> - Fun(X); - - none -> - none - end. - --spec 'or'(option(HT), option(HT)) -> option(HT). -'or'(First, Second) -> - case First of - {some, _} -> - First; - - none -> - Second - end. - --spec lazy_or(option(HX), fun(() -> option(HX))) -> option(HX). -lazy_or(First, Second) -> - case First of - {some, _} -> - First; - - none -> - Second() - end. - --spec do_values(list(option(IB)), list(IB)) -> list(IB). -do_values(List, Acc) -> - case List of - [] -> - Acc; - - [X | Xs] -> - Accumulate = fun(Acc@1, Item) -> case Item of - {some, Value} -> - [Value | Acc@1]; - - none -> - Acc@1 - end end, - Accumulate(do_values(Xs, Acc), X) - end. - --spec values(list(option(IG))) -> list(IG). -values(Options) -> - do_values(Options, []). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@order.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@order.erl deleted file mode 100644 index 61649b9..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@order.erl +++ /dev/null @@ -1,79 +0,0 @@ --module(gleam@order). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([negate/1, to_int/1, compare/2, max/2, min/2, reverse/1]). --export_type([order/0]). - --type order() :: lt | eq | gt. - --spec negate(order()) -> order(). -negate(Order) -> - case Order of - lt -> - gt; - - eq -> - eq; - - gt -> - lt - end. - --spec to_int(order()) -> integer(). -to_int(Order) -> - case Order of - lt -> - -1; - - eq -> - 0; - - gt -> - 1 - end. - --spec compare(order(), order()) -> order(). -compare(A, B) -> - case {A, B} of - {X, Y} when X =:= Y -> - eq; - - {lt, _} -> - lt; - - {eq, gt} -> - lt; - - {_, _} -> - gt - end. - --spec max(order(), order()) -> order(). -max(A, B) -> - case {A, B} of - {gt, _} -> - gt; - - {eq, lt} -> - eq; - - {_, _} -> - B - end. - --spec min(order(), order()) -> order(). -min(A, B) -> - case {A, B} of - {lt, _} -> - lt; - - {eq, gt} -> - eq; - - {_, _} -> - B - end. - --spec reverse(fun((I, I) -> order())) -> fun((I, I) -> order()). -reverse(Orderer) -> - fun(A, B) -> Orderer(B, A) end. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@pair.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@pair.erl deleted file mode 100644 index f4eff52..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@pair.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(gleam@pair). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([first/1, second/1, swap/1, map_first/2, map_second/2, new/2]). - --spec first({FM, any()}) -> FM. -first(Pair) -> - {A, _} = Pair, - A. - --spec second({any(), FP}) -> FP. -second(Pair) -> - {_, A} = Pair, - A. - --spec swap({FQ, FR}) -> {FR, FQ}. -swap(Pair) -> - {A, B} = Pair, - {B, A}. - --spec map_first({FS, FT}, fun((FS) -> FU)) -> {FU, FT}. -map_first(Pair, Fun) -> - {A, B} = Pair, - {Fun(A), B}. - --spec map_second({FV, FW}, fun((FW) -> FX)) -> {FV, FX}. -map_second(Pair, Fun) -> - {A, B} = Pair, - {A, Fun(B)}. - --spec new(FY, FZ) -> {FY, FZ}. -new(First, Second) -> - {First, Second}. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@queue.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@queue.erl deleted file mode 100644 index 6b587e7..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@queue.erl +++ /dev/null @@ -1,121 +0,0 @@ --module(gleam@queue). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/0, from_list/1, to_list/1, is_empty/1, length/1, push_back/2, push_front/2, pop_back/1, pop_front/1, reverse/1, is_logically_equal/3, is_equal/2]). --export_type([queue/1]). - --opaque queue(DRL) :: {queue, list(DRL), list(DRL)}. - --spec new() -> queue(any()). -new() -> - {queue, [], []}. - --spec from_list(list(DRO)) -> queue(DRO). -from_list(List) -> - {queue, [], List}. - --spec to_list(queue(DRR)) -> list(DRR). -to_list(Queue) -> - _pipe = erlang:element(3, Queue), - gleam@list:append(_pipe, gleam@list:reverse(erlang:element(2, Queue))). - --spec is_empty(queue(any())) -> boolean(). -is_empty(Queue) -> - (erlang:element(2, Queue) =:= []) andalso (erlang:element(3, Queue) =:= []). - --spec length(queue(any())) -> integer(). -length(Queue) -> - gleam@list:length(erlang:element(2, Queue)) + gleam@list:length( - erlang:element(3, Queue) - ). - --spec push_back(queue(DRY), DRY) -> queue(DRY). -push_back(Queue, Item) -> - {queue, [Item | erlang:element(2, Queue)], erlang:element(3, Queue)}. - --spec push_front(queue(DSB), DSB) -> queue(DSB). -push_front(Queue, Item) -> - {queue, erlang:element(2, Queue), [Item | erlang:element(3, Queue)]}. - --spec pop_back(queue(DSE)) -> {ok, {DSE, queue(DSE)}} | {error, nil}. -pop_back(Queue) -> - case Queue of - {queue, [], []} -> - {error, nil}; - - {queue, [], Out} -> - pop_back({queue, gleam@list:reverse(Out), []}); - - {queue, [First | Rest], Out@1} -> - Queue@1 = {queue, Rest, Out@1}, - {ok, {First, Queue@1}} - end. - --spec pop_front(queue(DSJ)) -> {ok, {DSJ, queue(DSJ)}} | {error, nil}. -pop_front(Queue) -> - case Queue of - {queue, [], []} -> - {error, nil}; - - {queue, In, []} -> - pop_front({queue, [], gleam@list:reverse(In)}); - - {queue, In@1, [First | Rest]} -> - Queue@1 = {queue, In@1, Rest}, - {ok, {First, Queue@1}} - end. - --spec reverse(queue(DSO)) -> queue(DSO). -reverse(Queue) -> - {queue, erlang:element(3, Queue), erlang:element(2, Queue)}. - --spec check_equal( - list(DSR), - list(DSR), - list(DSR), - list(DSR), - fun((DSR, DSR) -> boolean()) -) -> boolean(). -check_equal(Xs, X_tail, Ys, Y_tail, Eq) -> - case {Xs, X_tail, Ys, Y_tail} of - {[], [], [], []} -> - true; - - {[X | Xs@1], _, [Y | Ys@1], _} -> - case Eq(X, Y) of - false -> - false; - - true -> - check_equal(Xs@1, X_tail, Ys@1, Y_tail, Eq) - end; - - {[], [_ | _], _, _} -> - check_equal(gleam@list:reverse(X_tail), [], Ys, Y_tail, Eq); - - {_, _, [], [_ | _]} -> - check_equal(Xs, X_tail, gleam@list:reverse(Y_tail), [], Eq); - - {_, _, _, _} -> - false - end. - --spec is_logically_equal(queue(DSW), queue(DSW), fun((DSW, DSW) -> boolean())) -> boolean(). -is_logically_equal(A, B, Element_is_equal) -> - check_equal( - erlang:element(3, A), - erlang:element(2, A), - erlang:element(3, B), - erlang:element(2, B), - Element_is_equal - ). - --spec is_equal(queue(DSZ), queue(DSZ)) -> boolean(). -is_equal(A, B) -> - check_equal( - erlang:element(3, A), - erlang:element(2, A), - erlang:element(3, B), - erlang:element(2, B), - fun(A@1, B@1) -> A@1 =:= B@1 end - ). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@regex.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@regex.erl deleted file mode 100644 index 2d1c5fc..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@regex.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(gleam@regex). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([compile/2, from_string/1, check/2, split/2, scan/2]). --export_type([regex/0, match/0, compile_error/0, options/0]). - --type regex() :: any(). - --type match() :: {match, binary(), list(gleam@option:option(binary()))}. - --type compile_error() :: {compile_error, binary(), integer()}. - --type options() :: {options, boolean(), boolean()}. - --spec compile(binary(), options()) -> {ok, regex()} | {error, compile_error()}. -compile(Pattern, Options) -> - gleam_stdlib:compile_regex(Pattern, Options). - --spec from_string(binary()) -> {ok, regex()} | {error, compile_error()}. -from_string(Pattern) -> - compile(Pattern, {options, false, false}). - --spec check(regex(), binary()) -> boolean(). -check(Regex, Content) -> - gleam_stdlib:regex_check(Regex, Content). - --spec split(regex(), binary()) -> list(binary()). -split(Regex, String) -> - gleam_stdlib:regex_split(Regex, String). - --spec scan(regex(), binary()) -> list(match()). -scan(Regex, String) -> - gleam_stdlib:regex_scan(Regex, String). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@result.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@result.erl deleted file mode 100644 index 7324e45..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@result.erl +++ /dev/null @@ -1,201 +0,0 @@ --module(gleam@result). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([is_ok/1, is_error/1, map/2, map_error/2, flatten/1, 'try'/2, then/2, unwrap/2, lazy_unwrap/2, unwrap_error/2, unwrap_both/1, nil_error/1, 'or'/2, lazy_or/2, all/1, partition/1, replace/2, replace_error/2, values/1, try_recover/2]). - --spec is_ok({ok, any()} | {error, any()}) -> boolean(). -is_ok(Result) -> - case Result of - {error, _} -> - false; - - {ok, _} -> - true - end. - --spec is_error({ok, any()} | {error, any()}) -> boolean(). -is_error(Result) -> - case Result of - {ok, _} -> - false; - - {error, _} -> - true - end. - --spec map({ok, BFM} | {error, BFN}, fun((BFM) -> BFQ)) -> {ok, BFQ} | - {error, BFN}. -map(Result, Fun) -> - case Result of - {ok, X} -> - {ok, Fun(X)}; - - {error, E} -> - {error, E} - end. - --spec map_error({ok, BFT} | {error, BFU}, fun((BFU) -> BFX)) -> {ok, BFT} | - {error, BFX}. -map_error(Result, Fun) -> - case Result of - {ok, X} -> - {ok, X}; - - {error, Error} -> - {error, Fun(Error)} - end. - --spec flatten({ok, {ok, BGA} | {error, BGB}} | {error, BGB}) -> {ok, BGA} | - {error, BGB}. -flatten(Result) -> - case Result of - {ok, X} -> - X; - - {error, Error} -> - {error, Error} - end. - --spec 'try'({ok, BGI} | {error, BGJ}, fun((BGI) -> {ok, BGM} | {error, BGJ})) -> {ok, - BGM} | - {error, BGJ}. -'try'(Result, Fun) -> - case Result of - {ok, X} -> - Fun(X); - - {error, E} -> - {error, E} - end. - --spec then({ok, BGR} | {error, BGS}, fun((BGR) -> {ok, BGV} | {error, BGS})) -> {ok, - BGV} | - {error, BGS}. -then(Result, Fun) -> - 'try'(Result, Fun). - --spec unwrap({ok, BHA} | {error, any()}, BHA) -> BHA. -unwrap(Result, Default) -> - case Result of - {ok, V} -> - V; - - {error, _} -> - Default - end. - --spec lazy_unwrap({ok, BHE} | {error, any()}, fun(() -> BHE)) -> BHE. -lazy_unwrap(Result, Default) -> - case Result of - {ok, V} -> - V; - - {error, _} -> - Default() - end. - --spec unwrap_error({ok, any()} | {error, BHJ}, BHJ) -> BHJ. -unwrap_error(Result, Default) -> - case Result of - {ok, _} -> - Default; - - {error, E} -> - E - end. - --spec unwrap_both({ok, BHM} | {error, BHM}) -> BHM. -unwrap_both(Result) -> - case Result of - {ok, A} -> - A; - - {error, A@1} -> - A@1 - end. - --spec nil_error({ok, BHP} | {error, any()}) -> {ok, BHP} | {error, nil}. -nil_error(Result) -> - map_error(Result, fun(_) -> nil end). - --spec 'or'({ok, BHV} | {error, BHW}, {ok, BHV} | {error, BHW}) -> {ok, BHV} | - {error, BHW}. -'or'(First, Second) -> - case First of - {ok, _} -> - First; - - {error, _} -> - Second - end. - --spec lazy_or({ok, BID} | {error, BIE}, fun(() -> {ok, BID} | {error, BIE})) -> {ok, - BID} | - {error, BIE}. -lazy_or(First, Second) -> - case First of - {ok, _} -> - First; - - {error, _} -> - Second() - end. - --spec all(list({ok, BIL} | {error, BIM})) -> {ok, list(BIL)} | {error, BIM}. -all(Results) -> - gleam@list:try_map(Results, fun(X) -> X end). - --spec do_partition(list({ok, BJA} | {error, BJB}), list(BJA), list(BJB)) -> {list(BJA), - list(BJB)}. -do_partition(Results, Oks, Errors) -> - case Results of - [] -> - {Oks, Errors}; - - [{ok, A} | Rest] -> - do_partition(Rest, [A | Oks], Errors); - - [{error, E} | Rest@1] -> - do_partition(Rest@1, Oks, [E | Errors]) - end. - --spec partition(list({ok, BIT} | {error, BIU})) -> {list(BIT), list(BIU)}. -partition(Results) -> - do_partition(Results, [], []). - --spec replace({ok, any()} | {error, BJJ}, BJM) -> {ok, BJM} | {error, BJJ}. -replace(Result, Value) -> - case Result of - {ok, _} -> - {ok, Value}; - - {error, Error} -> - {error, Error} - end. - --spec replace_error({ok, BJP} | {error, any()}, BJT) -> {ok, BJP} | {error, BJT}. -replace_error(Result, Error) -> - case Result of - {ok, X} -> - {ok, X}; - - {error, _} -> - {error, Error} - end. - --spec values(list({ok, BJW} | {error, any()})) -> list(BJW). -values(Results) -> - gleam@list:filter_map(Results, fun(R) -> R end). - --spec try_recover( - {ok, BKC} | {error, BKD}, - fun((BKD) -> {ok, BKC} | {error, BKG}) -) -> {ok, BKC} | {error, BKG}. -try_recover(Result, Fun) -> - case Result of - {ok, Value} -> - {ok, Value}; - - {error, Error} -> - Fun(Error) - end. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@set.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@set.erl deleted file mode 100644 index df87b13..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@set.erl +++ /dev/null @@ -1,85 +0,0 @@ --module(gleam@set). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([new/0, size/1, insert/2, contains/2, delete/2, to_list/1, from_list/1, fold/3, filter/2, drop/2, take/2, union/2, intersection/2]). --export_type([set/1]). - --opaque set(DJZ) :: {set, gleam@dict:dict(DJZ, list(nil))}. - --spec new() -> set(any()). -new() -> - {set, gleam@dict:new()}. - --spec size(set(any())) -> integer(). -size(Set) -> - gleam@dict:size(erlang:element(2, Set)). - --spec insert(set(DKF), DKF) -> set(DKF). -insert(Set, Member) -> - {set, gleam@dict:insert(erlang:element(2, Set), Member, [])}. - --spec contains(set(DKI), DKI) -> boolean(). -contains(Set, Member) -> - _pipe = erlang:element(2, Set), - _pipe@1 = gleam@dict:get(_pipe, Member), - gleam@result:is_ok(_pipe@1). - --spec delete(set(DKK), DKK) -> set(DKK). -delete(Set, Member) -> - {set, gleam@dict:delete(erlang:element(2, Set), Member)}. - --spec to_list(set(DKN)) -> list(DKN). -to_list(Set) -> - gleam@dict:keys(erlang:element(2, Set)). - --spec from_list(list(DKQ)) -> set(DKQ). -from_list(Members) -> - Map = gleam@list:fold( - Members, - gleam@dict:new(), - fun(M, K) -> gleam@dict:insert(M, K, []) end - ), - {set, Map}. - --spec fold(set(DKT), DKV, fun((DKV, DKT) -> DKV)) -> DKV. -fold(Set, Initial, Reducer) -> - gleam@dict:fold( - erlang:element(2, Set), - Initial, - fun(A, K, _) -> Reducer(A, K) end - ). - --spec filter(set(DKW), fun((DKW) -> boolean())) -> set(DKW). -filter(Set, Predicate) -> - {set, - gleam@dict:filter(erlang:element(2, Set), fun(M, _) -> Predicate(M) end)}. - --spec drop(set(DKZ), list(DKZ)) -> set(DKZ). -drop(Set, Disallowed) -> - gleam@list:fold(Disallowed, Set, fun delete/2). - --spec take(set(DLD), list(DLD)) -> set(DLD). -take(Set, Desired) -> - {set, gleam@dict:take(erlang:element(2, Set), Desired)}. - --spec order(set(DLH), set(DLH)) -> {set(DLH), set(DLH)}. -order(First, Second) -> - case gleam@dict:size(erlang:element(2, First)) > gleam@dict:size( - erlang:element(2, Second) - ) of - true -> - {First, Second}; - - false -> - {Second, First} - end. - --spec union(set(DLM), set(DLM)) -> set(DLM). -union(First, Second) -> - {Larger, Smaller} = order(First, Second), - fold(Smaller, Larger, fun insert/2). - --spec intersection(set(DLQ), set(DLQ)) -> set(DLQ). -intersection(First, Second) -> - {Larger, Smaller} = order(First, Second), - take(Larger, to_list(Smaller)). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@string.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@string.erl deleted file mode 100644 index 6cba31d..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@string.erl +++ /dev/null @@ -1,352 +0,0 @@ --module(gleam@string). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([is_empty/1, length/1, reverse/1, replace/3, lowercase/1, uppercase/1, compare/2, slice/3, crop/2, drop_left/2, drop_right/2, contains/2, starts_with/2, ends_with/2, split_once/2, append/2, concat/1, repeat/2, join/2, pad_left/3, pad_right/3, trim/1, trim_left/1, trim_right/1, pop_grapheme/1, to_graphemes/1, split/2, to_utf_codepoints/1, from_utf_codepoints/1, utf_codepoint/1, utf_codepoint_to_int/1, to_option/1, first/1, last/1, capitalise/1, inspect/1, byte_size/1]). --export_type([direction/0]). - --type direction() :: leading | trailing | both. - --spec is_empty(binary()) -> boolean(). -is_empty(Str) -> - Str =:= <<""/utf8>>. - --spec length(binary()) -> integer(). -length(String) -> - string:length(String). - --spec do_reverse(binary()) -> binary(). -do_reverse(String) -> - _pipe = String, - _pipe@1 = gleam@string_builder:from_string(_pipe), - _pipe@2 = gleam@string_builder:reverse(_pipe@1), - gleam@string_builder:to_string(_pipe@2). - --spec reverse(binary()) -> binary(). -reverse(String) -> - do_reverse(String). - --spec replace(binary(), binary(), binary()) -> binary(). -replace(String, Pattern, Substitute) -> - _pipe = String, - _pipe@1 = gleam@string_builder:from_string(_pipe), - _pipe@2 = gleam@string_builder:replace(_pipe@1, Pattern, Substitute), - gleam@string_builder:to_string(_pipe@2). - --spec lowercase(binary()) -> binary(). -lowercase(String) -> - string:lowercase(String). - --spec uppercase(binary()) -> binary(). -uppercase(String) -> - string:uppercase(String). - --spec compare(binary(), binary()) -> gleam@order:order(). -compare(A, B) -> - case A =:= B of - true -> - eq; - - _ -> - case gleam_stdlib:less_than(A, B) of - true -> - lt; - - _ -> - gt - end - end. - --spec slice(binary(), integer(), integer()) -> binary(). -slice(String, Idx, Len) -> - case Len < 0 of - true -> - <<""/utf8>>; - - false -> - case Idx < 0 of - true -> - Translated_idx = length(String) + Idx, - case Translated_idx < 0 of - true -> - <<""/utf8>>; - - false -> - string:slice(String, Translated_idx, Len) - end; - - false -> - string:slice(String, Idx, Len) - end - end. - --spec crop(binary(), binary()) -> binary(). -crop(String, Substring) -> - gleam_stdlib:crop_string(String, Substring). - --spec drop_left(binary(), integer()) -> binary(). -drop_left(String, Num_graphemes) -> - case Num_graphemes < 0 of - true -> - String; - - false -> - slice(String, Num_graphemes, length(String) - Num_graphemes) - end. - --spec drop_right(binary(), integer()) -> binary(). -drop_right(String, Num_graphemes) -> - case Num_graphemes < 0 of - true -> - String; - - false -> - slice(String, 0, length(String) - Num_graphemes) - end. - --spec contains(binary(), binary()) -> boolean(). -contains(Haystack, Needle) -> - gleam_stdlib:contains_string(Haystack, Needle). - --spec starts_with(binary(), binary()) -> boolean(). -starts_with(String, Prefix) -> - gleam_stdlib:string_starts_with(String, Prefix). - --spec ends_with(binary(), binary()) -> boolean(). -ends_with(String, Suffix) -> - gleam_stdlib:string_ends_with(String, Suffix). - --spec do_split_once(binary(), binary()) -> {ok, {binary(), binary()}} | - {error, nil}. -do_split_once(X, Substring) -> - case string:split(X, Substring) of - [First, Rest] -> - {ok, {First, Rest}}; - - _ -> - {error, nil} - end. - --spec split_once(binary(), binary()) -> {ok, {binary(), binary()}} | - {error, nil}. -split_once(X, Substring) -> - do_split_once(X, Substring). - --spec append(binary(), binary()) -> binary(). -append(First, Second) -> - _pipe = First, - _pipe@1 = gleam@string_builder:from_string(_pipe), - _pipe@2 = gleam@string_builder:append(_pipe@1, Second), - gleam@string_builder:to_string(_pipe@2). - --spec concat(list(binary())) -> binary(). -concat(Strings) -> - _pipe = Strings, - _pipe@1 = gleam@string_builder:from_strings(_pipe), - gleam@string_builder:to_string(_pipe@1). - --spec repeat(binary(), integer()) -> binary(). -repeat(String, Times) -> - _pipe = gleam@iterator:repeat(String), - _pipe@1 = gleam@iterator:take(_pipe, Times), - _pipe@2 = gleam@iterator:to_list(_pipe@1), - concat(_pipe@2). - --spec do_join(list(binary()), binary()) -> binary(). -do_join(Strings, Separator) -> - _pipe = Strings, - _pipe@1 = gleam@list:intersperse(_pipe, Separator), - concat(_pipe@1). - --spec join(list(binary()), binary()) -> binary(). -join(Strings, Separator) -> - do_join(Strings, Separator). - --spec padding(integer(), binary()) -> gleam@iterator:iterator(binary()). -padding(Size, Pad_string) -> - Pad_length = length(Pad_string), - Num_pads = case Pad_length of - 0 -> 0; - Gleam@denominator -> Size div Gleam@denominator - end, - Extra = case Pad_length of - 0 -> 0; - Gleam@denominator@1 -> Size rem Gleam@denominator@1 - end, - _pipe = gleam@iterator:repeat(Pad_string), - _pipe@1 = gleam@iterator:take(_pipe, Num_pads), - gleam@iterator:append( - _pipe@1, - gleam@iterator:single(slice(Pad_string, 0, Extra)) - ). - --spec pad_left(binary(), integer(), binary()) -> binary(). -pad_left(String, Desired_length, Pad_string) -> - Current_length = length(String), - To_pad_length = Desired_length - Current_length, - _pipe = padding(To_pad_length, Pad_string), - _pipe@1 = gleam@iterator:append(_pipe, gleam@iterator:single(String)), - _pipe@2 = gleam@iterator:to_list(_pipe@1), - concat(_pipe@2). - --spec pad_right(binary(), integer(), binary()) -> binary(). -pad_right(String, Desired_length, Pad_string) -> - Current_length = length(String), - To_pad_length = Desired_length - Current_length, - _pipe = gleam@iterator:single(String), - _pipe@1 = gleam@iterator:append(_pipe, padding(To_pad_length, Pad_string)), - _pipe@2 = gleam@iterator:to_list(_pipe@1), - concat(_pipe@2). - --spec do_trim(binary()) -> binary(). -do_trim(String) -> - string:trim(String, both). - --spec trim(binary()) -> binary(). -trim(String) -> - do_trim(String). - --spec do_trim_left(binary()) -> binary(). -do_trim_left(String) -> - string:trim(String, leading). - --spec trim_left(binary()) -> binary(). -trim_left(String) -> - do_trim_left(String). - --spec do_trim_right(binary()) -> binary(). -do_trim_right(String) -> - string:trim(String, trailing). - --spec trim_right(binary()) -> binary(). -trim_right(String) -> - do_trim_right(String). - --spec pop_grapheme(binary()) -> {ok, {binary(), binary()}} | {error, nil}. -pop_grapheme(String) -> - gleam_stdlib:string_pop_grapheme(String). - --spec do_to_graphemes(binary(), list(binary())) -> list(binary()). -do_to_graphemes(String, Acc) -> - case pop_grapheme(String) of - {ok, {Grapheme, Rest}} -> - do_to_graphemes(Rest, [Grapheme | Acc]); - - _ -> - Acc - end. - --spec to_graphemes(binary()) -> list(binary()). -to_graphemes(String) -> - _pipe = do_to_graphemes(String, []), - gleam@list:reverse(_pipe). - --spec split(binary(), binary()) -> list(binary()). -split(X, Substring) -> - case Substring of - <<""/utf8>> -> - to_graphemes(X); - - _ -> - _pipe = X, - _pipe@1 = gleam@string_builder:from_string(_pipe), - _pipe@2 = gleam@string_builder:split(_pipe@1, Substring), - gleam@list:map(_pipe@2, fun gleam@string_builder:to_string/1) - end. - --spec do_to_utf_codepoints_impl(bitstring(), list(integer())) -> list(integer()). -do_to_utf_codepoints_impl(Bit_array, Acc) -> - case Bit_array of - <> -> - do_to_utf_codepoints_impl(Rest, [First | Acc]); - - _ -> - Acc - end. - --spec do_to_utf_codepoints(binary()) -> list(integer()). -do_to_utf_codepoints(String) -> - _pipe = do_to_utf_codepoints_impl(<>, []), - gleam@list:reverse(_pipe). - --spec to_utf_codepoints(binary()) -> list(integer()). -to_utf_codepoints(String) -> - do_to_utf_codepoints(String). - --spec from_utf_codepoints(list(integer())) -> binary(). -from_utf_codepoints(Utf_codepoints) -> - gleam_stdlib:utf_codepoint_list_to_string(Utf_codepoints). - --spec utf_codepoint(integer()) -> {ok, integer()} | {error, nil}. -utf_codepoint(Value) -> - case Value of - I when I > 1114111 -> - {error, nil}; - - 65534 -> - {error, nil}; - - 65535 -> - {error, nil}; - - I@1 when (I@1 >= 55296) andalso (I@1 =< 57343) -> - {error, nil}; - - I@2 -> - {ok, gleam_stdlib:identity(I@2)} - end. - --spec utf_codepoint_to_int(integer()) -> integer(). -utf_codepoint_to_int(Cp) -> - gleam_stdlib:identity(Cp). - --spec to_option(binary()) -> gleam@option:option(binary()). -to_option(S) -> - case S of - <<""/utf8>> -> - none; - - _ -> - {some, S} - end. - --spec first(binary()) -> {ok, binary()} | {error, nil}. -first(S) -> - case pop_grapheme(S) of - {ok, {First, _}} -> - {ok, First}; - - {error, E} -> - {error, E} - end. - --spec last(binary()) -> {ok, binary()} | {error, nil}. -last(S) -> - case pop_grapheme(S) of - {ok, {First, <<""/utf8>>}} -> - {ok, First}; - - {ok, {_, Rest}} -> - {ok, slice(Rest, -1, 1)}; - - {error, E} -> - {error, E} - end. - --spec capitalise(binary()) -> binary(). -capitalise(S) -> - case pop_grapheme(S) of - {ok, {First, Rest}} -> - append(uppercase(First), lowercase(Rest)); - - _ -> - <<""/utf8>> - end. - --spec inspect(any()) -> binary(). -inspect(Term) -> - _pipe = gleam_stdlib:inspect(Term), - gleam@string_builder:to_string(_pipe). - --spec byte_size(binary()) -> integer(). -byte_size(String) -> - erlang:byte_size(String). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@string_builder.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@string_builder.erl deleted file mode 100644 index 693e840..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@string_builder.erl +++ /dev/null @@ -1,91 +0,0 @@ --module(gleam@string_builder). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([prepend_builder/2, append_builder/2, new/0, from_strings/1, concat/1, from_string/1, prepend/2, append/2, to_string/1, byte_size/1, join/2, lowercase/1, uppercase/1, reverse/1, split/2, replace/3, is_equal/2, is_empty/1]). --export_type([string_builder/0, direction/0]). - --type string_builder() :: any(). - --type direction() :: all. - --spec prepend_builder(string_builder(), string_builder()) -> string_builder(). -prepend_builder(Builder, Prefix) -> - gleam_stdlib:iodata_append(Prefix, Builder). - --spec append_builder(string_builder(), string_builder()) -> string_builder(). -append_builder(Builder, Suffix) -> - gleam_stdlib:iodata_append(Builder, Suffix). - --spec new() -> string_builder(). -new() -> - gleam_stdlib:identity([]). - --spec from_strings(list(binary())) -> string_builder(). -from_strings(Strings) -> - gleam_stdlib:identity(Strings). - --spec concat(list(string_builder())) -> string_builder(). -concat(Builders) -> - gleam_stdlib:identity(Builders). - --spec from_string(binary()) -> string_builder(). -from_string(String) -> - gleam_stdlib:identity(String). - --spec prepend(string_builder(), binary()) -> string_builder(). -prepend(Builder, Prefix) -> - append_builder(from_string(Prefix), Builder). - --spec append(string_builder(), binary()) -> string_builder(). -append(Builder, Second) -> - append_builder(Builder, from_string(Second)). - --spec to_string(string_builder()) -> binary(). -to_string(Builder) -> - unicode:characters_to_binary(Builder). - --spec byte_size(string_builder()) -> integer(). -byte_size(Builder) -> - erlang:iolist_size(Builder). - --spec join(list(string_builder()), binary()) -> string_builder(). -join(Builders, Sep) -> - _pipe = Builders, - _pipe@1 = gleam@list:intersperse(_pipe, from_string(Sep)), - concat(_pipe@1). - --spec lowercase(string_builder()) -> string_builder(). -lowercase(Builder) -> - string:lowercase(Builder). - --spec uppercase(string_builder()) -> string_builder(). -uppercase(Builder) -> - string:uppercase(Builder). - --spec reverse(string_builder()) -> string_builder(). -reverse(Builder) -> - string:reverse(Builder). - --spec do_split(string_builder(), binary()) -> list(string_builder()). -do_split(Iodata, Pattern) -> - string:split(Iodata, Pattern, all). - --spec split(string_builder(), binary()) -> list(string_builder()). -split(Iodata, Pattern) -> - do_split(Iodata, Pattern). - --spec do_replace(string_builder(), binary(), binary()) -> string_builder(). -do_replace(Iodata, Pattern, Substitute) -> - string:replace(Iodata, Pattern, Substitute, all). - --spec replace(string_builder(), binary(), binary()) -> string_builder(). -replace(Builder, Pattern, Substitute) -> - do_replace(Builder, Pattern, Substitute). - --spec is_equal(string_builder(), string_builder()) -> boolean(). -is_equal(A, B) -> - string:equal(A, B). - --spec is_empty(string_builder()) -> boolean(). -is_empty(Builder) -> - string:is_empty(Builder). diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@uri.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@uri.erl deleted file mode 100644 index 7ec4fe7..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam@uri.erl +++ /dev/null @@ -1,252 +0,0 @@ --module(gleam@uri). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([parse/1, parse_query/1, percent_encode/1, query_to_string/1, percent_decode/1, path_segments/1, to_string/1, origin/1, merge/2]). --export_type([uri/0]). - --type uri() :: {uri, - gleam@option:option(binary()), - gleam@option:option(binary()), - gleam@option:option(binary()), - gleam@option:option(integer()), - binary(), - gleam@option:option(binary()), - gleam@option:option(binary())}. - --spec parse(binary()) -> {ok, uri()} | {error, nil}. -parse(Uri_string) -> - gleam_stdlib:uri_parse(Uri_string). - --spec parse_query(binary()) -> {ok, list({binary(), binary()})} | {error, nil}. -parse_query(Query) -> - gleam_stdlib:parse_query(Query). - --spec percent_encode(binary()) -> binary(). -percent_encode(Value) -> - gleam_stdlib:percent_encode(Value). - --spec query_pair({binary(), binary()}) -> gleam@string_builder:string_builder(). -query_pair(Pair) -> - gleam@string_builder:from_strings( - [percent_encode(erlang:element(1, Pair)), - <<"="/utf8>>, - percent_encode(erlang:element(2, Pair))] - ). - --spec query_to_string(list({binary(), binary()})) -> binary(). -query_to_string(Query) -> - _pipe = Query, - _pipe@1 = gleam@list:map(_pipe, fun query_pair/1), - _pipe@2 = gleam@list:intersperse( - _pipe@1, - gleam@string_builder:from_string(<<"&"/utf8>>) - ), - _pipe@3 = gleam@string_builder:concat(_pipe@2), - gleam@string_builder:to_string(_pipe@3). - --spec percent_decode(binary()) -> {ok, binary()} | {error, nil}. -percent_decode(Value) -> - gleam_stdlib:percent_decode(Value). - --spec do_remove_dot_segments(list(binary()), list(binary())) -> list(binary()). -do_remove_dot_segments(Input, Accumulator) -> - case Input of - [] -> - gleam@list:reverse(Accumulator); - - [Segment | Rest] -> - Accumulator@5 = case {Segment, Accumulator} of - {<<""/utf8>>, Accumulator@1} -> - Accumulator@1; - - {<<"."/utf8>>, Accumulator@2} -> - Accumulator@2; - - {<<".."/utf8>>, []} -> - []; - - {<<".."/utf8>>, [_ | Accumulator@3]} -> - Accumulator@3; - - {Segment@1, Accumulator@4} -> - [Segment@1 | Accumulator@4] - end, - do_remove_dot_segments(Rest, Accumulator@5) - end. - --spec remove_dot_segments(list(binary())) -> list(binary()). -remove_dot_segments(Input) -> - do_remove_dot_segments(Input, []). - --spec path_segments(binary()) -> list(binary()). -path_segments(Path) -> - remove_dot_segments(gleam@string:split(Path, <<"/"/utf8>>)). - --spec to_string(uri()) -> binary(). -to_string(Uri) -> - Parts = case erlang:element(8, Uri) of - {some, Fragment} -> - [<<"#"/utf8>>, Fragment]; - - _ -> - [] - end, - Parts@1 = case erlang:element(7, Uri) of - {some, Query} -> - [<<"?"/utf8>>, Query | Parts]; - - _ -> - Parts - end, - Parts@2 = [erlang:element(6, Uri) | Parts@1], - Parts@3 = case {erlang:element(4, Uri), - gleam@string:starts_with(erlang:element(6, Uri), <<"/"/utf8>>)} of - {{some, Host}, false} when Host =/= <<""/utf8>> -> - [<<"/"/utf8>> | Parts@2]; - - {_, _} -> - Parts@2 - end, - Parts@4 = case {erlang:element(4, Uri), erlang:element(5, Uri)} of - {{some, _}, {some, Port}} -> - [<<":"/utf8>>, gleam@int:to_string(Port) | Parts@3]; - - {_, _} -> - Parts@3 - end, - Parts@5 = case {erlang:element(2, Uri), - erlang:element(3, Uri), - erlang:element(4, Uri)} of - {{some, S}, {some, U}, {some, H}} -> - [S, <<"://"/utf8>>, U, <<"@"/utf8>>, H | Parts@4]; - - {{some, S@1}, none, {some, H@1}} -> - [S@1, <<"://"/utf8>>, H@1 | Parts@4]; - - {{some, S@2}, {some, _}, none} -> - [S@2, <<":"/utf8>> | Parts@4]; - - {{some, S@2}, none, none} -> - [S@2, <<":"/utf8>> | Parts@4]; - - {none, none, {some, H@2}} -> - [<<"//"/utf8>>, H@2 | Parts@4]; - - {_, _, _} -> - Parts@4 - end, - gleam@string:concat(Parts@5). - --spec origin(uri()) -> {ok, binary()} | {error, nil}. -origin(Uri) -> - {uri, Scheme, _, Host, Port, _, _, _} = Uri, - case Scheme of - {some, <<"https"/utf8>>} when Port =:= {some, 443} -> - Origin = {uri, Scheme, none, Host, none, <<""/utf8>>, none, none}, - {ok, to_string(Origin)}; - - {some, <<"http"/utf8>>} when Port =:= {some, 80} -> - Origin@1 = {uri, Scheme, none, Host, none, <<""/utf8>>, none, none}, - {ok, to_string(Origin@1)}; - - {some, S} when (S =:= <<"http"/utf8>>) orelse (S =:= <<"https"/utf8>>) -> - Origin@2 = {uri, Scheme, none, Host, Port, <<""/utf8>>, none, none}, - {ok, to_string(Origin@2)}; - - _ -> - {error, nil} - end. - --spec drop_last(list(DFL)) -> list(DFL). -drop_last(Elements) -> - gleam@list:take(Elements, gleam@list:length(Elements) - 1). - --spec join_segments(list(binary())) -> binary(). -join_segments(Segments) -> - gleam@string:join([<<""/utf8>> | Segments], <<"/"/utf8>>). - --spec merge(uri(), uri()) -> {ok, uri()} | {error, nil}. -merge(Base, Relative) -> - case Base of - {uri, {some, _}, _, {some, _}, _, _, _, _} -> - case Relative of - {uri, _, _, {some, _}, _, _, _, _} -> - Path = begin - _pipe = gleam@string:split( - erlang:element(6, Relative), - <<"/"/utf8>> - ), - _pipe@1 = remove_dot_segments(_pipe), - join_segments(_pipe@1) - end, - Resolved = {uri, - gleam@option:'or'( - erlang:element(2, Relative), - erlang:element(2, Base) - ), - none, - erlang:element(4, Relative), - gleam@option:'or'( - erlang:element(5, Relative), - erlang:element(5, Base) - ), - Path, - erlang:element(7, Relative), - erlang:element(8, Relative)}, - {ok, Resolved}; - - _ -> - {New_path, New_query} = case erlang:element(6, Relative) of - <<""/utf8>> -> - {erlang:element(6, Base), - gleam@option:'or'( - erlang:element(7, Relative), - erlang:element(7, Base) - )}; - - _ -> - Path_segments = case gleam@string:starts_with( - erlang:element(6, Relative), - <<"/"/utf8>> - ) of - true -> - gleam@string:split( - erlang:element(6, Relative), - <<"/"/utf8>> - ); - - false -> - _pipe@2 = gleam@string:split( - erlang:element(6, Base), - <<"/"/utf8>> - ), - _pipe@3 = drop_last(_pipe@2), - gleam@list:append( - _pipe@3, - gleam@string:split( - erlang:element(6, Relative), - <<"/"/utf8>> - ) - ) - end, - Path@1 = begin - _pipe@4 = Path_segments, - _pipe@5 = remove_dot_segments(_pipe@4), - join_segments(_pipe@5) - end, - {Path@1, erlang:element(7, Relative)} - end, - Resolved@1 = {uri, - erlang:element(2, Base), - none, - erlang:element(4, Base), - erlang:element(5, Base), - New_path, - New_query, - erlang:element(8, Relative)}, - {ok, Resolved@1} - end; - - _ -> - {error, nil} - end. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.app.src b/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.app.src deleted file mode 100644 index bcf08e2..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.app.src +++ /dev/null @@ -1,31 +0,0 @@ -{application, gleam_stdlib, [ - {vsn, "0.33.0"}, - {applications, []}, - {description, "A standard library for the Gleam programming language"}, - {modules, [gleam@base, - gleam@bit_array, - gleam@bit_builder, - gleam@bit_string, - gleam@bool, - gleam@bytes_builder, - gleam@dict, - gleam@dynamic, - gleam@float, - gleam@function, - gleam@int, - gleam@io, - gleam@iterator, - gleam@list, - gleam@map, - gleam@option, - gleam@order, - gleam@pair, - gleam@queue, - gleam@regex, - gleam@result, - gleam@set, - gleam@string, - gleam@string_builder, - gleam@uri]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.erl deleted file mode 100644 index c6ea125..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.erl +++ /dev/null @@ -1,529 +0,0 @@ --module(gleam_stdlib). - --export([ - map_get/2, iodata_append/2, identity/1, decode_int/1, decode_bool/1, - decode_float/1, decode_list/1, decode_option/2, decode_field/2, parse_int/1, - parse_float/1, less_than/2, string_pop_grapheme/1, string_starts_with/2, - wrap_list/1, string_ends_with/2, string_pad/4, decode_map/1, uri_parse/1, - bit_array_int_to_u32/1, bit_array_int_from_u32/1, decode_result/1, - bit_array_slice/3, decode_bit_array/1, compile_regex/2, regex_scan/2, - percent_encode/1, percent_decode/1, regex_check/2, regex_split/2, - base_decode64/1, parse_query/1, bit_array_concat/1, size_of_tuple/1, - decode_tuple/1, decode_tuple2/1, decode_tuple3/1, decode_tuple4/1, - decode_tuple5/1, decode_tuple6/1, tuple_get/2, classify_dynamic/1, print/1, - println/1, print_error/1, println_error/1, inspect/1, float_to_string/1, - int_from_base_string/2, utf_codepoint_list_to_string/1, contains_string/2, - crop_string/2, base16_decode/1 -]). - -%% Taken from OTP's uri_string module --define(DEC2HEX(X), - if ((X) >= 0) andalso ((X) =< 9) -> (X) + $0; - ((X) >= 10) andalso ((X) =< 15) -> (X) + $A - 10 - end). - -%% Taken from OTP's uri_string module --define(HEX2DEC(X), - if ((X) >= $0) andalso ((X) =< $9) -> (X) - $0; - ((X) >= $A) andalso ((X) =< $F) -> (X) - $A + 10; - ((X) >= $a) andalso ((X) =< $f) -> (X) - $a + 10 - end). - --define(is_lowercase_char(X), (X > 96 andalso X < 123)). --define(is_underscore_char(X), (X == 95)). --define(is_digit_char(X), (X > 47 andalso X < 58)). - -uppercase(X) -> X - 32. - -map_get(Map, Key) -> - case maps:find(Key, Map) of - error -> {error, nil}; - OkFound -> OkFound - end. - -iodata_append(Iodata, String) -> [Iodata, String]. - -identity(X) -> X. - -decode_error_msg(Expected, Data) when is_binary(Expected) -> - decode_error(Expected, classify_dynamic(Data)). -decode_error(Expected, Got) when is_binary(Expected) andalso is_binary(Got) -> - {error, [{decode_error, Expected, Got, []}]}. - -classify_dynamic(nil) -> <<"Nil">>; -classify_dynamic(X) when is_atom(X) -> <<"Atom">>; -classify_dynamic(X) when is_binary(X) -> <<"String">>; -classify_dynamic(X) when is_bitstring(X) -> <<"BitArray">>; -classify_dynamic(X) when is_integer(X) -> <<"Int">>; -classify_dynamic(X) when is_float(X) -> <<"Float">>; -classify_dynamic(X) when is_list(X) -> <<"List">>; -classify_dynamic(X) when is_boolean(X) -> <<"Bool">>; -classify_dynamic(X) when is_map(X) -> <<"Map">>; -classify_dynamic(X) when is_tuple(X) -> - iolist_to_binary(["Tuple of ", integer_to_list(tuple_size(X)), " elements"]); -classify_dynamic(X) when - is_function(X, 0) orelse is_function(X, 1) orelse is_function(X, 2) orelse - is_function(X, 3) orelse is_function(X, 4) orelse is_function(X, 5) orelse - is_function(X, 6) orelse is_function(X, 7) orelse is_function(X, 8) orelse - is_function(X, 9) orelse is_function(X, 10) orelse is_function(X, 11) orelse - is_function(X, 12) -> <<"Function">>; -classify_dynamic(_) -> <<"Some other type">>. - -decode_map(Data) when is_map(Data) -> {ok, Data}; -decode_map(Data) -> decode_error_msg(<<"Map">>, Data). - -decode_bit_array(Data) when is_bitstring(Data) -> {ok, Data}; -decode_bit_array(Data) -> decode_error_msg(<<"BitArray">>, Data). - -decode_int(Data) when is_integer(Data) -> {ok, Data}; -decode_int(Data) -> decode_error_msg(<<"Int">>, Data). - -decode_float(Data) when is_float(Data) -> {ok, Data}; -decode_float(Data) -> decode_error_msg(<<"Float">>, Data). - -decode_bool(Data) when is_boolean(Data) -> {ok, Data}; -decode_bool(Data) -> decode_error_msg(<<"Bool">>, Data). - -decode_list(Data) when is_list(Data) -> {ok, Data}; -decode_list(Data) -> decode_error_msg(<<"List">>, Data). - -decode_field(Data, Key) when is_map(Data) -> - case Data of - #{Key := Value} -> {ok, {some, Value}}; - _ -> - {ok, none} - end; -decode_field(Data, _) -> - decode_error_msg(<<"Map">>, Data). - -size_of_tuple(Data) -> tuple_size(Data). - -tuple_get(_tup, Index) when Index < 0 -> {error, nil}; -tuple_get(Data, Index) when Index >= tuple_size(Data) -> {error, nil}; -tuple_get(Data, Index) -> {ok, element(Index + 1, Data)}. - -decode_tuple(Data) when is_tuple(Data) -> {ok, Data}; -decode_tuple(Data) -> decode_error_msg(<<"Tuple">>, Data). - -decode_tuple2({_,_} = A) -> {ok, A}; -decode_tuple2([A,B]) -> {ok, {A,B}}; -decode_tuple2(Data) -> decode_error_msg(<<"Tuple of 2 elements">>, Data). - -decode_tuple3({_,_,_} = A) -> {ok, A}; -decode_tuple3([A,B,C]) -> {ok, {A,B,C}}; -decode_tuple3(Data) -> decode_error_msg(<<"Tuple of 3 elements">>, Data). - -decode_tuple4({_,_,_,_} = A) -> {ok, A}; -decode_tuple4([A,B,C,D]) -> {ok, {A,B,C,D}}; -decode_tuple4(Data) -> decode_error_msg(<<"Tuple of 4 elements">>, Data). - -decode_tuple5({_,_,_,_,_} = A) -> {ok, A}; -decode_tuple5([A,B,C,D,E]) -> {ok, {A,B,C,D,E}}; -decode_tuple5(Data) -> decode_error_msg(<<"Tuple of 5 elements">>, Data). - -decode_tuple6({_,_,_,_,_,_} = A) -> {ok, A}; -decode_tuple6([A,B,C,D,E,F]) -> {ok, {A,B,C,D,E,F}}; -decode_tuple6(Data) -> decode_error_msg(<<"Tuple of 6 elements">>, Data). - -decode_option(Term, F) -> - Decode = fun(Inner) -> - case F(Inner) of - {ok, Decoded} -> {ok, {some, Decoded}}; - Error -> Error - end - end, - case Term of - undefined -> {ok, none}; - error -> {ok, none}; - null -> {ok, none}; - none -> {ok, none}; - nil -> {ok, none}; - {some, Inner} -> Decode(Inner); - _ -> Decode(Term) - end. - -decode_result(Term) -> - case Term of - {ok, Inner} -> {ok, {ok, Inner}}; - ok -> {ok, {ok, nil}}; - {error, Inner} -> {ok, {error, Inner}}; - error -> {ok, {error, nil}}; - _ -> decode_error_msg(<<"Result">>, Term) - end. - -int_from_base_string(String, Base) -> - case catch binary_to_integer(String, Base) of - Int when is_integer(Int) -> {ok, Int}; - _ -> {error, nil} - end. - -parse_int(String) -> - case catch binary_to_integer(String) of - Int when is_integer(Int) -> {ok, Int}; - _ -> {error, nil} - end. - -parse_float(String) -> - case catch binary_to_float(String) of - Float when is_float(Float) -> {ok, Float}; - _ -> {error, nil} - end. - -less_than(Lhs, Rhs) -> - Lhs < Rhs. - -string_starts_with(_, <<>>) -> true; -string_starts_with(String, Prefix) when byte_size(Prefix) > byte_size(String) -> false; -string_starts_with(String, Prefix) -> - PrefixSize = byte_size(Prefix), - Prefix == binary_part(String, 0, PrefixSize). - -string_ends_with(_, <<>>) -> true; -string_ends_with(String, Suffix) when byte_size(Suffix) > byte_size(String) -> false; -string_ends_with(String, Suffix) -> - SuffixSize = byte_size(Suffix), - Suffix == binary_part(String, byte_size(String) - SuffixSize, SuffixSize). - -string_pad(String, Length, Dir, PadString) -> - Chars = string:pad(String, Length, Dir, binary_to_list(PadString)), - case unicode:characters_to_binary(Chars) of - Bin when is_binary(Bin) -> Bin; - Error -> erlang:error({gleam_error, {string_invalid_utf8, Error}}) - end. - -string_pop_grapheme(String) -> - case string:next_grapheme(String) of - [ Next | Rest ] -> - {ok, {unicode:characters_to_binary([Next]), unicode:characters_to_binary(Rest)}}; - _ -> {error, nil} - end. - -bit_array_concat(BitArrays) -> - list_to_bitstring(BitArrays). - -bit_array_slice(Bin, Pos, Len) -> - try {ok, binary:part(Bin, Pos, Len)} - catch error:badarg -> {error, nil} - end. - -bit_array_int_to_u32(I) when 0 =< I, I < 4294967296 -> - {ok, <>}; -bit_array_int_to_u32(_) -> - {error, nil}. - -bit_array_int_from_u32(<>) -> - {ok, I}; -bit_array_int_from_u32(_) -> - {error, nil}. - -compile_regex(String, Options) -> - {options, Caseless, Multiline} = Options, - OptionsList = [ - unicode, - ucp, - Caseless andalso caseless, - Multiline andalso multiline - ], - FilteredOptions = [Option || Option <- OptionsList, Option /= false], - case re:compile(String, FilteredOptions) of - {ok, MP} -> {ok, MP}; - {error, {Str, Pos}} -> - {error, {compile_error, unicode:characters_to_binary(Str), Pos}} - end. - -regex_check(Regex, String) -> - re:run(String, Regex) /= nomatch. - -regex_split(Regex, String) -> - re:split(String, Regex). - -regex_submatches(_, {-1, 0}) -> none; -regex_submatches(String, {Start, Length}) -> - BinarySlice = binary:part(String, {Start, Length}), - case string:is_empty(binary_to_list(BinarySlice)) of - true -> none; - false -> {some, BinarySlice} - end. - -regex_matches(String, [{Start, Length} | Submatches]) -> - Submatches1 = lists:map(fun(X) -> regex_submatches(String, X) end, Submatches), - {match, binary:part(String, Start, Length), Submatches1}. - -regex_scan(Regex, String) -> - case re:run(String, Regex, [global]) of - {match, Captured} -> lists:map(fun(X) -> regex_matches(String, X) end, Captured); - nomatch -> [] - end. - -base_decode64(S) -> - try {ok, base64:decode(S)} - catch error:_ -> {error, nil} - end. - -wrap_list(X) when is_list(X) -> X; -wrap_list(X) -> [X]. - -parse_query(Query) -> - case uri_string:dissect_query(Query) of - {error, _, _} -> {error, nil}; - Pairs -> - Pairs1 = lists:map(fun - ({K, true}) -> {K, <<"">>}; - (Pair) -> Pair - end, Pairs), - {ok, Pairs1} - end. - -percent_encode(B) -> percent_encode(B, <<>>). -percent_encode(<<>>, Acc) -> - Acc; -percent_encode(<>, Acc) -> - case percent_ok(H) of - true -> - percent_encode(T, <>); - false -> - <> = <>, - percent_encode(T, <>) - end. - -percent_decode(Cs) -> percent_decode(Cs, <<>>). -percent_decode(<<$%, C0, C1, Cs/binary>>, Acc) -> - case is_hex_digit(C0) andalso is_hex_digit(C1) of - true -> - B = ?HEX2DEC(C0)*16+?HEX2DEC(C1), - percent_decode(Cs, <>); - false -> - {error, nil} - end; -percent_decode(<>, Acc) -> - percent_decode(Cs, <>); -percent_decode(<<>>, Acc) -> - check_utf8(Acc). - -percent_ok($!) -> true; -percent_ok($$) -> true; -percent_ok($') -> true; -percent_ok($() -> true; -percent_ok($)) -> true; -percent_ok($*) -> true; -percent_ok($+) -> true; -percent_ok($-) -> true; -percent_ok($.) -> true; -percent_ok($_) -> true; -percent_ok($~) -> true; -percent_ok(C) when $0 =< C, C =< $9 -> true; -percent_ok(C) when $A =< C, C =< $Z -> true; -percent_ok(C) when $a =< C, C =< $z -> true; -percent_ok(_) -> false. - -is_hex_digit(C) -> - ($0 =< C andalso C =< $9) orelse ($a =< C andalso C =< $f) orelse ($A =< C andalso C =< $F). - -check_utf8(Cs) -> - case unicode:characters_to_list(Cs) of - {incomplete, _, _} -> {error, nil}; - {error, _, _} -> {error, nil}; - _ -> {ok, Cs} - end. - -uri_parse(String) -> - case uri_string:parse(String) of - {error, _, _} -> {error, nil}; - Uri -> - {ok, {uri, - maps_get_optional(Uri, scheme), - maps_get_optional(Uri, userinfo), - maps_get_optional(Uri, host), - maps_get_optional(Uri, port), - maps_get_or(Uri, path, <<>>), - maps_get_optional(Uri, query), - maps_get_optional(Uri, fragment) - }} - end. - -maps_get_optional(Map, Key) -> - try {some, maps:get(Key, Map)} - catch _:_ -> none - end. - -maps_get_or(Map, Key, Default) -> - try maps:get(Key, Map) - catch _:_ -> Default - end. - -print(String) -> - io:put_chars(String), - nil. - -println(String) -> - io:put_chars([String, $\n]), - nil. - -print_error(String) -> - io:put_chars(standard_error, String), - nil. - -println_error(String) -> - io:put_chars(standard_error, [String, $\n]), - nil. - -inspect(true) -> - "True"; -inspect(false) -> - "False"; -inspect(nil) -> - "Nil"; -inspect(Data) when is_map(Data) -> - Fields = [ - [<<"#(">>, inspect(Key), <<", ">>, inspect(Value), <<")">>] - || {Key, Value} <- maps:to_list(Data) - ], - ["dict.from_list([", lists:join(", ", Fields), "])"]; -inspect(Atom) when is_atom(Atom) -> - Binary = erlang:atom_to_binary(Atom), - case inspect_maybe_gleam_atom(Binary, none, <<>>) of - {ok, Inspected} -> Inspected; - {error, _} -> ["atom.create_from_string(\"", Binary, "\")"] - end; -inspect(Any) when is_integer(Any) -> - erlang:integer_to_list(Any); -inspect(Any) when is_float(Any) -> - io_lib_format:fwrite_g(Any); -inspect(Binary) when is_binary(Binary) -> - case inspect_maybe_utf8_string(Binary, <<>>) of - {ok, InspectedUtf8String} -> InspectedUtf8String; - {error, not_a_utf8_string} -> - Segments = [erlang:integer_to_list(X) || <> <= Binary], - ["<<", lists:join(", ", Segments), ">>"] - end; -inspect(Bits) when is_bitstring(Bits) -> - inspect_bit_array(Bits); -inspect(List) when is_list(List) -> - case inspect_list(List) of - {proper, Elements} -> ["[", Elements, "]"]; - {improper, Elements} -> ["//erl([", Elements, "])"] - end; -inspect(Any) when is_tuple(Any) % Record constructors - andalso is_atom(element(1, Any)) - andalso element(1, Any) =/= false - andalso element(1, Any) =/= true - andalso element(1, Any) =/= nil --> - [Atom | ArgsList] = erlang:tuple_to_list(Any), - Args = lists:join(<<", ">>, - lists:map(fun inspect/1, ArgsList) - ), - [inspect(Atom), "(", Args, ")"]; -inspect(Tuple) when is_tuple(Tuple) -> - Elements = lists:map(fun inspect/1, erlang:tuple_to_list(Tuple)), - ["#(", lists:join(", ", Elements), ")"]; -inspect(Any) when is_function(Any) -> - {arity, Arity} = erlang:fun_info(Any, arity), - ArgsAsciiCodes = lists:seq($a, $a + Arity - 1), - Args = lists:join(<<", ">>, - lists:map(fun(Arg) -> <> end, ArgsAsciiCodes) - ), - ["//fn(", Args, ") { ... }"]; -inspect(Any) -> - ["//erl(", io_lib:format("~p", [Any]), ")"]. - - -inspect_maybe_gleam_atom(<<>>, none, _) -> - {error, nil}; -inspect_maybe_gleam_atom(<>, none, _) when ?is_digit_char(First) -> - {error, nil}; -inspect_maybe_gleam_atom(<<"_", _Rest/binary>>, none, _) -> - {error, nil}; -inspect_maybe_gleam_atom(<<"_">>, _PrevChar, _Acc) -> - {error, nil}; -inspect_maybe_gleam_atom(<<"_", _Rest/binary>>, $_, _Acc) -> - {error, nil}; -inspect_maybe_gleam_atom(<>, _PrevChar, _Acc) - when not (?is_lowercase_char(First) orelse ?is_underscore_char(First) orelse ?is_digit_char(First)) -> - {error, nil}; -inspect_maybe_gleam_atom(<>, none, Acc) -> - inspect_maybe_gleam_atom(Rest, First, <>); -inspect_maybe_gleam_atom(<<"_", Rest/binary>>, _PrevChar, Acc) -> - inspect_maybe_gleam_atom(Rest, $_, Acc); -inspect_maybe_gleam_atom(<>, $_, Acc) -> - inspect_maybe_gleam_atom(Rest, First, <>); -inspect_maybe_gleam_atom(<>, _PrevChar, Acc) -> - inspect_maybe_gleam_atom(Rest, First, <>); -inspect_maybe_gleam_atom(<<>>, _PrevChar, Acc) -> - {ok, Acc}; -inspect_maybe_gleam_atom(A, B, C) -> - erlang:display({A, B, C}), - throw({gleam_error, A, B, C}). - -inspect_list([]) -> - {proper, []}; -inspect_list([First]) -> - {proper, [inspect(First)]}; -inspect_list([First | Rest]) when is_list(Rest) -> - {Kind, Inspected} = inspect_list(Rest), - {Kind, [inspect(First), <<", ">> | Inspected]}; -inspect_list([First | ImproperTail]) -> - {improper, [inspect(First), <<" | ">>, inspect(ImproperTail)]}. - -inspect_bit_array(Bits) -> - Text = inspect_bit_array(Bits, <<"<<">>), - <>">>. - -inspect_bit_array(<<>>, Acc) -> - Acc; -inspect_bit_array(<>, Acc) -> - inspect_bit_array(Rest, append_segment(Acc, erlang:integer_to_binary(X))); -inspect_bit_array(Rest, Acc) -> - Size = bit_size(Rest), - <> = Rest, - X1 = erlang:integer_to_binary(X), - Size1 = erlang:integer_to_binary(Size), - Segment = <>, - inspect_bit_array(<<>>, append_segment(Acc, Segment)). - -append_segment(<<"<<">>, Segment) -> - <<"<<", Segment/binary>>; -append_segment(Acc, Segment) -> - <>. - - -inspect_maybe_utf8_string(Binary, Acc) -> - case Binary of - <<>> -> {ok, <<$", Acc/binary, $">>}; - <> -> - Escaped = case First of - $" -> <<$\\, $">>; - $\\ -> <<$\\, $\\>>; - $\r -> <<$\\, $r>>; - $\n -> <<$\\, $n>>; - $\t -> <<$\\, $t>>; - Other -> <> - end, - inspect_maybe_utf8_string(Rest, <>); - _ -> {error, not_a_utf8_string} - end. - -float_to_string(Float) when is_float(Float) -> - erlang:iolist_to_binary(io_lib_format:fwrite_g(Float)). - -utf_codepoint_list_to_string(List) -> - case unicode:characters_to_binary(List) of - {error, _} -> erlang:error({gleam_error, {string_invalid_utf8, List}}); - Binary -> Binary - end. - -crop_string(String, Prefix) -> - case string:find(String, Prefix) of - nomatch -> String; - New -> New - end. - -contains_string(String, Substring) -> - is_bitstring(string:find(String, Substring)). - -base16_decode(String) -> - try - {ok, binary:decode_hex(String)} - catch - _:_ -> {error, nil} - end. diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.mjs b/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.mjs deleted file mode 100644 index a908b23..0000000 --- a/aoc2023/build/packages/gleam_stdlib/src/gleam_stdlib.mjs +++ /dev/null @@ -1,875 +0,0 @@ -import { - BitArray, - Error, - List, - Ok, - Result, - UtfCodepoint, - stringBits, - toBitArray, - NonEmpty, - CustomType, -} from "./gleam.mjs"; -import { - CompileError as RegexCompileError, - Match as RegexMatch, -} from "./gleam/regex.mjs"; -import { DecodeError } from "./gleam/dynamic.mjs"; -import { Some, None } from "./gleam/option.mjs"; -import Dict from "./dict.mjs"; - -const Nil = undefined; -const NOT_FOUND = {}; - -export function identity(x) { - return x; -} - -export function parse_int(value) { - if (/^[-+]?(\d+)$/.test(value)) { - return new Ok(parseInt(value)); - } else { - return new Error(Nil); - } -} - -export function parse_float(value) { - if (/^[-+]?(\d+)\.(\d+)$/.test(value)) { - return new Ok(parseFloat(value)); - } else { - return new Error(Nil); - } -} - -export function to_string(term) { - return term.toString(); -} - -export function float_to_string(float) { - const string = float.toString(); - if (string.indexOf(".") >= 0) { - return string; - } else { - return string + ".0"; - } -} - -export function int_to_base_string(int, base) { - return int.toString(base).toUpperCase(); -} - -const int_base_patterns = { - 2: /[^0-1]/, - 3: /[^0-2]/, - 4: /[^0-3]/, - 5: /[^0-4]/, - 6: /[^0-5]/, - 7: /[^0-6]/, - 8: /[^0-7]/, - 9: /[^0-8]/, - 10: /[^0-9]/, - 11: /[^0-9a]/, - 12: /[^0-9a-b]/, - 13: /[^0-9a-c]/, - 14: /[^0-9a-d]/, - 15: /[^0-9a-e]/, - 16: /[^0-9a-f]/, - 17: /[^0-9a-g]/, - 18: /[^0-9a-h]/, - 19: /[^0-9a-i]/, - 20: /[^0-9a-j]/, - 21: /[^0-9a-k]/, - 22: /[^0-9a-l]/, - 23: /[^0-9a-m]/, - 24: /[^0-9a-n]/, - 25: /[^0-9a-o]/, - 26: /[^0-9a-p]/, - 27: /[^0-9a-q]/, - 28: /[^0-9a-r]/, - 29: /[^0-9a-s]/, - 30: /[^0-9a-t]/, - 31: /[^0-9a-u]/, - 32: /[^0-9a-v]/, - 33: /[^0-9a-w]/, - 34: /[^0-9a-x]/, - 35: /[^0-9a-y]/, - 36: /[^0-9a-z]/, -}; - -export function int_from_base_string(string, base) { - if (int_base_patterns[base].test(string.replace(/^-/, "").toLowerCase())) { - return new Error(Nil); - } - - const result = parseInt(string, base); - - if (isNaN(result)) { - return new Error(Nil); - } - - return new Ok(result); -} - -export function string_replace(string, target, substitute) { - if (typeof string.replaceAll !== "undefined") { - return string.replaceAll(target, substitute); - } - // Fallback for older Node.js versions: - // 1. - // 2. - // TODO: This fallback could be remove once Node.js 14 is EOL - // aka on or after 2024-04-30 - return string.replace( - // $& means the whole matched string - new RegExp(target.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), - substitute - ); -} - -export function string_reverse(string) { - return [...string].reverse().join(""); -} - -export function string_length(string) { - if (string === "") { - return 0; - } - const iterator = graphemes_iterator(string); - if (iterator) { - let i = 0; - for (const _ of iterator) { - i++; - } - return i; - } else { - return string.match(/./gsu).length; - } -} - -export function graphemes(string) { - return List.fromArray( - Array.from(graphemes_iterator(string)).map((item) => item.segment) - ); -} - -function graphemes_iterator(string) { - if (Intl && Intl.Segmenter) { - return new Intl.Segmenter().segment(string)[Symbol.iterator](); - } -} - -export function pop_grapheme(string) { - let first; - const iterator = graphemes_iterator(string); - if (iterator) { - first = iterator.next().value?.segment; - } else { - first = string.match(/./su)?.[0]; - } - if (first) { - return new Ok([first, string.slice(first.length)]); - } else { - return new Error(Nil); - } -} - -export function lowercase(string) { - return string.toLowerCase(); -} - -export function uppercase(string) { - return string.toUpperCase(); -} - -export function less_than(a, b) { - return a < b; -} - -export function add(a, b) { - return a + b; -} - -export function equal(a, b) { - return a === b; -} - -export function split(xs, pattern) { - return List.fromArray(xs.split(pattern)); -} - -export function join(xs, separator) { - const iterator = xs[Symbol.iterator](); - let result = iterator.next().value || ""; - let current = iterator.next(); - while (!current.done) { - result = result + separator + current.value; - current = iterator.next(); - } - return result; -} - -export function concat(xs) { - let result = ""; - for (const x of xs) { - result = result + x; - } - return result; -} - -export function length(data) { - return data.length; -} - -export function crop_string(string, substring) { - return string.substring(string.indexOf(substring)); -} - -export function contains_string(haystack, needle) { - return haystack.indexOf(needle) >= 0; -} - -export function starts_with(haystack, needle) { - return haystack.startsWith(needle); -} - -export function ends_with(haystack, needle) { - return haystack.endsWith(needle); -} - -export function split_once(haystack, needle) { - const index = haystack.indexOf(needle); - if (index >= 0) { - const before = haystack.slice(0, index); - const after = haystack.slice(index + needle.length); - return new Ok([before, after]); - } else { - return new Error(Nil); - } -} - -export function trim(string) { - return string.trim(); -} - -export function trim_left(string) { - return string.trimLeft(); -} - -export function trim_right(string) { - return string.trimRight(); -} - -export function bit_array_from_string(string) { - return toBitArray([stringBits(string)]); -} - -export function bit_array_concat(bit_arrays) { - return toBitArray(bit_arrays.toArray().map((b) => b.buffer)); -} - -export function console_log(term) { - console.log(term); -} - -export function console_error(term) { - console.error(term); -} - -export function crash(message) { - throw new globalThis.Error(message); -} - -export function bit_array_to_string(bit_array) { - try { - const decoder = new TextDecoder("utf-8", { fatal: true }); - return new Ok(decoder.decode(bit_array.buffer)); - } catch (_error) { - return new Error(Nil); - } -} - -export function print(string) { - if (typeof process === "object") { - process.stdout.write(string); // We can write without a trailing newline - } else if (typeof Deno === "object") { - Deno.stdout.writeSync(new TextEncoder().encode(string)); // We can write without a trailing newline - } else { - console.log(string); // We're in a browser. Newlines are mandated - } -} - -export function print_error(string) { - if (typeof process === "object" && process.stderr?.write) { - process.stderr.write(string); // We can write without a trailing newline - } else if (typeof Deno === "object") { - Deno.stderr.writeSync(new TextEncoder().encode(string)); // We can write without a trailing newline - } else { - console.error(string); // We're in a browser. Newlines are mandated - } -} - -export function print_debug(string) { - if (typeof process === "object" && process.stderr?.write) { - process.stderr.write(string + "\n"); // If we're in Node.js, use `stderr` - } else if (typeof Deno === "object") { - Deno.stderr.writeSync(new TextEncoder().encode(string + "\n")); // If we're in Deno, use `stderr` - } else { - console.log(string); // Otherwise, use `console.log` (so that it doesn't look like an error) - } -} - -export function ceiling(float) { - return Math.ceil(float); -} - -export function floor(float) { - return Math.floor(float); -} - -export function round(float) { - return Math.round(float); -} - -export function truncate(float) { - return Math.trunc(float); -} - -export function power(base, exponent) { - // It is checked in Gleam that: - // - The base is non-negative and that the exponent is not fractional. - // - The base is non-zero and the exponent is non-negative (otherwise - // the result will essentially be division by zero). - // It can thus be assumed that valid input is passed to the Math.pow - // function and a NaN or Infinity value will not be produced. - return Math.pow(base, exponent); -} - -export function random_uniform() { - const random_uniform_result = Math.random(); - // With round-to-nearest-even behavior, the ranges claimed for the functions below - // (excluding the one for Math.random() itself) aren't exact. - // If extremely large bounds are chosen (2^53 or higher), - // it's possible in extremely rare cases to calculate the usually-excluded upper bound. - // Note that as numbers in JavaScript are IEEE 754 floating point numbers - // See: - // Because of this, we just loop 'until' we get a valid result where 0.0 <= x < 1.0: - if (random_uniform_result === 1.0) { - return random_uniform(); - } - return random_uniform_result; -} - -export function bit_array_slice(bits, position, length) { - const start = Math.min(position, position + length); - const end = Math.max(position, position + length); - if (start < 0 || end > bits.length) return new Error(Nil); - const buffer = new Uint8Array(bits.buffer.buffer, start, Math.abs(length)); - return new Ok(new BitArray(buffer)); -} - -export function codepoint(int) { - return new UtfCodepoint(int); -} - -export function string_to_codepoint_integer_list(string) { - return List.fromArray(Array.from(string).map((item) => item.codePointAt(0))); -} - -export function utf_codepoint_list_to_string(utf_codepoint_integer_list) { - return utf_codepoint_integer_list - .toArray() - .map((x) => String.fromCodePoint(x.value)) - .join(""); -} - -export function utf_codepoint_to_int(utf_codepoint) { - return utf_codepoint.value; -} - -export function regex_check(regex, string) { - regex.lastIndex = 0; - return regex.test(string); -} - -export function compile_regex(pattern, options) { - try { - let flags = "gu"; - if (options.case_insensitive) flags += "i"; - if (options.multi_line) flags += "m"; - return new Ok(new RegExp(pattern, flags)); - } catch (error) { - const number = (error.columnNumber || 0) | 0; - return new Error(new RegexCompileError(error.message, number)); - } -} - -export function regex_scan(regex, string) { - const matches = Array.from(string.matchAll(regex)).map((match) => { - const content = match[0]; - const submatches = []; - for (let n = match.length - 1; n > 0; n--) { - if (match[n]) { - submatches[n - 1] = new Some(match[n]); - continue; - } - if (submatches.length > 0) { - submatches[n - 1] = new None(); - } - } - return new RegexMatch(content, List.fromArray(submatches)); - }); - return List.fromArray(matches); -} - -export function new_map() { - return Dict.new(); -} - -export function map_size(map) { - return map.size; -} - -export function map_to_list(map) { - return List.fromArray(map.entries()); -} - -export function map_remove(key, map) { - return map.delete(key); -} - -export function map_get(map, key) { - const value = map.get(key, NOT_FOUND); - if (value === NOT_FOUND) { - return new Error(Nil); - } - return new Ok(value); -} - -export function map_insert(key, value, map) { - return map.set(key, value); -} - -function unsafe_percent_decode(string) { - return decodeURIComponent((string || "").replace("+", " ")); -} - -export function percent_decode(string) { - try { - return new Ok(unsafe_percent_decode(string)); - } catch (_error) { - return new Error(Nil); - } -} - -export function percent_encode(string) { - return encodeURIComponent(string); -} - -export function parse_query(query) { - try { - const pairs = []; - for (const section of query.split("&")) { - const [key, value] = section.split("="); - if (!key) continue; - pairs.push([unsafe_percent_decode(key), unsafe_percent_decode(value)]); - } - return new Ok(List.fromArray(pairs)); - } catch (_error) { - return new Error(Nil); - } -} - -// From https://developer.mozilla.org/en-US/docs/Glossary/Base64#Solution_2_%E2%80%93_rewrite_the_DOMs_atob()_and_btoa()_using_JavaScript's_TypedArrays_and_UTF-8 -export function encode64(bit_array) { - const aBytes = bit_array.buffer; - let nMod3 = 2; - let sB64Enc = ""; - - for (let nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) { - nMod3 = nIdx % 3; - if (nIdx > 0 && ((nIdx * 4) / 3) % 76 === 0) { - sB64Enc += "\r\n"; - } - nUint24 |= aBytes[nIdx] << ((16 >>> nMod3) & 24); - if (nMod3 === 2 || aBytes.length - nIdx === 1) { - sB64Enc += String.fromCharCode( - uint6ToB64((nUint24 >>> 18) & 63), - uint6ToB64((nUint24 >>> 12) & 63), - uint6ToB64((nUint24 >>> 6) & 63), - uint6ToB64(nUint24 & 63) - ); - nUint24 = 0; - } - } - - return ( - sB64Enc.substr(0, sB64Enc.length - 2 + nMod3) + - (nMod3 === 2 ? "" : nMod3 === 1 ? "=" : "==") - ); -} - -// From https://developer.mozilla.org/en-US/docs/Glossary/Base64#Solution_2_%E2%80%93_rewrite_the_DOMs_atob()_and_btoa()_using_JavaScript's_TypedArrays_and_UTF-8 -function uint6ToB64(nUint6) { - return nUint6 < 26 - ? nUint6 + 65 - : nUint6 < 52 - ? nUint6 + 71 - : nUint6 < 62 - ? nUint6 - 4 - : nUint6 === 62 - ? 43 - : nUint6 === 63 - ? 47 - : 65; -} - -// From https://developer.mozilla.org/en-US/docs/Glossary/Base64#Solution_2_%E2%80%93_rewrite_the_DOMs_atob()_and_btoa()_using_JavaScript's_TypedArrays_and_UTF-8 -function b64ToUint6(nChr) { - return nChr > 64 && nChr < 91 - ? nChr - 65 - : nChr > 96 && nChr < 123 - ? nChr - 71 - : nChr > 47 && nChr < 58 - ? nChr + 4 - : nChr === 43 - ? 62 - : nChr === 47 - ? 63 - : 0; -} - -// From https://developer.mozilla.org/en-US/docs/Glossary/Base64#Solution_2_%E2%80%93_rewrite_the_DOMs_atob()_and_btoa()_using_JavaScript's_TypedArrays_and_UTF-8 -export function decode64(sBase64) { - if (sBase64.match(/[^A-Za-z0-9\+\/=]/g)) return new Error(Nil); - const sB64Enc = sBase64.replace(/=/g, ""); - const nInLen = sB64Enc.length; - const nOutLen = (nInLen * 3 + 1) >> 2; - const taBytes = new Uint8Array(nOutLen); - - for ( - let nMod3, nMod4, nUint24 = 0, nOutIdx = 0, nInIdx = 0; - nInIdx < nInLen; - nInIdx++ - ) { - nMod4 = nInIdx & 3; - nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4)); - if (nMod4 === 3 || nInLen - nInIdx === 1) { - for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) { - taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255; - } - nUint24 = 0; - } - } - - return new Ok(new BitArray(taBytes)); -} - -export function classify_dynamic(data) { - if (typeof data === "string") { - return "String"; - } else if (data instanceof Result) { - return "Result"; - } else if (data instanceof List) { - return "List"; - } else if (data instanceof BitArray) { - return "BitArray"; - } else if (data instanceof Dict) { - return "Map"; - } else if (Number.isInteger(data)) { - return "Int"; - } else if (Array.isArray(data)) { - return `Tuple of ${data.length} elements`; - } else if (typeof data === "number") { - return "Float"; - } else if (data === null) { - return "Null"; - } else if (data === undefined) { - return "Nil"; - } else { - const type = typeof data; - return type.charAt(0).toUpperCase() + type.slice(1); - } -} - -function decoder_error(expected, got) { - return decoder_error_no_classify(expected, classify_dynamic(got)); -} - -function decoder_error_no_classify(expected, got) { - return new Error( - List.fromArray([new DecodeError(expected, got, List.fromArray([]))]) - ); -} - -export function decode_string(data) { - return typeof data === "string" - ? new Ok(data) - : decoder_error("String", data); -} - -export function decode_int(data) { - return Number.isInteger(data) ? new Ok(data) : decoder_error("Int", data); -} - -export function decode_float(data) { - return typeof data === "number" ? new Ok(data) : decoder_error("Float", data); -} - -export function decode_bool(data) { - return typeof data === "boolean" ? new Ok(data) : decoder_error("Bool", data); -} - -export function decode_bit_array(data) { - if (data instanceof BitArray) { - return new Ok(data); - } - if (data instanceof Uint8Array) { - return new Ok(new BitArray(data)); - } - return decoder_error("BitArray", data); -} - -export function decode_tuple(data) { - return Array.isArray(data) ? new Ok(data) : decoder_error("Tuple", data); -} - -export function decode_tuple2(data) { - return decode_tupleN(data, 2); -} - -export function decode_tuple3(data) { - return decode_tupleN(data, 3); -} - -export function decode_tuple4(data) { - return decode_tupleN(data, 4); -} - -export function decode_tuple5(data) { - return decode_tupleN(data, 5); -} - -export function decode_tuple6(data) { - return decode_tupleN(data, 6); -} - -function decode_tupleN(data, n) { - if (Array.isArray(data) && data.length == n) { - return new Ok(data); - } - - const list = decode_exact_length_list(data, n); - if (list) return new Ok(list); - - return decoder_error(`Tuple of ${n} elements`, data); -} - -function decode_exact_length_list(data, n) { - if (!(data instanceof List)) return; - - const elements = []; - let current = data; - - for (let i = 0; i < n; i++) { - if (!(current instanceof NonEmpty)) break; - elements.push(current.head); - current = current.tail; - } - - if (elements.length === n && !(current instanceof NonEmpty)) return elements; -} - -export function tuple_get(data, index) { - return index >= 0 && data.length > index - ? new Ok(data[index]) - : new Error(Nil); -} - -export function decode_list(data) { - if (Array.isArray(data)) { - return new Ok(List.fromArray(data)); - } - return data instanceof List ? new Ok(data) : decoder_error("List", data); -} - -export function decode_result(data) { - return data instanceof Result ? new Ok(data) : decoder_error("Result", data); -} - -export function decode_map(data) { - if (data instanceof Dict) { - return new Ok(Dict.fromMap(data)); - } - if (data == null) { - return decoder_error("Map", data); - } - if (typeof data !== "object") { - return decoder_error("Map", data); - } - const proto = Object.getPrototypeOf(data); - if (proto === Object.prototype || proto === null) { - return new Ok(Dict.fromObject(data)); - } - return decoder_error("Map", data); -} - -export function decode_option(data, decoder) { - if (data === null || data === undefined || data instanceof None) - return new Ok(new None()); - if (data instanceof Some) data = data[0]; - const result = decoder(data); - if (result.isOk()) { - return new Ok(new Some(result[0])); - } else { - return result; - } -} - -export function decode_field(value, name) { - const not_a_map_error = () => decoder_error("Map", value); - - if ( - value instanceof Dict || - value instanceof WeakMap || - value instanceof Map - ) { - const entry = map_get(value, name); - return new Ok(entry.isOk() ? new Some(entry[0]) : new None()); - } else if (Object.getPrototypeOf(value) == Object.prototype) { - return try_get_field(value, name, () => new Ok(new None())); - } else { - return try_get_field(value, name, not_a_map_error); - } -} - -function try_get_field(value, field, or_else) { - try { - return field in value ? new Ok(new Some(value[field])) : or_else(); - } catch { - return or_else(); - } -} - -export function byte_size(string) { - return new TextEncoder().encode(string).length; -} - -// In Javascript bitwise operations convert numbers to a sequence of 32 bits -// while Erlang uses arbitrary precision. -// To get around this problem and get consistent results use BigInt and then -// downcast the value back to a Number value. - -export function bitwise_and(x, y) { - return Number(BigInt(x) & BigInt(y)); -} - -export function bitwise_not(x) { - return Number(~BigInt(x)); -} - -export function bitwise_or(x, y) { - return Number(BigInt(x) | BigInt(y)); -} - -export function bitwise_exclusive_or(x, y) { - return Number(BigInt(x) ^ BigInt(y)); -} - -export function bitwise_shift_left(x, y) { - return Number(BigInt(x) << BigInt(y)); -} - -export function bitwise_shift_right(x, y) { - return Number(BigInt(x) >> BigInt(y)); -} - -export function inspect(v) { - const t = typeof v; - if (v === true) return "True"; - if (v === false) return "False"; - if (v === null) return "//js(null)"; - if (v === undefined) return "Nil"; - if (t === "string") return JSON.stringify(v); - if (t === "bigint" || t === "number") return v.toString(); - if (Array.isArray(v)) return `#(${v.map(inspect).join(", ")})`; - if (v instanceof List) return inspectList(v); - if (v instanceof UtfCodepoint) return inspectUtfCodepoint(v); - if (v instanceof BitArray) return inspectBitArray(v); - if (v instanceof CustomType) return inspectCustomType(v); - if (v instanceof Dict) return inspectDict(v); - if (v instanceof Set) return `//js(Set(${[...v].map(inspect).join(", ")}))`; - if (v instanceof RegExp) return `//js(${v})`; - if (v instanceof Date) return `//js(Date("${v.toISOString()}"))`; - if (v instanceof Function) { - const args = []; - for (const i of Array(v.length).keys()) - args.push(String.fromCharCode(i + 97)); - return `//fn(${args.join(", ")}) { ... }`; - } - return inspectObject(v); -} - -function inspectDict(map) { - let body = "dict.from_list(["; - let first = true; - map.forEach((value, key) => { - if (!first) body = body + ", "; - body = body + "#(" + inspect(key) + ", " + inspect(value) + ")"; - first = false; - }); - return body + "])"; -} - -function inspectObject(v) { - const name = Object.getPrototypeOf(v)?.constructor?.name || "Object"; - const props = []; - for (const k of Object.keys(v)) { - props.push(`${inspect(k)}: ${inspect(v[k])}`); - } - const body = props.length ? " " + props.join(", ") + " " : ""; - const head = name === "Object" ? "" : name + " "; - return `//js(${head}{${body}})`; -} - -function inspectCustomType(record) { - const props = Object.keys(record) - .map((label) => { - const value = inspect(record[label]); - return isNaN(parseInt(label)) ? `${label}: ${value}` : value; - }) - .join(", "); - return props - ? `${record.constructor.name}(${props})` - : record.constructor.name; -} - -export function inspectList(list) { - return `[${list.toArray().map(inspect).join(", ")}]`; -} - -export function inspectBitArray(bits) { - return `<<${Array.from(bits.buffer).join(", ")}>>`; -} - -export function inspectUtfCodepoint(codepoint) { - return `//utfcodepoint(${String.fromCodePoint(codepoint.value)})`; -} - -export function base16_encode(bit_array) { - let result = ""; - for (const byte of bit_array.buffer) { - result += byte.toString(16).padStart(2, "0").toUpperCase(); - } - return result; -} - -export function base16_decode(string) { - const bytes = new Uint8Array(string.length / 2); - for (let i = 0; i < string.length; i += 2) { - const a = parseInt(string[i], 16); - const b = parseInt(string[i + 1], 16); - if (isNaN(a) || isNaN(b)) return new Error(Nil); - bytes[i / 2] = a * 16 + b; - } - return new Ok(new BitArray(bytes)); -} diff --git a/aoc2023/build/packages/glint/LICENSE b/aoc2023/build/packages/glint/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/aoc2023/build/packages/glint/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/aoc2023/build/packages/glint/README.md b/aoc2023/build/packages/glint/README.md deleted file mode 100644 index d6d5821..0000000 --- a/aoc2023/build/packages/glint/README.md +++ /dev/null @@ -1,104 +0,0 @@ -# glint - -[![Hex Package](https://img.shields.io/hexpm/v/glint?color=ffaff3&label=%F0%9F%93%A6)](https://hex.pm/packages/glint) -[![Hex.pm](https://img.shields.io/hexpm/dt/glint?color=ffaff3)](https://hex.pm/packages/glint) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3?label=%F0%9F%93%9A)](https://hexdocs.pm/glint/) -[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/tanklesxl/glint/main)](https://github.com/tanklesxl/glint/actions) - -Gleam command line argument parsing with basic flag support. - -## Installation - -To install from hex: - -```sh -gleam add glint -``` - -## Usage - -### Glint's Core - -`glint` is conceptually quite small, your general flow will be: - -1. create a new glint instance with `glint.new` -1. configure it with `glint.with_pretty_help` and other configuration functions -1. add commands with `glint.add` - 1. create a new command with `glint.cmd` - 1. assign that command any flags required - 1. assign the command a custom description -1. run your cli with `glnt.run`, run with a function to handle command output with `glint.run_and_handle` - -### Mini Example - -You can import `glint` as a dependency and use it to build simple command-line applications like the following simplified version of the [the hello world example](https://github.com/TanklesXL/glint/tree/main/examples/hello/README.md) - -```gleam -// stdlib imports -import gleam/io -import gleam/list -import gleam/result -import gleam/string.{uppercase} -// external dep imports -import snag -// glint imports -import glint -import glint/flag -// erlang-specific imports - -@target(erlang) -import gleam/erlang.{start_arguments} - -/// the key for the caps flag -const caps = "caps" - -/// a boolean flag with default False to control message capitalization. -/// -fn caps_flag() -> flag.FlagBuilder(Bool) { - flag.bool() - |> flag.default(False) - |> flag.description("Capitalize the provided name") -} - -/// the command function that will be executed -/// -fn hello(input: glint.CommandInput) -> Nil { - let assert Ok(caps) = flag.get_bool(from: input.flags, for: caps) - - let name = - case input.args { - [] -> "Joe" - [name,..] -> name - } - - let msg = "Hello, " <> name <> "!" - - - case caps { - True -> uppercase(msg) - False -> msg - } - |> io.println -} - -pub fn main() { - // create a new glint instance - glint.new() - // with an app name of "hello", this is used when printing help text - |> glint.with_name("hello") - // with pretty help enabled, using the built-in colours - |> glint.with_pretty_help(glint.default_pretty_help()) - // with a root command that executes the `hello` function - |> glint.add( - // add the command to the root - at: [], - // create the command, add any flags - do: glint.command(hello) - // with flag `caps` - |> glint.flag(caps, caps_flag()) - // with a short description - |> glint.description("Prints Hello, !"), - ) - |> glint.run(start_arguments()) -} -``` diff --git a/aoc2023/build/packages/glint/gleam.toml b/aoc2023/build/packages/glint/gleam.toml deleted file mode 100644 index e8ac4ae..0000000 --- a/aoc2023/build/packages/glint/gleam.toml +++ /dev/null @@ -1,23 +0,0 @@ -name = "glint" -version = "0.13.0" - -# Fill out these fields if you intend to generate HTML documentation or publishname = "glint" -# your project to the Hex package manager. -# -licences = ["Apache-2.0"] -description = "Gleam command line argument parsing with basic flag support." -repository = { type = "github", user = "TanklesXL", repo = "glint" } -links = [ - { title = "Hex", href = "https://hex.pm/packages/glint" }, - { title = "Docs", href = "https://hexdocs.pm/glint/" }, -] -gleam = ">= 0.32.0" - -[dependencies] -gleam_stdlib = "~> 0.19" -snag = "~> 0.2" -gleam_community_ansi = "~> 1.0" -gleam_community_colour = "~> 1.0" - -[dev-dependencies] -gleeunit = "~> 0.5" diff --git a/aoc2023/build/packages/glint/include/glint@flag_Flag.hrl b/aoc2023/build/packages/glint/include/glint@flag_Flag.hrl deleted file mode 100644 index 645cb12..0000000 --- a/aoc2023/build/packages/glint/include/glint@flag_Flag.hrl +++ /dev/null @@ -1 +0,0 @@ --record(flag, {value :: glint@flag:value(), description :: binary()}). diff --git a/aoc2023/build/packages/glint/include/glint@flag_FlagBuilder.hrl b/aoc2023/build/packages/glint/include/glint@flag_FlagBuilder.hrl deleted file mode 100644 index b5e21a2..0000000 --- a/aoc2023/build/packages/glint/include/glint@flag_FlagBuilder.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(flag_builder, { - desc :: binary(), - parser :: fun((binary()) -> {ok, any()} | {error, snag:snag()}), - value :: fun((glint@flag:internal(any())) -> glint@flag:value()), - default :: gleam@option:option(any()) -}). diff --git a/aoc2023/build/packages/glint/include/glint@flag_Internal.hrl b/aoc2023/build/packages/glint/include/glint@flag_Internal.hrl deleted file mode 100644 index 281bbd0..0000000 --- a/aoc2023/build/packages/glint/include/glint@flag_Internal.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(internal, { - value :: gleam@option:option(any()), - parser :: fun((binary()) -> {ok, any()} | {error, snag:snag()}) -}). diff --git a/aoc2023/build/packages/glint/include/glint_Command.hrl b/aoc2023/build/packages/glint/include/glint_Command.hrl deleted file mode 100644 index 00a03e3..0000000 --- a/aoc2023/build/packages/glint/include/glint_Command.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(command, { - do :: fun((glint:command_input()) -> any()), - flags :: gleam@map:map_(binary(), glint@flag:flag()), - description :: binary() -}). diff --git a/aoc2023/build/packages/glint/include/glint_CommandInput.hrl b/aoc2023/build/packages/glint/include/glint_CommandInput.hrl deleted file mode 100644 index 72c9641..0000000 --- a/aoc2023/build/packages/glint/include/glint_CommandInput.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(command_input, { - args :: list(binary()), - flags :: gleam@map:map_(binary(), glint@flag:flag()) -}). diff --git a/aoc2023/build/packages/glint/include/glint_Config.hrl b/aoc2023/build/packages/glint/include/glint_Config.hrl deleted file mode 100644 index 70cf645..0000000 --- a/aoc2023/build/packages/glint/include/glint_Config.hrl +++ /dev/null @@ -1,4 +0,0 @@ --record(config, { - pretty_help :: gleam@option:option(glint:pretty_help()), - name :: gleam@option:option(binary()) -}). diff --git a/aoc2023/build/packages/glint/include/glint_Glint.hrl b/aoc2023/build/packages/glint/include/glint_Glint.hrl deleted file mode 100644 index 7ece11d..0000000 --- a/aoc2023/build/packages/glint/include/glint_Glint.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(glint, { - config :: glint:config(), - cmd :: glint:command_node(any()), - global_flags :: gleam@map:map_(binary(), glint@flag:flag()) -}). diff --git a/aoc2023/build/packages/glint/include/glint_PrettyHelp.hrl b/aoc2023/build/packages/glint/include/glint_PrettyHelp.hrl deleted file mode 100644 index 79bd887..0000000 --- a/aoc2023/build/packages/glint/include/glint_PrettyHelp.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(pretty_help, { - usage :: gleam_community@colour:colour(), - flags :: gleam_community@colour:colour(), - subcommands :: gleam_community@colour:colour() -}). diff --git a/aoc2023/build/packages/glint/include/glint_Stub.hrl b/aoc2023/build/packages/glint/include/glint_Stub.hrl deleted file mode 100644 index 5aa5d83..0000000 --- a/aoc2023/build/packages/glint/include/glint_Stub.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(stub, { - path :: list(binary()), - run :: fun((glint:command_input()) -> any()), - flags :: list({binary(), glint@flag:flag()}), - description :: binary() -}). diff --git a/aoc2023/build/packages/glint/src/glint.app.src b/aoc2023/build/packages/glint/src/glint.app.src deleted file mode 100644 index 7eb7649..0000000 --- a/aoc2023/build/packages/glint/src/glint.app.src +++ /dev/null @@ -1,13 +0,0 @@ -{application, glint, [ - {vsn, "0.13.0"}, - {applications, [gleam_community_ansi, - gleam_community_colour, - gleam_stdlib, - gleeunit, - snag]}, - {description, "Gleam command line argument parsing with basic flag support."}, - {modules, [glint, - glint@flag, - glint@flag@constraint]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/glint/src/glint.erl b/aoc2023/build/packages/glint/src/glint.erl deleted file mode 100644 index 0501cc6..0000000 --- a/aoc2023/build/packages/glint/src/glint.erl +++ /dev/null @@ -1,513 +0,0 @@ --module(glint). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([with_config/2, with_pretty_help/2, without_pretty_help/1, with_name/2, new/0, command/1, description/2, flag/3, flag_tuple/2, flags/2, global_flag/3, global_flag_tuple/2, global_flags/2, default_pretty_help/0, add/3, help_flag/0, execute/2, run_and_handle/3, run/2, add_command_from_stub/2]). --export_type([config/0, pretty_help/0, glint/1, command/1, command_input/0, command_node/1, out/1, stub/1]). - --type config() :: {config, - gleam@option:option(pretty_help()), - gleam@option:option(binary())}. - --type pretty_help() :: {pretty_help, - gleam_community@colour:colour(), - gleam_community@colour:colour(), - gleam_community@colour:colour()}. - --opaque glint(GHR) :: {glint, - config(), - command_node(GHR), - gleam@map:map_(binary(), glint@flag:flag())}. - --opaque command(GHS) :: {command, - fun((command_input()) -> GHS), - gleam@map:map_(binary(), glint@flag:flag()), - binary()}. - --type command_input() :: {command_input, - list(binary()), - gleam@map:map_(binary(), glint@flag:flag())}. - --type command_node(GHT) :: {command_node, - gleam@option:option(command(GHT)), - gleam@map:map_(binary(), command_node(GHT))}. - --type out(GHU) :: {out, GHU} | {help, binary()}. - --type stub(GHV) :: {stub, - list(binary()), - fun((command_input()) -> GHV), - list({binary(), glint@flag:flag()}), - binary()}. - --spec with_config(glint(GIA), config()) -> glint(GIA). -with_config(Glint, Config) -> - erlang:setelement(2, Glint, Config). - --spec with_pretty_help(glint(GID), pretty_help()) -> glint(GID). -with_pretty_help(Glint, Pretty) -> - _pipe = erlang:setelement(2, erlang:element(2, Glint), {some, Pretty}), - with_config(Glint, _pipe). - --spec without_pretty_help(glint(GIG)) -> glint(GIG). -without_pretty_help(Glint) -> - _pipe = erlang:setelement(2, erlang:element(2, Glint), none), - with_config(Glint, _pipe). - --spec with_name(glint(GIJ), binary()) -> glint(GIJ). -with_name(Glint, Name) -> - _pipe = erlang:setelement(3, erlang:element(2, Glint), {some, Name}), - with_config(Glint, _pipe). - --spec empty_command() -> command_node(any()). -empty_command() -> - {command_node, none, gleam@map:new()}. - --spec new() -> glint(any()). -new() -> - {glint, {config, none, none}, empty_command(), gleam@map:new()}. - --spec do_add(command_node(GIT), list(binary()), command(GIT)) -> command_node(GIT). -do_add(Root, Path, Contents) -> - case Path of - [] -> - erlang:setelement(2, Root, {some, Contents}); - - [X | Xs] -> - erlang:setelement( - 3, - Root, - (gleam@map:update( - erlang:element(3, Root), - X, - fun(Node) -> _pipe = Node, - _pipe@1 = gleam@option:lazy_unwrap( - _pipe, - fun empty_command/0 - ), - do_add(_pipe@1, Xs, Contents) end - )) - ) - end. - --spec command(fun((command_input()) -> GJC)) -> command(GJC). -command(Runner) -> - {command, Runner, gleam@map:new(), <<""/utf8>>}. - --spec description(command(GJF), binary()) -> command(GJF). -description(Cmd, Description) -> - erlang:setelement(4, Cmd, Description). - --spec flag(command(GJI), binary(), glint@flag:flag_builder(any())) -> command(GJI). -flag(Cmd, Key, Flag) -> - erlang:setelement( - 3, - Cmd, - gleam@map:insert(erlang:element(3, Cmd), Key, glint@flag:build(Flag)) - ). - --spec flag_tuple(command(GJN), {binary(), glint@flag:flag_builder(any())}) -> command(GJN). -flag_tuple(Cmd, Tup) -> - flag(Cmd, erlang:element(1, Tup), erlang:element(2, Tup)). - --spec flags(command(GJS), list({binary(), glint@flag:flag()})) -> command(GJS). -flags(Cmd, Flags) -> - gleam@list:fold( - Flags, - Cmd, - fun(Cmd@1, _use1) -> - {Key, Flag} = _use1, - erlang:setelement( - 3, - Cmd@1, - gleam@map:insert(erlang:element(3, Cmd@1), Key, Flag) - ) - end - ). - --spec global_flag(glint(GJW), binary(), glint@flag:flag_builder(any())) -> glint(GJW). -global_flag(Glint, Key, Flag) -> - erlang:setelement( - 4, - Glint, - gleam@map:insert(erlang:element(4, Glint), Key, glint@flag:build(Flag)) - ). - --spec global_flag_tuple(glint(GKB), {binary(), glint@flag:flag_builder(any())}) -> glint(GKB). -global_flag_tuple(Glint, Tup) -> - global_flag(Glint, erlang:element(1, Tup), erlang:element(2, Tup)). - --spec global_flags(glint(GKG), list({binary(), glint@flag:flag()})) -> glint(GKG). -global_flags(Glint, Flags) -> - erlang:setelement( - 4, - Glint, - (gleam@list:fold( - Flags, - erlang:element(4, Glint), - fun(Acc, Tup) -> - gleam@map:insert( - Acc, - erlang:element(1, Tup), - erlang:element(2, Tup) - ) - end - )) - ). - --spec execute_root( - command_node(GKU), - gleam@map:map_(binary(), glint@flag:flag()), - list(binary()), - list(binary()) -) -> {ok, out(GKU)} | {error, snag:snag()}. -execute_root(Cmd, Global_flags, Args, Flag_inputs) -> - _pipe@3 = case erlang:element(2, Cmd) of - {some, Contents} -> - gleam@result:'try'( - gleam@list:try_fold( - Flag_inputs, - gleam@map:merge(Global_flags, erlang:element(3, Contents)), - fun glint@flag:update_flags/2 - ), - fun(New_flags) -> _pipe = {command_input, Args, New_flags}, - _pipe@1 = (erlang:element(2, Contents))(_pipe), - _pipe@2 = {out, _pipe@1}, - {ok, _pipe@2} end - ); - - none -> - snag:error(<<"command not found"/utf8>>) - end, - snag:context(_pipe@3, <<"failed to run command"/utf8>>). - --spec default_pretty_help() -> pretty_help(). -default_pretty_help() -> - _assert_subject = gleam_community@colour:from_rgb255(182, 255, 234), - {ok, Usage_colour} = case _assert_subject of - {ok, _} -> _assert_subject; - _assert_fail -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail, - module => <<"glint"/utf8>>, - function => <<"default_pretty_help"/utf8>>, - line => 404}) - end, - _assert_subject@1 = gleam_community@colour:from_rgb255(255, 175, 243), - {ok, Flags_colour} = case _assert_subject@1 of - {ok, _} -> _assert_subject@1; - _assert_fail@1 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@1, - module => <<"glint"/utf8>>, - function => <<"default_pretty_help"/utf8>>, - line => 405}) - end, - _assert_subject@2 = gleam_community@colour:from_rgb255(252, 226, 174), - {ok, Subcommands_colour} = case _assert_subject@2 of - {ok, _} -> _assert_subject@2; - _assert_fail@2 -> - erlang:error(#{gleam_error => let_assert, - message => <<"Assertion pattern match failed"/utf8>>, - value => _assert_fail@2, - module => <<"glint"/utf8>>, - function => <<"default_pretty_help"/utf8>>, - line => 406}) - end, - {pretty_help, Usage_colour, Flags_colour, Subcommands_colour}. - --spec is_not_empty(binary()) -> boolean(). -is_not_empty(S) -> - S /= <<""/utf8>>. - --spec sanitize_path(list(binary())) -> list(binary()). -sanitize_path(Path) -> - _pipe = Path, - _pipe@1 = gleam@list:map(_pipe, fun gleam@string:trim/1), - gleam@list:filter(_pipe@1, fun is_not_empty/1). - --spec add(glint(GIO), list(binary()), command(GIO)) -> glint(GIO). -add(Glint, Path, Contents) -> - erlang:setelement( - 3, - Glint, - begin - _pipe = Path, - _pipe@1 = sanitize_path(_pipe), - do_add(erlang:element(3, Glint), _pipe@1, Contents) - end - ). - --spec help_flag() -> binary(). -help_flag() -> - <<(<<"--"/utf8>>)/binary, "help"/utf8>>. - --spec wrap_with_space(binary()) -> binary(). -wrap_with_space(S) -> - case S of - <<""/utf8>> -> - <<" "/utf8>>; - - _ -> - <<<<" "/utf8, S/binary>>/binary, " "/utf8>> - end. - --spec subcommand_help(binary(), command_node(any())) -> binary(). -subcommand_help(Name, Cmd) -> - case erlang:element(2, Cmd) of - none -> - Name; - - {some, Contents} -> - <<<>/binary, - (erlang:element(4, Contents))/binary>> - end. - --spec subcommands_help(gleam@map:map_(binary(), command_node(any()))) -> binary(). -subcommands_help(Cmds) -> - _pipe = Cmds, - _pipe@1 = gleam@map:map_values(_pipe, fun subcommand_help/2), - _pipe@2 = gleam@map:values(_pipe@1), - _pipe@3 = gleam@list:sort(_pipe@2, fun gleam@string:compare/2), - gleam@string:join(_pipe@3, <<"\n\t"/utf8>>). - --spec heading_style(binary(), gleam_community@colour:colour()) -> binary(). -heading_style(Heading, Colour) -> - _pipe = Heading, - _pipe@1 = gleam_community@ansi:bold(_pipe), - _pipe@2 = gleam_community@ansi:underline(_pipe@1), - _pipe@3 = gleam_community@ansi:italic(_pipe@2), - _pipe@4 = gleam_community@ansi:hex( - _pipe@3, - gleam_community@colour:to_rgb_hex(Colour) - ), - gleam_community@ansi:reset(_pipe@4). - --spec usage_help( - binary(), - gleam@map:map_(binary(), glint@flag:flag()), - config() -) -> binary(). -usage_help(Cmd_name, Flags, Config) -> - App_name = gleam@option:unwrap( - erlang:element(3, Config), - <<"gleam run"/utf8>> - ), - Flags@1 = begin - _pipe = Flags, - _pipe@1 = gleam@map:to_list(_pipe), - _pipe@2 = gleam@list:map(_pipe@1, fun glint@flag:flag_type_help/1), - gleam@list:sort(_pipe@2, fun gleam@string:compare/2) - end, - Flag_sb = case Flags@1 of - [] -> - gleam@string_builder:new(); - - _ -> - _pipe@3 = Flags@1, - _pipe@4 = gleam@list:intersperse(_pipe@3, <<" "/utf8>>), - _pipe@5 = gleam@string_builder:from_strings(_pipe@4), - _pipe@6 = gleam@string_builder:prepend(_pipe@5, <<" [ "/utf8>>), - gleam@string_builder:append(_pipe@6, <<" ]"/utf8>>) - end, - _pipe@7 = [App_name, wrap_with_space(Cmd_name), <<"[ ARGS ]"/utf8>>], - _pipe@8 = gleam@string_builder:from_strings(_pipe@7), - _pipe@9 = gleam@string_builder:append_builder(_pipe@8, Flag_sb), - _pipe@12 = gleam@string_builder:prepend( - _pipe@9, - <<(begin - _pipe@10 = erlang:element(2, Config), - _pipe@11 = gleam@option:map( - _pipe@10, - fun(Styling) -> - heading_style( - <<"USAGE:"/utf8>>, - erlang:element(2, Styling) - ) - end - ), - gleam@option:unwrap(_pipe@11, <<"USAGE:"/utf8>>) - end)/binary, - "\n\t"/utf8>> - ), - gleam@string_builder:to_string(_pipe@12). - --spec cmd_help( - list(binary()), - command_node(any()), - config(), - gleam@map:map_(binary(), glint@flag:flag()) -) -> binary(). -cmd_help(Path, Cmd, Config, Global_flags) -> - Name = begin - _pipe = Path, - _pipe@1 = gleam@list:reverse(_pipe), - gleam@string:join(_pipe@1, <<" "/utf8>>) - end, - Flags = begin - _pipe@2 = gleam@option:map( - erlang:element(2, Cmd), - fun(Contents) -> erlang:element(3, Contents) end - ), - _pipe@3 = gleam@option:lazy_unwrap(_pipe@2, fun gleam@map:new/0), - gleam@map:merge(Global_flags, _pipe@3) - end, - Flags_help_body = <<<<(begin - _pipe@4 = erlang:element(2, Config), - _pipe@5 = gleam@option:map( - _pipe@4, - fun(P) -> - heading_style(<<"FLAGS:"/utf8>>, erlang:element(3, P)) - end - ), - gleam@option:unwrap(_pipe@5, <<"FLAGS:"/utf8>>) - end)/binary, - "\n\t"/utf8>>/binary, - (gleam@string:join( - gleam@list:sort( - [<<"--help\t\t\tPrint help information"/utf8>> | - glint@flag:flags_help(Flags)], - fun gleam@string:compare/2 - ), - <<"\n\t"/utf8>> - ))/binary>>, - Usage = usage_help(Name, Flags, Config), - Description = begin - _pipe@6 = erlang:element(2, Cmd), - _pipe@7 = gleam@option:map( - _pipe@6, - fun(Contents@1) -> erlang:element(4, Contents@1) end - ), - gleam@option:unwrap(_pipe@7, <<""/utf8>>) - end, - Header_items = begin - _pipe@8 = [Name, Description], - _pipe@9 = gleam@list:filter(_pipe@8, fun is_not_empty/1), - gleam@string:join(_pipe@9, <<"\n"/utf8>>) - end, - Subcommands = case subcommands_help(erlang:element(3, Cmd)) of - <<""/utf8>> -> - <<""/utf8>>; - - Subcommands_help_body -> - <<<<(begin - _pipe@10 = erlang:element(2, Config), - _pipe@11 = gleam@option:map( - _pipe@10, - fun(P@1) -> - heading_style( - <<"SUBCOMMANDS:"/utf8>>, - erlang:element(4, P@1) - ) - end - ), - gleam@option:unwrap(_pipe@11, <<"SUBCOMMANDS:"/utf8>>) - end)/binary, - "\n\t"/utf8>>/binary, - Subcommands_help_body/binary>> - end, - _pipe@12 = [Header_items, Usage, Flags_help_body, Subcommands], - _pipe@13 = gleam@list:filter(_pipe@12, fun is_not_empty/1), - gleam@string:join(_pipe@13, <<"\n\n"/utf8>>). - --spec do_execute( - command_node(GKO), - config(), - gleam@map:map_(binary(), glint@flag:flag()), - list(binary()), - list(binary()), - boolean(), - list(binary()) -) -> {ok, out(GKO)} | {error, snag:snag()}. -do_execute(Cmd, Config, Global_flags, Args, Flags, Help, Command_path) -> - case Args of - [] when Help -> - _pipe = Command_path, - _pipe@1 = cmd_help(_pipe, Cmd, Config, Global_flags), - _pipe@2 = {help, _pipe@1}, - {ok, _pipe@2}; - - [] -> - execute_root(Cmd, Global_flags, [], Flags); - - [Arg | Rest] -> - case gleam@map:get(erlang:element(3, Cmd), Arg) of - {ok, Cmd@1} -> - do_execute( - Cmd@1, - Config, - Global_flags, - Rest, - Flags, - Help, - [Arg | Command_path] - ); - - _ when Help -> - _pipe@3 = Command_path, - _pipe@4 = cmd_help(_pipe@3, Cmd, Config, Global_flags), - _pipe@5 = {help, _pipe@4}, - {ok, _pipe@5}; - - _ -> - execute_root(Cmd, Global_flags, Args, Flags) - end - end. - --spec execute(glint(GKK), list(binary())) -> {ok, out(GKK)} | - {error, snag:snag()}. -execute(Glint, Args) -> - Help_flag = help_flag(), - {Help, Args@2} = case gleam@list:pop(Args, fun(S) -> S =:= Help_flag end) of - {ok, {_, Args@1}} -> - {true, Args@1}; - - _ -> - {false, Args} - end, - {Flags, Args@3} = gleam@list:partition( - Args@2, - fun(_capture) -> gleam@string:starts_with(_capture, <<"--"/utf8>>) end - ), - do_execute( - erlang:element(3, Glint), - erlang:element(2, Glint), - erlang:element(4, Glint), - Args@3, - Flags, - Help, - [] - ). - --spec run_and_handle(glint(GLC), list(binary()), fun((GLC) -> any())) -> nil. -run_and_handle(Glint, Args, Handle) -> - case execute(Glint, Args) of - {error, Err} -> - _pipe = Err, - _pipe@1 = snag:pretty_print(_pipe), - gleam@io:println(_pipe@1); - - {ok, {help, Help}} -> - gleam@io:println(Help); - - {ok, {out, Out}} -> - Handle(Out), - nil - end. - --spec run(glint(any()), list(binary())) -> nil. -run(Glint, Args) -> - run_and_handle(Glint, Args, gleam@function:constant(nil)). - --spec add_command_from_stub(glint(GLP), stub(GLP)) -> glint(GLP). -add_command_from_stub(Glint, Stub) -> - add( - Glint, - erlang:element(2, Stub), - begin - _pipe = command(erlang:element(3, Stub)), - _pipe@1 = flags(_pipe, erlang:element(4, Stub)), - description(_pipe@1, erlang:element(5, Stub)) - end - ). diff --git a/aoc2023/build/packages/glint/src/glint.gleam b/aoc2023/build/packages/glint/src/glint.gleam deleted file mode 100644 index b159016..0000000 --- a/aoc2023/build/packages/glint/src/glint.gleam +++ /dev/null @@ -1,588 +0,0 @@ -import gleam/map.{type Map} -import gleam/option.{type Option, None, Some} -import gleam/list -import gleam/io -import gleam/string -import snag.{type Result} -import glint/flag.{type Flag, type Map as FlagMap} -import gleam/string_builder as sb -import gleam_community/ansi -import gleam_community/colour.{type Colour} -import gleam/result -import gleam/function - -// --- CONFIGURATION --- - -// -- CONFIGURATION: TYPES -- - -/// Config for glint -/// -pub type Config { - Config(pretty_help: Option(PrettyHelp), name: Option(String)) -} - -/// PrettyHelp defines the header colours to be used when styling help text -/// -pub type PrettyHelp { - PrettyHelp(usage: Colour, flags: Colour, subcommands: Colour) -} - -// -- CONFIGURATION: CONSTANTS -- - -/// Default config -/// -pub const default_config = Config(pretty_help: None, name: None) - -// -- CONFIGURATION: FUNCTIONS -- - -/// Add the provided config to the existing command tree -/// -pub fn with_config(glint: Glint(a), config: Config) -> Glint(a) { - Glint(..glint, config: config) -} - -/// Enable custom colours for help text headers -/// For a pre-made colouring use `default_pretty_help()` -/// -pub fn with_pretty_help(glint: Glint(a), pretty: PrettyHelp) -> Glint(a) { - Config(..glint.config, pretty_help: Some(pretty)) - |> with_config(glint, _) -} - -/// Disable custom colours for help text headers -/// -pub fn without_pretty_help(glint: Glint(a)) -> Glint(a) { - Config(..glint.config, pretty_help: None) - |> with_config(glint, _) -} - -pub fn with_name(glint: Glint(a), name: String) -> Glint(a) { - Config(..glint.config, name: Some(name)) - |> with_config(glint, _) -} - -// --- CORE --- - -// -- CORE: TYPES -- - -/// Glint container type for config and commands -/// -pub opaque type Glint(a) { - Glint(config: Config, cmd: CommandNode(a), global_flags: FlagMap) -} - -/// CommandNode contents -/// -pub opaque type Command(a) { - Command(do: Runner(a), flags: FlagMap, description: String) -} - -/// Input type for `Runner`. -/// -pub type CommandInput { - CommandInput(args: List(String), flags: FlagMap) -} - -/// Function type to be run by `glint`. -/// -pub type Runner(a) = - fn(CommandInput) -> a - -/// CommandNode tree representation. -/// -type CommandNode(a) { - CommandNode( - contents: Option(Command(a)), - subcommands: Map(String, CommandNode(a)), - ) -} - -/// Ok type for command execution -/// -pub type Out(a) { - /// Container for the command return value - Out(a) - /// Container for the generated help string - Help(String) -} - -/// Result type for command execution -/// -pub type CmdResult(a) = - Result(Out(a)) - -// -- CORE: BUILDER FUNCTIONS -- - -/// Creates a new command tree. -/// -pub fn new() -> Glint(a) { - Glint(config: default_config, cmd: empty_command(), global_flags: map.new()) -} - -/// Adds a new command to be run at the specified path. -/// -/// If the path is `[]`, the root command is set with the provided function and -/// flags. -/// -/// Note: all command paths are sanitized by stripping whitespace and removing any empty string elements. -/// -pub fn add( - to glint: Glint(a), - at path: List(String), - do contents: Command(a), -) -> Glint(a) { - Glint( - ..glint, - cmd: path - |> sanitize_path - |> do_add(to: glint.cmd, put: contents), - ) -} - -/// Recursive traversal of the command tree to find where to puth the provided command -/// -fn do_add( - to root: CommandNode(a), - at path: List(String), - put contents: Command(a), -) -> CommandNode(a) { - case path { - // update current command with provided contents - [] -> CommandNode(..root, contents: Some(contents)) - // continue down the path, creating empty command nodes along the way - [x, ..xs] -> - CommandNode( - ..root, - subcommands: { - use node <- map.update(root.subcommands, x) - node - |> option.lazy_unwrap(empty_command) - |> do_add(xs, contents) - }, - ) - } -} - -/// Helper for initializing empty commands -/// -fn empty_command() -> CommandNode(a) { - CommandNode(contents: None, subcommands: map.new()) -} - -/// Trim each path element and remove any resulting empty strings. -/// -fn sanitize_path(path: List(String)) -> List(String) { - path - |> list.map(string.trim) - |> list.filter(is_not_empty) -} - -/// Create a Command(a) from a Runner(a) -/// -pub fn command(do runner: Runner(a)) -> Command(a) { - Command(do: runner, flags: map.new(), description: "") -} - -/// Attach a description to a Command(a) -/// -pub fn description(cmd: Command(a), description: String) -> Command(a) { - Command(..cmd, description: description) -} - -/// add a `flag.Flag` to a `Command` -/// -pub fn flag( - cmd: Command(a), - at key: String, - of flag: flag.FlagBuilder(_), -) -> Command(a) { - Command(..cmd, flags: map.insert(cmd.flags, key, flag.build(flag))) -} - -/// Add a `flag.Flag to a `Command` when the flag name and builder are bundled as a #(String, flag.FlagBuilder(a)). -/// -/// This is merely a convenience function and calls `glint.flag` under the hood. -/// -pub fn flag_tuple( - cmd: Command(a), - with tup: #(String, flag.FlagBuilder(_)), -) -> Command(a) { - flag(cmd, tup.0, tup.1) -} - -/// Add multiple `Flag`s to a `Command`, note that this function uses `Flag` and not `FlagBuilder(_)`, so the user will need to call `flag.build` before providing the flags here. -/// -/// It is recommended to call `glint.flag` instead. -/// -pub fn flags(cmd: Command(a), with flags: List(#(String, Flag))) -> Command(a) { - use cmd, #(key, flag) <- list.fold(flags, cmd) - Command(..cmd, flags: map.insert(cmd.flags, key, flag)) -} - -/// Add global flags to the existing command tree -/// -pub fn global_flag( - glint: Glint(a), - at key: String, - of flag: flag.FlagBuilder(_), -) -> Glint(a) { - Glint( - ..glint, - global_flags: map.insert(glint.global_flags, key, flag.build(flag)), - ) -} - -/// Add global flags to the existing command tree. -/// -pub fn global_flag_tuple( - glint: Glint(a), - with tup: #(String, flag.FlagBuilder(_)), -) -> Glint(a) { - global_flag(glint, tup.0, tup.1) -} - -/// Add global flags to the existing command tree. -/// -/// Like `glint.flags`, this function requires `Flag`s insead of `FlagBuilder(_)`. -/// -/// It is recommended to use `glint.global_flag` instead. -/// -pub fn global_flags(glint: Glint(a), flags: List(#(String, Flag))) -> Glint(a) { - Glint( - ..glint, - global_flags: { - list.fold( - flags, - glint.global_flags, - fn(acc, tup) { map.insert(acc, tup.0, tup.1) }, - ) - }, - ) -} - -// -- CORE: EXECUTION FUNCTIONS -- - -/// Determines which command to run and executes it. -/// -/// Sets any provided flags if necessary. -/// -/// Each value prefixed with `--` is parsed as a flag. -/// -/// This function does not print its output and is mainly intended for use within `glint` itself. -/// If you would like to print or handle the output of a command please see the `run_and_handle` function. -/// -pub fn execute(glint: Glint(a), args: List(String)) -> CmdResult(a) { - // create help flag to check for - let help_flag = help_flag() - - // check if help flag is present - let #(help, args) = case list.pop(args, fn(s) { s == help_flag }) { - Ok(#(_, args)) -> #(True, args) - _ -> #(False, args) - } - - // split flags out from the args list - let #(flags, args) = list.partition(args, string.starts_with(_, flag.prefix)) - - // search for command and execute - do_execute(glint.cmd, glint.config, glint.global_flags, args, flags, help, []) -} - -/// Find which command to execute and run it with computed flags and args -/// -fn do_execute( - cmd: CommandNode(a), - config: Config, - global_flags: FlagMap, - args: List(String), - flags: List(String), - help: Bool, - command_path: List(String), -) -> CmdResult(a) { - case args { - // when there are no more available arguments - // and help flag has been passed, generate help message - [] if help -> - command_path - |> cmd_help(cmd, config, global_flags) - |> Help - |> Ok - - // when there are no more available arguments - // run the current command - [] -> execute_root(cmd, global_flags, [], flags) - - // when there are arguments remaining - // check if the next one is a subcommand of the current command - [arg, ..rest] -> - case map.get(cmd.subcommands, arg) { - // subcommand found, continue - Ok(cmd) -> - do_execute( - cmd, - config, - global_flags, - rest, - flags, - help, - [arg, ..command_path], - ) - // subcommand not found, but help flag has been passed - // generate and return help message - _ if help -> - command_path - |> cmd_help(cmd, config, global_flags) - |> Help - |> Ok - // subcommand not found, but help flag has not been passed - // execute the current command - _ -> execute_root(cmd, global_flags, args, flags) - } - } -} - -/// Executes the current root command. -/// -fn execute_root( - cmd: CommandNode(a), - global_flags: FlagMap, - args: List(String), - flag_inputs: List(String), -) -> CmdResult(a) { - case cmd.contents { - Some(contents) -> { - use new_flags <- result.try(list.try_fold( - over: flag_inputs, - from: map.merge(global_flags, contents.flags), - with: flag.update_flags, - )) - CommandInput(args, new_flags) - |> contents.do - |> Out - |> Ok - } - None -> snag.error("command not found") - } - |> snag.context("failed to run command") -} - -/// A wrapper for `execute` that prints any errors enountered or the help text if requested. -/// This function ignores any value returned by the command that was run. -/// If you would like to do something with the command output please see the run_and_handle function. -/// -pub fn run(from glint: Glint(a), for args: List(String)) -> Nil { - run_and_handle(from: glint, for: args, with: function.constant(Nil)) -} - -/// A wrapper for `execute` that prints any errors enountered or the help text if requested. -/// This function calls the provided handler with the value returned by the command that was run. -/// -pub fn run_and_handle( - from glint: Glint(a), - for args: List(String), - with handle: fn(a) -> _, -) -> Nil { - case execute(glint, args) { - Error(err) -> - err - |> snag.pretty_print - |> io.println - Ok(Help(help)) -> io.println(help) - Ok(Out(out)) -> { - handle(out) - Nil - } - } -} - -/// Default pretty help heading colouring -/// mint (r: 182, g: 255, b: 234) colour for usage -/// pink (r: 255, g: 175, b: 243) colour for flags -/// buttercup (r: 252, g: 226, b: 174) colour for subcommands -/// -pub fn default_pretty_help() -> PrettyHelp { - let assert Ok(usage_colour) = colour.from_rgb255(182, 255, 234) - let assert Ok(flags_colour) = colour.from_rgb255(255, 175, 243) - let assert Ok(subcommands_colour) = colour.from_rgb255(252, 226, 174) - - PrettyHelp( - usage: usage_colour, - flags: flags_colour, - subcommands: subcommands_colour, - ) -} - -// constants for setting up sections of the help message -const flags_heading = "FLAGS:" - -const subcommands_heading = "SUBCOMMANDS:" - -const usage_heading = "USAGE:" - -/// Helper for filtering out empty strings -/// -fn is_not_empty(s: String) -> Bool { - s != "" -} - -const help_flag_name = "help" - -const help_flag_message = "--help\t\t\tPrint help information" - -/// Function to create the help flag string -/// Exported for testing purposes only -/// -pub fn help_flag() -> String { - flag.prefix <> help_flag_name -} - -// -- HELP: FUNCTIONS -- - -fn wrap_with_space(s: String) -> String { - case s { - "" -> " " - _ -> " " <> s <> " " - } -} - -/// generate the usage help string for a command -fn usage_help(cmd_name: String, flags: FlagMap, config: Config) -> String { - let app_name = option.unwrap(config.name, "gleam run") - let flags = - flags - |> map.to_list - |> list.map(flag.flag_type_help) - |> list.sort(string.compare) - - let flag_sb = case flags { - [] -> sb.new() - _ -> - flags - |> list.intersperse(" ") - |> sb.from_strings() - |> sb.prepend(prefix: " [ ") - |> sb.append(suffix: " ]") - } - - [app_name, wrap_with_space(cmd_name), "[ ARGS ]"] - |> sb.from_strings - |> sb.append_builder(flag_sb) - |> sb.prepend( - config.pretty_help - |> option.map(fn(styling) { heading_style(usage_heading, styling.usage) }) - |> option.unwrap(usage_heading) <> "\n\t", - ) - |> sb.to_string -} - -/// generate the help text for a command -fn cmd_help( - path: List(String), - cmd: CommandNode(a), - config: Config, - global_flags: FlagMap, -) -> String { - // recreate the path of the current command - // reverse the path because it is created by prepending each section as do_execute walks down the tree - let name = - path - |> list.reverse - |> string.join(" ") - - let flags = - option.map(cmd.contents, fn(contents) { contents.flags }) - |> option.lazy_unwrap(map.new) - |> map.merge(global_flags, _) - - let flags_help_body = - config.pretty_help - |> option.map(fn(p) { heading_style(flags_heading, p.flags) }) - |> option.unwrap(flags_heading) <> "\n\t" <> string.join( - list.sort([help_flag_message, ..flag.flags_help(flags)], string.compare), - "\n\t", - ) - - let usage = usage_help(name, flags, config) - - let description = - cmd.contents - |> option.map(fn(contents) { contents.description }) - |> option.unwrap("") - - // create the header block from the name and description - let header_items = - [name, description] - |> list.filter(is_not_empty) - |> string.join("\n") - - // create the subcommands help block - let subcommands = case subcommands_help(cmd.subcommands) { - "" -> "" - subcommands_help_body -> - config.pretty_help - |> option.map(fn(p) { heading_style(subcommands_heading, p.subcommands) }) - |> option.unwrap(subcommands_heading) <> "\n\t" <> subcommands_help_body - } - - // join the resulting help blocks into the final help message - [header_items, usage, flags_help_body, subcommands] - |> list.filter(is_not_empty) - |> string.join("\n\n") -} - -// create the help text for subcommands -fn subcommands_help(cmds: Map(String, CommandNode(a))) -> String { - cmds - |> map.map_values(subcommand_help) - |> map.values - |> list.sort(string.compare) - |> string.join("\n\t") -} - -// generate the help text for a subcommand -fn subcommand_help(name: String, cmd: CommandNode(_)) -> String { - case cmd.contents { - None -> name - Some(contents) -> name <> "\t\t" <> contents.description - } -} - -/// Style heading text with the provided rgb colouring -/// this is only intended for use within glint itself. -/// -fn heading_style(heading: String, colour: Colour) -> String { - heading - |> ansi.bold - |> ansi.underline - |> ansi.italic - |> ansi.hex(colour.to_rgb_hex(colour)) - |> ansi.reset -} - -// -- DEPRECATED: STUBS -- - -/// DEPRECATED: use `glint.cmd` and related new functions instead to create a Command -/// -/// Create command stubs to be used in `add_command_from_stub` -/// -pub type Stub(a) { - Stub( - path: List(String), - run: Runner(a), - flags: List(#(String, Flag)), - description: String, - ) -} - -/// Add a command to the root given a stub -/// -@deprecated("use `glint.cmd` and related new functions instead to create a Command") -pub fn add_command_from_stub(to glint: Glint(a), with stub: Stub(a)) -> Glint(a) { - add( - to: glint, - at: stub.path, - do: command(stub.run) - |> flags(stub.flags) - |> description(stub.description), - ) -} diff --git a/aoc2023/build/packages/glint/src/glint/flag.gleam b/aoc2023/build/packages/glint/src/glint/flag.gleam deleted file mode 100644 index 0a6cae1..0000000 --- a/aoc2023/build/packages/glint/src/glint/flag.gleam +++ /dev/null @@ -1,478 +0,0 @@ -import gleam/map -import gleam/string -import gleam/result -import gleam/int -import gleam/list -import gleam/float -import snag.{type Result, type Snag} -import gleam/option.{type Option, None, Some} -import glint/flag/constraint.{type Constraint} -import gleam - -/// Flag inputs must start with this prefix -/// -pub const prefix = "--" - -/// The separation character for flag names and their values -const delimiter = "=" - -/// Supported flag types. -/// -pub type Value { - /// Boolean flags, to be passed in as `--flag=true` or `--flag=false`. - /// Can be toggled by omitting the desired value like `--flag`. - /// Toggling will negate the existing value. - /// - B(Internal(Bool)) - - /// Int flags, to be passed in as `--flag=1` - /// - I(Internal(Int)) - - /// List(Int) flags, to be passed in as `--flag=1,2,3` - /// - LI(Internal(List(Int))) - - /// Float flags, to be passed in as `--flag=1.0` - /// - F(Internal(Float)) - - /// List(Float) flags, to be passed in as `--flag=1.0,2.0` - /// - LF(Internal(List(Float))) - - /// String flags, to be passed in as `--flag=hello` - /// - S(Internal(String)) - - /// List(String) flags, to be passed in as `--flag=hello,world` - /// - LS(Internal(List(String))) -} - -/// A type that facilitates the creation of `Flag`s -/// -pub opaque type FlagBuilder(a) { - FlagBuilder( - desc: Description, - parser: Parser(a, Snag), - value: fn(Internal(a)) -> Value, - default: Option(a), - ) -} - -/// An internal representation of flag contents -/// -pub opaque type Internal(a) { - Internal(value: Option(a), parser: Parser(a, Snag)) -} - -// Builder initializers - -type Parser(a, b) = - fn(String) -> gleam.Result(a, b) - -/// initialise an int flag builder -/// -pub fn int() -> FlagBuilder(Int) { - use input <- new(I) - input - |> int.parse - |> result.replace_error(cannot_parse(input, "int")) -} - -/// initialise an int list flag builder -/// -pub fn int_list() -> FlagBuilder(List(Int)) { - use input <- new(LI) - input - |> string.split(",") - |> list.try_map(int.parse) - |> result.replace_error(cannot_parse(input, "int list")) -} - -/// initialise a float flag builder -/// -pub fn float() -> FlagBuilder(Float) { - use input <- new(F) - input - |> float.parse - |> result.replace_error(cannot_parse(input, "float")) -} - -/// initialise a float list flag builder -/// -pub fn float_list() -> FlagBuilder(List(Float)) { - use input <- new(LF) - input - |> string.split(",") - |> list.try_map(float.parse) - |> result.replace_error(cannot_parse(input, "float list")) -} - -/// initialise a string flag builder -/// -pub fn string() -> FlagBuilder(String) { - new(S, fn(s) { Ok(s) }) -} - -/// intitialise a string list flag builder -/// -pub fn string_list() -> FlagBuilder(List(String)) { - use input <- new(LS) - input - |> string.split(",") - |> Ok -} - -/// initialise a bool flag builder -/// -pub fn bool() -> FlagBuilder(Bool) { - use input <- new(B) - case string.lowercase(input) { - "true" | "t" -> Ok(True) - "false" | "f" -> Ok(False) - _ -> Error(cannot_parse(input, "bool")) - } -} - -/// initialize custom builders using a Value constructor and a parsing function -/// -fn new(valuer: fn(Internal(a)) -> Value, p: Parser(a, Snag)) -> FlagBuilder(a) { - FlagBuilder(desc: "", parser: p, value: valuer, default: None) -} - -/// convert a FlagBuilder(a) into its corresponding Flag representation -/// -pub fn build(fb: FlagBuilder(a)) -> Flag { - Flag( - value: fb.value(Internal(value: fb.default, parser: fb.parser)), - description: fb.desc, - ) -} - -/// attach a constraint to a `Flag` -/// -pub fn constraint( - builder: FlagBuilder(a), - constraint: Constraint(a), -) -> FlagBuilder(a) { - FlagBuilder( - ..builder, - parser: wrap_with_constraint(builder.parser, constraint), - ) -} - -/// attach a Constraint(a) to a Parser(a,Snag) -/// this function should not be used directly unless -fn wrap_with_constraint( - p: Parser(a, Snag), - constraint: Constraint(a), -) -> Parser(a, Snag) { - fn(input: String) -> Result(a) { attempt(p(input), constraint) } -} - -fn attempt( - val: gleam.Result(a, e), - f: fn(a) -> gleam.Result(_, e), -) -> gleam.Result(a, e) { - use a <- result.try(val) - result.replace(f(a), a) -} - -/// Flag descriptions -/// -pub type Description = - String - -/// Flag data and descriptions -/// -pub type Flag { - Flag(value: Value, description: Description) -} - -/// attach a description to a `Flag` -/// -pub fn description( - for builder: FlagBuilder(a), - of description: Description, -) -> FlagBuilder(a) { - FlagBuilder(..builder, desc: description) -} - -/// Set the default value for a flag `Value` -/// -pub fn default(for builder: FlagBuilder(a), of default: a) -> FlagBuilder(a) { - FlagBuilder(..builder, default: Some(default)) -} - -/// Associate flag names to their current values. -/// -pub type Map = - map.Map(String, Flag) - -/// Convert a list of flags to a Map. -/// -pub fn build_map(flags: List(#(String, Flag))) -> Map { - map.from_list(flags) -} - -/// Updates a flag value, ensuring that the new value can satisfy the required type. -/// Assumes that all flag inputs passed in start with -- -/// This function is only intended to be used from glint.execute_root -/// -pub fn update_flags(in flags: Map, with flag_input: String) -> Result(Map) { - let flag_input = string.drop_left(flag_input, string.length(prefix)) - - case string.split_once(flag_input, delimiter) { - Ok(data) -> update_flag_value(flags, data) - Error(_) -> attempt_toggle_flag(flags, flag_input) - } -} - -fn update_flag_value(in flags: Map, with data: #(String, String)) -> Result(Map) { - let #(key, input) = data - use contents <- result.try(access(flags, key)) - use value <- result.map( - compute_flag(with: input, given: contents.value) - |> result.map_error(layer_invalid_flag(_, key)), - ) - map.insert(flags, key, Flag(..contents, value: value)) -} - -fn attempt_toggle_flag(in flags: Map, at key: String) -> Result(Map) { - use contents <- result.try(access(flags, key)) - case contents.value { - B(Internal(None, ..) as internal) -> - Internal(..internal, value: Some(True)) - |> B - |> fn(val) { Flag(..contents, value: val) } - |> map.insert(into: flags, for: key) - |> Ok() - B(Internal(Some(val), ..) as internal) -> - Internal(..internal, value: Some(!val)) - |> B - |> fn(val) { Flag(..contents, value: val) } - |> map.insert(into: flags, for: key) - |> Ok() - _ -> Error(no_value_flag_err(key)) - } -} - -fn access_type_error(flag_type) { - snag.error("cannot access flag as " <> flag_type) -} - -fn flag_not_provided_error() { - snag.error("no value provided") -} - -fn construct_value( - input: String, - internal: Internal(a), - constructor: fn(Internal(a)) -> Value, -) -> Result(Value) { - use val <- result.map(internal.parser(input)) - constructor(Internal(..internal, value: Some(val))) -} - -/// Computes the new flag value given the input and the expected flag type -/// -fn compute_flag(with input: String, given current: Value) -> Result(Value) { - input - |> case current { - I(internal) -> construct_value(_, internal, I) - LI(internal) -> construct_value(_, internal, LI) - F(internal) -> construct_value(_, internal, F) - LF(internal) -> construct_value(_, internal, LF) - S(internal) -> construct_value(_, internal, S) - LS(internal) -> construct_value(_, internal, LS) - B(internal) -> construct_value(_, internal, B) - } - |> snag.context("failed to compute value for flag") -} - -// Error creation and manipulation functions -fn layer_invalid_flag(err: Snag, flag: String) -> Snag { - snag.layer(err, "invalid flag '" <> flag <> "'") -} - -fn no_value_flag_err(flag_input: String) -> Snag { - { "flag '" <> flag_input <> "' has no assigned value" } - |> snag.new() - |> layer_invalid_flag(flag_input) -} - -fn undefined_flag_err(key: String) -> Snag { - "flag provided but not defined" - |> snag.new() - |> layer_invalid_flag(key) -} - -fn cannot_parse(with value: String, is kind: String) -> Snag { - { "cannot parse value '" <> value <> "' as " <> kind } - |> snag.new() -} - -// Help Message Functions -/// Generate the help message contents for a single flag -/// -pub fn flag_type_help(flag: #(String, Flag)) { - let #(name, contents) = flag - let kind = case contents.value { - I(_) -> "INT" - B(_) -> "BOOL" - F(_) -> "FLOAT" - LF(_) -> "FLOAT_LIST" - LI(_) -> "INT_LIST" - LS(_) -> "STRING_LIST" - S(_) -> "STRING" - } - - prefix <> name <> delimiter <> "<" <> kind <> ">" -} - -/// Generate help message line for a single flag -/// -fn flag_help(flag: #(String, Flag)) -> String { - flag_type_help(flag) <> "\t\t" <> { flag.1 }.description -} - -/// Generate help messages for all flags -/// -pub fn flags_help(flags: Map) -> List(String) { - flags - |> map.to_list - |> list.map(flag_help) -} - -// -- FLAG ACCESS FUNCTIONS -- - -/// Access the contents for the associated flag -/// -fn access(flags: Map, name: String) -> Result(Flag) { - map.get(flags, name) - |> result.replace_error(undefined_flag_err(name)) -} - -fn get_value( - from flags: Map, - at key: String, - expecting kind: fn(Flag) -> Result(a), -) -> Result(a) { - access(flags, key) - |> result.try(kind) - |> snag.context("failed to retrieve value for flag '" <> key <> "'") -} - -/// Gets the current value for the provided int flag -/// -pub fn get_int_value(from flag: Flag) -> Result(Int) { - case flag.value { - I(Internal(value: Some(val), ..)) -> Ok(val) - I(Internal(value: None, ..)) -> flag_not_provided_error() - _ -> access_type_error("int") - } -} - -/// Gets the current value for the associated int flag -/// -pub fn get_int(from flags: Map, for name: String) -> Result(Int) { - get_value(flags, name, get_int_value) -} - -/// Gets the current value for the provided ints flag -/// -pub fn get_ints_value(from flag: Flag) -> Result(List(Int)) { - case flag.value { - LI(Internal(value: Some(val), ..)) -> Ok(val) - LI(Internal(value: None, ..)) -> flag_not_provided_error() - _ -> access_type_error("int list") - } -} - -/// Gets the current value for the associated ints flag -/// -pub fn get_ints(from flags: Map, for name: String) -> Result(List(Int)) { - get_value(flags, name, get_ints_value) -} - -/// Gets the current value for the provided bool flag -/// -pub fn get_bool_value(from flag: Flag) -> Result(Bool) { - case flag.value { - B(Internal(Some(val), ..)) -> Ok(val) - B(Internal(None, ..)) -> flag_not_provided_error() - _ -> access_type_error("bool") - } -} - -/// Gets the current value for the associated bool flag -/// -pub fn get_bool(from flags: Map, for name: String) -> Result(Bool) { - get_value(flags, name, get_bool_value) -} - -/// Gets the current value for the provided string flag -/// -pub fn get_string_value(from flag: Flag) -> Result(String) { - case flag.value { - S(Internal(value: Some(val), ..)) -> Ok(val) - S(Internal(value: None, ..)) -> flag_not_provided_error() - _ -> access_type_error("string") - } -} - -/// Gets the current value for the associated string flag -/// -pub fn get_string(from flags: Map, for name: String) -> Result(String) { - get_value(flags, name, get_string_value) -} - -/// Gets the current value for the provided strings flag -/// -pub fn get_strings_value(from flag: Flag) -> Result(List(String)) { - case flag.value { - LS(Internal(value: Some(val), ..)) -> Ok(val) - LS(Internal(value: None, ..)) -> flag_not_provided_error() - _ -> access_type_error("string list") - } -} - -/// Gets the current value for the associated strings flag -/// -pub fn get_strings(from flags: Map, for name: String) -> Result(List(String)) { - get_value(flags, name, get_strings_value) -} - -/// Gets the current value for the provided float flag -/// -pub fn get_float_value(from flag: Flag) -> Result(Float) { - case flag.value { - F(Internal(value: Some(val), ..)) -> Ok(val) - F(Internal(value: None, ..)) -> flag_not_provided_error() - _ -> access_type_error("float") - } -} - -/// Gets the current value for the associated float flag -/// -pub fn get_float(from flags: Map, for name: String) -> Result(Float) { - get_value(flags, name, get_float_value) -} - -/// Gets the current value for the provided floats flag -/// -pub fn get_floats_value(from flag: Flag) -> Result(List(Float)) { - case flag.value { - LF(Internal(value: Some(val), ..)) -> Ok(val) - LF(Internal(value: None, ..)) -> flag_not_provided_error() - _ -> access_type_error("float list") - } -} - -/// Gets the current value for the associated floats flag -/// -pub fn get_floats(from flags: Map, for name: String) -> Result(List(Float)) { - get_value(flags, name, get_floats_value) -} diff --git a/aoc2023/build/packages/glint/src/glint/flag/constraint.gleam b/aoc2023/build/packages/glint/src/glint/flag/constraint.gleam deleted file mode 100644 index e474bc2..0000000 --- a/aoc2023/build/packages/glint/src/glint/flag/constraint.gleam +++ /dev/null @@ -1,66 +0,0 @@ -import gleam/list -import gleam/result -import gleam/string -import gleam/set -import snag.{type Result} - -/// Constraint type for verifying flag values -/// -pub type Constraint(a) = - fn(a) -> Result(Nil) - -/// one_of returns a Constraint that ensures the parsed flag value is -/// one of the allowed values. -/// -pub fn one_of(allowed: List(a)) -> Constraint(a) { - let allowed_set = set.from_list(allowed) - fn(val: a) -> Result(Nil) { - case set.contains(allowed_set, val) { - True -> Ok(Nil) - False -> - snag.error( - "invalid value '" <> string.inspect(val) <> "', must be one of: [" <> { - allowed - |> list.map(fn(a) { "'" <> string.inspect(a) <> "'" }) - |> string.join(", ") <> "]" - }, - ) - } - } -} - -/// none_of returns a Constraint that ensures the parsed flag value is not one of the disallowed values. -/// -pub fn none_of(disallowed: List(a)) -> Constraint(a) { - let disallowed_set = set.from_list(disallowed) - fn(val: a) -> Result(Nil) { - case set.contains(disallowed_set, val) { - False -> Ok(Nil) - True -> - snag.error( - "invalid value '" <> string.inspect(val) <> "', must not be one of: [" <> { - { - disallowed - |> list.map(fn(a) { "'" <> string.inspect(a) <> "'" }) - |> string.join(", ") <> "]" - } - }, - ) - } - } -} - -/// each is a convenience function for applying a Constraint(a) to a List(a). -/// This is useful because the default behaviour for constraints on lists is that they will apply to the list as a whole. -/// -/// For example, to apply one_of to all items in a `List(Int)`: -/// ```gleam -/// [1, 2, 3, 4] |> one_of |> each -/// ``` -pub fn each(constraint: Constraint(a)) -> Constraint(List(a)) { - fn(l: List(a)) -> Result(Nil) { - l - |> list.try_map(constraint) - |> result.replace(Nil) - } -} diff --git a/aoc2023/build/packages/glint/src/glint@flag.erl b/aoc2023/build/packages/glint/src/glint@flag.erl deleted file mode 100644 index bcce6db..0000000 --- a/aoc2023/build/packages/glint/src/glint@flag.erl +++ /dev/null @@ -1,523 +0,0 @@ --module(glint@flag). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([string/0, string_list/0, build/1, constraint/2, description/2, default/2, build_map/1, int/0, int_list/0, float/0, float_list/0, bool/0, flag_type_help/1, flags_help/1, update_flags/2, get_int_value/1, get_int/2, get_ints_value/1, get_ints/2, get_bool_value/1, get_bool/2, get_string_value/1, get_string/2, get_strings_value/1, get_strings/2, get_float_value/1, get_float/2, get_floats_value/1, get_floats/2]). --export_type([value/0, flag_builder/1, internal/1, flag/0]). - --type value() :: {b, internal(boolean())} | - {i, internal(integer())} | - {li, internal(list(integer()))} | - {f, internal(float())} | - {lf, internal(list(float()))} | - {s, internal(binary())} | - {ls, internal(list(binary()))}. - --opaque flag_builder(FTZ) :: {flag_builder, - binary(), - fun((binary()) -> {ok, FTZ} | {error, snag:snag()}), - fun((internal(FTZ)) -> value()), - gleam@option:option(FTZ)}. - --opaque internal(FUA) :: {internal, - gleam@option:option(FUA), - fun((binary()) -> {ok, FUA} | {error, snag:snag()})}. - --type flag() :: {flag, value(), binary()}. - --spec new( - fun((internal(FUR)) -> value()), - fun((binary()) -> {ok, FUR} | {error, snag:snag()}) -) -> flag_builder(FUR). -new(Valuer, P) -> - {flag_builder, <<""/utf8>>, P, Valuer, none}. - --spec string() -> flag_builder(binary()). -string() -> - new(fun(Field@0) -> {s, Field@0} end, fun(S) -> {ok, S} end). - --spec string_list() -> flag_builder(list(binary())). -string_list() -> - new(fun(Field@0) -> {ls, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<","/utf8>>), - {ok, _pipe@1} end). - --spec build(flag_builder(any())) -> flag(). -build(Fb) -> - {flag, - (erlang:element(4, Fb))( - {internal, erlang:element(5, Fb), erlang:element(3, Fb)} - ), - erlang:element(2, Fb)}. - --spec attempt( - {ok, FVI} | {error, FVJ}, - fun((FVI) -> {ok, any()} | {error, FVJ}) -) -> {ok, FVI} | {error, FVJ}. -attempt(Val, F) -> - gleam@result:'try'(Val, fun(A) -> gleam@result:replace(F(A), A) end). - --spec wrap_with_constraint( - fun((binary()) -> {ok, FVC} | {error, snag:snag()}), - fun((FVC) -> {ok, nil} | {error, snag:snag()}) -) -> fun((binary()) -> {ok, FVC} | {error, snag:snag()}). -wrap_with_constraint(P, Constraint) -> - fun(Input) -> attempt(P(Input), Constraint) end. - --spec constraint( - flag_builder(FUY), - fun((FUY) -> {ok, nil} | {error, snag:snag()}) -) -> flag_builder(FUY). -constraint(Builder, Constraint) -> - erlang:setelement( - 3, - Builder, - wrap_with_constraint(erlang:element(3, Builder), Constraint) - ). - --spec description(flag_builder(FVR), binary()) -> flag_builder(FVR). -description(Builder, Description) -> - erlang:setelement(2, Builder, Description). - --spec default(flag_builder(FVU), FVU) -> flag_builder(FVU). -default(Builder, Default) -> - erlang:setelement(5, Builder, {some, Default}). - --spec build_map(list({binary(), flag()})) -> gleam@map:map_(binary(), flag()). -build_map(Flags) -> - gleam@map:from_list(Flags). - --spec access_type_error(binary()) -> {ok, any()} | {error, snag:snag()}. -access_type_error(Flag_type) -> - snag:error(<<"cannot access flag as "/utf8, Flag_type/binary>>). - --spec flag_not_provided_error() -> {ok, any()} | {error, snag:snag()}. -flag_not_provided_error() -> - snag:error(<<"no value provided"/utf8>>). - --spec construct_value(binary(), internal(FWE), fun((internal(FWE)) -> value())) -> {ok, - value()} | - {error, snag:snag()}. -construct_value(Input, Internal, Constructor) -> - gleam@result:map( - (erlang:element(3, Internal))(Input), - fun(Val) -> Constructor(erlang:setelement(2, Internal, {some, Val})) end - ). - --spec compute_flag(binary(), value()) -> {ok, value()} | {error, snag:snag()}. -compute_flag(Input, Current) -> - _pipe = Input, - _pipe@1 = case Current of - {i, Internal} -> - fun(_capture) -> - construct_value( - _capture, - Internal, - fun(Field@0) -> {i, Field@0} end - ) - end; - - {li, Internal@1} -> - fun(_capture@1) -> - construct_value( - _capture@1, - Internal@1, - fun(Field@0) -> {li, Field@0} end - ) - end; - - {f, Internal@2} -> - fun(_capture@2) -> - construct_value( - _capture@2, - Internal@2, - fun(Field@0) -> {f, Field@0} end - ) - end; - - {lf, Internal@3} -> - fun(_capture@3) -> - construct_value( - _capture@3, - Internal@3, - fun(Field@0) -> {lf, Field@0} end - ) - end; - - {s, Internal@4} -> - fun(_capture@4) -> - construct_value( - _capture@4, - Internal@4, - fun(Field@0) -> {s, Field@0} end - ) - end; - - {ls, Internal@5} -> - fun(_capture@5) -> - construct_value( - _capture@5, - Internal@5, - fun(Field@0) -> {ls, Field@0} end - ) - end; - - {b, Internal@6} -> - fun(_capture@6) -> - construct_value( - _capture@6, - Internal@6, - fun(Field@0) -> {b, Field@0} end - ) - end - end(_pipe), - snag:context(_pipe@1, <<"failed to compute value for flag"/utf8>>). - --spec layer_invalid_flag(snag:snag(), binary()) -> snag:snag(). -layer_invalid_flag(Err, Flag) -> - snag:layer(Err, <<<<"invalid flag '"/utf8, Flag/binary>>/binary, "'"/utf8>>). - --spec no_value_flag_err(binary()) -> snag:snag(). -no_value_flag_err(Flag_input) -> - _pipe = (<<<<"flag '"/utf8, Flag_input/binary>>/binary, - "' has no assigned value"/utf8>>), - _pipe@1 = snag:new(_pipe), - layer_invalid_flag(_pipe@1, Flag_input). - --spec undefined_flag_err(binary()) -> snag:snag(). -undefined_flag_err(Key) -> - _pipe = <<"flag provided but not defined"/utf8>>, - _pipe@1 = snag:new(_pipe), - layer_invalid_flag(_pipe@1, Key). - --spec cannot_parse(binary(), binary()) -> snag:snag(). -cannot_parse(Value, Kind) -> - _pipe = (<<<<<<"cannot parse value '"/utf8, Value/binary>>/binary, - "' as "/utf8>>/binary, - Kind/binary>>), - snag:new(_pipe). - --spec int() -> flag_builder(integer()). -int() -> - new(fun(Field@0) -> {i, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@int:parse(_pipe), - gleam@result:replace_error( - _pipe@1, - cannot_parse(Input, <<"int"/utf8>>) - ) end). - --spec int_list() -> flag_builder(list(integer())). -int_list() -> - new(fun(Field@0) -> {li, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<","/utf8>>), - _pipe@2 = gleam@list:try_map(_pipe@1, fun gleam@int:parse/1), - gleam@result:replace_error( - _pipe@2, - cannot_parse(Input, <<"int list"/utf8>>) - ) end). - --spec float() -> flag_builder(float()). -float() -> - new(fun(Field@0) -> {f, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@float:parse(_pipe), - gleam@result:replace_error( - _pipe@1, - cannot_parse(Input, <<"float"/utf8>>) - ) end). - --spec float_list() -> flag_builder(list(float())). -float_list() -> - new(fun(Field@0) -> {lf, Field@0} end, fun(Input) -> _pipe = Input, - _pipe@1 = gleam@string:split(_pipe, <<","/utf8>>), - _pipe@2 = gleam@list:try_map(_pipe@1, fun gleam@float:parse/1), - gleam@result:replace_error( - _pipe@2, - cannot_parse(Input, <<"float list"/utf8>>) - ) end). - --spec bool() -> flag_builder(boolean()). -bool() -> - new( - fun(Field@0) -> {b, Field@0} end, - fun(Input) -> case gleam@string:lowercase(Input) of - <<"true"/utf8>> -> - {ok, true}; - - <<"t"/utf8>> -> - {ok, true}; - - <<"false"/utf8>> -> - {ok, false}; - - <<"f"/utf8>> -> - {ok, false}; - - _ -> - {error, cannot_parse(Input, <<"bool"/utf8>>)} - end end - ). - --spec flag_type_help({binary(), flag()}) -> binary(). -flag_type_help(Flag) -> - {Name, Contents} = Flag, - Kind = case erlang:element(2, Contents) of - {i, _} -> - <<"INT"/utf8>>; - - {b, _} -> - <<"BOOL"/utf8>>; - - {f, _} -> - <<"FLOAT"/utf8>>; - - {lf, _} -> - <<"FLOAT_LIST"/utf8>>; - - {li, _} -> - <<"INT_LIST"/utf8>>; - - {ls, _} -> - <<"STRING_LIST"/utf8>>; - - {s, _} -> - <<"STRING"/utf8>> - end, - <<<<<<<<<<"--"/utf8, Name/binary>>/binary, "="/utf8>>/binary, "<"/utf8>>/binary, - Kind/binary>>/binary, - ">"/utf8>>. - --spec flag_help({binary(), flag()}) -> binary(). -flag_help(Flag) -> - <<<<(flag_type_help(Flag))/binary, "\t\t"/utf8>>/binary, - (erlang:element(3, (erlang:element(2, Flag))))/binary>>. - --spec flags_help(gleam@map:map_(binary(), flag())) -> list(binary()). -flags_help(Flags) -> - _pipe = Flags, - _pipe@1 = gleam@map:to_list(_pipe), - gleam@list:map(_pipe@1, fun flag_help/1). - --spec access(gleam@map:map_(binary(), flag()), binary()) -> {ok, flag()} | - {error, snag:snag()}. -access(Flags, Name) -> - _pipe = gleam@map:get(Flags, Name), - gleam@result:replace_error(_pipe, undefined_flag_err(Name)). - --spec update_flag_value(gleam@map:map_(binary(), flag()), {binary(), binary()}) -> {ok, - gleam@map:map_(binary(), flag())} | - {error, snag:snag()}. -update_flag_value(Flags, Data) -> - {Key, Input} = Data, - gleam@result:'try'( - access(Flags, Key), - fun(Contents) -> - gleam@result:map( - begin - _pipe = compute_flag(Input, erlang:element(2, Contents)), - gleam@result:map_error( - _pipe, - fun(_capture) -> layer_invalid_flag(_capture, Key) end - ) - end, - fun(Value) -> - gleam@map:insert( - Flags, - Key, - erlang:setelement(2, Contents, Value) - ) - end - ) - end - ). - --spec attempt_toggle_flag(gleam@map:map_(binary(), flag()), binary()) -> {ok, - gleam@map:map_(binary(), flag())} | - {error, snag:snag()}. -attempt_toggle_flag(Flags, Key) -> - gleam@result:'try'( - access(Flags, Key), - fun(Contents) -> case erlang:element(2, Contents) of - {b, {internal, none, _} = Internal} -> - _pipe = erlang:setelement(2, Internal, {some, true}), - _pipe@1 = {b, _pipe}, - _pipe@2 = (fun(Val) -> - erlang:setelement(2, Contents, Val) - end)(_pipe@1), - _pipe@3 = gleam@map:insert(Flags, Key, _pipe@2), - {ok, _pipe@3}; - - {b, {internal, {some, Val@1}, _} = Internal@1} -> - _pipe@4 = erlang:setelement( - 2, - Internal@1, - {some, not Val@1} - ), - _pipe@5 = {b, _pipe@4}, - _pipe@6 = (fun(Val@2) -> - erlang:setelement(2, Contents, Val@2) - end)(_pipe@5), - _pipe@7 = gleam@map:insert(Flags, Key, _pipe@6), - {ok, _pipe@7}; - - _ -> - {error, no_value_flag_err(Key)} - end end - ). - --spec update_flags(gleam@map:map_(binary(), flag()), binary()) -> {ok, - gleam@map:map_(binary(), flag())} | - {error, snag:snag()}. -update_flags(Flags, Flag_input) -> - Flag_input@1 = gleam@string:drop_left( - Flag_input, - gleam@string:length(<<"--"/utf8>>) - ), - case gleam@string:split_once(Flag_input@1, <<"="/utf8>>) of - {ok, Data} -> - update_flag_value(Flags, Data); - - {error, _} -> - attempt_toggle_flag(Flags, Flag_input@1) - end. - --spec get_value( - gleam@map:map_(binary(), flag()), - binary(), - fun((flag()) -> {ok, FWM} | {error, snag:snag()}) -) -> {ok, FWM} | {error, snag:snag()}. -get_value(Flags, Key, Kind) -> - _pipe = access(Flags, Key), - _pipe@1 = gleam@result:'try'(_pipe, Kind), - snag:context( - _pipe@1, - <<<<"failed to retrieve value for flag '"/utf8, Key/binary>>/binary, - "'"/utf8>> - ). - --spec get_int_value(flag()) -> {ok, integer()} | {error, snag:snag()}. -get_int_value(Flag) -> - case erlang:element(2, Flag) of - {i, {internal, {some, Val}, _}} -> - {ok, Val}; - - {i, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"int"/utf8>>) - end. - --spec get_int(gleam@map:map_(binary(), flag()), binary()) -> {ok, integer()} | - {error, snag:snag()}. -get_int(Flags, Name) -> - get_value(Flags, Name, fun get_int_value/1). - --spec get_ints_value(flag()) -> {ok, list(integer())} | {error, snag:snag()}. -get_ints_value(Flag) -> - case erlang:element(2, Flag) of - {li, {internal, {some, Val}, _}} -> - {ok, Val}; - - {li, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"int list"/utf8>>) - end. - --spec get_ints(gleam@map:map_(binary(), flag()), binary()) -> {ok, - list(integer())} | - {error, snag:snag()}. -get_ints(Flags, Name) -> - get_value(Flags, Name, fun get_ints_value/1). - --spec get_bool_value(flag()) -> {ok, boolean()} | {error, snag:snag()}. -get_bool_value(Flag) -> - case erlang:element(2, Flag) of - {b, {internal, {some, Val}, _}} -> - {ok, Val}; - - {b, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"bool"/utf8>>) - end. - --spec get_bool(gleam@map:map_(binary(), flag()), binary()) -> {ok, boolean()} | - {error, snag:snag()}. -get_bool(Flags, Name) -> - get_value(Flags, Name, fun get_bool_value/1). - --spec get_string_value(flag()) -> {ok, binary()} | {error, snag:snag()}. -get_string_value(Flag) -> - case erlang:element(2, Flag) of - {s, {internal, {some, Val}, _}} -> - {ok, Val}; - - {s, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"string"/utf8>>) - end. - --spec get_string(gleam@map:map_(binary(), flag()), binary()) -> {ok, binary()} | - {error, snag:snag()}. -get_string(Flags, Name) -> - get_value(Flags, Name, fun get_string_value/1). - --spec get_strings_value(flag()) -> {ok, list(binary())} | {error, snag:snag()}. -get_strings_value(Flag) -> - case erlang:element(2, Flag) of - {ls, {internal, {some, Val}, _}} -> - {ok, Val}; - - {ls, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"string list"/utf8>>) - end. - --spec get_strings(gleam@map:map_(binary(), flag()), binary()) -> {ok, - list(binary())} | - {error, snag:snag()}. -get_strings(Flags, Name) -> - get_value(Flags, Name, fun get_strings_value/1). - --spec get_float_value(flag()) -> {ok, float()} | {error, snag:snag()}. -get_float_value(Flag) -> - case erlang:element(2, Flag) of - {f, {internal, {some, Val}, _}} -> - {ok, Val}; - - {f, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"float"/utf8>>) - end. - --spec get_float(gleam@map:map_(binary(), flag()), binary()) -> {ok, float()} | - {error, snag:snag()}. -get_float(Flags, Name) -> - get_value(Flags, Name, fun get_float_value/1). - --spec get_floats_value(flag()) -> {ok, list(float())} | {error, snag:snag()}. -get_floats_value(Flag) -> - case erlang:element(2, Flag) of - {lf, {internal, {some, Val}, _}} -> - {ok, Val}; - - {lf, {internal, none, _}} -> - flag_not_provided_error(); - - _ -> - access_type_error(<<"float list"/utf8>>) - end. - --spec get_floats(gleam@map:map_(binary(), flag()), binary()) -> {ok, - list(float())} | - {error, snag:snag()}. -get_floats(Flags, Name) -> - get_value(Flags, Name, fun get_floats_value/1). diff --git a/aoc2023/build/packages/glint/src/glint@flag@constraint.erl b/aoc2023/build/packages/glint/src/glint@flag@constraint.erl deleted file mode 100644 index 2978be0..0000000 --- a/aoc2023/build/packages/glint/src/glint@flag@constraint.erl +++ /dev/null @@ -1,68 +0,0 @@ --module(glint@flag@constraint). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([one_of/1, none_of/1, each/1]). - --spec one_of(list(FSI)) -> fun((FSI) -> {ok, nil} | {error, snag:snag()}). -one_of(Allowed) -> - Allowed_set = gleam@set:from_list(Allowed), - fun(Val) -> case gleam@set:contains(Allowed_set, Val) of - true -> - {ok, nil}; - - false -> - snag:error( - <<<<<<"invalid value '"/utf8, - (gleam@string:inspect(Val))/binary>>/binary, - "', must be one of: ["/utf8>>/binary, - ((<<(begin - _pipe = Allowed, - _pipe@1 = gleam@list:map( - _pipe, - fun(A) -> - <<<<"'"/utf8, - (gleam@string:inspect(A))/binary>>/binary, - "'"/utf8>> - end - ), - gleam@string:join(_pipe@1, <<", "/utf8>>) - end)/binary, - "]"/utf8>>))/binary>> - ) - end end. - --spec none_of(list(FSL)) -> fun((FSL) -> {ok, nil} | {error, snag:snag()}). -none_of(Disallowed) -> - Disallowed_set = gleam@set:from_list(Disallowed), - fun(Val) -> case gleam@set:contains(Disallowed_set, Val) of - false -> - {ok, nil}; - - true -> - snag:error( - <<<<<<"invalid value '"/utf8, - (gleam@string:inspect(Val))/binary>>/binary, - "', must not be one of: ["/utf8>>/binary, - (((<<(begin - _pipe = Disallowed, - _pipe@1 = gleam@list:map( - _pipe, - fun(A) -> - <<<<"'"/utf8, - (gleam@string:inspect(A))/binary>>/binary, - "'"/utf8>> - end - ), - gleam@string:join(_pipe@1, <<", "/utf8>>) - end)/binary, - "]"/utf8>>)))/binary>> - ) - end end. - --spec each(fun((FSO) -> {ok, nil} | {error, snag:snag()})) -> fun((list(FSO)) -> {ok, - nil} | - {error, snag:snag()}). -each(Constraint) -> - fun(L) -> _pipe = L, - _pipe@1 = gleam@list:try_map(_pipe, Constraint), - gleam@result:replace(_pipe@1, nil) end. diff --git a/aoc2023/build/packages/packages.toml b/aoc2023/build/packages/packages.toml deleted file mode 100644 index d4c7b69..0000000 --- a/aoc2023/build/packages/packages.toml +++ /dev/null @@ -1,16 +0,0 @@ -[packages] -simplifile = "1.0.0" -gleam_community_ansi = "1.2.0" -glint = "0.13.0" -gleam_community_colour = "1.2.0" -gleam_erlang = "0.23.1" -tom = "0.2.1" -gleam_httpc = "2.1.1" -adglent = "1.2.0" -gap = "1.0.1" -gleam_community_maths = "1.0.1" -gleam_otp = "0.8.0" -gleam_stdlib = "0.33.0" -pqueue = "2.0.7" -snag = "0.2.1" -gleam_http = "3.5.2" diff --git a/aoc2023/build/packages/pqueue/LICENSE b/aoc2023/build/packages/pqueue/LICENSE deleted file mode 100644 index 5697803..0000000 --- a/aoc2023/build/packages/pqueue/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2011-2023 Michael Truog - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/aoc2023/build/packages/pqueue/README.markdown b/aoc2023/build/packages/pqueue/README.markdown deleted file mode 100644 index 77aaf1c..0000000 --- a/aoc2023/build/packages/pqueue/README.markdown +++ /dev/null @@ -1,31 +0,0 @@ -Erlang Priority Queue Implementation -==================================== - -The priority queue implementations implement a subset of the stdlib Erlang queue interface as seen in the implementation used by both [Riak and RabbitMQ](https://github.com/basho/riak_core/blob/master/src/riak_core_priority_queue.erl). - -The implementations: - -* `priority_queue` (fastest for any priorities when only using a single priority at a time) -* `pqueue` (fastest for 41 priorities, -20 (high) to 20 (low), when using 2 or more priorities at the same time) -* `pqueue2` (slower heap implementation) -* `pqueue3` (faster than `pqueue2` and `priority_queue` when using 64 or more priorities at the same time) -* `pqueue4` (slightly slower than `pqueue` but fastest for allowing 257 priorities, -128 (high) to 128 (low), i.e., fastest when using 42 or more priorities at the same time) - -[The latest results are here](http://okeuday.livejournal.com/19539.html), with [the benchmark here](http://github.com/okeuday/erlbench). - -Author ------- - -Michael Truog (mjtruog at protonmail dot com) - -Thanks ------- - -* Jesper Louis andersen (PropEr integration and testing) -* Ulf Wiger (suggestions and insight) - -License -------- - -MIT License - diff --git a/aoc2023/build/packages/pqueue/doc/edoc-info b/aoc2023/build/packages/pqueue/doc/edoc-info deleted file mode 100644 index 5e5a8d3..0000000 --- a/aoc2023/build/packages/pqueue/doc/edoc-info +++ /dev/null @@ -1,3 +0,0 @@ -%% encoding: UTF-8 -{application,pqueue}. -{modules,[pqueue,pqueue2,pqueue3,pqueue4]}. diff --git a/aoc2023/build/packages/pqueue/doc/erlang.png b/aoc2023/build/packages/pqueue/doc/erlang.png deleted file mode 100644 index 987a618..0000000 Binary files a/aoc2023/build/packages/pqueue/doc/erlang.png and /dev/null differ diff --git a/aoc2023/build/packages/pqueue/doc/index.html b/aoc2023/build/packages/pqueue/doc/index.html deleted file mode 100644 index d55b5e6..0000000 --- a/aoc2023/build/packages/pqueue/doc/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -The pqueue application - - - - - - -<h2>This page uses frames</h2> -<p>Your browser does not accept frames. -<br>You should go to the <a href="overview-summary.html">non-frame version</a> instead. -</p> - - - \ No newline at end of file diff --git a/aoc2023/build/packages/pqueue/doc/modules-frame.html b/aoc2023/build/packages/pqueue/doc/modules-frame.html deleted file mode 100644 index 5a87cc4..0000000 --- a/aoc2023/build/packages/pqueue/doc/modules-frame.html +++ /dev/null @@ -1,15 +0,0 @@ - - - -The pqueue application - - - -

Modules

- - - - -
pqueue
pqueue2
pqueue3
pqueue4
- - \ No newline at end of file diff --git a/aoc2023/build/packages/pqueue/doc/overview-summary.html b/aoc2023/build/packages/pqueue/doc/overview-summary.html deleted file mode 100644 index e2f8906..0000000 --- a/aoc2023/build/packages/pqueue/doc/overview-summary.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - -The pqueue application - - - - -

The pqueue application

- -
- -

Generated by EDoc

- - diff --git a/aoc2023/build/packages/pqueue/doc/pqueue.html b/aoc2023/build/packages/pqueue/doc/pqueue.html deleted file mode 100644 index 40b05ac..0000000 --- a/aoc2023/build/packages/pqueue/doc/pqueue.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - -Module pqueue - - - - -
- -

Module pqueue

- -

Static Priority Queue.

- This priority queue implementation depends on a static number of priorities - (-20 (high) to 20 (low)) so that tuple access times can be exploited for - quick in/out priority queue operations. -

Copyright © 2011-2020 Michael Truog

- -

Version: 2.0.1 Nov 26 2020 14:55:34 - ------------------------------------------------------------------------

-

Authors: Michael Truog (mjtruog at protonmail dot com).

- -

Description

-

Static Priority Queue.

- This priority queue implementation depends on a static number of priorities - (-20 (high) to 20 (low)) so that tuple access times can be exploited for - quick in/out priority queue operations. This implementation was created to - avoid the slowness within the priority queue used by both RabbitMQ and Riak - (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -

Data Types

- -

pqueue()

-

pqueue() = {integer(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, queue:queue(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}} | {empty, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, queue:queue(), {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}, {queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue(), queue:queue()}}

- - -

Function Index

- - - - - - - - - - - - -
in/2 -

Append an item to the tail of the 0 priority queue.

- O(1).
in/3 -

Append an item to the tail of a specific priority queue.

- O(1).
is_empty/1 -

Check if the priority queue is empty.

- O(1).
is_queue/1 -

Check if the priority queue type is as expected.

- O(1).
join/2 -

Join two priority queues.

- O(N).
len/1 -

Determine the length of a priority queue.

- O(N).
new/0 -

Create a new priority queue.

- O(1).
out/1 -

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case.
out/2 -

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case.
pout/1 -

Take an item from the head of the priority queue.

- Includes the priority in the return value.
test/0 -

Regression test.

.
to_list/1 -

Convert the priority queue to a list.

- O(N).
- -

Function Details

- -

in/2

-
-

in(X::term(), Q::pqueue()) -> pqueue()

-

-

Append an item to the tail of the 0 priority queue.

- O(1)

- -

in/3

-
-

in(X::term(), P::integer(), Q::pqueue()) -> pqueue()

-

-

Append an item to the tail of a specific priority queue.

- O(1)

- -

is_empty/1

-
-

is_empty(X1::pqueue()) -> true | false

-

-

Check if the priority queue is empty.

- O(1)

- -

is_queue/1

-
-

is_queue(X1::pqueue()) -> true | false

-

-

Check if the priority queue type is as expected.

- O(1)

- -

join/2

-
-

join(X1::pqueue(), X2::pqueue()) -> pqueue()

-

-

Join two priority queues.

- O(N)

- -

len/1

-
-

len(X1::pqueue()) -> non_neg_integer()

-

-

Determine the length of a priority queue.

- O(N)

- -

new/0

-
-

new() -> pqueue()

-

-

Create a new priority queue.

- O(1)

- -

out/1

-
-

out(Q::pqueue()) -> {{value, term()}, pqueue()} | {empty, pqueue()}

-

-

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case

- -

out/2

-
-

out(P::integer(), Q::pqueue()) -> {{value, term()}, pqueue()} | {empty, pqueue()}

-

-

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case

- -

pout/1

-
-

pout(Q::pqueue()) -> {{value, term(), integer()}, pqueue()} | {empty, pqueue()}

-

-

Take an item from the head of the priority queue.

- Includes the priority in the return value. - O(1) amortized, O(N) worst case

- -

test/0

-
-

test() -> any()

-

-

Regression test.

-

- -

to_list/1

-
-

to_list(X1::pqueue()) -> [term()]

-

-

Convert the priority queue to a list.

- O(N)

-
- - -

Generated by EDoc

- - diff --git a/aoc2023/build/packages/pqueue/doc/pqueue2.html b/aoc2023/build/packages/pqueue/doc/pqueue2.html deleted file mode 100644 index 2942b84..0000000 --- a/aoc2023/build/packages/pqueue/doc/pqueue2.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - -Module pqueue2 - - - - -
- -

Module pqueue2

- -

Skew Heap Priority Queue.

- Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority - queue implementation. -

Copyright © 2011-2020 Michael Truog

- -

Version: 2.0.1 Nov 26 2020 14:55:32 - ------------------------------------------------------------------------

-

Authors: Michael Truog (mjtruog at protonmail dot com).

- -

Description

-

Skew Heap Priority Queue.

- Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority - queue implementation. Unfortunately, testing has shown this solution to - be more than 2 times slower than pqueue. -

Data Types

- -

pqueue2()

-

pqueue2() = empty | {integer(), pqueue2(), pqueue2(), element, term()} | {integer(), pqueue2(), pqueue2(), queue, queue:queue()}

- - -

Function Index

- - - - - - - - - - - -
in/2 -

Append an item to the tail of the 0 priority queue.

.
in/3 -

Append an item to the tail of a specific priority queue.

.
is_empty/1 -

Check if the priority queue is empty.

.
is_queue/1 -

Check if the priority queue type is as expected.

.
len/1 -

Determine the length of a priority queue.

.
new/0 -

Create a new priority queue.

.
out/1 -

Take an item from the head of the priority queue.

.
out/2 -

Take an item of a specific priority from the head of the queue.

.
pout/1 -

Take an item from the head of the priority queue.

- Includes the priority in the return value.
test/0 -

Regression test.

.
to_list/1 -

Convert the priority queue to a list.

.
- -

Function Details

- -

in/2

-
-

in(Value::term(), H::pqueue2()) -> pqueue2()

-

-

Append an item to the tail of the 0 priority queue.

-

- -

in/3

-
-

in(Value::term(), P::integer(), H::pqueue2()) -> pqueue2()

-

-

Append an item to the tail of a specific priority queue.

-

- -

is_empty/1

-
-

is_empty(X1::pqueue2()) -> true | false

-

-

Check if the priority queue is empty.

-

- -

is_queue/1

-
-

is_queue(X1::pqueue2()) -> true | false

-

-

Check if the priority queue type is as expected.

-

- -

len/1

-
-

len(H::pqueue2()) -> non_neg_integer()

-

-

Determine the length of a priority queue.

-

- -

new/0

-
-

new() -> pqueue2()

-

-

Create a new priority queue.

-

- -

out/1

-
-

out(X1::pqueue2()) -> {{value, term()}, pqueue2()} | {empty, pqueue2()}

-

-

Take an item from the head of the priority queue.

-

- -

out/2

-
-

out(P::integer(), H::pqueue2()) -> {{value, term()}, pqueue2()} | {empty, pqueue2()}

-

-

Take an item of a specific priority from the head of the queue.

-

- -

pout/1

-
-

pout(X1::pqueue2()) -> {{value, term(), integer()}, pqueue2()} | {empty, pqueue2()}

-

-

Take an item from the head of the priority queue.

- Includes the priority in the return value.

- -

test/0

-
-

test() -> any()

-

-

Regression test.

-

- -

to_list/1

-
-

to_list(H::pqueue2()) -> [term()]

-

-

Convert the priority queue to a list.

-

-
- - -

Generated by EDoc

- - diff --git a/aoc2023/build/packages/pqueue/doc/pqueue3.html b/aoc2023/build/packages/pqueue/doc/pqueue3.html deleted file mode 100644 index 35f1a7b..0000000 --- a/aoc2023/build/packages/pqueue/doc/pqueue3.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Module pqueue3 - - - - -
- -

Module pqueue3

- -

A Large Priority Queue.

- This priority queue implementation depends on layered tuples, so that tuple - access times can be exploited for quick in/out priority queue operations - when using 64 or more total priorities. -

Copyright © 2011-2020 Michael Truog

- -

Version: 2.0.1 Nov 26 2020 14:55:32 - ------------------------------------------------------------------------

-

Authors: Michael Truog (mjtruog at protonmail dot com).

- -

Description

-

A Large Priority Queue.

- This priority queue implementation depends on layered tuples, so that tuple - access times can be exploited for quick in/out priority queue operations - when using 64 or more total priorities. This implementation was created - to avoid the slowness within the priority queue used by - both RabbitMQ and Riak - (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -

Data Types

- -

pqueue3()

-

pqueue3() = {integer(), integer(), empty | integer(), tuple()}

- - -

pqueue3_empty()

-

pqueue3_empty() = {integer(), integer(), empty, tuple()}

- - -

Function Index

- - - - - - - - - - - -
in/2 -

Append an item to the tail of the 0 priority queue.

- O(1).
in/3 -

Append an item to the tail of a specific priority queue.

- O(1).
is_empty/1 -

Check if the priority queue is empty.

- O(1).
is_queue/1 -

Check if the priority queue type is as expected.

- O(1).
len/1 -

Determine the length of a priority queue.

- O(N).
new/0 -

Create a new priority queue.

- O(1).
new/1 -

Create a new priority queue with customization options.

- O(1).
out/1 -

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case.
out/2 -

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case.
pout/1 -

Take an item from the head of the priority queue.

- Includes the priority in the return value.
to_list/1 -

Convert the priority queue to a list.

- O(N).
- -

Function Details

- -

in/2

-
-

in(Value::term(), Q::pqueue3()) -> pqueue3()

-

-

Append an item to the tail of the 0 priority queue.

- O(1)

- -

in/3

-
-

in(Value::term(), P::integer(), X3::pqueue3()) -> pqueue3()

-

-

Append an item to the tail of a specific priority queue.

- O(1)

- -

is_empty/1

-
-

is_empty(Q::pqueue3()) -> true | false

-

-

Check if the priority queue is empty.

- O(1)

- -

is_queue/1

-
-

is_queue(X1::pqueue3()) -> true | false

-

-

Check if the priority queue type is as expected.

- O(1)

- -

len/1

-
-

len(Q::pqueue3()) -> non_neg_integer()

-

-

Determine the length of a priority queue.

- O(N)

- -

new/0

-
-

new() -> pqueue3_empty()

-

-

Create a new priority queue.

- O(1)

- -

new/1

-
-

new(Options::[{atom(), term()}]) -> pqueue3()

-

-

Create a new priority queue with customization options.

- O(1)

- -

out/1

-
-

out(Q::pqueue3()) -> {{value, term()}, pqueue3()} | {empty, pqueue3()}

-

-

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case

- -

out/2

-
-

out(P::integer(), Q::pqueue3()) -> {{value, term()}, pqueue3()} | {empty, pqueue3()}

-

-

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case

- -

pout/1

-
-

pout(Q::pqueue3()) -> {{value, term(), integer()}, pqueue3()} | {empty, pqueue3()}

-

-

Take an item from the head of the priority queue.

- Includes the priority in the return value. - O(1) amortized, O(N) worst case

- -

to_list/1

-
-

to_list(Q::pqueue3()) -> [term()]

-

-

Convert the priority queue to a list.

- O(N)

-
- - -

Generated by EDoc

- - diff --git a/aoc2023/build/packages/pqueue/doc/pqueue4.html b/aoc2023/build/packages/pqueue/doc/pqueue4.html deleted file mode 100644 index edcdb6e..0000000 --- a/aoc2023/build/packages/pqueue/doc/pqueue4.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -Module pqueue4 - - - - -
- -

Module pqueue4

- -

Static Priority Queue.

- This priority queue implementation depends on a static number of priorities - (-128 (high) to 128 (low)) so that tuple access times can be exploited for - quick in/out priority queue operations. -

Copyright © 2011-2020 Michael Truog

- -

Version: 2.0.1 Nov 26 2020 14:55:34 - ------------------------------------------------------------------------

-

Authors: Michael Truog (mjtruog at protonmail dot com).

- -

Description

-

Static Priority Queue.

- This priority queue implementation depends on a static number of priorities - (-128 (high) to 128 (low)) so that tuple access times can be exploited for - quick in/out priority queue operations. This implementation was created to - avoid the slowness within the priority queue used by both RabbitMQ and Riak - (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -

Data Types

- -

pqueue4()

-

pqueue4() = pqueue4(any())

- - -

pqueue4()

-

pqueue4(T) = {priority() | empty, non_neg_integer(), {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, queue:queue(T), {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}}

- - -

priority()

-

priority() = -128..128

- - -

Function Index

- - - - - - - - - - - - - - - -
filter/2 -

Filter the priority queue.

- O(N).
filter/3 -

Filter a specific priority within the priority queue.

- O(N).
in/2 -

Append an item to the tail of the 0 priority queue.

- O(1).
in/3 -

Append an item to the tail of a specific priority queue.

- O(1).
is_empty/1 -

Check if the priority queue is empty.

- O(1).
is_queue/1 -

Check if the priority queue type is as expected.

- O(1).
len/1 -

Determine the length of a priority queue.

- O(1).
new/0 -

Create a new priority queue.

- O(1).
out/1 -

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case.
out/2 -

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case.
pout/1 -

Take an item from the head of the priority queue.

- Includes the priority in the return value.
remove_unique/2 -

Remove a unique value from the priority queue with a binary predicate.

- O(N) but smaller constant than filter/2.
remove_unique/3 -

Remove a unique value in a specific priority within the priority queue with a binary predicate.

- O(N) but smaller constant than filter/3.
to_list/1 -

Convert the priority queue to a list.

- O(N).
to_plist/1 -

Convert the priority queue to a list with priorities.

- O(N).
- -

Function Details

- -

filter/2

-
-

filter(F::fun((any()) -> boolean()), Q::pqueue4()) -> pqueue4()

-

-

Filter the priority queue.

- O(N)

- -

filter/3

-
-

filter(F::fun((any()) -> boolean()), P::integer(), Q::pqueue4()) -> pqueue4()

-

-

Filter a specific priority within the priority queue.

- O(N)

- -

in/2

-
-

in(X::any(), Q::pqueue4()) -> pqueue4()

-

-

Append an item to the tail of the 0 priority queue.

- O(1)

- -

in/3

-
-

in(X::any(), P::integer(), Q::pqueue4()) -> pqueue4()

-

-

Append an item to the tail of a specific priority queue.

- O(1)

- -

is_empty/1

-
-

is_empty(X1::pqueue4()) -> true | false

-

-

Check if the priority queue is empty.

- O(1)

- -

is_queue/1

-
-

is_queue(X1::pqueue4()) -> true | false

-

-

Check if the priority queue type is as expected.

- O(1)

- -

len/1

-
-

len(X1::pqueue4()) -> non_neg_integer()

-

-

Determine the length of a priority queue.

- O(1)

- -

new/0

-
-

new() -> pqueue4()

-

-

Create a new priority queue.

- O(1)

- -

out/1

-
-

out(Q::pqueue4()) -> {{value, any()}, pqueue4()} | {empty, pqueue4()}

-

-

Take an item from the head of the priority queue.

- O(1) amortized, O(N) worst case

- -

out/2

-
-

out(P::integer(), Q::pqueue4()) -> {{value, any()}, pqueue4()} | {empty, pqueue4()}

-

-

Take an item of a specific priority from the head of the queue.

- O(1) amortized, O(N) worst case

- -

pout/1

-
-

pout(Q::pqueue4()) -> {{value, any(), integer()}, pqueue4()} | {empty, pqueue4()}

-

-

Take an item from the head of the priority queue.

- Includes the priority in the return value. - O(1) amortized, O(N) worst case

- -

remove_unique/2

-
-

remove_unique(F::fun((any()) -> boolean()), Q::pqueue4()) -> {boolean(), pqueue4()}

-

-

Remove a unique value from the priority queue with a binary predicate.

- O(N) but smaller constant than filter/2

- -

remove_unique/3

-
-

remove_unique(F::fun((any()) -> boolean()), P::integer(), Q::pqueue4()) -> {boolean(), pqueue4()}

-

-

Remove a unique value in a specific priority within the priority queue with a binary predicate.

- O(N) but smaller constant than filter/3

- -

to_list/1

-
-

to_list(Q::pqueue4()) -> list()

-

-

Convert the priority queue to a list.

- O(N)

- -

to_plist/1

-
-

to_plist(Q::pqueue4()) -> [{priority(), list()}]

-

-

Convert the priority queue to a list with priorities.

- O(N)

-
- - -

Generated by EDoc

- - diff --git a/aoc2023/build/packages/pqueue/doc/stylesheet.css b/aoc2023/build/packages/pqueue/doc/stylesheet.css deleted file mode 100644 index ab170c0..0000000 --- a/aoc2023/build/packages/pqueue/doc/stylesheet.css +++ /dev/null @@ -1,55 +0,0 @@ -/* standard EDoc style sheet */ -body { - font-family: Verdana, Arial, Helvetica, sans-serif; - margin-left: .25in; - margin-right: .2in; - margin-top: 0.2in; - margin-bottom: 0.2in; - color: #000000; - background-color: #ffffff; -} -h1,h2 { - margin-left: -0.2in; -} -div.navbar { - background-color: #add8e6; - padding: 0.2em; -} -h2.indextitle { - padding: 0.4em; - background-color: #add8e6; -} -h3.function,h3.typedecl { - background-color: #add8e6; - padding-left: 1em; -} -div.spec { - margin-left: 2em; - background-color: #eeeeee; -} -a.module { - text-decoration:none -} -a.module:hover { - background-color: #eeeeee; -} -ul.definitions { - list-style-type: none; -} -ul.index { - list-style-type: none; - background-color: #eeeeee; -} - -/* - * Minor style tweaks - */ -ul { - list-style-type: square; -} -table { - border-collapse: collapse; -} -td { - padding: 3 -} diff --git a/aoc2023/build/packages/pqueue/rebar.config b/aoc2023/build/packages/pqueue/rebar.config deleted file mode 100644 index f8022f0..0000000 --- a/aoc2023/build/packages/pqueue/rebar.config +++ /dev/null @@ -1,14 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: - -{erl_opts, - [{platform_define, "^R16", 'ERLANG_OTP_VERSION_16'}, - {platform_define, "^17\.", 'ERLANG_OTP_VERSION_17'}, - {platform_define, "^18\.", 'ERLANG_OTP_VERSION_18'}, - {platform_define, "^19\.", 'ERLANG_OTP_VERSION_19'}, - {platform_define, "^20\.", 'ERLANG_OTP_VERSION_20'}, - warn_export_vars, - warn_unused_import, - %warn_missing_spec, - warnings_as_errors]}. -{edoc_opts, [{preprocess, true}]}. diff --git a/aoc2023/build/packages/pqueue/src/pqueue.app.src b/aoc2023/build/packages/pqueue/src/pqueue.app.src deleted file mode 100644 index b153ad1..0000000 --- a/aoc2023/build/packages/pqueue/src/pqueue.app.src +++ /dev/null @@ -1,10 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: - -{application, pqueue, - [{description, "Priority Queue Data Structures"}, - {vsn, "2.0.7"}, - {modules, [pqueue, pqueue2, pqueue3, pqueue4]}, - {registered, []}, - {applications, [stdlib, kernel]}]}. - diff --git a/aoc2023/build/packages/pqueue/src/pqueue.erl b/aoc2023/build/packages/pqueue/src/pqueue.erl deleted file mode 100644 index 2c57fa2..0000000 --- a/aoc2023/build/packages/pqueue/src/pqueue.erl +++ /dev/null @@ -1,2246 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% @doc -%%% ==Static Priority Queue.== -%%% This priority queue implementation depends on a static number of priorities -%%% (-20 (high) to 20 (low)) so that tuple access times can be exploited for -%%% quick in/out priority queue operations. This implementation was created to -%%% avoid the slowness within the priority queue used by both RabbitMQ and Riak -%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -%%% @end -%%% -%%% MIT License -%%% -%%% Copyright (c) 2011-2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%% @author Michael Truog -%%% @copyright 2011-2020 Michael Truog -%%% @version 2.0.1 {@date} {@time} -%%%------------------------------------------------------------------------ - --module(pqueue). --author('mjtruog at protonmail dot com'). - -%% external interface --export([in/2, % O(1) - in/3, % O(1) - is_empty/1, % O(1) - is_queue/1, % O(1) - join/2, % O(N) typically (?) - len/1, % O(N) - new/0, % O(1) - out/1, % O(1) amortized, O(N) worst case - out/2, % O(1) amortized, O(N) worst case - pout/1, % O(1) amortized, O(N) worst case - to_list/1, % O(N) - test/0]). - -%%%------------------------------------------------------------------------ -%%% External interface functions -%%%------------------------------------------------------------------------ - --ifdef(ERLANG_OTP_VERSION_16). --type pqueue() :: - {integer(), - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue()}, - queue(), - {queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}} | - {'empty', - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue()}, - queue(), - {queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue()}}. --else. --type pqueue() :: - {integer(), - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue()}, - queue:queue(), - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}} | - {'empty', - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue()}, - queue:queue(), - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}, - {queue:queue(), queue:queue(), queue:queue(), queue:queue(), - queue:queue(), queue:queue(), queue:queue()}}. --endif. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of the 0 priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), pqueue()) -> pqueue(). - -in(X, Q) -> - in(X, 0, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of a specific priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), integer(), pqueue()) -> pqueue(). - -in(_, P, _) - when P < -20; P > 20 -> - erlang:exit(badarg); -in(X, P, {empty, _, _, _, _, _, _, _} = Q) -> - in_higher(P, Q, X); -in(X, P, {Pc, _, _, _, _, _, _, _} = Q) - when P < Pc -> - in_higher(P, Q, X); -in(X, P, Q) -> - in_lower(P, Q, X). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue is empty.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_empty(pqueue()) -> 'true' | 'false'. - -is_empty({empty, _, _, _, _, _, _, _}) -> - true; -is_empty({_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - queue:is_empty(Qn20) and queue:is_empty(Qn19) and queue:is_empty(Qn18) and - queue:is_empty(Qn17) and queue:is_empty(Qn16) and queue:is_empty(Qn15) and - queue:is_empty(Qn14) and - queue:is_empty(Qn13) and queue:is_empty(Qn12) and queue:is_empty(Qn11) and - queue:is_empty(Qn10) and queue:is_empty(Qn9) and queue:is_empty(Qn8) and - queue:is_empty(Qn7) and - queue:is_empty(Qn6) and queue:is_empty(Qn5) and queue:is_empty(Qn4) and - queue:is_empty(Qn3) and queue:is_empty(Qn2) and queue:is_empty(Qn1) and - queue:is_empty(Q0) and - queue:is_empty(Qp1) and queue:is_empty(Qp2) and queue:is_empty(Qp3) and - queue:is_empty(Qp4) and queue:is_empty(Qp5) and queue:is_empty(Qp6) and - queue:is_empty(Qp7) and queue:is_empty(Qp8) and queue:is_empty(Qp9) and - queue:is_empty(Qp10) and queue:is_empty(Qp11) and queue:is_empty(Qp12) and - queue:is_empty(Qp13) and - queue:is_empty(Qp14) and queue:is_empty(Qp15) and queue:is_empty(Qp16) and - queue:is_empty(Qp17) and queue:is_empty(Qp18) and queue:is_empty(Qp19) and - queue:is_empty(Qp20). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue type is as expected.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_queue(pqueue()) -> 'true' | 'false'. - -is_queue({Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) - when tuple_size(Qsn14) == 7, tuple_size(Qsn7) == 7, tuple_size(Qsn1) == 6, - tuple_size(Qsp14) == 7, tuple_size(Qsp7) == 7, tuple_size(Qsp1) == 6 -> - (((Pc =:= empty) or is_integer(Pc)) and queue:is_queue(Q0)); -is_queue(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Join two priority queues.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec join(pqueue(), pqueue()) -> pqueue(). - -join({P1c, - {Q1_n20, Q1_n19, Q1_n18, Q1_n17, Q1_n16, Q1_n15, Q1_n14}, - {Q1_n13, Q1_n12, Q1_n11, Q1_n10, Q1_n9, Q1_n8, Q1_n7}, - {Q1_n6, Q1_n5, Q1_n4, Q1_n3, Q1_n2, Q1_n1}, - Q1_0, - {Q1_p1, Q1_p2, Q1_p3, Q1_p4, Q1_p5, Q1_p6}, - {Q1_p7, Q1_p8, Q1_p9, Q1_p10, Q1_p11, Q1_p12, Q1_p13}, - {Q1_p14, Q1_p15, Q1_p16, Q1_p17, Q1_p18, Q1_p19, Q1_p20}}, - {P2c, - {Q2_n20, Q2_n19, Q2_n18, Q2_n17, Q2_n16, Q2_n15, Q2_n14}, - {Q2_n13, Q2_n12, Q2_n11, Q2_n10, Q2_n9, Q2_n8, Q2_n7}, - {Q2_n6, Q2_n5, Q2_n4, Q2_n3, Q2_n2, Q2_n1}, - Q2_0, - {Q2_p1, Q2_p2, Q2_p3, Q2_p4, Q2_p5, Q2_p6}, - {Q2_p7, Q2_p8, Q2_p9, Q2_p10, Q2_p11, Q2_p12, Q2_p13}, - {Q2_p14, Q2_p15, Q2_p16, Q2_p17, Q2_p18, Q2_p19, Q2_p20}}) -> - {erlang:min(P1c, P2c), - {queue:join(Q1_n20, Q2_n20), queue:join(Q1_n19, Q2_n19), - queue:join(Q1_n18, Q2_n18), queue:join(Q1_n17, Q2_n17), - queue:join(Q1_n16, Q2_n16), queue:join(Q1_n15, Q2_n15), - queue:join(Q1_n14, Q2_n14)}, - {queue:join(Q1_n13, Q2_n13), queue:join(Q1_n12, Q2_n12), - queue:join(Q1_n11, Q2_n11), queue:join(Q1_n10, Q2_n10), - queue:join(Q1_n9, Q2_n9), queue:join(Q1_n8, Q2_n8), - queue:join(Q1_n7, Q2_n7)}, - {queue:join(Q1_n6, Q2_n6), queue:join(Q1_n5, Q2_n5), - queue:join(Q1_n4, Q2_n4), queue:join(Q1_n3, Q2_n3), - queue:join(Q1_n2, Q2_n2), queue:join(Q1_n1, Q2_n1)}, - queue:join(Q1_0, Q2_0), - {queue:join(Q1_p1, Q2_p1), queue:join(Q1_p2, Q2_p2), - queue:join(Q1_p3, Q2_p3), queue:join(Q1_p4, Q2_p4), - queue:join(Q1_p5, Q2_p5), queue:join(Q1_p6, Q2_p6)}, - {queue:join(Q1_p7, Q2_p7), queue:join(Q1_p8, Q2_p8), - queue:join(Q1_p9, Q2_p9), queue:join(Q1_p10, Q2_p10), - queue:join(Q1_p11, Q2_p11), queue:join(Q1_p12, Q2_p12), - queue:join(Q1_p13, Q2_p13)}, - {queue:join(Q1_p14, Q2_p14), queue:join(Q1_p15, Q2_p15), - queue:join(Q1_p16, Q2_p16), queue:join(Q1_p17, Q2_p17), - queue:join(Q1_p18, Q2_p18), queue:join(Q1_p19, Q2_p19), - queue:join(Q1_p20, Q2_p20)}}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Determine the length of a priority queue.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec len(pqueue()) -> non_neg_integer(). - -len({_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - queue:len(Qn20) + queue:len(Qn19) + queue:len(Qn18) + queue:len(Qn17) + - queue:len(Qn16) + queue:len(Qn15) + queue:len(Qn14) + - queue:len(Qn13) + queue:len(Qn12) + queue:len(Qn11) + queue:len(Qn10) + - queue:len(Qn9) + queue:len(Qn8) + queue:len(Qn7) + - queue:len(Qn6) + queue:len(Qn5) + queue:len(Qn4) + queue:len(Qn3) + - queue:len(Qn2) + queue:len(Qn1) + - queue:len(Q0) + - queue:len(Qp1) + queue:len(Qp2) + queue:len(Qp3) + queue:len(Qp4) + - queue:len(Qp5) + queue:len(Qp6) + - queue:len(Qp7) + queue:len(Qp8) + queue:len(Qp9) + queue:len(Qp10) + - queue:len(Qp11) + queue:len(Qp12) + queue:len(Qp13) + - queue:len(Qp14) + queue:len(Qp15) + queue:len(Qp16) + queue:len(Qp17) + - queue:len(Qp18) + queue:len(Qp19) + queue:len(Qp20). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec new() -> pqueue(). - -new() -> - {empty, % current priority - erlang:make_tuple(7, queue:new()), % priority [-20..-14] - erlang:make_tuple(7, queue:new()), % priority [-13.. -7] - erlang:make_tuple(6, queue:new()), % priority [ -6.. -1] - queue:new(), % priority 0 (default) - erlang:make_tuple(6, queue:new()), % priority [ 1.. 6] - erlang:make_tuple(7, queue:new()), % priority [ 7.. 13] - erlang:make_tuple(7, queue:new())}. % priority [ 14.. 20] - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(pqueue()) -> - {{'value', term()}, pqueue()} | {'empty', pqueue()}. - -out({empty, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -out({Pc, _, _, _, _, _, _, _} = Q) -> - out_current(Pc, Q, nopriority). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item of a specific priority from the head of the queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(integer(), pqueue()) -> - {{'value', term()}, pqueue()} | {'empty', pqueue()}. - -out(P, _) - when P < -20; P > 20 -> - erlang:exit(badarg); -out(_, {empty, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -out(P, Q) -> - out_specific(P, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% Includes the priority in the return value. -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec pout(pqueue()) -> - {{'value', term(), integer()}, pqueue()} | {'empty', pqueue()}. - -pout({empty, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -pout({Pc, _, _, _, _, _, _, _} = Q) -> - out_current(Pc, Q, priority). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec to_list(pqueue()) -> list(term()). - -to_list({_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - queue:to_list(Qn20) ++ queue:to_list(Qn19) ++ queue:to_list(Qn18) ++ - queue:to_list(Qn17) ++ queue:to_list(Qn16) ++ queue:to_list(Qn15) ++ - queue:to_list(Qn14) ++ - queue:to_list(Qn13) ++ queue:to_list(Qn12) ++ queue:to_list(Qn11) ++ - queue:to_list(Qn10) ++ queue:to_list(Qn9) ++ queue:to_list(Qn8) ++ - queue:to_list(Qn7) ++ - queue:to_list(Qn6) ++ queue:to_list(Qn5) ++ queue:to_list(Qn4) ++ - queue:to_list(Qn3) ++ queue:to_list(Qn2) ++ queue:to_list(Qn1) ++ - queue:to_list(Q0) ++ - queue:to_list(Qp1) ++ queue:to_list(Qp2) ++ queue:to_list(Qp3) ++ - queue:to_list(Qp4) ++ queue:to_list(Qp5) ++ queue:to_list(Qp6) ++ - queue:to_list(Qp7) ++ queue:to_list(Qp8) ++ queue:to_list(Qp9) ++ - queue:to_list(Qp10) ++ queue:to_list(Qp11) ++ queue:to_list(Qp12) ++ - queue:to_list(Qp13) ++ - queue:to_list(Qp14) ++ queue:to_list(Qp15) ++ queue:to_list(Qp16) ++ - queue:to_list(Qp17) ++ queue:to_list(Qp18) ++ queue:to_list(Qp19) ++ - queue:to_list(Qp20). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Regression test.=== -%% @end -%%------------------------------------------------------------------------- - -test() -> - Q0 = pqueue:new(), - true = pqueue:is_queue(Q0), - Q1 = pqueue:in(20, 20, Q0), - Q2 = pqueue:in(19, 19, Q1), - Q3 = pqueue:in(18, 18, Q2), - Q4 = pqueue:in(17, 17, Q3), - Q5 = pqueue:in(16, 16, Q4), - Q6 = pqueue:in(15, 15, Q5), - Q7 = pqueue:in(14, 14, Q6), - Q8 = pqueue:in(13, 13, Q7), - Q9 = pqueue:in(12, 12, Q8), - Q10 = pqueue:in(11, 11, Q9), - Q11 = pqueue:in(10, 10, Q10), - Q12 = pqueue:in(9, 9, Q11), - Q13 = pqueue:in(8, 8, Q12), - Q14 = pqueue:in(7, 7, Q13), - Q15 = pqueue:in(6, 6, Q14), - Q16 = pqueue:in(5, 5, Q15), - Q17 = pqueue:in(4, 4, Q16), - Q18 = pqueue:in(3, 3, Q17), - Q19 = pqueue:in(2, 2, Q18), - Q20 = pqueue:in(1, 1, Q19), - Q21 = pqueue:in(0, 0, Q20), - Q22 = pqueue:in(-1, -1, Q21), - Q23 = pqueue:in(-2, -2, Q22), - Q24 = pqueue:in(-3, -3, Q23), - Q25 = pqueue:in(-4, -4, Q24), - Q26 = pqueue:in(-5, -5, Q25), - Q27 = pqueue:in(-6, -6, Q26), - Q28 = pqueue:in(-7, -7, Q27), - Q29 = pqueue:in(-8, -8, Q28), - Q30 = pqueue:in(-9, -9, Q29), - Q31 = pqueue:in(-10, -10, Q30), - Q32 = pqueue:in(-11, -11, Q31), - Q33 = pqueue:in(-12, -12, Q32), - Q34 = pqueue:in(-13, -13, Q33), - Q35 = pqueue:in(-14, -14, Q34), - Q36 = pqueue:in(-15, -15, Q35), - Q37 = pqueue:in(-16, -16, Q36), - Q38 = pqueue:in(-17, -17, Q37), - Q39 = pqueue:in(-18, -18, Q38), - Q40 = pqueue:in(-19, -19, Q39), - Q41 = pqueue:in(-20, -20, Q40), - Q42 = pqueue:in(-20, -20, Q41), - Q43 = pqueue:in(-19, -19, Q42), - Q44 = pqueue:in(-18, -18, Q43), - Q45 = pqueue:in(-17, -17, Q44), - Q46 = pqueue:in(-16, -16, Q45), - Q47 = pqueue:in(-15, -15, Q46), - Q48 = pqueue:in(-14, -14, Q47), - Q49 = pqueue:in(-13, -13, Q48), - Q50 = pqueue:in(-12, -12, Q49), - Q51 = pqueue:in(-11, -11, Q50), - Q52 = pqueue:in(-10, -10, Q51), - Q53 = pqueue:in(-9, -9, Q52), - Q54 = pqueue:in(-8, -8, Q53), - Q55 = pqueue:in(-7, -7, Q54), - Q56 = pqueue:in(-6, -6, Q55), - Q57 = pqueue:in(-5, -5, Q56), - Q58 = pqueue:in(-4, -4, Q57), - Q59 = pqueue:in(-3, -3, Q58), - Q60 = pqueue:in(-2, -2, Q59), - Q61 = pqueue:in(-1, -1, Q60), - Q62 = pqueue:in(0, 0, Q61), - Q63 = pqueue:in(1, 1, Q62), - Q64 = pqueue:in(2, 2, Q63), - Q65 = pqueue:in(3, 3, Q64), - Q66 = pqueue:in(4, 4, Q65), - Q67 = pqueue:in(5, 5, Q66), - Q68 = pqueue:in(6, 6, Q67), - Q69 = pqueue:in(7, 7, Q68), - Q70 = pqueue:in(8, 8, Q69), - Q71 = pqueue:in(9, 9, Q70), - Q72 = pqueue:in(10, 10, Q71), - Q73 = pqueue:in(11, 11, Q72), - Q74 = pqueue:in(12, 12, Q73), - Q75 = pqueue:in(13, 13, Q74), - Q76 = pqueue:in(14, 14, Q75), - Q77 = pqueue:in(15, 15, Q76), - Q78 = pqueue:in(16, 16, Q77), - Q79 = pqueue:in(17, 17, Q78), - Q80 = pqueue:in(18, 18, Q79), - Q81 = pqueue:in(19, 19, Q80), - Q82 = pqueue:in(20, 20, Q81), - true = pqueue:is_queue(Q82), - 82 = pqueue:len(Q82), - [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14, - -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6, - -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, - 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, - 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue:to_list(Q82), - {{value, -20}, Q83} = pqueue:out(Q82), - {{value, -20}, Q84} = pqueue:out(Q83), - {{value, -19}, Q85} = pqueue:out(Q84), - {{value, -19}, Q86} = pqueue:out(Q85), - {{value, -18}, Q87} = pqueue:out(Q86), - {{value, -18}, Q88} = pqueue:out(Q87), - {{value, 0}, Q89} = pqueue:out(0, Q88), - {{value, 0}, Q90} = pqueue:out(0, Q89), - {empty, _} = pqueue:out(0, Q90), - {{value, -17, -17}, Q91} = pqueue:pout(Q90), - {{value, -17, -17}, Q92} = pqueue:pout(Q91), - {{value, -16, -16}, Q93} = pqueue:pout(Q92), - {{value, -16, -16}, Q94} = pqueue:pout(Q93), - {{value, -15, -15}, Q95} = pqueue:pout(Q94), - {{value, -15, -15}, Q96} = pqueue:pout(Q95), - {{value, -14, -14}, Q97} = pqueue:pout(Q96), - {{value, -14, -14}, Q98} = pqueue:pout(Q97), - {{value, -13, -13}, Q99} = pqueue:pout(Q98), - {{value, -13, -13}, Q100} = pqueue:pout(Q99), - {{value, -12, -12}, Q101} = pqueue:pout(Q100), - {{value, -12, -12}, Q102} = pqueue:pout(Q101), - {{value, -11, -11}, Q103} = pqueue:pout(Q102), - {{value, -11, -11}, Q104} = pqueue:pout(Q103), - {{value, -10, -10}, Q105} = pqueue:pout(Q104), - {{value, -10, -10}, Q106} = pqueue:pout(Q105), - {{value, -9, -9}, Q107} = pqueue:pout(Q106), - {{value, -9, -9}, Q108} = pqueue:pout(Q107), - {{value, -8, -8}, Q109} = pqueue:pout(Q108), - {{value, -8, -8}, Q110} = pqueue:pout(Q109), - {{value, -7, -7}, Q111} = pqueue:pout(Q110), - {{value, -7, -7}, Q112} = pqueue:pout(Q111), - {{value, -6, -6}, Q113} = pqueue:pout(Q112), - {{value, -6, -6}, Q114} = pqueue:pout(Q113), - {{value, -5, -5}, Q115} = pqueue:pout(Q114), - {{value, -5, -5}, Q116} = pqueue:pout(Q115), - {{value, -4, -4}, Q117} = pqueue:pout(Q116), - {{value, -4, -4}, Q118} = pqueue:pout(Q117), - {{value, -3, -3}, Q119} = pqueue:pout(Q118), - {{value, -3, -3}, Q120} = pqueue:pout(Q119), - {{value, -2, -2}, Q121} = pqueue:pout(Q120), - {{value, -2, -2}, Q122} = pqueue:pout(Q121), - {{value, -1, -1}, Q123} = pqueue:pout(Q122), - {{value, -1, -1}, Q124} = pqueue:pout(Q123), - {{value, 1, 1}, Q125} = pqueue:pout(Q124), - {{value, 1, 1}, Q126} = pqueue:pout(Q125), - {{value, 2, 2}, Q127} = pqueue:pout(Q126), - {{value, 2, 2}, Q128} = pqueue:pout(Q127), - {{value, 3, 3}, Q129} = pqueue:pout(Q128), - {{value, 3, 3}, Q130} = pqueue:pout(Q129), - {{value, 4, 4}, Q131} = pqueue:pout(Q130), - {{value, 4, 4}, Q132} = pqueue:pout(Q131), - {{value, 5, 5}, Q133} = pqueue:pout(Q132), - {{value, 5, 5}, Q134} = pqueue:pout(Q133), - {{value, 6, 6}, Q135} = pqueue:pout(Q134), - {{value, 6, 6}, Q136} = pqueue:pout(Q135), - {{value, 7, 7}, Q137} = pqueue:pout(Q136), - {{value, 7, 7}, Q138} = pqueue:pout(Q137), - {{value, 8, 8}, Q139} = pqueue:pout(Q138), - {{value, 8, 8}, Q140} = pqueue:pout(Q139), - {{value, 9, 9}, Q141} = pqueue:pout(Q140), - {{value, 9, 9}, Q142} = pqueue:pout(Q141), - {{value, 10, 10}, Q143} = pqueue:pout(Q142), - {{value, 10, 10}, Q144} = pqueue:pout(Q143), - {{value, 11, 11}, Q145} = pqueue:pout(Q144), - {{value, 11, 11}, Q146} = pqueue:pout(Q145), - {{value, 12, 12}, Q147} = pqueue:pout(Q146), - {{value, 12, 12}, Q148} = pqueue:pout(Q147), - {{value, 13, 13}, Q149} = pqueue:pout(Q148), - {{value, 13, 13}, Q150} = pqueue:pout(Q149), - {{value, 14, 14}, Q151} = pqueue:pout(Q150), - {{value, 14, 14}, Q152} = pqueue:pout(Q151), - {{value, 15, 15}, Q153} = pqueue:pout(Q152), - {{value, 15, 15}, Q154} = pqueue:pout(Q153), - {{value, 16, 16}, Q155} = pqueue:pout(Q154), - {{value, 16, 16}, Q156} = pqueue:pout(Q155), - {{value, 17, 17}, Q157} = pqueue:pout(Q156), - {{value, 17, 17}, Q158} = pqueue:pout(Q157), - {{value, 18, 18}, Q159} = pqueue:pout(Q158), - {{value, 18, 18}, Q160} = pqueue:pout(Q159), - {{value, 19, 19}, Q161} = pqueue:pout(Q160), - {{value, 19, 19}, Q162} = pqueue:pout(Q161), - {{value, 20, 20}, Q163} = pqueue:pout(Q162), - {{value, 20, 20}, Q164} = pqueue:pout(Q163), - true = pqueue:is_empty(Q164), - {empty, Q165} = pqueue:pout(Q164), - true = pqueue:is_empty(Q165), - ok. - -%%%------------------------------------------------------------------------ -%%% Private functions -%%%------------------------------------------------------------------------ - -in_higher(-20, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-20, - {queue:in(X, Qn20), Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-19, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-19, - {Qn20, queue:in(X, Qn19), Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-18, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-18, - {Qn20, Qn19, queue:in(X, Qn18), Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-17, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-17, - {Qn20, Qn19, Qn18, queue:in(X, Qn17), Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-16, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-16, - {Qn20, Qn19, Qn18, Qn17, queue:in(X, Qn16), Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-15, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-15, - {Qn20, Qn19, Qn18, Qn17, Qn16, queue:in(X, Qn15), Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-14, {_, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-14, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, queue:in(X, Qn14)}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-13, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-13, Qsn14, - {queue:in(X, Qn13), Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-12, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-12, Qsn14, - {Qn13, queue:in(X, Qn12), Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-11, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-11, Qsn14, - {Qn13, Qn12, queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-10, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-10, Qsn14, - {Qn13, Qn12, Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-9, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-9, Qsn14, - {Qn13, Qn12, Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-8, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-8, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-7, {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-7, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7)}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-6, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-6, Qsn14, Qsn7, - {queue:in(X, Qn6), Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-5, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-5, Qsn14, Qsn7, - {Qn6, queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-4, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-4, Qsn14, Qsn7, - {Qn6, Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-3, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-3, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-2, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-2, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(-1, {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {-1, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)}, - Q0, Qsp1, Qsp7, Qsp14}; -in_higher(0, {_, Qsn14, Qsn7, Qsn1, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {0, Qsn14, Qsn7, Qsn1, - queue:in(X, Q0), - Qsp1, Qsp7, Qsp14}; -in_higher(1, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {1, Qsn14, Qsn7, Qsn1, Q0, - {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_higher(2, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {2, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_higher(3, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {3, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_higher(4, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {4, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, Qp6}, - Qsp7, Qsp14}; -in_higher(5, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {5, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), Qp6}, - Qsp7, Qsp14}; -in_higher(6, {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {6, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, queue:in(X, Qp6)}, - Qsp7, Qsp14}; -in_higher(7, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {7, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_higher(8, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {8, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_higher(9, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {9, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_higher(10, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {10, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, Qp12, Qp13}, - Qsp14}; -in_higher(11, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {11, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), Qp12, Qp13}, - Qsp14}; -in_higher(12, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {12, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, queue:in(X, Qp12), Qp13}, - Qsp14}; -in_higher(13, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {13, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, queue:in(X, Qp13)}, - Qsp14}; -in_higher(14, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {14, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {queue:in(X, Qp14), Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}; -in_higher(15, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {15, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, queue:in(X, Qp15), Qp16, Qp17, Qp18, Qp19, Qp20}}; -in_higher(16, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {16, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, queue:in(X, Qp16), Qp17, Qp18, Qp19, Qp20}}; -in_higher(17, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {17, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, queue:in(X, Qp17), Qp18, Qp19, Qp20}}; -in_higher(18, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {18, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, queue:in(X, Qp18), Qp19, Qp20}}; -in_higher(19, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {19, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, queue:in(X, Qp19), Qp20}}; -in_higher(20, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {20, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, queue:in(X, Qp20)}}. - -in_lower(-20, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {queue:in(X, Qn20), Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-19, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, queue:in(X, Qn19), Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-18, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, queue:in(X, Qn18), Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-17, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, Qn18, queue:in(X, Qn17), Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-16, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, Qn18, Qn17, queue:in(X, Qn16), Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-15, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, queue:in(X, Qn15), Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-14, {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, queue:in(X, Qn14)}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-13, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {queue:in(X, Qn13), Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-12, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, queue:in(X, Qn12), Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-11, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-10, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-9, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-8, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-7, {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7)}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-6, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {queue:in(X, Qn6), Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-5, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-4, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-3, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-2, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(-1, {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)}, - Q0, Qsp1, Qsp7, Qsp14}; -in_lower(0, {Pc, Qsn14, Qsn7, Qsn1, - Q0, Qsp1, Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, - queue:in(X, Q0), - Qsp1, Qsp7, Qsp14}; -in_lower(1, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_lower(2, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_lower(3, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, Qp6}, - Qsp7, Qsp14}; -in_lower(4, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, Qp6}, - Qsp7, Qsp14}; -in_lower(5, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), Qp6}, - Qsp7, Qsp14}; -in_lower(6, {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, queue:in(X, Qp6)}, - Qsp7, Qsp14}; -in_lower(7, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_lower(8, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_lower(9, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, Qp12, Qp13}, - Qsp14}; -in_lower(10, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, Qp12, Qp13}, - Qsp14}; -in_lower(11, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), Qp12, Qp13}, - Qsp14}; -in_lower(12, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, queue:in(X, Qp12), Qp13}, - Qsp14}; -in_lower(13, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, queue:in(X, Qp13)}, - Qsp14}; -in_lower(14, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {queue:in(X, Qp14), Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}; -in_lower(15, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, queue:in(X, Qp15), Qp16, Qp17, Qp18, Qp19, Qp20}}; -in_lower(16, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, queue:in(X, Qp16), Qp17, Qp18, Qp19, Qp20}}; -in_lower(17, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, queue:in(X, Qp17), Qp18, Qp19, Qp20}}; -in_lower(18, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, queue:in(X, Qp18), Qp19, Qp20}}; -in_lower(19, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, queue:in(X, Qp19), Qp20}}; -in_lower(20, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) -> - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, queue:in(X, Qp20)}}. - -out_current(-20, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn20} = queue:out(Qn20), - if - Value =:= empty -> - out_current(-19, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -20}; - true -> - Value - end, - {NewValue, - {-20, - {NewQn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-19, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn19} = queue:out(Qn19), - if - Value =:= empty -> - out_current(-18, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -19}; - true -> - Value - end, - {NewValue, - {-19, - {Qn20, NewQn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-18, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn18} = queue:out(Qn18), - if - Value =:= empty -> - out_current(-17, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -18}; - true -> - Value - end, - {NewValue, - {-18, - {Qn20, Qn19, NewQn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-17, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn17} = queue:out(Qn17), - if - Value =:= empty -> - out_current(-16, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -17}; - true -> - Value - end, - {NewValue, - {-17, - {Qn20, Qn19, Qn18, NewQn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-16, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn16} = queue:out(Qn16), - if - Value =:= empty -> - out_current(-15, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -16}; - true -> - Value - end, - {NewValue, - {-16, - {Qn20, Qn19, Qn18, Qn17, NewQn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-15, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn15} = queue:out(Qn15), - if - Value =:= empty -> - out_current(-14, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -15}; - true -> - Value - end, - {NewValue, - {-15, - {Qn20, Qn19, Qn18, Qn17, Qn16, NewQn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-14, - {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn14} = queue:out(Qn14), - if - Value =:= empty -> - out_current(-13, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -14}; - true -> - Value - end, - {NewValue, - {-14, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, NewQn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-13, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn13} = queue:out(Qn13), - if - Value =:= empty -> - out_current(-12, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -13}; - true -> - Value - end, - {NewValue, - {-13, Qsn14, - {NewQn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-12, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn12} = queue:out(Qn12), - if - Value =:= empty -> - out_current(-11, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -12}; - true -> - Value - end, - {NewValue, - {-12, Qsn14, - {Qn13, NewQn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-11, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn11} = queue:out(Qn11), - if - Value =:= empty -> - out_current(-10, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -11}; - true -> - Value - end, - {NewValue, - {-11, Qsn14, - {Qn13, Qn12, NewQn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-10, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn10} = queue:out(Qn10), - if - Value =:= empty -> - out_current(-9, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -10}; - true -> - Value - end, - {NewValue, - {-10, Qsn14, - {Qn13, Qn12, Qn11, NewQn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-9, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn9} = queue:out(Qn9), - if - Value =:= empty -> - out_current(-8, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -9}; - true -> - Value - end, - {NewValue, - {-9, Qsn14, - {Qn13, Qn12, Qn11, Qn10, NewQn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-8, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn8} = queue:out(Qn8), - if - Value =:= empty -> - out_current(-7, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -8}; - true -> - Value - end, - {NewValue, - {-8, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, NewQn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-7, - {_, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn7} = queue:out(Qn7), - if - Value =:= empty -> - out_current(-6, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -7}; - true -> - Value - end, - {NewValue, - {-7, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, NewQn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-6, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn6} = queue:out(Qn6), - if - Value =:= empty -> - out_current(-5, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -6}; - true -> - Value - end, - {NewValue, - {-6, Qsn14, Qsn7, - {NewQn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-5, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn5} = queue:out(Qn5), - if - Value =:= empty -> - out_current(-4, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -5}; - true -> - Value - end, - {NewValue, - {-5, Qsn14, Qsn7, - {Qn6, NewQn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-4, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn4} = queue:out(Qn4), - if - Value =:= empty -> - out_current(-3, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -4}; - true -> - Value - end, - {NewValue, - {-4, Qsn14, Qsn7, - {Qn6, Qn5, NewQn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-3, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn3} = queue:out(Qn3), - if - Value =:= empty -> - out_current(-2, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -3}; - true -> - Value - end, - {NewValue, - {-3, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, NewQn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-2, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn2} = queue:out(Qn2), - if - Value =:= empty -> - out_current(-1, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -2}; - true -> - Value - end, - {NewValue, - {-2, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, NewQn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(-1, - {_, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQn1} = queue:out(Qn1), - if - Value =:= empty -> - out_current(0, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, -1}; - true -> - Value - end, - {NewValue, - {-1, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, NewQn1}, - Q0, Qsp1, Qsp7, Qsp14}} - end; -out_current(0, - {_, Qsn14, Qsn7, Qsn1, - Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQ0} = queue:out(Q0), - if - Value =:= empty -> - out_current(1, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 0}; - true -> - Value - end, - {NewValue, - {0, Qsn14, Qsn7, Qsn1, - NewQ0, - Qsp1, Qsp7, Qsp14}} - end; -out_current(1, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp1} = queue:out(Qp1), - if - Value =:= empty -> - out_current(2, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 1}; - true -> - Value - end, - {NewValue, - {1, Qsn14, Qsn7, Qsn1, Q0, - {NewQp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(2, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp2} = queue:out(Qp2), - if - Value =:= empty -> - out_current(3, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 2}; - true -> - Value - end, - {NewValue, - {2, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, NewQp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(3, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp3} = queue:out(Qp3), - if - Value =:= empty -> - out_current(4, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 3}; - true -> - Value - end, - {NewValue, - {3, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, NewQp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(4, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp4} = queue:out(Qp4), - if - Value =:= empty -> - out_current(5, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 4}; - true -> - Value - end, - {NewValue, - {4, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, NewQp4, Qp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(5, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp5} = queue:out(Qp5), - if - Value =:= empty -> - out_current(6, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 5}; - true -> - Value - end, - {NewValue, - {5, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, NewQp5, Qp6}, - Qsp7, Qsp14}} - end; -out_current(6, - {_, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14} = Q, ReturnType) -> - {Value, NewQp6} = queue:out(Qp6), - if - Value =:= empty -> - out_current(7, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 6}; - true -> - Value - end, - {NewValue, - {6, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, NewQp6}, - Qsp7, Qsp14}} - end; -out_current(7, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp7} = queue:out(Qp7), - if - Value =:= empty -> - out_current(8, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 7}; - true -> - Value - end, - {NewValue, - {7, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {NewQp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(8, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp8} = queue:out(Qp8), - if - Value =:= empty -> - out_current(9, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 8}; - true -> - Value - end, - {NewValue, - {8, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, NewQp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(9, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp9} = queue:out(Qp9), - if - Value =:= empty -> - out_current(10, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 9}; - true -> - Value - end, - {NewValue, - {9, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, NewQp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(10, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp10} = queue:out(Qp10), - if - Value =:= empty -> - out_current(11, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 10}; - true -> - Value - end, - {NewValue, - {10, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, NewQp10, Qp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(11, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp11} = queue:out(Qp11), - if - Value =:= empty -> - out_current(12, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 11}; - true -> - Value - end, - {NewValue, - {11, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, NewQp11, Qp12, Qp13}, - Qsp14}} - end; -out_current(12, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp12} = queue:out(Qp12), - if - Value =:= empty -> - out_current(13, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 12}; - true -> - Value - end, - {NewValue, - {12, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, NewQp12, Qp13}, - Qsp14}} - end; -out_current(13, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14} = Q, ReturnType) -> - {Value, NewQp13} = queue:out(Qp13), - if - Value =:= empty -> - out_current(14, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 13}; - true -> - Value - end, - {NewValue, - {13, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, NewQp13}, - Qsp14}} - end; -out_current(14, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp14} = queue:out(Qp14), - if - Value =:= empty -> - out_current(15, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 14}; - true -> - Value - end, - {NewValue, - {14, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {NewQp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}} - end; -out_current(15, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp15} = queue:out(Qp15), - if - Value =:= empty -> - out_current(16, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 15}; - true -> - Value - end, - {NewValue, - {15, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, NewQp15, Qp16, Qp17, Qp18, Qp19, Qp20}}} - end; -out_current(16, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp16} = queue:out(Qp16), - if - Value =:= empty -> - out_current(17, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 16}; - true -> - Value - end, - {NewValue, - {16, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, NewQp16, Qp17, Qp18, Qp19, Qp20}}} - end; -out_current(17, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp17} = queue:out(Qp17), - if - Value =:= empty -> - out_current(18, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 17}; - true -> - Value - end, - {NewValue, - {17, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, NewQp17, Qp18, Qp19, Qp20}}} - end; -out_current(18, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp18} = queue:out(Qp18), - if - Value =:= empty -> - out_current(19, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 18}; - true -> - Value - end, - {NewValue, - {18, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, NewQp18, Qp19, Qp20}}} - end; -out_current(19, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) -> - {Value, NewQp19} = queue:out(Qp19), - if - Value =:= empty -> - out_current(20, Q, ReturnType); - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 19}; - true -> - Value - end, - {NewValue, - {19, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, NewQp19, Qp20}}} - end; -out_current(20, - {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20} = Qsp14}, ReturnType) -> - {Value, NewQp20} = queue:out(Qp20), - if - Value =:= empty -> - {empty, {empty, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; - true -> - NewValue = if - ReturnType =:= priority -> - {value, Contents} = Value, - {value, Contents, 20}; - true -> - Value - end, - {NewValue, - {20, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, NewQp20}}} - end. - -out_specific(-20, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn20} = queue:out(Qn20), - {Value, - {Pc, - {NewQn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-19, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn19} = queue:out(Qn19), - {Value, - {Pc, - {Qn20, NewQn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-18, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn18} = queue:out(Qn18), - {Value, - {Pc, - {Qn20, Qn19, NewQn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-17, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn17} = queue:out(Qn17), - {Value, - {Pc, - {Qn20, Qn19, Qn18, NewQn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-16, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn16} = queue:out(Qn16), - {Value, - {Pc, - {Qn20, Qn19, Qn18, Qn17, NewQn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-15, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn15} = queue:out(Qn15), - {Value, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, NewQn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-14, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn14} = queue:out(Qn14), - {Value, - {Pc, - {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, NewQn14}, - Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-13, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn13} = queue:out(Qn13), - {Value, - {Pc, Qsn14, - {NewQn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-12, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn12} = queue:out(Qn12), - {Value, - {Pc, Qsn14, - {Qn13, NewQn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-11, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn11} = queue:out(Qn11), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, NewQn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-10, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn10} = queue:out(Qn10), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, NewQn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-9, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn9} = queue:out(Qn9), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, NewQn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-8, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn8} = queue:out(Qn8), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, NewQn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-7, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn7} = queue:out(Qn7), - {Value, - {Pc, Qsn14, - {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, NewQn7}, - Qsn1, Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-6, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn6} = queue:out(Qn6), - {Value, - {Pc, Qsn14, Qsn7, - {NewQn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-5, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn5} = queue:out(Qn5), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, NewQn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-4, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn4} = queue:out(Qn4), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, NewQn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-3, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn3} = queue:out(Qn3), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, NewQn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-2, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn2} = queue:out(Qn2), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, NewQn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(-1, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQn1} = queue:out(Qn1), - {Value, - {Pc, Qsn14, Qsn7, - {Qn6, Qn5, Qn4, Qn3, Qn2, NewQn1}, - Q0, Qsp1, Qsp7, Qsp14}}; -out_specific(0, - {Pc, Qsn14, Qsn7, Qsn1, - Q0, Qsp1, Qsp7, Qsp14}) -> - {Value, NewQ0} = queue:out(Q0), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, - NewQ0, - Qsp1, Qsp7, Qsp14}}; -out_specific(1, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp1} = queue:out(Qp1), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {NewQp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(2, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp2} = queue:out(Qp2), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, NewQp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(3, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp3} = queue:out(Qp3), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, NewQp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(4, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp4} = queue:out(Qp4), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, NewQp4, Qp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(5, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp5} = queue:out(Qp5), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, NewQp5, Qp6}, - Qsp7, Qsp14}}; -out_specific(6, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6}, - Qsp7, Qsp14}) -> - {Value, NewQp6} = queue:out(Qp6), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, NewQp6}, - Qsp7, Qsp14}}; -out_specific(7, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp7} = queue:out(Qp7), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {NewQp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}}; -out_specific(8, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp8} = queue:out(Qp8), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, NewQp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}}; -out_specific(9, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp9} = queue:out(Qp9), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, NewQp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}}; -out_specific(10, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp10} = queue:out(Qp10), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, NewQp10, Qp11, Qp12, Qp13}, - Qsp14}}; -out_specific(11, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp11} = queue:out(Qp11), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, NewQp11, Qp12, Qp13}, - Qsp14}}; -out_specific(12, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp12} = queue:out(Qp12), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, NewQp12, Qp13}, - Qsp14}}; -out_specific(13, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13}, - Qsp14}) -> - {Value, NewQp13} = queue:out(Qp13), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, - {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, NewQp13}, - Qsp14}}; -out_specific(14, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp14} = queue:out(Qp14), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {NewQp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}}; -out_specific(15, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp15} = queue:out(Qp15), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, NewQp15, Qp16, Qp17, Qp18, Qp19, Qp20}}}; -out_specific(16, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp16} = queue:out(Qp16), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, NewQp16, Qp17, Qp18, Qp19, Qp20}}}; -out_specific(17, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp17} = queue:out(Qp17), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, NewQp17, Qp18, Qp19, Qp20}}}; -out_specific(18, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp18} = queue:out(Qp18), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, NewQp18, Qp19, Qp20}}}; -out_specific(19, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp19} = queue:out(Qp19), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, NewQp19, Qp20}}}; -out_specific(20, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) -> - {Value, NewQp20} = queue:out(Qp20), - {Value, - {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, - {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, NewQp20}}}. - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - --include("pqueue_test.hrl"). - -module_test_() -> - {timeout, ?TEST_TIMEOUT, [ - {"internal tests", ?_assertOk(test())} - ]}. - -long_test_() -> - test_condition([ - {"proper tests", ?_assert(pqueue_proper:qc_pq())} - ], ?CLOUDI_LONG_TEST_TIMEOUT). - --endif. - diff --git a/aoc2023/build/packages/pqueue/src/pqueue2.erl b/aoc2023/build/packages/pqueue/src/pqueue2.erl deleted file mode 100644 index bbdeaaf..0000000 --- a/aoc2023/build/packages/pqueue/src/pqueue2.erl +++ /dev/null @@ -1,483 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% @doc -%%% ==Skew Heap Priority Queue.== -%%% Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority -%%% queue implementation. Unfortunately, testing has shown this solution to -%%% be more than 2 times slower than pqueue. -%%% @end -%%% -%%% MIT License -%%% -%%% Copyright (c) 2011-2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%% @author Michael Truog -%%% @copyright 2011-2020 Michael Truog -%%% @version 2.0.1 {@date} {@time} -%%%------------------------------------------------------------------------ - --module(pqueue2). --author('mjtruog at protonmail dot com'). - -%% external interface --export([in/2, - in/3, - is_empty/1, - is_queue/1, - len/1, - new/0, - out/1, - out/2, - pout/1, - to_list/1, - test/0]). - -%%%------------------------------------------------------------------------ -%%% External interface functions -%%%------------------------------------------------------------------------ - --ifdef(ERLANG_OTP_VERSION_16). --type pqueue2() :: - empty | - {integer(), pqueue2(), pqueue2(), element, term()} | - {integer(), pqueue2(), pqueue2(), queue, queue()}. --else. --type pqueue2() :: - empty | - {integer(), pqueue2(), pqueue2(), element, term()} | - {integer(), pqueue2(), pqueue2(), queue, queue:queue()}. --endif. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of the 0 priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), pqueue2()) -> pqueue2(). - -in(Value, H) -> - in(Value, 0, H). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of a specific priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), integer(), pqueue2()) -> pqueue2(). - -in(Value, P, H) -> - merge({P, empty, empty, element, Value}, H). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue is empty.=== -%% @end -%%------------------------------------------------------------------------- - --spec is_empty(pqueue2()) -> 'true' | 'false'. - -is_empty(empty) -> - true; -is_empty({_, HL, HR, queue, Queue}) -> - is_empty(HL) andalso is_empty(HR) andalso queue:is_empty(Queue); -is_empty(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue type is as expected.=== -%% @end -%%------------------------------------------------------------------------- - --spec is_queue(pqueue2()) -> 'true' | 'false'. - -is_queue(empty) -> - true; -is_queue({P, _, _, element, _}) - when is_integer(P) -> - true; -is_queue({P, _, _, queue, Queue}) - when is_integer(P) -> - queue:is_queue(Queue); -is_queue(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Determine the length of a priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec len(pqueue2()) -> non_neg_integer(). - -len(H) -> - len(0, out(H)). -len(I, {empty, _}) -> - I; -len(I, {{value, _}, H}) -> - len(I + 1, out(H)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec new() -> pqueue2(). - -new() -> - empty. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec out(pqueue2()) -> - {{'value', term()}, pqueue2()} | {'empty', pqueue2()}. - -out(empty) -> - {empty, empty}; -out({_, HL, HR, element, Value}) -> - {{value, Value}, merge(HL, HR)}; -out({P, HL, HR, queue, Queue}) -> - case queue:out(Queue) of - {{value, _} = Result, NewQueue} -> - {Result, {P, HL, HR, queue, NewQueue}}; - {empty, _} -> - out(merge(HL, HR)) - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item of a specific priority from the head of the queue.=== -%% @end -%%------------------------------------------------------------------------- - --spec out(integer(), pqueue2()) -> - {{'value', term()}, pqueue2()} | {'empty', pqueue2()}. - -out(_, empty) -> - {empty, empty}; -out(P, {P1, _, _, _, _} = H) when P < P1 -> - {empty, H}; -out(P, {P1, HL1, HR1, T, D}) when P > P1 -> - case out(P, HL1) of - {{value, _} = Result, HL2} -> - {Result, {P1, HL2, HR1, T, D}}; - {empty, HL2} -> - case out(P, HR1) of - {{value, _} = Result, HR2} -> - {Result, {P1, HL2, HR2, T, D}}; - {empty, HR2} -> - {empty, {P1, HL2, HR2, T, D}} - end - end; -out(P, {P, HL, HR, element, Value}) -> - {{value, Value}, merge(HL, HR)}; -out(P, {P, HL, HR, queue, Queue}) -> - case queue:out(Queue) of - {{value, _} = Result, NewQueue} -> - {Result, {P, HL, HR, queue, NewQueue}}; - {empty, _} -> - out(P, merge(HL, HR)) - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% Includes the priority in the return value. -%% @end -%%------------------------------------------------------------------------- - --spec pout(pqueue2()) -> - {{'value', term(), integer()}, pqueue2()} | {'empty', pqueue2()}. - -pout(empty) -> - {empty, empty}; -pout({P, HL, HR, element, Value}) -> - {{value, Value, P}, merge(HL, HR)}; -pout({P, HL, HR, queue, Queue}) -> - case queue:out(Queue) of - {{value, Value}, NewQueue} -> - {{value, Value, P}, {P, HL, HR, queue, NewQueue}}; - {empty, _} -> - pout(merge(HL, HR)) - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list.=== -%% @end -%%------------------------------------------------------------------------- - --spec to_list(pqueue2()) -> list(term()). - -to_list(H) -> - to_list([], out(H)). -to_list(L, {empty, _}) -> - lists:reverse(L); -to_list(L, {{value, Value}, H}) -> - to_list([Value | L], out(H)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Regression test.=== -%% @end -%%------------------------------------------------------------------------- - -test() -> - Q0 = pqueue2:new(), - true = pqueue2:is_queue(Q0), - Q1 = pqueue2:in(20, 20, Q0), - Q2 = pqueue2:in(19, 19, Q1), - Q3 = pqueue2:in(18, 18, Q2), - Q4 = pqueue2:in(17, 17, Q3), - Q5 = pqueue2:in(16, 16, Q4), - Q6 = pqueue2:in(15, 15, Q5), - Q7 = pqueue2:in(14, 14, Q6), - Q8 = pqueue2:in(13, 13, Q7), - Q9 = pqueue2:in(12, 12, Q8), - Q10 = pqueue2:in(11, 11, Q9), - Q11 = pqueue2:in(10, 10, Q10), - Q12 = pqueue2:in(9, 9, Q11), - Q13 = pqueue2:in(8, 8, Q12), - Q14 = pqueue2:in(7, 7, Q13), - Q15 = pqueue2:in(6, 6, Q14), - Q16 = pqueue2:in(5, 5, Q15), - Q17 = pqueue2:in(4, 4, Q16), - Q18 = pqueue2:in(3, 3, Q17), - Q19 = pqueue2:in(2, 2, Q18), - Q20 = pqueue2:in(1, 1, Q19), - Q21 = pqueue2:in(0, 0, Q20), - Q22 = pqueue2:in(-1, -1, Q21), - Q23 = pqueue2:in(-2, -2, Q22), - Q24 = pqueue2:in(-3, -3, Q23), - Q25 = pqueue2:in(-4, -4, Q24), - Q26 = pqueue2:in(-5, -5, Q25), - Q27 = pqueue2:in(-6, -6, Q26), - Q28 = pqueue2:in(-7, -7, Q27), - Q29 = pqueue2:in(-8, -8, Q28), - Q30 = pqueue2:in(-9, -9, Q29), - Q31 = pqueue2:in(-10, -10, Q30), - Q32 = pqueue2:in(-11, -11, Q31), - Q33 = pqueue2:in(-12, -12, Q32), - Q34 = pqueue2:in(-13, -13, Q33), - Q35 = pqueue2:in(-14, -14, Q34), - Q36 = pqueue2:in(-15, -15, Q35), - Q37 = pqueue2:in(-16, -16, Q36), - Q38 = pqueue2:in(-17, -17, Q37), - Q39 = pqueue2:in(-18, -18, Q38), - Q40 = pqueue2:in(-19, -19, Q39), - Q41 = pqueue2:in(-20, -20, Q40), - Q42 = pqueue2:in(-20, -20, Q41), - Q43 = pqueue2:in(-19, -19, Q42), - Q44 = pqueue2:in(-18, -18, Q43), - Q45 = pqueue2:in(-17, -17, Q44), - Q46 = pqueue2:in(-16, -16, Q45), - Q47 = pqueue2:in(-15, -15, Q46), - Q48 = pqueue2:in(-14, -14, Q47), - Q49 = pqueue2:in(-13, -13, Q48), - Q50 = pqueue2:in(-12, -12, Q49), - Q51 = pqueue2:in(-11, -11, Q50), - Q52 = pqueue2:in(-10, -10, Q51), - Q53 = pqueue2:in(-9, -9, Q52), - Q54 = pqueue2:in(-8, -8, Q53), - Q55 = pqueue2:in(-7, -7, Q54), - Q56 = pqueue2:in(-6, -6, Q55), - Q57 = pqueue2:in(-5, -5, Q56), - Q58 = pqueue2:in(-4, -4, Q57), - Q59 = pqueue2:in(-3, -3, Q58), - Q60 = pqueue2:in(-2, -2, Q59), - Q61 = pqueue2:in(-1, -1, Q60), - Q62 = pqueue2:in(0, 0, Q61), - Q63 = pqueue2:in(1, 1, Q62), - Q64 = pqueue2:in(2, 2, Q63), - Q65 = pqueue2:in(3, 3, Q64), - Q66 = pqueue2:in(4, 4, Q65), - Q67 = pqueue2:in(5, 5, Q66), - Q68 = pqueue2:in(6, 6, Q67), - Q69 = pqueue2:in(7, 7, Q68), - Q70 = pqueue2:in(8, 8, Q69), - Q71 = pqueue2:in(9, 9, Q70), - Q72 = pqueue2:in(10, 10, Q71), - Q73 = pqueue2:in(11, 11, Q72), - Q74 = pqueue2:in(12, 12, Q73), - Q75 = pqueue2:in(13, 13, Q74), - Q76 = pqueue2:in(14, 14, Q75), - Q77 = pqueue2:in(15, 15, Q76), - Q78 = pqueue2:in(16, 16, Q77), - Q79 = pqueue2:in(17, 17, Q78), - Q80 = pqueue2:in(18, 18, Q79), - Q81 = pqueue2:in(19, 19, Q80), - Q82 = pqueue2:in(20, 20, Q81), - true = pqueue2:is_queue(Q82), - 82 = pqueue2:len(Q82), - [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14, - -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6, - -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, - 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, - 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue2:to_list(Q82), - {{value, -20}, Q83} = pqueue2:out(Q82), - {{value, -20}, Q84} = pqueue2:out(Q83), - {{value, -19}, Q85} = pqueue2:out(Q84), - {{value, -19}, Q86} = pqueue2:out(Q85), - {{value, -18}, Q87} = pqueue2:out(Q86), - {{value, -18}, Q88} = pqueue2:out(Q87), - {{value, 0}, Q89} = pqueue2:out(0, Q88), - {{value, 0}, Q90} = pqueue2:out(0, Q89), - {empty, _} = pqueue2:out(0, Q90), - {{value, -17, -17}, Q91} = pqueue2:pout(Q90), - {{value, -17, -17}, Q92} = pqueue2:pout(Q91), - {{value, -16, -16}, Q93} = pqueue2:pout(Q92), - {{value, -16, -16}, Q94} = pqueue2:pout(Q93), - {{value, -15, -15}, Q95} = pqueue2:pout(Q94), - {{value, -15, -15}, Q96} = pqueue2:pout(Q95), - {{value, -14, -14}, Q97} = pqueue2:pout(Q96), - {{value, -14, -14}, Q98} = pqueue2:pout(Q97), - {{value, -13, -13}, Q99} = pqueue2:pout(Q98), - {{value, -13, -13}, Q100} = pqueue2:pout(Q99), - {{value, -12, -12}, Q101} = pqueue2:pout(Q100), - {{value, -12, -12}, Q102} = pqueue2:pout(Q101), - {{value, -11, -11}, Q103} = pqueue2:pout(Q102), - {{value, -11, -11}, Q104} = pqueue2:pout(Q103), - {{value, -10, -10}, Q105} = pqueue2:pout(Q104), - {{value, -10, -10}, Q106} = pqueue2:pout(Q105), - {{value, -9, -9}, Q107} = pqueue2:pout(Q106), - {{value, -9, -9}, Q108} = pqueue2:pout(Q107), - {{value, -8, -8}, Q109} = pqueue2:pout(Q108), - {{value, -8, -8}, Q110} = pqueue2:pout(Q109), - {{value, -7, -7}, Q111} = pqueue2:pout(Q110), - {{value, -7, -7}, Q112} = pqueue2:pout(Q111), - {{value, -6, -6}, Q113} = pqueue2:pout(Q112), - {{value, -6, -6}, Q114} = pqueue2:pout(Q113), - {{value, -5, -5}, Q115} = pqueue2:pout(Q114), - {{value, -5, -5}, Q116} = pqueue2:pout(Q115), - {{value, -4, -4}, Q117} = pqueue2:pout(Q116), - {{value, -4, -4}, Q118} = pqueue2:pout(Q117), - {{value, -3, -3}, Q119} = pqueue2:pout(Q118), - {{value, -3, -3}, Q120} = pqueue2:pout(Q119), - {{value, -2, -2}, Q121} = pqueue2:pout(Q120), - {{value, -2, -2}, Q122} = pqueue2:pout(Q121), - {{value, -1, -1}, Q123} = pqueue2:pout(Q122), - {{value, -1, -1}, Q124} = pqueue2:pout(Q123), - {{value, 1, 1}, Q125} = pqueue2:pout(Q124), - {{value, 1, 1}, Q126} = pqueue2:pout(Q125), - {{value, 2, 2}, Q127} = pqueue2:pout(Q126), - {{value, 2, 2}, Q128} = pqueue2:pout(Q127), - {{value, 3, 3}, Q129} = pqueue2:pout(Q128), - {{value, 3, 3}, Q130} = pqueue2:pout(Q129), - {{value, 4, 4}, Q131} = pqueue2:pout(Q130), - {{value, 4, 4}, Q132} = pqueue2:pout(Q131), - {{value, 5, 5}, Q133} = pqueue2:pout(Q132), - {{value, 5, 5}, Q134} = pqueue2:pout(Q133), - {{value, 6, 6}, Q135} = pqueue2:pout(Q134), - {{value, 6, 6}, Q136} = pqueue2:pout(Q135), - {{value, 7, 7}, Q137} = pqueue2:pout(Q136), - {{value, 7, 7}, Q138} = pqueue2:pout(Q137), - {{value, 8, 8}, Q139} = pqueue2:pout(Q138), - {{value, 8, 8}, Q140} = pqueue2:pout(Q139), - {{value, 9, 9}, Q141} = pqueue2:pout(Q140), - {{value, 9, 9}, Q142} = pqueue2:pout(Q141), - {{value, 10, 10}, Q143} = pqueue2:pout(Q142), - {{value, 10, 10}, Q144} = pqueue2:pout(Q143), - {{value, 11, 11}, Q145} = pqueue2:pout(Q144), - {{value, 11, 11}, Q146} = pqueue2:pout(Q145), - {{value, 12, 12}, Q147} = pqueue2:pout(Q146), - {{value, 12, 12}, Q148} = pqueue2:pout(Q147), - {{value, 13, 13}, Q149} = pqueue2:pout(Q148), - {{value, 13, 13}, Q150} = pqueue2:pout(Q149), - {{value, 14, 14}, Q151} = pqueue2:pout(Q150), - {{value, 14, 14}, Q152} = pqueue2:pout(Q151), - {{value, 15, 15}, Q153} = pqueue2:pout(Q152), - {{value, 15, 15}, Q154} = pqueue2:pout(Q153), - {{value, 16, 16}, Q155} = pqueue2:pout(Q154), - {{value, 16, 16}, Q156} = pqueue2:pout(Q155), - {{value, 17, 17}, Q157} = pqueue2:pout(Q156), - {{value, 17, 17}, Q158} = pqueue2:pout(Q157), - {{value, 18, 18}, Q159} = pqueue2:pout(Q158), - {{value, 18, 18}, Q160} = pqueue2:pout(Q159), - {{value, 19, 19}, Q161} = pqueue2:pout(Q160), - {{value, 19, 19}, Q162} = pqueue2:pout(Q161), - {{value, 20, 20}, Q163} = pqueue2:pout(Q162), - {{value, 20, 20}, Q164} = pqueue2:pout(Q163), - true = pqueue2:is_empty(Q164), - {empty, Q165} = pqueue2:pout(Q164), - true = pqueue2:is_empty(Q165), - % test case 1, based on proper testing - C1V0 = pqueue2:in(-18, pqueue2:new()), - C1V1 = pqueue2:in(9, C1V0), - C1V2 = pqueue2:in(-10, -4, C1V1), - C1V3 = pqueue2:in(-29, C1V2), - C1V4 = pqueue2:in(11, C1V3), - 5 = pqueue2:len(C1V4), - [-10, -18, 9, -29, 11] = pqueue2:to_list(C1V4), - % test case 2, based on proper testing - C2V0 = pqueue2:in(-4, -15, pqueue2:new()), - C2V1 = pqueue2:in(13, C2V0), - C2V2 = pqueue2:in(2, C2V1), - [-4, 13, 2] = to_list(C2V2), - ok. - -%%%------------------------------------------------------------------------ -%%% Private functions -%%%------------------------------------------------------------------------ - -merge(empty, empty) -> - empty; -merge(empty, {_, _, _, _, _} = H) -> - H; -merge({_, _, _, _, _} = H, empty) -> - H; -merge({P1, HL1, HR1, T, D}, {P2, _, _, _, _} = H2) when P1 < P2 -> - {P1, HL1, merge(HR1, H2), T, D}; -merge({P1, _, _, _, _} = H1, {P2, HL2, HR2, T, D}) when P1 > P2 -> - {P2, HL2, merge(H1, HR2), T, D}; -merge({P, HL1, HR1, element, Value1}, {P, HL2, HR2, element, Value2}) -> - {P, merge(HL1, HR1), merge(HL2, HR2), queue, - queue:from_list([Value2, Value1])}; -merge({P, HL1, HR1, queue, Queue}, {P, HL2, HR2, element, Value}) -> - {P, merge(HL1, HR1), merge(HL2, HR2), queue, queue:in(Value, Queue)}; -merge({P, HL1, HR1, element, Value}, {P, HL2, HR2, queue, Queue}) -> - {P, merge(HL1, HR1), merge(HL2, HR2), queue, queue:in(Value, Queue)}. - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - --include("pqueue_test.hrl"). - -module_test_() -> - {timeout, ?TEST_TIMEOUT, [ - {"internal tests", ?_assertOk(test())} - ]}. - -long_test_() -> - test_condition([ - {"proper tests", ?_assert(pqueue_proper:qc_pq2())} - ], ?CLOUDI_LONG_TEST_TIMEOUT). - --endif. - diff --git a/aoc2023/build/packages/pqueue/src/pqueue3.erl b/aoc2023/build/packages/pqueue/src/pqueue3.erl deleted file mode 100644 index 03b370a..0000000 --- a/aoc2023/build/packages/pqueue/src/pqueue3.erl +++ /dev/null @@ -1,404 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% @doc -%%% ==A Large Priority Queue.== -%%% This priority queue implementation depends on layered tuples, so that tuple -%%% access times can be exploited for quick in/out priority queue operations -%%% when using 64 or more total priorities. This implementation was created -%%% to avoid the slowness within the priority queue used by -%%% both RabbitMQ and Riak -%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -%%% @end -%%% -%%% MIT License -%%% -%%% Copyright (c) 2011-2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%% @author Michael Truog -%%% @copyright 2011-2020 Michael Truog -%%% @version 2.0.1 {@date} {@time} -%%%------------------------------------------------------------------------ - --module(pqueue3). --author('mjtruog at protonmail dot com'). - -%% external interface --export([in/2, % O(1) - in/3, % O(1) - is_empty/1, % O(1) - is_queue/1, % O(1) - len/1, % O(N) - new/0, % O(1) - new/1, % O(1) - out/1, % O(1) amortized, O(N) worst case - out/2, % O(1) amortized, O(N) worst case - pout/1, % O(1) amortized, O(N) worst case - to_list/1]). % O(N) - -%%%------------------------------------------------------------------------ -%%% External interface functions -%%%------------------------------------------------------------------------ - --type pqueue3() :: {integer(), integer(), empty | integer(), tuple()}. --type pqueue3_empty() :: {integer(), integer(), empty, tuple()}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of the 0 priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), pqueue3()) -> pqueue3(). - -in(Value, Q) -> - in(Value, 0, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of a specific priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(term(), integer(), pqueue3()) -> pqueue3(). - -in(_, P, {Size, Offset, _, _}) - when (P + Offset) < 0; (P + Offset) > Size -> - erlang:exit(badarg); -in(Value, P, {Size, Offset, empty, Bins}) -> - PriorityIndex = P + Offset, - {Size, Offset, PriorityIndex, - in_queue(layer_indexes(Size, PriorityIndex), Value, Bins)}; -in(Value, P, {Size, Offset, I, Bins}) - when (P + Offset) < I -> - PriorityIndex = P + Offset, - {Size, Offset, PriorityIndex, - in_queue(layer_indexes(Size, PriorityIndex), Value, Bins)}; -in(Value, P, {Size, Offset, I, Bins}) -> - {Size, Offset, I, - in_queue(layer_indexes(Size, P + Offset), Value, Bins)}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue is empty.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_empty(pqueue3()) -> 'true' | 'false'. - -is_empty({_, _, empty, _}) -> - true; -is_empty({_, _, _, _} = Q) -> - case out(Q) of - {empty, _} -> - true; - {{value, _}, _} -> - false - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue type is as expected.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_queue(pqueue3()) -> 'true' | 'false'. - -is_queue({Size, Offset, I, Bins}) - when is_integer(Size), is_integer(Offset), is_tuple(Bins) -> - (I =:= empty) or is_integer(I); -is_queue(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Determine the length of a priority queue.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec len(pqueue3()) -> non_neg_integer(). - -len(Q) -> - len(0, out(Q)). -len(I, {empty, _}) -> - I; -len(I, {{value, _}, Q}) -> - len(I + 1, out(Q)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec new() -> pqueue3_empty(). - -new() -> - new([]). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue with customization options.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec new(list({atom(), term()})) -> pqueue3(). - -new(Options) -> - Size = proplists:get_value(priorities, Options, 256), - MiddleZero = proplists:get_value(middle_priority_zero, Options, true), - Offset = if - MiddleZero =:= true -> - erlang:round((Size / 2) + 0.5) - 1; - true -> - 0 - end, - {Size, Offset, empty, create(layer_sizes(Size))}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(pqueue3()) -> - {{'value', term()}, pqueue3()} | {'empty', pqueue3()}. - -out({_, _, empty, _} = Q) -> - {empty, Q}; -out({Size, Offset, I, Bins}) -> - {Result, NewI, NewBins} = out_check( - I, Size, out_queue(layer_indexes(Size, I), Bins) - ), - {Result, {Size, Offset, NewI, NewBins}}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item of a specific priority from the head of the queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(integer(), pqueue3()) -> - {{'value', term()}, pqueue3()} | {'empty', pqueue3()}. - -out(P, {Size, Offset, _, _}) - when (P + Offset) < 0; (P + Offset) > Size -> - erlang:exit(badarg); -out(_, {_, _, empty, _} = Q) -> - {empty, Q}; -out(P, {Size, Offset, I, Bins}) -> - {Result, NewBins} = out_queue(layer_indexes(Size, P + Offset), Bins), - {Result, {Size, Offset, I, NewBins}}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% Includes the priority in the return value. -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec pout(pqueue3()) -> - {{'value', term(), integer()}, pqueue3()} | {'empty', pqueue3()}. - -pout({_, _, empty, _} = Q) -> - {empty, Q}; -pout({Size, Offset, I, Bins}) -> - {Result, NewI, NewBins} = pout_check( - I, Size, Offset, out_queue(layer_indexes(Size, I), Bins) - ), - {Result, {Size, Offset, NewI, NewBins}}. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec to_list(pqueue3()) -> list(term()). - -to_list(Q) -> - to_list([], out(Q)). -to_list(L, {empty, _}) -> - lists:reverse(L); -to_list(L, {{value, Value}, Q}) -> - to_list([Value | L], out(Q)). - -%%%------------------------------------------------------------------------ -%%% Private functions -%%%------------------------------------------------------------------------ - -create([]) -> - queue:new(); - -create([I | Is]) -> - erlang:make_tuple(I + 1, create(Is)). - -in_queue({I1}, Value, Bins1) -> - erlang:setelement(I1, Bins1, queue:in(Value, erlang:element(I1, Bins1))); - -in_queue({I1, I2}, Value, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, queue:in(Value, erlang:element(I2, Bins2)))); - -in_queue({I1, I2, I3}, Value, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - Bins3 = erlang:element(I2, Bins2), - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, - erlang:setelement(I3, Bins3, queue:in(Value, erlang:element(I3, Bins3))))); - -in_queue({I1, I2, I3, I4}, Value, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - Bins3 = erlang:element(I2, Bins2), - Bins4 = erlang:element(I3, Bins3), - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, - erlang:setelement(I3, Bins3, - erlang:setelement(I4, Bins4, queue:in(Value, erlang:element(I4, Bins4)))))). - -pout_check(Size, Size, _, {empty, Bins}) -> - {empty, empty, Bins}; -pout_check(I, _, Offset, {{value, Value}, Bins}) -> - {{value, Value, I - Offset}, I, Bins}; -pout_check(I, Size, Offset, {empty, Bins}) -> - NewI = I + 1, - pout_check(NewI, Size, Offset, out_queue(layer_indexes(Size, NewI), Bins)). - -out_check(Size, Size, {empty, Bins}) -> - {empty, empty, Bins}; -out_check(I, _, {{value, _} = Result, Bins}) -> - {Result, I, Bins}; -out_check(I, Size, {empty, Bins}) -> - NewI = I + 1, - out_check(NewI, Size, out_queue(layer_indexes(Size, NewI), Bins)). - -out_queue({I1}, Bins1) -> - {Result, NewQueue} = queue:out(erlang:element(I1, Bins1)), - {Result, - erlang:setelement(I1, Bins1, NewQueue)}; - -out_queue({I1, I2}, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - {Result, NewQueue} = queue:out(erlang:element(I2, Bins2)), - {Result, - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, NewQueue))}; - -out_queue({I1, I2, I3}, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - Bins3 = erlang:element(I2, Bins2), - {Result, NewQueue} = queue:out(erlang:element(I3, Bins3)), - {Result, - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, - erlang:setelement(I3, Bins3, NewQueue)))}; - -out_queue({I1, I2, I3, I4}, Bins1) -> - Bins2 = erlang:element(I1, Bins1), - Bins3 = erlang:element(I2, Bins2), - Bins4 = erlang:element(I3, Bins3), - {Result, NewQueue} = queue:out(erlang:element(I4, Bins4)), - {Result, - erlang:setelement(I1, Bins1, - erlang:setelement(I2, Bins2, - erlang:setelement(I3, Bins3, - erlang:setelement(I4, Bins4, NewQueue))))}. - -layer_indexes(Size, PriorityIndex) -> - if - Size =< 127 -> - {PriorityIndex + 1}; - Size =< 255 -> - <> = <>, - {I1 + 1, I2 + 1}; - Size =< 511 -> - <> = <>, - {I1 + 1, I2 + 1}; - Size =< 1023 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 2047 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 4095 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 8191 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 16383 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1}; - Size =< 32767 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1, I4 + 1}; - Size =< 65535 -> - <> = <>, - {I1 + 1, I2 + 1, I3 + 1, I4 + 1} - end. - -layer_sizes(Size) -> - if - Size =< 127 -> - <> = <<127:7>>, - [I1]; - Size =< 255 -> - <> = <<255:8>>, - [I1, I2]; - Size =< 511 -> - <> = <<511:9>>, - [I1, I2]; - Size =< 1023 -> - <> = <<1023:10>>, - [I1, I2, I3]; - Size =< 2047 -> - <> = <<2047:11>>, - [I1, I2, I3]; - Size =< 4095 -> - <> = <<4095:12>>, - [I1, I2, I3]; - Size =< 8191 -> - <> = <<8191:13>>, - [I1, I2, I3]; - Size =< 16383 -> - <> = <<16383:14>>, - [I1, I2, I3]; - Size =< 32767 -> - <> = <<32767:15>>, - [I1, I2, I3, I4]; - Size =< 65535 -> - <> = <<65535:16>>, - [I1, I2, I3, I4] - end. - diff --git a/aoc2023/build/packages/pqueue/src/pqueue4.erl b/aoc2023/build/packages/pqueue/src/pqueue4.erl deleted file mode 100644 index 30b188d..0000000 --- a/aoc2023/build/packages/pqueue/src/pqueue4.erl +++ /dev/null @@ -1,11662 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% @doc -%%% ==Static Priority Queue.== -%%% This priority queue implementation depends on a static number of priorities -%%% (-128 (high) to 128 (low)) so that tuple access times can be exploited for -%%% quick in/out priority queue operations. This implementation was created to -%%% avoid the slowness within the priority queue used by both RabbitMQ and Riak -%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl). -%%% @end -%%% -%%% MIT License -%%% -%%% Copyright (c) 2011-2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%% -%%% queue_remove_unique/2 is based on queue:filter/2 -%%% which is under the Apache License 2.0: -%%% -%%% Copyright Ericsson AB 1996-2016. All Rights Reserved. -%%% -%%% Licensed under the Apache License, Version 2.0 (the "License"); -%%% you may not use this file except in compliance with the License. -%%% You may obtain a copy of the License at -%%% -%%% http://www.apache.org/licenses/LICENSE-2.0 -%%% -%%% Unless required by applicable law or agreed to in writing, software -%%% distributed under the License is distributed on an "AS IS" BASIS, -%%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%%% See the License for the specific language governing permissions and -%%% limitations under the License. -%%% -%%% @author Michael Truog -%%% @copyright 2011-2020 Michael Truog -%%% @version 2.0.1 {@date} {@time} -%%%------------------------------------------------------------------------ - --module(pqueue4). --author('mjtruog at protonmail dot com'). - -%% external interface --export([filter/2, % O(N) - filter/3, % O(N) - in/2, % O(1) - in/3, % O(1) - is_empty/1, % O(1) - is_queue/1, % O(1) - len/1, % O(1) - new/0, % O(1) - out/1, % O(1) amortized, O(N) worst case - out/2, % O(1) amortized, O(N) worst case - pout/1, % O(1) amortized, O(N) worst case - remove_unique/2, % O(N) but smaller constant than filter/2 - remove_unique/3, % O(N) but smaller constant than filter/3 - to_list/1, % O(N) - to_plist/1, % O(N) - test/0]). - -%%%------------------------------------------------------------------------ -%%% External interface functions -%%%------------------------------------------------------------------------ - --type priority() :: -128..128. --ifdef(ERLANG_OTP_VERSION_16). --type pqueue4(_) :: - {priority() | 'empty', % current priority - non_neg_integer(), % total size - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - queue(), - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}, - {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(), - queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}}. --else. --type pqueue4(T) :: - {priority() | 'empty', % current priority - non_neg_integer(), % total size - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - queue:queue(T), - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}, - {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T), - queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}}. --endif. --type pqueue4() :: pqueue4(any()). --export_type([pqueue4/0, pqueue4/1]). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Filter the priority queue.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec filter(fun((any()) -> boolean()), pqueue4()) -> pqueue4(). - -filter(F, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) - when is_function(F, 1) -> - Q; -filter(F, {Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) - when is_function(F, 1) -> - filter_all(Pc, F, Q). - -filter_all(_, _, {_, 0, _, _, _, _, _, _, _, _, - _, _, _, _, _, _, _, _, _} = Q) -> - Q; -filter_all(128, F, Q) -> - filter_priority(128, F, Q); -filter_all(P, F, Q) when is_integer(P) -> - filter_all(P + 1, F, filter_priority(P, F, Q)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Filter a specific priority within the priority queue.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec filter(fun((any()) -> boolean()), integer(), pqueue4()) -> pqueue4(). - -filter(_, P, _) - when P < -128; P > 128 -> - erlang:exit(badarg); -filter(F, P, Q) when is_function(F, 1) -> - filter_priority(P, F, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of the 0 priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(any(), pqueue4()) -> pqueue4(). - -in(X, Q) -> - in(X, 0, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Append an item to the tail of a specific priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec in(any(), integer(), pqueue4()) -> pqueue4(). - -in(_, P, _) - when P < -128; P > 128 -> - erlang:exit(badarg); -in(X, P, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - in_higher(P, Q, X); % (in a higher priority) -in(X, P, {Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) - when P < Pc -> - in_higher(P, Q, X); % (in a higher priority) -in(X, P, Q) -> - in_lower(P, Q, X). % (in a lower priority) - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue is empty.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_empty(pqueue4()) -> 'true' | 'false'. - -is_empty({_, 0, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> - true; -is_empty({_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Check if the priority queue type is as expected.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec is_queue(pqueue4()) -> 'true' | 'false'. - -is_queue({Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) - when is_integer(Size), - tuple_size(Qn128) == 16, tuple_size(Qn112) == 16, - tuple_size(Qn96) == 16, tuple_size(Qn80) == 16, - tuple_size(Qn64) == 16, tuple_size(Qn48) == 16, - tuple_size(Qn32) == 16, tuple_size(Qn16) == 16, - tuple_size(Qp16) == 16, tuple_size(Qp32) == 16, - tuple_size(Qp48) == 16, tuple_size(Qp64) == 16, - tuple_size(Qp80) == 16, tuple_size(Qp96) == 16, - tuple_size(Qp112) == 16, tuple_size(Qp128) == 16 -> - (((Pc =:= empty) or is_integer(Pc)) and queue:is_queue(Q0)); -is_queue(_) -> - false. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Determine the length of a priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec len(pqueue4()) -> non_neg_integer(). - -len({_, Size, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> - Size. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Create a new priority queue.=== -%% O(1) -%% @end -%%------------------------------------------------------------------------- - --spec new() -> pqueue4(). - -new() -> - {empty, % current priority - 0, % current size - erlang:make_tuple(16, queue:new()), % priority [-128..-113] - erlang:make_tuple(16, queue:new()), % priority [-112.. -97] - erlang:make_tuple(16, queue:new()), % priority [ -96.. -81] - erlang:make_tuple(16, queue:new()), % priority [ -80.. -65] - erlang:make_tuple(16, queue:new()), % priority [ -64.. -49] - erlang:make_tuple(16, queue:new()), % priority [ -48.. -33] - erlang:make_tuple(16, queue:new()), % priority [ -32.. -17] - erlang:make_tuple(16, queue:new()), % priority [ -16.. -1] - queue:new(), % priority 0 (default) - erlang:make_tuple(16, queue:new()), % priority [ 1.. 16] - erlang:make_tuple(16, queue:new()), % priority [ 17.. 32] - erlang:make_tuple(16, queue:new()), % priority [ 33.. 48] - erlang:make_tuple(16, queue:new()), % priority [ 49.. 64] - erlang:make_tuple(16, queue:new()), % priority [ 65.. 80] - erlang:make_tuple(16, queue:new()), % priority [ 81.. 96] - erlang:make_tuple(16, queue:new()), % priority [ 97.. 112] - erlang:make_tuple(16, queue:new())}. % priority [ 113.. 128] - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(pqueue4()) -> - {{'value', any()}, pqueue4()} | {'empty', pqueue4()}. - -out({empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -out({Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - out_current(Pc, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item of a specific priority from the head of the queue.=== -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec out(integer(), pqueue4()) -> - {{'value', any()}, pqueue4()} | {'empty', pqueue4()}. - -out(P, _) - when P < -128; P > 128 -> - erlang:exit(badarg); -out(_, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -out(P, Q) -> - out_specific(P, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Take an item from the head of the priority queue.=== -%% Includes the priority in the return value. -%% O(1) amortized, O(N) worst case -%% @end -%%------------------------------------------------------------------------- - --spec pout(pqueue4()) -> - {{'value', any(), integer()}, pqueue4()} | {'empty', pqueue4()}. - -pout({empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - {empty, Q}; -pout({Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) -> - out_current_p(Pc, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Remove a unique value from the priority queue with a binary predicate.=== -%% O(N) but smaller constant than filter/2 -%% @end -%%------------------------------------------------------------------------- - --spec remove_unique(fun((any()) -> boolean()), pqueue4()) -> - {boolean(), pqueue4()}. - -remove_unique(F, {_, 0, _, _, _, _, _, _, _, _, - _, _, _, _, _, _, _, _, _} = Q) - when is_function(F, 1) -> - {false, Q}; -remove_unique(F, {Pc, _, _, _, _, _, _, _, _, _, - _, _, _, _, _, _, _, _, _} = Q) - when is_function(F, 1) -> - remove_unique_all(Pc, F, Q). - -remove_unique_all(128, F, Q) -> - remove_unique_p(128, F, Q); -remove_unique_all(P, F, Q) when is_integer(P) -> - case remove_unique_p(P, F, Q) of - {true, _} = Result -> - Result; - {false, Q} -> - remove_unique_all(P + 1, F, Q) - end. - -%%------------------------------------------------------------------------- -%% @doc -%% ===Remove a unique value in a specific priority within the priority queue with a binary predicate.=== -%% O(N) but smaller constant than filter/3 -%% @end -%%------------------------------------------------------------------------- - --spec remove_unique(fun((any()) -> boolean()), integer(), pqueue4()) -> - {boolean(), pqueue4()}. - -remove_unique(_, P, _) - when P < -128; P > 128 -> - erlang:exit(badarg); -remove_unique(F, P, Q) when is_function(F, 1) -> - remove_unique_p(P, F, Q). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec to_list(pqueue4()) -> list(). - -to_list(Q) -> - to_list([], out(Q)). -to_list(L, {empty, _}) -> - lists:reverse(L); -to_list(L, {{value, Value}, Q}) -> - to_list([Value | L], out(Q)). - -%%------------------------------------------------------------------------- -%% @doc -%% ===Convert the priority queue to a list with priorities.=== -%% O(N) -%% @end -%%------------------------------------------------------------------------- - --spec to_plist(pqueue4()) -> list({priority(), list()}). - -to_plist(Q) -> - to_plist([], [], undefined, pout(Q)). -to_plist(L, [], _, {empty, _}) -> - lists:reverse(L); -to_plist(L, Lp, Pc, {empty, _}) -> - lists:reverse([{Pc, lists:reverse(Lp)} | L]); -to_plist(L, Lp, Pc, {{value, Value, Pc}, Q}) -> - to_plist(L, [Value | Lp], Pc, pout(Q)); -to_plist(L, [], _, {{value, Value, Pc}, Q}) -> - to_plist(L, [Value], Pc, pout(Q)); -to_plist(L, Lp, P, {{value, Value, Pc}, Q}) -> - to_plist([{P, lists:reverse(Lp)} | L], [Value], Pc, pout(Q)). - -%%------------------------------------------------------------------------- -%% @private -%% @doc -%% ===Regression test.=== -%% @end -%%------------------------------------------------------------------------- - -test() -> - Q0 = pqueue4:new(), - true = pqueue4:is_queue(Q0), - Q1 = pqueue4:in(20, 20, Q0), - Q2 = pqueue4:in(19, 19, Q1), - Q3 = pqueue4:in(18, 18, Q2), - Q4 = pqueue4:in(17, 17, Q3), - Q5 = pqueue4:in(16, 16, Q4), - Q6 = pqueue4:in(15, 15, Q5), - Q7 = pqueue4:in(14, 14, Q6), - Q8 = pqueue4:in(13, 13, Q7), - Q9 = pqueue4:in(12, 12, Q8), - Q10 = pqueue4:in(11, 11, Q9), - Q11 = pqueue4:in(10, 10, Q10), - Q12 = pqueue4:in(9, 9, Q11), - Q13 = pqueue4:in(8, 8, Q12), - Q14 = pqueue4:in(7, 7, Q13), - Q15 = pqueue4:in(6, 6, Q14), - Q16 = pqueue4:in(5, 5, Q15), - Q17 = pqueue4:in(4, 4, Q16), - Q18 = pqueue4:in(3, 3, Q17), - Q19 = pqueue4:in(2, 2, Q18), - Q20 = pqueue4:in(1, 1, Q19), - Q21 = pqueue4:in(0, 0, Q20), - Q22 = pqueue4:in(-1, -1, Q21), - Q23 = pqueue4:in(-2, -2, Q22), - Q24 = pqueue4:in(-3, -3, Q23), - Q25 = pqueue4:in(-4, -4, Q24), - Q26 = pqueue4:in(-5, -5, Q25), - Q27 = pqueue4:in(-6, -6, Q26), - Q28 = pqueue4:in(-7, -7, Q27), - Q29 = pqueue4:in(-8, -8, Q28), - Q30 = pqueue4:in(-9, -9, Q29), - Q31 = pqueue4:in(-10, -10, Q30), - Q32 = pqueue4:in(-11, -11, Q31), - Q33 = pqueue4:in(-12, -12, Q32), - Q34 = pqueue4:in(-13, -13, Q33), - Q35 = pqueue4:in(-14, -14, Q34), - Q36 = pqueue4:in(-15, -15, Q35), - Q37 = pqueue4:in(-16, -16, Q36), - Q38 = pqueue4:in(-17, -17, Q37), - Q39 = pqueue4:in(-18, -18, Q38), - Q40 = pqueue4:in(-19, -19, Q39), - Q41 = pqueue4:in(-20, -20, Q40), - Q42 = pqueue4:in(-20, -20, Q41), - Q43 = pqueue4:in(-19, -19, Q42), - Q44 = pqueue4:in(-18, -18, Q43), - Q45 = pqueue4:in(-17, -17, Q44), - Q46 = pqueue4:in(-16, -16, Q45), - Q47 = pqueue4:in(-15, -15, Q46), - Q48 = pqueue4:in(-14, -14, Q47), - Q49 = pqueue4:in(-13, -13, Q48), - Q50 = pqueue4:in(-12, -12, Q49), - Q51 = pqueue4:in(-11, -11, Q50), - Q52 = pqueue4:in(-10, -10, Q51), - Q53 = pqueue4:in(-9, -9, Q52), - Q54 = pqueue4:in(-8, -8, Q53), - Q55 = pqueue4:in(-7, -7, Q54), - Q56 = pqueue4:in(-6, -6, Q55), - Q57 = pqueue4:in(-5, -5, Q56), - Q58 = pqueue4:in(-4, -4, Q57), - Q59 = pqueue4:in(-3, -3, Q58), - Q60 = pqueue4:in(-2, -2, Q59), - Q61 = pqueue4:in(-1, -1, Q60), - Q62 = pqueue4:in(0, 0, Q61), - Q63 = pqueue4:in(1, 1, Q62), - Q64 = pqueue4:in(2, 2, Q63), - Q65 = pqueue4:in(3, 3, Q64), - Q66 = pqueue4:in(4, 4, Q65), - Q67 = pqueue4:in(5, 5, Q66), - Q68 = pqueue4:in(6, 6, Q67), - Q69 = pqueue4:in(7, 7, Q68), - Q70 = pqueue4:in(8, 8, Q69), - Q71 = pqueue4:in(9, 9, Q70), - Q72 = pqueue4:in(10, 10, Q71), - Q73 = pqueue4:in(11, 11, Q72), - Q74 = pqueue4:in(12, 12, Q73), - Q75 = pqueue4:in(13, 13, Q74), - Q76 = pqueue4:in(14, 14, Q75), - Q77 = pqueue4:in(15, 15, Q76), - Q78 = pqueue4:in(16, 16, Q77), - Q79 = pqueue4:in(17, 17, Q78), - Q80 = pqueue4:in(18, 18, Q79), - Q81 = pqueue4:in(19, 19, Q80), - Q82 = pqueue4:in(20, 20, Q81), - true = pqueue4:is_queue(Q82), - 82 = pqueue4:len(Q82), - [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14, - -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6, - -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, - 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, - 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue4:to_list(Q82), - [{-20, [-20, -20]}, {-19, [-19, -19]}, {-18, [-18, -18]}, - {-17, [-17, -17]}, {-16, [-16, -16]}, {-15, [-15, -15]}, - {-14, [-14, -14]}, {-13, [-13, -13]}, {-12, [-12, -12]}, - {-11, [-11, -11]}, {-10, [-10, -10]}, {-9, [-9, -9]}, - {-8, [-8, -8]}, {-7, [-7, -7]}, {-6, [-6, -6]}, - {-5, [-5, -5]}, {-4, [-4, -4]}, {-3, [-3, -3]}, - {-2, [-2, -2]}, {-1, [-1, -1]}, {0, [0, 0]}, - {1, [1, 1]}, {2, [2, 2]}, {3, [3, 3]}, - {4, [4, 4]}, {5, [5, 5]}, {6, [6, 6]}, - {7, [7, 7]}, {8, [8, 8]}, {9, [9, 9]}, - {10, [10, 10]}, {11, [11, 11]}, {12, [12, 12]}, - {13, [13, 13]}, {14, [14, 14]}, {15, [15, 15]}, - {16, [16, 16]}, {17, [17, 17]}, {18, [18, 18]}, - {19, [19, 19]}, {20, [20, 20]}] = pqueue4:to_plist(Q82), - {{value, -20}, Q83} = pqueue4:out(Q82), - {{value, -20}, Q84} = pqueue4:out(Q83), - {{value, -19}, Q85} = pqueue4:out(Q84), - {{value, -19}, Q86} = pqueue4:out(Q85), - {{value, -18}, Q87} = pqueue4:out(Q86), - {{value, -18}, Q88} = pqueue4:out(Q87), - {{value, 0}, Q89} = pqueue4:out(0, Q88), - {{value, 0}, Q90} = pqueue4:out(0, Q89), - {empty, _} = pqueue4:out(0, Q90), - {{value, -17, -17}, Q91} = pqueue4:pout(Q90), - {{value, -17, -17}, Q92} = pqueue4:pout(Q91), - {{value, -16, -16}, Q93} = pqueue4:pout(Q92), - {{value, -16, -16}, Q94} = pqueue4:pout(Q93), - {{value, -15, -15}, Q95} = pqueue4:pout(Q94), - {{value, -15, -15}, Q96} = pqueue4:pout(Q95), - {{value, -14, -14}, Q97} = pqueue4:pout(Q96), - {{value, -14, -14}, Q98} = pqueue4:pout(Q97), - {{value, -13, -13}, Q99} = pqueue4:pout(Q98), - {{value, -13, -13}, Q100} = pqueue4:pout(Q99), - {{value, -12, -12}, Q101} = pqueue4:pout(Q100), - {{value, -12, -12}, Q102} = pqueue4:pout(Q101), - {{value, -11, -11}, Q103} = pqueue4:pout(Q102), - {{value, -11, -11}, Q104} = pqueue4:pout(Q103), - {{value, -10, -10}, Q105} = pqueue4:pout(Q104), - {{value, -10, -10}, Q106} = pqueue4:pout(Q105), - {{value, -9, -9}, Q107} = pqueue4:pout(Q106), - {{value, -9, -9}, Q108} = pqueue4:pout(Q107), - {{value, -8, -8}, Q109} = pqueue4:pout(Q108), - {{value, -8, -8}, Q110} = pqueue4:pout(Q109), - {{value, -7, -7}, Q111} = pqueue4:pout(Q110), - {{value, -7, -7}, Q112} = pqueue4:pout(Q111), - {{value, -6, -6}, Q113} = pqueue4:pout(Q112), - {{value, -6, -6}, Q114} = pqueue4:pout(Q113), - {{value, -5, -5}, Q115} = pqueue4:pout(Q114), - {{value, -5, -5}, Q116} = pqueue4:pout(Q115), - {{value, -4, -4}, Q117} = pqueue4:pout(Q116), - {{value, -4, -4}, Q118} = pqueue4:pout(Q117), - {{value, -3, -3}, Q119} = pqueue4:pout(Q118), - {{value, -3, -3}, Q120} = pqueue4:pout(Q119), - {{value, -2, -2}, Q121} = pqueue4:pout(Q120), - {{value, -2, -2}, Q122} = pqueue4:pout(Q121), - {{value, -1, -1}, Q123} = pqueue4:pout(Q122), - {{value, -1, -1}, Q124} = pqueue4:pout(Q123), - {{value, 1, 1}, Q125} = pqueue4:pout(Q124), - {{value, 1, 1}, Q126} = pqueue4:pout(Q125), - {{value, 2, 2}, Q127} = pqueue4:pout(Q126), - {{value, 2, 2}, Q128} = pqueue4:pout(Q127), - {{value, 3, 3}, Q129} = pqueue4:pout(Q128), - {{value, 3, 3}, Q130} = pqueue4:pout(Q129), - {{value, 4, 4}, Q131} = pqueue4:pout(Q130), - {{value, 4, 4}, Q132} = pqueue4:pout(Q131), - {{value, 5, 5}, Q133} = pqueue4:pout(Q132), - {{value, 5, 5}, Q134} = pqueue4:pout(Q133), - {{value, 6, 6}, Q135} = pqueue4:pout(Q134), - {{value, 6, 6}, Q136} = pqueue4:pout(Q135), - {{value, 7, 7}, Q137} = pqueue4:pout(Q136), - {{value, 7, 7}, Q138} = pqueue4:pout(Q137), - {{value, 8, 8}, Q139} = pqueue4:pout(Q138), - {{value, 8, 8}, Q140} = pqueue4:pout(Q139), - {{value, 9, 9}, Q141} = pqueue4:pout(Q140), - {{value, 9, 9}, Q142} = pqueue4:pout(Q141), - {{value, 10, 10}, Q143} = pqueue4:pout(Q142), - {{value, 10, 10}, Q144} = pqueue4:pout(Q143), - {{value, 11, 11}, Q145} = pqueue4:pout(Q144), - {{value, 11, 11}, Q146} = pqueue4:pout(Q145), - {{value, 12, 12}, Q147} = pqueue4:pout(Q146), - {{value, 12, 12}, Q148} = pqueue4:pout(Q147), - {{value, 13, 13}, Q149} = pqueue4:pout(Q148), - {{value, 13, 13}, Q150} = pqueue4:pout(Q149), - {{value, 14, 14}, Q151} = pqueue4:pout(Q150), - {{value, 14, 14}, Q152} = pqueue4:pout(Q151), - {{value, 15, 15}, Q153} = pqueue4:pout(Q152), - {{value, 15, 15}, Q154} = pqueue4:pout(Q153), - {{value, 16, 16}, Q155} = pqueue4:pout(Q154), - {{value, 16, 16}, Q156} = pqueue4:pout(Q155), - {{value, 17, 17}, Q157} = pqueue4:pout(Q156), - {{value, 17, 17}, Q158} = pqueue4:pout(Q157), - {{value, 18, 18}, Q159} = pqueue4:pout(Q158), - {{value, 18, 18}, Q160} = pqueue4:pout(Q159), - {{value, 19, 19}, Q161} = pqueue4:pout(Q160), - {{value, 19, 19}, Q162} = pqueue4:pout(Q161), - {{value, 20, 20}, Q163} = pqueue4:pout(Q162), - {{value, 20, 20}, Q164} = pqueue4:pout(Q163), - {{value, 20}, Q164} = pqueue4:out(Q163), - {{value, 20}, Q164} = pqueue4:out(20, Q163), - true = pqueue4:is_empty(Q164), - empty = erlang:element(1, Q164), % current priority - 0 = erlang:element(2, Q164), % size - {empty, Q164} = pqueue4:pout(Q164), - {empty, Q164} = pqueue4:out(Q164), - {empty, Q164} = pqueue4:out(20, Q164), - - Queue0 = queue:new(), - "{[],[]}" = lists:flatten(io_lib:format("~p", [Queue0])), - Queue1 = queue:in(1, Queue0), - Queue2 = queue:in(2, Queue1), - Queue3 = queue:in(3, Queue2), - {{value, 1}, _} = queue:out(Queue2), - "{[3,2],[1]}" = lists:flatten(io_lib:format("~p", [Queue3])), - {true, {[3],[1]}} = queue_remove_unique(fun(I) -> I == 2 end, {[3,2],[1]}), - Queue4 = queue:filter(fun(I) -> not (I == 2) end, Queue3), - "{[3],[1]}" = lists:flatten(io_lib:format("~p", [Queue4])), - 2 = queue:len(Queue4), - {{value, 1}, _} = queue:out(Queue4), - [1, 3] = queue:to_list(Queue4), - - Q166 = pqueue4:new(), - true = pqueue4:is_queue(Q166), - Q167 = pqueue4:in(6, 1, Q166), - Q168 = pqueue4:in(7, 1, Q167), - Q169 = pqueue4:in(8, 1, Q168), - Q170 = pqueue4:in(3, 0, Q169), - Q171 = pqueue4:in(4, 0, Q170), - Q172 = pqueue4:in(5, 0, Q171), - Q173 = pqueue4:in(0, -1, Q172), - Q174 = pqueue4:in(1, -1, Q173), - Q175 = pqueue4:in(2, -1, Q174), - [{-1, [0, 1, 2]}, {0, [3, 4, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q175), - 3 = pqueue4:len(pqueue4:filter(fun(I) -> I > 5 end, Q175)), - 3 = pqueue4:len(pqueue4:filter(fun(I) -> I < 3 end, Q175)), - 3 = pqueue4:len(pqueue4:filter(fun(I) -> (I < 1) orelse (I > 6) end, Q175)), - {true, Q176} = pqueue4:remove_unique(fun(I) -> I == 4 end, Q175), - [{-1, [0, 1, 2]}, {0, [3, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q176), - {true, Q177} = pqueue4:remove_unique(fun(I) -> I == 1 end, Q176), - [{-1, [0, 2]}, {0, [3, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q177), - {true, Q178} = pqueue4:remove_unique(fun(I) -> I == 7 end, Q177), - [{-1, [0, 2]}, {0, [3, 5]}, {1, [6, 8]}] = pqueue4:to_plist(Q178), - 6 = pqueue4:len(Q178), - {{value, 0, -1}, Q179} = pqueue4:pout(Q178), - {{value, 2}, Q180} = pqueue4:out(Q179), - {{value, 6}, Q181} = pqueue4:out(1, Q180), - {false, Q181} = pqueue4:remove_unique(fun(I) -> I == 7 end, Q181), - [{0, [3, 5]}, {1, [8]}] = pqueue4:to_plist(Q181), - {true, Q182} = pqueue4:remove_unique(fun(I) -> I == 5 end, Q181), - {true, Q183} = pqueue4:remove_unique(fun(I) -> I == 8 end, 1, Q182), - {true, Q184} = pqueue4:remove_unique(fun(I) -> I == 3 end, Q183), - {empty, Q184} = pqueue4:pout(Q184), - {empty, Q184} = pqueue4:out(Q184), - {empty, Q184} = pqueue4:out(0, Q184), - ok. - -%%%------------------------------------------------------------------------ -%%% Private functions -%%%------------------------------------------------------------------------ - -%% @hidden --define(FILTER_P_Qn128(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn112(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn96(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn80(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn64(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn48(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn32(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qn16(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp16(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp32(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp48(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp64(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}). --define(FILTER_P_Qp80(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}). --define(FILTER_P_Qp96(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}). --define(FILTER_P_Qp112(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}). --define(FILTER_P_Qp128(P, V1, V2, V3), -filter_priority(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - V2 = queue:filter(F, V1), - NewSize = Size - (queue:len(V1) - queue:len(V2)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}). - -?FILTER_P_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?FILTER_P_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?FILTER_P_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?FILTER_P_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?FILTER_P_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?FILTER_P_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?FILTER_P_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?FILTER_P_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?FILTER_P_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?FILTER_P_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?FILTER_P_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?FILTER_P_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?FILTER_P_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?FILTER_P_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?FILTER_P_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?FILTER_P_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?FILTER_P_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?FILTER_P_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?FILTER_P_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?FILTER_P_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?FILTER_P_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?FILTER_P_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?FILTER_P_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?FILTER_P_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?FILTER_P_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?FILTER_P_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?FILTER_P_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?FILTER_P_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?FILTER_P_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?FILTER_P_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?FILTER_P_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?FILTER_P_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -filter_priority(0, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - NewQ0 = queue:filter(F, Q0), - NewSize = Size - (queue:len(Q0) - queue:len(NewQ0)), - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}; -?FILTER_P_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?FILTER_P_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?FILTER_P_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?FILTER_P_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?FILTER_P_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?FILTER_P_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?FILTER_P_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?FILTER_P_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?FILTER_P_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?FILTER_P_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?FILTER_P_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?FILTER_P_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?FILTER_P_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?FILTER_P_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?FILTER_P_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?FILTER_P_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?FILTER_P_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?FILTER_P_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?FILTER_P_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?FILTER_P_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?FILTER_P_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?FILTER_P_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?FILTER_P_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?FILTER_P_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?FILTER_P_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?FILTER_P_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?FILTER_P_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?FILTER_P_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?FILTER_P_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?FILTER_P_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?FILTER_P_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -?FILTER_P_Qp128(128, - Qp128, NewQp128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, NewQp128}). - -%% @hidden --define(IN_HIGHER_Qn128(P, V), -in_higher(P, - {_, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - V, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn112(P, V), -in_higher(P, - {_, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, - V, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn96(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, - V, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn80(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, - V, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn64(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, - V, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn48(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, - V, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn32(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qn16(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp16(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp32(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp48(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V, - Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp64(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V, - Qp80, Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp80(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V, - Qp96, Qp112, Qp128}). --define(IN_HIGHER_Qp96(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V, - Qp112, Qp128}). --define(IN_HIGHER_Qp112(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V, - Qp128}). --define(IN_HIGHER_Qp128(P, V), -in_higher(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}, X) -> - {P, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V}). - -?IN_HIGHER_Qn128(-128, - {queue:in(X, Qn128), Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-127, - {Qn128, queue:in(X, Qn127), Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-126, - {Qn128, Qn127, queue:in(X, Qn126), Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-125, - {Qn128, Qn127, Qn126, queue:in(X, Qn125), Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-124, - {Qn128, Qn127, Qn126, Qn125, queue:in(X, Qn124), - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - queue:in(X, Qn123), Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, queue:in(X, Qn122), Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, queue:in(X, Qn121), Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, queue:in(X, Qn120), Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, queue:in(X, Qn119), Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, queue:in(X, Qn118), - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - queue:in(X, Qn117), Qn116, Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, queue:in(X, Qn116), Qn115, Qn114, Qn113}); -?IN_HIGHER_Qn128(-115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, queue:in(X, Qn115), Qn114, Qn113}); -?IN_HIGHER_Qn128(-114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, queue:in(X, Qn114), Qn113}); -?IN_HIGHER_Qn128(-113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, queue:in(X, Qn113)}); -?IN_HIGHER_Qn112(-112, - {queue:in(X, Qn112), Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-111, - {Qn112, queue:in(X, Qn111), Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-110, - {Qn112, Qn111, queue:in(X, Qn110), Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-109, - {Qn112, Qn111, Qn110, queue:in(X, Qn109), Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-108, - {Qn112, Qn111, Qn110, Qn109, queue:in(X, Qn108), - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - queue:in(X, Qn107), Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, queue:in(X, Qn106), Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, queue:in(X, Qn105), Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, queue:in(X, Qn104), Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, queue:in(X, Qn103), Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, queue:in(X, Qn102), - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - queue:in(X, Qn101), Qn100, Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, queue:in(X, Qn100), Qn99, Qn98, Qn97}); -?IN_HIGHER_Qn112(-99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, queue:in(X, Qn99), Qn98, Qn97}); -?IN_HIGHER_Qn112(-98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, queue:in(X, Qn98), Qn97}); -?IN_HIGHER_Qn112(-97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, queue:in(X, Qn97)}); -?IN_HIGHER_Qn96(-96, - {queue:in(X, Qn96), Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-95, - {Qn96, queue:in(X, Qn95), Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-94, - {Qn96, Qn95, queue:in(X, Qn94), Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-93, - {Qn96, Qn95, Qn94, queue:in(X, Qn93), Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-92, - {Qn96, Qn95, Qn94, Qn93, queue:in(X, Qn92), - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - queue:in(X, Qn91), Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, queue:in(X, Qn90), Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, queue:in(X, Qn89), Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, queue:in(X, Qn88), Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, queue:in(X, Qn87), Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, queue:in(X, Qn86), - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - queue:in(X, Qn85), Qn84, Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, queue:in(X, Qn84), Qn83, Qn82, Qn81}); -?IN_HIGHER_Qn96(-83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, queue:in(X, Qn83), Qn82, Qn81}); -?IN_HIGHER_Qn96(-82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, queue:in(X, Qn82), Qn81}); -?IN_HIGHER_Qn96(-81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, queue:in(X, Qn81)}); -?IN_HIGHER_Qn80(-80, - {queue:in(X, Qn80), Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-79, - {Qn80, queue:in(X, Qn79), Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-78, - {Qn80, Qn79, queue:in(X, Qn78), Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-77, - {Qn80, Qn79, Qn78, queue:in(X, Qn77), Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-76, - {Qn80, Qn79, Qn78, Qn77, queue:in(X, Qn76), - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - queue:in(X, Qn75), Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, queue:in(X, Qn74), Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, queue:in(X, Qn73), Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, queue:in(X, Qn72), Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, queue:in(X, Qn71), Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, queue:in(X, Qn70), - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - queue:in(X, Qn69), Qn68, Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, queue:in(X, Qn68), Qn67, Qn66, Qn65}); -?IN_HIGHER_Qn80(-67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, queue:in(X, Qn67), Qn66, Qn65}); -?IN_HIGHER_Qn80(-66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, queue:in(X, Qn66), Qn65}); -?IN_HIGHER_Qn80(-65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, queue:in(X, Qn65)}); -?IN_HIGHER_Qn64(-64, - {queue:in(X, Qn64), Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-63, - {Qn64, queue:in(X, Qn63), Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-62, - {Qn64, Qn63, queue:in(X, Qn62), Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-61, - {Qn64, Qn63, Qn62, queue:in(X, Qn61), Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-60, - {Qn64, Qn63, Qn62, Qn61, queue:in(X, Qn60), - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - queue:in(X, Qn59), Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, queue:in(X, Qn58), Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, queue:in(X, Qn57), Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, queue:in(X, Qn56), Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, queue:in(X, Qn55), Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, queue:in(X, Qn54), - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - queue:in(X, Qn53), Qn52, Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, queue:in(X, Qn52), Qn51, Qn50, Qn49}); -?IN_HIGHER_Qn64(-51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, queue:in(X, Qn51), Qn50, Qn49}); -?IN_HIGHER_Qn64(-50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, queue:in(X, Qn50), Qn49}); -?IN_HIGHER_Qn64(-49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, queue:in(X, Qn49)}); -?IN_HIGHER_Qn48(-48, - {queue:in(X, Qn48), Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-47, - {Qn48, queue:in(X, Qn47), Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-46, - {Qn48, Qn47, queue:in(X, Qn46), Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-45, - {Qn48, Qn47, Qn46, queue:in(X, Qn45), Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-44, - {Qn48, Qn47, Qn46, Qn45, queue:in(X, Qn44), - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - queue:in(X, Qn43), Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, queue:in(X, Qn42), Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, queue:in(X, Qn41), Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, queue:in(X, Qn40), Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, queue:in(X, Qn39), Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, queue:in(X, Qn38), - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - queue:in(X, Qn37), Qn36, Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, queue:in(X, Qn36), Qn35, Qn34, Qn33}); -?IN_HIGHER_Qn48(-35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, queue:in(X, Qn35), Qn34, Qn33}); -?IN_HIGHER_Qn48(-34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, queue:in(X, Qn34), Qn33}); -?IN_HIGHER_Qn48(-33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, queue:in(X, Qn33)}); -?IN_HIGHER_Qn32(-32, - {queue:in(X, Qn32), Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-31, - {Qn32, queue:in(X, Qn31), Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-30, - {Qn32, Qn31, queue:in(X, Qn30), Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-29, - {Qn32, Qn31, Qn30, queue:in(X, Qn29), Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-28, - {Qn32, Qn31, Qn30, Qn29, queue:in(X, Qn28), - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - queue:in(X, Qn27), Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, queue:in(X, Qn26), Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, queue:in(X, Qn25), Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, queue:in(X, Qn24), Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, queue:in(X, Qn23), Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, queue:in(X, Qn22), - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - queue:in(X, Qn21), Qn20, Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, queue:in(X, Qn20), Qn19, Qn18, Qn17}); -?IN_HIGHER_Qn32(-19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, queue:in(X, Qn19), Qn18, Qn17}); -?IN_HIGHER_Qn32(-18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, queue:in(X, Qn18), Qn17}); -?IN_HIGHER_Qn32(-17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, queue:in(X, Qn17)}); -?IN_HIGHER_Qn16(-16, - {queue:in(X, Qn16), Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-15, - {Qn16, queue:in(X, Qn15), Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-14, - {Qn16, Qn15, queue:in(X, Qn14), Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-13, - {Qn16, Qn15, Qn14, queue:in(X, Qn13), Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-12, - {Qn16, Qn15, Qn14, Qn13, queue:in(X, Qn12), - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7), Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, queue:in(X, Qn6), - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1}); -?IN_HIGHER_Qn16(-3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1}); -?IN_HIGHER_Qn16(-2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1}); -?IN_HIGHER_Qn16(-1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)}); -in_higher(0, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {0, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - queue:in(X, Q0), - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}; -?IN_HIGHER_Qp16(1, - {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(2, - {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(3, - {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(4, - {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(5, - {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - queue:in(X, Qp6), Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - queue:in(X, Qp12), Qp13, Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, queue:in(X, Qp13), Qp14, Qp15, Qp16}); -?IN_HIGHER_Qp16(14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, queue:in(X, Qp14), Qp15, Qp16}); -?IN_HIGHER_Qp16(15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, queue:in(X, Qp15), Qp16}); -?IN_HIGHER_Qp16(16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, queue:in(X, Qp16)}); -?IN_HIGHER_Qp32(17, - {queue:in(X, Qp17), Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(18, - {Qp17, queue:in(X, Qp18), Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(19, - {Qp17, Qp18, queue:in(X, Qp19), Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(20, - {Qp17, Qp18, Qp19, queue:in(X, Qp20), Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(21, - {Qp17, Qp18, Qp19, Qp20, queue:in(X, Qp21), - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - queue:in(X, Qp22), Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, queue:in(X, Qp23), Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, queue:in(X, Qp24), Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, queue:in(X, Qp25), Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, queue:in(X, Qp26), Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, queue:in(X, Qp27), - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - queue:in(X, Qp28), Qp29, Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, queue:in(X, Qp29), Qp30, Qp31, Qp32}); -?IN_HIGHER_Qp32(30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, queue:in(X, Qp30), Qp31, Qp32}); -?IN_HIGHER_Qp32(31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, queue:in(X, Qp31), Qp32}); -?IN_HIGHER_Qp32(32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, queue:in(X, Qp32)}); -?IN_HIGHER_Qp48(33, - {queue:in(X, Qp33), Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(34, - {Qp33, queue:in(X, Qp34), Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(35, - {Qp33, Qp34, queue:in(X, Qp35), Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(36, - {Qp33, Qp34, Qp35, queue:in(X, Qp36), Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(37, - {Qp33, Qp34, Qp35, Qp36, queue:in(X, Qp37), - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - queue:in(X, Qp38), Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, queue:in(X, Qp39), Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, queue:in(X, Qp40), Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, queue:in(X, Qp41), Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, queue:in(X, Qp42), Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, queue:in(X, Qp43), - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - queue:in(X, Qp44), Qp45, Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, queue:in(X, Qp45), Qp46, Qp47, Qp48}); -?IN_HIGHER_Qp48(46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, queue:in(X, Qp46), Qp47, Qp48}); -?IN_HIGHER_Qp48(47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, queue:in(X, Qp47), Qp48}); -?IN_HIGHER_Qp48(48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, queue:in(X, Qp48)}); -?IN_HIGHER_Qp64(49, - {queue:in(X, Qp49), Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(50, - {Qp49, queue:in(X, Qp50), Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(51, - {Qp49, Qp50, queue:in(X, Qp51), Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(52, - {Qp49, Qp50, Qp51, queue:in(X, Qp52), Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(53, - {Qp49, Qp50, Qp51, Qp52, queue:in(X, Qp53), - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - queue:in(X, Qp54), Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, queue:in(X, Qp55), Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, queue:in(X, Qp56), Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, queue:in(X, Qp57), Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, queue:in(X, Qp58), Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, queue:in(X, Qp59), - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - queue:in(X, Qp60), Qp61, Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, queue:in(X, Qp61), Qp62, Qp63, Qp64}); -?IN_HIGHER_Qp64(62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, queue:in(X, Qp62), Qp63, Qp64}); -?IN_HIGHER_Qp64(63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, queue:in(X, Qp63), Qp64}); -?IN_HIGHER_Qp64(64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, queue:in(X, Qp64)}); -?IN_HIGHER_Qp80(65, - {queue:in(X, Qp65), Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(66, - {Qp65, queue:in(X, Qp66), Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(67, - {Qp65, Qp66, queue:in(X, Qp67), Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(68, - {Qp65, Qp66, Qp67, queue:in(X, Qp68), Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(69, - {Qp65, Qp66, Qp67, Qp68, queue:in(X, Qp69), - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - queue:in(X, Qp70), Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, queue:in(X, Qp71), Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, queue:in(X, Qp72), Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, queue:in(X, Qp73), Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, queue:in(X, Qp74), Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, queue:in(X, Qp75), - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - queue:in(X, Qp76), Qp77, Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, queue:in(X, Qp77), Qp78, Qp79, Qp80}); -?IN_HIGHER_Qp80(78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, queue:in(X, Qp78), Qp79, Qp80}); -?IN_HIGHER_Qp80(79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, queue:in(X, Qp79), Qp80}); -?IN_HIGHER_Qp80(80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, queue:in(X, Qp80)}); -?IN_HIGHER_Qp96(81, - {queue:in(X, Qp81), Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(82, - {Qp81, queue:in(X, Qp82), Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(83, - {Qp81, Qp82, queue:in(X, Qp83), Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(84, - {Qp81, Qp82, Qp83, queue:in(X, Qp84), Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(85, - {Qp81, Qp82, Qp83, Qp84, queue:in(X, Qp85), - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - queue:in(X, Qp86), Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, queue:in(X, Qp87), Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, queue:in(X, Qp88), Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, queue:in(X, Qp89), Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, queue:in(X, Qp90), Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, queue:in(X, Qp91), - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - queue:in(X, Qp92), Qp93, Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, queue:in(X, Qp93), Qp94, Qp95, Qp96}); -?IN_HIGHER_Qp96(94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, queue:in(X, Qp94), Qp95, Qp96}); -?IN_HIGHER_Qp96(95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, queue:in(X, Qp95), Qp96}); -?IN_HIGHER_Qp96(96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, queue:in(X, Qp96)}); -?IN_HIGHER_Qp112(97, - {queue:in(X, Qp97), Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(98, - {Qp97, queue:in(X, Qp98), Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(99, - {Qp97, Qp98, queue:in(X, Qp99), Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(100, - {Qp97, Qp98, Qp99, queue:in(X, Qp100), Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(101, - {Qp97, Qp98, Qp99, Qp100, queue:in(X, Qp101), - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - queue:in(X, Qp102), Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, queue:in(X, Qp103), Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, queue:in(X, Qp104), Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, queue:in(X, Qp105), Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, queue:in(X, Qp106), Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, queue:in(X, Qp107), - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - queue:in(X, Qp108), Qp109, Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, queue:in(X, Qp109), Qp110, Qp111, Qp112}); -?IN_HIGHER_Qp112(110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, queue:in(X, Qp110), Qp111, Qp112}); -?IN_HIGHER_Qp112(111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, queue:in(X, Qp111), Qp112}); -?IN_HIGHER_Qp112(112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, queue:in(X, Qp112)}); -?IN_HIGHER_Qp128(113, - {queue:in(X, Qp113), Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(114, - {Qp113, queue:in(X, Qp114), Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(115, - {Qp113, Qp114, queue:in(X, Qp115), Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(116, - {Qp113, Qp114, Qp115, queue:in(X, Qp116), Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(117, - {Qp113, Qp114, Qp115, Qp116, queue:in(X, Qp117), - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - queue:in(X, Qp118), Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, queue:in(X, Qp119), Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, queue:in(X, Qp120), Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, queue:in(X, Qp121), Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, queue:in(X, Qp122), Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, queue:in(X, Qp123), - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - queue:in(X, Qp124), Qp125, Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, queue:in(X, Qp125), Qp126, Qp127, Qp128}); -?IN_HIGHER_Qp128(126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, queue:in(X, Qp126), Qp127, Qp128}); -?IN_HIGHER_Qp128(127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, queue:in(X, Qp127), Qp128}); -?IN_HIGHER_Qp128(128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, queue:in(X, Qp128)}). - -%% @hidden --define(IN_LOWER_Qn128(P, V), -in_lower(P, - {Pc, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - V, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn112(P, V), -in_lower(P, - {Pc, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, - V, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn96(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, - V, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn80(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, - V, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn64(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, - V, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn48(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, - V, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn32(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qn16(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp16(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp32(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp48(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V, - Qp64, Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp64(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V, - Qp80, Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp80(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V, - Qp96, Qp112, Qp128}). --define(IN_LOWER_Qp96(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V, - Qp112, Qp128}). --define(IN_LOWER_Qp112(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V, - Qp128}). --define(IN_LOWER_Qp128(P, V), -in_lower(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V}). - -?IN_LOWER_Qn128(-128, - {queue:in(X, Qn128), Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-127, - {Qn128, queue:in(X, Qn127), Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-126, - {Qn128, Qn127, queue:in(X, Qn126), Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-125, - {Qn128, Qn127, Qn126, queue:in(X, Qn125), Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-124, - {Qn128, Qn127, Qn126, Qn125, queue:in(X, Qn124), - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - queue:in(X, Qn123), Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, queue:in(X, Qn122), Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, queue:in(X, Qn121), Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, queue:in(X, Qn120), Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, queue:in(X, Qn119), Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, queue:in(X, Qn118), - Qn117, Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - queue:in(X, Qn117), Qn116, Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, queue:in(X, Qn116), Qn115, Qn114, Qn113}); -?IN_LOWER_Qn128(-115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, queue:in(X, Qn115), Qn114, Qn113}); -?IN_LOWER_Qn128(-114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, queue:in(X, Qn114), Qn113}); -?IN_LOWER_Qn128(-113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, queue:in(X, Qn113)}); -?IN_LOWER_Qn112(-112, - {queue:in(X, Qn112), Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-111, - {Qn112, queue:in(X, Qn111), Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-110, - {Qn112, Qn111, queue:in(X, Qn110), Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-109, - {Qn112, Qn111, Qn110, queue:in(X, Qn109), Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-108, - {Qn112, Qn111, Qn110, Qn109, queue:in(X, Qn108), - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - queue:in(X, Qn107), Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, queue:in(X, Qn106), Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, queue:in(X, Qn105), Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, queue:in(X, Qn104), Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, queue:in(X, Qn103), Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, queue:in(X, Qn102), - Qn101, Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - queue:in(X, Qn101), Qn100, Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, queue:in(X, Qn100), Qn99, Qn98, Qn97}); -?IN_LOWER_Qn112(-99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, queue:in(X, Qn99), Qn98, Qn97}); -?IN_LOWER_Qn112(-98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, queue:in(X, Qn98), Qn97}); -?IN_LOWER_Qn112(-97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, queue:in(X, Qn97)}); -?IN_LOWER_Qn96(-96, - {queue:in(X, Qn96), Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-95, - {Qn96, queue:in(X, Qn95), Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-94, - {Qn96, Qn95, queue:in(X, Qn94), Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-93, - {Qn96, Qn95, Qn94, queue:in(X, Qn93), Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-92, - {Qn96, Qn95, Qn94, Qn93, queue:in(X, Qn92), - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - queue:in(X, Qn91), Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, queue:in(X, Qn90), Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, queue:in(X, Qn89), Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, queue:in(X, Qn88), Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, queue:in(X, Qn87), Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, queue:in(X, Qn86), - Qn85, Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - queue:in(X, Qn85), Qn84, Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, queue:in(X, Qn84), Qn83, Qn82, Qn81}); -?IN_LOWER_Qn96(-83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, queue:in(X, Qn83), Qn82, Qn81}); -?IN_LOWER_Qn96(-82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, queue:in(X, Qn82), Qn81}); -?IN_LOWER_Qn96(-81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, queue:in(X, Qn81)}); -?IN_LOWER_Qn80(-80, - {queue:in(X, Qn80), Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-79, - {Qn80, queue:in(X, Qn79), Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-78, - {Qn80, Qn79, queue:in(X, Qn78), Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-77, - {Qn80, Qn79, Qn78, queue:in(X, Qn77), Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-76, - {Qn80, Qn79, Qn78, Qn77, queue:in(X, Qn76), - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - queue:in(X, Qn75), Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, queue:in(X, Qn74), Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, queue:in(X, Qn73), Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, queue:in(X, Qn72), Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, queue:in(X, Qn71), Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, queue:in(X, Qn70), - Qn69, Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - queue:in(X, Qn69), Qn68, Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, queue:in(X, Qn68), Qn67, Qn66, Qn65}); -?IN_LOWER_Qn80(-67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, queue:in(X, Qn67), Qn66, Qn65}); -?IN_LOWER_Qn80(-66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, queue:in(X, Qn66), Qn65}); -?IN_LOWER_Qn80(-65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, queue:in(X, Qn65)}); -?IN_LOWER_Qn64(-64, - {queue:in(X, Qn64), Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-63, - {Qn64, queue:in(X, Qn63), Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-62, - {Qn64, Qn63, queue:in(X, Qn62), Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-61, - {Qn64, Qn63, Qn62, queue:in(X, Qn61), Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-60, - {Qn64, Qn63, Qn62, Qn61, queue:in(X, Qn60), - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - queue:in(X, Qn59), Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, queue:in(X, Qn58), Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, queue:in(X, Qn57), Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, queue:in(X, Qn56), Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, queue:in(X, Qn55), Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, queue:in(X, Qn54), - Qn53, Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - queue:in(X, Qn53), Qn52, Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, queue:in(X, Qn52), Qn51, Qn50, Qn49}); -?IN_LOWER_Qn64(-51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, queue:in(X, Qn51), Qn50, Qn49}); -?IN_LOWER_Qn64(-50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, queue:in(X, Qn50), Qn49}); -?IN_LOWER_Qn64(-49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, queue:in(X, Qn49)}); -?IN_LOWER_Qn48(-48, - {queue:in(X, Qn48), Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-47, - {Qn48, queue:in(X, Qn47), Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-46, - {Qn48, Qn47, queue:in(X, Qn46), Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-45, - {Qn48, Qn47, Qn46, queue:in(X, Qn45), Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-44, - {Qn48, Qn47, Qn46, Qn45, queue:in(X, Qn44), - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - queue:in(X, Qn43), Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, queue:in(X, Qn42), Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, queue:in(X, Qn41), Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, queue:in(X, Qn40), Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, queue:in(X, Qn39), Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, queue:in(X, Qn38), - Qn37, Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - queue:in(X, Qn37), Qn36, Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, queue:in(X, Qn36), Qn35, Qn34, Qn33}); -?IN_LOWER_Qn48(-35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, queue:in(X, Qn35), Qn34, Qn33}); -?IN_LOWER_Qn48(-34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, queue:in(X, Qn34), Qn33}); -?IN_LOWER_Qn48(-33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, queue:in(X, Qn33)}); -?IN_LOWER_Qn32(-32, - {queue:in(X, Qn32), Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-31, - {Qn32, queue:in(X, Qn31), Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-30, - {Qn32, Qn31, queue:in(X, Qn30), Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-29, - {Qn32, Qn31, Qn30, queue:in(X, Qn29), Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-28, - {Qn32, Qn31, Qn30, Qn29, queue:in(X, Qn28), - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - queue:in(X, Qn27), Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, queue:in(X, Qn26), Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, queue:in(X, Qn25), Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, queue:in(X, Qn24), Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, queue:in(X, Qn23), Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, queue:in(X, Qn22), - Qn21, Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - queue:in(X, Qn21), Qn20, Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, queue:in(X, Qn20), Qn19, Qn18, Qn17}); -?IN_LOWER_Qn32(-19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, queue:in(X, Qn19), Qn18, Qn17}); -?IN_LOWER_Qn32(-18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, queue:in(X, Qn18), Qn17}); -?IN_LOWER_Qn32(-17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, queue:in(X, Qn17)}); -?IN_LOWER_Qn16(-16, - {queue:in(X, Qn16), Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-15, - {Qn16, queue:in(X, Qn15), Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-14, - {Qn16, Qn15, queue:in(X, Qn14), Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-13, - {Qn16, Qn15, Qn14, queue:in(X, Qn13), Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-12, - {Qn16, Qn15, Qn14, Qn13, queue:in(X, Qn12), - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7), Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, queue:in(X, Qn6), - Qn5, Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1}); -?IN_LOWER_Qn16(-3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1}); -?IN_LOWER_Qn16(-2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1}); -?IN_LOWER_Qn16(-1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)}); -in_lower(0, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) -> - {Pc, - Size + 1, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - queue:in(X, Q0), - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}; -?IN_LOWER_Qp16(1, - {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(2, - {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(3, - {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(4, - {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(5, - {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - queue:in(X, Qp6), Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), - Qp12, Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - queue:in(X, Qp12), Qp13, Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, queue:in(X, Qp13), Qp14, Qp15, Qp16}); -?IN_LOWER_Qp16(14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, queue:in(X, Qp14), Qp15, Qp16}); -?IN_LOWER_Qp16(15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, queue:in(X, Qp15), Qp16}); -?IN_LOWER_Qp16(16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, queue:in(X, Qp16)}); -?IN_LOWER_Qp32(17, - {queue:in(X, Qp17), Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(18, - {Qp17, queue:in(X, Qp18), Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(19, - {Qp17, Qp18, queue:in(X, Qp19), Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(20, - {Qp17, Qp18, Qp19, queue:in(X, Qp20), Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(21, - {Qp17, Qp18, Qp19, Qp20, queue:in(X, Qp21), - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - queue:in(X, Qp22), Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, queue:in(X, Qp23), Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, queue:in(X, Qp24), Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, queue:in(X, Qp25), Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, queue:in(X, Qp26), Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, queue:in(X, Qp27), - Qp28, Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - queue:in(X, Qp28), Qp29, Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, queue:in(X, Qp29), Qp30, Qp31, Qp32}); -?IN_LOWER_Qp32(30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, queue:in(X, Qp30), Qp31, Qp32}); -?IN_LOWER_Qp32(31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, queue:in(X, Qp31), Qp32}); -?IN_LOWER_Qp32(32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, queue:in(X, Qp32)}); -?IN_LOWER_Qp48(33, - {queue:in(X, Qp33), Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(34, - {Qp33, queue:in(X, Qp34), Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(35, - {Qp33, Qp34, queue:in(X, Qp35), Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(36, - {Qp33, Qp34, Qp35, queue:in(X, Qp36), Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(37, - {Qp33, Qp34, Qp35, Qp36, queue:in(X, Qp37), - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - queue:in(X, Qp38), Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, queue:in(X, Qp39), Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, queue:in(X, Qp40), Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, queue:in(X, Qp41), Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, queue:in(X, Qp42), Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, queue:in(X, Qp43), - Qp44, Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - queue:in(X, Qp44), Qp45, Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, queue:in(X, Qp45), Qp46, Qp47, Qp48}); -?IN_LOWER_Qp48(46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, queue:in(X, Qp46), Qp47, Qp48}); -?IN_LOWER_Qp48(47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, queue:in(X, Qp47), Qp48}); -?IN_LOWER_Qp48(48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, queue:in(X, Qp48)}); -?IN_LOWER_Qp64(49, - {queue:in(X, Qp49), Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(50, - {Qp49, queue:in(X, Qp50), Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(51, - {Qp49, Qp50, queue:in(X, Qp51), Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(52, - {Qp49, Qp50, Qp51, queue:in(X, Qp52), Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(53, - {Qp49, Qp50, Qp51, Qp52, queue:in(X, Qp53), - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - queue:in(X, Qp54), Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, queue:in(X, Qp55), Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, queue:in(X, Qp56), Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, queue:in(X, Qp57), Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, queue:in(X, Qp58), Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, queue:in(X, Qp59), - Qp60, Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - queue:in(X, Qp60), Qp61, Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, queue:in(X, Qp61), Qp62, Qp63, Qp64}); -?IN_LOWER_Qp64(62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, queue:in(X, Qp62), Qp63, Qp64}); -?IN_LOWER_Qp64(63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, queue:in(X, Qp63), Qp64}); -?IN_LOWER_Qp64(64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, queue:in(X, Qp64)}); -?IN_LOWER_Qp80(65, - {queue:in(X, Qp65), Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(66, - {Qp65, queue:in(X, Qp66), Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(67, - {Qp65, Qp66, queue:in(X, Qp67), Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(68, - {Qp65, Qp66, Qp67, queue:in(X, Qp68), Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(69, - {Qp65, Qp66, Qp67, Qp68, queue:in(X, Qp69), - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - queue:in(X, Qp70), Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, queue:in(X, Qp71), Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, queue:in(X, Qp72), Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, queue:in(X, Qp73), Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, queue:in(X, Qp74), Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, queue:in(X, Qp75), - Qp76, Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - queue:in(X, Qp76), Qp77, Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, queue:in(X, Qp77), Qp78, Qp79, Qp80}); -?IN_LOWER_Qp80(78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, queue:in(X, Qp78), Qp79, Qp80}); -?IN_LOWER_Qp80(79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, queue:in(X, Qp79), Qp80}); -?IN_LOWER_Qp80(80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, queue:in(X, Qp80)}); -?IN_LOWER_Qp96(81, - {queue:in(X, Qp81), Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(82, - {Qp81, queue:in(X, Qp82), Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(83, - {Qp81, Qp82, queue:in(X, Qp83), Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(84, - {Qp81, Qp82, Qp83, queue:in(X, Qp84), Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(85, - {Qp81, Qp82, Qp83, Qp84, queue:in(X, Qp85), - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - queue:in(X, Qp86), Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, queue:in(X, Qp87), Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, queue:in(X, Qp88), Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, queue:in(X, Qp89), Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, queue:in(X, Qp90), Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, queue:in(X, Qp91), - Qp92, Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - queue:in(X, Qp92), Qp93, Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, queue:in(X, Qp93), Qp94, Qp95, Qp96}); -?IN_LOWER_Qp96(94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, queue:in(X, Qp94), Qp95, Qp96}); -?IN_LOWER_Qp96(95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, queue:in(X, Qp95), Qp96}); -?IN_LOWER_Qp96(96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, queue:in(X, Qp96)}); -?IN_LOWER_Qp112(97, - {queue:in(X, Qp97), Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(98, - {Qp97, queue:in(X, Qp98), Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(99, - {Qp97, Qp98, queue:in(X, Qp99), Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(100, - {Qp97, Qp98, Qp99, queue:in(X, Qp100), Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(101, - {Qp97, Qp98, Qp99, Qp100, queue:in(X, Qp101), - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - queue:in(X, Qp102), Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, queue:in(X, Qp103), Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, queue:in(X, Qp104), Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, queue:in(X, Qp105), Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, queue:in(X, Qp106), Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, queue:in(X, Qp107), - Qp108, Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - queue:in(X, Qp108), Qp109, Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, queue:in(X, Qp109), Qp110, Qp111, Qp112}); -?IN_LOWER_Qp112(110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, queue:in(X, Qp110), Qp111, Qp112}); -?IN_LOWER_Qp112(111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, queue:in(X, Qp111), Qp112}); -?IN_LOWER_Qp112(112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, queue:in(X, Qp112)}); -?IN_LOWER_Qp128(113, - {queue:in(X, Qp113), Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(114, - {Qp113, queue:in(X, Qp114), Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(115, - {Qp113, Qp114, queue:in(X, Qp115), Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(116, - {Qp113, Qp114, Qp115, queue:in(X, Qp116), Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(117, - {Qp113, Qp114, Qp115, Qp116, queue:in(X, Qp117), - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - queue:in(X, Qp118), Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, queue:in(X, Qp119), Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, queue:in(X, Qp120), Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, queue:in(X, Qp121), Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, queue:in(X, Qp122), Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, queue:in(X, Qp123), - Qp124, Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - queue:in(X, Qp124), Qp125, Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, queue:in(X, Qp125), Qp126, Qp127, Qp128}); -?IN_LOWER_Qp128(126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, queue:in(X, Qp126), Qp127, Qp128}); -?IN_LOWER_Qp128(127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, queue:in(X, Qp127), Qp128}); -?IN_LOWER_Qp128(128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, queue:in(X, Qp128)}). - -%% @hidden --define(OUT_CURRENT_Qn128(P, V1, V2, V3), -out_current(P, - {_, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn112(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn96(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn80(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn64(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn48(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn32(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qn16(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp16(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp32(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp48(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp64(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp80(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp96(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}} - end). --define(OUT_CURRENT_Qp112(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}} - end). --define(OUT_CURRENT_Qp128(P, V1, V2, V3), -out_current(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}} = Q) -> - {Value, V2} = queue:out(V1), - if - Value =:= empty -> - out_current(P + 1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}} - end). - -?OUT_CURRENT_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?OUT_CURRENT_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?OUT_CURRENT_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?OUT_CURRENT_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?OUT_CURRENT_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?OUT_CURRENT_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?OUT_CURRENT_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?OUT_CURRENT_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?OUT_CURRENT_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?OUT_CURRENT_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?OUT_CURRENT_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?OUT_CURRENT_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?OUT_CURRENT_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?OUT_CURRENT_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?OUT_CURRENT_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?OUT_CURRENT_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?OUT_CURRENT_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?OUT_CURRENT_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?OUT_CURRENT_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?OUT_CURRENT_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?OUT_CURRENT_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?OUT_CURRENT_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?OUT_CURRENT_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?OUT_CURRENT_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -out_current(0, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - {Value, NewQ0} = queue:out(Q0), - if - Value =:= empty -> - out_current(1, Q); - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> 0 end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end; -?OUT_CURRENT_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?OUT_CURRENT_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?OUT_CURRENT_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?OUT_CURRENT_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?OUT_CURRENT_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?OUT_CURRENT_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?OUT_CURRENT_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?OUT_CURRENT_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?OUT_CURRENT_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?OUT_CURRENT_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?OUT_CURRENT_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?OUT_CURRENT_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?OUT_CURRENT_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?OUT_CURRENT_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?OUT_CURRENT_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?OUT_CURRENT_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?OUT_CURRENT_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?OUT_CURRENT_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?OUT_CURRENT_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?OUT_CURRENT_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?OUT_CURRENT_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?OUT_CURRENT_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?OUT_CURRENT_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -out_current(128, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - {Value, NewQp128} = queue:out(Qp128), - if - Value =:= empty -> - {empty, - {empty, - 0, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}}; - true -> - NewSize = Size - 1, - {Value, - {if NewSize == 0 -> empty; true -> 128 end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}} - end. - -%% @hidden --define(OUT_CURRENT_P_Qn128(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn112(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn96(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn80(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn64(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn48(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn32(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qn16(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp16(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp32(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp48(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp64(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp80(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp96(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}} - end). --define(OUT_CURRENT_P_Qp112(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}} - end). --define(OUT_CURRENT_P_Qp128(P, V1, V2, V3), -out_current_p(P, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}} = Q) -> - case queue:out(V1) of - {empty, _} -> - out_current_p(P + 1, Q); - {{value, X}, V2} -> - NewSize = Size - 1, - {{value, X, P}, - {if NewSize == 0 -> empty; true -> P end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}} - end). - -?OUT_CURRENT_P_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?OUT_CURRENT_P_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?OUT_CURRENT_P_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?OUT_CURRENT_P_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?OUT_CURRENT_P_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?OUT_CURRENT_P_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?OUT_CURRENT_P_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?OUT_CURRENT_P_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?OUT_CURRENT_P_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?OUT_CURRENT_P_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?OUT_CURRENT_P_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?OUT_CURRENT_P_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?OUT_CURRENT_P_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?OUT_CURRENT_P_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?OUT_CURRENT_P_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?OUT_CURRENT_P_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?OUT_CURRENT_P_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?OUT_CURRENT_P_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?OUT_CURRENT_P_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?OUT_CURRENT_P_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?OUT_CURRENT_P_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?OUT_CURRENT_P_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?OUT_CURRENT_P_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?OUT_CURRENT_P_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -out_current_p(0, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) -> - case queue:out(Q0) of - {empty, _} -> - out_current_p(1, Q); - {{value, X}, NewQ0} -> - NewSize = Size - 1, - {{value, X, 0}, - {if NewSize == 0 -> empty; true -> 0 end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}} - end; -?OUT_CURRENT_P_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?OUT_CURRENT_P_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?OUT_CURRENT_P_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?OUT_CURRENT_P_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?OUT_CURRENT_P_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?OUT_CURRENT_P_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?OUT_CURRENT_P_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?OUT_CURRENT_P_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?OUT_CURRENT_P_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?OUT_CURRENT_P_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?OUT_CURRENT_P_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?OUT_CURRENT_P_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?OUT_CURRENT_P_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?OUT_CURRENT_P_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?OUT_CURRENT_P_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?OUT_CURRENT_P_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?OUT_CURRENT_P_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?OUT_CURRENT_P_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?OUT_CURRENT_P_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?OUT_CURRENT_P_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?OUT_CURRENT_P_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?OUT_CURRENT_P_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?OUT_CURRENT_P_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -out_current_p(128, - {_, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - case queue:out(Qp128) of - {empty, _} -> - {empty, - {empty, - 0, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}}; - {{value, X}, NewQp128} -> - NewSize = Size - 1, - {{value, X, 128}, - {if NewSize == 0 -> empty; true -> 128 end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}} - end. - -%% @hidden --define(OUT_SPECIFIC_Qn128(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn112(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn96(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn80(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn64(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn48(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn32(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qn16(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp16(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp32(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp48(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp64(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp80(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp96(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}}). --define(OUT_SPECIFIC_Qp112(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}}). --define(OUT_SPECIFIC_Qp128(P, V1, V2, V3), -out_specific(P, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - {Value, V2} = queue:out(V1), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}}). - -?OUT_SPECIFIC_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?OUT_SPECIFIC_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?OUT_SPECIFIC_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?OUT_SPECIFIC_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?OUT_SPECIFIC_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?OUT_SPECIFIC_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?OUT_SPECIFIC_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?OUT_SPECIFIC_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?OUT_SPECIFIC_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?OUT_SPECIFIC_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?OUT_SPECIFIC_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?OUT_SPECIFIC_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?OUT_SPECIFIC_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?OUT_SPECIFIC_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?OUT_SPECIFIC_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?OUT_SPECIFIC_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?OUT_SPECIFIC_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?OUT_SPECIFIC_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?OUT_SPECIFIC_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?OUT_SPECIFIC_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?OUT_SPECIFIC_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?OUT_SPECIFIC_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?OUT_SPECIFIC_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?OUT_SPECIFIC_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -out_specific(0, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, NewQ0} = queue:out(Q0), - NewSize = if Value =/= empty -> Size - 1; true -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}; -?OUT_SPECIFIC_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?OUT_SPECIFIC_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?OUT_SPECIFIC_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?OUT_SPECIFIC_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?OUT_SPECIFIC_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?OUT_SPECIFIC_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?OUT_SPECIFIC_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?OUT_SPECIFIC_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?OUT_SPECIFIC_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?OUT_SPECIFIC_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?OUT_SPECIFIC_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?OUT_SPECIFIC_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?OUT_SPECIFIC_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?OUT_SPECIFIC_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?OUT_SPECIFIC_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?OUT_SPECIFIC_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?OUT_SPECIFIC_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?OUT_SPECIFIC_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?OUT_SPECIFIC_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?OUT_SPECIFIC_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?OUT_SPECIFIC_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?OUT_SPECIFIC_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?OUT_SPECIFIC_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -?OUT_SPECIFIC_Qp128(128, - Qp128, NewQp128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, NewQp128}). - -%% @hidden --define(REMOVE_UNIQ_P_Qn128(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121, - Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113}, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - V3, - Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn112(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, - {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105, - Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97}, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, - V3, - Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn96(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, - {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89, - Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81}, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, - V3, - Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn80(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, - {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73, - Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65}, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, - V3, - Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn64(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, - {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57, - Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49}, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, - V3, - Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn48(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, - {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41, - Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33}, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, - V3, - Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn32(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25, - Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17}, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, - V3, - Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qn16(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9, - Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1}, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, - V3, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp16(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8, - Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16}, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - V3, - Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp32(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24, - Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32}, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, - V3, - Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp48(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40, - Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48}, - Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, - V3, - Qp64, Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp64(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56, - Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64}, - Qp80, Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, - V3, - Qp80, Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp80(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72, - Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80}, - Qp96, Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, - V3, - Qp96, Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp96(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88, - Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96}, - Qp112, Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, - V3, - Qp112, Qp128}}). --define(REMOVE_UNIQ_P_Qp112(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104, - Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112}, - Qp128}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, - V3, - Qp128}}). --define(REMOVE_UNIQ_P_Qp128(P, V1, V2, V3), -remove_unique_p(P, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120, - Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) -> - {Value, V2} = queue_remove_unique(F, V1), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, - V3}}). - -?REMOVE_UNIQ_P_Qn128(-128, - Qn128, NewQn128, - {NewQn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-127, - Qn127, NewQn127, - {Qn128, NewQn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-126, - Qn126, NewQn126, - {Qn128, Qn127, NewQn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-125, - Qn125, NewQn125, - {Qn128, Qn127, Qn126, NewQn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-124, - Qn124, NewQn124, - {Qn128, Qn127, Qn126, Qn125, NewQn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-123, - Qn123, NewQn123, - {Qn128, Qn127, Qn126, Qn125, Qn124, - NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-122, - Qn122, NewQn122, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-121, - Qn121, NewQn121, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-120, - Qn120, NewQn120, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-119, - Qn119, NewQn119, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-118, - Qn118, NewQn118, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118, - Qn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-117, - Qn117, NewQn117, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - NewQn117, Qn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-116, - Qn116, NewQn116, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, NewQn116, Qn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-115, - Qn115, NewQn115, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, NewQn115, Qn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-114, - Qn114, NewQn114, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, NewQn114, Qn113}); -?REMOVE_UNIQ_P_Qn128(-113, - Qn113, NewQn113, - {Qn128, Qn127, Qn126, Qn125, Qn124, - Qn123, Qn122, Qn121, Qn120, Qn119, Qn118, - Qn117, Qn116, Qn115, Qn114, NewQn113}); -?REMOVE_UNIQ_P_Qn112(-112, - Qn112, NewQn112, - {NewQn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-111, - Qn111, NewQn111, - {Qn112, NewQn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-110, - Qn110, NewQn110, - {Qn112, Qn111, NewQn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-109, - Qn109, NewQn109, - {Qn112, Qn111, Qn110, NewQn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-108, - Qn108, NewQn108, - {Qn112, Qn111, Qn110, Qn109, NewQn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-107, - Qn107, NewQn107, - {Qn112, Qn111, Qn110, Qn109, Qn108, - NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-106, - Qn106, NewQn106, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-105, - Qn105, NewQn105, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-104, - Qn104, NewQn104, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-103, - Qn103, NewQn103, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-102, - Qn102, NewQn102, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102, - Qn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-101, - Qn101, NewQn101, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - NewQn101, Qn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-100, - Qn100, NewQn100, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, NewQn100, Qn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-99, - Qn99, NewQn99, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, NewQn99, Qn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-98, - Qn98, NewQn98, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, NewQn98, Qn97}); -?REMOVE_UNIQ_P_Qn112(-97, - Qn97, NewQn97, - {Qn112, Qn111, Qn110, Qn109, Qn108, - Qn107, Qn106, Qn105, Qn104, Qn103, Qn102, - Qn101, Qn100, Qn99, Qn98, NewQn97}); -?REMOVE_UNIQ_P_Qn96(-96, - Qn96, NewQn96, - {NewQn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-95, - Qn95, NewQn95, - {Qn96, NewQn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-94, - Qn94, NewQn94, - {Qn96, Qn95, NewQn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-93, - Qn93, NewQn93, - {Qn96, Qn95, Qn94, NewQn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-92, - Qn92, NewQn92, - {Qn96, Qn95, Qn94, Qn93, NewQn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-91, - Qn91, NewQn91, - {Qn96, Qn95, Qn94, Qn93, Qn92, - NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-90, - Qn90, NewQn90, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-89, - Qn89, NewQn89, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-88, - Qn88, NewQn88, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-87, - Qn87, NewQn87, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-86, - Qn86, NewQn86, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86, - Qn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-85, - Qn85, NewQn85, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - NewQn85, Qn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-84, - Qn84, NewQn84, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, NewQn84, Qn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-83, - Qn83, NewQn83, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, NewQn83, Qn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-82, - Qn82, NewQn82, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, NewQn82, Qn81}); -?REMOVE_UNIQ_P_Qn96(-81, - Qn81, NewQn81, - {Qn96, Qn95, Qn94, Qn93, Qn92, - Qn91, Qn90, Qn89, Qn88, Qn87, Qn86, - Qn85, Qn84, Qn83, Qn82, NewQn81}); -?REMOVE_UNIQ_P_Qn80(-80, - Qn80, NewQn80, - {NewQn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-79, - Qn79, NewQn79, - {Qn80, NewQn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-78, - Qn78, NewQn78, - {Qn80, Qn79, NewQn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-77, - Qn77, NewQn77, - {Qn80, Qn79, Qn78, NewQn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-76, - Qn76, NewQn76, - {Qn80, Qn79, Qn78, Qn77, NewQn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-75, - Qn75, NewQn75, - {Qn80, Qn79, Qn78, Qn77, Qn76, - NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-74, - Qn74, NewQn74, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-73, - Qn73, NewQn73, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-72, - Qn72, NewQn72, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-71, - Qn71, NewQn71, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-70, - Qn70, NewQn70, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70, - Qn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-69, - Qn69, NewQn69, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - NewQn69, Qn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-68, - Qn68, NewQn68, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, NewQn68, Qn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-67, - Qn67, NewQn67, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, NewQn67, Qn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-66, - Qn66, NewQn66, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, NewQn66, Qn65}); -?REMOVE_UNIQ_P_Qn80(-65, - Qn65, NewQn65, - {Qn80, Qn79, Qn78, Qn77, Qn76, - Qn75, Qn74, Qn73, Qn72, Qn71, Qn70, - Qn69, Qn68, Qn67, Qn66, NewQn65}); -?REMOVE_UNIQ_P_Qn64(-64, - Qn64, NewQn64, - {NewQn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-63, - Qn63, NewQn63, - {Qn64, NewQn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-62, - Qn62, NewQn62, - {Qn64, Qn63, NewQn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-61, - Qn61, NewQn61, - {Qn64, Qn63, Qn62, NewQn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-60, - Qn60, NewQn60, - {Qn64, Qn63, Qn62, Qn61, NewQn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-59, - Qn59, NewQn59, - {Qn64, Qn63, Qn62, Qn61, Qn60, - NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-58, - Qn58, NewQn58, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-57, - Qn57, NewQn57, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-56, - Qn56, NewQn56, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-55, - Qn55, NewQn55, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-54, - Qn54, NewQn54, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54, - Qn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-53, - Qn53, NewQn53, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - NewQn53, Qn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-52, - Qn52, NewQn52, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, NewQn52, Qn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-51, - Qn51, NewQn51, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, NewQn51, Qn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-50, - Qn50, NewQn50, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, NewQn50, Qn49}); -?REMOVE_UNIQ_P_Qn64(-49, - Qn49, NewQn49, - {Qn64, Qn63, Qn62, Qn61, Qn60, - Qn59, Qn58, Qn57, Qn56, Qn55, Qn54, - Qn53, Qn52, Qn51, Qn50, NewQn49}); -?REMOVE_UNIQ_P_Qn48(-48, - Qn48, NewQn48, - {NewQn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-47, - Qn47, NewQn47, - {Qn48, NewQn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-46, - Qn46, NewQn46, - {Qn48, Qn47, NewQn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-45, - Qn45, NewQn45, - {Qn48, Qn47, Qn46, NewQn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-44, - Qn44, NewQn44, - {Qn48, Qn47, Qn46, Qn45, NewQn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-43, - Qn43, NewQn43, - {Qn48, Qn47, Qn46, Qn45, Qn44, - NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-42, - Qn42, NewQn42, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-41, - Qn41, NewQn41, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-40, - Qn40, NewQn40, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-39, - Qn39, NewQn39, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-38, - Qn38, NewQn38, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38, - Qn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-37, - Qn37, NewQn37, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - NewQn37, Qn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-36, - Qn36, NewQn36, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, NewQn36, Qn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-35, - Qn35, NewQn35, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, NewQn35, Qn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-34, - Qn34, NewQn34, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, NewQn34, Qn33}); -?REMOVE_UNIQ_P_Qn48(-33, - Qn33, NewQn33, - {Qn48, Qn47, Qn46, Qn45, Qn44, - Qn43, Qn42, Qn41, Qn40, Qn39, Qn38, - Qn37, Qn36, Qn35, Qn34, NewQn33}); -?REMOVE_UNIQ_P_Qn32(-32, - Qn32, NewQn32, - {NewQn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-31, - Qn31, NewQn31, - {Qn32, NewQn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-30, - Qn30, NewQn30, - {Qn32, Qn31, NewQn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-29, - Qn29, NewQn29, - {Qn32, Qn31, Qn30, NewQn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-28, - Qn28, NewQn28, - {Qn32, Qn31, Qn30, Qn29, NewQn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-27, - Qn27, NewQn27, - {Qn32, Qn31, Qn30, Qn29, Qn28, - NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-26, - Qn26, NewQn26, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-25, - Qn25, NewQn25, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-24, - Qn24, NewQn24, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-23, - Qn23, NewQn23, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-22, - Qn22, NewQn22, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22, - Qn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-21, - Qn21, NewQn21, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - NewQn21, Qn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-20, - Qn20, NewQn20, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, NewQn20, Qn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-19, - Qn19, NewQn19, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, NewQn19, Qn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-18, - Qn18, NewQn18, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, NewQn18, Qn17}); -?REMOVE_UNIQ_P_Qn32(-17, - Qn17, NewQn17, - {Qn32, Qn31, Qn30, Qn29, Qn28, - Qn27, Qn26, Qn25, Qn24, Qn23, Qn22, - Qn21, Qn20, Qn19, Qn18, NewQn17}); -?REMOVE_UNIQ_P_Qn16(-16, - Qn16, NewQn16, - {NewQn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-15, - Qn15, NewQn15, - {Qn16, NewQn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-14, - Qn14, NewQn14, - {Qn16, Qn15, NewQn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-13, - Qn13, NewQn13, - {Qn16, Qn15, Qn14, NewQn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-12, - Qn12, NewQn12, - {Qn16, Qn15, Qn14, Qn13, NewQn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-11, - Qn11, NewQn11, - {Qn16, Qn15, Qn14, Qn13, Qn12, - NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-10, - Qn10, NewQn10, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-9, - Qn9, NewQn9, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-8, - Qn8, NewQn8, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-7, - Qn7, NewQn7, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-6, - Qn6, NewQn6, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6, - Qn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-5, - Qn5, NewQn5, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - NewQn5, Qn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-4, - Qn4, NewQn4, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, NewQn4, Qn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-3, - Qn3, NewQn3, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, NewQn3, Qn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-2, - Qn2, NewQn2, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, NewQn2, Qn1}); -?REMOVE_UNIQ_P_Qn16(-1, - Qn1, NewQn1, - {Qn16, Qn15, Qn14, Qn13, Qn12, - Qn11, Qn10, Qn9, Qn8, Qn7, Qn6, - Qn5, Qn4, Qn3, Qn2, NewQn1}); -remove_unique_p(0, F, - {Pc, - Size, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - Q0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) -> - {Value, NewQ0} = queue_remove_unique(F, Q0), - NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end, - {Value, - {if NewSize == 0 -> empty; true -> Pc end, - NewSize, - Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16, - NewQ0, - Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}; -?REMOVE_UNIQ_P_Qp16(1, - Qp1, NewQp1, - {NewQp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(2, - Qp2, NewQp2, - {Qp1, NewQp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(3, - Qp3, NewQp3, - {Qp1, Qp2, NewQp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(4, - Qp4, NewQp4, - {Qp1, Qp2, Qp3, NewQp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(5, - Qp5, NewQp5, - {Qp1, Qp2, Qp3, Qp4, NewQp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(6, - Qp6, NewQp6, - {Qp1, Qp2, Qp3, Qp4, Qp5, - NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(7, - Qp7, NewQp7, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(8, - Qp8, NewQp8, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(9, - Qp9, NewQp9, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(10, - Qp10, NewQp10, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(11, - Qp11, NewQp11, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11, - Qp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(12, - Qp12, NewQp12, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - NewQp12, Qp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(13, - Qp13, NewQp13, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, NewQp13, Qp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(14, - Qp14, NewQp14, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, NewQp14, Qp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(15, - Qp15, NewQp15, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, NewQp15, Qp16}); -?REMOVE_UNIQ_P_Qp16(16, - Qp16, NewQp16, - {Qp1, Qp2, Qp3, Qp4, Qp5, - Qp6, Qp7, Qp8, Qp9, Qp10, Qp11, - Qp12, Qp13, Qp14, Qp15, NewQp16}); -?REMOVE_UNIQ_P_Qp32(17, - Qp17, NewQp17, - {NewQp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(18, - Qp18, NewQp18, - {Qp17, NewQp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(19, - Qp19, NewQp19, - {Qp17, Qp18, NewQp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(20, - Qp20, NewQp20, - {Qp17, Qp18, Qp19, NewQp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(21, - Qp21, NewQp21, - {Qp17, Qp18, Qp19, Qp20, NewQp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(22, - Qp22, NewQp22, - {Qp17, Qp18, Qp19, Qp20, Qp21, - NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(23, - Qp23, NewQp23, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(24, - Qp24, NewQp24, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(25, - Qp25, NewQp25, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(26, - Qp26, NewQp26, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(27, - Qp27, NewQp27, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27, - Qp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(28, - Qp28, NewQp28, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - NewQp28, Qp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(29, - Qp29, NewQp29, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, NewQp29, Qp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(30, - Qp30, NewQp30, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, NewQp30, Qp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(31, - Qp31, NewQp31, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, NewQp31, Qp32}); -?REMOVE_UNIQ_P_Qp32(32, - Qp32, NewQp32, - {Qp17, Qp18, Qp19, Qp20, Qp21, - Qp22, Qp23, Qp24, Qp25, Qp26, Qp27, - Qp28, Qp29, Qp30, Qp31, NewQp32}); -?REMOVE_UNIQ_P_Qp48(33, - Qp33, NewQp33, - {NewQp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(34, - Qp34, NewQp34, - {Qp33, NewQp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(35, - Qp35, NewQp35, - {Qp33, Qp34, NewQp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(36, - Qp36, NewQp36, - {Qp33, Qp34, Qp35, NewQp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(37, - Qp37, NewQp37, - {Qp33, Qp34, Qp35, Qp36, NewQp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(38, - Qp38, NewQp38, - {Qp33, Qp34, Qp35, Qp36, Qp37, - NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(39, - Qp39, NewQp39, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(40, - Qp40, NewQp40, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(41, - Qp41, NewQp41, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(42, - Qp42, NewQp42, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(43, - Qp43, NewQp43, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43, - Qp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(44, - Qp44, NewQp44, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - NewQp44, Qp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(45, - Qp45, NewQp45, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, NewQp45, Qp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(46, - Qp46, NewQp46, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, NewQp46, Qp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(47, - Qp47, NewQp47, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, NewQp47, Qp48}); -?REMOVE_UNIQ_P_Qp48(48, - Qp48, NewQp48, - {Qp33, Qp34, Qp35, Qp36, Qp37, - Qp38, Qp39, Qp40, Qp41, Qp42, Qp43, - Qp44, Qp45, Qp46, Qp47, NewQp48}); -?REMOVE_UNIQ_P_Qp64(49, - Qp49, NewQp49, - {NewQp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(50, - Qp50, NewQp50, - {Qp49, NewQp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(51, - Qp51, NewQp51, - {Qp49, Qp50, NewQp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(52, - Qp52, NewQp52, - {Qp49, Qp50, Qp51, NewQp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(53, - Qp53, NewQp53, - {Qp49, Qp50, Qp51, Qp52, NewQp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(54, - Qp54, NewQp54, - {Qp49, Qp50, Qp51, Qp52, Qp53, - NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(55, - Qp55, NewQp55, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(56, - Qp56, NewQp56, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(57, - Qp57, NewQp57, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(58, - Qp58, NewQp58, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(59, - Qp59, NewQp59, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59, - Qp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(60, - Qp60, NewQp60, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - NewQp60, Qp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(61, - Qp61, NewQp61, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, NewQp61, Qp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(62, - Qp62, NewQp62, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, NewQp62, Qp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(63, - Qp63, NewQp63, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, NewQp63, Qp64}); -?REMOVE_UNIQ_P_Qp64(64, - Qp64, NewQp64, - {Qp49, Qp50, Qp51, Qp52, Qp53, - Qp54, Qp55, Qp56, Qp57, Qp58, Qp59, - Qp60, Qp61, Qp62, Qp63, NewQp64}); -?REMOVE_UNIQ_P_Qp80(65, - Qp65, NewQp65, - {NewQp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(66, - Qp66, NewQp66, - {Qp65, NewQp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(67, - Qp67, NewQp67, - {Qp65, Qp66, NewQp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(68, - Qp68, NewQp68, - {Qp65, Qp66, Qp67, NewQp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(69, - Qp69, NewQp69, - {Qp65, Qp66, Qp67, Qp68, NewQp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(70, - Qp70, NewQp70, - {Qp65, Qp66, Qp67, Qp68, Qp69, - NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(71, - Qp71, NewQp71, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(72, - Qp72, NewQp72, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(73, - Qp73, NewQp73, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(74, - Qp74, NewQp74, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(75, - Qp75, NewQp75, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75, - Qp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(76, - Qp76, NewQp76, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - NewQp76, Qp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(77, - Qp77, NewQp77, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, NewQp77, Qp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(78, - Qp78, NewQp78, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, NewQp78, Qp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(79, - Qp79, NewQp79, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, NewQp79, Qp80}); -?REMOVE_UNIQ_P_Qp80(80, - Qp80, NewQp80, - {Qp65, Qp66, Qp67, Qp68, Qp69, - Qp70, Qp71, Qp72, Qp73, Qp74, Qp75, - Qp76, Qp77, Qp78, Qp79, NewQp80}); -?REMOVE_UNIQ_P_Qp96(81, - Qp81, NewQp81, - {NewQp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(82, - Qp82, NewQp82, - {Qp81, NewQp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(83, - Qp83, NewQp83, - {Qp81, Qp82, NewQp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(84, - Qp84, NewQp84, - {Qp81, Qp82, Qp83, NewQp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(85, - Qp85, NewQp85, - {Qp81, Qp82, Qp83, Qp84, NewQp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(86, - Qp86, NewQp86, - {Qp81, Qp82, Qp83, Qp84, Qp85, - NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(87, - Qp87, NewQp87, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(88, - Qp88, NewQp88, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(89, - Qp89, NewQp89, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(90, - Qp90, NewQp90, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(91, - Qp91, NewQp91, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91, - Qp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(92, - Qp92, NewQp92, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - NewQp92, Qp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(93, - Qp93, NewQp93, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, NewQp93, Qp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(94, - Qp94, NewQp94, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, NewQp94, Qp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(95, - Qp95, NewQp95, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, NewQp95, Qp96}); -?REMOVE_UNIQ_P_Qp96(96, - Qp96, NewQp96, - {Qp81, Qp82, Qp83, Qp84, Qp85, - Qp86, Qp87, Qp88, Qp89, Qp90, Qp91, - Qp92, Qp93, Qp94, Qp95, NewQp96}); -?REMOVE_UNIQ_P_Qp112(97, - Qp97, NewQp97, - {NewQp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(98, - Qp98, NewQp98, - {Qp97, NewQp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(99, - Qp99, NewQp99, - {Qp97, Qp98, NewQp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(100, - Qp100, NewQp100, - {Qp97, Qp98, Qp99, NewQp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(101, - Qp101, NewQp101, - {Qp97, Qp98, Qp99, Qp100, NewQp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(102, - Qp102, NewQp102, - {Qp97, Qp98, Qp99, Qp100, Qp101, - NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(103, - Qp103, NewQp103, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(104, - Qp104, NewQp104, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(105, - Qp105, NewQp105, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(106, - Qp106, NewQp106, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(107, - Qp107, NewQp107, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107, - Qp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(108, - Qp108, NewQp108, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - NewQp108, Qp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(109, - Qp109, NewQp109, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, NewQp109, Qp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(110, - Qp110, NewQp110, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, NewQp110, Qp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(111, - Qp111, NewQp111, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, NewQp111, Qp112}); -?REMOVE_UNIQ_P_Qp112(112, - Qp112, NewQp112, - {Qp97, Qp98, Qp99, Qp100, Qp101, - Qp102, Qp103, Qp104, Qp105, Qp106, Qp107, - Qp108, Qp109, Qp110, Qp111, NewQp112}); -?REMOVE_UNIQ_P_Qp128(113, - Qp113, NewQp113, - {NewQp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(114, - Qp114, NewQp114, - {Qp113, NewQp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(115, - Qp115, NewQp115, - {Qp113, Qp114, NewQp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(116, - Qp116, NewQp116, - {Qp113, Qp114, Qp115, NewQp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(117, - Qp117, NewQp117, - {Qp113, Qp114, Qp115, Qp116, NewQp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(118, - Qp118, NewQp118, - {Qp113, Qp114, Qp115, Qp116, Qp117, - NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(119, - Qp119, NewQp119, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(120, - Qp120, NewQp120, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(121, - Qp121, NewQp121, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(122, - Qp122, NewQp122, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(123, - Qp123, NewQp123, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123, - Qp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(124, - Qp124, NewQp124, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - NewQp124, Qp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(125, - Qp125, NewQp125, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, NewQp125, Qp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(126, - Qp126, NewQp126, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, NewQp126, Qp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(127, - Qp127, NewQp127, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, NewQp127, Qp128}); -?REMOVE_UNIQ_P_Qp128(128, - Qp128, NewQp128, - {Qp113, Qp114, Qp115, Qp116, Qp117, - Qp118, Qp119, Qp120, Qp121, Qp122, Qp123, - Qp124, Qp125, Qp126, Qp127, NewQp128}). - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - --include("pqueue_test.hrl"). - -module_test_() -> - {timeout, ?TEST_TIMEOUT, [ - {"internal tests", ?_assertOk(test())} - ]}. - -long_test_() -> - test_condition([ - {"proper tests", ?_assert(pqueue_proper:qc_pq4())} - ], ?CLOUDI_LONG_TEST_TIMEOUT). - --endif. - -%%------------------------------------------------------------------------- -%% @hidden -%% remove a unique value from a queue based on a binary predicate, -%% traversal order is undefined to keep it efficient (i.e., shouldn't matter) -%% (based on the implementation of queue:filter/2 -%% which is under the Apache License 2.0) -%%------------------------------------------------------------------------- - --spec queue_remove_unique(F :: fun((any()) -> boolean()), - Q :: {list(), list()}) -> - {boolean(), {list(), list()}}. - -queue_remove_unique(Fun, {R0, F0} = Q) - when is_function(Fun, 1), is_list(R0), is_list(F0) -> - case queue_remove_unique_f(Fun, F0) of - {true, []} -> - {true, queue_r2f(R0)}; - {true, F1} -> - {true, {R0, F1}}; - {false, F1} -> - %true = F1 == F0, - case queue_remove_unique_f(Fun, R0) of % backwards - {true, []} -> - {true, queue_f2r(F1)}; - {true, R1} -> - {true, {R1, F1}}; - {false, _} -> - {false, Q} - end - end; -queue_remove_unique(Fun, Q) -> - erlang:error(badarg, [Fun,Q]). - -% Call Fun in front to back order -queue_remove_unique_f(_, [] = F) -> - {false, F}; -queue_remove_unique_f(Fun, F) -> - queue_remove_unique_f(F, [], F, Fun). - -queue_remove_unique_f([], _, F, _) -> - {false, F}; -queue_remove_unique_f([X | F0], F1, F, Fun) -> - case Fun(X) of - true -> - {true, lists:reverse(F1, F0)}; - false -> - queue_remove_unique_f(F0, [X | F1], F, Fun) - end. - --compile({inline, [{queue_r2f,1},{queue_f2r,1}]}). - -% Move half of elements from R to F, if there are at least three -queue_r2f([]) -> - {[],[]}; -queue_r2f([_]=R) -> - {[],R}; -queue_r2f([X,Y]) -> - {[X],[Y]}; -queue_r2f(List) -> - {FF,RR} = lists:split(length(List) div 2 + 1, List), - {FF,lists:reverse(RR, [])}. - -% Move half of elements from F to R, if there are enough -queue_f2r([]) -> - {[],[]}; -queue_f2r([_]=F) -> - {F,[]}; -queue_f2r([X,Y]) -> - {[Y],[X]}; -queue_f2r(List) -> - {FF,RR} = lists:split(length(List) div 2 + 1, List), - {lists:reverse(RR, []),FF}. - diff --git a/aoc2023/build/packages/pqueue/src/pqueue_test.hrl b/aoc2023/build/packages/pqueue/src/pqueue_test.hrl deleted file mode 100644 index cedffe0..0000000 --- a/aoc2023/build/packages/pqueue/src/pqueue_test.hrl +++ /dev/null @@ -1,49 +0,0 @@ -%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- -% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -%%% -%%%------------------------------------------------------------------------ -%%% pqueue eunit common functionality -%%% -%%% MIT License -%%% -%%% Copyright (c) 2020 Michael Truog -%%% -%%% Permission is hereby granted, free of charge, to any person obtaining a -%%% copy of this software and associated documentation files (the "Software"), -%%% to deal in the Software without restriction, including without limitation -%%% the rights to use, copy, modify, merge, publish, distribute, sublicense, -%%% and/or sell copies of the Software, and to permit persons to whom the -%%% Software is furnished to do so, subject to the following conditions: -%%% -%%% The above copyright notice and this permission notice shall be included in -%%% all copies or substantial portions of the Software. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -%%% DEALINGS IN THE SOFTWARE. -%%% -%%%------------------------------------------------------------------------ - --ifndef(_assertOk). --define(_assertOk(Expr), ?_assertEqual(ok, Expr)). --endif. - --ifdef(CLOUDI_TEST_TIMEOUT). --define(TEST_TIMEOUT, ?CLOUDI_TEST_TIMEOUT). % seconds --else. --define(TEST_TIMEOUT, 10). % seconds --endif. --ifndef(CLOUDI_LONG_TEST_TIMEOUT). --define(CLOUDI_LONG_TEST_TIMEOUT, 60). % minutes --endif. - -test_condition(_, 0) -> - []; -test_condition(L, LongTestTimeout) - when LongTestTimeout > 0 -> - {timeout, LongTestTimeout * 60, L}. - diff --git a/aoc2023/build/packages/pqueue/test/pqueue_proper.erl b/aoc2023/build/packages/pqueue/test/pqueue_proper.erl deleted file mode 100644 index 6702960..0000000 --- a/aoc2023/build/packages/pqueue/test/pqueue_proper.erl +++ /dev/null @@ -1,156 +0,0 @@ --module(pqueue_proper). --ifdef(TEST). --include_lib("proper/include/proper.hrl"). - --behaviour(proper_statem). - --export([qc_pq/0, qc_pq2/0, qc_pq3/0, qc_pq4/0, correct/1]). - --export([command/1, initial_state/0, next_state/3, postcondition/3, - precondition/2]). - --type value() :: integer(). --record(state, { in_queue :: [{value(), term()}] }). --define(SERVER, queue_srv). - -priority() -> - integer(-20, 20). - -%% Selects priorities we have added -priority(InQ) -> - elements([P || {P, _} <- InQ]). - -value() -> - integer(). - -initial_state() -> - #state { in_queue = [] }. - -command(#state { in_queue = InQ }) -> - oneof([{call, ?SERVER, in, [value()]}, - {call, ?SERVER, in, [value(), priority()]}, - {call, ?SERVER, is_empty, []}, - {call, ?SERVER, is_queue, []}, - {call, ?SERVER, len, []}, - {call, ?SERVER, out, []}] ++ - [{call, ?SERVER, out, [priority(InQ)]} || InQ =/= []] ++ - [{call, ?SERVER, pout, []}, - {call, ?SERVER, to_list, []}]). - -next_state(#state { in_queue = InQ } = S, _V, {call, _, out, []}) -> - S#state { in_queue = listq_rem(InQ) }; -next_state(#state { in_queue = InQ } = S, _V, {call, _, out, [Prio]}) -> - S#state { in_queue = listq_rem(InQ, Prio) }; -next_state(#state { in_queue = InQ } = S, _V, {call, _, pout, _}) -> - S#state { in_queue = listq_rem(InQ) }; -next_state(S, _V, {call, _, to_list, _}) -> S; -next_state(S, _V, {call, _, is_queue, _}) -> S; -next_state(S, _V, {call, _, is_empty, _}) -> S; -next_state(S, _V, {call, _, len, _}) -> S; -next_state(#state { in_queue = InQ } = S, _V, {call, _, in, [Value, Prio]}) -> - S#state { in_queue = listq_insert({Prio, Value}, InQ) }; -next_state(#state { in_queue = InQ } = S, _V, {call, _, in, [Value]}) -> - S#state { in_queue = listq_insert({0, Value}, InQ) }. - -precondition(_S, _Call) -> - true. % No limitation on the things we can call at all. - -postcondition(#state { in_queue = InQ }, {call, _, out, [Prio]}, R) -> - R == listq_prio_peek(InQ, Prio); -postcondition(#state { in_queue = InQ }, {call, _, pout, _}, R) -> - R == listq_ppeek(InQ); -postcondition(#state { in_queue = InQ }, {call, _, out, _}, R) -> - R == listq_peek(InQ); -postcondition(S, {call, _, to_list, _}, R) -> - R == listq_to_list(S#state.in_queue); -postcondition(S, {call, _, len, _}, L) -> - L == listq_length(S#state.in_queue); -postcondition(_S, {call, _, is_queue, _}, true) -> true; -postcondition(S, {call, _, is_empty, _}, Res) -> - Res == (S#state.in_queue == []); -postcondition(_S, {call, _, in, _}, _) -> - true; -postcondition(_, _, _) -> - false. - -correct(M) -> - ?FORALL(Cmds, commands(?MODULE), - ?TRAPEXIT( - begin - ?SERVER:start_link(M), - {History,State,Result} = run_commands(?MODULE, Cmds), - ?SERVER:stop(), - ?WHENFAIL(io:format("History: ~w\nState: ~w\nResult: ~w\n", - [History,State,Result]), - aggregate(command_names(Cmds), Result =:= ok)) - end)). - -qc_opts() -> - [{numtests, 10000}]. - -qc_pq() -> - proper:quickcheck(pqueue_proper:correct(pqueue), qc_opts()). - -qc_pq2() -> - proper:quickcheck(pqueue_proper:correct(pqueue2), qc_opts()). - -qc_pq3() -> - proper:quickcheck(pqueue_proper:correct(pqueue3), qc_opts()). - -qc_pq4() -> - proper:quickcheck(pqueue_proper:correct(pqueue4), qc_opts()). - -%% ---------------------------------------------------------------------- - -%% A listq is a sorted list of priorities -listq_insert({P, V}, []) -> - [{P, [V]}]; -listq_insert({P, V}, [{P1, _} | _] = LQ) when P < P1 -> - [{P, [V]} | LQ]; -listq_insert({P, V}, [{P1, Vs} | Next]) when P == P1 -> - [{P, Vs ++ [V]} | Next]; -listq_insert({P, V}, [{P1, Vs} | Next]) when P > P1 -> - [{P1, Vs} | listq_insert({P, V}, Next)]. - -listq_to_list(L) -> - lists:concat( - [ Vals || {_Prio, Vals} <- L]). - -listq_length(L) -> - lists:sum( - [ length(Vs) || {_Prio, Vs} <- L]). - -listq_rem([]) -> - []; -listq_rem([{_P, [_V]} | Next]) -> - Next; -listq_rem([{P, [_V1 | Vs]} | Next]) -> - [{P, Vs} | Next]. - -listq_rem([], _P) -> - []; -listq_rem([{P, [_]} | Next], P) -> - Next; -listq_rem([{P, [_ | Vs]} | Next], P) -> - [{P, Vs} | Next]; -listq_rem([{P1, Vs} | Next], P) -> - [{P1, Vs} | listq_rem(Next, P)]. - -listq_peek([]) -> - empty; -listq_peek([{_P, [V | _]} | _]) -> - {value, V}. - -listq_prio_peek([{P, [V | _]} | _], P) -> - {value, V}; -listq_prio_peek([{_P1, _} | Next], P) -> - listq_prio_peek(Next, P); -listq_prio_peek([], _P) -> - empty. - -listq_ppeek([]) -> - empty; -listq_ppeek([{P, [V | _]} | _]) -> - {value, V, P}. - --endif. diff --git a/aoc2023/build/packages/pqueue/test/queue_srv.erl b/aoc2023/build/packages/pqueue/test/queue_srv.erl deleted file mode 100644 index 7fcb0a1..0000000 --- a/aoc2023/build/packages/pqueue/test/queue_srv.erl +++ /dev/null @@ -1,183 +0,0 @@ -%%%------------------------------------------------------------------- -%%% @author Jesper Louis andersen <> -%%% @copyright (C) 2011, Jesper Louis andersen -%%% @doc -%%% -%%% @end -%%% Created : 11 Nov 2011 by Jesper Louis andersen <> -%%%------------------------------------------------------------------- --module(queue_srv). - --behaviour(gen_server). - -%% API --export([start_link/1, stop/0, len/0, in/1, in/2, is_empty/0, - out/0, out/1, pout/0, - is_queue/0, to_list/0]). - -%% gen_server callbacks --export([init/1, handle_call/3, handle_cast/2, handle_info/2, - terminate/2, code_change/3]). - --define(SERVER, ?MODULE). - --record(state, { mod, q }). - -%%%=================================================================== -%%% API -%%%=================================================================== - -%%-------------------------------------------------------------------- -%% @doc -%% Starts the server -%% -%% @spec start_link(Mod) -> {ok, Pid} | ignore | {error, Error} -%% @end -%%-------------------------------------------------------------------- -start_link(Mod) -> - gen_server:start_link({local, ?SERVER}, ?MODULE, [Mod], []). - -stop() -> - gen_server:stop(?SERVER). - -call(M) -> - gen_server:call(?SERVER, M, infinity). - -in(I) -> - call({in, I}). - -in(I, P) -> - call({in, I, P}). - -len() -> - call(len). - -is_empty() -> - call(is_empty). - -is_queue() -> - call(is_queue). - -to_list() -> - call(to_list). - -out() -> - call(out). - -out(P) -> - call({out, P}). - -pout() -> - call(pout). - -%%%=================================================================== -%%% gen_server callbacks -%%%=================================================================== - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Initializes the server -%% -%% @spec init(Args) -> {ok, State} | -%% {ok, State, Timeout} | -%% ignore | -%% {stop, Reason} -%% @end -%%-------------------------------------------------------------------- -init([Mod]) -> - {ok, #state{ mod = Mod, - q = Mod:new() }}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling call messages -%% -%% @spec handle_call(Request, From, State) -> -%% {reply, Reply, State} | -%% {reply, Reply, State, Timeout} | -%% {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, Reply, State} | -%% {stop, Reason, State} -%% @end -%%-------------------------------------------------------------------- -handle_call({in, Item}, _F, #state { q = Q, mod = M } = S) -> - NQ = M:in(Item, Q), - {reply, ok, S#state { q = NQ }}; -handle_call({in, Item, Prio}, _F, #state { q = Q, mod = M } = S) -> - NQ = M:in(Item, Prio, Q), - {reply, ok, S#state { q = NQ }}; -handle_call({out, P}, _F, #state { q = Q, mod = M } = S) -> - {R, NQ} = M:out(P, Q), - {reply, R, S#state { q = NQ }}; -handle_call(Ty, _F, #state { q = Q, mod = M } = S) when Ty == out; - Ty == pout -> - {R, NQ} = M:Ty(Q), - {reply, R, S#state { q = NQ }}; -handle_call(Ty, _F, #state { q = Q, mod = M } = S) when Ty == is_queue; - Ty == is_empty; - Ty == len; - Ty == to_list -> - R = M:Ty(Q), - {reply, R, S}; -handle_call(Req, From, State) -> - error_logger:info_report([{handle_call, Req, From, State}]), - Reply = ok, - {reply, Reply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling cast messages -%% -%% @spec handle_cast(Msg, State) -> {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, State} -%% @end -%%-------------------------------------------------------------------- -handle_cast(_Msg, State) -> - {noreply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Handling all non call/cast messages -%% -%% @spec handle_info(Info, State) -> {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, State} -%% @end -%%-------------------------------------------------------------------- -handle_info(_Info, State) -> - {noreply, State}. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% This function is called by a gen_server when it is about to -%% terminate. It should be the opposite of Module:init/1 and do any -%% necessary cleaning up. When it returns, the gen_server terminates -%% with Reason. The return value is ignored. -%% -%% @spec terminate(Reason, State) -> void() -%% @end -%%-------------------------------------------------------------------- -terminate(_Reason, _State) -> - ok. - -%%-------------------------------------------------------------------- -%% @private -%% @doc -%% Convert process state when code is changed -%% -%% @spec code_change(OldVsn, State, Extra) -> {ok, NewState} -%% @end -%%-------------------------------------------------------------------- -code_change(_OldVsn, State, _Extra) -> - {ok, State}. - -%%%=================================================================== -%%% Internal functions -%%%=================================================================== diff --git a/aoc2023/build/packages/simplifile/README.md b/aoc2023/build/packages/simplifile/README.md deleted file mode 100644 index 5e49113..0000000 --- a/aoc2023/build/packages/simplifile/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# simplifile - -[![Package Version](https://img.shields.io/hexpm/v/simplifile)](https://hex.pm/packages/simplifile) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/simplifile/) - -Simplifile provides basic file operations (read, write, append, and delete) that work -for all targets (Erlang, Node, and Deno). It also provides functions for working with directories. - -Note: When upgrading versions, be sure to check the changelog. - -## Example -```gleam -let filepath = "./test/hello.txt" -let assert Ok(_) = "Hello, World" |> write(to: filepath) -let assert Ok(_) = "Goodbye, Mars" |> append(to: filepath) -let assert Ok("Hello, WorldGoodbye, Mars") = read(from: filepath) -let assert Ok(_) = delete(filepath) -let assert Error(_) = read(from: filepath) -``` - -## Installation - -If available on Hex this package can be added to your Gleam project: - -```sh -gleam add simplifile -``` - -and its documentation can be found at . diff --git a/aoc2023/build/packages/simplifile/gleam.toml b/aoc2023/build/packages/simplifile/gleam.toml deleted file mode 100644 index 8e7523d..0000000 --- a/aoc2023/build/packages/simplifile/gleam.toml +++ /dev/null @@ -1,17 +0,0 @@ -name = "simplifile" -version = "1.0.0" -description = "Basic file operations that work on all targets" - -licences = ["Apache-2.0"] -repository = { type = "github", user = "bcpeinhardt", repo = "simplifile" } -gleam = ">= 0.32.0" -# links = [{ title = "Website", href = "https://gleam.run" }] - -[javascript.deno] -allow_all = true - -[dependencies] -gleam_stdlib = "~> 0.29" - -[dev-dependencies] -gleeunit = "~> 1.0" diff --git a/aoc2023/build/packages/simplifile/src/simplifile.app.src b/aoc2023/build/packages/simplifile/src/simplifile.app.src deleted file mode 100644 index 5b9d6ef..0000000 --- a/aoc2023/build/packages/simplifile/src/simplifile.app.src +++ /dev/null @@ -1,8 +0,0 @@ -{application, simplifile, [ - {vsn, "1.0.0"}, - {applications, [gleam_stdlib, - gleeunit]}, - {description, "Basic file operations that work on all targets"}, - {modules, [simplifile]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/simplifile/src/simplifile.erl b/aoc2023/build/packages/simplifile/src/simplifile.erl deleted file mode 100644 index 0d3818c..0000000 --- a/aoc2023/build/packages/simplifile/src/simplifile.erl +++ /dev/null @@ -1,287 +0,0 @@ --module(simplifile). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([read/1, write/2, delete/1, delete_all/1, append/2, read_bits/1, write_bits/2, append_bits/2, is_directory/1, create_directory/1, read_directory/1, is_file/1, create_file/1, get_files/1, create_directory_all/1, copy_directory/2, rename_directory/2, copy_file/2, rename_file/2]). --export_type([file_error/0]). - --type file_error() :: eacces | - eagain | - ebadf | - ebadmsg | - ebusy | - edeadlk | - edeadlock | - edquot | - eexist | - efault | - efbig | - eftype | - eintr | - einval | - eio | - eisdir | - eloop | - emfile | - emlink | - emultihop | - enametoolong | - enfile | - enobufs | - enodev | - enolck | - enolink | - enoent | - enomem | - enospc | - enosr | - enostr | - enosys | - enotblk | - enotdir | - enotsup | - enxio | - eopnotsupp | - eoverflow | - eperm | - epipe | - erange | - erofs | - espipe | - esrch | - estale | - etxtbsy | - exdev | - not_utf8 | - unknown. - --spec do_append(binary(), binary()) -> {ok, nil} | {error, file_error()}. -do_append(Content, Filepath) -> - _pipe = Content, - _pipe@1 = gleam_stdlib:identity(_pipe), - simplifile_erl:append_file(_pipe@1, Filepath). - --spec do_write(binary(), binary()) -> {ok, nil} | {error, file_error()}. -do_write(Content, Filepath) -> - _pipe = Content, - _pipe@1 = gleam_stdlib:identity(_pipe), - simplifile_erl:write_file(_pipe@1, Filepath). - --spec do_read(binary()) -> {ok, binary()} | {error, file_error()}. -do_read(Filepath) -> - case simplifile_erl:read_file(Filepath) of - {ok, Bits} -> - case gleam@bit_array:to_string(Bits) of - {ok, Str} -> - {ok, Str}; - - _ -> - {error, not_utf8} - end; - - {error, E} -> - {error, E} - end. - --spec cast_error({ok, FIL} | {error, file_error()}) -> {ok, FIL} | - {error, file_error()}. -cast_error(Input) -> - Input. - --spec read(binary()) -> {ok, binary()} | {error, file_error()}. -read(Filepath) -> - _pipe = do_read(Filepath), - cast_error(_pipe). - --spec write(binary(), binary()) -> {ok, nil} | {error, file_error()}. -write(Filepath, Contents) -> - _pipe = do_write(Contents, Filepath), - cast_error(_pipe). - --spec delete(binary()) -> {ok, nil} | {error, file_error()}. -delete(Path) -> - _pipe = simplifile_erl:recursive_delete(Path), - cast_error(_pipe). - --spec delete_all(list(binary())) -> {ok, nil} | {error, file_error()}. -delete_all(Paths) -> - case Paths of - [] -> - {ok, nil}; - - [Path | Rest] -> - case delete(Path) of - {ok, nil} -> - delete_all(Rest); - - {error, enoent} -> - delete_all(Rest); - - E -> - E - end - end. - --spec append(binary(), binary()) -> {ok, nil} | {error, file_error()}. -append(Filepath, Contents) -> - _pipe = do_append(Contents, Filepath), - cast_error(_pipe). - --spec read_bits(binary()) -> {ok, bitstring()} | {error, file_error()}. -read_bits(Filepath) -> - _pipe = simplifile_erl:read_file(Filepath), - cast_error(_pipe). - --spec write_bits(binary(), bitstring()) -> {ok, nil} | {error, file_error()}. -write_bits(Filepath, Bits) -> - _pipe = simplifile_erl:write_file(Bits, Filepath), - cast_error(_pipe). - --spec append_bits(binary(), bitstring()) -> {ok, nil} | {error, file_error()}. -append_bits(Filepath, Bits) -> - _pipe = simplifile_erl:append_file(Bits, Filepath), - cast_error(_pipe). - --spec is_directory(binary()) -> boolean(). -is_directory(Filepath) -> - filelib:is_dir(Filepath). - --spec create_directory(binary()) -> {ok, nil} | {error, file_error()}. -create_directory(Filepath) -> - _pipe = simplifile_erl:make_directory(Filepath), - cast_error(_pipe). - --spec read_directory(binary()) -> {ok, list(binary())} | {error, file_error()}. -read_directory(Path) -> - _pipe = simplifile_erl:list_directory(Path), - cast_error(_pipe). - --spec is_file(binary()) -> boolean(). -is_file(Filepath) -> - simplifile_erl:is_file(Filepath). - --spec create_file(binary()) -> {ok, nil} | {error, file_error()}. -create_file(Filepath) -> - case begin - _pipe = Filepath, - is_file(_pipe) - end - orelse begin - _pipe@1 = Filepath, - is_directory(_pipe@1) - end of - true -> - {error, eexist}; - - false -> - write_bits(Filepath, <<>>) - end. - --spec do_copy_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}. -do_copy_directory(Src, Dest) -> - gleam@result:'try'( - read_directory(Src), - fun(Segments) -> - _pipe = Segments, - gleam@list:each( - _pipe, - fun(Segment) -> - Src_path = <<<>/binary, - Segment/binary>>, - Dest_path = <<<>/binary, - Segment/binary>>, - case {is_file(Src_path), is_directory(Src_path)} of - {true, false} -> - gleam@result:'try'( - read_bits(Src_path), - fun(Content) -> _pipe@1 = Content, - write_bits(Dest_path, _pipe@1) end - ); - - {false, true} -> - gleam@result:'try'( - create_directory(Dest_path), - fun(_) -> - do_copy_directory(Src_path, Dest_path) - end - ); - - {_, _} -> - erlang:error(#{gleam_error => panic, - message => <<"unreachable"/utf8>>, - module => <<"simplifile"/utf8>>, - function => <<"do_copy_directory"/utf8>>, - line => 341}) - end - end - ), - {ok, nil} - end - ). - --spec get_files(binary()) -> {ok, list(binary())} | {error, file_error()}. -get_files(Directory) -> - gleam@result:'try'( - read_directory(Directory), - fun(Contents) -> - Paths = gleam@list:map( - Contents, - fun(Segment) -> - <<<>/binary, Segment/binary>> - end - ), - Files = gleam@list:filter(Paths, fun is_file/1), - case gleam@list:filter(Paths, fun is_directory/1) of - [] -> - {ok, Files}; - - Directories -> - gleam@result:'try'( - gleam@list:try_map(Directories, fun get_files/1), - fun(Nested_files) -> - {ok, - gleam@list:append( - Files, - gleam@list:flatten(Nested_files) - )} - end - ) - end - end - ). - --spec create_directory_all(binary()) -> {ok, nil} | {error, file_error()}. -create_directory_all(Dirpath) -> - Path = case begin - _pipe = Dirpath, - gleam@string:ends_with(_pipe, <<"/"/utf8>>) - end of - true -> - Dirpath; - - false -> - <> - end, - _pipe@1 = simplifile_erl:create_dir_all(Path), - cast_error(_pipe@1). - --spec copy_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}. -copy_directory(Src, Dest) -> - gleam@result:'try'( - create_directory_all(Dest), - fun(_) -> do_copy_directory(Src, Dest) end - ). - --spec rename_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}. -rename_directory(Src, Dest) -> - gleam@result:'try'(copy_directory(Src, Dest), fun(_) -> delete(Src) end). - --spec copy_file(binary(), binary()) -> {ok, nil} | {error, file_error()}. -copy_file(Src, Dest) -> - _pipe = file:copy(Src, Dest), - _pipe@1 = gleam@result:replace(_pipe, nil), - cast_error(_pipe@1). - --spec rename_file(binary(), binary()) -> {ok, nil} | {error, file_error()}. -rename_file(Src, Dest) -> - _pipe = simplifile_erl:rename_file(Src, Dest), - cast_error(_pipe). diff --git a/aoc2023/build/packages/simplifile/src/simplifile.gleam b/aoc2023/build/packages/simplifile/src/simplifile.gleam deleted file mode 100644 index eff0306..0000000 --- a/aoc2023/build/packages/simplifile/src/simplifile.gleam +++ /dev/null @@ -1,580 +0,0 @@ -import gleam/bit_array -import gleam/string -import gleam/result -import gleam/list - -/// This type represents all of the reasons for why a file system operation could fail. -/// -/// Most of these reasons are POSIX errors, which come from the operating system -/// and start with E. Others have been added to represent other issues that may -/// arise specific to this library. -/// -pub type FileError { - /// Permission denied. - Eacces - /// Resource temporarily unavailable. - Eagain - /// Bad file number - Ebadf - /// Bad message. - Ebadmsg - /// File busy. - Ebusy - /// Resource deadlock avoided. - Edeadlk - /// On most architectures, same as `Edeadlk`. On some architectures, it - /// means "File locking deadlock error." - Edeadlock - /// Disk quota exceeded. - Edquot - /// File already exists. - Eexist - /// Bad address in system call argument. - Efault - /// File too large. - Efbig - /// Inappropriate file type or format. Usually caused by trying to set the - /// "sticky bit" on a regular file (not a directory). - Eftype - /// Interrupted system call. - Eintr - /// Invalid argument. - Einval - /// I/O error. - Eio - /// Illegal operation on a directory. - Eisdir - /// Too many levels of symbolic links. - Eloop - /// Too many open files. - Emfile - /// Too many links. - Emlink - /// Multihop attempted. - Emultihop - /// Filename too long - Enametoolong - /// File table overflow - Enfile - /// No buffer space available. - Enobufs - /// No such device. - Enodev - /// No locks available. - Enolck - /// Link has been severed. - Enolink - /// No such file or directory. - Enoent - /// Not enough memory. - Enomem - /// No space left on device. - Enospc - /// No STREAM resources. - Enosr - /// Not a STREAM. - Enostr - /// Function not implemented. - Enosys - /// Block device required. - Enotblk - /// Not a directory. - Enotdir - /// Operation not supported. - Enotsup - /// No such device or address. - Enxio - /// Operation not supported on socket. - Eopnotsupp - /// Value too large to be stored in data type. - Eoverflow - /// Not owner. - Eperm - /// Broken pipe. - Epipe - /// Result too large. - Erange - /// Read-only file system. - Erofs - /// Invalid seek. - Espipe - /// No such process. - Esrch - /// Stale remote file handle. - Estale - /// Text file busy. - Etxtbsy - /// Cross-domain link. - Exdev - /// File was requested to be read as UTF-8, but is not UTF-8 encoded. - NotUtf8 - /// Any error not accounted for by this type - Unknown -} - -/// Read a files contents as a string -/// ## Example -/// ```gleam -/// let assert Ok(records) = read(from: "./users.csv") -/// ``` -/// -pub fn read(from filepath: String) -> Result(String, FileError) { - do_read(filepath) - |> cast_error -} - -/// Write a string to a file at the given path -/// ## Example -/// ```gleam -/// let assert Ok(Nil) = write("Hello, World!", to: "./hello_world.txt") -/// ``` -/// -pub fn write( - to filepath: String, - contents contents: String, -) -> Result(Nil, FileError) { - do_write(contents, to: filepath) - |> cast_error -} - -/// Delete a file or directory at a given path. Performs a recursive -/// delete on a directory. -/// Throws an error if the path does not exist. -/// ## Example -/// ```gleam -/// let assert Ok(Nil) = delete(file_at: "./delete_me.txt") -/// ``` -/// -pub fn delete(file_or_dir_at path: String) -> Result(Nil, FileError) { - do_delete(path) - |> cast_error -} - -/// Delete all files/directories specified in a list of paths. -/// Recursively deletes provided directories. -/// Does not return an error if one or more of the provided paths -/// do not exist. -/// -pub fn delete_all(paths paths: List(String)) -> Result(Nil, FileError) { - case paths { - [] -> Ok(Nil) - [path, ..rest] -> { - case delete(path) { - Ok(Nil) | Error(Enoent) -> delete_all(rest) - e -> e - } - } - } -} - -/// Append a string to the contents of a file at the given path -/// ## Example -/// ```gleam -/// let assert Ok(Nil) = append("more text", to: "./needs_more_text.txt") -/// ``` -/// -pub fn append( - to filepath: String, - contents contents: String, -) -> Result(Nil, FileError) { - do_append(contents, to: filepath) - |> cast_error -} - -/// Read a files contents as a bitstring -/// ## Example -/// ```gleam -/// let assert Ok(records) = read_bits(from: "./users.csv") -/// ``` -/// -pub fn read_bits(from filepath: String) -> Result(BitArray, FileError) { - do_read_bits(filepath) - |> cast_error -} - -/// Write a bitstring to a file at the given path -/// ## Example -/// ```gleam -/// let assert Ok(Nil) = write_bits(<<"Hello, World!":utf8>>, to: "./hello_world.txt") -/// ``` -/// -pub fn write_bits( - to filepath: String, - bits bits: BitArray, -) -> Result(Nil, FileError) { - do_write_bits(bits, filepath) - |> cast_error -} - -/// Append a bitstring to the contents of a file at the given path -/// ## Example -/// ```gleam -/// let assert Ok(Nil) = append_bits(<<"more text":utf8>>, to: "./needs_more_text.txt") -/// ``` -/// -pub fn append_bits( - to filepath: String, - bits bits: BitArray, -) -> Result(Nil, FileError) { - do_append_bits(bits, filepath) - |> cast_error -} - -/// Checks if the provided filepath is a directory -/// ## Example -/// ```gleam -/// let assert True = is_directory("./test") -/// ``` -pub fn is_directory(filepath: String) -> Bool { - do_is_directory(filepath) -} - -/// Create a directory at the provided filepath. Returns an error if -/// the directory already exists. -/// -/// ## Example -/// ```gleam -/// create_directory("./test") -/// ``` -pub fn create_directory(filepath: String) -> Result(Nil, FileError) { - do_make_directory(filepath) - |> cast_error -} - -/// Lists the contents of a directory. -/// The list contains directory and file names, and is not recursive. -/// -/// ## Example -/// ```gleam -/// let assert Ok(files_and_folders) = read_directory(at: "./Folder1") -/// ``` -/// -pub fn read_directory(at path: String) -> Result(List(String), FileError) { - do_read_directory(path) - |> cast_error -} - -/// Returns `True` if there is a file at the given path, false otherwise. -/// -pub fn is_file(filepath: String) -> Bool { - do_is_file(filepath) -} - -/// Creates an empty file at the given filepath. Returns an `Error(Eexist)` -/// if the file already exists. -/// -pub fn create_file(at filepath: String) -> Result(Nil, FileError) { - case - filepath - |> is_file || filepath - |> is_directory - { - True -> Error(Eexist) - False -> write_bits(<<>>, to: filepath) - } -} - -/// Recursively creates necessary directories for a given directory -/// path. Note that if you pass a path that "looks like" a file, i.e. -/// `./a/b.txt`, a folder named `b.txt` will be created, so be sure -/// to pass only the path to the required directory. -pub fn create_directory_all(dirpath: String) -> Result(Nil, FileError) { - let path = case - dirpath - |> string.ends_with("/") - { - True -> dirpath - False -> dirpath <> "/" - } - do_create_dir_all(path) - |> cast_error -} - -/// Copy a file at a given path to another path. -/// Note: destination should include the filename, not just the directory -pub fn copy_file(at src: String, to dest: String) -> Result(Nil, FileError) { - do_copy_file(src, dest) - |> result.replace(Nil) - |> cast_error -} - -/// Rename a file at a given path to another path. -/// Note: destination should include the filename, not just the directory -pub fn rename_file(at src: String, to dest: String) -> Result(Nil, FileError) { - do_rename_file(src, dest) - |> cast_error -} - -/// Copy a directory recursively -pub fn copy_directory(at src: String, to dest: String) -> Result(Nil, FileError) { - // Erlang does not provide a built in `copy_dir` function, - // and Deno doesn't support Node's `fs.cpSync`, so we'll just roll - // our own for now. - use _ <- result.try(create_directory_all(dest)) - do_copy_directory(src, dest) -} - -fn do_copy_directory(src: String, dest: String) -> Result(Nil, FileError) { - // Iterate over the segments of the file - use segments <- result.try(read_directory(src)) - segments - |> list.each(fn(segment) { - let src_path = src <> "/" <> segment - let dest_path = dest <> "/" <> segment - - case is_file(src_path), is_directory(src_path) { - True, False -> { - // For a file, create the file in the new directory - use content <- result.try(read_bits(src_path)) - content - |> write_bits(to: dest_path) - } - False, True -> { - // Create the target directory and recurs - use _ <- result.try(create_directory(dest_path)) - do_copy_directory(src_path, dest_path) - } - _, _ -> { - // This should be unreachable. The src_path can't be both a file - // and a directory, and it's definitely one of the two because it's - // coming from list_contents - panic as "unreachable" - } - } - }) - Ok(Nil) -} - -/// Copy a directory recursively and then delete the old one. -pub fn rename_directory( - at src: String, - to dest: String, -) -> Result(Nil, FileError) { - use _ <- result.try(copy_directory(src, dest)) - delete(src) -} - -/// Returns a list of filepaths for every file in the directory, including nested -/// files. -/// -pub fn get_files(in directory: String) -> Result(List(String), FileError) { - use contents <- result.try(read_directory(directory)) - let paths = list.map(contents, fn(segment) { directory <> "/" <> segment }) - let files = list.filter(paths, is_file) - case list.filter(paths, is_directory) { - [] -> Ok(files) - directories -> { - use nested_files <- result.try(list.try_map(directories, get_files)) - Ok(list.append(files, list.flatten(nested_files))) - } - } -} - -@target(javascript) -fn do_read(from filepath: String) -> Result(String, String) { - case do_read_bits(filepath) { - Ok(bits) -> { - case bit_array.to_string(bits) { - Ok(str) -> Ok(str) - _ -> Error("NOTUTF8") - } - } - Error(e) -> Error(e) - } -} - -@target(javascript) -fn do_write(content: String, to filepath: String) -> Result(Nil, String) { - content - |> bit_array.from_string - |> do_write_bits(to: filepath) -} - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "deleteFileOrDirRecursive") -fn do_delete(file_or_dir_at: String) -> Result(Nil, String) - -@target(javascript) -fn do_append(content: String, to filepath: String) -> Result(Nil, String) { - content - |> bit_array.from_string - |> do_append_bits(to: filepath) -} - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "readBits") -fn do_read_bits(from: String) -> Result(BitArray, String) - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "writeBits") -fn do_write_bits(content: BitArray, to filepath: String) -> Result(Nil, String) - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "appendBits") -fn do_append_bits(content: BitArray, to filepath: String) -> Result(Nil, String) - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "isDirectory") -fn do_is_directory(filepath: String) -> Bool - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "makeDirectory") -fn do_make_directory(filepath: String) -> Result(Nil, String) - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "createDirAll") -fn do_create_dir_all(dirpath: String) -> Result(Nil, String) - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "listContents") -fn do_read_directory(directory_path: String) -> Result(List(String), String) - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "copyFile") -fn do_copy_file(at: String, to: String) -> Result(Nil, String) - -@target(javascript) -@external(javascript, "./simplifile_js.mjs", "renameFile") -fn do_rename_file(at: String, to: String) -> Result(Nil, String) - -@target(javascript) -fn cast_error(input: Result(a, String)) -> Result(a, FileError) { - result.map_error( - input, - fn(e) { - case e { - "EACCES" -> Eacces - "EAGAIN" -> Eagain - "EBADF" -> Ebadf - "EBADMSG" -> Ebadmsg - "EBUSY" -> Ebusy - "EDEADLK" -> Edeadlk - "EDEADLOCK" -> Edeadlock - "EDQUOT" -> Edquot - "EEXIST" -> Eexist - "EFAULT" -> Efault - "EFBIG" -> Efbig - "EFTYPE" -> Eftype - "EINTR" -> Eintr - "EINVAL" -> Einval - "EIO" -> Eio - "EISDIR" -> Eisdir - "ELOOP" -> Eloop - "EMFILE" -> Emfile - "EMLINK" -> Emlink - "EMULTIHOP" -> Emultihop - "ENAMETOOLONG" -> Enametoolong - "ENFILE" -> Enfile - "ENOBUFS" -> Enobufs - "ENODEV" -> Enodev - "ENOLCK" -> Enolck - "ENOLINK" -> Enolink - "ENOENT" -> Enoent - "ENOMEM" -> Enomem - "ENOSPC" -> Enospc - "ENOSR" -> Enosr - "ENOSTR" -> Enostr - "ENOSYS" -> Enosys - "ENOBLK" -> Enotblk - "ENODIR" -> Enotdir - "ENOTSUP" -> Enotsup - "ENXIO" -> Enxio - "EOPNOTSUPP" -> Eopnotsupp - "EOVERFLOW" -> Eoverflow - "EPERM" -> Eperm - "EPIPE" -> Epipe - "ERANGE" -> Erange - "EROFS" -> Erofs - "ESPIPE" -> Espipe - "ESRCH" -> Esrch - "ESTALE" -> Estale - "ETXTBSY" -> Etxtbsy - "EXDEV" -> Exdev - "NOTUTF8" -> NotUtf8 - _ -> Unknown - } - }, - ) -} - -@target(erlang) -@external(erlang, "simplifile_erl", "append_file") -fn do_append_bits( - content: BitArray, - to filepath: String, -) -> Result(Nil, FileError) - -@target(erlang) -@external(erlang, "simplifile_erl", "write_file") -fn do_write_bits( - content: BitArray, - to filepath: String, -) -> Result(Nil, FileError) - -@target(erlang) -@external(erlang, "simplifile_erl", "read_file") -fn do_read_bits(from: String) -> Result(BitArray, FileError) - -@target(erlang) -@external(erlang, "simplifile_erl", "recursive_delete") -fn do_delete(file_or_dir_at: String) -> Result(Nil, FileError) - -@target(erlang) -fn do_append(content: String, to filepath: String) -> Result(Nil, FileError) { - content - |> bit_array.from_string - |> do_append_bits(filepath) -} - -@target(erlang) -fn do_write(content: String, to filepath: String) -> Result(Nil, FileError) { - content - |> bit_array.from_string - |> do_write_bits(filepath) -} - -@target(erlang) -fn do_read(from filepath: String) -> Result(String, FileError) { - case do_read_bits(filepath) { - Ok(bits) -> { - case bit_array.to_string(bits) { - Ok(str) -> Ok(str) - _ -> Error(NotUtf8) - } - } - Error(e) -> Error(e) - } -} - -@target(erlang) -fn cast_error(input: Result(a, FileError)) -> Result(a, FileError) { - input -} - -@target(erlang) -@external(erlang, "filelib", "is_dir") -fn do_is_directory(path: String) -> Bool - -@target(erlang) -@external(erlang, "simplifile_erl", "make_directory") -fn do_make_directory(directory: String) -> Result(Nil, FileError) - -@target(erlang) -@external(erlang, "simplifile_erl", "list_directory") -fn do_read_directory(directory: String) -> Result(List(String), FileError) - -@external(erlang, "simplifile_erl", "is_file") -@external(javascript, "./simplifile_js.mjs", "isFile") -fn do_is_file(filepath: String) -> Bool - -@target(erlang) -@external(erlang, "simplifile_erl", "create_dir_all") -fn do_create_dir_all(dirpath: String) -> Result(Nil, FileError) - -@target(erlang) -@external(erlang, "file", "copy") -fn do_copy_file(src: String, dest: String) -> Result(Int, FileError) - -@target(erlang) -@external(erlang, "simplifile_erl", "rename_file") -fn do_rename_file(src: String, dest: String) -> Result(Nil, FileError) diff --git a/aoc2023/build/packages/simplifile/src/simplifile_erl.erl b/aoc2023/build/packages/simplifile/src/simplifile_erl.erl deleted file mode 100644 index dac135a..0000000 --- a/aoc2023/build/packages/simplifile/src/simplifile_erl.erl +++ /dev/null @@ -1,70 +0,0 @@ --module(simplifile_erl). --export([ - read_file/1, - append_file/2, write_file/2, delete_file/1, delete_directory/1, recursive_delete/1, - list_directory/1, make_directory/1, is_file/1, create_dir_all/1, rename_file/2 -]). - --define(is_posix_error(Error), - Error =:= eacces orelse Error =:= eagain orelse Error =:= ebadf orelse - Error =:= ebadmsg orelse Error =:= ebusy orelse Error =:= edeadlk orelse - Error =:= edeadlock orelse Error =:= edquot orelse Error =:= eexist orelse - Error =:= efault orelse Error =:= efbig orelse Error =:= eftype orelse - Error =:= eintr orelse Error =:= einval orelse Error =:= eio orelse - Error =:= eisdir orelse Error =:= eloop orelse Error =:= emfile orelse - Error =:= emlink orelse Error =:= emultihop orelse Error =:= enametoolong orelse - Error =:= enfile orelse Error =:= enobufs orelse Error =:= enodev orelse - Error =:= enolck orelse Error =:= enolink orelse Error =:= enoent orelse - Error =:= enomem orelse Error =:= enospc orelse Error =:= enosr orelse - Error =:= enostr orelse Error =:= enosys orelse Error =:= enotblk orelse - Error =:= enotdir orelse Error =:= enotsup orelse Error =:= enxio orelse - Error =:= eopnotsupp orelse Error =:= eoverflow orelse Error =:= eperm orelse - Error =:= epipe orelse Error =:= erange orelse Error =:= erofs orelse - Error =:= espipe orelse Error =:= esrch orelse Error =:= estale orelse - Error =:= etxtbsy orelse Error =:= exdev -). - -posix_result(Result) -> - case Result of - ok -> {ok, nil}; - {ok, Value} -> {ok, Value}; - {error, Reason} when ?is_posix_error(Reason) -> {error, Reason} - end. - -read_file(Filename) -> - posix_result(file:read_file(Filename)). - -write_file(Contents, Filename) -> - posix_result(file:write_file(Filename, Contents)). - -append_file(Contents, Filename) -> - posix_result(file:write_file(Filename, Contents, [append])). - -delete_file(Filename) -> - posix_result(file:delete(Filename)). - -make_directory(Dir) -> - posix_result(file:make_dir(Dir)). - -list_directory(Dir) -> - case file:list_dir(Dir) of - {ok, Filenames} -> - {ok, [list_to_binary(Filename) || Filename <- Filenames]}; - {error, Reason} when ?is_posix_error(Reason) -> - {error, Reason} - end. - -delete_directory(Dir) -> - posix_result(file:del_dir(Dir)). - -recursive_delete(Dir) -> - posix_result(file:del_dir_r(Dir)). - -is_file(Filename) -> - not (file:read_file_info(Filename) == {error, enoent}) and not filelib: is_dir(Filename). - -create_dir_all(Filename) -> - posix_result(filelib:ensure_dir(Filename)). - -rename_file(Source, Destination) -> - posix_result(file:rename(Source, Destination)). diff --git a/aoc2023/build/packages/simplifile/src/simplifile_js.mjs b/aoc2023/build/packages/simplifile/src/simplifile_js.mjs deleted file mode 100644 index faf4109..0000000 --- a/aoc2023/build/packages/simplifile/src/simplifile_js.mjs +++ /dev/null @@ -1,102 +0,0 @@ -import fs from "node:fs" -import path from "node:path" -import { BitArray, Ok, Error as GError, toList} from "./gleam.mjs"; - -export function readBits(filepath) { - try { - const contents = fs.readFileSync(path.normalize(filepath)) - return new Ok(new BitArray(new Uint8Array(contents))) - } catch(e) { - return new GError(stringifyError(e)) - } -} - -export function writeBits(contents, filepath) { - try { - fs.writeFileSync(path.normalize(filepath), contents.buffer) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function appendBits(contents, filepath) { - try { - fs.appendFileSync(path.normalize(filepath), contents.buffer) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -function stringifyError(e) { - return e.code -} - -export function isFile(filepath) { - let fp = path.normalize(filepath) - return fs.existsSync(fp) && fs.lstatSync(fp).isFile(); -} - -export function isDirectory(filepath) { - let fp = path.normalize(filepath) - return fs.existsSync(fp) && fs.lstatSync(fp).isDirectory(); -} - -export function makeDirectory(filepath) { - try { - fs.mkdirSync(path.normalize(filepath)) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function createDirAll(filepath) { - try { - fs.mkdirSync(filepath, { recursive: true }) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function deleteFileOrDirRecursive(fileOrDirPath) { - try { - if (isDirectory(fileOrDirPath)) { - fs.rmSync(path.normalize(fileOrDirPath), { recursive: true }) - } else { - fs.unlinkSync(path.normalize(fileOrDirPath)) - } - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function listContents(filepath) { - try { - const stuff = toList(fs.readdirSync(path.normalize(filepath))) - return new Ok(stuff) - } catch(e) { - return new GError(stringifyError(e)) - } -} - -export function copyFile(srcpath, destpath) { - try { - fs.copyFileSync(path.normalize(srcpath), path.normalize(destpath)) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} - -export function renameFile(srcpath, destpath) { - try { - fs.renameSync(path.normalize(srcpath), path.normalize(destpath)) - return new Ok(undefined) - } catch (e) { - return new GError(stringifyError(e)) - } -} \ No newline at end of file diff --git a/aoc2023/build/packages/snag/LICENCE b/aoc2023/build/packages/snag/LICENCE deleted file mode 100644 index b8c2e9e..0000000 --- a/aoc2023/build/packages/snag/LICENCE +++ /dev/null @@ -1,211 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2021 - present Louis Pilfold - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - -## Runtime Library Exception to the Apache 2.0 License: ## - - - As an exception, if you use this Software to compile your source code and - portions of this Software are embedded into the binary product as a result, - you may redistribute such product without providing attribution as would - otherwise be required by Sections 4(a), 4(b) and 4(d) of the License. diff --git a/aoc2023/build/packages/snag/README.md b/aoc2023/build/packages/snag/README.md deleted file mode 100644 index aaedcf5..0000000 --- a/aoc2023/build/packages/snag/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# Snag - -A Snag is a boilerplate-free ad-hoc error type. - -Use `Result(value, Snag)` (or the `snag.Result(value)` alias) in functions -that may fail. - -A low level message like "Unexpected status 401" or "No such file or -directory" can be confusing or difficult to debug, so use the `snag.context` -function to add extra contextual information. - -```gleam -import gleam/io -import my_app.{User} -import snag.{Result} - -pub fn log_in(user_id: Int) -> Result(User) { - try api_key = - my_app.read_file("api_key.txt") - |> snag.context("Could not load API key") - - try session_token = - user_id - |> my_app.create_session(api_key) - |> snag.context("Session creation failed") - - Ok(session_token) -} - -pub fn main() { - case log_in(42) { - Ok(session) -> io.println("Logged in!") - Error(snag) -> { - io.print(snag.pretty_print(snag)) - my_app.exit(1) - } - } -} -``` - -In this code when an error occurs within the `create_session` function an -error message like this is printed using the added contextual information: - -```text -error: Session creation failed - -cause: - 0: Unable to exchange token with authentication service - 1: Service authentication failed - 2: Unexpected HTTP status 401 -``` - -## When should I use Snag? - -Snag is useful in code where it must either pass or fail, and when it fails we -want good debugging information to print to the user. i.e. Command line -tools, data processing pipelines, etc. Here Snag provides a convenient way to -create errors with a reasonable amount of debugging information, without the -boilerplate of a custom error type. - -It is not suited to code where the application needs to make a decision about -what to do in the event of an error, such as whether to give up or to try -again. i.e. Libraries, web application backends, API clients, etc. In these -situations it is recommended to create a custom type for your errors as it -can be pattern matched on and have any additional detail added as fields. - -## Installation - -Add `snag` to your Gleam project - -``` -gleam add snag -``` - -## Prior art - -This library is inspired by the following projects: - -- Rust's [`anyhow`](https://github.com/dtolnay/anyhow) and - [`std::error::Error`](https://doc.rust-lang.org/std/error/trait.Error.html) -- Go's [`error`](https://golang.org/pkg/errors/). diff --git a/aoc2023/build/packages/snag/gleam.toml b/aoc2023/build/packages/snag/gleam.toml deleted file mode 100644 index 4f2d670..0000000 --- a/aoc2023/build/packages/snag/gleam.toml +++ /dev/null @@ -1,16 +0,0 @@ -name = "snag" -version = "0.2.1" -licences = ["Apache-2.0"] -description = "A boilerplate-free ad-hoc error type" - -repository = { type = "github", user = "gleam-experiments", repo = "snag" } -links = [ - { title = "Website", href = "https://gleam.run" }, - { title = "Sponsor", href = "https://github.com/sponsors/lpil" }, -] - -[dependencies] -gleam_stdlib = "~> 0.18" - -[dev-dependencies] -gleeunit = "~> 0.5" diff --git a/aoc2023/build/packages/snag/include/snag_Snag.hrl b/aoc2023/build/packages/snag/include/snag_Snag.hrl deleted file mode 100644 index 5d6614e..0000000 --- a/aoc2023/build/packages/snag/include/snag_Snag.hrl +++ /dev/null @@ -1 +0,0 @@ --record(snag, {issue :: binary(), cause :: list(binary())}). diff --git a/aoc2023/build/packages/snag/src/snag.app.src b/aoc2023/build/packages/snag/src/snag.app.src deleted file mode 100644 index 175e326..0000000 --- a/aoc2023/build/packages/snag/src/snag.app.src +++ /dev/null @@ -1,8 +0,0 @@ -{application, snag, [ - {vsn, "0.2.1"}, - {applications, [gleam_stdlib, - gleeunit]}, - {description, "A boilerplate-free ad-hoc error type"}, - {modules, [snag]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/snag/src/snag.erl b/aoc2023/build/packages/snag/src/snag.erl deleted file mode 100644 index a07f242..0000000 --- a/aoc2023/build/packages/snag/src/snag.erl +++ /dev/null @@ -1,74 +0,0 @@ --module(snag). --compile([no_auto_import, nowarn_unused_vars]). - --export([new/1, error/1, layer/2, context/2, pretty_print/1, line_print/1]). --export_type([snag/0]). - --type snag() :: {snag, binary(), list(binary())}. - --spec new(binary()) -> snag(). -new(Issue) -> - {snag, Issue, []}. - --spec error(binary()) -> {ok, any()} | {error, snag()}. -error(Issue) -> - {error, new(Issue)}. - --spec layer(snag(), binary()) -> snag(). -layer(Snag, Issue) -> - {snag, Issue, [erlang:element(2, Snag) | erlang:element(3, Snag)]}. - --spec context({ok, EXX} | {error, snag()}, binary()) -> {ok, EXX} | - {error, snag()}. -context(Result, Issue) -> - case Result of - {ok, _} -> - Result; - - {error, Snag} -> - {error, layer(Snag, Issue)} - end. - --spec pretty_print_cause(list(binary())) -> gleam@string_builder:string_builder(). -pretty_print_cause(Cause) -> - _pipe = Cause, - _pipe@1 = gleam@list:index_map( - _pipe, - fun(Index, Line) -> - gleam@string:concat( - [<<" "/utf8>>, - gleam@int:to_string(Index), - <<": "/utf8>>, - Line, - <<"\n"/utf8>>] - ) - end - ), - gleam@string_builder:from_strings(_pipe@1). - --spec pretty_print(snag()) -> binary(). -pretty_print(Snag) -> - Builder = gleam@string_builder:from_strings( - [<<"error: "/utf8>>, erlang:element(2, Snag), <<"\n"/utf8>>] - ), - gleam@string_builder:to_string(case erlang:element(3, Snag) of - [] -> - Builder; - - Cause -> - _pipe = Builder, - _pipe@1 = gleam@string_builder:append( - _pipe, - <<"\ncause:\n"/utf8>> - ), - gleam@string_builder:append_builder( - _pipe@1, - pretty_print_cause(Cause) - ) - end). - --spec line_print(snag()) -> binary(). -line_print(Snag) -> - _pipe = [gleam@string:append(<<"error: "/utf8>>, erlang:element(2, Snag)) | - erlang:element(3, Snag)], - gleam@string:join(_pipe, <<" <- "/utf8>>). diff --git a/aoc2023/build/packages/snag/src/snag.gleam b/aoc2023/build/packages/snag/src/snag.gleam deleted file mode 100644 index 8d39537..0000000 --- a/aoc2023/build/packages/snag/src/snag.gleam +++ /dev/null @@ -1,141 +0,0 @@ -import gleam -import gleam/string_builder -import gleam/string -import gleam/list -import gleam/int - -/// A Snag is a boilerplate-free error type that can be used to track why an -/// error happened, though does not store as much detail on specific errors as a -/// custom error type would. -/// -/// It is useful in code where it must either pass or fail, and when it fails we -/// want good debugging information to print to the user. i.e. Command line -/// tools, data processing pipelines, etc. -/// -/// If it not suited to code where the application needs to make a decision about -/// what to do in the event of an error, such as whether to give up or to try -/// again. i.e. Libraries, web application backends, API clients, etc. -/// In these situations it is recommended to create a custom type for your errors -/// as it can be pattern matched on and have any additional detail added as -/// fields. -pub type Snag { - Snag(issue: String, cause: List(String)) -} - -/// A concise alias for a `Result` that uses a `Snag` as the error value. -pub type Result(t) = - gleam.Result(t, Snag) - -/// Create a new `Snag` with the given issue text. -/// -/// See also the `error` function for creating a `Snag` wrapped in a `Result`. -/// -/// # Example -/// -/// ```gleam -/// > new("Not enough credit") -/// > |> line_print -/// "error: Not enough credit" -/// ``` -pub fn new(issue: String) -> Snag { - Snag(issue: issue, cause: []) -} - -/// Create a new `Snag` wrapped in a `Result` with the given issue text. -/// -/// # Example -/// -/// ```gleam -/// > error("Not enough credit") -/// Error(new("Not enough credit")) -/// ``` -pub fn error(issue: String) -> Result(success) { - Error(new(issue)) -} - -/// Add additional contextual information to a `Snag`. -/// -/// See also the `context` function for adding contextual information to a `Snag` -/// wrapped in a `Result`. -/// -/// # Example -/// -/// ```gleam -/// > new("Not enough credit") -/// > |> layer("Unable to make purchase") -/// > |> line_print -/// "error: Unable to make purchase <- Not enough credit" -/// ``` -pub fn layer(snag: Snag, issue: String) -> Snag { - Snag(issue: issue, cause: [snag.issue, ..snag.cause]) -} - -/// Add additional contextual information to a `Snag` wrapped in a `Result`. -/// -/// # Example -/// -/// ```gleam -/// > error("Not enough credit") -/// > |> context("Unable to make purchase") -/// > |> result.map_error(line_print) -/// Error("error: Unable to make purchase <- Not enough credit") -/// ``` -pub fn context(result: Result(success), issue: String) -> Result(success) { - case result { - Ok(_) -> result - Error(snag) -> Error(layer(snag, issue)) - } -} - -/// Turn a snag into a multi-line string, optimised for readability. -/// -/// # Example -/// -/// ```gleam -/// > new("Not enough credit") -/// > |> layer("Unable to make purchase") -/// > |> layer("Character creation failed") -/// > |> pretty_print -/// "error: Character creation failed -/// -/// cause: -/// 0: Unable to make purchase -/// 1: Not enough credit -/// " -/// ``` -pub fn pretty_print(snag: Snag) -> String { - let builder = string_builder.from_strings(["error: ", snag.issue, "\n"]) - - string_builder.to_string(case snag.cause { - [] -> builder - cause -> - builder - |> string_builder.append("\ncause:\n") - |> string_builder.append_builder(pretty_print_cause(cause)) - }) -} - -fn pretty_print_cause(cause) { - cause - |> list.index_map(fn(index, line) { - string.concat([" ", int.to_string(index), ": ", line, "\n"]) - }) - |> string_builder.from_strings -} - -/// Turn a snag into a single-line string, optimised for compactness. This may be -/// useful for logging snags. -/// -/// # Example -/// -/// ```gleam -/// > new("Not enough credit") -/// > |> layer("Unable to make purchase") -/// > |> layer("Character creation failed") -/// > |> pretty_print -/// "error: Character creation failed <- Unable to make purchase <- Not enough credit" -/// ``` -pub fn line_print(snag: Snag) -> String { - [string.append("error: ", snag.issue), ..snag.cause] - |> string.join(" <- ") -} diff --git a/aoc2023/build/packages/tom/README.md b/aoc2023/build/packages/tom/README.md deleted file mode 100644 index e6adcbe..0000000 --- a/aoc2023/build/packages/tom/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# tom - -A Gleam TOML parser! - -[![Package Version](https://img.shields.io/hexpm/v/tom)](https://hex.pm/packages/tom) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/tom/) - - -```sh -gleam add tom -``` -```gleam -import tom - -const config = " - [person] - name = \"Lucy\" - is_cool = true -" - -pub fn main() { - // Parse a string of TOML - let assert Ok(parsed) = tom.parse(config) - - // Now you can work with the data directly, or you can use the `get_*` - // functions to retrieve values. - - tom.get_string(parsed, ["person", "name"]) - // -> Ok("Lucy") - - let is_cool = tom.get_bool(parsed, ["person", "is_cool"]) - // -> Ok(True) -} -``` - -Further documentation can be found at . - -## Status - -The following string escape sequences are not supported yet: - -- `\b` -- `\f` -- `\e` -- `\xHH` -- `\uHHHH` -- `\UHHHHHHHH` diff --git a/aoc2023/build/packages/tom/gleam.toml b/aoc2023/build/packages/tom/gleam.toml deleted file mode 100644 index f131d09..0000000 --- a/aoc2023/build/packages/tom/gleam.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = "tom" -version = "0.2.1" - -description = "A pure Gleam TOML parser!" -licences = ["Apache-2.0"] -repository = { type = "github", user = "lpil", repo = "tom" } -links = [{ title = "TOML website", href = "https://toml.io/en/" }] - -[dependencies] -gleam_stdlib = "~> 0.32" - -[dev-dependencies] -gleeunit = "~> 1.0" diff --git a/aoc2023/build/packages/tom/include/tom_DateTimeValue.hrl b/aoc2023/build/packages/tom/include/tom_DateTimeValue.hrl deleted file mode 100644 index 3b1e660..0000000 --- a/aoc2023/build/packages/tom/include/tom_DateTimeValue.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(date_time_value, { - date :: tom:date(), - time :: tom:time(), - offset :: tom:offset() -}). diff --git a/aoc2023/build/packages/tom/include/tom_DateValue.hrl b/aoc2023/build/packages/tom/include/tom_DateValue.hrl deleted file mode 100644 index c41f901..0000000 --- a/aoc2023/build/packages/tom/include/tom_DateValue.hrl +++ /dev/null @@ -1 +0,0 @@ --record(date_value, {year :: integer(), month :: integer(), day :: integer()}). diff --git a/aoc2023/build/packages/tom/include/tom_KeyAlreadyInUse.hrl b/aoc2023/build/packages/tom/include/tom_KeyAlreadyInUse.hrl deleted file mode 100644 index 930df26..0000000 --- a/aoc2023/build/packages/tom/include/tom_KeyAlreadyInUse.hrl +++ /dev/null @@ -1 +0,0 @@ --record(key_already_in_use, {key :: list(binary())}). diff --git a/aoc2023/build/packages/tom/include/tom_NotFound.hrl b/aoc2023/build/packages/tom/include/tom_NotFound.hrl deleted file mode 100644 index 19c9a17..0000000 --- a/aoc2023/build/packages/tom/include/tom_NotFound.hrl +++ /dev/null @@ -1 +0,0 @@ --record(not_found, {key :: list(binary())}). diff --git a/aoc2023/build/packages/tom/include/tom_Offset.hrl b/aoc2023/build/packages/tom/include/tom_Offset.hrl deleted file mode 100644 index a58a8e1..0000000 --- a/aoc2023/build/packages/tom/include/tom_Offset.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(offset, { - direction :: tom:sign(), - hours :: integer(), - minutes :: integer() -}). diff --git a/aoc2023/build/packages/tom/include/tom_TimeValue.hrl b/aoc2023/build/packages/tom/include/tom_TimeValue.hrl deleted file mode 100644 index e1275de..0000000 --- a/aoc2023/build/packages/tom/include/tom_TimeValue.hrl +++ /dev/null @@ -1,6 +0,0 @@ --record(time_value, { - hour :: integer(), - minute :: integer(), - second :: integer(), - millisecond :: integer() -}). diff --git a/aoc2023/build/packages/tom/include/tom_Unexpected.hrl b/aoc2023/build/packages/tom/include/tom_Unexpected.hrl deleted file mode 100644 index ab1091c..0000000 --- a/aoc2023/build/packages/tom/include/tom_Unexpected.hrl +++ /dev/null @@ -1 +0,0 @@ --record(unexpected, {got :: binary(), expected :: binary()}). diff --git a/aoc2023/build/packages/tom/include/tom_WrongType.hrl b/aoc2023/build/packages/tom/include/tom_WrongType.hrl deleted file mode 100644 index ae57352..0000000 --- a/aoc2023/build/packages/tom/include/tom_WrongType.hrl +++ /dev/null @@ -1,5 +0,0 @@ --record(wrong_type, { - key :: list(binary()), - expected :: binary(), - got :: binary() -}). diff --git a/aoc2023/build/packages/tom/src/tom.app.src b/aoc2023/build/packages/tom/src/tom.app.src deleted file mode 100644 index 051649c..0000000 --- a/aoc2023/build/packages/tom/src/tom.app.src +++ /dev/null @@ -1,8 +0,0 @@ -{application, tom, [ - {vsn, "0.2.1"}, - {applications, [gleam_stdlib, - gleeunit]}, - {description, "A pure Gleam TOML parser!"}, - {modules, [tom]}, - {registered, []} -]}. diff --git a/aoc2023/build/packages/tom/src/tom.erl b/aoc2023/build/packages/tom/src/tom.erl deleted file mode 100644 index 4f5c071..0000000 --- a/aoc2023/build/packages/tom/src/tom.erl +++ /dev/null @@ -1,2140 +0,0 @@ --module(tom). --compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). - --export([get/2, get_int/2, get_float/2, get_bool/2, get_string/2, get_date/2, get_time/2, get_date_time/2, get_array/2, get_table/2, get_number/2, parse/1]). --export_type([toml/0, date_time/0, date/0, time/0, offset/0, sign/0, parse_error/0, number_/0, get_error/0]). - --type toml() :: {int, integer()} | - {float, float()} | - {infinity, sign()} | - {nan, sign()} | - {bool, boolean()} | - {string, binary()} | - {date, date()} | - {time, time()} | - {date_time, date_time()} | - {array, list(toml())} | - {array_of_tables, list(gleam@map:map_(binary(), toml()))} | - {table, gleam@map:map_(binary(), toml())} | - {inline_table, gleam@map:map_(binary(), toml())}. - --type date_time() :: {date_time_value, date(), time(), offset()}. - --type date() :: {date_value, integer(), integer(), integer()}. - --type time() :: {time_value, integer(), integer(), integer(), integer()}. - --type offset() :: local | {offset, sign(), integer(), integer()}. - --type sign() :: positive | negative. - --type parse_error() :: {unexpected, binary(), binary()} | - {key_already_in_use, list(binary())}. - --type number_() :: {number_int, integer()} | - {number_float, float()} | - {number_infinity, sign()} | - {number_nan, sign()}. - --type get_error() :: {not_found, list(binary())} | - {wrong_type, list(binary()), binary(), binary()}. - --spec classify(toml()) -> binary(). -classify(Toml) -> - case Toml of - {int, _} -> - <<"Int"/utf8>>; - - {float, _} -> - <<"Float"/utf8>>; - - {nan, positive} -> - <<"NaN"/utf8>>; - - {nan, negative} -> - <<"Negative NaN"/utf8>>; - - {infinity, positive} -> - <<"Infinity"/utf8>>; - - {infinity, negative} -> - <<"Negative Infinity"/utf8>>; - - {bool, _} -> - <<"Bool"/utf8>>; - - {string, _} -> - <<"String"/utf8>>; - - {date, _} -> - <<"Date"/utf8>>; - - {time, _} -> - <<"Time"/utf8>>; - - {date_time, _} -> - <<"DateTime"/utf8>>; - - {array, _} -> - <<"Array"/utf8>>; - - {array_of_tables, _} -> - <<"Array"/utf8>>; - - {table, _} -> - <<"Table"/utf8>>; - - {inline_table, _} -> - <<"Table"/utf8>> - end. - --spec push_key({ok, FIU} | {error, get_error()}, binary()) -> {ok, FIU} | - {error, get_error()}. -push_key(Result, Key) -> - case Result of - {ok, T} -> - {ok, T}; - - {error, {not_found, Path}} -> - {error, {not_found, [Key | Path]}}; - - {error, {wrong_type, Path@1, Expected, Got}} -> - {error, {wrong_type, [Key | Path@1], Expected, Got}} - end. - --spec get(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, toml()} | - {error, get_error()}. -get(Toml, Key) -> - case Key of - [] -> - {error, {not_found, []}}; - - [K] -> - gleam@result:replace_error(gleam@map:get(Toml, K), {not_found, [K]}); - - [K@1 | Key@1] -> - case gleam@map:get(Toml, K@1) of - {ok, {table, T}} -> - push_key(get(T, Key@1), K@1); - - {ok, Other} -> - {error, - {wrong_type, [K@1], <<"Table"/utf8>>, classify(Other)}}; - - {error, _} -> - {error, {not_found, [K@1]}} - end - end. - --spec get_int(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, - integer()} | - {error, get_error()}. -get_int(Toml, Key) -> - case get(Toml, Key) of - {ok, {int, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Int"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_float(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, - float()} | - {error, get_error()}. -get_float(Toml, Key) -> - case get(Toml, Key) of - {ok, {float, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Float"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_bool(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, - boolean()} | - {error, get_error()}. -get_bool(Toml, Key) -> - case get(Toml, Key) of - {ok, {bool, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Bool"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_string(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, - binary()} | - {error, get_error()}. -get_string(Toml, Key) -> - case get(Toml, Key) of - {ok, {string, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"String"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_date(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, date()} | - {error, get_error()}. -get_date(Toml, Key) -> - case get(Toml, Key) of - {ok, {date, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Date"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_time(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, time()} | - {error, get_error()}. -get_time(Toml, Key) -> - case get(Toml, Key) of - {ok, {time, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Time"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_date_time(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, - date_time()} | - {error, get_error()}. -get_date_time(Toml, Key) -> - case get(Toml, Key) of - {ok, {date_time, I}} -> - {ok, I}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"DateTime"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_array(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, - list(toml())} | - {error, get_error()}. -get_array(Toml, Key) -> - case get(Toml, Key) of - {ok, {array, I}} -> - {ok, I}; - - {ok, {array_of_tables, I@1}} -> - {ok, gleam@list:map(I@1, fun(Field@0) -> {table, Field@0} end)}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Array"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_table(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, - gleam@map:map_(binary(), toml())} | - {error, get_error()}. -get_table(Toml, Key) -> - case get(Toml, Key) of - {ok, {table, I}} -> - {ok, I}; - - {ok, {inline_table, I@1}} -> - {ok, I@1}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Table"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec get_number(gleam@map:map_(binary(), toml()), list(binary())) -> {ok, - number_()} | - {error, get_error()}. -get_number(Toml, Key) -> - case get(Toml, Key) of - {ok, {int, X}} -> - {ok, {number_int, X}}; - - {ok, {float, X@1}} -> - {ok, {number_float, X@1}}; - - {ok, {nan, X@2}} -> - {ok, {number_nan, X@2}}; - - {ok, {infinity, X@3}} -> - {ok, {number_infinity, X@3}}; - - {ok, Other} -> - {error, {wrong_type, Key, <<"Number"/utf8>>, classify(Other)}}; - - {error, E} -> - {error, E} - end. - --spec merge(gleam@map:map_(binary(), toml()), binary(), toml(), toml()) -> {ok, - gleam@map:map_(binary(), toml())} | - {error, list(binary())}. -merge(Table, Key, Old, New) -> - case {Old, New} of - {{array_of_tables, Tables}, {array_of_tables, New@1}} -> - {ok, - gleam@map:insert( - Table, - Key, - {array_of_tables, gleam@list:append(New@1, Tables)} - )}; - - {_, _} -> - {error, [Key]} - end. - --spec insert_loop(gleam@map:map_(binary(), toml()), list(binary()), toml()) -> {ok, - gleam@map:map_(binary(), toml())} | - {error, list(binary())}. -insert_loop(Table, Key, Value) -> - case Key of - [] -> - erlang:error(#{gleam_error => panic, - message => <<"unreachable"/utf8>>, - module => <<"tom"/utf8>>, - function => <<"insert_loop"/utf8>>, - line => 511}); - - [K] -> - case gleam@map:get(Table, K) of - {error, nil} -> - {ok, gleam@map:insert(Table, K, Value)}; - - {ok, Old} -> - merge(Table, K, Old, Value) - end; - - [K@1 | Key@1] -> - case gleam@map:get(Table, K@1) of - {error, nil} -> - case insert_loop(gleam@map:new(), Key@1, Value) of - {ok, Inner} -> - {ok, gleam@map:insert(Table, K@1, {table, Inner})}; - - {error, Path} -> - {error, [K@1 | Path]} - end; - - {ok, {array_of_tables, [Inner@1 | Rest]}} -> - case insert_loop(Inner@1, Key@1, Value) of - {ok, Inner@2} -> - {ok, - gleam@map:insert( - Table, - K@1, - {array_of_tables, [Inner@2 | Rest]} - )}; - - {error, Path@1} -> - {error, [K@1 | Path@1]} - end; - - {ok, {table, Inner@3}} -> - case insert_loop(Inner@3, Key@1, Value) of - {ok, Inner@4} -> - {ok, gleam@map:insert(Table, K@1, {table, Inner@4})}; - - {error, Path@2} -> - {error, [K@1 | Path@2]} - end; - - {ok, _} -> - {error, [K@1]} - end - end. - --spec insert(gleam@map:map_(binary(), toml()), list(binary()), toml()) -> {ok, - gleam@map:map_(binary(), toml())} | - {error, parse_error()}. -insert(Table, Key, Value) -> - case insert_loop(Table, Key, Value) of - {ok, Table@1} -> - {ok, Table@1}; - - {error, Path} -> - {error, {key_already_in_use, Path}} - end. - --spec expect_end_of_line( - list(binary()), - fun((list(binary())) -> {ok, {FKZ, list(binary())}} | {error, parse_error()}) -) -> {ok, {FKZ, list(binary())}} | {error, parse_error()}. -expect_end_of_line(Input, Next) -> - case Input of - [<<"\n"/utf8>> | Input@1] -> - Next(Input@1); - - [<<"\r\n"/utf8>> | Input@2] -> - Next(Input@2); - - [G | _] -> - {error, {unexpected, G, <<"\n"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\n"/utf8>>}} - end. - --spec parse_key_quoted(list(binary()), binary(), binary()) -> {ok, - {binary(), list(binary())}} | - {error, parse_error()}. -parse_key_quoted(Input, Close, Name) -> - case Input of - [G | Input@1] when G =:= Close -> - {ok, {Name, Input@1}}; - - [G@1 | Input@2] -> - parse_key_quoted(Input@2, Close, <>); - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, Close}} - end. - --spec parse_key_bare(list(binary()), binary()) -> {ok, - {binary(), list(binary())}} | - {error, parse_error()}. -parse_key_bare(Input, Name) -> - case Input of - [<<" "/utf8>> | Input@1] when Name =/= <<""/utf8>> -> - {ok, {Name, Input@1}}; - - [<<"="/utf8>> | _] when Name =/= <<""/utf8>> -> - {ok, {Name, Input}}; - - [<<"."/utf8>> | _] when Name =/= <<""/utf8>> -> - {ok, {Name, Input}}; - - [<<"]"/utf8>> | _] when Name =/= <<""/utf8>> -> - {ok, {Name, Input}}; - - [<<","/utf8>> | _] when Name =/= <<""/utf8>> -> - {error, {unexpected, <<","/utf8>>, <<"="/utf8>>}}; - - [<<"\n"/utf8>> | _] when Name =/= <<""/utf8>> -> - {error, {unexpected, <<"\n"/utf8>>, <<"="/utf8>>}}; - - [<<"\r\n"/utf8>> | _] when Name =/= <<""/utf8>> -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"="/utf8>>}}; - - [<<"\n"/utf8>> | _] -> - {error, {unexpected, <<"\n"/utf8>>, <<"key"/utf8>>}}; - - [<<"\r\n"/utf8>> | _] -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"key"/utf8>>}}; - - [<<"]"/utf8>> | _] -> - {error, {unexpected, <<"]"/utf8>>, <<"key"/utf8>>}}; - - [<<","/utf8>> | _] -> - {error, {unexpected, <<","/utf8>>, <<"key"/utf8>>}}; - - [G | Input@2] -> - parse_key_bare(Input@2, <>); - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"key"/utf8>>}} - end. - --spec skip_line_whitespace(list(binary())) -> list(binary()). -skip_line_whitespace(Input) -> - gleam@list:drop_while( - Input, - fun(G) -> (G =:= <<" "/utf8>>) orelse (G =:= <<"\t"/utf8>>) end - ). - --spec parse_key_segment(list(binary())) -> {ok, {binary(), list(binary())}} | - {error, parse_error()}. -parse_key_segment(Input) -> - Input@1 = skip_line_whitespace(Input), - case Input@1 of - [<<"="/utf8>> | _] -> - {error, {unexpected, <<"="/utf8>>, <<"Key"/utf8>>}}; - - [<<"\n"/utf8>> | _] -> - {error, {unexpected, <<"\n"/utf8>>, <<"Key"/utf8>>}}; - - [<<"\r\n"/utf8>> | _] -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"Key"/utf8>>}}; - - [<<"["/utf8>> | _] -> - {error, {unexpected, <<"["/utf8>>, <<"Key"/utf8>>}}; - - [<<"\""/utf8>> | Input@2] -> - parse_key_quoted(Input@2, <<"\""/utf8>>, <<""/utf8>>); - - [<<"'"/utf8>> | Input@3] -> - parse_key_quoted(Input@3, <<"'"/utf8>>, <<""/utf8>>); - - _ -> - parse_key_bare(Input@1, <<""/utf8>>) - end. - --spec skip_whitespace(list(binary())) -> list(binary()). -skip_whitespace(Input) -> - case Input of - [<<" "/utf8>> | Input@1] -> - skip_whitespace(Input@1); - - [<<"\t"/utf8>> | Input@2] -> - skip_whitespace(Input@2); - - [<<"\n"/utf8>> | Input@3] -> - skip_whitespace(Input@3); - - [<<"\r\n"/utf8>> | Input@4] -> - skip_whitespace(Input@4); - - Input@5 -> - Input@5 - end. - --spec drop_comments(list(binary()), list(binary())) -> list(binary()). -drop_comments(Input, Acc) -> - case Input of - [<<"#"/utf8>> | Input@1] -> - _pipe = Input@1, - _pipe@1 = gleam@list:drop_while( - _pipe, - fun(G) -> G /= <<"\n"/utf8>> end - ), - drop_comments(_pipe@1, Acc); - - [G@1 | Input@2] -> - drop_comments(Input@2, [G@1 | Acc]); - - [] -> - gleam@list:reverse(Acc) - end. - --spec do( - {ok, {FLK, list(binary())}} | {error, parse_error()}, - fun((FLK, list(binary())) -> {ok, FLN} | {error, parse_error()}) -) -> {ok, FLN} | {error, parse_error()}. -do(Result, Next) -> - case Result of - {ok, {A, Input}} -> - Next(A, Input); - - {error, E} -> - {error, E} - end. - --spec parse_key(list(binary()), list(binary())) -> {ok, - {list(binary()), list(binary())}} | - {error, parse_error()}. -parse_key(Input, Segments) -> - do( - parse_key_segment(Input), - fun(Segment, Input@1) -> - Segments@1 = [Segment | Segments], - Input@2 = skip_line_whitespace(Input@1), - case Input@2 of - [<<"."/utf8>> | Input@3] -> - parse_key(Input@3, Segments@1); - - _ -> - {ok, {gleam@list:reverse(Segments@1), Input@2}} - end - end - ). - --spec expect( - list(binary()), - binary(), - fun((list(binary())) -> {ok, {FLS, list(binary())}} | {error, parse_error()}) -) -> {ok, {FLS, list(binary())}} | {error, parse_error()}. -expect(Input, Expected, Next) -> - case Input of - [G | Input@1] when G =:= Expected -> - Next(Input@1); - - [G@1 | _] -> - {error, {unexpected, G@1, Expected}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, Expected}} - end. - --spec parse_table_header(list(binary())) -> {ok, - {list(binary()), list(binary())}} | - {error, parse_error()}. -parse_table_header(Input) -> - Input@1 = skip_line_whitespace(Input), - do( - parse_key(Input@1, []), - fun(Key, Input@2) -> - expect( - Input@2, - <<"]"/utf8>>, - fun(Input@3) -> - Input@4 = skip_line_whitespace(Input@3), - expect_end_of_line( - Input@4, - fun(Input@5) -> {ok, {Key, Input@5}} end - ) - end - ) - end - ). - --spec parse_hex(list(binary()), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_hex(Input, Number, Sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_hex(Input@1, Number, Sign); - - [<<"0"/utf8>> | Input@2] -> - parse_hex(Input@2, (Number * 16) + 0, Sign); - - [<<"1"/utf8>> | Input@3] -> - parse_hex(Input@3, (Number * 16) + 1, Sign); - - [<<"2"/utf8>> | Input@4] -> - parse_hex(Input@4, (Number * 16) + 2, Sign); - - [<<"3"/utf8>> | Input@5] -> - parse_hex(Input@5, (Number * 16) + 3, Sign); - - [<<"4"/utf8>> | Input@6] -> - parse_hex(Input@6, (Number * 16) + 4, Sign); - - [<<"5"/utf8>> | Input@7] -> - parse_hex(Input@7, (Number * 16) + 5, Sign); - - [<<"6"/utf8>> | Input@8] -> - parse_hex(Input@8, (Number * 16) + 6, Sign); - - [<<"7"/utf8>> | Input@9] -> - parse_hex(Input@9, (Number * 16) + 7, Sign); - - [<<"8"/utf8>> | Input@10] -> - parse_hex(Input@10, (Number * 16) + 8, Sign); - - [<<"9"/utf8>> | Input@11] -> - parse_hex(Input@11, (Number * 16) + 9, Sign); - - [<<"a"/utf8>> | Input@12] -> - parse_hex(Input@12, (Number * 16) + 10, Sign); - - [<<"b"/utf8>> | Input@13] -> - parse_hex(Input@13, (Number * 16) + 11, Sign); - - [<<"c"/utf8>> | Input@14] -> - parse_hex(Input@14, (Number * 16) + 12, Sign); - - [<<"d"/utf8>> | Input@15] -> - parse_hex(Input@15, (Number * 16) + 13, Sign); - - [<<"e"/utf8>> | Input@16] -> - parse_hex(Input@16, (Number * 16) + 14, Sign); - - [<<"f"/utf8>> | Input@17] -> - parse_hex(Input@17, (Number * 16) + 15, Sign); - - [<<"A"/utf8>> | Input@18] -> - parse_hex(Input@18, (Number * 16) + 10, Sign); - - [<<"B"/utf8>> | Input@19] -> - parse_hex(Input@19, (Number * 16) + 11, Sign); - - [<<"C"/utf8>> | Input@20] -> - parse_hex(Input@20, (Number * 16) + 12, Sign); - - [<<"D"/utf8>> | Input@21] -> - parse_hex(Input@21, (Number * 16) + 13, Sign); - - [<<"E"/utf8>> | Input@22] -> - parse_hex(Input@22, (Number * 16) + 14, Sign); - - [<<"F"/utf8>> | Input@23] -> - parse_hex(Input@23, (Number * 16) + 15, Sign); - - Input@24 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - - Number - end, - {ok, {{int, Number@1}, Input@24}} - end. - --spec parse_octal(list(binary()), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_octal(Input, Number, Sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_octal(Input@1, Number, Sign); - - [<<"0"/utf8>> | Input@2] -> - parse_octal(Input@2, (Number * 8) + 0, Sign); - - [<<"1"/utf8>> | Input@3] -> - parse_octal(Input@3, (Number * 8) + 1, Sign); - - [<<"2"/utf8>> | Input@4] -> - parse_octal(Input@4, (Number * 8) + 2, Sign); - - [<<"3"/utf8>> | Input@5] -> - parse_octal(Input@5, (Number * 8) + 3, Sign); - - [<<"4"/utf8>> | Input@6] -> - parse_octal(Input@6, (Number * 8) + 4, Sign); - - [<<"5"/utf8>> | Input@7] -> - parse_octal(Input@7, (Number * 8) + 5, Sign); - - [<<"6"/utf8>> | Input@8] -> - parse_octal(Input@8, (Number * 8) + 6, Sign); - - [<<"7"/utf8>> | Input@9] -> - parse_octal(Input@9, (Number * 8) + 7, Sign); - - Input@10 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - - Number - end, - {ok, {{int, Number@1}, Input@10}} - end. - --spec parse_binary(list(binary()), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_binary(Input, Number, Sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_binary(Input@1, Number, Sign); - - [<<"0"/utf8>> | Input@2] -> - parse_binary(Input@2, (Number * 2) + 0, Sign); - - [<<"1"/utf8>> | Input@3] -> - parse_binary(Input@3, (Number * 2) + 1, Sign); - - Input@4 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - - Number - end, - {ok, {{int, Number@1}, Input@4}} - end. - --spec parse_exponent(list(binary()), float(), sign(), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_exponent(Input, N, N_sign, Ex, Ex_sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_exponent(Input@1, N, N_sign, Ex, Ex_sign); - - [<<"0"/utf8>> | Input@2] -> - parse_exponent(Input@2, N, N_sign, Ex * 10, Ex_sign); - - [<<"1"/utf8>> | Input@3] -> - parse_exponent(Input@3, N, N_sign, (Ex * 10) + 1, Ex_sign); - - [<<"2"/utf8>> | Input@4] -> - parse_exponent(Input@4, N, N_sign, (Ex * 10) + 2, Ex_sign); - - [<<"3"/utf8>> | Input@5] -> - parse_exponent(Input@5, N, N_sign, (Ex * 10) + 3, Ex_sign); - - [<<"4"/utf8>> | Input@6] -> - parse_exponent(Input@6, N, N_sign, (Ex * 10) + 4, Ex_sign); - - [<<"5"/utf8>> | Input@7] -> - parse_exponent(Input@7, N, N_sign, (Ex * 10) + 5, Ex_sign); - - [<<"6"/utf8>> | Input@8] -> - parse_exponent(Input@8, N, N_sign, (Ex * 10) + 6, Ex_sign); - - [<<"7"/utf8>> | Input@9] -> - parse_exponent(Input@9, N, N_sign, (Ex * 10) + 7, Ex_sign); - - [<<"8"/utf8>> | Input@10] -> - parse_exponent(Input@10, N, N_sign, (Ex * 10) + 8, Ex_sign); - - [<<"9"/utf8>> | Input@11] -> - parse_exponent(Input@11, N, N_sign, (Ex * 10) + 9, Ex_sign); - - Input@12 -> - Number = case N_sign of - positive -> - N; - - negative -> - N * -1.0 - end, - Exponent = gleam@int:to_float(case Ex_sign of - positive -> - Ex; - - negative -> - - Ex - end), - Multiplier@1 = case gleam@float:power(10.0, Exponent) of - {ok, Multiplier} -> - Multiplier; - - {error, _} -> - 1.0 - end, - {ok, {{float, Number * Multiplier@1}, Input@12}} - end. - --spec parse_float(list(binary()), float(), sign(), float()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_float(Input, Number, Sign, Unit) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_float(Input@1, Number, Sign, Unit); - - [<<"0"/utf8>> | Input@2] -> - parse_float(Input@2, Number, Sign, Unit * 0.1); - - [<<"1"/utf8>> | Input@3] -> - parse_float(Input@3, Number + (1.0 * Unit), Sign, Unit * 0.1); - - [<<"2"/utf8>> | Input@4] -> - parse_float(Input@4, Number + (2.0 * Unit), Sign, Unit * 0.1); - - [<<"3"/utf8>> | Input@5] -> - parse_float(Input@5, Number + (3.0 * Unit), Sign, Unit * 0.1); - - [<<"4"/utf8>> | Input@6] -> - parse_float(Input@6, Number + (4.0 * Unit), Sign, Unit * 0.1); - - [<<"5"/utf8>> | Input@7] -> - parse_float(Input@7, Number + (5.0 * Unit), Sign, Unit * 0.1); - - [<<"6"/utf8>> | Input@8] -> - parse_float(Input@8, Number + (6.0 * Unit), Sign, Unit * 0.1); - - [<<"7"/utf8>> | Input@9] -> - parse_float(Input@9, Number + (7.0 * Unit), Sign, Unit * 0.1); - - [<<"8"/utf8>> | Input@10] -> - parse_float(Input@10, Number + (8.0 * Unit), Sign, Unit * 0.1); - - [<<"9"/utf8>> | Input@11] -> - parse_float(Input@11, Number + (9.0 * Unit), Sign, Unit * 0.1); - - [<<"e"/utf8>>, <<"+"/utf8>> | Input@12] -> - parse_exponent(Input@12, Number, Sign, 0, positive); - - [<<"e"/utf8>>, <<"-"/utf8>> | Input@13] -> - parse_exponent(Input@13, Number, Sign, 0, negative); - - [<<"e"/utf8>> | Input@14] -> - parse_exponent(Input@14, Number, Sign, 0, positive); - - [<<"E"/utf8>>, <<"+"/utf8>> | Input@15] -> - parse_exponent(Input@15, Number, Sign, 0, positive); - - [<<"E"/utf8>>, <<"-"/utf8>> | Input@16] -> - parse_exponent(Input@16, Number, Sign, 0, negative); - - [<<"E"/utf8>> | Input@17] -> - parse_exponent(Input@17, Number, Sign, 0, positive); - - Input@18 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - Number * -1.0 - end, - {ok, {{float, Number@1}, Input@18}} - end. - --spec parse_string(list(binary()), binary()) -> {ok, {toml(), list(binary())}} | - {error, parse_error()}. -parse_string(Input, String) -> - case Input of - [<<"\""/utf8>> | Input@1] -> - {ok, {{string, String}, Input@1}}; - - [<<"\\"/utf8>>, <<"t"/utf8>> | Input@2] -> - parse_string(Input@2, <>); - - [<<"\\"/utf8>>, <<"n"/utf8>> | Input@3] -> - parse_string(Input@3, <>); - - [<<"\\"/utf8>>, <<"r"/utf8>> | Input@4] -> - parse_string(Input@4, <>); - - [<<"\\"/utf8>>, <<"\""/utf8>> | Input@5] -> - parse_string(Input@5, <>); - - [<<"\\"/utf8>>, <<"\\"/utf8>> | Input@6] -> - parse_string(Input@6, <>); - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\""/utf8>>}}; - - [<<"\n"/utf8>> | _] -> - {error, {unexpected, <<"\n"/utf8>>, <<"\""/utf8>>}}; - - [<<"\r\n"/utf8>> | _] -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"\""/utf8>>}}; - - [G | Input@7] -> - parse_string(Input@7, <>) - end. - --spec parse_multi_line_string(list(binary()), binary()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_multi_line_string(Input, String) -> - case Input of - [<<"\""/utf8>>, <<"\""/utf8>>, <<"\""/utf8>> | Input@1] -> - {ok, {{string, String}, Input@1}}; - - [<<"\\"/utf8>>, <<"\n"/utf8>> | Input@2] -> - parse_multi_line_string(skip_whitespace(Input@2), String); - - [<<"\\"/utf8>>, <<"\r\n"/utf8>> | Input@3] -> - parse_multi_line_string(skip_whitespace(Input@3), String); - - [<<"\r\n"/utf8>> | Input@4] when String =:= <<""/utf8>> -> - parse_multi_line_string(Input@4, String); - - [<<"\n"/utf8>> | Input@5] when String =:= <<""/utf8>> -> - parse_multi_line_string(Input@5, String); - - [<<"\r\n"/utf8>> | Input@6] when String =:= <<""/utf8>> -> - parse_multi_line_string(Input@6, String); - - [<<"\\"/utf8>>, <<"t"/utf8>> | Input@7] -> - parse_multi_line_string(Input@7, <>); - - [<<"\\"/utf8>>, <<"n"/utf8>> | Input@8] -> - parse_multi_line_string(Input@8, <>); - - [<<"\\"/utf8>>, <<"r"/utf8>> | Input@9] -> - parse_multi_line_string(Input@9, <>); - - [<<"\\"/utf8>>, <<"\""/utf8>> | Input@10] -> - parse_multi_line_string(Input@10, <>); - - [<<"\\"/utf8>>, <<"\\"/utf8>> | Input@11] -> - parse_multi_line_string(Input@11, <>); - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\""/utf8>>}}; - - [G | Input@12] -> - parse_multi_line_string(Input@12, <>) - end. - --spec parse_multi_line_literal_string(list(binary()), binary()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_multi_line_literal_string(Input, String) -> - case Input of - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\""/utf8>>}}; - - [<<"'"/utf8>>, <<"'"/utf8>>, <<"'"/utf8>>, <<"'"/utf8>> | _] -> - {error, {unexpected, <<"''''"/utf8>>, <<"'''"/utf8>>}}; - - [<<"'"/utf8>>, <<"'"/utf8>>, <<"'"/utf8>> | Input@1] -> - {ok, {{string, String}, Input@1}}; - - [<<"\n"/utf8>> | Input@2] when String =:= <<""/utf8>> -> - parse_multi_line_literal_string(Input@2, String); - - [<<"\r\n"/utf8>> | Input@3] when String =:= <<""/utf8>> -> - parse_multi_line_literal_string(Input@3, String); - - [G | Input@4] -> - parse_multi_line_literal_string( - Input@4, - <> - ) - end. - --spec parse_literal_string(list(binary()), binary()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_literal_string(Input, String) -> - case Input of - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"\""/utf8>>}}; - - [<<"\n"/utf8>> | _] -> - {error, {unexpected, <<"\n"/utf8>>, <<"'"/utf8>>}}; - - [<<"\r\n"/utf8>> | _] -> - {error, {unexpected, <<"\r\n"/utf8>>, <<"'"/utf8>>}}; - - [<<"'"/utf8>> | Input@1] -> - {ok, {{string, String}, Input@1}}; - - [G | Input@2] -> - parse_literal_string(Input@2, <>) - end. - --spec parse_time_ms(list(binary()), integer(), integer()) -> {ok, - {{integer(), integer()}, list(binary())}} | - {error, parse_error()}. -parse_time_ms(Input, Seconds, Ms) -> - case Input of - [<<"0"/utf8>> | Input@1] when Ms < 100000 -> - parse_time_ms(Input@1, Seconds, (Ms * 10) + 0); - - [<<"1"/utf8>> | Input@2] when Ms < 100000 -> - parse_time_ms(Input@2, Seconds, (Ms * 10) + 1); - - [<<"2"/utf8>> | Input@3] when Ms < 100000 -> - parse_time_ms(Input@3, Seconds, (Ms * 10) + 2); - - [<<"3"/utf8>> | Input@4] when Ms < 100000 -> - parse_time_ms(Input@4, Seconds, (Ms * 10) + 3); - - [<<"4"/utf8>> | Input@5] when Ms < 100000 -> - parse_time_ms(Input@5, Seconds, (Ms * 10) + 4); - - [<<"5"/utf8>> | Input@6] when Ms < 100000 -> - parse_time_ms(Input@6, Seconds, (Ms * 10) + 5); - - [<<"6"/utf8>> | Input@7] when Ms < 100000 -> - parse_time_ms(Input@7, Seconds, (Ms * 10) + 6); - - [<<"7"/utf8>> | Input@8] when Ms < 100000 -> - parse_time_ms(Input@8, Seconds, (Ms * 10) + 7); - - [<<"8"/utf8>> | Input@9] when Ms < 100000 -> - parse_time_ms(Input@9, Seconds, (Ms * 10) + 8); - - [<<"9"/utf8>> | Input@10] when Ms < 100000 -> - parse_time_ms(Input@10, Seconds, (Ms * 10) + 9); - - _ -> - {ok, {{Seconds, Ms}, Input}} - end. - --spec parse_number_under_60(list(binary()), binary()) -> {ok, - {integer(), list(binary())}} | - {error, parse_error()}. -parse_number_under_60(Input, Expected) -> - case Input of - [<<"0"/utf8>>, <<"0"/utf8>> | Input@1] -> - {ok, {0, Input@1}}; - - [<<"0"/utf8>>, <<"1"/utf8>> | Input@2] -> - {ok, {1, Input@2}}; - - [<<"0"/utf8>>, <<"2"/utf8>> | Input@3] -> - {ok, {2, Input@3}}; - - [<<"0"/utf8>>, <<"3"/utf8>> | Input@4] -> - {ok, {3, Input@4}}; - - [<<"0"/utf8>>, <<"4"/utf8>> | Input@5] -> - {ok, {4, Input@5}}; - - [<<"0"/utf8>>, <<"5"/utf8>> | Input@6] -> - {ok, {5, Input@6}}; - - [<<"0"/utf8>>, <<"6"/utf8>> | Input@7] -> - {ok, {6, Input@7}}; - - [<<"0"/utf8>>, <<"7"/utf8>> | Input@8] -> - {ok, {7, Input@8}}; - - [<<"0"/utf8>>, <<"8"/utf8>> | Input@9] -> - {ok, {8, Input@9}}; - - [<<"0"/utf8>>, <<"9"/utf8>> | Input@10] -> - {ok, {9, Input@10}}; - - [<<"1"/utf8>>, <<"0"/utf8>> | Input@11] -> - {ok, {10, Input@11}}; - - [<<"1"/utf8>>, <<"1"/utf8>> | Input@12] -> - {ok, {11, Input@12}}; - - [<<"1"/utf8>>, <<"2"/utf8>> | Input@13] -> - {ok, {12, Input@13}}; - - [<<"1"/utf8>>, <<"3"/utf8>> | Input@14] -> - {ok, {13, Input@14}}; - - [<<"1"/utf8>>, <<"4"/utf8>> | Input@15] -> - {ok, {14, Input@15}}; - - [<<"1"/utf8>>, <<"5"/utf8>> | Input@16] -> - {ok, {15, Input@16}}; - - [<<"1"/utf8>>, <<"6"/utf8>> | Input@17] -> - {ok, {16, Input@17}}; - - [<<"1"/utf8>>, <<"7"/utf8>> | Input@18] -> - {ok, {17, Input@18}}; - - [<<"1"/utf8>>, <<"8"/utf8>> | Input@19] -> - {ok, {18, Input@19}}; - - [<<"1"/utf8>>, <<"9"/utf8>> | Input@20] -> - {ok, {19, Input@20}}; - - [<<"2"/utf8>>, <<"0"/utf8>> | Input@21] -> - {ok, {20, Input@21}}; - - [<<"2"/utf8>>, <<"1"/utf8>> | Input@22] -> - {ok, {21, Input@22}}; - - [<<"2"/utf8>>, <<"2"/utf8>> | Input@23] -> - {ok, {22, Input@23}}; - - [<<"2"/utf8>>, <<"3"/utf8>> | Input@24] -> - {ok, {23, Input@24}}; - - [<<"2"/utf8>>, <<"4"/utf8>> | Input@25] -> - {ok, {24, Input@25}}; - - [<<"2"/utf8>>, <<"5"/utf8>> | Input@26] -> - {ok, {25, Input@26}}; - - [<<"2"/utf8>>, <<"6"/utf8>> | Input@27] -> - {ok, {26, Input@27}}; - - [<<"2"/utf8>>, <<"7"/utf8>> | Input@28] -> - {ok, {27, Input@28}}; - - [<<"2"/utf8>>, <<"8"/utf8>> | Input@29] -> - {ok, {28, Input@29}}; - - [<<"2"/utf8>>, <<"9"/utf8>> | Input@30] -> - {ok, {29, Input@30}}; - - [<<"3"/utf8>>, <<"0"/utf8>> | Input@31] -> - {ok, {30, Input@31}}; - - [<<"3"/utf8>>, <<"1"/utf8>> | Input@32] -> - {ok, {31, Input@32}}; - - [<<"3"/utf8>>, <<"2"/utf8>> | Input@33] -> - {ok, {32, Input@33}}; - - [<<"3"/utf8>>, <<"3"/utf8>> | Input@34] -> - {ok, {33, Input@34}}; - - [<<"3"/utf8>>, <<"4"/utf8>> | Input@35] -> - {ok, {34, Input@35}}; - - [<<"3"/utf8>>, <<"5"/utf8>> | Input@36] -> - {ok, {35, Input@36}}; - - [<<"3"/utf8>>, <<"6"/utf8>> | Input@37] -> - {ok, {36, Input@37}}; - - [<<"3"/utf8>>, <<"7"/utf8>> | Input@38] -> - {ok, {37, Input@38}}; - - [<<"3"/utf8>>, <<"8"/utf8>> | Input@39] -> - {ok, {38, Input@39}}; - - [<<"3"/utf8>>, <<"9"/utf8>> | Input@40] -> - {ok, {39, Input@40}}; - - [<<"4"/utf8>>, <<"0"/utf8>> | Input@41] -> - {ok, {40, Input@41}}; - - [<<"4"/utf8>>, <<"1"/utf8>> | Input@42] -> - {ok, {41, Input@42}}; - - [<<"4"/utf8>>, <<"2"/utf8>> | Input@43] -> - {ok, {42, Input@43}}; - - [<<"4"/utf8>>, <<"3"/utf8>> | Input@44] -> - {ok, {43, Input@44}}; - - [<<"4"/utf8>>, <<"4"/utf8>> | Input@45] -> - {ok, {44, Input@45}}; - - [<<"4"/utf8>>, <<"5"/utf8>> | Input@46] -> - {ok, {45, Input@46}}; - - [<<"4"/utf8>>, <<"6"/utf8>> | Input@47] -> - {ok, {46, Input@47}}; - - [<<"4"/utf8>>, <<"7"/utf8>> | Input@48] -> - {ok, {47, Input@48}}; - - [<<"4"/utf8>>, <<"8"/utf8>> | Input@49] -> - {ok, {48, Input@49}}; - - [<<"4"/utf8>>, <<"9"/utf8>> | Input@50] -> - {ok, {49, Input@50}}; - - [<<"5"/utf8>>, <<"0"/utf8>> | Input@51] -> - {ok, {50, Input@51}}; - - [<<"5"/utf8>>, <<"1"/utf8>> | Input@52] -> - {ok, {51, Input@52}}; - - [<<"5"/utf8>>, <<"2"/utf8>> | Input@53] -> - {ok, {52, Input@53}}; - - [<<"5"/utf8>>, <<"3"/utf8>> | Input@54] -> - {ok, {53, Input@54}}; - - [<<"5"/utf8>>, <<"4"/utf8>> | Input@55] -> - {ok, {54, Input@55}}; - - [<<"5"/utf8>>, <<"5"/utf8>> | Input@56] -> - {ok, {55, Input@56}}; - - [<<"5"/utf8>>, <<"6"/utf8>> | Input@57] -> - {ok, {56, Input@57}}; - - [<<"5"/utf8>>, <<"7"/utf8>> | Input@58] -> - {ok, {57, Input@58}}; - - [<<"5"/utf8>>, <<"8"/utf8>> | Input@59] -> - {ok, {58, Input@59}}; - - [<<"5"/utf8>>, <<"9"/utf8>> | Input@60] -> - {ok, {59, Input@60}}; - - [G | _] -> - {error, {unexpected, G, Expected}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, Expected}} - end. - --spec parse_hour_minute(list(binary())) -> {ok, - {{integer(), integer()}, list(binary())}} | - {error, parse_error()}. -parse_hour_minute(Input) -> - do(case Input of - [<<"0"/utf8>>, <<"0"/utf8>>, <<":"/utf8>> | Input@1] -> - {ok, {0, Input@1}}; - - [<<"0"/utf8>>, <<"1"/utf8>>, <<":"/utf8>> | Input@2] -> - {ok, {1, Input@2}}; - - [<<"0"/utf8>>, <<"2"/utf8>>, <<":"/utf8>> | Input@3] -> - {ok, {2, Input@3}}; - - [<<"0"/utf8>>, <<"3"/utf8>>, <<":"/utf8>> | Input@4] -> - {ok, {3, Input@4}}; - - [<<"0"/utf8>>, <<"4"/utf8>>, <<":"/utf8>> | Input@5] -> - {ok, {4, Input@5}}; - - [<<"0"/utf8>>, <<"5"/utf8>>, <<":"/utf8>> | Input@6] -> - {ok, {5, Input@6}}; - - [<<"0"/utf8>>, <<"6"/utf8>>, <<":"/utf8>> | Input@7] -> - {ok, {6, Input@7}}; - - [<<"0"/utf8>>, <<"7"/utf8>>, <<":"/utf8>> | Input@8] -> - {ok, {7, Input@8}}; - - [<<"0"/utf8>>, <<"8"/utf8>>, <<":"/utf8>> | Input@9] -> - {ok, {8, Input@9}}; - - [<<"0"/utf8>>, <<"9"/utf8>>, <<":"/utf8>> | Input@10] -> - {ok, {9, Input@10}}; - - [<<"1"/utf8>>, <<"0"/utf8>>, <<":"/utf8>> | Input@11] -> - {ok, {10, Input@11}}; - - [<<"1"/utf8>>, <<"1"/utf8>>, <<":"/utf8>> | Input@12] -> - {ok, {11, Input@12}}; - - [<<"1"/utf8>>, <<"2"/utf8>>, <<":"/utf8>> | Input@13] -> - {ok, {12, Input@13}}; - - [<<"1"/utf8>>, <<"3"/utf8>>, <<":"/utf8>> | Input@14] -> - {ok, {13, Input@14}}; - - [<<"1"/utf8>>, <<"4"/utf8>>, <<":"/utf8>> | Input@15] -> - {ok, {14, Input@15}}; - - [<<"1"/utf8>>, <<"5"/utf8>>, <<":"/utf8>> | Input@16] -> - {ok, {15, Input@16}}; - - [<<"1"/utf8>>, <<"6"/utf8>>, <<":"/utf8>> | Input@17] -> - {ok, {16, Input@17}}; - - [<<"1"/utf8>>, <<"7"/utf8>>, <<":"/utf8>> | Input@18] -> - {ok, {17, Input@18}}; - - [<<"1"/utf8>>, <<"8"/utf8>>, <<":"/utf8>> | Input@19] -> - {ok, {18, Input@19}}; - - [<<"1"/utf8>>, <<"9"/utf8>>, <<":"/utf8>> | Input@20] -> - {ok, {19, Input@20}}; - - [<<"2"/utf8>>, <<"0"/utf8>>, <<":"/utf8>> | Input@21] -> - {ok, {20, Input@21}}; - - [<<"2"/utf8>>, <<"1"/utf8>>, <<":"/utf8>> | Input@22] -> - {ok, {21, Input@22}}; - - [<<"2"/utf8>>, <<"2"/utf8>>, <<":"/utf8>> | Input@23] -> - {ok, {22, Input@23}}; - - [<<"2"/utf8>>, <<"3"/utf8>>, <<":"/utf8>> | Input@24] -> - {ok, {23, Input@24}}; - - [G | _] -> - {error, {unexpected, G, <<"time"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"time"/utf8>>}} - end, fun(Hours, Input@25) -> - do( - parse_number_under_60(Input@25, <<"minutes"/utf8>>), - fun(Minutes, Input@26) -> {ok, {{Hours, Minutes}, Input@26}} end - ) - end). - --spec parse_time_s_ms(list(binary())) -> {ok, - {{integer(), integer()}, list(binary())}} | - {error, parse_error()}. -parse_time_s_ms(Input) -> - case Input of - [<<":"/utf8>> | Input@1] -> - do( - parse_number_under_60(Input@1, <<"seconds"/utf8>>), - fun(Seconds, Input@2) -> case Input@2 of - [<<"."/utf8>> | Input@3] -> - parse_time_ms(Input@3, Seconds, 0); - - _ -> - {ok, {{Seconds, 0}, Input@2}} - end end - ); - - _ -> - {ok, {{0, 0}, Input}} - end. - --spec parse_time_minute(list(binary()), integer()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_time_minute(Input, Hours) -> - do( - parse_number_under_60(Input, <<"minutes"/utf8>>), - fun(Minutes, Input@1) -> - do( - parse_time_s_ms(Input@1), - fun(_use0, Input@2) -> - {Seconds, Ms} = _use0, - Time = {time_value, Hours, Minutes, Seconds, Ms}, - {ok, {{time, Time}, Input@2}} - end - ) - end - ). - --spec parse_time_value(list(binary())) -> {ok, {time(), list(binary())}} | - {error, parse_error()}. -parse_time_value(Input) -> - do( - parse_hour_minute(Input), - fun(_use0, Input@1) -> - {Hours, Minutes} = _use0, - do( - parse_time_s_ms(Input@1), - fun(_use0@1, Input@2) -> - {Seconds, Ms} = _use0@1, - Time = {time_value, Hours, Minutes, Seconds, Ms}, - {ok, {Time, Input@2}} - end - ) - end - ). - --spec parse_offset_hours(list(binary()), sign()) -> {ok, - {offset(), list(binary())}} | - {error, parse_error()}. -parse_offset_hours(Input, Sign) -> - do( - parse_hour_minute(Input), - fun(_use0, Input@1) -> - {Hours, Minutes} = _use0, - {ok, {{offset, Sign, Hours, Minutes}, Input@1}} - end - ). - --spec parse_offset(list(binary())) -> {ok, {offset(), list(binary())}} | - {error, parse_error()}. -parse_offset(Input) -> - case Input of - [<<"Z"/utf8>> | Input@1] -> - {ok, {{offset, positive, 0, 0}, Input@1}}; - - [<<"+"/utf8>> | Input@2] -> - parse_offset_hours(Input@2, positive); - - [<<"-"/utf8>> | Input@3] -> - parse_offset_hours(Input@3, negative); - - _ -> - {ok, {local, Input}} - end. - --spec parse_date_end(list(binary()), integer(), integer(), integer()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_date_end(Input, Year, Month, Day) -> - Date = {date_value, Year, Month, Day}, - case Input of - [<<" "/utf8>> | Input@1] -> - do( - parse_time_value(Input@1), - fun(Time, Input@2) -> - do( - parse_offset(Input@2), - fun(Offset, Input@3) -> - {ok, - {{date_time, - {date_time_value, Date, Time, Offset}}, - Input@3}} - end - ) - end - ); - - [<<"T"/utf8>> | Input@1] -> - do( - parse_time_value(Input@1), - fun(Time, Input@2) -> - do( - parse_offset(Input@2), - fun(Offset, Input@3) -> - {ok, - {{date_time, - {date_time_value, Date, Time, Offset}}, - Input@3}} - end - ) - end - ); - - _ -> - {ok, {{date, Date}, Input}} - end. - --spec parse_date_day(list(binary()), integer(), integer()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_date_day(Input, Year, Month) -> - case Input of - [<<"0"/utf8>>, <<"1"/utf8>> | Input@1] -> - parse_date_end(Input@1, Year, Month, 1); - - [<<"0"/utf8>>, <<"2"/utf8>> | Input@2] -> - parse_date_end(Input@2, Year, Month, 2); - - [<<"0"/utf8>>, <<"3"/utf8>> | Input@3] -> - parse_date_end(Input@3, Year, Month, 3); - - [<<"0"/utf8>>, <<"4"/utf8>> | Input@4] -> - parse_date_end(Input@4, Year, Month, 4); - - [<<"0"/utf8>>, <<"5"/utf8>> | Input@5] -> - parse_date_end(Input@5, Year, Month, 5); - - [<<"0"/utf8>>, <<"6"/utf8>> | Input@6] -> - parse_date_end(Input@6, Year, Month, 6); - - [<<"0"/utf8>>, <<"7"/utf8>> | Input@7] -> - parse_date_end(Input@7, Year, Month, 7); - - [<<"0"/utf8>>, <<"8"/utf8>> | Input@8] -> - parse_date_end(Input@8, Year, Month, 8); - - [<<"0"/utf8>>, <<"9"/utf8>> | Input@9] -> - parse_date_end(Input@9, Year, Month, 9); - - [<<"1"/utf8>>, <<"0"/utf8>> | Input@10] -> - parse_date_end(Input@10, Year, Month, 10); - - [<<"1"/utf8>>, <<"1"/utf8>> | Input@11] -> - parse_date_end(Input@11, Year, Month, 11); - - [<<"1"/utf8>>, <<"2"/utf8>> | Input@12] -> - parse_date_end(Input@12, Year, Month, 12); - - [<<"1"/utf8>>, <<"3"/utf8>> | Input@13] -> - parse_date_end(Input@13, Year, Month, 13); - - [<<"1"/utf8>>, <<"4"/utf8>> | Input@14] -> - parse_date_end(Input@14, Year, Month, 14); - - [<<"1"/utf8>>, <<"5"/utf8>> | Input@15] -> - parse_date_end(Input@15, Year, Month, 15); - - [<<"1"/utf8>>, <<"6"/utf8>> | Input@16] -> - parse_date_end(Input@16, Year, Month, 16); - - [<<"1"/utf8>>, <<"7"/utf8>> | Input@17] -> - parse_date_end(Input@17, Year, Month, 17); - - [<<"1"/utf8>>, <<"8"/utf8>> | Input@18] -> - parse_date_end(Input@18, Year, Month, 18); - - [<<"1"/utf8>>, <<"9"/utf8>> | Input@19] -> - parse_date_end(Input@19, Year, Month, 19); - - [<<"2"/utf8>>, <<"0"/utf8>> | Input@20] -> - parse_date_end(Input@20, Year, Month, 20); - - [<<"2"/utf8>>, <<"1"/utf8>> | Input@21] -> - parse_date_end(Input@21, Year, Month, 21); - - [<<"2"/utf8>>, <<"2"/utf8>> | Input@22] -> - parse_date_end(Input@22, Year, Month, 22); - - [<<"2"/utf8>>, <<"3"/utf8>> | Input@23] -> - parse_date_end(Input@23, Year, Month, 23); - - [<<"2"/utf8>>, <<"4"/utf8>> | Input@24] -> - parse_date_end(Input@24, Year, Month, 24); - - [<<"2"/utf8>>, <<"5"/utf8>> | Input@25] -> - parse_date_end(Input@25, Year, Month, 25); - - [<<"2"/utf8>>, <<"6"/utf8>> | Input@26] -> - parse_date_end(Input@26, Year, Month, 26); - - [<<"2"/utf8>>, <<"7"/utf8>> | Input@27] -> - parse_date_end(Input@27, Year, Month, 27); - - [<<"2"/utf8>>, <<"8"/utf8>> | Input@28] -> - parse_date_end(Input@28, Year, Month, 28); - - [<<"2"/utf8>>, <<"9"/utf8>> | Input@29] -> - parse_date_end(Input@29, Year, Month, 29); - - [<<"3"/utf8>>, <<"0"/utf8>> | Input@30] -> - parse_date_end(Input@30, Year, Month, 30); - - [<<"3"/utf8>>, <<"1"/utf8>> | Input@31] -> - parse_date_end(Input@31, Year, Month, 31); - - [G | _] -> - {error, {unexpected, G, <<"date day"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"date day"/utf8>>}} - end. - --spec parse_date(list(binary()), integer()) -> {ok, {toml(), list(binary())}} | - {error, parse_error()}. -parse_date(Input, Year) -> - case Input of - [<<"0"/utf8>>, <<"1"/utf8>>, <<"-"/utf8>> | Input@1] -> - parse_date_day(Input@1, Year, 1); - - [<<"0"/utf8>>, <<"2"/utf8>>, <<"-"/utf8>> | Input@2] -> - parse_date_day(Input@2, Year, 2); - - [<<"0"/utf8>>, <<"3"/utf8>>, <<"-"/utf8>> | Input@3] -> - parse_date_day(Input@3, Year, 3); - - [<<"0"/utf8>>, <<"4"/utf8>>, <<"-"/utf8>> | Input@4] -> - parse_date_day(Input@4, Year, 4); - - [<<"0"/utf8>>, <<"5"/utf8>>, <<"-"/utf8>> | Input@5] -> - parse_date_day(Input@5, Year, 5); - - [<<"0"/utf8>>, <<"6"/utf8>>, <<"-"/utf8>> | Input@6] -> - parse_date_day(Input@6, Year, 6); - - [<<"0"/utf8>>, <<"7"/utf8>>, <<"-"/utf8>> | Input@7] -> - parse_date_day(Input@7, Year, 7); - - [<<"0"/utf8>>, <<"8"/utf8>>, <<"-"/utf8>> | Input@8] -> - parse_date_day(Input@8, Year, 8); - - [<<"0"/utf8>>, <<"9"/utf8>>, <<"-"/utf8>> | Input@9] -> - parse_date_day(Input@9, Year, 9); - - [<<"1"/utf8>>, <<"0"/utf8>>, <<"-"/utf8>> | Input@10] -> - parse_date_day(Input@10, Year, 10); - - [<<"1"/utf8>>, <<"1"/utf8>>, <<"-"/utf8>> | Input@11] -> - parse_date_day(Input@11, Year, 11); - - [<<"1"/utf8>>, <<"2"/utf8>>, <<"-"/utf8>> | Input@12] -> - parse_date_day(Input@12, Year, 12); - - [G | _] -> - {error, {unexpected, G, <<"date month"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"date month"/utf8>>}} - end. - --spec parse_number(list(binary()), integer(), sign()) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_number(Input, Number, Sign) -> - case Input of - [<<"_"/utf8>> | Input@1] -> - parse_number(Input@1, Number, Sign); - - [<<"0"/utf8>> | Input@2] -> - parse_number(Input@2, (Number * 10) + 0, Sign); - - [<<"1"/utf8>> | Input@3] -> - parse_number(Input@3, (Number * 10) + 1, Sign); - - [<<"2"/utf8>> | Input@4] -> - parse_number(Input@4, (Number * 10) + 2, Sign); - - [<<"3"/utf8>> | Input@5] -> - parse_number(Input@5, (Number * 10) + 3, Sign); - - [<<"4"/utf8>> | Input@6] -> - parse_number(Input@6, (Number * 10) + 4, Sign); - - [<<"5"/utf8>> | Input@7] -> - parse_number(Input@7, (Number * 10) + 5, Sign); - - [<<"6"/utf8>> | Input@8] -> - parse_number(Input@8, (Number * 10) + 6, Sign); - - [<<"7"/utf8>> | Input@9] -> - parse_number(Input@9, (Number * 10) + 7, Sign); - - [<<"8"/utf8>> | Input@10] -> - parse_number(Input@10, (Number * 10) + 8, Sign); - - [<<"9"/utf8>> | Input@11] -> - parse_number(Input@11, (Number * 10) + 9, Sign); - - [<<"-"/utf8>> | Input@12] -> - parse_date(Input@12, Number); - - [<<":"/utf8>> | Input@13] when Number < 24 -> - parse_time_minute(Input@13, Number); - - [<<"."/utf8>> | Input@14] -> - parse_float(Input@14, gleam@int:to_float(Number), Sign, 0.1); - - [<<"e"/utf8>>, <<"+"/utf8>> | Input@15] -> - parse_exponent( - Input@15, - gleam@int:to_float(Number), - Sign, - 0, - positive - ); - - [<<"e"/utf8>>, <<"-"/utf8>> | Input@16] -> - parse_exponent( - Input@16, - gleam@int:to_float(Number), - Sign, - 0, - negative - ); - - [<<"e"/utf8>> | Input@17] -> - parse_exponent( - Input@17, - gleam@int:to_float(Number), - Sign, - 0, - positive - ); - - [<<"E"/utf8>>, <<"+"/utf8>> | Input@18] -> - parse_exponent( - Input@18, - gleam@int:to_float(Number), - Sign, - 0, - positive - ); - - [<<"E"/utf8>>, <<"-"/utf8>> | Input@19] -> - parse_exponent( - Input@19, - gleam@int:to_float(Number), - Sign, - 0, - negative - ); - - [<<"E"/utf8>> | Input@20] -> - parse_exponent( - Input@20, - gleam@int:to_float(Number), - Sign, - 0, - positive - ); - - Input@21 -> - Number@1 = case Sign of - positive -> - Number; - - negative -> - - Number - end, - {ok, {{int, Number@1}, Input@21}} - end. - --spec reverse_arrays_of_tables(toml()) -> toml(). -reverse_arrays_of_tables(Toml) -> - case Toml of - {array_of_tables, Tables} -> - {array_of_tables, reverse_arrays_of_tables_array(Tables, [])}; - - {table, Table} -> - {table, reverse_arrays_of_tables_table(Table)}; - - _ -> - Toml - end. - --spec reverse_arrays_of_tables_table(gleam@map:map_(binary(), toml())) -> gleam@map:map_(binary(), toml()). -reverse_arrays_of_tables_table(Table) -> - gleam@map:map_values(Table, fun(_, V) -> reverse_arrays_of_tables(V) end). - --spec reverse_arrays_of_tables_array( - list(gleam@map:map_(binary(), toml())), - list(gleam@map:map_(binary(), toml())) -) -> list(gleam@map:map_(binary(), toml())). -reverse_arrays_of_tables_array(Array, Acc) -> - case Array of - [] -> - Acc; - - [First | Rest] -> - First@1 = reverse_arrays_of_tables_table(First), - reverse_arrays_of_tables_array(Rest, [First@1 | Acc]) - end. - --spec parse_inline_table_property( - list(binary()), - gleam@map:map_(binary(), toml()) -) -> {ok, {gleam@map:map_(binary(), toml()), list(binary())}} | - {error, parse_error()}. -parse_inline_table_property(Input, Properties) -> - Input@1 = skip_whitespace(Input), - do( - parse_key(Input@1, []), - fun(Key, Input@2) -> - Input@3 = skip_line_whitespace(Input@2), - expect( - Input@3, - <<"="/utf8>>, - fun(Input@4) -> - Input@5 = skip_line_whitespace(Input@4), - do( - parse_value(Input@5), - fun(Value, Input@6) -> - case insert(Properties, Key, Value) of - {ok, Properties@1} -> - {ok, {Properties@1, Input@6}}; - - {error, E} -> - {error, E} - end - end - ) - end - ) - end - ). - --spec parse_value(list(binary())) -> {ok, {toml(), list(binary())}} | - {error, parse_error()}. -parse_value(Input) -> - case Input of - [<<"t"/utf8>>, <<"r"/utf8>>, <<"u"/utf8>>, <<"e"/utf8>> | Input@1] -> - {ok, {{bool, true}, Input@1}}; - - [<<"f"/utf8>>, - <<"a"/utf8>>, - <<"l"/utf8>>, - <<"s"/utf8>>, - <<"e"/utf8>> | - Input@2] -> - {ok, {{bool, false}, Input@2}}; - - [<<"n"/utf8>>, <<"a"/utf8>>, <<"n"/utf8>> | Input@3] -> - {ok, {{nan, positive}, Input@3}}; - - [<<"+"/utf8>>, <<"n"/utf8>>, <<"a"/utf8>>, <<"n"/utf8>> | Input@4] -> - {ok, {{nan, positive}, Input@4}}; - - [<<"-"/utf8>>, <<"n"/utf8>>, <<"a"/utf8>>, <<"n"/utf8>> | Input@5] -> - {ok, {{nan, negative}, Input@5}}; - - [<<"i"/utf8>>, <<"n"/utf8>>, <<"f"/utf8>> | Input@6] -> - {ok, {{infinity, positive}, Input@6}}; - - [<<"+"/utf8>>, <<"i"/utf8>>, <<"n"/utf8>>, <<"f"/utf8>> | Input@7] -> - {ok, {{infinity, positive}, Input@7}}; - - [<<"-"/utf8>>, <<"i"/utf8>>, <<"n"/utf8>>, <<"f"/utf8>> | Input@8] -> - {ok, {{infinity, negative}, Input@8}}; - - [<<"["/utf8>> | Input@9] -> - parse_array(Input@9, []); - - [<<"{"/utf8>> | Input@10] -> - parse_inline_table(Input@10, gleam@map:new()); - - [<<"0"/utf8>>, <<"x"/utf8>> | Input@11] -> - parse_hex(Input@11, 0, positive); - - [<<"+"/utf8>>, <<"0"/utf8>>, <<"x"/utf8>> | Input@12] -> - parse_hex(Input@12, 0, positive); - - [<<"-"/utf8>>, <<"0"/utf8>>, <<"x"/utf8>> | Input@13] -> - parse_hex(Input@13, 0, negative); - - [<<"0"/utf8>>, <<"o"/utf8>> | Input@14] -> - parse_octal(Input@14, 0, positive); - - [<<"+"/utf8>>, <<"0"/utf8>>, <<"o"/utf8>> | Input@15] -> - parse_octal(Input@15, 0, positive); - - [<<"-"/utf8>>, <<"0"/utf8>>, <<"o"/utf8>> | Input@16] -> - parse_octal(Input@16, 0, negative); - - [<<"0"/utf8>>, <<"b"/utf8>> | Input@17] -> - parse_binary(Input@17, 0, positive); - - [<<"+"/utf8>>, <<"0"/utf8>>, <<"b"/utf8>> | Input@18] -> - parse_binary(Input@18, 0, positive); - - [<<"-"/utf8>>, <<"0"/utf8>>, <<"b"/utf8>> | Input@19] -> - parse_binary(Input@19, 0, negative); - - [<<"+"/utf8>> | Input@20] -> - parse_number(Input@20, 0, positive); - - [<<"-"/utf8>> | Input@21] -> - parse_number(Input@21, 0, negative); - - [<<"0"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"1"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"2"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"3"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"4"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"5"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"6"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"7"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"8"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"9"/utf8>> | _] -> - parse_number(Input, 0, positive); - - [<<"\""/utf8>>, <<"\""/utf8>>, <<"\""/utf8>> | Input@22] -> - parse_multi_line_string(Input@22, <<""/utf8>>); - - [<<"\""/utf8>> | Input@23] -> - parse_string(Input@23, <<""/utf8>>); - - [<<"'"/utf8>>, <<"'"/utf8>>, <<"'"/utf8>> | Input@24] -> - parse_multi_line_literal_string(Input@24, <<""/utf8>>); - - [<<"'"/utf8>> | Input@25] -> - parse_literal_string(Input@25, <<""/utf8>>); - - [G | _] -> - {error, {unexpected, G, <<"value"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"value"/utf8>>}} - end. - --spec parse_inline_table(list(binary()), gleam@map:map_(binary(), toml())) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_inline_table(Input, Properties) -> - Input@1 = skip_whitespace(Input), - case Input@1 of - [<<"}"/utf8>> | Input@2] -> - {ok, {{inline_table, Properties}, Input@2}}; - - _ -> - case parse_inline_table_property(Input@1, Properties) of - {ok, {Properties@1, Input@3}} -> - Input@4 = skip_whitespace(Input@3), - case Input@4 of - [<<"}"/utf8>> | Input@5] -> - {ok, {{inline_table, Properties@1}, Input@5}}; - - [<<","/utf8>> | Input@6] -> - Input@7 = skip_whitespace(Input@6), - parse_inline_table(Input@7, Properties@1); - - [G | _] -> - {error, {unexpected, G, <<"}"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"}"/utf8>>}} - end; - - {error, E} -> - {error, E} - end - end. - --spec parse_key_value(list(binary()), gleam@map:map_(binary(), toml())) -> {ok, - {gleam@map:map_(binary(), toml()), list(binary())}} | - {error, parse_error()}. -parse_key_value(Input, Toml) -> - do( - parse_key(Input, []), - fun(Key, Input@1) -> - Input@2 = skip_line_whitespace(Input@1), - expect( - Input@2, - <<"="/utf8>>, - fun(Input@3) -> - Input@4 = skip_line_whitespace(Input@3), - do( - parse_value(Input@4), - fun(Value, Input@5) -> case insert(Toml, Key, Value) of - {ok, Toml@1} -> - {ok, {Toml@1, Input@5}}; - - {error, E} -> - {error, E} - end end - ) - end - ) - end - ). - --spec parse_table(list(binary()), gleam@map:map_(binary(), toml())) -> {ok, - {gleam@map:map_(binary(), toml()), list(binary())}} | - {error, parse_error()}. -parse_table(Input, Toml) -> - Input@1 = skip_whitespace(Input), - case Input@1 of - [<<"["/utf8>> | _] -> - {ok, {Toml, Input@1}}; - - [] -> - {ok, {Toml, Input@1}}; - - _ -> - case parse_key_value(Input@1, Toml) of - {ok, {Toml@1, Input@2}} -> - case skip_line_whitespace(Input@2) of - [] -> - {ok, {Toml@1, []}}; - - [<<"\n"/utf8>> | In] -> - parse_table(In, Toml@1); - - [<<"\r\n"/utf8>> | In] -> - parse_table(In, Toml@1); - - [G | _] -> - {error, {unexpected, G, <<"\n"/utf8>>}} - end; - - E -> - E - end - end. - --spec parse_array_of_tables(list(binary())) -> {ok, - {{list(binary()), gleam@map:map_(binary(), toml())}, list(binary())}} | - {error, parse_error()}. -parse_array_of_tables(Input) -> - Input@1 = skip_line_whitespace(Input), - do( - parse_key(Input@1, []), - fun(Key, Input@2) -> - expect( - Input@2, - <<"]"/utf8>>, - fun(Input@3) -> - expect( - Input@3, - <<"]"/utf8>>, - fun(Input@4) -> - do( - parse_table(Input@4, gleam@map:new()), - fun(Table, Input@5) -> - {ok, {{Key, Table}, Input@5}} - end - ) - end - ) - end - ) - end - ). - --spec parse_table_and_header(list(binary())) -> {ok, - {{list(binary()), gleam@map:map_(binary(), toml())}, list(binary())}} | - {error, parse_error()}. -parse_table_and_header(Input) -> - do( - parse_table_header(Input), - fun(Key, Input@1) -> - do( - parse_table(Input@1, gleam@map:new()), - fun(Table, Input@2) -> {ok, {{Key, Table}, Input@2}} end - ) - end - ). - --spec parse_tables(list(binary()), gleam@map:map_(binary(), toml())) -> {ok, - gleam@map:map_(binary(), toml())} | - {error, parse_error()}. -parse_tables(Input, Toml) -> - case Input of - [<<"["/utf8>>, <<"["/utf8>> | Input@1] -> - case parse_array_of_tables(Input@1) of - {error, E} -> - {error, E}; - - {ok, {{Key, Table}, Input@2}} -> - case insert(Toml, Key, {array_of_tables, [Table]}) of - {ok, Toml@1} -> - parse_tables(Input@2, Toml@1); - - {error, E@1} -> - {error, E@1} - end - end; - - [<<"["/utf8>> | Input@3] -> - case parse_table_and_header(Input@3) of - {error, E@2} -> - {error, E@2}; - - {ok, {{Key@1, Table@1}, Input@4}} -> - case insert(Toml, Key@1, {table, Table@1}) of - {ok, Toml@2} -> - parse_tables(Input@4, Toml@2); - - {error, E@3} -> - {error, E@3} - end - end; - - [G | _] -> - {error, {unexpected, G, <<"["/utf8>>}}; - - [] -> - {ok, Toml} - end. - --spec parse(binary()) -> {ok, gleam@map:map_(binary(), toml())} | - {error, parse_error()}. -parse(Input) -> - Input@1 = gleam@string:to_graphemes(Input), - Input@2 = drop_comments(Input@1, []), - Input@3 = skip_whitespace(Input@2), - do( - parse_table(Input@3, gleam@map:new()), - fun(Toml, Input@4) -> case parse_tables(Input@4, Toml) of - {ok, Toml@1} -> - {ok, reverse_arrays_of_tables_table(Toml@1)}; - - {error, E} -> - {error, E} - end end - ). - --spec parse_array(list(binary()), list(toml())) -> {ok, - {toml(), list(binary())}} | - {error, parse_error()}. -parse_array(Input, Elements) -> - Input@1 = skip_whitespace(Input), - case Input@1 of - [<<"]"/utf8>> | Input@2] -> - {ok, {{array, gleam@list:reverse(Elements)}, Input@2}}; - - _ -> - do( - parse_value(Input@1), - fun(Element, Input@3) -> - Elements@1 = [Element | Elements], - Input@4 = skip_whitespace(Input@3), - case Input@4 of - [<<"]"/utf8>> | Input@5] -> - {ok, - {{array, gleam@list:reverse(Elements@1)}, - Input@5}}; - - [<<","/utf8>> | Input@6] -> - Input@7 = skip_whitespace(Input@6), - parse_array(Input@7, Elements@1); - - [G | _] -> - {error, {unexpected, G, <<"]"/utf8>>}}; - - [] -> - {error, {unexpected, <<"EOF"/utf8>>, <<"]"/utf8>>}} - end - end - ) - end. diff --git a/aoc2023/build/packages/tom/src/tom.gleam b/aoc2023/build/packages/tom/src/tom.gleam deleted file mode 100644 index e19ce3e..0000000 --- a/aoc2023/build/packages/tom/src/tom.gleam +++ /dev/null @@ -1,1317 +0,0 @@ -//// A pure Gleam TOML parser! -//// -//// ```gleam -//// import tom -//// -//// const config = " -//// [person] -//// name = \"Lucy\" -//// is_cool = true -//// " -//// -//// pub fn main() { -//// // Parse a string of TOML -//// let assert Ok(parsed) = tom.parse(config) -//// -//// // Now you can work with the data directly, or you can use the `get_*` -//// // functions to retrieve values. -//// -//// tom.get_string(parsed, ["person", "name"]) -//// // -> Ok("Lucy") -//// -//// let is_cool = tom.get_bool(parsed, ["person", "is_cool"]) -//// // -> Ok(True) -//// } -//// ``` - -import gleam/int -import gleam/list -import gleam/float -import gleam/string -import gleam/result -import gleam/map.{type Map} - -/// A TOML document. -pub type Toml { - Int(Int) - Float(Float) - /// Infinity is a valid number in TOML but Gleam does not support it, so this - /// variant represents the infinity values. - Infinity(Sign) - /// NaN is a valid number in TOML but Gleam does not support it, so this - /// variant represents the NaN values. - Nan(Sign) - Bool(Bool) - String(String) - Date(Date) - Time(Time) - DateTime(DateTime) - Array(List(Toml)) - ArrayOfTables(List(Map(String, Toml))) - Table(Map(String, Toml)) - InlineTable(Map(String, Toml)) -} - -pub type DateTime { - DateTimeValue(date: Date, time: Time, offset: Offset) -} - -pub type Date { - DateValue(year: Int, month: Int, day: Int) -} - -pub type Time { - TimeValue(hour: Int, minute: Int, second: Int, millisecond: Int) -} - -pub type Offset { - Local - Offset(direction: Sign, hours: Int, minutes: Int) -} - -pub type Sign { - Positive - Negative -} - -/// An error that can occur when parsing a TOML document. -pub type ParseError { - /// An unexpected character was encountered when parsing the document. - Unexpected(got: String, expected: String) - /// More than one items have the same key in the document. - KeyAlreadyInUse(key: List(String)) -} - -type Tokens = - List(String) - -type Parsed(a) = - Result(#(a, Tokens), ParseError) - -/// A number of any kind, returned by the `get_number` function. -pub type Number { - NumberInt(Int) - NumberFloat(Float) - NumberInfinity(Sign) - NumberNan(Sign) -} - -/// An error that can occur when retrieving a value from a TOML document with -/// one of the `get_*` functions. -pub type GetError { - /// There was no value at the given key. - NotFound(key: List(String)) - /// The value at the given key was not of the expected type. - WrongType(key: List(String), expected: String, got: String) -} - -// TODO: test -/// Get a value of any type from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = 1") -/// get(parsed, ["a", "b", "c"]) -/// // -> Ok(Int(1)) -/// ``` -/// -pub fn get(toml: Map(String, Toml), key: List(String)) -> Result(Toml, GetError) { - case key { - [] -> Error(NotFound([])) - [k] -> result.replace_error(map.get(toml, k), NotFound([k])) - [k, ..key] -> { - case map.get(toml, k) { - Ok(Table(t)) -> push_key(get(t, key), k) - Ok(other) -> Error(WrongType([k], "Table", classify(other))) - Error(_) -> Error(NotFound([k])) - } - } - } -} - -// TODO: test -/// Get an int from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = 1") -/// get_int(parsed, ["a", "b", "c"]) -/// // -> Ok(1) -/// ``` -/// -pub fn get_int( - toml: Map(String, Toml), - key: List(String), -) -> Result(Int, GetError) { - case get(toml, key) { - Ok(Int(i)) -> Ok(i) - Ok(other) -> Error(WrongType(key, "Int", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get a float from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = 1.1") -/// get_float(parsed, ["a", "b", "c"]) -/// // -> Ok(1.1) -/// ``` -/// -pub fn get_float( - toml: Map(String, Toml), - key: List(String), -) -> Result(Float, GetError) { - case get(toml, key) { - Ok(Float(i)) -> Ok(i) - Ok(other) -> Error(WrongType(key, "Float", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get a bool from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = true") -/// get_bool(parsed, ["a", "b", "c"]) -/// // -> Ok(True) -/// ``` -/// -pub fn get_bool( - toml: Map(String, Toml), - key: List(String), -) -> Result(Bool, GetError) { - case get(toml, key) { - Ok(Bool(i)) -> Ok(i) - Ok(other) -> Error(WrongType(key, "Bool", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get a string from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = \"ok\"") -/// get_string(parsed, ["a", "b", "c"]) -/// // -> Ok("ok") -/// ``` -/// -pub fn get_string( - toml: Map(String, Toml), - key: List(String), -) -> Result(String, GetError) { - case get(toml, key) { - Ok(String(i)) -> Ok(i) - Ok(other) -> Error(WrongType(key, "String", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get a date from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = 1979-05-27") -/// get_date(parsed, ["a", "b", "c"]) -/// // -> Ok("1979-05-27") -/// ``` -/// -pub fn get_date( - toml: Map(String, Toml), - key: List(String), -) -> Result(Date, GetError) { - case get(toml, key) { - Ok(Date(i)) -> Ok(i) - Ok(other) -> Error(WrongType(key, "Date", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get a time from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = 07:32:00") -/// get_time(parsed, ["a", "b", "c"]) -/// // -> Ok("07:32:00") -/// ``` -/// -pub fn get_time( - toml: Map(String, Toml), - key: List(String), -) -> Result(Time, GetError) { - case get(toml, key) { - Ok(Time(i)) -> Ok(i) - Ok(other) -> Error(WrongType(key, "Time", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get a date-time from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = 1979-05-27T07:32:00") -/// get_date_time(parsed, ["a", "b", "c"]) -/// // -> Ok("1979-05-27T07:32:00") -/// ``` -/// -pub fn get_date_time( - toml: Map(String, Toml), - key: List(String), -) -> Result(DateTime, GetError) { - case get(toml, key) { - Ok(DateTime(i)) -> Ok(i) - Ok(other) -> Error(WrongType(key, "DateTime", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get an array from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = [1, 2]") -/// get_array(parsed, ["a", "b", "c"]) -/// // -> Ok([Int(1), Int(2)]) -/// ``` -/// -pub fn get_array( - toml: Map(String, Toml), - key: List(String), -) -> Result(List(Toml), GetError) { - case get(toml, key) { - Ok(Array(i)) -> Ok(i) - Ok(ArrayOfTables(i)) -> Ok(list.map(i, Table)) - Ok(other) -> Error(WrongType(key, "Array", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get a table from a TOML document. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = { d = 1 }") -/// get_table(parsed, ["a", "b", "c"]) -/// // -> Ok(map.from_list([#("d", Int(1))])) -/// ``` -/// -pub fn get_table( - toml: Map(String, Toml), - key: List(String), -) -> Result(Map(String, Toml), GetError) { - case get(toml, key) { - Ok(Table(i)) -> Ok(i) - Ok(InlineTable(i)) -> Ok(i) - Ok(other) -> Error(WrongType(key, "Table", classify(other))) - Error(e) -> Error(e) - } -} - -// TODO: test -/// Get a number of any kind from a TOML document. -/// This could be an int, a float, a NaN, or an infinity. -/// -/// ## Examples -/// -/// ```gleam -/// let assert Ok(parsed) = parse("a.b.c = { d = inf }") -/// get_number(parsed, ["a", "b", "c"]) -/// // -> Ok(NumberInfinity(Positive))) -/// ``` -/// -pub fn get_number( - toml: Map(String, Toml), - key: List(String), -) -> Result(Number, GetError) { - case get(toml, key) { - Ok(Int(x)) -> Ok(NumberInt(x)) - Ok(Float(x)) -> Ok(NumberFloat(x)) - Ok(Nan(x)) -> Ok(NumberNan(x)) - Ok(Infinity(x)) -> Ok(NumberInfinity(x)) - Ok(other) -> Error(WrongType(key, "Number", classify(other))) - Error(e) -> Error(e) - } -} - -fn classify(toml: Toml) -> String { - case toml { - Int(_) -> "Int" - Float(_) -> "Float" - Nan(Positive) -> "NaN" - Nan(Negative) -> "Negative NaN" - Infinity(Positive) -> "Infinity" - Infinity(Negative) -> "Negative Infinity" - Bool(_) -> "Bool" - String(_) -> "String" - Date(_) -> "Date" - Time(_) -> "Time" - DateTime(_) -> "DateTime" - Array(_) -> "Array" - ArrayOfTables(_) -> "Array" - Table(_) -> "Table" - InlineTable(_) -> "Table" - } -} - -fn push_key(result: Result(t, GetError), key: String) -> Result(t, GetError) { - case result { - Ok(t) -> Ok(t) - Error(NotFound(path)) -> Error(NotFound([key, ..path])) - Error(WrongType(path, expected, got)) -> - Error(WrongType([key, ..path], expected, got)) - } -} - -pub fn parse(input: String) -> Result(Map(String, Toml), ParseError) { - let input = string.to_graphemes(input) - let input = drop_comments(input, []) - let input = skip_whitespace(input) - use toml, input <- do(parse_table(input, map.new())) - case parse_tables(input, toml) { - Ok(toml) -> Ok(reverse_arrays_of_tables_table(toml)) - Error(e) -> Error(e) - } -} - -fn parse_tables( - input: Tokens, - toml: Map(String, Toml), -) -> Result(Map(String, Toml), ParseError) { - case input { - ["[", "[", ..input] -> { - case parse_array_of_tables(input) { - Error(e) -> Error(e) - Ok(#(#(key, table), input)) -> { - case insert(toml, key, ArrayOfTables([table])) { - Ok(toml) -> parse_tables(input, toml) - Error(e) -> Error(e) - } - } - } - } - ["[", ..input] -> { - case parse_table_and_header(input) { - Error(e) -> Error(e) - Ok(#(#(key, table), input)) -> { - case insert(toml, key, Table(table)) { - Ok(toml) -> parse_tables(input, toml) - Error(e) -> Error(e) - } - } - } - } - [g, ..] -> Error(Unexpected(g, "[")) - [] -> Ok(toml) - } -} - -fn parse_array_of_tables( - input: Tokens, -) -> Parsed(#(List(String), Map(String, Toml))) { - let input = skip_line_whitespace(input) - use key, input <- do(parse_key(input, [])) - use input <- expect(input, "]") - use input <- expect(input, "]") - use table, input <- do(parse_table(input, map.new())) - Ok(#(#(key, table), input)) -} - -fn parse_table_header(input: Tokens) -> Parsed(List(String)) { - let input = skip_line_whitespace(input) - use key, input <- do(parse_key(input, [])) - use input <- expect(input, "]") - let input = skip_line_whitespace(input) - use input <- expect_end_of_line(input) - Ok(#(key, input)) -} - -fn parse_table_and_header( - input: Tokens, -) -> Parsed(#(List(String), Map(String, Toml))) { - use key, input <- do(parse_table_header(input)) - use table, input <- do(parse_table(input, map.new())) - Ok(#(#(key, table), input)) -} - -fn parse_table( - input: Tokens, - toml: Map(String, Toml), -) -> Parsed(Map(String, Toml)) { - let input = skip_whitespace(input) - case input { - ["[", ..] | [] -> Ok(#(toml, input)) - _ -> - case parse_key_value(input, toml) { - Ok(#(toml, input)) -> - case skip_line_whitespace(input) { - [] -> Ok(#(toml, [])) - ["\n", ..in] | ["\r\n", ..in] -> parse_table(in, toml) - [g, ..] -> Error(Unexpected(g, "\n")) - } - e -> e - } - } -} - -fn parse_key_value( - input: Tokens, - toml: Map(String, Toml), -) -> Parsed(Map(String, Toml)) { - use key, input <- do(parse_key(input, [])) - let input = skip_line_whitespace(input) - use input <- expect(input, "=") - let input = skip_line_whitespace(input) - use value, input <- do(parse_value(input)) - case insert(toml, key, value) { - Ok(toml) -> Ok(#(toml, input)) - Error(e) -> Error(e) - } -} - -fn insert( - table: Map(String, Toml), - key: List(String), - value: Toml, -) -> Result(Map(String, Toml), ParseError) { - case insert_loop(table, key, value) { - Ok(table) -> Ok(table) - Error(path) -> Error(KeyAlreadyInUse(path)) - } -} - -fn insert_loop( - table: Map(String, Toml), - key: List(String), - value: Toml, -) -> Result(Map(String, Toml), List(String)) { - case key { - [] -> panic as "unreachable" - [k] -> { - case map.get(table, k) { - Error(Nil) -> Ok(map.insert(table, k, value)) - Ok(old) -> merge(table, k, old, value) - } - } - [k, ..key] -> { - case map.get(table, k) { - Error(Nil) -> { - case insert_loop(map.new(), key, value) { - Ok(inner) -> Ok(map.insert(table, k, Table(inner))) - Error(path) -> Error([k, ..path]) - } - } - Ok(ArrayOfTables([inner, ..rest])) -> { - case insert_loop(inner, key, value) { - Ok(inner) -> - Ok(map.insert(table, k, ArrayOfTables([inner, ..rest]))) - Error(path) -> Error([k, ..path]) - } - } - Ok(Table(inner)) -> { - case insert_loop(inner, key, value) { - Ok(inner) -> Ok(map.insert(table, k, Table(inner))) - Error(path) -> Error([k, ..path]) - } - } - Ok(_) -> Error([k]) - } - } - } -} - -fn merge( - table: Map(String, Toml), - key: String, - old: Toml, - new: Toml, -) -> Result(Map(String, Toml), List(String)) { - case old, new { - // When both are arrays of tables then they are merged together - ArrayOfTables(tables), ArrayOfTables(new) -> - Ok(map.insert(table, key, ArrayOfTables(list.append(new, tables)))) - - _, _ -> Error([key]) - } -} - -fn expect_end_of_line(input: Tokens, next: fn(Tokens) -> Parsed(a)) -> Parsed(a) { - case input { - ["\n", ..input] -> next(input) - ["\r\n", ..input] -> next(input) - [g, ..] -> Error(Unexpected(g, "\n")) - [] -> Error(Unexpected("EOF", "\n")) - } -} - -fn parse_value(input) -> Parsed(Toml) { - case input { - ["t", "r", "u", "e", ..input] -> Ok(#(Bool(True), input)) - ["f", "a", "l", "s", "e", ..input] -> Ok(#(Bool(False), input)) - - ["n", "a", "n", ..input] -> Ok(#(Nan(Positive), input)) - ["+", "n", "a", "n", ..input] -> Ok(#(Nan(Positive), input)) - ["-", "n", "a", "n", ..input] -> Ok(#(Nan(Negative), input)) - - ["i", "n", "f", ..input] -> Ok(#(Infinity(Positive), input)) - ["+", "i", "n", "f", ..input] -> Ok(#(Infinity(Positive), input)) - ["-", "i", "n", "f", ..input] -> Ok(#(Infinity(Negative), input)) - - ["[", ..input] -> parse_array(input, []) - ["{", ..input] -> parse_inline_table(input, map.new()) - - ["0", "x", ..input] -> parse_hex(input, 0, Positive) - ["+", "0", "x", ..input] -> parse_hex(input, 0, Positive) - ["-", "0", "x", ..input] -> parse_hex(input, 0, Negative) - - ["0", "o", ..input] -> parse_octal(input, 0, Positive) - ["+", "0", "o", ..input] -> parse_octal(input, 0, Positive) - ["-", "0", "o", ..input] -> parse_octal(input, 0, Negative) - - ["0", "b", ..input] -> parse_binary(input, 0, Positive) - ["+", "0", "b", ..input] -> parse_binary(input, 0, Positive) - ["-", "0", "b", ..input] -> parse_binary(input, 0, Negative) - - ["+", ..input] -> parse_number(input, 0, Positive) - ["-", ..input] -> parse_number(input, 0, Negative) - ["0", ..] - | ["1", ..] - | ["2", ..] - | ["3", ..] - | ["4", ..] - | ["5", ..] - | ["6", ..] - | ["7", ..] - | ["8", ..] - | ["9", ..] -> parse_number(input, 0, Positive) - - ["\"", "\"", "\"", ..input] -> parse_multi_line_string(input, "") - ["\"", ..input] -> parse_string(input, "") - - ["'", "'", "'", ..input] -> parse_multi_line_literal_string(input, "") - ["'", ..input] -> parse_literal_string(input, "") - - [g, ..] -> Error(Unexpected(g, "value")) - [] -> Error(Unexpected("EOF", "value")) - } -} - -fn parse_key(input: Tokens, segments: List(String)) -> Parsed(List(String)) { - use segment, input <- do(parse_key_segment(input)) - let segments = [segment, ..segments] - let input = skip_line_whitespace(input) - - case input { - [".", ..input] -> parse_key(input, segments) - _ -> Ok(#(list.reverse(segments), input)) - } -} - -fn parse_key_segment(input: Tokens) -> Parsed(String) { - let input = skip_line_whitespace(input) - case input { - ["=", ..] -> Error(Unexpected("=", "Key")) - ["\n", ..] -> Error(Unexpected("\n", "Key")) - ["\r\n", ..] -> Error(Unexpected("\r\n", "Key")) - ["[", ..] -> Error(Unexpected("[", "Key")) - ["\"", ..input] -> parse_key_quoted(input, "\"", "") - ["'", ..input] -> parse_key_quoted(input, "'", "") - _ -> parse_key_bare(input, "") - } -} - -fn parse_key_quoted( - input: Tokens, - close: String, - name: String, -) -> Parsed(String) { - case input { - [g, ..input] if g == close -> Ok(#(name, input)) - [g, ..input] -> parse_key_quoted(input, close, name <> g) - [] -> Error(Unexpected("EOF", close)) - } -} - -fn parse_key_bare(input: Tokens, name: String) -> Parsed(String) { - case input { - [" ", ..input] if name != "" -> Ok(#(name, input)) - ["=", ..] if name != "" -> Ok(#(name, input)) - [".", ..] if name != "" -> Ok(#(name, input)) - ["]", ..] if name != "" -> Ok(#(name, input)) - [",", ..] if name != "" -> Error(Unexpected(",", "=")) - ["\n", ..] if name != "" -> Error(Unexpected("\n", "=")) - ["\r\n", ..] if name != "" -> Error(Unexpected("\r\n", "=")) - ["\n", ..] -> Error(Unexpected("\n", "key")) - ["\r\n", ..] -> Error(Unexpected("\r\n", "key")) - ["]", ..] -> Error(Unexpected("]", "key")) - [",", ..] -> Error(Unexpected(",", "key")) - [g, ..input] -> parse_key_bare(input, name <> g) - [] -> Error(Unexpected("EOF", "key")) - } -} - -fn skip_line_whitespace(input: Tokens) -> Tokens { - list.drop_while(input, fn(g) { g == " " || g == "\t" }) -} - -fn skip_whitespace(input: Tokens) -> Tokens { - case input { - [" ", ..input] -> skip_whitespace(input) - ["\t", ..input] -> skip_whitespace(input) - ["\n", ..input] -> skip_whitespace(input) - ["\r\n", ..input] -> skip_whitespace(input) - input -> input - } -} - -fn drop_comments(input: Tokens, acc: Tokens) -> Tokens { - case input { - ["#", ..input] -> - input - |> list.drop_while(fn(g) { g != "\n" }) - |> drop_comments(acc) - [g, ..input] -> drop_comments(input, [g, ..acc]) - [] -> list.reverse(acc) - } -} - -fn do( - result: Result(#(a, Tokens), ParseError), - next: fn(a, Tokens) -> Result(b, ParseError), -) -> Result(b, ParseError) { - case result { - Ok(#(a, input)) -> next(a, input) - Error(e) -> Error(e) - } -} - -fn expect( - input: Tokens, - expected: String, - next: fn(Tokens) -> Parsed(a), -) -> Parsed(a) { - case input { - [g, ..input] if g == expected -> next(input) - [g, ..] -> Error(Unexpected(g, expected)) - [] -> Error(Unexpected("EOF", expected)) - } -} - -fn parse_inline_table( - input: Tokens, - properties: Map(String, Toml), -) -> Parsed(Toml) { - let input = skip_whitespace(input) - case input { - ["}", ..input] -> Ok(#(InlineTable(properties), input)) - _ -> - case parse_inline_table_property(input, properties) { - Ok(#(properties, input)) -> { - let input = skip_whitespace(input) - case input { - ["}", ..input] -> Ok(#(InlineTable(properties), input)) - [",", ..input] -> { - let input = skip_whitespace(input) - parse_inline_table(input, properties) - } - [g, ..] -> Error(Unexpected(g, "}")) - [] -> Error(Unexpected("EOF", "}")) - } - } - Error(e) -> Error(e) - } - } -} - -fn parse_inline_table_property( - input: Tokens, - properties: Map(String, Toml), -) -> Parsed(Map(String, Toml)) { - let input = skip_whitespace(input) - use key, input <- do(parse_key(input, [])) - let input = skip_line_whitespace(input) - use input <- expect(input, "=") - let input = skip_line_whitespace(input) - use value, input <- do(parse_value(input)) - case insert(properties, key, value) { - Ok(properties) -> Ok(#(properties, input)) - Error(e) -> Error(e) - } -} - -fn parse_array(input: Tokens, elements: List(Toml)) -> Parsed(Toml) { - let input = skip_whitespace(input) - case input { - ["]", ..input] -> Ok(#(Array(list.reverse(elements)), input)) - _ -> { - use element, input <- do(parse_value(input)) - let elements = [element, ..elements] - let input = skip_whitespace(input) - case input { - ["]", ..input] -> Ok(#(Array(list.reverse(elements)), input)) - [",", ..input] -> { - let input = skip_whitespace(input) - parse_array(input, elements) - } - [g, ..] -> Error(Unexpected(g, "]")) - [] -> Error(Unexpected("EOF", "]")) - } - } - } -} - -fn parse_hex(input: Tokens, number: Int, sign: Sign) -> Parsed(Toml) { - case input { - ["_", ..input] -> parse_hex(input, number, sign) - ["0", ..input] -> parse_hex(input, number * 16 + 0, sign) - ["1", ..input] -> parse_hex(input, number * 16 + 1, sign) - ["2", ..input] -> parse_hex(input, number * 16 + 2, sign) - ["3", ..input] -> parse_hex(input, number * 16 + 3, sign) - ["4", ..input] -> parse_hex(input, number * 16 + 4, sign) - ["5", ..input] -> parse_hex(input, number * 16 + 5, sign) - ["6", ..input] -> parse_hex(input, number * 16 + 6, sign) - ["7", ..input] -> parse_hex(input, number * 16 + 7, sign) - ["8", ..input] -> parse_hex(input, number * 16 + 8, sign) - ["9", ..input] -> parse_hex(input, number * 16 + 9, sign) - ["a", ..input] -> parse_hex(input, number * 16 + 10, sign) - ["b", ..input] -> parse_hex(input, number * 16 + 11, sign) - ["c", ..input] -> parse_hex(input, number * 16 + 12, sign) - ["d", ..input] -> parse_hex(input, number * 16 + 13, sign) - ["e", ..input] -> parse_hex(input, number * 16 + 14, sign) - ["f", ..input] -> parse_hex(input, number * 16 + 15, sign) - ["A", ..input] -> parse_hex(input, number * 16 + 10, sign) - ["B", ..input] -> parse_hex(input, number * 16 + 11, sign) - ["C", ..input] -> parse_hex(input, number * 16 + 12, sign) - ["D", ..input] -> parse_hex(input, number * 16 + 13, sign) - ["E", ..input] -> parse_hex(input, number * 16 + 14, sign) - ["F", ..input] -> parse_hex(input, number * 16 + 15, sign) - - // Anything else and the number is terminated - input -> { - let number = case sign { - Positive -> number - Negative -> -number - } - Ok(#(Int(number), input)) - } - } -} - -fn parse_octal(input: Tokens, number: Int, sign: Sign) -> Parsed(Toml) { - case input { - ["_", ..input] -> parse_octal(input, number, sign) - ["0", ..input] -> parse_octal(input, number * 8 + 0, sign) - ["1", ..input] -> parse_octal(input, number * 8 + 1, sign) - ["2", ..input] -> parse_octal(input, number * 8 + 2, sign) - ["3", ..input] -> parse_octal(input, number * 8 + 3, sign) - ["4", ..input] -> parse_octal(input, number * 8 + 4, sign) - ["5", ..input] -> parse_octal(input, number * 8 + 5, sign) - ["6", ..input] -> parse_octal(input, number * 8 + 6, sign) - ["7", ..input] -> parse_octal(input, number * 8 + 7, sign) - - // Anything else and the number is terminated - input -> { - let number = case sign { - Positive -> number - Negative -> -number - } - Ok(#(Int(number), input)) - } - } -} - -fn parse_binary(input: Tokens, number: Int, sign: Sign) -> Parsed(Toml) { - case input { - ["_", ..input] -> parse_binary(input, number, sign) - ["0", ..input] -> parse_binary(input, number * 2 + 0, sign) - ["1", ..input] -> parse_binary(input, number * 2 + 1, sign) - - // Anything else and the number is terminated - input -> { - let number = case sign { - Positive -> number - Negative -> -number - } - Ok(#(Int(number), input)) - } - } -} - -fn parse_number(input: Tokens, number: Int, sign: Sign) -> Parsed(Toml) { - case input { - ["_", ..input] -> parse_number(input, number, sign) - ["0", ..input] -> parse_number(input, number * 10 + 0, sign) - ["1", ..input] -> parse_number(input, number * 10 + 1, sign) - ["2", ..input] -> parse_number(input, number * 10 + 2, sign) - ["3", ..input] -> parse_number(input, number * 10 + 3, sign) - ["4", ..input] -> parse_number(input, number * 10 + 4, sign) - ["5", ..input] -> parse_number(input, number * 10 + 5, sign) - ["6", ..input] -> parse_number(input, number * 10 + 6, sign) - ["7", ..input] -> parse_number(input, number * 10 + 7, sign) - ["8", ..input] -> parse_number(input, number * 10 + 8, sign) - ["9", ..input] -> parse_number(input, number * 10 + 9, sign) - - ["-", ..input] -> parse_date(input, number) - [":", ..input] if number < 24 -> parse_time_minute(input, number) - - [".", ..input] -> parse_float(input, int.to_float(number), sign, 0.1) - - ["e", "+", ..input] -> - parse_exponent(input, int.to_float(number), sign, 0, Positive) - ["e", "-", ..input] -> - parse_exponent(input, int.to_float(number), sign, 0, Negative) - ["e", ..input] -> - parse_exponent(input, int.to_float(number), sign, 0, Positive) - ["E", "+", ..input] -> - parse_exponent(input, int.to_float(number), sign, 0, Positive) - ["E", "-", ..input] -> - parse_exponent(input, int.to_float(number), sign, 0, Negative) - ["E", ..input] -> - parse_exponent(input, int.to_float(number), sign, 0, Positive) - - // Anything else and the number is terminated - input -> { - let number = case sign { - Positive -> number - Negative -> -number - } - Ok(#(Int(number), input)) - } - } -} - -fn parse_exponent( - input: Tokens, - n: Float, - n_sign: Sign, - ex: Int, - ex_sign: Sign, -) -> Parsed(Toml) { - case input { - ["_", ..input] -> parse_exponent(input, n, n_sign, ex, ex_sign) - ["0", ..input] -> parse_exponent(input, n, n_sign, ex * 10, ex_sign) - ["1", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 1, ex_sign) - ["2", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 2, ex_sign) - ["3", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 3, ex_sign) - ["4", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 4, ex_sign) - ["5", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 5, ex_sign) - ["6", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 6, ex_sign) - ["7", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 7, ex_sign) - ["8", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 8, ex_sign) - ["9", ..input] -> parse_exponent(input, n, n_sign, ex * 10 + 9, ex_sign) - - // Anything else and the number is terminated - input -> { - let number = case n_sign { - Positive -> n - Negative -> n *. -1.0 - } - let exponent = - int.to_float(case ex_sign { - Positive -> ex - Negative -> -ex - }) - let multiplier = case float.power(10.0, exponent) { - Ok(multiplier) -> multiplier - Error(_) -> 1.0 - } - Ok(#(Float(number *. multiplier), input)) - } - } -} - -fn parse_float( - input: Tokens, - number: Float, - sign: Sign, - unit: Float, -) -> Parsed(Toml) { - case input { - ["_", ..input] -> parse_float(input, number, sign, unit) - ["0", ..input] -> parse_float(input, number, sign, unit *. 0.1) - ["1", ..input] -> - parse_float(input, number +. 1.0 *. unit, sign, unit *. 0.1) - ["2", ..input] -> - parse_float(input, number +. 2.0 *. unit, sign, unit *. 0.1) - ["3", ..input] -> - parse_float(input, number +. 3.0 *. unit, sign, unit *. 0.1) - ["4", ..input] -> - parse_float(input, number +. 4.0 *. unit, sign, unit *. 0.1) - ["5", ..input] -> - parse_float(input, number +. 5.0 *. unit, sign, unit *. 0.1) - ["6", ..input] -> - parse_float(input, number +. 6.0 *. unit, sign, unit *. 0.1) - ["7", ..input] -> - parse_float(input, number +. 7.0 *. unit, sign, unit *. 0.1) - ["8", ..input] -> - parse_float(input, number +. 8.0 *. unit, sign, unit *. 0.1) - ["9", ..input] -> - parse_float(input, number +. 9.0 *. unit, sign, unit *. 0.1) - - ["e", "+", ..input] -> parse_exponent(input, number, sign, 0, Positive) - ["e", "-", ..input] -> parse_exponent(input, number, sign, 0, Negative) - ["e", ..input] -> parse_exponent(input, number, sign, 0, Positive) - ["E", "+", ..input] -> parse_exponent(input, number, sign, 0, Positive) - ["E", "-", ..input] -> parse_exponent(input, number, sign, 0, Negative) - ["E", ..input] -> parse_exponent(input, number, sign, 0, Positive) - - // Anything else and the number is terminated - input -> { - let number = case sign { - Positive -> number - Negative -> number *. -1.0 - } - Ok(#(Float(number), input)) - } - } -} - -fn parse_string(input: Tokens, string: String) -> Parsed(Toml) { - case input { - ["\"", ..input] -> Ok(#(String(string), input)) - ["\\", "t", ..input] -> parse_string(input, string <> "\t") - ["\\", "n", ..input] -> parse_string(input, string <> "\n") - ["\\", "r", ..input] -> parse_string(input, string <> "\r") - ["\\", "\"", ..input] -> parse_string(input, string <> "\"") - ["\\", "\\", ..input] -> parse_string(input, string <> "\\") - [] -> Error(Unexpected("EOF", "\"")) - ["\n", ..] -> Error(Unexpected("\n", "\"")) - ["\r\n", ..] -> Error(Unexpected("\r\n", "\"")) - [g, ..input] -> parse_string(input, string <> g) - } -} - -fn parse_multi_line_string(input: Tokens, string: String) -> Parsed(Toml) { - case input { - ["\"", "\"", "\"", ..input] -> Ok(#(String(string), input)) - ["\\", "\n", ..input] -> - parse_multi_line_string(skip_whitespace(input), string) - ["\\", "\r\n", ..input] -> - parse_multi_line_string(skip_whitespace(input), string) - ["\r\n", ..input] if string == "" -> parse_multi_line_string(input, string) - ["\n", ..input] if string == "" -> parse_multi_line_string(input, string) - ["\r\n", ..input] if string == "" -> parse_multi_line_string(input, string) - ["\\", "t", ..input] -> parse_multi_line_string(input, string <> "\t") - ["\\", "n", ..input] -> parse_multi_line_string(input, string <> "\n") - ["\\", "r", ..input] -> parse_multi_line_string(input, string <> "\r") - ["\\", "\"", ..input] -> parse_multi_line_string(input, string <> "\"") - ["\\", "\\", ..input] -> parse_multi_line_string(input, string <> "\\") - [] -> Error(Unexpected("EOF", "\"")) - [g, ..input] -> parse_multi_line_string(input, string <> g) - } -} - -fn parse_multi_line_literal_string( - input: Tokens, - string: String, -) -> Parsed(Toml) { - case input { - [] -> Error(Unexpected("EOF", "\"")) - ["'", "'", "'", "'", ..] -> Error(Unexpected("''''", "'''")) - ["'", "'", "'", ..input] -> Ok(#(String(string), input)) - ["\n", ..input] if string == "" -> - parse_multi_line_literal_string(input, string) - ["\r\n", ..input] if string == "" -> - parse_multi_line_literal_string(input, string) - [g, ..input] -> parse_multi_line_literal_string(input, string <> g) - } -} - -fn parse_literal_string(input: Tokens, string: String) -> Parsed(Toml) { - case input { - [] -> Error(Unexpected("EOF", "\"")) - ["\n", ..] -> Error(Unexpected("\n", "'")) - ["\r\n", ..] -> Error(Unexpected("\r\n", "'")) - ["'", ..input] -> Ok(#(String(string), input)) - [g, ..input] -> parse_literal_string(input, string <> g) - } -} - -fn reverse_arrays_of_tables(toml: Toml) -> Toml { - case toml { - ArrayOfTables(tables) -> - ArrayOfTables(reverse_arrays_of_tables_array(tables, [])) - - Table(table) -> Table(reverse_arrays_of_tables_table(table)) - - _ -> toml - } -} - -fn reverse_arrays_of_tables_table(table: Map(String, Toml)) -> Map(String, Toml) { - map.map_values(table, fn(_, v) { reverse_arrays_of_tables(v) }) -} - -fn reverse_arrays_of_tables_array( - array: List(Map(String, Toml)), - acc: List(Map(String, Toml)), -) -> List(Map(String, Toml)) { - case array { - [] -> acc - [first, ..rest] -> { - let first = reverse_arrays_of_tables_table(first) - reverse_arrays_of_tables_array(rest, [first, ..acc]) - } - } -} - -fn parse_time_minute(input: Tokens, hours: Int) -> Parsed(Toml) { - use minutes, input <- do(parse_number_under_60(input, "minutes")) - use #(seconds, ms), input <- do(parse_time_s_ms(input)) - let time = TimeValue(hours, minutes, seconds, ms) - Ok(#(Time(time), input)) -} - -fn parse_hour_minute(input: Tokens) -> Parsed(#(Int, Int)) { - use hours, input <- do(case input { - ["0", "0", ":", ..input] -> Ok(#(0, input)) - ["0", "1", ":", ..input] -> Ok(#(1, input)) - ["0", "2", ":", ..input] -> Ok(#(2, input)) - ["0", "3", ":", ..input] -> Ok(#(3, input)) - ["0", "4", ":", ..input] -> Ok(#(4, input)) - ["0", "5", ":", ..input] -> Ok(#(5, input)) - ["0", "6", ":", ..input] -> Ok(#(6, input)) - ["0", "7", ":", ..input] -> Ok(#(7, input)) - ["0", "8", ":", ..input] -> Ok(#(8, input)) - ["0", "9", ":", ..input] -> Ok(#(9, input)) - ["1", "0", ":", ..input] -> Ok(#(10, input)) - ["1", "1", ":", ..input] -> Ok(#(11, input)) - ["1", "2", ":", ..input] -> Ok(#(12, input)) - ["1", "3", ":", ..input] -> Ok(#(13, input)) - ["1", "4", ":", ..input] -> Ok(#(14, input)) - ["1", "5", ":", ..input] -> Ok(#(15, input)) - ["1", "6", ":", ..input] -> Ok(#(16, input)) - ["1", "7", ":", ..input] -> Ok(#(17, input)) - ["1", "8", ":", ..input] -> Ok(#(18, input)) - ["1", "9", ":", ..input] -> Ok(#(19, input)) - ["2", "0", ":", ..input] -> Ok(#(20, input)) - ["2", "1", ":", ..input] -> Ok(#(21, input)) - ["2", "2", ":", ..input] -> Ok(#(22, input)) - ["2", "3", ":", ..input] -> Ok(#(23, input)) - [g, ..] -> Error(Unexpected(g, "time")) - [] -> Error(Unexpected("EOF", "time")) - }) - - use minutes, input <- do(parse_number_under_60(input, "minutes")) - Ok(#(#(hours, minutes), input)) -} - -fn parse_time_value(input: Tokens) -> Parsed(Time) { - use #(hours, minutes), input <- do(parse_hour_minute(input)) - use #(seconds, ms), input <- do(parse_time_s_ms(input)) - let time = TimeValue(hours, minutes, seconds, ms) - Ok(#(time, input)) -} - -fn parse_time_s_ms(input: Tokens) -> Parsed(#(Int, Int)) { - case input { - [":", ..input] -> { - use seconds, input <- do(parse_number_under_60(input, "seconds")) - case input { - [".", ..input] -> parse_time_ms(input, seconds, 0) - _ -> Ok(#(#(seconds, 0), input)) - } - } - - _ -> Ok(#(#(0, 0), input)) - } -} - -fn parse_time_ms(input: Tokens, seconds: Int, ms: Int) -> Parsed(#(Int, Int)) { - case input { - ["0", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 0) - ["1", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 1) - ["2", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 2) - ["3", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 3) - ["4", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 4) - ["5", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 5) - ["6", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 6) - ["7", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 7) - ["8", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 8) - ["9", ..input] if ms < 100_000 -> parse_time_ms(input, seconds, ms * 10 + 9) - - // Anything else and the number is terminated - _ -> Ok(#(#(seconds, ms), input)) - } -} - -fn parse_number_under_60(input: Tokens, expected: String) -> Parsed(Int) { - case input { - ["0", "0", ..input] -> Ok(#(0, input)) - ["0", "1", ..input] -> Ok(#(1, input)) - ["0", "2", ..input] -> Ok(#(2, input)) - ["0", "3", ..input] -> Ok(#(3, input)) - ["0", "4", ..input] -> Ok(#(4, input)) - ["0", "5", ..input] -> Ok(#(5, input)) - ["0", "6", ..input] -> Ok(#(6, input)) - ["0", "7", ..input] -> Ok(#(7, input)) - ["0", "8", ..input] -> Ok(#(8, input)) - ["0", "9", ..input] -> Ok(#(9, input)) - ["1", "0", ..input] -> Ok(#(10, input)) - ["1", "1", ..input] -> Ok(#(11, input)) - ["1", "2", ..input] -> Ok(#(12, input)) - ["1", "3", ..input] -> Ok(#(13, input)) - ["1", "4", ..input] -> Ok(#(14, input)) - ["1", "5", ..input] -> Ok(#(15, input)) - ["1", "6", ..input] -> Ok(#(16, input)) - ["1", "7", ..input] -> Ok(#(17, input)) - ["1", "8", ..input] -> Ok(#(18, input)) - ["1", "9", ..input] -> Ok(#(19, input)) - ["2", "0", ..input] -> Ok(#(20, input)) - ["2", "1", ..input] -> Ok(#(21, input)) - ["2", "2", ..input] -> Ok(#(22, input)) - ["2", "3", ..input] -> Ok(#(23, input)) - ["2", "4", ..input] -> Ok(#(24, input)) - ["2", "5", ..input] -> Ok(#(25, input)) - ["2", "6", ..input] -> Ok(#(26, input)) - ["2", "7", ..input] -> Ok(#(27, input)) - ["2", "8", ..input] -> Ok(#(28, input)) - ["2", "9", ..input] -> Ok(#(29, input)) - ["3", "0", ..input] -> Ok(#(30, input)) - ["3", "1", ..input] -> Ok(#(31, input)) - ["3", "2", ..input] -> Ok(#(32, input)) - ["3", "3", ..input] -> Ok(#(33, input)) - ["3", "4", ..input] -> Ok(#(34, input)) - ["3", "5", ..input] -> Ok(#(35, input)) - ["3", "6", ..input] -> Ok(#(36, input)) - ["3", "7", ..input] -> Ok(#(37, input)) - ["3", "8", ..input] -> Ok(#(38, input)) - ["3", "9", ..input] -> Ok(#(39, input)) - ["4", "0", ..input] -> Ok(#(40, input)) - ["4", "1", ..input] -> Ok(#(41, input)) - ["4", "2", ..input] -> Ok(#(42, input)) - ["4", "3", ..input] -> Ok(#(43, input)) - ["4", "4", ..input] -> Ok(#(44, input)) - ["4", "5", ..input] -> Ok(#(45, input)) - ["4", "6", ..input] -> Ok(#(46, input)) - ["4", "7", ..input] -> Ok(#(47, input)) - ["4", "8", ..input] -> Ok(#(48, input)) - ["4", "9", ..input] -> Ok(#(49, input)) - ["5", "0", ..input] -> Ok(#(50, input)) - ["5", "1", ..input] -> Ok(#(51, input)) - ["5", "2", ..input] -> Ok(#(52, input)) - ["5", "3", ..input] -> Ok(#(53, input)) - ["5", "4", ..input] -> Ok(#(54, input)) - ["5", "5", ..input] -> Ok(#(55, input)) - ["5", "6", ..input] -> Ok(#(56, input)) - ["5", "7", ..input] -> Ok(#(57, input)) - ["5", "8", ..input] -> Ok(#(58, input)) - ["5", "9", ..input] -> Ok(#(59, input)) - - [g, ..] -> Error(Unexpected(g, expected)) - [] -> Error(Unexpected("EOF", expected)) - } -} - -fn parse_date(input: Tokens, year: Int) -> Parsed(Toml) { - case input { - ["0", "1", "-", ..input] -> parse_date_day(input, year, 1) - ["0", "2", "-", ..input] -> parse_date_day(input, year, 2) - ["0", "3", "-", ..input] -> parse_date_day(input, year, 3) - ["0", "4", "-", ..input] -> parse_date_day(input, year, 4) - ["0", "5", "-", ..input] -> parse_date_day(input, year, 5) - ["0", "6", "-", ..input] -> parse_date_day(input, year, 6) - ["0", "7", "-", ..input] -> parse_date_day(input, year, 7) - ["0", "8", "-", ..input] -> parse_date_day(input, year, 8) - ["0", "9", "-", ..input] -> parse_date_day(input, year, 9) - ["1", "0", "-", ..input] -> parse_date_day(input, year, 10) - ["1", "1", "-", ..input] -> parse_date_day(input, year, 11) - ["1", "2", "-", ..input] -> parse_date_day(input, year, 12) - - [g, ..] -> Error(Unexpected(g, "date month")) - [] -> Error(Unexpected("EOF", "date month")) - } -} - -fn parse_date_day(input: Tokens, year: Int, month: Int) -> Parsed(Toml) { - case input { - ["0", "1", ..input] -> parse_date_end(input, year, month, 1) - ["0", "2", ..input] -> parse_date_end(input, year, month, 2) - ["0", "3", ..input] -> parse_date_end(input, year, month, 3) - ["0", "4", ..input] -> parse_date_end(input, year, month, 4) - ["0", "5", ..input] -> parse_date_end(input, year, month, 5) - ["0", "6", ..input] -> parse_date_end(input, year, month, 6) - ["0", "7", ..input] -> parse_date_end(input, year, month, 7) - ["0", "8", ..input] -> parse_date_end(input, year, month, 8) - ["0", "9", ..input] -> parse_date_end(input, year, month, 9) - ["1", "0", ..input] -> parse_date_end(input, year, month, 10) - ["1", "1", ..input] -> parse_date_end(input, year, month, 11) - ["1", "2", ..input] -> parse_date_end(input, year, month, 12) - ["1", "3", ..input] -> parse_date_end(input, year, month, 13) - ["1", "4", ..input] -> parse_date_end(input, year, month, 14) - ["1", "5", ..input] -> parse_date_end(input, year, month, 15) - ["1", "6", ..input] -> parse_date_end(input, year, month, 16) - ["1", "7", ..input] -> parse_date_end(input, year, month, 17) - ["1", "8", ..input] -> parse_date_end(input, year, month, 18) - ["1", "9", ..input] -> parse_date_end(input, year, month, 19) - ["2", "0", ..input] -> parse_date_end(input, year, month, 20) - ["2", "1", ..input] -> parse_date_end(input, year, month, 21) - ["2", "2", ..input] -> parse_date_end(input, year, month, 22) - ["2", "3", ..input] -> parse_date_end(input, year, month, 23) - ["2", "4", ..input] -> parse_date_end(input, year, month, 24) - ["2", "5", ..input] -> parse_date_end(input, year, month, 25) - ["2", "6", ..input] -> parse_date_end(input, year, month, 26) - ["2", "7", ..input] -> parse_date_end(input, year, month, 27) - ["2", "8", ..input] -> parse_date_end(input, year, month, 28) - ["2", "9", ..input] -> parse_date_end(input, year, month, 29) - ["3", "0", ..input] -> parse_date_end(input, year, month, 30) - ["3", "1", ..input] -> parse_date_end(input, year, month, 31) - - [g, ..] -> Error(Unexpected(g, "date day")) - [] -> Error(Unexpected("EOF", "date day")) - } -} - -fn parse_date_end( - input: Tokens, - year: Int, - month: Int, - day: Int, -) -> Parsed(Toml) { - let date = DateValue(year, month, day) - case input { - [" ", ..input] | ["T", ..input] -> { - use time, input <- do(parse_time_value(input)) - use offset, input <- do(parse_offset(input)) - Ok(#(DateTime(DateTimeValue(date, time, offset)), input)) - } - - _ -> Ok(#(Date(date), input)) - } -} - -fn parse_offset(input: Tokens) -> Parsed(Offset) { - case input { - ["Z", ..input] -> Ok(#(Offset(Positive, 0, 0), input)) - ["+", ..input] -> parse_offset_hours(input, Positive) - ["-", ..input] -> parse_offset_hours(input, Negative) - _ -> Ok(#(Local, input)) - } -} - -fn parse_offset_hours(input: Tokens, sign: Sign) -> Parsed(Offset) { - use #(hours, minutes), input <- do(parse_hour_minute(input)) - Ok(#(Offset(sign, hours, minutes), input)) -} diff --git a/aoc2023/build/prod/erlang/gleam.lock b/aoc2023/build/prod/erlang/gleam.lock deleted file mode 100644 index e69de29..0000000 diff --git a/aoc2023/build/prod/javascript/gleam.lock b/aoc2023/build/prod/javascript/gleam.lock deleted file mode 100644 index e69de29..0000000 diff --git a/aoc2023/erl_crash.dump b/aoc2023/erl_crash.dump deleted file mode 100644 index ef1d35a..0000000 --- a/aoc2023/erl_crash.dump +++ /dev/null @@ -1,67195 +0,0 @@ -=erl_crash_dump:0.5 -Thu Dec 7 01:00:23 2023 -Slogan: Runtime terminating during boot ({,[{showtime@internal@reports@formatter,-create_test_report/1-fun-4-,1,[{_},{_}]},{gleam@list,do_filter_map,3,[{_},{_}]},{showtime@internal@reports@formatter,create_test_report,1,[{_},{_}]},{showtime@internal@erlang@event_handler,-start/0-fun-1-,2,[{_},{_}]},{gleam@otp@actor,loop,1,[{_},{_}]}]}) -System version: Erlang/OTP 26 [erts-14.0.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit] [dtrace] -Taints: -Atoms: 11705 -Calling Thread: scheduler:1 -=scheduler:1 -Scheduler Sleep Info Flags: -Scheduler Sleep Info Aux Work: THR_PRGR_LATER_OP -Current Port: -Run Queue Max Length: 0 -Run Queue High Length: 0 -Run Queue Normal Length: 2 -Run Queue Low Length: 0 -Run Queue Port Length: 0 -Run Queue Flags: NONEMPTY_NORMAL | OUT_OF_WORK | HALFTIME_OUT_OF_WORK | NONEMPTY | EXEC -Current Process: <0.0.0> -Current Process State: Running -Current Process Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | ACTIVE | RUNNING | ACTIVE_SYS -Current Process Program counter: 0x0000000103d889fc (init:boot_loop/2 + 84) -Current Process Limited Stack Trace: -0x0000000105dda900:SReturn addr 0x3D82348 () -=scheduler:2 -Scheduler Sleep Info Flags: SLEEPING | POLL_SLEEPING | TSE_SLEEPING | WAITING -Scheduler Sleep Info Aux Work: -Current Port: -Run Queue Max Length: 0 -Run Queue High Length: 0 -Run Queue Normal Length: 0 -Run Queue Low Length: 0 -Run Queue Port Length: 0 -Run Queue Flags: OUT_OF_WORK | HALFTIME_OUT_OF_WORK -Current Process: -=scheduler:3 -Scheduler Sleep Info Flags: SLEEPING | TSE_SLEEPING | WAITING -Scheduler Sleep Info Aux Work: -Current Port: -Run Queue Max Length: 0 -Run Queue High Length: 0 -Run Queue Normal Length: 0 -Run Queue Low Length: 0 -Run Queue Port Length: 0 -Run Queue Flags: OUT_OF_WORK | HALFTIME_OUT_OF_WORK -Current Process: -=scheduler:4 -Scheduler Sleep Info Flags: SLEEPING | TSE_SLEEPING | WAITING -Scheduler Sleep Info Aux Work: -Current Port: -Run Queue Max Length: 0 -Run Queue High Length: 0 -Run Queue Normal Length: 0 -Run Queue Low Length: 0 -Run Queue Port Length: 0 -Run Queue Flags: OUT_OF_WORK | HALFTIME_OUT_OF_WORK -Current Process: -=scheduler:5 -Scheduler Sleep Info Flags: SLEEPING | TSE_SLEEPING | WAITING -Scheduler Sleep Info Aux Work: -Current Port: -Run Queue Max Length: 0 -Run Queue High Length: 0 -Run Queue Normal Length: 0 -Run Queue Low Length: 0 -Run Queue Port Length: 0 -Run Queue Flags: OUT_OF_WORK | HALFTIME_OUT_OF_WORK -Current Process: -=scheduler:6 -Scheduler Sleep Info Flags: SLEEPING | TSE_SLEEPING | WAITING -Scheduler Sleep Info Aux Work: -Current Port: -Run Queue Max Length: 0 -Run Queue High Length: 0 -Run Queue Normal Length: 0 -Run Queue Low Length: 0 -Run Queue Port Length: 0 -Run Queue Flags: OUT_OF_WORK | HALFTIME_OUT_OF_WORK -Current Process: -=scheduler:7 -Scheduler Sleep Info Flags: SLEEPING | TSE_SLEEPING | WAITING -Scheduler Sleep Info Aux Work: -Current Port: -Run Queue Max Length: 0 -Run Queue High Length: 0 -Run Queue Normal Length: 0 -Run Queue Low Length: 0 -Run Queue Port Length: 0 -Run Queue Flags: OUT_OF_WORK | HALFTIME_OUT_OF_WORK -Current Process: -=scheduler:8 -Scheduler Sleep Info Flags: SLEEPING | TSE_SLEEPING | WAITING -Scheduler Sleep Info Aux Work: -Current Port: -Run Queue Max Length: 0 -Run Queue High Length: 0 -Run Queue Normal Length: 0 -Run Queue Low Length: 0 -Run Queue Port Length: 0 -Run Queue Flags: OUT_OF_WORK | HALFTIME_OUT_OF_WORK -Current Process: -=memory -total: 24121588 -processes: 7426424 -processes_used: 7419720 -system: 16695164 -atom: 327857 -atom_used: 307203 -binary: 475240 -code: 6109634 -ets: 600608 -=hash_table:atom_tab -size: 8192 -used: 6198 -objs: 11705 -depth: 8 -=index_table:atom_tab -size: 12288 -limit: 1048576 -entries: 11705 -=hash_table:module_code -size: 128 -used: 106 -objs: 180 -depth: 4 -=index_table:module_code -size: 1024 -limit: 65536 -entries: 180 -=hash_table:export_list -size: 4096 -used: 2753 -objs: 4462 -depth: 7 -=index_table:export_list -size: 5120 -limit: 524288 -entries: 4462 -=hash_table:export_list -size: 4096 -used: 2746 -objs: 4441 -depth: 7 -=hash_table:process_reg -size: 64 -used: 39 -objs: 52 -depth: 5 -=hash_table:fun_table -size: 1024 -used: 641 -objs: 987 -depth: 5 -=hash_table:node_table -size: 16 -used: 1 -objs: 1 -depth: 1 -=hash_table:dist_table -size: 16 -used: 1 -objs: 1 -depth: 1 -=allocated_areas -sys_misc: 57656 -static: 2107456 -atom_space: 163880 143226 -atom_table: 163977 -module_table: 107736 -export_table: 221604 -export_list: 892400 -register_table: 628 -fun_table: 8306 -module_refs: 8592 -loaded_code: 4870996 -dist_table: 691 -node_table: 291 -bits_bufs_size: 0 -bif_timer: 0 -process_table: 3145728 -port_table: 786432 -ets_misc: 131072 -external_alloc: 4870996 -=allocator:sys_alloc -option e: true -option m: libc -=allocator:temp_alloc[0] -versions: 2.1 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option mbsd: 3 -option as: gf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 5 5 -mbcs blocks[temp_alloc] size: 0 11288 11288 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 1067 -temp_free calls: 1067 -temp_realloc calls: 1 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:temp_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: af -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 1 5 5 -mbcs blocks[temp_alloc] size: 65544 655448 655448 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 2 2 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 1179648 1179648 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 9479 -temp_free calls: 9478 -temp_realloc calls: 134 -mseg_alloc calls: 4 -mseg_dealloc calls: 4 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:temp_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: af -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 1 1 -mbcs blocks[temp_alloc] size: 0 56 56 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 1 -temp_free calls: 1 -temp_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:temp_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: af -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 1 1 -mbcs blocks[temp_alloc] size: 0 56 56 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 1 -temp_free calls: 1 -temp_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:temp_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: af -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 1 1 -mbcs blocks[temp_alloc] size: 0 56 56 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 1 -temp_free calls: 1 -temp_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:temp_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: af -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 1 1 -mbcs blocks[temp_alloc] size: 0 56 56 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 1 -temp_free calls: 1 -temp_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:temp_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: af -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 4 4 -mbcs blocks[temp_alloc] size: 0 6296 6296 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 616 -temp_free calls: 616 -temp_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:temp_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: af -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 5 5 -mbcs blocks[temp_alloc] size: 0 11576 11576 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 1049 -temp_free calls: 1049 -temp_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:temp_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 90 -option rsbcmt: 80 -option rmbcmt: 100 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: af -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 5 5 -mbcs blocks[temp_alloc] size: 0 6488 6488 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -temp_alloc calls: 1002 -temp_free calls: 1002 -temp_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[0] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 6 81 81 -mbcs blocks[sl_alloc] size: 576 41440 41440 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 2 2 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 294912 294912 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 665 -sl_free calls: 659 -sl_realloc calls: 0 -mseg_alloc calls: 2 -mseg_dealloc calls: 2 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: S -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 1 6337 6337 -mbcs blocks[sl_alloc] size: 112 1263320 1263320 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 3 3 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 1343488 1343488 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 11588 -sl_free calls: 11587 -sl_realloc calls: 1 -mseg_alloc calls: 19 -mseg_dealloc calls: 19 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: S -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 1 1 -mbcs blocks[sl_alloc] size: 0 64 64 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 1 -sl_free calls: 1 -sl_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: S -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 0 -sl_free calls: 0 -sl_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: S -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 0 -sl_free calls: 0 -sl_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: S -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 0 -sl_free calls: 0 -sl_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: S -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 156 156 -mbcs blocks[sl_alloc] size: 0 137448 137448 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 2 2 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 294912 294912 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 279 -sl_free calls: 279 -sl_realloc calls: 0 -mseg_alloc calls: 1 -mseg_dealloc calls: 1 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: S -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 261 261 -mbcs blocks[sl_alloc] size: 0 214552 214552 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 2 2 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 294912 294912 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 619 -sl_free calls: 619 -sl_realloc calls: 1 -mseg_alloc calls: 1 -mseg_dealloc calls: 1 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:sl_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 80 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: S -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 166 166 -mbcs blocks[sl_alloc] size: 0 139368 139368 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 2 2 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 294912 294912 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -sl_alloc calls: 411 -sl_free calls: 411 -sl_realloc calls: 0 -mseg_alloc calls: 1 -mseg_dealloc calls: 1 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[0] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 41 45 45 -mbcs blocks[std_alloc] size: 399040 406936 406936 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 2 2 2 -mbcs mseg carriers: 1 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 557056 557056 557056 -mbcs mseg carriers size: 524288 -mbcs sys_alloc carriers size: 32768 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 65 -std_free calls: 24 -std_realloc calls: 1 -mseg_alloc calls: 1 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: D -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 199 201 201 -mbcs blocks[std_alloc] size: 72664 79840 79840 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 2 2 2 -mbcs mseg carriers: 1 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 294912 294912 294912 -mbcs mseg carriers size: 262144 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 799 -std_free calls: 600 -std_realloc calls: 1 -mseg_alloc calls: 1 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: D -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 1 1 1 -mbcs blocks[std_alloc] size: 64 64 64 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 1 -std_free calls: 0 -std_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: D -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 1 1 1 -mbcs blocks[std_alloc] size: 64 64 64 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 1 -std_free calls: 0 -std_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: D -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 1 1 1 -mbcs blocks[std_alloc] size: 64 64 64 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 1 -std_free calls: 0 -std_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: D -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 1 1 1 -mbcs blocks[std_alloc] size: 64 64 64 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 1 -std_free calls: 0 -std_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: D -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 1 2 2 -mbcs blocks[std_alloc] size: 64 7232 7232 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 6 -std_free calls: 5 -std_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: D -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 1 2 2 -mbcs blocks[std_alloc] size: 64 7232 7232 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 9 -std_free calls: 8 -std_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:std_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: D -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 1 2 2 -mbcs blocks[std_alloc] size: 64 7232 7232 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -std_alloc calls: 11 -std_free calls: 10 -std_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[0] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 3909 3914 3914 -mbcs blocks[ll_alloc] size: 10112144 10146648 10146648 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 4 4 4 -mbcs mseg carriers: 3 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 12058624 12058624 12058624 -mbcs mseg carriers size: 11534336 -mbcs sys_alloc carriers size: 524288 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 3916 -ll_free calls: 7 -ll_realloc calls: 0 -mseg_alloc calls: 3 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 85 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: L -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 11782 11782 11782 -mbcs blocks[ll_alloc] size: 1693840 1693840 1693840 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 3 3 3 -mbcs mseg carriers: 2 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 1835008 1835008 1835008 -mbcs mseg carriers size: 1310720 -mbcs sys_alloc carriers size: 524288 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 11784 -ll_free calls: 2 -ll_realloc calls: 0 -mseg_alloc calls: 2 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 85 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: L -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 524288 524288 524288 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 524288 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 0 -ll_free calls: 0 -ll_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 85 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: L -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 524288 524288 524288 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 524288 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 0 -ll_free calls: 0 -ll_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 85 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: L -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 524288 524288 524288 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 524288 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 0 -ll_free calls: 0 -ll_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 85 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: L -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 524288 524288 524288 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 524288 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 0 -ll_free calls: 0 -ll_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 85 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: L -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 668 668 668 -mbcs blocks[ll_alloc] size: 108808 108808 108808 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 524288 524288 524288 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 524288 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 668 -ll_free calls: 0 -ll_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 85 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: L -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 1126 1126 1126 -mbcs blocks[ll_alloc] size: 113352 113352 113352 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 524288 524288 524288 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 524288 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 1126 -ll_free calls: 0 -ll_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ll_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 524288 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 85 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: L -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 620 620 620 -mbcs blocks[ll_alloc] size: 56672 56672 56672 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 524288 524288 524288 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 524288 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ll_alloc calls: 620 -ll_free calls: 0 -ll_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[0] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 23 69 69 -mbcs blocks[eheap_alloc] size: 309312 314576 314576 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 2 2 2 -mbcs mseg carriers: 1 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 393216 393216 393216 -mbcs mseg carriers size: 262144 -mbcs sys_alloc carriers size: 131072 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 101 -eheap_free calls: 78 -eheap_realloc calls: 0 -mseg_alloc calls: 1 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 45 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: H -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 95 104 104 -mbcs blocks[eheap_alloc] size: 1355616 2466824 2466824 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 4 4 4 -mbcs mseg carriers: 3 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 3538944 3538944 3538944 -mbcs mseg carriers size: 3407872 -mbcs sys_alloc carriers size: 131072 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 1 3 3 -sbcs blocks[eheap_alloc] size: 2545504 5091008 5091008 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 1 3 3 -sbcs mseg carriers: 1 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 2555904 5128192 5128192 -sbcs mseg carriers size: 2555904 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 1377 -eheap_free calls: 1281 -eheap_realloc calls: 139 -mseg_alloc calls: 8 -mseg_dealloc calls: 4 -mseg_realloc calls: 2 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 45 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: H -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 0 -eheap_free calls: 0 -eheap_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 45 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: H -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 0 -eheap_free calls: 0 -eheap_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 45 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: H -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 0 -eheap_free calls: 0 -eheap_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 45 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: H -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 0 -eheap_free calls: 0 -eheap_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 45 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: H -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 2 2 -mbcs blocks[eheap_alloc] size: 0 55336 55336 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 2 -eheap_free calls: 2 -eheap_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 45 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: H -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 1 2 2 -mbcs blocks[eheap_alloc] size: 72 2800 2800 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 131072 131072 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 3 -eheap_free calls: 2 -eheap_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:eheap_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 50 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 131072 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 45 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: H -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 13 13 -mbcs blocks[eheap_alloc] size: 0 651688 651688 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 3 3 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 131072 1441792 1441792 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 131072 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -eheap_alloc calls: 30 -eheap_free calls: 30 -eheap_realloc calls: 1 -mseg_alloc calls: 2 -mseg_dealloc calls: 2 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[0] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 0 0 0 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 0 -mbcs carriers size: 0 0 0 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 0 -ets_free calls: 0 -ets_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 0 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: E -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 633 633 633 -mbcs blocks[ets_alloc] size: 469536 469536 469536 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 3 3 3 -mbcs mseg carriers: 2 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 1343488 1343488 1343488 -mbcs mseg carriers size: 1310720 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 634 -ets_free calls: 1 -ets_realloc calls: 9 -mseg_alloc calls: 2 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: E -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 0 -ets_free calls: 0 -ets_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: E -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 0 -ets_free calls: 0 -ets_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: E -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 0 -ets_free calls: 0 -ets_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: E -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 0 -ets_free calls: 0 -ets_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: E -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 0 -ets_free calls: 0 -ets_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: E -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 0 -ets_free calls: 0 -ets_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:ets_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: E -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -ets_alloc calls: 0 -ets_free calls: 0 -ets_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[0] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aoffcbf -fix type: enif_select_data_state 0 0 -fix type: driver_select_data_state 0 0 -fix type: link 0 0 -fix type: monitor 0 0 -fix type: sl_thr_q_element 448 0 -fix type: process_signal_queue_buffers 0 0 -fix type: magic_indirection 0 0 -fix type: nsched_pid_ref_entry 0 0 -fix type: nsched_magic_ref_entry 0 0 -fix type: bif_timer 0 0 -fix type: hl_ptimer 0 0 -fix type: ll_ptimer 0 0 -fix type: msg_ref 48 48 -fix type: receive_marker_block 0 0 -fix type: proc 4704 4704 -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 35 35 35 -mbcs blocks[fix_alloc] size: 6608 6608 6608 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 189 -fix_free calls: 182 -fix_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: F -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 267 267 267 -mbcs blocks[fix_alloc] size: 71072 71072 71072 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 2 2 2 -mbcs mseg carriers: 1 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 294912 294912 294912 -mbcs mseg carriers size: 262144 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 629 -fix_free calls: 399 -fix_realloc calls: 0 -mseg_alloc calls: 1 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: F -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 0 -fix_free calls: 0 -fix_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: F -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 0 -fix_free calls: 0 -fix_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: F -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 0 -fix_free calls: 0 -fix_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: F -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 0 -fix_free calls: 0 -fix_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: F -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 0 -fix_free calls: 0 -fix_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: F -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 0 -fix_free calls: 0 -fix_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:fix_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: false -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: F -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -fix_alloc calls: 0 -fix_free calls: 0 -fix_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:literal_alloc -versions: 0.9 3.0 -option e: true -option t: false -option ramv: false -option atags: false -option sbct: 18446744073709551615 -option asbcst: 0 -option rsbcst: 0 -option rsbcmt: 0 -option rmbcmt: 0 -option mmbcs: 1048576 -option mmsbc: 0 -option mmmbc: 18446744073709551615 -option lmbcs: 10485760 -option smbcs: 1048576 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aobf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 209 209 209 -mbcs blocks[literal_alloc] size: 1447384 1447384 1447384 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 2 2 2 -mbcs mseg carriers: 2 -mbcs sys_alloc carriers: 0 -mbcs carriers size: 2097152 2097152 2097152 -mbcs mseg carriers size: 2097152 -mbcs sys_alloc carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -literal_alloc calls: 212 -literal_free calls: 3 -literal_realloc calls: 0 -mseg_alloc calls: 2 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 0 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[0] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 40 76 76 -mbcs blocks[binary_alloc] size: 459064 1258696 1258696 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 3 3 3 -mbcs mseg carriers: 2 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 1343488 1343488 1343488 -mbcs mseg carriers size: 1310720 -mbcs sys_alloc carriers size: 32768 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 1 1 -sbcs blocks[binary_alloc] size: 0 823888 823888 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 1 1 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 835584 835584 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 409 -binary_free calls: 369 -binary_realloc calls: 4 -mseg_alloc calls: 9 -mseg_dealloc calls: 7 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: B -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 30 143 143 -mbcs blocks[binary_alloc] size: 13056 47272 47272 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 2 2 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 294912 294912 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 15 -mbcs_pool blocks[binary_alloc] size: 3120 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 1 -mbcs_pool carriers size: 262144 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 3105 -binary_free calls: 3060 -binary_realloc calls: 23 -mseg_alloc calls: 1 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: B -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 0 -binary_free calls: 0 -binary_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: B -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 0 -binary_free calls: 0 -binary_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: B -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 0 -binary_free calls: 0 -binary_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: B -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 0 -binary_free calls: 0 -binary_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: B -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 78 78 -mbcs blocks[binary_alloc] size: 0 12416 12416 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 82 -binary_free calls: 82 -binary_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: B -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 26 26 -mbcs blocks[binary_alloc] size: 0 6568 6568 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 32 -binary_free calls: 32 -binary_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:binary_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: B -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 143 143 -mbcs blocks[binary_alloc] size: 0 21808 21808 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -binary_alloc calls: 204 -binary_free calls: 204 -binary_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[0] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 0 -option acful: 0 -option acnl: 0 -option acfml: 0 -option cp: undefined -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 37 37 37 -mbcs blocks[driver_alloc] size: 8096 8096 8096 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 38 -driver_free calls: 1 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[1] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: R -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 17 18 18 -mbcs blocks[driver_alloc] size: 4496 15456 15456 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 26 -driver_free calls: 9 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[2] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: R -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 0 -driver_free calls: 0 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[3] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: R -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 0 -driver_free calls: 0 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[4] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: R -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 0 -driver_free calls: 0 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[5] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: R -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 0 -driver_free calls: 0 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[6] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: R -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 0 -driver_free calls: 0 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[7] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: R -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 0 -driver_free calls: 0 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:driver_alloc[8] -versions: 0.9 3.0 -option e: true -option t: 9 -option ramv: false -option atags: true -option sbct: 524288 -option asbcst: 4145152 -option rsbcst: 20 -option rsbcmt: 80 -option rmbcmt: 50 -option mmbcs: 32768 -option mmsbc: 256 -option mmmbc: 18446744073709551615 -option lmbcs: 5242880 -option smbcs: 262144 -option mbcgs: 10 -option acul: 60 -option acful: 0 -option acnl: 1000 -option acfml: 0 -option cp: R -option as: aoffcbf -mbcs blocks[sys_alloc] count: 0 0 0 -mbcs blocks[sys_alloc] size: 0 0 0 -mbcs blocks[temp_alloc] count: 0 0 0 -mbcs blocks[temp_alloc] size: 0 0 0 -mbcs blocks[sl_alloc] count: 0 0 0 -mbcs blocks[sl_alloc] size: 0 0 0 -mbcs blocks[std_alloc] count: 0 0 0 -mbcs blocks[std_alloc] size: 0 0 0 -mbcs blocks[ll_alloc] count: 0 0 0 -mbcs blocks[ll_alloc] size: 0 0 0 -mbcs blocks[eheap_alloc] count: 0 0 0 -mbcs blocks[eheap_alloc] size: 0 0 0 -mbcs blocks[ets_alloc] count: 0 0 0 -mbcs blocks[ets_alloc] size: 0 0 0 -mbcs blocks[fix_alloc] count: 0 0 0 -mbcs blocks[fix_alloc] size: 0 0 0 -mbcs blocks[literal_alloc] count: 0 0 0 -mbcs blocks[literal_alloc] size: 0 0 0 -mbcs blocks[binary_alloc] count: 0 0 0 -mbcs blocks[binary_alloc] size: 0 0 0 -mbcs blocks[driver_alloc] count: 0 0 0 -mbcs blocks[driver_alloc] size: 0 0 0 -mbcs blocks[test_alloc] count: 0 0 0 -mbcs blocks[test_alloc] size: 0 0 0 -mbcs carriers: 1 1 1 -mbcs mseg carriers: 0 -mbcs sys_alloc carriers: 1 -mbcs carriers size: 32768 32768 32768 -mbcs mseg carriers size: 0 -mbcs sys_alloc carriers size: 32768 -mbcs_pool blocks[sys_alloc] count: 0 -mbcs_pool blocks[sys_alloc] size: 0 -mbcs_pool blocks[temp_alloc] count: 0 -mbcs_pool blocks[temp_alloc] size: 0 -mbcs_pool blocks[sl_alloc] count: 0 -mbcs_pool blocks[sl_alloc] size: 0 -mbcs_pool blocks[std_alloc] count: 0 -mbcs_pool blocks[std_alloc] size: 0 -mbcs_pool blocks[ll_alloc] count: 0 -mbcs_pool blocks[ll_alloc] size: 0 -mbcs_pool blocks[eheap_alloc] count: 0 -mbcs_pool blocks[eheap_alloc] size: 0 -mbcs_pool blocks[ets_alloc] count: 0 -mbcs_pool blocks[ets_alloc] size: 0 -mbcs_pool blocks[fix_alloc] count: 0 -mbcs_pool blocks[fix_alloc] size: 0 -mbcs_pool blocks[literal_alloc] count: 0 -mbcs_pool blocks[literal_alloc] size: 0 -mbcs_pool blocks[binary_alloc] count: 0 -mbcs_pool blocks[binary_alloc] size: 0 -mbcs_pool blocks[driver_alloc] count: 0 -mbcs_pool blocks[driver_alloc] size: 0 -mbcs_pool blocks[test_alloc] count: 0 -mbcs_pool blocks[test_alloc] size: 0 -mbcs_pool carriers: 0 -mbcs_pool carriers size: 0 -sbcs blocks[sys_alloc] count: 0 0 0 -sbcs blocks[sys_alloc] size: 0 0 0 -sbcs blocks[temp_alloc] count: 0 0 0 -sbcs blocks[temp_alloc] size: 0 0 0 -sbcs blocks[sl_alloc] count: 0 0 0 -sbcs blocks[sl_alloc] size: 0 0 0 -sbcs blocks[std_alloc] count: 0 0 0 -sbcs blocks[std_alloc] size: 0 0 0 -sbcs blocks[ll_alloc] count: 0 0 0 -sbcs blocks[ll_alloc] size: 0 0 0 -sbcs blocks[eheap_alloc] count: 0 0 0 -sbcs blocks[eheap_alloc] size: 0 0 0 -sbcs blocks[ets_alloc] count: 0 0 0 -sbcs blocks[ets_alloc] size: 0 0 0 -sbcs blocks[fix_alloc] count: 0 0 0 -sbcs blocks[fix_alloc] size: 0 0 0 -sbcs blocks[literal_alloc] count: 0 0 0 -sbcs blocks[literal_alloc] size: 0 0 0 -sbcs blocks[binary_alloc] count: 0 0 0 -sbcs blocks[binary_alloc] size: 0 0 0 -sbcs blocks[driver_alloc] count: 0 0 0 -sbcs blocks[driver_alloc] size: 0 0 0 -sbcs blocks[test_alloc] count: 0 0 0 -sbcs blocks[test_alloc] size: 0 0 0 -sbcs carriers: 0 0 0 -sbcs mseg carriers: 0 -sbcs sys_alloc carriers: 0 -sbcs carriers size: 0 0 0 -sbcs mseg carriers size: 0 -sbcs sys_alloc carriers size: 0 -driver_alloc calls: 0 -driver_free calls: 0 -driver_realloc calls: 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -sys_alloc calls: 1 -sys_free calls: 0 -sys_realloc calls: 0 -=allocator:test_alloc -option e: false -=allocator:mseg_alloc[0] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 2 -cache_hits: 7 -segments: 7 8 8 -segments_watermark: 8 -segments_size: 13631488 14467072 14467072 -mseg_alloc calls: 16 -mseg_dealloc calls: 9 -mseg_realloc calls: 0 -mseg_create calls: 9 -mseg_create_resize calls: 0 -mseg_destroy calls: 0 -mseg_recreate calls: 0 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:mseg_alloc[1] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 5 -cache_hits: 23 -segments: 11 13 13 -segments_watermark: 13 -segments_size: 9371648 11681792 11681792 -mseg_alloc calls: 38 -mseg_dealloc calls: 27 -mseg_realloc calls: 2 -mseg_create calls: 15 -mseg_create_resize calls: 0 -mseg_destroy calls: 1 -mseg_recreate calls: 1 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:mseg_alloc[2] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 0 -cache_hits: 0 -segments: 0 0 0 -segments_watermark: 0 -segments_size: 0 0 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -mseg_create calls: 0 -mseg_create_resize calls: 0 -mseg_destroy calls: 0 -mseg_recreate calls: 0 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:mseg_alloc[3] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 0 -cache_hits: 0 -segments: 0 0 0 -segments_watermark: 0 -segments_size: 0 0 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -mseg_create calls: 0 -mseg_create_resize calls: 0 -mseg_destroy calls: 0 -mseg_recreate calls: 0 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:mseg_alloc[4] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 0 -cache_hits: 0 -segments: 0 0 0 -segments_watermark: 0 -segments_size: 0 0 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -mseg_create calls: 0 -mseg_create_resize calls: 0 -mseg_destroy calls: 0 -mseg_recreate calls: 0 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:mseg_alloc[5] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 0 -cache_hits: 0 -segments: 0 0 0 -segments_watermark: 0 -segments_size: 0 0 0 -mseg_alloc calls: 0 -mseg_dealloc calls: 0 -mseg_realloc calls: 0 -mseg_create calls: 0 -mseg_create_resize calls: 0 -mseg_destroy calls: 0 -mseg_recreate calls: 0 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:mseg_alloc[6] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 1 -cache_hits: 0 -segments: 0 1 1 -segments_watermark: 1 -segments_size: 0 262144 262144 -mseg_alloc calls: 1 -mseg_dealloc calls: 1 -mseg_realloc calls: 0 -mseg_create calls: 1 -mseg_create_resize calls: 0 -mseg_destroy calls: 0 -mseg_recreate calls: 0 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:mseg_alloc[7] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 1 -cache_hits: 0 -segments: 0 1 1 -segments_watermark: 1 -segments_size: 0 262144 262144 -mseg_alloc calls: 1 -mseg_dealloc calls: 1 -mseg_realloc calls: 0 -mseg_create calls: 1 -mseg_create_resize calls: 0 -mseg_destroy calls: 0 -mseg_recreate calls: 0 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:mseg_alloc[8] -version: 0.9 -option amcbf: 4194304 -option rmcbf: 20 -option mcs: 10 -memory kind: all memory -cached_segments: 3 -cache_hits: 0 -segments: 0 3 3 -segments_watermark: 3 -segments_size: 0 1572864 1572864 -mseg_alloc calls: 3 -mseg_dealloc calls: 3 -mseg_realloc calls: 0 -mseg_create calls: 3 -mseg_create_resize calls: 0 -mseg_destroy calls: 0 -mseg_recreate calls: 0 -mseg_clear_cache calls: 0 -mseg_check_cache calls: 0 -=allocator:erts_mmap.default_mmap -option scs: 0 -os mmap size used: 29966336 -=allocator:erts_mmap.literal_mmap -option scs: 1073676288 -option sco: true -option scrpm: false -option scrfsd: 1024 -supercarrier total size: 1073741824 -supercarrier total sa size: 2097152 -supercarrier total sua size: 0 -supercarrier used size: 2162688 -supercarrier used sa size: 2097152 -supercarrier used sua size: 0 -supercarrier used free segs: 0 -supercarrier max free segs: 0 -supercarrier allocated free segs: 0 -supercarrier reserved free segs: 1024 -supercarrier sa free segs: 0 -supercarrier sua free segs: 0 -=allocator:alloc_util -option mmc: 18446744073709551615 -option ycs: 1048576 -option sac: true -=allocator:instr -=proc:<0.0.0> -State: Running -Name: init -Spawned as: erl_init:start/2 -Spawned by: [] -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.10.0>, <0.44.0>, <0.42.0>] -Reductions: 10269 -Stack+heap: 2586 -OldHeap: 4185 -Heap unused: 1928 -OldHeap unused: 2458 -BinVHeap: 0 -OldBinVHeap: 169 -BinVHeap unused: 46422 -OldBinVHeap unused: 46253 -Memory: 55072 -Program counter: 0x0000000103d889fc (init:boot_loop/2 + 84) -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | ACTIVE | RUNNING | ACTIVE_SYS -=proc:<0.1.0> -State: Waiting -Name: erts_code_purger -Spawned as: erts_code_purger:start/0 -Spawned by: <0.0.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 11 -Reductions: 23 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 228 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2736 -Program counter: 0x0000000103d82874 (erts_code_purger:wait_for_request/0 + 68) -arity = 0 -Internal State: ACT_PRIO_HIGH | USR_PRIO_HIGH | PRQ_PRIO_HIGH | OFF_HEAP_MSGQ -=proc:<0.2.0> -State: Waiting -Spawned as: erts_literal_area_collector:start/0 -Spawned by: <0.0.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Reductions: 7 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 233 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2648 -Program counter: 0x0000000103e01368 (erts_literal_area_collector:msg_loop/4 + 136) -arity = 0 -Internal State: ACT_PRIO_HIGH | USR_PRIO_HIGH | PRQ_PRIO_HIGH | OFF_HEAP_MSGQ -=proc:<0.3.0> -State: Waiting -Spawned as: erts_dirty_process_signal_handler:start/0 -Spawned by: <0.0.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Reductions: 7 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 233 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2648 -Program counter: 0x0000000103e025f8 (erts_dirty_process_signal_handler:msg_loop/0 + 80) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | OFF_HEAP_MSGQ -=proc:<0.4.0> -State: Waiting -Spawned as: erts_dirty_process_signal_handler:start/0 -Spawned by: <0.0.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Reductions: 7 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 233 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2648 -Program counter: 0x0000000103e025f8 (erts_dirty_process_signal_handler:msg_loop/0 + 80) -arity = 0 -Internal State: ACT_PRIO_HIGH | USR_PRIO_HIGH | PRQ_PRIO_HIGH | OFF_HEAP_MSGQ -=proc:<0.5.0> -State: Waiting -Spawned as: erts_dirty_process_signal_handler:start/0 -Spawned by: <0.0.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Reductions: 7 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 233 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2648 -Program counter: 0x0000000103e025f8 (erts_dirty_process_signal_handler:msg_loop/0 + 80) -arity = 0 -Internal State: ACT_PRIO_MAX | USR_PRIO_MAX | PRQ_PRIO_MAX | OFF_HEAP_MSGQ -=proc:<0.6.0> -State: Waiting -Spawned as: prim_file:start/0 -Spawned by: <0.0.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Reductions: 6 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 233 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2648 -Program counter: 0x0000000103daf94c (prim_file:helper_loop/0 + 68) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.7.0> -State: Waiting -Name: socket_registry -Spawned as: socket_registry:start/0 -Spawned by: <0.0.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Reductions: 8 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 233 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2648 -Program counter: 0x0000000103dbe314 (socket_registry:loop/1 + 84) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.10.0> -State: Waiting -Name: erl_prim_loader -Spawned as: erlang:apply/2 -Spawned by: <0.9.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.0.0>] -Reductions: 468281 -Stack+heap: 6772 -OldHeap: 10958 -Heap unused: 3381 -OldHeap unused: 5568 -BinVHeap: 313 -OldBinVHeap: 0 -BinVHeap unused: 46109 -OldBinVHeap unused: 46422 -Memory: 142752 -Program counter: 0x0000000103dd7c4c (erl_prim_loader:loop/3 + 100) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.42.0> -State: Waiting -Name: logger -Spawned as: proc_lib:init_p/5 -Spawned by: <0.9.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.0.0>] -Reductions: 883 -Stack+heap: 1598 -OldHeap: 376 -Heap unused: 1120 -OldHeap unused: 331 -BinVHeap: 100 -OldBinVHeap: 4 -BinVHeap unused: 46322 -OldBinVHeap unused: 46418 -Memory: 16792 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.44.0> -State: Waiting -Name: application_controller -Spawned as: erlang:apply/2 -Spawned by: <0.9.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 8 -Link list: [<0.0.0>, <0.90.0>, <0.102.0>, <0.46.0>] -Reductions: 92245 -Stack+heap: 28690 -OldHeap: 46422 -Heap unused: 12854 -OldHeap unused: 17270 -BinVHeap: 24 -OldBinVHeap: 0 -BinVHeap unused: 46398 -OldBinVHeap unused: 46422 -Memory: 602080 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.46.0> -State: Waiting -Spawned as: proc_lib:init_p/5 -Spawned by: <0.45.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.44.0>, <0.47.0>] -Reductions: 40 -Stack+heap: 376 -OldHeap: 0 -Heap unused: 29 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 3960 -Program counter: 0x0000000103eb6264 (application_master:main_loop/2 + 76) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.47.0> -State: Waiting -Spawned as: application_master:start_it/4 -Spawned by: <0.46.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>, <0.46.0>] -Reductions: 545 -Stack+heap: 376 -OldHeap: 376 -Heap unused: 336 -OldHeap unused: 370 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 6880 -Program counter: 0x0000000103eb7b08 (application_master:loop_it/4 + 88) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.49.0> -State: Waiting -Name: kernel_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.47.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 4 -Link list: [<0.47.0>, <0.51.0>, <0.50.0>, <0.55.0>, <0.58.0>, <0.56.0>, <0.63.0>, <0.70.0>, <0.75.0>, <0.74.0>, <0.73.0>, <0.64.0>, <0.61.0>, <0.53.0>] -Reductions: 3772 -Stack+heap: 2586 -OldHeap: 2586 -Heap unused: 618 -OldHeap unused: 2304 -BinVHeap: 8812 -OldBinVHeap: 0 -BinVHeap unused: 37610 -OldBinVHeap unused: 46422 -Memory: 42840 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.50.0> -State: Waiting -Name: code_server -Spawned as: erlang:apply/2 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>] -Reductions: 221248 -Stack+heap: 28690 -OldHeap: 318187 -Heap unused: 24392 -OldHeap unused: 271366 -BinVHeap: 3930 -OldBinVHeap: 0 -BinVHeap unused: 42492 -OldBinVHeap unused: 46422 -Memory: 2775928 -Program counter: 0x0000000103ee8404 (code_server:loop/1 + 132) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.51.0> -State: Waiting -Name: standard_error_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.52.0>, <0.49.0>] -Reductions: 57 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 128 -OldHeap unused: 0 -BinVHeap: 20 -OldBinVHeap: 0 -BinVHeap unused: 46402 -OldBinVHeap unused: 46422 -Memory: 2816 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.52.0> -State: Waiting -Name: standard_error -Spawned as: erlang:apply/2 -Spawned by: <0.51.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [#Port<0.1>, <0.51.0>] -Reductions: 134 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 118 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2816 -Program counter: 0x0000000103fbbafc (standard_error:server_loop/1 + 76) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.53.0> -State: Waiting -Name: file_server_2 -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>] -Reductions: 1025 -Stack+heap: 987 -OldHeap: 610 -Heap unused: 685 -OldHeap unused: 575 -BinVHeap: 7 -OldBinVHeap: 0 -BinVHeap unused: 46415 -OldBinVHeap unused: 46422 -Memory: 13776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.55.0> -State: Waiting -Name: inet_db -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>] -Reductions: 420 -Stack+heap: 376 -OldHeap: 610 -Heap unused: 108 -OldHeap unused: 562 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 8888 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.56.0> -State: Waiting -Name: rex -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>, {to,<0.57.0>,#Ref<0.3756053351.4210294785.45059>}] -Reductions: 41 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 149 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2840 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | OFF_HEAP_MSGQ -=proc:<0.57.0> -State: Waiting -Spawned as: erlang:apply/2 -Spawned by: <0.56.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 6 -Link list: [{from,<0.56.0>,#Ref<0.3756053351.4210294785.45059>}] -Reductions: 69 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 12 -OldHeap unused: 0 -BinVHeap: 11010 -OldBinVHeap: 0 -BinVHeap unused: 35412 -OldBinVHeap unused: 46422 -Memory: 2908 -Program counter: 0x0000000103ff2290 (rpc:nodes_observer_loop/1 + 88) -arity = 0 -Internal State: ACT_PRIO_HIGH | USR_PRIO_HIGH | PRQ_PRIO_HIGH | MAYBE_SELF_SIGS -=proc:<0.58.0> -State: Waiting -Name: global_name_server -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 1 -Heap fragment data: 4 -Link list: [<0.49.0>, <0.60.0>, <0.59.0>] -Reductions: 318 -Stack+heap: 610 -OldHeap: 610 -Heap unused: 345 -OldHeap unused: 559 -BinVHeap: 3003 -OldBinVHeap: 0 -BinVHeap unused: 43419 -OldBinVHeap unused: 46422 -Memory: 10932 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.59.0> -State: Waiting -Spawned as: erlang:apply/2 -Spawned by: <0.58.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.58.0>] -Reductions: 39 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 177 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2688 -Program counter: 0x0000000104002e4c (global:loop_the_locker/1 + 484) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.60.0> -State: Waiting -Spawned as: erlang:apply/2 -Spawned by: <0.58.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.58.0>] -Reductions: 7 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 231 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2688 -Program counter: 0x0000000104009898 (global:loop_the_registrar/0 + 80) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.61.0> -State: Waiting -Name: global_group -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.62.0>, <0.49.0>] -Reductions: 112 -Stack+heap: 376 -OldHeap: 0 -Heap unused: 94 -OldHeap unused: 0 -BinVHeap: 4276 -OldBinVHeap: 0 -BinVHeap unused: 42146 -OldBinVHeap unused: 46422 -Memory: 4020 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_MAX | USR_PRIO_MAX | PRQ_PRIO_MAX -=proc:<0.62.0> -State: Waiting -Name: global_group_check -Spawned as: erlang:apply/2 -Spawned by: <0.61.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.61.0>] -Reductions: 6 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 231 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2688 -Program counter: 0x0000000104040eec (global_group:global_group_check_dispatcher/0 + 68) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.63.0> -State: Waiting -Name: erl_signal_server -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>] -Reductions: 48 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 157 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103edb214 (gen_event:fetch_msg/6 + 84) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.64.0> -State: Waiting -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.69.0>, <0.49.0>] -Reductions: 213 -Stack+heap: 4185 -OldHeap: 0 -Heap unused: 387 -OldHeap unused: 0 -BinVHeap: 15452 -OldBinVHeap: 0 -BinVHeap unused: 30970 -OldBinVHeap unused: 46422 -Memory: 34432 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.65.0> -State: Waiting -Name: user_drv -Spawned as: proc_lib:init_p/5 -Spawned by: <0.64.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.67.0>, <0.69.0>, <0.68.0>] -Reductions: 655 -Stack+heap: 610 -OldHeap: 610 -Heap unused: 208 -OldHeap unused: 487 -BinVHeap: 0 -OldBinVHeap: 82 -BinVHeap unused: 46422 -OldBinVHeap unused: 46340 -Memory: 10752 -Program counter: 0x000000010405efc0 (gen_statem:loop_receive/3 + 136) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.67.0> -State: Waiting -Name: user_drv_writer -Spawned as: proc_lib:init_p/5 -Spawned by: <0.65.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.65.0>] -Reductions: 36 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 164 -OldHeap unused: 0 -BinVHeap: 2 -OldBinVHeap: 0 -BinVHeap unused: 46420 -OldBinVHeap unused: 46422 -Memory: 2864 -Program counter: 0x000000010406d4b4 (prim_tty:writer_loop/2 + 84) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.68.0> -State: Waiting -Name: user_drv_reader -Spawned as: proc_lib:init_p/5 -Spawned by: <0.65.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.65.0>, {from,{prim_tty,tty},#Ref<0.3756053351.4210294785.45124>}] -Reductions: 33 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 165 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2848 -Program counter: 0x000000010406c5f4 (prim_tty:reader_loop/6 + 92) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.69.0> -State: Waiting -Name: user -Spawned as: group:server/4 -Spawned by: <0.65.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.64.0>, <0.65.0>] -Reductions: 287 -Stack+heap: 376 -OldHeap: 376 -Heap unused: 35 -OldHeap unused: 365 -BinVHeap: 2703 -OldBinVHeap: 0 -BinVHeap unused: 43719 -OldBinVHeap unused: 46422 -Memory: 6984 -Program counter: 0x0000000104081600 (group:server_loop/3 + 80) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.70.0> -State: Waiting -Name: logger_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>, <0.72.0>, <0.105.0>, <0.77.0>, <0.71.0>] -Reductions: 556 -Stack+heap: 376 -OldHeap: 376 -Heap unused: 144 -OldHeap unused: 279 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 7088 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.71.0> -State: Waiting -Name: logger_handler_watcher -Spawned as: proc_lib:init_p/5 -Spawned by: <0.70.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.70.0>, {to,<0.105.0>,#Ref<0.3756053351.4210294785.45416>}, {to,<0.77.0>,#Ref<0.3756053351.4210294785.45193>}] -Reductions: 81 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 84 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2904 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.72.0> -State: Scheduled -Name: logger_proxy -Spawned as: proc_lib:init_p/5 -Current call: logger_olp:handle_info/2 -Spawned by: <0.70.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 1494 -Link list: [<0.70.0>] -Reductions: 104 -Stack+heap: 376 -OldHeap: 0 -Heap unused: 211 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 15872 -Program counter: 0x0000000103f753c0 (logger_olp:handle_info/2 + 48) -arity = 2 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | IN_PRQ_NORMAL | ACTIVE | IN_RUNQ | OFF_HEAP_MSGQ -=proc:<0.73.0> -State: Waiting -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>] -Reductions: 59 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 143 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.74.0> -State: Waiting -Name: kernel_refc -Spawned as: proc_lib:init_p/5 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 3 -Link list: [<0.49.0>] -Reductions: 72 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 140 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2800 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.75.0> -State: Waiting -Name: kernel_safe_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.49.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.49.0>] -Reductions: 90 -Stack+heap: 52 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1328 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.77.0> -State: Waiting -Name: logger_std_h_default -Spawned as: proc_lib:init_p/5 -Spawned by: <0.70.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.78.0>, <0.70.0>, {from,<0.71.0>,#Ref<0.3756053351.4210294785.45193>}] -Reductions: 181 -Stack+heap: 610 -OldHeap: 610 -Heap unused: 546 -OldHeap unused: 516 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 10776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | OFF_HEAP_MSGQ -=proc:<0.78.0> -State: Waiting -Spawned as: erlang:apply/2 -Spawned by: <0.77.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.77.0>] -Reductions: 9 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 209 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2688 -Program counter: 0x00000001040ba3ac (logger_std_h:file_ctrl_loop/1 + 84) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.90.0> -State: Waiting -Spawned as: proc_lib:init_p/5 -Spawned by: <0.89.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.44.0>, <0.91.0>] -Reductions: 41 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 12 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2816 -Program counter: 0x0000000103eb6264 (application_master:main_loop/2 + 76) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.91.0> -State: Waiting -Spawned as: application_master:start_it/4 -Spawned by: <0.90.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.92.0>, <0.90.0>] -Reductions: 141 -Stack+heap: 610 -OldHeap: 987 -Heap unused: 358 -OldHeap unused: 984 -BinVHeap: 504 -OldBinVHeap: 0 -BinVHeap unused: 45918 -OldBinVHeap unused: 46422 -Memory: 13640 -Program counter: 0x0000000103eb7b08 (application_master:loop_it/4 + 88) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.92.0> -State: Waiting -Name: inets_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.91.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.91.0>, <0.97.0>, <0.93.0>] -Reductions: 347 -Stack+heap: 96 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1760 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.93.0> -State: Waiting -Name: httpc_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.92.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.92.0>, <0.96.0>, <0.94.0>] -Reductions: 336 -Stack+heap: 94 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1744 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.94.0> -State: Waiting -Name: httpc_profile_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.93.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.95.0>, <0.93.0>] -Reductions: 260 -Stack+heap: 84 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1624 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.95.0> -State: Waiting -Name: httpc_manager -Spawned as: proc_lib:init_p/5 -Spawned by: <0.94.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.94.0>] -Reductions: 174 -Stack+heap: 610 -OldHeap: 610 -Heap unused: 217 -OldHeap unused: 568 -BinVHeap: 2781 -OldBinVHeap: 0 -BinVHeap unused: 43641 -OldBinVHeap unused: 46422 -Memory: 10760 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.96.0> -State: Waiting -Name: httpc_handler_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.93.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.93.0>] -Reductions: 94 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 37 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.97.0> -State: Waiting -Name: httpd_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.92.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.92.0>] -Reductions: 71 -Stack+heap: 54 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1344 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.102.0> -State: Waiting -Spawned as: proc_lib:init_p/5 -Spawned by: <0.101.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.44.0>, <0.103.0>] -Reductions: 59 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 26 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2816 -Program counter: 0x0000000103eb6264 (application_master:main_loop/2 + 76) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.103.0> -State: Waiting -Spawned as: application_master:start_it/4 -Spawned by: <0.102.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.107.0>, <0.102.0>] -Reductions: 325 -Stack+heap: 987 -OldHeap: 987 -Heap unused: 741 -OldHeap unused: 984 -BinVHeap: 317 -OldBinVHeap: 0 -BinVHeap unused: 46105 -OldBinVHeap unused: 46422 -Memory: 16656 -Program counter: 0x0000000103eb7b08 (application_master:loop_it/4 + 88) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.105.0> -State: Waiting -Name: logger_std_h_ssl_handler -Spawned as: proc_lib:init_p/5 -Spawned by: <0.70.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.106.0>, <0.70.0>, {from,<0.71.0>,#Ref<0.3756053351.4210294785.45416>}] -Reductions: 183 -Stack+heap: 610 -OldHeap: 610 -Heap unused: 496 -OldHeap unused: 516 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 10776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | OFF_HEAP_MSGQ -=proc:<0.106.0> -State: Waiting -Spawned as: erlang:apply/2 -Spawned by: <0.105.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.105.0>] -Reductions: 9 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 209 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2688 -Program counter: 0x00000001040ba3ac (logger_std_h:file_ctrl_loop/1 + 84) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.107.0> -State: Waiting -Name: ssl_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.103.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.103.0>, <0.112.0>, <0.108.0>] -Reductions: 342 -Stack+heap: 82 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1648 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.108.0> -State: Waiting -Name: ssl_admin_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.107.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.107.0>, <0.111.0>, <0.110.0>, <0.109.0>] -Reductions: 487 -Stack+heap: 112 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1928 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.109.0> -State: Waiting -Name: ssl_pem_cache -Spawned as: proc_lib:init_p/5 -Spawned by: <0.108.0> -Message queue length: 0 -Number of heap fragments: 1 -Heap fragment data: 0 -Link list: [<0.108.0>] -Reductions: 99 -Stack+heap: 376 -OldHeap: 0 -Heap unused: 101 -OldHeap unused: 0 -BinVHeap: 3373 -OldBinVHeap: 0 -BinVHeap unused: 43049 -OldBinVHeap unused: 46422 -Memory: 4008 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.110.0> -State: Waiting -Name: ssl_manager -Spawned as: proc_lib:init_p/5 -Spawned by: <0.108.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.108.0>] -Reductions: 179 -Stack+heap: 610 -OldHeap: 987 -Heap unused: 288 -OldHeap unused: 944 -BinVHeap: 1821 -OldBinVHeap: 0 -BinVHeap unused: 44601 -OldBinVHeap unused: 46422 -Memory: 13776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.111.0> -State: Waiting -Name: tls_client_ticket_store -Spawned as: proc_lib:init_p/5 -Spawned by: <0.108.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.108.0>] -Reductions: 42 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 147 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.112.0> -State: Waiting -Name: ssl_connection_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.107.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.107.0>, <0.120.0>, <0.113.0>] -Reductions: 321 -Stack+heap: 84 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1664 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.113.0> -State: Waiting -Name: tls_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.112.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.112.0>, <0.115.0>, <0.114.0>] -Reductions: 330 -Stack+heap: 86 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1680 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.114.0> -State: Waiting -Name: tls_connection_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.113.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.113.0>] -Reductions: 92 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 62 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.115.0> -State: Waiting -Name: tls_server_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.113.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.113.0>, <0.117.0>, <0.119.0>, <0.118.0>, <0.116.0>] -Reductions: 653 -Stack+heap: 116 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2000 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.116.0> -State: Waiting -Name: ssl_listen_tracker_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.115.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.115.0>] -Reductions: 92 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 62 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.117.0> -State: Waiting -Name: tls_server_session_ticket_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.115.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.115.0>] -Reductions: 92 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 62 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.118.0> -State: Waiting -Name: ssl_server_session_cache_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.115.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.115.0>] -Reductions: 92 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 62 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.119.0> -State: Waiting -Name: ssl_upgrade_server_session_cache_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.115.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.115.0>] -Reductions: 92 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 62 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.120.0> -State: Waiting -Name: dtls_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.112.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.112.0>, <0.122.0>, <0.121.0>] -Reductions: 330 -Stack+heap: 86 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1680 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.121.0> -State: Waiting -Name: dtls_connection_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.120.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.120.0>] -Reductions: 95 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 64 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.122.0> -State: Waiting -Name: dtls_server_sup -Spawned as: proc_lib:init_p/5 -Current call: erlang:hibernate/3 -Spawned by: <0.120.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.120.0>, <0.124.0>, <0.123.0>] -Reductions: 331 -Stack+heap: 88 -OldHeap: 0 -Heap unused: 4 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 1696 -Program counter: 0x0000000103d822c8 (unknown function) -arity = 3 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.123.0> -State: Waiting -Name: dtls_listener_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.122.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.122.0>] -Reductions: 93 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 62 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2864 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.124.0> -State: Waiting -Name: dtls_server_session_cache_sup -Spawned as: proc_lib:init_p/5 -Spawned by: <0.122.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.122.0>] -Reductions: 92 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 62 -OldHeap unused: 0 -BinVHeap: 0 -OldBinVHeap: 0 -BinVHeap unused: 46422 -OldBinVHeap unused: 46422 -Memory: 2776 -Program counter: 0x0000000103f1c0d8 (gen_server:loop/7 + 384) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL -=proc:<0.135.0> -State: Scheduled -Spawned as: erlang:apply/2 -Spawned by: <0.9.0> -Message queue length: 0 -Number of heap fragments: 0 -Heap fragment data: 0 -Link list: [<0.9.0>] -Reductions: 111 -Stack+heap: 233 -OldHeap: 0 -Heap unused: 55 -OldHeap unused: 0 -BinVHeap: 1 -OldBinVHeap: 0 -BinVHeap unused: 46421 -OldBinVHeap unused: 46422 -Memory: 13976 -Program counter: 0x00000001041ff698 (gleam_erlang_ffi:select/2 + 192) -arity = 0 -Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | IN_PRQ_NORMAL | IN_RUNQ | SIG_IN_Q | ACTIVE_SYS -=port:#Port<0.0> -State: CONNECTED -Slot: 0 -Connected: <0.0.0> -Port controls forker process: forker -Input: 0 -Output: 0 -Queue: 0 -=port:#Port<0.1> -State: CONNECTED|BINARY_IO -Slot: 8 -Connected: <0.52.0> -Links: <0.52.0> -Port is UNIX fd not opened by emulator: 2/2 -Input: 0 -Output: 0 -Queue: 0 -=ets:<0.42.0> -Slot: 5110497728 -Table: logger -Name: logger -Buckets: 256 -Chain Length Avg: 0.015625 -Chain Length Max: 1 -Chain Length Min: 0 -Chain Length Std Dev: 0.124020 -Chain Length Expected Std Dev: 0.124756 -Fixed: false -Objects: 4 -Words: 6813 -Type: set -Protection: protected -Compressed: false -Write Concurrency: true -Read Concurrency: true -=ets:<0.44.0> -Slot: 5110509560 -Table: ac_tab -Name: ac_tab -Buckets: 256 -Chain Length Avg: 0.136719 -Chain Length Max: 3 -Chain Length Min: 0 -Chain Length Std Dev: 0.386363 -Chain Length Expected Std Dev: 0.369032 -Fixed: false -Objects: 35 -Words: 4094 -Type: set -Protection: public -Compressed: false -Write Concurrency: false -Read Concurrency: true -=ets:<0.50.0> -Slot: 5110518176 -Table: code_server -Name: code_server -Buckets: 448 -Chain Length Avg: 1.000000 -Chain Length Max: 8 -Chain Length Min: 0 -Chain Length Std Dev: 1.198958 -Chain Length Expected Std Dev: 0.998883 -Fixed: false -Objects: 448 -Words: 34781 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.50.0> -Slot: 4396206480 -Table: code_names -Name: code_names -Buckets: 256 -Chain Length Avg: 0.203125 -Chain Length Max: 3 -Chain Length Min: 0 -Chain Length Std Dev: 0.456881 -Chain Length Expected Std Dev: 0.449813 -Fixed: false -Objects: 52 -Words: 9409 -Type: set -Protection: public -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.55.0> -Slot: 4396326720 -Table: inet_db -Name: inet_db -Buckets: 256 -Chain Length Avg: 0.121094 -Chain Length Max: 3 -Chain Length Min: 0 -Chain Length Std Dev: 0.360371 -Chain Length Expected Std Dev: 0.347305 -Fixed: false -Objects: 31 -Words: 622 -Type: set -Protection: public -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.55.0> -Slot: 4396330840 -Table: inet_cache -Name: inet_cache -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: bag -Protection: public -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.55.0> -Slot: 4396333344 -Table: inet_hosts_byname -Name: inet_hosts_byname -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.55.0> -Slot: 4396335848 -Table: inet_hosts_byaddr -Name: inet_hosts_byaddr -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.55.0> -Slot: 4396338352 -Table: inet_hosts_file_byname -Name: inet_hosts_file_byname -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.55.0> -Slot: 4396340856 -Table: inet_hosts_file_byaddr -Name: inet_hosts_file_byaddr -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.55.0> -Slot: 4396343360 -Table: inet_sockets -Name: inet_sockets -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.57.0> -Slot: 4396353768 -Table: #Ref<0.3756053351.4210425857.45060> -Name: rex_nodes_observer -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 391 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: true -=ets:<0.58.0> -Slot: 4396358992 -Table: global_locks -Name: global_locks -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.58.0> -Slot: 4396361496 -Table: global_names -Name: global_names -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 391 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: true -=ets:<0.58.0> -Slot: 4396364000 -Table: global_names_ext -Name: global_names_ext -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.58.0> -Slot: 4396366504 -Table: global_pid_names -Name: global_pid_names -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: bag -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.58.0> -Slot: 4396369008 -Table: global_pid_ids -Name: global_pid_ids -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: bag -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.58.0> -Slot: 4396371512 -Table: global_lost_connections -Name: global_lost_connections -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.58.0> -Slot: 4396374016 -Table: global_node_resources -Name: global_node_resources -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.95.0> -Slot: 4412439352 -Table: httpc_manager__session_db -Name: httpc_manager__session_db -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: public -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.95.0> -Slot: 4412441856 -Table: httpc_manager__handler_db -Name: httpc_manager__handler_db -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.95.0> -Slot: 4412445768 -Table: #Ref<0.3756053351.4210425857.45356> -Name: httpc_manager__session_cookie_db -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: bag -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.109.0> -Slot: 4412458184 -Table: ssl_pem_cache -Name: ssl_pem_cache -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.110.0> -Slot: 4412471664 -Table: #Ref<0.3756053351.4210425857.45462> -Name: client_ssl_otp_session_cache -Ordered set (AVL tree), Elements: 0 -Objects: 0 -Words: 145 -Type: ordered_set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.110.0> -Slot: 4412472840 -Table: #Ref<0.3756053351.4210425857.45463> -Name: ssl_otp_cacertificate_db -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: public -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.110.0> -Slot: 4412475344 -Table: #Ref<0.3756053351.4210425857.45464> -Name: ssl_otp_ca_file_ref -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: public -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.110.0> -Slot: 4412477848 -Table: #Ref<0.3756053351.4210425857.45465> -Name: ssl_otp_ca_ref_file_mapping -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.110.0> -Slot: 4412480352 -Table: #Ref<0.3756053351.4210425857.45466> -Name: ssl_otp_crl_cache -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.110.0> -Slot: 4412482856 -Table: #Ref<0.3756053351.4210425857.45467> -Name: ssl_otp_crl_issuer_mapping -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: bag -Protection: protected -Compressed: false -Write Concurrency: false -Read Concurrency: false -=ets:<0.123.0> -Slot: 4412505024 -Table: dtls_listener_sup -Name: dtls_listener_sup -Buckets: 256 -Chain Length Avg: 0.000000 -Chain Length Max: 0 -Chain Length Min: 0 -Chain Length Std Dev: 0.000000 -Chain Length Expected Std Dev: 0.000000 -Fixed: false -Objects: 0 -Words: 311 -Type: set -Protection: public -Compressed: false -Write Concurrency: false -Read Concurrency: false -=timer:<0.55.0> -Message: refresh_timeout -Time left: 3599689 -=timer:<0.111.0> -Message: remove_invalid_tickets -Time left: 7199821 -=timer:<0.110.0> -Message: validate_sessions -Time left: 86404820 -=timer:<0.109.0> -Message: clear_pem_cache -Time left: 119817 -=node:'nonode@nohost' -=no_distribution -=loaded_modules -Current code: 6279844 -Old code: 0 -=mod:erts_code_purger -Current size: 13296 -=mod:erl_init -Current size: 2480 -=mod:init -Current size: 65275 -=mod:prim_buffer -Current size: 4936 -=mod:prim_eval -Current size: 1336 -=mod:prim_inet -Current size: 108445 -=mod:prim_file -Current size: 40897 -=mod:zlib -Current size: 19904 -=mod:socket_registry -Current size: 22176 -=mod:prim_socket -Current size: 50952 -=mod:prim_net -Current size: 10816 -=mod:prim_zip -Current size: 24400 -=mod:erl_prim_loader -Current size: 55760 -=mod:erlang -Current size: 102432 -=mod:erts_internal -Current size: 23968 -=mod:erl_tracer -Current size: 1664 -=mod:erts_literal_area_collector -Current size: 4856 -=mod:erts_dirty_process_signal_handler -Current size: 2296 -=mod:atomics -Current size: 3424 -=mod:counters -Current size: 4112 -=mod:persistent_term -Current size: 1456 -=mod:erl_parse -Current size: 324787 -Current attributes: g2wAAAQxaAJ3A3ZzbmwAAAABbhAAWZz93qXsCLw4KSJjM+fEbWpoAncHcmVtb3ZlZGwAAAADaAN3CHNldF9saW5lYQJrABd1c2UgZXJsX2Fubm86c2V0X2xpbmUvMmgDdw5nZXRfYXR0cmlidXRlc2EBawAuZXJsX2Fubm86e2NvbHVtbixsaW5lLGxvY2F0aW9uLHRleHR9LzEgaW5zdGVhZGgDdw1nZXRfYXR0cmlidXRlYQJrAC5lcmxfYW5ubzp7Y29sdW1uLGxpbmUsbG9jYXRpb24sdGV4dH0vMSBpbnN0ZWFkamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwl5ZWNjcGFyczJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncLeWVjY3BhcnMyXzlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzEwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8xMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMTJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzEzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8xNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMTZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzE3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8xOGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMTlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzIwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8yMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMjJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzI0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8yNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMjZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzI3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8yOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMzBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzMxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8zMmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMzNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzM0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8zNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMzZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzM4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8zOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNDBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzQxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl80M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNDRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzQ1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl80NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNDdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzQ4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl80OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNTBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzUxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl81MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNTNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzU0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl81NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNTZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzU3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl81OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNTlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzY2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl83MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNzJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzc0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl83OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfNzlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzgwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl84MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfODNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzg3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl85MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfOTFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzkyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl85M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfOTRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzk1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl85NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfOTdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzk5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMDBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEwMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTAyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMDNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEwNGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTA1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMDdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEwOGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTA5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMTBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzExMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTEyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMTNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzExNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTE3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMThhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzExOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTIxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMjJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEyM2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTI0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMjVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEyNmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTI3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMzBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEzMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTMyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMzNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEzNGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTM1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMzZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEzN2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTM4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMzlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE0MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTQxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNDJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE0M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTQ0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNDVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE0NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTQ3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNDhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE0OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTUwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNTFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE1MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTUzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNTRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE1NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTU2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNTdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE1OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTU5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNjBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE2MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTYzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNjRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE2NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTY2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNjhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE2OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTcwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNzFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE3MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTczYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNzRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE3NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTc2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xNzdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE3OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTc5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xODBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE4MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTgyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xODNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE4NGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTg1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xODZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE4OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTkwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xOTFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE5MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTkzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xOTRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE5NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTk2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xOTdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE5OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTk5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMDBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIwMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjAyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMDNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIwNGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjA1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMDZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIwN2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjA4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMDlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIxMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjEyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMTNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIxNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjE2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMTdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIxOGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjIwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMjFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIyMmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjIzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMjRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIyN2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjI4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMjlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIzMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjMyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMzNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIzNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjM3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMzhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI0MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjQxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNDJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI0M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjQ0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNDVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI0NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjQ4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNDlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI1MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjUxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNTNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI1NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjU2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNTdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI1OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjYwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNjFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI2MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjYzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNjRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI2NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjY2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNjdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI2OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjY5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNzBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI3MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjczYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNzRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI3NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjc2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNzdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI3OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjc5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yODBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI4MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjgyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yODNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI4NGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjg2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yODdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI5MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjk0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yOTVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI5NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjk3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yOThhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI5OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzAxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMDNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMwNGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzA2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMDhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMxMGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzEyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMTNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMxNGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzE1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMTZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMxN2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzE5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMjBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMyMWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzIzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMjVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMyNmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzI3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMjhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMyOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzMyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMzNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMzNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzM3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMzhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMzOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzQwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNDFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM0M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzQ1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNDZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM0N2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzQ4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNDlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM1MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzUxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNTJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM1M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzU1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNTZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM1N2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzU4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNTlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM2MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzYxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNjJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM2M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzY0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNjVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM2NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzY3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNjlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM3MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzcyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNzVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM3NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzc3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNzhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM4MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzgxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zODNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM4NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzg3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zODhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM4OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzkwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zOTFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM5M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzk1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zOTdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM5OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDAwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MDJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQwNGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDA2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MDhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQwOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDEwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MTFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQxMmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDEzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MTVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQxNmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDE3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MTlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQyMGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDIyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MjRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQyNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDI2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MjdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQyOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDMwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MzFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQzMmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDMzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MzRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQzNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDM2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MzdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQzOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDQxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NDJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ0M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDQ1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NDZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ0N2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDQ5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NTBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ1MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDUyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NTNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ1NGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDU2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NTdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ1OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDU5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NjBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ2MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDYzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NjRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ2NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDY2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NjhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ3MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDcxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NzJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ3M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDc0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NzZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ3N2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDc5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80ODBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ4MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDgzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80ODRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ4NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDg2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80ODhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ4OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDkwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80OTFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ5MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDkzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80OTRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ5NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDk2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80OTdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ5OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDk5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MDBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUwM2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTA0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MDVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUwNmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTA3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MDhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUxMGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTExYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MTJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUxNGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTE2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MThhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUxOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTIwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MjFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUyMmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTIzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MjVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUyNmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTI3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MjhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUyOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTMwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MzFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUzM2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTM0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MzZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUzN2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTM4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NDBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU0MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTQyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NDNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU0NGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTQ2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NDdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU0OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTUwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NTFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU1MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTUzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NTRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU1NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTU3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NTlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU2MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTYxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NjJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU2M2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTY0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NjVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU2NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTY3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NjhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU2OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTcwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NzFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU3MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTczYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NzRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU3NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTc3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NzlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU4MGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTg0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81ODVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU4NmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTg3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81ODhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU4OWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTkwYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81OTFhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU5MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTkzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81OTRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU5NWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTk3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81OTlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYwMGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjAxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MDJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYwNGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjA1YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MDZhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYwN2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjA5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MTBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYxM2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjE0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MTVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYxNmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjE3YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MThhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYxOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjIxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MjJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYyM2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjI0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MjVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYyN2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjI4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MzBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYzMmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjMzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MzRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYzNWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjM2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82MzdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzYzOWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjQxYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NDJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY0NGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjQ2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NDdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY0OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjQ5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NTBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY1MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjUyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NTRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY1OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjU5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NjBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY2MmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjYzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NjRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY2N2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjY4YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NzBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY3MWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjcyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NzNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY3NGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjc2YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82NzdhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzY3OGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNjc5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl82ODBhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncPeWVjY2dvdG9fYWRkX29wYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FnllY2Nnb3RvX2FyZ3VtZW50X2xpc3RhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncUeWVjY2dvdG9fYXRvbV9vcl92YXJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncPeWVjY2dvdG9fYXRvbWljYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EXllY2Nnb3RvX2F0dHJfdmFsYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EnllY2Nnb3RvX2F0dHJpYnV0ZWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxZ5ZWNjZ290b19iaW5fYmFzZV90eXBlYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FHllY2Nnb3RvX2Jpbl9lbGVtZW50YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FXllY2Nnb3RvX2Jpbl9lbGVtZW50c2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxZ5ZWNjZ290b19iaW5fdW5pdF90eXBlYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3D3llY2Nnb3RvX2JpbmFyeWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdx15ZWNjZ290b19iaW5hcnlfY29tcHJlaGVuc2lvbmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxR5ZWNjZ290b19iaW5hcnlfdHlwZWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxF5ZWNjZ290b19iaXRfZXhwcmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxZ5ZWNjZ290b19iaXRfc2l6ZV9leHByYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EXllY2Nnb3RvX2JpdF90eXBlYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FnllY2Nnb3RvX2JpdF90eXBlX2xpc3RhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncSeWVjY2dvdG9fY2FzZV9leHByYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FHllY2Nnb3RvX2NsYXVzZV9hcmdzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FHllY2Nnb3RvX2NsYXVzZV9ib2R5YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3GnllY2Nnb3RvX2NsYXVzZV9ib2R5X2V4cHJzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FXllY2Nnb3RvX2NsYXVzZV9ndWFyZGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxB5ZWNjZ290b19jb21wX29wYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EnllY2Nnb3RvX2NyX2NsYXVzZWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxN5ZWNjZ290b19jcl9jbGF1c2VzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2Nnb3RvX2V4cHJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncReWVjY2dvdG9fZXhwcl9tYXhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncUeWVjY2dvdG9fZXhwcl9yZW1vdGVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncOeWVjY2dvdG9fZXhwcnNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncTeWVjY2dvdG9fZmllbGRfdHlwZWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxR5ZWNjZ290b19maWVsZF90eXBlc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjZ290b19mb3JtYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3E3llY2Nnb3RvX2Z1bl9jbGF1c2VhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncUeWVjY2dvdG9fZnVuX2NsYXVzZXNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncReWVjY2dvdG9fZnVuX2V4cHJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncReWVjY2dvdG9fZnVuX3R5cGVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncReWVjY2dvdG9fZnVuY3Rpb25hB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncWeWVjY2dvdG9fZnVuY3Rpb25fY2FsbGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxh5ZWNjZ290b19mdW5jdGlvbl9jbGF1c2VhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncZeWVjY2dvdG9fZnVuY3Rpb25fY2xhdXNlc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjZ290b19ndWFyZGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxJ5ZWNjZ290b19pZl9jbGF1c2VhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncTeWVjY2dvdG9faWZfY2xhdXNlc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxB5ZWNjZ290b19pZl9leHByYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3F3llY2Nnb3RvX2ludGVnZXJfb3JfdmFyYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EHllY2Nnb3RvX2xjX2V4cHJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncReWVjY2dvdG9fbGNfZXhwcnNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY2dvdG9fbGlzdGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxt5ZWNjZ290b19saXN0X2NvbXByZWhlbnNpb25hB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY2dvdG9fbGlzdF9vcGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxp5ZWNjZ290b19tYXBfY29tcHJlaGVuc2lvbmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxF5ZWNjZ290b19tYXBfZXhwcmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxJ5ZWNjZ290b19tYXBfZmllbGRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncYeWVjY2dvdG9fbWFwX2ZpZWxkX2Fzc29jYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3GHllY2Nnb3RvX21hcF9maWVsZF9leGFjdGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxN5ZWNjZ290b19tYXBfZmllbGRzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EHllY2Nnb3RvX21hcF9rZXlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncWeWVjY2dvdG9fbWFwX3BhaXJfdHlwZWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxd5ZWNjZ290b19tYXBfcGFpcl90eXBlc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxV5ZWNjZ290b19tYXBfcGF0X2V4cHJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncSeWVjY2dvdG9fbWFwX3R1cGxlYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3E3llY2Nnb3RvX21heWJlX2V4cHJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncUeWVjY2dvdG9fbWF5YmVfbWF0Y2hhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncaeWVjY2dvdG9fbWF5YmVfbWF0Y2hfZXhwcnNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY2dvdG9fbXVsdF9vcGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxp5ZWNjZ290b19vcHRfYml0X3NpemVfZXhwcmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxp5ZWNjZ290b19vcHRfYml0X3R5cGVfbGlzdGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxp5ZWNjZ290b19wYXRfYXJndW1lbnRfbGlzdGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxF5ZWNjZ290b19wYXRfZXhwcmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxV5ZWNjZ290b19wYXRfZXhwcl9tYXhhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncSeWVjY2dvdG9fcGF0X2V4cHJzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EnllY2Nnb3RvX3ByZWZpeF9vcGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxV5ZWNjZ290b19yZWNlaXZlX2V4cHJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncUeWVjY2dvdG9fcmVjb3JkX2V4cHJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncVeWVjY2dvdG9fcmVjb3JkX2ZpZWxkYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FnllY2Nnb3RvX3JlY29yZF9maWVsZHNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncYeWVjY2dvdG9fcmVjb3JkX3BhdF9leHByYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FXllY2Nnb3RvX3JlY29yZF90dXBsZWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxF5ZWNjZ290b19zcGVjX2Z1bmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxd5ZWNjZ290b19zc2FfY2hlY2tfYW5ub2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdx55ZWNjZ290b19zc2FfY2hlY2tfYW5ub19jbGF1c2VhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncfeWVjY2dvdG9fc3NhX2NoZWNrX2Fubm9fY2xhdXNlc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxd5ZWNjZ290b19zc2FfY2hlY2tfYXJnc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdx15ZWNjZ290b19zc2FfY2hlY2tfYmluYXJ5X2xpdGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdyZ5ZWNjZ290b19zc2FfY2hlY2tfYmluYXJ5X2xpdF9ieXRlc19sc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdyJ5ZWNjZ290b19zc2FfY2hlY2tfYmluYXJ5X2xpdF9yZXN0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3HnllY2Nnb3RvX3NzYV9jaGVja19jbGF1c2VfYXJnc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdyF5ZWNjZ290b19zc2FfY2hlY2tfY2xhdXNlX2FyZ3NfbHNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncXeWVjY2dvdG9fc3NhX2NoZWNrX2V4cHJhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncYeWVjY2dvdG9fc3NhX2NoZWNrX2V4cHJzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3GnllY2Nnb3RvX3NzYV9jaGVja19mdW5fcmVmYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3G3llY2Nnb3RvX3NzYV9jaGVja19saXN0X2xpdGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdx55ZWNjZ290b19zc2FfY2hlY2tfbGlzdF9saXRfbHNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncaeWVjY2dvdG9fc3NhX2NoZWNrX21hcF9rZXlhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncieWVjY2dvdG9fc3NhX2NoZWNrX21hcF9rZXlfZWxlbWVudGEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdyN5ZWNjZ290b19zc2FfY2hlY2tfbWFwX2tleV9lbGVtZW50c2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdx95ZWNjZ290b19zc2FfY2hlY2tfbWFwX2tleV9saXN0YQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3KXllY2Nnb3RvX3NzYV9jaGVja19tYXBfa2V5X3R1cGxlX2VsZW1lbnRzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FnllY2Nnb3RvX3NzYV9jaGVja19wYXRhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncXeWVjY2dvdG9fc3NhX2NoZWNrX3BhdHNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAnceeWVjY2dvdG9fc3NhX2NoZWNrX3doZW5fY2xhdXNlYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3H3llY2Nnb3RvX3NzYV9jaGVja193aGVuX2NsYXVzZXNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY2dvdG9fc3RyaW5nc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjZ290b190YWlsYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EXllY2Nnb3RvX3RvcF90eXBlYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EnllY2Nnb3RvX3RvcF90eXBlc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxJ5ZWNjZ290b190cnlfY2F0Y2hhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncTeWVjY2dvdG9fdHJ5X2NsYXVzZWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxR5ZWNjZ290b190cnlfY2xhdXNlc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxF5ZWNjZ290b190cnlfZXhwcmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxt5ZWNjZ290b190cnlfb3B0X3N0YWNrdHJhY2VhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncOeWVjY2dvdG9fdHVwbGVhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY2dvdG9fdHlwZWEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxN5ZWNjZ290b190eXBlX2d1YXJkYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3FHllY2Nnb3RvX3R5cGVfZ3VhcmRzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EXllY2Nnb3RvX3R5cGVfc2lnYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EnllY2Nnb3RvX3R5cGVfc2lnc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxJ5ZWNjZ290b190eXBlX3NwZWNhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncXeWVjY2dvdG9fdHlwZWRfYXR0cl92YWxhB2poAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncTeWVjY2dvdG9fdHlwZWRfZXhwcmEHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxR5ZWNjZ290b190eXBlZF9leHByc2EHamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxx5ZWNjZ290b190eXBlZF9yZWNvcmRfZmllbGRzYQdqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl8xX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdwx5ZWNjcGFyczJfMl9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncMeWVjY3BhcnMyXzhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DHllY2NwYXJzMl85X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xMl9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzEzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8xN19hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzE4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMTlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yMF9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzIxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8yNV9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzI2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMjlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zMF9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzMxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zM19hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl8zNl9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzM4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfMzlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80MF9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80NF9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl80N19hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzQ4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNDlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81MF9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzUyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81NF9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNTZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl81N19hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzU4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNzFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl83Ml9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzc0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfNzhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl84MF9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzgyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfODNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl85MF9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzkxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfOTJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl85M19hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzk0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfOTVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DXllY2NwYXJzMl85Nl9hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncNeWVjY3BhcnMyXzk3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw15ZWNjcGFyczJfOTlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMDlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMTBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMTJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMTVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMTdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMThfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMTlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMjFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMjJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMjNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMjRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMjVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMjZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMjdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMzBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMzFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xMzJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNDJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNDdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNTRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNTVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNTZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNThfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNjJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNjNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNjVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNjZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNzBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNzFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNzJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNzhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xNzlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xODJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xODNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xODVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xODZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xODlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xOTBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xOTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xOTRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xOTVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xOThfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8xOTlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMDBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMDFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMDJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMDNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMDZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMDhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMTJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMTVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMTdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMThfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMjBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMjFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMjNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMjRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMjdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMjhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMjlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMzJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMzNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMzVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMzdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yMzhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNDBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNDFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNDJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNDNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNDRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNDVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNDZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNTBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNTVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNTZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNTdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNTlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNjBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNjJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNjRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNjZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNjdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNjhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNjlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNzRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNzVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNzZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3D3llY2NwYXJzMl8yNzdfIWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw95ZWNjcGFyczJfMjc3XylhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncPeWVjY3BhcnMyXzI3N18sYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EHllY2NwYXJzMl8yNzdfLT5hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY3BhcnMyXzI3N186OmEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxB5ZWNjcGFyczJfMjc3Xzo9YQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3D3llY2NwYXJzMl8yNzdfO2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxB5ZWNjcGFyczJfMjc3XzwtYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3D3llY2NwYXJzMl8yNzdfPWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxB5ZWNjcGFyczJfMjc3Xz0+YQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EHllY2NwYXJzMl8yNzdfPj5hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY3BhcnMyXzI3N18/PWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw95ZWNjcGFyczJfMjc3X11hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncTeWVjY3BhcnMyXzI3N19hZnRlcmEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxV5ZWNjcGFyczJfMjc3X2FuZGFsc29hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncTeWVjY3BhcnMyXzI3N19jYXRjaGEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxF5ZWNjcGFyczJfMjc3X2RvdGEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxJ5ZWNjcGFyczJfMjc3X2Vsc2VhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncReWVjY3BhcnMyXzI3N19lbmRhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY3BhcnMyXzI3N19vZmEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxR5ZWNjcGFyczJfMjc3X29yZWxzZWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxJ5ZWNjcGFyczJfMjc3X3doZW5hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncPeWVjY3BhcnMyXzI3N198YQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EHllY2NwYXJzMl8yNzdffHxhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncPeWVjY3BhcnMyXzI3N199YQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNzhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yNzlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yODFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yODJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yODNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yODRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yODZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yODdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yOTRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yOTVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8yOTZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3D3llY2NwYXJzMl8yOTdfKWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw95ZWNjcGFyczJfMjk3XyxhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY3BhcnMyXzI5N18tPmEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw95ZWNjcGFyczJfMjk3XzphAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncPeWVjY3BhcnMyXzI5N189YQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EnllY2NwYXJzMl8yOTdfd2hlbmEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMjk4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMjk5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzAxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzAzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzA0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzA2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzA4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzEwX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzEyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzE0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzE2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzIxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzIzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzI2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzI4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzI5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzMyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzMzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzM1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzM3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzM5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzQxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzQzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzQ1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzQ2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzQ3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzQ5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzUxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzUyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzUzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzU1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzU3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzYwX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzYxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzYzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzY0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzY1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzY3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzY5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzcxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzcyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzc2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzc4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzgwX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzgxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzgzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfMzg5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw95ZWNjcGFyczJfMzkwXyxhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY3BhcnMyXzM5MF8+PmEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw95ZWNjcGFyczJfMzkwX11hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncPeWVjY3BhcnMyXzM5MF99YQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8zOTBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8zOTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8zOTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8zOTVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8zOTdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl8zOThfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MDBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MDJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MDRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MDZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MDhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MDlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MTdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MjBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MjJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MjRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MjVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MjZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MjdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MjlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MzBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MzFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MzNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MzRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MzVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MzdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80MzlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NDJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NDNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NDVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NDZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NTJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NTRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NTZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NTdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NThfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NTlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NjNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NjZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NjhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NzBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NzJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NzNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NzRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NzZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80NzlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80ODBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80ODNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80ODVfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80ODZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80ODlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80OTBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80OTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80OTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80OTRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80OTdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl80OTlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MDBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MDNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MDRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MDZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MDhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MTBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MTFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MTJfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MTRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MThfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MjFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MjNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MjZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MjdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MjlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MzFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81MzNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NDBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NDFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NDNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NDRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NDdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NDhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NTBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NTNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NTRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NjBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NjFfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NjNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NjRfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NjZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NjhfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NzBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NzNfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NzZfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NzdfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81NzlfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DnllY2NwYXJzMl81ODBfYQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3D3llY2NwYXJzMl81ODRfKWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw95ZWNjcGFyczJfNTg0XyxhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY3BhcnMyXzU4NF86PWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw95ZWNjcGFyczJfNTg0XzthAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncQeWVjY3BhcnMyXzU4NF89PmEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxB5ZWNjcGFyczJfNTg0Xz4+YQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3D3llY2NwYXJzMl81ODRfXWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxF5ZWNjcGFyczJfNTg0X2RvdGEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxJ5ZWNjcGFyczJfNTg0X3doZW5hAWpoAncIZGlhbHl6ZXJsAAAAAWgCdw9ub3dhcm5fZnVuY3Rpb25oAncPeWVjY3BhcnMyXzU4NF98YQFqaAJ3CGRpYWx5emVybAAAAAFoAncPbm93YXJuX2Z1bmN0aW9uaAJ3D3llY2NwYXJzMl81ODRffWEBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNTg1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNTg2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNTg4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNTkzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNTk0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNTk3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNTk5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjAxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjA2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjA3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjA5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjEwX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjEzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjE0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjE3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjE5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjIxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjIzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjI0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjI1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjI3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjMwX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjMyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjM0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjM1X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjM5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjQyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjQ0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjQ2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjQ3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjQ4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjQ5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjUwX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjUxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjUyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjU4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjU5X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjYzX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjY0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjY3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjY4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjcwX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjcxX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjcyX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjczX2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjc0X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjc2X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjc3X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjc4X2EBamgCdwhkaWFseXplcmwAAAABaAJ3D25vd2Fybl9mdW5jdGlvbmgCdw55ZWNjcGFyczJfNjgwX2EBamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACsvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lcmxfcGFyc2UuZXJsag== -=mod:gen_server -Current size: 63325 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAn6RHe9GB6oWz+pkuBfW8K2poAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwdtY19zZW5kYQZqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACwvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9nZW5fc2VydmVyLmVybGo= -=mod:lists -Current size: 99909 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAOC+znQeEHQ4VS7RSlxghx2poAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwp1a2V5bWVyZ2VsYQNqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACcvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9saXN0cy5lcmxq -=mod:logger_config -Current size: 10240 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAb9Y3k+aGr3hN5q3KdYRHtWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALy9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9jb25maWcuZXJsag== -=mod:logger_simple_h -Current size: 14726 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAZpGbBxoDz/i1DSNMxmWqyWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAMS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9zaW1wbGVfaC5lcmxq -=mod:logger_filters -Current size: 4971 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAzwk48RcCYOF3ih2/kJrSm2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAMC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9maWx0ZXJzLmVybGo= -=mod:error_logger -Current size: 18021 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA9gWmGAB8sC+HfxKvyFw6Impq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2Vycm9yX2xvZ2dlci5lcmxq -=mod:code_server -Current size: 63936 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAALWQXUe7tZIQ9G/1/MX9D1Gpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2NvZGVfc2VydmVyLmVybGo= -=mod:heart -Current size: 15601 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAyNN9gP1SxPnm7mbH8bBrLmpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdw5zZW5kX2hlYXJ0X2NtZGECamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAJy9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2hlYXJ0LmVybGo= -=mod:gen_event -Current size: 54224 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAbZDZYq2ZehgrVmXuTdC9R2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACsvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9nZW5fZXZlbnQuZXJsag== -=mod:logger -Current size: 53655 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAhEpn4LkeE+Ww1jrqwO/DAmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlci5lcmxq -=mod:application_controller -Current size: 112719 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA8aNg4vAvqQ7+MnTc6uXOCWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAOC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2FwcGxpY2F0aW9uX2NvbnRyb2xsZXIuZXJsag== -=mod:application_master -Current size: 17949 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAFPdt+BWDgI08/IO4pGy/Lmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsANC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2FwcGxpY2F0aW9uX21hc3Rlci5lcmxq -=mod:erl_eval -Current size: 90511 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAK4B/QUWPpeHDqFA51B7m72pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACovYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lcmxfZXZhbC5lcmxq -=mod:kernel -Current size: 16434 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAG5SBkG5rwhqTCCPgosVpj2poAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2tlcm5lbC5lcmxq -=mod:proc_lib -Current size: 44783 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAHPr2dE+lcIfVFaldy2suaGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACovYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9wcm9jX2xpYi5lcmxq -=mod:file_io_server -Current size: 45573 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA37XXQKgVyzgAhQMymk22nGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAMC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2ZpbGVfaW9fc2VydmVyLmVybGo= -=mod:logger_server -Current size: 31925 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA6Q4YfPDTeP55K3VJGDToJGpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALy9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9zZXJ2ZXIuZXJsag== -=mod:erl_lint -Current size: 310700 -Current attributes: g2wAAAAFaAJ3A3ZzbmwAAAABbhAAZov2Nvzfuz6qcuUHe4NKempoAncHcmVtb3ZlZGwAAAABaAN3C21vZGlmeV9saW5lYQJrACB1c2UgZXJsX3BhcnNlOm1hcF9hbm5vLzIgaW5zdGVhZGpoAncIZGlhbHl6ZXJsAAAAAWgCdwhub19tYXRjaGgCdwh0eXBlX2RlZmEGamgCdwhkaWFseXplcmwAAAABaAJ3CG5vX21hdGNoaAJ3E2RlcHJlY2F0ZWRfZnVuY3Rpb25hBWpoAncIZGlhbHl6ZXJsAAAAAWgCdwhub19tYXRjaGgCdw9kZXByZWNhdGVkX3R5cGVhBWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACovYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lcmxfbGludC5lcmxq -=mod:supervisor -Current size: 78800 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAvy8OsDDanMrThS86JgsLempoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACwvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9zdXBlcnZpc29yLmVybGo= -=mod:ets -Current size: 58700 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAegV/9YrrRq9A7VQccwP0Ompq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACUvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9ldHMuZXJsag== -=mod:filename -Current size: 42212 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAxfgNPRE4P/8E8mNjf3nXyGpoAncHcmVtb3ZlZGwAAAABaAN3CGZpbmRfc3JjdwFfawAjdXNlIGZpbGVsaWI6ZmluZF9zb3VyY2UvMSwzIGluc3RlYWRqaAJ3B3JlbW92ZWRsAAAAAWgDdxJzYWZlX3JlbGF0aXZlX3BhdGhhAWsAKHVzZSBmaWxlbGliOnNhZmVfcmVsYXRpdmVfcGF0aC8yIGluc3RlYWRqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACovYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9maWxlbmFtZS5lcmxq -=mod:application -Current size: 15002 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAO3mC1yO32EqVKdQkgma7DGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2FwcGxpY2F0aW9uLmVybGo= -=mod:code -Current size: 45920 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAA1rkrrsCyRltM8IqivNv2SWpoAncHcmVtb3ZlZGwAAAABaAN3BnJlaGFzaGEAawAsdGhlIGNvZGUgcGF0aCBjYWNoZSBmZWF0dXJlIGhhcyBiZWVuIHJlbW92ZWRqaAJ3B3JlbW92ZWRsAAAAAWgDdxBpc19tb2R1bGVfbmF0aXZlYQFrABVIaVBFIGhhcyBiZWVuIHJlbW92ZWRqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAJi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2NvZGUuZXJsag== -=mod:file -Current size: 44191 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAphblwlDFWwErKfvQJHHIAmpoAncKZGVwcmVjYXRlZGwAAAABaAN3CHBpZDJuYW1lYQFrACl0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAJi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2ZpbGUuZXJsag== -=mod:gen -Current size: 30362 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAKKwsTHEn6t3sqSA1qygYyWpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwdkb19jYWxsYQRqaAJ3CGRpYWx5emVybAAAAAFoAncRbm9faW1wcm9wZXJfbGlzdHNoAncPZG9fc2VuZF9yZXF1ZXN0YQNqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACUvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9nZW4uZXJsag== -=mod:error_handler -Current size: 5146 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA4HX9MacsLFi2Dumg+HZ9nWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALy9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2Vycm9yX2hhbmRsZXIuZXJsag== -=mod:logger_backend -Current size: 7115 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAoZ+yGJmvZZw2G+8fUAejtmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAMC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9iYWNrZW5kLmVybGo= -=mod:file_server -Current size: 13379 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAS7N4uM27g+5Rn3kNnsFYOWpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2ZpbGVfc2VydmVyLmVybGo= -=mod:logger_proxy -Current size: 8857 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAZduPYGozFFaJ/GMceJxnQWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9wcm94eS5lcmxq -=mod:logger_olp -Current size: 24420 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAhELBVPfG1AFHg6Hw3ACHYmpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9vbHAuZXJsag== -=mod:queue -Current size: 26237 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA+pdK0iaAqDWnRiWIegfYd2poAncKZGVwcmVjYXRlZGwAAAABaAN3BGxhaXRhAWsAGHVzZSBxdWV1ZTpsaWF0LzEgaW5zdGVhZGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACcvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9xdWV1ZS5lcmxq -=mod:proplists -Current size: 13618 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA3DEXDWFyP/1Am4oxQYybO2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACsvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9wcm9wbGlzdHMuZXJsag== -=mod:peer -Current size: 56511 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAA2E9Rc/B6+K6No16io4F+QWpoAncGYXV0aG9yawASbWF4aW1mY2FAZ21haWwuY29taAJ3CWJlaGF2aW91cmwAAAABdwpnZW5fc2VydmVyamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACYvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9wZWVyLmVybGo= -=mod:beam_lib -Current size: 65994 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAGAqMJUP/V7MaDY2WDvcZVmpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACovYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9iZWFtX2xpYi5lcmxq -=mod:binary -Current size: 21293 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAjusm/cmFBBM4V7Pu9tlybmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACgvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9iaW5hcnkuZXJsag== -=mod:gb_sets -Current size: 22658 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAjJKuKbdSxi4KHdHBwvnc2mpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACkvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9nYl9zZXRzLmVybGo= -=mod:gb_trees -Current size: 15903 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA/9kxl1ANy9kH79Yem0U5aGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACovYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9nYl90cmVlcy5lcmxq -=mod:os -Current size: 17693 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAe2HUBCvqya+anjsKRMYUTGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAJC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL29zLmVybGo= -=mod:unicode -Current size: 41929 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAq+fzNG8vRL24dz9E5ZlDaGpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwxkb19vX2JpbmFyeTJhAmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACkvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy91bmljb2RlLmVybGo= -=mod:erl_features -Current size: 41135 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAYXEynt+8kTRkG8V/OHR0VGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrAC4vYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lcmxfZmVhdHVyZXMuZXJsag== -=mod:standard_error -Current size: 10663 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAkMo760coteTN1xzpRgHT6mpoAncJYmVoYXZpb3VybAAAAAF3EXN1cGVydmlzb3JfYnJpZGdlamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAMC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL3N0YW5kYXJkX2Vycm9yLmVybGo= -=mod:supervisor_bridge -Current size: 19251 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA+ZJzPQgBcV7sQuq/XPk182poAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrADMvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9zdXBlcnZpc29yX2JyaWRnZS5lcmxq -=mod:inet_db -Current size: 68294 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAvdtm5APLt4opHuq1WdBdWGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAKS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2luZXRfZGIuZXJsag== -=mod:inet_config -Current size: 25206 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAlZNV6TqRS7nNxz74j7FCe2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2luZXRfY29uZmlnLmVybGo= -=mod:inet_udp -Current size: 6941 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAhrzZ8+DOe1LKVcGE3RxIN2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAKi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2luZXRfdWRwLmVybGo= -=mod:inet -Current size: 81321 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAATt4eXjFDEUu+qumuN+EMfWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAJi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2luZXQuZXJsag== -=mod:inet_parse -Current size: 38147 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAEf7OexUeePpkEPPFZJPf+mpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2luZXRfcGFyc2UuZXJsag== -=mod:rpc -Current size: 29484 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAA6VB2VShMOzVQaYOrBGnThmpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqaAJ3B3JlbW92ZWRsAAAAAmgDdxZzYWZlX211bHRpX3NlcnZlcl9jYWxsYQJrACN1c2UgcnBjOm11bHRpX3NlcnZlcl9jYWxsLzIgaW5zdGVhZGgDdxZzYWZlX211bHRpX3NlcnZlcl9jYWxsYQNrACN1c2UgcnBjOm11bHRpX3NlcnZlcl9jYWxsLzMgaW5zdGVhZGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAJS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL3JwYy5lcmxq -=mod:global -Current size: 117570 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA3Un4q7IE1kKFWWXOqg1fv2poAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2dsb2JhbC5lcmxq -=mod:net_kernel -Current size: 95518 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAARVYlffpB+M9gMCitj2vQyGpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL25ldF9rZXJuZWwuZXJsag== -=mod:rand -Current size: 82048 -Current attributes: g2wAAAAMaAJ3A3ZzbmwAAAABbhAASiW5LD/Qej4GU+MSRZDXfWpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwxleHNwbHVzX3NlZWRhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwpleHNzc19zZWVkYQFqaAJ3CGRpYWx5emVybAAAAAFoAncRbm9faW1wcm9wZXJfbGlzdHNoAncJZXhzcF9uZXh0YQFqaAJ3CGRpYWx5emVybAAAAAFoAncRbm9faW1wcm9wZXJfbGlzdHNoAncKZXhzc3NfbmV4dGEBamgCdwhkaWFseXplcmwAAAABaAJ3EW5vX2ltcHJvcGVyX2xpc3RzaAJ3DGV4c3BsdXNfanVtcGEBamgCdwhkaWFseXplcmwAAAABaAJ3EW5vX2ltcHJvcGVyX2xpc3RzaAJ3CWV4c3BfanVtcGEBamgCdwhkaWFseXplcmwAAAABaAJ3EW5vX2ltcHJvcGVyX2xpc3RzaAJ3DGV4c3BsdXNfanVtcGEEamgCdwhkaWFseXplcmwAAAABaAJ3EW5vX2ltcHJvcGVyX2xpc3RzaAJ3CmV4cm9wX3NlZWRhAWpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwxleHJvcF9uZXh0X3NhAmpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwpleHJvcF9uZXh0YQFqaAJ3CGRpYWx5emVybAAAAAFoAncRbm9faW1wcm9wZXJfbGlzdHNoAncKZXhyb3BfanVtcGEFamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACYvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9yYW5kLmVybGo= -=mod:maps -Current size: 22152 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA74KFUusq6FvLJdXoy86SW2poAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2wAAAACaAJ3CGl0ZXJhdG9yYQFoAncIaXRlcmF0b3JhAmpqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACYvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9tYXBzLmVybGo= -=mod:erl_distribution -Current size: 6886 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAADU5yO8e4eK+9kI484ejKXGpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2VybF9kaXN0cmlidXRpb24uZXJsag== -=mod:global_group -Current size: 54044 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAh7yoy6UVXzAVQ4pFGW90/2poAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2dsb2JhbF9ncm91cC5lcmxq -=mod:erpc -Current size: 42486 -Current attributes: g2wAAAALaAJ3A3ZzbmwAAAABbhAAE8Ii4JDYcOGscJTGZx5vtmpoAncIZGlhbHl6ZXJsAAAAAmgCdw9ub3dhcm5fZnVuY3Rpb25oAncEY2FsbGEFdwlub19yZXR1cm5qaAJ3CGRpYWx5emVybAAAAAFoAncRbm9faW1wcm9wZXJfbGlzdHNoAncMc2VuZF9yZXF1ZXN0YQRqaAJ3CGRpYWx5emVybAAAAAFoAncRbm9faW1wcm9wZXJfbGlzdHNoAncMc2VuZF9yZXF1ZXN0YQZqaAJ3CGRpYWx5emVybAAAAAJoAncPbm93YXJuX2Z1bmN0aW9uaAJ3EHJlY2VpdmVfcmVzcG9uc2VhAncJbm9fcmV0dXJuamgCdwhkaWFseXplcmwAAAACaAJ3D25vd2Fybl9mdW5jdGlvbmgCdxByZWNlaXZlX3Jlc3BvbnNlYQN3CW5vX3JldHVybmpoAncIZGlhbHl6ZXJsAAAAAmgCdw9ub3dhcm5fZnVuY3Rpb25oAncNd2FpdF9yZXNwb25zZWECdwlub19yZXR1cm5qaAJ3CGRpYWx5emVybAAAAAJoAncPbm93YXJuX2Z1bmN0aW9uaAJ3DmNoZWNrX3Jlc3BvbnNlYQJ3CW5vX3JldHVybmpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2gCdwpyZXFpZHNfYWRkYQNqaAJ3CGRpYWx5emVybAAAAAFoAncRbm9faW1wcm9wZXJfbGlzdHNoAncOcmVxaWRzX3RvX2xpc3RhAWpoAncIZGlhbHl6ZXJsAAAAAmgCdw9ub3dhcm5fZnVuY3Rpb25oAncGcmVzdWx0YQR3CW5vX3JldHVybmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAJi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2VycGMuZXJsag== -=mod:user_sup -Current size: 5411 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAZjtvFsHpi2oYJNyK+BJegmpoAncJYmVoYXZpb3VybAAAAAF3EXN1cGVydmlzb3JfYnJpZGdlamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAKi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL3VzZXJfc3VwLmVybGo= -=mod:user_drv -Current size: 50600 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAV06qfcXDHq1HAw73vMm622poAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zdGF0ZW1qag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAKi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL3VzZXJfZHJ2LmVybGo= -=mod:gen_statem -Current size: 78929 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA0LgXEqMkSoYlnYjTV7wab2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACwvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9nZW5fc3RhdGVtLmVybGo= -=mod:prim_tty -Current size: 71017 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAAqFwI4sYbIil9FhV3gj2j2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAKi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL3ByaW1fdHR5LmVybGo= -=mod:io -Current size: 24369 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAApRaglMWA2VsOdFJPVz133Gpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACQvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9pby5lcmxq -=mod:group -Current size: 43672 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA851sQvKFjbfq7qcvrtJnqGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAJy9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2dyb3VwLmVybGo= -=mod:edlin -Current size: 38096 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAHOkgEIAXEUgr+NtGF+NeWmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACcvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lZGxpbi5lcmxq -=mod:io_lib -Current size: 37231 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAFFeN9kWE1DsEb/D+MxWXDGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACgvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9pb19saWIuZXJsag== -=mod:logger_sup -Current size: 1730 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAviM55aoW6hCnDVjE2ajfCGpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9zdXAuZXJsag== -=mod:group_history -Current size: 40520 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAArNDTXjp3PaP6UETyYRPOCWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALy9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2dyb3VwX2hpc3RvcnkuZXJsag== -=mod:io_lib_format -Current size: 36306 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAzwUVMCw5gpCCMKijxfMqt2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrAC8vYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9pb19saWJfZm9ybWF0LmVybGo= -=mod:logger_handler_watcher -Current size: 3686 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAUSb4uQDBVYdufFjEDGNpDWpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAOC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9oYW5kbGVyX3dhdGNoZXIuZXJsag== -=mod:timer -Current size: 19608 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA8aNh9jNZ5oP9N/HqUh4WWWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACcvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy90aW1lci5lcmxq -=mod:kernel_config -Current size: 7013 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAKNVWveNYHE/lG53RxdAyrWpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALy9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2tlcm5lbF9jb25maWcuZXJsag== -=mod:kernel_refc -Current size: 6107 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAP51mX3wVLHv5Wt44rH/VNWpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2tlcm5lbF9yZWZjLmVybGo= -=mod:erl_signal_handler -Current size: 3791 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA49r9WmTF+h6BuvDW6CLhI2poAncJYmVoYXZpb3VybAAAAAF3CWdlbl9ldmVudGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsANC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2VybF9zaWduYWxfaGFuZGxlci5lcmxq -=mod:logger_formatter -Current size: 27269 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA3DgK6nIfXOBrGY11b3Ebc2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9mb3JtYXR0ZXIuZXJsag== -=mod:logger_std_h -Current size: 29691 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAHZBnbQf+yJ3LNQvEEyzqCGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALi9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9zdGRfaC5lcmxq -=mod:logger_h_common -Current size: 27015 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA8gXXQTDseI2RwAfchg+PjGpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsAMS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL2xvZ2dlcl9oX2NvbW1vbi5lcmxq -=mod:c -Current size: 55738 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAx9sEY92lk5eCgdpeFRvl7Wpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACMvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9jLmVybGo= -=mod:orddict -Current size: 9632 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAjVNEV8MyenfougmvyJOIn2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACkvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9vcmRkaWN0LmVybGo= -=mod:raw_file_io -Current size: 3544 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAAfByFOutd4XmaTTyQZS+wGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAJ3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjLy4uL2luY2x1ZGVqaAJ3BnNvdXJjZWsALS9idWlsZHJvb3Qvb3RwL2xpYi9rZXJuZWwvc3JjL3Jhd19maWxlX2lvLmVybGo= -=mod:erl_scan -Current size: 80286 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAcWizQoku/ar098CvlBYw3GpoAncHcmVtb3ZlZGwAAAADaAN3DXNldF9hdHRyaWJ1dGVhA2sAH3VzZSBlcmxfYW5ubzpzZXRfbGluZS8yIGluc3RlYWRoA3cPYXR0cmlidXRlc19pbmZvdwFfawAydXNlIGVybF9hbm5vOntjb2x1bW4sbGluZSxsb2NhdGlvbix0ZXh0fS8xIGluc3RlYWRoA3cKdG9rZW5faW5mb3cBX2sAQnVzZSBlcmxfc2Nhbjp7Y2F0ZWdvcnksY29sdW1uLGxpbmUsbG9jYXRpb24sc3ltYm9sLHRleHR9LzEgaW5zdGVhZGpoAncMcmVtb3ZlZF90eXBlbAAAAANoA3cGY29sdW1uYQBrAB11c2UgZXJsX2Fubm86Y29sdW1uKCkgaW5zdGVhZGgDdwRsaW5lYQBrABt1c2UgZXJsX2Fubm86bGluZSgpIGluc3RlYWRoA3cIbG9jYXRpb25hAGsAH3VzZSBlcmxfYW5ubzpsb2NhdGlvbigpIGluc3RlYWRqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACovYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lcmxfc2Nhbi5lcmxq -=mod:erl_anno -Current size: 10627 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAkayPNmhEhCtPmVnzA+f9ompq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACovYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lcmxfYW5uby5lcmxq -=mod:ordsets -Current size: 5786 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAe8kg2+9uOF1cs2tFmVktbGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACkvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9vcmRzZXRzLmVybGo= -=mod:otp_internal -Current size: 74930 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAgb4GzSRirByHf+zgWa/J7mpoAncIZGlhbHl6ZXJsAAAAAWgCdwhub19tYXRjaGgCdwhvYnNvbGV0ZWEDamgCdwhkaWFseXplcmwAAAABaAJ3CG5vX21hdGNoaAJ3DW9ic29sZXRlX3R5cGVhA2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrAC4vYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9vdHBfaW50ZXJuYWwuZXJsag== -=mod:erl_internal -Current size: 12465 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAH3E66VDgOMxAJ3swqD+T7Wpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrAC4vYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lcmxfaW50ZXJuYWwuZXJsag== -=mod:'aoc2023@@main' -Current size: 4742 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAPugzxohB3mrGKcTr3YDYhmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAby9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FvYzIwMjMvX2dsZWFtX2FydGVmYWN0cy9hb2MyMDIzQEBtYWluLmVybGo= -=mod:epp -Current size: 96168 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAB23d4tmH4coUKKRIT0Ew7Wpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACUvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9lcHAuZXJsag== -=mod:inets_app -Current size: 1391 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAA4PrNF10KpcErAmiRnvRGo2poAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xaAJ3CWJlaGF2aW91cmwAAAABdwthcHBsaWNhdGlvbmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawA0L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9pbmV0c19hcHAvaW5ldHNfYXBwLmVybGo= -=mod:inets_sup -Current size: 4174 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAZYq0pFoYUy98UilKMAgr/2poAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xaAJ3CWJlaGF2aW91cmwAAAABdwpzdXBlcnZpc29yamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawA0L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9pbmV0c19hcHAvaW5ldHNfc3VwLmVybGo= -=mod:httpc_sup -Current size: 2503 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAgy7v3K4IkDuZDOu8Nwe8CGpoAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xaAJ3CWJlaGF2aW91cmwAAAABdwpzdXBlcnZpc29yamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAZ3CmRlYnVnX2luZm9oAncBaWsANi9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vLi4vaW5jbHVkZWgCdwFpawA1L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC8uLi9pbmV0c19hcHBoAncBaWsANC9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vaHR0cF9saWJoAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawA2L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC9odHRwY19zdXAuZXJsag== -=mod:httpc_profile_sup -Current size: 3949 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAARi0bgARtwsiompJMTfZqgGpoAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xaAJ3CWJlaGF2aW91cmwAAAABdwpzdXBlcnZpc29yamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAZ3CmRlYnVnX2luZm9oAncBaWsANi9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vLi4vaW5jbHVkZWgCdwFpawA1L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC8uLi9pbmV0c19hcHBoAncBaWsANC9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vaHR0cF9saWJoAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawA+L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC9odHRwY19wcm9maWxlX3N1cC5lcmxq -=mod:httpc -Current size: 51321 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAQJGijj06WciIsf9zWi9RRWpoAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xaAJ3CWJlaGF2aW91cmwAAAABdw1pbmV0c19zZXJ2aWNlamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAZ3CmRlYnVnX2luZm9oAncBaWsANi9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vLi4vaW5jbHVkZWgCdwFpawA1L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC8uLi9pbmV0c19hcHBoAncBaWsANC9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vaHR0cF9saWJoAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawAyL2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC9odHRwYy5lcmxq -=mod:httpc_manager -Current size: 45805 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAzA6/cmiSsI/VuMRE+DH5q2poAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xaAJ3CWJlaGF2aW91cmwAAAABdwpnZW5fc2VydmVyamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAZ3CmRlYnVnX2luZm9oAncBaWsANi9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vLi4vaW5jbHVkZWgCdwFpawA1L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC8uLi9pbmV0c19hcHBoAncBaWsANC9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vaHR0cF9saWJoAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawA6L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC9odHRwY19tYW5hZ2VyLmVybGo= -=mod:inets_trace -Current size: 16599 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA13W3kiQ3DajF6u1MEp8wcGpoAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawA2L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9pbmV0c19hcHAvaW5ldHNfdHJhY2UuZXJsag== -=mod:httpc_cookie -Current size: 26127 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAj0Py8LgBp/5GCHesApuGKmpoAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAZ3CmRlYnVnX2luZm9oAncBaWsANi9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vLi4vaW5jbHVkZWgCdwFpawA1L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC8uLi9pbmV0c19hcHBoAncBaWsANC9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vaHR0cF9saWJoAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawA5L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC9odHRwY19jb29raWUuZXJsag== -=mod:httpc_handler_sup -Current size: 2111 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAATMTRW8HC2a2GvzQjWwLttGpoAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xaAJ3CWJlaGF2aW91cmwAAAABdwpzdXBlcnZpc29yamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAZ3CmRlYnVnX2luZm9oAncBaWsANi9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vLi4vaW5jbHVkZWgCdwFpawA1L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC8uLi9pbmV0c19hcHBoAncBaWsANC9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9jbGllbnQvLi4vaHR0cF9saWJoAncPcGFyc2VfdHJhbnNmb3JtdxJzeXNfcHJlX2F0dHJpYnV0ZXNoBHcJYXR0cmlidXRldwZpbnNlcnR3B2FwcF92c25rAAtpbmV0cy05LjAuMWpoAncGc291cmNlawA+L2J1aWxkcm9vdC9vdHAvbGliL2luZXRzL3NyYy9odHRwX2NsaWVudC9odHRwY19oYW5kbGVyX3N1cC5lcmxq -=mod:httpd_sup -Current size: 10999 -Current attributes: g2wAAAADaAJ3A3ZzbmwAAAABbhAAtKUXEBjK/e98uHvMb3rrF2poAncHYXBwX3ZzbmsAC2luZXRzLTkuMC4xaAJ3CWJlaGF2aW91cmwAAAABdwpzdXBlcnZpc29yamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAZ3CmRlYnVnX2luZm9oA3cBZHcPU0VSVkVSX1NPRlRXQVJFawALaW5ldHMvOS4wLjFoAncBaWsANS9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9zZXJ2ZXIvLi4vaW5ldHNfYXBwaAJ3AWlrADQvYnVpbGRyb290L290cC9saWIvaW5ldHMvc3JjL2h0dHBfc2VydmVyLy4uL2h0dHBfbGliaAJ3D3BhcnNlX3RyYW5zZm9ybXcSc3lzX3ByZV9hdHRyaWJ1dGVzaAR3CWF0dHJpYnV0ZXcGaW5zZXJ0dwdhcHBfdnNuawALaW5ldHMtOS4wLjFqaAJ3BnNvdXJjZWsANi9idWlsZHJvb3Qvb3RwL2xpYi9pbmV0cy9zcmMvaHR0cF9zZXJ2ZXIvaHR0cGRfc3VwLmVybGo= -=mod:ssl_app -Current size: 2100 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbg8A0DC0t7URrYxQKjqz0ymfamgCdwliZWhhdmlvdXJsAAAAAXcLYXBwbGljYXRpb25qag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAmL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX2FwcC5lcmxq -=mod:ssl_logger -Current size: 40894 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA9nZNLNkysVW+ZQmCjJHduWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawApL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX2xvZ2dlci5lcmxq -=mod:ssl_sup -Current size: 2196 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAo3LCwydF/2W9pRiIxy3DjmpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAmL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX3N1cC5lcmxq -=mod:ssl_admin_sup -Current size: 4152 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA9wr0ynjnPAnTVBgUTNkR0mpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAsL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX2FkbWluX3N1cC5lcmxq -=mod:ssl_pem_cache -Current size: 6752 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAinKSIwX0SCBgGNnR5VuBb2poAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAsL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX3BlbV9jYWNoZS5lcmxq -=mod:ssl_pkix_db -Current size: 19921 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAUN9wTKLXhUyfxv7o/6pFYmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAqL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX3BraXhfZGIuZXJsag== -=mod:ssl_manager -Current size: 20578 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAXyE921kAFR6srVwQYOzMTGpoAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAqL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX21hbmFnZXIuZXJsag== -=mod:ssl_config -Current size: 19916 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA6GmieDGRPQVKnnM+8AnHe2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawApL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX2NvbmZpZy5lcmxq -=mod:ssl_client_session_cache_db -Current size: 4099 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAADmgKYfPII/p5bEqiJ5mcpWpoAncJYmVoYXZpb3VybAAAAAF3FXNzbF9zZXNzaW9uX2NhY2hlX2FwaWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawA6L2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX2NsaWVudF9zZXNzaW9uX2NhY2hlX2RiLmVybGo= -=mod:tls_client_ticket_store -Current size: 13052 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAxBJUXnCWGs2oPQjBp6L9A2poAncJYmVoYXZpb3VybAAAAAF3Cmdlbl9zZXJ2ZXJqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawA2L2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvdGxzX2NsaWVudF90aWNrZXRfc3RvcmUuZXJsag== -=mod:ssl_connection_sup -Current size: 2373 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA5ryHccs+ohUp1ydgfH9YvWpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAxL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX2Nvbm5lY3Rpb25fc3VwLmVybGo= -=mod:tls_sup -Current size: 2186 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAALTAE2+O6t5PW4UO1HK8EwWpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAmL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvdGxzX3N1cC5lcmxq -=mod:tls_connection_sup -Current size: 2221 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAJvmM1aYsddPoTZrW98XRumpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAxL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvdGxzX2Nvbm5lY3Rpb25fc3VwLmVybGo= -=mod:tls_server_sup -Current size: 2971 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAz0U8v3nIm1ZY5f3kum4r5WpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAtL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvdGxzX3NlcnZlcl9zdXAuZXJsag== -=mod:ssl_listen_tracker_sup -Current size: 2635 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAOGJZxWhtwUTvf1bKcQvuyGpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawA1L2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX2xpc3Rlbl90cmFja2VyX3N1cC5lcmxq -=mod:tls_server_session_ticket_sup -Current size: 2770 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAARMHYqHUw2NS1m1UIvB3reGpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawA8L2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvdGxzX3NlcnZlcl9zZXNzaW9uX3RpY2tldF9zdXAuZXJsag== -=mod:ssl_server_session_cache_sup -Current size: 2269 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAByPBY6olcmybwiutwebctWpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawA7L2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX3NlcnZlcl9zZXNzaW9uX2NhY2hlX3N1cC5lcmxq -=mod:ssl_upgrade_server_session_cache_sup -Current size: 3355 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAMxn80z9MoSuZx9BdUpz512poAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawBDL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvc3NsX3VwZ3JhZGVfc2VydmVyX3Nlc3Npb25fY2FjaGVfc3VwLmVybGo= -=mod:dtls_sup -Current size: 2203 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAzEhJZ7CGB/FJN8cXbhi9UWpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAnL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvZHRsc19zdXAuZXJsag== -=mod:dtls_connection_sup -Current size: 2302 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAARTy7MXOOcU51LrywTcn5CWpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAyL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvZHRsc19jb25uZWN0aW9uX3N1cC5lcmxq -=mod:dtls_server_sup -Current size: 2332 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAA1ajQs9tDRTHhujDcDcscHmpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAuL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvZHRsc19zZXJ2ZXJfc3VwLmVybGo= -=mod:dtls_listener_sup -Current size: 3390 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAMsV5mY/deSztKjjCFxfzBWpoAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawAwL2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvZHRsc19saXN0ZW5lcl9zdXAuZXJsag== -=mod:dtls_server_session_cache_sup -Current size: 2286 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAYQzAm4CTe8XSrf2cwuhLS2poAncJYmVoYXZpb3VybAAAAAF3CnN1cGVydmlzb3Jqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAR3CmRlYnVnX2luZm9oA3cBZHcDVlNOawAGMTEuMC4yaAJ3AWlrAB0vYnVpbGRyb290L290cC9saWIva2VybmVsL3NyY3cQd2Fybl91bnVzZWRfdmFyc2poAncGc291cmNlawA8L2J1aWxkcm9vdC9vdHAvbGliL3NzbC9zcmMvZHRsc19zZXJ2ZXJfc2Vzc2lvbl9jYWNoZV9zdXAuZXJsag== -=mod:aoc2023_test -Current size: 3021 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAIDzQyy7+ohaS/lZYEnHV6mpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAbi9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FvYzIwMjMvX2dsZWFtX2FydGVmYWN0cy9hb2MyMDIzX3Rlc3QuZXJsag== -=mod:showtime -Current size: 7589 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAASs9ziZ84gk8YQPJee7zfKmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAai9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZS5lcmxq -=mod:'gleam@erlang' -Current size: 5630 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAtN0gkiNwSV+DDvuhn5+jrGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX2VybGFuZy9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGVybGFuZy5lcmxq -=mod:'gleam@list' -Current size: 33260 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAnSllczgawr65cI3tzxLzUGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcS9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGxpc3QuZXJsag== -=mod:'glint@flag' -Current size: 25019 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAWH/YkAkx0LbtUA424nvbMGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAai9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsaW50L19nbGVhbV9hcnRlZmFjdHMvZ2xpbnRAZmxhZy5lcmxq -=mod:'glint@flag@constraint' -Current size: 7000 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAqroPg4gdgq3ImnzPTggyoGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAdS9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsaW50L19nbGVhbV9hcnRlZmFjdHMvZ2xpbnRAZmxhZ0Bjb25zdHJhaW50LmVybGo= -=mod:'gleam@set' -Current size: 6639 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAZnB2CU+bKlUidhVR0LnxHWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcC9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQHNldC5lcmxq -=mod:'gleam@dict' -Current size: 6120 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAAUASYtitXRdExDDzR4vPOGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcS9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGRpY3QuZXJsag== -=mod:glint -Current size: 18505 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA8af8T+Jw5viRaaFGJe+TImpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAZS9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsaW50L19nbGVhbV9hcnRlZmFjdHMvZ2xpbnQuZXJsag== -=mod:'gleam@map' -Current size: 5055 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAbOLYAgbwbyWo2C1h7jpfH2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcC9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQG1hcC5lcmxq -=mod:'gleam_community@colour' -Current size: 24404 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAljaAlIiPJ6KY0wAzgFEHsGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAhy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX2NvbW11bml0eV9jb2xvdXIvX2dsZWFtX2FydGVmYWN0cy9nbGVhbV9jb21tdW5pdHlAY29sb3VyLmVybGo= -=mod:'gleam@int' -Current size: 11239 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAvfyk3FUpUDfPJUBGvGzaM2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcC9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGludC5lcmxq -=mod:'gleam@float' -Current size: 8605 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAwvf3WDPwF8eL3tZjwLdPvGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAci9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGZsb2F0LmVybGo= -=mod:'gleam@result' -Current size: 8298 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAdINyuhBKzZsZG3pV5EZaVWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQHJlc3VsdC5lcmxq -=mod:'gleam@function' -Current size: 10100 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAABwPVPBZqz4aY1ziaTMPL82pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAdS9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGZ1bmN0aW9uLmVybGo= -=mod:'gleam@string' -Current size: 12638 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAbnTY1/YcMIh38pIxTgLMm2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQHN0cmluZy5lcmxq -=mod:gleam_stdlib -Current size: 35605 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAfiGJYP8AkzvoXZ0YMrXSlmpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtX3N0ZGxpYi5lcmxq -=mod:string -Current size: 113669 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAWQd6Le8JB4/gRSVlV2lBNWpoAncIZGlhbHl6ZXJsAAAAAWgCdxFub19pbXByb3Blcl9saXN0c2wAAAACaAJ3BXN0YWNrYQJoAncIbGVuZ3RoX2JhA2pqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACgvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9zdHJpbmcuZXJsag== -=mod:unicode_util -Current size: 1073461 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbg8AXORlGYYDsuY+eHtBuoYFamgCdwhkaWFseXplcmwAAAABaAJ3EW5vX2ltcHJvcGVyX2xpc3RzbAAAAANoAncCY3BhAWgCdwJnY2EBaAJ3CmdjX3ByZXBlbmRhAmpqag== -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrAC4vYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy91bmljb2RlX3V0aWwuZXJsag== -=mod:snag -Current size: 4922 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAG5uviABLq1rTj5x/VJZ0uGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAYy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL3NuYWcvX2dsZWFtX2FydGVmYWN0cy9zbmFnLmVybGo= -=mod:'gleam@string_builder' -Current size: 5894 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA60rqd/vw/4Yk1Xn9mUIvUGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAey9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQHN0cmluZ19idWlsZGVyLmVybGo= -=mod:'showtime@internal@erlang@event_handler' -Current size: 6427 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAesteT6kF6RvqO2kV/0gQ7Wpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAiC9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZUBpbnRlcm5hbEBlcmxhbmdAZXZlbnRfaGFuZGxlci5lcmxq -=mod:'gleam@otp@actor' -Current size: 10710 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAiu2xMkLOQbtFaM3BzoGdrGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX290cC9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQG90cEBhY3Rvci5lcmxq -=mod:'gleam@erlang@process' -Current size: 15774 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAtSkhind80R8EMukoR6vkNWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAey9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX2VybGFuZy9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGVybGFuZ0Bwcm9jZXNzLmVybGo= -=mod:gleam_erlang_ffi -Current size: 18854 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAMiyJ/P+Ak/snrkTct7KA+Wpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAdy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX2VybGFuZy9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtX2VybGFuZ19mZmkuZXJsag== -=mod:sys -Current size: 25414 -Current attributes: g2wAAAACaAJ3A3ZzbmwAAAABbhAAqJumm2a32a1+cgYA+0oFeGpoAncKZGVwcmVjYXRlZGwAAAABaAN3CWdldF9kZWJ1Z2EDawBaaW5jb3JyZWN0bHkgZG9jdW1lbnRlZCBhbmQgb25seSBmb3IgaW50ZXJuYWwgdXNlLiBDYW4gb2Z0ZW4gYmUgcmVwbGFjZWQgd2l0aCBzeXM6Z2V0X2xvZy8xamo= -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACUvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9zeXMuZXJsag== -=mod:'showtime@internal@erlang@module_handler' -Current size: 5600 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA266xv4+Y/ZBeOm9hxQclbWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAiS9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZUBpbnRlcm5hbEBlcmxhbmdAbW9kdWxlX2hhbmRsZXIuZXJsag== -=mod:'showtime@internal@erlang@discover' -Current size: 10957 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAACiFC4pbvgv+igrT/QELa0Wpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAgy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZUBpbnRlcm5hbEBlcmxhbmdAZGlzY292ZXIuZXJsag== -=mod:'showtime@internal@common@common_event_handler' -Current size: 6222 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAATc4tRrLUrjDY13p3a0mfM2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAjy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZUBpbnRlcm5hbEBjb21tb25AY29tbW9uX2V2ZW50X2hhbmRsZXIuZXJsag== -=mod:simplifile -Current size: 11471 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAg7QYQ/6hEp7KUPQeePbxIGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAby9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL3NpbXBsaWZpbGUvX2dsZWFtX2FydGVmYWN0cy9zaW1wbGlmaWxlLmVybGo= -=mod:'gleam@option' -Current size: 6842 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA7ba+EZRfQIRK4LJH6y8VQGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQG9wdGlvbi5lcmxq -=mod:simplifile_erl -Current size: 6790 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAALrwXLSXXrQUhBuYY6MoxsWpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL3NpbXBsaWZpbGUvX2dsZWFtX2FydGVmYWN0cy9zaW1wbGlmaWxlX2VybC5lcmxq -=mod:filelib -Current size: 31796 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAA3TrIJYJQZ31EtFlP1T81tGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjIuNGgCdwdvcHRpb25zbAAAAAN3CmRlYnVnX2luZm9oAncBaWsAKC9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uL2luY2x1ZGVoAncBaWsAMi9idWlsZHJvb3Qvb3RwL2xpYi9zdGRsaWIvc3JjLy4uLy4uL2tlcm5lbC9pbmNsdWRlamgCdwZzb3VyY2VrACkvYnVpbGRyb290L290cC9saWIvc3RkbGliL3NyYy9maWxlbGliLmVybGo= -=mod:'gleam@dynamic' -Current size: 38851 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAl/t9vhYnIwY0q12jzqtah2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAdC9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGR5bmFtaWMuZXJsag== -=mod:'day7@day7_test' -Current size: 4223 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAJPCDfy0Jji3eOEeobotB3Gpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAcC9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FvYzIwMjMvX2dsZWFtX2FydGVmYWN0cy9kYXk3QGRheTdfdGVzdC5lcmxq -=mod:'showtime@internal@erlang@runner' -Current size: 4500 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAADg32TsjXMXKsJRgK3TDrDGpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAgS9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZUBpbnRlcm5hbEBlcmxhbmdAcnVubmVyLmVybGo= -=mod:showtime_ffi -Current size: 10209 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAkt2yuDpHeMFcxuk1dvnE6Gpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAbi9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZV9mZmkuZXJsag== -=mod:'showtime@tests@should' -Current size: 6938 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAARbeuMDVpt+ZmkAn+XaYh8mpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAdy9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZUB0ZXN0c0BzaG91bGQuZXJsag== -=mod:'day7@solve' -Current size: 10243 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAArXGXSdtYEewD099OEybQ4mpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAbC9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FvYzIwMjMvX2dsZWFtX2FydGVmYWN0cy9kYXk3QHNvbHZlLmVybGo= -=mod:'showtime@internal@reports@formatter' -Current size: 23921 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAbZh74abXA6ppaWvDUqdhA2pq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAhS9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2FkZ2xlbnQvX2dsZWFtX2FydGVmYWN0cy9zaG93dGltZUBpbnRlcm5hbEByZXBvcnRzQGZvcm1hdHRlci5lcmxq -=mod:'gleam@io' -Current size: 3562 -Current attributes: g2wAAAABaAJ3A3ZzbmwAAAABbhAAZbMfKh/MIOHz0dIn+IIj+Gpq -Current compilation info: g2wAAAADaAJ3B3ZlcnNpb25rAAU4LjMuMmgCdwdvcHRpb25zbAAAAAF3CmRlYnVnX2luZm9qaAJ3BnNvdXJjZWsAby9Vc2Vycy9uaWNob2xhc2Nhcmxzb24vVlMgQ29kZS9BZHZlbnRPZkNvZGUvYW9jMjAyMy9idWlsZC9kZXYvZXJsYW5nL2dsZWFtX3N0ZGxpYi9fZ2xlYW1fYXJ0ZWZhY3RzL2dsZWFtQGlvLmVybGo= -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 39 -Address: 0x000000010421c3a4 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 30 -Address: 0x0000000103e76f50 -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 22 -Address: 0x0000000103fb4fe8 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 3 -Address: 0x000000010400c9a0 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 34 -Address: 0x000000010414b9c8 -Refc: 1 -=fun -Module: socket_registry -Uniq: 8180509 -Index: 0 -Address: 0x0000000103dc1758 -Refc: 1 -=fun -Module: logger_formatter -Uniq: 60349323 -Index: 1 -Address: 0x00000001040b64c0 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 0 -Address: 0x00000001040d26b0 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 5 -Address: 0x0000000103e3c140 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 1 -Address: 0x0000000103eb2d08 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 5 -Address: 0x00000001041524d0 -Refc: 2 -=fun -Module: raw_file_io -Uniq: 101053602 -Index: 4 -Address: 0x00000001040d0540 -Refc: 2 -=fun -Module: 'glint@flag@constraint' -Uniq: 83988546 -Index: 3 -Address: 0x000000010414e3d8 -Refc: 2 -=fun -Module: 'gleam@set' -Uniq: 15699406 -Index: 2 -Address: 0x000000010414fa68 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 56 -Address: 0x0000000103e759e8 -Refc: 1 -=fun -Module: maps -Uniq: 48010870 -Index: 2 -Address: 0x0000000104036d98 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 29 -Address: 0x000000010414abf0 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 5 -Address: 0x0000000104029d10 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@event_handler' -Uniq: 124289607 -Index: 2 -Address: 0x00000001041f7afc -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 33 -Address: 0x0000000104009d20 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 48 -Address: 0x000000010421d078 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 10 -Address: 0x0000000104160d88 -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 6 -Address: 0x0000000104158cb8 -Refc: 1 -=fun -Module: gen_event -Uniq: 37613186 -Index: 6 -Address: 0x0000000103ee1738 -Refc: 2 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 7 -Address: 0x00000001041fc1d4 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 4 -Address: 0x0000000103fb9ee0 -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 17 -Address: 0x0000000104146dc4 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 13 -Address: 0x0000000103d93480 -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 11 -Address: 0x0000000103feda78 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 90 -Address: 0x0000000103e71d70 -Refc: 1 -=fun -Module: gen -Uniq: 105431365 -Index: 0 -Address: 0x0000000103e0ff18 -Refc: 3 -=fun -Module: supervisor -Uniq: 63985753 -Index: 5 -Address: 0x0000000103e4cad8 -Refc: 1 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 1 -Address: 0x0000000103f5a008 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 62 -Address: 0x0000000103eaf540 -Refc: 2 -=fun -Module: ssl_pkix_db -Uniq: 51522903 -Index: 5 -Address: 0x0000000104129d98 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 13 -Address: 0x0000000103e79bc0 -Refc: 2 -=fun -Module: httpc -Uniq: 36342138 -Index: 10 -Address: 0x0000000104109c18 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@module_handler' -Uniq: 57223230 -Index: 0 -Address: 0x0000000104207ad4 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 3 -Address: 0x0000000103dcd620 -Refc: 1 -=fun -Module: code -Uniq: 38778589 -Index: 2 -Address: 0x0000000103e22d70 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 16 -Address: 0x000000010402d478 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 100 -Address: 0x0000000103e710f4 -Refc: 1 -=fun -Module: inet_db -Uniq: 46329474 -Index: 2 -Address: 0x0000000103fc4e40 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 14 -Address: 0x000000010400bb80 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 29 -Address: 0x000000010421a968 -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 5 -Address: 0x000000010420b330 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 21 -Address: 0x00000001040dd8c0 -Refc: 2 -=fun -Module: application_controller -Uniq: 5142319 -Index: 8 -Address: 0x0000000103ecbb40 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 28 -Address: 0x0000000103eb0d18 -Refc: 1 -=fun -Module: logger_server -Uniq: 19349920 -Index: 3 -Address: 0x0000000103e87d70 -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 4 -Address: 0x0000000104147168 -Refc: 1 -=fun -Module: beam_lib -Uniq: 45141944 -Index: 1 -Address: 0x0000000103f99ba0 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 47 -Address: 0x0000000103e76020 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 8 -Address: 0x000000010414c680 -Refc: 1 -=fun -Module: code_server -Uniq: 111287289 -Index: 0 -Address: 0x0000000103ef3d3c -Refc: 1 -=fun -Module: logger -Uniq: 1449854 -Index: 0 -Address: 0x0000000103ed6110 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 43 -Address: 0x0000000103eb0110 -Refc: 1 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 1 -Address: 0x0000000104227bd0 -Refc: 2 -=fun -Module: inet -Uniq: 65562377 -Index: 3 -Address: 0x0000000103fe5680 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 1 -Address: 0x0000000104209460 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 22 -Address: 0x0000000103e77d2c -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 17 -Address: 0x0000000104159158 -Refc: 1 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 8 -Address: 0x00000001041fc094 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 73 -Address: 0x0000000103e73e08 -Refc: 2 -=fun -Module: epp -Uniq: 124355082 -Index: 4 -Address: 0x00000001040fc6a4 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 42 -Address: 0x000000010414c798 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 8 -Address: 0x00000001040d58b8 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 13 -Address: 0x0000000103e3b694 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 9 -Address: 0x0000000103eb2130 -Refc: 1 -=fun -Module: 'gleam@otp@actor' -Uniq: 90500110 -Index: 5 -Address: 0x00000001041f9860 -Refc: 2 -=fun -Module: c -Uniq: 124725464 -Index: 11 -Address: 0x00000001040cb508 -Refc: 2 -=fun -Module: httpc -Uniq: 36342138 -Index: 7 -Address: 0x0000000104109e38 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 48 -Address: 0x0000000103e75fc8 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 16 -Address: 0x0000000103dcce18 -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 12 -Address: 0x0000000103fb5258 -Refc: 2 -=fun -Module: prim_zip -Uniq: 66112146 -Index: 6 -Address: 0x0000000103dd5abc -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 29 -Address: 0x000000010402c4c8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 107 -Address: 0x0000000103e74414 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 25 -Address: 0x000000010400a4c0 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 8 -Address: 0x000000010421ce60 -Refc: 2 -=fun -Module: file -Uniq: 1459081 -Index: 2 -Address: 0x0000000103e19554 -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 2 -Address: 0x0000000104161598 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 5 -Address: 0x0000000103d9445c -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 3 -Address: 0x0000000103feec90 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 82 -Address: 0x0000000103e7253c -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 7 -Address: 0x000000010414c598 -Refc: 1 -=fun -Module: showtime -Uniq: 22478307 -Index: 2 -Address: 0x000000010413fa10 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 38 -Address: 0x0000000103eb03ac -Refc: 1 -=fun -Module: sys -Uniq: 62925399 -Index: 1 -Address: 0x00000001042065c8 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 42 -Address: 0x000000010421c860 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 5 -Address: 0x0000000103e7b940 -Refc: 2 -=fun -Module: rpc -Uniq: 70687560 -Index: 4 -Address: 0x0000000103ff5e84 -Refc: 1 -=fun -Module: inet_config -Uniq: 64624012 -Index: 3 -Address: 0x0000000103fd3b08 -Refc: 2 -=fun -Module: 'day7@solve' -Uniq: 118915376 -Index: 6 -Address: 0x0000000104224028 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 17 -Address: 0x0000000103fb4f78 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 7 -Address: 0x0000000104020c40 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 6 -Address: 0x000000010400c558 -Refc: 2 -=fun -Module: gen_statem -Uniq: 58250722 -Index: 2 -Address: 0x0000000104068118 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 21 -Address: 0x000000010421a340 -Refc: 1 -=fun -Module: ets -Uniq: 30908443 -Index: 0 -Address: 0x0000000103e3c5e8 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 0 -Address: 0x0000000103ecc63c -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 4 -Address: 0x0000000103eb2810 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 8 -Address: 0x0000000104153980 -Refc: 2 -=fun -Module: showtime_ffi -Uniq: 122038219 -Index: 2 -Address: 0x0000000104221120 -Refc: 2 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 12 -Address: 0x0000000104146a10 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 39 -Address: 0x0000000103e76350 -Refc: 2 -=fun -Module: maps -Uniq: 48010870 -Index: 5 -Address: 0x0000000104036b58 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 16 -Address: 0x000000010414c028 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 9 -Address: 0x0000000104226a80 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 14 -Address: 0x000000010402cfa0 -Refc: 2 -=fun -Module: peer -Uniq: 34337805 -Index: 3 -Address: 0x0000000103f8cfbc -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 36 -Address: 0x000000010400bd1c -Refc: 1 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 9 -Address: 0x0000000104209508 -Refc: 1 -=fun -Module: inet -Uniq: 65562377 -Index: 11 -Address: 0x0000000103fe5150 -Refc: 2 -=fun -Module: prim_tty -Uniq: 75477062 -Index: 2 -Address: 0x00000001040782a0 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 9 -Address: 0x0000000104158850 -Refc: 2 -=fun -Module: ssl_config -Uniq: 64895055 -Index: 3 -Address: 0x0000000104134118 -Refc: 2 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 0 -Address: 0x00000001041fc8ec -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 9 -Address: 0x0000000103fb9d10 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 65 -Address: 0x0000000103e74fa4 -Refc: 1 -=fun -Module: logger_simple_h -Uniq: 105730862 -Index: 2 -Address: 0x0000000103efcd88 -Refc: 1 -=fun -Module: supervisor -Uniq: 63985753 -Index: 10 -Address: 0x0000000103e4c31c -Refc: 1 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 10 -Address: 0x0000000103f59190 -Refc: 5 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 49 -Address: 0x0000000103eafcc0 -Refc: 1 -=fun -Module: gleam_stdlib -Uniq: 79074729 -Index: 0 -Address: 0x000000010416a914 -Refc: 1 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 1 -Address: 0x0000000103ddb680 -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 3 -Address: 0x00000001040c5c88 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 8 -Address: 0x0000000103e7b18c -Refc: 1 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 8 -Address: 0x0000000103dcd328 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 7 -Address: 0x00000001040437d0 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 21 -Address: 0x000000010402c8b0 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 4 -Address: 0x0000000103fb4000 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 99 -Address: 0x0000000103e71188 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 17 -Address: 0x000000010400b6e4 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 0 -Address: 0x000000010421d9c8 -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 8 -Address: 0x000000010420bda8 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 21 -Address: 0x0000000103ecb0cc -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 23 -Address: 0x0000000103eb1430 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 18 -Address: 0x00000001040dcf28 -Refc: 2 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 1 -Address: 0x0000000104147318 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 42 -Address: 0x0000000103e761b0 -Refc: 1 -=fun -Module: user_drv -Uniq: 115201613 -Index: 1 -Address: 0x0000000104059384 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 15 -Address: 0x000000010414c0a8 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 13 -Address: 0x0000000103ef2658 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 46 -Address: 0x0000000103eafed0 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 34 -Address: 0x000000010421ab28 -Refc: 1 -=fun -Module: inet -Uniq: 65562377 -Index: 4 -Address: 0x0000000103fe55e8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 29 -Address: 0x0000000103e771f8 -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 20 -Address: 0x0000000104159980 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 33 -Address: 0x000000010414b230 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 5 -Address: 0x00000001040d3c90 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 8 -Address: 0x0000000103e3bf04 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 12 -Address: 0x0000000103eb1dc0 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 0 -Address: 0x0000000104153d7c -Refc: 1 -=fun -Module: logger_h_common -Uniq: 73693308 -Index: 0 -Address: 0x00000001040c2750 -Refc: 1 -=fun -Module: 'glint@flag@constraint' -Uniq: 83988546 -Index: 0 -Address: 0x000000010414e7f0 -Refc: 1 -=fun -Module: 'gleam@otp@actor' -Uniq: 90500110 -Index: 0 -Address: 0x00000001041f9a98 -Refc: 2 -=fun -Module: zlib -Uniq: 85031762 -Index: 0 -Address: 0x0000000103db9dc8 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 63 -Address: 0x0000000103e75178 -Refc: 1 -=fun -Module: group -Uniq: 88293013 -Index: 0 -Address: 0x00000001040897e8 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 24 -Address: 0x000000010414a200 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 16 -Address: 0x0000000103ef1a64 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 10 -Address: 0x0000000104042da4 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 6 -Address: 0x00000001040297f0 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 28 -Address: 0x000000010400a1c0 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 15 -Address: 0x000000010421bd5c -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 9 -Address: 0x0000000104160cdc -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 1 -Address: 0x0000000104159538 -Refc: 2 -=fun -Module: gen_event -Uniq: 37613186 -Index: 3 -Address: 0x0000000103ee1f10 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 10 -Address: 0x0000000103d921e8 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 1 -Address: 0x0000000103fba0a0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 89 -Address: 0x0000000103e71e70 -Refc: 1 -=fun -Module: supervisor -Uniq: 63985753 -Index: 2 -Address: 0x0000000103e4cbd8 -Refc: 2 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 2 -Address: 0x0000000103f59a88 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 57 -Address: 0x0000000103eaf984 -Refc: 1 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 9 -Address: 0x0000000103de1a30 -Refc: 1 -=fun -Module: ssl_pkix_db -Uniq: 51522903 -Index: 0 -Address: 0x000000010412acf0 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 64 -Address: 0x0000000103eaf3d8 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 0 -Address: 0x0000000103e7c3ac -Refc: 1 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 0 -Address: 0x0000000103dcd720 -Refc: 1 -=fun -Module: code -Uniq: 38778589 -Index: 5 -Address: 0x0000000103e22b18 -Refc: 1 -=fun -Module: inet_db -Uniq: 46329474 -Index: 7 -Address: 0x0000000103fce5f0 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 9 -Address: 0x000000010400c1b4 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 24 -Address: 0x0000000104219808 -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 0 -Address: 0x000000010420bfc0 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 13 -Address: 0x0000000103ecb610 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 31 -Address: 0x0000000103eb0988 -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 18 -Address: 0x000000010416143c -Refc: 1 -=fun -Module: beam_lib -Uniq: 45141944 -Index: 2 -Address: 0x0000000103f998f8 -Refc: 1 -=fun -Module: logger_server -Uniq: 19349920 -Index: 0 -Address: 0x0000000103e87ec0 -Refc: 2 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 9 -Address: 0x0000000104146bf4 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 34 -Address: 0x0000000103e768a0 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 23 -Address: 0x000000010414b9f8 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 5 -Address: 0x0000000103ef2d4c -Refc: 1 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 4 -Address: 0x0000000104227980 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 2 -Address: 0x00000001042090a0 -Refc: 1 -=fun -Module: inet -Uniq: 65562377 -Index: 12 -Address: 0x0000000103fe4ee8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 21 -Address: 0x0000000103e77fc8 -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 12 -Address: 0x0000000104158bdc -Refc: 1 -=fun -Module: io_lib -Uniq: 6600873 -Index: 2 -Address: 0x0000000104096d28 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 76 -Address: 0x0000000103e7355c -Refc: 1 -=fun -Module: epp -Uniq: 124355082 -Index: 7 -Address: 0x00000001040fbf48 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 41 -Address: 0x000000010414c6b0 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 52 -Address: 0x0000000103eafc48 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 13 -Address: 0x00000001040d8740 -Refc: 2 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 4 -Address: 0x0000000103de2530 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 55 -Address: 0x0000000103e75b8c -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 4 -Address: 0x000000010410a0d0 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 13 -Address: 0x0000000103dcd0e8 -Refc: 1 -=fun -Module: standard_error -Uniq: 123115530 -Index: 0 -Address: 0x0000000103fbd440 -Refc: 3 -=fun -Module: global_group -Uniq: 133931896 -Index: 2 -Address: 0x0000000104043a78 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@runner' -Uniq: 6773126 -Index: 0 -Address: 0x000000010421fad4 -Refc: 1 -=fun -Module: prim_zip -Uniq: 66112146 -Index: 3 -Address: 0x0000000103dd2aa8 -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 15 -Address: 0x0000000103fb4dd8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 110 -Address: 0x0000000103e78be0 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 20 -Address: 0x000000010400b098 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 7 -Address: 0x000000010421ced8 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 18 -Address: 0x0000000103ecb2a8 -Refc: 2 -=fun -Module: 'gleam@erlang' -Uniq: 90512636 -Index: 0 -Address: 0x0000000104140c68 -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 1 -Address: 0x0000000104161788 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 2 -Address: 0x0000000103d87ad8 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 81 -Address: 0x0000000103e725a4 -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 6 -Address: 0x0000000103feea70 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 2 -Address: 0x000000010414cae0 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 10 -Address: 0x0000000103ef2908 -Refc: 4 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 33 -Address: 0x0000000103eb0788 -Refc: 1 -=fun -Module: gleam_erlang_ffi -Uniq: 130811285 -Index: 0 -Address: 0x0000000104200600 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 41 -Address: 0x000000010421c80c -Refc: 1 -=fun -Module: rpc -Uniq: 70687560 -Index: 7 -Address: 0x0000000103ff6040 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 24 -Address: 0x0000000103e77798 -Refc: 2 -=fun -Module: 'day7@solve' -Uniq: 118915376 -Index: 3 -Address: 0x00000001042242c8 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 20 -Address: 0x0000000103fb4c40 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 4 -Address: 0x0000000104020d10 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 1 -Address: 0x000000010400cca4 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 36 -Address: 0x000000010414c228 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 16 -Address: 0x000000010421b89c -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 5 -Address: 0x0000000103ecc038 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 7 -Address: 0x0000000103eb23c0 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 2 -Address: 0x00000001040dff84 -Refc: 2 -=fun -Module: glint -Uniq: 18128761 -Index: 7 -Address: 0x00000001041539e0 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 7 -Address: 0x0000000103e3c024 -Refc: 1 -=fun -Module: 'gleam@set' -Uniq: 15699406 -Index: 0 -Address: 0x000000010414fb38 -Refc: 2 -=fun -Module: logger_server -Uniq: 19349920 -Index: 8 -Address: 0x0000000103e87cd8 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 58 -Address: 0x0000000103e62720 -Refc: 2 -=fun -Module: maps -Uniq: 48010870 -Index: 0 -Address: 0x0000000104032b40 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 31 -Address: 0x000000010414af10 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 12 -Address: 0x00000001042275b0 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 11 -Address: 0x000000010402b4c8 -Refc: 2 -=fun -Module: peer -Uniq: 34337805 -Index: 6 -Address: 0x0000000103f8cb00 -Refc: 1 -=fun -Module: 'showtime@internal@erlang@event_handler' -Uniq: 124289607 -Index: 0 -Address: 0x00000001041f7b88 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 50 -Address: 0x000000010421d448 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 12 -Address: 0x0000000104160f04 -Refc: 1 -=fun -Module: prim_tty -Uniq: 75477062 -Index: 1 -Address: 0x0000000104078348 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 4 -Address: 0x0000000104159260 -Refc: 1 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 5 -Address: 0x00000001041fc3ec -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 10 -Address: 0x0000000103fb9b58 -Refc: 2 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 9 -Address: 0x0000000103fee730 -Refc: 2 -=fun -Module: 'day7@day7_test' -Uniq: 115477595 -Index: 1 -Address: 0x000000010421f230 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 68 -Address: 0x0000000103e744c0 -Refc: 2 -=fun -Module: logger_simple_h -Uniq: 105730862 -Index: 1 -Address: 0x0000000103efcdb8 -Refc: 2 -=fun -Module: gen -Uniq: 105431365 -Index: 2 -Address: 0x0000000103e0fdd8 -Refc: 2 -=fun -Module: supervisor -Uniq: 63985753 -Index: 7 -Address: 0x0000000103e4c6cc -Refc: 1 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 7 -Address: 0x0000000103f59580 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 60 -Address: 0x0000000103eaf6f4 -Refc: 1 -=fun -Module: gleam_stdlib -Uniq: 79074729 -Index: 3 -Address: 0x0000000104168768 -Refc: 2 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 12 -Address: 0x0000000103de1748 -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 6 -Address: 0x00000001040cba20 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 15 -Address: 0x0000000103e798c0 -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 12 -Address: 0x0000000104109a58 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@module_handler' -Uniq: 57223230 -Index: 2 -Address: 0x0000000104207cbc -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 5 -Address: 0x0000000103dcd260 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 22 -Address: 0x000000010402cb28 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 7 -Address: 0x0000000103fb2e48 -Refc: 2 -=fun -Module: code -Uniq: 38778589 -Index: 0 -Address: 0x0000000103e22fd0 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 9 -Address: 0x0000000104020c0c -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 102 -Address: 0x0000000103e6cfb8 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 12 -Address: 0x000000010400bed4 -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 11 -Address: 0x000000010420c44c -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 31 -Address: 0x000000010421aba8 -Refc: 2 -=fun -Module: application_controller -Uniq: 5142319 -Index: 10 -Address: 0x0000000103ecba6c -Refc: 3 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 18 -Address: 0x0000000103eb1868 -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 6 -Address: 0x0000000104146f78 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 41 -Address: 0x0000000103e762a8 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 10 -Address: 0x000000010414c4b0 -Refc: 1 -=fun -Module: code_server -Uniq: 111287289 -Index: 2 -Address: 0x0000000103ef3684 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 41 -Address: 0x0000000103eb01fc -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 33 -Address: 0x000000010421ab58 -Refc: 2 -=fun -Module: inet -Uniq: 65562377 -Index: 1 -Address: 0x0000000103fe5720 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 7 -Address: 0x0000000104208948 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 16 -Address: 0x0000000103e79598 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 75 -Address: 0x0000000103e736a0 -Refc: 2 -=fun -Module: epp -Uniq: 124355082 -Index: 2 -Address: 0x00000001040fca1c -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 15 -Address: 0x0000000103eb1ad8 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 10 -Address: 0x00000001040d6ab8 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 15 -Address: 0x0000000103e3b54c -Refc: 1 -=fun -Module: 'gleam@otp@actor' -Uniq: 90500110 -Index: 7 -Address: 0x00000001041f97b0 -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 9 -Address: 0x00000001040cb7a8 -Refc: 2 -=fun -Module: raw_file_io -Uniq: 101053602 -Index: 2 -Address: 0x00000001040d0480 -Refc: 2 -=fun -Module: 'aoc2023@@main' -Uniq: 70697990 -Index: 0 -Address: 0x00000001040ea8a8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 50 -Address: 0x0000000103e75dd0 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 18 -Address: 0x0000000103dccb70 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 9 -Address: 0x000000010404301c -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 10 -Address: 0x0000000103fb29c8 -Refc: 2 -=fun -Module: prim_zip -Uniq: 66112146 -Index: 4 -Address: 0x0000000103dd5b84 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 3 -Address: 0x000000010402a9d8 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 31 -Address: 0x0000000104009e40 -Refc: 1 -=fun -Module: file -Uniq: 1459081 -Index: 0 -Address: 0x0000000103e1963c -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 10 -Address: 0x000000010421cbb8 -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 4 -Address: 0x0000000104160fb0 -Refc: 1 -=fun -Module: gen_event -Uniq: 37613186 -Index: 0 -Address: 0x0000000103edc348 -Refc: 2 -=fun -Module: erl_features -Uniq: 44278689 -Index: 2 -Address: 0x0000000103fb9ff8 -Refc: 2 -=fun -Module: init -Uniq: 72673429 -Index: 7 -Address: 0x0000000103d943f8 -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 1 -Address: 0x0000000103fef0d8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 92 -Address: 0x0000000103e71a78 -Refc: 2 -=fun -Module: file_io_server -Uniq: 82162284 -Index: 1 -Address: 0x0000000103e92898 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 36 -Address: 0x0000000103eb0500 -Refc: 1 -=fun -Module: showtime -Uniq: 22478307 -Index: 0 -Address: 0x000000010413fce0 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 44 -Address: 0x000000010421cae0 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 67 -Address: 0x0000000103eaec10 -Refc: 2 -=fun -Module: rpc -Uniq: 70687560 -Index: 2 -Address: 0x0000000103ff60e0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 7 -Address: 0x0000000103e54ed8 -Refc: 2 -=fun -Module: 'day7@solve' -Uniq: 118915376 -Index: 4 -Address: 0x0000000104224220 -Refc: 1 -=fun -Module: code -Uniq: 38778589 -Index: 8 -Address: 0x0000000103e22568 -Refc: 1 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 1 -Address: 0x0000000104020fd8 -Refc: 2 -=fun -Module: gen_server -Uniq: 22931368 -Index: 0 -Address: 0x0000000103f1edb0 -Refc: 2 -=fun -Module: inet_db -Uniq: 46329474 -Index: 4 -Address: 0x0000000103fcec9c -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 4 -Address: 0x000000010400c8e0 -Refc: 1 -=fun -Module: gen_statem -Uniq: 58250722 -Index: 0 -Address: 0x000000010405e830 -Refc: 2 -=fun -Module: simplifile -Uniq: 17272755 -Index: 3 -Address: 0x000000010420bac4 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 23 -Address: 0x0000000104219c6c -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 2 -Address: 0x0000000103ecc36c -Refc: 1 -=fun -Module: httpc_manager -Uniq: 90163599 -Index: 0 -Address: 0x0000000104112eb0 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 17 -Address: 0x000000010416139c -Refc: 1 -=fun -Module: ets -Uniq: 30908443 -Index: 2 -Address: 0x0000000103e3c300 -Refc: 1 -=fun -Module: erl_init -Uniq: 96508615 -Index: 0 -Address: 0x0000000103d860a8 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 26 -Address: 0x0000000103eb0fc0 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 10 -Address: 0x00000001041538c0 -Refc: 2 -=fun -Module: showtime_ffi -Uniq: 122038219 -Index: 0 -Address: 0x0000000104221598 -Refc: 1 -=fun -Module: logger_server -Uniq: 19349920 -Index: 5 -Address: 0x0000000103e87ab8 -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 14 -Address: 0x0000000104146950 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 33 -Address: 0x0000000103e768d8 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 18 -Address: 0x000000010414bf00 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 7 -Address: 0x00000001042275e0 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 12 -Address: 0x000000010402b830 -Refc: 2 -=fun -Module: inets_trace -Uniq: 58819832 -Index: 0 -Address: 0x00000001041156c8 -Refc: 2 -=fun -Module: peer -Uniq: 34337805 -Index: 1 -Address: 0x0000000103f8cd98 -Refc: 1 -=fun -Module: inet -Uniq: 65562377 -Index: 9 -Address: 0x0000000103fe53f8 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 15 -Address: 0x0000000104158f14 -Refc: 1 -=fun -Module: ssl_config -Uniq: 64895055 -Index: 1 -Address: 0x00000001041346a8 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 15 -Address: 0x0000000103fb92a8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 67 -Address: 0x0000000103e74538 -Refc: 2 -=fun -Module: logger_simple_h -Uniq: 105730862 -Index: 4 -Address: 0x0000000103efca28 -Refc: 2 -=fun -Module: supervisor -Uniq: 63985753 -Index: 12 -Address: 0x0000000103e4c178 -Refc: 1 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 8 -Address: 0x0000000103f594f8 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 55 -Address: 0x0000000103eafa10 -Refc: 2 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 7 -Address: 0x0000000103de1ee4 -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 1 -Address: 0x00000001040cbe68 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 10 -Address: 0x0000000103e7a4b8 -Refc: 2 -=fun -Module: httpc -Uniq: 36342138 -Index: 1 -Address: 0x000000010410a4b0 -Refc: 2 -=fun -Module: httpc_cookie -Uniq: 22295768 -Index: 0 -Address: 0x000000010411a790 -Refc: 1 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 10 -Address: 0x0000000103dcd230 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 1 -Address: 0x0000000104043b68 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 2 -Address: 0x0000000103fb3be0 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 27 -Address: 0x000000010402e088 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 109 -Address: 0x0000000103e77eb8 -Refc: 2 -=fun -Module: inet_db -Uniq: 46329474 -Index: 9 -Address: 0x0000000103fcdf74 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 23 -Address: 0x000000010400a8f0 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 2 -Address: 0x000000010421d758 -Refc: 1 -=fun -Module: ets -Uniq: 30908443 -Index: 17 -Address: 0x0000000103e3bd88 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 23 -Address: 0x0000000103eca998 -Refc: 3 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 21 -Address: 0x0000000103eb1560 -Refc: 2 -=fun -Module: 'gleam@result' -Uniq: 44749367 -Index: 2 -Address: 0x000000010415f9b8 -Refc: 2 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 3 -Address: 0x00000001041471d0 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 84 -Address: 0x0000000103e723f0 -Refc: 2 -=fun -Module: user_drv -Uniq: 115201613 -Index: 3 -Address: 0x00000001040592e4 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 1 -Address: 0x000000010414cb60 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 15 -Address: 0x0000000103ef1c90 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 44 -Address: 0x0000000103eb1528 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 36 -Address: 0x000000010421b7b8 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 31 -Address: 0x0000000103e76b60 -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 23 -Address: 0x0000000103fb5138 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 35 -Address: 0x000000010414b970 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 7 -Address: 0x00000001040d56d0 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 10 -Address: 0x0000000103e3bde4 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 2 -Address: 0x0000000103eb2b58 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 2 -Address: 0x0000000104153bb8 -Refc: 2 -=fun -Module: 'gleam@otp@actor' -Uniq: 90500110 -Index: 2 -Address: 0x00000001041f9998 -Refc: 2 -=fun -Module: raw_file_io -Uniq: 101053602 -Index: 5 -Address: 0x00000001040d05d8 -Refc: 2 -=fun -Module: 'glint@flag@constraint' -Uniq: 83988546 -Index: 2 -Address: 0x000000010414e0bc -Refc: 1 -=fun -Module: maps -Uniq: 48010870 -Index: 3 -Address: 0x0000000104036d10 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 57 -Address: 0x0000000103e75a64 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 26 -Address: 0x000000010414b78c -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 4 -Address: 0x0000000104029ad8 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 34 -Address: 0x0000000104009cd8 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 49 -Address: 0x000000010421d33c -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 11 -Address: 0x0000000104160e30 -Refc: 1 -=fun -Module: erpc -Uniq: 95647987 -Index: 1 -Address: 0x000000010404df68 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 7 -Address: 0x0000000104158980 -Refc: 1 -=fun -Module: gen_event -Uniq: 37613186 -Index: 5 -Address: 0x0000000103ee1788 -Refc: 2 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 6 -Address: 0x00000001041fc2f0 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 7 -Address: 0x0000000103fb6db8 -Refc: 2 -=fun -Module: init -Uniq: 72673429 -Index: 12 -Address: 0x0000000103d93630 -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 16 -Address: 0x0000000104146e7c -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 91 -Address: 0x0000000103e71be8 -Refc: 2 -=fun -Module: supervisor -Uniq: 63985753 -Index: 4 -Address: 0x0000000103e4cb28 -Refc: 2 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 0 -Address: 0x0000000103f5a090 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 63 -Address: 0x0000000103eaf504 -Refc: 1 -=fun -Module: ssl_pkix_db -Uniq: 51522903 -Index: 2 -Address: 0x000000010412a870 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 2 -Address: 0x0000000103e7c1f8 -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 9 -Address: 0x0000000104109cb8 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 2 -Address: 0x0000000103dcd680 -Refc: 1 -=fun -Module: code -Uniq: 38778589 -Index: 3 -Address: 0x0000000103e22c68 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 19 -Address: 0x000000010402bf98 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 101 -Address: 0x0000000103e70dac -Refc: 1 -=fun -Module: inet_db -Uniq: 46329474 -Index: 1 -Address: 0x0000000103fc5178 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 15 -Address: 0x000000010400babc -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 26 -Address: 0x0000000104218d3c -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 6 -Address: 0x000000010420b210 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 20 -Address: 0x00000001040dd5c0 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 20 -Address: 0x0000000104161634 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 15 -Address: 0x0000000103ecb4a8 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 29 -Address: 0x0000000103eb0bc8 -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 11 -Address: 0x0000000104146b10 -Refc: 1 -=fun -Module: beam_lib -Uniq: 45141944 -Index: 0 -Address: 0x0000000103f9a288 -Refc: 2 -=fun -Module: logger_server -Uniq: 19349920 -Index: 2 -Address: 0x0000000103e87e28 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 44 -Address: 0x0000000103e5ecd8 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 9 -Address: 0x000000010414c2e0 -Refc: 1 -=fun -Module: code_server -Uniq: 111287289 -Index: 7 -Address: 0x0000000103ef2cd0 -Refc: 1 -=fun -Module: logger -Uniq: 1449854 -Index: 1 -Address: 0x0000000103ed5f00 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 2 -Address: 0x0000000104227ad0 -Refc: 2 -=fun -Module: prim_inet -Uniq: 37477703 -Index: 0 -Address: 0x0000000103dae580 -Refc: 1 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 0 -Address: 0x0000000104209538 -Refc: 2 -=fun -Module: inet -Uniq: 65562377 -Index: 2 -Address: 0x0000000103fe56d0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 23 -Address: 0x0000000103e77810 -Refc: 2 -=fun -Module: io_lib -Uniq: 6600873 -Index: 0 -Address: 0x000000010409b660 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 18 -Address: 0x0000000104159368 -Refc: 1 -=fun -Module: ssl_config -Uniq: 64895055 -Index: 4 -Address: 0x0000000104133f60 -Refc: 2 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 11 -Address: 0x00000001041fbc98 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 78 -Address: 0x0000000103e728a0 -Refc: 2 -=fun -Module: epp -Uniq: 124355082 -Index: 5 -Address: 0x00000001040fc2c0 -Refc: 1 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 13 -Address: 0x0000000103f58ee8 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 15 -Address: 0x00000001040dbbb0 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 10 -Address: 0x0000000103eb2000 -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 6 -Address: 0x0000000104109ee0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 49 -Address: 0x0000000103e75ed8 -Refc: 1 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 15 -Address: 0x0000000103dccfd0 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 28 -Address: 0x00000001040304f0 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 13 -Address: 0x0000000103fb4bd0 -Refc: 2 -=fun -Module: prim_zip -Uniq: 66112146 -Index: 1 -Address: 0x0000000103dd5be4 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 104 -Address: 0x0000000103e70bf4 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 26 -Address: 0x000000010400a490 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 9 -Address: 0x000000010421cd80 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 3 -Address: 0x0000000104161300 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 4 -Address: 0x0000000103d944c8 -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 4 -Address: 0x0000000103feeba8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 83 -Address: 0x0000000103e724d0 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 4 -Address: 0x000000010414ca0c -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 39 -Address: 0x0000000103eb0314 -Refc: 1 -=fun -Module: showtime -Uniq: 22478307 -Index: 3 -Address: 0x000000010413f9dc -Refc: 1 -=fun -Module: ssl_manager -Uniq: 40265571 -Index: 0 -Address: 0x000000010412e528 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 43 -Address: 0x000000010421ca70 -Refc: 1 -=fun -Module: sys -Uniq: 62925399 -Index: 0 -Address: 0x0000000104205128 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 26 -Address: 0x0000000103e774f8 -Refc: 1 -=fun -Module: rpc -Uniq: 70687560 -Index: 5 -Address: 0x0000000103ff5d60 -Refc: 1 -=fun -Module: inet_config -Uniq: 64624012 -Index: 0 -Address: 0x0000000103fd3dd0 -Refc: 1 -=fun -Module: 'day7@solve' -Uniq: 118915376 -Index: 1 -Address: 0x0000000104223388 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 18 -Address: 0x0000000103fb4d58 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 6 -Address: 0x0000000104020cc8 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 7 -Address: 0x000000010400c340 -Refc: 2 -=fun -Module: epp -Uniq: 124355082 -Index: 8 -Address: 0x00000001040fbef4 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 38 -Address: 0x000000010414c3f8 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 18 -Address: 0x000000010421acac -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 7 -Address: 0x0000000103ecbfe0 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 5 -Address: 0x0000000103eb2690 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 9 -Address: 0x0000000104153920 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 1 -Address: 0x0000000103e3c6d0 -Refc: 1 -=fun -Module: logger_server -Uniq: 19349920 -Index: 10 -Address: 0x0000000103e8764c -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 36 -Address: 0x0000000103e5b808 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 17 -Address: 0x000000010414bf80 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 10 -Address: 0x0000000104226a30 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 9 -Address: 0x0000000104029660 -Refc: 2 -=fun -Module: peer -Uniq: 34337805 -Index: 4 -Address: 0x0000000103f8b3e0 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 37 -Address: 0x000000010400be2c -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 52 -Address: 0x000000010421d538 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 8 -Address: 0x00000001042088c8 -Refc: 2 -=fun -Module: inet -Uniq: 65562377 -Index: 10 -Address: 0x0000000103fe53a4 -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 14 -Address: 0x00000001041610ec -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 10 -Address: 0x0000000104158a58 -Refc: 1 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 3 -Address: 0x00000001041fc574 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 8 -Address: 0x0000000103fb9db8 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 70 -Address: 0x0000000103e74448 -Refc: 2 -=fun -Module: logger_simple_h -Uniq: 105730862 -Index: 3 -Address: 0x0000000103efcb50 -Refc: 2 -=fun -Module: supervisor -Uniq: 63985753 -Index: 9 -Address: 0x0000000103e4c41c -Refc: 2 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 5 -Address: 0x0000000103f597f0 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 50 -Address: 0x0000000103eafd50 -Refc: 1 -=fun -Module: gleam_stdlib -Uniq: 79074729 -Index: 1 -Address: 0x000000010416a8b4 -Refc: 1 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 2 -Address: 0x0000000103dd9180 -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 4 -Address: 0x00000001040c5bf8 -Refc: 2 -=fun -Module: file_server -Uniq: 30066188 -Index: 0 -Address: 0x0000000103e07538 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 9 -Address: 0x0000000103e7a9d0 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 7 -Address: 0x0000000103dcd4b0 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 4 -Address: 0x00000001040431a4 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 20 -Address: 0x000000010402c790 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 5 -Address: 0x0000000103fb3798 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 11 -Address: 0x00000001040209b0 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 96 -Address: 0x0000000103e71560 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 18 -Address: 0x000000010400b33c -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 1 -Address: 0x000000010421d950 -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 9 -Address: 0x000000010420c390 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 20 -Address: 0x0000000103ecb100 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 16 -Address: 0x0000000103eb19fc -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 17 -Address: 0x00000001040dcbb8 -Refc: 2 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 0 -Address: 0x00000001041474f8 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 43 -Address: 0x0000000103e7622c -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 12 -Address: 0x000000010414c3c8 -Refc: 1 -=fun -Module: code_server -Uniq: 111287289 -Index: 12 -Address: 0x0000000103ef26a8 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 47 -Address: 0x0000000103eafea0 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 35 -Address: 0x000000010421b220 -Refc: 1 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 5 -Address: 0x0000000104208d28 -Refc: 2 -=fun -Module: inet -Uniq: 65562377 -Index: 7 -Address: 0x0000000103fe54b0 -Refc: 1 -=fun -Module: error_logger -Uniq: 17945318 -Index: 1 -Address: 0x0000000103ef8a30 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 18 -Address: 0x0000000103e78da8 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 21 -Address: 0x0000000104159a88 -Refc: 1 -=fun -Module: epp -Uniq: 124355082 -Index: 0 -Address: 0x00000001040fcb94 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 13 -Address: 0x0000000103eb1cc0 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 4 -Address: 0x00000001040d3908 -Refc: 2 -=fun -Module: glint -Uniq: 18128761 -Index: 1 -Address: 0x0000000104153c40 -Refc: 2 -=fun -Module: snag -Uniq: 96707762 -Index: 0 -Address: 0x00000001041f6298 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 9 -Address: 0x0000000103e3be68 -Refc: 1 -=fun -Module: logger_h_common -Uniq: 73693308 -Index: 1 -Address: 0x00000001040c26f0 -Refc: 1 -=fun -Module: raw_file_io -Uniq: 101053602 -Index: 0 -Address: 0x00000001040d0390 -Refc: 2 -=fun -Module: 'gleam@otp@actor' -Uniq: 90500110 -Index: 1 -Address: 0x00000001041f9a18 -Refc: 2 -=fun -Module: zlib -Uniq: 85031762 -Index: 1 -Address: 0x0000000103dba870 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 60 -Address: 0x0000000103e75970 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 25 -Address: 0x000000010414b8c4 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 11 -Address: 0x0000000104042be0 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 1 -Address: 0x000000010402a178 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 8 -Address: 0x0000000103fb2560 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 29 -Address: 0x0000000104009ed8 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 12 -Address: 0x000000010421c4cc -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 6 -Address: 0x0000000104160b08 -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 2 -Address: 0x0000000104159450 -Refc: 2 -=fun -Module: gen_event -Uniq: 37613186 -Index: 2 -Address: 0x0000000103ee2098 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 9 -Address: 0x0000000103d936e0 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 0 -Address: 0x0000000103fba268 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 94 -Address: 0x0000000103e71898 -Refc: 2 -=fun -Module: supervisor -Uniq: 63985753 -Index: 1 -Address: 0x0000000103e4cdc0 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 58 -Address: 0x0000000103eaf914 -Refc: 1 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 10 -Address: 0x0000000103de19a8 -Refc: 1 -=fun -Module: ssl_pkix_db -Uniq: 51522903 -Index: 1 -Address: 0x000000010412aae4 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 46 -Address: 0x000000010421cd28 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 65 -Address: 0x0000000103eaed88 -Refc: 2 -=fun -Module: rpc -Uniq: 70687560 -Index: 0 -Address: 0x0000000103ff63cc -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 1 -Address: 0x0000000103e7c2c4 -Refc: 1 -=fun -Module: timer -Uniq: 46706930 -Index: 0 -Address: 0x00000001040ad688 -Refc: 2 -=fun -Module: code -Uniq: 38778589 -Index: 6 -Address: 0x0000000103e22a3c -Refc: 1 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 3 -Address: 0x0000000104020ea0 -Refc: 1 -=fun -Module: inet_db -Uniq: 46329474 -Index: 6 -Address: 0x0000000103fce7a8 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 10 -Address: 0x000000010400c24c -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 1 -Address: 0x000000010420bce4 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 25 -Address: 0x00000001042192f8 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 12 -Address: 0x0000000103ecb760 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 24 -Address: 0x0000000103eb12a8 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 12 -Address: 0x0000000104153800 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 19 -Address: 0x00000001041614f8 -Refc: 1 -=fun -Module: logger_server -Uniq: 19349920 -Index: 7 -Address: 0x0000000103e87988 -Refc: 2 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 8 -Address: 0x0000000104146c28 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 35 -Address: 0x0000000103e76810 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 20 -Address: 0x000000010414bde8 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 4 -Address: 0x0000000103ef3178 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 5 -Address: 0x0000000104227878 -Refc: 2 -=fun -Module: lists -Uniq: 104401092 -Index: 0 -Address: 0x0000000103f04578 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 13 -Address: 0x0000000104158d90 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 13 -Address: 0x0000000103fb9958 -Refc: 1 -=fun -Module: proc_lib -Uniq: 54621022 -Index: 1 -Address: 0x0000000103e9c360 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 77 -Address: 0x0000000103e72ef0 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 53 -Address: 0x0000000103eafaa0 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 12 -Address: 0x00000001040d6f90 -Refc: 2 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 5 -Address: 0x0000000103de24b4 -Refc: 1 -=fun -Module: logger_std_h -Uniq: 4673888 -Index: 0 -Address: 0x00000001040bcb10 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 52 -Address: 0x0000000103e75c80 -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 3 -Address: 0x000000010410a278 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 12 -Address: 0x0000000103dcd0b4 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 3 -Address: 0x0000000104043968 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 25 -Address: 0x000000010402dfb0 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 0 -Address: 0x0000000103fb5938 -Refc: 1 -=fun -Module: prim_zip -Uniq: 66112146 -Index: 2 -Address: 0x0000000103dd3288 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 111 -Address: 0x0000000103e7b8d8 -Refc: 2 -=fun -Module: inet_db -Uniq: 46329474 -Index: 11 -Address: 0x0000000103fceb98 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 21 -Address: 0x000000010400ad48 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 4 -Address: 0x000000010421d590 -Refc: 2 -=fun -Module: proplists -Uniq: 31251554 -Index: 0 -Address: 0x0000000103f81c80 -Refc: 2 -=fun -Module: application_controller -Uniq: 5142319 -Index: 17 -Address: 0x0000000103ecb320 -Refc: 2 -=fun -Module: 'gleam@result' -Uniq: 44749367 -Index: 0 -Address: 0x000000010415fa58 -Refc: 2 -=fun -Module: init -Uniq: 72673429 -Index: 1 -Address: 0x0000000103d87dd0 -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 7 -Address: 0x0000000103fee9a0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 86 -Address: 0x0000000103e72310 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 3 -Address: 0x000000010414ca40 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 9 -Address: 0x0000000103ef2b3c -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 34 -Address: 0x0000000103eb06a0 -Refc: 1 -=fun -Module: gleam_erlang_ffi -Uniq: 130811285 -Index: 1 -Address: 0x00000001042004e0 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 38 -Address: 0x000000010421c07c -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 25 -Address: 0x0000000103e77528 -Refc: 2 -=fun -Module: ssl_pem_cache -Uniq: 58460895 -Index: 0 -Address: 0x0000000104126cb0 -Refc: 2 -=fun -Module: 'day7@solve' -Uniq: 118915376 -Index: 2 -Address: 0x0000000104223980 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 21 -Address: 0x0000000103fb4e48 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 2 -Address: 0x000000010400ca50 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 37 -Address: 0x000000010414c310 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 17 -Address: 0x000000010421b310 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 4 -Address: 0x0000000103ecc138 -Refc: 2 -=fun -Module: logger_formatter -Uniq: 60349323 -Index: 0 -Address: 0x00000001040b6520 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 1 -Address: 0x00000001040d1f00 -Refc: 2 -=fun -Module: glint -Uniq: 18128761 -Index: 4 -Address: 0x0000000104152148 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 4 -Address: 0x0000000103e3bf88 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 0 -Address: 0x0000000103eb2ec8 -Refc: 1 -=fun -Module: 'gleam@set' -Uniq: 15699406 -Index: 3 -Address: 0x000000010414f218 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 59 -Address: 0x0000000103e60180 -Refc: 2 -=fun -Module: maps -Uniq: 48010870 -Index: 1 -Address: 0x0000000104032ae8 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 28 -Address: 0x000000010414aa60 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 13 -Address: 0x00000001042277f0 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 10 -Address: 0x00000001040290b8 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 32 -Address: 0x0000000104009d98 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@event_handler' -Uniq: 124289607 -Index: 3 -Address: 0x00000001041f7648 -Refc: 2 -=fun -Module: edlin -Uniq: 47380248 -Index: 0 -Address: 0x0000000104092d50 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 51 -Address: 0x000000010421d3a8 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 13 -Address: 0x000000010416104c -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 5 -Address: 0x0000000104158fe4 -Refc: 1 -=fun -Module: gen_event -Uniq: 37613186 -Index: 7 -Address: 0x0000000103ee1450 -Refc: 1 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 4 -Address: 0x00000001041fc4c8 -Refc: 2 -=fun -Module: erl_features -Uniq: 44278689 -Index: 5 -Address: 0x0000000103fb7ea0 -Refc: 2 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 10 -Address: 0x0000000103fee650 -Refc: 2 -=fun -Module: 'day7@day7_test' -Uniq: 115477595 -Index: 0 -Address: 0x000000010421f2e0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 69 -Address: 0x0000000103e74238 -Refc: 1 -=fun -Module: gen -Uniq: 105431365 -Index: 1 -Address: 0x0000000103e0fec0 -Refc: 1 -=fun -Module: supervisor -Uniq: 63985753 -Index: 6 -Address: 0x0000000103e4c92c -Refc: 1 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 6 -Address: 0x0000000103f596b8 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 61 -Address: 0x0000000103eaf688 -Refc: 1 -=fun -Module: gleam_stdlib -Uniq: 79074729 -Index: 4 -Address: 0x000000010416a708 -Refc: 2 -=fun -Module: ssl_pkix_db -Uniq: 51522903 -Index: 4 -Address: 0x000000010412a3d0 -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 7 -Address: 0x00000001040cb9c0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 12 -Address: 0x0000000103e79d04 -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 11 -Address: 0x0000000104109ae0 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@module_handler' -Uniq: 57223230 -Index: 1 -Address: 0x00000001042079e0 -Refc: 1 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 4 -Address: 0x0000000103dcd5d0 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 17 -Address: 0x000000010402d8b8 -Refc: 2 -=fun -Module: code -Uniq: 38778589 -Index: 1 -Address: 0x0000000103e22f08 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 8 -Address: 0x000000010401ec90 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 103 -Address: 0x0000000103e70c28 -Refc: 2 -=fun -Module: inet_db -Uniq: 46329474 -Index: 3 -Address: 0x0000000103fcbd60 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 13 -Address: 0x000000010400bd68 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 28 -Address: 0x000000010421a77c -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 4 -Address: 0x000000010420bf18 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 9 -Address: 0x0000000103ecbab0 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 22 -Address: 0x00000001040ddba0 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 22 -Address: 0x0000000104161834 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 19 -Address: 0x0000000103eb17a0 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 16 -Address: 0x0000000103fb9a90 -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 5 -Address: 0x0000000104147070 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 46 -Address: 0x0000000103e76148 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 11 -Address: 0x000000010414c1f8 -Refc: 1 -=fun -Module: code_server -Uniq: 111287289 -Index: 1 -Address: 0x0000000103ef3cdc -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 42 -Address: 0x0000000103eb0180 -Refc: 1 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 0 -Address: 0x0000000104228478 -Refc: 1 -=fun -Module: inet -Uniq: 65562377 -Index: 0 -Address: 0x0000000103fe5770 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 6 -Address: 0x00000001042089a0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 17 -Address: 0x0000000103e79568 -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 16 -Address: 0x00000001041590ac -Refc: 1 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 9 -Address: 0x00000001041fbf24 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 72 -Address: 0x0000000103e74008 -Refc: 2 -=fun -Module: epp -Uniq: 124355082 -Index: 3 -Address: 0x00000001040fc6d8 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 9 -Address: 0x00000001040d68d8 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 12 -Address: 0x0000000103e3b9c8 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 8 -Address: 0x0000000103eb2270 -Refc: 1 -=fun -Module: 'gleam@otp@actor' -Uniq: 90500110 -Index: 4 -Address: 0x00000001041f9900 -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 10 -Address: 0x00000001040cb5a0 -Refc: 2 -=fun -Module: raw_file_io -Uniq: 101053602 -Index: 3 -Address: 0x00000001040d078c -Refc: 1 -=fun -Module: 'glint@flag@constraint' -Uniq: 83988546 -Index: 4 -Address: 0x000000010414e828 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 51 -Address: 0x0000000103e75da0 -Refc: 1 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 17 -Address: 0x0000000103dccca4 -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 11 -Address: 0x0000000103fb20f8 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 2 -Address: 0x000000010402a688 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 106 -Address: 0x0000000103e71bb4 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 24 -Address: 0x000000010400a70c -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 11 -Address: 0x000000010421c938 -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 5 -Address: 0x0000000104160ba0 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 6 -Address: 0x0000000103d94344 -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 2 -Address: 0x0000000103feef48 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 93 -Address: 0x0000000103e719a8 -Refc: 2 -=fun -Module: file_io_server -Uniq: 82162284 -Index: 0 -Address: 0x0000000103e92c3c -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 6 -Address: 0x000000010414c8a0 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 37 -Address: 0x0000000103eb044c -Refc: 1 -=fun -Module: showtime -Uniq: 22478307 -Index: 1 -Address: 0x000000010413fc90 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 45 -Address: 0x000000010421ccac -Refc: 1 -=fun -Module: rpc -Uniq: 70687560 -Index: 3 -Address: 0x0000000103ff5ec0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 4 -Address: 0x0000000103e7bd08 -Refc: 2 -=fun -Module: inet_config -Uniq: 64624012 -Index: 2 -Address: 0x0000000103fd3bd8 -Refc: 2 -=fun -Module: 'day7@solve' -Uniq: 118915376 -Index: 7 -Address: 0x0000000104224294 -Refc: 1 -=fun -Module: code -Uniq: 38778589 -Index: 9 -Address: 0x0000000103e224e8 -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 16 -Address: 0x0000000103fb50c8 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 0 -Address: 0x0000000104021170 -Refc: 2 -=fun -Module: gen_server -Uniq: 22931368 -Index: 1 -Address: 0x0000000103f22dc0 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 5 -Address: 0x000000010400c698 -Refc: 2 -=fun -Module: gen_statem -Uniq: 58250722 -Index: 1 -Address: 0x0000000104068198 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 20 -Address: 0x000000010421a5b4 -Refc: 1 -=fun -Module: ets -Uniq: 30908443 -Index: 3 -Address: 0x0000000103e3c4b4 -Refc: 1 -=fun -Module: erl_init -Uniq: 96508615 -Index: 1 -Address: 0x0000000103d86030 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 1 -Address: 0x0000000103ecc578 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 27 -Address: 0x0000000103eb0e60 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 11 -Address: 0x0000000104153890 -Refc: 1 -=fun -Module: 'gleam@set' -Uniq: 15699406 -Index: 4 -Address: 0x000000010414f0e8 -Refc: 2 -=fun -Module: showtime_ffi -Uniq: 122038219 -Index: 3 -Address: 0x0000000104221048 -Refc: 2 -=fun -Module: logger_server -Uniq: 19349920 -Index: 4 -Address: 0x0000000103e87b6c -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 13 -Address: 0x00000001041469c0 -Refc: 2 -=fun -Module: maps -Uniq: 48010870 -Index: 4 -Address: 0x0000000104036c00 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 38 -Address: 0x0000000103e76410 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 19 -Address: 0x000000010414be68 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 8 -Address: 0x00000001042272b0 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 15 -Address: 0x000000010402d1b8 -Refc: 2 -=fun -Module: peer -Uniq: 34337805 -Index: 2 -Address: 0x0000000103f8d1bc -Refc: 1 -=fun -Module: inet -Uniq: 65562377 -Index: 8 -Address: 0x0000000103fe5440 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 8 -Address: 0x0000000104158898 -Refc: 2 -=fun -Module: ssl_config -Uniq: 64895055 -Index: 2 -Address: 0x00000001041342d0 -Refc: 2 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 1 -Address: 0x00000001041fc674 -Refc: 3 -=fun -Module: proc_lib -Uniq: 54621022 -Index: 2 -Address: 0x0000000103e9c318 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 14 -Address: 0x0000000103fb9744 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 64 -Address: 0x0000000103e7502c -Refc: 1 -=fun -Module: supervisor -Uniq: 63985753 -Index: 11 -Address: 0x0000000103e4c1a8 -Refc: 2 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 11 -Address: 0x0000000103f59038 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 48 -Address: 0x0000000103eafe0c -Refc: 1 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 0 -Address: 0x0000000103de2638 -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 2 -Address: 0x00000001040cbd30 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 11 -Address: 0x0000000103e79e60 -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 0 -Address: 0x000000010410a6ac -Refc: 1 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 9 -Address: 0x0000000103dcd540 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 6 -Address: 0x00000001040436c4 -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 3 -Address: 0x0000000103fb3328 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 26 -Address: 0x000000010402de38 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 98 -Address: 0x0000000103e711b8 -Refc: 2 -=fun -Module: inet_db -Uniq: 46329474 -Index: 8 -Address: 0x0000000103fce290 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 16 -Address: 0x000000010400ba50 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 3 -Address: 0x0000000104217380 -Refc: 2 -=fun -Module: application_controller -Uniq: 5142319 -Index: 22 -Address: 0x0000000103ecae38 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 22 -Address: 0x0000000103eb0038 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 19 -Address: 0x00000001040dd0d8 -Refc: 2 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 2 -Address: 0x00000001041415b0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 85 -Address: 0x0000000103e723b0 -Refc: 1 -=fun -Module: user_drv -Uniq: 115201613 -Index: 0 -Address: 0x0000000104059448 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 14 -Address: 0x000000010414c140 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 14 -Address: 0x0000000103ef2608 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 45 -Address: 0x0000000103eb14b8 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 37 -Address: 0x000000010421bc80 -Refc: 1 -=fun -Module: inet -Uniq: 65562377 -Index: 5 -Address: 0x0000000103fe55b0 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 28 -Address: 0x0000000103e773b4 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 32 -Address: 0x000000010414b0a0 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 6 -Address: 0x00000001040d54e8 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 11 -Address: 0x0000000103e3bce8 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 3 -Address: 0x0000000103eb29a8 -Refc: 1 -=fun -Module: glint -Uniq: 18128761 -Index: 3 -Address: 0x0000000104153b80 -Refc: 1 -=fun -Module: 'glint@flag@constraint' -Uniq: 83988546 -Index: 1 -Address: 0x000000010414e3a0 -Refc: 1 -=fun -Module: 'gleam@otp@actor' -Uniq: 90500110 -Index: 3 -Address: 0x00000001041f9964 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 62 -Address: 0x0000000103e751d8 -Refc: 2 -=fun -Module: group -Uniq: 88293013 -Index: 1 -Address: 0x00000001040889e8 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 27 -Address: 0x000000010414a8d0 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 7 -Address: 0x0000000104029fb8 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 35 -Address: 0x000000010400b0f4 -Refc: 1 -=fun -Module: kernel_refc -Uniq: 28224509 -Index: 0 -Address: 0x00000001040b0eb8 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 14 -Address: 0x000000010421c150 -Refc: 1 -=fun -Module: filelib -Uniq: 94480894 -Index: 0 -Address: 0x0000000104214c18 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 8 -Address: 0x0000000104160c3c -Refc: 1 -=fun -Module: erpc -Uniq: 95647987 -Index: 0 -Address: 0x000000010404e068 -Refc: 2 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 0 -Address: 0x0000000104159620 -Refc: 2 -=fun -Module: gen_event -Uniq: 37613186 -Index: 4 -Address: 0x0000000103ee1870 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 11 -Address: 0x0000000103d9368c -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 6 -Address: 0x0000000103fb7f58 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 88 -Address: 0x0000000103e7205c -Refc: 1 -=fun -Module: supervisor -Uniq: 63985753 -Index: 3 -Address: 0x0000000103e4cdf8 -Refc: 2 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 3 -Address: 0x0000000103f599d0 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 56 -Address: 0x0000000103eaf9dc -Refc: 1 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 8 -Address: 0x0000000103de1c68 -Refc: 1 -=fun -Module: ssl_pkix_db -Uniq: 51522903 -Index: 3 -Address: 0x000000010412a708 -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 8 -Address: 0x0000000104109d90 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 3 -Address: 0x0000000103e7bde0 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 1 -Address: 0x0000000103dcd6f0 -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 18 -Address: 0x000000010402ccb8 -Refc: 2 -=fun -Module: code -Uniq: 38778589 -Index: 4 -Address: 0x0000000103e22bf0 -Refc: 2 -=fun -Module: inet_db -Uniq: 46329474 -Index: 0 -Address: 0x0000000103fcf1a0 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 8 -Address: 0x000000010400c2f4 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 27 -Address: 0x00000001042186d4 -Refc: 1 -=fun -Module: simplifile -Uniq: 17272755 -Index: 7 -Address: 0x000000010420b558 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 21 -Address: 0x00000001041616e8 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 14 -Address: 0x0000000103ecb5dc -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 30 -Address: 0x0000000103eb0aa0 -Refc: 1 -=fun -Module: beam_lib -Uniq: 45141944 -Index: 3 -Address: 0x0000000103f99718 -Refc: 1 -=fun -Module: logger_server -Uniq: 19349920 -Index: 1 -Address: 0x0000000103e87e60 -Refc: 2 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 10 -Address: 0x0000000104146b40 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 45 -Address: 0x0000000103e5db08 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 22 -Address: 0x000000010414bcc0 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 3 -Address: 0x0000000104227a80 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 6 -Address: 0x0000000103ef2c18 -Refc: 1 -=fun -Module: prim_inet -Uniq: 37477703 -Index: 1 -Address: 0x0000000103dae5d8 -Refc: 1 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 3 -Address: 0x0000000104208f10 -Refc: 2 -=fun -Module: inet -Uniq: 65562377 -Index: 13 -Address: 0x0000000103fe4d74 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 20 -Address: 0x0000000103e78078 -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 19 -Address: 0x0000000104159418 -Refc: 1 -=fun -Module: io_lib -Uniq: 6600873 -Index: 1 -Address: 0x0000000104096af8 -Refc: 2 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 10 -Address: 0x00000001041fbd40 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 79 -Address: 0x0000000103e727e8 -Refc: 2 -=fun -Module: epp -Uniq: 124355082 -Index: 6 -Address: 0x00000001040fc194 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 40 -Address: 0x000000010414c5c8 -Refc: 2 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 12 -Address: 0x0000000103f58f90 -Refc: 2 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 14 -Address: 0x00000001040d8d20 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 11 -Address: 0x0000000103eb1ee0 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 54 -Address: 0x0000000103e75b08 -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 5 -Address: 0x0000000104109fe8 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 14 -Address: 0x0000000103dccf78 -Refc: 1 -=fun -Module: standard_error -Uniq: 123115530 -Index: 1 -Address: 0x0000000103fbd320 -Refc: 2 -=fun -Module: prim_zip -Uniq: 66112146 -Index: 0 -Address: 0x0000000103dd5c18 -Refc: 1 -=fun -Module: unicode -Uniq: 54664399 -Index: 14 -Address: 0x0000000103fb4a80 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 105 -Address: 0x0000000103e70d50 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 27 -Address: 0x000000010400a268 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 6 -Address: 0x000000010421cf98 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 19 -Address: 0x0000000103ec7778 -Refc: 2 -=fun -Module: 'gleam@erlang' -Uniq: 90512636 -Index: 1 -Address: 0x0000000104140be8 -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 0 -Address: 0x0000000104161920 -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 3 -Address: 0x0000000103d94690 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 80 -Address: 0x0000000103e727a8 -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 5 -Address: 0x0000000103feeb18 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 5 -Address: 0x000000010414c954 -Refc: 1 -=fun -Module: code_server -Uniq: 111287289 -Index: 11 -Address: 0x0000000103ef26f8 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 32 -Address: 0x0000000103eb0880 -Refc: 1 -=fun -Module: showtime -Uniq: 22478307 -Index: 4 -Address: 0x000000010413f850 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 40 -Address: 0x000000010421c70c -Refc: 1 -=fun -Module: rpc -Uniq: 70687560 -Index: 6 -Address: 0x0000000103ff5c50 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 27 -Address: 0x0000000103e773e8 -Refc: 2 -=fun -Module: inet_config -Uniq: 64624012 -Index: 1 -Address: 0x0000000103fd3c68 -Refc: 2 -=fun -Module: 'day7@solve' -Uniq: 118915376 -Index: 0 -Address: 0x00000001042230d8 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 19 -Address: 0x0000000103fb4af0 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 5 -Address: 0x0000000104020da8 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 0 -Address: 0x0000000104006d40 -Refc: 2 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 39 -Address: 0x000000010414c4e0 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 19 -Address: 0x000000010421a688 -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 6 -Address: 0x0000000103ecc408 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 6 -Address: 0x0000000103eb2520 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 3 -Address: 0x00000001040dfb40 -Refc: 2 -=fun -Module: glint -Uniq: 18128761 -Index: 6 -Address: 0x0000000104153a40 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 6 -Address: 0x0000000103e3c0b4 -Refc: 1 -=fun -Module: showtime_ffi -Uniq: 122038219 -Index: 4 -Address: 0x0000000104221600 -Refc: 1 -=fun -Module: 'gleam@set' -Uniq: 15699406 -Index: 1 -Address: 0x000000010414fb08 -Refc: 1 -=fun -Module: logger_server -Uniq: 19349920 -Index: 9 -Address: 0x0000000103e87c4c -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 37 -Address: 0x0000000103e766d4 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 30 -Address: 0x000000010414ad80 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 8 -Address: 0x000000010402a380 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 11 -Address: 0x00000001042267c0 -Refc: 2 -=fun -Module: peer -Uniq: 34337805 -Index: 5 -Address: 0x0000000103f8cbb8 -Refc: 1 -=fun -Module: 'showtime@internal@erlang@event_handler' -Uniq: 124289607 -Index: 1 -Address: 0x00000001041f7b38 -Refc: 2 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 53 -Address: 0x000000010421d498 -Refc: 2 -=fun -Module: prim_tty -Uniq: 75477062 -Index: 0 -Address: 0x0000000104078e08 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 15 -Address: 0x0000000104161198 -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 11 -Address: 0x0000000104158b30 -Refc: 1 -=fun -Module: 'gleam@erlang@process' -Uniq: 28255578 -Index: 2 -Address: 0x00000001041fc5a8 -Refc: 2 -=fun -Module: erl_features -Uniq: 44278689 -Index: 11 -Address: 0x0000000103fb9ac0 -Refc: 2 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 8 -Address: 0x0000000103fee890 -Refc: 2 -=fun -Module: gen -Uniq: 105431365 -Index: 3 -Address: 0x0000000103e0fda0 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 71 -Address: 0x0000000103e740a8 -Refc: 2 -=fun -Module: logger_simple_h -Uniq: 105730862 -Index: 0 -Address: 0x0000000103efcfa8 -Refc: 1 -=fun -Module: application_master -Uniq: 24509285 -Index: 0 -Address: 0x0000000103eb8b40 -Refc: 2 -=fun -Module: supervisor -Uniq: 63985753 -Index: 8 -Address: 0x0000000103e4c450 -Refc: 2 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 4 -Address: 0x0000000103f5999c -Refc: 1 -=fun -Module: logger_olp -Uniq: 51656710 -Index: 0 -Address: 0x0000000103f785c4 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 51 -Address: 0x0000000103eafbb8 -Refc: 1 -=fun -Module: gleam_stdlib -Uniq: 79074729 -Index: 2 -Address: 0x000000010416a7d0 -Refc: 2 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 3 -Address: 0x0000000103de25dc -Refc: 1 -=fun -Module: c -Uniq: 124725464 -Index: 5 -Address: 0x00000001040cbd00 -Refc: 1 -=fun -Module: file_server -Uniq: 30066188 -Index: 1 -Address: 0x0000000103e075a8 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 14 -Address: 0x0000000103e798f0 -Refc: 2 -=fun -Module: httpc -Uniq: 36342138 -Index: 13 -Address: 0x00000001041099c0 -Refc: 2 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 6 -Address: 0x0000000103dcd3f0 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 5 -Address: 0x000000010404343c -Refc: 1 -=fun -Module: rand -Uniq: 65977474 -Index: 23 -Address: 0x000000010402bd10 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 6 -Address: 0x0000000103fb52d0 -Refc: 2 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 10 -Address: 0x0000000104020afc -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 97 -Address: 0x0000000103e71348 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 19 -Address: 0x000000010400b128 -Refc: 2 -=fun -Module: simplifile -Uniq: 17272755 -Index: 10 -Address: 0x000000010420c3f4 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 30 -Address: 0x000000010421a7b0 -Refc: 2 -=fun -Module: application_controller -Uniq: 5142319 -Index: 11 -Address: 0x0000000103ecb8ec -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 16 -Address: 0x00000001040dc390 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 17 -Address: 0x0000000103eb193c -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 7 -Address: 0x0000000104146d4c -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 40 -Address: 0x0000000103e7630c -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 13 -Address: 0x000000010414c768 -Refc: 1 -=fun -Module: code_server -Uniq: 111287289 -Index: 3 -Address: 0x0000000103eea438 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 40 -Address: 0x0000000103eb0284 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 32 -Address: 0x000000010421aa88 -Refc: 1 -=fun -Module: inet -Uniq: 65562377 -Index: 6 -Address: 0x0000000103fe54e8 -Refc: 2 -=fun -Module: 'showtime@internal@erlang@discover' -Uniq: 110023186 -Index: 4 -Address: 0x0000000104208edc -Refc: 1 -=fun -Module: error_logger -Uniq: 17945318 -Index: 0 -Address: 0x0000000103ef7a38 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 19 -Address: 0x0000000103e78a98 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 74 -Address: 0x0000000103e73c34 -Refc: 1 -=fun -Module: epp -Uniq: 124355082 -Index: 1 -Address: 0x00000001040fcb34 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 14 -Address: 0x0000000103eb1bc4 -Refc: 1 -=fun -Module: erl_scan -Uniq: 115441844 -Index: 11 -Address: 0x00000001040d6c98 -Refc: 2 -=fun -Module: ets -Uniq: 30908443 -Index: 14 -Address: 0x0000000103e3b5e4 -Refc: 1 -=fun -Module: raw_file_io -Uniq: 101053602 -Index: 1 -Address: 0x00000001040d03f8 -Refc: 2 -=fun -Module: 'gleam@otp@actor' -Uniq: 90500110 -Index: 6 -Address: 0x00000001041f97e0 -Refc: 2 -=fun -Module: c -Uniq: 124725464 -Index: 8 -Address: 0x00000001040cb948 -Refc: 2 -=fun -Module: 'aoc2023@@main' -Uniq: 70697990 -Index: 1 -Address: 0x00000001040ea940 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 61 -Address: 0x0000000103e75758 -Refc: 1 -=fun -Module: group -Uniq: 88293013 -Index: 2 -Address: 0x00000001040888b8 -Refc: 2 -=fun -Module: global_group -Uniq: 133931896 -Index: 8 -Address: 0x0000000104043710 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 0 -Address: 0x0000000104029e40 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 9 -Address: 0x0000000103fb1c48 -Refc: 2 -=fun -Module: prim_zip -Uniq: 66112146 -Index: 5 -Address: 0x0000000103dd5b24 -Refc: 1 -=fun -Module: global -Uniq: 100333677 -Index: 30 -Address: 0x0000000104009ea4 -Refc: 1 -=fun -Module: file -Uniq: 1459081 -Index: 1 -Address: 0x0000000103e195bc -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 13 -Address: 0x000000010421c3f8 -Refc: 1 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 7 -Address: 0x0000000104160a5c -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 3 -Address: 0x0000000104155ac0 -Refc: 2 -=fun -Module: gen_event -Uniq: 37613186 -Index: 1 -Address: 0x0000000103ee21ac -Refc: 1 -=fun -Module: init -Uniq: 72673429 -Index: 8 -Address: 0x0000000103d939d8 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 3 -Address: 0x0000000103fb9fc4 -Refc: 1 -=fun -Module: inet_parse -Uniq: 131529883 -Index: 0 -Address: 0x0000000103fef1a0 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 95 -Address: 0x0000000103e715a8 -Refc: 2 -=fun -Module: supervisor -Uniq: 63985753 -Index: 0 -Address: 0x0000000103e4d260 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 59 -Address: 0x0000000103eaf728 -Refc: 2 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 11 -Address: 0x0000000103de1958 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 47 -Address: 0x000000010421d030 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 66 -Address: 0x0000000103eaeca8 -Refc: 2 -=fun -Module: rpc -Uniq: 70687560 -Index: 1 -Address: 0x0000000103ff617c -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 6 -Address: 0x0000000103e7b800 -Refc: 2 -=fun -Module: timer -Uniq: 46706930 -Index: 1 -Address: 0x00000001040ad644 -Refc: 1 -=fun -Module: inet_config -Uniq: 64624012 -Index: 4 -Address: 0x0000000103fd3ab8 -Refc: 2 -=fun -Module: kernel_config -Uniq: 90805894 -Index: 0 -Address: 0x00000001040af678 -Refc: 2 -=fun -Module: 'day7@solve' -Uniq: 118915376 -Index: 5 -Address: 0x00000001042240b8 -Refc: 2 -=fun -Module: code -Uniq: 38778589 -Index: 7 -Address: 0x0000000103e225d8 -Refc: 1 -=fun -Module: net_kernel -Uniq: 105284444 -Index: 2 -Address: 0x0000000104020ed0 -Refc: 2 -=fun -Module: inet_db -Uniq: 46329474 -Index: 5 -Address: 0x0000000103fce8b0 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 11 -Address: 0x000000010400c078 -Refc: 2 -=fun -Module: simplifile -Uniq: 17272755 -Index: 2 -Address: 0x000000010420bb20 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 22 -Address: 0x000000010421a02c -Refc: 1 -=fun -Module: application_controller -Uniq: 5142319 -Index: 3 -Address: 0x0000000103ecc3d4 -Refc: 1 -=fun -Module: httpc_manager -Uniq: 90163599 -Index: 1 -Address: 0x0000000104112fb0 -Refc: 2 -=fun -Module: glint -Uniq: 18128761 -Index: 13 -Address: 0x00000001041514f0 -Refc: 2 -=fun -Module: 'gleam@function' -Uniq: 127819290 -Index: 16 -Address: 0x000000010416125c -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 25 -Address: 0x0000000103eb1130 -Refc: 1 -=fun -Module: showtime_ffi -Uniq: 122038219 -Index: 1 -Address: 0x0000000104221320 -Refc: 2 -=fun -Module: logger_server -Uniq: 19349920 -Index: 6 -Address: 0x0000000103e87a20 -Refc: 1 -=fun -Module: 'gleam@list' -Uniq: 42440854 -Index: 15 -Address: 0x0000000104146890 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 32 -Address: 0x0000000103e7697c -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 21 -Address: 0x000000010414bd40 -Refc: 2 -=fun -Module: 'showtime@internal@reports@formatter' -Uniq: 1772858 -Index: 6 -Address: 0x0000000104227820 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 13 -Address: 0x000000010402ae18 -Refc: 2 -=fun -Module: peer -Uniq: 34337805 -Index: 0 -Address: 0x0000000103f8df08 -Refc: 2 -=fun -Module: inet -Uniq: 65562377 -Index: 14 -Address: 0x0000000103fe494c -Refc: 1 -=fun -Module: 'gleam_community@colour' -Uniq: 92289676 -Index: 14 -Address: 0x0000000104158e68 -Refc: 1 -=fun -Module: ssl_config -Uniq: 64895055 -Index: 0 -Address: 0x0000000104134808 -Refc: 1 -=fun -Module: erl_features -Uniq: 44278689 -Index: 12 -Address: 0x0000000103fb9988 -Refc: 2 -=fun -Module: proc_lib -Uniq: 54621022 -Index: 0 -Address: 0x0000000103e9c590 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 66 -Address: 0x0000000103e745b0 -Refc: 2 -=fun -Module: supervisor -Uniq: 63985753 -Index: 13 -Address: 0x0000000103e4c0e8 -Refc: 1 -=fun -Module: erl_parse -Uniq: 57550649 -Index: 9 -Address: 0x0000000103f59274 -Refc: 1 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 54 -Address: 0x0000000103eafb40 -Refc: 1 -=fun -Module: erl_prim_loader -Uniq: 11574866 -Index: 6 -Address: 0x0000000103de2310 -Refc: 1 -=fun -Module: logger_std_h -Uniq: 4673888 -Index: 1 -Address: 0x00000001040bcad8 -Refc: 3 -=fun -Module: c -Uniq: 124725464 -Index: 0 -Address: 0x00000001040cbe98 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 53 -Address: 0x0000000103e75c2c -Refc: 1 -=fun -Module: httpc -Uniq: 36342138 -Index: 2 -Address: 0x000000010410a368 -Refc: 2 -=fun -Module: httpc_cookie -Uniq: 22295768 -Index: 1 -Address: 0x000000010411a368 -Refc: 1 -=fun -Module: prim_socket -Uniq: 51104894 -Index: 11 -Address: 0x0000000103dcd030 -Refc: 1 -=fun -Module: global_group -Uniq: 133931896 -Index: 0 -Address: 0x0000000104040ec0 -Refc: 2 -=fun -Module: unicode -Uniq: 54664399 -Index: 1 -Address: 0x0000000103fb4488 -Refc: 2 -=fun -Module: rand -Uniq: 65977474 -Index: 24 -Address: 0x000000010402df10 -Refc: 2 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 108 -Address: 0x0000000103e75f08 -Refc: 2 -=fun -Module: inet_db -Uniq: 46329474 -Index: 10 -Address: 0x0000000103fcd590 -Refc: 2 -=fun -Module: global -Uniq: 100333677 -Index: 22 -Address: 0x000000010400aa90 -Refc: 1 -=fun -Module: 'gleam@dynamic' -Uniq: 70964574 -Index: 5 -Address: 0x000000010421d170 -Refc: 1 -=fun -Module: ets -Uniq: 30908443 -Index: 16 -Address: 0x0000000103e39768 -Refc: 2 -=fun -Module: application_controller -Uniq: 5142319 -Index: 16 -Address: 0x0000000103ecb478 -Refc: 2 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 20 -Address: 0x0000000103eb16e8 -Refc: 1 -=fun -Module: 'gleam@result' -Uniq: 44749367 -Index: 1 -Address: 0x000000010415fa08 -Refc: 2 -=fun -Module: init -Uniq: 72673429 -Index: 0 -Address: 0x0000000103d87d10 -Refc: 1 -=fun -Module: user_drv -Uniq: 115201613 -Index: 2 -Address: 0x0000000104059414 -Refc: 1 -=fun -Module: erl_lint -Uniq: 64115739 -Index: 87 -Address: 0x0000000103e72264 -Refc: 1 -=fun -Module: 'glint@flag' -Uniq: 25615327 -Index: 0 -Address: 0x000000010414cbe0 -Refc: 2 -=fun -Module: code_server -Uniq: 111287289 -Index: 8 -Address: 0x0000000103ef2aa8 -Refc: 4 -=fun -Module: erl_eval -Uniq: 125776118 -Index: 35 -Address: 0x0000000103eb05c8 -Refc: 1 -=fun -Module: gleam_erlang_ffi -Uniq: 130811285 -Index: 2 -Address: 0x00000001042005cc -Refc: 1 -=proc_stack:<0.0.0> -y0:H105DD6AD8 -y1:SCatch 0x3DE8204 (erlang:halt/1 + 156) -0x0000000105dda900:SReturn addr 0x3D82348 () -=proc_heap:<0.0.0> -105DD6AD8:lI82|H105DD6AE8 -105DD6AE8:lI117|H105DD6AF8 -105DD6AF8:lI110|H105DD6B08 -105DD6B08:lI116|H105DD6B18 -105DD6B18:lI105|H105DD6B28 -105DD6B28:lI109|H105DD6B38 -105DD6B38:lI101|H105DD6B48 -105DD6B48:lI32|H105DD6B58 -105DD6B58:lI116|H105DD6B68 -105DD6B68:lI101|H105DD6B78 -105DD6B78:lI114|H105DD6B88 -105DD6B88:lI109|H105DD6B98 -105DD6B98:lI105|H105DD6BA8 -105DD6BA8:lI110|H105DD6BB8 -105DD6BB8:lI97|H105DD6BC8 -105DD6BC8:lI116|H105DD6BD8 -105DD6BD8:lI105|H105DD6BE8 -105DD6BE8:lI110|H105DD6BF8 -105DD6BF8:lI103|H105DD6C08 -105DD6C08:lI32|H105DD6C18 -105DD6C18:lI100|H105DD6C28 -105DD6C28:lI117|H105DD6C38 -105DD6C38:lI114|H105DD6C48 -105DD6C48:lI105|H105DD6C58 -105DD6C58:lI110|H105DD6C68 -105DD6C68:lI103|H105DD6C78 -105DD6C78:lI32|H105DD6C88 -105DD6C88:lI98|H105DD6C98 -105DD6C98:lI111|H105DD6CA8 -105DD6CA8:lI111|H105DD6CB8 -105DD6CB8:lI116|H105DD6AC8 -105DD6AC8:lI32|H105DD6AB8 -105DD6AB8:lI40|H105DD5838 -105DD5838:lI123|H105DD5848 -105DD5848:lI44|H105DD5858 -105DD5858:lI91|H105DD5868 -105DD5868:lI123|H105DD5878 -105DD5878:lI115|H105DD5888 -105DD5888:lI104|H105DD5898 -105DD5898:lI111|H105DD58A8 -105DD58A8:lI119|H105DD58B8 -105DD58B8:lI116|H105DD58C8 -105DD58C8:lI105|H105DD58D8 -105DD58D8:lI109|H105DD58E8 -105DD58E8:lI101|H105DD58F8 -105DD58F8:lI64|H105DD5908 -105DD5908:lI105|H105DD5918 -105DD5918:lI110|H105DD5928 -105DD5928:lI116|H105DD5938 -105DD5938:lI101|H105DD5948 -105DD5948:lI114|H105DD5958 -105DD5958:lI110|H105DD5968 -105DD5968:lI97|H105DD5978 -105DD5978:lI108|H105DD5988 -105DD5988:lI64|H105DD5998 -105DD5998:lI114|H105DD59A8 -105DD59A8:lI101|H105DD59B8 -105DD59B8:lI112|H105DD59C8 -105DD59C8:lI111|H105DD59D8 -105DD59D8:lI114|H105DD59E8 -105DD59E8:lI116|H105DD59F8 -105DD59F8:lI115|H105DD5A08 -105DD5A08:lI64|H105DD5A18 -105DD5A18:lI102|H105DD5A28 -105DD5A28:lI111|H105DD5A38 -105DD5A38:lI114|H105DD5A48 -105DD5A48:lI109|H105DD5A58 -105DD5A58:lI97|H105DD5A68 -105DD5A68:lI116|H105DD5A78 -105DD5A78:lI116|H105DD5A88 -105DD5A88:lI101|H105DD5A98 -105DD5A98:lI114|H105DD5AA8 -105DD5AA8:lI44|H105DD5AB8 -105DD5AB8:lI45|H105DD5AC8 -105DD5AC8:lI99|H105DD5AD8 -105DD5AD8:lI114|H105DD5AE8 -105DD5AE8:lI101|H105DD5AF8 -105DD5AF8:lI97|H105DD5B08 -105DD5B08:lI116|H105DD5B18 -105DD5B18:lI101|H105DD5B28 -105DD5B28:lI95|H105DD5B38 -105DD5B38:lI116|H105DD5B48 -105DD5B48:lI101|H105DD5B58 -105DD5B58:lI115|H105DD5B68 -105DD5B68:lI116|H105DD5B78 -105DD5B78:lI95|H105DD5B88 -105DD5B88:lI114|H105DD5B98 -105DD5B98:lI101|H105DD5BA8 -105DD5BA8:lI112|H105DD5BB8 -105DD5BB8:lI111|H105DD5BC8 -105DD5BC8:lI114|H105DD5BD8 -105DD5BD8:lI116|H105DD5BE8 -105DD5BE8:lI47|H105DD5BF8 -105DD5BF8:lI49|H105DD5C08 -105DD5C08:lI45|H105DD5C18 -105DD5C18:lI102|H105DD5C28 -105DD5C28:lI117|H105DD5C38 -105DD5C38:lI110|H105DD5C48 -105DD5C48:lI45|H105DD5C58 -105DD5C58:lI52|H105DD5C68 -105DD5C68:lI45|H105DD5C78 -105DD5C78:lI44|H105DD5C88 -105DD5C88:lI49|H105DD5C98 -105DD5C98:lI44|H105DD5CA8 -105DD5CA8:lI91|H105DD5CB8 -105DD5CB8:lI123|H105DD5CC8 -105DD5CC8:lI95|H105DD5CD8 -105DD5CD8:lI125|H105DD5CE8 -105DD5CE8:lI44|H105DD5CF8 -105DD5CF8:lI123|H105DD5D08 -105DD5D08:lI95|H105DD5D18 -105DD5D18:lI125|H105DD5D28 -105DD5D28:lI93|H105DD5D38 -105DD5D38:lI125|H105DD5D48 -105DD5D48:lI44|H105DD5D58 -105DD5D58:lI123|H105DD5D68 -105DD5D68:lI103|H105DD5D78 -105DD5D78:lI108|H105DD5D88 -105DD5D88:lI101|H105DD5D98 -105DD5D98:lI97|H105DD5DA8 -105DD5DA8:lI109|H105DD5DB8 -105DD5DB8:lI64|H105DD5DC8 -105DD5DC8:lI108|H105DD5DD8 -105DD5DD8:lI105|H105DD5DE8 -105DD5DE8:lI115|H105DD5DF8 -105DD5DF8:lI116|H105DD5E08 -105DD5E08:lI44|H105DD5E18 -105DD5E18:lI100|H105DD5E28 -105DD5E28:lI111|H105DD5E38 -105DD5E38:lI95|H105DD5E48 -105DD5E48:lI102|H105DD5E58 -105DD5E58:lI105|H105DD5E68 -105DD5E68:lI108|H105DD5E78 -105DD5E78:lI116|H105DD5E88 -105DD5E88:lI101|H105DD5E98 -105DD5E98:lI114|H105DD5EA8 -105DD5EA8:lI95|H105DD5EB8 -105DD5EB8:lI109|H105DD5EC8 -105DD5EC8:lI97|H105DD5ED8 -105DD5ED8:lI112|H105DD5EE8 -105DD5EE8:lI44|H105DD5EF8 -105DD5EF8:lI51|H105DD5F08 -105DD5F08:lI44|H105DD5F18 -105DD5F18:lI91|H105DD5F28 -105DD5F28:lI123|H105DD5F38 -105DD5F38:lI95|H105DD5F48 -105DD5F48:lI125|H105DD5F58 -105DD5F58:lI44|H105DD5F68 -105DD5F68:lI123|H105DD5F78 -105DD5F78:lI95|H105DD5F88 -105DD5F88:lI125|H105DD5F98 -105DD5F98:lI93|H105DD5FA8 -105DD5FA8:lI125|H105DD5FB8 -105DD5FB8:lI44|H105DD5FC8 -105DD5FC8:lI123|H105DD5FD8 -105DD5FD8:lI115|H105DD5FE8 -105DD5FE8:lI104|H105DD5FF8 -105DD5FF8:lI111|H105DD6008 -105DD6008:lI119|H105DD6018 -105DD6018:lI116|H105DD6028 -105DD6028:lI105|H105DD6038 -105DD6038:lI109|H105DD6048 -105DD6048:lI101|H105DD6058 -105DD6058:lI64|H105DD6068 -105DD6068:lI105|H105DD6078 -105DD6078:lI110|H105DD6088 -105DD6088:lI116|H105DD6098 -105DD6098:lI101|H105DD60A8 -105DD60A8:lI114|H105DD60B8 -105DD60B8:lI110|H105DD60C8 -105DD60C8:lI97|H105DD60D8 -105DD60D8:lI108|H105DD60E8 -105DD60E8:lI64|H105DD60F8 -105DD60F8:lI114|H105DD6108 -105DD6108:lI101|H105DD6118 -105DD6118:lI112|H105DD6128 -105DD6128:lI111|H105DD6138 -105DD6138:lI114|H105DD6148 -105DD6148:lI116|H105DD6158 -105DD6158:lI115|H105DD6168 -105DD6168:lI64|H105DD6178 -105DD6178:lI102|H105DD6188 -105DD6188:lI111|H105DD6198 -105DD6198:lI114|H105DD61A8 -105DD61A8:lI109|H105DD61B8 -105DD61B8:lI97|H105DD61C8 -105DD61C8:lI116|H105DD61D8 -105DD61D8:lI116|H105DD61E8 -105DD61E8:lI101|H105DD61F8 -105DD61F8:lI114|H105DD6208 -105DD6208:lI44|H105DD6218 -105DD6218:lI99|H105DD6228 -105DD6228:lI114|H105DD6238 -105DD6238:lI101|H105DD6248 -105DD6248:lI97|H105DD6258 -105DD6258:lI116|H105DD6268 -105DD6268:lI101|H105DD6278 -105DD6278:lI95|H105DD6288 -105DD6288:lI116|H105DD6298 -105DD6298:lI101|H105DD62A8 -105DD62A8:lI115|H105DD62B8 -105DD62B8:lI116|H105DD62C8 -105DD62C8:lI95|H105DD62D8 -105DD62D8:lI114|H105DD62E8 -105DD62E8:lI101|H105DD62F8 -105DD62F8:lI112|H105DD6308 -105DD6308:lI111|H105DD6318 -105DD6318:lI114|H105DD6328 -105DD6328:lI116|H105DD6338 -105DD6338:lI44|H105DD6348 -105DD6348:lI49|H105DD6358 -105DD6358:lI44|H105DD6368 -105DD6368:lI91|H105DD6378 -105DD6378:lI123|H105DD6388 -105DD6388:lI95|H105DD6398 -105DD6398:lI125|H105DD63A8 -105DD63A8:lI44|H105DD63B8 -105DD63B8:lI123|H105DD63C8 -105DD63C8:lI95|H105DD63D8 -105DD63D8:lI125|H105DD63E8 -105DD63E8:lI93|H105DD63F8 -105DD63F8:lI125|H105DD6408 -105DD6408:lI44|H105DD6418 -105DD6418:lI123|H105DD6428 -105DD6428:lI115|H105DD6438 -105DD6438:lI104|H105DD6448 -105DD6448:lI111|H105DD6458 -105DD6458:lI119|H105DD6468 -105DD6468:lI116|H105DD6478 -105DD6478:lI105|H105DD6488 -105DD6488:lI109|H105DD6498 -105DD6498:lI101|H105DD64A8 -105DD64A8:lI64|H105DD64B8 -105DD64B8:lI105|H105DD64C8 -105DD64C8:lI110|H105DD64D8 -105DD64D8:lI116|H105DD64E8 -105DD64E8:lI101|H105DD64F8 -105DD64F8:lI114|H105DD6508 -105DD6508:lI110|H105DD6518 -105DD6518:lI97|H105DD6528 -105DD6528:lI108|H105DD6538 -105DD6538:lI64|H105DD6548 -105DD6548:lI101|H105DD6558 -105DD6558:lI114|H105DD6568 -105DD6568:lI108|H105DD6578 -105DD6578:lI97|H105DD6588 -105DD6588:lI110|H105DD6598 -105DD6598:lI103|H105DD65A8 -105DD65A8:lI64|H105DD65B8 -105DD65B8:lI101|H105DD65C8 -105DD65C8:lI118|H105DD65D8 -105DD65D8:lI101|H105DD65E8 -105DD65E8:lI110|H105DD65F8 -105DD65F8:lI116|H105DD6608 -105DD6608:lI95|H105DD6618 -105DD6618:lI104|H105DD6628 -105DD6628:lI97|H105DD6638 -105DD6638:lI110|H105DD6648 -105DD6648:lI100|H105DD6658 -105DD6658:lI108|H105DD6668 -105DD6668:lI101|H105DD6678 -105DD6678:lI114|H105DD6688 -105DD6688:lI44|H105DD6698 -105DD6698:lI45|H105DD66A8 -105DD66A8:lI115|H105DD66B8 -105DD66B8:lI116|H105DD66C8 -105DD66C8:lI97|H105DD66D8 -105DD66D8:lI114|H105DD66E8 -105DD66E8:lI116|H105DD66F8 -105DD66F8:lI47|H105DD6708 -105DD6708:lI48|H105DD6718 -105DD6718:lI45|H105DD6728 -105DD6728:lI102|H105DD6738 -105DD6738:lI117|H105DD6748 -105DD6748:lI110|H105DD6758 -105DD6758:lI45|H105DD6768 -105DD6768:lI49|H105DD6778 -105DD6778:lI45|H105DD6788 -105DD6788:lI44|H105DD6798 -105DD6798:lI50|H105DD67A8 -105DD67A8:lI44|H105DD67B8 -105DD67B8:lI91|H105DD67C8 -105DD67C8:lI123|H105DD67D8 -105DD67D8:lI95|H105DD67E8 -105DD67E8:lI125|H105DD67F8 -105DD67F8:lI44|H105DD6808 -105DD6808:lI123|H105DD6818 -105DD6818:lI95|H105DD6828 -105DD6828:lI125|H105DD6838 -105DD6838:lI93|H105DD6848 -105DD6848:lI125|H105DD6858 -105DD6858:lI44|H105DD6868 -105DD6868:lI123|H105DD6878 -105DD6878:lI103|H105DD6888 -105DD6888:lI108|H105DD6898 -105DD6898:lI101|H105DD68A8 -105DD68A8:lI97|H105DD68B8 -105DD68B8:lI109|H105DD68C8 -105DD68C8:lI64|H105DD68D8 -105DD68D8:lI111|H105DD68E8 -105DD68E8:lI116|H105DD68F8 -105DD68F8:lI112|H105DD6908 -105DD6908:lI64|H105DD6918 -105DD6918:lI97|H105DD6928 -105DD6928:lI99|H105DD6938 -105DD6938:lI116|H105DD6948 -105DD6948:lI111|H105DD6958 -105DD6958:lI114|H105DD6968 -105DD6968:lI44|H105DD6978 -105DD6978:lI108|H105DD6988 -105DD6988:lI111|H105DD6998 -105DD6998:lI111|H105DD69A8 -105DD69A8:lI112|H105DD69B8 -105DD69B8:lI44|H105DD69C8 -105DD69C8:lI49|H105DD69D8 -105DD69D8:lI44|H105DD69E8 -105DD69E8:lI91|H105DD69F8 -105DD69F8:lI123|H105DD6A08 -105DD6A08:lI95|H105DD6A18 -105DD6A18:lI125|H105DD6A28 -105DD6A28:lI44|H105DD6A38 -105DD6A38:lI123|H105DD6A48 -105DD6A48:lI95|H105DD6A58 -105DD6A58:lI125|H105DD6A68 -105DD6A68:lI93|H105DD6A78 -105DD6A78:lI125|H105DD6A88 -105DD6A88:lI93|H105DD6A98 -105DD6A98:lI125|H105DD6AA8 -105DD6AA8:lI41|N -=proc_stack:<0.1.0> -0x0000000103149508:SReturn addr 0x3D82348 () -=proc_heap:<0.1.0> -=proc_stack:<0.2.0> -y0:N -y1:I0 -y2:I60000 -y3:N -y4:I0 -y5:H280017B40 -y6:A9:undefined -0x0000000103149c58:SReturn addr 0x3D82348 () -=proc_heap:<0.2.0> -=proc_stack:<0.3.0> -y0:N -0x000000010314b430:SReturn addr 0x3D82348 () -=proc_heap:<0.3.0> -=proc_stack:<0.4.0> -y0:N -0x000000010314bb80:SReturn addr 0x3D82348 () -=proc_heap:<0.4.0> -=proc_stack:<0.5.0> -y0:N -0x000000010314c2d0:SReturn addr 0x3D82348 () -=proc_heap:<0.5.0> -=proc_stack:<0.6.0> -0x00000001307d0900:SReturn addr 0x3D82348 () -=proc_heap:<0.6.0> -=proc_stack:<0.7.0> -y0:N -y1:N -y2:H280013CD0 -0x00000001307d1c18:SReturn addr 0x3D82348 () -=proc_heap:<0.7.0> -=proc_stack:<0.10.0> -y0:N -y1:I360000 -y2:H105E9B3B8 -y3:P<0.9.0> -y4:H105E9B368 -0x0000000105ebdd58:SReturn addr 0x3D82348 () -=proc_heap:<0.10.0> -105E9B3B8:lH105E9B3D8|H105E9B3E8 -105E9B3D8:lI47|H105E9B408 -105E9B408:lI85|H105E9B448 -105E9B448:lI115|H105E9B498 -105E9B498:lI101|H105E9B4F8 -105E9B4F8:lI114|H105E9B568 -105E9B568:lI115|H105E9B5E8 -105E9B5E8:lI47|H105E9B678 -105E9B678:lI110|H105E9B718 -105E9B718:lI105|H105E9B7C8 -105E9B7C8:lI99|H105E9B888 -105E9B888:lI104|H105E9B958 -105E9B958:lI111|H105E9BA38 -105E9BA38:lI108|H105E9BB28 -105E9BB28:lI97|H105E9BC28 -105E9BC28:lI115|H105E9BD38 -105E9BD38:lI99|H105E9BE58 -105E9BE58:lI97|H105E9BF88 -105E9BF88:lI114|H105E9C0C8 -105E9C0C8:lI108|H105E9C208 -105E9C208:lI115|H105E9C348 -105E9C348:lI111|H105E9C488 -105E9C488:lI110|H105E9C5C8 -105E9C5C8:lI47|H105E9C708 -105E9C708:lI86|H105E9C848 -105E9C848:lI83|H105E9C988 -105E9C988:lI32|H105E9CAC8 -105E9CAC8:lI67|H105E9CC08 -105E9CC08:lI111|H105E9CD48 -105E9CD48:lI100|H105E9CE88 -105E9CE88:lI101|H105E9CFC8 -105E9CFC8:lI47|H105E9D108 -105E9D108:lI65|H105E9D248 -105E9D248:lI100|H105E9D388 -105E9D388:lI118|H105E9D4C8 -105E9D4C8:lI101|H105E9D608 -105E9D608:lI110|H105E9D748 -105E9D748:lI116|H105E9D888 -105E9D888:lI79|H105E9D9C8 -105E9D9C8:lI102|H105E9DB08 -105E9DB08:lI67|H105E9DC48 -105E9DC48:lI111|H105E9DD88 -105E9DD88:lI100|H105E9DEC8 -105E9DEC8:lI101|H105E9E008 -105E9E008:lI47|H105E9E148 -105E9E148:lI97|H105E9E288 -105E9E288:lI111|H105E9E3C8 -105E9E3C8:lI99|H105E9E508 -105E9E508:lI50|H105E9E648 -105E9E648:lI48|H105E9E788 -105E9E788:lI50|H105E9E8C8 -105E9E8C8:lI51|H105E9EA08 -105E9EA08:lI47|H105E9EB48 -105E9EB48:lI98|H105E9EC88 -105E9EC88:lI117|H105E9EDC8 -105E9EDC8:lI105|H105E9EF08 -105E9EF08:lI108|H105E9F048 -105E9F048:lI100|H105E9F188 -105E9F188:lI47|H105E9F2C8 -105E9F2C8:lI100|H105E9F408 -105E9F408:lI101|H105E9F548 -105E9F548:lI118|H105E9F678 -105E9F678:lI47|H105E9F7A8 -105E9F7A8:lI101|H105E9F8D8 -105E9F8D8:lI114|H105E9FA08 -105E9FA08:lI108|H105E9FB38 -105E9FB38:lI97|H105E9FC68 -105E9FC68:lI110|H105E9FD98 -105E9FD98:lI103|H105E9FEC8 -105E9FEC8:lI47|H105E9FFF8 -105E9FFF8:lI103|H105EA0128 -105EA0128:lI108|H105EA0258 -105EA0258:lI101|H105EA0388 -105EA0388:lI97|H105EA04B8 -105EA04B8:lI109|H105EA05E8 -105EA05E8:lI95|H105EA0718 -105EA0718:lI99|H105EA0848 -105EA0848:lI111|H105EA0978 -105EA0978:lI109|H105EA0AA8 -105EA0AA8:lI109|H105EA0BD8 -105EA0BD8:lI117|H105EA0D08 -105EA0D08:lI110|H105EA0E38 -105EA0E38:lI105|H105EA0F68 -105EA0F68:lI116|H105EA1098 -105EA1098:lI121|H105EA1198 -105EA1198:lI95|H105EA1288 -105EA1288:lI97|H105EA1368 -105EA1368:lI110|H105EA1448 -105EA1448:lI115|H105EA1528 -105EA1528:lI105|H105EA15F8 -105EA15F8:lI47|H105EA16A8 -105EA16A8:lI101|H105EA1748 -105EA1748:lI98|H105EA17C8 -105EA17C8:lI105|H105EA1848 -105EA1848:lI110|N -105E9B3E8:lH105E9B418|H105E9B428 -105E9B418:lI47|H105E9B458 -105E9B458:lI85|H105E9B4A8 -105E9B4A8:lI115|H105E9B508 -105E9B508:lI101|H105E9B578 -105E9B578:lI114|H105E9B5F8 -105E9B5F8:lI115|H105E9B688 -105E9B688:lI47|H105E9B728 -105E9B728:lI110|H105E9B7D8 -105E9B7D8:lI105|H105E9B898 -105E9B898:lI99|H105E9B968 -105E9B968:lI104|H105E9BA48 -105E9BA48:lI111|H105E9BB38 -105E9BB38:lI108|H105E9BC38 -105E9BC38:lI97|H105E9BD48 -105E9BD48:lI115|H105E9BE68 -105E9BE68:lI99|H105E9BF98 -105E9BF98:lI97|H105E9C0D8 -105E9C0D8:lI114|H105E9C218 -105E9C218:lI108|H105E9C358 -105E9C358:lI115|H105E9C498 -105E9C498:lI111|H105E9C5D8 -105E9C5D8:lI110|H105E9C718 -105E9C718:lI47|H105E9C858 -105E9C858:lI86|H105E9C998 -105E9C998:lI83|H105E9CAD8 -105E9CAD8:lI32|H105E9CC18 -105E9CC18:lI67|H105E9CD58 -105E9CD58:lI111|H105E9CE98 -105E9CE98:lI100|H105E9CFD8 -105E9CFD8:lI101|H105E9D118 -105E9D118:lI47|H105E9D258 -105E9D258:lI65|H105E9D398 -105E9D398:lI100|H105E9D4D8 -105E9D4D8:lI118|H105E9D618 -105E9D618:lI101|H105E9D758 -105E9D758:lI110|H105E9D898 -105E9D898:lI116|H105E9D9D8 -105E9D9D8:lI79|H105E9DB18 -105E9DB18:lI102|H105E9DC58 -105E9DC58:lI67|H105E9DD98 -105E9DD98:lI111|H105E9DED8 -105E9DED8:lI100|H105E9E018 -105E9E018:lI101|H105E9E158 -105E9E158:lI47|H105E9E298 -105E9E298:lI97|H105E9E3D8 -105E9E3D8:lI111|H105E9E518 -105E9E518:lI99|H105E9E658 -105E9E658:lI50|H105E9E798 -105E9E798:lI48|H105E9E8D8 -105E9E8D8:lI50|H105E9EA18 -105E9EA18:lI51|H105E9EB58 -105E9EB58:lI47|H105E9EC98 -105E9EC98:lI98|H105E9EDD8 -105E9EDD8:lI117|H105E9EF18 -105E9EF18:lI105|H105E9F058 -105E9F058:lI108|H105E9F198 -105E9F198:lI100|H105E9F2D8 -105E9F2D8:lI47|H105E9F418 -105E9F418:lI100|H105E9F558 -105E9F558:lI101|H105E9F688 -105E9F688:lI118|H105E9F7B8 -105E9F7B8:lI47|H105E9F8E8 -105E9F8E8:lI101|H105E9FA18 -105E9FA18:lI114|H105E9FB48 -105E9FB48:lI108|H105E9FC78 -105E9FC78:lI97|H105E9FDA8 -105E9FDA8:lI110|H105E9FED8 -105E9FED8:lI103|H105EA0008 -105EA0008:lI47|H105EA0138 -105EA0138:lI103|H105EA0268 -105EA0268:lI108|H105EA0398 -105EA0398:lI101|H105EA04C8 -105EA04C8:lI97|H105EA05F8 -105EA05F8:lI109|H105EA0728 -105EA0728:lI95|H105EA0858 -105EA0858:lI118|H105EA0988 -105EA0988:lI101|H105EA0AB8 -105EA0AB8:lI114|H105EA0BE8 -105EA0BE8:lI115|H105EA0D18 -105EA0D18:lI105|H105EA0E48 -105EA0E48:lI111|H105EA0F78 -105EA0F78:lI110|H105EA10A8 -105EA10A8:lI47|H105EA11A8 -105EA11A8:lI101|H105EA1298 -105EA1298:lI98|H105EA1378 -105EA1378:lI105|H105EA1458 -105EA1458:lI110|N -105E9B428:lH105E9B468|H105E9B478 -105E9B468:lI47|H105E9B4B8 -105E9B4B8:lI85|H105E9B518 -105E9B518:lI115|H105E9B588 -105E9B588:lI101|H105E9B608 -105E9B608:lI114|H105E9B698 -105E9B698:lI115|H105E9B738 -105E9B738:lI47|H105E9B7E8 -105E9B7E8:lI110|H105E9B8A8 -105E9B8A8:lI105|H105E9B978 -105E9B978:lI99|H105E9BA58 -105E9BA58:lI104|H105E9BB48 -105E9BB48:lI111|H105E9BC48 -105E9BC48:lI108|H105E9BD58 -105E9BD58:lI97|H105E9BE78 -105E9BE78:lI115|H105E9BFA8 -105E9BFA8:lI99|H105E9C0E8 -105E9C0E8:lI97|H105E9C228 -105E9C228:lI114|H105E9C368 -105E9C368:lI108|H105E9C4A8 -105E9C4A8:lI115|H105E9C5E8 -105E9C5E8:lI111|H105E9C728 -105E9C728:lI110|H105E9C868 -105E9C868:lI47|H105E9C9A8 -105E9C9A8:lI86|H105E9CAE8 -105E9CAE8:lI83|H105E9CC28 -105E9CC28:lI32|H105E9CD68 -105E9CD68:lI67|H105E9CEA8 -105E9CEA8:lI111|H105E9CFE8 -105E9CFE8:lI100|H105E9D128 -105E9D128:lI101|H105E9D268 -105E9D268:lI47|H105E9D3A8 -105E9D3A8:lI65|H105E9D4E8 -105E9D4E8:lI100|H105E9D628 -105E9D628:lI118|H105E9D768 -105E9D768:lI101|H105E9D8A8 -105E9D8A8:lI110|H105E9D9E8 -105E9D9E8:lI116|H105E9DB28 -105E9DB28:lI79|H105E9DC68 -105E9DC68:lI102|H105E9DDA8 -105E9DDA8:lI67|H105E9DEE8 -105E9DEE8:lI111|H105E9E028 -105E9E028:lI100|H105E9E168 -105E9E168:lI101|H105E9E2A8 -105E9E2A8:lI47|H105E9E3E8 -105E9E3E8:lI97|H105E9E528 -105E9E528:lI111|H105E9E668 -105E9E668:lI99|H105E9E7A8 -105E9E7A8:lI50|H105E9E8E8 -105E9E8E8:lI48|H105E9EA28 -105E9EA28:lI50|H105E9EB68 -105E9EB68:lI51|H105E9ECA8 -105E9ECA8:lI47|H105E9EDE8 -105E9EDE8:lI98|H105E9EF28 -105E9EF28:lI117|H105E9F068 -105E9F068:lI105|H105E9F1A8 -105E9F1A8:lI108|H105E9F2E8 -105E9F2E8:lI100|H105E9F428 -105E9F428:lI47|H105E9F568 -105E9F568:lI100|H105E9F698 -105E9F698:lI101|H105E9F7C8 -105E9F7C8:lI118|H105E9F8F8 -105E9F8F8:lI47|H105E9FA28 -105E9FA28:lI101|H105E9FB58 -105E9FB58:lI114|H105E9FC88 -105E9FC88:lI108|H105E9FDB8 -105E9FDB8:lI97|H105E9FEE8 -105E9FEE8:lI110|H105EA0018 -105EA0018:lI103|H105EA0148 -105EA0148:lI47|H105EA0278 -105EA0278:lI97|H105EA03A8 -105EA03A8:lI100|H105EA04D8 -105EA04D8:lI103|H105EA0608 -105EA0608:lI108|H105EA0738 -105EA0738:lI101|H105EA0868 -105EA0868:lI110|H105EA0998 -105EA0998:lI116|H105EA0AC8 -105EA0AC8:lI47|H105EA0BF8 -105EA0BF8:lI101|H105EA0D28 -105EA0D28:lI98|H105EA0E58 -105EA0E58:lI105|H105EA0F88 -105EA0F88:lI110|N -105E9B478:lH105E9B4C8|H105E9B4D8 -105E9B4C8:lI47|H105E9B528 -105E9B528:lI85|H105E9B598 -105E9B598:lI115|H105E9B618 -105E9B618:lI101|H105E9B6A8 -105E9B6A8:lI114|H105E9B748 -105E9B748:lI115|H105E9B7F8 -105E9B7F8:lI47|H105E9B8B8 -105E9B8B8:lI110|H105E9B988 -105E9B988:lI105|H105E9BA68 -105E9BA68:lI99|H105E9BB58 -105E9BB58:lI104|H105E9BC58 -105E9BC58:lI111|H105E9BD68 -105E9BD68:lI108|H105E9BE88 -105E9BE88:lI97|H105E9BFB8 -105E9BFB8:lI115|H105E9C0F8 -105E9C0F8:lI99|H105E9C238 -105E9C238:lI97|H105E9C378 -105E9C378:lI114|H105E9C4B8 -105E9C4B8:lI108|H105E9C5F8 -105E9C5F8:lI115|H105E9C738 -105E9C738:lI111|H105E9C878 -105E9C878:lI110|H105E9C9B8 -105E9C9B8:lI47|H105E9CAF8 -105E9CAF8:lI86|H105E9CC38 -105E9CC38:lI83|H105E9CD78 -105E9CD78:lI32|H105E9CEB8 -105E9CEB8:lI67|H105E9CFF8 -105E9CFF8:lI111|H105E9D138 -105E9D138:lI100|H105E9D278 -105E9D278:lI101|H105E9D3B8 -105E9D3B8:lI47|H105E9D4F8 -105E9D4F8:lI65|H105E9D638 -105E9D638:lI100|H105E9D778 -105E9D778:lI118|H105E9D8B8 -105E9D8B8:lI101|H105E9D9F8 -105E9D9F8:lI110|H105E9DB38 -105E9DB38:lI116|H105E9DC78 -105E9DC78:lI79|H105E9DDB8 -105E9DDB8:lI102|H105E9DEF8 -105E9DEF8:lI67|H105E9E038 -105E9E038:lI111|H105E9E178 -105E9E178:lI100|H105E9E2B8 -105E9E2B8:lI101|H105E9E3F8 -105E9E3F8:lI47|H105E9E538 -105E9E538:lI97|H105E9E678 -105E9E678:lI111|H105E9E7B8 -105E9E7B8:lI99|H105E9E8F8 -105E9E8F8:lI50|H105E9EA38 -105E9EA38:lI48|H105E9EB78 -105E9EB78:lI50|H105E9ECB8 -105E9ECB8:lI51|H105E9EDF8 -105E9EDF8:lI47|H105E9EF38 -105E9EF38:lI98|H105E9F078 -105E9F078:lI117|H105E9F1B8 -105E9F1B8:lI105|H105E9F2F8 -105E9F2F8:lI108|H105E9F438 -105E9F438:lI100|H105E9F578 -105E9F578:lI47|H105E9F6A8 -105E9F6A8:lI100|H105E9F7D8 -105E9F7D8:lI101|H105E9F908 -105E9F908:lI118|H105E9FA38 -105E9FA38:lI47|H105E9FB68 -105E9FB68:lI101|H105E9FC98 -105E9FC98:lI114|H105E9FDC8 -105E9FDC8:lI108|H105E9FEF8 -105E9FEF8:lI97|H105EA0028 -105EA0028:lI110|H105EA0158 -105EA0158:lI103|H105EA0288 -105EA0288:lI47|H105EA03B8 -105EA03B8:lI103|H105EA04E8 -105EA04E8:lI108|H105EA0618 -105EA0618:lI101|H105EA0748 -105EA0748:lI97|H105EA0878 -105EA0878:lI109|H105EA09A8 -105EA09A8:lI95|H105EA0AD8 -105EA0AD8:lI101|H105EA0C08 -105EA0C08:lI114|H105EA0D38 -105EA0D38:lI108|H105EA0E68 -105EA0E68:lI97|H105EA0F98 -105EA0F98:lI110|H105EA10B8 -105EA10B8:lI103|H105EA11B8 -105EA11B8:lI47|H105EA12A8 -105EA12A8:lI101|H105EA1388 -105EA1388:lI98|H105EA1468 -105EA1468:lI105|H105EA1538 -105EA1538:lI110|N -105E9B4D8:lH105E9B538|H105E9B548 -105E9B538:lI47|H105E9B5A8 -105E9B5A8:lI85|H105E9B628 -105E9B628:lI115|H105E9B6B8 -105E9B6B8:lI101|H105E9B758 -105E9B758:lI114|H105E9B808 -105E9B808:lI115|H105E9B8C8 -105E9B8C8:lI47|H105E9B998 -105E9B998:lI110|H105E9BA78 -105E9BA78:lI105|H105E9BB68 -105E9BB68:lI99|H105E9BC68 -105E9BC68:lI104|H105E9BD78 -105E9BD78:lI111|H105E9BE98 -105E9BE98:lI108|H105E9BFC8 -105E9BFC8:lI97|H105E9C108 -105E9C108:lI115|H105E9C248 -105E9C248:lI99|H105E9C388 -105E9C388:lI97|H105E9C4C8 -105E9C4C8:lI114|H105E9C608 -105E9C608:lI108|H105E9C748 -105E9C748:lI115|H105E9C888 -105E9C888:lI111|H105E9C9C8 -105E9C9C8:lI110|H105E9CB08 -105E9CB08:lI47|H105E9CC48 -105E9CC48:lI86|H105E9CD88 -105E9CD88:lI83|H105E9CEC8 -105E9CEC8:lI32|H105E9D008 -105E9D008:lI67|H105E9D148 -105E9D148:lI111|H105E9D288 -105E9D288:lI100|H105E9D3C8 -105E9D3C8:lI101|H105E9D508 -105E9D508:lI47|H105E9D648 -105E9D648:lI65|H105E9D788 -105E9D788:lI100|H105E9D8C8 -105E9D8C8:lI118|H105E9DA08 -105E9DA08:lI101|H105E9DB48 -105E9DB48:lI110|H105E9DC88 -105E9DC88:lI116|H105E9DDC8 -105E9DDC8:lI79|H105E9DF08 -105E9DF08:lI102|H105E9E048 -105E9E048:lI67|H105E9E188 -105E9E188:lI111|H105E9E2C8 -105E9E2C8:lI100|H105E9E408 -105E9E408:lI101|H105E9E548 -105E9E548:lI47|H105E9E688 -105E9E688:lI97|H105E9E7C8 -105E9E7C8:lI111|H105E9E908 -105E9E908:lI99|H105E9EA48 -105E9EA48:lI50|H105E9EB88 -105E9EB88:lI48|H105E9ECC8 -105E9ECC8:lI50|H105E9EE08 -105E9EE08:lI51|H105E9EF48 -105E9EF48:lI47|H105E9F088 -105E9F088:lI98|H105E9F1C8 -105E9F1C8:lI117|H105E9F308 -105E9F308:lI105|H105E9F448 -105E9F448:lI108|H105E9F588 -105E9F588:lI100|H105E9F6B8 -105E9F6B8:lI47|H105E9F7E8 -105E9F7E8:lI100|H105E9F918 -105E9F918:lI101|H105E9FA48 -105E9FA48:lI118|H105E9FB78 -105E9FB78:lI47|H105E9FCA8 -105E9FCA8:lI101|H105E9FDD8 -105E9FDD8:lI114|H105E9FF08 -105E9FF08:lI108|H105EA0038 -105EA0038:lI97|H105EA0168 -105EA0168:lI110|H105EA0298 -105EA0298:lI103|H105EA03C8 -105EA03C8:lI47|H105EA04F8 -105EA04F8:lI103|H105EA0628 -105EA0628:lI108|H105EA0758 -105EA0758:lI105|H105EA0888 -105EA0888:lI110|H105EA09B8 -105EA09B8:lI116|H105EA0AE8 -105EA0AE8:lI47|H105EA0C18 -105EA0C18:lI101|H105EA0D48 -105EA0D48:lI98|H105EA0E78 -105EA0E78:lI105|H105EA0FA8 -105EA0FA8:lI110|N -105E9B548:lH105E9B5B8|H105E9B5C8 -105E9B5B8:lI47|H105E9B638 -105E9B638:lI85|H105E9B6C8 -105E9B6C8:lI115|H105E9B768 -105E9B768:lI101|H105E9B818 -105E9B818:lI114|H105E9B8D8 -105E9B8D8:lI115|H105E9B9A8 -105E9B9A8:lI47|H105E9BA88 -105E9BA88:lI110|H105E9BB78 -105E9BB78:lI105|H105E9BC78 -105E9BC78:lI99|H105E9BD88 -105E9BD88:lI104|H105E9BEA8 -105E9BEA8:lI111|H105E9BFD8 -105E9BFD8:lI108|H105E9C118 -105E9C118:lI97|H105E9C258 -105E9C258:lI115|H105E9C398 -105E9C398:lI99|H105E9C4D8 -105E9C4D8:lI97|H105E9C618 -105E9C618:lI114|H105E9C758 -105E9C758:lI108|H105E9C898 -105E9C898:lI115|H105E9C9D8 -105E9C9D8:lI111|H105E9CB18 -105E9CB18:lI110|H105E9CC58 -105E9CC58:lI47|H105E9CD98 -105E9CD98:lI86|H105E9CED8 -105E9CED8:lI83|H105E9D018 -105E9D018:lI32|H105E9D158 -105E9D158:lI67|H105E9D298 -105E9D298:lI111|H105E9D3D8 -105E9D3D8:lI100|H105E9D518 -105E9D518:lI101|H105E9D658 -105E9D658:lI47|H105E9D798 -105E9D798:lI65|H105E9D8D8 -105E9D8D8:lI100|H105E9DA18 -105E9DA18:lI118|H105E9DB58 -105E9DB58:lI101|H105E9DC98 -105E9DC98:lI110|H105E9DDD8 -105E9DDD8:lI116|H105E9DF18 -105E9DF18:lI79|H105E9E058 -105E9E058:lI102|H105E9E198 -105E9E198:lI67|H105E9E2D8 -105E9E2D8:lI111|H105E9E418 -105E9E418:lI100|H105E9E558 -105E9E558:lI101|H105E9E698 -105E9E698:lI47|H105E9E7D8 -105E9E7D8:lI97|H105E9E918 -105E9E918:lI111|H105E9EA58 -105E9EA58:lI99|H105E9EB98 -105E9EB98:lI50|H105E9ECD8 -105E9ECD8:lI48|H105E9EE18 -105E9EE18:lI50|H105E9EF58 -105E9EF58:lI51|H105E9F098 -105E9F098:lI47|H105E9F1D8 -105E9F1D8:lI98|H105E9F318 -105E9F318:lI117|H105E9F458 -105E9F458:lI105|H105E9F598 -105E9F598:lI108|H105E9F6C8 -105E9F6C8:lI100|H105E9F7F8 -105E9F7F8:lI47|H105E9F928 -105E9F928:lI100|H105E9FA58 -105E9FA58:lI101|H105E9FB88 -105E9FB88:lI118|H105E9FCB8 -105E9FCB8:lI47|H105E9FDE8 -105E9FDE8:lI101|H105E9FF18 -105E9FF18:lI114|H105EA0048 -105EA0048:lI108|H105EA0178 -105EA0178:lI97|H105EA02A8 -105EA02A8:lI110|H105EA03D8 -105EA03D8:lI103|H105EA0508 -105EA0508:lI47|H105EA0638 -105EA0638:lI103|H105EA0768 -105EA0768:lI108|H105EA0898 -105EA0898:lI101|H105EA09C8 -105EA09C8:lI97|H105EA0AF8 -105EA0AF8:lI109|H105EA0C28 -105EA0C28:lI95|H105EA0D58 -105EA0D58:lI104|H105EA0E88 -105EA0E88:lI116|H105EA0FB8 -105EA0FB8:lI116|H105EA10C8 -105EA10C8:lI112|H105EA11C8 -105EA11C8:lI47|H105EA12B8 -105EA12B8:lI101|H105EA1398 -105EA1398:lI98|H105EA1478 -105EA1478:lI105|H105EA1548 -105EA1548:lI110|N -105E9B5C8:lH105E9B648|H105E9B658 -105E9B648:lI47|H105E9B6D8 -105E9B6D8:lI85|H105E9B778 -105E9B778:lI115|H105E9B828 -105E9B828:lI101|H105E9B8E8 -105E9B8E8:lI114|H105E9B9B8 -105E9B9B8:lI115|H105E9BA98 -105E9BA98:lI47|H105E9BB88 -105E9BB88:lI110|H105E9BC88 -105E9BC88:lI105|H105E9BD98 -105E9BD98:lI99|H105E9BEB8 -105E9BEB8:lI104|H105E9BFE8 -105E9BFE8:lI111|H105E9C128 -105E9C128:lI108|H105E9C268 -105E9C268:lI97|H105E9C3A8 -105E9C3A8:lI115|H105E9C4E8 -105E9C4E8:lI99|H105E9C628 -105E9C628:lI97|H105E9C768 -105E9C768:lI114|H105E9C8A8 -105E9C8A8:lI108|H105E9C9E8 -105E9C9E8:lI115|H105E9CB28 -105E9CB28:lI111|H105E9CC68 -105E9CC68:lI110|H105E9CDA8 -105E9CDA8:lI47|H105E9CEE8 -105E9CEE8:lI86|H105E9D028 -105E9D028:lI83|H105E9D168 -105E9D168:lI32|H105E9D2A8 -105E9D2A8:lI67|H105E9D3E8 -105E9D3E8:lI111|H105E9D528 -105E9D528:lI100|H105E9D668 -105E9D668:lI101|H105E9D7A8 -105E9D7A8:lI47|H105E9D8E8 -105E9D8E8:lI65|H105E9DA28 -105E9DA28:lI100|H105E9DB68 -105E9DB68:lI118|H105E9DCA8 -105E9DCA8:lI101|H105E9DDE8 -105E9DDE8:lI110|H105E9DF28 -105E9DF28:lI116|H105E9E068 -105E9E068:lI79|H105E9E1A8 -105E9E1A8:lI102|H105E9E2E8 -105E9E2E8:lI67|H105E9E428 -105E9E428:lI111|H105E9E568 -105E9E568:lI100|H105E9E6A8 -105E9E6A8:lI101|H105E9E7E8 -105E9E7E8:lI47|H105E9E928 -105E9E928:lI97|H105E9EA68 -105E9EA68:lI111|H105E9EBA8 -105E9EBA8:lI99|H105E9ECE8 -105E9ECE8:lI50|H105E9EE28 -105E9EE28:lI48|H105E9EF68 -105E9EF68:lI50|H105E9F0A8 -105E9F0A8:lI51|H105E9F1E8 -105E9F1E8:lI47|H105E9F328 -105E9F328:lI98|H105E9F468 -105E9F468:lI117|H105E9F5A8 -105E9F5A8:lI105|H105E9F6D8 -105E9F6D8:lI108|H105E9F808 -105E9F808:lI100|H105E9F938 -105E9F938:lI47|H105E9FA68 -105E9FA68:lI100|H105E9FB98 -105E9FB98:lI101|H105E9FCC8 -105E9FCC8:lI118|H105E9FDF8 -105E9FDF8:lI47|H105E9FF28 -105E9FF28:lI101|H105EA0058 -105EA0058:lI114|H105EA0188 -105EA0188:lI108|H105EA02B8 -105EA02B8:lI97|H105EA03E8 -105EA03E8:lI110|H105EA0518 -105EA0518:lI103|H105EA0648 -105EA0648:lI47|H105EA0778 -105EA0778:lI103|H105EA08A8 -105EA08A8:lI97|H105EA09D8 -105EA09D8:lI112|H105EA0B08 -105EA0B08:lI47|H105EA0C38 -105EA0C38:lI101|H105EA0D68 -105EA0D68:lI98|H105EA0E98 -105EA0E98:lI105|H105EA0FC8 -105EA0FC8:lI110|N -105E9B658:lH105E9B6E8|H105E9B6F8 -105E9B6E8:lI47|H105E9B788 -105E9B788:lI85|H105E9B838 -105E9B838:lI115|H105E9B8F8 -105E9B8F8:lI101|H105E9B9C8 -105E9B9C8:lI114|H105E9BAA8 -105E9BAA8:lI115|H105E9BB98 -105E9BB98:lI47|H105E9BC98 -105E9BC98:lI110|H105E9BDA8 -105E9BDA8:lI105|H105E9BEC8 -105E9BEC8:lI99|H105E9BFF8 -105E9BFF8:lI104|H105E9C138 -105E9C138:lI111|H105E9C278 -105E9C278:lI108|H105E9C3B8 -105E9C3B8:lI97|H105E9C4F8 -105E9C4F8:lI115|H105E9C638 -105E9C638:lI99|H105E9C778 -105E9C778:lI97|H105E9C8B8 -105E9C8B8:lI114|H105E9C9F8 -105E9C9F8:lI108|H105E9CB38 -105E9CB38:lI115|H105E9CC78 -105E9CC78:lI111|H105E9CDB8 -105E9CDB8:lI110|H105E9CEF8 -105E9CEF8:lI47|H105E9D038 -105E9D038:lI86|H105E9D178 -105E9D178:lI83|H105E9D2B8 -105E9D2B8:lI32|H105E9D3F8 -105E9D3F8:lI67|H105E9D538 -105E9D538:lI111|H105E9D678 -105E9D678:lI100|H105E9D7B8 -105E9D7B8:lI101|H105E9D8F8 -105E9D8F8:lI47|H105E9DA38 -105E9DA38:lI65|H105E9DB78 -105E9DB78:lI100|H105E9DCB8 -105E9DCB8:lI118|H105E9DDF8 -105E9DDF8:lI101|H105E9DF38 -105E9DF38:lI110|H105E9E078 -105E9E078:lI116|H105E9E1B8 -105E9E1B8:lI79|H105E9E2F8 -105E9E2F8:lI102|H105E9E438 -105E9E438:lI67|H105E9E578 -105E9E578:lI111|H105E9E6B8 -105E9E6B8:lI100|H105E9E7F8 -105E9E7F8:lI101|H105E9E938 -105E9E938:lI47|H105E9EA78 -105E9EA78:lI97|H105E9EBB8 -105E9EBB8:lI111|H105E9ECF8 -105E9ECF8:lI99|H105E9EE38 -105E9EE38:lI50|H105E9EF78 -105E9EF78:lI48|H105E9F0B8 -105E9F0B8:lI50|H105E9F1F8 -105E9F1F8:lI51|H105E9F338 -105E9F338:lI47|H105E9F478 -105E9F478:lI98|H105E9F5B8 -105E9F5B8:lI117|H105E9F6E8 -105E9F6E8:lI105|H105E9F818 -105E9F818:lI108|H105E9F948 -105E9F948:lI100|H105E9FA78 -105E9FA78:lI47|H105E9FBA8 -105E9FBA8:lI100|H105E9FCD8 -105E9FCD8:lI101|H105E9FE08 -105E9FE08:lI118|H105E9FF38 -105E9FF38:lI47|H105EA0068 -105EA0068:lI101|H105EA0198 -105EA0198:lI114|H105EA02C8 -105EA02C8:lI108|H105EA03F8 -105EA03F8:lI97|H105EA0528 -105EA0528:lI110|H105EA0658 -105EA0658:lI103|H105EA0788 -105EA0788:lI47|H105EA08B8 -105EA08B8:lI103|H105EA09E8 -105EA09E8:lI108|H105EA0B18 -105EA0B18:lI101|H105EA0C48 -105EA0C48:lI97|H105EA0D78 -105EA0D78:lI109|H105EA0EA8 -105EA0EA8:lI95|H105EA0FD8 -105EA0FD8:lI111|H105EA10D8 -105EA10D8:lI116|H105EA11D8 -105EA11D8:lI112|H105EA12C8 -105EA12C8:lI47|H105EA13A8 -105EA13A8:lI101|H105EA1488 -105EA1488:lI98|H105EA1558 -105EA1558:lI105|H105EA1608 -105EA1608:lI110|N -105E9B6F8:lH105E9B798|H105E9B7A8 -105E9B798:lI47|H105E9B848 -105E9B848:lI85|H105E9B908 -105E9B908:lI115|H105E9B9D8 -105E9B9D8:lI101|H105E9BAB8 -105E9BAB8:lI114|H105E9BBA8 -105E9BBA8:lI115|H105E9BCA8 -105E9BCA8:lI47|H105E9BDB8 -105E9BDB8:lI110|H105E9BED8 -105E9BED8:lI105|H105E9C008 -105E9C008:lI99|H105E9C148 -105E9C148:lI104|H105E9C288 -105E9C288:lI111|H105E9C3C8 -105E9C3C8:lI108|H105E9C508 -105E9C508:lI97|H105E9C648 -105E9C648:lI115|H105E9C788 -105E9C788:lI99|H105E9C8C8 -105E9C8C8:lI97|H105E9CA08 -105E9CA08:lI114|H105E9CB48 -105E9CB48:lI108|H105E9CC88 -105E9CC88:lI115|H105E9CDC8 -105E9CDC8:lI111|H105E9CF08 -105E9CF08:lI110|H105E9D048 -105E9D048:lI47|H105E9D188 -105E9D188:lI86|H105E9D2C8 -105E9D2C8:lI83|H105E9D408 -105E9D408:lI32|H105E9D548 -105E9D548:lI67|H105E9D688 -105E9D688:lI111|H105E9D7C8 -105E9D7C8:lI100|H105E9D908 -105E9D908:lI101|H105E9DA48 -105E9DA48:lI47|H105E9DB88 -105E9DB88:lI65|H105E9DCC8 -105E9DCC8:lI100|H105E9DE08 -105E9DE08:lI118|H105E9DF48 -105E9DF48:lI101|H105E9E088 -105E9E088:lI110|H105E9E1C8 -105E9E1C8:lI116|H105E9E308 -105E9E308:lI79|H105E9E448 -105E9E448:lI102|H105E9E588 -105E9E588:lI67|H105E9E6C8 -105E9E6C8:lI111|H105E9E808 -105E9E808:lI100|H105E9E948 -105E9E948:lI101|H105E9EA88 -105E9EA88:lI47|H105E9EBC8 -105E9EBC8:lI97|H105E9ED08 -105E9ED08:lI111|H105E9EE48 -105E9EE48:lI99|H105E9EF88 -105E9EF88:lI50|H105E9F0C8 -105E9F0C8:lI48|H105E9F208 -105E9F208:lI50|H105E9F348 -105E9F348:lI51|H105E9F488 -105E9F488:lI47|H105E9F5C8 -105E9F5C8:lI98|H105E9F6F8 -105E9F6F8:lI117|H105E9F828 -105E9F828:lI105|H105E9F958 -105E9F958:lI108|H105E9FA88 -105E9FA88:lI100|H105E9FBB8 -105E9FBB8:lI47|H105E9FCE8 -105E9FCE8:lI100|H105E9FE18 -105E9FE18:lI101|H105E9FF48 -105E9FF48:lI118|H105EA0078 -105EA0078:lI47|H105EA01A8 -105EA01A8:lI101|H105EA02D8 -105EA02D8:lI114|H105EA0408 -105EA0408:lI108|H105EA0538 -105EA0538:lI97|H105EA0668 -105EA0668:lI110|H105EA0798 -105EA0798:lI103|H105EA08C8 -105EA08C8:lI47|H105EA09F8 -105EA09F8:lI103|H105EA0B28 -105EA0B28:lI108|H105EA0C58 -105EA0C58:lI101|H105EA0D88 -105EA0D88:lI97|H105EA0EB8 -105EA0EB8:lI109|H105EA0FE8 -105EA0FE8:lI95|H105EA10E8 -105EA10E8:lI99|H105EA11E8 -105EA11E8:lI111|H105EA12D8 -105EA12D8:lI109|H105EA13B8 -105EA13B8:lI109|H105EA1498 -105EA1498:lI117|H105EA1568 -105EA1568:lI110|H105EA1618 -105EA1618:lI105|H105EA16B8 -105EA16B8:lI116|H105EA1758 -105EA1758:lI121|H105EA17D8 -105EA17D8:lI95|H105EA1858 -105EA1858:lI99|H105EA18B8 -105EA18B8:lI111|H105EA1908 -105EA1908:lI108|H105EA1958 -105EA1958:lI111|H105EA1978 -105EA1978:lI117|H105EA1998 -105EA1998:lI114|H105EA19B8 -105EA19B8:lI47|H105EA19D8 -105EA19D8:lI101|H105EA19E8 -105EA19E8:lI98|H105EA19F8 -105EA19F8:lI105|H105EA1A08 -105EA1A08:lI110|N -105E9B7A8:lH105E9B858|H105E9B868 -105E9B858:lI47|H105E9B918 -105E9B918:lI85|H105E9B9E8 -105E9B9E8:lI115|H105E9BAC8 -105E9BAC8:lI101|H105E9BBB8 -105E9BBB8:lI114|H105E9BCB8 -105E9BCB8:lI115|H105E9BDC8 -105E9BDC8:lI47|H105E9BEE8 -105E9BEE8:lI110|H105E9C018 -105E9C018:lI105|H105E9C158 -105E9C158:lI99|H105E9C298 -105E9C298:lI104|H105E9C3D8 -105E9C3D8:lI111|H105E9C518 -105E9C518:lI108|H105E9C658 -105E9C658:lI97|H105E9C798 -105E9C798:lI115|H105E9C8D8 -105E9C8D8:lI99|H105E9CA18 -105E9CA18:lI97|H105E9CB58 -105E9CB58:lI114|H105E9CC98 -105E9CC98:lI108|H105E9CDD8 -105E9CDD8:lI115|H105E9CF18 -105E9CF18:lI111|H105E9D058 -105E9D058:lI110|H105E9D198 -105E9D198:lI47|H105E9D2D8 -105E9D2D8:lI86|H105E9D418 -105E9D418:lI83|H105E9D558 -105E9D558:lI32|H105E9D698 -105E9D698:lI67|H105E9D7D8 -105E9D7D8:lI111|H105E9D918 -105E9D918:lI100|H105E9DA58 -105E9DA58:lI101|H105E9DB98 -105E9DB98:lI47|H105E9DCD8 -105E9DCD8:lI65|H105E9DE18 -105E9DE18:lI100|H105E9DF58 -105E9DF58:lI118|H105E9E098 -105E9E098:lI101|H105E9E1D8 -105E9E1D8:lI110|H105E9E318 -105E9E318:lI116|H105E9E458 -105E9E458:lI79|H105E9E598 -105E9E598:lI102|H105E9E6D8 -105E9E6D8:lI67|H105E9E818 -105E9E818:lI111|H105E9E958 -105E9E958:lI100|H105E9EA98 -105E9EA98:lI101|H105E9EBD8 -105E9EBD8:lI47|H105E9ED18 -105E9ED18:lI97|H105E9EE58 -105E9EE58:lI111|H105E9EF98 -105E9EF98:lI99|H105E9F0D8 -105E9F0D8:lI50|H105E9F218 -105E9F218:lI48|H105E9F358 -105E9F358:lI50|H105E9F498 -105E9F498:lI51|H105E9F5D8 -105E9F5D8:lI47|H105E9F708 -105E9F708:lI98|H105E9F838 -105E9F838:lI117|H105E9F968 -105E9F968:lI105|H105E9FA98 -105E9FA98:lI108|H105E9FBC8 -105E9FBC8:lI100|H105E9FCF8 -105E9FCF8:lI47|H105E9FE28 -105E9FE28:lI100|H105E9FF58 -105E9FF58:lI101|H105EA0088 -105EA0088:lI118|H105EA01B8 -105EA01B8:lI47|H105EA02E8 -105EA02E8:lI101|H105EA0418 -105EA0418:lI114|H105EA0548 -105EA0548:lI108|H105EA0678 -105EA0678:lI97|H105EA07A8 -105EA07A8:lI110|H105EA08D8 -105EA08D8:lI103|H105EA0A08 -105EA0A08:lI47|H105EA0B38 -105EA0B38:lI103|H105EA0C68 -105EA0C68:lI108|H105EA0D98 -105EA0D98:lI101|H105EA0EC8 -105EA0EC8:lI97|H105EA0FF8 -105EA0FF8:lI109|H105EA10F8 -105EA10F8:lI95|H105EA11F8 -105EA11F8:lI104|H105EA12E8 -105EA12E8:lI116|H105EA13C8 -105EA13C8:lI116|H105EA14A8 -105EA14A8:lI112|H105EA1578 -105EA1578:lI99|H105EA1628 -105EA1628:lI47|H105EA16C8 -105EA16C8:lI101|H105EA1768 -105EA1768:lI98|H105EA17E8 -105EA17E8:lI105|H105EA1868 -105EA1868:lI110|N -105E9B868:lH105E9B928|H105E9B938 -105E9B928:lI47|H105E9B9F8 -105E9B9F8:lI85|H105E9BAD8 -105E9BAD8:lI115|H105E9BBC8 -105E9BBC8:lI101|H105E9BCC8 -105E9BCC8:lI114|H105E9BDD8 -105E9BDD8:lI115|H105E9BEF8 -105E9BEF8:lI47|H105E9C028 -105E9C028:lI110|H105E9C168 -105E9C168:lI105|H105E9C2A8 -105E9C2A8:lI99|H105E9C3E8 -105E9C3E8:lI104|H105E9C528 -105E9C528:lI111|H105E9C668 -105E9C668:lI108|H105E9C7A8 -105E9C7A8:lI97|H105E9C8E8 -105E9C8E8:lI115|H105E9CA28 -105E9CA28:lI99|H105E9CB68 -105E9CB68:lI97|H105E9CCA8 -105E9CCA8:lI114|H105E9CDE8 -105E9CDE8:lI108|H105E9CF28 -105E9CF28:lI115|H105E9D068 -105E9D068:lI111|H105E9D1A8 -105E9D1A8:lI110|H105E9D2E8 -105E9D2E8:lI47|H105E9D428 -105E9D428:lI86|H105E9D568 -105E9D568:lI83|H105E9D6A8 -105E9D6A8:lI32|H105E9D7E8 -105E9D7E8:lI67|H105E9D928 -105E9D928:lI111|H105E9DA68 -105E9DA68:lI100|H105E9DBA8 -105E9DBA8:lI101|H105E9DCE8 -105E9DCE8:lI47|H105E9DE28 -105E9DE28:lI65|H105E9DF68 -105E9DF68:lI100|H105E9E0A8 -105E9E0A8:lI118|H105E9E1E8 -105E9E1E8:lI101|H105E9E328 -105E9E328:lI110|H105E9E468 -105E9E468:lI116|H105E9E5A8 -105E9E5A8:lI79|H105E9E6E8 -105E9E6E8:lI102|H105E9E828 -105E9E828:lI67|H105E9E968 -105E9E968:lI111|H105E9EAA8 -105E9EAA8:lI100|H105E9EBE8 -105E9EBE8:lI101|H105E9ED28 -105E9ED28:lI47|H105E9EE68 -105E9EE68:lI97|H105E9EFA8 -105E9EFA8:lI111|H105E9F0E8 -105E9F0E8:lI99|H105E9F228 -105E9F228:lI50|H105E9F368 -105E9F368:lI48|H105E9F4A8 -105E9F4A8:lI50|H105E9F5E8 -105E9F5E8:lI51|H105E9F718 -105E9F718:lI47|H105E9F848 -105E9F848:lI98|H105E9F978 -105E9F978:lI117|H105E9FAA8 -105E9FAA8:lI105|H105E9FBD8 -105E9FBD8:lI108|H105E9FD08 -105E9FD08:lI100|H105E9FE38 -105E9FE38:lI47|H105E9FF68 -105E9FF68:lI100|H105EA0098 -105EA0098:lI101|H105EA01C8 -105EA01C8:lI118|H105EA02F8 -105EA02F8:lI47|H105EA0428 -105EA0428:lI101|H105EA0558 -105EA0558:lI114|H105EA0688 -105EA0688:lI108|H105EA07B8 -105EA07B8:lI97|H105EA08E8 -105EA08E8:lI110|H105EA0A18 -105EA0A18:lI103|H105EA0B48 -105EA0B48:lI47|H105EA0C78 -105EA0C78:lI103|H105EA0DA8 -105EA0DA8:lI108|H105EA0ED8 -105EA0ED8:lI101|H105EA1008 -105EA1008:lI97|H105EA1108 -105EA1108:lI109|H105EA1208 -105EA1208:lI95|H105EA12F8 -105EA12F8:lI115|H105EA13D8 -105EA13D8:lI116|H105EA14B8 -105EA14B8:lI100|H105EA1588 -105EA1588:lI108|H105EA1638 -105EA1638:lI105|H105EA16D8 -105EA16D8:lI98|H105EA1778 -105EA1778:lI47|H105EA17F8 -105EA17F8:lI101|H105EA1878 -105EA1878:lI98|H105EA18C8 -105EA18C8:lI105|H105EA1918 -105EA1918:lI110|N -105E9B938:lH105E9BA08|H105E9BA18 -105E9BA08:lI47|H105E9BAE8 -105E9BAE8:lI85|H105E9BBD8 -105E9BBD8:lI115|H105E9BCD8 -105E9BCD8:lI101|H105E9BDE8 -105E9BDE8:lI114|H105E9BF08 -105E9BF08:lI115|H105E9C038 -105E9C038:lI47|H105E9C178 -105E9C178:lI110|H105E9C2B8 -105E9C2B8:lI105|H105E9C3F8 -105E9C3F8:lI99|H105E9C538 -105E9C538:lI104|H105E9C678 -105E9C678:lI111|H105E9C7B8 -105E9C7B8:lI108|H105E9C8F8 -105E9C8F8:lI97|H105E9CA38 -105E9CA38:lI115|H105E9CB78 -105E9CB78:lI99|H105E9CCB8 -105E9CCB8:lI97|H105E9CDF8 -105E9CDF8:lI114|H105E9CF38 -105E9CF38:lI108|H105E9D078 -105E9D078:lI115|H105E9D1B8 -105E9D1B8:lI111|H105E9D2F8 -105E9D2F8:lI110|H105E9D438 -105E9D438:lI47|H105E9D578 -105E9D578:lI86|H105E9D6B8 -105E9D6B8:lI83|H105E9D7F8 -105E9D7F8:lI32|H105E9D938 -105E9D938:lI67|H105E9DA78 -105E9DA78:lI111|H105E9DBB8 -105E9DBB8:lI100|H105E9DCF8 -105E9DCF8:lI101|H105E9DE38 -105E9DE38:lI47|H105E9DF78 -105E9DF78:lI65|H105E9E0B8 -105E9E0B8:lI100|H105E9E1F8 -105E9E1F8:lI118|H105E9E338 -105E9E338:lI101|H105E9E478 -105E9E478:lI110|H105E9E5B8 -105E9E5B8:lI116|H105E9E6F8 -105E9E6F8:lI79|H105E9E838 -105E9E838:lI102|H105E9E978 -105E9E978:lI67|H105E9EAB8 -105E9EAB8:lI111|H105E9EBF8 -105E9EBF8:lI100|H105E9ED38 -105E9ED38:lI101|H105E9EE78 -105E9EE78:lI47|H105E9EFB8 -105E9EFB8:lI97|H105E9F0F8 -105E9F0F8:lI111|H105E9F238 -105E9F238:lI99|H105E9F378 -105E9F378:lI50|H105E9F4B8 -105E9F4B8:lI48|H105E9F5F8 -105E9F5F8:lI50|H105E9F728 -105E9F728:lI51|H105E9F858 -105E9F858:lI47|H105E9F988 -105E9F988:lI98|H105E9FAB8 -105E9FAB8:lI117|H105E9FBE8 -105E9FBE8:lI105|H105E9FD18 -105E9FD18:lI108|H105E9FE48 -105E9FE48:lI100|H105E9FF78 -105E9FF78:lI47|H105EA00A8 -105EA00A8:lI100|H105EA01D8 -105EA01D8:lI101|H105EA0308 -105EA0308:lI118|H105EA0438 -105EA0438:lI47|H105EA0568 -105EA0568:lI101|H105EA0698 -105EA0698:lI114|H105EA07C8 -105EA07C8:lI108|H105EA08F8 -105EA08F8:lI97|H105EA0A28 -105EA0A28:lI110|H105EA0B58 -105EA0B58:lI103|H105EA0C88 -105EA0C88:lI47|H105EA0DB8 -105EA0DB8:lI103|H105EA0EE8 -105EA0EE8:lI108|H105EA1018 -105EA1018:lI101|H105EA1118 -105EA1118:lI101|H105EA1218 -105EA1218:lI117|H105EA1308 -105EA1308:lI110|H105EA13E8 -105EA13E8:lI105|H105EA14C8 -105EA14C8:lI116|H105EA1598 -105EA1598:lI47|H105EA1648 -105EA1648:lI101|H105EA16E8 -105EA16E8:lI98|H105EA1788 -105EA1788:lI105|H105EA1808 -105EA1808:lI110|N -105E9BA18:lH105E9BAF8|H105E9BB08 -105E9BAF8:lI47|H105E9BBE8 -105E9BBE8:lI85|H105E9BCE8 -105E9BCE8:lI115|H105E9BDF8 -105E9BDF8:lI101|H105E9BF18 -105E9BF18:lI114|H105E9C048 -105E9C048:lI115|H105E9C188 -105E9C188:lI47|H105E9C2C8 -105E9C2C8:lI110|H105E9C408 -105E9C408:lI105|H105E9C548 -105E9C548:lI99|H105E9C688 -105E9C688:lI104|H105E9C7C8 -105E9C7C8:lI111|H105E9C908 -105E9C908:lI108|H105E9CA48 -105E9CA48:lI97|H105E9CB88 -105E9CB88:lI115|H105E9CCC8 -105E9CCC8:lI99|H105E9CE08 -105E9CE08:lI97|H105E9CF48 -105E9CF48:lI114|H105E9D088 -105E9D088:lI108|H105E9D1C8 -105E9D1C8:lI115|H105E9D308 -105E9D308:lI111|H105E9D448 -105E9D448:lI110|H105E9D588 -105E9D588:lI47|H105E9D6C8 -105E9D6C8:lI86|H105E9D808 -105E9D808:lI83|H105E9D948 -105E9D948:lI32|H105E9DA88 -105E9DA88:lI67|H105E9DBC8 -105E9DBC8:lI111|H105E9DD08 -105E9DD08:lI100|H105E9DE48 -105E9DE48:lI101|H105E9DF88 -105E9DF88:lI47|H105E9E0C8 -105E9E0C8:lI65|H105E9E208 -105E9E208:lI100|H105E9E348 -105E9E348:lI118|H105E9E488 -105E9E488:lI101|H105E9E5C8 -105E9E5C8:lI110|H105E9E708 -105E9E708:lI116|H105E9E848 -105E9E848:lI79|H105E9E988 -105E9E988:lI102|H105E9EAC8 -105E9EAC8:lI67|H105E9EC08 -105E9EC08:lI111|H105E9ED48 -105E9ED48:lI100|H105E9EE88 -105E9EE88:lI101|H105E9EFC8 -105E9EFC8:lI47|H105E9F108 -105E9F108:lI97|H105E9F248 -105E9F248:lI111|H105E9F388 -105E9F388:lI99|H105E9F4C8 -105E9F4C8:lI50|H105E9F608 -105E9F608:lI48|H105E9F738 -105E9F738:lI50|H105E9F868 -105E9F868:lI51|H105E9F998 -105E9F998:lI47|H105E9FAC8 -105E9FAC8:lI98|H105E9FBF8 -105E9FBF8:lI117|H105E9FD28 -105E9FD28:lI105|H105E9FE58 -105E9FE58:lI108|H105E9FF88 -105E9FF88:lI100|H105EA00B8 -105EA00B8:lI47|H105EA01E8 -105EA01E8:lI100|H105EA0318 -105EA0318:lI101|H105EA0448 -105EA0448:lI118|H105EA0578 -105EA0578:lI47|H105EA06A8 -105EA06A8:lI101|H105EA07D8 -105EA07D8:lI114|H105EA0908 -105EA0908:lI108|H105EA0A38 -105EA0A38:lI97|H105EA0B68 -105EA0B68:lI110|H105EA0C98 -105EA0C98:lI103|H105EA0DC8 -105EA0DC8:lI47|H105EA0EF8 -105EA0EF8:lI103|H105EA1028 -105EA1028:lI108|H105EA1128 -105EA1128:lI101|H105EA1228 -105EA1228:lI97|H105EA1318 -105EA1318:lI109|H105EA13F8 -105EA13F8:lI46|H105EA14D8 -105EA14D8:lI108|H105EA15A8 -105EA15A8:lI111|H105EA1658 -105EA1658:lI99|H105EA16F8 -105EA16F8:lI107|H105EA1798 -105EA1798:lI47|H105EA1818 -105EA1818:lI101|H105EA1888 -105EA1888:lI98|H105EA18D8 -105EA18D8:lI105|H105EA1928 -105EA1928:lI110|N -105E9BB08:lH105E9BBF8|H105E9BC08 -105E9BBF8:lI47|H105E9BCF8 -105E9BCF8:lI85|H105E9BE08 -105E9BE08:lI115|H105E9BF28 -105E9BF28:lI101|H105E9C058 -105E9C058:lI114|H105E9C198 -105E9C198:lI115|H105E9C2D8 -105E9C2D8:lI47|H105E9C418 -105E9C418:lI110|H105E9C558 -105E9C558:lI105|H105E9C698 -105E9C698:lI99|H105E9C7D8 -105E9C7D8:lI104|H105E9C918 -105E9C918:lI111|H105E9CA58 -105E9CA58:lI108|H105E9CB98 -105E9CB98:lI97|H105E9CCD8 -105E9CCD8:lI115|H105E9CE18 -105E9CE18:lI99|H105E9CF58 -105E9CF58:lI97|H105E9D098 -105E9D098:lI114|H105E9D1D8 -105E9D1D8:lI108|H105E9D318 -105E9D318:lI115|H105E9D458 -105E9D458:lI111|H105E9D598 -105E9D598:lI110|H105E9D6D8 -105E9D6D8:lI47|H105E9D818 -105E9D818:lI86|H105E9D958 -105E9D958:lI83|H105E9DA98 -105E9DA98:lI32|H105E9DBD8 -105E9DBD8:lI67|H105E9DD18 -105E9DD18:lI111|H105E9DE58 -105E9DE58:lI100|H105E9DF98 -105E9DF98:lI101|H105E9E0D8 -105E9E0D8:lI47|H105E9E218 -105E9E218:lI65|H105E9E358 -105E9E358:lI100|H105E9E498 -105E9E498:lI118|H105E9E5D8 -105E9E5D8:lI101|H105E9E718 -105E9E718:lI110|H105E9E858 -105E9E858:lI116|H105E9E998 -105E9E998:lI79|H105E9EAD8 -105E9EAD8:lI102|H105E9EC18 -105E9EC18:lI67|H105E9ED58 -105E9ED58:lI111|H105E9EE98 -105E9EE98:lI100|H105E9EFD8 -105E9EFD8:lI101|H105E9F118 -105E9F118:lI47|H105E9F258 -105E9F258:lI97|H105E9F398 -105E9F398:lI111|H105E9F4D8 -105E9F4D8:lI99|H105E9F618 -105E9F618:lI50|H105E9F748 -105E9F748:lI48|H105E9F878 -105E9F878:lI50|H105E9F9A8 -105E9F9A8:lI51|H105E9FAD8 -105E9FAD8:lI47|H105E9FC08 -105E9FC08:lI98|H105E9FD38 -105E9FD38:lI117|H105E9FE68 -105E9FE68:lI105|H105E9FF98 -105E9FF98:lI108|H105EA00C8 -105EA00C8:lI100|H105EA01F8 -105EA01F8:lI47|H105EA0328 -105EA0328:lI100|H105EA0458 -105EA0458:lI101|H105EA0588 -105EA0588:lI118|H105EA06B8 -105EA06B8:lI47|H105EA07E8 -105EA07E8:lI101|H105EA0918 -105EA0918:lI114|H105EA0A48 -105EA0A48:lI108|H105EA0B78 -105EA0B78:lI97|H105EA0CA8 -105EA0CA8:lI110|H105EA0DD8 -105EA0DD8:lI103|H105EA0F08 -105EA0F08:lI47|H105EA1038 -105EA1038:lI115|H105EA1138 -105EA1138:lI110|H105EA1238 -105EA1238:lI97|H105EA1328 -105EA1328:lI103|H105EA1408 -105EA1408:lI47|H105EA14E8 -105EA14E8:lI101|H105EA15B8 -105EA15B8:lI98|H105EA1668 -105EA1668:lI105|H105EA1708 -105EA1708:lI110|N -105E9BC08:lH105E9BD08|H105E9BD18 -105E9BD08:lI47|H105E9BE18 -105E9BE18:lI85|H105E9BF38 -105E9BF38:lI115|H105E9C068 -105E9C068:lI101|H105E9C1A8 -105E9C1A8:lI114|H105E9C2E8 -105E9C2E8:lI115|H105E9C428 -105E9C428:lI47|H105E9C568 -105E9C568:lI110|H105E9C6A8 -105E9C6A8:lI105|H105E9C7E8 -105E9C7E8:lI99|H105E9C928 -105E9C928:lI104|H105E9CA68 -105E9CA68:lI111|H105E9CBA8 -105E9CBA8:lI108|H105E9CCE8 -105E9CCE8:lI97|H105E9CE28 -105E9CE28:lI115|H105E9CF68 -105E9CF68:lI99|H105E9D0A8 -105E9D0A8:lI97|H105E9D1E8 -105E9D1E8:lI114|H105E9D328 -105E9D328:lI108|H105E9D468 -105E9D468:lI115|H105E9D5A8 -105E9D5A8:lI111|H105E9D6E8 -105E9D6E8:lI110|H105E9D828 -105E9D828:lI47|H105E9D968 -105E9D968:lI86|H105E9DAA8 -105E9DAA8:lI83|H105E9DBE8 -105E9DBE8:lI32|H105E9DD28 -105E9DD28:lI67|H105E9DE68 -105E9DE68:lI111|H105E9DFA8 -105E9DFA8:lI100|H105E9E0E8 -105E9E0E8:lI101|H105E9E228 -105E9E228:lI47|H105E9E368 -105E9E368:lI65|H105E9E4A8 -105E9E4A8:lI100|H105E9E5E8 -105E9E5E8:lI118|H105E9E728 -105E9E728:lI101|H105E9E868 -105E9E868:lI110|H105E9E9A8 -105E9E9A8:lI116|H105E9EAE8 -105E9EAE8:lI79|H105E9EC28 -105E9EC28:lI102|H105E9ED68 -105E9ED68:lI67|H105E9EEA8 -105E9EEA8:lI111|H105E9EFE8 -105E9EFE8:lI100|H105E9F128 -105E9F128:lI101|H105E9F268 -105E9F268:lI47|H105E9F3A8 -105E9F3A8:lI97|H105E9F4E8 -105E9F4E8:lI111|H105E9F628 -105E9F628:lI99|H105E9F758 -105E9F758:lI50|H105E9F888 -105E9F888:lI48|H105E9F9B8 -105E9F9B8:lI50|H105E9FAE8 -105E9FAE8:lI51|H105E9FC18 -105E9FC18:lI47|H105E9FD48 -105E9FD48:lI98|H105E9FE78 -105E9FE78:lI117|H105E9FFA8 -105E9FFA8:lI105|H105EA00D8 -105EA00D8:lI108|H105EA0208 -105EA0208:lI100|H105EA0338 -105EA0338:lI47|H105EA0468 -105EA0468:lI100|H105EA0598 -105EA0598:lI101|H105EA06C8 -105EA06C8:lI118|H105EA07F8 -105EA07F8:lI47|H105EA0928 -105EA0928:lI101|H105EA0A58 -105EA0A58:lI114|H105EA0B88 -105EA0B88:lI108|H105EA0CB8 -105EA0CB8:lI97|H105EA0DE8 -105EA0DE8:lI110|H105EA0F18 -105EA0F18:lI103|H105EA1048 -105EA1048:lI47|H105EA1148 -105EA1148:lI116|H105EA1248 -105EA1248:lI111|H105EA1338 -105EA1338:lI109|H105EA1418 -105EA1418:lI47|H105EA14F8 -105EA14F8:lI101|H105EA15C8 -105EA15C8:lI98|H105EA1678 -105EA1678:lI105|H105EA1718 -105EA1718:lI110|N -105E9BD18:lH105E9BE28|H105E9BE38 -105E9BE28:lI47|H105E9BF48 -105E9BF48:lI85|H105E9C078 -105E9C078:lI115|H105E9C1B8 -105E9C1B8:lI101|H105E9C2F8 -105E9C2F8:lI114|H105E9C438 -105E9C438:lI115|H105E9C578 -105E9C578:lI47|H105E9C6B8 -105E9C6B8:lI110|H105E9C7F8 -105E9C7F8:lI105|H105E9C938 -105E9C938:lI99|H105E9CA78 -105E9CA78:lI104|H105E9CBB8 -105E9CBB8:lI111|H105E9CCF8 -105E9CCF8:lI108|H105E9CE38 -105E9CE38:lI97|H105E9CF78 -105E9CF78:lI115|H105E9D0B8 -105E9D0B8:lI99|H105E9D1F8 -105E9D1F8:lI97|H105E9D338 -105E9D338:lI114|H105E9D478 -105E9D478:lI108|H105E9D5B8 -105E9D5B8:lI115|H105E9D6F8 -105E9D6F8:lI111|H105E9D838 -105E9D838:lI110|H105E9D978 -105E9D978:lI47|H105E9DAB8 -105E9DAB8:lI86|H105E9DBF8 -105E9DBF8:lI83|H105E9DD38 -105E9DD38:lI32|H105E9DE78 -105E9DE78:lI67|H105E9DFB8 -105E9DFB8:lI111|H105E9E0F8 -105E9E0F8:lI100|H105E9E238 -105E9E238:lI101|H105E9E378 -105E9E378:lI47|H105E9E4B8 -105E9E4B8:lI65|H105E9E5F8 -105E9E5F8:lI100|H105E9E738 -105E9E738:lI118|H105E9E878 -105E9E878:lI101|H105E9E9B8 -105E9E9B8:lI110|H105E9EAF8 -105E9EAF8:lI116|H105E9EC38 -105E9EC38:lI79|H105E9ED78 -105E9ED78:lI102|H105E9EEB8 -105E9EEB8:lI67|H105E9EFF8 -105E9EFF8:lI111|H105E9F138 -105E9F138:lI100|H105E9F278 -105E9F278:lI101|H105E9F3B8 -105E9F3B8:lI47|H105E9F4F8 -105E9F4F8:lI97|H105E9F638 -105E9F638:lI111|H105E9F768 -105E9F768:lI99|H105E9F898 -105E9F898:lI50|H105E9F9C8 -105E9F9C8:lI48|H105E9FAF8 -105E9FAF8:lI50|H105E9FC28 -105E9FC28:lI51|H105E9FD58 -105E9FD58:lI47|H105E9FE88 -105E9FE88:lI98|H105E9FFB8 -105E9FFB8:lI117|H105EA00E8 -105EA00E8:lI105|H105EA0218 -105EA0218:lI108|H105EA0348 -105EA0348:lI100|H105EA0478 -105EA0478:lI47|H105EA05A8 -105EA05A8:lI100|H105EA06D8 -105EA06D8:lI101|H105EA0808 -105EA0808:lI118|H105EA0938 -105EA0938:lI47|H105EA0A68 -105EA0A68:lI101|H105EA0B98 -105EA0B98:lI114|H105EA0CC8 -105EA0CC8:lI108|H105EA0DF8 -105EA0DF8:lI97|H105EA0F28 -105EA0F28:lI110|H105EA1058 -105EA1058:lI103|H105EA1158 -105EA1158:lI47|H105EA1258 -105EA1258:lI97|H105EA1348 -105EA1348:lI111|H105EA1428 -105EA1428:lI99|H105EA1508 -105EA1508:lI50|H105EA15D8 -105EA15D8:lI48|H105EA1688 -105EA1688:lI50|H105EA1728 -105EA1728:lI51|H105EA17A8 -105EA17A8:lI47|H105EA1828 -105EA1828:lI101|H105EA1898 -105EA1898:lI98|H105EA18E8 -105EA18E8:lI105|H105EA1938 -105EA1938:lI110|N -105E9BE38:lH105E9BF58|H105E9BF68 -105E9BF58:lI47|H105E9C088 -105E9C088:lI85|H105E9C1C8 -105E9C1C8:lI115|H105E9C308 -105E9C308:lI101|H105E9C448 -105E9C448:lI114|H105E9C588 -105E9C588:lI115|H105E9C6C8 -105E9C6C8:lI47|H105E9C808 -105E9C808:lI110|H105E9C948 -105E9C948:lI105|H105E9CA88 -105E9CA88:lI99|H105E9CBC8 -105E9CBC8:lI104|H105E9CD08 -105E9CD08:lI111|H105E9CE48 -105E9CE48:lI108|H105E9CF88 -105E9CF88:lI97|H105E9D0C8 -105E9D0C8:lI115|H105E9D208 -105E9D208:lI99|H105E9D348 -105E9D348:lI97|H105E9D488 -105E9D488:lI114|H105E9D5C8 -105E9D5C8:lI108|H105E9D708 -105E9D708:lI115|H105E9D848 -105E9D848:lI111|H105E9D988 -105E9D988:lI110|H105E9DAC8 -105E9DAC8:lI47|H105E9DC08 -105E9DC08:lI86|H105E9DD48 -105E9DD48:lI83|H105E9DE88 -105E9DE88:lI32|H105E9DFC8 -105E9DFC8:lI67|H105E9E108 -105E9E108:lI111|H105E9E248 -105E9E248:lI100|H105E9E388 -105E9E388:lI101|H105E9E4C8 -105E9E4C8:lI47|H105E9E608 -105E9E608:lI65|H105E9E748 -105E9E748:lI100|H105E9E888 -105E9E888:lI118|H105E9E9C8 -105E9E9C8:lI101|H105E9EB08 -105E9EB08:lI110|H105E9EC48 -105E9EC48:lI116|H105E9ED88 -105E9ED88:lI79|H105E9EEC8 -105E9EEC8:lI102|H105E9F008 -105E9F008:lI67|H105E9F148 -105E9F148:lI111|H105E9F288 -105E9F288:lI100|H105E9F3C8 -105E9F3C8:lI101|H105E9F508 -105E9F508:lI47|H105E9F648 -105E9F648:lI97|H105E9F778 -105E9F778:lI111|H105E9F8A8 -105E9F8A8:lI99|H105E9F9D8 -105E9F9D8:lI50|H105E9FB08 -105E9FB08:lI48|H105E9FC38 -105E9FC38:lI50|H105E9FD68 -105E9FD68:lI51|H105E9FE98 -105E9FE98:lI47|H105E9FFC8 -105E9FFC8:lI98|H105EA00F8 -105EA00F8:lI117|H105EA0228 -105EA0228:lI105|H105EA0358 -105EA0358:lI108|H105EA0488 -105EA0488:lI100|H105EA05B8 -105EA05B8:lI47|H105EA06E8 -105EA06E8:lI100|H105EA0818 -105EA0818:lI101|H105EA0948 -105EA0948:lI118|H105EA0A78 -105EA0A78:lI47|H105EA0BA8 -105EA0BA8:lI101|H105EA0CD8 -105EA0CD8:lI114|H105EA0E08 -105EA0E08:lI108|H105EA0F38 -105EA0F38:lI97|H105EA1068 -105EA1068:lI110|H105EA1168 -105EA1168:lI103|H105EA1268 -105EA1268:lI47|H105EA1358 -105EA1358:lI115|H105EA1438 -105EA1438:lI105|H105EA1518 -105EA1518:lI109|H105EA15E8 -105EA15E8:lI112|H105EA1698 -105EA1698:lI108|H105EA1738 -105EA1738:lI105|H105EA17B8 -105EA17B8:lI102|H105EA1838 -105EA1838:lI105|H105EA18A8 -105EA18A8:lI108|H105EA18F8 -105EA18F8:lI101|H105EA1948 -105EA1948:lI47|H105EA1968 -105EA1968:lI101|H105EA1988 -105EA1988:lI98|H105EA19A8 -105EA19A8:lI105|H105EA19C8 -105EA19C8:lI110|N -105E9BF68:lH105E9C098|H105E9C0A8 -105E9C098:lI47|H105E9C1D8 -105E9C1D8:lI111|H105E9C318 -105E9C318:lI112|H105E9C458 -105E9C458:lI116|H105E9C598 -105E9C598:lI47|H105E9C6D8 -105E9C6D8:lI104|H105E9C818 -105E9C818:lI111|H105E9C958 -105E9C958:lI109|H105E9CA98 -105E9CA98:lI101|H105E9CBD8 -105E9CBD8:lI98|H105E9CD18 -105E9CD18:lI114|H105E9CE58 -105E9CE58:lI101|H105E9CF98 -105E9CF98:lI119|H105E9D0D8 -105E9D0D8:lI47|H105E9D218 -105E9D218:lI67|H105E9D358 -105E9D358:lI101|H105E9D498 -105E9D498:lI108|H105E9D5D8 -105E9D5D8:lI108|H105E9D718 -105E9D718:lI97|H105E9D858 -105E9D858:lI114|H105E9D998 -105E9D998:lI47|H105E9DAD8 -105E9DAD8:lI101|H105E9DC18 -105E9DC18:lI114|H105E9DD58 -105E9DD58:lI108|H105E9DE98 -105E9DE98:lI97|H105E9DFD8 -105E9DFD8:lI110|H105E9E118 -105E9E118:lI103|H105E9E258 -105E9E258:lI47|H105E9E398 -105E9E398:lI50|H105E9E4D8 -105E9E4D8:lI54|H105E9E618 -105E9E618:lI46|H105E9E758 -105E9E758:lI48|H105E9E898 -105E9E898:lI46|H105E9E9D8 -105E9E9D8:lI50|H105E9EB18 -105E9EB18:lI47|H105E9EC58 -105E9EC58:lI108|H105E9ED98 -105E9ED98:lI105|H105E9EED8 -105E9EED8:lI98|H105E9F018 -105E9F018:lI47|H105E9F158 -105E9F158:lI101|H105E9F298 -105E9F298:lI114|H105E9F3D8 -105E9F3D8:lI108|H105E9F518 -105E9F518:lI97|H105E9F658 -105E9F658:lI110|H105E9F788 -105E9F788:lI103|H105E9F8B8 -105E9F8B8:lI47|H105E9F9E8 -105E9F9E8:lI108|H105E9FB18 -105E9FB18:lI105|H105E9FC48 -105E9FC48:lI98|H105E9FD78 -105E9FD78:lI47|H105E9FEA8 -105E9FEA8:lI107|H105E9FFD8 -105E9FFD8:lI101|H105EA0108 -105EA0108:lI114|H105EA0238 -105EA0238:lI110|H105EA0368 -105EA0368:lI101|H105EA0498 -105EA0498:lI108|H105EA05C8 -105EA05C8:lI45|H105EA06F8 -105EA06F8:lI57|H105EA0828 -105EA0828:lI46|H105EA0958 -105EA0958:lI48|H105EA0A88 -105EA0A88:lI46|H105EA0BB8 -105EA0BB8:lI50|H105EA0CE8 -105EA0CE8:lI47|H105EA0E18 -105EA0E18:lI101|H105EA0F48 -105EA0F48:lI98|H105EA1078 -105EA1078:lI105|H105EA1178 -105EA1178:lI110|N -105E9C0A8:lH105E9C1E8|N -105E9C1E8:lI47|H105E9C328 -105E9C328:lI111|H105E9C468 -105E9C468:lI112|H105E9C5A8 -105E9C5A8:lI116|H105E9C6E8 -105E9C6E8:lI47|H105E9C828 -105E9C828:lI104|H105E9C968 -105E9C968:lI111|H105E9CAA8 -105E9CAA8:lI109|H105E9CBE8 -105E9CBE8:lI101|H105E9CD28 -105E9CD28:lI98|H105E9CE68 -105E9CE68:lI114|H105E9CFA8 -105E9CFA8:lI101|H105E9D0E8 -105E9D0E8:lI119|H105E9D228 -105E9D228:lI47|H105E9D368 -105E9D368:lI67|H105E9D4A8 -105E9D4A8:lI101|H105E9D5E8 -105E9D5E8:lI108|H105E9D728 -105E9D728:lI108|H105E9D868 -105E9D868:lI97|H105E9D9A8 -105E9D9A8:lI114|H105E9DAE8 -105E9DAE8:lI47|H105E9DC28 -105E9DC28:lI101|H105E9DD68 -105E9DD68:lI114|H105E9DEA8 -105E9DEA8:lI108|H105E9DFE8 -105E9DFE8:lI97|H105E9E128 -105E9E128:lI110|H105E9E268 -105E9E268:lI103|H105E9E3A8 -105E9E3A8:lI47|H105E9E4E8 -105E9E4E8:lI50|H105E9E628 -105E9E628:lI54|H105E9E768 -105E9E768:lI46|H105E9E8A8 -105E9E8A8:lI48|H105E9E9E8 -105E9E9E8:lI46|H105E9EB28 -105E9EB28:lI50|H105E9EC68 -105E9EC68:lI47|H105E9EDA8 -105E9EDA8:lI108|H105E9EEE8 -105E9EEE8:lI105|H105E9F028 -105E9F028:lI98|H105E9F168 -105E9F168:lI47|H105E9F2A8 -105E9F2A8:lI101|H105E9F3E8 -105E9F3E8:lI114|H105E9F528 -105E9F528:lI108|H105E9F668 -105E9F668:lI97|H105E9F798 -105E9F798:lI110|H105E9F8C8 -105E9F8C8:lI103|H105E9F9F8 -105E9F9F8:lI47|H105E9FB28 -105E9FB28:lI108|H105E9FC58 -105E9FC58:lI105|H105E9FD88 -105E9FD88:lI98|H105E9FEB8 -105E9FEB8:lI47|H105E9FFE8 -105E9FFE8:lI115|H105EA0118 -105EA0118:lI116|H105EA0248 -105EA0248:lI100|H105EA0378 -105EA0378:lI108|H105EA04A8 -105EA04A8:lI105|H105EA05D8 -105EA05D8:lI98|H105EA0708 -105EA0708:lI45|H105EA0838 -105EA0838:lI53|H105EA0968 -105EA0968:lI46|H105EA0A98 -105EA0A98:lI48|H105EA0BC8 -105EA0BC8:lI46|H105EA0CF8 -105EA0CF8:lI50|H105EA0E28 -105EA0E28:lI47|H105EA0F58 -105EA0F58:lI101|H105EA1088 -105EA1088:lI98|H105EA1188 -105EA1188:lI105|H105EA1278 -105EA1278:lI110|N -105E9B368:t6:A5:state,A5:efile,N,A6:noport,I360000,H105E9B348 -105E9B348:t3:AA:prim_state,A5:false,A9:undefined -=proc_dictionary:<0.42.0> -H105DBEDE0 -H105DBEDF8 -H105DBEE10 -=proc_stack:<0.42.0> -y0:N -y1:A8:infinity -y2:H105DBEDB0 -y3:H105DB3618 -y4:A6:logger -y5:P<0.9.0> -0x0000000105db5e48:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105db5e68:SReturn addr 0x3D82348 () -=proc_heap:<0.42.0> -105DBEDB0:t5:AE:callback_cache,AD:logger_server,H105DBEE28,H105DBEE50,H105DBEE78 -105DBEE78:E20:g3F3DWxvZ2dlcl9zZXJ2ZXJ3C2hhbmRsZV9pbmZvYQI= -105DBEE50:E20:g3F3DWxvZ2dlcl9zZXJ2ZXJ3C2hhbmRsZV9jYXN0YQI= -105DBEE28:E20:g3F3DWxvZ2dlcl9zZXJ2ZXJ3C2hhbmRsZV9jYWxsYQM= -105DB3618:t5:A5:state,H105DBED98,A9:undefined,H28005B328,A9:undefined -105DBED98:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAAK+R+vYAAd/g02c= -105DBEDE0:t2:AA:$ancestors,H105DBEEA0 -105DBEEA0:lP<0.9.0>|N -105DBEDF8:t2:A12:$logger_cb_process,A4:true -105DBEE10:t2:AD:$initial_call,H105DBEEB0 -105DBEEB0:t3:AD:logger_server,A4:init,I1 -=proc_dictionary:<0.44.0> -H10665ACF8 -H10665AD10 -=proc_stack:<0.44.0> -y0:N -y1:A8:infinity -y2:H10665ACC8 -y3:H105E81EB0 -y4:A16:application_controller -y5:P<0.9.0> -0x0000000105e9b338:SReturn addr 0x3D82348 () -=proc_heap:<0.44.0> -10665ACC8:t5:AE:callback_cache,A16:application_controller,H10665AD48,H10665AD70,H10665AD98 -10665AD98:E29:g3F3FmFwcGxpY2F0aW9uX2NvbnRyb2xsZXJ3C2hhbmRsZV9pbmZvYQI= -10665AD70:E29:g3F3FmFwcGxpY2F0aW9uX2NvbnRyb2xsZXJ3C2hhbmRsZV9jYXN0YQI= -10665AD48:E29:g3F3FmFwcGxpY2F0aW9uX2NvbnRyb2xsZXJ3C2hhbmRsZV9jYWxsYQM= -105E81EB0:t9:A5:state,N,N,N,H105E81E78,N,H105E81EA0,N,N -105E81EA0:lH105E81E88|H105E81608 -105E81E88:t2:A7:aoc2023,A9:temporary -105E81608:lH105E815F0|H105E633A0 -105E815F0:t2:A8:gleeunit,A9:temporary -105E633A0:lH105E63420|H105E63438 -105E63420:t2:A7:adglent,A9:temporary -105E63438:lH105E634A0|H106693B38 -105E634A0:t2:A3:tom,A9:temporary -106693B38:lH106693B60|H106688C50 -106693B60:t2:AA:simplifile,A9:temporary -106688C50:lH106688CF0|H106688D08 -106688CF0:t2:A5:glint,A9:temporary -106688D08:lH106688D90|H106688B10 -106688D90:t2:A4:snag,A9:temporary -106688B10:lH106688B38|H106688980 -106688B38:t2:A9:gleam_otp,A9:temporary -106688980:lH1066889B8|H1066889D0 -1066889B8:t2:AB:gleam_httpc,A9:temporary -1066889D0:lH106688A08|H106688A20 -106688A08:t2:A3:ssl,A9:temporary -106688A20:lH106688A58|H106688A70 -106688A58:t2:AA:public_key,A9:temporary -106688A70:lH106688A98|H106677B00 -106688A98:t2:A4:asn1,A9:temporary -106677B00:lH106677B90|H106664070 -106677B90:t2:A6:crypto,A9:temporary -106664070:lH106664100|H10665B320 -106664100:t2:A5:inets,A9:temporary -10665B320:lH10665B370|H10665B198 -10665B370:t2:AA:gleam_http,A9:temporary -10665B198:lH10665B1E8|H10665AF00 -10665B1E8:t2:AC:gleam_erlang,A9:temporary -10665AF00:lH10665AF60|H10665AF78 -10665AF60:t2:A3:gap,A9:temporary -10665AF78:lH10665AFC0|H10665AFD8 -10665AFC0:t2:A14:gleam_community_ansi,A9:temporary -10665AFD8:lH10665B020|H10665B038 -10665B020:t2:A16:gleam_community_colour,A9:temporary -10665B038:lH10665B070|H10665AD38 -10665B070:t2:AC:gleam_stdlib,A9:temporary -10665AD38:lH10665ADF8|H10665AE10 -10665ADF8:t2:A6:stdlib,A9:permanent -10665AE10:lH10665AE38|N -10665AE38:t2:A6:kernel,A9:permanent -105E81E78:lH105E81E60|H105E815E0 -105E81E60:t2:A7:aoc2023,A9:undefined -105E815E0:lH105E815C8|H105E63390 -105E815C8:t2:A8:gleeunit,A9:undefined -105E63390:lH105E633F8|H105E63410 -105E633F8:t2:A7:adglent,A9:undefined -105E63410:lH105E63488|H106693B28 -105E63488:t2:A3:tom,A9:undefined -106693B28:lH106693B48|H106688C40 -106693B48:t2:AA:simplifile,A9:undefined -106688C40:lH106688CC8|H106688CE0 -106688CC8:t2:A5:glint,A9:undefined -106688CE0:lH106688D78|H106688B00 -106688D78:t2:A4:snag,A9:undefined -106688B00:lH106688B20|H106688970 -106688B20:t2:A9:gleam_otp,A9:undefined -106688970:lH106688990|H1066889A8 -106688990:t2:AB:gleam_httpc,A9:undefined -1066889A8:lH1066889E0|H1066889F8 -1066889E0:t2:A3:ssl,P<0.102.0> -1066889F8:lH106688A30|H106688A48 -106688A30:t2:AA:public_key,A9:undefined -106688A48:lH106688A80|H106677AF0 -106688A80:t2:A4:asn1,A9:undefined -106677AF0:lH106677B78|H106664060 -106677B78:t2:A6:crypto,A9:undefined -106664060:lH1066640E8|H10665B310 -1066640E8:t2:A5:inets,P<0.90.0> -10665B310:lH10665B358|H10665B188 -10665B358:t2:AA:gleam_http,A9:undefined -10665B188:lH10665B1D0|H10665AEF0 -10665B1D0:t2:AC:gleam_erlang,A9:undefined -10665AEF0:lH10665AF38|H10665AF50 -10665AF38:t2:A3:gap,A9:undefined -10665AF50:lH10665AF98|H10665AFB0 -10665AF98:t2:A14:gleam_community_ansi,A9:undefined -10665AFB0:lH10665AFF8|H10665B010 -10665AFF8:t2:A16:gleam_community_colour,A9:undefined -10665B010:lH10665B058|H10665AD28 -10665B058:t2:AC:gleam_stdlib,A9:undefined -10665AD28:lH10665ADD0|H10665ADE8 -10665ADD0:t2:A6:stdlib,A9:undefined -10665ADE8:lH10665AE20|N -10665AE20:t2:A6:kernel,P<0.46.0> -10665ACF8:t2:AA:$ancestors,H10665ADC0 -10665ADC0:lP<0.9.0>|N -10665AD10:t2:AD:$initial_call,H280046B58 -=proc_dictionary:<0.46.0> -H105D9A980 -H105D9A9B8 -=proc_stack:<0.46.0> -y0:H105D9AB18 -y1:P<0.44.0> -0x0000000105d9ac18:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d9ac38:SReturn addr 0x3D82348 () -=proc_heap:<0.46.0> -105D9AB18:t7:A5:state,P<0.47.0>,H105D9A0A0,N,I0,A4:init,N -105D9A0A0:t8:A9:appl_data,A6:kernel,H105D9A8F0,A9:undefined,H105D9A0E8,H105D9A710,A8:infinity,A8:infinity -105D9A710:lAB:application|H105D9A700 -105D9A700:lA16:application_controller|H105D9A6F0 -105D9A6F0:lA12:application_master|H105D9A6E0 -105D9A6E0:lA13:application_starter|H105D9A6D0 -105D9A6D0:lA4:auth|H105D9A6C0 -105D9A6C0:lA4:code|H105D9A6B0 -105D9A6B0:lAB:code_server|H105D9A6A0 -105D9A6A0:lA9:dist_util|H105D9A690 -105D9A690:lAF:erl_boot_server|H105D9A680 -105D9A680:lA12:erl_compile_server|H105D9A670 -105D9A670:lA10:erl_distribution|H105D9A660 -105D9A660:lAF:erl_erts_errors|H105D9A650 -105D9A650:lA9:erl_reply|H105D9A640 -105D9A640:lA11:erl_kernel_errors|H105D9A630 -105D9A630:lA12:erl_signal_handler|H105D9A620 -105D9A620:lA4:erpc|H105D9A610 -105D9A610:lAD:error_handler|H105D9A600 -105D9A600:lAC:error_logger|H105D9A5F0 -105D9A5F0:lA4:file|H105D9A5E0 -105D9A5E0:lAB:file_server|H105D9A5D0 -105D9A5D0:lAE:file_io_server|H105D9A5C0 -105D9A5C0:lA6:global|H105D9A5B0 -105D9A5B0:lAC:global_group|H105D9A5A0 -105D9A5A0:lAD:global_search|H105D9A590 -105D9A590:lA5:group|H105D9A580 -105D9A580:lAD:group_history|H105D9A570 -105D9A570:lA5:heart|H105D9A560 -105D9A560:lA9:inet6_tcp|H105D9A550 -105D9A550:lAE:inet6_tcp_dist|H105D9A540 -105D9A540:lA9:inet6_udp|H105D9A530 -105D9A530:lAA:inet6_sctp|H105D9A520 -105D9A520:lAB:inet_config|H105D9A510 -105D9A510:lAE:inet_epmd_dist|H105D9A500 -105D9A500:lA10:inet_epmd_socket|H105D9A4F0 -105D9A4F0:lAA:inet_hosts|H105D9A4E0 -105D9A4E0:lA13:inet_gethost_native|H105D9A4D0 -105D9A4D0:lAD:inet_tcp_dist|H105D9A4C0 -105D9A4C0:lA6:kernel|H105D9A4B0 -105D9A4B0:lAD:kernel_config|H105D9A4A0 -105D9A4A0:lAB:kernel_refc|H105D9A490 -105D9A490:lA9:local_tcp|H105D9A480 -105D9A480:lA9:local_udp|H105D9A470 -105D9A470:lA6:logger|H105D9A460 -105D9A460:lAE:logger_backend|H105D9A450 -105D9A450:lAD:logger_config|H105D9A440 -105D9A440:lA11:logger_disk_log_h|H105D9A430 -105D9A430:lAE:logger_filters|H105D9A420 -105D9A420:lA10:logger_formatter|H105D9A410 -105D9A410:lAF:logger_h_common|H105D9A400 -105D9A400:lA16:logger_handler_watcher|H105D9A3F0 -105D9A3F0:lAA:logger_olp|H105D9A3E0 -105D9A3E0:lAC:logger_proxy|H105D9A3D0 -105D9A3D0:lAD:logger_server|H105D9A3C0 -105D9A3C0:lAF:logger_simple_h|H105D9A3B0 -105D9A3B0:lAC:logger_std_h|H105D9A3A0 -105D9A3A0:lAA:logger_sup|H105D9A390 -105D9A390:lA3:net|H105D9A380 -105D9A380:lA7:net_adm|H105D9A370 -105D9A370:lAA:net_kernel|H105D9A360 -105D9A360:lA2:os|H105D9A350 -105D9A350:lA8:ram_file|H105D9A340 -105D9A340:lA3:rpc|H105D9A330 -105D9A330:lA8:user_drv|H105D9A320 -105D9A320:lA8:user_sup|H105D9A310 -105D9A310:lA8:prim_tty|H105D9A300 -105D9A300:lA8:disk_log|H105D9A2F0 -105D9A2F0:lAA:disk_log_1|H105D9A2E0 -105D9A2E0:lAF:disk_log_server|H105D9A2D0 -105D9A2D0:lAC:disk_log_sup|H105D9A2C0 -105D9A2C0:lA7:dist_ac|H105D9A2B0 -105D9A2B0:lA8:erl_ddll|H105D9A2A0 -105D9A2A0:lA8:erl_epmd|H105D9A290 -105D9A290:lAA:erts_debug|H105D9A280 -105D9A280:lA7:gen_tcp|H105D9A270 -105D9A270:lAE:gen_tcp_socket|H105D9A260 -105D9A260:lA7:gen_udp|H105D9A250 -105D9A250:lAE:gen_udp_socket|H105D9A240 -105D9A240:lA8:gen_sctp|H105D9A230 -105D9A230:lA4:inet|H105D9A220 -105D9A220:lA7:inet_db|H105D9A210 -105D9A210:lA8:inet_dns|H105D9A200 -105D9A200:lAA:inet_parse|H105D9A1F0 -105D9A1F0:lA8:inet_res|H105D9A1E0 -105D9A1E0:lA8:inet_tcp|H105D9A1D0 -105D9A1D0:lA8:inet_udp|H105D9A1C0 -105D9A1C0:lA9:inet_sctp|H105D9A1B0 -105D9A1B0:lA2:pg|H105D9A1A0 -105D9A1A0:lA3:pg2|H105D9A190 -105D9A190:lAB:raw_file_io|H105D9A180 -105D9A180:lA16:raw_file_io_compressed|H105D9A170 -105D9A170:lA13:raw_file_io_deflate|H105D9A160 -105D9A160:lA13:raw_file_io_delayed|H105D9A150 -105D9A150:lA13:raw_file_io_inflate|H105D9A140 -105D9A140:lA10:raw_file_io_list|H105D9A130 -105D9A130:lA9:seq_trace|H105D9A120 -105D9A120:lA6:socket|H105D9A110 -105D9A110:lAE:standard_error|H105D9A100 -105D9A100:lAF:wrap_log_reader|N -105D9A0E8:t2:A6:kernel,N -105D9A8F0:lA16:application_controller|H105D9A8E0 -105D9A8E0:lA9:erl_reply|H105D9A8D0 -105D9A8D0:lA4:auth|H105D9A8C0 -105D9A8C0:lAB:boot_server|H105D9A8B0 -105D9A8B0:lAB:code_server|H105D9A8A0 -105D9A8A0:lAF:disk_log_server|H105D9A890 -105D9A890:lAC:disk_log_sup|H105D9A880 -105D9A880:lAF:erl_prim_loader|H105D9A870 -105D9A870:lAC:error_logger|H105D9A860 -105D9A860:lAD:file_server_2|H105D9A850 -105D9A850:lAF:fixtable_server|H105D9A840 -105D9A840:lAC:global_group|H105D9A830 -105D9A830:lA12:global_name_server|H105D9A820 -105D9A820:lA5:heart|H105D9A810 -105D9A810:lA4:init|H105D9A800 -105D9A800:lAD:kernel_config|H105D9A7F0 -105D9A7F0:lAB:kernel_refc|H105D9A7E0 -105D9A7E0:lAA:kernel_sup|H105D9A7D0 -105D9A7D0:lA6:logger|H105D9A7C0 -105D9A7C0:lA16:logger_handler_watcher|H105D9A7B0 -105D9A7B0:lAA:logger_sup|H105D9A7A0 -105D9A7A0:lAA:net_kernel|H105D9A790 -105D9A790:lA7:net_sup|H105D9A780 -105D9A780:lA3:rex|H105D9A770 -105D9A770:lA4:user|H105D9A760 -105D9A760:lA9:os_server|H105D9A750 -105D9A750:lAB:ddll_server|H105D9A740 -105D9A740:lA8:erl_epmd|H105D9A730 -105D9A730:lA7:inet_db|H105D9A720 -105D9A720:lA2:pg|N -105D9A980:t2:AA:$ancestors,H105D9A970 -105D9A970:lP<0.45.0>|N -105D9A9B8:t2:AD:$initial_call,H105D9A998 -105D9A998:t3:A12:application_master,A4:init,I4 -=proc_stack:<0.47.0> -y0:N -y1:N -y2:A6:kernel -y3:P<0.49.0> -y4:P<0.46.0> -0x0000000105d8fb88:SReturn addr 0x3D82348 () -=proc_heap:<0.47.0> -=proc_dictionary:<0.49.0> -H105D922F0 -H105D92308 -=proc_stack:<0.49.0> -y0:N -y1:A8:infinity -y2:H105D9E530 -y3:H105D9E918 -y4:AA:kernel_sup -y5:P<0.47.0> -0x0000000105d9fcf0:SReturn addr 0x3E951BC (proc_lib:wake_up/3 + 220) -y0:N -y1:N -y2:SCatch 0x3E951E4 (proc_lib:wake_up/3 + 260) -0x0000000105d9fd10:SReturn addr 0x3D82348 () -=proc_heap:<0.49.0> -105D9E530:t5:AE:callback_cache,AA:supervisor,H105D9E4B8,H105D9E4E0,H105D9E508 -105D9E508:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105D9E4E0:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105D9E4B8:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105D9E918:tC:A5:state,H280043650,AB:one_for_all,H105D9E900,A9:undefined,I0,I1,N,I0,A5:never,A6:kernel,N -105D9E900:t2:H105D9E310,H105D9E870 -105D9E870:MfF:H105D92320:H105D9B928,H105D9E820,H105D9C288,H105D9AD48,H105D929C8,H105D9DF28,H105D92918,H105D9B658,H105D9AD98,H105D9D5A8,H105D9CC18,H105D92A18,H105D926C0,H105D9ADE8,H105D9E218 -105D92320:tF:A11:erl_signal_server,A7:on_load,A4:user,A12:global_name_server,AE:standard_error,AB:kernel_refc,AB:code_server,AC:global_group,A7:inet_db,AD:kernel_config,AA:logger_sup,AD:file_server_2,A7:net_sup,A3:rex,AF:kernel_safe_sup -105D9E218:t9:A5:child,P<0.75.0>,AF:kernel_safe_sup,H280043BC8,A9:permanent,A5:false,A8:infinity,AA:supervisor,H280043BB8 -105D9ADE8:t9:A5:child,P<0.56.0>,A3:rex,H280044320,A9:permanent,A5:false,I2000,A6:worker,H280044310 -105D926C0:t9:A5:child,A9:undefined,A7:net_sup,H280044110,A9:permanent,A5:false,A8:infinity,AA:supervisor,H280044100 -105D92A18:t9:A5:child,P<0.53.0>,AD:file_server_2,H280043788,A9:permanent,A5:false,I2000,A6:worker,H280043748 -105D9CC18:t9:A5:child,P<0.70.0>,AA:logger_sup,H2800439B8,A9:permanent,A5:false,A8:infinity,AA:supervisor,H2800439A8 -105D9D5A8:t9:A5:child,P<0.73.0>,AD:kernel_config,H280043A68,A9:permanent,A5:false,I2000,A6:worker,H280043A58 -105D9AD98:t9:A5:child,P<0.55.0>,A7:inet_db,H280044040,A9:permanent,A5:false,I2000,A6:worker,H280044030 -105D9B658:t9:A5:child,P<0.61.0>,AC:global_group,H2800441C0,A9:permanent,A5:false,I2000,A6:worker,H2800441B0 -105D92918:t9:A5:child,P<0.50.0>,AB:code_server,H280043E60,A9:permanent,A5:false,I2000,A6:worker,H280043E50 -105D9DF28:t9:A5:child,P<0.74.0>,AB:kernel_refc,H280043B18,A9:permanent,A5:false,I2000,A6:worker,H280043B08 -105D929C8:t9:A5:child,P<0.51.0>,AE:standard_error,H280043DB0,A9:temporary,A5:false,I2000,AA:supervisor,H280043DA0 -105D9AD48:t9:A5:child,P<0.58.0>,A12:global_name_server,H280044270,A9:permanent,A5:false,I2000,A6:worker,H280044260 -105D9C288:t9:A5:child,P<0.64.0>,A4:user,H280043908,A9:temporary,A5:false,I2000,AA:supervisor,H2800438F8 -105D9E820:t9:A5:child,A9:undefined,A7:on_load,H280043CC0,A9:transient,A5:false,I2000,A6:worker,H280043CB0 -105D9B928:t9:A5:child,P<0.63.0>,A11:erl_signal_server,H280043F68,A9:permanent,A5:false,I2000,A6:worker,A7:dynamic -105D9E310:lAF:kernel_safe_sup|H105D9E020 -105D9E020:lAB:kernel_refc|H105D9D6A0 -105D9D6A0:lAD:kernel_config|H105D9CD10 -105D9CD10:lAA:logger_sup|H105D9C380 -105D9C380:lA4:user|H105D9BA20 -105D9BA20:lA11:erl_signal_server|H105D9B750 -105D9B750:lAC:global_group|H105D9AC78 -105D9AC78:lA7:net_sup|H105D9AD38 -105D9AD38:lA12:global_name_server|H105D9AE78 -105D9AE78:lA3:rex|H105D9AE98 -105D9AE98:lA7:inet_db|H105D92A68 -105D92A68:lA7:on_load|H105D92A78 -105D92A78:lAD:file_server_2|H105D92A88 -105D92A88:lAE:standard_error|H105D92968 -105D92968:lAB:code_server|N -105D922F0:t2:AA:$ancestors,H105D92838 -105D92838:lP<0.47.0>|N -105D92308:t2:AD:$initial_call,H105D92848 -105D92848:t3:AA:supervisor,A6:kernel,I1 -=proc_stack:<0.50.0> -y0:N -y1:P<0.49.0> -y2:H106607FF8 -0x0000000106638248:SReturn addr 0x3D82348 () -=proc_heap:<0.50.0> -106607FF8:t8:A5:state,P<0.49.0>,H1071F0038,H106607FC8,AB:code_server,AA:code_names,AB:interactive,N -106607FC8:lH106604450|H106607FB8 -106604450:t2:H1071F0078,A7:nocache -1071F0078:lI47|H1071F0638 -1071F0638:lI85|H1071F18C0 -1071F18C0:lI115|H1071F3B38 -1071F3B38:lI101|H1071F6350 -1071F6350:lI114|H1071F8FA0 -1071F8FA0:lI115|H1071FBEE0 -1071FBEE0:lI47|H1071FEF98 -1071FEF98:lI110|H107202140 -107202140:lI105|H107205380 -107205380:lI99|H107208678 -107208678:lI104|H10720B948 -10720B948:lI111|H10720EC08 -10720EC08:lI108|H107211F68 -107211F68:lI97|H107215440 -107215440:lI115|H107218AD0 -107218AD0:lI99|H10721C300 -10721C300:lI97|H10721FA00 -10721FA00:lI114|H107222EF8 -107222EF8:lI108|H107226060 -107226060:lI115|H107228E48 -107228E48:lI111|H10722B880 -10722B880:lI110|H10722DF58 -10722DF58:lI47|H107230380 -107230380:lI86|H1072324F8 -1072324F8:lI83|H107234360 -107234360:lI32|H107235EC8 -107235EC8:lI67|H1072377C0 -1072377C0:lI111|H107238E48 -107238E48:lI100|H10723A320 -10723A320:lI101|H10723B680 -10723B680:lI47|H10723C760 -10723C760:lI65|H10723D620 -10723D620:lI100|H10723E3A0 -10723E3A0:lI118|H10723EFB0 -10723EFB0:lI101|H10723FA80 -10723FA80:lI110|H1072403D0 -1072403D0:lI116|H107240C50 -107240C50:lI79|H1072413E0 -1072413E0:lI102|H107241B10 -107241B10:lI67|H1072421E0 -1072421E0:lI111|H107242850 -107242850:lI100|H107242E50 -107242E50:lI101|H1072433C0 -1072433C0:lI47|H107243900 -107243900:lI97|H107243DF0 -107243DF0:lI111|H1072442E0 -1072442E0:lI99|H107244790 -107244790:lI50|H107244C00 -107244C00:lI48|H107245060 -107245060:lI50|H1072454B0 -1072454B0:lI51|H1072458B0 -1072458B0:lI47|H107245C70 -107245C70:lI98|H107246000 -107246000:lI117|H107246390 -107246390:lI105|H107246720 -107246720:lI108|H107246AB0 -107246AB0:lI100|H107246DF0 -107246DF0:lI47|H107247110 -107247110:lI100|H107247430 -107247430:lI101|H107247740 -107247740:lI118|H107247A40 -107247A40:lI47|H107247D30 -107247D30:lI101|H107248010 -107248010:lI114|H1072482D0 -1072482D0:lI108|H107248590 -107248590:lI97|H107248840 -107248840:lI110|H107248AF0 -107248AF0:lI103|H107248D70 -107248D70:lI47|H107248FE0 -107248FE0:lI103|H107249250 -107249250:lI108|H1072494B0 -1072494B0:lI101|H107249710 -107249710:lI97|H107249960 -107249960:lI109|H107249B70 -107249B70:lI95|H107249D60 -107249D60:lI99|H107249F40 -107249F40:lI111|H10724A0F0 -10724A0F0:lI109|H10724A280 -10724A280:lI109|H10724A400 -10724A400:lI117|H10724A570 -10724A570:lI110|H10724A6C0 -10724A6C0:lI105|H10724A7F0 -10724A7F0:lI116|H10724A910 -10724A910:lI121|H10724AA10 -10724AA10:lI95|H10724AAF0 -10724AAF0:lI97|H10724ABB0 -10724ABB0:lI110|H10724AC40 -10724AC40:lI115|H10724ACA0 -10724ACA0:lI105|H10724ACF0 -10724ACF0:lI47|H10724AD40 -10724AD40:lI101|H10724AD80 -10724AD80:lI98|H10724ADC0 -10724ADC0:lI105|H10724ADF0 -10724ADF0:lI110|N -106607FB8:lH1066049F8|H106607FA8 -1066049F8:t2:H1071F0130,A7:nocache -1071F0130:lI47|H1071F0988 -1071F0988:lI85|H1071F1EB0 -1071F1EB0:lI115|H1071F4198 -1071F4198:lI101|H1071F69B8 -1071F69B8:lI114|H1071F9610 -1071F9610:lI115|H1071FC550 -1071FC550:lI47|H1071FF608 -1071FF608:lI110|H1072027B0 -1072027B0:lI105|H1072059F0 -1072059F0:lI99|H107208CC8 -107208CC8:lI104|H10720BF78 -10720BF78:lI111|H10720F1F8 -10720F1F8:lI108|H107212518 -107212518:lI97|H1072159A0 -1072159A0:lI115|H107219010 -107219010:lI99|H10721C770 -10721C770:lI97|H10721FDF0 -10721FDF0:lI114|H107223278 -107223278:lI108|H107226360 -107226360:lI115|H1072290F8 -1072290F8:lI111|H10722BAC0 -10722BAC0:lI110|H10722E128 -10722E128:lI47|H1072304E0 -1072304E0:lI86|H107232608 -107232608:lI83|H107234440 -107234440:lI32|H107235F88 -107235F88:lI67|H107237820 -107237820:lI111|H107238EA8 -107238EA8:lI100|H10723A380 -10723A380:lI101|H10723B6C0 -10723B6C0:lI47|H10723C790 -10723C790:lI65|H10723D650 -10723D650:lI100|H10723E3D0 -10723E3D0:lI118|H10723EFE0 -10723EFE0:lI101|H10723FAB0 -10723FAB0:lI110|H107240400 -107240400:lI116|H107240C80 -107240C80:lI79|H107241410 -107241410:lI102|H107241B40 -107241B40:lI67|H107242210 -107242210:lI111|H107242880 -107242880:lI100|H107242E80 -107242E80:lI101|H1072433F0 -1072433F0:lI47|H107243930 -107243930:lI97|H107243E20 -107243E20:lI111|H107244310 -107244310:lI99|H1072447C0 -1072447C0:lI50|H107244C30 -107244C30:lI48|H107245090 -107245090:lI50|H1072454E0 -1072454E0:lI51|H1072458E0 -1072458E0:lI47|H107245CA0 -107245CA0:lI98|H107246030 -107246030:lI117|H1072463C0 -1072463C0:lI105|H107246750 -107246750:lI108|H107246AE0 -107246AE0:lI100|H107246E20 -107246E20:lI47|H107247140 -107247140:lI100|H107247460 -107247460:lI101|H107247770 -107247770:lI118|H107247A70 -107247A70:lI47|H107247D60 -107247D60:lI101|H107248040 -107248040:lI114|H107248300 -107248300:lI108|H1072485C0 -1072485C0:lI97|H107248870 -107248870:lI110|H107248B10 -107248B10:lI103|H107248D90 -107248D90:lI47|H107249000 -107249000:lI97|H107249270 -107249270:lI100|H1072494D0 -1072494D0:lI103|H107249730 -107249730:lI108|H107249980 -107249980:lI101|H107249B90 -107249B90:lI110|H107249D80 -107249D80:lI116|H107249F60 -107249F60:lI47|H10724A110 -10724A110:lI101|H10724A2A0 -10724A2A0:lI98|H10724A420 -10724A420:lI105|H10724A590 -10724A590:lI110|N -106607FA8:lH106604FF0|H106607F98 -106604FF0:t2:H1071F01F0,A7:nocache -1071F01F0:lI47|H1071F0CB8 -1071F0CB8:lI85|H1071F2438 -1071F2438:lI115|H1071F4780 -1071F4780:lI101|H1071F6FA8 -1071F6FA8:lI114|H1071F9C00 -1071F9C00:lI115|H1071FCB40 -1071FCB40:lI47|H1071FFBF8 -1071FFBF8:lI110|H107202DA0 -107202DA0:lI105|H107205FD0 -107205FD0:lI99|H107209288 -107209288:lI104|H10720C4E8 -10720C4E8:lI111|H10720F708 -10720F708:lI108|H1072129B8 -1072129B8:lI97|H107215D80 -107215D80:lI115|H107219360 -107219360:lI99|H10721C9F0 -10721C9F0:lI97|H107220030 -107220030:lI114|H107223428 -107223428:lI108|H1072264E0 -1072264E0:lI115|H107229208 -107229208:lI111|H10722BB70 -10722BB70:lI110|H10722E1C8 -10722E1C8:lI47|H107230580 -107230580:lI86|H1072326A8 -1072326A8:lI83|H1072344C0 -1072344C0:lI32|H107235FE8 -107235FE8:lI67|H107237860 -107237860:lI111|H107238EE8 -107238EE8:lI100|H10723A3B0 -10723A3B0:lI101|H10723B6F0 -10723B6F0:lI47|H10723C7C0 -10723C7C0:lI65|H10723D680 -10723D680:lI100|H10723E400 -10723E400:lI118|H10723F010 -10723F010:lI101|H10723FAE0 -10723FAE0:lI110|H107240430 -107240430:lI116|H107240CB0 -107240CB0:lI79|H107241440 -107241440:lI102|H107241B70 -107241B70:lI67|H107242240 -107242240:lI111|H1072428B0 -1072428B0:lI100|H107242EB0 -107242EB0:lI101|H107243420 -107243420:lI47|H107243960 -107243960:lI97|H107243E50 -107243E50:lI111|H107244340 -107244340:lI99|H1072447F0 -1072447F0:lI50|H107244C60 -107244C60:lI48|H1072450C0 -1072450C0:lI50|H107245510 -107245510:lI51|H107245910 -107245910:lI47|H107245CD0 -107245CD0:lI98|H107246060 -107246060:lI117|H1072463F0 -1072463F0:lI105|H107246780 -107246780:lI108|H107246B10 -107246B10:lI100|H107246E50 -107246E50:lI47|H107247170 -107247170:lI100|H107247490 -107247490:lI101|H1072477A0 -1072477A0:lI118|H107247AA0 -107247AA0:lI47|H107247D90 -107247D90:lI101|H107248070 -107248070:lI114|H107248330 -107248330:lI108|H1072485F0 -1072485F0:lI97|H1072488A0 -1072488A0:lI110|H107248B30 -107248B30:lI103|H107248DB0 -107248DB0:lI47|H107249020 -107249020:lI103|H107249290 -107249290:lI108|H1072494F0 -1072494F0:lI101|H107249750 -107249750:lI97|H1072499A0 -1072499A0:lI109|H107249BB0 -107249BB0:lI95|H107249DA0 -107249DA0:lI101|H107249F80 -107249F80:lI114|H10724A130 -10724A130:lI108|H10724A2C0 -10724A2C0:lI97|H10724A440 -10724A440:lI110|H10724A5B0 -10724A5B0:lI103|H10724A6F0 -10724A6F0:lI47|H10724A810 -10724A810:lI101|H10724A930 -10724A930:lI98|H10724AA30 -10724AA30:lI105|H10724AB10 -10724AB10:lI110|N -106607F98:lH106605578|H106607F88 -106605578:t2:H1071F02A8,A7:nocache -1071F02A8:lI47|H1071F0E68 -1071F0E68:lI85|H1071F2688 -1071F2688:lI115|H1071F49E0 -1071F49E0:lI101|H1071F7208 -1071F7208:lI114|H1071F9E60 -1071F9E60:lI115|H1071FCDA0 -1071FCDA0:lI47|H1071FFE58 -1071FFE58:lI110|H107203000 -107203000:lI105|H107206230 -107206230:lI99|H1072094E8 -1072094E8:lI104|H10720C748 -10720C748:lI111|H10720F958 -10720F958:lI108|H107212BE8 -107212BE8:lI97|H107215FB0 -107215FB0:lI115|H107219590 -107219590:lI99|H10721CC00 -10721CC00:lI97|H107220210 -107220210:lI114|H1072235B8 -1072235B8:lI108|H107226650 -107226650:lI115|H107229348 -107229348:lI111|H10722BC90 -10722BC90:lI110|H10722E2D8 -10722E2D8:lI47|H107230660 -107230660:lI86|H107232758 -107232758:lI83|H107234550 -107234550:lI32|H107236078 -107236078:lI67|H1072378F0 -1072378F0:lI111|H107238F68 -107238F68:lI100|H10723A420 -10723A420:lI101|H10723B750 -10723B750:lI47|H10723C810 -10723C810:lI65|H10723D6B0 -10723D6B0:lI100|H10723E430 -10723E430:lI118|H10723F040 -10723F040:lI101|H10723FB10 -10723FB10:lI110|H107240460 -107240460:lI116|H107240CE0 -107240CE0:lI79|H107241470 -107241470:lI102|H107241BA0 -107241BA0:lI67|H107242270 -107242270:lI111|H1072428E0 -1072428E0:lI100|H107242EE0 -107242EE0:lI101|H107243450 -107243450:lI47|H107243990 -107243990:lI97|H107243E80 -107243E80:lI111|H107244370 -107244370:lI99|H107244820 -107244820:lI50|H107244C90 -107244C90:lI48|H1072450F0 -1072450F0:lI50|H107245540 -107245540:lI51|H107245940 -107245940:lI47|H107245D00 -107245D00:lI98|H107246090 -107246090:lI117|H107246420 -107246420:lI105|H1072467B0 -1072467B0:lI108|H107246B40 -107246B40:lI100|H107246E80 -107246E80:lI47|H1072471A0 -1072471A0:lI100|H1072474C0 -1072474C0:lI101|H1072477D0 -1072477D0:lI118|H107247AD0 -107247AD0:lI47|H107247DC0 -107247DC0:lI101|H107248090 -107248090:lI114|H107248350 -107248350:lI108|H107248610 -107248610:lI97|H1072488C0 -1072488C0:lI110|H107248B50 -107248B50:lI103|H107248DD0 -107248DD0:lI47|H107249040 -107249040:lI103|H1072492B0 -1072492B0:lI108|H107249510 -107249510:lI105|H107249770 -107249770:lI110|H1072499C0 -1072499C0:lI116|H107249BD0 -107249BD0:lI47|H107249DC0 -107249DC0:lI101|H107249FA0 -107249FA0:lI98|H10724A150 -10724A150:lI105|H10724A2E0 -10724A2E0:lI110|N -106607F88:lH106605B50|H106607F78 -106605B50:t2:H1071F0368,A7:nocache -1071F0368:lI47|H1071F1420 -1071F1420:lI85|H1071F3318 -1071F3318:lI115|H1071F5900 -1071F5900:lI101|H1071F8168 -1071F8168:lI114|H1071FADC0 -1071FADC0:lI115|H1071FDD00 -1071FDD00:lI47|H107200DB8 -107200DB8:lI110|H107203F60 -107203F60:lI105|H107207190 -107207190:lI99|H10720A418 -10720A418:lI104|H10720D678 -10720D678:lI111|H107210868 -107210868:lI108|H107213AD8 -107213AD8:lI97|H107216E90 -107216E90:lI115|H10721A400 -10721A400:lI99|H10721D9C0 -10721D9C0:lI97|H107220F10 -107220F10:lI114|H107224178 -107224178:lI108|H1072270C0 -1072270C0:lI115|H107229C28 -107229C28:lI111|H10722C450 -10722C450:lI110|H10722E998 -10722E998:lI47|H107230C10 -107230C10:lI86|H107232C08 -107232C08:lI83|H1072348E0 -1072348E0:lI32|H107236318 -107236318:lI67|H107237AE0 -107237AE0:lI111|H1072390F8 -1072390F8:lI100|H10723A590 -10723A590:lI101|H10723B850 -10723B850:lI47|H10723C8A0 -10723C8A0:lI65|H10723D710 -10723D710:lI100|H10723E470 -10723E470:lI118|H10723F080 -10723F080:lI101|H10723FB40 -10723FB40:lI110|H107240490 -107240490:lI116|H107240D10 -107240D10:lI79|H1072414A0 -1072414A0:lI102|H107241BD0 -107241BD0:lI67|H1072422A0 -1072422A0:lI111|H107242910 -107242910:lI100|H107242F10 -107242F10:lI101|H107243480 -107243480:lI47|H1072439C0 -1072439C0:lI97|H107243EB0 -107243EB0:lI111|H1072443A0 -1072443A0:lI99|H107244850 -107244850:lI50|H107244CC0 -107244CC0:lI48|H107245120 -107245120:lI50|H107245570 -107245570:lI51|H107245970 -107245970:lI47|H107245D30 -107245D30:lI98|H1072460C0 -1072460C0:lI117|H107246450 -107246450:lI105|H1072467E0 -1072467E0:lI108|H107246B70 -107246B70:lI100|H107246EA0 -107246EA0:lI47|H1072471C0 -1072471C0:lI100|H1072474E0 -1072474E0:lI101|H1072477F0 -1072477F0:lI118|H107247AF0 -107247AF0:lI47|H107247DE0 -107247DE0:lI101|H1072480B0 -1072480B0:lI114|H107248370 -107248370:lI108|H107248630 -107248630:lI97|H1072488E0 -1072488E0:lI110|H107248B70 -107248B70:lI103|H107248DF0 -107248DF0:lI47|H107249060 -107249060:lI103|H1072492D0 -1072492D0:lI108|H107249530 -107249530:lI101|H107249790 -107249790:lI97|H1072499E0 -1072499E0:lI109|H107249BF0 -107249BF0:lI95|H107249DE0 -107249DE0:lI104|H107249FC0 -107249FC0:lI116|H10724A170 -10724A170:lI116|H10724A300 -10724A300:lI112|H10724A470 -10724A470:lI47|H10724A5E0 -10724A5E0:lI101|H10724A720 -10724A720:lI98|H10724A840 -10724A840:lI105|H10724A960 -10724A960:lI110|N -106607F78:lH1066060B8|H106607F68 -1066060B8:t2:H1071F0430,A7:nocache -1071F0430:lI47|H1071F14D8 -1071F14D8:lI85|H1071F3448 -1071F3448:lI115|H1071F5A30 -1071F5A30:lI101|H1071F8298 -1071F8298:lI114|H1071FAEF0 -1071FAEF0:lI115|H1071FDE30 -1071FDE30:lI47|H107200EE8 -107200EE8:lI110|H107204090 -107204090:lI105|H1072072C0 -1072072C0:lI99|H10720A548 -10720A548:lI104|H10720D758 -10720D758:lI111|H107210908 -107210908:lI108|H107213B68 -107213B68:lI97|H107216F20 -107216F20:lI115|H10721A490 -10721A490:lI99|H10721DA40 -10721DA40:lI97|H107220F80 -107220F80:lI114|H1072241C8 -1072241C8:lI108|H107227100 -107227100:lI115|H107229C58 -107229C58:lI111|H10722C480 -10722C480:lI110|H10722E9C8 -10722E9C8:lI47|H107230C40 -107230C40:lI86|H107232C38 -107232C38:lI83|H107234910 -107234910:lI32|H107236348 -107236348:lI67|H107237B10 -107237B10:lI111|H107239128 -107239128:lI100|H10723A5C0 -10723A5C0:lI101|H10723B880 -10723B880:lI47|H10723C8D0 -10723C8D0:lI65|H10723D740 -10723D740:lI100|H10723E4A0 -10723E4A0:lI118|H10723F0B0 -10723F0B0:lI101|H10723FB70 -10723FB70:lI110|H1072404C0 -1072404C0:lI116|H107240D40 -107240D40:lI79|H1072414D0 -1072414D0:lI102|H107241C00 -107241C00:lI67|H1072422D0 -1072422D0:lI111|H107242940 -107242940:lI100|H107242F40 -107242F40:lI101|H1072434B0 -1072434B0:lI47|H1072439F0 -1072439F0:lI97|H107243EE0 -107243EE0:lI111|H1072443D0 -1072443D0:lI99|H107244880 -107244880:lI50|H107244CF0 -107244CF0:lI48|H107245150 -107245150:lI50|H1072455A0 -1072455A0:lI51|H1072459A0 -1072459A0:lI47|H107245D60 -107245D60:lI98|H1072460F0 -1072460F0:lI117|H107246480 -107246480:lI105|H107246810 -107246810:lI108|H107246BA0 -107246BA0:lI100|H107246ED0 -107246ED0:lI47|H1072471F0 -1072471F0:lI100|H107247510 -107247510:lI101|H107247810 -107247810:lI118|H107247B10 -107247B10:lI47|H107247E00 -107247E00:lI101|H1072480D0 -1072480D0:lI114|H107248390 -107248390:lI108|H107248650 -107248650:lI97|H107248900 -107248900:lI110|H107248B90 -107248B90:lI103|H107248E10 -107248E10:lI47|H107249080 -107249080:lI103|H1072492F0 -1072492F0:lI97|H107249550 -107249550:lI112|H1072497B0 -1072497B0:lI47|H107249A00 -107249A00:lI101|H107249C10 -107249C10:lI98|H107249E00 -107249E00:lI105|H107249FE0 -107249FE0:lI110|N -106607F68:lH106606680|H106607F58 -106606680:t2:H1071F0420,A7:nocache -1071F0420:lI47|H1071F14C8 -1071F14C8:lI85|H1071F3438 -1071F3438:lI115|H1071F5A20 -1071F5A20:lI101|H1071F8288 -1071F8288:lI114|H1071FAEE0 -1071FAEE0:lI115|H1071FDE20 -1071FDE20:lI47|H107200ED8 -107200ED8:lI110|H107204080 -107204080:lI105|H1072072B0 -1072072B0:lI99|H10720A538 -10720A538:lI104|H10720D748 -10720D748:lI111|H1072108F8 -1072108F8:lI108|H107213B58 -107213B58:lI97|H107216F10 -107216F10:lI115|H10721A480 -10721A480:lI99|H10721DA30 -10721DA30:lI97|H107220F70 -107220F70:lI114|H1072241B8 -1072241B8:lI108|H1072270F0 -1072270F0:lI115|H107229C48 -107229C48:lI111|H10722C470 -10722C470:lI110|H10722E9B8 -10722E9B8:lI47|H107230C30 -107230C30:lI86|H107232C28 -107232C28:lI83|H107234900 -107234900:lI32|H107236338 -107236338:lI67|H107237B00 -107237B00:lI111|H107239118 -107239118:lI100|H10723A5B0 -10723A5B0:lI101|H10723B870 -10723B870:lI47|H10723C8C0 -10723C8C0:lI65|H10723D730 -10723D730:lI100|H10723E490 -10723E490:lI118|H10723F0A0 -10723F0A0:lI101|H10723FB60 -10723FB60:lI110|H1072404B0 -1072404B0:lI116|H107240D30 -107240D30:lI79|H1072414C0 -1072414C0:lI102|H107241BF0 -107241BF0:lI67|H1072422C0 -1072422C0:lI111|H107242930 -107242930:lI100|H107242F30 -107242F30:lI101|H1072434A0 -1072434A0:lI47|H1072439E0 -1072439E0:lI97|H107243ED0 -107243ED0:lI111|H1072443C0 -1072443C0:lI99|H107244870 -107244870:lI50|H107244CE0 -107244CE0:lI48|H107245140 -107245140:lI50|H107245590 -107245590:lI51|H107245990 -107245990:lI47|H107245D50 -107245D50:lI98|H1072460E0 -1072460E0:lI117|H107246470 -107246470:lI105|H107246800 -107246800:lI108|H107246B90 -107246B90:lI100|H107246EC0 -107246EC0:lI47|H1072471E0 -1072471E0:lI100|H107247500 -107247500:lI101|H107247800 -107247800:lI118|H107247B00 -107247B00:lI47|H107247DF0 -107247DF0:lI101|H1072480C0 -1072480C0:lI114|H107248380 -107248380:lI108|H107248640 -107248640:lI97|H1072488F0 -1072488F0:lI110|H107248B80 -107248B80:lI103|H107248E00 -107248E00:lI47|H107249070 -107249070:lI103|H1072492E0 -1072492E0:lI108|H107249540 -107249540:lI101|H1072497A0 -1072497A0:lI97|H1072499F0 -1072499F0:lI109|H107249C00 -107249C00:lI95|H107249DF0 -107249DF0:lI111|H107249FD0 -107249FD0:lI116|H10724A180 -10724A180:lI112|H10724A310 -10724A310:lI47|H10724A480 -10724A480:lI101|H10724A5F0 -10724A5F0:lI98|H10724A730 -10724A730:lI105|H10724A850 -10724A850:lI110|N -106607F58:lH106606D18|H106607F48 -106606D18:t2:H1071F0358,A7:nocache -1071F0358:lI47|H1071F1410 -1071F1410:lI85|H1071F3308 -1071F3308:lI115|H1071F58F0 -1071F58F0:lI101|H1071F8158 -1071F8158:lI114|H1071FADB0 -1071FADB0:lI115|H1071FDCF0 -1071FDCF0:lI47|H107200DA8 -107200DA8:lI110|H107203F50 -107203F50:lI105|H107207180 -107207180:lI99|H10720A408 -10720A408:lI104|H10720D668 -10720D668:lI111|H107210858 -107210858:lI108|H107213AC8 -107213AC8:lI97|H107216E80 -107216E80:lI115|H10721A3F0 -10721A3F0:lI99|H10721D9B0 -10721D9B0:lI97|H107220F00 -107220F00:lI114|H107224168 -107224168:lI108|H1072270B0 -1072270B0:lI115|H107229C18 -107229C18:lI111|H10722C440 -10722C440:lI110|H10722E988 -10722E988:lI47|H107230C00 -107230C00:lI86|H107232BF8 -107232BF8:lI83|H1072348D0 -1072348D0:lI32|H107236308 -107236308:lI67|H107237AD0 -107237AD0:lI111|H1072390E8 -1072390E8:lI100|H10723A580 -10723A580:lI101|H10723B840 -10723B840:lI47|H10723C890 -10723C890:lI65|H10723D700 -10723D700:lI100|H10723E460 -10723E460:lI118|H10723F070 -10723F070:lI101|H10723FB30 -10723FB30:lI110|H107240480 -107240480:lI116|H107240D00 -107240D00:lI79|H107241490 -107241490:lI102|H107241BC0 -107241BC0:lI67|H107242290 -107242290:lI111|H107242900 -107242900:lI100|H107242F00 -107242F00:lI101|H107243470 -107243470:lI47|H1072439B0 -1072439B0:lI97|H107243EA0 -107243EA0:lI111|H107244390 -107244390:lI99|H107244840 -107244840:lI50|H107244CB0 -107244CB0:lI48|H107245110 -107245110:lI50|H107245560 -107245560:lI51|H107245960 -107245960:lI47|H107245D20 -107245D20:lI98|H1072460B0 -1072460B0:lI117|H107246440 -107246440:lI105|H1072467D0 -1072467D0:lI108|H107246B60 -107246B60:lI100|H107246E90 -107246E90:lI47|H1072471B0 -1072471B0:lI100|H1072474D0 -1072474D0:lI101|H1072477E0 -1072477E0:lI118|H107247AE0 -107247AE0:lI47|H107247DD0 -107247DD0:lI101|H1072480A0 -1072480A0:lI114|H107248360 -107248360:lI108|H107248620 -107248620:lI97|H1072488D0 -1072488D0:lI110|H107248B60 -107248B60:lI103|H107248DE0 -107248DE0:lI47|H107249050 -107249050:lI103|H1072492C0 -1072492C0:lI108|H107249520 -107249520:lI101|H107249780 -107249780:lI97|H1072499D0 -1072499D0:lI109|H107249BE0 -107249BE0:lI95|H107249DD0 -107249DD0:lI99|H107249FB0 -107249FB0:lI111|H10724A160 -10724A160:lI109|H10724A2F0 -10724A2F0:lI109|H10724A460 -10724A460:lI117|H10724A5D0 -10724A5D0:lI110|H10724A710 -10724A710:lI105|H10724A830 -10724A830:lI116|H10724A950 -10724A950:lI121|H10724AA50 -10724AA50:lI95|H10724AB20 -10724AB20:lI99|H10724ABC0 -10724ABC0:lI111|H10724AC50 -10724AC50:lI108|H10724ACB0 -10724ACB0:lI111|H10724AD00 -10724AD00:lI117|H10724AD50 -10724AD50:lI114|H10724AD90 -10724AD90:lI47|H10724ADD0 -10724ADD0:lI101|H10724AE00 -10724AE00:lI98|H10724AE20 -10724AE20:lI105|H10724AE40 -10724AE40:lI110|N -106607F48:lH106607300|H106607F38 -106607300:t2:H1071F0298,A7:nocache -1071F0298:lI47|H1071F0E58 -1071F0E58:lI85|H1071F2678 -1071F2678:lI115|H1071F49D0 -1071F49D0:lI101|H1071F71F8 -1071F71F8:lI114|H1071F9E50 -1071F9E50:lI115|H1071FCD90 -1071FCD90:lI47|H1071FFE48 -1071FFE48:lI110|H107202FF0 -107202FF0:lI105|H107206220 -107206220:lI99|H1072094D8 -1072094D8:lI104|H10720C738 -10720C738:lI111|H10720F948 -10720F948:lI108|H107212BD8 -107212BD8:lI97|H107215FA0 -107215FA0:lI115|H107219580 -107219580:lI99|H10721CBF0 -10721CBF0:lI97|H107220200 -107220200:lI114|H1072235A8 -1072235A8:lI108|H107226640 -107226640:lI115|H107229338 -107229338:lI111|H10722BC80 -10722BC80:lI110|H10722E2C8 -10722E2C8:lI47|H107230650 -107230650:lI86|H107232748 -107232748:lI83|H107234540 -107234540:lI32|H107236068 -107236068:lI67|H1072378E0 -1072378E0:lI111|H107238F58 -107238F58:lI100|H10723A410 -10723A410:lI101|H10723B740 -10723B740:lI47|H10723C800 -10723C800:lI65|H10723D6A0 -10723D6A0:lI100|H10723E420 -10723E420:lI118|H10723F030 -10723F030:lI101|H10723FB00 -10723FB00:lI110|H107240450 -107240450:lI116|H107240CD0 -107240CD0:lI79|H107241460 -107241460:lI102|H107241B90 -107241B90:lI67|H107242260 -107242260:lI111|H1072428D0 -1072428D0:lI100|H107242ED0 -107242ED0:lI101|H107243440 -107243440:lI47|H107243980 -107243980:lI97|H107243E70 -107243E70:lI111|H107244360 -107244360:lI99|H107244810 -107244810:lI50|H107244C80 -107244C80:lI48|H1072450E0 -1072450E0:lI50|H107245530 -107245530:lI51|H107245930 -107245930:lI47|H107245CF0 -107245CF0:lI98|H107246080 -107246080:lI117|H107246410 -107246410:lI105|H1072467A0 -1072467A0:lI108|H107246B30 -107246B30:lI100|H107246E70 -107246E70:lI47|H107247190 -107247190:lI100|H1072474B0 -1072474B0:lI101|H1072477C0 -1072477C0:lI118|H107247AC0 -107247AC0:lI47|H107247DB0 -107247DB0:lI101|H107248080 -107248080:lI114|H107248340 -107248340:lI108|H107248600 -107248600:lI97|H1072488B0 -1072488B0:lI110|H107248B40 -107248B40:lI103|H107248DC0 -107248DC0:lI47|H107249030 -107249030:lI103|H1072492A0 -1072492A0:lI108|H107249500 -107249500:lI101|H107249760 -107249760:lI97|H1072499B0 -1072499B0:lI109|H107249BC0 -107249BC0:lI95|H107249DB0 -107249DB0:lI104|H107249F90 -107249F90:lI116|H10724A140 -10724A140:lI116|H10724A2D0 -10724A2D0:lI112|H10724A450 -10724A450:lI99|H10724A5C0 -10724A5C0:lI47|H10724A700 -10724A700:lI101|H10724A820 -10724A820:lI98|H10724A940 -10724A940:lI105|H10724AA40 -10724AA40:lI110|N -106607F38:lH106607F20|H1066006B0 -106607F20:t2:H1071F01E0,A7:nocache -1071F01E0:lI47|H1071F0CA8 -1071F0CA8:lI85|H1071F2428 -1071F2428:lI115|H1071F4770 -1071F4770:lI101|H1071F6F98 -1071F6F98:lI114|H1071F9BF0 -1071F9BF0:lI115|H1071FCB30 -1071FCB30:lI47|H1071FFBE8 -1071FFBE8:lI110|H107202D90 -107202D90:lI105|H107205FC0 -107205FC0:lI99|H107209278 -107209278:lI104|H10720C4D8 -10720C4D8:lI111|H10720F6F8 -10720F6F8:lI108|H1072129A8 -1072129A8:lI97|H107215D70 -107215D70:lI115|H107219350 -107219350:lI99|H10721C9E0 -10721C9E0:lI97|H107220020 -107220020:lI114|H107223418 -107223418:lI108|H1072264D0 -1072264D0:lI115|H1072291F8 -1072291F8:lI111|H10722BB60 -10722BB60:lI110|H10722E1B8 -10722E1B8:lI47|H107230570 -107230570:lI86|H107232698 -107232698:lI83|H1072344B0 -1072344B0:lI32|H107235FD8 -107235FD8:lI67|H107237850 -107237850:lI111|H107238ED8 -107238ED8:lI100|H10723A3A0 -10723A3A0:lI101|H10723B6E0 -10723B6E0:lI47|H10723C7B0 -10723C7B0:lI65|H10723D670 -10723D670:lI100|H10723E3F0 -10723E3F0:lI118|H10723F000 -10723F000:lI101|H10723FAD0 -10723FAD0:lI110|H107240420 -107240420:lI116|H107240CA0 -107240CA0:lI79|H107241430 -107241430:lI102|H107241B60 -107241B60:lI67|H107242230 -107242230:lI111|H1072428A0 -1072428A0:lI100|H107242EA0 -107242EA0:lI101|H107243410 -107243410:lI47|H107243950 -107243950:lI97|H107243E40 -107243E40:lI111|H107244330 -107244330:lI99|H1072447E0 -1072447E0:lI50|H107244C50 -107244C50:lI48|H1072450B0 -1072450B0:lI50|H107245500 -107245500:lI51|H107245900 -107245900:lI47|H107245CC0 -107245CC0:lI98|H107246050 -107246050:lI117|H1072463E0 -1072463E0:lI105|H107246770 -107246770:lI108|H107246B00 -107246B00:lI100|H107246E40 -107246E40:lI47|H107247160 -107247160:lI100|H107247480 -107247480:lI101|H107247790 -107247790:lI118|H107247A90 -107247A90:lI47|H107247D80 -107247D80:lI101|H107248060 -107248060:lI114|H107248320 -107248320:lI108|H1072485E0 -1072485E0:lI97|H107248890 -107248890:lI110|H107248B20 -107248B20:lI103|H107248DA0 -107248DA0:lI47|H107249010 -107249010:lI103|H107249280 -107249280:lI108|H1072494E0 -1072494E0:lI101|H107249740 -107249740:lI97|H107249990 -107249990:lI109|H107249BA0 -107249BA0:lI95|H107249D90 -107249D90:lI115|H107249F70 -107249F70:lI116|H10724A120 -10724A120:lI100|H10724A2B0 -10724A2B0:lI108|H10724A430 -10724A430:lI105|H10724A5A0 -10724A5A0:lI98|H10724A6E0 -10724A6E0:lI47|H10724A800 -10724A800:lI101|H10724A920 -10724A920:lI98|H10724AA20 -10724AA20:lI105|H10724AB00 -10724AB00:lI110|N -1066006B0:lH106600708|H106600720 -106600708:t2:H1071F0120,A7:nocache -1071F0120:lI47|H1071F0978 -1071F0978:lI85|H1071F1EA0 -1071F1EA0:lI115|H1071F4188 -1071F4188:lI101|H1071F69A8 -1071F69A8:lI114|H1071F9600 -1071F9600:lI115|H1071FC540 -1071FC540:lI47|H1071FF5F8 -1071FF5F8:lI110|H1072027A0 -1072027A0:lI105|H1072059E0 -1072059E0:lI99|H107208CB8 -107208CB8:lI104|H10720BF68 -10720BF68:lI111|H10720F1E8 -10720F1E8:lI108|H107212508 -107212508:lI97|H107215990 -107215990:lI115|H107219000 -107219000:lI99|H10721C760 -10721C760:lI97|H10721FDE0 -10721FDE0:lI114|H107223268 -107223268:lI108|H107226350 -107226350:lI115|H1072290E8 -1072290E8:lI111|H10722BAB0 -10722BAB0:lI110|H10722E118 -10722E118:lI47|H1072304D0 -1072304D0:lI86|H1072325F8 -1072325F8:lI83|H107234430 -107234430:lI32|H107235F78 -107235F78:lI67|H107237810 -107237810:lI111|H107238E98 -107238E98:lI100|H10723A370 -10723A370:lI101|H10723B6B0 -10723B6B0:lI47|H10723C780 -10723C780:lI65|H10723D640 -10723D640:lI100|H10723E3C0 -10723E3C0:lI118|H10723EFD0 -10723EFD0:lI101|H10723FAA0 -10723FAA0:lI110|H1072403F0 -1072403F0:lI116|H107240C70 -107240C70:lI79|H107241400 -107241400:lI102|H107241B30 -107241B30:lI67|H107242200 -107242200:lI111|H107242870 -107242870:lI100|H107242E70 -107242E70:lI101|H1072433E0 -1072433E0:lI47|H107243920 -107243920:lI97|H107243E10 -107243E10:lI111|H107244300 -107244300:lI99|H1072447B0 -1072447B0:lI50|H107244C20 -107244C20:lI48|H107245080 -107245080:lI50|H1072454D0 -1072454D0:lI51|H1072458D0 -1072458D0:lI47|H107245C90 -107245C90:lI98|H107246020 -107246020:lI117|H1072463B0 -1072463B0:lI105|H107246740 -107246740:lI108|H107246AD0 -107246AD0:lI100|H107246E10 -107246E10:lI47|H107247130 -107247130:lI100|H107247450 -107247450:lI101|H107247760 -107247760:lI118|H107247A60 -107247A60:lI47|H107247D50 -107247D50:lI101|H107248030 -107248030:lI114|H1072482F0 -1072482F0:lI108|H1072485B0 -1072485B0:lI97|H107248860 -107248860:lI110|H107248B00 -107248B00:lI103|H107248D80 -107248D80:lI47|H107248FF0 -107248FF0:lI103|H107249260 -107249260:lI108|H1072494C0 -1072494C0:lI101|H107249720 -107249720:lI101|H107249970 -107249970:lI117|H107249B80 -107249B80:lI110|H107249D70 -107249D70:lI105|H107249F50 -107249F50:lI116|H10724A100 -10724A100:lI47|H10724A290 -10724A290:lI101|H10724A410 -10724A410:lI98|H10724A580 -10724A580:lI105|H10724A6D0 -10724A6D0:lI110|N -106600720:lH106600778|H106600790 -106600778:t2:H1071F0068,A7:nocache -1071F0068:lI47|H1071F0628 -1071F0628:lI85|H1071F18B0 -1071F18B0:lI115|H1071F3B28 -1071F3B28:lI101|H1071F6340 -1071F6340:lI114|H1071F8F90 -1071F8F90:lI115|H1071FBED0 -1071FBED0:lI47|H1071FEF88 -1071FEF88:lI110|H107202130 -107202130:lI105|H107205370 -107205370:lI99|H107208668 -107208668:lI104|H10720B938 -10720B938:lI111|H10720EBF8 -10720EBF8:lI108|H107211F58 -107211F58:lI97|H107215430 -107215430:lI115|H107218AC0 -107218AC0:lI99|H10721C2F0 -10721C2F0:lI97|H10721F9F0 -10721F9F0:lI114|H107222EE8 -107222EE8:lI108|H107226050 -107226050:lI115|H107228E38 -107228E38:lI111|H10722B870 -10722B870:lI110|H10722DF48 -10722DF48:lI47|H107230370 -107230370:lI86|H1072324E8 -1072324E8:lI83|H107234350 -107234350:lI32|H107235EB8 -107235EB8:lI67|H1072377B0 -1072377B0:lI111|H107238E38 -107238E38:lI100|H10723A310 -10723A310:lI101|H10723B670 -10723B670:lI47|H10723C750 -10723C750:lI65|H10723D610 -10723D610:lI100|H10723E390 -10723E390:lI118|H10723EFA0 -10723EFA0:lI101|H10723FA70 -10723FA70:lI110|H1072403C0 -1072403C0:lI116|H107240C40 -107240C40:lI79|H1072413D0 -1072413D0:lI102|H107241B00 -107241B00:lI67|H1072421D0 -1072421D0:lI111|H107242840 -107242840:lI100|H107242E40 -107242E40:lI101|H1072433B0 -1072433B0:lI47|H1072438F0 -1072438F0:lI97|H107243DE0 -107243DE0:lI111|H1072442D0 -1072442D0:lI99|H107244780 -107244780:lI50|H107244BF0 -107244BF0:lI48|H107245050 -107245050:lI50|H1072454A0 -1072454A0:lI51|H1072458A0 -1072458A0:lI47|H107245C60 -107245C60:lI98|H107245FF0 -107245FF0:lI117|H107246380 -107246380:lI105|H107246710 -107246710:lI108|H107246AA0 -107246AA0:lI100|H107246DE0 -107246DE0:lI47|H107247100 -107247100:lI100|H107247420 -107247420:lI101|H107247730 -107247730:lI118|H107247A30 -107247A30:lI47|H107247D20 -107247D20:lI101|H107248000 -107248000:lI114|H1072482C0 -1072482C0:lI108|H107248580 -107248580:lI97|H107248830 -107248830:lI110|H107248AE0 -107248AE0:lI103|H107248D60 -107248D60:lI47|H107248FD0 -107248FD0:lI115|H107249240 -107249240:lI110|H1072494A0 -1072494A0:lI97|H107249700 -107249700:lI103|H107249950 -107249950:lI47|H107249B60 -107249B60:lI101|H107249D50 -107249D50:lI98|H107249F30 -107249F30:lI105|H10724A0E0 -10724A0E0:lI110|N -106600790:lH1066007E8|H106600800 -1066007E8:t2:H1071F0058,A7:nocache -1071F0058:lI47|H1071F0618 -1071F0618:lI85|H1071F18A0 -1071F18A0:lI115|H1071F3B18 -1071F3B18:lI101|H1071F6330 -1071F6330:lI114|H1071F8F80 -1071F8F80:lI115|H1071FBEC0 -1071FBEC0:lI47|H1071FEF78 -1071FEF78:lI110|H107202120 -107202120:lI105|H107205360 -107205360:lI99|H107208658 -107208658:lI104|H10720B928 -10720B928:lI111|H10720EBE8 -10720EBE8:lI108|H107211F48 -107211F48:lI97|H107215420 -107215420:lI115|H107218AB0 -107218AB0:lI99|H10721C2E0 -10721C2E0:lI97|H10721F9E0 -10721F9E0:lI114|H107222ED8 -107222ED8:lI108|H107226040 -107226040:lI115|H107228E28 -107228E28:lI111|H10722B860 -10722B860:lI110|H10722DF38 -10722DF38:lI47|H107230360 -107230360:lI86|H1072324D8 -1072324D8:lI83|H107234340 -107234340:lI32|H107235EA8 -107235EA8:lI67|H1072377A0 -1072377A0:lI111|H107238E28 -107238E28:lI100|H10723A300 -10723A300:lI101|H10723B660 -10723B660:lI47|H10723C740 -10723C740:lI65|H10723D600 -10723D600:lI100|H10723E380 -10723E380:lI118|H10723EF90 -10723EF90:lI101|H10723FA60 -10723FA60:lI110|H1072403B0 -1072403B0:lI116|H107240C30 -107240C30:lI79|H1072413C0 -1072413C0:lI102|H107241AF0 -107241AF0:lI67|H1072421C0 -1072421C0:lI111|H107242830 -107242830:lI100|H107242E30 -107242E30:lI101|H1072433A0 -1072433A0:lI47|H1072438E0 -1072438E0:lI97|H107243DD0 -107243DD0:lI111|H1072442C0 -1072442C0:lI99|H107244770 -107244770:lI50|H107244BE0 -107244BE0:lI48|H107245040 -107245040:lI50|H107245490 -107245490:lI51|H107245890 -107245890:lI47|H107245C50 -107245C50:lI98|H107245FE0 -107245FE0:lI117|H107246370 -107246370:lI105|H107246700 -107246700:lI108|H107246A90 -107246A90:lI100|H107246DD0 -107246DD0:lI47|H1072470F0 -1072470F0:lI100|H107247410 -107247410:lI101|H107247720 -107247720:lI118|H107247A20 -107247A20:lI47|H107247D10 -107247D10:lI101|H107247FF0 -107247FF0:lI114|H1072482B0 -1072482B0:lI108|H107248570 -107248570:lI97|H107248820 -107248820:lI110|H107248AD0 -107248AD0:lI103|H107248D50 -107248D50:lI47|H107248FC0 -107248FC0:lI116|H107249230 -107249230:lI111|H107249490 -107249490:lI109|H1072496F0 -1072496F0:lI47|H107249940 -107249940:lI101|H107249B50 -107249B50:lI98|H107249D40 -107249D40:lI105|H107249F20 -107249F20:lI110|N -106600800:lH106600858|H106600870 -106600858:t2:H1071F0028,A7:nocache -1071F0028:lI47|H1071F05E8 -1071F05E8:lI85|H1071F1870 -1071F1870:lI115|H1071F3AE8 -1071F3AE8:lI101|H1071F6300 -1071F6300:lI114|H1071F8F50 -1071F8F50:lI115|H1071FBE90 -1071FBE90:lI47|H1071FEF48 -1071FEF48:lI110|H1072020F0 -1072020F0:lI105|H107205330 -107205330:lI99|H107208628 -107208628:lI104|H10720B8F8 -10720B8F8:lI111|H10720EBB8 -10720EBB8:lI108|H107211F18 -107211F18:lI97|H1072153F0 -1072153F0:lI115|H107218A80 -107218A80:lI99|H10721C2B0 -10721C2B0:lI97|H10721F9B0 -10721F9B0:lI114|H107222EA8 -107222EA8:lI108|H107226010 -107226010:lI115|H107228DF8 -107228DF8:lI111|H10722B830 -10722B830:lI110|H10722DF08 -10722DF08:lI47|H107230330 -107230330:lI86|H1072324A8 -1072324A8:lI83|H107234310 -107234310:lI32|H107235E78 -107235E78:lI67|H107237770 -107237770:lI111|H107238DF8 -107238DF8:lI100|H10723A2D0 -10723A2D0:lI101|H10723B630 -10723B630:lI47|H10723C710 -10723C710:lI65|H10723D5D0 -10723D5D0:lI100|H10723E350 -10723E350:lI118|H10723EF60 -10723EF60:lI101|H10723FA30 -10723FA30:lI110|H107240380 -107240380:lI116|H107240C00 -107240C00:lI79|H107241390 -107241390:lI102|H107241AC0 -107241AC0:lI67|H107242190 -107242190:lI111|H107242800 -107242800:lI100|H107242E00 -107242E00:lI101|H107243370 -107243370:lI47|H1072438B0 -1072438B0:lI97|H107243DB0 -107243DB0:lI111|H1072442A0 -1072442A0:lI99|H107244750 -107244750:lI50|H107244BC0 -107244BC0:lI48|H107245020 -107245020:lI50|H107245470 -107245470:lI51|H107245870 -107245870:lI47|H107245C30 -107245C30:lI98|H107245FC0 -107245FC0:lI117|H107246350 -107246350:lI105|H1072466E0 -1072466E0:lI108|H107246A70 -107246A70:lI100|H107246DB0 -107246DB0:lI47|H1072470D0 -1072470D0:lI100|H1072473F0 -1072473F0:lI101|H107247700 -107247700:lI118|H107247A00 -107247A00:lI47|H107247CF0 -107247CF0:lI101|H107247FD0 -107247FD0:lI114|H107248290 -107248290:lI108|H107248550 -107248550:lI97|H107248800 -107248800:lI110|H107248AB0 -107248AB0:lI103|H107248D30 -107248D30:lI47|H107248FA0 -107248FA0:lI97|H107249210 -107249210:lI111|H107249470 -107249470:lI99|H1072496D0 -1072496D0:lI50|H107249920 -107249920:lI48|H107249B30 -107249B30:lI50|H107249D20 -107249D20:lI51|H107249F00 -107249F00:lI47|H10724A0C0 -10724A0C0:lI101|H10724A260 -10724A260:lI98|H10724A3E0 -10724A3E0:lI105|H10724A550 -10724A550:lI110|N -106600870:lH1066008B8|H1066008D0 -1066008B8:t2:H1071F0048,A7:nocache -1071F0048:lI47|H1071F0608 -1071F0608:lI85|H1071F1890 -1071F1890:lI115|H1071F3B08 -1071F3B08:lI101|H1071F6320 -1071F6320:lI114|H1071F8F70 -1071F8F70:lI115|H1071FBEB0 -1071FBEB0:lI47|H1071FEF68 -1071FEF68:lI110|H107202110 -107202110:lI105|H107205350 -107205350:lI99|H107208648 -107208648:lI104|H10720B918 -10720B918:lI111|H10720EBD8 -10720EBD8:lI108|H107211F38 -107211F38:lI97|H107215410 -107215410:lI115|H107218AA0 -107218AA0:lI99|H10721C2D0 -10721C2D0:lI97|H10721F9D0 -10721F9D0:lI114|H107222EC8 -107222EC8:lI108|H107226030 -107226030:lI115|H107228E18 -107228E18:lI111|H10722B850 -10722B850:lI110|H10722DF28 -10722DF28:lI47|H107230350 -107230350:lI86|H1072324C8 -1072324C8:lI83|H107234330 -107234330:lI32|H107235E98 -107235E98:lI67|H107237790 -107237790:lI111|H107238E18 -107238E18:lI100|H10723A2F0 -10723A2F0:lI101|H10723B650 -10723B650:lI47|H10723C730 -10723C730:lI65|H10723D5F0 -10723D5F0:lI100|H10723E370 -10723E370:lI118|H10723EF80 -10723EF80:lI101|H10723FA50 -10723FA50:lI110|H1072403A0 -1072403A0:lI116|H107240C20 -107240C20:lI79|H1072413B0 -1072413B0:lI102|H107241AE0 -107241AE0:lI67|H1072421B0 -1072421B0:lI111|H107242820 -107242820:lI100|H107242E20 -107242E20:lI101|H107243390 -107243390:lI47|H1072438D0 -1072438D0:lI97|H107243DC0 -107243DC0:lI111|H1072442B0 -1072442B0:lI99|H107244760 -107244760:lI50|H107244BD0 -107244BD0:lI48|H107245030 -107245030:lI50|H107245480 -107245480:lI51|H107245880 -107245880:lI47|H107245C40 -107245C40:lI98|H107245FD0 -107245FD0:lI117|H107246360 -107246360:lI105|H1072466F0 -1072466F0:lI108|H107246A80 -107246A80:lI100|H107246DC0 -107246DC0:lI47|H1072470E0 -1072470E0:lI100|H107247400 -107247400:lI101|H107247710 -107247710:lI118|H107247A10 -107247A10:lI47|H107247D00 -107247D00:lI101|H107247FE0 -107247FE0:lI114|H1072482A0 -1072482A0:lI108|H107248560 -107248560:lI97|H107248810 -107248810:lI110|H107248AC0 -107248AC0:lI103|H107248D40 -107248D40:lI47|H107248FB0 -107248FB0:lI115|H107249220 -107249220:lI105|H107249480 -107249480:lI109|H1072496E0 -1072496E0:lI112|H107249930 -107249930:lI108|H107249B40 -107249B40:lI105|H107249D30 -107249D30:lI102|H107249F10 -107249F10:lI105|H10724A0D0 -10724A0D0:lI108|H10724A270 -10724A270:lI101|H10724A3F0 -10724A3F0:lI47|H10724A560 -10724A560:lI101|H10724A6B0 -10724A6B0:lI98|H10724A7E0 -10724A7E0:lI105|H10724A900 -10724A900:lI110|N -1066008D0:lH106600900|H106600918 -106600900:t2:H280052958,A7:nocache -106600918:lH106600948|H106600960 -106600948:t2:H1071F0088,H1071F0098 -1071F0098:Mh64:F:H1071F0658,H1071F0698,H1071F06C8,H1071F0718,H1071F0740,H1071F0778,H1071F07B0,H1071F07E0,H1071F0808,H1071F0830,H1071F0878,H1071F08A8,H1071F08D0,H1071F0908,H1071F0938 -1071F0658:Mn7:H1071F18E0,H1071F18F0,H1071F1900,H1071F1910,H1071F1920,H1071F1930,H1071F1940 -1071F18E0:lH1071F3B58|N -1071F3B58:lI103|H1071F6370 -1071F6370:lI101|H1071F8FC0 -1071F8FC0:lI110|H1071FBF00 -1071FBF00:lI95|H1071FEFB8 -1071FEFB8:lI116|H107202160 -107202160:lI99|H1072053A0 -1072053A0:lI112|H107208698 -107208698:lI46|H10720B968 -10720B968:lI98|H10720EC28 -10720EC28:lI101|H107211F88 -107211F88:lI97|H107215460 -107215460:lI109|N -1071F1940:lH1071F3BB8|N -1071F3BB8:lI105|H1071F63D0 -1071F63D0:lI110|H1071F9020 -1071F9020:lI101|H1071FBF60 -1071FBF60:lI116|H1071FF018 -1071FF018:lI95|H1072021C0 -1072021C0:lI114|H107205400 -107205400:lI101|H1072086F8 -1072086F8:lI115|H10720B9C8 -10720B9C8:lI46|H10720EC88 -10720EC88:lI98|H107211FD8 -107211FD8:lI101|H1072154A0 -1072154A0:lI97|H107218B20 -107218B20:lI109|N -1071F1930:lH1071F3BA8|N -1071F3BA8:lI114|H1071F63C0 -1071F63C0:lI97|H1071F9010 -1071F9010:lI119|H1071FBF50 -1071FBF50:lI95|H1071FF008 -1071FF008:lI102|H1072021B0 -1072021B0:lI105|H1072053F0 -1072053F0:lI108|H1072086E8 -1072086E8:lI101|H10720B9B8 -10720B9B8:lI95|H10720EC78 -10720EC78:lI105|H107211FC8 -107211FC8:lI111|H107215490 -107215490:lI46|H107218B10 -107218B10:lI98|H10721C340 -10721C340:lI101|H10721FA40 -10721FA40:lI97|H107222F38 -107222F38:lI109|N -1071F1920:lH1071F3B98|N -1071F3B98:lI103|H1071F63B0 -1071F63B0:lI114|H1071F9000 -1071F9000:lI111|H1071FBF40 -1071FBF40:lI117|H1071FEFF8 -1071FEFF8:lI112|H1072021A0 -1072021A0:lI46|H1072053E0 -1072053E0:lI98|H1072086D8 -1072086D8:lI101|H10720B9A8 -10720B9A8:lI97|H10720EC68 -10720EC68:lI109|N -1071F1910:lH1071F3B88|N -1071F3B88:lI107|H1071F63A0 -1071F63A0:lI101|H1071F8FF0 -1071F8FF0:lI114|H1071FBF30 -1071FBF30:lI110|H1071FEFE8 -1071FEFE8:lI101|H107202190 -107202190:lI108|H1072053D0 -1072053D0:lI95|H1072086C8 -1072086C8:lI114|H10720B998 -10720B998:lI101|H10720EC58 -10720EC58:lI102|H107211FB8 -107211FB8:lI99|H107215480 -107215480:lI46|H107218B00 -107218B00:lI98|H10721C330 -10721C330:lI101|H10721FA30 -10721FA30:lI97|H107222F28 -107222F28:lI109|N -1071F1900:lH1071F3B78|N -1071F3B78:lI115|H1071F6390 -1071F6390:lI111|H1071F8FE0 -1071F8FE0:lI99|H1071FBF20 -1071FBF20:lI107|H1071FEFD8 -1071FEFD8:lI101|H107202180 -107202180:lI116|H1072053C0 -1072053C0:lI46|H1072086B8 -1072086B8:lI98|H10720B988 -10720B988:lI101|H10720EC48 -10720EC48:lI97|H107211FA8 -107211FA8:lI109|N -1071F18F0:lH1071F3B68|N -1071F3B68:lI100|H1071F6380 -1071F6380:lI105|H1071F8FD0 -1071F8FD0:lI115|H1071FBF10 -1071FBF10:lI107|H1071FEFC8 -1071FEFC8:lI95|H107202170 -107202170:lI108|H1072053B0 -1072053B0:lI111|H1072086A8 -1072086A8:lI103|H10720B978 -10720B978:lI95|H10720EC38 -10720EC38:lI115|H107211F98 -107211F98:lI117|H107215470 -107215470:lI112|H107218AF0 -107218AF0:lI46|H10721C320 -10721C320:lI98|H10721FA20 -10721FA20:lI101|H107222F18 -107222F18:lI97|H107226080 -107226080:lI109|N -1071F0938:Mn7:H1071F1E28,H1071F1E38,H1071F1E48,H1071F1E58,H1071F1E70,H1071F1E80,H1071F1E90 -1071F1E28:lH1071F4108|N -1071F4108:lI105|H1071F6928 -1071F6928:lI110|H1071F9580 -1071F9580:lI101|H1071FC4C0 -1071FC4C0:lI116|H1071FF578 -1071FF578:lI54|H107202720 -107202720:lI95|H107205960 -107205960:lI116|H107208C48 -107208C48:lI99|H10720BEF8 -10720BEF8:lI112|H10720F178 -10720F178:lI46|H107212498 -107212498:lI98|H107215930 -107215930:lI101|H107218FA0 -107218FA0:lI97|H10721C720 -10721C720:lI109|N -1071F1E90:lH1071F4178|N -1071F4178:lI105|H1071F6998 -1071F6998:lI110|H1071F95F0 -1071F95F0:lI101|H1071FC530 -1071FC530:lI116|H1071FF5E8 -1071FF5E8:lI95|H107202790 -107202790:lI101|H1072059D0 -1072059D0:lI112|H107208CA8 -107208CA8:lI109|H10720BF58 -10720BF58:lI100|H10720F1D8 -10720F1D8:lI95|H1072124F8 -1072124F8:lI115|H107215980 -107215980:lI111|H107218FF0 -107218FF0:lI99|H10721C750 -10721C750:lI107|H10721FDD0 -10721FDD0:lI101|H107223258 -107223258:lI116|H107226340 -107226340:lI46|H1072290D8 -1072290D8:lI98|H10722BAA0 -10722BAA0:lI101|H10722E108 -10722E108:lI97|H1072304C0 -1072304C0:lI109|N -1071F1E80:lH1071F4168|N -1071F4168:lI112|H1071F6988 -1071F6988:lI103|H1071F95E0 -1071F95E0:lI46|H1071FC520 -1071FC520:lI98|H1071FF5D8 -1071FF5D8:lI101|H107202780 -107202780:lI97|H1072059C0 -1072059C0:lI109|N -1071F1E70:lH1071F4158|N -1071F4158:lI108|H1071F6978 -1071F6978:lI111|H1071F95D0 -1071F95D0:lI99|H1071FC510 -1071FC510:lI97|H1071FF5C8 -1071FF5C8:lI108|H107202770 -107202770:lI95|H1072059B0 -1072059B0:lI117|H107208C98 -107208C98:lI100|H10720BF48 -10720BF48:lI112|H10720F1C8 -10720F1C8:lI46|H1072124E8 -1072124E8:lI98|H107215970 -107215970:lI101|H107218FE0 -107218FE0:lI97|H10721C740 -10721C740:lI109|N -1071F1E58:Mn2:H1071F4138,H1071F4148 -1071F4138:lH1071F6958|N -1071F6958:lI107|H1071F95B0 -1071F95B0:lI101|H1071FC4F0 -1071FC4F0:lI114|H1071FF5A8 -1071FF5A8:lI110|H107202750 -107202750:lI101|H107205990 -107205990:lI108|H107208C78 -107208C78:lI46|H10720BF28 -10720BF28:lI97|H10720F1A8 -10720F1A8:lI112|H1072124C8 -1072124C8:lI112|H107215950 -107215950:lI117|H107218FC0 -107218FC0:lI112|N -1071F4148:lH1071F6968|N -1071F6968:lI103|H1071F95C0 -1071F95C0:lI101|H1071FC500 -1071FC500:lI110|H1071FF5B8 -1071FF5B8:lI95|H107202760 -107202760:lI117|H1072059A0 -1072059A0:lI100|H107208C88 -107208C88:lI112|H10720BF38 -10720BF38:lI46|H10720F1B8 -10720F1B8:lI98|H1072124D8 -1072124D8:lI101|H107215960 -107215960:lI97|H107218FD0 -107218FD0:lI109|N -1071F1E48:lH1071F4128|N -1071F4128:lI108|H1071F6948 -1071F6948:lI111|H1071F95A0 -1071F95A0:lI103|H1071FC4E0 -1071FC4E0:lI103|H1071FF598 -1071FF598:lI101|H107202740 -107202740:lI114|H107205980 -107205980:lI95|H107208C68 -107208C68:lI104|H10720BF18 -10720BF18:lI95|H10720F198 -10720F198:lI99|H1072124B8 -1072124B8:lI111|H107215940 -107215940:lI109|H107218FB0 -107218FB0:lI109|H10721C730 -10721C730:lI111|H10721FDC0 -10721FDC0:lI110|H107223248 -107223248:lI46|H107226330 -107226330:lI98|H1072290C8 -1072290C8:lI101|H10722BA90 -10722BA90:lI97|H10722E0F8 -10722E0F8:lI109|N -1071F1E38:lH1071F4118|N -1071F4118:lI108|H1071F6938 -1071F6938:lI111|H1071F9590 -1071F9590:lI103|H1071FC4D0 -1071FC4D0:lI103|H1071FF588 -1071FF588:lI101|H107202730 -107202730:lI114|H107205970 -107205970:lI46|H107208C58 -107208C58:lI98|H10720BF08 -10720BF08:lI101|H10720F188 -10720F188:lI97|H1072124A8 -1072124A8:lI109|N -1071F0908:Mn5:H1071F1DD0,H1071F1DE8,H1071F1DF8,H1071F1E08,H1071F1E18 -1071F1DD0:Mn2:H1071F40A8,H1071F40B8 -1071F40A8:lH1071F68C8|N -1071F68C8:lI115|H1071F9520 -1071F9520:lI101|H1071FC460 -1071FC460:lI113|H1071FF518 -1071FF518:lI95|H1072026C0 -1072026C0:lI116|H107205900 -107205900:lI114|H107208BE8 -107208BE8:lI97|H10720BE98 -10720BE98:lI99|H10720F118 -10720F118:lI101|H107212438 -107212438:lI46|H1072158D0 -1072158D0:lI98|H107218F40 -107218F40:lI101|H10721C6D0 -10721C6D0:lI97|H10721FD80 -10721FD80:lI109|N -1071F40B8:lH1071F68D8|N -1071F68D8:lI101|H1071F9530 -1071F9530:lI114|H1071FC470 -1071FC470:lI108|H1071FF528 -1071FF528:lI95|H1072026D0 -1072026D0:lI100|H107205910 -107205910:lI100|H107208BF8 -107208BF8:lI108|H10720BEA8 -10720BEA8:lI108|H10720F128 -10720F128:lI46|H107212448 -107212448:lI98|H1072158E0 -1072158E0:lI101|H107218F50 -107218F50:lI97|H10721C6E0 -10721C6E0:lI109|N -1071F1E18:lH1071F40F8|N -1071F40F8:lI97|H1071F6918 -1071F6918:lI112|H1071F9570 -1071F9570:lI112|H1071FC4B0 -1071FC4B0:lI108|H1071FF568 -1071FF568:lI105|H107202710 -107202710:lI99|H107205950 -107205950:lI97|H107208C38 -107208C38:lI116|H10720BEE8 -10720BEE8:lI105|H10720F168 -10720F168:lI111|H107212488 -107212488:lI110|H107215920 -107215920:lI46|H107218F90 -107218F90:lI98|H10721C710 -10721C710:lI101|H10721FDB0 -10721FDB0:lI97|H107223238 -107223238:lI109|N -1071F1E08:lH1071F40E8|N -1071F40E8:lI105|H1071F6908 -1071F6908:lI110|H1071F9560 -1071F9560:lI101|H1071FC4A0 -1071FC4A0:lI116|H1071FF558 -1071FF558:lI95|H107202700 -107202700:lI101|H107205940 -107205940:lI112|H107208C28 -107208C28:lI109|H10720BED8 -10720BED8:lI100|H10720F158 -10720F158:lI95|H107212478 -107212478:lI100|H107215910 -107215910:lI105|H107218F80 -107218F80:lI115|H10721C700 -10721C700:lI116|H10721FDA0 -10721FDA0:lI46|H107223228 -107223228:lI98|H107226320 -107226320:lI101|H1072290B8 -1072290B8:lI97|H10722BA80 -10722BA80:lI109|N -1071F1DF8:lH1071F40D8|N -1071F40D8:lI114|H1071F68F8 -1071F68F8:lI97|H1071F9550 -1071F9550:lI109|H1071FC490 -1071FC490:lI95|H1071FF548 -1071FF548:lI102|H1072026F0 -1072026F0:lI105|H107205930 -107205930:lI108|H107208C18 -107208C18:lI101|H10720BEC8 -10720BEC8:lI46|H10720F148 -10720F148:lI98|H107212468 -107212468:lI101|H107215900 -107215900:lI97|H107218F70 -107218F70:lI109|N -1071F1DE8:lH1071F40C8|N -1071F40C8:lI105|H1071F68E8 -1071F68E8:lI110|H1071F9540 -1071F9540:lI101|H1071FC480 -1071FC480:lI116|H1071FF538 -1071FF538:lI54|H1072026E0 -1072026E0:lI95|H107205920 -107205920:lI115|H107208C08 -107208C08:lI99|H10720BEB8 -10720BEB8:lI116|H10720F138 -10720F138:lI112|H107212458 -107212458:lI46|H1072158F0 -1072158F0:lI98|H107218F60 -107218F60:lI101|H10721C6F0 -10721C6F0:lI97|H10721FD90 -10721FD90:lI109|N -1071F08D0:Mn6:H1071F1D68,H1071F1D80,H1071F1D90,H1071F1DA0,H1071F1DB0,H1071F1DC0 -1071F1D68:Mn2:H1071F4038,H1071F4048 -1071F4038:lH1071F6858|N -1071F6858:lI100|H1071F94B0 -1071F94B0:lI105|H1071FC3F0 -1071FC3F0:lI115|H1071FF4A8 -1071FF4A8:lI107|H107202650 -107202650:lI95|H107205890 -107205890:lI108|H107208B78 -107208B78:lI111|H10720BE28 -10720BE28:lI103|H10720F0A8 -10720F0A8:lI46|H1072123C8 -1072123C8:lI98|H107215860 -107215860:lI101|H107218ED0 -107218ED0:lI97|H10721C670 -10721C670:lI109|N -1071F4048:lH1071F6868|N -1071F6868:lI103|H1071F94C0 -1071F94C0:lI101|H1071FC400 -1071FC400:lI110|H1071FF4B8 -1071FF4B8:lI95|H107202660 -107202660:lI117|H1072058A0 -1072058A0:lI100|H107208B88 -107208B88:lI112|H10720BE38 -10720BE38:lI95|H10720F0B8 -10720F0B8:lI115|H1072123D8 -1072123D8:lI111|H107215870 -107215870:lI99|H107218EE0 -107218EE0:lI107|H10721C680 -10721C680:lI101|H10721FD30 -10721FD30:lI116|H1072231D8 -1072231D8:lI46|H1072262E0 -1072262E0:lI98|H107229078 -107229078:lI101|H10722BA40 -10722BA40:lI97|H10722E0B8 -10722E0B8:lI109|N -1071F1DC0:lH1071F4098|N -1071F4098:lI101|H1071F68B8 -1071F68B8:lI114|H1071F9510 -1071F9510:lI108|H1071FC450 -1071FC450:lI95|H1071FF508 -1071FF508:lI115|H1072026B0 -1072026B0:lI105|H1072058F0 -1072058F0:lI103|H107208BD8 -107208BD8:lI110|H10720BE88 -10720BE88:lI97|H10720F108 -10720F108:lI108|H107212428 -107212428:lI95|H1072158C0 -1072158C0:lI104|H107218F30 -107218F30:lI97|H10721C6C0 -10721C6C0:lI110|H10721FD70 -10721FD70:lI100|H107223218 -107223218:lI108|H107226310 -107226310:lI101|H1072290A8 -1072290A8:lI114|H10722BA70 -10722BA70:lI46|H10722E0E8 -10722E0E8:lI98|H1072304B0 -1072304B0:lI101|H1072325E8 -1072325E8:lI97|H107234420 -107234420:lI109|N -1071F1DB0:lH1071F4088|N -1071F4088:lI114|H1071F68A8 -1071F68A8:lI97|H1071F9500 -1071F9500:lI119|H1071FC440 -1071FC440:lI95|H1071FF4F8 -1071FF4F8:lI102|H1072026A0 -1072026A0:lI105|H1072058E0 -1072058E0:lI108|H107208BC8 -107208BC8:lI101|H10720BE78 -10720BE78:lI95|H10720F0F8 -10720F0F8:lI105|H107212418 -107212418:lI111|H1072158B0 -1072158B0:lI95|H107218F20 -107218F20:lI105|H10721C6B0 -10721C6B0:lI110|H10721FD60 -10721FD60:lI102|H107223208 -107223208:lI108|H107226300 -107226300:lI97|H107229098 -107229098:lI116|H10722BA60 -10722BA60:lI101|H10722E0D8 -10722E0D8:lI46|H1072304A0 -1072304A0:lI98|H1072325D8 -1072325D8:lI101|H107234410 -107234410:lI97|H107235F68 -107235F68:lI109|N -1071F1DA0:lH1071F4078|N -1071F4078:lI102|H1071F6898 -1071F6898:lI105|H1071F94F0 -1071F94F0:lI108|H1071FC430 -1071FC430:lI101|H1071FF4E8 -1071FF4E8:lI95|H107202690 -107202690:lI115|H1072058D0 -1072058D0:lI101|H107208BB8 -107208BB8:lI114|H10720BE68 -10720BE68:lI118|H10720F0E8 -10720F0E8:lI101|H107212408 -107212408:lI114|H1072158A0 -1072158A0:lI46|H107218F10 -107218F10:lI98|H10721C6A0 -10721C6A0:lI101|H10721FD50 -10721FD50:lI97|H1072231F8 -1072231F8:lI109|N -1071F1D90:lH1071F4068|N -1071F4068:lI112|H1071F6888 -1071F6888:lI114|H1071F94E0 -1071F94E0:lI105|H1071FC420 -1071FC420:lI109|H1071FF4D8 -1071FF4D8:lI95|H107202680 -107202680:lI116|H1072058C0 -1072058C0:lI116|H107208BA8 -107208BA8:lI121|H10720BE58 -10720BE58:lI46|H10720F0D8 -10720F0D8:lI98|H1072123F8 -1072123F8:lI101|H107215890 -107215890:lI97|H107218F00 -107218F00:lI109|N -1071F1D80:lH1071F4058|N -1071F4058:lI101|H1071F6878 -1071F6878:lI114|H1071F94D0 -1071F94D0:lI108|H1071FC410 -1071FC410:lI95|H1071FF4C8 -1071FF4C8:lI98|H107202670 -107202670:lI111|H1072058B0 -1072058B0:lI111|H107208B98 -107208B98:lI116|H10720BE48 -10720BE48:lI95|H10720F0C8 -10720F0C8:lI115|H1072123E8 -1072123E8:lI101|H107215880 -107215880:lI114|H107218EF0 -107218EF0:lI118|H10721C690 -10721C690:lI101|H10721FD40 -10721FD40:lI114|H1072231E8 -1072231E8:lI46|H1072262F0 -1072262F0:lI98|H107229088 -107229088:lI101|H10722BA50 -10722BA50:lI97|H10722E0C8 -10722E0C8:lI109|N -1071F08A8:Mn4:H1071F1D18,H1071F1D28,H1071F1D40,H1071F1D50 -1071F1D18:lH1071F3FD8|N -1071F3FD8:lI104|H1071F67F8 -1071F67F8:lI101|H1071F9450 -1071F9450:lI97|H1071FC390 -1071FC390:lI114|H1071FF448 -1071FF448:lI116|H1072025F0 -1072025F0:lI46|H107205830 -107205830:lI98|H107208B18 -107208B18:lI101|H10720BDC8 -10720BDC8:lI97|H10720F048 -10720F048:lI109|N -1071F1D50:Mn2:H1071F4018,H1071F4028 -1071F4018:lH1071F6838|N -1071F6838:lI103|H1071F9490 -1071F9490:lI108|H1071FC3D0 -1071FC3D0:lI111|H1071FF488 -1071FF488:lI98|H107202630 -107202630:lI97|H107205870 -107205870:lI108|H107208B58 -107208B58:lI95|H10720BE08 -10720BE08:lI115|H10720F088 -10720F088:lI101|H1072123A8 -1072123A8:lI97|H107215840 -107215840:lI114|H107218EB0 -107218EB0:lI99|H10721C650 -10721C650:lI104|H10721FD10 -10721FD10:lI46|H1072231C8 -1072231C8:lI98|H1072262D0 -1072262D0:lI101|H107229068 -107229068:lI97|H10722BA30 -10722BA30:lI109|N -1071F4028:lH1071F6848|N -1071F6848:lI101|H1071F94A0 -1071F94A0:lI114|H1071FC3E0 -1071FC3E0:lI108|H1071FF498 -1071FF498:lI95|H107202640 -107202640:lI114|H107205880 -107205880:lI101|H107208B68 -107208B68:lI112|H10720BE18 -10720BE18:lI108|H10720F098 -10720F098:lI121|H1072123B8 -1072123B8:lI46|H107215850 -107215850:lI98|H107218EC0 -107218EC0:lI101|H10721C660 -10721C660:lI97|H10721FD20 -10721FD20:lI109|N -1071F1D40:lH1071F4008|N -1071F4008:lI100|H1071F6828 -1071F6828:lI105|H1071F9480 -1071F9480:lI115|H1071FC3C0 -1071FC3C0:lI107|H1071FF478 -1071FF478:lI95|H107202620 -107202620:lI108|H107205860 -107205860:lI111|H107208B48 -107208B48:lI103|H10720BDF8 -10720BDF8:lI95|H10720F078 -10720F078:lI49|H107212398 -107212398:lI46|H107215830 -107215830:lI98|H107218EA0 -107218EA0:lI101|H10721C640 -10721C640:lI97|H10721FD00 -10721FD00:lI109|N -1071F1D28:Mn2:H1071F3FE8,H1071F3FF8 -1071F3FE8:lH1071F6808|N -1071F6808:lI97|H1071F9460 -1071F9460:lI117|H1071FC3A0 -1071FC3A0:lI116|H1071FF458 -1071FF458:lI104|H107202600 -107202600:lI46|H107205840 -107205840:lI98|H107208B28 -107208B28:lI101|H10720BDD8 -10720BDD8:lI97|H10720F058 -10720F058:lI109|N -1071F3FF8:lH1071F6818|N -1071F6818:lI105|H1071F9470 -1071F9470:lI110|H1071FC3B0 -1071FC3B0:lI101|H1071FF468 -1071FF468:lI116|H107202610 -107202610:lI95|H107205850 -107205850:lI112|H107208B38 -107208B38:lI97|H10720BDE8 -10720BDE8:lI114|H10720F068 -10720F068:lI115|H107212388 -107212388:lI101|H107215820 -107215820:lI46|H107218E90 -107218E90:lI98|H10721C630 -10721C630:lI101|H10721FCF0 -10721FCF0:lI97|H1072231B8 -1072231B8:lI109|N -1071F0878:Mn5:H1071F1CC0,H1071F1CD0,H1071F1CE8,H1071F1CF8,H1071F1D08 -1071F1CC0:lH1071F3F78|N -1071F3F78:lI103|H1071F6798 -1071F6798:lI101|H1071F93F0 -1071F93F0:lI110|H1071FC330 -1071FC330:lI95|H1071FF3E8 -1071FF3E8:lI115|H107202590 -107202590:lI99|H1072057D0 -1072057D0:lI116|H107208AB8 -107208AB8:lI112|H10720BD68 -10720BD68:lI46|H10720EFE8 -10720EFE8:lI98|H107212328 -107212328:lI101|H1072157C0 -1072157C0:lI97|H107218E40 -107218E40:lI109|N -1071F1D08:lH1071F3FC8|N -1071F3FC8:lI101|H1071F67E8 -1071F67E8:lI114|H1071F9440 -1071F9440:lI108|H1071FC380 -1071FC380:lI95|H1071FF438 -1071FF438:lI101|H1072025E0 -1072025E0:lI112|H107205820 -107205820:lI109|H107208B08 -107208B08:lI100|H10720BDB8 -10720BDB8:lI46|H10720F038 -10720F038:lI98|H107212378 -107212378:lI101|H107215810 -107215810:lI97|H107218E80 -107218E80:lI109|N -1071F1CF8:lH1071F3FB8|N -1071F3FB8:lI108|H1071F67D8 -1071F67D8:lI111|H1071F9430 -1071F9430:lI103|H1071FC370 -1071FC370:lI103|H1071FF428 -1071FF428:lI101|H1072025D0 -1072025D0:lI114|H107205810 -107205810:lI95|H107208AF8 -107208AF8:lI115|H10720BDA8 -10720BDA8:lI101|H10720F028 -10720F028:lI114|H107212368 -107212368:lI118|H107215800 -107215800:lI101|H107218E70 -107218E70:lI114|H10721C620 -10721C620:lI46|H10721FCE0 -10721FCE0:lI98|H1072231A8 -1072231A8:lI101|H1072262C0 -1072262C0:lI97|H107229058 -107229058:lI109|N -1071F1CE8:lH1071F3FA8|N -1071F3FA8:lI105|H1071F67C8 -1071F67C8:lI110|H1071F9420 -1071F9420:lI101|H1071FC360 -1071FC360:lI116|H1071FF418 -1071FF418:lI95|H1072025C0 -1072025C0:lI100|H107205800 -107205800:lI98|H107208AE8 -107208AE8:lI46|H10720BD98 -10720BD98:lI98|H10720F018 -10720F018:lI101|H107212358 -107212358:lI97|H1072157F0 -1072157F0:lI109|N -1071F1CD0:Mn2:H1071F3F88,H1071F3F98 -1071F3F88:lH1071F67A8|N -1071F67A8:lI108|H1071F9400 -1071F9400:lI111|H1071FC340 -1071FC340:lI103|H1071FF3F8 -1071FF3F8:lI103|H1072025A0 -1072025A0:lI101|H1072057E0 -1072057E0:lI114|H107208AC8 -107208AC8:lI95|H10720BD78 -10720BD78:lI102|H10720EFF8 -10720EFF8:lI105|H107212338 -107212338:lI108|H1072157D0 -1072157D0:lI116|H107218E50 -107218E50:lI101|H10721C600 -10721C600:lI114|H10721FCC0 -10721FCC0:lI115|H107223188 -107223188:lI46|H1072262A0 -1072262A0:lI98|H107229038 -107229038:lI101|H10722BA10 -10722BA10:lI97|H10722E098 -10722E098:lI109|N -1071F3F98:lH1071F67B8|N -1071F67B8:lI101|H1071F9410 -1071F9410:lI114|H1071FC350 -1071FC350:lI108|H1071FF408 -1071FF408:lI95|H1072025B0 -1072025B0:lI99|H1072057F0 -1072057F0:lI111|H107208AD8 -107208AD8:lI109|H10720BD88 -10720BD88:lI112|H10720F008 -10720F008:lI105|H107212348 -107212348:lI108|H1072157E0 -1072157E0:lI101|H107218E60 -107218E60:lI95|H10721C610 -10721C610:lI115|H10721FCD0 -10721FCD0:lI101|H107223198 -107223198:lI114|H1072262B0 -1072262B0:lI118|H107229048 -107229048:lI101|H10722BA20 -10722BA20:lI114|H10722E0A8 -10722E0A8:lI46|H107230490 -107230490:lI98|H1072325C8 -1072325C8:lI101|H107234400 -107234400:lI97|H107235F58 -107235F58:lI109|N -1071F0830:Mn8:H1071F1C28,H1071F1C38,H1071F1C48,H1071F1C58,H1071F1C68,H1071F1C78,H1071F1C88,H1071F1CA0 -1071F1C28:lH1071F3EC8|N -1071F3EC8:lI110|H1071F66E8 -1071F66E8:lI101|H1071F9340 -1071F9340:lI116|H1071FC280 -1071FC280:lI46|H1071FF338 -1071FF338:lI98|H1072024E0 -1072024E0:lI101|H107205720 -107205720:lI97|H107208A08 -107208A08:lI109|N -1071F1CA0:Mn3:H1071F3F48,H1071F3F58,H1071F3F68 -1071F3F48:lH1071F6768|N -1071F6768:lI100|H1071F93C0 -1071F93C0:lI105|H1071FC300 -1071FC300:lI115|H1071FF3B8 -1071FF3B8:lI116|H107202560 -107202560:lI95|H1072057A0 -1072057A0:lI97|H107208A88 -107208A88:lI99|H10720BD38 -10720BD38:lI46|H10720EFB8 -10720EFB8:lI98|H1072122F8 -1072122F8:lI101|H107215790 -107215790:lI97|H107218E10 -107218E10:lI109|N -1071F3F68:lH1071F6788|N -1071F6788:lI101|H1071F93E0 -1071F93E0:lI114|H1071FC320 -1071FC320:lI108|H1071FF3D8 -1071FF3D8:lI95|H107202580 -107202580:lI101|H1072057C0 -1072057C0:lI114|H107208AA8 -107208AA8:lI116|H10720BD58 -10720BD58:lI115|H10720EFD8 -10720EFD8:lI95|H107212318 -107212318:lI101|H1072157B0 -1072157B0:lI114|H107218E30 -107218E30:lI114|H10721C5F0 -10721C5F0:lI111|H10721FCB0 -10721FCB0:lI114|H107223178 -107223178:lI115|H107226290 -107226290:lI46|H107229028 -107229028:lI98|H10722BA00 -10722BA00:lI101|H10722E088 -10722E088:lI97|H107230480 -107230480:lI109|N -1071F3F58:lH1071F6778|N -1071F6778:lI114|H1071F93D0 -1071F93D0:lI97|H1071FC310 -1071FC310:lI119|H1071FF3C8 -1071FF3C8:lI95|H107202570 -107202570:lI102|H1072057B0 -1072057B0:lI105|H107208A98 -107208A98:lI108|H10720BD48 -10720BD48:lI101|H10720EFC8 -10720EFC8:lI95|H107212308 -107212308:lI105|H1072157A0 -1072157A0:lI111|H107218E20 -107218E20:lI95|H10721C5E0 -10721C5E0:lI108|H10721FCA0 -10721FCA0:lI105|H107223168 -107223168:lI115|H107226280 -107226280:lI116|H107229018 -107229018:lI46|H10722B9F0 -10722B9F0:lI98|H10722E078 -10722E078:lI101|H107230470 -107230470:lI97|H1072325B8 -1072325B8:lI109|N -1071F1C88:Mn2:H1071F3F28,H1071F3F38 -1071F3F28:lH1071F6748|N -1071F6748:lI103|H1071F93A0 -1071F93A0:lI101|H1071FC2E0 -1071FC2E0:lI110|H1071FF398 -1071FF398:lI95|H107202540 -107202540:lI116|H107205780 -107205780:lI99|H107208A68 -107208A68:lI112|H10720BD18 -10720BD18:lI95|H10720EF98 -10720EF98:lI115|H1072122D8 -1072122D8:lI111|H107215770 -107215770:lI99|H107218DF0 -107218DF0:lI107|H10721C5C0 -10721C5C0:lI101|H10721FC80 -10721FC80:lI116|H107223148 -107223148:lI46|H107226260 -107226260:lI98|H107228FF8 -107228FF8:lI101|H10722B9D0 -10722B9D0:lI97|H10722E058 -10722E058:lI109|N -1071F3F38:lH1071F6758|N -1071F6758:lI100|H1071F93B0 -1071F93B0:lI105|H1071FC2F0 -1071FC2F0:lI115|H1071FF3A8 -1071FF3A8:lI107|H107202550 -107202550:lI95|H107205790 -107205790:lI108|H107208A78 -107208A78:lI111|H10720BD28 -10720BD28:lI103|H10720EFA8 -10720EFA8:lI95|H1072122E8 -1072122E8:lI115|H107215780 -107215780:lI101|H107218E00 -107218E00:lI114|H10721C5D0 -10721C5D0:lI118|H10721FC90 -10721FC90:lI101|H107223158 -107223158:lI114|H107226270 -107226270:lI46|H107229008 -107229008:lI98|H10722B9E0 -10722B9E0:lI101|H10722E068 -10722E068:lI97|H107230460 -107230460:lI109|N -1071F1C78:lH1071F3F18|N -1071F3F18:lI105|H1071F6738 -1071F6738:lI110|H1071F9390 -1071F9390:lI101|H1071FC2D0 -1071FC2D0:lI116|H1071FF388 -1071FF388:lI95|H107202530 -107202530:lI117|H107205770 -107205770:lI100|H107208A58 -107208A58:lI112|H10720BD08 -10720BD08:lI46|H10720EF88 -10720EF88:lI98|H1072122C8 -1072122C8:lI101|H107215760 -107215760:lI97|H107218DE0 -107218DE0:lI109|N -1071F1C68:lH1071F3F08|N -1071F3F08:lI97|H1071F6728 -1071F6728:lI112|H1071F9380 -1071F9380:lI112|H1071FC2C0 -1071FC2C0:lI108|H1071FF378 -1071FF378:lI105|H107202520 -107202520:lI99|H107205760 -107205760:lI97|H107208A48 -107208A48:lI116|H10720BCF8 -10720BCF8:lI105|H10720EF78 -10720EF78:lI111|H1072122B8 -1072122B8:lI110|H107215750 -107215750:lI95|H107218DD0 -107218DD0:lI115|H10721C5B0 -10721C5B0:lI116|H10721FC70 -10721FC70:lI97|H107223138 -107223138:lI114|H107226250 -107226250:lI116|H107228FE8 -107228FE8:lI101|H10722B9C0 -10722B9C0:lI114|H10722E048 -10722E048:lI46|H107230450 -107230450:lI98|H1072325A8 -1072325A8:lI101|H1072343F0 -1072343F0:lI97|H107235F48 -107235F48:lI109|N -1071F1C58:lH1071F3EF8|N -1071F3EF8:lI117|H1071F6718 -1071F6718:lI115|H1071F9370 -1071F9370:lI101|H1071FC2B0 -1071FC2B0:lI114|H1071FF368 -1071FF368:lI95|H107202510 -107202510:lI115|H107205750 -107205750:lI117|H107208A38 -107208A38:lI112|H10720BCE8 -10720BCE8:lI46|H10720EF68 -10720EF68:lI98|H1072122A8 -1072122A8:lI101|H107215740 -107215740:lI97|H107218DC0 -107218DC0:lI109|N -1071F1C48:lH1071F3EE8|N -1071F3EE8:lI100|H1071F6708 -1071F6708:lI105|H1071F9360 -1071F9360:lI115|H1071FC2A0 -1071FC2A0:lI116|H1071FF358 -1071FF358:lI95|H107202500 -107202500:lI117|H107205740 -107205740:lI116|H107208A28 -107208A28:lI105|H10720BCD8 -10720BCD8:lI108|H10720EF58 -10720EF58:lI46|H107212298 -107212298:lI98|H107215730 -107215730:lI101|H107218DB0 -107218DB0:lI97|H10721C5A0 -10721C5A0:lI109|N -1071F1C38:lH1071F3ED8|N -1071F3ED8:lI108|H1071F66F8 -1071F66F8:lI111|H1071F9350 -1071F9350:lI103|H1071FC290 -1071FC290:lI103|H1071FF348 -1071FF348:lI101|H1072024F0 -1072024F0:lI114|H107205730 -107205730:lI95|H107208A18 -107208A18:lI115|H10720BCC8 -10720BCC8:lI116|H10720EF48 -10720EF48:lI100|H107212288 -107212288:lI95|H107215720 -107215720:lI104|H107218DA0 -107218DA0:lI46|H10721C590 -10721C590:lI98|H10721FC60 -10721FC60:lI101|H107223128 -107223128:lI97|H107226240 -107226240:lI109|N -1071F0808:Mn4:H1071F1BE8,H1071F1BF8,H1071F1C08,H1071F1C18 -1071F1BE8:lH1071F3E88|N -1071F3E88:lI97|H1071F66A8 -1071F66A8:lI112|H1071F9300 -1071F9300:lI112|H1071FC240 -1071FC240:lI108|H1071FF2F8 -1071FF2F8:lI105|H1072024A0 -1072024A0:lI99|H1072056E0 -1072056E0:lI97|H1072089C8 -1072089C8:lI116|H10720BC88 -10720BC88:lI105|H10720EF08 -10720EF08:lI111|H107212248 -107212248:lI110|H1072156E0 -1072156E0:lI95|H107218D60 -107218D60:lI109|H10721C550 -10721C550:lI97|H10721FC20 -10721FC20:lI115|H1072230E8 -1072230E8:lI116|H107226200 -107226200:lI101|H107228FA8 -107228FA8:lI114|H10722B990 -10722B990:lI46|H10722E018 -10722E018:lI98|H107230440 -107230440:lI101|H107232598 -107232598:lI97|H1072343E0 -1072343E0:lI109|N -1071F1C18:lH1071F3EB8|N -1071F3EB8:lI108|H1071F66D8 -1071F66D8:lI111|H1071F9330 -1071F9330:lI103|H1071FC270 -1071FC270:lI103|H1071FF328 -1071FF328:lI101|H1072024D0 -1072024D0:lI114|H107205710 -107205710:lI95|H1072089F8 -1072089F8:lI99|H10720BCB8 -10720BCB8:lI111|H10720EF38 -10720EF38:lI110|H107212278 -107212278:lI102|H107215710 -107215710:lI105|H107218D90 -107218D90:lI103|H10721C580 -10721C580:lI46|H10721FC50 -10721FC50:lI98|H107223118 -107223118:lI101|H107226230 -107226230:lI97|H107228FD8 -107228FD8:lI109|N -1071F1C08:lH1071F3EA8|N -1071F3EA8:lI108|H1071F66C8 -1071F66C8:lI111|H1071F9320 -1071F9320:lI103|H1071FC260 -1071FC260:lI103|H1071FF318 -1071FF318:lI101|H1072024C0 -1072024C0:lI114|H107205700 -107205700:lI95|H1072089E8 -1072089E8:lI115|H10720BCA8 -10720BCA8:lI105|H10720EF28 -10720EF28:lI109|H107212268 -107212268:lI112|H107215700 -107215700:lI108|H107218D80 -107218D80:lI101|H10721C570 -10721C570:lI95|H10721FC40 -10721FC40:lI104|H107223108 -107223108:lI46|H107226220 -107226220:lI98|H107228FC8 -107228FC8:lI101|H10722B9B0 -10722B9B0:lI97|H10722E038 -10722E038:lI109|N -1071F1BF8:lH1071F3E98|N -1071F3E98:lI119|H1071F66B8 -1071F66B8:lI114|H1071F9310 -1071F9310:lI97|H1071FC250 -1071FC250:lI112|H1071FF308 -1071FF308:lI95|H1072024B0 -1072024B0:lI108|H1072056F0 -1072056F0:lI111|H1072089D8 -1072089D8:lI103|H10720BC98 -10720BC98:lI95|H10720EF18 -10720EF18:lI114|H107212258 -107212258:lI101|H1072156F0 -1072156F0:lI97|H107218D70 -107218D70:lI100|H10721C560 -10721C560:lI101|H10721FC30 -10721FC30:lI114|H1072230F8 -1072230F8:lI46|H107226210 -107226210:lI98|H107228FB8 -107228FB8:lI101|H10722B9A0 -10722B9A0:lI97|H10722E028 -10722E028:lI109|N -1071F07E0:Mn4:H1071F1BA0,H1071F1BB8,H1071F1BC8,H1071F1BD8 -1071F1BA0:Mn2:H1071F3E38,H1071F3E48 -1071F3E38:lH1071F6658|N -1071F6658:lI105|H1071F92B0 -1071F92B0:lI110|H1071FC1F0 -1071FC1F0:lI101|H1071FF2A8 -1071FF2A8:lI116|H107202450 -107202450:lI95|H107205690 -107205690:lI104|H107208978 -107208978:lI111|H10720BC38 -10720BC38:lI115|H10720EEB8 -10720EEB8:lI116|H1072121F8 -1072121F8:lI115|H107215690 -107215690:lI46|H107218D10 -107218D10:lI98|H10721C510 -10721C510:lI101|H10721FBE0 -10721FBE0:lI97|H1072230A8 -1072230A8:lI109|N -1071F3E48:lH1071F6668|N -1071F6668:lI101|H1071F92C0 -1071F92C0:lI114|H1071FC200 -1071FC200:lI116|H1071FF2B8 -1071FF2B8:lI115|H107202460 -107202460:lI95|H1072056A0 -1072056A0:lI100|H107208988 -107208988:lI101|H10720BC48 -10720BC48:lI98|H10720EEC8 -10720EEC8:lI117|H107212208 -107212208:lI103|H1072156A0 -1072156A0:lI46|H107218D20 -107218D20:lI98|H10721C520 -10721C520:lI101|H10721FBF0 -10721FBF0:lI97|H1072230B8 -1072230B8:lI109|N -1071F1BD8:lH1071F3E78|N -1071F3E78:lI108|H1071F6698 -1071F6698:lI111|H1071F92F0 -1071F92F0:lI103|H1071FC230 -1071FC230:lI103|H1071FF2E8 -1071FF2E8:lI101|H107202490 -107202490:lI114|H1072056D0 -1072056D0:lI95|H1072089B8 -1072089B8:lI102|H10720BC78 -10720BC78:lI111|H10720EEF8 -10720EEF8:lI114|H107212238 -107212238:lI109|H1072156D0 -1072156D0:lI97|H107218D50 -107218D50:lI116|H10721C540 -10721C540:lI116|H10721FC10 -10721FC10:lI101|H1072230D8 -1072230D8:lI114|H1072261F0 -1072261F0:lI46|H107228F98 -107228F98:lI98|H10722B980 -10722B980:lI101|H10722E008 -10722E008:lI97|H107230430 -107230430:lI109|N -1071F1BC8:lH1071F3E68|N -1071F3E68:lI105|H1071F6688 -1071F6688:lI110|H1071F92E0 -1071F92E0:lI101|H1071FC220 -1071FC220:lI116|H1071FF2D8 -1071FF2D8:lI95|H107202480 -107202480:lI103|H1072056C0 -1072056C0:lI101|H1072089A8 -1072089A8:lI116|H10720BC68 -10720BC68:lI104|H10720EEE8 -10720EEE8:lI111|H107212228 -107212228:lI115|H1072156C0 -1072156C0:lI116|H107218D40 -107218D40:lI95|H10721C530 -10721C530:lI110|H10721FC00 -10721FC00:lI97|H1072230C8 -1072230C8:lI116|H1072261E0 -1072261E0:lI105|H107228F88 -107228F88:lI118|H10722B970 -10722B970:lI101|H10722DFF8 -10722DFF8:lI46|H107230420 -107230420:lI98|H107232588 -107232588:lI101|H1072343D0 -1072343D0:lI97|H107235F38 -107235F38:lI109|N -1071F1BB8:lH1071F3E58|N -1071F3E58:lI105|H1071F6678 -1071F6678:lI110|H1071F92D0 -1071F92D0:lI101|H1071FC210 -1071FC210:lI116|H1071FF2C8 -1071FF2C8:lI95|H107202470 -107202470:lI116|H1072056B0 -1072056B0:lI99|H107208998 -107208998:lI112|H10720BC58 -10720BC58:lI46|H10720EED8 -10720EED8:lI98|H107212218 -107212218:lI101|H1072156B0 -1072156B0:lI97|H107218D30 -107218D30:lI109|N -1071F07B0:Mn5:H1071F1B50,H1071F1B60,H1071F1B70,H1071F1B80,H1071F1B90 -1071F1B50:lH1071F3DE8|N -1071F3DE8:lI114|H1071F6608 -1071F6608:lI97|H1071F9260 -1071F9260:lI119|H1071FC1A0 -1071FC1A0:lI95|H1071FF258 -1071FF258:lI102|H107202400 -107202400:lI105|H107205640 -107205640:lI108|H107208928 -107208928:lI101|H10720BBE8 -10720BBE8:lI95|H10720EE78 -10720EE78:lI105|H1072121B8 -1072121B8:lI111|H107215650 -107215650:lI95|H107218CD0 -107218CD0:lI100|H10721C4E0 -10721C4E0:lI101|H10721FBB0 -10721FBB0:lI108|H107223078 -107223078:lI97|H1072261C0 -1072261C0:lI121|H107228F68 -107228F68:lI101|H10722B960 -10722B960:lI100|H10722DFE8 -10722DFE8:lI46|H107230410 -107230410:lI98|H107232578 -107232578:lI101|H1072343C0 -1072343C0:lI97|H107235F28 -107235F28:lI109|N -1071F1B90:lH1071F3E28|N -1071F3E28:lI103|H1071F6648 -1071F6648:lI114|H1071F92A0 -1071F92A0:lI111|H1071FC1E0 -1071FC1E0:lI117|H1071FF298 -1071FF298:lI112|H107202440 -107202440:lI95|H107205680 -107205680:lI104|H107208968 -107208968:lI105|H10720BC28 -10720BC28:lI115|H10720EEA8 -10720EEA8:lI116|H1072121E8 -1072121E8:lI111|H107215680 -107215680:lI114|H107218D00 -107218D00:lI121|H10721C500 -10721C500:lI46|H10721FBD0 -10721FBD0:lI98|H107223098 -107223098:lI101|H1072261D0 -1072261D0:lI97|H107228F78 -107228F78:lI109|N -1071F1B80:lH1071F3E18|N -1071F3E18:lI117|H1071F6638 -1071F6638:lI115|H1071F9290 -1071F9290:lI101|H1071FC1D0 -1071FC1D0:lI114|H1071FF288 -1071FF288:lI95|H107202430 -107202430:lI100|H107205670 -107205670:lI114|H107208958 -107208958:lI118|H10720BC18 -10720BC18:lI46|H10720EE98 -10720EE98:lI98|H1072121D8 -1072121D8:lI101|H107215670 -107215670:lI97|H107218CF0 -107218CF0:lI109|N -1071F1B70:lH1071F3E08|N -1071F3E08:lI105|H1071F6628 -1071F6628:lI110|H1071F9280 -1071F9280:lI101|H1071FC1C0 -1071FC1C0:lI116|H1071FF278 -1071FF278:lI95|H107202420 -107202420:lI99|H107205660 -107205660:lI111|H107208948 -107208948:lI110|H10720BC08 -10720BC08:lI102|H10720EE88 -10720EE88:lI105|H1072121C8 -1072121C8:lI103|H107215660 -107215660:lI46|H107218CE0 -107218CE0:lI98|H10721C4F0 -10721C4F0:lI101|H10721FBC0 -10721FBC0:lI97|H107223088 -107223088:lI109|N -1071F1B60:lH1071F3DF8|N -1071F3DF8:lI102|H1071F6618 -1071F6618:lI105|H1071F9270 -1071F9270:lI108|H1071FC1B0 -1071FC1B0:lI101|H1071FF268 -1071FF268:lI46|H107202410 -107202410:lI98|H107205650 -107205650:lI101|H107208938 -107208938:lI97|H10720BBF8 -10720BBF8:lI109|N -1071F0778:Mn6:H1071F1AF0,H1071F1B00,H1071F1B10,H1071F1B20,H1071F1B30,H1071F1B40 -1071F1AF0:lH1071F3D88|N -1071F3D88:lI101|H1071F65A8 -1071F65A8:lI114|H1071F9200 -1071F9200:lI112|H1071FC140 -1071FC140:lI99|H1071FF1F8 -1071FF1F8:lI46|H1072023A0 -1072023A0:lI98|H1072055E0 -1072055E0:lI101|H1072088C8 -1072088C8:lI97|H10720BB88 -10720BB88:lI109|N -1071F1B40:lH1071F3DD8|N -1071F3DD8:lI102|H1071F65F8 -1071F65F8:lI105|H1071F9250 -1071F9250:lI108|H1071FC190 -1071FC190:lI101|H1071FF248 -1071FF248:lI95|H1072023F0 -1072023F0:lI105|H107205630 -107205630:lI111|H107208918 -107208918:lI95|H10720BBD8 -10720BBD8:lI115|H10720EE68 -10720EE68:lI101|H1072121A8 -1072121A8:lI114|H107215640 -107215640:lI118|H107218CC0 -107218CC0:lI101|H10721C4D0 -10721C4D0:lI114|H10721FBA0 -10721FBA0:lI46|H107223068 -107223068:lI98|H1072261B0 -1072261B0:lI101|H107228F58 -107228F58:lI97|H10722B950 -10722B950:lI109|N -1071F1B30:lH1071F3DC8|N -1071F3DC8:lI105|H1071F65E8 -1071F65E8:lI110|H1071F9240 -1071F9240:lI101|H1071FC180 -1071FC180:lI116|H1071FF238 -1071FF238:lI54|H1072023E0 -1072023E0:lI95|H107205620 -107205620:lI117|H107208908 -107208908:lI100|H10720BBC8 -10720BBC8:lI112|H10720EE58 -10720EE58:lI46|H107212198 -107212198:lI98|H107215630 -107215630:lI101|H107218CB0 -107218CB0:lI97|H10721C4C0 -10721C4C0:lI109|N -1071F1B20:lH1071F3DB8|N -1071F3DB8:lI103|H1071F65D8 -1071F65D8:lI108|H1071F9230 -1071F9230:lI111|H1071FC170 -1071FC170:lI98|H1071FF228 -1071FF228:lI97|H1072023D0 -1072023D0:lI108|H107205610 -107205610:lI46|H1072088F8 -1072088F8:lI98|H10720BBB8 -10720BBB8:lI101|H10720EE48 -10720EE48:lI97|H107212188 -107212188:lI109|N -1071F1B10:lH1071F3DA8|N -1071F3DA8:lI114|H1071F65C8 -1071F65C8:lI97|H1071F9220 -1071F9220:lI119|H1071FC160 -1071FC160:lI95|H1071FF218 -1071FF218:lI102|H1072023C0 -1072023C0:lI105|H107205600 -107205600:lI108|H1072088E8 -1072088E8:lI101|H10720BBA8 -10720BBA8:lI95|H10720EE38 -10720EE38:lI105|H107212178 -107212178:lI111|H107215620 -107215620:lI95|H107218CA0 -107218CA0:lI100|H10721C4B0 -10721C4B0:lI101|H10721FB90 -10721FB90:lI102|H107223058 -107223058:lI108|H1072261A0 -1072261A0:lI97|H107228F48 -107228F48:lI116|H10722B940 -10722B940:lI101|H10722DFD8 -10722DFD8:lI46|H107230400 -107230400:lI98|H107232568 -107232568:lI101|H1072343B0 -1072343B0:lI97|H107235F18 -107235F18:lI109|N -1071F1B00:lH1071F3D98|N -1071F3D98:lI103|H1071F65B8 -1071F65B8:lI108|H1071F9210 -1071F9210:lI111|H1071FC150 -1071FC150:lI98|H1071FF208 -1071FF208:lI97|H1072023B0 -1072023B0:lI108|H1072055F0 -1072055F0:lI95|H1072088D8 -1072088D8:lI103|H10720BB98 -10720BB98:lI114|H10720EE28 -10720EE28:lI111|H107212168 -107212168:lI117|H107215610 -107215610:lI112|H107218C90 -107218C90:lI46|H10721C4A0 -10721C4A0:lI98|H10721FB80 -10721FB80:lI101|H107223048 -107223048:lI97|H107226190 -107226190:lI109|N -1071F0740:Mn6:H1071F1A88,H1071F1A98,H1071F1AB0,H1071F1AC0,H1071F1AD0,H1071F1AE0 -1071F1A88:lH1071F3D18|N -1071F3D18:lI110|H1071F6530 -1071F6530:lI101|H1071F9180 -1071F9180:lI116|H1071FC0C0 -1071FC0C0:lI95|H1071FF178 -1071FF178:lI107|H107202320 -107202320:lI101|H107205560 -107205560:lI114|H107208858 -107208858:lI110|H10720BB18 -10720BB18:lI101|H10720EDB8 -10720EDB8:lI108|H1072120F8 -1072120F8:lI46|H1072155B0 -1072155B0:lI98|H107218C30 -107218C30:lI101|H10721C440 -10721C440:lI97|H10721FB20 -10721FB20:lI109|N -1071F1AE0:lH1071F3D78|N -1071F3D78:lI101|H1071F6598 -1071F6598:lI114|H1071F91F0 -1071F91F0:lI114|H1071FC130 -1071FC130:lI111|H1071FF1E8 -1071FF1E8:lI114|H107202390 -107202390:lI95|H1072055D0 -1072055D0:lI104|H1072088B8 -1072088B8:lI97|H10720BB78 -10720BB78:lI110|H10720EE18 -10720EE18:lI100|H107212158 -107212158:lI108|H107215600 -107215600:lI101|H107218C80 -107218C80:lI114|H10721C490 -10721C490:lI46|H10721FB70 -10721FB70:lI98|H107223038 -107223038:lI101|H107226180 -107226180:lI97|H107228F38 -107228F38:lI109|N -1071F1AD0:lH1071F3D68|N -1071F3D68:lI111|H1071F6588 -1071F6588:lI115|H1071F91E0 -1071F91E0:lI46|H1071FC120 -1071FC120:lI98|H1071FF1D8 -1071FF1D8:lI101|H107202380 -107202380:lI97|H1072055C0 -1072055C0:lI109|N -1071F1AC0:lH1071F3D58|N -1071F3D58:lI114|H1071F6578 -1071F6578:lI97|H1071F91D0 -1071F91D0:lI119|H1071FC110 -1071FC110:lI95|H1071FF1C8 -1071FF1C8:lI102|H107202370 -107202370:lI105|H1072055B0 -1072055B0:lI108|H1072088A8 -1072088A8:lI101|H10720BB68 -10720BB68:lI95|H10720EE08 -10720EE08:lI105|H107212148 -107212148:lI111|H1072155F0 -1072155F0:lI95|H107218C70 -107218C70:lI99|H10721C480 -10721C480:lI111|H10721FB60 -10721FB60:lI109|H107223028 -107223028:lI112|H107226170 -107226170:lI114|H107228F28 -107228F28:lI101|H10722B930 -10722B930:lI115|H10722DFC8 -10722DFC8:lI115|H1072303F0 -1072303F0:lI101|H107232558 -107232558:lI100|H1072343A0 -1072343A0:lI46|H107235F08 -107235F08:lI98|H107237800 -107237800:lI101|H107238E88 -107238E88:lI97|H10723A360 -10723A360:lI109|N -1071F1AB0:lH1071F3D48|N -1071F3D48:lI108|H1071F6568 -1071F6568:lI111|H1071F91C0 -1071F91C0:lI103|H1071FC100 -1071FC100:lI103|H1071FF1B8 -1071FF1B8:lI101|H107202360 -107202360:lI114|H1072055A0 -1072055A0:lI95|H107208898 -107208898:lI100|H10720BB58 -10720BB58:lI105|H10720EDF8 -10720EDF8:lI115|H107212138 -107212138:lI107|H1072155E0 -1072155E0:lI95|H107218C60 -107218C60:lI108|H10721C470 -10721C470:lI111|H10721FB50 -10721FB50:lI103|H107223018 -107223018:lI95|H107226160 -107226160:lI104|H107228F18 -107228F18:lI46|H10722B920 -10722B920:lI98|H10722DFB8 -10722DFB8:lI101|H1072303E0 -1072303E0:lI97|H107232548 -107232548:lI109|N -1071F1A98:Mn2:H1071F3D28,H1071F3D38 -1071F3D28:Mn1:H1071F6540 -1071F6540:Mn2:H1071F9190,H1071F91A0 -1071F9190:lH1071FC0D0|N -1071FC0D0:lI108|H1071FF188 -1071FF188:lI111|H107202330 -107202330:lI103|H107205570 -107205570:lI103|H107208868 -107208868:lI101|H10720BB28 -10720BB28:lI114|H10720EDC8 -10720EDC8:lI95|H107212108 -107212108:lI115|H1072155C0 -1072155C0:lI117|H107218C40 -107218C40:lI112|H10721C450 -10721C450:lI46|H10721FB30 -10721FB30:lI98|H107222FF8 -107222FF8:lI101|H107226140 -107226140:lI97|H107228EF8 -107228EF8:lI109|N -1071F91A0:lH1071FC0E0|N -1071FC0E0:lI112|H1071FF198 -1071FF198:lI103|H107202340 -107202340:lI50|H107205580 -107205580:lI46|H107208878 -107208878:lI98|H10720BB38 -10720BB38:lI101|H10720EDD8 -10720EDD8:lI97|H107212118 -107212118:lI109|N -1071F3D38:lH1071F6558|N -1071F6558:lI97|H1071F91B0 -1071F91B0:lI112|H1071FC0F0 -1071FC0F0:lI112|H1071FF1A8 -1071FF1A8:lI108|H107202350 -107202350:lI105|H107205590 -107205590:lI99|H107208888 -107208888:lI97|H10720BB48 -10720BB48:lI116|H10720EDE8 -10720EDE8:lI105|H107212128 -107212128:lI111|H1072155D0 -1072155D0:lI110|H107218C50 -107218C50:lI95|H10721C460 -10721C460:lI99|H10721FB40 -10721FB40:lI111|H107223008 -107223008:lI110|H107226150 -107226150:lI116|H107228F08 -107228F08:lI114|H10722B910 -10722B910:lI111|H10722DFA8 -10722DFA8:lI108|H1072303D0 -1072303D0:lI108|H107232538 -107232538:lI101|H107234390 -107234390:lI114|H107235EF8 -107235EF8:lI46|H1072377F0 -1072377F0:lI98|H107238E78 -107238E78:lI101|H10723A350 -10723A350:lI97|H10723B6A0 -10723B6A0:lI109|N -1071F0718:Mn4:H1071F1A48,H1071F1A58,H1071F1A68,H1071F1A78 -1071F1A48:lH1071F3CD8|N -1071F3CD8:lI108|H1071F64F0 -1071F64F0:lI111|H1071F9140 -1071F9140:lI103|H1071FC080 -1071FC080:lI103|H1071FF138 -1071FF138:lI101|H1072022E0 -1072022E0:lI114|H107205520 -107205520:lI95|H107208818 -107208818:lI98|H10720BAD8 -10720BAD8:lI97|H10720ED88 -10720ED88:lI99|H1072120D8 -1072120D8:lI107|H107215590 -107215590:lI101|H107218C10 -107218C10:lI110|H10721C420 -10721C420:lI100|H10721FB00 -10721FB00:lI46|H107222FD8 -107222FD8:lI98|H107226120 -107226120:lI101|H107228ED8 -107228ED8:lI97|H10722B8F0 -10722B8F0:lI109|N -1071F1A78:lH1071F3D08|N -1071F3D08:lI101|H1071F6520 -1071F6520:lI114|H1071F9170 -1071F9170:lI108|H1071FC0B0 -1071FC0B0:lI95|H1071FF168 -1071FF168:lI107|H107202310 -107202310:lI101|H107205550 -107205550:lI114|H107208848 -107208848:lI110|H10720BB08 -10720BB08:lI101|H10720EDA8 -10720EDA8:lI108|H1072120E8 -1072120E8:lI95|H1072155A0 -1072155A0:lI101|H107218C20 -107218C20:lI114|H10721C430 -10721C430:lI114|H10721FB10 -10721FB10:lI111|H107222FE8 -107222FE8:lI114|H107226130 -107226130:lI115|H107228EE8 -107228EE8:lI46|H10722B900 -10722B900:lI98|H10722DF98 -10722DF98:lI101|H1072303C0 -1072303C0:lI97|H107232528 -107232528:lI109|N -1071F1A68:lH1071F3CF8|N -1071F3CF8:lI107|H1071F6510 -1071F6510:lI101|H1071F9160 -1071F9160:lI114|H1071FC0A0 -1071FC0A0:lI110|H1071FF158 -1071FF158:lI101|H107202300 -107202300:lI108|H107205540 -107205540:lI46|H107208838 -107208838:lI97|H10720BAF8 -10720BAF8:lI112|H10720ED98 -10720ED98:lI112|N -1071F1A58:lH1071F3CE8|N -1071F3CE8:lI105|H1071F6500 -1071F6500:lI110|H1071F9150 -1071F9150:lI101|H1071FC090 -1071FC090:lI116|H1071FF148 -1071FF148:lI46|H1072022F0 -1072022F0:lI98|H107205530 -107205530:lI101|H107208828 -107208828:lI97|H10720BAE8 -10720BAE8:lI109|N -1071F06C8:Mn9:H1071F19A8,H1071F19B8,H1071F19C8,H1071F19D8,H1071F19E8,H1071F1A00,H1071F1A10,H1071F1A28,H1071F1A38 -1071F19A8:lH1071F3C28|N -1071F3C28:lI114|H1071F6440 -1071F6440:lI112|H1071F9090 -1071F9090:lI99|H1071FBFD0 -1071FBFD0:lI46|H1071FF088 -1071FF088:lI98|H107202230 -107202230:lI101|H107205470 -107205470:lI97|H107208768 -107208768:lI109|N -1071F1A38:lH1071F3CC8|N -1071F3CC8:lI105|H1071F64E0 -1071F64E0:lI110|H1071F9130 -1071F9130:lI101|H1071FC070 -1071FC070:lI116|H1071FF128 -1071FF128:lI95|H1072022D0 -1072022D0:lI115|H107205510 -107205510:lI99|H107208808 -107208808:lI116|H10720BAC8 -10720BAC8:lI112|H10720ED78 -10720ED78:lI46|H1072120C8 -1072120C8:lI98|H107215580 -107215580:lI101|H107218C00 -107218C00:lI97|H10721C410 -10721C410:lI109|N -1071F1A28:lH1071F3CB8|N -1071F3CB8:lI115|H1071F64D0 -1071F64D0:lI116|H1071F9120 -1071F9120:lI97|H1071FC060 -1071FC060:lI110|H1071FF118 -1071FF118:lI100|H1072022C0 -1072022C0:lI97|H107205500 -107205500:lI114|H1072087F8 -1072087F8:lI100|H10720BAB8 -10720BAB8:lI95|H10720ED68 -10720ED68:lI101|H1072120B8 -1072120B8:lI114|H107215570 -107215570:lI114|H107218BF0 -107218BF0:lI111|H10721C400 -10721C400:lI114|H10721FAF0 -10721FAF0:lI46|H107222FC8 -107222FC8:lI98|H107226110 -107226110:lI101|H107228EC8 -107228EC8:lI97|H10722B8E0 -10722B8E0:lI109|N -1071F1A10:Mn2:H1071F3C98,H1071F3CA8 -1071F3C98:lH1071F64B0|N -1071F64B0:lI108|H1071F9100 -1071F9100:lI111|H1071FC040 -1071FC040:lI99|H1071FF0F8 -1071FF0F8:lI97|H1072022A0 -1072022A0:lI108|H1072054E0 -1072054E0:lI95|H1072087D8 -1072087D8:lI116|H10720BA98 -10720BA98:lI99|H10720ED48 -10720ED48:lI112|H107212098 -107212098:lI46|H107215550 -107215550:lI98|H107218BD0 -107218BD0:lI101|H10721C3E0 -10721C3E0:lI97|H10721FAD0 -10721FAD0:lI109|N -1071F3CA8:lH1071F64C0|N -1071F64C0:lI107|H1071F9110 -1071F9110:lI101|H1071FC050 -1071FC050:lI114|H1071FF108 -1071FF108:lI110|H1072022B0 -1072022B0:lI101|H1072054F0 -1072054F0:lI108|H1072087E8 -1072087E8:lI95|H10720BAA8 -10720BAA8:lI99|H10720ED58 -10720ED58:lI111|H1072120A8 -1072120A8:lI110|H107215560 -107215560:lI102|H107218BE0 -107218BE0:lI105|H10721C3F0 -10721C3F0:lI103|H10721FAE0 -10721FAE0:lI46|H107222FB8 -107222FB8:lI98|H107226100 -107226100:lI101|H107228EB8 -107228EB8:lI97|H10722B8D0 -10722B8D0:lI109|N -1071F1A00:lH1071F3C88|N -1071F3C88:lI99|H1071F64A0 -1071F64A0:lI111|H1071F90F0 -1071F90F0:lI100|H1071FC030 -1071FC030:lI101|H1071FF0E8 -1071FF0E8:lI46|H107202290 -107202290:lI98|H1072054D0 -1072054D0:lI101|H1072087C8 -1072087C8:lI97|H10720BA88 -10720BA88:lI109|N -1071F19E8:Mn2:H1071F3C68,H1071F3C78 -1071F3C68:lH1071F6480|N -1071F6480:lI105|H1071F90D0 -1071F90D0:lI110|H1071FC010 -1071FC010:lI101|H1071FF0C8 -1071FF0C8:lI116|H107202270 -107202270:lI95|H1072054B0 -1072054B0:lI100|H1072087A8 -1072087A8:lI110|H10720BA68 -10720BA68:lI115|H10720ED28 -10720ED28:lI46|H107212078 -107212078:lI98|H107215530 -107215530:lI101|H107218BB0 -107218BB0:lI97|H10721C3C0 -10721C3C0:lI109|N -1071F3C78:lH1071F6490|N -1071F6490:lI99|H1071F90E0 -1071F90E0:lI111|H1071FC020 -1071FC020:lI100|H1071FF0D8 -1071FF0D8:lI101|H107202280 -107202280:lI95|H1072054C0 -1072054C0:lI115|H1072087B8 -1072087B8:lI101|H10720BA78 -10720BA78:lI114|H10720ED38 -10720ED38:lI118|H107212088 -107212088:lI101|H107215540 -107215540:lI114|H107218BC0 -107218BC0:lI46|H10721C3D0 -10721C3D0:lI98|H10721FAC0 -10721FAC0:lI101|H107222FA8 -107222FA8:lI97|H1072260F0 -1072260F0:lI109|N -1071F19D8:lH1071F3C58|N -1071F3C58:lI108|H1071F6470 -1071F6470:lI111|H1071F90C0 -1071F90C0:lI103|H1071FC000 -1071FC000:lI103|H1071FF0B8 -1071FF0B8:lI101|H107202260 -107202260:lI114|H1072054A0 -1072054A0:lI95|H107208798 -107208798:lI104|H10720BA58 -10720BA58:lI97|H10720ED18 -10720ED18:lI110|H107212068 -107212068:lI100|H107215520 -107215520:lI108|H107218BA0 -107218BA0:lI101|H10721C3B0 -10721C3B0:lI114|H10721FAB0 -10721FAB0:lI95|H107222F98 -107222F98:lI119|H1072260E0 -1072260E0:lI97|H107228EA8 -107228EA8:lI116|H10722B8C0 -10722B8C0:lI99|H10722DF88 -10722DF88:lI104|H1072303B0 -1072303B0:lI101|H107232518 -107232518:lI114|H107234380 -107234380:lI46|H107235EE8 -107235EE8:lI98|H1072377E0 -1072377E0:lI101|H107238E68 -107238E68:lI97|H10723A340 -10723A340:lI109|N -1071F19C8:lH1071F3C48|N -1071F3C48:lI105|H1071F6460 -1071F6460:lI110|H1071F90B0 -1071F90B0:lI101|H1071FBFF0 -1071FBFF0:lI116|H1071FF0A8 -1071FF0A8:lI95|H107202250 -107202250:lI116|H107205490 -107205490:lI99|H107208788 -107208788:lI112|H10720BA48 -10720BA48:lI95|H10720ED08 -10720ED08:lI100|H107212058 -107212058:lI105|H107215510 -107215510:lI115|H107218B90 -107218B90:lI116|H10721C3A0 -10721C3A0:lI46|H10721FAA0 -10721FAA0:lI98|H107222F88 -107222F88:lI101|H1072260D0 -1072260D0:lI97|H107228E98 -107228E98:lI109|N -1071F19B8:lH1071F3C38|N -1071F3C38:lI105|H1071F6450 -1071F6450:lI110|H1071F90A0 -1071F90A0:lI101|H1071FBFE0 -1071FBFE0:lI116|H1071FF098 -1071FF098:lI54|H107202240 -107202240:lI95|H107205480 -107205480:lI116|H107208778 -107208778:lI99|H10720BA38 -10720BA38:lI112|H10720ECF8 -10720ECF8:lI95|H107212048 -107212048:lI100|H107215500 -107215500:lI105|H107218B80 -107218B80:lI115|H10721C390 -10721C390:lI116|H10721FA90 -10721FA90:lI46|H107222F78 -107222F78:lI98|H1072260C0 -1072260C0:lI101|H107228E88 -107228E88:lI97|H10722B8B0 -10722B8B0:lI109|N -1071F0698:Mn5:H1071F1950,H1071F1968,H1071F1978,H1071F1988,H1071F1998 -1071F1950:Mn2:H1071F3BC8,H1071F3BD8 -1071F3BC8:lH1071F63E0|N -1071F63E0:lI110|H1071F9030 -1071F9030:lI101|H1071FBF70 -1071FBF70:lI116|H1071FF028 -1071FF028:lI95|H1072021D0 -1072021D0:lI97|H107205410 -107205410:lI100|H107208708 -107208708:lI109|H10720B9D8 -10720B9D8:lI46|H10720EC98 -10720EC98:lI98|H107211FE8 -107211FE8:lI101|H1072154B0 -1072154B0:lI97|H107218B30 -107218B30:lI109|N -1071F3BD8:lH1071F63F0|N -1071F63F0:lI108|H1071F9040 -1071F9040:lI111|H1071FBF80 -1071FBF80:lI103|H1071FF038 -1071FF038:lI103|H1072021E0 -1072021E0:lI101|H107205420 -107205420:lI114|H107208718 -107208718:lI95|H10720B9E8 -10720B9E8:lI112|H10720ECA8 -10720ECA8:lI114|H107211FF8 -107211FF8:lI111|H1072154C0 -1072154C0:lI120|H107218B40 -107218B40:lI121|H10721C350 -10721C350:lI46|H10721FA50 -10721FA50:lI98|H107222F48 -107222F48:lI101|H107226090 -107226090:lI97|H107228E68 -107228E68:lI109|N -1071F1998:lH1071F3C18|N -1071F3C18:lI108|H1071F6430 -1071F6430:lI111|H1071F9080 -1071F9080:lI103|H1071FBFC0 -1071FBFC0:lI103|H1071FF078 -1071FF078:lI101|H107202220 -107202220:lI114|H107205460 -107205460:lI95|H107208758 -107208758:lI111|H10720BA28 -10720BA28:lI108|H10720ECE8 -10720ECE8:lI112|H107212038 -107212038:lI46|H1072154F0 -1072154F0:lI98|H107218B70 -107218B70:lI101|H10721C380 -10721C380:lI97|H10721FA80 -10721FA80:lI109|N -1071F1988:lH1071F3C08|N -1071F3C08:lI101|H1071F6420 -1071F6420:lI114|H1071F9070 -1071F9070:lI108|H1071FBFB0 -1071FBFB0:lI95|H1071FF068 -1071FF068:lI100|H107202210 -107202210:lI105|H107205450 -107205450:lI115|H107208748 -107208748:lI116|H10720BA18 -10720BA18:lI114|H10720ECD8 -10720ECD8:lI105|H107212028 -107212028:lI98|H1072154E0 -1072154E0:lI117|H107218B60 -107218B60:lI116|H10721C370 -10721C370:lI105|H10721FA70 -10721FA70:lI111|H107222F68 -107222F68:lI110|H1072260B0 -1072260B0:lI46|H107228E78 -107228E78:lI98|H10722B8A0 -10722B8A0:lI101|H10722DF78 -10722DF78:lI97|H1072303A0 -1072303A0:lI109|N -1071F1978:lH1071F3BF8|N -1071F3BF8:lI107|H1071F6410 -1071F6410:lI101|H1071F9060 -1071F9060:lI114|H1071FBFA0 -1071FBFA0:lI110|H1071FF058 -1071FF058:lI101|H107202200 -107202200:lI108|H107205440 -107205440:lI46|H107208738 -107208738:lI98|H10720BA08 -10720BA08:lI101|H10720ECC8 -10720ECC8:lI97|H107212018 -107212018:lI109|N -1071F1968:lH1071F3BE8|N -1071F3BE8:lI101|H1071F6400 -1071F6400:lI114|H1071F9050 -1071F9050:lI114|H1071FBF90 -1071FBF90:lI111|H1071FF048 -1071FF048:lI114|H1072021F0 -1072021F0:lI95|H107205430 -107205430:lI108|H107208728 -107208728:lI111|H10720B9F8 -10720B9F8:lI103|H10720ECB8 -10720ECB8:lI103|H107212008 -107212008:lI101|H1072154D0 -1072154D0:lI114|H107218B50 -107218B50:lI46|H10721C360 -10721C360:lI98|H10721FA60 -10721FA60:lI101|H107222F58 -107222F58:lI97|H1072260A0 -1072260A0:lI109|N -1071F0088:lI47|H1071F0648 -1071F0648:lI111|H1071F18D0 -1071F18D0:lI112|H1071F3B48 -1071F3B48:lI116|H1071F6360 -1071F6360:lI47|H1071F8FB0 -1071F8FB0:lI104|H1071FBEF0 -1071FBEF0:lI111|H1071FEFA8 -1071FEFA8:lI109|H107202150 -107202150:lI101|H107205390 -107205390:lI98|H107208688 -107208688:lI114|H10720B958 -10720B958:lI101|H10720EC18 -10720EC18:lI119|H107211F78 -107211F78:lI47|H107215450 -107215450:lI67|H107218AE0 -107218AE0:lI101|H10721C310 -10721C310:lI108|H10721FA10 -10721FA10:lI108|H107222F08 -107222F08:lI97|H107226070 -107226070:lI114|H107228E58 -107228E58:lI47|H10722B890 -10722B890:lI101|H10722DF68 -10722DF68:lI114|H107230390 -107230390:lI108|H107232508 -107232508:lI97|H107234370 -107234370:lI110|H107235ED8 -107235ED8:lI103|H1072377D0 -1072377D0:lI47|H107238E58 -107238E58:lI50|H10723A330 -10723A330:lI54|H10723B690 -10723B690:lI46|H10723C770 -10723C770:lI48|H10723D630 -10723D630:lI46|H10723E3B0 -10723E3B0:lI50|H10723EFC0 -10723EFC0:lI47|H10723FA90 -10723FA90:lI108|H1072403E0 -1072403E0:lI105|H107240C60 -107240C60:lI98|H1072413F0 -1072413F0:lI47|H107241B20 -107241B20:lI101|H1072421F0 -1072421F0:lI114|H107242860 -107242860:lI108|H107242E60 -107242E60:lI97|H1072433D0 -1072433D0:lI110|H107243910 -107243910:lI103|H107243E00 -107243E00:lI47|H1072442F0 -1072442F0:lI108|H1072447A0 -1072447A0:lI105|H107244C10 -107244C10:lI98|H107245070 -107245070:lI47|H1072454C0 -1072454C0:lI107|H1072458C0 -1072458C0:lI101|H107245C80 -107245C80:lI114|H107246010 -107246010:lI110|H1072463A0 -1072463A0:lI101|H107246730 -107246730:lI108|H107246AC0 -107246AC0:lI45|H107246E00 -107246E00:lI57|H107247120 -107247120:lI46|H107247440 -107247440:lI48|H107247750 -107247750:lI46|H107247A50 -107247A50:lI50|H107247D40 -107247D40:lI47|H107248020 -107248020:lI101|H1072482E0 -1072482E0:lI98|H1072485A0 -1072485A0:lI105|H107248850 -107248850:lI110|N -106600960:lH106600990|H10724AE50 -106600990:t2:H1071F0140,H1071F0150 -1071F0150:Mh5C:10:H1071F09A8,H1071F09C8,H1071F0A08,H1071F0A28,H1071F0A38,H1071F0A68,H1071F0A98,H1071F0AC8,H1071F0AF0,H1071F0B30,H1071F0B58,H1071F0B88,H1071F0BF0,H1071F0C28,H1071F0C40,H1071F0C70 -1071F09A8:Mn3:H1071F1ED0,H1071F1EE0,H1071F1EF0 -1071F1ED0:lH1071F41B8|N -1071F41B8:lI103|H1071F69D8 -1071F69D8:lI101|H1071F9630 -1071F9630:lI110|H1071FC570 -1071FC570:lI95|H1071FF628 -1071FF628:lI101|H1072027D0 -1072027D0:lI118|H107205A10 -107205A10:lI101|H107208CE8 -107208CE8:lI110|H10720BF98 -10720BF98:lI116|H10720F218 -10720F218:lI46|H107212538 -107212538:lI98|H1072159C0 -1072159C0:lI101|H107219030 -107219030:lI97|H10721C790 -10721C790:lI109|N -1071F1EF0:lH1071F41D8|N -1071F41D8:lI101|H1071F69F8 -1071F69F8:lI100|H1071F9650 -1071F9650:lI108|H1071FC590 -1071FC590:lI105|H1071FF648 -1071FF648:lI110|H1072027F0 -1072027F0:lI95|H107205A30 -107205A30:lI116|H107208D08 -107208D08:lI121|H10720BFB8 -10720BFB8:lI112|H10720F238 -10720F238:lI101|H107212558 -107212558:lI95|H1072159E0 -1072159E0:lI115|H107219040 -107219040:lI117|H10721C7A0 -10721C7A0:lI103|H10721FE10 -10721FE10:lI103|H107223298 -107223298:lI101|H107226380 -107226380:lI115|H107229118 -107229118:lI116|H10722BAE0 -10722BAE0:lI105|H10722E148 -10722E148:lI111|H107230500 -107230500:lI110|H107232628 -107232628:lI46|H107234460 -107234460:lI98|H107235FA8 -107235FA8:lI101|H107237840 -107237840:lI97|H107238EC8 -107238EC8:lI109|N -1071F1EE0:lH1071F41C8|N -1071F41C8:lI100|H1071F69E8 -1071F69E8:lI105|H1071F9640 -1071F9640:lI103|H1071FC580 -1071FC580:lI114|H1071FF638 -1071FF638:lI97|H1072027E0 -1072027E0:lI112|H107205A20 -107205A20:lI104|H107208CF8 -107208CF8:lI46|H10720BFA8 -10720BFA8:lI98|H10720F228 -10720F228:lI101|H107212548 -107212548:lI97|H1072159D0 -1072159D0:lI109|N -1071F0C70:Mn6:H1071F23C8,H1071F23D8,H1071F23E8,H1071F23F8,H1071F2408,H1071F2418 -1071F23C8:lH1071F4710|N -1071F4710:lI117|H1071F6F38 -1071F6F38:lI110|H1071F9B90 -1071F9B90:lI105|H1071FCAD0 -1071FCAD0:lI99|H1071FFB88 -1071FFB88:lI111|H107202D30 -107202D30:lI100|H107205F60 -107205F60:lI101|H107209218 -107209218:lI46|H10720C478 -10720C478:lI98|H10720F698 -10720F698:lI101|H107212948 -107212948:lI97|H107215D20 -107215D20:lI109|N -1071F2418:lH1071F4760|N -1071F4760:lI98|H1071F6F88 -1071F6F88:lI105|H1071F9BE0 -1071F9BE0:lI110|H1071FCB20 -1071FCB20:lI97|H1071FFBD8 -1071FFBD8:lI114|H107202D80 -107202D80:lI121|H107205FB0 -107205FB0:lI46|H107209268 -107209268:lI98|H10720C4C8 -10720C4C8:lI101|H10720F6E8 -10720F6E8:lI97|H107212998 -107212998:lI109|N -1071F2408:lH1071F4750|N -1071F4750:lI101|H1071F6F78 -1071F6F78:lI118|H1071F9BD0 -1071F9BD0:lI97|H1071FCB10 -1071FCB10:lI108|H1071FFBC8 -1071FFBC8:lI95|H107202D70 -107202D70:lI98|H107205FA0 -107205FA0:lI105|H107209258 -107209258:lI116|H10720C4B8 -10720C4B8:lI115|H10720F6D8 -10720F6D8:lI46|H107212988 -107212988:lI98|H107215D60 -107215D60:lI101|H107219340 -107219340:lI97|H10721C9D0 -10721C9D0:lI109|N -1071F23F8:lH1071F4740|N -1071F4740:lI101|H1071F6F68 -1071F6F68:lI100|H1071F9BC0 -1071F9BC0:lI108|H1071FCB00 -1071FCB00:lI105|H1071FFBB8 -1071FFBB8:lI110|H107202D60 -107202D60:lI95|H107205F90 -107205F90:lI99|H107209248 -107209248:lI111|H10720C4A8 -10720C4A8:lI110|H10720F6C8 -10720F6C8:lI116|H107212978 -107212978:lI101|H107215D50 -107215D50:lI120|H107219330 -107219330:lI116|H10721C9C0 -10721C9C0:lI46|H107220010 -107220010:lI98|H107223408 -107223408:lI101|H1072264C0 -1072264C0:lI97|H1072291E8 -1072291E8:lI109|N -1071F23E8:lH1071F4730|N -1071F4730:lI109|H1071F6F58 -1071F6F58:lI115|H1071F9BB0 -1071F9BB0:lI95|H1071FCAF0 -1071FCAF0:lI116|H1071FFBA8 -1071FFBA8:lI114|H107202D50 -107202D50:lI97|H107205F80 -107205F80:lI110|H107209238 -107209238:lI115|H10720C498 -10720C498:lI102|H10720F6B8 -10720F6B8:lI111|H107212968 -107212968:lI114|H107215D40 -107215D40:lI109|H107219320 -107219320:lI46|H10721C9B0 -10721C9B0:lI98|H107220000 -107220000:lI101|H1072233F8 -1072233F8:lI97|H1072264B0 -1072264B0:lI109|N -1071F23D8:lH1071F4720|N -1071F4720:lI103|H1071F6F48 -1071F6F48:lI101|H1071F9BA0 -1071F9BA0:lI110|H1071FCAE0 -1071FCAE0:lI95|H1071FFB98 -1071FFB98:lI115|H107202D40 -107202D40:lI116|H107205F70 -107205F70:lI97|H107209228 -107209228:lI116|H10720C488 -10720C488:lI101|H10720F6A8 -10720F6A8:lI109|H107212958 -107212958:lI46|H107215D30 -107215D30:lI98|H107219310 -107219310:lI101|H10721C9A0 -10721C9A0:lI97|H10721FFF0 -10721FFF0:lI109|N -1071F0C40:Mn5:H1071F2370,H1071F2380,H1071F2390,H1071F23A0,H1071F23B0 -1071F2370:lH1071F46B0|N -1071F46B0:lI102|H1071F6ED8 -1071F6ED8:lI105|H1071F9B30 -1071F9B30:lI108|H1071FCA70 -1071FCA70:lI101|H1071FFB28 -1071FFB28:lI95|H107202CD0 -107202CD0:lI115|H107205F00 -107205F00:lI111|H1072091B8 -1072091B8:lI114|H10720C418 -10720C418:lI116|H10720F648 -10720F648:lI101|H1072128F8 -1072128F8:lI114|H107215CD0 -107215CD0:lI46|H1072192D0 -1072192D0:lI98|H10721C990 -10721C990:lI101|H10721FFE0 -10721FFE0:lI97|H1072233E8 -1072233E8:lI109|N -1071F23B0:Mn2:H1071F46F0,H1071F4700 -1071F46F0:lH1071F6F18|N -1071F6F18:lI101|H1071F9B70 -1071F9B70:lI112|H1071FCAB0 -1071FCAB0:lI112|H1071FFB68 -1071FFB68:lI46|H107202D10 -107202D10:lI98|H107205F40 -107205F40:lI101|H1072091F8 -1072091F8:lI97|H10720C458 -10720C458:lI109|N -1071F4700:lH1071F6F28|N -1071F6F28:lI111|H1071F9B80 -1071F9B80:lI114|H1071FCAC0 -1071FCAC0:lI100|H1071FFB78 -1071FFB78:lI115|H107202D20 -107202D20:lI101|H107205F50 -107205F50:lI116|H107209208 -107209208:lI115|H10720C468 -10720C468:lI46|H10720F688 -10720F688:lI98|H107212938 -107212938:lI101|H107215D10 -107215D10:lI97|H107219300 -107219300:lI109|N -1071F23A0:lH1071F46E0|N -1071F46E0:lI101|H1071F6F08 -1071F6F08:lI114|H1071F9B60 -1071F9B60:lI108|H1071FCAA0 -1071FCAA0:lI95|H1071FFB58 -1071FFB58:lI98|H107202D00 -107202D00:lI105|H107205F30 -107205F30:lI116|H1072091E8 -1072091E8:lI115|H10720C448 -10720C448:lI46|H10720F678 -10720F678:lI98|H107212928 -107212928:lI101|H107215D00 -107215D00:lI97|H1072192F0 -1072192F0:lI109|N -1071F2390:lH1071F46D0|N -1071F46D0:lI103|H1071F6EF8 -1071F6EF8:lI98|H1071F9B50 -1071F9B50:lI95|H1071FCA90 -1071FCA90:lI115|H1071FFB48 -1071FFB48:lI101|H107202CF0 -107202CF0:lI116|H107205F20 -107205F20:lI115|H1072091D8 -1072091D8:lI46|H10720C438 -10720C438:lI98|H10720F668 -10720F668:lI101|H107212918 -107212918:lI97|H107215CF0 -107215CF0:lI109|N -1071F2380:lH1071F46C0|N -1071F46C0:lI101|H1071F6EE8 -1071F6EE8:lI114|H1071F9B40 -1071F9B40:lI108|H1071FCA80 -1071FCA80:lI95|H1071FFB38 -1071FFB38:lI101|H107202CE0 -107202CE0:lI118|H107205F10 -107205F10:lI97|H1072091C8 -1072091C8:lI108|H10720C428 -10720C428:lI46|H10720F658 -10720F658:lI98|H107212908 -107212908:lI101|H107215CE0 -107215CE0:lI97|H1072192E0 -1072192E0:lI109|N -1071F0C28:Mn2:H1071F2348,H1071F2358 -1071F2348:lH1071F4680|N -1071F4680:lI101|H1071F6EA8 -1071F6EA8:lI100|H1071F9B00 -1071F9B00:lI108|H1071FCA40 -1071FCA40:lI105|H1071FFAF8 -1071FFAF8:lI110|H107202CA0 -107202CA0:lI95|H107205ED0 -107205ED0:lI101|H107209188 -107209188:lI120|H10720C3E8 -10720C3E8:lI112|H10720F618 -10720F618:lI97|H1072128D8 -1072128D8:lI110|H107215CC0 -107215CC0:lI100|H1072192C0 -1072192C0:lI46|H10721C980 -10721C980:lI98|H10721FFD0 -10721FFD0:lI101|H1072233D8 -1072233D8:lI97|H1072264A0 -1072264A0:lI109|N -1071F2358:Mn2:H1071F4690,H1071F46A0 -1071F4690:lH1071F6EB8|N -1071F6EB8:lI115|H1071F9B10 -1071F9B10:lI108|H1071FCA50 -1071FCA50:lI97|H1071FFB08 -1071FFB08:lI118|H107202CB0 -107202CB0:lI101|H107205EE0 -107205EE0:lI46|H107209198 -107209198:lI98|H10720C3F8 -10720C3F8:lI101|H10720F628 -10720F628:lI97|H1072128E8 -1072128E8:lI109|N -1071F46A0:lH1071F6EC8|N -1071F6EC8:lI115|H1071F9B20 -1071F9B20:lI111|H1071FCA60 -1071FCA60:lI102|H1071FFB18 -1071FFB18:lI115|H107202CC0 -107202CC0:lI46|H107205EF0 -107205EF0:lI98|H1072091A8 -1072091A8:lI101|H10720C408 -10720C408:lI97|H10720F638 -10720F638:lI109|N -1071F0BF0:Mn6:H1071F22E8,H1071F22F8,H1071F2308,H1071F2318,H1071F2328,H1071F2338 -1071F22E8:lH1071F4620|N -1071F4620:lI112|H1071F6E48 -1071F6E48:lI114|H1071F9AA0 -1071F9AA0:lI111|H1071FC9E0 -1071FC9E0:lI99|H1071FFA98 -1071FFA98:lI95|H107202C40 -107202C40:lI108|H107205E70 -107205E70:lI105|H107209128 -107209128:lI98|H10720C388 -10720C388:lI46|H10720F5B8 -10720F5B8:lI98|H107212898 -107212898:lI101|H107215C80 -107215C80:lI97|H107219280 -107219280:lI109|N -1071F2338:lH1071F4670|N -1071F4670:lI101|H1071F6E98 -1071F6E98:lI100|H1071F9AF0 -1071F9AF0:lI108|H1071FCA30 -1071FCA30:lI105|H1071FFAE8 -1071FFAE8:lI110|H107202C90 -107202C90:lI46|H107205EC0 -107205EC0:lI98|H107209178 -107209178:lI101|H10720C3D8 -10720C3D8:lI97|H10720F608 -10720F608:lI109|N -1071F2328:lH1071F4660|N -1071F4660:lI100|H1071F6E88 -1071F6E88:lI101|H1071F9AE0 -1071F9AE0:lI116|H1071FCA20 -1071FCA20:lI115|H1071FFAD8 -1071FFAD8:lI95|H107202C80 -107202C80:lI115|H107205EB0 -107205EB0:lI117|H107209168 -107209168:lI112|H10720C3C8 -10720C3C8:lI46|H10720F5F8 -10720F5F8:lI98|H1072128C8 -1072128C8:lI101|H107215CB0 -107215CB0:lI97|H1072192B0 -1072192B0:lI109|N -1071F2318:lH1071F4650|N -1071F4650:lI115|H1071F6E78 -1071F6E78:lI117|H1071F9AD0 -1071F9AD0:lI112|H1071FCA10 -1071FCA10:lI101|H1071FFAC8 -1071FFAC8:lI114|H107202C70 -107202C70:lI118|H107205EA0 -107205EA0:lI105|H107209158 -107209158:lI115|H10720C3B8 -10720C3B8:lI111|H10720F5E8 -10720F5E8:lI114|H1072128B8 -1072128B8:lI46|H107215CA0 -107215CA0:lI98|H1072192A0 -1072192A0:lI101|H10721C970 -10721C970:lI97|H10721FFC0 -10721FFC0:lI109|N -1071F2308:lH1071F4640|N -1071F4640:lI99|H1071F6E68 -1071F6E68:lI97|H1071F9AC0 -1071F9AC0:lI108|H1071FCA00 -1071FCA00:lI101|H1071FFAB8 -1071FFAB8:lI110|H107202C60 -107202C60:lI100|H107205E90 -107205E90:lI97|H107209148 -107209148:lI114|H10720C3A8 -10720C3A8:lI46|H10720F5D8 -10720F5D8:lI98|H1072128A8 -1072128A8:lI101|H107215C90 -107215C90:lI97|H107219290 -107219290:lI109|N -1071F22F8:lH1071F4630|N -1071F4630:lI116|H1071F6E58 -1071F6E58:lI105|H1071F9AB0 -1071F9AB0:lI109|H1071FC9F0 -1071FC9F0:lI101|H1071FFAA8 -1071FFAA8:lI114|H107202C50 -107202C50:lI46|H107205E80 -107205E80:lI98|H107209138 -107209138:lI101|H10720C398 -10720C398:lI97|H10720F5C8 -10720F5C8:lI109|N -1071F0B88:MnC:H1071F2218,H1071F2228,H1071F2238,H1071F2248,H1071F2258,H1071F2268,H1071F2278,H1071F2288,H1071F2298,H1071F22A8,H1071F22C0,H1071F22D0 -1071F2218:lH1071F4540|N -1071F4540:lI117|H1071F6D68 -1071F6D68:lI114|H1071F99C0 -1071F99C0:lI105|H1071FC900 -1071FC900:lI95|H1071FF9B8 -1071FF9B8:lI115|H107202B60 -107202B60:lI116|H107205DA0 -107205DA0:lI114|H107209058 -107209058:lI105|H10720C2C8 -10720C2C8:lI110|H10720F4F8 -10720F4F8:lI103|H1072127F8 -1072127F8:lI46|H107215BF0 -107215BF0:lI98|H107219200 -107219200:lI101|H10721C900 -10721C900:lI97|H10721FF50 -10721FF50:lI109|N -1071F22D0:Mn2:H1071F4600,H1071F4610 -1071F4600:lH1071F6E28|N -1071F6E28:lI101|H1071F9A80 -1071F9A80:lI114|H1071FC9C0 -1071FC9C0:lI108|H1071FFA78 -1071FFA78:lI95|H107202C20 -107202C20:lI112|H107205E50 -107205E50:lI97|H107209108 -107209108:lI114|H10720C368 -10720C368:lI115|H10720F598 -10720F598:lI101|H107212878 -107212878:lI46|H107215C60 -107215C60:lI98|H107219260 -107219260:lI101|H10721C950 -10721C950:lI97|H10721FFA0 -10721FFA0:lI109|N -1071F4610:lH1071F6E38|N -1071F6E38:lI117|H1071F9A90 -1071F9A90:lI110|H1071FC9D0 -1071FC9D0:lI105|H1071FFA88 -1071FFA88:lI99|H107202C30 -107202C30:lI111|H107205E60 -107205E60:lI100|H107209118 -107209118:lI101|H10720C378 -10720C378:lI95|H10720F5A8 -10720F5A8:lI117|H107212888 -107212888:lI116|H107215C70 -107215C70:lI105|H107219270 -107219270:lI108|H10721C960 -10721C960:lI46|H10721FFB0 -10721FFB0:lI98|H1072233C8 -1072233C8:lI101|H107226490 -107226490:lI97|H1072291D8 -1072291D8:lI109|N -1071F22C0:lH1071F45F0|N -1071F45F0:lI101|H1071F6E18 -1071F6E18:lI114|H1071F9A70 -1071F9A70:lI108|H1071FC9B0 -1071FC9B0:lI95|H1071FFA68 -1071FFA68:lI101|H107202C10 -107202C10:lI120|H107205E40 -107205E40:lI112|H1072090F8 -1072090F8:lI97|H10720C358 -10720C358:lI110|H10720F588 -10720F588:lI100|H107212868 -107212868:lI95|H107215C50 -107215C50:lI114|H107219250 -107219250:lI101|H10721C940 -10721C940:lI99|H10721FF90 -10721FF90:lI111|H1072233B8 -1072233B8:lI114|H107226480 -107226480:lI100|H1072291C8 -1072291C8:lI115|H10722BB50 -10722BB50:lI46|H10722E1A8 -10722E1A8:lI98|H107230560 -107230560:lI101|H107232688 -107232688:lI97|H1072344A0 -1072344A0:lI109|N -1071F22A8:Mn2:H1071F45D0,H1071F45E0 -1071F45D0:lH1071F6DF8|N -1071F6DF8:lI114|H1071F9A50 -1071F9A50:lI97|H1071FC990 -1071FC990:lI110|H1071FFA48 -1071FFA48:lI100|H107202BF0 -107202BF0:lI46|H107205E20 -107205E20:lI98|H1072090D8 -1072090D8:lI101|H10720C338 -10720C338:lI97|H10720F568 -10720F568:lI109|N -1071F45E0:lH1071F6E08|N -1071F6E08:lI101|H1071F9A60 -1071F9A60:lI114|H1071FC9A0 -1071FC9A0:lI114|H1071FFA58 -1071FFA58:lI111|H107202C00 -107202C00:lI114|H107205E30 -107205E30:lI95|H1072090E8 -1072090E8:lI108|H10720C348 -10720C348:lI111|H10720F578 -10720F578:lI103|H107212858 -107212858:lI103|H107215C40 -107215C40:lI101|H107219240 -107219240:lI114|H10721C930 -10721C930:lI95|H10721FF80 -10721FF80:lI116|H1072233A8 -1072233A8:lI116|H107226470 -107226470:lI121|H1072291B8 -1072291B8:lI95|H10722BB40 -10722BB40:lI104|H10722E198 -10722E198:lI46|H107230550 -107230550:lI98|H107232678 -107232678:lI101|H107234490 -107234490:lI97|H107235FC8 -107235FC8:lI109|N -1071F2298:lH1071F45C0|N -1071F45C0:lI101|H1071F6DE8 -1071F6DE8:lI114|H1071F9A40 -1071F9A40:lI108|H1071FC980 -1071FC980:lI95|H1071FFA38 -1071FFA38:lI116|H107202BE0 -107202BE0:lI97|H107205E10 -107205E10:lI114|H1072090C8 -1072090C8:lI46|H10720C328 -10720C328:lI98|H10720F558 -10720F558:lI101|H107212848 -107212848:lI97|H107215C30 -107215C30:lI109|N -1071F2288:lH1071F45B0|N -1071F45B0:lI97|H1071F6DD8 -1071F6DD8:lI114|H1071F9A30 -1071F9A30:lI103|H1071FC970 -1071FC970:lI112|H1071FFA28 -1071FFA28:lI97|H107202BD0 -107202BD0:lI114|H107205E00 -107205E00:lI115|H1072090B8 -1072090B8:lI101|H10720C318 -10720C318:lI46|H10720F548 -10720F548:lI98|H107212838 -107212838:lI101|H107215C20 -107215C20:lI97|H107219230 -107219230:lI109|N -1071F2278:lH1071F45A0|N -1071F45A0:lI115|H1071F6DC8 -1071F6DC8:lI121|H1071F9A20 -1071F9A20:lI115|H1071FC960 -1071FC960:lI46|H1071FFA18 -1071FFA18:lI98|H107202BC0 -107202BC0:lI101|H107205DF0 -107205DF0:lI97|H1072090A8 -1072090A8:lI109|N -1071F2268:lH1071F4590|N -1071F4590:lI105|H1071F6DB8 -1071F6DB8:lI111|H1071F9A10 -1071F9A10:lI95|H1071FC950 -1071FC950:lI108|H1071FFA08 -1071FFA08:lI105|H107202BB0 -107202BB0:lI98|H107205DE0 -107205DE0:lI95|H107209098 -107209098:lI102|H10720C308 -10720C308:lI114|H10720F538 -10720F538:lI101|H107212828 -107212828:lI97|H107215C10 -107215C10:lI100|H107219220 -107219220:lI46|H10721C920 -10721C920:lI98|H10721FF70 -10721FF70:lI101|H107223398 -107223398:lI97|H107226460 -107226460:lI109|N -1071F2258:lH1071F4580|N -1071F4580:lI115|H1071F6DA8 -1071F6DA8:lI116|H1071F9A00 -1071F9A00:lI100|H1071FC940 -1071FC940:lI108|H1071FF9F8 -1071FF9F8:lI105|H107202BA0 -107202BA0:lI98|H107205DD0 -107205DD0:lI46|H107209088 -107209088:lI97|H10720C2F8 -10720C2F8:lI112|H10720F528 -10720F528:lI112|N -1071F2248:lH1071F4570|N -1071F4570:lI101|H1071F6D98 -1071F6D98:lI114|H1071F99F0 -1071F99F0:lI108|H1071FC930 -1071FC930:lI95|H1071FF9E8 -1071FF9E8:lI97|H107202B90 -107202B90:lI98|H107205DC0 -107205DC0:lI115|H107209078 -107209078:lI116|H10720C2E8 -10720C2E8:lI114|H10720F518 -10720F518:lI97|H107212818 -107212818:lI99|H107215C00 -107215C00:lI116|H107219210 -107219210:lI95|H10721C910 -10721C910:lI99|H10721FF60 -10721FF60:lI111|H107223388 -107223388:lI100|H107226450 -107226450:lI101|H1072291A8 -1072291A8:lI46|H10722BB30 -10722BB30:lI98|H10722E188 -10722E188:lI101|H107230540 -107230540:lI97|H107232668 -107232668:lI109|N -1071F2238:lH1071F4560|N -1071F4560:lI99|H1071F6D88 -1071F6D88:lI46|H1071F99E0 -1071F99E0:lI98|H1071FC920 -1071FC920:lI101|H1071FF9D8 -1071FF9D8:lI97|H107202B80 -107202B80:lI109|N -1071F2228:lH1071F4550|N -1071F4550:lI113|H1071F6D78 -1071F6D78:lI108|H1071F99D0 -1071F99D0:lI99|H1071FC910 -1071FC910:lI95|H1071FF9C8 -1071FF9C8:lI112|H107202B70 -107202B70:lI116|H107205DB0 -107205DB0:lI46|H107209068 -107209068:lI98|H10720C2D8 -10720C2D8:lI101|H10720F508 -10720F508:lI97|H107212808 -107212808:lI109|N -1071F0B58:Mn5:H1071F21C8,H1071F21D8,H1071F21E8,H1071F21F8,H1071F2208 -1071F21C8:lH1071F44F0|N -1071F44F0:lI105|H1071F6D18 -1071F6D18:lI111|H1071F9970 -1071F9970:lI95|H1071FC8B0 -1071FC8B0:lI108|H1071FF968 -1071FF968:lI105|H107202B10 -107202B10:lI98|H107205D50 -107205D50:lI95|H107209008 -107209008:lI102|H10720C278 -10720C278:lI111|H10720F4B8 -10720F4B8:lI114|H1072127B8 -1072127B8:lI109|H107215BB0 -107215BB0:lI97|H1072191C0 -1072191C0:lI116|H10721C8D0 -10721C8D0:lI46|H10721FF20 -10721FF20:lI98|H107223368 -107223368:lI101|H107226430 -107226430:lI97|H107229198 -107229198:lI109|N -1071F2208:lH1071F4530|N -1071F4530:lI103|H1071F6D58 -1071F6D58:lI101|H1071F99B0 -1071F99B0:lI110|H1071FC8F0 -1071FC8F0:lI95|H1071FF9A8 -1071FF9A8:lI115|H107202B50 -107202B50:lI101|H107205D90 -107205D90:lI114|H107209048 -107209048:lI118|H10720C2B8 -10720C2B8:lI101|H10720F4E8 -10720F4E8:lI114|H1072127E8 -1072127E8:lI46|H107215BE0 -107215BE0:lI98|H1072191F0 -1072191F0:lI101|H10721C8F0 -10721C8F0:lI97|H10721FF40 -10721FF40:lI109|N -1071F21F8:lH1071F4520|N -1071F4520:lI119|H1071F6D48 -1071F6D48:lI105|H1071F99A0 -1071F99A0:lI110|H1071FC8E0 -1071FC8E0:lI51|H1071FF998 -1071FF998:lI50|H107202B40 -107202B40:lI114|H107205D80 -107205D80:lI101|H107209038 -107209038:lI103|H10720C2A8 -10720C2A8:lI46|H10720F4D8 -10720F4D8:lI98|H1072127D8 -1072127D8:lI101|H107215BD0 -107215BD0:lI97|H1072191E0 -1072191E0:lI109|N -1071F21E8:lH1071F4510|N -1071F4510:lI111|H1071F6D38 -1071F6D38:lI116|H1071F9990 -1071F9990:lI112|H1071FC8D0 -1071FC8D0:lI95|H1071FF988 -1071FF988:lI105|H107202B30 -107202B30:lI110|H107205D70 -107205D70:lI116|H107209028 -107209028:lI101|H10720C298 -10720C298:lI114|H10720F4C8 -10720F4C8:lI110|H1072127C8 -1072127C8:lI97|H107215BC0 -107215BC0:lI108|H1072191D0 -1072191D0:lI46|H10721C8E0 -10721C8E0:lI98|H10721FF30 -10721FF30:lI101|H107223378 -107223378:lI97|H107226440 -107226440:lI109|N -1071F21D8:lH1071F4500|N -1071F4500:lI100|H1071F6D28 -1071F6D28:lI101|H1071F9980 -1071F9980:lI116|H1071FC8C0 -1071FC8C0:lI115|H1071FF978 -1071FF978:lI46|H107202B20 -107202B20:lI98|H107205D60 -107205D60:lI101|H107209018 -107209018:lI97|H10720C288 -10720C288:lI109|N -1071F0B30:Mn4:H1071F2188,H1071F2198,H1071F21A8,H1071F21B8 -1071F2188:lH1071F44B0|N -1071F44B0:lI101|H1071F6CD8 -1071F6CD8:lI114|H1071F9930 -1071F9930:lI108|H1071FC870 -1071FC870:lI95|H1071FF928 -1071FF928:lI112|H107202AD0 -107202AD0:lI112|H107205D10 -107205D10:lI46|H107208FC8 -107208FC8:lI98|H10720C238 -10720C238:lI101|H10720F478 -10720F478:lI97|H107212778 -107212778:lI109|N -1071F21B8:lH1071F44E0|N -1071F44E0:lI100|H1071F6D08 -1071F6D08:lI101|H1071F9960 -1071F9960:lI116|H1071FC8A0 -1071FC8A0:lI115|H1071FF958 -1071FF958:lI95|H107202B00 -107202B00:lI117|H107205D40 -107205D40:lI116|H107208FF8 -107208FF8:lI105|H10720C268 -10720C268:lI108|H10720F4A8 -10720F4A8:lI115|H1072127A8 -1072127A8:lI46|H107215BA0 -107215BA0:lI98|H1072191B0 -1072191B0:lI101|H10721C8C0 -10721C8C0:lI97|H10721FF10 -10721FF10:lI109|N -1071F21A8:lH1071F44D0|N -1071F44D0:lI105|H1071F6CF8 -1071F6CF8:lI111|H1071F9950 -1071F9950:lI95|H1071FC890 -1071FC890:lI108|H1071FF948 -1071FF948:lI105|H107202AF0 -107202AF0:lI98|H107205D30 -107205D30:lI95|H107208FE8 -107208FE8:lI112|H10720C258 -10720C258:lI114|H10720F498 -10720F498:lI101|H107212798 -107212798:lI116|H107215B90 -107215B90:lI116|H1072191A0 -1072191A0:lI121|H10721C8B0 -10721C8B0:lI46|H10721FF00 -10721FF00:lI98|H107223358 -107223358:lI101|H107226420 -107226420:lI97|H107229188 -107229188:lI109|N -1071F2198:lH1071F44C0|N -1071F44C0:lI101|H1071F6CE8 -1071F6CE8:lI114|H1071F9940 -1071F9940:lI108|H1071FC880 -1071FC880:lI95|H1071FF938 -1071FF938:lI102|H107202AE0 -107202AE0:lI101|H107205D20 -107205D20:lI97|H107208FD8 -107208FD8:lI116|H10720C248 -10720C248:lI117|H10720F488 -10720F488:lI114|H107212788 -107212788:lI101|H107215B80 -107215B80:lI115|H107219190 -107219190:lI46|H10721C8A0 -10721C8A0:lI98|H10721FEF0 -10721FEF0:lI101|H107223348 -107223348:lI97|H107226410 -107226410:lI109|N -1071F0AF0:Mn7:H1071F2108,H1071F2118,H1071F2128,H1071F2140,H1071F2150,H1071F2168,H1071F2178 -1071F2108:lH1071F4418|N -1071F4418:lI101|H1071F6C38 -1071F6C38:lI114|H1071F9890 -1071F9890:lI108|H1071FC7D0 -1071FC7D0:lI95|H1071FF888 -1071FF888:lI105|H107202A30 -107202A30:lI110|H107205C70 -107205C70:lI116|H107208F38 -107208F38:lI101|H10720C1A8 -10720C1A8:lI114|H10720F3F8 -10720F3F8:lI110|H1072126F8 -1072126F8:lI97|H107215B20 -107215B20:lI108|H107219150 -107219150:lI46|H10721C860 -10721C860:lI98|H10721FEB0 -10721FEB0:lI101|H107223328 -107223328:lI97|H1072263F0 -1072263F0:lI109|N -1071F2178:lH1071F44A0|N -1071F44A0:lI102|H1071F6CC8 -1071F6CC8:lI105|H1071F9920 -1071F9920:lI108|H1071FC860 -1071FC860:lI101|H1071FF918 -1071FF918:lI108|H107202AC0 -107202AC0:lI105|H107205D00 -107205D00:lI98|H107208FB8 -107208FB8:lI46|H10720C228 -10720C228:lI98|H10720F468 -10720F468:lI101|H107212768 -107212768:lI97|H107215B70 -107215B70:lI109|N -1071F2168:lH1071F4490|N -1071F4490:lI109|H1071F6CB8 -1071F6CB8:lI97|H1071F9910 -1071F9910:lI112|H1071FC850 -1071FC850:lI115|H1071FF908 -1071FF908:lI46|H107202AB0 -107202AB0:lI98|H107205CF0 -107205CF0:lI101|H107208FA8 -107208FA8:lI97|H10720C218 -10720C218:lI109|N -1071F2150:Mn2:H1071F4470,H1071F4480 -1071F4470:lH1071F6C98|N -1071F6C98:lI112|H1071F98F0 -1071F98F0:lI114|H1071FC830 -1071FC830:lI111|H1071FF8E8 -1071FF8E8:lI112|H107202A90 -107202A90:lI108|H107205CD0 -107205CD0:lI105|H107208F88 -107208F88:lI115|H10720C1F8 -10720C1F8:lI116|H10720F448 -10720F448:lI115|H107212748 -107212748:lI46|H107215B60 -107215B60:lI98|H107219180 -107219180:lI101|H10721C890 -10721C890:lI97|H10721FEE0 -10721FEE0:lI109|N -1071F4480:lH1071F6CA8|N -1071F6CA8:lI113|H1071F9900 -1071F9900:lI117|H1071FC840 -1071FC840:lI101|H1071FF8F8 -1071FF8F8:lI117|H107202AA0 -107202AA0:lI101|H107205CE0 -107205CE0:lI46|H107208F98 -107208F98:lI98|H10720C208 -10720C208:lI101|H10720F458 -10720F458:lI97|H107212758 -107212758:lI109|N -1071F2140:lH1071F4460|N -1071F4460:lI114|H1071F6C88 -1071F6C88:lI101|H1071F98E0 -1071F98E0:lI46|H1071FC820 -1071FC820:lI98|H1071FF8D8 -1071FF8D8:lI101|H107202A80 -107202A80:lI97|H107205CC0 -107205CC0:lI109|N -1071F2128:Mn2:H1071F4440,H1071F4450 -1071F4440:lH1071F6C68|N -1071F6C68:lI114|H1071F98C0 -1071F98C0:lI97|H1071FC800 -1071FC800:lI110|H1071FF8B8 -1071FF8B8:lI100|H107202A60 -107202A60:lI111|H107205CA0 -107205CA0:lI109|H107208F68 -107208F68:lI46|H10720C1D8 -10720C1D8:lI98|H10720F428 -10720F428:lI101|H107212728 -107212728:lI97|H107215B40 -107215B40:lI109|N -1071F4450:lH1071F6C78|N -1071F6C78:lI101|H1071F98D0 -1071F98D0:lI114|H1071FC810 -1071FC810:lI108|H1071FF8C8 -1071FF8C8:lI95|H107202A70 -107202A70:lI99|H107205CB0 -107205CB0:lI111|H107208F78 -107208F78:lI109|H10720C1E8 -10720C1E8:lI112|H10720F438 -10720F438:lI105|H107212738 -107212738:lI108|H107215B50 -107215B50:lI101|H107219170 -107219170:lI46|H10721C880 -10721C880:lI98|H10721FED0 -10721FED0:lI101|H107223338 -107223338:lI97|H107226400 -107226400:lI109|N -1071F2118:Mn1:H1071F4428 -1071F4428:Mn2:H1071F6C48,H1071F6C58 -1071F6C48:lH1071F98A0|N -1071F98A0:lI103|H1071FC7E0 -1071FC7E0:lI98|H1071FF898 -1071FF898:lI95|H107202A40 -107202A40:lI116|H107205C80 -107205C80:lI114|H107208F48 -107208F48:lI101|H10720C1B8 -10720C1B8:lI101|H10720F408 -10720F408:lI115|H107212708 -107212708:lI46|H107215B30 -107215B30:lI98|H107219160 -107219160:lI101|H10721C870 -10721C870:lI97|H10721FEC0 -10721FEC0:lI109|N -1071F6C58:lH1071F98B0|N -1071F98B0:lI112|H1071FC7F0 -1071FC7F0:lI101|H1071FF8A8 -1071FF8A8:lI101|H107202A50 -107202A50:lI114|H107205C90 -107205C90:lI46|H107208F58 -107208F58:lI98|H10720C1C8 -10720C1C8:lI101|H10720F418 -10720F418:lI97|H107212718 -107212718:lI109|N -1071F0AC8:Mn4:H1071F20B8,H1071F20C8,H1071F20E0,H1071F20F0 -1071F20B8:lH1071F43B8|N -1071F43B8:lI115|H1071F6BD8 -1071F6BD8:lI101|H1071F9830 -1071F9830:lI116|H1071FC770 -1071FC770:lI115|H1071FF828 -1071FF828:lI46|H1072029D0 -1072029D0:lI98|H107205C10 -107205C10:lI101|H107208ED8 -107208ED8:lI97|H10720C148 -10720C148:lI109|N -1071F20F0:Mn2:H1071F43F8,H1071F4408 -1071F43F8:lH1071F6C18|N -1071F6C18:lI108|H1071F9870 -1071F9870:lI111|H1071FC7B0 -1071FC7B0:lI103|H1071FF868 -1071FF868:lI95|H107202A10 -107202A10:lI109|H107205C50 -107205C50:lI102|H107208F18 -107208F18:lI95|H10720C188 -10720C188:lI104|H10720F3D8 -10720F3D8:lI46|H1072126D8 -1072126D8:lI98|H107215B10 -107215B10:lI101|H107219140 -107219140:lI97|H10721C850 -10721C850:lI109|N -1071F4408:lH1071F6C28|N -1071F6C28:lI108|H1071F9880 -1071F9880:lI105|H1071FC7C0 -1071FC7C0:lI115|H1071FF878 -1071FF878:lI116|H107202A20 -107202A20:lI115|H107205C60 -107205C60:lI46|H107208F28 -107208F28:lI98|H10720C198 -10720C198:lI101|H10720F3E8 -10720F3E8:lI97|H1072126E8 -1072126E8:lI109|N -1071F20E0:lH1071F43E8|N -1071F43E8:lI105|H1071F6C08 -1071F6C08:lI111|H1071F9860 -1071F9860:lI95|H1071FC7A0 -1071FC7A0:lI108|H1071FF858 -1071FF858:lI105|H107202A00 -107202A00:lI98|H107205C40 -107205C40:lI46|H107208F08 -107208F08:lI98|H10720C178 -10720C178:lI101|H10720F3C8 -10720F3C8:lI97|H1072126C8 -1072126C8:lI109|N -1071F20C8:Mn2:H1071F43C8,H1071F43D8 -1071F43C8:lH1071F6BE8|N -1071F6BE8:lI101|H1071F9840 -1071F9840:lI114|H1071FC780 -1071FC780:lI108|H1071FF838 -1071FF838:lI95|H1072029E0 -1072029E0:lI115|H107205C20 -107205C20:lI116|H107208EE8 -107208EE8:lI100|H10720C158 -10720C158:lI108|H10720F3A8 -10720F3A8:lI105|H1072126A8 -1072126A8:lI98|H107215AF0 -107215AF0:lI95|H107219120 -107219120:lI101|H10721C840 -10721C840:lI114|H10721FEA0 -10721FEA0:lI114|H107223318 -107223318:lI111|H1072263E0 -1072263E0:lI114|H107229178 -107229178:lI115|H10722BB20 -10722BB20:lI46|H10722E178 -10722E178:lI98|H107230530 -107230530:lI101|H107232658 -107232658:lI97|H107234480 -107234480:lI109|N -1071F43D8:lH1071F6BF8|N -1071F6BF8:lI111|H1071F9850 -1071F9850:lI114|H1071FC790 -1071FC790:lI100|H1071FF848 -1071FF848:lI100|H1072029F0 -1072029F0:lI105|H107205C30 -107205C30:lI99|H107208EF8 -107208EF8:lI116|H10720C168 -10720C168:lI46|H10720F3B8 -10720F3B8:lI98|H1072126B8 -1072126B8:lI101|H107215B00 -107215B00:lI97|H107219130 -107219130:lI109|N -1071F0A98:Mn5:H1071F2060,H1071F2070,H1071F2080,H1071F2098,H1071F20A8 -1071F2060:lH1071F4358|N -1071F4358:lI113|H1071F6B78 -1071F6B78:lI108|H1071F97D0 -1071F97D0:lI99|H1071FC710 -1071FC710:lI46|H1071FF7C8 -1071FF7C8:lI98|H107202970 -107202970:lI101|H107205BB0 -107205BB0:lI97|H107208E78 -107208E78:lI109|N -1071F20A8:lH1071F43A8|N -1071F43A8:lI115|H1071F6BC8 -1071F6BC8:lI117|H1071F9820 -1071F9820:lI112|H1071FC760 -1071FC760:lI101|H1071FF818 -1071FF818:lI114|H1072029C0 -1072029C0:lI118|H107205C00 -107205C00:lI105|H107208EC8 -107208EC8:lI115|H10720C138 -10720C138:lI111|H10720F398 -10720F398:lI114|H107212698 -107212698:lI95|H107215AE0 -107215AE0:lI98|H107219110 -107219110:lI114|H10721C830 -10721C830:lI105|H10721FE90 -10721FE90:lI100|H107223308 -107223308:lI103|H1072263D0 -1072263D0:lI101|H107229168 -107229168:lI46|H10722BB10 -10722BB10:lI98|H10722E168 -10722E168:lI101|H107230520 -107230520:lI97|H107232648 -107232648:lI109|N -1071F2098:lH1071F4398|N -1071F4398:lI101|H1071F6BB8 -1071F6BB8:lI114|H1071F9810 -1071F9810:lI108|H1071FC750 -1071FC750:lI95|H1071FF808 -1071FF808:lI108|H1072029B0 -1072029B0:lI105|H107205BF0 -107205BF0:lI110|H107208EB8 -107208EB8:lI116|H10720C128 -10720C128:lI46|H10720F388 -10720F388:lI98|H107212688 -107212688:lI101|H107215AD0 -107215AD0:lI97|H107219100 -107219100:lI109|N -1071F2080:Mn2:H1071F4378,H1071F4388 -1071F4378:lH1071F6B98|N -1071F6B98:lI101|H1071F97F0 -1071F97F0:lI114|H1071FC730 -1071FC730:lI108|H1071FF7E8 -1071FF7E8:lI95|H107202990 -107202990:lI115|H107205BD0 -107205BD0:lI99|H107208E98 -107208E98:lI97|H10720C108 -10720C108:lI110|H10720F368 -10720F368:lI46|H107212668 -107212668:lI98|H107215AC0 -107215AC0:lI101|H1072190F0 -1072190F0:lI97|H10721C820 -10721C820:lI109|N -1071F4388:lH1071F6BA8|N -1071F6BA8:lI115|H1071F9800 -1071F9800:lI104|H1071FC740 -1071FC740:lI101|H1071FF7F8 -1071FF7F8:lI108|H1072029A0 -1072029A0:lI108|H107205BE0 -107205BE0:lI46|H107208EA8 -107208EA8:lI98|H10720C118 -10720C118:lI101|H10720F378 -10720F378:lI97|H107212678 -107212678:lI109|N -1071F2070:lH1071F4368|N -1071F4368:lI101|H1071F6B88 -1071F6B88:lI114|H1071F97E0 -1071F97E0:lI108|H1071FC720 -1071FC720:lI95|H1071FF7D8 -1071FF7D8:lI112|H107202980 -107202980:lI111|H107205BC0 -107205BC0:lI115|H107208E88 -107208E88:lI105|H10720C0F8 -10720C0F8:lI120|H10720F358 -10720F358:lI95|H107212658 -107212658:lI109|H107215AB0 -107215AB0:lI115|H1072190E0 -1072190E0:lI103|H10721C810 -10721C810:lI46|H10721FE80 -10721FE80:lI98|H1072232F8 -1072232F8:lI101|H1072263C0 -1072263C0:lI97|H107229158 -107229158:lI109|N -1071F0A68:Mn5:H1071F2008,H1071F2018,H1071F2030,H1071F2040,H1071F2050 -1071F2008:lH1071F42F8|N -1071F42F8:lI98|H1071F6B18 -1071F6B18:lI101|H1071F9770 -1071F9770:lI97|H1071FC6B0 -1071FC6B0:lI109|H1071FF768 -1071FF768:lI95|H107202910 -107202910:lI108|H107205B50 -107205B50:lI105|H107208E18 -107208E18:lI98|H10720C0A8 -10720C0A8:lI46|H10720F318 -10720F318:lI98|H107212628 -107212628:lI101|H107215A90 -107215A90:lI97|H1072190C0 -1072190C0:lI109|N -1071F2050:lH1071F4348|N -1071F4348:lI112|H1071F6B68 -1071F6B68:lI111|H1071F97C0 -1071F97C0:lI111|H1071FC700 -1071FC700:lI108|H1071FF7B8 -1071FF7B8:lI46|H107202960 -107202960:lI98|H107205BA0 -107205BA0:lI101|H107208E68 -107208E68:lI97|H10720C0E8 -10720C0E8:lI109|N -1071F2040:lH1071F4338|N -1071F4338:lI98|H1071F6B58 -1071F6B58:lI97|H1071F97B0 -1071F97B0:lI115|H1071FC6F0 -1071FC6F0:lI101|H1071FF7A8 -1071FF7A8:lI54|H107202950 -107202950:lI52|H107205B90 -107205B90:lI46|H107208E58 -107208E58:lI98|H10720C0D8 -10720C0D8:lI101|H10720F348 -10720F348:lI97|H107212648 -107212648:lI109|N -1071F2030:lH1071F4328|N -1071F4328:lI103|H1071F6B48 -1071F6B48:lI101|H1071F97A0 -1071F97A0:lI110|H1071FC6E0 -1071FC6E0:lI46|H1071FF798 -1071FF798:lI98|H107202940 -107202940:lI101|H107205B80 -107205B80:lI97|H107208E48 -107208E48:lI109|N -1071F2018:Mn2:H1071F4308,H1071F4318 -1071F4308:lH1071F6B28|N -1071F6B28:lI101|H1071F9780 -1071F9780:lI114|H1071FC6C0 -1071FC6C0:lI108|H1071FF778 -1071FF778:lI95|H107202920 -107202920:lI101|H107205B60 -107205B60:lI114|H107208E28 -107208E28:lI114|H10720C0B8 -10720C0B8:lI111|H10720F328 -10720F328:lI114|H107212638 -107212638:lI46|H107215AA0 -107215AA0:lI98|H1072190D0 -1072190D0:lI101|H10721C800 -10721C800:lI97|H10721FE70 -10721FE70:lI109|N -1071F4318:lH1071F6B38|N -1071F6B38:lI109|H1071F9790 -1071F9790:lI97|H1071FC6D0 -1071FC6D0:lI116|H1071FF788 -1071FF788:lI104|H107202930 -107202930:lI46|H107205B70 -107205B70:lI98|H107208E38 -107208E38:lI101|H10720C0C8 -10720C0C8:lI97|H10720F338 -10720F338:lI109|N -1071F0A38:Mn5:H1071F1FB0,H1071F1FC8,H1071F1FD8,H1071F1FE8,H1071F1FF8 -1071F1FB0:Mn2:H1071F4298,H1071F42A8 -1071F4298:lH1071F6AB8|N -1071F6AB8:lI115|H1071F9710 -1071F9710:lI104|H1071FC650 -1071FC650:lI101|H1071FF708 -1071FF708:lI108|H1072028B0 -1072028B0:lI108|H107205AF0 -107205AF0:lI95|H107208DB8 -107208DB8:lI100|H10720C048 -10720C048:lI101|H10720F2C8 -10720F2C8:lI102|H1072125D8 -1072125D8:lI97|H107215A40 -107215A40:lI117|H107219080 -107219080:lI108|H10721C7D0 -10721C7D0:lI116|H10721FE40 -10721FE40:lI46|H1072232C8 -1072232C8:lI98|H1072263A0 -1072263A0:lI101|H107229138 -107229138:lI97|H10722BB00 -10722BB00:lI109|N -1071F42A8:lH1071F6AC8|N -1071F6AC8:lI115|H1071F9720 -1071F9720:lI104|H1071FC660 -1071FC660:lI101|H1071FF718 -1071FF718:lI108|H1072028C0 -1072028C0:lI108|H107205B00 -107205B00:lI95|H107208DC8 -107208DC8:lI100|H10720C058 -10720C058:lI111|H10720F2D8 -10720F2D8:lI99|H1072125E8 -1072125E8:lI115|H107215A50 -107215A50:lI46|H107219090 -107219090:lI98|H10721C7E0 -10721C7E0:lI101|H10721FE50 -10721FE50:lI97|H1072232D8 -1072232D8:lI109|N -1071F1FF8:lH1071F42E8|N -1071F42E8:lI100|H1071F6B08 -1071F6B08:lI105|H1071F9760 -1071F9760:lI103|H1071FC6A0 -1071FC6A0:lI114|H1071FF758 -1071FF758:lI97|H107202900 -107202900:lI112|H107205B40 -107205B40:lI104|H107208E08 -107208E08:lI95|H10720C098 -10720C098:lI117|H10720F308 -10720F308:lI116|H107212618 -107212618:lI105|H107215A80 -107215A80:lI108|H1072190B0 -1072190B0:lI115|H10721C7F0 -10721C7F0:lI46|H10721FE60 -10721FE60:lI98|H1072232E8 -1072232E8:lI101|H1072263B0 -1072263B0:lI97|H107229148 -107229148:lI109|N -1071F1FE8:lH1071F42D8|N -1071F42D8:lI101|H1071F6AF8 -1071F6AF8:lI115|H1071F9750 -1071F9750:lI99|H1071FC690 -1071FC690:lI114|H1071FF748 -1071FF748:lI105|H1072028F0 -1072028F0:lI112|H107205B30 -107205B30:lI116|H107208DF8 -107208DF8:lI46|H10720C088 -10720C088:lI98|H10720F2F8 -10720F2F8:lI101|H107212608 -107212608:lI97|H107215A70 -107215A70:lI109|N -1071F1FD8:lH1071F42C8|N -1071F42C8:lI100|H1071F6AE8 -1071F6AE8:lI105|H1071F9740 -1071F9740:lI99|H1071FC680 -1071FC680:lI116|H1071FF738 -1071FF738:lI46|H1072028E0 -1072028E0:lI98|H107205B20 -107205B20:lI101|H107208DE8 -107208DE8:lI97|H10720C078 -10720C078:lI109|N -1071F1FC8:lH1071F42B8|N -1071F42B8:lI101|H1071F6AD8 -1071F6AD8:lI114|H1071F9730 -1071F9730:lI108|H1071FC670 -1071FC670:lI95|H1071FF728 -1071FF728:lI97|H1072028D0 -1072028D0:lI110|H107205B10 -107205B10:lI110|H107208DD8 -107208DD8:lI111|H10720C068 -10720C068:lI46|H10720F2E8 -10720F2E8:lI98|H1072125F8 -1072125F8:lI101|H107215A60 -107215A60:lI97|H1072190A0 -1072190A0:lI109|N -1071F0A28:lH1071F1FA0|N -1071F1FA0:lI103|H1071F4288 -1071F4288:lI101|H1071F6AA8 -1071F6AA8:lI110|H1071F9700 -1071F9700:lI95|H1071FC640 -1071FC640:lI102|H1071FF6F8 -1071FF6F8:lI115|H1072028A0 -1072028A0:lI109|H107205AE0 -107205AE0:lI46|H107208DA8 -107208DA8:lI98|H10720C038 -10720C038:lI101|H10720F2B8 -10720F2B8:lI97|H1072125C8 -1072125C8:lI109|N -1071F0A08:Mn3:H1071F1F70,H1071F1F80,H1071F1F90 -1071F1F70:lH1071F4258|N -1071F4258:lI100|H1071F6A78 -1071F6A78:lI101|H1071F96D0 -1071F96D0:lI116|H1071FC610 -1071FC610:lI115|H1071FF6C8 -1071FF6C8:lI95|H107202870 -107202870:lI118|H107205AB0 -107205AB0:lI57|H107208D78 -107208D78:lI46|H10720C018 -10720C018:lI98|H10720F298 -10720F298:lI101|H1072125A8 -1072125A8:lI97|H107215A20 -107215A20:lI109|N -1071F1F90:lH1071F4278|N -1071F4278:lI102|H1071F6A98 -1071F6A98:lI105|H1071F96F0 -1071F96F0:lI108|H1071FC630 -1071FC630:lI101|H1071FF6E8 -1071FF6E8:lI110|H107202890 -107202890:lI97|H107205AD0 -107205AD0:lI109|H107208D98 -107208D98:lI101|H10720C028 -10720C028:lI46|H10720F2A8 -10720F2A8:lI98|H1072125B8 -1072125B8:lI101|H107215A30 -107215A30:lI97|H107219070 -107219070:lI109|N -1071F1F80:lH1071F4268|N -1071F4268:lI101|H1071F6A88 -1071F6A88:lI116|H1071F96E0 -1071F96E0:lI115|H1071FC620 -1071FC620:lI46|H1071FF6D8 -1071FF6D8:lI98|H107202880 -107202880:lI101|H107205AC0 -107205AC0:lI97|H107208D88 -107208D88:lI109|N -1071F09C8:Mn7:H1071F1F00,H1071F1F10,H1071F1F20,H1071F1F30,H1071F1F40,H1071F1F50,H1071F1F60 -1071F1F00:lH1071F41E8|N -1071F41E8:lI101|H1071F6A08 -1071F6A08:lI114|H1071F9660 -1071F9660:lI114|H1071FC5A0 -1071FC5A0:lI111|H1071FF658 -1071FF658:lI114|H107202800 -107202800:lI95|H107205A40 -107205A40:lI108|H107208D18 -107208D18:lI111|H10720BFC8 -10720BFC8:lI103|H10720F248 -10720F248:lI103|H107212568 -107212568:lI101|H1072159F0 -1072159F0:lI114|H107219050 -107219050:lI95|H10721C7B0 -10721C7B0:lI102|H10721FE20 -10721FE20:lI105|H1072232A8 -1072232A8:lI108|H107226390 -107226390:lI101|H107229128 -107229128:lI95|H10722BAF0 -10722BAF0:lI104|H10722E158 -10722E158:lI46|H107230510 -107230510:lI98|H107232638 -107232638:lI101|H107234470 -107234470:lI97|H107235FB8 -107235FB8:lI109|N -1071F1F60:lH1071F4248|N -1071F4248:lI115|H1071F6A68 -1071F6A68:lI116|H1071F96C0 -1071F96C0:lI114|H1071FC600 -1071FC600:lI105|H1071FF6B8 -1071FF6B8:lI110|H107202860 -107202860:lI103|H107205AA0 -107205AA0:lI46|H107208D68 -107208D68:lI98|H10720C008 -10720C008:lI101|H10720F288 -10720F288:lI97|H107212598 -107212598:lI109|N -1071F1F50:lH1071F4238|N -1071F4238:lI122|H1071F6A58 -1071F6A58:lI105|H1071F96B0 -1071F96B0:lI112|H1071FC5F0 -1071FC5F0:lI46|H1071FF6A8 -1071FF6A8:lI98|H107202850 -107202850:lI101|H107205A90 -107205A90:lI97|H107208D58 -107208D58:lI109|N -1071F1F40:lH1071F4228|N -1071F4228:lI97|H1071F6A48 -1071F6A48:lI114|H1071F96A0 -1071F96A0:lI114|H1071FC5E0 -1071FC5E0:lI97|H1071FF698 -1071FF698:lI121|H107202840 -107202840:lI46|H107205A80 -107205A80:lI98|H107208D48 -107208D48:lI101|H10720BFF8 -10720BFF8:lI97|H10720F278 -10720F278:lI109|N -1071F1F30:lH1071F4218|N -1071F4218:lI105|H1071F6A38 -1071F6A38:lI111|H1071F9690 -1071F9690:lI46|H1071FC5D0 -1071FC5D0:lI98|H1071FF688 -1071FF688:lI101|H107202830 -107202830:lI97|H107205A70 -107205A70:lI109|N -1071F1F20:lH1071F4208|N -1071F4208:lI100|H1071F6A28 -1071F6A28:lI101|H1071F9680 -1071F9680:lI116|H1071FC5C0 -1071FC5C0:lI115|H1071FF678 -1071FF678:lI95|H107202820 -107202820:lI115|H107205A60 -107205A60:lI101|H107208D38 -107208D38:lI114|H10720BFE8 -10720BFE8:lI118|H10720F268 -10720F268:lI101|H107212588 -107212588:lI114|H107215A10 -107215A10:lI46|H107219060 -107219060:lI98|H10721C7C0 -10721C7C0:lI101|H10721FE30 -10721FE30:lI97|H1072232B8 -1072232B8:lI109|N -1071F1F10:lH1071F41F8|N -1071F41F8:lI115|H1071F6A18 -1071F6A18:lI116|H1071F9670 -1071F9670:lI100|H1071FC5B0 -1071FC5B0:lI108|H1071FF668 -1071FF668:lI105|H107202810 -107202810:lI98|H107205A50 -107205A50:lI46|H107208D28 -107208D28:lI97|H10720BFD8 -10720BFD8:lI112|H10720F258 -10720F258:lI112|H107212578 -107212578:lI117|H107215A00 -107215A00:lI112|N -1071F0140:lI47|H1071F0998 -1071F0998:lI111|H1071F1EC0 -1071F1EC0:lI112|H1071F41A8 -1071F41A8:lI116|H1071F69C8 -1071F69C8:lI47|H1071F9620 -1071F9620:lI104|H1071FC560 -1071FC560:lI111|H1071FF618 -1071FF618:lI109|H1072027C0 -1072027C0:lI101|H107205A00 -107205A00:lI98|H107208CD8 -107208CD8:lI114|H10720BF88 -10720BF88:lI101|H10720F208 -10720F208:lI119|H107212528 -107212528:lI47|H1072159B0 -1072159B0:lI67|H107219020 -107219020:lI101|H10721C780 -10721C780:lI108|H10721FE00 -10721FE00:lI108|H107223288 -107223288:lI97|H107226370 -107226370:lI114|H107229108 -107229108:lI47|H10722BAD0 -10722BAD0:lI101|H10722E138 -10722E138:lI114|H1072304F0 -1072304F0:lI108|H107232618 -107232618:lI97|H107234450 -107234450:lI110|H107235F98 -107235F98:lI103|H107237830 -107237830:lI47|H107238EB8 -107238EB8:lI50|H10723A390 -10723A390:lI54|H10723B6D0 -10723B6D0:lI46|H10723C7A0 -10723C7A0:lI48|H10723D660 -10723D660:lI46|H10723E3E0 -10723E3E0:lI50|H10723EFF0 -10723EFF0:lI47|H10723FAC0 -10723FAC0:lI108|H107240410 -107240410:lI105|H107240C90 -107240C90:lI98|H107241420 -107241420:lI47|H107241B50 -107241B50:lI101|H107242220 -107242220:lI114|H107242890 -107242890:lI108|H107242E90 -107242E90:lI97|H107243400 -107243400:lI110|H107243940 -107243940:lI103|H107243E30 -107243E30:lI47|H107244320 -107244320:lI108|H1072447D0 -1072447D0:lI105|H107244C40 -107244C40:lI98|H1072450A0 -1072450A0:lI47|H1072454F0 -1072454F0:lI115|H1072458F0 -1072458F0:lI116|H107245CB0 -107245CB0:lI100|H107246040 -107246040:lI108|H1072463D0 -1072463D0:lI105|H107246760 -107246760:lI98|H107246AF0 -107246AF0:lI45|H107246E30 -107246E30:lI53|H107247150 -107247150:lI46|H107247470 -107247470:lI48|H107247780 -107247780:lI46|H107247A80 -107247A80:lI50|H107247D70 -107247D70:lI47|H107248050 -107248050:lI101|H107248310 -107248310:lI98|H1072485D0 -1072485D0:lI105|H107248880 -107248880:lI110|N -10724AE50:lH10724AEC8|H10724AEE0 -10724AEC8:t2:H1071F0200,H1071F0210 -1071F0210:Mh23:F:H1071F0CD8,H1071F0CE8,H1071F0D00,H1071F0D18,H1071F0D28,H1071F0D38,H1071F0D58,H1071F0D70,H1071F0D88,H1071F0DA8,H1071F0DC0,H1071F0DE0,H1071F0E00,H1071F0E10,H1071F0E30 -1071F0CD8:lH1071F2458|N -1071F2458:lI120|H1071F47A0 -1071F47A0:lI109|H1071F6FC8 -1071F6FC8:lI101|H1071F9C20 -1071F9C20:lI114|H1071FCB60 -1071FCB60:lI108|H1071FFC18 -1071FFC18:lI95|H107202DC0 -107202DC0:lI120|H107205FF0 -107205FF0:lI112|H1072092A8 -1072092A8:lI97|H10720C508 -10720C508:lI116|H10720F728 -10720F728:lI104|H1072129D8 -1072129D8:lI95|H107215DA0 -107215DA0:lI112|H107219380 -107219380:lI114|H10721CA10 -10721CA10:lI101|H107220050 -107220050:lI100|H107223448 -107223448:lI46|H107226500 -107226500:lI98|H107229228 -107229228:lI101|H10722BB90 -10722BB90:lI97|H10722E1E8 -10722E1E8:lI109|N -1071F0E30:Mn4:H1071F2638,H1071F2648,H1071F2658,H1071F2668 -1071F2638:lH1071F4990|N -1071F4990:lI120|H1071F71B8 -1071F71B8:lI109|H1071F9E10 -1071F9E10:lI101|H1071FCD50 -1071FCD50:lI114|H1071FFE08 -1071FFE08:lI108|H107202FB0 -107202FB0:lI95|H1072061E0 -1072061E0:lI101|H107209498 -107209498:lI118|H10720C6F8 -10720C6F8:lI101|H10720F908 -10720F908:lI110|H107212BA8 -107212BA8:lI116|H107215F70 -107215F70:lI112|H107219550 -107219550:lI46|H10721CBC0 -10721CBC0:lI98|H1072201D0 -1072201D0:lI101|H107223588 -107223588:lI97|H107226620 -107226620:lI109|N -1071F2668:lH1071F49C0|N -1071F49C0:lI120|H1071F71E8 -1071F71E8:lI109|H1071F9E40 -1071F9E40:lI101|H1071FCD80 -1071FCD80:lI114|H1071FFE38 -1071FFE38:lI108|H107202FE0 -107202FE0:lI46|H107206210 -107206210:lI98|H1072094C8 -1072094C8:lI101|H10720C728 -10720C728:lI97|H10720F938 -10720F938:lI109|N -1071F2658:lH1071F49B0|N -1071F49B0:lI120|H1071F71D8 -1071F71D8:lI109|H1071F9E30 -1071F9E30:lI101|H1071FCD70 -1071FCD70:lI114|H1071FFE28 -1071FFE28:lI108|H107202FD0 -107202FD0:lI95|H107206200 -107206200:lI115|H1072094B8 -1072094B8:lI97|H10720C718 -10720C718:lI120|H10720F928 -10720F928:lI95|H107212BC8 -107212BC8:lI115|H107215F90 -107215F90:lI105|H107219570 -107219570:lI109|H10721CBE0 -10721CBE0:lI112|H1072201F0 -1072201F0:lI108|H107223598 -107223598:lI101|H107226630 -107226630:lI95|H107229328 -107229328:lI100|H10722BC70 -10722BC70:lI111|H10722E2B8 -10722E2B8:lI109|H107230640 -107230640:lI46|H107232738 -107232738:lI98|H107234530 -107234530:lI101|H107236058 -107236058:lI97|H1072378D0 -1072378D0:lI109|N -1071F2648:lH1071F49A0|N -1071F49A0:lI120|H1071F71C8 -1071F71C8:lI109|H1071F9E20 -1071F9E20:lI101|H1071FCD60 -1071FCD60:lI114|H1071FFE18 -1071FFE18:lI108|H107202FC0 -107202FC0:lI95|H1072061F0 -1072061F0:lI104|H1072094A8 -1072094A8:lI116|H10720C708 -10720C708:lI109|H10720F918 -10720F918:lI108|H107212BB8 -107212BB8:lI46|H107215F80 -107215F80:lI98|H107219560 -107219560:lI101|H10721CBD0 -10721CBD0:lI97|H1072201E0 -1072201E0:lI109|N -1071F0E10:Mn3:H1071F2608,H1071F2618,H1071F2628 -1071F2608:lH1071F4960|N -1071F4960:lI120|H1071F7188 -1071F7188:lI109|H1071F9DE0 -1071F9DE0:lI101|H1071FCD20 -1071FCD20:lI114|H1071FFDD8 -1071FFDD8:lI108|H107202F80 -107202F80:lI95|H1072061B0 -1072061B0:lI117|H107209468 -107209468:lI114|H10720C6C8 -10720C6C8:lI105|H10720F8D8 -10720F8D8:lI46|H107212B78 -107212B78:lI98|H107215F40 -107215F40:lI101|H107219520 -107219520:lI97|H10721CB90 -10721CB90:lI109|N -1071F2628:lH1071F4980|N -1071F4980:lI120|H1071F71A8 -1071F71A8:lI109|H1071F9E00 -1071F9E00:lI101|H1071FCD40 -1071FCD40:lI114|H1071FFDF8 -1071FFDF8:lI108|H107202FA0 -107202FA0:lI95|H1072061D0 -1072061D0:lI120|H107209488 -107209488:lI112|H10720C6E8 -10720C6E8:lI97|H10720F8F8 -10720F8F8:lI116|H107212B98 -107212B98:lI104|H107215F60 -107215F60:lI95|H107219540 -107219540:lI115|H10721CBB0 -10721CBB0:lI99|H1072201C0 -1072201C0:lI97|H107223578 -107223578:lI110|H107226610 -107226610:lI46|H107229318 -107229318:lI98|H10722BC60 -10722BC60:lI101|H10722E2A8 -10722E2A8:lI97|H107230630 -107230630:lI109|N -1071F2618:lH1071F4970|N -1071F4970:lI120|H1071F7198 -1071F7198:lI109|H1071F9DF0 -1071F9DF0:lI101|H1071FCD30 -1071FCD30:lI114|H1071FFDE8 -1071FFDE8:lI108|H107202F90 -107202F90:lI95|H1072061C0 -1072061C0:lI115|H107209478 -107209478:lI103|H10720C6D8 -10720C6D8:lI109|H10720F8E8 -10720F8E8:lI108|H107212B88 -107212B88:lI46|H107215F50 -107215F50:lI98|H107219530 -107219530:lI101|H10721CBA0 -10721CBA0:lI97|H1072201B0 -1072201B0:lI109|N -1071F0E00:lH1071F25F8|N -1071F25F8:lI120|H1071F4950 -1071F4950:lI109|H1071F7178 -1071F7178:lI101|H1071F9DD0 -1071F9DD0:lI114|H1071FCD10 -1071FCD10:lI108|H1071FFDC8 -1071FFDC8:lI46|H107202F70 -107202F70:lI97|H1072061A0 -1072061A0:lI112|H107209458 -107209458:lI112|H10720C6B8 -10720C6B8:lI117|H10720F8C8 -10720F8C8:lI112|N -1071F0DE0:Mn3:H1071F25C0,H1071F25D8,H1071F25E8 -1071F25C0:Mn2:H1071F4910,H1071F4920 -1071F4910:lH1071F7138|N -1071F7138:lI120|H1071F9D90 -1071F9D90:lI109|H1071FCCD0 -1071FCCD0:lI101|H1071FFD88 -1071FFD88:lI114|H107202F30 -107202F30:lI108|H107206160 -107206160:lI95|H107209418 -107209418:lI118|H10720C678 -10720C678:lI97|H10720F888 -10720F888:lI108|H107212B38 -107212B38:lI105|H107215F00 -107215F00:lI100|H1072194E0 -1072194E0:lI97|H10721CB60 -10721CB60:lI116|H107220180 -107220180:lI101|H107223548 -107223548:lI46|H1072265E0 -1072265E0:lI98|H1072292F8 -1072292F8:lI101|H10722BC50 -10722BC50:lI97|H10722E298 -10722E298:lI109|N -1071F4920:lH1071F7148|N -1071F7148:lI120|H1071F9DA0 -1071F9DA0:lI109|H1071FCCE0 -1071FCCE0:lI101|H1071FFD98 -1071FFD98:lI114|H107202F40 -107202F40:lI108|H107206170 -107206170:lI95|H107209428 -107209428:lI114|H10720C688 -10720C688:lI101|H10720F898 -10720F898:lI103|H107212B48 -107212B48:lI101|H107215F10 -107215F10:lI120|H1072194F0 -1072194F0:lI112|H10721CB70 -10721CB70:lI46|H107220190 -107220190:lI98|H107223558 -107223558:lI101|H1072265F0 -1072265F0:lI97|H107229308 -107229308:lI109|N -1071F25E8:lH1071F4940|N -1071F4940:lI120|H1071F7168 -1071F7168:lI109|H1071F9DC0 -1071F9DC0:lI101|H1071FCD00 -1071FCD00:lI114|H1071FFDB8 -1071FFDB8:lI108|H107202F60 -107202F60:lI95|H107206190 -107206190:lI98|H107209448 -107209448:lI54|H10720C6A8 -10720C6A8:lI52|H10720F8B8 -10720F8B8:lI66|H107212B68 -107212B68:lI105|H107215F30 -107215F30:lI110|H107219510 -107219510:lI46|H10721CB80 -10721CB80:lI98|H1072201A0 -1072201A0:lI101|H107223568 -107223568:lI97|H107226600 -107226600:lI109|N -1071F25D8:lH1071F4930|N -1071F4930:lI120|H1071F7158 -1071F7158:lI109|H1071F9DB0 -1071F9DB0:lI101|H1071FCCF0 -1071FCCF0:lI114|H1071FFDA8 -1071FFDA8:lI108|H107202F50 -107202F50:lI95|H107206180 -107206180:lI120|H107209438 -107209438:lI115|H10720C698 -10720C698:lI46|H10720F8A8 -10720F8A8:lI98|H107212B58 -107212B58:lI101|H107215F20 -107215F20:lI97|H107219500 -107219500:lI109|N -1071F0DC0:Mn3:H1071F2590,H1071F25A0,H1071F25B0 -1071F2590:lH1071F48E0|N -1071F48E0:lI120|H1071F7108 -1071F7108:lI109|H1071F9D60 -1071F9D60:lI101|H1071FCCA0 -1071FCCA0:lI114|H1071FFD58 -1071FFD58:lI108|H107202F00 -107202F00:lI95|H107206130 -107206130:lI115|H1072093E8 -1072093E8:lI97|H10720C648 -10720C648:lI120|H10720F858 -10720F858:lI95|H107212B08 -107212B08:lI112|H107215ED0 -107215ED0:lI97|H1072194B0 -1072194B0:lI114|H10721CB30 -10721CB30:lI115|H107220150 -107220150:lI101|H107223518 -107223518:lI114|H1072265B0 -1072265B0:lI95|H1072292C8 -1072292C8:lI108|H10722BC20 -10722BC20:lI105|H10722E268 -10722E268:lI115|H107230610 -107230610:lI116|H107232728 -107232728:lI46|H107234520 -107234520:lI98|H107236048 -107236048:lI101|H1072378C0 -1072378C0:lI97|H107238F48 -107238F48:lI109|N -1071F25B0:lH1071F4900|N -1071F4900:lI120|H1071F7128 -1071F7128:lI109|H1071F9D80 -1071F9D80:lI101|H1071FCCC0 -1071FCCC0:lI114|H1071FFD78 -1071FFD78:lI108|H107202F20 -107202F20:lI95|H107206150 -107206150:lI120|H107209408 -107209408:lI112|H10720C668 -10720C668:lI97|H10720F878 -10720F878:lI116|H107212B28 -107212B28:lI104|H107215EF0 -107215EF0:lI95|H1072194D0 -1072194D0:lI108|H10721CB50 -10721CB50:lI105|H107220170 -107220170:lI98|H107223538 -107223538:lI46|H1072265D0 -1072265D0:lI98|H1072292E8 -1072292E8:lI101|H10722BC40 -10722BC40:lI97|H10722E288 -10722E288:lI109|N -1071F25A0:lH1071F48F0|N -1071F48F0:lI120|H1071F7118 -1071F7118:lI109|H1071F9D70 -1071F9D70:lI101|H1071FCCB0 -1071FCCB0:lI114|H1071FFD68 -1071FFD68:lI108|H107202F10 -107202F10:lI95|H107206140 -107206140:lI115|H1072093F8 -1072093F8:lI97|H10720C658 -10720C658:lI120|H10720F868 -10720F868:lI95|H107212B18 -107212B18:lI112|H107215EE0 -107215EE0:lI97|H1072194C0 -1072194C0:lI114|H10721CB40 -10721CB40:lI115|H107220160 -107220160:lI101|H107223528 -107223528:lI114|H1072265C0 -1072265C0:lI46|H1072292D8 -1072292D8:lI98|H10722BC30 -10722BC30:lI101|H10722E278 -10722E278:lI97|H107230620 -107230620:lI109|N -1071F0DA8:Mn2:H1071F2568,H1071F2578 -1071F2568:lH1071F48B0|N -1071F48B0:lI120|H1071F70D8 -1071F70D8:lI109|H1071F9D30 -1071F9D30:lI101|H1071FCC70 -1071FCC70:lI114|H1071FFD28 -1071FFD28:lI108|H107202ED0 -107202ED0:lI95|H107206100 -107206100:lI120|H1072093B8 -1072093B8:lI115|H10720C618 -10720C618:lI100|H10720F828 -10720F828:lI95|H107212AD8 -107212AD8:lI116|H107215EA0 -107215EA0:lI121|H107219480 -107219480:lI112|H10721CB00 -10721CB00:lI101|H107220120 -107220120:lI46|H1072234F8 -1072234F8:lI98|H107226590 -107226590:lI101|H1072292A8 -1072292A8:lI97|H10722BC00 -10722BC00:lI109|N -1071F2578:Mn2:H1071F48C0,H1071F48D0 -1071F48C0:lH1071F70E8|N -1071F70E8:lI120|H1071F9D40 -1071F9D40:lI109|H1071FCC80 -1071FCC80:lI101|H1071FFD38 -1071FFD38:lI114|H107202EE0 -107202EE0:lI108|H107206110 -107206110:lI95|H1072093C8 -1072093C8:lI108|H10720C628 -10720C628:lI105|H10720F838 -10720F838:lI98|H107212AE8 -107212AE8:lI46|H107215EB0 -107215EB0:lI98|H107219490 -107219490:lI101|H10721CB10 -10721CB10:lI97|H107220130 -107220130:lI109|N -1071F48D0:lH1071F70F8|N -1071F70F8:lI120|H1071F9D50 -1071F9D50:lI109|H1071FCC90 -1071FCC90:lI101|H1071FFD48 -1071FFD48:lI114|H107202EF0 -107202EF0:lI108|H107206120 -107206120:lI95|H1072093D8 -1072093D8:lI115|H10720C638 -10720C638:lI97|H10720F848 -10720F848:lI120|H107212AF8 -107212AF8:lI95|H107215EC0 -107215EC0:lI112|H1072194A0 -1072194A0:lI97|H10721CB20 -10721CB20:lI114|H107220140 -107220140:lI115|H107223508 -107223508:lI101|H1072265A0 -1072265A0:lI114|H1072292B8 -1072292B8:lI95|H10722BC10 -10722BC10:lI117|H10722E258 -10722E258:lI116|H107230600 -107230600:lI102|H107232718 -107232718:lI56|H107234510 -107234510:lI46|H107236038 -107236038:lI98|H1072378B0 -1072378B0:lI101|H107238F38 -107238F38:lI97|H10723A400 -10723A400:lI109|N -1071F0D88:Mn3:H1071F2538,H1071F2548,H1071F2558 -1071F2538:lH1071F4880|N -1071F4880:lI120|H1071F70A8 -1071F70A8:lI109|H1071F9D00 -1071F9D00:lI101|H1071FCC40 -1071FCC40:lI114|H1071FFCF8 -1071FFCF8:lI108|H107202EA0 -107202EA0:lI46|H1072060D0 -1072060D0:lI97|H107209388 -107209388:lI112|H10720C5E8 -10720C5E8:lI112|N -1071F2558:lH1071F48A0|N -1071F48A0:lI120|H1071F70C8 -1071F70C8:lI109|H1071F9D20 -1071F9D20:lI101|H1071FCC60 -1071FCC60:lI114|H1071FFD18 -1071FFD18:lI108|H107202EC0 -107202EC0:lI95|H1072060F0 -1072060F0:lI117|H1072093A8 -1072093A8:lI99|H10720C608 -10720C608:lI115|H10720F818 -10720F818:lI46|H107212AC8 -107212AC8:lI98|H107215E90 -107215E90:lI101|H107219470 -107219470:lI97|H10721CAF0 -10721CAF0:lI109|N -1071F2548:lH1071F4890|N -1071F4890:lI120|H1071F70B8 -1071F70B8:lI109|H1071F9D10 -1071F9D10:lI101|H1071FCC50 -1071FCC50:lI114|H1071FFD08 -1071FFD08:lI108|H107202EB0 -107202EB0:lI95|H1072060E0 -1072060E0:lI115|H107209398 -107209398:lI97|H10720C5F8 -10720C5F8:lI120|H10720F808 -10720F808:lI95|H107212AB8 -107212AB8:lI112|H107215E80 -107215E80:lI97|H107219460 -107219460:lI114|H10721CAE0 -10721CAE0:lI115|H107220110 -107220110:lI101|H1072234E8 -1072234E8:lI114|H107226580 -107226580:lI95|H107229298 -107229298:lI117|H10722BBF0 -10722BBF0:lI116|H10722E248 -10722E248:lI102|H1072305F0 -1072305F0:lI49|H107232708 -107232708:lI54|H107234500 -107234500:lI98|H107236028 -107236028:lI101|H1072378A0 -1072378A0:lI46|H107238F28 -107238F28:lI98|H10723A3F0 -10723A3F0:lI101|H10723B730 -10723B730:lI97|H10723C7F0 -10723C7F0:lI109|N -1071F0D70:Mn2:H1071F2518,H1071F2528 -1071F2518:lH1071F4860|N -1071F4860:lI120|H1071F7088 -1071F7088:lI109|H1071F9CE0 -1071F9CE0:lI101|H1071FCC20 -1071FCC20:lI114|H1071FFCD8 -1071FFCD8:lI108|H107202E80 -107202E80:lI95|H1072060B0 -1072060B0:lI120|H107209368 -107209368:lI112|H10720C5C8 -10720C5C8:lI97|H10720F7E8 -10720F7E8:lI116|H107212A98 -107212A98:lI104|H107215E60 -107215E60:lI46|H107219440 -107219440:lI98|H10721CAC0 -10721CAC0:lI101|H1072200F0 -1072200F0:lI97|H1072234C8 -1072234C8:lI109|N -1071F2528:lH1071F4870|N -1071F4870:lI120|H1071F7098 -1071F7098:lI109|H1071F9CF0 -1071F9CF0:lI101|H1071FCC30 -1071FCC30:lI114|H1071FFCE8 -1071FFCE8:lI108|H107202E90 -107202E90:lI95|H1072060C0 -1072060C0:lI120|H107209378 -107209378:lI112|H10720C5D8 -10720C5D8:lI97|H10720F7F8 -10720F7F8:lI116|H107212AA8 -107212AA8:lI104|H107215E70 -107215E70:lI95|H107219450 -107219450:lI112|H10721CAD0 -10721CAD0:lI97|H107220100 -107220100:lI114|H1072234D8 -1072234D8:lI115|H107226570 -107226570:lI101|H107229288 -107229288:lI46|H10722BBE0 -10722BBE0:lI98|H10722E238 -10722E238:lI101|H1072305E0 -1072305E0:lI97|H1072326F8 -1072326F8:lI109|N -1071F0D58:Mn2:H1071F24F8,H1071F2508 -1071F24F8:lH1071F4840|N -1071F4840:lI120|H1071F7068 -1071F7068:lI109|H1071F9CC0 -1071F9CC0:lI101|H1071FCC00 -1071FCC00:lI114|H1071FFCB8 -1071FFCB8:lI108|H107202E60 -107202E60:lI95|H107206090 -107206090:lI120|H107209348 -107209348:lI109|H10720C5A8 -10720C5A8:lI108|H10720F7C8 -10720F7C8:lI46|H107212A78 -107212A78:lI98|H107215E40 -107215E40:lI101|H107219420 -107219420:lI97|H10721CAA0 -10721CAA0:lI109|N -1071F2508:lH1071F4850|N -1071F4850:lI120|H1071F7078 -1071F7078:lI109|H1071F9CD0 -1071F9CD0:lI101|H1071FCC10 -1071FCC10:lI114|H1071FFCC8 -1071FFCC8:lI108|H107202E70 -107202E70:lI95|H1072060A0 -1072060A0:lI116|H107209358 -107209358:lI101|H10720C5B8 -10720C5B8:lI120|H10720F7D8 -10720F7D8:lI116|H107212A88 -107212A88:lI46|H107215E50 -107215E50:lI98|H107219430 -107219430:lI101|H10721CAB0 -10721CAB0:lI97|H1072200E0 -1072200E0:lI109|N -1071F0D38:Mn3:H1071F24C8,H1071F24D8,H1071F24E8 -1071F24C8:lH1071F4810|N -1071F4810:lI120|H1071F7038 -1071F7038:lI109|H1071F9C90 -1071F9C90:lI101|H1071FCBD0 -1071FCBD0:lI114|H1071FFC88 -1071FFC88:lI108|H107202E30 -107202E30:lI95|H107206060 -107206060:lI115|H107209318 -107209318:lI97|H10720C578 -10720C578:lI120|H10720F798 -10720F798:lI95|H107212A48 -107212A48:lI112|H107215E10 -107215E10:lI97|H1072193F0 -1072193F0:lI114|H10721CA70 -10721CA70:lI115|H1072200B0 -1072200B0:lI101|H107223498 -107223498:lI114|H107226540 -107226540:lI95|H107229258 -107229258:lI108|H10722BBC0 -10722BBC0:lI97|H10722E218 -10722E218:lI116|H1072305C0 -1072305C0:lI105|H1072326D8 -1072326D8:lI110|H1072344E0 -1072344E0:lI49|H107236008 -107236008:lI46|H107237880 -107237880:lI98|H107238F08 -107238F08:lI101|H10723A3D0 -10723A3D0:lI97|H10723B710 -10723B710:lI109|N -1071F24E8:lH1071F4830|N -1071F4830:lI120|H1071F7058 -1071F7058:lI109|H1071F9CB0 -1071F9CB0:lI101|H1071FCBF0 -1071FCBF0:lI114|H1071FFCA8 -1071FFCA8:lI108|H107202E50 -107202E50:lI95|H107206080 -107206080:lI111|H107209338 -107209338:lI116|H10720C598 -10720C598:lI112|H10720F7B8 -10720F7B8:lI115|H107212A68 -107212A68:lI103|H107215E30 -107215E30:lI109|H107219410 -107219410:lI108|H10721CA90 -10721CA90:lI46|H1072200D0 -1072200D0:lI98|H1072234B8 -1072234B8:lI101|H107226560 -107226560:lI97|H107229278 -107229278:lI109|N -1071F24D8:lH1071F4820|N -1071F4820:lI120|H1071F7048 -1071F7048:lI109|H1071F9CA0 -1071F9CA0:lI101|H1071FCBE0 -1071FCBE0:lI114|H1071FFC98 -1071FFC98:lI108|H107202E40 -107202E40:lI95|H107206070 -107206070:lI115|H107209328 -107209328:lI97|H10720C588 -10720C588:lI120|H10720F7A8 -10720F7A8:lI95|H107212A58 -107212A58:lI112|H107215E20 -107215E20:lI97|H107219400 -107219400:lI114|H10721CA80 -10721CA80:lI115|H1072200C0 -1072200C0:lI101|H1072234A8 -1072234A8:lI114|H107226550 -107226550:lI95|H107229268 -107229268:lI117|H10722BBD0 -10722BBD0:lI116|H10722E228 -10722E228:lI102|H1072305D0 -1072305D0:lI49|H1072326E8 -1072326E8:lI54|H1072344F0 -1072344F0:lI108|H107236018 -107236018:lI101|H107237890 -107237890:lI46|H107238F18 -107238F18:lI98|H10723A3E0 -10723A3E0:lI101|H10723B720 -10723B720:lI97|H10723C7E0 -10723C7E0:lI109|N -1071F0D28:lH1071F24B8|N -1071F24B8:lI120|H1071F4800 -1071F4800:lI109|H1071F7028 -1071F7028:lI101|H1071F9C80 -1071F9C80:lI114|H1071FCBC0 -1071FCBC0:lI108|H1071FFC78 -1071FFC78:lI95|H107202E20 -107202E20:lI115|H107206050 -107206050:lI97|H107209308 -107209308:lI120|H10720C568 -10720C568:lI95|H10720F788 -10720F788:lI111|H107212A38 -107212A38:lI108|H107215E00 -107215E00:lI100|H1072193E0 -1072193E0:lI95|H10721CA60 -10721CA60:lI100|H1072200A0 -1072200A0:lI111|H107223488 -107223488:lI109|H107226530 -107226530:lI46|H107229248 -107229248:lI98|H10722BBB0 -10722BBB0:lI101|H10722E208 -10722E208:lI97|H1072305B0 -1072305B0:lI109|N -1071F0D18:lH1071F24A8|N -1071F24A8:lI120|H1071F47F0 -1071F47F0:lI109|H1071F7018 -1071F7018:lI101|H1071F9C70 -1071F9C70:lI114|H1071FCBB0 -1071FCBB0:lI108|H1071FFC68 -1071FFC68:lI95|H107202E10 -107202E10:lI120|H107206040 -107206040:lI115|H1072092F8 -1072092F8:lI100|H10720C558 -10720C558:lI46|H10720F778 -10720F778:lI98|H107212A28 -107212A28:lI101|H107215DF0 -107215DF0:lI97|H1072193D0 -1072193D0:lI109|N -1071F0D00:Mn2:H1071F2488,H1071F2498 -1071F2488:lH1071F47D0|N -1071F47D0:lI120|H1071F6FF8 -1071F6FF8:lI109|H1071F9C50 -1071F9C50:lI101|H1071FCB90 -1071FCB90:lI114|H1071FFC48 -1071FFC48:lI108|H107202DF0 -107202DF0:lI95|H107206020 -107206020:lI115|H1072092D8 -1072092D8:lI105|H10720C538 -10720C538:lI109|H10720F758 -10720F758:lI112|H107212A08 -107212A08:lI108|H107215DD0 -107215DD0:lI101|H1072193B0 -1072193B0:lI46|H10721CA40 -10721CA40:lI98|H107220080 -107220080:lI101|H107223468 -107223468:lI97|H107226510 -107226510:lI109|N -1071F2498:lH1071F47E0|N -1071F47E0:lI120|H1071F7008 -1071F7008:lI109|H1071F9C60 -1071F9C60:lI101|H1071FCBA0 -1071FCBA0:lI114|H1071FFC58 -1071FFC58:lI108|H107202E00 -107202E00:lI95|H107206030 -107206030:lI98|H1072092E8 -1072092E8:lI54|H10720C548 -10720C548:lI52|H10720F768 -10720F768:lI66|H107212A18 -107212A18:lI105|H107215DE0 -107215DE0:lI110|H1072193C0 -1072193C0:lI95|H10721CA50 -10721CA50:lI115|H107220090 -107220090:lI99|H107223478 -107223478:lI97|H107226520 -107226520:lI110|H107229238 -107229238:lI46|H10722BBA0 -10722BBA0:lI98|H10722E1F8 -10722E1F8:lI101|H1072305A0 -1072305A0:lI97|H1072326C8 -1072326C8:lI109|N -1071F0CE8:Mn2:H1071F2468,H1071F2478 -1071F2468:lH1071F47B0|N -1071F47B0:lI120|H1071F6FD8 -1071F6FD8:lI109|H1071F9C30 -1071F9C30:lI101|H1071FCB70 -1071FCB70:lI114|H1071FFC28 -1071FFC28:lI108|H107202DD0 -107202DD0:lI95|H107206000 -107206000:lI120|H1072092B8 -1072092B8:lI108|H10720C518 -10720C518:lI97|H10720F738 -10720F738:lI116|H1072129E8 -1072129E8:lI101|H107215DB0 -107215DB0:lI46|H107219390 -107219390:lI98|H10721CA20 -10721CA20:lI101|H107220060 -107220060:lI97|H107223458 -107223458:lI109|N -1071F2478:lH1071F47C0|N -1071F47C0:lI120|H1071F6FE8 -1071F6FE8:lI109|H1071F9C40 -1071F9C40:lI101|H1071FCB80 -1071FCB80:lI114|H1071FFC38 -1071FFC38:lI108|H107202DE0 -107202DE0:lI95|H107206010 -107206010:lI115|H1072092C8 -1072092C8:lI99|H10720C528 -10720C528:lI97|H10720F748 -10720F748:lI110|H1072129F8 -1072129F8:lI46|H107215DC0 -107215DC0:lI98|H1072193A0 -1072193A0:lI101|H10721CA30 -10721CA30:lI97|H107220070 -107220070:lI109|N -1071F0200:lI47|H1071F0CC8 -1071F0CC8:lI111|H1071F2448 -1071F2448:lI112|H1071F4790 -1071F4790:lI116|H1071F6FB8 -1071F6FB8:lI47|H1071F9C10 -1071F9C10:lI104|H1071FCB50 -1071FCB50:lI111|H1071FFC08 -1071FFC08:lI109|H107202DB0 -107202DB0:lI101|H107205FE0 -107205FE0:lI98|H107209298 -107209298:lI114|H10720C4F8 -10720C4F8:lI101|H10720F718 -10720F718:lI119|H1072129C8 -1072129C8:lI47|H107215D90 -107215D90:lI67|H107219370 -107219370:lI101|H10721CA00 -10721CA00:lI108|H107220040 -107220040:lI108|H107223438 -107223438:lI97|H1072264F0 -1072264F0:lI114|H107229218 -107229218:lI47|H10722BB80 -10722BB80:lI101|H10722E1D8 -10722E1D8:lI114|H107230590 -107230590:lI108|H1072326B8 -1072326B8:lI97|H1072344D0 -1072344D0:lI110|H107235FF8 -107235FF8:lI103|H107237870 -107237870:lI47|H107238EF8 -107238EF8:lI50|H10723A3C0 -10723A3C0:lI54|H10723B700 -10723B700:lI46|H10723C7D0 -10723C7D0:lI48|H10723D690 -10723D690:lI46|H10723E410 -10723E410:lI50|H10723F020 -10723F020:lI47|H10723FAF0 -10723FAF0:lI108|H107240440 -107240440:lI105|H107240CC0 -107240CC0:lI98|H107241450 -107241450:lI47|H107241B80 -107241B80:lI101|H107242250 -107242250:lI114|H1072428C0 -1072428C0:lI108|H107242EC0 -107242EC0:lI97|H107243430 -107243430:lI110|H107243970 -107243970:lI103|H107243E60 -107243E60:lI47|H107244350 -107244350:lI108|H107244800 -107244800:lI105|H107244C70 -107244C70:lI98|H1072450D0 -1072450D0:lI47|H107245520 -107245520:lI120|H107245920 -107245920:lI109|H107245CE0 -107245CE0:lI101|H107246070 -107246070:lI114|H107246400 -107246400:lI108|H107246790 -107246790:lI45|H107246B20 -107246B20:lI49|H107246E60 -107246E60:lI46|H107247180 -107247180:lI51|H1072474A0 -1072474A0:lI46|H1072477B0 -1072477B0:lI51|H107247AB0 -107247AB0:lI50|H107247DA0 -107247DA0:lI47|H280052C20 -10724AEE0:lH10724AF38|H10724AF50 -10724AF38:t2:H1071F02B8,H1071F02C8 -1071F02C8:MhF3:10:H1071F0E88,H1071F0EF8,H1071F0F50,H1071F0FA0,H1071F1000,H1071F1050,H1071F10B0,H1071F1130,H1071F1190,H1071F11E8,H1071F1238,H1071F12A0,H1071F12E8,H1071F1328,H1071F1370,H1071F13C8 -1071F0E88:MnD:H1071F26A8,H1071F26B8,H1071F26C8,H1071F26D8,H1071F26E8,H1071F2700,H1071F2710,H1071F2720,H1071F2738,H1071F2748,H1071F2760,H1071F2780,H1071F2790 -1071F26A8:lH1071F4A00|N -1071F4A00:lI119|H1071F7228 -1071F7228:lI120|H1071F9E80 -1071F9E80:lI65|H1071FCDC0 -1071FCDC0:lI117|H1071FFE78 -1071FFE78:lI105|H107203020 -107203020:lI68|H107206250 -107206250:lI111|H107209508 -107209508:lI99|H10720C768 -10720C768:lI107|H10720F978 -10720F978:lI65|H107212C08 -107212C08:lI114|H107215FD0 -107215FD0:lI116|H1072195B0 -1072195B0:lI46|H10721CC20 -10721CC20:lI98|H107220230 -107220230:lI101|H1072235D8 -1072235D8:lI97|H107226670 -107226670:lI109|N -1071F2790:Mn2:H1071F4B10,H1071F4B20 -1071F4B10:lH1071F7338|N -1071F7338:lI119|H1071F9F90 -1071F9F90:lI120|H1071FCED0 -1071FCED0:lI70|H1071FFF88 -1071FFF88:lI105|H107203130 -107203130:lI108|H107206360 -107206360:lI101|H107209618 -107209618:lI68|H10720C878 -10720C878:lI105|H10720FA88 -10720FA88:lI97|H107212D18 -107212D18:lI108|H1072160D0 -1072160D0:lI111|H1072196A0 -1072196A0:lI103|H10721CD10 -10721CD10:lI46|H107220310 -107220310:lI98|H1072236B8 -1072236B8:lI101|H107226730 -107226730:lI97|H1072293F8 -1072293F8:lI109|N -1071F4B20:lH1071F7348|N -1071F7348:lI119|H1071F9FA0 -1071F9FA0:lI120|H1071FCEE0 -1071FCEE0:lI81|H1071FFF98 -1071FFF98:lI117|H107203140 -107203140:lI101|H107206370 -107206370:lI114|H107209628 -107209628:lI121|H10720C888 -10720C888:lI78|H10720FA98 -10720FA98:lI101|H107212D28 -107212D28:lI119|H1072160E0 -1072160E0:lI80|H1072196B0 -1072196B0:lI97|H10721CD20 -10721CD20:lI108|H107220320 -107220320:lI101|H1072236C8 -1072236C8:lI116|H107226740 -107226740:lI116|H107229408 -107229408:lI101|H10722BD30 -10722BD30:lI69|H10722E368 -10722E368:lI118|H1072306D0 -1072306D0:lI101|H1072327C8 -1072327C8:lI110|H107234590 -107234590:lI116|H1072360B8 -1072360B8:lI46|H107237930 -107237930:lI98|H107238F98 -107238F98:lI101|H10723A440 -10723A440:lI97|H10723B770 -10723B770:lI109|N -1071F2780:lH1071F4B00|N -1071F4B00:lI119|H1071F7328 -1071F7328:lI120|H1071F9F80 -1071F9F80:lI83|H1071FCEC0 -1071FCEC0:lI97|H1071FFF78 -1071FFF78:lI115|H107203120 -107203120:lI104|H107206350 -107206350:lI87|H107209608 -107209608:lI105|H10720C868 -10720C868:lI110|H10720FA78 -10720FA78:lI100|H107212D08 -107212D08:lI111|H1072160C0 -1072160C0:lI119|H107219690 -107219690:lI46|H10721CD00 -10721CD00:lI98|H107220300 -107220300:lI101|H1072236A8 -1072236A8:lI97|H107226720 -107226720:lI109|N -1071F2760:Mn3:H1071F4AD0,H1071F4AE0,H1071F4AF0 -1071F4AD0:lH1071F72F8|N -1071F72F8:lI119|H1071F9F50 -1071F9F50:lI120|H1071FCE90 -1071FCE90:lI80|H1071FFF48 -1071FFF48:lI111|H1072030F0 -1072030F0:lI115|H107206320 -107206320:lI116|H1072095D8 -1072095D8:lI83|H10720C838 -10720C838:lI99|H10720FA48 -10720FA48:lI114|H107212CD8 -107212CD8:lI105|H107216090 -107216090:lI112|H107219660 -107219660:lI116|H10721CCD0 -10721CCD0:lI68|H1072202E0 -1072202E0:lI67|H107223688 -107223688:lI46|H107226700 -107226700:lI98|H1072293D8 -1072293D8:lI101|H10722BD10 -10722BD10:lI97|H10722E348 -10722E348:lI109|N -1071F4AF0:lH1071F7318|N -1071F7318:lI119|H1071F9F70 -1071F9F70:lI120|H1071FCEB0 -1071FCEB0:lI87|H1071FFF68 -1071FFF68:lI105|H107203110 -107203110:lI110|H107206340 -107206340:lI100|H1072095F8 -1072095F8:lI111|H10720C858 -10720C858:lI119|H10720FA68 -10720FA68:lI67|H107212CF8 -107212CF8:lI114|H1072160B0 -1072160B0:lI101|H107219680 -107219680:lI97|H10721CCF0 -10721CCF0:lI116|H1072202F0 -1072202F0:lI101|H107223698 -107223698:lI69|H107226710 -107226710:lI118|H1072293E8 -1072293E8:lI101|H10722BD20 -10722BD20:lI110|H10722E358 -10722E358:lI116|H1072306C0 -1072306C0:lI46|H1072327B8 -1072327B8:lI98|H107234580 -107234580:lI101|H1072360A8 -1072360A8:lI97|H107237920 -107237920:lI109|N -1071F4AE0:lH1071F7308|N -1071F7308:lI119|H1071F9F60 -1071F9F60:lI120|H1071FCEA0 -1071FCEA0:lI67|H1071FFF58 -1071FFF58:lI117|H107203100 -107203100:lI114|H107206330 -107206330:lI115|H1072095E8 -1072095E8:lI111|H10720C848 -10720C848:lI114|H10720FA58 -10720FA58:lI46|H107212CE8 -107212CE8:lI98|H1072160A0 -1072160A0:lI101|H107219670 -107219670:lI97|H10721CCE0 -10721CCE0:lI109|N -1071F2748:Mn2:H1071F4AB0,H1071F4AC0 -1071F4AB0:lH1071F72D8|N -1071F72D8:lI119|H1071F9F30 -1071F9F30:lI120|H1071FCE70 -1071FCE70:lI71|H1071FFF28 -1071FFF28:lI114|H1072030D0 -1072030D0:lI97|H107206300 -107206300:lI112|H1072095B8 -1072095B8:lI104|H10720C818 -10720C818:lI105|H10720FA28 -10720FA28:lI99|H107212CB8 -107212CB8:lI115|H107216070 -107216070:lI80|H107219640 -107219640:lI101|H10721CCB0 -10721CCB0:lI110|H1072202C0 -1072202C0:lI46|H107223668 -107223668:lI98|H1072266F0 -1072266F0:lI101|H1072293C8 -1072293C8:lI97|H10722BD00 -10722BD00:lI109|N -1071F4AC0:lH1071F72E8|N -1071F72E8:lI119|H1071F9F40 -1071F9F40:lI120|H1071FCE80 -1071FCE80:lI70|H1071FFF38 -1071FFF38:lI111|H1072030E0 -1072030E0:lI110|H107206310 -107206310:lI116|H1072095C8 -1072095C8:lI68|H10720C828 -10720C828:lI97|H10720FA38 -10720FA38:lI116|H107212CC8 -107212CC8:lI97|H107216080 -107216080:lI46|H107219650 -107219650:lI98|H10721CCC0 -10721CCC0:lI101|H1072202D0 -1072202D0:lI97|H107223678 -107223678:lI109|N -1071F2738:lH1071F4AA0|N -1071F4AA0:lI119|H1071F72C8 -1071F72C8:lI120|H1071F9F20 -1071F9F20:lI80|H1071FCE60 -1071FCE60:lI114|H1071FFF18 -1071FFF18:lI105|H1072030C0 -1072030C0:lI110|H1072062F0 -1072062F0:lI116|H1072095A8 -1072095A8:lI68|H10720C808 -10720C808:lI105|H10720FA18 -10720FA18:lI97|H107212CA8 -107212CA8:lI108|H107216060 -107216060:lI111|H107219630 -107219630:lI103|H10721CCA0 -10721CCA0:lI68|H1072202B0 -1072202B0:lI97|H107223658 -107223658:lI116|H1072266E0 -1072266E0:lI97|H1072293B8 -1072293B8:lI46|H10722BCF0 -10722BCF0:lI98|H10722E338 -10722E338:lI101|H1072306B0 -1072306B0:lI97|H1072327A8 -1072327A8:lI109|N -1071F2720:Mn2:H1071F4A80,H1071F4A90 -1071F4A80:lH1071F72A8|N -1071F72A8:lI119|H1071F9F00 -1071F9F00:lI120|H1071FCE40 -1071FCE40:lI83|H1071FFEF8 -1071FFEF8:lI116|H1072030A0 -1072030A0:lI97|H1072062D0 -1072062D0:lI116|H107209588 -107209588:lI105|H10720C7E8 -10720C7E8:lI99|H10720F9F8 -10720F9F8:lI66|H107212C88 -107212C88:lI111|H107216040 -107216040:lI120|H107219610 -107219610:lI83|H10721CC80 -10721CC80:lI105|H107220290 -107220290:lI122|H107223638 -107223638:lI101|H1072266C0 -1072266C0:lI114|H107229398 -107229398:lI46|H10722BCD0 -10722BCD0:lI98|H10722E318 -10722E318:lI101|H107230690 -107230690:lI97|H107232788 -107232788:lI109|N -1071F4A90:lH1071F72B8|N -1071F72B8:lI119|H1071F9F10 -1071F9F10:lI120|H1071FCE50 -1071FCE50:lI83|H1071FFF08 -1071FFF08:lI101|H1072030B0 -1072030B0:lI116|H1072062E0 -1072062E0:lI67|H107209598 -107209598:lI117|H10720C7F8 -10720C7F8:lI114|H10720FA08 -10720FA08:lI115|H107212C98 -107212C98:lI111|H107216050 -107216050:lI114|H107219620 -107219620:lI69|H10721CC90 -10721CC90:lI118|H1072202A0 -1072202A0:lI101|H107223648 -107223648:lI110|H1072266D0 -1072266D0:lI116|H1072293A8 -1072293A8:lI46|H10722BCE0 -10722BCE0:lI98|H10722E328 -10722E328:lI101|H1072306A0 -1072306A0:lI97|H107232798 -107232798:lI109|N -1071F2710:lH1071F4A70|N -1071F4A70:lI119|H1071F7298 -1071F7298:lI120|H1071F9EF0 -1071F9EF0:lI80|H1071FCE30 -1071FCE30:lI97|H1071FFEE8 -1071FFEE8:lI103|H107203090 -107203090:lI101|H1072062C0 -1072062C0:lI83|H107209578 -107209578:lI101|H10720C7D8 -10720C7D8:lI116|H10720F9E8 -10720F9E8:lI117|H107212C78 -107212C78:lI112|H107216030 -107216030:lI68|H107219600 -107219600:lI105|H10721CC70 -10721CC70:lI97|H107220280 -107220280:lI108|H107223628 -107223628:lI111|H1072266B0 -1072266B0:lI103|H107229388 -107229388:lI68|H10722BCC0 -10722BCC0:lI97|H10722E308 -10722E308:lI116|H107230680 -107230680:lI97|H107232778 -107232778:lI46|H107234570 -107234570:lI98|H107236098 -107236098:lI101|H107237910 -107237910:lI97|H107238F88 -107238F88:lI109|N -1071F2700:lH1071F4A60|N -1071F4A60:lI119|H1071F7288 -1071F7288:lI120|H1071F9EE0 -1071F9EE0:lI71|H1071FCE20 -1071FCE20:lI66|H1071FFED8 -1071FFED8:lI83|H107203080 -107203080:lI105|H1072062B0 -1072062B0:lI122|H107209568 -107209568:lI101|H10720C7C8 -10720C7C8:lI114|H10720F9D8 -10720F9D8:lI73|H107212C68 -107212C68:lI116|H107216020 -107216020:lI101|H1072195F0 -1072195F0:lI109|H10721CC60 -10721CC60:lI46|H107220270 -107220270:lI98|H107223618 -107223618:lI101|H1072266A0 -1072266A0:lI97|H107229378 -107229378:lI109|N -1071F26E8:Mn2:H1071F4A40,H1071F4A50 -1071F4A40:lH1071F7268|N -1071F7268:lI119|H1071F9EC0 -1071F9EC0:lI120|H1071FCE00 -1071FCE00:lI71|H1071FFEB8 -1071FFEB8:lI114|H107203060 -107203060:lI105|H107206290 -107206290:lI100|H107209548 -107209548:lI46|H10720C7A8 -10720C7A8:lI98|H10720F9B8 -10720F9B8:lI101|H107212C48 -107212C48:lI97|H107216000 -107216000:lI109|N -1071F4A50:lH1071F7278|N -1071F7278:lI119|H1071F9ED0 -1071F9ED0:lI120|H1071FCE10 -1071FCE10:lI68|H1071FFEC8 -1071FFEC8:lI105|H107203070 -107203070:lI114|H1072062A0 -1072062A0:lI68|H107209558 -107209558:lI105|H10720C7B8 -10720C7B8:lI97|H10720F9C8 -10720F9C8:lI108|H107212C58 -107212C58:lI111|H107216010 -107216010:lI103|H1072195E0 -1072195E0:lI46|H10721CC50 -10721CC50:lI98|H107220260 -107220260:lI101|H107223608 -107223608:lI97|H107226690 -107226690:lI109|N -1071F26D8:lH1071F4A30|N -1071F4A30:lI119|H1071F7258 -1071F7258:lI120|H1071F9EB0 -1071F9EB0:lI83|H1071FCDF0 -1071FCDF0:lI116|H1071FFEA8 -1071FFEA8:lI97|H107203050 -107203050:lI116|H107206280 -107206280:lI117|H107209538 -107209538:lI115|H10720C798 -10720C798:lI66|H10720F9A8 -10720F9A8:lI97|H107212C38 -107212C38:lI114|H107215FF0 -107215FF0:lI46|H1072195D0 -1072195D0:lI98|H10721CC40 -10721CC40:lI101|H107220250 -107220250:lI97|H1072235F8 -1072235F8:lI109|N -1071F26C8:lH1071F4A20|N -1071F4A20:lI119|H1071F7248 -1071F7248:lI120|H1071F9EA0 -1071F9EA0:lI83|H1071FCDE0 -1071FCDE0:lI121|H1071FFE98 -1071FFE98:lI115|H107203040 -107203040:lI116|H107206270 -107206270:lI101|H107209528 -107209528:lI109|H10720C788 -10720C788:lI79|H10720F998 -10720F998:lI112|H107212C28 -107212C28:lI116|H107215FE0 -107215FE0:lI105|H1072195C0 -1072195C0:lI111|H10721CC30 -10721CC30:lI110|H107220240 -107220240:lI115|H1072235E8 -1072235E8:lI46|H107226680 -107226680:lI98|H107229368 -107229368:lI101|H10722BCB0 -10722BCB0:lI97|H10722E2F8 -10722E2F8:lI109|N -1071F26B8:lH1071F4A10|N -1071F4A10:lI119|H1071F7238 -1071F7238:lI120|H1071F9E90 -1071F9E90:lI77|H1071FCDD0 -1071FCDD0:lI101|H1071FFE88 -1071FFE88:lI110|H107203030 -107203030:lI117|H107206260 -107206260:lI46|H107209518 -107209518:lI98|H10720C778 -10720C778:lI101|H10720F988 -10720F988:lI97|H107212C18 -107212C18:lI109|N -1071F13C8:Mn8:H1071F3270,H1071F3288,H1071F3298,H1071F32A8,H1071F32B8,H1071F32C8,H1071F32D8,H1071F32E8 -1071F3270:Mn2:H1071F5838,H1071F5848 -1071F5838:lH1071F8098|N -1071F8098:lI119|H1071FACF0 -1071FACF0:lI120|H1071FDC30 -1071FDC30:lI80|H107200CE8 -107200CE8:lI97|H107203E90 -107203E90:lI108|H1072070C0 -1072070C0:lI101|H10720A348 -10720A348:lI116|H10720D5A8 -10720D5A8:lI116|H107210798 -107210798:lI101|H107213A08 -107213A08:lI67|H107216DC0 -107216DC0:lI104|H10721A330 -10721A330:lI97|H10721D900 -10721D900:lI110|H107220E50 -107220E50:lI103|H1072240E8 -1072240E8:lI101|H107227030 -107227030:lI100|H107229BB8 -107229BB8:lI69|H10722C3F0 -10722C3F0:lI118|H10722E938 -10722E938:lI101|H107230BC0 -107230BC0:lI110|H107232BC8 -107232BC8:lI116|H1072348B0 -1072348B0:lI46|H1072362E8 -1072362E8:lI98|H107237AB0 -107237AB0:lI101|H1072390D8 -1072390D8:lI97|H10723A570 -10723A570:lI109|N -1071F5848:lH1071F80A8|N -1071F80A8:lI119|H1071FAD00 -1071FAD00:lI120|H1071FDC40 -1071FDC40:lI77|H107200CF8 -107200CF8:lI111|H107203EA0 -107203EA0:lI117|H1072070D0 -1072070D0:lI115|H10720A358 -10720A358:lI101|H10720D5B8 -10720D5B8:lI69|H1072107A8 -1072107A8:lI118|H107213A18 -107213A18:lI101|H107216DD0 -107216DD0:lI110|H10721A340 -10721A340:lI116|H10721D910 -10721D910:lI46|H107220E60 -107220E60:lI98|H1072240F8 -1072240F8:lI101|H107227040 -107227040:lI97|H107229BC8 -107229BC8:lI109|N -1071F32E8:Mn3:H1071F58C0,H1071F58D0,H1071F58E0 -1071F58C0:lH1071F8128|N -1071F8128:lI119|H1071FAD80 -1071FAD80:lI120|H1071FDCC0 -1071FDCC0:lI80|H107200D78 -107200D78:lI114|H107203F20 -107203F20:lI111|H107207150 -107207150:lI103|H10720A3D8 -10720A3D8:lI114|H10720D638 -10720D638:lI101|H107210828 -107210828:lI115|H107213A98 -107213A98:lI115|H107216E50 -107216E50:lI68|H10721A3C0 -10721A3C0:lI105|H10721D990 -10721D990:lI97|H107220EE0 -107220EE0:lI108|H107224148 -107224148:lI111|H107227090 -107227090:lI103|H107229BF8 -107229BF8:lI46|H10722C420 -10722C420:lI98|H10722E968 -10722E968:lI101|H107230BF0 -107230BF0:lI97|H107232BE8 -107232BE8:lI109|N -1071F58E0:lH1071F8148|N -1071F8148:lI119|H1071FADA0 -1071FADA0:lI120|H1071FDCE0 -1071FDCE0:lI66|H107200D98 -107200D98:lI114|H107203F40 -107203F40:lI117|H107207170 -107207170:lI115|H10720A3F8 -10720A3F8:lI104|H10720D658 -10720D658:lI46|H107210848 -107210848:lI98|H107213AB8 -107213AB8:lI101|H107216E70 -107216E70:lI97|H10721A3E0 -10721A3E0:lI109|N -1071F58D0:lH1071F8138|N -1071F8138:lI119|H1071FAD90 -1071FAD90:lI120|H1071FDCD0 -1071FDCD0:lI76|H107200D88 -107200D88:lI105|H107203F30 -107203F30:lI115|H107207160 -107207160:lI116|H10720A3E8 -10720A3E8:lI73|H10720D648 -10720D648:lI116|H107210838 -107210838:lI101|H107213AA8 -107213AA8:lI109|H107216E60 -107216E60:lI65|H10721A3D0 -10721A3D0:lI116|H10721D9A0 -10721D9A0:lI116|H107220EF0 -107220EF0:lI114|H107224158 -107224158:lI46|H1072270A0 -1072270A0:lI98|H107229C08 -107229C08:lI101|H10722C430 -10722C430:lI97|H10722E978 -10722E978:lI109|N -1071F32D8:Mn1:H1071F58A8 -1071F58A8:Mn2:H1071F8108,H1071F8118 -1071F8108:lH1071FAD60|N -1071FAD60:lI119|H1071FDCA0 -1071FDCA0:lI120|H107200D58 -107200D58:lI87|H107203F00 -107203F00:lI105|H107207130 -107207130:lI110|H10720A3B8 -10720A3B8:lI100|H10720D618 -10720D618:lI111|H107210808 -107210808:lI119|H107213A78 -107213A78:lI68|H107216E30 -107216E30:lI67|H10721A3A0 -10721A3A0:lI46|H10721D970 -10721D970:lI98|H107220EC0 -107220EC0:lI101|H107224138 -107224138:lI97|H107227080 -107227080:lI109|N -1071F8118:lH1071FAD70|N -1071FAD70:lI119|H1071FDCB0 -1071FDCB0:lI120|H107200D68 -107200D68:lI83|H107203F10 -107203F10:lI108|H107207140 -107207140:lI105|H10720A3C8 -10720A3C8:lI100|H10720D628 -10720D628:lI101|H107210818 -107210818:lI114|H107213A88 -107213A88:lI46|H107216E40 -107216E40:lI98|H10721A3B0 -10721A3B0:lI101|H10721D980 -10721D980:lI97|H107220ED0 -107220ED0:lI109|N -1071F32C8:lH1071F5898|N -1071F5898:lI119|H1071F80F8 -1071F80F8:lI120|H1071FAD50 -1071FAD50:lI70|H1071FDC90 -1071FDC90:lI105|H107200D48 -107200D48:lI108|H107203EF0 -107203EF0:lI101|H107207120 -107207120:lI68|H10720A3A8 -10720A3A8:lI105|H10720D608 -10720D608:lI114|H1072107F8 -1072107F8:lI80|H107213A68 -107213A68:lI105|H107216E20 -107216E20:lI99|H10721A390 -10721A390:lI107|H10721D960 -10721D960:lI101|H107220EB0 -107220EB0:lI114|H107224128 -107224128:lI69|H107227070 -107227070:lI118|H107229BE8 -107229BE8:lI101|H10722C410 -10722C410:lI110|H10722E958 -10722E958:lI116|H107230BE0 -107230BE0:lI46|H107232BD8 -107232BD8:lI98|H1072348C0 -1072348C0:lI101|H1072362F8 -1072362F8:lI97|H107237AC0 -107237AC0:lI109|N -1071F32B8:lH1071F5888|N -1071F5888:lI119|H1071F80E8 -1071F80E8:lI120|H1071FAD40 -1071FAD40:lI84|H1071FDC80 -1071FDC80:lI101|H107200D38 -107200D38:lI120|H107203EE0 -107203EE0:lI116|H107207110 -107207110:lI67|H10720A398 -10720A398:lI116|H10720D5F8 -10720D5F8:lI114|H1072107E8 -1072107E8:lI108|H107213A58 -107213A58:lI46|H107216E10 -107216E10:lI98|H10721A380 -10721A380:lI101|H10721D950 -10721D950:lI97|H107220EA0 -107220EA0:lI109|N -1071F32A8:lH1071F5878|N -1071F5878:lI119|H1071F80D8 -1071F80D8:lI120|H1071FAD30 -1071FAD30:lI83|H1071FDC70 -1071FDC70:lI99|H107200D28 -107200D28:lI114|H107203ED0 -107203ED0:lI111|H107207100 -107207100:lI108|H10720A388 -10720A388:lI108|H10720D5E8 -10720D5E8:lI87|H1072107D8 -1072107D8:lI105|H107213A48 -107213A48:lI110|H107216E00 -107216E00:lI69|H10721A370 -10721A370:lI118|H10721D940 -10721D940:lI101|H107220E90 -107220E90:lI110|H107224118 -107224118:lI116|H107227060 -107227060:lI46|H107229BD8 -107229BD8:lI98|H10722C400 -10722C400:lI101|H10722E948 -10722E948:lI97|H107230BD0 -107230BD0:lI109|N -1071F3298:lH1071F5868|N -1071F5868:lI119|H1071F80C8 -1071F80C8:lI120|H1071FAD20 -1071FAD20:lI83|H1071FDC60 -1071FDC60:lI116|H107200D18 -107200D18:lI97|H107203EC0 -107203EC0:lI116|H1072070F0 -1072070F0:lI105|H10720A378 -10720A378:lI99|H10720D5D8 -10720D5D8:lI84|H1072107C8 -1072107C8:lI101|H107213A38 -107213A38:lI120|H107216DF0 -107216DF0:lI116|H10721A360 -10721A360:lI46|H10721D930 -10721D930:lI98|H107220E80 -107220E80:lI101|H107224108 -107224108:lI97|H107227050 -107227050:lI109|N -1071F3288:lH1071F5858|N -1071F5858:lI119|H1071F80B8 -1071F80B8:lI120|H1071FAD10 -1071FAD10:lI83|H1071FDC50 -1071FDC50:lI112|H107200D08 -107200D08:lI105|H107203EB0 -107203EB0:lI110|H1072070E0 -1072070E0:lI67|H10720A368 -10720A368:lI116|H10720D5C8 -10720D5C8:lI114|H1072107B8 -1072107B8:lI108|H107213A28 -107213A28:lI46|H107216DE0 -107216DE0:lI98|H10721A350 -10721A350:lI101|H10721D920 -10721D920:lI97|H107220E70 -107220E70:lI109|N -1071F1370:MnA:H1071F31C0,H1071F31D0,H1071F31E0,H1071F31F8,H1071F3210,H1071F3220,H1071F3230,H1071F3240,H1071F3250,H1071F3260 -1071F31C0:lH1071F5770|N -1071F5770:lI119|H1071F7FC8 -1071F7FC8:lI120|H1071FAC20 -1071FAC20:lI65|H1071FDB60 -1071FDB60:lI117|H107200C18 -107200C18:lI105|H107203DC0 -107203DC0:lI77|H107206FF0 -107206FF0:lI97|H10720A278 -10720A278:lI110|H10720D4D8 -10720D4D8:lI97|H1072106C8 -1072106C8:lI103|H107213938 -107213938:lI101|H107216CF0 -107216CF0:lI114|H10721A260 -10721A260:lI69|H10721D830 -10721D830:lI118|H107220DA0 -107220DA0:lI101|H107224048 -107224048:lI110|H107226FB0 -107226FB0:lI116|H107229B48 -107229B48:lI46|H10722C380 -10722C380:lI98|H10722E8C8 -10722E8C8:lI101|H107230B60 -107230B60:lI97|H107232B78 -107232B78:lI109|N -1071F3260:lH1071F5828|N -1071F5828:lI119|H1071F8088 -1071F8088:lI120|H1071FACE0 -1071FACE0:lI67|H1071FDC20 -1071FDC20:lI111|H107200CD8 -107200CD8:lI110|H107203E80 -107203E80:lI116|H1072070B0 -1072070B0:lI114|H10720A338 -10720A338:lI111|H10720D598 -10720D598:lI108|H107210788 -107210788:lI87|H1072139F8 -1072139F8:lI105|H107216DB0 -107216DB0:lI116|H10721A320 -10721A320:lI104|H10721D8F0 -10721D8F0:lI73|H107220E40 -107220E40:lI116|H1072240D8 -1072240D8:lI101|H107227020 -107227020:lI109|H107229BA8 -107229BA8:lI115|H10722C3E0 -10722C3E0:lI46|H10722E928 -10722E928:lI98|H107230BB0 -107230BB0:lI101|H107232BB8 -107232BB8:lI97|H1072348A0 -1072348A0:lI109|N -1071F3250:lH1071F5818|N -1071F5818:lI119|H1071F8078 -1071F8078:lI120|H1071FACD0 -1071FACD0:lI76|H1071FDC10 -1071FDC10:lI105|H107200CC8 -107200CC8:lI115|H107203E70 -107203E70:lI116|H1072070A0 -1072070A0:lI67|H10720A328 -10720A328:lI116|H10720D588 -10720D588:lI114|H107210778 -107210778:lI108|H1072139E8 -1072139E8:lI46|H107216DA0 -107216DA0:lI98|H10721A310 -10721A310:lI101|H10721D8E0 -10721D8E0:lI97|H107220E30 -107220E30:lI109|N -1071F3240:lH1071F5808|N -1071F5808:lI119|H1071F8068 -1071F8068:lI120|H1071FACC0 -1071FACC0:lI84|H1071FDC00 -1071FDC00:lI111|H107200CB8 -107200CB8:lI111|H107203E60 -107203E60:lI108|H107207090 -107207090:lI66|H10720A318 -10720A318:lI97|H10720D578 -10720D578:lI114|H107210768 -107210768:lI46|H1072139D8 -1072139D8:lI98|H107216D90 -107216D90:lI101|H10721A300 -10721A300:lI97|H10721D8D0 -10721D8D0:lI109|N -1071F3230:Mn1:H1071F57F0 -1071F57F0:Mn2:H1071F8048,H1071F8058 -1071F8048:lH1071FACA0|N -1071FACA0:lI119|H1071FDBE0 -1071FDBE0:lI120|H107200C98 -107200C98:lI82|H107203E40 -107203E40:lI97|H107207070 -107207070:lI100|H10720A2F8 -10720A2F8:lI105|H10720D558 -10720D558:lI111|H107210748 -107210748:lI66|H1072139B8 -1072139B8:lI117|H107216D70 -107216D70:lI116|H10721A2E0 -10721A2E0:lI116|H10721D8B0 -10721D8B0:lI111|H107220E20 -107220E20:lI110|H1072240C8 -1072240C8:lI46|H107227010 -107227010:lI98|H107229B98 -107229B98:lI101|H10722C3D0 -10722C3D0:lI97|H10722E918 -10722E918:lI109|N -1071F8058:lH1071FACB0|N -1071FACB0:lI119|H1071FDBF0 -1071FDBF0:lI120|H107200CA8 -107200CA8:lI69|H107203E50 -107203E50:lI118|H107207080 -107207080:lI101|H10720A308 -10720A308:lI110|H10720D568 -10720D568:lI116|H107210758 -107210758:lI46|H1072139C8 -1072139C8:lI98|H107216D80 -107216D80:lI101|H10721A2F0 -10721A2F0:lI97|H10721D8C0 -10721D8C0:lI109|N -1071F3220:lH1071F57E0|N -1071F57E0:lI119|H1071F8038 -1071F8038:lI120|H1071FAC90 -1071FAC90:lI71|H1071FDBD0 -1071FDBD0:lI114|H107200C88 -107200C88:lI105|H107203E30 -107203E30:lI100|H107207060 -107207060:lI67|H10720A2E8 -10720A2E8:lI101|H10720D548 -10720D548:lI108|H107210738 -107210738:lI108|H1072139A8 -1072139A8:lI67|H107216D60 -107216D60:lI104|H10721A2D0 -10721A2D0:lI111|H10721D8A0 -10721D8A0:lI105|H107220E10 -107220E10:lI99|H1072240B8 -1072240B8:lI101|H107227000 -107227000:lI69|H107229B88 -107229B88:lI100|H10722C3C0 -10722C3C0:lI105|H10722E908 -10722E908:lI116|H107230BA0 -107230BA0:lI111|H107232BA8 -107232BA8:lI114|H107234890 -107234890:lI46|H1072362D8 -1072362D8:lI98|H107237AA0 -107237AA0:lI101|H1072390C8 -1072390C8:lI97|H10723A560 -10723A560:lI109|N -1071F3210:lH1071F57D0|N -1071F57D0:lI119|H1071F8028 -1071F8028:lI120|H1071FAC80 -1071FAC80:lI87|H1071FDBC0 -1071FDBC0:lI105|H107200C78 -107200C78:lI110|H107203E20 -107203E20:lI100|H107207050 -107207050:lI111|H10720A2D8 -10720A2D8:lI119|H10720D538 -10720D538:lI68|H107210728 -107210728:lI101|H107213998 -107213998:lI115|H107216D50 -107216D50:lI116|H10721A2C0 -10721A2C0:lI114|H10721D890 -10721D890:lI111|H107220E00 -107220E00:lI121|H1072240A8 -1072240A8:lI69|H107226FF0 -107226FF0:lI118|H107229B78 -107229B78:lI101|H10722C3B0 -10722C3B0:lI110|H10722E8F8 -10722E8F8:lI116|H107230B90 -107230B90:lI46|H107232B98 -107232B98:lI98|H107234880 -107234880:lI101|H1072362C8 -1072362C8:lI97|H107237A90 -107237A90:lI109|N -1071F31F8:Mn2:H1071F57B0,H1071F57C0 -1071F57B0:lH1071F8008|N -1071F8008:lI119|H1071FAC60 -1071FAC60:lI120|H1071FDBA0 -1071FDBA0:lI83|H107200C58 -107200C58:lI105|H107203E00 -107203E00:lI122|H107207030 -107207030:lI101|H10720A2B8 -10720A2B8:lI114|H10720D518 -10720D518:lI73|H107210708 -107210708:lI116|H107213978 -107213978:lI101|H107216D30 -107216D30:lI109|H10721A2A0 -10721A2A0:lI46|H10721D870 -10721D870:lI98|H107220DE0 -107220DE0:lI101|H107224088 -107224088:lI97|H107226FE0 -107226FE0:lI109|N -1071F57C0:lH1071F8018|N -1071F8018:lI119|H1071FAC70 -1071FAC70:lI120|H1071FDBB0 -1071FDBB0:lI75|H107200C68 -107200C68:lI101|H107203E10 -107203E10:lI121|H107207040 -107207040:lI69|H10720A2C8 -10720A2C8:lI118|H10720D528 -10720D528:lI101|H107210718 -107210718:lI110|H107213988 -107213988:lI116|H107216D40 -107216D40:lI46|H10721A2B0 -10721A2B0:lI98|H10721D880 -10721D880:lI101|H107220DF0 -107220DF0:lI97|H107224098 -107224098:lI109|N -1071F31E0:Mn2:H1071F5790,H1071F57A0 -1071F5790:lH1071F7FE8|N -1071F7FE8:lI119|H1071FAC40 -1071FAC40:lI120|H1071FDB80 -1071FDB80:lI71|H107200C38 -107200C38:lI114|H107203DE0 -107203DE0:lI105|H107207010 -107207010:lI100|H10720A298 -10720A298:lI67|H10720D4F8 -10720D4F8:lI101|H1072106E8 -1072106E8:lI108|H107213958 -107213958:lI108|H107216D10 -107216D10:lI70|H10721A280 -10721A280:lI108|H10721D850 -10721D850:lI111|H107220DC0 -107220DC0:lI97|H107224068 -107224068:lI116|H107226FC0 -107226FC0:lI69|H107229B58 -107229B58:lI100|H10722C390 -10722C390:lI105|H10722E8D8 -10722E8D8:lI116|H107230B70 -107230B70:lI111|H107232B88 -107232B88:lI114|H107234870 -107234870:lI46|H1072362B8 -1072362B8:lI98|H107237A80 -107237A80:lI101|H1072390B8 -1072390B8:lI97|H10723A550 -10723A550:lI109|N -1071F57A0:lH1071F7FF8|N -1071F7FF8:lI119|H1071FAC50 -1071FAC50:lI120|H1071FDB90 -1071FDB90:lI65|H107200C48 -107200C48:lI99|H107203DF0 -107203DF0:lI116|H107207020 -107207020:lI105|H10720A2A8 -10720A2A8:lI118|H10720D508 -10720D508:lI97|H1072106F8 -1072106F8:lI116|H107213968 -107213968:lI101|H107216D20 -107216D20:lI69|H10721A290 -10721A290:lI118|H10721D860 -10721D860:lI101|H107220DD0 -107220DD0:lI110|H107224078 -107224078:lI116|H107226FD0 -107226FD0:lI46|H107229B68 -107229B68:lI98|H10722C3A0 -10722C3A0:lI101|H10722E8E8 -10722E8E8:lI97|H107230B80 -107230B80:lI109|N -1071F31D0:lH1071F5780|N -1071F5780:lI119|H1071F7FD8 -1071F7FD8:lI120|H1071FAC30 -1071FAC30:lI68|H1071FDB70 -1071FDB70:lI97|H107200C28 -107200C28:lI116|H107203DD0 -107203DD0:lI101|H107207000 -107207000:lI69|H10720A288 -10720A288:lI118|H10720D4E8 -10720D4E8:lI101|H1072106D8 -1072106D8:lI110|H107213948 -107213948:lI116|H107216D00 -107216D00:lI46|H10721A270 -10721A270:lI98|H10721D840 -10721D840:lI101|H107220DB0 -107220DB0:lI97|H107224058 -107224058:lI109|N -1071F1328:Mn8:H1071F3118,H1071F3130,H1071F3150,H1071F3168,H1071F3178,H1071F3188,H1071F3198,H1071F31A8 -1071F3118:Mn2:H1071F56A0,H1071F56B0 -1071F56A0:lH1071F7EF8|N -1071F7EF8:lI119|H1071FAB50 -1071FAB50:lI120|H1071FDA90 -1071FDA90:lI83|H107200B48 -107200B48:lI112|H107203CF0 -107203CF0:lI105|H107206F20 -107206F20:lI110|H10720A1A8 -10720A1A8:lI66|H10720D408 -10720D408:lI117|H1072105F8 -1072105F8:lI116|H107213878 -107213878:lI116|H107216C30 -107216C30:lI111|H10721A1B0 -10721A1B0:lI110|H10721D780 -10721D780:lI46|H107220CF0 -107220CF0:lI98|H107223FA8 -107223FA8:lI101|H107226F10 -107226F10:lI97|H107229AA8 -107229AA8:lI109|N -1071F56B0:lH1071F7F08|N -1071F7F08:lI119|H1071FAB60 -1071FAB60:lI120|H1071FDAA0 -1071FDAA0:lI67|H107200B58 -107200B58:lI111|H107203D00 -107203D00:lI110|H107206F30 -107206F30:lI116|H10720A1B8 -10720A1B8:lI114|H10720D418 -10720D418:lI111|H107210608 -107210608:lI108|H107213888 -107213888:lI46|H107216C40 -107216C40:lI98|H10721A1C0 -10721A1C0:lI101|H10721D790 -10721D790:lI97|H107220D00 -107220D00:lI109|N -1071F31A8:Mn2:H1071F5750,H1071F5760 -1071F5750:lH1071F7FA8|N -1071F7FA8:lI119|H1071FAC00 -1071FAC00:lI120|H1071FDB40 -1071FDB40:lI66|H107200BF8 -107200BF8:lI105|H107203DA0 -107203DA0:lI116|H107206FD0 -107206FD0:lI109|H10720A258 -10720A258:lI97|H10720D4B8 -10720D4B8:lI112|H1072106A8 -1072106A8:lI66|H107213918 -107213918:lI117|H107216CD0 -107216CD0:lI116|H10721A240 -10721A240:lI116|H10721D810 -10721D810:lI111|H107220D80 -107220D80:lI110|H107224028 -107224028:lI46|H107226F90 -107226F90:lI98|H107229B28 -107229B28:lI101|H10722C360 -10722C360:lI97|H10722E8A8 -10722E8A8:lI109|N -1071F5760:lH1071F7FB8|N -1071F7FB8:lI119|H1071FAC10 -1071FAC10:lI120|H1071FDB50 -1071FDB50:lI66|H107200C08 -107200C08:lI111|H107203DB0 -107203DB0:lI111|H107206FE0 -107206FE0:lI107|H10720A268 -10720A268:lI67|H10720D4C8 -10720D4C8:lI116|H1072106B8 -1072106B8:lI114|H107213928 -107213928:lI108|H107216CE0 -107216CE0:lI66|H10721A250 -10721A250:lI97|H10721D820 -10721D820:lI115|H107220D90 -107220D90:lI101|H107224038 -107224038:lI46|H107226FA0 -107226FA0:lI98|H107229B38 -107229B38:lI101|H10722C370 -10722C370:lI97|H10722E8B8 -10722E8B8:lI109|N -1071F3198:lH1071F5740|N -1071F5740:lI119|H1071F7F98 -1071F7F98:lI120|H1071FABF0 -1071FABF0:lI73|H1071FDB30 -1071FDB30:lI99|H107200BE8 -107200BE8:lI111|H107203D90 -107203D90:lI110|H107206FC0 -107206FC0:lI105|H10720A248 -10720A248:lI122|H10720D4A8 -10720D4A8:lI101|H107210698 -107210698:lI69|H107213908 -107213908:lI118|H107216CC0 -107216CC0:lI101|H10721A230 -10721A230:lI110|H10721D800 -10721D800:lI116|H107220D70 -107220D70:lI46|H107224018 -107224018:lI98|H107226F80 -107226F80:lI101|H107229B18 -107229B18:lI97|H10722C350 -10722C350:lI109|N -1071F3188:lH1071F5730|N -1071F5730:lI119|H1071F7F88 -1071F7F88:lI120|H1071FABE0 -1071FABE0:lI77|H1071FDB20 -1071FDB20:lI111|H107200BD8 -107200BD8:lI117|H107203D80 -107203D80:lI115|H107206FB0 -107206FB0:lI101|H10720A238 -10720A238:lI67|H10720D498 -10720D498:lI97|H107210688 -107210688:lI112|H1072138F8 -1072138F8:lI116|H107216CB0 -107216CB0:lI117|H10721A220 -10721A220:lI114|H10721D7F0 -10721D7F0:lI101|H107220D60 -107220D60:lI76|H107224008 -107224008:lI111|H107226F70 -107226F70:lI115|H107229B08 -107229B08:lI116|H10722C340 -10722C340:lI69|H10722E898 -10722E898:lI118|H107230B50 -107230B50:lI101|H107232B68 -107232B68:lI110|H107234860 -107234860:lI116|H1072362A8 -1072362A8:lI46|H107237A70 -107237A70:lI98|H1072390A8 -1072390A8:lI101|H10723A540 -10723A540:lI97|H10723B830 -10723B830:lI109|N -1071F3178:lH1071F5720|N -1071F5720:lI119|H1071F7F78 -1071F7F78:lI120|H1071FABD0 -1071FABD0:lI73|H1071FDB10 -1071FDB10:lI109|H107200BC8 -107200BC8:lI97|H107203D70 -107203D70:lI103|H107206FA0 -107206FA0:lI101|H10720A228 -10720A228:lI46|H10720D488 -10720D488:lI98|H107210678 -107210678:lI101|H1072138E8 -1072138E8:lI97|H107216CA0 -107216CA0:lI109|N -1071F3168:lH1071F5710|N -1071F5710:lI119|H1071F7F68 -1071F7F68:lI120|H1071FABC0 -1071FABC0:lI80|H1071FDB00 -1071FDB00:lI97|H107200BB8 -107200BB8:lI103|H107203D60 -107203D60:lI101|H107206F90 -107206F90:lI83|H10720A218 -10720A218:lI101|H10720D478 -10720D478:lI116|H107210668 -107210668:lI117|H1072138D8 -1072138D8:lI112|H107216C90 -107216C90:lI68|H10721A210 -10721A210:lI105|H10721D7E0 -10721D7E0:lI97|H107220D50 -107220D50:lI108|H107223FF8 -107223FF8:lI111|H107226F60 -107226F60:lI103|H107229AF8 -107229AF8:lI46|H10722C330 -10722C330:lI98|H10722E888 -10722E888:lI101|H107230B40 -107230B40:lI97|H107232B58 -107232B58:lI109|N -1071F3150:Mn2:H1071F56F0,H1071F5700 -1071F56F0:lH1071F7F48|N -1071F7F48:lI119|H1071FABA0 -1071FABA0:lI120|H1071FDAE0 -1071FDAE0:lI68|H107200B98 -107200B98:lI97|H107203D40 -107203D40:lI116|H107206F70 -107206F70:lI97|H10720A1F8 -10720A1F8:lI79|H10720D458 -10720D458:lI98|H107210648 -107210648:lI106|H1072138B8 -1072138B8:lI101|H107216C70 -107216C70:lI99|H10721A1F0 -10721A1F0:lI116|H10721D7C0 -10721D7C0:lI46|H107220D30 -107220D30:lI98|H107223FD8 -107223FD8:lI101|H107226F40 -107226F40:lI97|H107229AD8 -107229AD8:lI109|N -1071F5700:lH1071F7F58|N -1071F7F58:lI119|H1071FABB0 -1071FABB0:lI120|H1071FDAF0 -1071FDAF0:lI71|H107200BA8 -107200BA8:lI114|H107203D50 -107203D50:lI105|H107206F80 -107206F80:lI100|H10720A208 -10720A208:lI67|H10720D468 -10720D468:lI101|H107210658 -107210658:lI108|H1072138C8 -1072138C8:lI108|H107216C80 -107216C80:lI82|H10721A200 -10721A200:lI101|H10721D7D0 -10721D7D0:lI110|H107220D40 -107220D40:lI100|H107223FE8 -107223FE8:lI101|H107226F50 -107226F50:lI114|H107229AE8 -107229AE8:lI101|H10722C320 -10722C320:lI114|H10722E878 -10722E878:lI46|H107230B30 -107230B30:lI98|H107232B48 -107232B48:lI101|H107234850 -107234850:lI97|H107236298 -107236298:lI109|N -1071F3130:Mn3:H1071F56C0,H1071F56D0,H1071F56E0 -1071F56C0:lH1071F7F18|N -1071F7F18:lI119|H1071FAB70 -1071FAB70:lI120|H1071FDAB0 -1071FDAB0:lI67|H107200B68 -107200B68:lI111|H107203D10 -107203D10:lI110|H107206F40 -107206F40:lI116|H10720A1C8 -10720A1C8:lI101|H10720D428 -10720D428:lI120|H107210618 -107210618:lI116|H107213898 -107213898:lI77|H107216C50 -107216C50:lI101|H10721A1D0 -10721A1D0:lI110|H10721D7A0 -10721D7A0:lI117|H107220D10 -107220D10:lI69|H107223FB8 -107223FB8:lI118|H107226F20 -107226F20:lI101|H107229AB8 -107229AB8:lI110|H10722C300 -10722C300:lI116|H10722E858 -10722E858:lI46|H107230B10 -107230B10:lI98|H107232B28 -107232B28:lI101|H107234830 -107234830:lI97|H107236278 -107236278:lI109|N -1071F56E0:lH1071F7F38|N -1071F7F38:lI119|H1071FAB90 -1071FAB90:lI120|H1071FDAD0 -1071FDAD0:lI68|H107200B88 -107200B88:lI67|H107203D30 -107203D30:lI46|H107206F60 -107206F60:lI98|H10720A1E8 -10720A1E8:lI101|H10720D448 -10720D448:lI97|H107210638 -107210638:lI109|N -1071F56D0:lH1071F7F28|N -1071F7F28:lI119|H1071FAB80 -1071FAB80:lI120|H1071FDAC0 -1071FDAC0:lI71|H107200B78 -107200B78:lI114|H107203D20 -107203D20:lI97|H107206F50 -107206F50:lI112|H10720A1D8 -10720A1D8:lI104|H10720D438 -10720D438:lI105|H107210628 -107210628:lI99|H1072138A8 -1072138A8:lI115|H107216C60 -107216C60:lI71|H10721A1E0 -10721A1E0:lI114|H10721D7B0 -10721D7B0:lI97|H107220D20 -107220D20:lI100|H107223FC8 -107223FC8:lI105|H107226F30 -107226F30:lI101|H107229AC8 -107229AC8:lI110|H10722C310 -10722C310:lI116|H10722E868 -10722E868:lI83|H107230B20 -107230B20:lI116|H107232B38 -107232B38:lI111|H107234840 -107234840:lI112|H107236288 -107236288:lI115|H107237A60 -107237A60:lI46|H107239098 -107239098:lI98|H10723A530 -10723A530:lI101|H10723B820 -10723B820:lI97|H10723C880 -10723C880:lI109|N -1071F12E8:Mn7:H1071F3088,H1071F30A0,H1071F30B0,H1071F30C0,H1071F30D8,H1071F30E8,H1071F3100 -1071F3088:Mn2:H1071F55F0,H1071F5600 -1071F55F0:lH1071F7E48|N -1071F7E48:lI119|H1071FAAA0 -1071FAAA0:lI120|H1071FD9E0 -1071FD9E0:lI80|H107200A98 -107200A98:lI111|H107203C40 -107203C40:lI112|H107206E70 -107206E70:lI117|H10720A0F8 -10720A0F8:lI112|H10720D358 -10720D358:lI87|H107210548 -107210548:lI105|H1072137C8 -1072137C8:lI110|H107216B80 -107216B80:lI100|H10721A100 -10721A100:lI111|H10721D6E0 -10721D6E0:lI119|H107220C50 -107220C50:lI46|H107223F18 -107223F18:lI98|H107226EA0 -107226EA0:lI101|H107229A38 -107229A38:lI97|H10722C2A0 -10722C2A0:lI109|N -1071F5600:lH1071F7E58|N -1071F7E58:lI119|H1071FAAB0 -1071FAAB0:lI120|H1071FD9F0 -1071FD9F0:lI67|H107200AA8 -107200AA8:lI104|H107203C50 -107203C50:lI111|H107206E80 -107206E80:lI105|H10720A108 -10720A108:lI99|H10720D368 -10720D368:lI101|H107210558 -107210558:lI98|H1072137D8 -1072137D8:lI111|H107216B90 -107216B90:lI111|H10721A110 -10721A110:lI107|H10721D6F0 -10721D6F0:lI46|H107220C60 -107220C60:lI98|H107223F28 -107223F28:lI101|H107226EB0 -107226EB0:lI97|H107229A48 -107229A48:lI109|N -1071F3100:Mn2:H1071F5680,H1071F5690 -1071F5680:lH1071F7ED8|N -1071F7ED8:lI119|H1071FAB30 -1071FAB30:lI120|H1071FDA70 -1071FDA70:lI66|H107200B28 -107200B28:lI117|H107203CD0 -107203CD0:lI102|H107206F00 -107206F00:lI102|H10720A188 -10720A188:lI101|H10720D3E8 -10720D3E8:lI114|H1072105D8 -1072105D8:lI101|H107213858 -107213858:lI100|H107216C10 -107216C10:lI80|H10721A190 -10721A190:lI97|H10721D760 -10721D760:lI105|H107220CD0 -107220CD0:lI110|H107223F88 -107223F88:lI116|H107226EF0 -107226EF0:lI68|H107229A88 -107229A88:lI67|H10722C2E0 -10722C2E0:lI46|H10722E838 -10722E838:lI98|H107230AF0 -107230AF0:lI101|H107232B18 -107232B18:lI97|H107234820 -107234820:lI109|N -1071F5690:lH1071F7EE8|N -1071F7EE8:lI119|H1071FAB40 -1071FAB40:lI120|H1071FDA80 -1071FDA80:lI72|H107200B38 -107200B38:lI116|H107203CE0 -107203CE0:lI109|H107206F10 -107206F10:lI108|H10720A198 -10720A198:lI76|H10720D3F8 -10720D3F8:lI105|H1072105E8 -1072105E8:lI110|H107213868 -107213868:lI107|H107216C20 -107216C20:lI69|H10721A1A0 -10721A1A0:lI118|H10721D770 -10721D770:lI101|H107220CE0 -107220CE0:lI110|H107223F98 -107223F98:lI116|H107226F00 -107226F00:lI46|H107229A98 -107229A98:lI98|H10722C2F0 -10722C2F0:lI101|H10722E848 -10722E848:lI97|H107230B00 -107230B00:lI109|N -1071F30E8:Mn2:H1071F5660,H1071F5670 -1071F5660:lH1071F7EB8|N -1071F7EB8:lI119|H1071FAB10 -1071FAB10:lI120|H1071FDA50 -1071FDA50:lI67|H107200B08 -107200B08:lI104|H107203CB0 -107203CB0:lI101|H107206EE0 -107206EE0:lI99|H10720A168 -10720A168:lI107|H10720D3C8 -10720D3C8:lI66|H1072105B8 -1072105B8:lI111|H107213838 -107213838:lI120|H107216BF0 -107216BF0:lI46|H10721A170 -10721A170:lI98|H10721D750 -10721D750:lI101|H107220CC0 -107220CC0:lI97|H107223F78 -107223F78:lI109|N -1071F5670:lH1071F7EC8|N -1071F7EC8:lI119|H1071FAB20 -1071FAB20:lI120|H1071FDA60 -1071FDA60:lI95|H107200B18 -107200B18:lI109|H107203CC0 -107203CC0:lI105|H107206EF0 -107206EF0:lI115|H10720A178 -10720A178:lI99|H10720D3D8 -10720D3D8:lI46|H1072105C8 -1072105C8:lI98|H107213848 -107213848:lI101|H107216C00 -107216C00:lI97|H10721A180 -10721A180:lI109|N -1071F30D8:lH1071F5650|N -1071F5650:lI119|H1071F7EA8 -1071F7EA8:lI120|H1071FAB00 -1071FAB00:lI84|H1071FDA40 -1071FDA40:lI101|H107200AF8 -107200AF8:lI120|H107203CA0 -107203CA0:lI116|H107206ED0 -107206ED0:lI65|H10720A158 -10720A158:lI116|H10720D3B8 -10720D3B8:lI116|H1072105A8 -1072105A8:lI114|H107213828 -107213828:lI46|H107216BE0 -107216BE0:lI98|H10721A160 -10721A160:lI101|H10721D740 -10721D740:lI97|H107220CB0 -107220CB0:lI109|N -1071F30C0:Mn2:H1071F5630,H1071F5640 -1071F5630:lH1071F7E88|N -1071F7E88:lI119|H1071FAAE0 -1071FAAE0:lI120|H1071FDA20 -1071FDA20:lI84|H107200AD8 -107200AD8:lI111|H107203C80 -107203C80:lI111|H107206EB0 -107206EB0:lI108|H10720A138 -10720A138:lI98|H10720D398 -10720D398:lI111|H107210588 -107210588:lI111|H107213808 -107213808:lI107|H107216BC0 -107216BC0:lI46|H10721A140 -10721A140:lI98|H10721D720 -10721D720:lI101|H107220C90 -107220C90:lI97|H107223F58 -107223F58:lI109|N -1071F5640:lH1071F7E98|N -1071F7E98:lI119|H1071FAAF0 -1071FAAF0:lI120|H1071FDA30 -1071FDA30:lI66|H107200AE8 -107200AE8:lI105|H107203C90 -107203C90:lI116|H107206EC0 -107206EC0:lI109|H10720A148 -10720A148:lI97|H10720D3A8 -10720D3A8:lI112|H107210598 -107210598:lI68|H107213818 -107213818:lI97|H107216BD0 -107216BD0:lI116|H10721A150 -10721A150:lI97|H10721D730 -10721D730:lI79|H107220CA0 -107220CA0:lI98|H107223F68 -107223F68:lI106|H107226EE0 -107226EE0:lI101|H107229A78 -107229A78:lI99|H10722C2D0 -10722C2D0:lI116|H10722E828 -10722E828:lI46|H107230AE0 -107230AE0:lI98|H107232B08 -107232B08:lI101|H107234810 -107234810:lI97|H107236268 -107236268:lI109|N -1071F30B0:lH1071F5620|N -1071F5620:lI119|H1071F7E78 -1071F7E78:lI120|H1071FAAD0 -1071FAAD0:lI70|H1071FDA10 -1071FDA10:lI105|H107200AC8 -107200AC8:lI108|H107203C70 -107203C70:lI101|H107206EA0 -107206EA0:lI68|H10720A128 -10720A128:lI97|H10720D388 -10720D388:lI116|H107210578 -107210578:lI97|H1072137F8 -1072137F8:lI79|H107216BB0 -107216BB0:lI98|H10721A130 -10721A130:lI106|H10721D710 -10721D710:lI101|H107220C80 -107220C80:lI99|H107223F48 -107223F48:lI116|H107226ED0 -107226ED0:lI46|H107229A68 -107229A68:lI98|H10722C2C0 -10722C2C0:lI101|H10722E818 -10722E818:lI97|H107230AD0 -107230AD0:lI109|N -1071F30A0:lH1071F5610|N -1071F5610:lI119|H1071F7E68 -1071F7E68:lI120|H1071FAAC0 -1071FAAC0:lI80|H1071FDA00 -1071FDA00:lI114|H107200AB8 -107200AB8:lI105|H107203C60 -107203C60:lI110|H107206E90 -107206E90:lI116|H10720A118 -10720A118:lI80|H10720D378 -10720D378:lI114|H107210568 -107210568:lI101|H1072137E8 -1072137E8:lI118|H107216BA0 -107216BA0:lI105|H10721A120 -10721A120:lI101|H10721D700 -10721D700:lI119|H107220C70 -107220C70:lI46|H107223F38 -107223F38:lI98|H107226EC0 -107226EC0:lI101|H107229A58 -107229A58:lI97|H10722C2B0 -10722C2B0:lI109|N -1071F12A0:Mn8:H1071F2FF0,H1071F3008,H1071F3018,H1071F3030,H1071F3040,H1071F3050,H1071F3060,H1071F3070 -1071F2FF0:Mn2:H1071F5530,H1071F5540 -1071F5530:lH1071F7D78|N -1071F7D78:lI119|H1071FA9D0 -1071FA9D0:lI120|H1071FD910 -1071FD910:lI83|H1072009C8 -1072009C8:lI97|H107203B70 -107203B70:lI115|H107206DA0 -107206DA0:lI104|H10720A038 -10720A038:lI69|H10720D298 -10720D298:lI118|H107210488 -107210488:lI101|H107213708 -107213708:lI110|H107216AC0 -107216AC0:lI116|H10721A040 -10721A040:lI46|H10721D620 -10721D620:lI98|H107220BB0 -107220BB0:lI101|H107223E78 -107223E78:lI97|H107226E10 -107226E10:lI109|N -1071F5540:lH1071F7D88|N -1071F7D88:lI119|H1071FA9E0 -1071FA9E0:lI120|H1071FD920 -1071FD920:lI71|H1072009D8 -1072009D8:lI114|H107203B80 -107203B80:lI97|H107206DB0 -107206DB0:lI112|H10720A048 -10720A048:lI104|H10720D2A8 -10720D2A8:lI105|H107210498 -107210498:lI99|H107213718 -107213718:lI115|H107216AD0 -107216AD0:lI82|H10721A050 -10721A050:lI101|H10721D630 -10721D630:lI110|H107220BC0 -107220BC0:lI100|H107223E88 -107223E88:lI101|H107226E20 -107226E20:lI114|H1072299B8 -1072299B8:lI101|H10722C230 -10722C230:lI114|H10722E7A8 -10722E7A8:lI46|H107230A60 -107230A60:lI98|H107232AA8 -107232AA8:lI101|H1072347D0 -1072347D0:lI97|H107236248 -107236248:lI109|N -1071F3070:Mn2:H1071F55D0,H1071F55E0 -1071F55D0:lH1071F7E28|N -1071F7E28:lI119|H1071FAA80 -1071FAA80:lI120|H1071FD9C0 -1071FD9C0:lI69|H107200A78 -107200A78:lI114|H107203C20 -107203C20:lI97|H107206E50 -107206E50:lI115|H10720A0D8 -10720A0D8:lI101|H10720D338 -10720D338:lI69|H107210528 -107210528:lI118|H1072137A8 -1072137A8:lI101|H107216B60 -107216B60:lI110|H10721A0E0 -10721A0E0:lI116|H10721D6C0 -10721D6C0:lI46|H107220C40 -107220C40:lI98|H107223F08 -107223F08:lI101|H107226E90 -107226E90:lI97|H107229A28 -107229A28:lI109|N -1071F55E0:lH1071F7E38|N -1071F7E38:lI119|H1071FAA90 -1071FAA90:lI120|H1071FD9D0 -1071FD9D0:lI68|H107200A88 -107200A88:lI105|H107203C30 -107203C30:lI97|H107206E60 -107206E60:lI108|H10720A0E8 -10720A0E8:lI111|H10720D348 -10720D348:lI103|H107210538 -107210538:lI46|H1072137B8 -1072137B8:lI98|H107216B70 -107216B70:lI101|H10721A0F0 -10721A0F0:lI97|H10721D6D0 -10721D6D0:lI109|N -1071F3060:lH1071F55C0|N -1071F55C0:lI119|H1071F7E18 -1071F7E18:lI120|H1071FAA70 -1071FAA70:lI68|H1071FD9B0 -1071FD9B0:lI114|H107200A68 -107200A68:lI111|H107203C10 -107203C10:lI112|H107206E40 -107206E40:lI70|H10720A0C8 -10720A0C8:lI105|H10720D328 -10720D328:lI108|H107210518 -107210518:lI101|H107213798 -107213798:lI115|H107216B50 -107216B50:lI69|H10721A0D0 -10721A0D0:lI118|H10721D6B0 -10721D6B0:lI101|H107220C30 -107220C30:lI110|H107223EF8 -107223EF8:lI116|H107226E80 -107226E80:lI46|H107229A18 -107229A18:lI98|H10722C290 -10722C290:lI101|H10722E808 -10722E808:lI97|H107230AC0 -107230AC0:lI109|N -1071F3050:lH1071F55B0|N -1071F55B0:lI119|H1071F7E08 -1071F7E08:lI120|H1071FAA60 -1071FAA60:lI46|H1071FD9A0 -1071FD9A0:lI98|H107200A58 -107200A58:lI101|H107203C00 -107203C00:lI97|H107206E30 -107206E30:lI109|N -1071F3040:lH1071F55A0|N -1071F55A0:lI119|H1071F7DF8 -1071F7DF8:lI120|H1071FAA50 -1071FAA50:lI73|H1071FD990 -1071FD990:lI110|H107200A48 -107200A48:lI105|H107203BF0 -107203BF0:lI116|H107206E20 -107206E20:lI68|H10720A0B8 -10720A0B8:lI105|H10720D318 -10720D318:lI97|H107210508 -107210508:lI108|H107213788 -107213788:lI111|H107216B40 -107216B40:lI103|H10721A0C0 -10721A0C0:lI69|H10721D6A0 -10721D6A0:lI118|H107220C20 -107220C20:lI101|H107223EE8 -107223EE8:lI110|H107226E70 -107226E70:lI116|H107229A08 -107229A08:lI46|H10722C280 -10722C280:lI98|H10722E7F8 -10722E7F8:lI101|H107230AB0 -107230AB0:lI97|H107232AF8 -107232AF8:lI109|N -1071F3030:lH1071F5590|N -1071F5590:lI119|H1071F7DE8 -1071F7DE8:lI120|H1071FAA40 -1071FAA40:lI73|H1071FD980 -1071FD980:lI109|H107200A38 -107200A38:lI97|H107203BE0 -107203BE0:lI103|H107206E10 -107206E10:lI101|H10720A0A8 -10720A0A8:lI76|H10720D308 -10720D308:lI105|H1072104F8 -1072104F8:lI115|H107213778 -107213778:lI116|H107216B30 -107216B30:lI46|H10721A0B0 -10721A0B0:lI98|H10721D690 -10721D690:lI101|H107220C10 -107220C10:lI97|H107223ED8 -107223ED8:lI109|N -1071F3018:Mn2:H1071F5560,H1071F5578 -1071F5560:Mn2:H1071F7DA8,H1071F7DB8 -1071F7DA8:lH1071FAA00|N -1071FAA00:lI119|H1071FD940 -1071FD940:lI120|H1072009F8 -1072009F8:lI68|H107203BA0 -107203BA0:lI97|H107206DD0 -107206DD0:lI116|H10720A068 -10720A068:lI101|H10720D2C8 -10720D2C8:lI80|H1072104B8 -1072104B8:lI105|H107213738 -107213738:lI99|H107216AF0 -107216AF0:lI107|H10721A070 -10721A070:lI101|H10721D650 -10721D650:lI114|H107220BD0 -107220BD0:lI67|H107223E98 -107223E98:lI116|H107226E30 -107226E30:lI114|H1072299C8 -1072299C8:lI108|H10722C240 -10722C240:lI46|H10722E7B8 -10722E7B8:lI98|H107230A70 -107230A70:lI101|H107232AB8 -107232AB8:lI97|H1072347E0 -1072347E0:lI109|N -1071F7DB8:lH1071FAA10|N -1071FAA10:lI119|H1071FD950 -1071FD950:lI120|H107200A08 -107200A08:lI80|H107203BB0 -107203BB0:lI114|H107206DE0 -107206DE0:lI101|H10720A078 -10720A078:lI118|H10720D2D8 -10720D2D8:lI105|H1072104C8 -1072104C8:lI101|H107213748 -107213748:lI119|H107216B00 -107216B00:lI67|H10721A080 -10721A080:lI97|H10721D660 -10721D660:lI110|H107220BE0 -107220BE0:lI118|H107223EA8 -107223EA8:lI97|H107226E40 -107226E40:lI115|H1072299D8 -1072299D8:lI46|H10722C250 -10722C250:lI98|H10722E7C8 -10722E7C8:lI101|H107230A80 -107230A80:lI97|H107232AC8 -107232AC8:lI109|N -1071F5578:Mn2:H1071F7DC8,H1071F7DD8 -1071F7DC8:lH1071FAA20|N -1071FAA20:lI119|H1071FD960 -1071FD960:lI120|H107200A18 -107200A18:lI71|H107203BC0 -107203BC0:lI114|H107206DF0 -107206DF0:lI105|H10720A088 -10720A088:lI100|H10720D2E8 -10720D2E8:lI67|H1072104D8 -1072104D8:lI101|H107213758 -107213758:lI108|H107216B10 -107216B10:lI108|H10721A090 -10721A090:lI84|H10721D670 -10721D670:lI101|H107220BF0 -107220BF0:lI120|H107223EB8 -107223EB8:lI116|H107226E50 -107226E50:lI69|H1072299E8 -1072299E8:lI100|H10722C260 -10722C260:lI105|H10722E7D8 -10722E7D8:lI116|H107230A90 -107230A90:lI111|H107232AD8 -107232AD8:lI114|H1072347F0 -1072347F0:lI46|H107236258 -107236258:lI98|H107237A50 -107237A50:lI101|H107239088 -107239088:lI97|H10723A520 -10723A520:lI109|N -1071F7DD8:lH1071FAA30|N -1071FAA30:lI119|H1071FD970 -1071FD970:lI120|H107200A28 -107200A28:lI83|H107203BD0 -107203BD0:lI112|H107206E00 -107206E00:lI108|H10720A098 -10720A098:lI105|H10720D2F8 -10720D2F8:lI116|H1072104E8 -1072104E8:lI116|H107213768 -107213768:lI101|H107216B20 -107216B20:lI114|H10721A0A0 -10721A0A0:lI87|H10721D680 -10721D680:lI105|H107220C00 -107220C00:lI110|H107223EC8 -107223EC8:lI100|H107226E60 -107226E60:lI111|H1072299F8 -1072299F8:lI119|H10722C270 -10722C270:lI46|H10722E7E8 -10722E7E8:lI98|H107230AA0 -107230AA0:lI101|H107232AE8 -107232AE8:lI97|H107234800 -107234800:lI109|N -1071F3008:lH1071F5550|N -1071F5550:lI119|H1071F7D98 -1071F7D98:lI120|H1071FA9F0 -1071FA9F0:lI79|H1071FD930 -1071FD930:lI118|H1072009E8 -1072009E8:lI101|H107203B90 -107203B90:lI114|H107206DC0 -107206DC0:lI108|H10720A058 -10720A058:lI97|H10720D2B8 -10720D2B8:lI121|H1072104A8 -1072104A8:lI46|H107213728 -107213728:lI98|H107216AE0 -107216AE0:lI101|H10721A060 -10721A060:lI97|H10721D640 -10721D640:lI109|N -1071F1238:MnC:H1071F2F00,H1071F2F10,H1071F2F20,H1071F2F30,H1071F2F50,H1071F2F60,H1071F2F78,H1071F2F90,H1071F2FA8,H1071F2FB8,H1071F2FD0,H1071F2FE0 -1071F2F00:lH1071F5408|N -1071F5408:lI119|H1071F7C48 -1071F7C48:lI120|H1071FA8A0 -1071FA8A0:lI71|H1071FD7E0 -1071FD7E0:lI114|H107200898 -107200898:lI105|H107203A40 -107203A40:lI100|H107206C70 -107206C70:lI67|H107209F08 -107209F08:lI101|H10720D168 -10720D168:lI108|H107210358 -107210358:lI108|H1072135D8 -1072135D8:lI65|H107216990 -107216990:lI116|H107219F10 -107219F10:lI116|H10721D500 -10721D500:lI114|H107220A90 -107220A90:lI46|H107223D68 -107223D68:lI98|H107226D20 -107226D20:lI101|H107229918 -107229918:lI97|H10722C1A0 -10722C1A0:lI109|N -1071F2FE0:lH1071F5520|N -1071F5520:lI119|H1071F7D68 -1071F7D68:lI120|H1071FA9C0 -1071FA9C0:lI67|H1071FD900 -1071FD900:lI97|H1072009B8 -1072009B8:lI108|H107203B60 -107203B60:lI101|H107206D90 -107206D90:lI110|H10720A028 -10720A028:lI100|H10720D288 -10720D288:lI97|H107210478 -107210478:lI114|H1072136F8 -1072136F8:lI69|H107216AB0 -107216AB0:lI118|H10721A030 -10721A030:lI101|H10721D610 -10721D610:lI110|H107220BA0 -107220BA0:lI116|H107223E68 -107223E68:lI46|H107226E00 -107226E00:lI98|H1072299A8 -1072299A8:lI101|H10722C220 -10722C220:lI97|H10722E798 -10722E798:lI109|N -1071F2FD0:lH1071F5510|N -1071F5510:lI119|H1071F7D58 -1071F7D58:lI120|H1071FA9B0 -1071FA9B0:lI83|H1071FD8F0 -1071FD8F0:lI99|H1072009A8 -1072009A8:lI114|H107203B50 -107203B50:lI111|H107206D80 -107206D80:lI108|H10720A018 -10720A018:lI108|H10720D278 -10720D278:lI66|H107210468 -107210468:lI97|H1072136E8 -1072136E8:lI114|H107216AA0 -107216AA0:lI46|H10721A020 -10721A020:lI98|H10721D600 -10721D600:lI101|H107220B90 -107220B90:lI97|H107223E58 -107223E58:lI109|N -1071F2FB8:Mn2:H1071F54F0,H1071F5500 -1071F54F0:lH1071F7D38|N -1071F7D38:lI119|H1071FA990 -1071FA990:lI120|H1071FD8D0 -1071FD8D0:lI71|H107200988 -107200988:lI114|H107203B30 -107203B30:lI97|H107206D60 -107206D60:lI112|H107209FF8 -107209FF8:lI104|H10720D258 -10720D258:lI105|H107210448 -107210448:lI99|H1072136C8 -1072136C8:lI115|H107216A80 -107216A80:lI79|H10721A000 -10721A000:lI98|H10721D5E0 -10721D5E0:lI106|H107220B70 -107220B70:lI101|H107223E38 -107223E38:lI99|H107226DE0 -107226DE0:lI116|H107229988 -107229988:lI46|H10722C200 -10722C200:lI98|H10722E778 -10722E778:lI101|H107230A50 -107230A50:lI97|H107232A98 -107232A98:lI109|N -1071F5500:lH1071F7D48|N -1071F7D48:lI119|H1071FA9A0 -1071FA9A0:lI120|H1071FD8E0 -1071FD8E0:lI84|H107200998 -107200998:lI111|H107203B40 -107203B40:lI103|H107206D70 -107206D70:lI103|H10720A008 -10720A008:lI108|H10720D268 -10720D268:lI101|H107210458 -107210458:lI66|H1072136D8 -1072136D8:lI117|H107216A90 -107216A90:lI116|H10721A010 -10721A010:lI116|H10721D5F0 -10721D5F0:lI111|H107220B80 -107220B80:lI110|H107223E48 -107223E48:lI46|H107226DF0 -107226DF0:lI98|H107229998 -107229998:lI101|H10722C210 -10722C210:lI97|H10722E788 -10722E788:lI109|N -1071F2FA8:lH1071F54E0|N -1071F54E0:lI119|H1071F7D28 -1071F7D28:lI120|H1071FA980 -1071FA980:lI76|H1071FD8C0 -1071FD8C0:lI105|H107200978 -107200978:lI115|H107203B20 -107203B20:lI116|H107206D50 -107206D50:lI86|H107209FE8 -107209FE8:lI105|H10720D248 -10720D248:lI101|H107210438 -107210438:lI119|H1072136B8 -1072136B8:lI46|H107216A70 -107216A70:lI98|H107219FF0 -107219FF0:lI101|H10721D5D0 -10721D5D0:lI97|H107220B60 -107220B60:lI109|N -1071F2F90:Mn2:H1071F54C0,H1071F54D0 -1071F54C0:lH1071F7D08|N -1071F7D08:lI119|H1071FA960 -1071FA960:lI120|H1071FD8A0 -1071FD8A0:lI88|H107200958 -107200958:lI109|H107203B00 -107203B00:lI108|H107206D30 -107206D30:lI82|H107209FC8 -107209FC8:lI101|H10720D228 -10720D228:lI115|H107210418 -107210418:lI111|H107213698 -107213698:lI117|H107216A50 -107216A50:lI114|H107219FD0 -107219FD0:lI99|H10721D5B0 -10721D5B0:lI101|H107220B40 -107220B40:lI46|H107223E18 -107223E18:lI98|H107226DD0 -107226DD0:lI101|H107229978 -107229978:lI97|H10722C1F0 -10722C1F0:lI109|N -1071F54D0:lH1071F7D18|N -1071F7D18:lI119|H1071FA970 -1071FA970:lI120|H1071FD8B0 -1071FD8B0:lI76|H107200968 -107200968:lI105|H107203B10 -107203B10:lI115|H107206D40 -107206D40:lI116|H107209FD8 -107209FD8:lI98|H10720D238 -10720D238:lI111|H107210428 -107210428:lI111|H1072136A8 -1072136A8:lI107|H107216A60 -107216A60:lI46|H107219FE0 -107219FE0:lI98|H10721D5C0 -10721D5C0:lI101|H107220B50 -107220B50:lI97|H107223E28 -107223E28:lI109|N -1071F2F78:Mn2:H1071F54A0,H1071F54B0 -1071F54A0:lH1071F7CE8|N -1071F7CE8:lI119|H1071FA940 -1071FA940:lI120|H1071FD880 -1071FD880:lI73|H107200938 -107200938:lI100|H107203AE0 -107203AE0:lI108|H107206D10 -107206D10:lI101|H107209FA8 -107209FA8:lI69|H10720D208 -10720D208:lI118|H1072103F8 -1072103F8:lI101|H107213678 -107213678:lI110|H107216A30 -107216A30:lI116|H107219FB0 -107219FB0:lI46|H10721D590 -10721D590:lI98|H107220B20 -107220B20:lI101|H107223DF8 -107223DF8:lI97|H107226DB0 -107226DB0:lI109|N -1071F54B0:lH1071F7CF8|N -1071F7CF8:lI119|H1071FA950 -1071FA950:lI120|H1071FD890 -1071FD890:lI70|H107200948 -107200948:lI111|H107203AF0 -107203AF0:lI110|H107206D20 -107206D20:lI116|H107209FB8 -107209FB8:lI80|H10720D218 -10720D218:lI105|H107210408 -107210408:lI99|H107213688 -107213688:lI107|H107216A40 -107216A40:lI101|H107219FC0 -107219FC0:lI114|H10721D5A0 -10721D5A0:lI69|H107220B30 -107220B30:lI118|H107223E08 -107223E08:lI101|H107226DC0 -107226DC0:lI110|H107229968 -107229968:lI116|H10722C1E0 -10722C1E0:lI46|H10722E768 -10722E768:lI98|H107230A40 -107230A40:lI101|H107232A88 -107232A88:lI97|H1072347C0 -1072347C0:lI109|N -1071F2F60:Mn2:H1071F5480,H1071F5490 -1071F5480:lH1071F7CC8|N -1071F7CC8:lI119|H1071FA920 -1071FA920:lI120|H1071FD860 -1071FD860:lI84|H107200918 -107200918:lI114|H107203AC0 -107203AC0:lI101|H107206CF0 -107206CF0:lI101|H107209F88 -107209F88:lI69|H10720D1E8 -10720D1E8:lI118|H1072103D8 -1072103D8:lI101|H107213658 -107213658:lI110|H107216A10 -107216A10:lI116|H107219F90 -107219F90:lI46|H10721D570 -10721D570:lI98|H107220B00 -107220B00:lI101|H107223DD8 -107223DD8:lI97|H107226D90 -107226D90:lI109|N -1071F5490:lH1071F7CD8|N -1071F7CD8:lI119|H1071FA930 -1071FA930:lI120|H1071FD870 -1071FD870:lI83|H107200928 -107200928:lI105|H107203AD0 -107203AD0:lI122|H107206D00 -107206D00:lI101|H107209F98 -107209F98:lI69|H10720D1F8 -10720D1F8:lI118|H1072103E8 -1072103E8:lI101|H107213668 -107213668:lI110|H107216A20 -107216A20:lI116|H107219FA0 -107219FA0:lI46|H10721D580 -10721D580:lI98|H107220B10 -107220B10:lI101|H107223DE8 -107223DE8:lI97|H107226DA0 -107226DA0:lI109|N -1071F2F50:lH1071F5470|N -1071F5470:lI119|H1071F7CB8 -1071F7CB8:lI120|H1071FA910 -1071FA910:lI70|H1071FD850 -1071FD850:lI105|H107200908 -107200908:lI110|H107203AB0 -107203AB0:lI100|H107206CE0 -107206CE0:lI82|H107209F78 -107209F78:lI101|H10720D1D8 -10720D1D8:lI112|H1072103C8 -1072103C8:lI108|H107213648 -107213648:lI97|H107216A00 -107216A00:lI99|H107219F80 -107219F80:lI101|H10721D560 -10721D560:lI68|H107220AF0 -107220AF0:lI105|H107223DC8 -107223DC8:lI97|H107226D80 -107226D80:lI108|H107229958 -107229958:lI111|H10722C1D0 -10722C1D0:lI103|H10722E758 -10722E758:lI46|H107230A30 -107230A30:lI98|H107232A78 -107232A78:lI101|H1072347B0 -1072347B0:lI97|H107236238 -107236238:lI109|N -1071F2F30:Mn3:H1071F5440,H1071F5450,H1071F5460 -1071F5440:lH1071F7C88|N -1071F7C88:lI119|H1071FA8E0 -1071FA8E0:lI120|H1071FD820 -1071FD820:lI80|H1072008D8 -1072008D8:lI114|H107203A80 -107203A80:lI105|H107206CB0 -107206CB0:lI110|H107209F48 -107209F48:lI116|H10720D1A8 -10720D1A8:lI68|H107210398 -107210398:lI97|H107213618 -107213618:lI116|H1072169D0 -1072169D0:lI97|H107219F50 -107219F50:lI46|H10721D530 -10721D530:lI98|H107220AC0 -107220AC0:lI101|H107223D98 -107223D98:lI97|H107226D50 -107226D50:lI109|N -1071F5460:lH1071F7CA8|N -1071F7CA8:lI119|H1071FA900 -1071FA900:lI120|H1071FD840 -1071FD840:lI84|H1072008F8 -1072008F8:lI97|H107203AA0 -107203AA0:lI115|H107206CD0 -107206CD0:lI107|H107209F68 -107209F68:lI66|H10720D1C8 -10720D1C8:lI97|H1072103B8 -1072103B8:lI114|H107213638 -107213638:lI73|H1072169F0 -1072169F0:lI99|H107219F70 -107219F70:lI111|H10721D550 -10721D550:lI110|H107220AE0 -107220AE0:lI46|H107223DB8 -107223DB8:lI98|H107226D70 -107226D70:lI101|H107229948 -107229948:lI97|H10722C1C0 -10722C1C0:lI109|N -1071F5450:lH1071F7C98|N -1071F7C98:lI119|H1071FA8F0 -1071FA8F0:lI120|H1071FD830 -1071FD830:lI70|H1072008E8 -1072008E8:lI111|H107203A90 -107203A90:lI99|H107206CC0 -107206CC0:lI117|H107209F58 -107209F58:lI115|H10720D1B8 -10720D1B8:lI69|H1072103A8 -1072103A8:lI118|H107213628 -107213628:lI101|H1072169E0 -1072169E0:lI110|H107219F60 -107219F60:lI116|H10721D540 -10721D540:lI46|H107220AD0 -107220AD0:lI98|H107223DA8 -107223DA8:lI101|H107226D60 -107226D60:lI97|H107229938 -107229938:lI109|N -1071F2F20:Mn1:H1071F5428 -1071F5428:Mn2:H1071F7C68,H1071F7C78 -1071F7C68:lH1071FA8C0|N -1071FA8C0:lI119|H1071FD800 -1071FD800:lI120|H1072008B8 -1072008B8:lI67|H107203A60 -107203A60:lI108|H107206C90 -107206C90:lI105|H107209F28 -107209F28:lI112|H10720D188 -10720D188:lI98|H107210378 -107210378:lI111|H1072135F8 -1072135F8:lI97|H1072169B0 -1072169B0:lI114|H107219F30 -107219F30:lI100|H10721D510 -10721D510:lI84|H107220AA0 -107220AA0:lI101|H107223D78 -107223D78:lI120|H107226D30 -107226D30:lI116|H107229928 -107229928:lI69|H10722C1B0 -10722C1B0:lI118|H10722E748 -10722E748:lI101|H107230A20 -107230A20:lI110|H107232A68 -107232A68:lI116|H1072347A0 -1072347A0:lI46|H107236228 -107236228:lI98|H107237A40 -107237A40:lI101|H107239078 -107239078:lI97|H10723A510 -10723A510:lI109|N -1071F7C78:lH1071FA8D0|N -1071FA8D0:lI119|H1071FD810 -1071FD810:lI120|H1072008C8 -1072008C8:lI76|H107203A70 -107203A70:lI105|H107206CA0 -107206CA0:lI115|H107209F38 -107209F38:lI116|H10720D198 -10720D198:lI73|H107210388 -107210388:lI116|H107213608 -107213608:lI101|H1072169C0 -1072169C0:lI109|H107219F40 -107219F40:lI46|H10721D520 -10721D520:lI98|H107220AB0 -107220AB0:lI101|H107223D88 -107223D88:lI97|H107226D40 -107226D40:lI109|N -1071F2F10:lH1071F5418|N -1071F5418:lI119|H1071F7C58 -1071F7C58:lI120|H1071FA8B0 -1071FA8B0:lI66|H1071FD7F0 -1071FD7F0:lI117|H1072008A8 -1072008A8:lI116|H107203A50 -107203A50:lI116|H107206C80 -107206C80:lI111|H107209F18 -107209F18:lI110|H10720D178 -10720D178:lI46|H107210368 -107210368:lI98|H1072135E8 -1072135E8:lI101|H1072169A0 -1072169A0:lI97|H107219F20 -107219F20:lI109|N -1071F11E8:Mn9:H1071F2E40,H1071F2E50,H1071F2E60,H1071F2E78,H1071F2EA0,H1071F2EB0,H1071F2EC0,H1071F2ED8,H1071F2EF0 -1071F2E40:lH1071F5318|N -1071F5318:lI119|H1071F7B58 -1071F7B58:lI120|H1071FA7B0 -1071FA7B0:lI83|H1071FD6F0 -1071FD6F0:lI121|H1072007A8 -1072007A8:lI115|H107203950 -107203950:lI67|H107206B80 -107206B80:lI111|H107209E28 -107209E28:lI108|H10720D088 -10720D088:lI111|H107210288 -107210288:lI117|H107213508 -107213508:lI114|H1072168C0 -1072168C0:lI67|H107219E40 -107219E40:lI104|H10721D430 -10721D430:lI97|H1072209D0 -1072209D0:lI110|H107223CB8 -107223CB8:lI103|H107226C80 -107226C80:lI101|H107229878 -107229878:lI100|H10722C100 -10722C100:lI69|H10722E6C8 -10722E6C8:lI118|H1072309B0 -1072309B0:lI101|H107232A18 -107232A18:lI110|H107234760 -107234760:lI116|H1072361E8 -1072361E8:lI46|H107237A10 -107237A10:lI98|H107239048 -107239048:lI101|H10723A4E0 -10723A4E0:lI97|H10723B800 -10723B800:lI109|N -1071F2EF0:lH1071F53F8|N -1071F53F8:lI119|H1071F7C38 -1071F7C38:lI120|H1071FA890 -1071FA890:lI71|H1071FD7D0 -1071FD7D0:lI114|H107200888 -107200888:lI97|H107203A30 -107203A30:lI112|H107206C60 -107206C60:lI104|H107209EF8 -107209EF8:lI105|H10720D158 -10720D158:lI99|H107210348 -107210348:lI115|H1072135C8 -1072135C8:lI70|H107216980 -107216980:lI111|H107219F00 -107219F00:lI110|H10721D4F0 -10721D4F0:lI116|H107220A80 -107220A80:lI46|H107223D58 -107223D58:lI98|H107226D10 -107226D10:lI101|H107229908 -107229908:lI97|H10722C190 -10722C190:lI109|N -1071F2ED8:Mn2:H1071F53D8,H1071F53E8 -1071F53D8:lH1071F7C18|N -1071F7C18:lI119|H1071FA870 -1071FA870:lI120|H1071FD7B0 -1071FD7B0:lI46|H107200868 -107200868:lI97|H107203A10 -107203A10:lI112|H107206C40 -107206C40:lI112|N -1071F53E8:lH1071F7C28|N -1071F7C28:lI119|H1071FA880 -1071FA880:lI120|H1071FD7C0 -1071FD7C0:lI78|H107200878 -107200878:lI111|H107203A20 -107203A20:lI116|H107206C50 -107206C50:lI105|H107209EE8 -107209EE8:lI102|H10720D148 -10720D148:lI105|H107210338 -107210338:lI99|H1072135B8 -1072135B8:lI97|H107216970 -107216970:lI116|H107219EF0 -107219EF0:lI105|H10721D4E0 -10721D4E0:lI111|H107220A70 -107220A70:lI110|H107223D48 -107223D48:lI77|H107226D00 -107226D00:lI101|H1072298F8 -1072298F8:lI115|H10722C180 -10722C180:lI115|H10722E738 -10722E738:lI97|H107230A10 -107230A10:lI103|H107232A58 -107232A58:lI101|H107234790 -107234790:lI46|H107236218 -107236218:lI98|H107237A30 -107237A30:lI101|H107239068 -107239068:lI97|H10723A500 -10723A500:lI109|N -1071F2EC0:Mn2:H1071F53B8,H1071F53C8 -1071F53B8:lH1071F7BF8|N -1071F7BF8:lI119|H1071FA850 -1071FA850:lI120|H1071FD790 -1071FD790:lI82|H107200848 -107200848:lI101|H1072039F0 -1072039F0:lI103|H107206C20 -107206C20:lI105|H107209EC8 -107209EC8:lI111|H10720D128 -10720D128:lI110|H107210318 -107210318:lI46|H107213598 -107213598:lI98|H107216950 -107216950:lI101|H107219ED0 -107219ED0:lI97|H10721D4C0 -10721D4C0:lI109|N -1071F53C8:lH1071F7C08|N -1071F7C08:lI119|H1071FA860 -1071FA860:lI120|H1071FD7A0 -1071FD7A0:lI67|H107200858 -107200858:lI111|H107203A00 -107203A00:lI108|H107206C30 -107206C30:lI111|H107209ED8 -107209ED8:lI117|H10720D138 -10720D138:lI114|H107210328 -107210328:lI68|H1072135A8 -1072135A8:lI105|H107216960 -107216960:lI97|H107219EE0 -107219EE0:lI108|H10721D4D0 -10721D4D0:lI111|H107220A60 -107220A60:lI103|H107223D38 -107223D38:lI46|H107226CF0 -107226CF0:lI98|H1072298E8 -1072298E8:lI101|H10722C170 -10722C170:lI97|H10722E728 -10722E728:lI109|N -1071F2EB0:lH1071F53A8|N -1071F53A8:lI119|H1071F7BE8 -1071F7BE8:lI120|H1071FA840 -1071FA840:lI68|H1071FD780 -1071FD780:lI67|H107200838 -107200838:lI79|H1072039E0 -1072039E0:lI118|H107206C10 -107206C10:lI101|H107209EB8 -107209EB8:lI114|H10720D118 -10720D118:lI108|H107210308 -107210308:lI97|H107213588 -107213588:lI121|H107216940 -107216940:lI46|H107219EC0 -107219EC0:lI98|H10721D4B0 -10721D4B0:lI101|H107220A50 -107220A50:lI97|H107223D28 -107223D28:lI109|N -1071F2EA0:lH1071F5398|N -1071F5398:lI119|H1071F7BD8 -1071F7BD8:lI120|H1071FA830 -1071FA830:lI77|H1071FD770 -1071FD770:lI101|H107200828 -107200828:lI110|H1072039D0 -1072039D0:lI117|H107206C00 -107206C00:lI73|H107209EA8 -107209EA8:lI116|H10720D108 -10720D108:lI101|H1072102F8 -1072102F8:lI109|H107213578 -107213578:lI46|H107216930 -107216930:lI98|H107219EB0 -107219EB0:lI101|H10721D4A0 -10721D4A0:lI97|H107220A40 -107220A40:lI109|N -1071F2E78:Mn4:H1071F5358,H1071F5368,H1071F5378,H1071F5388 -1071F5358:lH1071F7B98|N -1071F7B98:lI119|H1071FA7F0 -1071FA7F0:lI120|H1071FD730 -1071FD730:lI77|H1072007E8 -1072007E8:lI68|H107203990 -107203990:lI73|H107206BC0 -107206BC0:lI67|H107209E68 -107209E68:lI104|H10720D0C8 -10720D0C8:lI105|H1072102C8 -1072102C8:lI108|H107213548 -107213548:lI100|H107216900 -107216900:lI70|H107219E80 -107219E80:lI114|H10721D470 -10721D470:lI97|H107220A10 -107220A10:lI109|H107223CF8 -107223CF8:lI101|H107226CC0 -107226CC0:lI46|H1072298B8 -1072298B8:lI98|H10722C140 -10722C140:lI101|H10722E6F8 -10722E6F8:lI97|H1072309E0 -1072309E0:lI109|N -1071F5388:lH1071F7BC8|N -1071F7BC8:lI103|H1071FA820 -1071FA820:lI108|H1071FD760 -1071FD760:lI117|H107200818 -107200818:lI46|H1072039C0 -1072039C0:lI98|H107206BF0 -107206BF0:lI101|H107209E98 -107209E98:lI97|H10720D0F8 -10720D0F8:lI109|N -1071F5378:lH1071F7BB8|N -1071F7BB8:lI119|H1071FA810 -1071FA810:lI120|H1071FD750 -1071FD750:lI65|H107200808 -107200808:lI117|H1072039B0 -1072039B0:lI105|H107206BE0 -107206BE0:lI78|H107209E88 -107209E88:lI111|H10720D0E8 -10720D0E8:lI116|H1072102E8 -1072102E8:lI101|H107213568 -107213568:lI98|H107216920 -107216920:lI111|H107219EA0 -107219EA0:lI111|H10721D490 -10721D490:lI107|H107220A30 -107220A30:lI69|H107223D18 -107223D18:lI118|H107226CE0 -107226CE0:lI101|H1072298D8 -1072298D8:lI110|H10722C160 -10722C160:lI116|H10722E718 -10722E718:lI46|H107230A00 -107230A00:lI98|H107232A48 -107232A48:lI101|H107234780 -107234780:lI97|H107236208 -107236208:lI109|N -1071F5368:lH1071F7BA8|N -1071F7BA8:lI119|H1071FA800 -1071FA800:lI120|H1071FD740 -1071FD740:lI71|H1072007F8 -1072007F8:lI114|H1072039A0 -1072039A0:lI97|H107206BD0 -107206BD0:lI112|H107209E78 -107209E78:lI104|H10720D0D8 -10720D0D8:lI105|H1072102D8 -1072102D8:lI99|H107213558 -107213558:lI115|H107216910 -107216910:lI77|H107219E90 -107219E90:lI97|H10721D480 -10721D480:lI116|H107220A20 -107220A20:lI114|H107223D08 -107223D08:lI105|H107226CD0 -107226CD0:lI120|H1072298C8 -1072298C8:lI46|H10722C150 -10722C150:lI98|H10722E708 -10722E708:lI101|H1072309F0 -1072309F0:lI97|H107232A38 -107232A38:lI109|N -1071F2E60:Mn2:H1071F5338,H1071F5348 -1071F5338:lH1071F7B78|N -1071F7B78:lI119|H1071FA7D0 -1071FA7D0:lI120|H1071FD710 -1071FD710:lI74|H1072007C8 -1072007C8:lI111|H107203970 -107203970:lI121|H107206BA0 -107206BA0:lI115|H107209E48 -107209E48:lI116|H10720D0A8 -10720D0A8:lI105|H1072102A8 -1072102A8:lI99|H107213528 -107213528:lI107|H1072168E0 -1072168E0:lI69|H107219E60 -107219E60:lI118|H10721D450 -10721D450:lI101|H1072209F0 -1072209F0:lI110|H107223CD8 -107223CD8:lI116|H107226CA0 -107226CA0:lI46|H107229898 -107229898:lI98|H10722C120 -10722C120:lI101|H10722E6D8 -10722E6D8:lI97|H1072309C0 -1072309C0:lI109|N -1071F5348:lH1071F7B88|N -1071F7B88:lI119|H1071FA7E0 -1071FA7E0:lI120|H1071FD720 -1071FD720:lI71|H1072007D8 -1072007D8:lI114|H107203980 -107203980:lI105|H107206BB0 -107206BB0:lI100|H107209E58 -107209E58:lI67|H10720D0B8 -10720D0B8:lI101|H1072102B8 -1072102B8:lI108|H107213538 -107213538:lI108|H1072168F0 -1072168F0:lI70|H107219E70 -107219E70:lI108|H10721D460 -10721D460:lI111|H107220A00 -107220A00:lI97|H107223CE8 -107223CE8:lI116|H107226CB0 -107226CB0:lI82|H1072298A8 -1072298A8:lI101|H10722C130 -10722C130:lI110|H10722E6E8 -10722E6E8:lI100|H1072309D0 -1072309D0:lI101|H107232A28 -107232A28:lI114|H107234770 -107234770:lI101|H1072361F8 -1072361F8:lI114|H107237A20 -107237A20:lI46|H107239058 -107239058:lI98|H10723A4F0 -10723A4F0:lI101|H10723B810 -10723B810:lI97|H10723C870 -10723C870:lI109|N -1071F2E50:lH1071F5328|N -1071F5328:lI119|H1071F7B68 -1071F7B68:lI120|H1071FA7C0 -1071FA7C0:lI80|H1071FD700 -1071FD700:lI114|H1072007B8 -1072007B8:lI101|H107203960 -107203960:lI118|H107206B90 -107206B90:lI105|H107209E38 -107209E38:lI101|H10720D098 -10720D098:lI119|H107210298 -107210298:lI70|H107213518 -107213518:lI114|H1072168D0 -1072168D0:lI97|H107219E50 -107219E50:lI109|H10721D440 -10721D440:lI101|H1072209E0 -1072209E0:lI46|H107223CC8 -107223CC8:lI98|H107226C90 -107226C90:lI101|H107229888 -107229888:lI97|H10722C110 -10722C110:lI109|N -1071F1190:MnA:H1071F2D88,H1071F2DA0,H1071F2DB0,H1071F2DC8,H1071F2DD8,H1071F2DE8,H1071F2DF8,H1071F2E08,H1071F2E18,H1071F2E28 -1071F2D88:Mn2:H1071F5240,H1071F5250 -1071F5240:lH1071F7A78|N -1071F7A78:lI119|H1071FA6D0 -1071FA6D0:lI120|H1071FD610 -1071FD610:lI71|H1072006C8 -1072006C8:lI114|H107203870 -107203870:lI105|H107206AA0 -107206AA0:lI100|H107209D48 -107209D48:lI83|H10720CFA8 -10720CFA8:lI105|H1072101B8 -1072101B8:lI122|H107213438 -107213438:lI101|H1072167F0 -1072167F0:lI114|H107219D80 -107219D80:lI46|H10721D380 -10721D380:lI98|H107220930 -107220930:lI101|H107223C28 -107223C28:lI97|H107226C00 -107226C00:lI109|N -1071F5250:lH1071F7A88|N -1071F7A88:lI119|H1071FA6E0 -1071FA6E0:lI120|H1071FD620 -1071FD620:lI70|H1072006D8 -1072006D8:lI111|H107203880 -107203880:lI110|H107206AB0 -107206AB0:lI116|H107209D58 -107209D58:lI46|H10720CFB8 -10720CFB8:lI98|H1072101C8 -1072101C8:lI101|H107213448 -107213448:lI97|H107216800 -107216800:lI109|N -1071F2E28:Mn2:H1071F52F8,H1071F5308 -1071F52F8:lH1071F7B38|N -1071F7B38:lI119|H1071FA790 -1071FA790:lI120|H1071FD6D0 -1071FD6D0:lI71|H107200788 -107200788:lI114|H107203930 -107203930:lI97|H107206B60 -107206B60:lI112|H107209E08 -107209E08:lI104|H10720D068 -10720D068:lI105|H107210268 -107210268:lI99|H1072134E8 -1072134E8:lI115|H1072168A0 -1072168A0:lI80|H107219E20 -107219E20:lI97|H10721D410 -10721D410:lI116|H1072209B0 -1072209B0:lI104|H107223C98 -107223C98:lI46|H107226C60 -107226C60:lI98|H107229858 -107229858:lI101|H10722C0E0 -10722C0E0:lI97|H10722E6A8 -10722E6A8:lI109|N -1071F5308:lH1071F7B48|N -1071F7B48:lI119|H1071FA7A0 -1071FA7A0:lI120|H1071FD6E0 -1071FD6E0:lI77|H107200798 -107200798:lI111|H107203940 -107203940:lI117|H107206B70 -107206B70:lI115|H107209E18 -107209E18:lI101|H10720D078 -10720D078:lI67|H107210278 -107210278:lI97|H1072134F8 -1072134F8:lI112|H1072168B0 -1072168B0:lI116|H107219E30 -107219E30:lI117|H10721D420 -10721D420:lI114|H1072209C0 -1072209C0:lI101|H107223CA8 -107223CA8:lI67|H107226C70 -107226C70:lI104|H107229868 -107229868:lI97|H10722C0F0 -10722C0F0:lI110|H10722E6B8 -10722E6B8:lI103|H1072309A0 -1072309A0:lI101|H107232A08 -107232A08:lI100|H107234750 -107234750:lI69|H1072361D8 -1072361D8:lI118|H107237A00 -107237A00:lI101|H107239038 -107239038:lI110|H10723A4D0 -10723A4D0:lI116|H10723B7F0 -10723B7F0:lI46|H10723C860 -10723C860:lI98|H10723D6F0 -10723D6F0:lI101|H10723E450 -10723E450:lI97|H10723F060 -10723F060:lI109|N -1071F2E18:Mn1:H1071F52E0 -1071F52E0:Mn2:H1071F7B18,H1071F7B28 -1071F7B18:lH1071FA770|N -1071FA770:lI119|H1071FD6B0 -1071FD6B0:lI120|H107200768 -107200768:lI80|H107203910 -107203910:lI114|H107206B40 -107206B40:lI105|H107209DE8 -107209DE8:lI110|H10720D048 -10720D048:lI116|H107210248 -107210248:lI101|H1072134C8 -1072134C8:lI114|H107216880 -107216880:lI46|H107219E00 -107219E00:lI98|H10721D3F0 -10721D3F0:lI101|H107220990 -107220990:lI97|H107223C78 -107223C78:lI109|N -1071F7B28:lH1071FA780|N -1071FA780:lI119|H1071FD6C0 -1071FD6C0:lI120|H107200778 -107200778:lI68|H107203920 -107203920:lI105|H107206B50 -107206B50:lI115|H107209DF8 -107209DF8:lI112|H10720D058 -10720D058:lI108|H107210258 -107210258:lI97|H1072134D8 -1072134D8:lI121|H107216890 -107216890:lI67|H107219E10 -107219E10:lI104|H10721D400 -10721D400:lI97|H1072209A0 -1072209A0:lI110|H107223C88 -107223C88:lI103|H107226C50 -107226C50:lI101|H107229848 -107229848:lI100|H10722C0D0 -10722C0D0:lI69|H10722E698 -10722E698:lI118|H107230990 -107230990:lI101|H1072329F8 -1072329F8:lI110|H107234740 -107234740:lI116|H1072361C8 -1072361C8:lI46|H1072379F0 -1072379F0:lI98|H107239028 -107239028:lI101|H10723A4C0 -10723A4C0:lI97|H10723B7E0 -10723B7E0:lI109|N -1071F2E08:lH1071F52D0|N -1071F52D0:lI119|H1071F7B08 -1071F7B08:lI120|H1071FA760 -1071FA760:lI66|H1071FD6A0 -1071FD6A0:lI117|H107200758 -107200758:lI102|H107203900 -107203900:lI102|H107206B30 -107206B30:lI101|H107209DD8 -107209DD8:lI114|H10720D038 -10720D038:lI101|H107210238 -107210238:lI100|H1072134B8 -1072134B8:lI68|H107216870 -107216870:lI67|H107219DF0 -107219DF0:lI46|H10721D3E0 -10721D3E0:lI98|H107220980 -107220980:lI101|H107223C68 -107223C68:lI97|H107226C40 -107226C40:lI109|N -1071F2DF8:lH1071F52C0|N -1071F52C0:lI119|H1071F7AF8 -1071F7AF8:lI120|H1071FA750 -1071FA750:lI67|H1071FD690 -1071FD690:lI111|H107200748 -107200748:lI108|H1072038F0 -1072038F0:lI111|H107206B20 -107206B20:lI117|H107209DC8 -107209DC8:lI114|H10720D028 -10720D028:lI80|H107210228 -107210228:lI105|H1072134A8 -1072134A8:lI99|H107216860 -107216860:lI107|H107219DE0 -107219DE0:lI101|H10721D3D0 -10721D3D0:lI114|H107220970 -107220970:lI69|H107223C58 -107223C58:lI118|H107226C30 -107226C30:lI101|H107229838 -107229838:lI110|H10722C0C0 -10722C0C0:lI116|H10722E688 -10722E688:lI46|H107230980 -107230980:lI98|H1072329E8 -1072329E8:lI101|H107234730 -107234730:lI97|H1072361B8 -1072361B8:lI109|N -1071F2DE8:lH1071F52B0|N -1071F52B0:lI119|H1071F7AE8 -1071F7AE8:lI120|H1071FA740 -1071FA740:lI101|H1071FD680 -1071FD680:lI95|H107200738 -107200738:lI117|H1072038E0 -1072038E0:lI116|H107206B10 -107206B10:lI105|H107209DB8 -107209DB8:lI108|H10720D018 -10720D018:lI46|H107210218 -107210218:lI98|H107213498 -107213498:lI101|H107216850 -107216850:lI97|H107219DD0 -107219DD0:lI109|N -1071F2DD8:lH1071F52A0|N -1071F52A0:lI119|H1071F7AD8 -1071F7AD8:lI120|H1071FA730 -1071FA730:lI70|H1071FD670 -1071FD670:lI108|H107200728 -107200728:lI101|H1072038D0 -1072038D0:lI120|H107206B00 -107206B00:lI71|H107209DA8 -107209DA8:lI114|H10720D008 -10720D008:lI105|H107210208 -107210208:lI100|H107213488 -107213488:lI83|H107216840 -107216840:lI105|H107219DC0 -107219DC0:lI122|H10721D3C0 -10721D3C0:lI101|H107220960 -107220960:lI114|H107223C48 -107223C48:lI46|H107226C20 -107226C20:lI98|H107229828 -107229828:lI101|H10722C0B0 -10722C0B0:lI97|H10722E678 -10722E678:lI109|N -1071F2DC8:lH1071F5290|N -1071F5290:lI119|H1071F7AC8 -1071F7AC8:lI120|H1071FA720 -1071FA720:lI87|H1071FD660 -1071FD660:lI101|H107200718 -107200718:lI98|H1072038C0 -1072038C0:lI86|H107206AF0 -107206AF0:lI105|H107209D98 -107209D98:lI101|H10720CFF8 -10720CFF8:lI119|H1072101F8 -1072101F8:lI46|H107213478 -107213478:lI98|H107216830 -107216830:lI101|H107219DB0 -107219DB0:lI97|H10721D3B0 -10721D3B0:lI109|N -1071F2DB0:Mn2:H1071F5270,H1071F5280 -1071F5270:lH1071F7AA8|N -1071F7AA8:lI119|H1071FA700 -1071FA700:lI120|H1071FD640 -1071FD640:lI46|H1072006F8 -1072006F8:lI97|H1072038A0 -1072038A0:lI112|H107206AD0 -107206AD0:lI112|H107209D78 -107209D78:lI117|H10720CFD8 -10720CFD8:lI112|N -1071F5280:lH1071F7AB8|N -1071F7AB8:lI119|H1071FA710 -1071FA710:lI120|H1071FD650 -1071FD650:lI83|H107200708 -107200708:lI116|H1072038B0 -1072038B0:lI121|H107206AE0 -107206AE0:lI108|H107209D88 -107209D88:lI101|H10720CFE8 -10720CFE8:lI100|H1072101E8 -1072101E8:lI84|H107213468 -107213468:lI101|H107216820 -107216820:lI120|H107219DA0 -107219DA0:lI116|H10721D3A0 -10721D3A0:lI67|H107220950 -107220950:lI116|H107223C38 -107223C38:lI114|H107226C10 -107226C10:lI108|H107229818 -107229818:lI46|H10722C0A0 -10722C0A0:lI98|H10722E668 -10722E668:lI101|H107230970 -107230970:lI97|H1072329D8 -1072329D8:lI109|N -1071F2DA0:lH1071F5260|N -1071F5260:lI119|H1071F7A98 -1071F7A98:lI120|H1071FA6F0 -1071FA6F0:lI77|H1071FD630 -1071FD630:lI101|H1072006E8 -1072006E8:lI109|H107203890 -107203890:lI111|H107206AC0 -107206AC0:lI114|H107209D68 -107209D68:lI121|H10720CFC8 -10720CFC8:lI68|H1072101D8 -1072101D8:lI67|H107213458 -107213458:lI46|H107216810 -107216810:lI98|H107219D90 -107219D90:lI101|H10721D390 -10721D390:lI97|H107220940 -107220940:lI109|N -1071F1130:MnB:H1071F2CB8,H1071F2CC8,H1071F2CD8,H1071F2CF0,H1071F2D00,H1071F2D18,H1071F2D28,H1071F2D38,H1071F2D48,H1071F2D58,H1071F2D68 -1071F2CB8:lH1071F5150|N -1071F5150:lI119|H1071F7988 -1071F7988:lI120|H1071FA5E0 -1071FA5E0:lI83|H1071FD520 -1071FD520:lI99|H1072005D8 -1072005D8:lI114|H107203780 -107203780:lI111|H1072069B0 -1072069B0:lI108|H107209C58 -107209C58:lI108|H10720CEB8 -10720CEB8:lI101|H1072100C8 -1072100C8:lI100|H107213348 -107213348:lI87|H107216700 -107216700:lI105|H107219C90 -107219C90:lI110|H10721D290 -10721D290:lI100|H107220850 -107220850:lI111|H107223B48 -107223B48:lI119|H107226B30 -107226B30:lI46|H107229758 -107229758:lI98|H10722BFE0 -10722BFE0:lI101|H10722E5C8 -10722E5C8:lI97|H1072308D0 -1072308D0:lI109|N -1071F2D68:Mn3:H1071F5210,H1071F5220,H1071F5230 -1071F5210:lH1071F7A48|N -1071F7A48:lI119|H1071FA6A0 -1071FA6A0:lI120|H1071FD5E0 -1071FD5E0:lI80|H107200698 -107200698:lI111|H107203840 -107203840:lI112|H107206A70 -107206A70:lI117|H107209D18 -107209D18:lI112|H10720CF78 -10720CF78:lI84|H107210188 -107210188:lI114|H107213408 -107213408:lI97|H1072167C0 -1072167C0:lI110|H107219D50 -107219D50:lI115|H10721D350 -10721D350:lI105|H107220900 -107220900:lI101|H107223BF8 -107223BF8:lI110|H107226BE0 -107226BE0:lI116|H1072297F8 -1072297F8:lI87|H10722C080 -10722C080:lI105|H10722E648 -10722E648:lI110|H107230950 -107230950:lI100|H1072329C8 -1072329C8:lI111|H107234720 -107234720:lI119|H1072361A8 -1072361A8:lI46|H1072379E0 -1072379E0:lI98|H107239018 -107239018:lI101|H10723A4B0 -10723A4B0:lI97|H10723B7D0 -10723B7D0:lI109|N -1071F5230:lH1071F7A68|N -1071F7A68:lI119|H1071FA6C0 -1071FA6C0:lI120|H1071FD600 -1071FD600:lI67|H1072006B8 -1072006B8:lI108|H107203860 -107203860:lI105|H107206A90 -107206A90:lI101|H107209D38 -107209D38:lI110|H10720CF98 -10720CF98:lI116|H1072101A8 -1072101A8:lI68|H107213428 -107213428:lI67|H1072167E0 -1072167E0:lI46|H107219D70 -107219D70:lI98|H10721D370 -10721D370:lI101|H107220920 -107220920:lI97|H107223C18 -107223C18:lI109|N -1071F5220:lH1071F7A58|N -1071F7A58:lI119|H1071FA6B0 -1071FA6B0:lI120|H1071FD5F0 -1071FD5F0:lI66|H1072006A8 -1072006A8:lI111|H107203850 -107203850:lI111|H107206A80 -107206A80:lI107|H107209D28 -107209D28:lI67|H10720CF88 -10720CF88:lI116|H107210198 -107210198:lI114|H107213418 -107213418:lI108|H1072167D0 -1072167D0:lI69|H107219D60 -107219D60:lI118|H10721D360 -10721D360:lI101|H107220910 -107220910:lI110|H107223C08 -107223C08:lI116|H107226BF0 -107226BF0:lI46|H107229808 -107229808:lI98|H10722C090 -10722C090:lI101|H10722E658 -10722E658:lI97|H107230960 -107230960:lI109|N -1071F2D58:lH1071F5200|N -1071F5200:lI119|H1071F7A38 -1071F7A38:lI120|H1071FA690 -1071FA690:lI77|H1071FD5D0 -1071FD5D0:lI101|H107200688 -107200688:lI110|H107203830 -107203830:lI117|H107206A60 -107206A60:lI66|H107209D08 -107209D08:lI97|H10720CF68 -10720CF68:lI114|H107210178 -107210178:lI46|H1072133F8 -1072133F8:lI98|H1072167B0 -1072167B0:lI101|H107219D40 -107219D40:lI97|H10721D340 -10721D340:lI109|N -1071F2D48:lH1071F51F0|N -1071F51F0:lI119|H1071F7A28 -1071F7A28:lI120|H1071FA680 -1071FA680:lI78|H1071FD5C0 -1071FD5C0:lI97|H107200678 -107200678:lI118|H107203820 -107203820:lI105|H107206A50 -107206A50:lI103|H107209CF8 -107209CF8:lI97|H10720CF58 -10720CF58:lI116|H107210168 -107210168:lI105|H1072133E8 -1072133E8:lI111|H1072167A0 -1072167A0:lI110|H107219D30 -107219D30:lI75|H10721D330 -10721D330:lI101|H1072208F0 -1072208F0:lI121|H107223BE8 -107223BE8:lI69|H107226BD0 -107226BD0:lI118|H1072297E8 -1072297E8:lI101|H10722C070 -10722C070:lI110|H10722E638 -10722E638:lI116|H107230940 -107230940:lI46|H1072329B8 -1072329B8:lI98|H107234710 -107234710:lI101|H107236198 -107236198:lI97|H1072379D0 -1072379D0:lI109|N -1071F2D38:lH1071F51E0|N -1071F51E0:lI119|H1071F7A18 -1071F7A18:lI120|H1071FA670 -1071FA670:lI84|H1071FD5B0 -1071FD5B0:lI111|H107200668 -107200668:lI112|H107203810 -107203810:lI76|H107206A40 -107206A40:lI101|H107209CE8 -107209CE8:lI118|H10720CF48 -10720CF48:lI101|H107210158 -107210158:lI108|H1072133D8 -1072133D8:lI87|H107216790 -107216790:lI105|H107219D20 -107219D20:lI110|H10721D320 -10721D320:lI100|H1072208E0 -1072208E0:lI111|H107223BD8 -107223BD8:lI119|H107226BC0 -107226BC0:lI46|H1072297D8 -1072297D8:lI98|H10722C060 -10722C060:lI101|H10722E628 -10722E628:lI97|H107230930 -107230930:lI109|N -1071F2D28:lH1071F51D0|N -1071F51D0:lI119|H1071F7A08 -1071F7A08:lI120|H1071FA660 -1071FA660:lI83|H1071FD5A0 -1071FD5A0:lI116|H107200658 -107200658:lI97|H107203800 -107203800:lI116|H107206A30 -107206A30:lI105|H107209CD8 -107209CD8:lI99|H10720CF38 -10720CF38:lI66|H107210148 -107210148:lI105|H1072133C8 -1072133C8:lI116|H107216780 -107216780:lI109|H107219D10 -107219D10:lI97|H10721D310 -10721D310:lI112|H1072208D0 -1072208D0:lI46|H107223BC8 -107223BC8:lI98|H107226BB0 -107226BB0:lI101|H1072297C8 -1072297C8:lI97|H10722C050 -10722C050:lI109|N -1071F2D18:lH1071F51C0|N -1071F51C0:lI119|H1071F79F8 -1071F79F8:lI120|H1071FA650 -1071FA650:lI83|H1071FD590 -1071FD590:lI121|H107200648 -107200648:lI115|H1072037F0 -1072037F0:lI116|H107206A20 -107206A20:lI101|H107209CC8 -107209CC8:lI109|H10720CF28 -10720CF28:lI83|H107210138 -107210138:lI101|H1072133B8 -1072133B8:lI116|H107216770 -107216770:lI116|H107219D00 -107219D00:lI105|H10721D300 -10721D300:lI110|H1072208C0 -1072208C0:lI103|H107223BB8 -107223BB8:lI115|H107226BA0 -107226BA0:lI46|H1072297B8 -1072297B8:lI98|H10722C040 -10722C040:lI101|H10722E618 -10722E618:lI97|H107230920 -107230920:lI109|N -1071F2D00:Mn2:H1071F51A0,H1071F51B0 -1071F51A0:lH1071F79D8|N -1071F79D8:lI119|H1071FA630 -1071FA630:lI120|H1071FD570 -1071FD570:lI80|H107200628 -107200628:lI114|H1072037D0 -1072037D0:lI101|H107206A00 -107206A00:lI118|H107209CA8 -107209CA8:lI105|H10720CF08 -10720CF08:lI101|H107210118 -107210118:lI119|H107213398 -107213398:lI67|H107216750 -107216750:lI111|H107219CE0 -107219CE0:lI110|H10721D2E0 -10721D2E0:lI116|H1072208A0 -1072208A0:lI114|H107223B98 -107223B98:lI111|H107226B80 -107226B80:lI108|H107229798 -107229798:lI66|H10722C020 -10722C020:lI97|H10722E608 -10722E608:lI114|H107230910 -107230910:lI46|H1072329A8 -1072329A8:lI98|H107234700 -107234700:lI101|H107236188 -107236188:lI97|H1072379C0 -1072379C0:lI109|N -1071F51B0:lH1071F79E8|N -1071F79E8:lI119|H1071FA640 -1071FA640:lI120|H1071FD580 -1071FD580:lI65|H107200638 -107200638:lI117|H1072037E0 -1072037E0:lI105|H107206A10 -107206A10:lI80|H107209CB8 -107209CB8:lI97|H10720CF18 -10720CF18:lI110|H107210128 -107210128:lI101|H1072133A8 -1072133A8:lI73|H107216760 -107216760:lI110|H107219CF0 -107219CF0:lI102|H10721D2F0 -10721D2F0:lI111|H1072208B0 -1072208B0:lI46|H107223BA8 -107223BA8:lI98|H107226B90 -107226B90:lI101|H1072297A8 -1072297A8:lI97|H10722C030 -10722C030:lI109|N -1071F2CF0:lH1071F5190|N -1071F5190:lI119|H1071F79C8 -1071F79C8:lI120|H1071FA620 -1071FA620:lI70|H1071FD560 -1071FD560:lI105|H107200618 -107200618:lI110|H1072037C0 -1072037C0:lI100|H1072069F0 -1072069F0:lI82|H107209C98 -107209C98:lI101|H10720CEF8 -10720CEF8:lI112|H107210108 -107210108:lI108|H107213388 -107213388:lI97|H107216740 -107216740:lI99|H107219CD0 -107219CD0:lI101|H10721D2D0 -10721D2D0:lI68|H107220890 -107220890:lI97|H107223B88 -107223B88:lI116|H107226B70 -107226B70:lI97|H107229788 -107229788:lI46|H10722C010 -10722C010:lI98|H10722E5F8 -10722E5F8:lI101|H107230900 -107230900:lI97|H107232998 -107232998:lI109|N -1071F2CD8:Mn2:H1071F5170,H1071F5180 -1071F5170:lH1071F79A8|N -1071F79A8:lI119|H1071FA600 -1071FA600:lI120|H1071FD540 -1071FD540:lI77|H1072005F8 -1072005F8:lI111|H1072037A0 -1072037A0:lI118|H1072069D0 -1072069D0:lI101|H107209C78 -107209C78:lI69|H10720CED8 -10720CED8:lI118|H1072100E8 -1072100E8:lI101|H107213368 -107213368:lI110|H107216720 -107216720:lI116|H107219CB0 -107219CB0:lI46|H10721D2B0 -10721D2B0:lI98|H107220870 -107220870:lI101|H107223B68 -107223B68:lI97|H107226B50 -107226B50:lI109|N -1071F5180:lH1071F79B8|N -1071F79B8:lI119|H1071FA610 -1071FA610:lI120|H1071FD550 -1071FD550:lI72|H107200608 -107200608:lI116|H1072037B0 -1072037B0:lI109|H1072069E0 -1072069E0:lI108|H107209C88 -107209C88:lI69|H10720CEE8 -10720CEE8:lI97|H1072100F8 -1072100F8:lI115|H107213378 -107213378:lI121|H107216730 -107216730:lI80|H107219CC0 -107219CC0:lI114|H10721D2C0 -10721D2C0:lI105|H107220880 -107220880:lI110|H107223B78 -107223B78:lI116|H107226B60 -107226B60:lI105|H107229778 -107229778:lI110|H10722C000 -10722C000:lI103|H10722E5E8 -10722E5E8:lI46|H1072308F0 -1072308F0:lI98|H107232988 -107232988:lI101|H1072346F0 -1072346F0:lI97|H107236178 -107236178:lI109|N -1071F2CC8:lH1071F5160|N -1071F5160:lI119|H1071F7998 -1071F7998:lI120|H1071FA5F0 -1071FA5F0:lI65|H1071FD530 -1071FD530:lI99|H1072005E8 -1072005E8:lI99|H107203790 -107203790:lI101|H1072069C0 -1072069C0:lI108|H107209C68 -107209C68:lI101|H10720CEC8 -10720CEC8:lI114|H1072100D8 -1072100D8:lI97|H107213358 -107213358:lI116|H107216710 -107216710:lI111|H107219CA0 -107219CA0:lI114|H10721D2A0 -10721D2A0:lI84|H107220860 -107220860:lI97|H107223B58 -107223B58:lI98|H107226B40 -107226B40:lI108|H107229768 -107229768:lI101|H10722BFF0 -10722BFF0:lI46|H10722E5D8 -10722E5D8:lI98|H1072308E0 -1072308E0:lI101|H107232978 -107232978:lI97|H1072346E0 -1072346E0:lI109|N -1071F10B0:MnF:H1071F2B88,H1071F2B98,H1071F2BB0,H1071F2BC8,H1071F2BD8,H1071F2BE8,H1071F2BF8,H1071F2C10,H1071F2C20,H1071F2C40,H1071F2C50,H1071F2C60,H1071F2C78,H1071F2C88,H1071F2CA0 -1071F2B88:lH1071F4FE0|N -1071F4FE0:lI119|H1071F7818 -1071F7818:lI120|H1071FA470 -1071FA470:lI76|H1071FD3B0 -1071FD3B0:lI97|H107200468 -107200468:lI121|H107203610 -107203610:lI111|H107206840 -107206840:lI117|H107209AE8 -107209AE8:lI116|H10720CD48 -10720CD48:lI65|H10720FF58 -10720FF58:lI108|H1072131D8 -1072131D8:lI103|H107216590 -107216590:lI111|H107219B30 -107219B30:lI114|H10721D150 -10721D150:lI105|H107220710 -107220710:lI116|H107223A48 -107223A48:lI104|H107226A60 -107226A60:lI109|H107229698 -107229698:lI46|H10722BF50 -10722BF50:lI98|H10722E538 -10722E538:lI101|H107230860 -107230860:lI97|H107232928 -107232928:lI109|N -1071F2CA0:Mn2:H1071F5130,H1071F5140 -1071F5130:lH1071F7968|N -1071F7968:lI119|H1071FA5C0 -1071FA5C0:lI120|H1071FD500 -1071FD500:lI76|H1072005B8 -1072005B8:lI111|H107203760 -107203760:lI103|H107206990 -107206990:lI78|H107209C38 -107209C38:lI117|H10720CE98 -10720CE98:lI108|H1072100A8 -1072100A8:lI108|H107213328 -107213328:lI46|H1072166E0 -1072166E0:lI98|H107219C70 -107219C70:lI101|H10721D270 -10721D270:lI97|H107220830 -107220830:lI109|N -1071F5140:lH1071F7978|N -1071F7978:lI119|H1071FA5D0 -1071FA5D0:lI120|H1071FD510 -1071FD510:lI71|H1072005C8 -1072005C8:lI114|H107203770 -107203770:lI105|H1072069A0 -1072069A0:lI100|H107209C48 -107209C48:lI67|H10720CEA8 -10720CEA8:lI101|H1072100B8 -1072100B8:lI108|H107213338 -107213338:lI108|H1072166F0 -1072166F0:lI78|H107219C80 -107219C80:lI117|H10721D280 -10721D280:lI109|H107220840 -107220840:lI98|H107223B38 -107223B38:lI101|H107226B20 -107226B20:lI114|H107229748 -107229748:lI82|H10722BFD0 -10722BFD0:lI101|H10722E5B8 -10722E5B8:lI110|H1072308C0 -1072308C0:lI100|H107232968 -107232968:lI101|H1072346D0 -1072346D0:lI114|H107236168 -107236168:lI101|H1072379B0 -1072379B0:lI114|H107239008 -107239008:lI46|H10723A4A0 -10723A4A0:lI98|H10723B7C0 -10723B7C0:lI101|H10723C850 -10723C850:lI97|H10723D6E0 -10723D6E0:lI109|N -1071F2C88:Mn2:H1071F5110,H1071F5120 -1071F5110:lH1071F7948|N -1071F7948:lI119|H1071FA5A0 -1071FA5A0:lI120|H1071FD4E0 -1071FD4E0:lI67|H107200598 -107200598:lI111|H107203740 -107203740:lI108|H107206970 -107206970:lI111|H107209C18 -107209C18:lI117|H10720CE78 -10720CE78:lI114|H107210088 -107210088:lI68|H107213308 -107213308:lI97|H1072166C0 -1072166C0:lI116|H107219C60 -107219C60:lI97|H10721D260 -10721D260:lI46|H107220820 -107220820:lI98|H107223B28 -107223B28:lI101|H107226B10 -107226B10:lI97|H107229738 -107229738:lI109|N -1071F5120:lH1071F7958|N -1071F7958:lI119|H1071FA5B0 -1071FA5B0:lI120|H1071FD4F0 -1071FD4F0:lI73|H1072005A8 -1072005A8:lI99|H107203750 -107203750:lI111|H107206980 -107206980:lI110|H107209C28 -107209C28:lI46|H10720CE88 -10720CE88:lI98|H107210098 -107210098:lI101|H107213318 -107213318:lI97|H1072166D0 -1072166D0:lI109|N -1071F2C78:lH1071F5100|N -1071F5100:lI119|H1071F7938 -1071F7938:lI120|H1071FA590 -1071FA590:lI77|H1071FD4D0 -1071FD4D0:lI105|H107200588 -107200588:lI114|H107203730 -107203730:lI114|H107206960 -107206960:lI111|H107209C08 -107209C08:lI114|H10720CE68 -10720CE68:lI68|H107210078 -107210078:lI67|H1072132F8 -1072132F8:lI46|H1072166B0 -1072166B0:lI98|H107219C50 -107219C50:lI101|H10721D250 -10721D250:lI97|H107220810 -107220810:lI109|N -1071F2C60:Mn2:H1071F50E0,H1071F50F0 -1071F50E0:lH1071F7918|N -1071F7918:lI119|H1071FA570 -1071FA570:lI120|H1071FD4B0 -1071FD4B0:lI65|H107200568 -107200568:lI117|H107203710 -107203710:lI105|H107206940 -107206940:lI83|H107209BE8 -107209BE8:lI105|H10720CE48 -10720CE48:lI109|H107210058 -107210058:lI112|H1072132D8 -1072132D8:lI108|H107216690 -107216690:lI101|H107219C30 -107219C30:lI84|H10721D230 -10721D230:lI97|H1072207F0 -1072207F0:lI98|H107223B08 -107223B08:lI65|H107226AF0 -107226AF0:lI114|H107229718 -107229718:lI116|H10722BFB0 -10722BFB0:lI46|H10722E598 -10722E598:lI98|H1072308B0 -1072308B0:lI101|H107232958 -107232958:lI97|H1072346C0 -1072346C0:lI109|N -1071F50F0:lH1071F7928|N -1071F7928:lI119|H1071FA580 -1071FA580:lI120|H1071FD4C0 -1071FD4C0:lI87|H107200578 -107200578:lI101|H107203720 -107203720:lI98|H107206950 -107206950:lI86|H107209BF8 -107209BF8:lI105|H10720CE58 -10720CE58:lI101|H107210068 -107210068:lI119|H1072132E8 -1072132E8:lI69|H1072166A0 -1072166A0:lI118|H107219C40 -107219C40:lI101|H10721D240 -10721D240:lI110|H107220800 -107220800:lI116|H107223B18 -107223B18:lI46|H107226B00 -107226B00:lI98|H107229728 -107229728:lI101|H10722BFC0 -10722BFC0:lI97|H10722E5A8 -10722E5A8:lI109|N -1071F2C50:lH1071F50D0|N -1071F50D0:lI119|H1071F7908 -1071F7908:lI120|H1071FA560 -1071FA560:lI78|H1071FD4A0 -1071FD4A0:lI111|H107200558 -107200558:lI116|H107203700 -107203700:lI105|H107206930 -107206930:lI102|H107209BD8 -107209BD8:lI121|H10720CE38 -10720CE38:lI69|H107210048 -107210048:lI118|H1072132C8 -1072132C8:lI101|H107216680 -107216680:lI110|H107219C20 -107219C20:lI116|H10721D220 -10721D220:lI46|H1072207E0 -1072207E0:lI98|H107223AF8 -107223AF8:lI101|H107226AE0 -107226AE0:lI97|H107229708 -107229708:lI109|N -1071F2C40:lH1071F50C0|N -1071F50C0:lI119|H1071F78F8 -1071F78F8:lI120|H1071FA550 -1071FA550:lI65|H1071FD490 -1071FD490:lI117|H107200548 -107200548:lI105|H1072036F0 -1072036F0:lI84|H107206920 -107206920:lI97|H107209BC8 -107209BC8:lI98|H10720CE28 -10720CE28:lI65|H107210038 -107210038:lI114|H1072132B8 -1072132B8:lI116|H107216670 -107216670:lI46|H107219C10 -107219C10:lI98|H10721D210 -10721D210:lI101|H1072207D0 -1072207D0:lI97|H107223AE8 -107223AE8:lI109|N -1071F2C20:Mn3:H1071F5090,H1071F50A0,H1071F50B0 -1071F5090:lH1071F78C8|N -1071F78C8:lI119|H1071FA520 -1071FA520:lI120|H1071FD460 -1071FD460:lI77|H107200518 -107200518:lI68|H1072036C0 -1072036C0:lI73|H1072068F0 -1072068F0:lI80|H107209B98 -107209B98:lI97|H10720CDF8 -10720CDF8:lI114|H107210008 -107210008:lI101|H107213288 -107213288:lI110|H107216640 -107216640:lI116|H107219BE0 -107219BE0:lI70|H10721D1E0 -10721D1E0:lI114|H1072207A0 -1072207A0:lI97|H107223AB8 -107223AB8:lI109|H107226AC0 -107226AC0:lI101|H1072296F8 -1072296F8:lI46|H10722BFA0 -10722BFA0:lI98|H10722E588 -10722E588:lI101|H1072308A0 -1072308A0:lI97|H107232948 -107232948:lI109|N -1071F50B0:lH1071F78E8|N -1071F78E8:lI119|H1071FA540 -1071FA540:lI120|H1071FD480 -1071FD480:lI71|H107200538 -107200538:lI114|H1072036E0 -1072036E0:lI105|H107206910 -107206910:lI100|H107209BB8 -107209BB8:lI69|H10720CE18 -10720CE18:lI118|H107210028 -107210028:lI101|H1072132A8 -1072132A8:lI110|H107216660 -107216660:lI116|H107219C00 -107219C00:lI46|H10721D200 -10721D200:lI98|H1072207C0 -1072207C0:lI101|H107223AD8 -107223AD8:lI97|H107226AD0 -107226AD0:lI109|N -1071F50A0:lH1071F78D8|N -1071F78D8:lI119|H1071FA530 -1071FA530:lI120|H1071FD470 -1071FD470:lI83|H107200528 -107200528:lI99|H1072036D0 -1072036D0:lI114|H107206900 -107206900:lI101|H107209BA8 -107209BA8:lI101|H10720CE08 -10720CE08:lI110|H107210018 -107210018:lI68|H107213298 -107213298:lI67|H107216650 -107216650:lI46|H107219BF0 -107219BF0:lI98|H10721D1F0 -10721D1F0:lI101|H1072207B0 -1072207B0:lI97|H107223AC8 -107223AC8:lI109|N -1071F2C10:lH1071F5080|N -1071F5080:lI119|H1071F78B8 -1071F78B8:lI120|H1071FA510 -1071FA510:lI80|H1071FD450 -1071FD450:lI114|H107200508 -107200508:lI105|H1072036B0 -1072036B0:lI110|H1072068E0 -1072068E0:lI116|H107209B88 -107209B88:lI111|H10720CDE8 -10720CDE8:lI117|H10720FFF8 -10720FFF8:lI116|H107213278 -107213278:lI46|H107216630 -107216630:lI98|H107219BD0 -107219BD0:lI101|H10721D1D0 -10721D1D0:lI97|H107220790 -107220790:lI109|N -1071F2BF8:Mn2:H1071F5060,H1071F5070 -1071F5060:lH1071F7898|N -1071F7898:lI119|H1071FA4F0 -1071FA4F0:lI120|H1071FD430 -1071FD430:lI69|H1072004E8 -1072004E8:lI118|H107203690 -107203690:lI116|H1072068C0 -1072068C0:lI72|H107209B68 -107209B68:lI97|H10720CDC8 -10720CDC8:lI110|H10720FFD8 -10720FFD8:lI100|H107213258 -107213258:lI108|H107216610 -107216610:lI101|H107219BB0 -107219BB0:lI114|H10721D1B0 -10721D1B0:lI46|H107220770 -107220770:lI98|H107223A98 -107223A98:lI101|H107226AA0 -107226AA0:lI97|H1072296D8 -1072296D8:lI109|N -1071F5070:lH1071F78A8|N -1071F78A8:lI119|H1071FA500 -1071FA500:lI120|H1071FD440 -1071FD440:lI68|H1072004F8 -1072004F8:lI105|H1072036A0 -1072036A0:lI114|H1072068D0 -1072068D0:lI80|H107209B78 -107209B78:lI105|H10720CDD8 -10720CDD8:lI99|H10720FFE8 -10720FFE8:lI107|H107213268 -107213268:lI101|H107216620 -107216620:lI114|H107219BC0 -107219BC0:lI67|H10721D1C0 -10721D1C0:lI116|H107220780 -107220780:lI114|H107223AA8 -107223AA8:lI108|H107226AB0 -107226AB0:lI46|H1072296E8 -1072296E8:lI98|H10722BF90 -10722BF90:lI101|H10722E578 -10722E578:lI97|H107230890 -107230890:lI109|N -1071F2BE8:lH1071F5050|N -1071F5050:lI119|H1071F7888 -1071F7888:lI120|H1071FA4E0 -1071FA4E0:lI84|H1071FD420 -1071FD420:lI114|H1072004D8 -1072004D8:lI101|H107203680 -107203680:lI101|H1072068B0 -1072068B0:lI98|H107209B58 -107209B58:lI111|H10720CDB8 -10720CDB8:lI111|H10720FFC8 -10720FFC8:lI107|H107213248 -107213248:lI46|H107216600 -107216600:lI98|H107219BA0 -107219BA0:lI101|H10721D1A0 -10721D1A0:lI97|H107220760 -107220760:lI109|N -1071F2BD8:lH1071F5040|N -1071F5040:lI119|H1071F7878 -1071F7878:lI120|H1071FA4D0 -1071FA4D0:lI76|H1071FD410 -1071FD410:lI111|H1072004C8 -1072004C8:lI99|H107203670 -107203670:lI97|H1072068A0 -1072068A0:lI108|H107209B48 -107209B48:lI101|H10720CDA8 -10720CDA8:lI46|H10720FFB8 -10720FFB8:lI98|H107213238 -107213238:lI101|H1072165F0 -1072165F0:lI97|H107219B90 -107219B90:lI109|N -1071F2BC8:lH1071F5030|N -1071F5030:lI119|H1071F7868 -1071F7868:lI120|H1071FA4C0 -1071FA4C0:lI77|H1071FD400 -1071FD400:lI97|H1072004B8 -1072004B8:lI120|H107203660 -107203660:lI105|H107206890 -107206890:lI109|H107209B38 -107209B38:lI105|H10720CD98 -10720CD98:lI122|H10720FFA8 -10720FFA8:lI101|H107213228 -107213228:lI69|H1072165E0 -1072165E0:lI118|H107219B80 -107219B80:lI101|H10721D190 -10721D190:lI110|H107220750 -107220750:lI116|H107223A88 -107223A88:lI46|H107226A90 -107226A90:lI98|H1072296C8 -1072296C8:lI101|H10722BF80 -10722BF80:lI97|H10722E568 -10722E568:lI109|N -1071F2BB0:Mn2:H1071F5010,H1071F5020 -1071F5010:lH1071F7848|N -1071F7848:lI119|H1071FA4A0 -1071FA4A0:lI120|H1071FD3E0 -1071FD3E0:lI77|H107200498 -107200498:lI101|H107203640 -107203640:lI115|H107206870 -107206870:lI115|H107209B18 -107209B18:lI97|H10720CD78 -10720CD78:lI103|H10720FF88 -10720FF88:lI101|H107213208 -107213208:lI68|H1072165C0 -1072165C0:lI105|H107219B60 -107219B60:lI97|H10721D170 -10721D170:lI108|H107220730 -107220730:lI111|H107223A68 -107223A68:lI103|H107226A70 -107226A70:lI46|H1072296A8 -1072296A8:lI98|H10722BF60 -10722BF60:lI101|H10722E548 -10722E548:lI97|H107230870 -107230870:lI109|N -1071F5020:lH1071F7858|N -1071F7858:lI119|H1071FA4B0 -1071FA4B0:lI120|H1071FD3F0 -1071FD3F0:lI71|H1072004A8 -1072004A8:lI101|H107203650 -107203650:lI110|H107206880 -107206880:lI101|H107209B28 -107209B28:lI114|H10720CD88 -10720CD88:lI105|H10720FF98 -10720FF98:lI99|H107213218 -107213218:lI68|H1072165D0 -1072165D0:lI105|H107219B70 -107219B70:lI114|H10721D180 -10721D180:lI67|H107220740 -107220740:lI116|H107223A78 -107223A78:lI114|H107226A80 -107226A80:lI108|H1072296B8 -1072296B8:lI46|H10722BF70 -10722BF70:lI98|H10722E558 -10722E558:lI101|H107230880 -107230880:lI97|H107232938 -107232938:lI109|N -1071F2B98:Mn2:H1071F4FF0,H1071F5000 -1071F4FF0:lH1071F7828|N -1071F7828:lI119|H1071FA480 -1071FA480:lI120|H1071FD3C0 -1071FD3C0:lI71|H107200478 -107200478:lI76|H107203620 -107203620:lI67|H107206850 -107206850:lI97|H107209AF8 -107209AF8:lI110|H10720CD58 -10720CD58:lI118|H10720FF68 -10720FF68:lI97|H1072131E8 -1072131E8:lI115|H1072165A0 -1072165A0:lI46|H107219B40 -107219B40:lI98|H10721D160 -10721D160:lI101|H107220720 -107220720:lI97|H107223A58 -107223A58:lI109|N -1071F5000:lH1071F7838|N -1071F7838:lI119|H1071FA490 -1071FA490:lI120|H1071FD3D0 -1071FD3D0:lI83|H107200488 -107200488:lI105|H107203630 -107203630:lI122|H107206860 -107206860:lI101|H107209B08 -107209B08:lI114|H10720CD68 -10720CD68:lI46|H10720FF78 -10720FF78:lI98|H1072131F8 -1072131F8:lI101|H1072165B0 -1072165B0:lI97|H107219B50 -107219B50:lI109|N -1071F1050:MnB:H1071F2A98,H1071F2AB0,H1071F2AC8,H1071F2AE0,H1071F2AF8,H1071F2B18,H1071F2B28,H1071F2B38,H1071F2B50,H1071F2B60,H1071F2B70 -1071F2A98:Mn2:H1071F4EB0,H1071F4EC0 -1071F4EB0:lH1071F76E8|N -1071F76E8:lI119|H1071FA340 -1071FA340:lI120|H1071FD280 -1071FD280:lI80|H107200338 -107200338:lI97|H1072034E0 -1072034E0:lI110|H107206710 -107206710:lI101|H1072099B8 -1072099B8:lI108|H10720CC18 -10720CC18:lI46|H10720FE28 -10720FE28:lI98|H1072130A8 -1072130A8:lI101|H107216460 -107216460:lI97|H107219A10 -107219A10:lI109|N -1071F4EC0:lH1071F76F8|N -1071F76F8:lI119|H1071FA350 -1071FA350:lI120|H1071FD290 -1071FD290:lI83|H107200348 -107200348:lI116|H1072034F0 -1072034F0:lI97|H107206720 -107206720:lI116|H1072099C8 -1072099C8:lI105|H10720CC28 -10720CC28:lI99|H10720FE38 -10720FE38:lI76|H1072130B8 -1072130B8:lI105|H107216470 -107216470:lI110|H107219A20 -107219A20:lI101|H10721D040 -10721D040:lI46|H107220610 -107220610:lI98|H107223948 -107223948:lI101|H107226980 -107226980:lI97|H1072295F8 -1072295F8:lI109|N -1071F2B70:Mn2:H1071F4FC0,H1071F4FD0 -1071F4FC0:lH1071F77F8|N -1071F77F8:lI119|H1071FA450 -1071FA450:lI120|H1071FD390 -1071FD390:lI67|H107200448 -107200448:lI111|H1072035F0 -1072035F0:lI108|H107206820 -107206820:lI111|H107209AC8 -107209AC8:lI117|H10720CD28 -10720CD28:lI114|H10720FF38 -10720FF38:lI80|H1072131B8 -1072131B8:lI105|H107216570 -107216570:lI99|H107219B10 -107219B10:lI107|H10721D130 -10721D130:lI101|H1072206F0 -1072206F0:lI114|H107223A28 -107223A28:lI67|H107226A40 -107226A40:lI116|H107229678 -107229678:lI114|H10722BF30 -10722BF30:lI108|H10722E518 -10722E518:lI46|H107230840 -107230840:lI98|H107232908 -107232908:lI101|H1072346A0 -1072346A0:lI97|H107236148 -107236148:lI109|N -1071F4FD0:lH1071F7808|N -1071F7808:lI119|H1071FA460 -1071FA460:lI120|H1071FD3A0 -1071FD3A0:lI71|H107200458 -107200458:lI114|H107203600 -107203600:lI105|H107206830 -107206830:lI100|H107209AD8 -107209AD8:lI67|H10720CD38 -10720CD38:lI101|H10720FF48 -10720FF48:lI108|H1072131C8 -1072131C8:lI108|H107216580 -107216580:lI66|H107219B20 -107219B20:lI111|H10721D140 -10721D140:lI111|H107220700 -107220700:lI108|H107223A38 -107223A38:lI82|H107226A50 -107226A50:lI101|H107229688 -107229688:lI110|H10722BF40 -10722BF40:lI100|H10722E528 -10722E528:lI101|H107230850 -107230850:lI114|H107232918 -107232918:lI101|H1072346B0 -1072346B0:lI114|H107236158 -107236158:lI46|H1072379A0 -1072379A0:lI98|H107238FF8 -107238FF8:lI101|H10723A490 -10723A490:lI97|H10723B7B0 -10723B7B0:lI109|N -1071F2B60:lH1071F4FB0|N -1071F4FB0:lI119|H1071F77E8 -1071F77E8:lI120|H1071FA440 -1071FA440:lI70|H1071FD380 -1071FD380:lI111|H107200438 -107200438:lI110|H1072035E0 -1072035E0:lI116|H107206810 -107206810:lI68|H107209AB8 -107209AB8:lI105|H10720CD18 -10720CD18:lI97|H10720FF28 -10720FF28:lI108|H1072131A8 -1072131A8:lI111|H107216560 -107216560:lI103|H107219B00 -107219B00:lI46|H10721D120 -10721D120:lI98|H1072206E0 -1072206E0:lI101|H107223A18 -107223A18:lI97|H107226A30 -107226A30:lI109|N -1071F2B50:lH1071F4FA0|N -1071F4FA0:lI119|H1071F77D8 -1071F77D8:lI120|H1071FA430 -1071FA430:lI77|H1071FD370 -1071FD370:lI105|H107200428 -107200428:lI110|H1072035D0 -1072035D0:lI105|H107206800 -107206800:lI70|H107209AA8 -107209AA8:lI114|H10720CD08 -10720CD08:lI97|H10720FF18 -10720FF18:lI109|H107213198 -107213198:lI101|H107216550 -107216550:lI46|H107219AF0 -107219AF0:lI98|H10721D110 -10721D110:lI101|H1072206D0 -1072206D0:lI97|H107223A08 -107223A08:lI109|N -1071F2B38:Mn2:H1071F4F80,H1071F4F90 -1071F4F80:lH1071F77B8|N -1071F77B8:lI119|H1071FA410 -1071FA410:lI120|H1071FD350 -1071FD350:lI71|H107200408 -107200408:lI114|H1072035B0 -1072035B0:lI105|H1072067E0 -1072067E0:lI100|H107209A88 -107209A88:lI67|H10720CCE8 -10720CCE8:lI101|H10720FEF8 -10720FEF8:lI108|H107213178 -107213178:lI108|H107216530 -107216530:lI78|H107219AD0 -107219AD0:lI117|H10721D0F0 -10721D0F0:lI109|H1072206B0 -1072206B0:lI98|H1072239E8 -1072239E8:lI101|H107226A10 -107226A10:lI114|H107229658 -107229658:lI69|H10722BF10 -10722BF10:lI100|H10722E508 -10722E508:lI105|H107230830 -107230830:lI116|H1072328F8 -1072328F8:lI111|H107234690 -107234690:lI114|H107236138 -107236138:lI46|H107237990 -107237990:lI98|H107238FE8 -107238FE8:lI101|H10723A480 -10723A480:lI97|H10723B7A0 -10723B7A0:lI109|N -1071F4F90:lH1071F77C8|N -1071F77C8:lI119|H1071FA420 -1071FA420:lI120|H1071FD360 -1071FD360:lI83|H107200418 -107200418:lI99|H1072035C0 -1072035C0:lI114|H1072067F0 -1072067F0:lI111|H107209A98 -107209A98:lI108|H10720CCF8 -10720CCF8:lI108|H10720FF08 -10720FF08:lI69|H107213188 -107213188:lI118|H107216540 -107216540:lI101|H107219AE0 -107219AE0:lI110|H10721D100 -10721D100:lI116|H1072206C0 -1072206C0:lI46|H1072239F8 -1072239F8:lI98|H107226A20 -107226A20:lI101|H107229668 -107229668:lI97|H10722BF20 -10722BF20:lI109|N -1071F2B28:lH1071F4F70|N -1071F4F70:lI119|H1071F77A8 -1071F77A8:lI120|H1071FA400 -1071FA400:lI83|H1071FD340 -1071FD340:lI112|H1072003F8 -1072003F8:lI108|H1072035A0 -1072035A0:lI97|H1072067D0 -1072067D0:lI115|H107209A78 -107209A78:lI104|H10720CCD8 -10720CCD8:lI83|H10720FEE8 -10720FEE8:lI99|H107213168 -107213168:lI114|H107216520 -107216520:lI101|H107219AC0 -107219AC0:lI101|H10721D0E0 -10721D0E0:lI110|H1072206A0 -1072206A0:lI46|H1072239D8 -1072239D8:lI98|H107226A00 -107226A00:lI101|H107229648 -107229648:lI97|H10722BF00 -10722BF00:lI109|N -1071F2B18:lH1071F4F60|N -1071F4F60:lI119|H1071F7798 -1071F7798:lI120|H1071FA3F0 -1071FA3F0:lI80|H1071FD330 -1071FD330:lI97|H1072003E8 -1072003E8:lI105|H107203590 -107203590:lI110|H1072067C0 -1072067C0:lI116|H107209A68 -107209A68:lI68|H10720CCC8 -10720CCC8:lI67|H10720FED8 -10720FED8:lI46|H107213158 -107213158:lI98|H107216510 -107216510:lI101|H107219AB0 -107219AB0:lI97|H10721D0D0 -10721D0D0:lI109|N -1071F2AF8:Mn3:H1071F4F30,H1071F4F40,H1071F4F50 -1071F4F30:lH1071F7768|N -1071F7768:lI119|H1071FA3C0 -1071FA3C0:lI120|H1071FD300 -1071FD300:lI71|H1072003B8 -1072003B8:lI67|H107203560 -107203560:lI68|H107206790 -107206790:lI67|H107209A38 -107209A38:lI46|H10720CC98 -10720CC98:lI98|H10720FEA8 -10720FEA8:lI101|H107213128 -107213128:lI97|H1072164E0 -1072164E0:lI109|N -1071F4F50:lH1071F7788|N -1071F7788:lI119|H1071FA3E0 -1071FA3E0:lI120|H1071FD320 -1071FD320:lI84|H1072003D8 -1072003D8:lI101|H107203580 -107203580:lI120|H1072067B0 -1072067B0:lI116|H107209A58 -107209A58:lI68|H10720CCB8 -10720CCB8:lI97|H10720FEC8 -10720FEC8:lI116|H107213148 -107213148:lI97|H107216500 -107216500:lI79|H107219AA0 -107219AA0:lI98|H10721D0C0 -10721D0C0:lI106|H107220690 -107220690:lI101|H1072239C8 -1072239C8:lI99|H1072269F0 -1072269F0:lI116|H107229638 -107229638:lI46|H10722BEF0 -10722BEF0:lI98|H10722E4F8 -10722E4F8:lI101|H107230820 -107230820:lI97|H1072328E8 -1072328E8:lI109|N -1071F4F40:lH1071F7778|N -1071F7778:lI119|H1071FA3D0 -1071FA3D0:lI120|H1071FD310 -1071FD310:lI71|H1072003C8 -1072003C8:lI114|H107203570 -107203570:lI97|H1072067A0 -1072067A0:lI112|H107209A48 -107209A48:lI104|H10720CCA8 -10720CCA8:lI105|H10720FEB8 -10720FEB8:lI99|H107213138 -107213138:lI115|H1072164F0 -1072164F0:lI66|H107219A90 -107219A90:lI114|H10721D0B0 -10721D0B0:lI117|H107220680 -107220680:lI115|H1072239B8 -1072239B8:lI104|H1072269E0 -1072269E0:lI46|H107229628 -107229628:lI98|H10722BEE0 -10722BEE0:lI101|H10722E4E8 -10722E4E8:lI97|H107230810 -107230810:lI109|N -1071F2AE0:Mn2:H1071F4F10,H1071F4F20 -1071F4F10:lH1071F7748|N -1071F7748:lI119|H1071FA3A0 -1071FA3A0:lI120|H1071FD2E0 -1071FD2E0:lI67|H107200398 -107200398:lI108|H107203540 -107203540:lI105|H107206770 -107206770:lI112|H107209A18 -107209A18:lI98|H10720CC78 -10720CC78:lI111|H10720FE88 -10720FE88:lI97|H107213108 -107213108:lI114|H1072164C0 -1072164C0:lI100|H107219A70 -107219A70:lI46|H10721D090 -10721D090:lI98|H107220660 -107220660:lI101|H107223998 -107223998:lI97|H1072269C0 -1072269C0:lI109|N -1071F4F20:lH1071F7758|N -1071F7758:lI119|H1071FA3B0 -1071FA3B0:lI120|H1071FD2F0 -1071FD2F0:lI77|H1072003A8 -1072003A8:lI101|H107203550 -107203550:lI110|H107206780 -107206780:lI117|H107209A28 -107209A28:lI69|H10720CC88 -10720CC88:lI118|H10720FE98 -10720FE98:lI101|H107213118 -107213118:lI110|H1072164D0 -1072164D0:lI116|H107219A80 -107219A80:lI46|H10721D0A0 -10721D0A0:lI98|H107220670 -107220670:lI101|H1072239A8 -1072239A8:lI97|H1072269D0 -1072269D0:lI109|N -1071F2AC8:Mn2:H1071F4EF0,H1071F4F00 -1071F4EF0:lH1071F7728|N -1071F7728:lI119|H1071FA380 -1071FA380:lI120|H1071FD2C0 -1071FD2C0:lI67|H107200378 -107200378:lI108|H107203520 -107203520:lI111|H107206750 -107206750:lI115|H1072099F8 -1072099F8:lI101|H10720CC58 -10720CC58:lI69|H10720FE68 -10720FE68:lI118|H1072130E8 -1072130E8:lI101|H1072164A0 -1072164A0:lI110|H107219A50 -107219A50:lI116|H10721D070 -10721D070:lI46|H107220640 -107220640:lI98|H107223978 -107223978:lI101|H1072269A0 -1072269A0:lI97|H107229618 -107229618:lI109|N -1071F4F00:lH1071F7738|N -1071F7738:lI119|H1071FA390 -1071FA390:lI120|H1071FD2D0 -1071FD2D0:lI83|H107200388 -107200388:lI112|H107203530 -107203530:lI105|H107206760 -107206760:lI110|H107209A08 -107209A08:lI69|H10720CC68 -10720CC68:lI118|H10720FE78 -10720FE78:lI101|H1072130F8 -1072130F8:lI110|H1072164B0 -1072164B0:lI116|H107219A60 -107219A60:lI46|H10721D080 -10721D080:lI98|H107220650 -107220650:lI101|H107223988 -107223988:lI97|H1072269B0 -1072269B0:lI109|N -1071F2AB0:Mn2:H1071F4ED0,H1071F4EE0 -1071F4ED0:lH1071F7708|N -1071F7708:lI119|H1071FA360 -1071FA360:lI120|H1071FD2A0 -1071FD2A0:lI83|H107200358 -107200358:lI97|H107203500 -107203500:lI115|H107206730 -107206730:lI104|H1072099D8 -1072099D8:lI76|H10720CC38 -10720CC38:lI97|H10720FE48 -10720FE48:lI121|H1072130C8 -1072130C8:lI111|H107216480 -107216480:lI117|H107219A30 -107219A30:lI116|H10721D050 -10721D050:lI87|H107220620 -107220620:lI105|H107223958 -107223958:lI110|H107226990 -107226990:lI100|H107229608 -107229608:lI111|H10722BED0 -10722BED0:lI119|H10722E4D8 -10722E4D8:lI46|H107230800 -107230800:lI98|H1072328D8 -1072328D8:lI101|H107234680 -107234680:lI97|H107236128 -107236128:lI109|N -1071F4EE0:lH1071F7718|N -1071F7718:lI119|H1071FA370 -1071FA370:lI120|H1071FD2B0 -1071FD2B0:lI66|H107200368 -107200368:lI111|H107203510 -107203510:lI120|H107206740 -107206740:lI83|H1072099E8 -1072099E8:lI105|H10720CC48 -10720CC48:lI122|H10720FE58 -10720FE58:lI101|H1072130D8 -1072130D8:lI114|H107216490 -107216490:lI46|H107219A40 -107219A40:lI98|H10721D060 -10721D060:lI101|H107220630 -107220630:lI97|H107223968 -107223968:lI109|N -1071F1000:Mn9:H1071F29E0,H1071F29F0,H1071F2A08,H1071F2A18,H1071F2A28,H1071F2A48,H1071F2A58,H1071F2A68,H1071F2A78 -1071F29E0:lH1071F4DD0|N -1071F4DD0:lI119|H1071F7608 -1071F7608:lI120|H1071FA260 -1071FA260:lI80|H1071FD1A0 -1071FD1A0:lI105|H107200258 -107200258:lI99|H107203400 -107203400:lI107|H107206630 -107206630:lI101|H1072098D8 -1072098D8:lI114|H10720CB38 -10720CB38:lI66|H10720FD48 -10720FD48:lI97|H107212FC8 -107212FC8:lI115|H107216380 -107216380:lI101|H107219930 -107219930:lI46|H10721CF70 -10721CF70:lI98|H107220550 -107220550:lI101|H107223898 -107223898:lI97|H1072268D0 -1072268D0:lI109|N -1071F2A78:Mn3:H1071F4E80,H1071F4E90,H1071F4EA0 -1071F4E80:lH1071F76B8|N -1071F76B8:lI119|H1071FA310 -1071FA310:lI120|H1071FD250 -1071FD250:lI71|H107200308 -107200308:lI114|H1072034B0 -1072034B0:lI105|H1072066E0 -1072066E0:lI100|H107209988 -107209988:lI67|H10720CBE8 -10720CBE8:lI101|H10720FDF8 -10720FDF8:lI108|H107213078 -107213078:lI108|H107216430 -107216430:lI69|H1072199E0 -1072199E0:lI100|H10721D010 -10721D010:lI105|H1072205E0 -1072205E0:lI116|H107223918 -107223918:lI111|H107226950 -107226950:lI114|H1072295C8 -1072295C8:lI46|H10722BEA0 -10722BEA0:lI98|H10722E4A8 -10722E4A8:lI101|H1072307D0 -1072307D0:lI97|H1072328A8 -1072328A8:lI109|N -1071F4EA0:lH1071F76D8|N -1071F76D8:lI119|H1071FA330 -1071FA330:lI120|H1071FD270 -1071FD270:lI71|H107200328 -107200328:lI114|H1072034D0 -1072034D0:lI105|H107206700 -107206700:lI100|H1072099A8 -1072099A8:lI67|H10720CC08 -10720CC08:lI101|H10720FE18 -10720FE18:lI108|H107213098 -107213098:lI108|H107216450 -107216450:lI83|H107219A00 -107219A00:lI116|H10721D030 -10721D030:lI114|H107220600 -107220600:lI105|H107223938 -107223938:lI110|H107226970 -107226970:lI103|H1072295E8 -1072295E8:lI82|H10722BEC0 -10722BEC0:lI101|H10722E4C8 -10722E4C8:lI110|H1072307F0 -1072307F0:lI100|H1072328C8 -1072328C8:lI101|H107234670 -107234670:lI114|H107236118 -107236118:lI101|H107237980 -107237980:lI114|H107238FD8 -107238FD8:lI46|H10723A470 -10723A470:lI98|H10723B790 -10723B790:lI101|H10723C840 -10723C840:lI97|H10723D6D0 -10723D6D0:lI109|N -1071F4E90:lH1071F76C8|N -1071F76C8:lI119|H1071FA320 -1071FA320:lI120|H1071FD260 -1071FD260:lI83|H107200318 -107200318:lI116|H1072034C0 -1072034C0:lI121|H1072066F0 -1072066F0:lI108|H107209998 -107209998:lI101|H10720CBF8 -10720CBF8:lI100|H10720FE08 -10720FE08:lI84|H107213088 -107213088:lI101|H107216440 -107216440:lI120|H1072199F0 -1072199F0:lI116|H10721D020 -10721D020:lI69|H1072205F0 -1072205F0:lI118|H107223928 -107223928:lI101|H107226960 -107226960:lI110|H1072295D8 -1072295D8:lI116|H10722BEB0 -10722BEB0:lI46|H10722E4B8 -10722E4B8:lI98|H1072307E0 -1072307E0:lI101|H1072328B8 -1072328B8:lI97|H107234660 -107234660:lI109|N -1071F2A68:lH1071F4E70|N -1071F4E70:lI119|H1071F76A8 -1071F76A8:lI120|H1071FA300 -1071FA300:lI83|H1071FD240 -1071FD240:lI105|H1072002F8 -1072002F8:lI122|H1072034A0 -1072034A0:lI101|H1072066D0 -1072066D0:lI114|H107209978 -107209978:lI70|H10720CBD8 -10720CBD8:lI108|H10720FDE8 -10720FDE8:lI97|H107213068 -107213068:lI103|H107216420 -107216420:lI115|H1072199D0 -1072199D0:lI46|H10721D000 -10721D000:lI98|H1072205D0 -1072205D0:lI101|H107223908 -107223908:lI97|H107226940 -107226940:lI109|N -1071F2A58:lH1071F4E60|N -1071F4E60:lI119|H1071F7698 -1071F7698:lI120|H1071FA2F0 -1071FA2F0:lI77|H1071FD230 -1071FD230:lI117|H1072002E8 -1072002E8:lI108|H107203490 -107203490:lI116|H1072066C0 -1072066C0:lI105|H107209968 -107209968:lI67|H10720CBC8 -10720CBC8:lI104|H10720FDD8 -10720FDD8:lI111|H107213058 -107213058:lI105|H107216410 -107216410:lI99|H1072199C0 -1072199C0:lI101|H10721CFF0 -10721CFF0:lI68|H1072205C0 -1072205C0:lI105|H1072238F8 -1072238F8:lI97|H107226930 -107226930:lI108|H1072295B8 -1072295B8:lI111|H10722BE90 -10722BE90:lI103|H10722E498 -10722E498:lI46|H1072307C0 -1072307C0:lI98|H107232898 -107232898:lI101|H107234650 -107234650:lI97|H107236108 -107236108:lI109|N -1071F2A48:lH1071F4E50|N -1071F4E50:lI119|H1071F7688 -1071F7688:lI120|H1071FA2E0 -1071FA2E0:lI67|H1071FD220 -1071FD220:lI111|H1072002D8 -1072002D8:lI109|H107203480 -107203480:lI98|H1072066B0 -1072066B0:lI111|H107209958 -107209958:lI66|H10720CBB8 -10720CBB8:lI111|H10720FDC8 -10720FDC8:lI120|H107213048 -107213048:lI46|H107216400 -107216400:lI98|H1072199B0 -1072199B0:lI101|H10721CFE0 -10721CFE0:lI97|H1072205B0 -1072205B0:lI109|N -1071F2A28:Mn3:H1071F4E20,H1071F4E30,H1071F4E40 -1071F4E20:lH1071F7658|N -1071F7658:lI119|H1071FA2B0 -1071FA2B0:lI120|H1071FD1F0 -1071FD1F0:lI80|H1072002A8 -1072002A8:lI97|H107203450 -107203450:lI115|H107206680 -107206680:lI115|H107209928 -107209928:lI119|H10720CB88 -10720CB88:lI111|H10720FD98 -10720FD98:lI114|H107213018 -107213018:lI100|H1072163D0 -1072163D0:lI69|H107219980 -107219980:lI110|H10721CFB0 -10721CFB0:lI116|H107220580 -107220580:lI114|H1072238C8 -1072238C8:lI121|H107226900 -107226900:lI68|H107229588 -107229588:lI105|H10722BE60 -10722BE60:lI97|H10722E478 -10722E478:lI108|H1072307A0 -1072307A0:lI111|H107232878 -107232878:lI103|H107234630 -107234630:lI46|H1072360E8 -1072360E8:lI98|H107237960 -107237960:lI101|H107238FB8 -107238FB8:lI97|H10723A460 -10723A460:lI109|N -1071F4E40:lH1071F7678|N -1071F7678:lI119|H1071FA2D0 -1071FA2D0:lI120|H1071FD210 -1071FD210:lI65|H1072002C8 -1072002C8:lI114|H107203470 -107203470:lI116|H1072066A0 -1072066A0:lI80|H107209948 -107209948:lI114|H10720CBA8 -10720CBA8:lI111|H10720FDB8 -10720FDB8:lI118|H107213038 -107213038:lI105|H1072163F0 -1072163F0:lI100|H1072199A0 -1072199A0:lI101|H10721CFD0 -10721CFD0:lI114|H1072205A0 -1072205A0:lI46|H1072238E8 -1072238E8:lI98|H107226920 -107226920:lI101|H1072295A8 -1072295A8:lI97|H10722BE80 -10722BE80:lI109|N -1071F4E30:lH1071F7668|N -1071F7668:lI119|H1071FA2C0 -1071FA2C0:lI120|H1071FD200 -1071FD200:lI83|H1072002B8 -1072002B8:lI105|H107203460 -107203460:lI110|H107206690 -107206690:lI103|H107209938 -107209938:lI108|H10720CB98 -10720CB98:lI101|H10720FDA8 -10720FDA8:lI67|H107213028 -107213028:lI104|H1072163E0 -1072163E0:lI111|H107219990 -107219990:lI105|H10721CFC0 -10721CFC0:lI99|H107220590 -107220590:lI101|H1072238D8 -1072238D8:lI68|H107226910 -107226910:lI105|H107229598 -107229598:lI97|H10722BE70 -10722BE70:lI108|H10722E488 -10722E488:lI111|H1072307B0 -1072307B0:lI103|H107232888 -107232888:lI46|H107234640 -107234640:lI98|H1072360F8 -1072360F8:lI101|H107237970 -107237970:lI97|H107238FC8 -107238FC8:lI109|N -1071F2A18:lH1071F4E10|N -1071F4E10:lI119|H1071F7648 -1071F7648:lI120|H1071FA2A0 -1071FA2A0:lI95|H1071FD1E0 -1071FD1E0:lI111|H107200298 -107200298:lI98|H107203440 -107203440:lI106|H107206670 -107206670:lI101|H107209918 -107209918:lI99|H10720CB78 -10720CB78:lI116|H10720FD88 -10720FD88:lI46|H107213008 -107213008:lI98|H1072163C0 -1072163C0:lI101|H107219970 -107219970:lI97|H10721CFA0 -10721CFA0:lI109|N -1071F2A08:lH1071F4E00|N -1071F4E00:lI119|H1071F7638 -1071F7638:lI120|H1071FA290 -1071FA290:lI65|H1071FD1D0 -1071FD1D0:lI99|H107200288 -107200288:lI99|H107203430 -107203430:lI101|H107206660 -107206660:lI108|H107209908 -107209908:lI101|H10720CB68 -10720CB68:lI114|H10720FD78 -10720FD78:lI97|H107212FF8 -107212FF8:lI116|H1072163B0 -1072163B0:lI111|H107219960 -107219960:lI114|H10721CF90 -10721CF90:lI69|H107220570 -107220570:lI110|H1072238B8 -1072238B8:lI116|H1072268F0 -1072268F0:lI114|H107229578 -107229578:lI121|H10722BE50 -10722BE50:lI46|H10722E468 -10722E468:lI98|H107230790 -107230790:lI101|H107232868 -107232868:lI97|H107234620 -107234620:lI109|N -1071F29F0:Mn2:H1071F4DE0,H1071F4DF0 -1071F4DE0:lH1071F7618|N -1071F7618:lI119|H1071FA270 -1071FA270:lI120|H1071FD1B0 -1071FD1B0:lI70|H107200268 -107200268:lI114|H107203410 -107203410:lI97|H107206640 -107206640:lI109|H1072098E8 -1072098E8:lI101|H10720CB48 -10720CB48:lI46|H10720FD58 -10720FD58:lI98|H107212FD8 -107212FD8:lI101|H107216390 -107216390:lI97|H107219940 -107219940:lI109|N -1071F4DF0:lH1071F7628|N -1071F7628:lI119|H1071FA280 -1071FA280:lI120|H1071FD1C0 -1071FD1C0:lI67|H107200278 -107200278:lI104|H107203420 -107203420:lI105|H107206650 -107206650:lI108|H1072098F8 -1072098F8:lI100|H10720CB58 -10720CB58:lI70|H10720FD68 -10720FD68:lI111|H107212FE8 -107212FE8:lI99|H1072163A0 -1072163A0:lI117|H107219950 -107219950:lI115|H10721CF80 -10721CF80:lI69|H107220560 -107220560:lI118|H1072238A8 -1072238A8:lI101|H1072268E0 -1072268E0:lI110|H107229568 -107229568:lI116|H10722BE40 -10722BE40:lI46|H10722E458 -10722E458:lI98|H107230780 -107230780:lI101|H107232858 -107232858:lI97|H107234610 -107234610:lI109|N -1071F0FA0:MnB:H1071F28F8,H1071F2908,H1071F2918,H1071F2928,H1071F2938,H1071F2948,H1071F2978,H1071F2990,H1071F29A0,H1071F29B8,H1071F29D0 -1071F28F8:lH1071F4CA8|N -1071F4CA8:lI119|H1071F74D8 -1071F74D8:lI120|H1071FA130 -1071FA130:lI71|H1071FD070 -1071FD070:lI76|H107200128 -107200128:lI67|H1072032D0 -1072032D0:lI111|H107206500 -107206500:lI110|H1072097B8 -1072097B8:lI116|H10720CA18 -10720CA18:lI101|H10720FC28 -10720FC28:lI120|H107212EA8 -107212EA8:lI116|H107216260 -107216260:lI46|H107219810 -107219810:lI98|H10721CE50 -10721CE50:lI101|H107220440 -107220440:lI97|H1072237B8 -1072237B8:lI109|N -1071F29D0:lH1071F4DC0|N -1071F4DC0:lI119|H1071F75F8 -1071F75F8:lI120|H1071FA250 -1071FA250:lI78|H1071FD190 -1071FD190:lI111|H107200248 -107200248:lI116|H1072033F0 -1072033F0:lI101|H107206620 -107206620:lI98|H1072098C8 -1072098C8:lI111|H10720CB28 -10720CB28:lI111|H10720FD38 -10720FD38:lI107|H107212FB8 -107212FB8:lI46|H107216370 -107216370:lI98|H107219920 -107219920:lI101|H10721CF60 -10721CF60:lI97|H107220540 -107220540:lI109|N -1071F29B8:Mn2:H1071F4DA0,H1071F4DB0 -1071F4DA0:lH1071F75D8|N -1071F75D8:lI119|H1071FA230 -1071FA230:lI120|H1071FD170 -1071FD170:lI76|H107200228 -107200228:lI105|H1072033D0 -1072033D0:lI115|H107206600 -107206600:lI116|H1072098A8 -1072098A8:lI69|H10720CB08 -10720CB08:lI118|H10720FD18 -10720FD18:lI101|H107212F98 -107212F98:lI110|H107216350 -107216350:lI116|H107219900 -107219900:lI46|H10721CF40 -10721CF40:lI98|H107220520 -107220520:lI101|H107223878 -107223878:lI97|H1072268B0 -1072268B0:lI109|N -1071F4DB0:lH1071F75E8|N -1071F75E8:lI119|H1071FA240 -1071FA240:lI120|H1071FD180 -1071FD180:lI65|H107200238 -107200238:lI117|H1072033E0 -1072033E0:lI105|H107206610 -107206610:lI77|H1072098B8 -1072098B8:lI97|H10720CB18 -10720CB18:lI110|H10720FD28 -10720FD28:lI97|H107212FA8 -107212FA8:lI103|H107216360 -107216360:lI101|H107219910 -107219910:lI114|H10721CF50 -10721CF50:lI46|H107220530 -107220530:lI98|H107223888 -107223888:lI101|H1072268C0 -1072268C0:lI97|H107229558 -107229558:lI109|N -1071F29A0:Mn2:H1071F4D80,H1071F4D90 -1071F4D80:lH1071F75B8|N -1071F75B8:lI119|H1071FA210 -1071FA210:lI120|H1071FD150 -1071FD150:lI87|H107200208 -107200208:lI105|H1072033B0 -1072033B0:lI110|H1072065E0 -1072065E0:lI100|H107209888 -107209888:lI111|H10720CAE8 -10720CAE8:lI119|H10720FCF8 -10720FCF8:lI46|H107212F78 -107212F78:lI98|H107216330 -107216330:lI101|H1072198E0 -1072198E0:lI97|H10721CF20 -10721CF20:lI109|N -1071F4D90:lH1071F75C8|N -1071F75C8:lI119|H1071FA220 -1071FA220:lI120|H1071FD160 -1071FD160:lI80|H107200218 -107200218:lI97|H1072033C0 -1072033C0:lI108|H1072065F0 -1072065F0:lI101|H107209898 -107209898:lI116|H10720CAF8 -10720CAF8:lI116|H10720FD08 -10720FD08:lI101|H107212F88 -107212F88:lI46|H107216340 -107216340:lI98|H1072198F0 -1072198F0:lI101|H10721CF30 -10721CF30:lI97|H107220510 -107220510:lI109|N -1071F2990:lH1071F4D70|N -1071F4D70:lI119|H1071F75A8 -1071F75A8:lI120|H1071FA200 -1071FA200:lI67|H1071FD140 -1071FD140:lI97|H1072001F8 -1072001F8:lI108|H1072033A0 -1072033A0:lI101|H1072065D0 -1072065D0:lI110|H107209878 -107209878:lI100|H10720CAD8 -10720CAD8:lI97|H10720FCE8 -10720FCE8:lI114|H107212F68 -107212F68:lI68|H107216320 -107216320:lI97|H1072198D0 -1072198D0:lI116|H10721CF10 -10721CF10:lI101|H107220500 -107220500:lI65|H107223868 -107223868:lI116|H1072268A0 -1072268A0:lI116|H107229548 -107229548:lI114|H10722BE30 -10722BE30:lI46|H10722E448 -10722E448:lI98|H107230770 -107230770:lI101|H107232848 -107232848:lI97|H107234600 -107234600:lI109|N -1071F2978:Mn2:H1071F4D50,H1071F4D60 -1071F4D50:lH1071F7588|N -1071F7588:lI119|H1071FA1E0 -1071FA1E0:lI120|H1071FD120 -1071FD120:lI84|H1072001D8 -1072001D8:lI101|H107203380 -107203380:lI120|H1072065B0 -1072065B0:lI116|H107209858 -107209858:lI69|H10720CAB8 -10720CAB8:lI110|H10720FCC8 -10720FCC8:lI116|H107212F48 -107212F48:lI114|H107216300 -107216300:lI121|H1072198B0 -1072198B0:lI68|H10721CEF0 -10721CEF0:lI105|H1072204E0 -1072204E0:lI97|H107223858 -107223858:lI108|H107226890 -107226890:lI111|H107229538 -107229538:lI103|H10722BE20 -10722BE20:lI46|H10722E438 -10722E438:lI98|H107230760 -107230760:lI101|H107232838 -107232838:lI97|H1072345F0 -1072345F0:lI109|N -1071F4D60:lH1071F7598|N -1071F7598:lI119|H1071FA1F0 -1071FA1F0:lI120|H1071FD130 -1071FD130:lI84|H1072001E8 -1072001E8:lI111|H107203390 -107203390:lI111|H1072065C0 -1072065C0:lI108|H107209868 -107209868:lI84|H10720CAC8 -10720CAC8:lI105|H10720FCD8 -10720FCD8:lI112|H107212F58 -107212F58:lI46|H107216310 -107216310:lI98|H1072198C0 -1072198C0:lI101|H10721CF00 -10721CF00:lI97|H1072204F0 -1072204F0:lI109|N -1071F2948:Mn5:H1071F4CF8,H1071F4D10,H1071F4D20,H1071F4D30,H1071F4D40 -1071F4CF8:Mn2:H1071F7528,H1071F7538 -1071F7528:lH1071FA180|N -1071FA180:lI119|H1071FD0C0 -1071FD0C0:lI120|H107200178 -107200178:lI83|H107203320 -107203320:lI116|H107206550 -107206550:lI100|H1072097F8 -1072097F8:lI68|H10720CA58 -10720CA58:lI105|H10720FC68 -10720FC68:lI97|H107212EE8 -107212EE8:lI108|H1072162A0 -1072162A0:lI111|H107219850 -107219850:lI103|H10721CE90 -10721CE90:lI66|H107220480 -107220480:lI117|H1072237F8 -1072237F8:lI116|H107226850 -107226850:lI116|H1072294F8 -1072294F8:lI111|H10722BE00 -10722BE00:lI110|H10722E418 -10722E418:lI83|H107230750 -107230750:lI105|H107232828 -107232828:lI122|H1072345E0 -1072345E0:lI101|H1072360D8 -1072360D8:lI114|H107237950 -107237950:lI46|H107238FA8 -107238FA8:lI98|H10723A450 -10723A450:lI101|H10723B780 -10723B780:lI97|H10723C830 -10723C830:lI109|N -1071F7538:lH1071FA190|N -1071FA190:lI119|H1071FD0D0 -1071FD0D0:lI120|H107200188 -107200188:lI83|H107203330 -107203330:lI116|H107206560 -107206560:lI97|H107209808 -107209808:lI116|H10720CA68 -10720CA68:lI105|H10720FC78 -10720FC78:lI99|H107212EF8 -107212EF8:lI66|H1072162B0 -1072162B0:lI111|H107219860 -107219860:lI120|H10721CEA0 -10721CEA0:lI46|H107220490 -107220490:lI98|H107223808 -107223808:lI101|H107226860 -107226860:lI97|H107229508 -107229508:lI109|N -1071F4D40:lH1071F7578|N -1071F7578:lI119|H1071FA1D0 -1071FA1D0:lI120|H1071FD110 -1071FD110:lI73|H1072001C8 -1072001C8:lI99|H107203370 -107203370:lI111|H1072065A0 -1072065A0:lI110|H107209848 -107209848:lI66|H10720CAA8 -10720CAA8:lI117|H10720FCB8 -10720FCB8:lI110|H107212F38 -107212F38:lI100|H1072162F0 -1072162F0:lI108|H1072198A0 -1072198A0:lI101|H10721CEE0 -10721CEE0:lI46|H1072204D0 -1072204D0:lI98|H107223848 -107223848:lI101|H107226880 -107226880:lI97|H107229528 -107229528:lI109|N -1071F4D30:lH1071F7568|N -1071F7568:lI119|H1071FA1C0 -1071FA1C0:lI120|H1071FD100 -1071FD100:lI84|H1072001B8 -1072001B8:lI114|H107203360 -107203360:lI101|H107206590 -107206590:lI101|H107209838 -107209838:lI67|H10720CA98 -10720CA98:lI116|H10720FCA8 -10720FCA8:lI114|H107212F28 -107212F28:lI108|H1072162E0 -1072162E0:lI46|H107219890 -107219890:lI98|H10721CED0 -10721CED0:lI101|H1072204C0 -1072204C0:lI97|H107223838 -107223838:lI109|N -1071F4D20:lH1071F7558|N -1071F7558:lI119|H1071FA1B0 -1071FA1B0:lI120|H1071FD0F0 -1071FD0F0:lI67|H1072001A8 -1072001A8:lI97|H107203350 -107203350:lI108|H107206580 -107206580:lI101|H107209828 -107209828:lI110|H10720CA88 -10720CA88:lI100|H10720FC98 -10720FC98:lI97|H107212F18 -107212F18:lI114|H1072162D0 -1072162D0:lI67|H107219880 -107219880:lI116|H10721CEC0 -10721CEC0:lI114|H1072204B0 -1072204B0:lI108|H107223828 -107223828:lI46|H107226870 -107226870:lI98|H107229518 -107229518:lI101|H10722BE10 -10722BE10:lI97|H10722E428 -10722E428:lI109|N -1071F4D10:lH1071F7548|N -1071F7548:lI119|H1071FA1A0 -1071FA1A0:lI120|H1071FD0E0 -1071FD0E0:lI82|H107200198 -107200198:lI97|H107203340 -107203340:lI100|H107206570 -107206570:lI105|H107209818 -107209818:lI111|H10720CA78 -10720CA78:lI66|H10720FC88 -10720FC88:lI111|H107212F08 -107212F08:lI120|H1072162C0 -1072162C0:lI46|H107219870 -107219870:lI98|H10721CEB0 -10721CEB0:lI101|H1072204A0 -1072204A0:lI97|H107223818 -107223818:lI109|N -1071F2938:lH1071F4CE8|N -1071F4CE8:lI119|H1071F7518 -1071F7518:lI120|H1071FA170 -1071FA170:lI84|H1071FD0B0 -1071FD0B0:lI97|H107200168 -107200168:lI115|H107203310 -107203310:lI107|H107206540 -107206540:lI66|H1072097E8 -1072097E8:lI97|H10720CA48 -10720CA48:lI114|H10720FC58 -10720FC58:lI73|H107212ED8 -107212ED8:lI99|H107216290 -107216290:lI111|H107219840 -107219840:lI110|H10721CE80 -10721CE80:lI69|H107220470 -107220470:lI118|H1072237E8 -1072237E8:lI101|H107226840 -107226840:lI110|H1072294E8 -1072294E8:lI116|H10722BDF0 -10722BDF0:lI46|H10722E408 -10722E408:lI98|H107230740 -107230740:lI101|H107232818 -107232818:lI97|H1072345D0 -1072345D0:lI109|N -1071F2928:lH1071F4CD8|N -1071F4CD8:lI119|H1071F7508 -1071F7508:lI120|H1071FA160 -1071FA160:lI70|H1071FD0A0 -1071FD0A0:lI105|H107200158 -107200158:lI108|H107203300 -107203300:lI101|H107206530 -107206530:lI80|H1072097D8 -1072097D8:lI105|H10720CA38 -10720CA38:lI99|H10720FC48 -10720FC48:lI107|H107212EC8 -107212EC8:lI101|H107216280 -107216280:lI114|H107219830 -107219830:lI67|H10721CE70 -10721CE70:lI116|H107220460 -107220460:lI114|H1072237D8 -1072237D8:lI108|H107226830 -107226830:lI46|H1072294D8 -1072294D8:lI98|H10722BDE0 -10722BDE0:lI101|H10722E3F8 -10722E3F8:lI97|H107230730 -107230730:lI109|N -1071F2918:lH1071F4CC8|N -1071F4CC8:lI119|H1071F74F8 -1071F74F8:lI120|H1071FA150 -1071FA150:lI80|H1071FD090 -1071FD090:lI97|H107200148 -107200148:lI105|H1072032F0 -1072032F0:lI110|H107206520 -107206520:lI116|H1072097C8 -1072097C8:lI69|H10720CA28 -10720CA28:lI118|H10720FC38 -10720FC38:lI101|H107212EB8 -107212EB8:lI110|H107216270 -107216270:lI116|H107219820 -107219820:lI46|H10721CE60 -10721CE60:lI98|H107220450 -107220450:lI101|H1072237C8 -1072237C8:lI97|H107226820 -107226820:lI109|N -1071F2908:lH1071F4CB8|N -1071F4CB8:lI103|H1071F74E8 -1071F74E8:lI108|H1071FA140 -1071FA140:lI46|H1071FD080 -1071FD080:lI98|H107200138 -107200138:lI101|H1072032E0 -1072032E0:lI97|H107206510 -107206510:lI109|N -1071F0F50:Mn9:H1071F2858,H1071F2868,H1071F2878,H1071F2890,H1071F28A0,H1071F28B0,H1071F28C8,H1071F28D8,H1071F28E8 -1071F2858:lH1071F4BF8|N -1071F4BF8:lI119|H1071F7428 -1071F7428:lI120|H1071FA080 -1071FA080:lI70|H1071FCFC0 -1071FCFC0:lI111|H107200078 -107200078:lI110|H107203220 -107203220:lI116|H107206450 -107206450:lI80|H107209708 -107209708:lI105|H10720C968 -10720C968:lI99|H10720FB78 -10720FB78:lI107|H107212E08 -107212E08:lI101|H1072161C0 -1072161C0:lI114|H107219780 -107219780:lI67|H10721CDD0 -10721CDD0:lI116|H1072203D0 -1072203D0:lI114|H107223758 -107223758:lI108|H1072267D0 -1072267D0:lI46|H107229488 -107229488:lI98|H10722BD90 -10722BD90:lI101|H10722E3A8 -10722E3A8:lI97|H1072306F0 -1072306F0:lI109|N -1071F28E8:lH1071F4C98|N -1071F4C98:lI119|H1071F74C8 -1071F74C8:lI120|H1071FA120 -1071FA120:lI76|H1071FD060 -1071FD060:lI105|H107200118 -107200118:lI115|H1072032C0 -1072032C0:lI116|H1072064F0 -1072064F0:lI66|H1072097A8 -1072097A8:lI111|H10720CA08 -10720CA08:lI120|H10720FC18 -10720FC18:lI46|H107212E98 -107212E98:lI98|H107216250 -107216250:lI101|H107219800 -107219800:lI97|H10721CE40 -10721CE40:lI109|N -1071F28D8:lH1071F4C88|N -1071F4C88:lI119|H1071F74B8 -1071F74B8:lI120|H1071FA110 -1071FA110:lI83|H1071FD050 -1071FD050:lI104|H107200108 -107200108:lI111|H1072032B0 -1072032B0:lI119|H1072064E0 -1072064E0:lI69|H107209798 -107209798:lI118|H10720C9F8 -10720C9F8:lI101|H10720FC08 -10720FC08:lI110|H107212E88 -107212E88:lI116|H107216240 -107216240:lI46|H1072197F0 -1072197F0:lI98|H10721CE30 -10721CE30:lI101|H107220430 -107220430:lI97|H1072237A8 -1072237A8:lI109|N -1071F28C8:lH1071F4C78|N -1071F4C78:lI119|H1071F74A8 -1071F74A8:lI120|H1071FA100 -1071FA100:lI71|H1071FD040 -1071FD040:lI114|H1072000F8 -1072000F8:lI105|H1072032A0 -1072032A0:lI100|H1072064D0 -1072064D0:lI67|H107209788 -107209788:lI101|H10720C9E8 -10720C9E8:lI108|H10720FBF8 -10720FBF8:lI108|H107212E78 -107212E78:lI66|H107216230 -107216230:lI111|H1072197E0 -1072197E0:lI111|H10721CE20 -10721CE20:lI108|H107220420 -107220420:lI69|H107223798 -107223798:lI100|H107226810 -107226810:lI105|H1072294C8 -1072294C8:lI116|H10722BDD0 -10722BDD0:lI111|H10722E3E8 -10722E3E8:lI114|H107230720 -107230720:lI46|H107232808 -107232808:lI98|H1072345C0 -1072345C0:lI101|H1072360C8 -1072360C8:lI97|H107237940 -107237940:lI109|N -1071F28B0:Mn2:H1071F4C58,H1071F4C68 -1071F4C58:lH1071F7488|N -1071F7488:lI119|H1071FA0E0 -1071FA0E0:lI120|H1071FD020 -1071FD020:lI77|H1072000D8 -1072000D8:lI68|H107203280 -107203280:lI73|H1072064B0 -1072064B0:lI67|H107209768 -107209768:lI108|H10720C9C8 -10720C9C8:lI105|H10720FBD8 -10720FBD8:lI101|H107212E58 -107212E58:lI110|H107216210 -107216210:lI116|H1072197C0 -1072197C0:lI87|H10721CE00 -10721CE00:lI105|H107220400 -107220400:lI110|H107223788 -107223788:lI100|H107226800 -107226800:lI111|H1072294B8 -1072294B8:lI119|H10722BDC0 -10722BDC0:lI46|H10722E3D8 -10722E3D8:lI98|H107230710 -107230710:lI101|H1072327F8 -1072327F8:lI97|H1072345B0 -1072345B0:lI109|N -1071F4C68:lH1071F7498|N -1071F7498:lI119|H1071FA0F0 -1071FA0F0:lI120|H1071FD030 -1071FD030:lI68|H1072000E8 -1072000E8:lI105|H107203290 -107203290:lI115|H1072064C0 -1072064C0:lI112|H107209778 -107209778:lI108|H10720C9D8 -10720C9D8:lI97|H10720FBE8 -10720FBE8:lI121|H107212E68 -107212E68:lI46|H107216220 -107216220:lI98|H1072197D0 -1072197D0:lI101|H10721CE10 -10721CE10:lI97|H107220410 -107220410:lI109|N -1071F28A0:lH1071F4C48|N -1071F4C48:lI119|H1071F7478 -1071F7478:lI120|H1071FA0D0 -1071FA0D0:lI66|H1071FD010 -1071FD010:lI105|H1072000C8 -1072000C8:lI116|H107203270 -107203270:lI109|H1072064A0 -1072064A0:lI97|H107209758 -107209758:lI112|H10720C9B8 -10720C9B8:lI46|H10720FBC8 -10720FBC8:lI98|H107212E48 -107212E48:lI101|H107216200 -107216200:lI97|H1072197B0 -1072197B0:lI109|N -1071F2890:lH1071F4C38|N -1071F4C38:lI119|H1071F7468 -1071F7468:lI120|H1071FA0C0 -1071FA0C0:lI80|H1071FD000 -1071FD000:lI101|H1072000B8 -1072000B8:lI110|H107203260 -107203260:lI46|H107206490 -107206490:lI98|H107209748 -107209748:lI101|H10720C9A8 -10720C9A8:lI97|H10720FBB8 -10720FBB8:lI109|N -1071F2878:Mn2:H1071F4C18,H1071F4C28 -1071F4C18:lH1071F7448|N -1071F7448:lI119|H1071FA0A0 -1071FA0A0:lI120|H1071FCFE0 -1071FCFE0:lI71|H107200098 -107200098:lI114|H107203240 -107203240:lI97|H107206470 -107206470:lI112|H107209728 -107209728:lI104|H10720C988 -10720C988:lI105|H10720FB98 -10720FB98:lI99|H107212E28 -107212E28:lI115|H1072161E0 -1072161E0:lI67|H1072197A0 -1072197A0:lI111|H10721CDF0 -10721CDF0:lI110|H1072203F0 -1072203F0:lI116|H107223778 -107223778:lI101|H1072267F0 -1072267F0:lI120|H1072294A8 -1072294A8:lI116|H10722BDB0 -10722BDB0:lI46|H10722E3C8 -10722E3C8:lI98|H107230700 -107230700:lI101|H1072327E8 -1072327E8:lI97|H1072345A0 -1072345A0:lI109|N -1071F4C28:lH1071F7458|N -1071F7458:lI119|H1071FA0B0 -1071FA0B0:lI120|H1071FCFF0 -1071FCFF0:lI77|H1072000A8 -1072000A8:lI97|H107203250 -107203250:lI115|H107206480 -107206480:lI107|H107209738 -107209738:lI46|H10720C998 -10720C998:lI98|H10720FBA8 -10720FBA8:lI101|H107212E38 -107212E38:lI97|H1072161F0 -1072161F0:lI109|N -1071F2868:lH1071F4C08|N -1071F4C08:lI119|H1071F7438 -1071F7438:lI120|H1071FA090 -1071FA090:lI83|H1071FCFD0 -1071FCFD0:lI112|H107200088 -107200088:lI108|H107203230 -107203230:lI105|H107206460 -107206460:lI116|H107209718 -107209718:lI116|H10720C978 -10720C978:lI101|H10720FB88 -10720FB88:lI114|H107212E18 -107212E18:lI69|H1072161D0 -1072161D0:lI118|H107219790 -107219790:lI101|H10721CDE0 -10721CDE0:lI110|H1072203E0 -1072203E0:lI116|H107223768 -107223768:lI46|H1072267E0 -1072267E0:lI98|H107229498 -107229498:lI101|H10722BDA0 -10722BDA0:lI97|H10722E3B8 -10722E3B8:lI109|N -1071F0EF8:MnA:H1071F27A8,H1071F27C0,H1071F27D0,H1071F27E8,H1071F27F8,H1071F2808,H1071F2818,H1071F2828,H1071F2838,H1071F2848 -1071F27A8:Mn2:H1071F4B30,H1071F4B40 -1071F4B30:lH1071F7358|N -1071F7358:lI119|H1071F9FB0 -1071F9FB0:lI120|H1071FCEF0 -1071FCEF0:lI72|H1071FFFA8 -1071FFFA8:lI116|H107203150 -107203150:lI109|H107206380 -107206380:lI108|H107209638 -107209638:lI87|H10720C898 -10720C898:lI105|H10720FAA8 -10720FAA8:lI110|H107212D38 -107212D38:lI100|H1072160F0 -1072160F0:lI111|H1072196C0 -1072196C0:lI119|H10721CD30 -10721CD30:lI46|H107220330 -107220330:lI98|H1072236D8 -1072236D8:lI101|H107226750 -107226750:lI97|H107229418 -107229418:lI109|N -1071F4B40:lH1071F7368|N -1071F7368:lI119|H1071F9FC0 -1071F9FC0:lI120|H1071FCF00 -1071FCF00:lI67|H1071FFFB8 -1071FFFB8:lI97|H107203160 -107203160:lI114|H107206390 -107206390:lI101|H107209648 -107209648:lI116|H10720C8A8 -10720C8A8:lI46|H10720FAB8 -10720FAB8:lI98|H107212D48 -107212D48:lI101|H107216100 -107216100:lI97|H1072196D0 -1072196D0:lI109|N -1071F2848:lH1071F4BE8|N -1071F4BE8:lI119|H1071F7418 -1071F7418:lI120|H1071FA070 -1071FA070:lI101|H1071FCFB0 -1071FCFB0:lI95|H107200068 -107200068:lI109|H107203210 -107203210:lI97|H107206440 -107206440:lI115|H1072096F8 -1072096F8:lI116|H10720C958 -10720C958:lI101|H10720FB68 -10720FB68:lI114|H107212DF8 -107212DF8:lI46|H1072161B0 -1072161B0:lI98|H107219770 -107219770:lI101|H10721CDC0 -10721CDC0:lI97|H1072203C0 -1072203C0:lI109|N -1071F2838:Mn1:H1071F4BD0 -1071F4BD0:Mn2:H1071F73F8,H1071F7408 -1071F73F8:lH1071FA050|N -1071FA050:lI119|H1071FCF90 -1071FCF90:lI120|H107200048 -107200048:lI65|H1072031F0 -1072031F0:lI117|H107206420 -107206420:lI105|H1072096D8 -1072096D8:lI78|H10720C938 -10720C938:lI111|H10720FB48 -10720FB48:lI116|H107212DD8 -107212DD8:lI101|H107216190 -107216190:lI98|H107219750 -107219750:lI111|H10721CDA0 -10721CDA0:lI111|H1072203A0 -1072203A0:lI107|H107223738 -107223738:lI46|H1072267B0 -1072267B0:lI98|H107229468 -107229468:lI101|H10722BD70 -10722BD70:lI97|H10722E388 -10722E388:lI109|N -1071F7408:lH1071FA060|N -1071FA060:lI119|H1071FCFA0 -1071FCFA0:lI120|H107200058 -107200058:lI85|H107203200 -107203200:lI112|H107206430 -107206430:lI100|H1072096E8 -1072096E8:lI97|H10720C948 -10720C948:lI116|H10720FB58 -10720FB58:lI101|H107212DE8 -107212DE8:lI85|H1072161A0 -1072161A0:lI73|H107219760 -107219760:lI69|H10721CDB0 -10721CDB0:lI118|H1072203B0 -1072203B0:lI101|H107223748 -107223748:lI110|H1072267C0 -1072267C0:lI116|H107229478 -107229478:lI46|H10722BD80 -10722BD80:lI98|H10722E398 -10722E398:lI101|H1072306E0 -1072306E0:lI97|H1072327D8 -1072327D8:lI109|N -1071F2828:lH1071F4BC0|N -1071F4BC0:lI119|H1071F73E8 -1071F73E8:lI120|H1071FA040 -1071FA040:lI101|H1071FCF80 -1071FCF80:lI95|H107200038 -107200038:lI115|H1072031E0 -1072031E0:lI101|H107206410 -107206410:lI114|H1072096C8 -1072096C8:lI118|H10720C928 -10720C928:lI101|H10720FB38 -10720FB38:lI114|H107212DC8 -107212DC8:lI46|H107216180 -107216180:lI98|H107219740 -107219740:lI101|H10721CD90 -10721CD90:lI97|H107220390 -107220390:lI109|N -1071F2818:lH1071F4BB0|N -1071F4BB0:lI119|H1071F73D8 -1071F73D8:lI120|H1071FA030 -1071FA030:lI67|H1071FCF70 -1071FCF70:lI111|H107200028 -107200028:lI109|H1072031D0 -1072031D0:lI109|H107206400 -107206400:lI97|H1072096B8 -1072096B8:lI110|H10720C918 -10720C918:lI100|H10720FB28 -10720FB28:lI69|H107212DB8 -107212DB8:lI118|H107216170 -107216170:lI101|H107219730 -107219730:lI110|H10721CD80 -10721CD80:lI116|H107220380 -107220380:lI46|H107223728 -107223728:lI98|H1072267A0 -1072267A0:lI101|H107229458 -107229458:lI97|H10722BD60 -10722BD60:lI109|N -1071F2808:lH1071F4BA0|N -1071F4BA0:lI119|H1071F73C8 -1071F73C8:lI120|H1071FA020 -1071FA020:lI67|H1071FCF60 -1071FCF60:lI104|H107200018 -107200018:lI111|H1072031C0 -1072031C0:lI105|H1072063F0 -1072063F0:lI99|H1072096A8 -1072096A8:lI101|H10720C908 -10720C908:lI46|H10720FB18 -10720FB18:lI98|H107212DA8 -107212DA8:lI101|H107216160 -107216160:lI97|H107219720 -107219720:lI109|N -1071F27F8:lH1071F4B90|N -1071F4B90:lI119|H1071F73B8 -1071F73B8:lI120|H1071FA010 -1071FA010:lI71|H1071FCF50 -1071FCF50:lI114|H107200008 -107200008:lI105|H1072031B0 -1072031B0:lI100|H1072063E0 -1072063E0:lI66|H107209698 -107209698:lI97|H10720C8F8 -10720C8F8:lI103|H10720FB08 -10720FB08:lI83|H107212D98 -107212D98:lI105|H107216150 -107216150:lI122|H107219710 -107219710:lI101|H10721CD70 -10721CD70:lI114|H107220370 -107220370:lI46|H107223718 -107223718:lI98|H107226790 -107226790:lI101|H107229448 -107229448:lI97|H10722BD50 -10722BD50:lI109|N -1071F27E8:lH1071F4B80|N -1071F4B80:lI119|H1071F73A8 -1071F73A8:lI120|H1071FA000 -1071FA000:lI71|H1071FCF40 -1071FCF40:lI97|H1071FFFF8 -1071FFFF8:lI117|H1072031A0 -1072031A0:lI103|H1072063D0 -1072063D0:lI101|H107209688 -107209688:lI46|H10720C8E8 -10720C8E8:lI98|H10720FAF8 -10720FAF8:lI101|H107212D88 -107212D88:lI97|H107216140 -107216140:lI109|N -1071F27D0:Mn2:H1071F4B60,H1071F4B70 -1071F4B60:lH1071F7388|N -1071F7388:lI119|H1071F9FE0 -1071F9FE0:lI120|H1071FCF20 -1071FCF20:lI72|H1071FFFD8 -1071FFFD8:lI101|H107203180 -107203180:lI108|H1072063B0 -1072063B0:lI112|H107209668 -107209668:lI69|H10720C8C8 -10720C8C8:lI118|H10720FAD8 -10720FAD8:lI101|H107212D68 -107212D68:lI110|H107216120 -107216120:lI116|H1072196F0 -1072196F0:lI46|H10721CD50 -10721CD50:lI98|H107220350 -107220350:lI101|H1072236F8 -1072236F8:lI97|H107226770 -107226770:lI109|N -1071F4B70:lH1071F7398|N -1071F7398:lI119|H1071F9FF0 -1071F9FF0:lI120|H1071FCF30 -1071FCF30:lI67|H1071FFFE8 -1071FFFE8:lI104|H107203190 -107203190:lI101|H1072063C0 -1072063C0:lI99|H107209678 -107209678:lI107|H10720C8D8 -10720C8D8:lI76|H10720FAE8 -10720FAE8:lI105|H107212D78 -107212D78:lI115|H107216130 -107216130:lI116|H107219700 -107219700:lI66|H10721CD60 -10721CD60:lI111|H107220360 -107220360:lI120|H107223708 -107223708:lI46|H107226780 -107226780:lI98|H107229438 -107229438:lI101|H10722BD40 -10722BD40:lI97|H10722E378 -10722E378:lI109|N -1071F27C0:lH1071F4B50|N -1071F4B50:lI119|H1071F7378 -1071F7378:lI120|H1071F9FD0 -1071F9FD0:lI80|H1071FCF10 -1071FCF10:lI114|H1071FFFC8 -1071FFFC8:lI105|H107203170 -107203170:lI110|H1072063A0 -1072063A0:lI116|H107209658 -107209658:lI68|H10720C8B8 -10720C8B8:lI105|H10720FAC8 -10720FAC8:lI97|H107212D58 -107212D58:lI108|H107216110 -107216110:lI111|H1072196E0 -1072196E0:lI103|H10721CD40 -10721CD40:lI46|H107220340 -107220340:lI98|H1072236E8 -1072236E8:lI101|H107226760 -107226760:lI97|H107229428 -107229428:lI109|N -1071F02B8:lI47|H1071F0E78 -1071F0E78:lI111|H1071F2698 -1071F2698:lI112|H1071F49F0 -1071F49F0:lI116|H1071F7218 -1071F7218:lI47|H1071F9E70 -1071F9E70:lI104|H1071FCDB0 -1071FCDB0:lI111|H1071FFE68 -1071FFE68:lI109|H107203010 -107203010:lI101|H107206240 -107206240:lI98|H1072094F8 -1072094F8:lI114|H10720C758 -10720C758:lI101|H10720F968 -10720F968:lI119|H107212BF8 -107212BF8:lI47|H107215FC0 -107215FC0:lI67|H1072195A0 -1072195A0:lI101|H10721CC10 -10721CC10:lI108|H107220220 -107220220:lI108|H1072235C8 -1072235C8:lI97|H107226660 -107226660:lI114|H107229358 -107229358:lI47|H10722BCA0 -10722BCA0:lI101|H10722E2E8 -10722E2E8:lI114|H107230670 -107230670:lI108|H107232768 -107232768:lI97|H107234560 -107234560:lI110|H107236088 -107236088:lI103|H107237900 -107237900:lI47|H107238F78 -107238F78:lI50|H10723A430 -10723A430:lI54|H10723B760 -10723B760:lI46|H10723C820 -10723C820:lI48|H10723D6C0 -10723D6C0:lI46|H10723E440 -10723E440:lI50|H10723F050 -10723F050:lI47|H10723FB20 -10723FB20:lI108|H107240470 -107240470:lI105|H107240CF0 -107240CF0:lI98|H107241480 -107241480:lI47|H107241BB0 -107241BB0:lI101|H107242280 -107242280:lI114|H1072428F0 -1072428F0:lI108|H107242EF0 -107242EF0:lI97|H107243460 -107243460:lI110|H1072439A0 -1072439A0:lI103|H107243E90 -107243E90:lI47|H107244380 -107244380:lI108|H107244830 -107244830:lI105|H107244CA0 -107244CA0:lI98|H107245100 -107245100:lI47|H107245550 -107245550:lI119|H107245950 -107245950:lI120|H107245D10 -107245D10:lI45|H1072460A0 -1072460A0:lI50|H107246430 -107246430:lI46|H1072467C0 -1072467C0:lI51|H107246B50 -107246B50:lI47|H280052C20 -10724AF50:lH10724AFC0|H10724AFD8 -10724AFC0:t2:H1071F0378,H1071F0388 -1071F0388:Mf10:H1071F1440:N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N -1071F1440:t10:H1071F3338,H1071F3348,H1071F3358,H1071F3368,H1071F3378,H1071F3388,H1071F3398,H1071F33A8,H1071F33B8,H1071F33C8,H1071F33D8,H1071F33E8,H1071F33F8,H1071F3408,H1071F3418,H1071F3428 -1071F3428:lI120|H1071F5A10 -1071F5A10:lI114|H1071F8278 -1071F8278:lI101|H1071FAED0 -1071FAED0:lI102|H1071FDE10 -1071FDE10:lI95|H107200EC8 -107200EC8:lI117|H107204070 -107204070:lI116|H1072072A0 -1072072A0:lI105|H10720A528 -10720A528:lI108|H10720D738 -10720D738:lI115|H1072108E8 -1072108E8:lI46|H107213B48 -107213B48:lI98|H107216F00 -107216F00:lI101|H10721A470 -10721A470:lI97|H10721DA20 -10721DA20:lI109|N -1071F3418:lI120|H1071F5A00 -1071F5A00:lI114|H1071F8268 -1071F8268:lI101|H1071FAEC0 -1071FAEC0:lI102|H1071FDE00 -1071FDE00:lI95|H107200EB8 -107200EB8:lI115|H107204060 -107204060:lI99|H107207290 -107207290:lI97|H10720A518 -10720A518:lI110|H10720D728 -10720D728:lI110|H1072108D8 -1072108D8:lI101|H107213B38 -107213B38:lI114|H107216EF0 -107216EF0:lI46|H10721A460 -10721A460:lI98|H10721DA10 -10721DA10:lI101|H107220F60 -107220F60:lI97|H1072241A8 -1072241A8:lI109|N -1071F3408:lI120|H1071F59F0 -1071F59F0:lI114|H1071F8258 -1071F8258:lI101|H1071FAEB0 -1071FAEB0:lI102|H1071FDDF0 -1071FDDF0:lI95|H107200EA8 -107200EA8:lI114|H107204050 -107204050:lI101|H107207280 -107207280:lI97|H10720A508 -10720A508:lI100|H10720D718 -10720D718:lI101|H1072108C8 -1072108C8:lI114|H107213B28 -107213B28:lI46|H107216EE0 -107216EE0:lI98|H10721A450 -10721A450:lI101|H10721DA00 -10721DA00:lI97|H107220F50 -107220F50:lI109|N -1071F33F8:lI120|H1071F59E0 -1071F59E0:lI114|H1071F8248 -1071F8248:lI101|H1071FAEA0 -1071FAEA0:lI102|H1071FDDE0 -1071FDDE0:lI95|H107200E98 -107200E98:lI112|H107204040 -107204040:lI97|H107207270 -107207270:lI114|H10720A4F8 -10720A4F8:lI115|H10720D708 -10720D708:lI101|H1072108B8 -1072108B8:lI114|H107213B18 -107213B18:lI46|H107216ED0 -107216ED0:lI98|H10721A440 -10721A440:lI101|H10721D9F0 -10721D9F0:lI97|H107220F40 -107220F40:lI109|N -1071F33E8:lI120|H1071F59D0 -1071F59D0:lI114|H1071F8238 -1071F8238:lI101|H1071FAE90 -1071FAE90:lI102|H1071FDDD0 -1071FDDD0:lI95|H107200E88 -107200E88:lI99|H107204030 -107204030:lI111|H107207260 -107207260:lI109|H10720A4E8 -10720A4E8:lI112|H10720D6F8 -10720D6F8:lI105|H1072108A8 -1072108A8:lI108|H107213B08 -107213B08:lI101|H107216EC0 -107216EC0:lI114|H10721A430 -10721A430:lI46|H10721D9E0 -10721D9E0:lI98|H107220F30 -107220F30:lI101|H107224198 -107224198:lI97|H1072270E0 -1072270E0:lI109|N -1071F33D8:lI120|H1071F59C0 -1071F59C0:lI114|H1071F8228 -1071F8228:lI101|H1071FAE80 -1071FAE80:lI102|H1071FDDC0 -1071FDDC0:lI95|H107200E78 -107200E78:lI98|H107204020 -107204020:lI97|H107207250 -107207250:lI115|H10720A4D8 -10720A4D8:lI101|H10720D6E8 -10720D6E8:lI46|H107210898 -107210898:lI98|H107213AF8 -107213AF8:lI101|H107216EB0 -107216EB0:lI97|H10721A420 -10721A420:lI109|N -1071F33C8:lI120|H1071F59B0 -1071F59B0:lI114|H1071F8218 -1071F8218:lI101|H1071FAE70 -1071FAE70:lI102|H1071FDDB0 -1071FDDB0:lI46|H107200E68 -107200E68:lI98|H107204010 -107204010:lI101|H107207240 -107207240:lI97|H10720A4C8 -10720A4C8:lI109|N -1071F33B8:lI116|H1071F59A0 -1071F59A0:lI111|H1071F8208 -1071F8208:lI111|H1071FAE60 -1071FAE60:lI108|H1071FDDA0 -1071FDDA0:lI115|H107200E58 -107200E58:lI46|H107204000 -107204000:lI97|H107207230 -107207230:lI112|H10720A4B8 -10720A4B8:lI112|H10720D6D8 -10720D6D8:lI117|H107210888 -107210888:lI112|N -1071F33A8:lI116|H1071F5990 -1071F5990:lI111|H1071F81F8 -1071F81F8:lI111|H1071FAE50 -1071FAE50:lI108|H1071FDD90 -1071FDD90:lI115|H107200E48 -107200E48:lI46|H107203FF0 -107203FF0:lI97|H107207220 -107207220:lI112|H10720A4A8 -10720A4A8:lI112|N -1071F3398:lI116|H1071F5980 -1071F5980:lI97|H1071F81E8 -1071F81E8:lI103|H1071FAE40 -1071FAE40:lI115|H1071FDD80 -1071FDD80:lI46|H107200E38 -107200E38:lI98|H107203FE0 -107203FE0:lI101|H107207210 -107207210:lI97|H10720A498 -10720A498:lI109|N -1071F3388:lI109|H1071F5970 -1071F5970:lI97|H1071F81D8 -1071F81D8:lI107|H1071FAE30 -1071FAE30:lI101|H1071FDD70 -1071FDD70:lI46|H107200E28 -107200E28:lI98|H107203FD0 -107203FD0:lI101|H107207200 -107207200:lI97|H10720A488 -10720A488:lI109|N -1071F3378:lI108|H1071F5960 -1071F5960:lI99|H1071F81C8 -1071F81C8:lI110|H1071FAE20 -1071FAE20:lI116|H1071FDD60 -1071FDD60:lI46|H107200E18 -107200E18:lI98|H107203FC0 -107203FC0:lI101|H1072071F0 -1072071F0:lI97|H10720A478 -10720A478:lI109|N -1071F3368:lI102|H1071F5950 -1071F5950:lI112|H1071F81B8 -1071F81B8:lI114|H1071FAE10 -1071FAE10:lI111|H1071FDD50 -1071FDD50:lI102|H107200E08 -107200E08:lI46|H107203FB0 -107203FB0:lI98|H1072071E0 -1072071E0:lI101|H10720A468 -10720A468:lI97|H10720D6C8 -10720D6C8:lI109|N -1071F3358:lI101|H1071F5940 -1071F5940:lI112|H1071F81A8 -1071F81A8:lI114|H1071FAE00 -1071FAE00:lI111|H1071FDD40 -1071FDD40:lI102|H107200DF8 -107200DF8:lI46|H107203FA0 -107203FA0:lI98|H1072071D0 -1072071D0:lI101|H10720A458 -10720A458:lI97|H10720D6B8 -10720D6B8:lI109|N -1071F3348:lI99|H1071F5930 -1071F5930:lI112|H1071F8198 -1071F8198:lI114|H1071FADF0 -1071FADF0:lI111|H1071FDD30 -1071FDD30:lI102|H107200DE8 -107200DE8:lI46|H107203F90 -107203F90:lI98|H1072071C0 -1072071C0:lI101|H10720A448 -10720A448:lI97|H10720D6A8 -10720D6A8:lI109|N -1071F3338:lI99|H1071F5920 -1071F5920:lI111|H1071F8188 -1071F8188:lI118|H1071FADE0 -1071FADE0:lI101|H1071FDD20 -1071FDD20:lI114|H107200DD8 -107200DD8:lI46|H107203F80 -107203F80:lI98|H1072071B0 -1072071B0:lI101|H10720A438 -10720A438:lI97|H10720D698 -10720D698:lI109|N -1071F0378:lI47|H1071F1430 -1071F1430:lI111|H1071F3328 -1071F3328:lI112|H1071F5910 -1071F5910:lI116|H1071F8178 -1071F8178:lI47|H1071FADD0 -1071FADD0:lI104|H1071FDD10 -1071FDD10:lI111|H107200DC8 -107200DC8:lI109|H107203F70 -107203F70:lI101|H1072071A0 -1072071A0:lI98|H10720A428 -10720A428:lI114|H10720D688 -10720D688:lI101|H107210878 -107210878:lI119|H107213AE8 -107213AE8:lI47|H107216EA0 -107216EA0:lI67|H10721A410 -10721A410:lI101|H10721D9D0 -10721D9D0:lI108|H107220F20 -107220F20:lI108|H107224188 -107224188:lI97|H1072270D0 -1072270D0:lI114|H107229C38 -107229C38:lI47|H10722C460 -10722C460:lI101|H10722E9A8 -10722E9A8:lI114|H107230C20 -107230C20:lI108|H107232C18 -107232C18:lI97|H1072348F0 -1072348F0:lI110|H107236328 -107236328:lI103|H107237AF0 -107237AF0:lI47|H107239108 -107239108:lI50|H10723A5A0 -10723A5A0:lI54|H10723B860 -10723B860:lI46|H10723C8B0 -10723C8B0:lI48|H10723D720 -10723D720:lI46|H10723E480 -10723E480:lI50|H10723F090 -10723F090:lI47|H10723FB50 -10723FB50:lI108|H1072404A0 -1072404A0:lI105|H107240D20 -107240D20:lI98|H1072414B0 -1072414B0:lI47|H107241BE0 -107241BE0:lI101|H1072422B0 -1072422B0:lI114|H107242920 -107242920:lI108|H107242F20 -107242F20:lI97|H107243490 -107243490:lI110|H1072439D0 -1072439D0:lI103|H107243EC0 -107243EC0:lI47|H1072443B0 -1072443B0:lI108|H107244860 -107244860:lI105|H107244CD0 -107244CD0:lI98|H107245130 -107245130:lI47|H107245580 -107245580:lI116|H107245980 -107245980:lI111|H107245D40 -107245D40:lI111|H1072460D0 -1072460D0:lI108|H107246460 -107246460:lI115|H1072467F0 -1072467F0:lI45|H107246B80 -107246B80:lI51|H107246EB0 -107246EB0:lI46|H1072471D0 -1072471D0:lI54|H1072474F0 -1072474F0:lI47|H280052C20 -10724AFD8:lH10724B048|H10724B060 -10724B048:t2:H1071F0440,H1071F0450 -1071F0450:MfA:H1071F14F8:N,N,N,N,N,N,N,N,N,N -1071F14F8:tA:H1071F3468,H1071F3478,H1071F3488,H1071F3498,H1071F34A8,H1071F34B8,H1071F34C8,H1071F34D8,H1071F34E8,H1071F34F8 -1071F34F8:lI116|H1071F5AE0 -1071F5AE0:lI102|H1071F8348 -1071F8348:lI116|H1071FAFA0 -1071FAFA0:lI112|H1071FDEE0 -1071FDEE0:lI95|H107200F98 -107200F98:lI115|H107204140 -107204140:lI117|H107207370 -107207370:lI112|H10720A5E8 -10720A5E8:lI46|H10720D7E8 -10720D7E8:lI98|H107210988 -107210988:lI101|H107213BE8 -107213BE8:lI97|H107216FA0 -107216FA0:lI109|N -1071F34E8:lI116|H1071F5AD0 -1071F5AD0:lI102|H1071F8338 -1071F8338:lI116|H1071FAF90 -1071FAF90:lI112|H1071FDED0 -1071FDED0:lI95|H107200F88 -107200F88:lI108|H107204130 -107204130:lI111|H107207360 -107207360:lI103|H10720A5D8 -10720A5D8:lI103|H10720D7D8 -10720D7D8:lI101|H107210978 -107210978:lI114|H107213BD8 -107213BD8:lI46|H107216F90 -107216F90:lI98|H10721A4E0 -10721A4E0:lI101|H10721DA80 -10721DA80:lI97|H107220FC0 -107220FC0:lI109|N -1071F34D8:lI116|H1071F5AC0 -1071F5AC0:lI102|H1071F8328 -1071F8328:lI116|H1071FAF80 -1071FAF80:lI112|H1071FDEC0 -1071FDEC0:lI95|H107200F78 -107200F78:lI108|H107204120 -107204120:lI105|H107207350 -107207350:lI98|H10720A5C8 -10720A5C8:lI46|H10720D7C8 -10720D7C8:lI98|H107210968 -107210968:lI101|H107213BC8 -107213BC8:lI97|H107216F80 -107216F80:lI109|N -1071F34C8:lI116|H1071F5AB0 -1071F5AB0:lI102|H1071F8318 -1071F8318:lI116|H1071FAF70 -1071FAF70:lI112|H1071FDEB0 -1071FDEB0:lI95|H107200F68 -107200F68:lI102|H107204110 -107204110:lI105|H107207340 -107207340:lI108|H10720A5B8 -10720A5B8:lI101|H10720D7B8 -10720D7B8:lI46|H107210958 -107210958:lI98|H107213BB8 -107213BB8:lI101|H107216F70 -107216F70:lI97|H10721A4D0 -10721A4D0:lI109|N -1071F34B8:lI116|H1071F5AA0 -1071F5AA0:lI102|H1071F8308 -1071F8308:lI116|H1071FAF60 -1071FAF60:lI112|H1071FDEA0 -1071FDEA0:lI95|H107200F58 -107200F58:lI101|H107204100 -107204100:lI110|H107207330 -107207330:lI103|H10720A5A8 -10720A5A8:lI105|H10720D7A8 -10720D7A8:lI110|H107210948 -107210948:lI101|H107213BA8 -107213BA8:lI46|H107216F60 -107216F60:lI98|H10721A4C0 -10721A4C0:lI101|H10721DA70 -10721DA70:lI97|H107220FB0 -107220FB0:lI109|N -1071F34A8:lI116|H1071F5A90 -1071F5A90:lI102|H1071F82F8 -1071F82F8:lI116|H1071FAF50 -1071FAF50:lI112|H1071FDE90 -1071FDE90:lI95|H107200F48 -107200F48:lI98|H1072040F0 -1072040F0:lI105|H107207320 -107207320:lI110|H10720A598 -10720A598:lI97|H10720D798 -10720D798:lI114|H107210938 -107210938:lI121|H107213B98 -107213B98:lI46|H107216F50 -107216F50:lI98|H10721A4B0 -10721A4B0:lI101|H10721DA60 -10721DA60:lI97|H107220FA0 -107220FA0:lI109|N -1071F3498:lI116|H1071F5A80 -1071F5A80:lI102|H1071F82E8 -1071F82E8:lI116|H1071FAF40 -1071FAF40:lI112|H1071FDE80 -1071FDE80:lI95|H107200F38 -107200F38:lI97|H1072040E0 -1072040E0:lI112|H107207310 -107207310:lI112|H10720A588 -10720A588:lI46|H10720D788 -10720D788:lI98|H107210928 -107210928:lI101|H107213B88 -107213B88:lI97|H107216F40 -107216F40:lI109|N -1071F3488:lI116|H1071F5A70 -1071F5A70:lI102|H1071F82D8 -1071F82D8:lI116|H1071FAF30 -1071FAF30:lI112|H1071FDE70 -1071FDE70:lI46|H107200F28 -107200F28:lI98|H1072040D0 -1072040D0:lI101|H107207300 -107207300:lI97|H10720A578 -10720A578:lI109|N -1071F3478:lI116|H1071F5A60 -1071F5A60:lI102|H1071F82C8 -1071F82C8:lI116|H1071FAF20 -1071FAF20:lI112|H1071FDE60 -1071FDE60:lI46|H107200F18 -107200F18:lI97|H1072040C0 -1072040C0:lI112|H1072072F0 -1072072F0:lI112|H10720A568 -10720A568:lI117|H10720D778 -10720D778:lI112|N -1071F3468:lI116|H1071F5A50 -1071F5A50:lI102|H1071F82B8 -1071F82B8:lI116|H1071FAF10 -1071FAF10:lI112|H1071FDE50 -1071FDE50:lI46|H107200F08 -107200F08:lI97|H1072040B0 -1072040B0:lI112|H1072072E0 -1072072E0:lI112|N -1071F0440:lI47|H1071F14E8 -1071F14E8:lI111|H1071F3458 -1071F3458:lI112|H1071F5A40 -1071F5A40:lI116|H1071F82A8 -1071F82A8:lI47|H1071FAF00 -1071FAF00:lI104|H1071FDE40 -1071FDE40:lI111|H107200EF8 -107200EF8:lI109|H1072040A0 -1072040A0:lI101|H1072072D0 -1072072D0:lI98|H10720A558 -10720A558:lI114|H10720D768 -10720D768:lI101|H107210918 -107210918:lI119|H107213B78 -107213B78:lI47|H107216F30 -107216F30:lI67|H10721A4A0 -10721A4A0:lI101|H10721DA50 -10721DA50:lI108|H107220F90 -107220F90:lI108|H1072241D8 -1072241D8:lI97|H107227110 -107227110:lI114|H107229C68 -107229C68:lI47|H10722C490 -10722C490:lI101|H10722E9D8 -10722E9D8:lI114|H107230C50 -107230C50:lI108|H107232C48 -107232C48:lI97|H107234920 -107234920:lI110|H107236358 -107236358:lI103|H107237B20 -107237B20:lI47|H107239138 -107239138:lI50|H10723A5D0 -10723A5D0:lI54|H10723B890 -10723B890:lI46|H10723C8E0 -10723C8E0:lI48|H10723D750 -10723D750:lI46|H10723E4B0 -10723E4B0:lI50|H10723F0C0 -10723F0C0:lI47|H10723FB80 -10723FB80:lI108|H1072404D0 -1072404D0:lI105|H107240D50 -107240D50:lI98|H1072414E0 -1072414E0:lI47|H107241C10 -107241C10:lI101|H1072422E0 -1072422E0:lI114|H107242950 -107242950:lI108|H107242F50 -107242F50:lI97|H1072434C0 -1072434C0:lI110|H107243A00 -107243A00:lI103|H107243EF0 -107243EF0:lI47|H1072443E0 -1072443E0:lI108|H107244890 -107244890:lI105|H107244D00 -107244D00:lI98|H107245160 -107245160:lI47|H1072455B0 -1072455B0:lI116|H1072459B0 -1072459B0:lI102|H107245D70 -107245D70:lI116|H107246100 -107246100:lI112|H107246490 -107246490:lI45|H107246820 -107246820:lI49|H107246BB0 -107246BB0:lI46|H107246EE0 -107246EE0:lI49|H107247200 -107247200:lI47|H280052C20 -10724B060:lH10724B0D0|H10724B0E8 -10724B0D0:t2:H1071F04B8,H1071F04C8 -1071F04C8:MfB:H1071F1560:N,N,N,N,N,N,N,N,N,N,N -1071F1560:tB:H1071F3518,H1071F3528,H1071F3538,H1071F3548,H1071F3558,H1071F3568,H1071F3578,H1071F3588,H1071F3598,H1071F35A8,H1071F35B8 -1071F35B8:lI115|H1071F5BA0 -1071F5BA0:lI121|H1071F8408 -1071F8408:lI110|H1071FB060 -1071FB060:lI116|H1071FDFA0 -1071FDFA0:lI97|H107201058 -107201058:lI120|H107204200 -107204200:lI95|H107207430 -107207430:lI116|H10720A6A8 -10720A6A8:lI111|H10720D898 -10720D898:lI111|H107210A38 -107210A38:lI108|H107213C98 -107213C98:lI115|H107217050 -107217050:lI46|H10721A580 -10721A580:lI97|H10721DB20 -10721DB20:lI112|H107221040 -107221040:lI112|H107224248 -107224248:lI117|H107227170 -107227170:lI112|N -1071F35A8:lI115|H1071F5B90 -1071F5B90:lI121|H1071F83F8 -1071F83F8:lI110|H1071FB050 -1071FB050:lI116|H1071FDF90 -1071FDF90:lI97|H107201048 -107201048:lI120|H1072041F0 -1072041F0:lI95|H107207420 -107207420:lI116|H10720A698 -10720A698:lI111|H10720D888 -10720D888:lI111|H107210A28 -107210A28:lI108|H107213C88 -107213C88:lI115|H107217040 -107217040:lI46|H10721A570 -10721A570:lI97|H10721DB10 -10721DB10:lI112|H107221030 -107221030:lI112|N -1071F3598:lI112|H1071F5B80 -1071F5B80:lI114|H1071F83E8 -1071F83E8:lI101|H1071FB040 -1071FB040:lI116|H1071FDF80 -1071FDF80:lI116|H107201038 -107201038:lI121|H1072041E0 -1072041E0:lI112|H107207410 -107207410:lI114|H10720A688 -10720A688:lI46|H10720D878 -10720D878:lI98|H107210A18 -107210A18:lI101|H107213C78 -107213C78:lI97|H107217030 -107217030:lI109|N -1071F3588:lI109|H1071F5B70 -1071F5B70:lI101|H1071F83D8 -1071F83D8:lI114|H1071FB030 -1071FB030:lI108|H1071FDF70 -1071FDF70:lI95|H107201028 -107201028:lI116|H1072041D0 -1072041D0:lI114|H107207400 -107207400:lI97|H10720A678 -10720A678:lI110|H10720D868 -10720D868:lI115|H107210A08 -107210A08:lI102|H107213C68 -107213C68:lI111|H107217020 -107217020:lI114|H10721A560 -10721A560:lI109|H10721DB00 -10721DB00:lI46|H107221020 -107221020:lI98|H107224238 -107224238:lI101|H107227160 -107227160:lI97|H107229CA8 -107229CA8:lI109|N -1071F3578:lI109|H1071F5B60 -1071F5B60:lI101|H1071F83C8 -1071F83C8:lI114|H1071FB020 -1071FB020:lI108|H1071FDF60 -1071FDF60:lI46|H107201018 -107201018:lI98|H1072041C0 -1072041C0:lI101|H1072073F0 -1072073F0:lI97|H10720A668 -10720A668:lI109|N -1071F3568:lI101|H1071F5B50 -1071F5B50:lI114|H1071F83B8 -1071F83B8:lI108|H1071FB010 -1071FB010:lI95|H1071FDF50 -1071FDF50:lI115|H107201008 -107201008:lI121|H1072041B0 -1072041B0:lI110|H1072073E0 -1072073E0:lI116|H10720A658 -10720A658:lI97|H10720D858 -10720D858:lI120|H1072109F8 -1072109F8:lI95|H107213C58 -107213C58:lI108|H107217010 -107217010:lI105|H10721A550 -10721A550:lI98|H10721DAF0 -10721DAF0:lI46|H107221010 -107221010:lI98|H107224228 -107224228:lI101|H107227150 -107227150:lI97|H107229C98 -107229C98:lI109|N -1071F3558:lI101|H1071F5B40 -1071F5B40:lI114|H1071F83A8 -1071F83A8:lI108|H1071FB000 -1071FB000:lI95|H1071FDF40 -1071FDF40:lI115|H107200FF8 -107200FF8:lI121|H1072041A0 -1072041A0:lI110|H1072073D0 -1072073D0:lI116|H10720A648 -10720A648:lI97|H10720D848 -10720D848:lI120|H1072109E8 -1072109E8:lI46|H107213C48 -107213C48:lI98|H107217000 -107217000:lI101|H10721A540 -10721A540:lI97|H10721DAE0 -10721DAE0:lI109|N -1071F3548:lI101|H1071F5B30 -1071F5B30:lI114|H1071F8398 -1071F8398:lI108|H1071FAFF0 -1071FAFF0:lI95|H1071FDF30 -1071FDF30:lI114|H107200FE8 -107200FE8:lI101|H107204190 -107204190:lI99|H1072073C0 -1072073C0:lI111|H10720A638 -10720A638:lI109|H10720D838 -10720D838:lI109|H1072109D8 -1072109D8:lI101|H107213C38 -107213C38:lI110|H107216FF0 -107216FF0:lI116|H10721A530 -10721A530:lI46|H10721DAD0 -10721DAD0:lI98|H107221000 -107221000:lI101|H107224218 -107224218:lI97|H107227140 -107227140:lI109|N -1071F3538:lI101|H1071F5B20 -1071F5B20:lI114|H1071F8388 -1071F8388:lI108|H1071FAFE0 -1071FAFE0:lI95|H1071FDF20 -1071FDF20:lI112|H107200FD8 -107200FD8:lI114|H107204180 -107204180:lI101|H1072073B0 -1072073B0:lI116|H10720A628 -10720A628:lI116|H10720D828 -10720D828:lI121|H1072109C8 -1072109C8:lI112|H107213C28 -107213C28:lI114|H107216FE0 -107216FE0:lI46|H10721A520 -10721A520:lI98|H10721DAC0 -10721DAC0:lI101|H107220FF0 -107220FF0:lI97|H107224208 -107224208:lI109|N -1071F3528:lI101|H1071F5B10 -1071F5B10:lI114|H1071F8378 -1071F8378:lI108|H1071FAFD0 -1071FAFD0:lI95|H1071FDF10 -1071FDF10:lI99|H107200FC8 -107200FC8:lI111|H107204170 -107204170:lI109|H1072073A0 -1072073A0:lI109|H10720A618 -10720A618:lI101|H10720D818 -10720D818:lI110|H1072109B8 -1072109B8:lI116|H107213C18 -107213C18:lI95|H107216FD0 -107216FD0:lI115|H10721A510 -10721A510:lI99|H10721DAB0 -10721DAB0:lI97|H107220FE0 -107220FE0:lI110|H1072241F8 -1072241F8:lI46|H107227130 -107227130:lI98|H107229C88 -107229C88:lI101|H10722C4B0 -10722C4B0:lI97|H10722E9F8 -10722E9F8:lI109|N -1071F3518:lI101|H1071F5B00 -1071F5B00:lI112|H1071F8368 -1071F8368:lI112|H1071FAFC0 -1071FAFC0:lI95|H1071FDF00 -1071FDF00:lI100|H107200FB8 -107200FB8:lI111|H107204160 -107204160:lI100|H107207390 -107207390:lI103|H10720A608 -10720A608:lI101|H10720D808 -10720D808:lI114|H1072109A8 -1072109A8:lI46|H107213C08 -107213C08:lI98|H107216FC0 -107216FC0:lI101|H10721A500 -10721A500:lI97|H10721DAA0 -10721DAA0:lI109|N -1071F04B8:lI47|H1071F1550 -1071F1550:lI111|H1071F3508 -1071F3508:lI112|H1071F5AF0 -1071F5AF0:lI116|H1071F8358 -1071F8358:lI47|H1071FAFB0 -1071FAFB0:lI104|H1071FDEF0 -1071FDEF0:lI111|H107200FA8 -107200FA8:lI109|H107204150 -107204150:lI101|H107207380 -107207380:lI98|H10720A5F8 -10720A5F8:lI114|H10720D7F8 -10720D7F8:lI101|H107210998 -107210998:lI119|H107213BF8 -107213BF8:lI47|H107216FB0 -107216FB0:lI67|H10721A4F0 -10721A4F0:lI101|H10721DA90 -10721DA90:lI108|H107220FD0 -107220FD0:lI108|H1072241E8 -1072241E8:lI97|H107227120 -107227120:lI114|H107229C78 -107229C78:lI47|H10722C4A0 -10722C4A0:lI101|H10722E9E8 -10722E9E8:lI114|H107230C60 -107230C60:lI108|H107232C58 -107232C58:lI97|H107234930 -107234930:lI110|H107236368 -107236368:lI103|H107237B30 -107237B30:lI47|H107239148 -107239148:lI50|H10723A5E0 -10723A5E0:lI54|H10723B8A0 -10723B8A0:lI46|H10723C8F0 -10723C8F0:lI48|H10723D760 -10723D760:lI46|H10723E4C0 -10723E4C0:lI50|H10723F0D0 -10723F0D0:lI47|H10723FB90 -10723FB90:lI108|H1072404E0 -1072404E0:lI105|H107240D60 -107240D60:lI98|H1072414F0 -1072414F0:lI47|H107241C20 -107241C20:lI101|H1072422F0 -1072422F0:lI114|H107242960 -107242960:lI108|H107242F60 -107242F60:lI97|H1072434D0 -1072434D0:lI110|H107243A10 -107243A10:lI103|H107243F00 -107243F00:lI47|H1072443F0 -1072443F0:lI108|H1072448A0 -1072448A0:lI105|H107244D10 -107244D10:lI98|H107245170 -107245170:lI47|H1072455C0 -1072455C0:lI115|H1072459C0 -1072459C0:lI121|H107245D80 -107245D80:lI110|H107246110 -107246110:lI116|H1072464A0 -1072464A0:lI97|H107246830 -107246830:lI120|H107246BC0 -107246BC0:lI95|H107246EF0 -107246EF0:lI116|H107247210 -107247210:lI111|H107247520 -107247520:lI111|H107247820 -107247820:lI108|H107247B20 -107247B20:lI115|H107247E10 -107247E10:lI45|H1072480E0 -1072480E0:lI51|H1072483A0 -1072483A0:lI46|H107248660 -107248660:lI49|H107248910 -107248910:lI47|H280052C20 -10724B0E8:lH10724B158|H1071F0538 -10724B158:t2:H1071F0548,H1071F0558 -1071F0558:Mh4A:10:H1071F15F8,H1071F1610,H1071F1640,H1071F1678,H1071F16A8,H1071F16D8,H1071F16F8,H1071F1728,H1071F1748,H1071F1770,H1071F1790,H1071F17B8,H1071F17F0,H1071F1810,H1071F1838,H1071F1850 -1071F15F8:Mn2:H1071F36A0,H1071F36B0 -1071F36A0:lH1071F5E60|N -1071F5E60:lI115|H1071F8AB0 -1071F8AB0:lI115|H1071FB9F0 -1071FB9F0:lI108|H1071FEAA8 -1071FEAA8:lI46|H107201C50 -107201C50:lI97|H107204E90 -107204E90:lI112|H107208188 -107208188:lI112|N -1071F36B0:lH1071F5E70|N -1071F5E70:lI116|H1071F8AC0 -1071F8AC0:lI108|H1071FBA00 -1071FBA00:lI115|H1071FEAB8 -1071FEAB8:lI95|H107201C60 -107201C60:lI114|H107204EA0 -107204EA0:lI101|H107208198 -107208198:lI99|H10720B468 -10720B468:lI111|H10720E728 -10720E728:lI114|H107211AA8 -107211AA8:lI100|H107214F80 -107214F80:lI46|H107218620 -107218620:lI98|H10721BE80 -10721BE80:lI101|H10721F5B0 -10721F5B0:lI97|H107222AB8 -107222AB8:lI109|N -1071F1850:Mn3:H1071F3AB8,H1071F3AC8,H1071F3AD8 -1071F3AB8:lH1071F62D0|N -1071F62D0:lI116|H1071F8F20 -1071F8F20:lI108|H1071FBE60 -1071FBE60:lI115|H1071FEF18 -1071FEF18:lI95|H1072020C0 -1072020C0:lI99|H107205300 -107205300:lI108|H1072085F8 -1072085F8:lI105|H10720B8C8 -10720B8C8:lI101|H10720EB88 -10720EB88:lI110|H107211EE8 -107211EE8:lI116|H1072153C0 -1072153C0:lI95|H107218A50 -107218A50:lI99|H10721C280 -10721C280:lI111|H10721F980 -10721F980:lI110|H107222E78 -107222E78:lI110|H107225FE0 -107225FE0:lI101|H107228DC8 -107228DC8:lI99|H10722B800 -10722B800:lI116|H10722DED8 -10722DED8:lI105|H107230300 -107230300:lI111|H107232478 -107232478:lI110|H1072342F0 -1072342F0:lI95|H107235E58 -107235E58:lI49|H107237750 -107237750:lI95|H107238DD8 -107238DD8:lI51|H10723A2B0 -10723A2B0:lI46|H10723B610 -10723B610:lI98|H10723C700 -10723C700:lI101|H10723D5C0 -10723D5C0:lI97|H10723E340 -10723E340:lI109|N -1071F3AD8:lH1071F62F0|N -1071F62F0:lI116|H1071F8F40 -1071F8F40:lI108|H1071FBE80 -1071FBE80:lI115|H1071FEF38 -1071FEF38:lI95|H1072020E0 -1072020E0:lI98|H107205320 -107205320:lI108|H107208618 -107208618:lI111|H10720B8E8 -10720B8E8:lI111|H10720EBA8 -10720EBA8:lI109|H107211F08 -107211F08:lI95|H1072153E0 -1072153E0:lI102|H107218A70 -107218A70:lI105|H10721C2A0 -10721C2A0:lI108|H10721F9A0 -10721F9A0:lI116|H107222E98 -107222E98:lI101|H107226000 -107226000:lI114|H107228DE8 -107228DE8:lI46|H10722B820 -10722B820:lI98|H10722DEF8 -10722DEF8:lI101|H107230320 -107230320:lI97|H107232498 -107232498:lI109|N -1071F3AC8:lH1071F62E0|N -1071F62E0:lI115|H1071F8F30 -1071F8F30:lI115|H1071FBE70 -1071FBE70:lI108|H1071FEF28 -1071FEF28:lI95|H1072020D0 -1072020D0:lI108|H107205310 -107205310:lI105|H107208608 -107208608:lI115|H10720B8D8 -10720B8D8:lI116|H10720EB98 -10720EB98:lI101|H107211EF8 -107211EF8:lI110|H1072153D0 -1072153D0:lI95|H107218A60 -107218A60:lI116|H10721C290 -10721C290:lI114|H10721F990 -10721F990:lI97|H107222E88 -107222E88:lI99|H107225FF0 -107225FF0:lI107|H107228DD8 -107228DD8:lI101|H10722B810 -10722B810:lI114|H10722DEE8 -10722DEE8:lI95|H107230310 -107230310:lI115|H107232488 -107232488:lI117|H107234300 -107234300:lI112|H107235E68 -107235E68:lI46|H107237760 -107237760:lI98|H107238DE8 -107238DE8:lI101|H10723A2C0 -10723A2C0:lI97|H10723B620 -10723B620:lI109|N -1071F1838:Mn2:H1071F3A98,H1071F3AA8 -1071F3A98:lH1071F62B0|N -1071F62B0:lI100|H1071F8F00 -1071F8F00:lI116|H1071FBE40 -1071FBE40:lI108|H1071FEEF8 -1071FEEF8:lI115|H1072020A0 -1072020A0:lI95|H1072052E0 -1072052E0:lI104|H1072085D8 -1072085D8:lI97|H10720B8A8 -10720B8A8:lI110|H10720EB68 -10720EB68:lI100|H107211EC8 -107211EC8:lI115|H1072153A0 -1072153A0:lI104|H107218A30 -107218A30:lI97|H10721C260 -10721C260:lI107|H10721F960 -10721F960:lI101|H107222E58 -107222E58:lI46|H107225FC0 -107225FC0:lI98|H107228DA8 -107228DA8:lI101|H10722B7E0 -10722B7E0:lI97|H10722DEC8 -10722DEC8:lI109|N -1071F3AA8:lH1071F62C0|N -1071F62C0:lI115|H1071F8F10 -1071F8F10:lI115|H1071FBE50 -1071FBE50:lI108|H1071FEF08 -1071FEF08:lI95|H1072020B0 -1072020B0:lI104|H1072052F0 -1072052F0:lI97|H1072085E8 -1072085E8:lI110|H10720B8B8 -10720B8B8:lI100|H10720EB78 -10720EB78:lI115|H107211ED8 -107211ED8:lI104|H1072153B0 -1072153B0:lI97|H107218A40 -107218A40:lI107|H10721C270 -10721C270:lI101|H10721F970 -10721F970:lI46|H107222E68 -107222E68:lI98|H107225FD0 -107225FD0:lI101|H107228DB8 -107228DB8:lI97|H10722B7F0 -10722B7F0:lI109|N -1071F1810:Mn4:H1071F3A58,H1071F3A68,H1071F3A78,H1071F3A88 -1071F3A58:lH1071F6270|N -1071F6270:lI116|H1071F8EC0 -1071F8EC0:lI108|H1071FBE00 -1071FBE00:lI115|H1071FEEB8 -1071FEEB8:lI95|H107202060 -107202060:lI115|H1072052A0 -1072052A0:lI101|H107208598 -107208598:lI114|H10720B868 -10720B868:lI118|H10720EB28 -10720EB28:lI101|H107211E88 -107211E88:lI114|H107215360 -107215360:lI95|H107218A00 -107218A00:lI115|H10721C230 -10721C230:lI101|H10721F930 -10721F930:lI115|H107222E28 -107222E28:lI115|H107225F90 -107225F90:lI105|H107228D88 -107228D88:lI111|H10722B7D0 -10722B7D0:lI110|H10722DEB8 -10722DEB8:lI95|H1072302F0 -1072302F0:lI116|H107232468 -107232468:lI105|H1072342E0 -1072342E0:lI99|H107235E48 -107235E48:lI107|H107237740 -107237740:lI101|H107238DC8 -107238DC8:lI116|H10723A2A0 -10723A2A0:lI95|H10723B600 -10723B600:lI115|H10723C6F0 -10723C6F0:lI117|H10723D5B0 -10723D5B0:lI112|H10723E330 -10723E330:lI46|H10723EF50 -10723EF50:lI98|H10723FA20 -10723FA20:lI101|H107240370 -107240370:lI97|H107240BF0 -107240BF0:lI109|N -1071F3A88:lH1071F62A0|N -1071F62A0:lI116|H1071F8EF0 -1071F8EF0:lI108|H1071FBE30 -1071FBE30:lI115|H1071FEEE8 -1071FEEE8:lI95|H107202090 -107202090:lI118|H1072052D0 -1072052D0:lI49|H1072085C8 -1072085C8:lI46|H10720B898 -10720B898:lI98|H10720EB58 -10720EB58:lI101|H107211EB8 -107211EB8:lI97|H107215390 -107215390:lI109|N -1071F3A78:lH1071F6290|N -1071F6290:lI116|H1071F8EE0 -1071F8EE0:lI108|H1071FBE20 -1071FBE20:lI115|H1071FEED8 -1071FEED8:lI95|H107202080 -107202080:lI100|H1072052C0 -1072052C0:lI105|H1072085B8 -1072085B8:lI115|H10720B888 -10720B888:lI116|H10720EB48 -10720EB48:lI95|H107211EA8 -107211EA8:lI115|H107215380 -107215380:lI117|H107218A20 -107218A20:lI112|H10721C250 -10721C250:lI46|H10721F950 -10721F950:lI98|H107222E48 -107222E48:lI101|H107225FB0 -107225FB0:lI97|H107228D98 -107228D98:lI109|N -1071F3A68:lH1071F6280|N -1071F6280:lI115|H1071F8ED0 -1071F8ED0:lI115|H1071FBE10 -1071FBE10:lI108|H1071FEEC8 -1071FEEC8:lI95|H107202070 -107202070:lI112|H1072052B0 -1072052B0:lI107|H1072085A8 -1072085A8:lI105|H10720B878 -10720B878:lI120|H10720EB38 -10720EB38:lI95|H107211E98 -107211E98:lI100|H107215370 -107215370:lI98|H107218A10 -107218A10:lI46|H10721C240 -10721C240:lI98|H10721F940 -10721F940:lI101|H107222E38 -107222E38:lI97|H107225FA0 -107225FA0:lI109|N -1071F17F0:Mn3:H1071F3A20,H1071F3A30,H1071F3A40 -1071F3A20:lH1071F6230|N -1071F6230:lI100|H1071F8E80 -1071F8E80:lI116|H1071FBDC0 -1071FBDC0:lI108|H1071FEE78 -1071FEE78:lI115|H107202020 -107202020:lI95|H107205260 -107205260:lI115|H107208558 -107208558:lI111|H10720B828 -10720B828:lI99|H10720EAE8 -10720EAE8:lI107|H107211E48 -107211E48:lI101|H107215320 -107215320:lI116|H1072189C0 -1072189C0:lI46|H10721C1F0 -10721C1F0:lI98|H10721F8F0 -10721F8F0:lI101|H107222DE8 -107222DE8:lI97|H107225F50 -107225F50:lI109|N -1071F3A40:Mn2:H1071F6250,H1071F6260 -1071F6250:lH1071F8EA0|N -1071F8EA0:lI115|H1071FBDE0 -1071FBDE0:lI115|H1071FEE98 -1071FEE98:lI108|H107202040 -107202040:lI95|H107205280 -107205280:lI108|H107208578 -107208578:lI111|H10720B848 -10720B848:lI103|H10720EB08 -10720EB08:lI103|H107211E68 -107211E68:lI101|H107215340 -107215340:lI114|H1072189E0 -1072189E0:lI46|H10721C210 -10721C210:lI98|H10721F910 -10721F910:lI101|H107222E08 -107222E08:lI97|H107225F70 -107225F70:lI109|N -1071F6260:lH1071F8EB0|N -1071F8EB0:lI116|H1071FBDF0 -1071FBDF0:lI108|H1071FEEA8 -1071FEEA8:lI115|H107202050 -107202050:lI95|H107205290 -107205290:lI99|H107208588 -107208588:lI111|H10720B858 -10720B858:lI110|H10720EB18 -10720EB18:lI110|H107211E78 -107211E78:lI101|H107215350 -107215350:lI99|H1072189F0 -1072189F0:lI116|H10721C220 -10721C220:lI105|H10721F920 -10721F920:lI111|H107222E18 -107222E18:lI110|H107225F80 -107225F80:lI95|H107228D78 -107228D78:lI115|H10722B7C0 -10722B7C0:lI117|H10722DEA8 -10722DEA8:lI112|H1072302E0 -1072302E0:lI46|H107232458 -107232458:lI98|H1072342D0 -1072342D0:lI101|H107235E38 -107235E38:lI97|H107237730 -107237730:lI109|N -1071F3A30:lH1071F6240|N -1071F6240:lI115|H1071F8E90 -1071F8E90:lI115|H1071FBDD0 -1071FBDD0:lI108|H1071FEE88 -1071FEE88:lI95|H107202030 -107202030:lI112|H107205270 -107205270:lI101|H107208568 -107208568:lI109|H10720B838 -10720B838:lI95|H10720EAF8 -10720EAF8:lI99|H107211E58 -107211E58:lI97|H107215330 -107215330:lI99|H1072189D0 -1072189D0:lI104|H10721C200 -10721C200:lI101|H10721F900 -10721F900:lI46|H107222DF8 -107222DF8:lI98|H107225F60 -107225F60:lI101|H107228D68 -107228D68:lI97|H10722B7B0 -10722B7B0:lI109|N -1071F17B8:Mn6:H1071F39C0,H1071F39D0,H1071F39E0,H1071F39F0,H1071F3A00,H1071F3A10 -1071F39C0:lH1071F61D0|N -1071F61D0:lI115|H1071F8E20 -1071F8E20:lI115|H1071FBD60 -1071FBD60:lI108|H1071FEE18 -1071FEE18:lI95|H107201FC0 -107201FC0:lI100|H107205200 -107205200:lI104|H1072084F8 -1072084F8:lI95|H10720B7C8 -10720B7C8:lI103|H10720EA88 -10720EA88:lI114|H107211DE8 -107211DE8:lI111|H1072152C0 -1072152C0:lI117|H107218960 -107218960:lI112|H10721C190 -10721C190:lI115|H10721F890 -10721F890:lI46|H107222D88 -107222D88:lI98|H107225EF0 -107225EF0:lI101|H107228D08 -107228D08:lI97|H10722B750 -10722B750:lI109|N -1071F3A10:lH1071F6220|N -1071F6220:lI115|H1071F8E70 -1071F8E70:lI115|H1071FBDB0 -1071FBDB0:lI108|H1071FEE68 -1071FEE68:lI95|H107202010 -107202010:lI99|H107205250 -107205250:lI105|H107208548 -107208548:lI112|H10720B818 -10720B818:lI104|H10720EAD8 -10720EAD8:lI101|H107211E38 -107211E38:lI114|H107215310 -107215310:lI95|H1072189B0 -1072189B0:lI102|H10721C1E0 -10721C1E0:lI111|H10721F8E0 -10721F8E0:lI114|H107222DD8 -107222DD8:lI109|H107225F40 -107225F40:lI97|H107228D58 -107228D58:lI116|H10722B7A0 -10722B7A0:lI46|H10722DE98 -10722DE98:lI98|H1072302D0 -1072302D0:lI101|H107232448 -107232448:lI97|H1072342C0 -1072342C0:lI109|N -1071F3A00:lH1071F6210|N -1071F6210:lI116|H1071F8E60 -1071F8E60:lI108|H1071FBDA0 -1071FBDA0:lI115|H1071FEE58 -1071FEE58:lI95|H107202000 -107202000:lI103|H107205240 -107205240:lI101|H107208538 -107208538:lI110|H10720B808 -10720B808:lI95|H10720EAC8 -10720EAC8:lI99|H107211E28 -107211E28:lI111|H107215300 -107215300:lI110|H1072189A0 -1072189A0:lI110|H10721C1D0 -10721C1D0:lI101|H10721F8D0 -10721F8D0:lI99|H107222DC8 -107222DC8:lI116|H107225F30 -107225F30:lI105|H107228D48 -107228D48:lI111|H10722B790 -10722B790:lI110|H10722DE88 -10722DE88:lI95|H1072302C0 -1072302C0:lI49|H107232438 -107232438:lI95|H1072342B0 -1072342B0:lI51|H107235E28 -107235E28:lI46|H107237720 -107237720:lI98|H107238DB8 -107238DB8:lI101|H10723A290 -10723A290:lI97|H10723B5F0 -10723B5F0:lI109|N -1071F39F0:lH1071F6200|N -1071F6200:lI115|H1071F8E50 -1071F8E50:lI115|H1071FBD90 -1071FBD90:lI108|H1071FEE48 -1071FEE48:lI95|H107201FF0 -107201FF0:lI115|H107205230 -107205230:lI114|H107208528 -107208528:lI112|H10720B7F8 -10720B7F8:lI95|H10720EAB8 -10720EAB8:lI112|H107211E18 -107211E18:lI114|H1072152F0 -1072152F0:lI105|H107218990 -107218990:lI109|H10721C1C0 -10721C1C0:lI101|H10721F8C0 -10721F8C0:lI115|H107222DB8 -107222DB8:lI46|H107225F20 -107225F20:lI98|H107228D38 -107228D38:lI101|H10722B780 -10722B780:lI97|H10722DE78 -10722DE78:lI109|N -1071F39E0:lH1071F61F0|N -1071F61F0:lI105|H1071F8E40 -1071F8E40:lI110|H1071FBD80 -1071FBD80:lI101|H1071FEE38 -1071FEE38:lI116|H107201FE0 -107201FE0:lI54|H107205220 -107205220:lI95|H107208518 -107208518:lI116|H10720B7E8 -10720B7E8:lI108|H10720EAA8 -10720EAA8:lI115|H107211E08 -107211E08:lI95|H1072152E0 -1072152E0:lI100|H107218980 -107218980:lI105|H10721C1B0 -10721C1B0:lI115|H10721F8B0 -10721F8B0:lI116|H107222DA8 -107222DA8:lI46|H107225F10 -107225F10:lI98|H107228D28 -107228D28:lI101|H10722B770 -10722B770:lI97|H10722DE68 -10722DE68:lI109|N -1071F39D0:lH1071F61E0|N -1071F61E0:lI115|H1071F8E30 -1071F8E30:lI115|H1071FBD70 -1071FBD70:lI108|H1071FEE28 -1071FEE28:lI95|H107201FD0 -107201FD0:lI115|H107205210 -107205210:lI101|H107208508 -107208508:lI114|H10720B7D8 -10720B7D8:lI118|H10720EA98 -10720EA98:lI101|H107211DF8 -107211DF8:lI114|H1072152D0 -1072152D0:lI95|H107218970 -107218970:lI115|H10721C1A0 -10721C1A0:lI101|H10721F8A0 -10721F8A0:lI115|H107222D98 -107222D98:lI115|H107225F00 -107225F00:lI105|H107228D18 -107228D18:lI111|H10722B760 -10722B760:lI110|H10722DE58 -10722DE58:lI95|H1072302B0 -1072302B0:lI99|H107232428 -107232428:lI97|H1072342A0 -1072342A0:lI99|H107235E18 -107235E18:lI104|H107237710 -107237710:lI101|H107238DA8 -107238DA8:lI95|H10723A280 -10723A280:lI115|H10723B5E0 -10723B5E0:lI117|H10723C6E0 -10723C6E0:lI112|H10723D5A0 -10723D5A0:lI46|H10723E320 -10723E320:lI98|H10723EF40 -10723EF40:lI101|H10723FA10 -10723FA10:lI97|H107240360 -107240360:lI109|N -1071F1790:Mn4:H1071F3980,H1071F3990,H1071F39A0,H1071F39B0 -1071F3980:lH1071F6190|N -1071F6190:lI116|H1071F8DE0 -1071F8DE0:lI108|H1071FBD20 -1071FBD20:lI115|H1071FEDD8 -1071FEDD8:lI95|H107201F80 -107201F80:lI115|H1072051C0 -1072051C0:lI101|H1072084B8 -1072084B8:lI114|H10720B788 -10720B788:lI118|H10720EA48 -10720EA48:lI101|H107211DA8 -107211DA8:lI114|H107215280 -107215280:lI95|H107218920 -107218920:lI115|H10721C150 -10721C150:lI101|H10721F850 -10721F850:lI115|H107222D48 -107222D48:lI115|H107225EC0 -107225EC0:lI105|H107228CD8 -107228CD8:lI111|H10722B720 -10722B720:lI110|H10722DE28 -10722DE28:lI95|H1072302A0 -1072302A0:lI116|H107232418 -107232418:lI105|H107234290 -107234290:lI99|H107235E08 -107235E08:lI107|H107237700 -107237700:lI101|H107238D98 -107238D98:lI116|H10723A270 -10723A270:lI46|H10723B5D0 -10723B5D0:lI98|H10723C6D0 -10723C6D0:lI101|H10723D590 -10723D590:lI97|H10723E310 -10723E310:lI109|N -1071F39B0:lH1071F61C0|N -1071F61C0:lI115|H1071F8E10 -1071F8E10:lI115|H1071FBD50 -1071FBD50:lI108|H1071FEE08 -1071FEE08:lI95|H107201FB0 -107201FB0:lI103|H1072051F0 -1072051F0:lI101|H1072084E8 -1072084E8:lI110|H10720B7B8 -10720B7B8:lI95|H10720EA78 -10720EA78:lI115|H107211DD8 -107211DD8:lI116|H1072152B0 -1072152B0:lI97|H107218950 -107218950:lI116|H10721C180 -10721C180:lI101|H10721F880 -10721F880:lI109|H107222D78 -107222D78:lI46|H107225EE0 -107225EE0:lI98|H107228CF8 -107228CF8:lI101|H10722B740 -10722B740:lI97|H10722DE48 -10722DE48:lI109|N -1071F39A0:lH1071F61B0|N -1071F61B0:lI116|H1071F8E00 -1071F8E00:lI108|H1071FBD40 -1071FBD40:lI115|H1071FEDF8 -1071FEDF8:lI95|H107201FA0 -107201FA0:lI99|H1072051E0 -1072051E0:lI111|H1072084D8 -1072084D8:lI110|H10720B7A8 -10720B7A8:lI110|H10720EA68 -10720EA68:lI101|H107211DC8 -107211DC8:lI99|H1072152A0 -1072152A0:lI116|H107218940 -107218940:lI105|H10721C170 -10721C170:lI111|H10721F870 -10721F870:lI110|H107222D68 -107222D68:lI46|H107225ED0 -107225ED0:lI98|H107228CE8 -107228CE8:lI101|H10722B730 -10722B730:lI97|H10722DE38 -10722DE38:lI109|N -1071F3990:lH1071F61A0|N -1071F61A0:lI115|H1071F8DF0 -1071F8DF0:lI115|H1071FBD30 -1071FBD30:lI108|H1071FEDE8 -1071FEDE8:lI95|H107201F90 -107201F90:lI99|H1072051D0 -1072051D0:lI105|H1072084C8 -1072084C8:lI112|H10720B798 -10720B798:lI104|H10720EA58 -10720EA58:lI101|H107211DB8 -107211DB8:lI114|H107215290 -107215290:lI46|H107218930 -107218930:lI98|H10721C160 -10721C160:lI101|H10721F860 -10721F860:lI97|H107222D58 -107222D58:lI109|N -1071F1770:Mn3:H1071F3940,H1071F3958,H1071F3968 -1071F3940:Mn2:H1071F6140,H1071F6150 -1071F6140:lH1071F8D90|N -1071F8D90:lI115|H1071FBCD0 -1071FBCD0:lI115|H1071FED88 -1071FED88:lI108|H107201F30 -107201F30:lI95|H107205170 -107205170:lI114|H107208468 -107208468:lI101|H10720B738 -10720B738:lI99|H10720E9F8 -10720E9F8:lI111|H107211D58 -107211D58:lI114|H107215230 -107215230:lI100|H1072188D0 -1072188D0:lI46|H10721C100 -10721C100:lI98|H10721F800 -10721F800:lI101|H107222CF8 -107222CF8:lI97|H107225E70 -107225E70:lI109|N -1071F6150:lH1071F8DA0|N -1071F8DA0:lI116|H1071FBCE0 -1071FBCE0:lI108|H1071FED98 -1071FED98:lI115|H107201F40 -107201F40:lI95|H107205180 -107205180:lI99|H107208478 -107208478:lI108|H10720B748 -10720B748:lI105|H10720EA08 -10720EA08:lI101|H107211D68 -107211D68:lI110|H107215240 -107215240:lI116|H1072188E0 -1072188E0:lI95|H10721C110 -10721C110:lI116|H10721F810 -10721F810:lI105|H107222D08 -107222D08:lI99|H107225E80 -107225E80:lI107|H107228C98 -107228C98:lI101|H10722B6E0 -10722B6E0:lI116|H10722DDE8 -10722DDE8:lI95|H107230260 -107230260:lI115|H1072323D8 -1072323D8:lI116|H107234250 -107234250:lI111|H107235DD8 -107235DD8:lI114|H1072376D0 -1072376D0:lI101|H107238D68 -107238D68:lI46|H10723A250 -10723A250:lI98|H10723B5B0 -10723B5B0:lI101|H10723C6B0 -10723C6B0:lI97|H10723D570 -10723D570:lI109|N -1071F3968:Mn2:H1071F6170,H1071F6180 -1071F6170:lH1071F8DC0|N -1071F8DC0:lI115|H1071FBD00 -1071FBD00:lI115|H1071FEDB8 -1071FEDB8:lI108|H107201F60 -107201F60:lI95|H1072051A0 -1072051A0:lI100|H107208498 -107208498:lI105|H10720B768 -10720B768:lI115|H10720EA28 -10720EA28:lI116|H107211D88 -107211D88:lI95|H107215260 -107215260:lI99|H107218900 -107218900:lI111|H10721C130 -10721C130:lI110|H10721F830 -10721F830:lI110|H107222D28 -107222D28:lI101|H107225EA0 -107225EA0:lI99|H107228CB8 -107228CB8:lI116|H10722B700 -10722B700:lI105|H10722DE08 -10722DE08:lI111|H107230280 -107230280:lI110|H1072323F8 -1072323F8:lI95|H107234270 -107234270:lI115|H107235DE8 -107235DE8:lI117|H1072376E0 -1072376E0:lI112|H107238D78 -107238D78:lI46|H10723A260 -10723A260:lI98|H10723B5C0 -10723B5C0:lI101|H10723C6C0 -10723C6C0:lI97|H10723D580 -10723D580:lI109|N -1071F6180:lH1071F8DD0|N -1071F8DD0:lI100|H1071FBD10 -1071FBD10:lI116|H1071FEDC8 -1071FEDC8:lI108|H107201F70 -107201F70:lI115|H1072051B0 -1072051B0:lI95|H1072084A8 -1072084A8:lI99|H10720B778 -10720B778:lI111|H10720EA38 -10720EA38:lI110|H107211D98 -107211D98:lI110|H107215270 -107215270:lI101|H107218910 -107218910:lI99|H10721C140 -10721C140:lI116|H10721F840 -10721F840:lI105|H107222D38 -107222D38:lI111|H107225EB0 -107225EB0:lI110|H107228CC8 -107228CC8:lI95|H10722B710 -10722B710:lI115|H10722DE18 -10722DE18:lI117|H107230290 -107230290:lI112|H107232408 -107232408:lI46|H107234280 -107234280:lI98|H107235DF8 -107235DF8:lI101|H1072376F0 -1072376F0:lI97|H107238D88 -107238D88:lI109|N -1071F3958:lH1071F6160|N -1071F6160:lI115|H1071F8DB0 -1071F8DB0:lI115|H1071FBCF0 -1071FBCF0:lI108|H1071FEDA8 -1071FEDA8:lI95|H107201F50 -107201F50:lI99|H107205190 -107205190:lI114|H107208488 -107208488:lI108|H10720B758 -10720B758:lI95|H10720EA18 -10720EA18:lI99|H107211D78 -107211D78:lI97|H107215250 -107215250:lI99|H1072188F0 -1072188F0:lI104|H10721C120 -10721C120:lI101|H10721F820 -10721F820:lI95|H107222D18 -107222D18:lI97|H107225E90 -107225E90:lI112|H107228CA8 -107228CA8:lI105|H10722B6F0 -10722B6F0:lI46|H10722DDF8 -10722DDF8:lI98|H107230270 -107230270:lI101|H1072323E8 -1072323E8:lI97|H107234260 -107234260:lI109|N -1071F1748:Mn4:H1071F3900,H1071F3910,H1071F3920,H1071F3930 -1071F3900:lH1071F6100|N -1071F6100:lI115|H1071F8D50 -1071F8D50:lI115|H1071FBC90 -1071FBC90:lI108|H1071FED48 -1071FED48:lI95|H107201EF0 -107201EF0:lI117|H107205130 -107205130:lI112|H107208428 -107208428:lI103|H10720B6F8 -10720B6F8:lI114|H10720E9B8 -10720E9B8:lI97|H107211D18 -107211D18:lI100|H1072151F0 -1072151F0:lI101|H107218890 -107218890:lI95|H10721C0C0 -10721C0C0:lI115|H10721F7C0 -10721F7C0:lI101|H107222CB8 -107222CB8:lI114|H107225E30 -107225E30:lI118|H107228C68 -107228C68:lI101|H10722B6B0 -10722B6B0:lI114|H10722DDB8 -10722DDB8:lI95|H107230230 -107230230:lI115|H1072323A8 -1072323A8:lI101|H107234230 -107234230:lI115|H107235DB8 -107235DB8:lI115|H1072376B0 -1072376B0:lI105|H107238D58 -107238D58:lI111|H10723A240 -10723A240:lI110|H10723B5A0 -10723B5A0:lI95|H10723C6A0 -10723C6A0:lI99|H10723D560 -10723D560:lI97|H10723E300 -10723E300:lI99|H10723EF30 -10723EF30:lI104|H10723FA00 -10723FA00:lI101|H107240350 -107240350:lI95|H107240BE0 -107240BE0:lI115|H107241380 -107241380:lI117|H107241AB0 -107241AB0:lI112|H107242180 -107242180:lI46|H1072427F0 -1072427F0:lI98|H107242DF0 -107242DF0:lI101|H107243360 -107243360:lI97|H1072438A0 -1072438A0:lI109|N -1071F3930:lH1071F6130|N -1071F6130:lI115|H1071F8D80 -1071F8D80:lI115|H1071FBCC0 -1071FBCC0:lI108|H1071FED78 -1071FED78:lI95|H107201F20 -107201F20:lI99|H107205160 -107205160:lI114|H107208458 -107208458:lI108|H10720B728 -10720B728:lI95|H10720E9E8 -10720E9E8:lI104|H107211D48 -107211D48:lI97|H107215220 -107215220:lI115|H1072188C0 -1072188C0:lI104|H10721C0F0 -10721C0F0:lI95|H10721F7F0 -10721F7F0:lI100|H107222CE8 -107222CE8:lI105|H107225E60 -107225E60:lI114|H107228C88 -107228C88:lI46|H10722B6D0 -10722B6D0:lI98|H10722DDD8 -10722DDD8:lI101|H107230250 -107230250:lI97|H1072323C8 -1072323C8:lI109|N -1071F3920:lH1071F6120|N -1071F6120:lI115|H1071F8D70 -1071F8D70:lI115|H1071FBCB0 -1071FBCB0:lI108|H1071FED68 -1071FED68:lI95|H107201F10 -107201F10:lI109|H107205150 -107205150:lI97|H107208448 -107208448:lI110|H10720B718 -10720B718:lI97|H10720E9D8 -10720E9D8:lI103|H107211D38 -107211D38:lI101|H107215210 -107215210:lI114|H1072188B0 -1072188B0:lI46|H10721C0E0 -10721C0E0:lI98|H10721F7E0 -10721F7E0:lI101|H107222CD8 -107222CD8:lI97|H107225E50 -107225E50:lI109|N -1071F3910:lH1071F6110|N -1071F6110:lI100|H1071F8D60 -1071F8D60:lI116|H1071FBCA0 -1071FBCA0:lI108|H1071FED58 -1071FED58:lI115|H107201F00 -107201F00:lI95|H107205140 -107205140:lI103|H107208438 -107208438:lI101|H10720B708 -10720B708:lI110|H10720E9C8 -10720E9C8:lI95|H107211D28 -107211D28:lI99|H107215200 -107215200:lI111|H1072188A0 -1072188A0:lI110|H10721C0D0 -10721C0D0:lI110|H10721F7D0 -10721F7D0:lI101|H107222CC8 -107222CC8:lI99|H107225E40 -107225E40:lI116|H107228C78 -107228C78:lI105|H10722B6C0 -10722B6C0:lI111|H10722DDC8 -10722DDC8:lI110|H107230240 -107230240:lI46|H1072323B8 -1072323B8:lI98|H107234240 -107234240:lI101|H107235DC8 -107235DC8:lI97|H1072376C0 -1072376C0:lI109|N -1071F1728:Mn3:H1071F38D0,H1071F38E0,H1071F38F0 -1071F38D0:lH1071F60D0|N -1071F60D0:lI116|H1071F8D20 -1071F8D20:lI108|H1071FBC60 -1071FBC60:lI115|H1071FED18 -1071FED18:lI95|H107201EC0 -107201EC0:lI100|H107205100 -107205100:lI105|H1072083F8 -1072083F8:lI115|H10720B6C8 -10720B6C8:lI116|H10720E988 -10720E988:lI95|H107211CF8 -107211CF8:lI115|H1072151D0 -1072151D0:lI101|H107218870 -107218870:lI114|H10721C0A0 -10721C0A0:lI118|H10721F7A0 -10721F7A0:lI101|H107222C98 -107222C98:lI114|H107225E10 -107225E10:lI95|H107228C48 -107228C48:lI115|H10722B6A0 -10722B6A0:lI117|H10722DDA8 -10722DDA8:lI112|H107230220 -107230220:lI46|H107232398 -107232398:lI98|H107234220 -107234220:lI101|H107235DA8 -107235DA8:lI97|H1072376A0 -1072376A0:lI109|N -1071F38F0:lH1071F60F0|N -1071F60F0:lI115|H1071F8D40 -1071F8D40:lI115|H1071FBC80 -1071FBC80:lI108|H1071FED38 -1071FED38:lI95|H107201EE0 -107201EE0:lI100|H107205120 -107205120:lI105|H107208418 -107208418:lI115|H10720B6E8 -10720B6E8:lI116|H10720E9A8 -10720E9A8:lI95|H107211D08 -107211D08:lI115|H1072151E0 -1072151E0:lI117|H107218880 -107218880:lI112|H10721C0B0 -10721C0B0:lI46|H10721F7B0 -10721F7B0:lI98|H107222CA8 -107222CA8:lI101|H107225E20 -107225E20:lI97|H107228C58 -107228C58:lI109|N -1071F38E0:lH1071F60E0|N -1071F60E0:lI115|H1071F8D30 -1071F8D30:lI115|H1071FBC70 -1071FBC70:lI108|H1071FED28 -1071FED28:lI46|H107201ED0 -107201ED0:lI97|H107205110 -107205110:lI112|H107208408 -107208408:lI112|H10720B6D8 -10720B6D8:lI117|H10720E998 -10720E998:lI112|N -1071F16F8:Mn5:H1071F3878,H1071F3888,H1071F38A0,H1071F38B0,H1071F38C0 -1071F3878:lH1071F6070|N -1071F6070:lI100|H1071F8CC0 -1071F8CC0:lI116|H1071FBC00 -1071FBC00:lI108|H1071FECB8 -1071FECB8:lI115|H107201E60 -107201E60:lI95|H1072050A0 -1072050A0:lI115|H107208398 -107208398:lI117|H10720B668 -10720B668:lI112|H10720E928 -10720E928:lI46|H107211CA8 -107211CA8:lI98|H107215180 -107215180:lI101|H107218820 -107218820:lI97|H10721C060 -10721C060:lI109|N -1071F38C0:lH1071F60C0|N -1071F60C0:lI116|H1071F8D10 -1071F8D10:lI108|H1071FBC50 -1071FBC50:lI115|H1071FED08 -1071FED08:lI95|H107201EB0 -107201EB0:lI115|H1072050F0 -1072050F0:lI101|H1072083E8 -1072083E8:lI110|H10720B6B8 -10720B6B8:lI100|H10720E978 -10720E978:lI101|H107211CE8 -107211CE8:lI114|H1072151C0 -1072151C0:lI46|H107218860 -107218860:lI98|H10721C090 -10721C090:lI101|H10721F790 -10721F790:lI97|H107222C88 -107222C88:lI109|N -1071F38B0:lH1071F60B0|N -1071F60B0:lI100|H1071F8D00 -1071F8D00:lI116|H1071FBC40 -1071FBC40:lI108|H1071FECF8 -1071FECF8:lI115|H107201EA0 -107201EA0:lI95|H1072050E0 -1072050E0:lI118|H1072083D8 -1072083D8:lI49|H10720B6A8 -10720B6A8:lI46|H10720E968 -10720E968:lI98|H107211CD8 -107211CD8:lI101|H1072151B0 -1072151B0:lI97|H107218850 -107218850:lI109|N -1071F38A0:lH1071F60A0|N -1071F60A0:lI115|H1071F8CF0 -1071F8CF0:lI115|H1071FBC30 -1071FBC30:lI108|H1071FECE8 -1071FECE8:lI95|H107201E90 -107201E90:lI99|H1072050D0 -1072050D0:lI101|H1072083C8 -1072083C8:lI114|H10720B698 -10720B698:lI116|H10720E958 -10720E958:lI105|H107211CC8 -107211CC8:lI102|H1072151A0 -1072151A0:lI105|H107218840 -107218840:lI99|H10721C080 -10721C080:lI97|H10721F780 -10721F780:lI116|H107222C78 -107222C78:lI101|H107225E00 -107225E00:lI46|H107228C38 -107228C38:lI98|H10722B690 -10722B690:lI101|H10722DD98 -10722DD98:lI97|H107230210 -107230210:lI109|N -1071F3888:Mn2:H1071F6080,H1071F6090 -1071F6080:lH1071F8CD0|N -1071F8CD0:lI115|H1071FBC10 -1071FBC10:lI115|H1071FECC8 -1071FECC8:lI108|H107201E70 -107201E70:lI46|H1072050B0 -1072050B0:lI98|H1072083A8 -1072083A8:lI101|H10720B678 -10720B678:lI97|H10720E938 -10720E938:lI109|N -1071F6090:lH1071F8CE0|N -1071F8CE0:lI115|H1071FBC20 -1071FBC20:lI115|H1071FECD8 -1071FECD8:lI108|H107201E80 -107201E80:lI95|H1072050C0 -1072050C0:lI115|H1072083B8 -1072083B8:lI101|H10720B688 -10720B688:lI115|H10720E948 -10720E948:lI115|H107211CB8 -107211CB8:lI105|H107215190 -107215190:lI111|H107218830 -107218830:lI110|H10721C070 -10721C070:lI95|H10721F770 -10721F770:lI99|H107222C68 -107222C68:lI97|H107225DF0 -107225DF0:lI99|H107228C28 -107228C28:lI104|H10722B680 -10722B680:lI101|H10722DD88 -10722DD88:lI95|H107230200 -107230200:lI97|H107232388 -107232388:lI112|H107234210 -107234210:lI105|H107235D98 -107235D98:lI46|H107237690 -107237690:lI98|H107238D48 -107238D48:lI101|H10723A230 -10723A230:lI97|H10723B590 -10723B590:lI109|N -1071F16D8:Mn3:H1071F3840,H1071F3858,H1071F3868 -1071F3840:Mn2:H1071F6030,H1071F6040 -1071F6030:lH1071F8C80|N -1071F8C80:lI115|H1071FBBC0 -1071FBBC0:lI115|H1071FEC78 -1071FEC78:lI108|H107201E20 -107201E20:lI95|H107205060 -107205060:lI99|H107208358 -107208358:lI111|H10720B628 -10720B628:lI110|H10720E8E8 -10720E8E8:lI102|H107211C68 -107211C68:lI105|H107215140 -107215140:lI103|H1072187E0 -1072187E0:lI46|H10721C020 -10721C020:lI98|H10721F730 -10721F730:lI101|H107222C28 -107222C28:lI97|H107225DB0 -107225DB0:lI109|N -1071F6040:lH1071F8C90|N -1071F8C90:lI116|H1071FBBD0 -1071FBBD0:lI108|H1071FEC88 -1071FEC88:lI115|H107201E30 -107201E30:lI95|H107205070 -107205070:lI114|H107208368 -107208368:lI101|H10720B638 -10720B638:lI99|H10720E8F8 -10720E8F8:lI111|H107211C78 -107211C78:lI114|H107215150 -107215150:lI100|H1072187F0 -1072187F0:lI95|H10721C030 -10721C030:lI49|H10721F740 -10721F740:lI95|H107222C38 -107222C38:lI51|H107225DC0 -107225DC0:lI46|H107228C08 -107228C08:lI98|H10722B660 -10722B660:lI101|H10722DD68 -10722DD68:lI97|H1072301E0 -1072301E0:lI109|N -1071F3868:lH1071F6060|N -1071F6060:lI115|H1071F8CB0 -1071F8CB0:lI115|H1071FBBF0 -1071FBBF0:lI108|H1071FECA8 -1071FECA8:lI95|H107201E50 -107201E50:lI115|H107205090 -107205090:lI101|H107208388 -107208388:lI115|H10720B658 -10720B658:lI115|H10720E918 -10720E918:lI105|H107211C98 -107211C98:lI111|H107215170 -107215170:lI110|H107218810 -107218810:lI46|H10721C050 -10721C050:lI98|H10721F760 -10721F760:lI101|H107222C58 -107222C58:lI97|H107225DE0 -107225DE0:lI109|N -1071F3858:lH1071F6050|N -1071F6050:lI115|H1071F8CA0 -1071F8CA0:lI115|H1071FBBE0 -1071FBBE0:lI108|H1071FEC98 -1071FEC98:lI95|H107201E40 -107201E40:lI115|H107205080 -107205080:lI101|H107208378 -107208378:lI114|H10720B648 -10720B648:lI118|H10720E908 -10720E908:lI101|H107211C88 -107211C88:lI114|H107215160 -107215160:lI95|H107218800 -107218800:lI115|H10721C040 -10721C040:lI101|H10721F750 -10721F750:lI115|H107222C48 -107222C48:lI115|H107225DD0 -107225DD0:lI105|H107228C18 -107228C18:lI111|H10722B670 -10722B670:lI110|H10722DD78 -10722DD78:lI95|H1072301F0 -1072301F0:lI99|H107232378 -107232378:lI97|H107234200 -107234200:lI99|H107235D88 -107235D88:lI104|H107237680 -107237680:lI101|H107238D38 -107238D38:lI95|H10723A220 -10723A220:lI100|H10723B580 -10723B580:lI98|H10723C690 -10723C690:lI46|H10723D550 -10723D550:lI98|H10723E2F0 -10723E2F0:lI101|H10723EF20 -10723EF20:lI97|H10723F9F0 -10723F9F0:lI109|N -1071F16A8:Mn5:H1071F37F0,H1071F3800,H1071F3810,H1071F3820,H1071F3830 -1071F37F0:lH1071F5FE0|N -1071F5FE0:lI100|H1071F8C30 -1071F8C30:lI116|H1071FBB70 -1071FBB70:lI108|H1071FEC28 -1071FEC28:lI115|H107201DD0 -107201DD0:lI95|H107205010 -107205010:lI115|H107208308 -107208308:lI101|H10720B5D8 -10720B5D8:lI114|H10720E898 -10720E898:lI118|H107211C18 -107211C18:lI101|H1072150F0 -1072150F0:lI114|H107218790 -107218790:lI95|H10721BFD0 -10721BFD0:lI115|H10721F6E0 -10721F6E0:lI117|H107222BD8 -107222BD8:lI112|H107225D60 -107225D60:lI46|H107228BB8 -107228BB8:lI98|H10722B610 -10722B610:lI101|H10722DD28 -10722DD28:lI97|H1072301A0 -1072301A0:lI109|N -1071F3830:lH1071F6020|N -1071F6020:lI116|H1071F8C70 -1071F8C70:lI108|H1071FBBB0 -1071FBBB0:lI115|H1071FEC68 -1071FEC68:lI95|H107201E10 -107201E10:lI103|H107205050 -107205050:lI101|H107208348 -107208348:lI110|H10720B618 -10720B618:lI95|H10720E8D8 -10720E8D8:lI99|H107211C58 -107211C58:lI111|H107215130 -107215130:lI110|H1072187D0 -1072187D0:lI110|H10721C010 -10721C010:lI101|H10721F720 -10721F720:lI99|H107222C18 -107222C18:lI116|H107225DA0 -107225DA0:lI105|H107228BF8 -107228BF8:lI111|H10722B650 -10722B650:lI110|H10722DD58 -10722DD58:lI46|H1072301D0 -1072301D0:lI98|H107232368 -107232368:lI101|H1072341F0 -1072341F0:lI97|H107235D78 -107235D78:lI109|N -1071F3820:lH1071F6010|N -1071F6010:lI105|H1071F8C60 -1071F8C60:lI110|H1071FBBA0 -1071FBBA0:lI101|H1071FEC58 -1071FEC58:lI116|H107201E00 -107201E00:lI95|H107205040 -107205040:lI116|H107208338 -107208338:lI108|H10720B608 -10720B608:lI115|H10720E8C8 -10720E8C8:lI95|H107211C48 -107211C48:lI100|H107215120 -107215120:lI105|H1072187C0 -1072187C0:lI115|H10721C000 -10721C000:lI116|H10721F710 -10721F710:lI46|H107222C08 -107222C08:lI98|H107225D90 -107225D90:lI101|H107228BE8 -107228BE8:lI97|H10722B640 -10722B640:lI109|N -1071F3810:lH1071F6000|N -1071F6000:lI115|H1071F8C50 -1071F8C50:lI115|H1071FBB90 -1071FBB90:lI108|H1071FEC48 -1071FEC48:lI95|H107201DF0 -107201DF0:lI99|H107205030 -107205030:lI111|H107208328 -107208328:lI110|H10720B5F8 -10720B5F8:lI110|H10720E8B8 -10720E8B8:lI101|H107211C38 -107211C38:lI99|H107215110 -107215110:lI116|H1072187B0 -1072187B0:lI105|H10721BFF0 -10721BFF0:lI111|H10721F700 -10721F700:lI110|H107222BF8 -107222BF8:lI95|H107225D80 -107225D80:lI115|H107228BD8 -107228BD8:lI117|H10722B630 -10722B630:lI112|H10722DD48 -10722DD48:lI46|H1072301C0 -1072301C0:lI98|H107232358 -107232358:lI101|H1072341E0 -1072341E0:lI97|H107235D68 -107235D68:lI109|N -1071F3800:lH1071F5FF0|N -1071F5FF0:lI115|H1071F8C40 -1071F8C40:lI115|H1071FBB80 -1071FBB80:lI108|H1071FEC38 -1071FEC38:lI95|H107201DE0 -107201DE0:lI100|H107205020 -107205020:lI105|H107208318 -107208318:lI115|H10720B5E8 -10720B5E8:lI116|H10720E8A8 -10720E8A8:lI95|H107211C28 -107211C28:lI97|H107215100 -107215100:lI100|H1072187A0 -1072187A0:lI109|H10721BFE0 -10721BFE0:lI105|H10721F6F0 -10721F6F0:lI110|H107222BE8 -107222BE8:lI95|H107225D70 -107225D70:lI115|H107228BC8 -107228BC8:lI117|H10722B620 -10722B620:lI112|H10722DD38 -10722DD38:lI46|H1072301B0 -1072301B0:lI98|H107232348 -107232348:lI101|H1072341D0 -1072341D0:lI97|H107235D58 -107235D58:lI109|N -1071F1678:Mn5:H1071F37A0,H1071F37B0,H1071F37C0,H1071F37D0,H1071F37E0 -1071F37A0:lH1071F5F90|N -1071F5F90:lI116|H1071F8BE0 -1071F8BE0:lI108|H1071FBB20 -1071FBB20:lI115|H1071FEBD8 -1071FEBD8:lI95|H107201D80 -107201D80:lI115|H107204FC0 -107204FC0:lI111|H1072082B8 -1072082B8:lI99|H10720B588 -10720B588:lI107|H10720E848 -10720E848:lI101|H107211BC8 -107211BC8:lI116|H1072150A0 -1072150A0:lI46|H107218740 -107218740:lI98|H10721BF90 -10721BF90:lI101|H10721F6A0 -10721F6A0:lI97|H107222BA8 -107222BA8:lI109|N -1071F37E0:lH1071F5FD0|N -1071F5FD0:lI115|H1071F8C20 -1071F8C20:lI115|H1071FBB60 -1071FBB60:lI108|H1071FEC18 -1071FEC18:lI95|H107201DC0 -107201DC0:lI99|H107205000 -107205000:lI114|H1072082F8 -1072082F8:lI108|H10720B5C8 -10720B5C8:lI46|H10720E888 -10720E888:lI98|H107211C08 -107211C08:lI101|H1072150E0 -1072150E0:lI97|H107218780 -107218780:lI109|N -1071F37D0:lH1071F5FC0|N -1071F5FC0:lI115|H1071F8C10 -1071F8C10:lI115|H1071FBB50 -1071FBB50:lI108|H1071FEC08 -1071FEC08:lI95|H107201DB0 -107201DB0:lI116|H107204FF0 -107204FF0:lI114|H1072082E8 -1072082E8:lI97|H10720B5B8 -10720B5B8:lI99|H10720E878 -10720E878:lI101|H107211BF8 -107211BF8:lI46|H1072150D0 -1072150D0:lI98|H107218770 -107218770:lI101|H10721BFC0 -10721BFC0:lI97|H10721F6D0 -10721F6D0:lI109|N -1071F37C0:lH1071F5FB0|N -1071F5FB0:lI100|H1071F8C00 -1071F8C00:lI116|H1071FBB40 -1071FBB40:lI108|H1071FEBF8 -1071FEBF8:lI115|H107201DA0 -107201DA0:lI95|H107204FE0 -107204FE0:lI114|H1072082D8 -1072082D8:lI101|H10720B5A8 -10720B5A8:lI99|H10720E868 -10720E868:lI111|H107211BE8 -107211BE8:lI114|H1072150C0 -1072150C0:lI100|H107218760 -107218760:lI46|H10721BFB0 -10721BFB0:lI98|H10721F6C0 -10721F6C0:lI101|H107222BC8 -107222BC8:lI97|H107225D50 -107225D50:lI109|N -1071F37B0:lH1071F5FA0|N -1071F5FA0:lI100|H1071F8BF0 -1071F8BF0:lI116|H1071FBB30 -1071FBB30:lI108|H1071FEBE8 -1071FEBE8:lI115|H107201D90 -107201D90:lI95|H107204FD0 -107204FD0:lI108|H1072082C8 -1072082C8:lI105|H10720B598 -10720B598:lI115|H10720E858 -10720E858:lI116|H107211BD8 -107211BD8:lI101|H1072150B0 -1072150B0:lI110|H107218750 -107218750:lI101|H10721BFA0 -10721BFA0:lI114|H10721F6B0 -10721F6B0:lI95|H107222BB8 -107222BB8:lI115|H107225D40 -107225D40:lI117|H107228BA8 -107228BA8:lI112|H10722B600 -10722B600:lI46|H10722DD18 -10722DD18:lI98|H107230190 -107230190:lI101|H107232338 -107232338:lI97|H1072341C0 -1072341C0:lI109|N -1071F1640:Mn6:H1071F3720,H1071F3740,H1071F3750,H1071F3760,H1071F3780,H1071F3790 -1071F3720:Mn3:H1071F5EF0,H1071F5F00,H1071F5F10 -1071F5EF0:lH1071F8B40|N -1071F8B40:lI115|H1071FBA80 -1071FBA80:lI115|H1071FEB38 -1071FEB38:lI108|H107201CE0 -107201CE0:lI95|H107204F20 -107204F20:lI115|H107208218 -107208218:lI101|H10720B4E8 -10720B4E8:lI114|H10720E7A8 -10720E7A8:lI118|H107211B28 -107211B28:lI101|H107215000 -107215000:lI114|H1072186A0 -1072186A0:lI95|H10721BF00 -10721BF00:lI115|H10721F620 -10721F620:lI101|H107222B28 -107222B28:lI115|H107225CD0 -107225CD0:lI115|H107228B38 -107228B38:lI105|H10722B590 -10722B590:lI111|H10722DCA8 -10722DCA8:lI110|H107230140 -107230140:lI95|H1072322E8 -1072322E8:lI99|H107234170 -107234170:lI97|H107235D08 -107235D08:lI99|H107237630 -107237630:lI104|H107238CE8 -107238CE8:lI101|H10723A1D0 -10723A1D0:lI46|H10723B530 -10723B530:lI98|H10723C640 -10723C640:lI101|H10723D510 -10723D510:lI97|H10723E2B0 -10723E2B0:lI109|N -1071F5F10:lH1071F8B60|N -1071F8B60:lI116|H1071FBAA0 -1071FBAA0:lI108|H1071FEB58 -1071FEB58:lI115|H107201D00 -107201D00:lI95|H107204F40 -107204F40:lI100|H107208238 -107208238:lI121|H10720B508 -10720B508:lI110|H10720E7C8 -10720E7C8:lI95|H107211B48 -107211B48:lI99|H107215020 -107215020:lI111|H1072186C0 -1072186C0:lI110|H10721BF20 -10721BF20:lI110|H10721F640 -10721F640:lI101|H107222B48 -107222B48:lI99|H107225CF0 -107225CF0:lI116|H107228B58 -107228B58:lI105|H10722B5B0 -10722B5B0:lI111|H10722DCC8 -10722DCC8:lI110|H107230150 -107230150:lI95|H1072322F8 -1072322F8:lI115|H107234180 -107234180:lI117|H107235D18 -107235D18:lI112|H107237640 -107237640:lI46|H107238CF8 -107238CF8:lI98|H10723A1E0 -10723A1E0:lI101|H10723B540 -10723B540:lI97|H10723C650 -10723C650:lI109|N -1071F5F00:lH1071F8B50|N -1071F8B50:lI116|H1071FBA90 -1071FBA90:lI108|H1071FEB48 -1071FEB48:lI115|H107201CF0 -107201CF0:lI95|H107204F30 -107204F30:lI104|H107208228 -107208228:lI97|H10720B4F8 -10720B4F8:lI110|H10720E7B8 -10720E7B8:lI100|H107211B38 -107211B38:lI115|H107215010 -107215010:lI104|H1072186B0 -1072186B0:lI97|H10721BF10 -10721BF10:lI107|H10721F630 -10721F630:lI101|H107222B38 -107222B38:lI46|H107225CE0 -107225CE0:lI98|H107228B48 -107228B48:lI101|H10722B5A0 -10722B5A0:lI97|H10722DCB8 -10722DCB8:lI109|N -1071F3790:lH1071F5F80|N -1071F5F80:lI115|H1071F8BD0 -1071F8BD0:lI115|H1071FBB10 -1071FBB10:lI108|H1071FEBC8 -1071FEBC8:lI95|H107201D70 -107201D70:lI99|H107204FB0 -107204FB0:lI108|H1072082A8 -1072082A8:lI105|H10720B578 -10720B578:lI101|H10720E838 -10720E838:lI110|H107211BB8 -107211BB8:lI116|H107215090 -107215090:lI95|H107218730 -107218730:lI115|H10721BF80 -10721BF80:lI101|H10721F690 -10721F690:lI115|H107222B98 -107222B98:lI115|H107225D30 -107225D30:lI105|H107228B98 -107228B98:lI111|H10722B5F0 -10722B5F0:lI110|H10722DD08 -10722DD08:lI95|H107230180 -107230180:lI99|H107232328 -107232328:lI97|H1072341B0 -1072341B0:lI99|H107235D48 -107235D48:lI104|H107237670 -107237670:lI101|H107238D28 -107238D28:lI95|H10723A210 -10723A210:lI100|H10723B570 -10723B570:lI98|H10723C680 -10723C680:lI46|H10723D540 -10723D540:lI98|H10723E2E0 -10723E2E0:lI101|H10723EF10 -10723EF10:lI97|H10723F9E0 -10723F9E0:lI109|N -1071F3780:lH1071F5F70|N -1071F5F70:lI115|H1071F8BC0 -1071F8BC0:lI115|H1071FBB00 -1071FBB00:lI108|H1071FEBB8 -1071FEBB8:lI95|H107201D60 -107201D60:lI97|H107204FA0 -107204FA0:lI112|H107208298 -107208298:lI112|H10720B568 -10720B568:lI46|H10720E828 -10720E828:lI98|H107211BA8 -107211BA8:lI101|H107215080 -107215080:lI97|H107218720 -107218720:lI109|N -1071F3760:Mn3:H1071F5F40,H1071F5F50,H1071F5F60 -1071F5F40:lH1071F8B90|N -1071F8B90:lI115|H1071FBAD0 -1071FBAD0:lI115|H1071FEB88 -1071FEB88:lI108|H107201D30 -107201D30:lI95|H107204F70 -107204F70:lI115|H107208268 -107208268:lI117|H10720B538 -10720B538:lI112|H10720E7F8 -10720E7F8:lI46|H107211B78 -107211B78:lI98|H107215050 -107215050:lI101|H1072186F0 -1072186F0:lI97|H10721BF50 -10721BF50:lI109|N -1071F5F60:lH1071F8BB0|N -1071F8BB0:lI116|H1071FBAF0 -1071FBAF0:lI108|H1071FEBA8 -1071FEBA8:lI115|H107201D50 -107201D50:lI95|H107204F90 -107204F90:lI115|H107208288 -107208288:lI101|H10720B558 -10720B558:lI114|H10720E818 -10720E818:lI118|H107211B98 -107211B98:lI101|H107215070 -107215070:lI114|H107218710 -107218710:lI95|H10721BF70 -10721BF70:lI99|H10721F680 -10721F680:lI111|H107222B88 -107222B88:lI110|H107225D20 -107225D20:lI110|H107228B88 -107228B88:lI101|H10722B5E0 -10722B5E0:lI99|H10722DCF8 -10722DCF8:lI116|H107230170 -107230170:lI105|H107232318 -107232318:lI111|H1072341A0 -1072341A0:lI110|H107235D38 -107235D38:lI95|H107237660 -107237660:lI49|H107238D18 -107238D18:lI95|H10723A200 -10723A200:lI51|H10723B560 -10723B560:lI46|H10723C670 -10723C670:lI98|H10723D530 -10723D530:lI101|H10723E2D0 -10723E2D0:lI97|H10723EF00 -10723EF00:lI109|N -1071F5F50:lH1071F8BA0|N -1071F8BA0:lI115|H1071FBAE0 -1071FBAE0:lI115|H1071FEB98 -1071FEB98:lI108|H107201D40 -107201D40:lI95|H107204F80 -107204F80:lI97|H107208278 -107208278:lI108|H10720B548 -10720B548:lI101|H10720E808 -10720E808:lI114|H107211B88 -107211B88:lI116|H107215060 -107215060:lI46|H107218700 -107218700:lI98|H10721BF60 -10721BF60:lI101|H10721F670 -10721F670:lI97|H107222B78 -107222B78:lI109|N -1071F3750:lH1071F5F30|N -1071F5F30:lI100|H1071F8B80 -1071F8B80:lI116|H1071FBAC0 -1071FBAC0:lI108|H1071FEB78 -1071FEB78:lI115|H107201D20 -107201D20:lI95|H107204F60 -107204F60:lI115|H107208258 -107208258:lI101|H10720B528 -10720B528:lI114|H10720E7E8 -10720E7E8:lI118|H107211B68 -107211B68:lI101|H107215040 -107215040:lI114|H1072186E0 -1072186E0:lI95|H10721BF40 -10721BF40:lI115|H10721F660 -10721F660:lI101|H107222B68 -107222B68:lI115|H107225D10 -107225D10:lI115|H107228B78 -107228B78:lI105|H10722B5D0 -10722B5D0:lI111|H10722DCE8 -10722DCE8:lI110|H107230160 -107230160:lI95|H107232308 -107232308:lI99|H107234190 -107234190:lI97|H107235D28 -107235D28:lI99|H107237650 -107237650:lI104|H107238D08 -107238D08:lI101|H10723A1F0 -10723A1F0:lI95|H10723B550 -10723B550:lI115|H10723C660 -10723C660:lI117|H10723D520 -10723D520:lI112|H10723E2C0 -10723E2C0:lI46|H10723EEF0 -10723EEF0:lI98|H10723F9D0 -10723F9D0:lI101|H107240340 -107240340:lI97|H107240BD0 -107240BD0:lI109|N -1071F3740:lH1071F5F20|N -1071F5F20:lI116|H1071F8B70 -1071F8B70:lI108|H1071FBAB0 -1071FBAB0:lI115|H1071FEB68 -1071FEB68:lI95|H107201D10 -107201D10:lI115|H107204F50 -107204F50:lI101|H107208248 -107208248:lI114|H10720B518 -10720B518:lI118|H10720E7D8 -10720E7D8:lI101|H107211B58 -107211B58:lI114|H107215030 -107215030:lI95|H1072186D0 -1072186D0:lI115|H10721BF30 -10721BF30:lI117|H10721F650 -10721F650:lI112|H107222B58 -107222B58:lI46|H107225D00 -107225D00:lI98|H107228B68 -107228B68:lI101|H10722B5C0 -10722B5C0:lI97|H10722DCD8 -10722DCD8:lI109|N -1071F1610:Mn5:H1071F36C0,H1071F36D8,H1071F36E8,H1071F36F8,H1071F3708 -1071F36C0:Mn2:H1071F5E80,H1071F5E90 -1071F5E80:lH1071F8AD0|N -1071F8AD0:lI116|H1071FBA10 -1071FBA10:lI108|H1071FEAC8 -1071FEAC8:lI115|H107201C70 -107201C70:lI95|H107204EB0 -107204EB0:lI104|H1072081A8 -1072081A8:lI97|H10720B478 -10720B478:lI110|H10720E738 -10720E738:lI100|H107211AB8 -107211AB8:lI115|H107214F90 -107214F90:lI104|H107218630 -107218630:lI97|H10721BE90 -10721BE90:lI107|H10721F5C0 -10721F5C0:lI101|H107222AC8 -107222AC8:lI95|H107225C70 -107225C70:lI49|H107228AD8 -107228AD8:lI95|H10722B530 -10722B530:lI51|H10722DC58 -10722DC58:lI46|H107230100 -107230100:lI98|H1072322A8 -1072322A8:lI101|H107234140 -107234140:lI97|H107235CE8 -107235CE8:lI109|N -1071F5E90:lH1071F8AE0|N -1071F8AE0:lI115|H1071FBA20 -1071FBA20:lI115|H1071FEAD8 -1071FEAD8:lI108|H107201C80 -107201C80:lI95|H107204EC0 -107204EC0:lI97|H1072081B8 -1072081B8:lI100|H10720B488 -10720B488:lI109|H10720E748 -10720E748:lI105|H107211AC8 -107211AC8:lI110|H107214FA0 -107214FA0:lI95|H107218640 -107218640:lI115|H10721BEA0 -10721BEA0:lI117|H10721F5D0 -10721F5D0:lI112|H107222AD8 -107222AD8:lI46|H107225C80 -107225C80:lI98|H107228AE8 -107228AE8:lI101|H10722B540 -10722B540:lI97|H10722DC68 -10722DC68:lI109|N -1071F3708:Mn2:H1071F5ED0,H1071F5EE0 -1071F5ED0:lH1071F8B20|N -1071F8B20:lI116|H1071FBA60 -1071FBA60:lI108|H1071FEB18 -1071FEB18:lI115|H107201CC0 -107201CC0:lI95|H107204F00 -107204F00:lI115|H1072081F8 -1072081F8:lI117|H10720B4C8 -10720B4C8:lI112|H10720E788 -10720E788:lI46|H107211B08 -107211B08:lI98|H107214FE0 -107214FE0:lI101|H107218680 -107218680:lI97|H10721BEE0 -10721BEE0:lI109|N -1071F5EE0:lH1071F8B30|N -1071F8B30:lI100|H1071FBA70 -1071FBA70:lI116|H1071FEB28 -1071FEB28:lI108|H107201CD0 -107201CD0:lI115|H107204F10 -107204F10:lI95|H107208208 -107208208:lI99|H10720B4D8 -10720B4D8:lI111|H10720E798 -10720E798:lI110|H107211B18 -107211B18:lI110|H107214FF0 -107214FF0:lI101|H107218690 -107218690:lI99|H10721BEF0 -10721BEF0:lI116|H10721F610 -10721F610:lI105|H107222B18 -107222B18:lI111|H107225CC0 -107225CC0:lI110|H107228B28 -107228B28:lI46|H10722B580 -10722B580:lI98|H10722DC98 -10722DC98:lI101|H107230130 -107230130:lI97|H1072322D8 -1072322D8:lI109|N -1071F36F8:lH1071F5EC0|N -1071F5EC0:lI115|H1071F8B10 -1071F8B10:lI115|H1071FBA50 -1071FBA50:lI108|H1071FEB08 -1071FEB08:lI95|H107201CB0 -107201CB0:lI99|H107204EF0 -107204EF0:lI114|H1072081E8 -1072081E8:lI108|H10720B4B8 -10720B4B8:lI95|H10720E778 -10720E778:lI99|H107211AF8 -107211AF8:lI97|H107214FD0 -107214FD0:lI99|H107218670 -107218670:lI104|H10721BED0 -10721BED0:lI101|H10721F600 -10721F600:lI46|H107222B08 -107222B08:lI98|H107225CB0 -107225CB0:lI101|H107228B18 -107228B18:lI97|H10722B570 -10722B570:lI109|N -1071F36E8:lH1071F5EB0|N -1071F5EB0:lI100|H1071F8B00 -1071F8B00:lI116|H1071FBA40 -1071FBA40:lI108|H1071FEAF8 -1071FEAF8:lI115|H107201CA0 -107201CA0:lI95|H107204EE0 -107204EE0:lI112|H1072081D8 -1072081D8:lI97|H10720B4A8 -10720B4A8:lI99|H10720E768 -10720E768:lI107|H107211AE8 -107211AE8:lI101|H107214FC0 -107214FC0:lI116|H107218660 -107218660:lI95|H10721BEC0 -10721BEC0:lI100|H10721F5F0 -10721F5F0:lI101|H107222AF8 -107222AF8:lI109|H107225CA0 -107225CA0:lI117|H107228B08 -107228B08:lI120|H10722B560 -10722B560:lI46|H10722DC88 -10722DC88:lI98|H107230120 -107230120:lI101|H1072322C8 -1072322C8:lI97|H107234160 -107234160:lI109|N -1071F36D8:lH1071F5EA0|N -1071F5EA0:lI116|H1071F8AF0 -1071F8AF0:lI108|H1071FBA30 -1071FBA30:lI115|H1071FEAE8 -1071FEAE8:lI95|H107201C90 -107201C90:lI100|H107204ED0 -107204ED0:lI116|H1072081C8 -1072081C8:lI108|H10720B498 -10720B498:lI115|H10720E758 -10720E758:lI95|H107211AD8 -107211AD8:lI99|H107214FB0 -107214FB0:lI111|H107218650 -107218650:lI110|H10721BEB0 -10721BEB0:lI110|H10721F5E0 -10721F5E0:lI101|H107222AE8 -107222AE8:lI99|H107225C90 -107225C90:lI116|H107228AF8 -107228AF8:lI105|H10722B550 -10722B550:lI111|H10722DC78 -10722DC78:lI110|H107230110 -107230110:lI46|H1072322B8 -1072322B8:lI98|H107234150 -107234150:lI101|H107235CF8 -107235CF8:lI97|H107237620 -107237620:lI109|N -1071F0548:lI47|H1071F15E8 -1071F15E8:lI111|H1071F3690 -1071F3690:lI112|H1071F5E50 -1071F5E50:lI116|H1071F8AA0 -1071F8AA0:lI47|H1071FB9E0 -1071FB9E0:lI104|H1071FEA98 -1071FEA98:lI111|H107201C40 -107201C40:lI109|H107204E80 -107204E80:lI101|H107208178 -107208178:lI98|H10720B458 -10720B458:lI114|H10720E718 -10720E718:lI101|H107211A98 -107211A98:lI119|H107214F70 -107214F70:lI47|H107218610 -107218610:lI67|H10721BE70 -10721BE70:lI101|H10721F5A0 -10721F5A0:lI108|H107222AA8 -107222AA8:lI108|H107225C60 -107225C60:lI97|H107228AC8 -107228AC8:lI114|H10722B520 -10722B520:lI47|H10722DC48 -10722DC48:lI101|H1072300F0 -1072300F0:lI114|H107232298 -107232298:lI108|H107234130 -107234130:lI97|H107235CD8 -107235CD8:lI110|H107237610 -107237610:lI103|H107238CD8 -107238CD8:lI47|H10723A1C0 -10723A1C0:lI50|H10723B520 -10723B520:lI54|H10723C630 -10723C630:lI46|H10723D500 -10723D500:lI48|H10723E2A0 -10723E2A0:lI46|H10723EEE0 -10723EEE0:lI50|H10723F9C0 -10723F9C0:lI47|H107240330 -107240330:lI108|H107240BC0 -107240BC0:lI105|H107241370 -107241370:lI98|H107241AA0 -107241AA0:lI47|H107242170 -107242170:lI101|H1072427E0 -1072427E0:lI114|H107242DE0 -107242DE0:lI108|H107243350 -107243350:lI97|H107243890 -107243890:lI110|H107243DA0 -107243DA0:lI103|H107244290 -107244290:lI47|H107244740 -107244740:lI108|H107244BB0 -107244BB0:lI105|H107245010 -107245010:lI98|H107245460 -107245460:lI47|H107245860 -107245860:lI115|H107245C20 -107245C20:lI115|H107245FB0 -107245FB0:lI108|H107246340 -107246340:lI45|H1072466D0 -1072466D0:lI49|H107246A60 -107246A60:lI49|H107246DA0 -107246DA0:lI46|H1072470C0 -1072470C0:lI48|H1072473E0 -1072473E0:lI46|H1072476F0 -1072476F0:lI50|H1072479F0 -1072479F0:lI47|H280052C20 -1071F0538:lH1071F15C0|H1071F15D8 -1071F15C0:t2:H1071F35C8,H1071F35D8 -1071F35D8:Mh2B:10:H1071F5BC0,H1071F5BF8,H1071F5C10,H1071F5C30,H1071F5C48,H1071F5C58,H1071F5C70,H1071F5C90,H1071F5CA8,H1071F5CD0,H1071F5CE8,H1071F5D10,H1071F5D20,H1071F5D40,H1071F5D58,H1071F5D70 -1071F5BC0:Mn6:H1071F8428,H1071F8438,H1071F8450,H1071F8460,H1071F8470,H1071F8480 -1071F8428:lH1071FB080|N -1071FB080:lI115|H1071FDFC0 -1071FDFC0:lI115|H107201078 -107201078:lI104|H107204220 -107204220:lI95|H107207450 -107207450:lI99|H10720A6C8 -10720A6C8:lI108|H10720D8B8 -10720D8B8:lI105|H107210A58 -107210A58:lI101|H107213CB8 -107213CB8:lI110|H107217070 -107217070:lI116|H10721A5A0 -10721A5A0:lI95|H10721DB40 -10721DB40:lI99|H107221060 -107221060:lI104|H107224268 -107224268:lI97|H107227190 -107227190:lI110|H107229CC8 -107229CC8:lI110|H10722C4D0 -10722C4D0:lI101|H10722EA18 -10722EA18:lI108|H107230C80 -107230C80:lI46|H107232C78 -107232C78:lI98|H107234950 -107234950:lI101|H107236388 -107236388:lI97|H107237B50 -107237B50:lI109|N -1071F8480:lH1071FB0E0|N -1071FB0E0:lI115|H1071FE020 -1071FE020:lI115|H1072010D8 -1072010D8:lI104|H107204280 -107204280:lI95|H1072074B0 -1072074B0:lI115|H10720A728 -10720A728:lI101|H10720D918 -10720D918:lI114|H107210AA8 -107210AA8:lI118|H107213D08 -107213D08:lI101|H1072170C0 -1072170C0:lI114|H10721A5F0 -10721A5F0:lI95|H10721DB90 -10721DB90:lI99|H1072210B0 -1072210B0:lI104|H1072242B8 -1072242B8:lI97|H1072271D0 -1072271D0:lI110|H107229D08 -107229D08:lI110|H10722C500 -10722C500:lI101|H10722EA48 -10722EA48:lI108|H107230CB0 -107230CB0:lI46|H107232CA8 -107232CA8:lI98|H107234980 -107234980:lI101|H1072363A8 -1072363A8:lI97|H107237B70 -107237B70:lI109|N -1071F8470:lH1071FB0D0|N -1071FB0D0:lI115|H1071FE010 -1071FE010:lI115|H1072010C8 -1072010C8:lI104|H107204270 -107204270:lI95|H1072074A0 -1072074A0:lI115|H10720A718 -10720A718:lI101|H10720D908 -10720D908:lI114|H107210A98 -107210A98:lI118|H107213CF8 -107213CF8:lI101|H1072170B0 -1072170B0:lI114|H10721A5E0 -10721A5E0:lI95|H10721DB80 -10721DB80:lI107|H1072210A0 -1072210A0:lI101|H1072242A8 -1072242A8:lI121|H1072271C0 -1072271C0:lI95|H107229CF8 -107229CF8:lI97|H10722C4F0 -10722C4F0:lI112|H10722EA38 -10722EA38:lI105|H107230CA0 -107230CA0:lI46|H107232C98 -107232C98:lI98|H107234970 -107234970:lI101|H107236398 -107236398:lI97|H107237B60 -107237B60:lI109|N -1071F8460:lH1071FB0C0|N -1071FB0C0:lI115|H1071FE000 -1071FE000:lI115|H1072010B8 -1072010B8:lI104|H107204260 -107204260:lI95|H107207490 -107207490:lI109|H10720A708 -10720A708:lI101|H10720D8F8 -10720D8F8:lI115|H107210A88 -107210A88:lI115|H107213CE8 -107213CE8:lI97|H1072170A0 -1072170A0:lI103|H10721A5D0 -10721A5D0:lI101|H10721DB70 -10721DB70:lI46|H107221090 -107221090:lI98|H107224298 -107224298:lI101|H1072271B0 -1072271B0:lI97|H107229CE8 -107229CE8:lI109|N -1071F8450:lH1071FB0B0|N -1071FB0B0:lI115|H1071FDFF0 -1071FDFF0:lI115|H1072010A8 -1072010A8:lI104|H107204250 -107204250:lI46|H107207480 -107207480:lI97|H10720A6F8 -10720A6F8:lI112|H10720D8E8 -10720D8E8:lI112|N -1071F8438:Mn2:H1071FB090,H1071FB0A0 -1071FB090:lH1071FDFD0|N -1071FDFD0:lI115|H107201088 -107201088:lI115|H107204230 -107204230:lI104|H107207460 -107207460:lI95|H10720A6D8 -10720A6D8:lI99|H10720D8C8 -10720D8C8:lI104|H107210A68 -107210A68:lI97|H107213CC8 -107213CC8:lI110|H107217080 -107217080:lI110|H10721A5B0 -10721A5B0:lI101|H10721DB50 -10721DB50:lI108|H107221070 -107221070:lI95|H107224278 -107224278:lI115|H1072271A0 -1072271A0:lI117|H107229CD8 -107229CD8:lI112|H10722C4E0 -10722C4E0:lI46|H10722EA28 -10722EA28:lI98|H107230C90 -107230C90:lI101|H107232C88 -107232C88:lI97|H107234960 -107234960:lI109|N -1071FB0A0:lH1071FDFE0|N -1071FDFE0:lI115|H107201098 -107201098:lI115|H107204240 -107204240:lI104|H107207470 -107207470:lI95|H10720A6E8 -10720A6E8:lI115|H10720D8D8 -10720D8D8:lI102|H107210A78 -107210A78:lI116|H107213CD8 -107213CD8:lI112|H107217090 -107217090:lI46|H10721A5C0 -10721A5C0:lI98|H10721DB60 -10721DB60:lI101|H107221080 -107221080:lI97|H107224288 -107224288:lI109|N -1071F5D70:Mn2:H1071F86A8,H1071F86B8 -1071F86A8:lH1071FB310|N -1071FB310:lI115|H1071FE250 -1071FE250:lI115|H107201308 -107201308:lI104|H1072044B0 -1072044B0:lI95|H1072076E0 -1072076E0:lI115|H10720A958 -10720A958:lI102|H10720DB48 -10720DB48:lI116|H107210CD8 -107210CD8:lI112|H107213F38 -107213F38:lI100|H1072172D0 -1072172D0:lI95|H10721A800 -10721A800:lI102|H10721DD80 -10721DD80:lI105|H107221280 -107221280:lI108|H107224428 -107224428:lI101|H107227300 -107227300:lI46|H107229E38 -107229E38:lI98|H10722C620 -10722C620:lI101|H10722EB58 -10722EB58:lI97|H107230DB0 -107230DB0:lI109|N -1071F86B8:lH1071FB320|N -1071FB320:lI115|H1071FE260 -1071FE260:lI115|H107201318 -107201318:lI104|H1072044C0 -1072044C0:lI95|H1072076F0 -1072076F0:lI99|H10720A968 -10720A968:lI104|H10720DB58 -10720DB58:lI97|H107210CE8 -107210CE8:lI110|H107213F48 -107213F48:lI110|H1072172E0 -1072172E0:lI101|H10721A810 -10721A810:lI108|H10721DD90 -10721DD90:lI46|H107221290 -107221290:lI98|H107224438 -107224438:lI101|H107227310 -107227310:lI97|H107229E48 -107229E48:lI109|N -1071F5D58:Mn2:H1071F8688,H1071F8698 -1071F8688:lH1071FB2F0|N -1071FB2F0:lI115|H1071FE230 -1071FE230:lI115|H1072012E8 -1072012E8:lI104|H107204490 -107204490:lI95|H1072076C0 -1072076C0:lI97|H10720A938 -10720A938:lI99|H10720DB28 -10720DB28:lI99|H107210CB8 -107210CB8:lI101|H107213F18 -107213F18:lI112|H1072172B0 -1072172B0:lI116|H10721A7E0 -10721A7E0:lI111|H10721DD60 -10721DD60:lI114|H107221260 -107221260:lI46|H107224418 -107224418:lI98|H1072272F0 -1072272F0:lI101|H107229E28 -107229E28:lI97|H10722C610 -10722C610:lI109|N -1071F8698:lH1071FB300|N -1071FB300:lI115|H1071FE240 -1071FE240:lI115|H1072012F8 -1072012F8:lI104|H1072044A0 -1072044A0:lI95|H1072076D0 -1072076D0:lI102|H10720A948 -10720A948:lI105|H10720DB38 -10720DB38:lI108|H107210CC8 -107210CC8:lI101|H107213F28 -107213F28:lI46|H1072172C0 -1072172C0:lI98|H10721A7F0 -10721A7F0:lI101|H10721DD70 -10721DD70:lI97|H107221270 -107221270:lI109|N -1071F5D40:Mn2:H1071F8668,H1071F8678 -1071F8668:lH1071FB2D0|N -1071FB2D0:lI115|H1071FE210 -1071FE210:lI115|H1072012C8 -1072012C8:lI104|H107204470 -107204470:lI95|H1072076A0 -1072076A0:lI115|H10720A918 -10720A918:lI117|H10720DB08 -10720DB08:lI98|H107210C98 -107210C98:lI115|H107213EF8 -107213EF8:lI121|H107217290 -107217290:lI115|H10721A7C0 -10721A7C0:lI116|H10721DD40 -10721DD40:lI101|H107221240 -107221240:lI109|H1072243F8 -1072243F8:lI95|H1072272D0 -1072272D0:lI115|H107229E08 -107229E08:lI117|H10722C5F0 -10722C5F0:lI112|H10722EB38 -10722EB38:lI46|H107230D90 -107230D90:lI98|H107232D68 -107232D68:lI101|H107234A30 -107234A30:lI97|H107236448 -107236448:lI109|N -1071F8678:lH1071FB2E0|N -1071FB2E0:lI115|H1071FE220 -1071FE220:lI115|H1072012D8 -1072012D8:lI104|H107204480 -107204480:lI95|H1072076B0 -1072076B0:lI102|H10720A928 -10720A928:lI115|H10720DB18 -10720DB18:lI109|H107210CA8 -107210CA8:lI95|H107213F08 -107213F08:lI117|H1072172A0 -1072172A0:lI115|H10721A7D0 -10721A7D0:lI101|H10721DD50 -10721DD50:lI114|H107221250 -107221250:lI97|H107224408 -107224408:lI117|H1072272E0 -1072272E0:lI116|H107229E18 -107229E18:lI104|H10722C600 -10722C600:lI95|H10722EB48 -10722EB48:lI99|H107230DA0 -107230DA0:lI108|H107232D78 -107232D78:lI105|H107234A40 -107234A40:lI101|H107236458 -107236458:lI110|H107237C10 -107237C10:lI116|H1072391C8 -1072391C8:lI46|H10723A660 -10723A660:lI98|H10723B920 -10723B920:lI101|H10723C950 -10723C950:lI97|H10723D7C0 -10723D7C0:lI109|N -1071F5D20:Mn3:H1071F8638,H1071F8648,H1071F8658 -1071F8638:lH1071FB2A0|N -1071FB2A0:lI115|H1071FE1E0 -1071FE1E0:lI115|H107201298 -107201298:lI104|H107204440 -107204440:lI95|H107207670 -107207670:lI97|H10720A8E8 -10720A8E8:lI103|H10720DAD8 -10720DAD8:lI101|H107210C68 -107210C68:lI110|H107213EC8 -107213EC8:lI116|H107217260 -107217260:lI46|H10721A790 -10721A790:lI98|H10721DD10 -10721DD10:lI101|H107221210 -107221210:lI97|H1072243C8 -1072243C8:lI109|N -1071F8658:lH1071FB2C0|N -1071FB2C0:lI115|H1071FE200 -1071FE200:lI115|H1072012B8 -1072012B8:lI104|H107204460 -107204460:lI95|H107207690 -107207690:lI100|H10720A908 -10720A908:lI97|H10720DAF8 -10720DAF8:lI101|H107210C88 -107210C88:lI109|H107213EE8 -107213EE8:lI111|H107217280 -107217280:lI110|H10721A7B0 -10721A7B0:lI95|H10721DD30 -10721DD30:lI99|H107221230 -107221230:lI104|H1072243E8 -1072243E8:lI97|H1072272C0 -1072272C0:lI110|H107229DF8 -107229DF8:lI110|H10722C5E0 -10722C5E0:lI101|H10722EB28 -10722EB28:lI108|H107230D80 -107230D80:lI46|H107232D58 -107232D58:lI98|H107234A20 -107234A20:lI101|H107236438 -107236438:lI97|H107237C00 -107237C00:lI109|N -1071F8648:lH1071FB2B0|N -1071FB2B0:lI115|H1071FE1F0 -1071FE1F0:lI115|H1072012A8 -1072012A8:lI104|H107204450 -107204450:lI95|H107207680 -107207680:lI116|H10720A8F8 -10720A8F8:lI99|H10720DAE8 -10720DAE8:lI112|H107210C78 -107210C78:lI105|H107213ED8 -107213ED8:lI112|H107217270 -107217270:lI95|H10721A7A0 -10721A7A0:lI102|H10721DD20 -10721DD20:lI111|H107221220 -107221220:lI114|H1072243D8 -1072243D8:lI119|H1072272B0 -1072272B0:lI97|H107229DE8 -107229DE8:lI114|H10722C5D0 -10722C5D0:lI100|H10722EB18 -10722EB18:lI95|H107230D70 -107230D70:lI99|H107232D48 -107232D48:lI108|H107234A10 -107234A10:lI105|H107236428 -107236428:lI101|H107237BF0 -107237BF0:lI110|H1072391B8 -1072391B8:lI116|H10723A650 -10723A650:lI46|H10723B910 -10723B910:lI98|H10723C940 -10723C940:lI101|H10723D7B0 -10723D7B0:lI97|H10723E500 -10723E500:lI109|N -1071F5D10:lH1071F8628|N -1071F8628:lI115|H1071FB290 -1071FB290:lI115|H1071FE1D0 -1071FE1D0:lI104|H107201288 -107201288:lI95|H107204430 -107204430:lI97|H107207660 -107207660:lI112|H10720A8D8 -10720A8D8:lI112|H10720DAC8 -10720DAC8:lI46|H107210C58 -107210C58:lI98|H107213EB8 -107213EB8:lI101|H107217250 -107217250:lI97|H10721A780 -10721A780:lI109|N -1071F5CE8:Mn4:H1071F85E8,H1071F85F8,H1071F8608,H1071F8618 -1071F85E8:lH1071FB250|N -1071FB250:lI115|H1071FE190 -1071FE190:lI115|H107201248 -107201248:lI104|H1072043F0 -1072043F0:lI95|H107207620 -107207620:lI120|H10720A898 -10720A898:lI102|H10720DA88 -10720DA88:lI101|H107210C18 -107210C18:lI114|H107213E78 -107213E78:lI46|H107217210 -107217210:lI98|H10721A740 -10721A740:lI101|H10721DCD0 -10721DCD0:lI97|H1072211D0 -1072211D0:lI109|N -1071F8618:lH1071FB280|N -1071FB280:lI115|H1071FE1C0 -1071FE1C0:lI115|H107201278 -107201278:lI104|H107204420 -107204420:lI95|H107207650 -107207650:lI98|H10720A8C8 -10720A8C8:lI105|H10720DAB8 -10720DAB8:lI116|H107210C48 -107210C48:lI115|H107213EA8 -107213EA8:lI46|H107217240 -107217240:lI98|H10721A770 -10721A770:lI101|H10721DD00 -10721DD00:lI97|H107221200 -107221200:lI109|N -1071F8608:lH1071FB270|N -1071FB270:lI115|H1071FE1B0 -1071FE1B0:lI115|H107201268 -107201268:lI104|H107204410 -107204410:lI95|H107207640 -107207640:lI102|H10720A8B8 -10720A8B8:lI115|H10720DAA8 -10720DAA8:lI109|H107210C38 -107210C38:lI95|H107213E98 -107213E98:lI107|H107217230 -107217230:lI101|H10721A760 -10721A760:lI120|H10721DCF0 -10721DCF0:lI105|H1072211F0 -1072211F0:lI110|H1072243B8 -1072243B8:lI105|H1072272A0 -1072272A0:lI116|H107229DD8 -107229DD8:lI46|H10722C5C0 -10722C5C0:lI98|H10722EB08 -10722EB08:lI101|H107230D60 -107230D60:lI97|H107232D38 -107232D38:lI109|N -1071F85F8:lH1071FB260|N -1071FB260:lI115|H1071FE1A0 -1071FE1A0:lI115|H107201258 -107201258:lI104|H107204400 -107204400:lI95|H107207630 -107207630:lI111|H10720A8A8 -10720A8A8:lI112|H10720DA98 -10720DA98:lI116|H107210C28 -107210C28:lI105|H107213E88 -107213E88:lI111|H107217220 -107217220:lI110|H10721A750 -10721A750:lI115|H10721DCE0 -10721DCE0:lI46|H1072211E0 -1072211E0:lI98|H1072243A8 -1072243A8:lI101|H107227290 -107227290:lI97|H107229DC8 -107229DC8:lI109|N -1071F5CD0:Mn2:H1071F85C8,H1071F85D8 -1071F85C8:lH1071FB230|N -1071FB230:lI115|H1071FE170 -1071FE170:lI115|H107201228 -107201228:lI104|H1072043D0 -1072043D0:lI95|H107207600 -107207600:lI116|H10720A878 -10720A878:lI99|H10720DA68 -10720DA68:lI112|H107210BF8 -107210BF8:lI105|H107213E58 -107213E58:lI112|H1072171F0 -1072171F0:lI95|H10721A720 -10721A720:lI102|H10721DCB0 -10721DCB0:lI111|H1072211B0 -1072211B0:lI114|H107224388 -107224388:lI119|H107227270 -107227270:lI97|H107229DA8 -107229DA8:lI114|H10722C5A0 -10722C5A0:lI100|H10722EAE8 -10722EAE8:lI95|H107230D40 -107230D40:lI97|H107232D28 -107232D28:lI99|H107234A00 -107234A00:lI99|H107236418 -107236418:lI101|H107237BE0 -107237BE0:lI112|H1072391A8 -1072391A8:lI116|H10723A640 -10723A640:lI111|H10723B900 -10723B900:lI114|H10723C930 -10723C930:lI95|H10723D7A0 -10723D7A0:lI115|H10723E4F0 -10723E4F0:lI117|H10723F100 -10723F100:lI112|H10723FBC0 -10723FBC0:lI46|H107240500 -107240500:lI98|H107240D80 -107240D80:lI101|H107241510 -107241510:lI97|H107241C40 -107241C40:lI109|N -1071F85D8:lH1071FB240|N -1071FB240:lI115|H1071FE180 -1071FE180:lI115|H107201238 -107201238:lI104|H1072043E0 -1072043E0:lI95|H107207610 -107207610:lI115|H10720A888 -10720A888:lI121|H10720DA78 -10720DA78:lI115|H107210C08 -107210C08:lI116|H107213E68 -107213E68:lI101|H107217200 -107217200:lI109|H10721A730 -10721A730:lI95|H10721DCC0 -10721DCC0:lI115|H1072211C0 -1072211C0:lI117|H107224398 -107224398:lI112|H107227280 -107227280:lI46|H107229DB8 -107229DB8:lI98|H10722C5B0 -10722C5B0:lI101|H10722EAF8 -10722EAF8:lI97|H107230D50 -107230D50:lI109|N -1071F5CA8:Mn4:H1071F8588,H1071F8598,H1071F85A8,H1071F85B8 -1071F8588:lH1071FB1F0|N -1071FB1F0:lI115|H1071FE130 -1071FE130:lI115|H1072011E8 -1072011E8:lI104|H107204390 -107204390:lI95|H1072075C0 -1072075C0:lI116|H10720A838 -10720A838:lI99|H10720DA28 -10720DA28:lI112|H107210BB8 -107210BB8:lI105|H107213E18 -107213E18:lI112|H1072171B0 -1072171B0:lI95|H10721A6E0 -10721A6E0:lI102|H10721DC70 -10721DC70:lI111|H107221170 -107221170:lI114|H107224358 -107224358:lI119|H107227250 -107227250:lI97|H107229D88 -107229D88:lI114|H10722C580 -10722C580:lI100|H10722EAC8 -10722EAC8:lI95|H107230D30 -107230D30:lI115|H107232D18 -107232D18:lI114|H1072349F0 -1072349F0:lI118|H107236408 -107236408:lI46|H107237BD0 -107237BD0:lI98|H107239198 -107239198:lI101|H10723A630 -10723A630:lI97|H10723B8F0 -10723B8F0:lI109|N -1071F85B8:lH1071FB220|N -1071FB220:lI115|H1071FE160 -1071FE160:lI115|H107201218 -107201218:lI104|H1072043C0 -1072043C0:lI95|H1072075F0 -1072075F0:lI97|H10720A868 -10720A868:lI117|H10720DA58 -10720DA58:lI116|H107210BE8 -107210BE8:lI104|H107213E48 -107213E48:lI46|H1072171E0 -1072171E0:lI98|H10721A710 -10721A710:lI101|H10721DCA0 -10721DCA0:lI97|H1072211A0 -1072211A0:lI109|N -1071F85A8:lH1071FB210|N -1071FB210:lI115|H1071FE150 -1071FE150:lI115|H107201208 -107201208:lI104|H1072043B0 -1072043B0:lI95|H1072075E0 -1072075E0:lI116|H10720A858 -10720A858:lI114|H10720DA48 -10720DA48:lI97|H107210BD8 -107210BD8:lI110|H107213E38 -107213E38:lI115|H1072171D0 -1072171D0:lI112|H10721A700 -10721A700:lI111|H10721DC90 -10721DC90:lI114|H107221190 -107221190:lI116|H107224378 -107224378:lI46|H107227260 -107227260:lI98|H107229D98 -107229D98:lI101|H10722C590 -10722C590:lI97|H10722EAD8 -10722EAD8:lI109|N -1071F8598:lH1071FB200|N -1071FB200:lI115|H1071FE140 -1071FE140:lI115|H1072011F8 -1072011F8:lI104|H1072043A0 -1072043A0:lI95|H1072075D0 -1072075D0:lI115|H10720A848 -10720A848:lI104|H10720DA38 -10720DA38:lI101|H107210BC8 -107210BC8:lI108|H107213E28 -107213E28:lI108|H1072171C0 -1072171C0:lI46|H10721A6F0 -10721A6F0:lI98|H10721DC80 -10721DC80:lI101|H107221180 -107221180:lI97|H107224368 -107224368:lI109|N -1071F5C90:Mn2:H1071F8568,H1071F8578 -1071F8568:lH1071FB1D0|N -1071FB1D0:lI115|H1071FE110 -1071FE110:lI115|H1072011C8 -1072011C8:lI104|H107204370 -107204370:lI95|H1072075A0 -1072075A0:lI102|H10720A818 -10720A818:lI115|H10720DA08 -10720DA08:lI109|H107210B98 -107210B98:lI95|H107213DF8 -107213DF8:lI117|H107217190 -107217190:lI115|H10721A6C0 -10721A6C0:lI101|H10721DC50 -10721DC50:lI114|H107221150 -107221150:lI97|H107224338 -107224338:lI117|H107227230 -107227230:lI116|H107229D68 -107229D68:lI104|H10722C560 -10722C560:lI95|H10722EAA8 -10722EAA8:lI115|H107230D10 -107230D10:lI101|H107232CF8 -107232CF8:lI114|H1072349D0 -1072349D0:lI118|H1072363E8 -1072363E8:lI101|H107237BB0 -107237BB0:lI114|H107239188 -107239188:lI46|H10723A620 -10723A620:lI98|H10723B8E0 -10723B8E0:lI101|H10723C920 -10723C920:lI97|H10723D790 -10723D790:lI109|N -1071F8578:lH1071FB1E0|N -1071FB1E0:lI115|H1071FE120 -1071FE120:lI115|H1072011D8 -1072011D8:lI104|H107204380 -107204380:lI95|H1072075B0 -1072075B0:lI99|H10720A828 -10720A828:lI108|H10720DA18 -10720DA18:lI105|H107210BA8 -107210BA8:lI101|H107213E08 -107213E08:lI110|H1072171A0 -1072171A0:lI116|H10721A6D0 -10721A6D0:lI95|H10721DC60 -10721DC60:lI107|H107221160 -107221160:lI101|H107224348 -107224348:lI121|H107227240 -107227240:lI95|H107229D78 -107229D78:lI97|H10722C570 -10722C570:lI112|H10722EAB8 -10722EAB8:lI105|H107230D20 -107230D20:lI46|H107232D08 -107232D08:lI98|H1072349E0 -1072349E0:lI101|H1072363F8 -1072363F8:lI97|H107237BC0 -107237BC0:lI109|N -1071F5C70:Mn3:H1071F8538,H1071F8548,H1071F8558 -1071F8538:lH1071FB1A0|N -1071FB1A0:lI115|H1071FE0E0 -1071FE0E0:lI115|H107201198 -107201198:lI104|H107204340 -107204340:lI46|H107207570 -107207570:lI97|H10720A7E8 -10720A7E8:lI112|H10720D9D8 -10720D9D8:lI112|H107210B68 -107210B68:lI117|H107213DC8 -107213DC8:lI112|N -1071F8558:lH1071FB1C0|N -1071FB1C0:lI115|H1071FE100 -1071FE100:lI115|H1072011B8 -1072011B8:lI104|H107204360 -107204360:lI95|H107207590 -107207590:lI105|H10720A808 -10720A808:lI111|H10720D9F8 -10720D9F8:lI46|H107210B88 -107210B88:lI98|H107213DE8 -107213DE8:lI101|H107217180 -107217180:lI97|H10721A6B0 -10721A6B0:lI109|N -1071F8548:lH1071FB1B0|N -1071FB1B0:lI115|H1071FE0F0 -1071FE0F0:lI115|H1072011A8 -1072011A8:lI104|H107204350 -107204350:lI95|H107207580 -107207580:lI99|H10720A7F8 -10720A7F8:lI111|H10720D9E8 -10720D9E8:lI110|H107210B78 -107210B78:lI110|H107213DD8 -107213DD8:lI101|H107217170 -107217170:lI99|H10721A6A0 -10721A6A0:lI116|H10721DC40 -10721DC40:lI105|H107221140 -107221140:lI111|H107224328 -107224328:lI110|H107227220 -107227220:lI46|H107229D58 -107229D58:lI98|H10722C550 -10722C550:lI101|H10722EA98 -10722EA98:lI97|H107230D00 -107230D00:lI109|N -1071F5C58:Mn2:H1071F8518,H1071F8528 -1071F8518:lH1071FB180|N -1071FB180:lI115|H1071FE0C0 -1071FE0C0:lI115|H107201178 -107201178:lI104|H107204320 -107204320:lI95|H107207550 -107207550:lI115|H10720A7C8 -10720A7C8:lI102|H10720D9B8 -10720D9B8:lI116|H107210B48 -107210B48:lI112|H107213DA8 -107213DA8:lI100|H107217150 -107217150:lI95|H10721A680 -10721A680:lI102|H10721DC20 -10721DC20:lI105|H107221120 -107221120:lI108|H107224318 -107224318:lI101|H107227210 -107227210:lI95|H107229D48 -107229D48:lI97|H10722C540 -10722C540:lI112|H10722EA88 -10722EA88:lI105|H107230CF0 -107230CF0:lI46|H107232CE8 -107232CE8:lI98|H1072349C0 -1072349C0:lI101|H1072363D8 -1072363D8:lI97|H107237BA0 -107237BA0:lI109|N -1071F8528:lH1071FB190|N -1071FB190:lI115|H1071FE0D0 -1071FE0D0:lI115|H107201188 -107201188:lI104|H107204330 -107204330:lI95|H107207560 -107207560:lI105|H10720A7D8 -10720A7D8:lI110|H10720D9C8 -10720D9C8:lI102|H107210B58 -107210B58:lI111|H107213DB8 -107213DB8:lI46|H107217160 -107217160:lI98|H10721A690 -10721A690:lI101|H10721DC30 -10721DC30:lI97|H107221130 -107221130:lI109|N -1071F5C48:lH1071F8508|N -1071F8508:lI115|H1071FB170 -1071FB170:lI115|H1071FE0B0 -1071FE0B0:lI104|H107201168 -107201168:lI95|H107204310 -107204310:lI99|H107207540 -107207540:lI111|H10720A7B8 -10720A7B8:lI110|H10720D9A8 -10720D9A8:lI110|H107210B38 -107210B38:lI101|H107213D98 -107213D98:lI99|H107217140 -107217140:lI116|H10721A670 -10721A670:lI105|H10721DC10 -10721DC10:lI111|H107221110 -107221110:lI110|H107224308 -107224308:lI95|H107227200 -107227200:lI104|H107229D38 -107229D38:lI97|H10722C530 -10722C530:lI110|H10722EA78 -10722EA78:lI100|H107230CE0 -107230CE0:lI108|H107232CD8 -107232CD8:lI101|H1072349B0 -1072349B0:lI114|H1072363C8 -1072363C8:lI46|H107237B90 -107237B90:lI98|H107239178 -107239178:lI101|H10723A610 -10723A610:lI97|H10723B8D0 -10723B8D0:lI109|N -1071F5C30:Mn2:H1071F84E0,H1071F84F8 -1071F84E0:Mn2:H1071FB140,H1071FB150 -1071FB140:lH1071FE080|N -1071FE080:lI115|H107201138 -107201138:lI115|H1072042E0 -1072042E0:lI104|H107207510 -107207510:lI95|H10720A788 -10720A788:lI100|H10720D978 -10720D978:lI98|H107210B08 -107210B08:lI103|H107213D68 -107213D68:lI46|H107217120 -107217120:lI98|H10721A650 -10721A650:lI101|H10721DBF0 -10721DBF0:lI97|H1072210F0 -1072210F0:lI109|N -1071FB150:lH1071FE090|N -1071FE090:lI115|H107201148 -107201148:lI115|H1072042F0 -1072042F0:lI104|H107207520 -107207520:lI46|H10720A798 -10720A798:lI98|H10720D988 -10720D988:lI101|H107210B18 -107210B18:lI97|H107213D78 -107213D78:lI109|N -1071F84F8:lH1071FB160|N -1071FB160:lI115|H1071FE0A0 -1071FE0A0:lI115|H107201158 -107201158:lI104|H107204300 -107204300:lI95|H107207530 -107207530:lI115|H10720A7A8 -10720A7A8:lI102|H10720D998 -10720D998:lI116|H107210B28 -107210B28:lI112|H107213D88 -107213D88:lI100|H107217130 -107217130:lI46|H10721A660 -10721A660:lI98|H10721DC00 -10721DC00:lI101|H107221100 -107221100:lI97|H1072242F8 -1072242F8:lI109|N -1071F5C10:Mn3:H1071F84B0,H1071F84C0,H1071F84D0 -1071F84B0:lH1071FB110|N -1071FB110:lI115|H1071FE050 -1071FE050:lI115|H107201108 -107201108:lI104|H1072042B0 -1072042B0:lI95|H1072074E0 -1072074E0:lI110|H10720A758 -10720A758:lI111|H10720D948 -10720D948:lI95|H107210AD8 -107210AD8:lI105|H107213D38 -107213D38:lI111|H1072170F0 -1072170F0:lI46|H10721A620 -10721A620:lI98|H10721DBC0 -10721DBC0:lI101|H1072210D0 -1072210D0:lI97|H1072242D8 -1072242D8:lI109|N -1071F84D0:lH1071FB130|N -1071FB130:lI115|H1071FE070 -1071FE070:lI115|H107201128 -107201128:lI104|H1072042D0 -1072042D0:lI95|H107207500 -107207500:lI99|H10720A778 -10720A778:lI108|H10720D968 -10720D968:lI105|H107210AF8 -107210AF8:lI46|H107213D58 -107213D58:lI98|H107217110 -107217110:lI101|H10721A640 -10721A640:lI97|H10721DBE0 -10721DBE0:lI109|N -1071F84C0:lH1071FB120|N -1071FB120:lI115|H1071FE060 -1071FE060:lI115|H107201118 -107201118:lI104|H1072042C0 -1072042C0:lI95|H1072074F0 -1072074F0:lI116|H10720A768 -10720A768:lI99|H10720D958 -10720D958:lI112|H107210AE8 -107210AE8:lI105|H107213D48 -107213D48:lI112|H107217100 -107217100:lI95|H10721A630 -10721A630:lI102|H10721DBD0 -10721DBD0:lI111|H1072210E0 -1072210E0:lI114|H1072242E8 -1072242E8:lI119|H1072271F0 -1072271F0:lI97|H107229D28 -107229D28:lI114|H10722C520 -10722C520:lI100|H10722EA68 -10722EA68:lI95|H107230CD0 -107230CD0:lI97|H107232CC8 -107232CC8:lI99|H1072349A0 -1072349A0:lI99|H1072363B8 -1072363B8:lI101|H107237B80 -107237B80:lI112|H107239168 -107239168:lI116|H10723A600 -10723A600:lI111|H10723B8C0 -10723B8C0:lI114|H10723C910 -10723C910:lI46|H10723D780 -10723D780:lI98|H10723E4E0 -10723E4E0:lI101|H10723F0F0 -10723F0F0:lI97|H10723FBB0 -10723FBB0:lI109|N -1071F5BF8:Mn2:H1071F8490,H1071F84A0 -1071F8490:lH1071FB0F0|N -1071FB0F0:lI115|H1071FE030 -1071FE030:lI115|H1072010E8 -1072010E8:lI104|H107204290 -107204290:lI95|H1072074C0 -1072074C0:lI97|H10720A738 -10720A738:lI99|H10720D928 -10720D928:lI99|H107210AB8 -107210AB8:lI101|H107213D18 -107213D18:lI112|H1072170D0 -1072170D0:lI116|H10721A600 -10721A600:lI111|H10721DBA0 -10721DBA0:lI114|H1072210C0 -1072210C0:lI95|H1072242C8 -1072242C8:lI115|H1072271E0 -1072271E0:lI117|H107229D18 -107229D18:lI112|H10722C510 -10722C510:lI46|H10722EA58 -10722EA58:lI98|H107230CC0 -107230CC0:lI101|H107232CB8 -107232CB8:lI97|H107234990 -107234990:lI109|N -1071F84A0:lH1071FB100|N -1071FB100:lI115|H1071FE040 -1071FE040:lI115|H1072010F8 -1072010F8:lI104|H1072042A0 -1072042A0:lI95|H1072074D0 -1072074D0:lI108|H10720A748 -10720A748:lI105|H10720D938 -10720D938:lI98|H107210AC8 -107210AC8:lI46|H107213D28 -107213D28:lI98|H1072170E0 -1072170E0:lI101|H10721A610 -10721A610:lI97|H10721DBB0 -10721DBB0:lI109|N -1071F35C8:lI47|H1071F5BB0 -1071F5BB0:lI111|H1071F8418 -1071F8418:lI112|H1071FB070 -1071FB070:lI116|H1071FDFB0 -1071FDFB0:lI47|H107201068 -107201068:lI104|H107204210 -107204210:lI111|H107207440 -107207440:lI109|H10720A6B8 -10720A6B8:lI101|H10720D8A8 -10720D8A8:lI98|H107210A48 -107210A48:lI114|H107213CA8 -107213CA8:lI101|H107217060 -107217060:lI119|H10721A590 -10721A590:lI47|H10721DB30 -10721DB30:lI67|H107221050 -107221050:lI101|H107224258 -107224258:lI108|H107227180 -107227180:lI108|H107229CB8 -107229CB8:lI97|H10722C4C0 -10722C4C0:lI114|H10722EA08 -10722EA08:lI47|H107230C70 -107230C70:lI101|H107232C68 -107232C68:lI114|H107234940 -107234940:lI108|H107236378 -107236378:lI97|H107237B40 -107237B40:lI110|H107239158 -107239158:lI103|H10723A5F0 -10723A5F0:lI47|H10723B8B0 -10723B8B0:lI50|H10723C900 -10723C900:lI54|H10723D770 -10723D770:lI46|H10723E4D0 -10723E4D0:lI48|H10723F0E0 -10723F0E0:lI46|H10723FBA0 -10723FBA0:lI50|H1072404F0 -1072404F0:lI47|H107240D70 -107240D70:lI108|H107241500 -107241500:lI105|H107241C30 -107241C30:lI98|H107242300 -107242300:lI47|H107242970 -107242970:lI101|H107242F70 -107242F70:lI114|H1072434E0 -1072434E0:lI108|H107243A20 -107243A20:lI97|H107243F10 -107243F10:lI110|H107244400 -107244400:lI103|H1072448B0 -1072448B0:lI47|H107244D20 -107244D20:lI108|H107245180 -107245180:lI105|H1072455D0 -1072455D0:lI98|H1072459D0 -1072459D0:lI47|H107245D90 -107245D90:lI115|H107246120 -107246120:lI115|H1072464B0 -1072464B0:lI104|H107246840 -107246840:lI45|H107246BD0 -107246BD0:lI53|H107246F00 -107246F00:lI46|H107247220 -107247220:lI48|H107247530 -107247530:lI46|H107247830 -107247830:lI49|H107247B30 -107247B30:lI47|H280052C20 -1071F15D8:lH1071F3668|H1071F3680 -1071F3668:t2:H1071F5D88,H1071F5D98 -1071F5D98:Mh5B:10:H1071F86D8,H1071F8700,H1071F8720,H1071F8740,H1071F8778,H1071F8788,H1071F87B8,H1071F87D8,H1071F87F8,H1071F8840,H1071F8878,H1071F8898,H1071F88E0,H1071F8920,H1071F8950,H1071F8988 -1071F86D8:Mn4:H1071FB340,H1071FB350,H1071FB370,H1071FB380 -1071FB340:lH1071FE280|N -1071FE280:lI115|H107201338 -107201338:lI110|H1072044E0 -1072044E0:lI109|H107207710 -107207710:lI112|H10720A988 -10720A988:lI95|H10720DB78 -10720DB78:lI118|H107210D08 -107210D08:lI105|H107213F68 -107213F68:lI101|H107217300 -107217300:lI119|H10721A830 -10721A830:lI95|H10721DDB0 -10721DDB0:lI98|H1072212B0 -1072212B0:lI97|H107224458 -107224458:lI115|H107227330 -107227330:lI101|H107229E68 -107229E68:lI100|H10722C640 -10722C640:lI95|H10722EB78 -10722EB78:lI97|H107230DD0 -107230DD0:lI99|H107232D98 -107232D98:lI109|H107234A60 -107234A60:lI95|H107236478 -107236478:lI109|H107237C30 -107237C30:lI105|H1072391E8 -1072391E8:lI98|H10723A680 -10723A680:lI46|H10723B940 -10723B940:lI98|H10723C970 -10723C970:lI101|H10723D7E0 -10723D7E0:lI97|H10723E520 -10723E520:lI109|N -1071FB380:lH1071FE2D0|N -1071FE2D0:lI115|H107201388 -107201388:lI110|H107204530 -107204530:lI109|H107207760 -107207760:lI112|H10720A9D8 -10720A9D8:lI97|H10720DBC8 -10720DBC8:lI95|H107210D58 -107210D58:lI97|H107213FB8 -107213FB8:lI103|H107217350 -107217350:lI101|H10721A880 -10721A880:lI110|H10721DE00 -10721DE00:lI116|H107221300 -107221300:lI95|H1072244A8 -1072244A8:lI115|H107227380 -107227380:lI117|H107229EB8 -107229EB8:lI112|H10722C670 -10722C670:lI46|H10722EBA8 -10722EBA8:lI98|H107230E00 -107230E00:lI101|H107232DC8 -107232DC8:lI97|H107234A90 -107234A90:lI109|N -1071FB370:lH1071FE2C0|N -1071FE2C0:lI115|H107201378 -107201378:lI110|H107204520 -107204520:lI109|H107207750 -107207750:lI112|H10720A9C8 -10720A9C8:lI97|H10720DBB8 -10720DBB8:lI95|H107210D48 -107210D48:lI115|H107213FA8 -107213FA8:lI118|H107217340 -107217340:lI98|H10721A870 -10721A870:lI108|H10721DDF0 -10721DDF0:lI46|H1072212F0 -1072212F0:lI98|H107224498 -107224498:lI101|H107227370 -107227370:lI97|H107229EA8 -107229EA8:lI109|N -1071FB350:Mn3:H1071FE290,H1071FE2A0,H1071FE2B0 -1071FE290:lH107201348|N -107201348:lI115|H1072044F0 -1072044F0:lI110|H107207720 -107207720:lI109|H10720A998 -10720A998:lI112|H10720DB88 -10720DB88:lI95|H107210D18 -107210D18:lI102|H107213F78 -107213F78:lI114|H107217310 -107217310:lI97|H10721A840 -10721A840:lI109|H10721DDC0 -10721DDC0:lI101|H1072212C0 -1072212C0:lI119|H107224468 -107224468:lI111|H107227340 -107227340:lI114|H107229E78 -107229E78:lI107|H10722C650 -10722C650:lI95|H10722EB88 -10722EB88:lI109|H107230DE0 -107230DE0:lI105|H107232DA8 -107232DA8:lI98|H107234A70 -107234A70:lI46|H107236488 -107236488:lI98|H107237C40 -107237C40:lI101|H1072391F8 -1072391F8:lI97|H10723A690 -10723A690:lI109|N -1071FE2B0:lH107201368|N -107201368:lI115|H107204510 -107204510:lI110|H107207740 -107207740:lI109|H10720A9B8 -10720A9B8:lI112|H10720DBA8 -10720DBA8:lI97|H107210D38 -107210D38:lI95|H107213F98 -107213F98:lI97|H107217330 -107217330:lI99|H10721A860 -10721A860:lI109|H10721DDE0 -10721DDE0:lI46|H1072212E0 -1072212E0:lI98|H107224488 -107224488:lI101|H107227360 -107227360:lI97|H107229E98 -107229E98:lI109|N -1071FE2A0:lH107201358|N -107201358:lI115|H107204500 -107204500:lI110|H107207730 -107207730:lI109|H10720A9A8 -10720A9A8:lI112|H10720DB98 -10720DB98:lI109|H107210D28 -107210D28:lI95|H107213F88 -107213F88:lI117|H107217320 -107217320:lI115|H10721A850 -10721A850:lI101|H10721DDD0 -10721DDD0:lI114|H1072212D0 -1072212D0:lI95|H107224478 -107224478:lI100|H107227350 -107227350:lI101|H107229E88 -107229E88:lI102|H10722C660 -10722C660:lI97|H10722EB98 -10722EB98:lI117|H107230DF0 -107230DF0:lI108|H107232DB8 -107232DB8:lI116|H107234A80 -107234A80:lI46|H107236498 -107236498:lI98|H107237C50 -107237C50:lI101|H107239208 -107239208:lI97|H10723A6A0 -10723A6A0:lI109|N -1071F8988:Mn5:H1071FB820,H1071FB830,H1071FB840,H1071FB850,H1071FB860 -1071FB820:lH1071FE7D0|N -1071FE7D0:lI115|H107201888 -107201888:lI110|H107204A30 -107204A30:lI109|H107207C60 -107207C60:lI112|H10720AED8 -10720AED8:lI97|H10720E0C8 -10720E0C8:lI95|H107211258 -107211258:lI116|H1072144B8 -1072144B8:lI97|H107217850 -107217850:lI114|H10721AD60 -10721AD60:lI103|H10721E2C0 -10721E2C0:lI101|H1072217A0 -1072217A0:lI116|H107224948 -107224948:lI95|H1072277E0 -1072277E0:lI99|H10722A268 -10722A268:lI97|H10722C9C0 -10722C9C0:lI99|H10722EED8 -10722EED8:lI104|H107231100 -107231100:lI101|H107233058 -107233058:lI46|H107234CC0 -107234CC0:lI98|H107236688 -107236688:lI101|H107237DF0 -107237DF0:lI97|H107239388 -107239388:lI109|N -1071FB860:lH1071FE818|N -1071FE818:lI115|H1072018D8 -1072018D8:lI110|H107204A80 -107204A80:lI109|H107207CB0 -107207CB0:lI112|H10720AF28 -10720AF28:lI97|H10720E118 -10720E118:lI95|H1072112A8 -1072112A8:lI109|H107214508 -107214508:lI105|H1072178A0 -1072178A0:lI98|H10721ADB0 -10721ADB0:lI95|H10721E310 -10721E310:lI100|H1072217F0 -1072217F0:lI97|H107224998 -107224998:lI116|H107227830 -107227830:lI97|H10722A2B8 -10722A2B8:lI95|H10722CA10 -10722CA10:lI116|H10722EF28 -10722EF28:lI116|H107231140 -107231140:lI116|H107233078 -107233078:lI110|H107234CE0 -107234CE0:lI46|H1072366A8 -1072366A8:lI98|H107237E10 -107237E10:lI101|H1072393A8 -1072393A8:lI97|H10723A800 -10723A800:lI109|N -1071FB850:Mn1:H1071FE800 -1071FE800:Mn2:H1072018B8,H1072018C8 -1072018B8:lH107204A60|N -107204A60:lI115|H107207C90 -107207C90:lI110|H10720AF08 -10720AF08:lI109|H10720E0F8 -10720E0F8:lI112|H107211288 -107211288:lI95|H1072144E8 -1072144E8:lI105|H107217880 -107217880:lI110|H10721AD90 -10721AD90:lI100|H10721E2F0 -10721E2F0:lI101|H1072217D0 -1072217D0:lI120|H107224978 -107224978:lI46|H107227810 -107227810:lI98|H10722A298 -10722A298:lI101|H10722C9F0 -10722C9F0:lI97|H10722EF08 -10722EF08:lI109|N -1072018C8:lH107204A70|N -107204A70:lI115|H107207CA0 -107207CA0:lI110|H10720AF18 -10720AF18:lI109|H10720E108 -10720E108:lI112|H107211298 -107211298:lI97|H1072144F8 -1072144F8:lI95|H107217890 -107217890:lI97|H10721ADA0 -10721ADA0:lI103|H10721E300 -10721E300:lI101|H1072217E0 -1072217E0:lI110|H107224988 -107224988:lI116|H107227820 -107227820:lI46|H10722A2A8 -10722A2A8:lI98|H10722CA00 -10722CA00:lI101|H10722EF18 -10722EF18:lI97|H107231130 -107231130:lI109|N -1071FB840:lH1071FE7F0|N -1071FE7F0:lI115|H1072018A8 -1072018A8:lI110|H107204A50 -107204A50:lI109|H107207C80 -107207C80:lI112|H10720AEF8 -10720AEF8:lI97|H10720E0E8 -10720E0E8:lI95|H107211278 -107211278:lI103|H1072144D8 -1072144D8:lI101|H107217870 -107217870:lI116|H10721AD80 -10721AD80:lI95|H10721E2E0 -10721E2E0:lI108|H1072217C0 -1072217C0:lI105|H107224968 -107224968:lI98|H107227800 -107227800:lI46|H10722A288 -10722A288:lI98|H10722C9E0 -10722C9E0:lI101|H10722EEF8 -10722EEF8:lI97|H107231120 -107231120:lI109|N -1071FB830:lH1071FE7E0|N -1071FE7E0:lI115|H107201898 -107201898:lI110|H107204A40 -107204A40:lI109|H107207C70 -107207C70:lI112|H10720AEE8 -10720AEE8:lI97|H10720E0D8 -10720E0D8:lI95|H107211268 -107211268:lI109|H1072144C8 -1072144C8:lI105|H107217860 -107217860:lI98|H10721AD70 -10721AD70:lI95|H10721E2D0 -10721E2D0:lI115|H1072217B0 -1072217B0:lI116|H107224958 -107224958:lI111|H1072277F0 -1072277F0:lI114|H10722A278 -10722A278:lI97|H10722C9D0 -10722C9D0:lI103|H10722EEE8 -10722EEE8:lI101|H107231110 -107231110:lI95|H107233068 -107233068:lI109|H107234CD0 -107234CD0:lI110|H107236698 -107236698:lI101|H107237E00 -107237E00:lI115|H107239398 -107239398:lI105|H10723A7F0 -10723A7F0:lI97|H10723BA30 -10723BA30:lI46|H10723CA60 -10723CA60:lI98|H10723D8C0 -10723D8C0:lI101|H10723E5C0 -10723E5C0:lI97|H10723F1A0 -10723F1A0:lI109|N -1071F8950:Mn6:H1071FB7B8,H1071FB7C8,H1071FB7D8,H1071FB7E8,H1071FB7F8,H1071FB808 -1071FB7B8:lH1071FE760|N -1071FE760:lI115|H107201818 -107201818:lI110|H1072049C0 -1072049C0:lI109|H107207BF0 -107207BF0:lI112|H10720AE68 -10720AE68:lI97|H10720E058 -10720E058:lI95|H1072111E8 -1072111E8:lI108|H107214448 -107214448:lI111|H1072177E0 -1072177E0:lI99|H10721AD00 -10721AD00:lI97|H10721E270 -10721E270:lI108|H107221750 -107221750:lI95|H1072248F8 -1072248F8:lI100|H107227790 -107227790:lI98|H10722A218 -10722A218:lI46|H10722C970 -10722C970:lI98|H10722EE88 -10722EE88:lI101|H1072310B0 -1072310B0:lI97|H107233008 -107233008:lI109|N -1071FB808:Mn2:H1071FE7B0,H1071FE7C0 -1071FE7B0:lH107201868|N -107201868:lI115|H107204A10 -107204A10:lI110|H107207C40 -107207C40:lI109|H10720AEB8 -10720AEB8:lI112|H10720E0A8 -10720E0A8:lI46|H107211238 -107211238:lI97|H107214498 -107214498:lI112|H107217830 -107217830:lI112|N -1071FE7C0:lH107201878|N -107201878:lI115|H107204A20 -107204A20:lI110|H107207C50 -107207C50:lI109|H10720AEC8 -10720AEC8:lI112|H10720E0B8 -10720E0B8:lI97|H107211248 -107211248:lI95|H1072144A8 -1072144A8:lI109|H107217840 -107217840:lI105|H10721AD50 -10721AD50:lI98|H10721E2B0 -10721E2B0:lI95|H107221790 -107221790:lI115|H107224938 -107224938:lI116|H1072277D0 -1072277D0:lI111|H10722A258 -10722A258:lI114|H10722C9B0 -10722C9B0:lI97|H10722EEC8 -10722EEC8:lI103|H1072310F0 -1072310F0:lI101|H107233048 -107233048:lI95|H107234CB0 -107234CB0:lI101|H107236678 -107236678:lI116|H107237DE0 -107237DE0:lI115|H107239378 -107239378:lI46|H10723A7E0 -10723A7E0:lI98|H10723BA20 -10723BA20:lI101|H10723CA50 -10723CA50:lI97|H10723D8B0 -10723D8B0:lI109|N -1071FB7F8:lH1071FE7A0|N -1071FE7A0:lI115|H107201858 -107201858:lI110|H107204A00 -107204A00:lI109|H107207C30 -107207C30:lI112|H10720AEA8 -10720AEA8:lI97|H10720E098 -10720E098:lI46|H107211228 -107211228:lI98|H107214488 -107214488:lI101|H107217820 -107217820:lI97|H10721AD40 -10721AD40:lI109|N -1071FB7E8:lH1071FE790|N -1071FE790:lI115|H107201848 -107201848:lI110|H1072049F0 -1072049F0:lI109|H107207C20 -107207C20:lI112|H10720AE98 -10720AE98:lI109|H10720E088 -10720E088:lI95|H107211218 -107211218:lI115|H107214478 -107214478:lI117|H107217810 -107217810:lI112|H10721AD30 -10721AD30:lI101|H10721E2A0 -10721E2A0:lI114|H107221780 -107221780:lI118|H107224928 -107224928:lI105|H1072277C0 -1072277C0:lI115|H10722A248 -10722A248:lI111|H10722C9A0 -10722C9A0:lI114|H10722EEB8 -10722EEB8:lI46|H1072310E0 -1072310E0:lI98|H107233038 -107233038:lI101|H107234CA0 -107234CA0:lI97|H107236668 -107236668:lI109|N -1071FB7D8:lH1071FE780|N -1071FE780:lI115|H107201838 -107201838:lI110|H1072049E0 -1072049E0:lI109|H107207C10 -107207C10:lI112|H10720AE88 -10720AE88:lI97|H10720E078 -10720E078:lI95|H107211208 -107211208:lI103|H107214468 -107214468:lI101|H107217800 -107217800:lI116|H10721AD20 -10721AD20:lI95|H10721E290 -10721E290:lI109|H107221770 -107221770:lI101|H107224918 -107224918:lI99|H1072277B0 -1072277B0:lI104|H10722A238 -10722A238:lI97|H10722C990 -10722C990:lI110|H10722EEA8 -10722EEA8:lI105|H1072310D0 -1072310D0:lI115|H107233028 -107233028:lI109|H107234C90 -107234C90:lI46|H107236658 -107236658:lI98|H107237DD0 -107237DD0:lI101|H107239368 -107239368:lI97|H10723A7D0 -10723A7D0:lI109|N -1071FB7C8:lH1071FE770|N -1071FE770:lI115|H107201828 -107201828:lI110|H1072049D0 -1072049D0:lI109|H107207C00 -107207C00:lI112|H10720AE78 -10720AE78:lI97|H10720E068 -10720E068:lI95|H1072111F8 -1072111F8:lI110|H107214458 -107214458:lI101|H1072177F0 -1072177F0:lI116|H10721AD10 -10721AD10:lI95|H10721E280 -10721E280:lI105|H107221760 -107221760:lI102|H107224908 -107224908:lI95|H1072277A0 -1072277A0:lI102|H10722A228 -10722A228:lI105|H10722C980 -10722C980:lI108|H10722EE98 -10722EE98:lI116|H1072310C0 -1072310C0:lI101|H107233018 -107233018:lI114|H107234C80 -107234C80:lI46|H107236648 -107236648:lI98|H107237DC0 -107237DC0:lI101|H107239358 -107239358:lI97|H10723A7C0 -10723A7C0:lI109|N -1071F8920:Mn5:H1071FB760,H1071FB778,H1071FB788,H1071FB798,H1071FB7A8 -1071FB760:Mn2:H1071FE700,H1071FE710 -1071FE700:lH1072017B8|N -1072017B8:lI115|H107204960 -107204960:lI110|H107207B90 -107207B90:lI109|H10720AE08 -10720AE08:lI112|H10720DFF8 -10720DFF8:lI97|H107211188 -107211188:lI95|H1072143E8 -1072143E8:lI101|H107217780 -107217780:lI114|H10721ACA0 -10721ACA0:lI114|H10721E210 -10721E210:lI111|H1072216F0 -1072216F0:lI114|H107224898 -107224898:lI46|H107227740 -107227740:lI98|H10722A1C8 -10722A1C8:lI101|H10722C920 -10722C920:lI97|H10722EE38 -10722EE38:lI109|N -1071FE710:lH1072017C8|N -1072017C8:lI115|H107204970 -107204970:lI110|H107207BA0 -107207BA0:lI109|H10720AE18 -10720AE18:lI112|H10720E008 -10720E008:lI109|H107211198 -107211198:lI95|H1072143F8 -1072143F8:lI110|H107217790 -107217790:lI101|H10721ACB0 -10721ACB0:lI116|H10721E220 -10721E220:lI95|H107221700 -107221700:lI105|H1072248A8 -1072248A8:lI102|H107227750 -107227750:lI46|H10722A1D8 -10722A1D8:lI98|H10722C930 -10722C930:lI101|H10722EE48 -10722EE48:lI97|H107231080 -107231080:lI109|N -1071FB7A8:lH1071FE750|N -1071FE750:lI115|H107201808 -107201808:lI110|H1072049B0 -1072049B0:lI109|H107207BE0 -107207BE0:lI112|H10720AE58 -10720AE58:lI109|H10720E048 -10720E048:lI95|H1072111D8 -1072111D8:lI109|H107214438 -107214438:lI105|H1072177D0 -1072177D0:lI115|H10721ACF0 -10721ACF0:lI99|H10721E260 -10721E260:lI95|H107221740 -107221740:lI115|H1072248E8 -1072248E8:lI117|H107227780 -107227780:lI112|H10722A208 -10722A208:lI46|H10722C960 -10722C960:lI98|H10722EE78 -10722EE78:lI101|H1072310A0 -1072310A0:lI97|H107232FF8 -107232FF8:lI109|N -1071FB798:lH1071FE740|N -1071FE740:lI115|H1072017F8 -1072017F8:lI110|H1072049A0 -1072049A0:lI109|H107207BD0 -107207BD0:lI112|H10720AE48 -10720AE48:lI95|H10720E038 -10720E038:lI117|H1072111C8 -1072111C8:lI115|H107214428 -107214428:lI109|H1072177C0 -1072177C0:lI46|H10721ACE0 -10721ACE0:lI98|H10721E250 -10721E250:lI101|H107221730 -107221730:lI97|H1072248D8 -1072248D8:lI109|N -1071FB788:lH1071FE730|N -1071FE730:lI115|H1072017E8 -1072017E8:lI110|H107204990 -107204990:lI109|H107207BC0 -107207BC0:lI112|H10720AE38 -10720AE38:lI109|H10720E028 -10720E028:lI95|H1072111B8 -1072111B8:lI117|H107214418 -107214418:lI115|H1072177B0 -1072177B0:lI101|H10721ACD0 -10721ACD0:lI114|H10721E240 -10721E240:lI95|H107221720 -107221720:lI111|H1072248C8 -1072248C8:lI108|H107227770 -107227770:lI100|H10722A1F8 -10722A1F8:lI46|H10722C950 -10722C950:lI98|H10722EE68 -10722EE68:lI101|H107231090 -107231090:lI97|H107232FE8 -107232FE8:lI109|N -1071FB778:lH1071FE720|N -1071FE720:lI115|H1072017D8 -1072017D8:lI110|H107204980 -107204980:lI109|H107207BB0 -107207BB0:lI112|H10720AE28 -10720AE28:lI95|H10720E018 -10720E018:lI103|H1072111A8 -1072111A8:lI101|H107214408 -107214408:lI110|H1072177A0 -1072177A0:lI101|H10721ACC0 -10721ACC0:lI114|H10721E230 -10721E230:lI105|H107221710 -107221710:lI99|H1072248B8 -1072248B8:lI46|H107227760 -107227760:lI98|H10722A1E8 -10722A1E8:lI101|H10722C940 -10722C940:lI97|H10722EE58 -10722EE58:lI109|N -1071F88E0:Mn7:H1071FB6E8,H1071FB6F8,H1071FB708,H1071FB718,H1071FB728,H1071FB740,H1071FB750 -1071FB6E8:lH1071FE680|N -1071FE680:lI115|H107201738 -107201738:lI110|H1072048E0 -1072048E0:lI109|H107207B10 -107207B10:lI112|H10720AD88 -10720AD88:lI99|H10720DF78 -10720DF78:lI95|H107211108 -107211108:lI109|H107214368 -107214368:lI105|H107217700 -107217700:lI98|H10721AC30 -10721AC30:lI95|H10721E1A0 -10721E1A0:lI116|H107221680 -107221680:lI111|H107224828 -107224828:lI95|H1072276D0 -1072276D0:lI104|H10722A158 -10722A158:lI114|H10722C8C0 -10722C8C0:lI108|H10722EDD8 -10722EDD8:lI46|H107231020 -107231020:lI98|H107232F88 -107232F88:lI101|H107234C30 -107234C30:lI97|H1072365F8 -1072365F8:lI109|N -1071FB750:lH1071FE6F0|N -1071FE6F0:lI115|H1072017A8 -1072017A8:lI110|H107204950 -107204950:lI109|H107207B80 -107207B80:lI112|H10720ADF8 -10720ADF8:lI97|H10720DFE8 -10720DFE8:lI95|H107211178 -107211178:lI109|H1072143D8 -1072143D8:lI105|H107217770 -107217770:lI115|H10721AC90 -10721AC90:lI99|H10721E200 -10721E200:lI95|H1072216E0 -1072216E0:lI115|H107224888 -107224888:lI117|H107227730 -107227730:lI112|H10722A1B8 -10722A1B8:lI46|H10722C910 -10722C910:lI98|H10722EE28 -10722EE28:lI101|H107231070 -107231070:lI97|H107232FD8 -107232FD8:lI109|N -1071FB740:lH1071FE6E0|N -1071FE6E0:lI115|H107201798 -107201798:lI110|H107204940 -107204940:lI109|H107207B70 -107207B70:lI112|H10720ADE8 -10720ADE8:lI97|H10720DFD8 -10720DFD8:lI95|H107211168 -107211168:lI99|H1072143C8 -1072143C8:lI111|H107217760 -107217760:lI110|H10721AC80 -10721AC80:lI102|H10721E1F0 -10721E1F0:lI46|H1072216D0 -1072216D0:lI98|H107224878 -107224878:lI101|H107227720 -107227720:lI97|H10722A1A8 -10722A1A8:lI109|N -1071FB728:Mn2:H1071FE6C0,H1071FE6D0 -1071FE6C0:lH107201778|N -107201778:lI115|H107204920 -107204920:lI110|H107207B50 -107207B50:lI109|H10720ADC8 -10720ADC8:lI112|H10720DFB8 -10720DFB8:lI95|H107211148 -107211148:lI110|H1072143A8 -1072143A8:lI111|H107217740 -107217740:lI116|H10721AC60 -10721AC60:lI101|H10721E1D0 -10721E1D0:lI95|H1072216B0 -1072216B0:lI115|H107224858 -107224858:lI116|H107227700 -107227700:lI111|H10722A188 -10722A188:lI114|H10722C8F0 -10722C8F0:lI101|H10722EE08 -10722EE08:lI46|H107231050 -107231050:lI98|H107232FB8 -107232FB8:lI101|H107234C60 -107234C60:lI97|H107236628 -107236628:lI109|N -1071FE6D0:lH107201788|N -107201788:lI115|H107204930 -107204930:lI110|H107207B60 -107207B60:lI109|H10720ADD8 -10720ADD8:lI112|H10720DFC8 -10720DFC8:lI97|H107211158 -107211158:lI95|H1072143B8 -1072143B8:lI100|H107217750 -107217750:lI105|H10721AC70 -10721AC70:lI115|H10721E1E0 -10721E1E0:lI99|H1072216C0 -1072216C0:lI111|H107224868 -107224868:lI118|H107227710 -107227710:lI101|H10722A198 -10722A198:lI114|H10722C900 -10722C900:lI121|H10722EE18 -10722EE18:lI95|H107231060 -107231060:lI104|H107232FC8 -107232FC8:lI97|H107234C70 -107234C70:lI110|H107236638 -107236638:lI100|H107237DB0 -107237DB0:lI108|H107239348 -107239348:lI101|H10723A7B0 -10723A7B0:lI114|H10723BA10 -10723BA10:lI46|H10723CA40 -10723CA40:lI98|H10723D8A0 -10723D8A0:lI101|H10723E5B0 -10723E5B0:lI97|H10723F190 -10723F190:lI109|N -1071FB718:lH1071FE6B0|N -1071FE6B0:lI115|H107201768 -107201768:lI110|H107204910 -107204910:lI109|H107207B40 -107207B40:lI112|H10720ADB8 -10720ADB8:lI109|H10720DFA8 -10720DFA8:lI95|H107211138 -107211138:lI115|H107214398 -107214398:lI101|H107217730 -107217730:lI114|H10721AC50 -10721AC50:lI118|H10721E1C0 -10721E1C0:lI101|H1072216A0 -1072216A0:lI114|H107224848 -107224848:lI95|H1072276F0 -1072276F0:lI115|H10722A178 -10722A178:lI117|H10722C8E0 -10722C8E0:lI112|H10722EDF8 -10722EDF8:lI46|H107231040 -107231040:lI98|H107232FA8 -107232FA8:lI101|H107234C50 -107234C50:lI97|H107236618 -107236618:lI109|N -1071FB708:lH1071FE6A0|N -1071FE6A0:lI115|H107201758 -107201758:lI110|H107204900 -107204900:lI109|H107207B30 -107207B30:lI112|H10720ADA8 -10720ADA8:lI46|H10720DF98 -10720DF98:lI98|H107211128 -107211128:lI101|H107214388 -107214388:lI97|H107217720 -107217720:lI109|N -1071FB6F8:lH1071FE690|N -1071FE690:lI115|H107201748 -107201748:lI110|H1072048F0 -1072048F0:lI109|H107207B20 -107207B20:lI112|H10720AD98 -10720AD98:lI97|H10720DF88 -10720DF88:lI95|H107211118 -107211118:lI100|H107214378 -107214378:lI105|H107217710 -107217710:lI115|H10721AC40 -10721AC40:lI99|H10721E1B0 -10721E1B0:lI111|H107221690 -107221690:lI118|H107224838 -107224838:lI101|H1072276E0 -1072276E0:lI114|H10722A168 -10722A168:lI121|H10722C8D0 -10722C8D0:lI95|H10722EDE8 -10722EDE8:lI104|H107231030 -107231030:lI97|H107232F98 -107232F98:lI110|H107234C40 -107234C40:lI100|H107236608 -107236608:lI108|H107237DA0 -107237DA0:lI101|H107239338 -107239338:lI114|H10723A7A0 -10723A7A0:lI95|H10723BA00 -10723BA00:lI100|H10723CA30 -10723CA30:lI101|H10723D890 -10723D890:lI102|H10723E5A0 -10723E5A0:lI97|H10723F180 -10723F180:lI117|H10723FC30 -10723FC30:lI108|H107240570 -107240570:lI116|H107240DE0 -107240DE0:lI46|H107241570 -107241570:lI98|H107241C90 -107241C90:lI101|H107242350 -107242350:lI97|H1072429B0 -1072429B0:lI109|N -1071F8898:Mn8:H1071FB650,H1071FB660,H1071FB680,H1071FB690,H1071FB6A0,H1071FB6B0,H1071FB6C0,H1071FB6D0 -1071FB650:lH1071FE5D0|N -1071FE5D0:lI115|H107201688 -107201688:lI110|H107204830 -107204830:lI109|H107207A60 -107207A60:lI112|H10720ACD8 -10720ACD8:lI95|H10720DEC8 -10720DEC8:lI115|H107211058 -107211058:lI104|H1072142B8 -1072142B8:lI97|H107217650 -107217650:lI100|H10721AB80 -10721AB80:lI111|H10721E0F0 -10721E0F0:lI119|H1072215E0 -1072215E0:lI95|H107224788 -107224788:lI116|H107227640 -107227640:lI97|H10722A0E8 -10722A0E8:lI98|H10722C860 -10722C860:lI108|H10722ED88 -10722ED88:lI101|H107230FD0 -107230FD0:lI46|H107232F48 -107232F48:lI98|H107234BF0 -107234BF0:lI101|H1072365B8 -1072365B8:lI97|H107237D60 -107237D60:lI109|N -1071FB6D0:Mn2:H1071FE660,H1071FE670 -1071FE660:lH107201718|N -107201718:lI115|H1072048C0 -1072048C0:lI110|H107207AF0 -107207AF0:lI109|H10720AD68 -10720AD68:lI112|H10720DF58 -10720DF58:lI97|H1072110E8 -1072110E8:lI95|H107214348 -107214348:lI118|H1072176E0 -1072176E0:lI97|H10721AC10 -10721AC10:lI99|H10721E180 -10721E180:lI109|H107221670 -107221670:lI46|H107224818 -107224818:lI98|H1072276C0 -1072276C0:lI101|H10722A148 -10722A148:lI97|H10722C8B0 -10722C8B0:lI109|N -1071FE670:lH107201728|N -107201728:lI115|H1072048D0 -1072048D0:lI110|H107207B00 -107207B00:lI109|H10720AD78 -10720AD78:lI112|H10720DF68 -10720DF68:lI109|H1072110F8 -1072110F8:lI46|H107214358 -107214358:lI98|H1072176F0 -1072176F0:lI101|H10721AC20 -10721AC20:lI97|H10721E190 -10721E190:lI109|N -1071FB6C0:lH1071FE650|N -1071FE650:lI115|H107201708 -107201708:lI110|H1072048B0 -1072048B0:lI109|H107207AE0 -107207AE0:lI112|H10720AD58 -10720AD58:lI95|H10720DF48 -10720DF48:lI112|H1072110D8 -1072110D8:lI100|H107214338 -107214338:lI117|H1072176D0 -1072176D0:lI115|H10721AC00 -10721AC00:lI46|H10721E170 -10721E170:lI98|H107221660 -107221660:lI101|H107224808 -107224808:lI97|H1072276B0 -1072276B0:lI109|N -1071FB6B0:lH1071FE640|N -1071FE640:lI115|H1072016F8 -1072016F8:lI110|H1072048A0 -1072048A0:lI109|H107207AD0 -107207AD0:lI112|H10720AD48 -10720AD48:lI97|H10720DF38 -10720DF38:lI95|H1072110C8 -1072110C8:lI116|H107214328 -107214328:lI114|H1072176C0 -1072176C0:lI97|H10721ABF0 -10721ABF0:lI112|H10721E160 -10721E160:lI46|H107221650 -107221650:lI98|H1072247F8 -1072247F8:lI101|H1072276A0 -1072276A0:lI97|H10722A138 -10722A138:lI109|N -1071FB6A0:lH1071FE630|N -1071FE630:lI115|H1072016E8 -1072016E8:lI110|H107204890 -107204890:lI109|H107207AC0 -107207AC0:lI112|H10720AD38 -10720AD38:lI97|H10720DF28 -10720DF28:lI95|H1072110B8 -1072110B8:lI109|H107214318 -107214318:lI112|H1072176B0 -1072176B0:lI100|H10721ABE0 -10721ABE0:lI46|H10721E150 -10721E150:lI98|H107221640 -107221640:lI101|H1072247E8 -1072247E8:lI97|H107227690 -107227690:lI109|N -1071FB690:lH1071FE620|N -1071FE620:lI115|H1072016D8 -1072016D8:lI110|H107204880 -107204880:lI109|H107207AB0 -107207AB0:lI112|H10720AD28 -10720AD28:lI97|H10720DF18 -10720DF18:lI95|H1072110A8 -1072110A8:lI110|H107214308 -107214308:lI111|H1072176A0 -1072176A0:lI116|H10721ABD0 -10721ABD0:lI105|H10721E140 -10721E140:lI102|H107221630 -107221630:lI105|H1072247D8 -1072247D8:lI99|H107227680 -107227680:lI97|H10722A128 -10722A128:lI116|H10722C8A0 -10722C8A0:lI105|H10722EDC8 -10722EDC8:lI111|H107231010 -107231010:lI110|H107232F78 -107232F78:lI95|H107234C20 -107234C20:lI100|H1072365E8 -1072365E8:lI101|H107237D90 -107237D90:lI108|H107239328 -107239328:lI105|H10723A790 -10723A790:lI118|H10723B9F0 -10723B9F0:lI101|H10723CA20 -10723CA20:lI114|H10723D880 -10723D880:lI121|H10723E590 -10723E590:lI95|H10723F170 -10723F170:lI105|H10723FC20 -10723FC20:lI110|H107240560 -107240560:lI102|H107240DD0 -107240DD0:lI111|H107241560 -107241560:lI95|H107241C80 -107241C80:lI114|H107242340 -107242340:lI101|H1072429A0 -1072429A0:lI99|H107242F90 -107242F90:lI101|H107243500 -107243500:lI105|H107243A40 -107243A40:lI118|H107243F30 -107243F30:lI101|H107244420 -107244420:lI114|H1072448D0 -1072448D0:lI46|H107244D40 -107244D40:lI98|H1072451A0 -1072451A0:lI101|H1072455F0 -1072455F0:lI97|H1072459F0 -1072459F0:lI109|N -1071FB680:lH1071FE610|N -1071FE610:lI115|H1072016C8 -1072016C8:lI110|H107204870 -107204870:lI109|H107207AA0 -107207AA0:lI112|H10720AD18 -10720AD18:lI95|H10720DF08 -10720DF08:lI108|H107211098 -107211098:lI111|H1072142F8 -1072142F8:lI103|H107217690 -107217690:lI46|H10721ABC0 -10721ABC0:lI98|H10721E130 -10721E130:lI101|H107221620 -107221620:lI97|H1072247C8 -1072247C8:lI109|N -1071FB660:Mn3:H1071FE5E0,H1071FE5F0,H1071FE600 -1071FE5E0:lH107201698|N -107201698:lI115|H107204840 -107204840:lI110|H107207A70 -107207A70:lI109|H10720ACE8 -10720ACE8:lI112|H10720DED8 -10720DED8:lI95|H107211068 -107211068:lI99|H1072142C8 -1072142C8:lI111|H107217660 -107217660:lI109|H10721AB90 -10721AB90:lI109|H10721E100 -10721E100:lI117|H1072215F0 -1072215F0:lI110|H107224798 -107224798:lI105|H107227650 -107227650:lI116|H10722A0F8 -10722A0F8:lI121|H10722C870 -10722C870:lI95|H10722ED98 -10722ED98:lI109|H107230FE0 -107230FE0:lI105|H107232F58 -107232F58:lI98|H107234C00 -107234C00:lI46|H1072365C8 -1072365C8:lI98|H107237D70 -107237D70:lI101|H107239308 -107239308:lI97|H10723A770 -10723A770:lI109|N -1071FE600:lH1072016B8|N -1072016B8:lI115|H107204860 -107204860:lI110|H107207A90 -107207A90:lI109|H10720AD08 -10720AD08:lI112|H10720DEF8 -10720DEF8:lI109|H107211088 -107211088:lI95|H1072142E8 -1072142E8:lI115|H107217680 -107217680:lI101|H10721ABB0 -10721ABB0:lI114|H10721E120 -10721E120:lI118|H107221610 -107221610:lI101|H1072247B8 -1072247B8:lI114|H107227670 -107227670:lI46|H10722A118 -10722A118:lI98|H10722C890 -10722C890:lI101|H10722EDB8 -10722EDB8:lI97|H107231000 -107231000:lI109|N -1071FE5F0:lH1072016A8|N -1072016A8:lI115|H107204850 -107204850:lI110|H107207A80 -107207A80:lI109|H10720ACF8 -10720ACF8:lI112|H10720DEE8 -10720DEE8:lI97|H107211078 -107211078:lI95|H1072142D8 -1072142D8:lI110|H107217670 -107217670:lI101|H10721ABA0 -10721ABA0:lI116|H10721E110 -10721E110:lI119|H107221600 -107221600:lI111|H1072247A8 -1072247A8:lI114|H107227660 -107227660:lI107|H10722A108 -10722A108:lI95|H10722C880 -10722C880:lI105|H10722EDA8 -10722EDA8:lI110|H107230FF0 -107230FF0:lI116|H107232F68 -107232F68:lI101|H107234C10 -107234C10:lI114|H1072365D8 -1072365D8:lI102|H107237D80 -107237D80:lI97|H107239318 -107239318:lI99|H10723A780 -10723A780:lI101|H10723B9E0 -10723B9E0:lI46|H10723CA10 -10723CA10:lI98|H10723D870 -10723D870:lI101|H10723E580 -10723E580:lI97|H10723F160 -10723F160:lI109|N -1071F8878:Mn3:H1071FB620,H1071FB630,H1071FB640 -1071FB620:lH1071FE5A0|N -1071FE5A0:lI115|H107201658 -107201658:lI110|H107204800 -107204800:lI109|H107207A30 -107207A30:lI112|H10720ACA8 -10720ACA8:lI95|H10720DE98 -10720DE98:lI116|H107211028 -107211028:lI97|H107214288 -107214288:lI114|H107217620 -107217620:lI103|H10721AB50 -10721AB50:lI101|H10721E0C0 -10721E0C0:lI116|H1072215B0 -1072215B0:lI95|H107224758 -107224758:lI109|H107227610 -107227610:lI105|H10722A0C8 -10722A0C8:lI98|H10722C850 -10722C850:lI46|H10722ED78 -10722ED78:lI98|H107230FC0 -107230FC0:lI101|H107232F38 -107232F38:lI97|H107234BE0 -107234BE0:lI109|N -1071FB640:lH1071FE5C0|N -1071FE5C0:lI115|H107201678 -107201678:lI110|H107204820 -107204820:lI109|H107207A50 -107207A50:lI112|H10720ACC8 -10720ACC8:lI95|H10720DEB8 -10720DEB8:lI109|H107211048 -107211048:lI105|H1072142A8 -1072142A8:lI115|H107217640 -107217640:lI99|H10721AB70 -10721AB70:lI46|H10721E0E0 -10721E0E0:lI98|H1072215D0 -1072215D0:lI101|H107224778 -107224778:lI97|H107227630 -107227630:lI109|N -1071FB630:lH1071FE5B0|N -1071FE5B0:lI115|H107201668 -107201668:lI110|H107204810 -107204810:lI109|H107207A40 -107207A40:lI112|H10720ACB8 -10720ACB8:lI99|H10720DEA8 -10720DEA8:lI95|H107211038 -107211038:lI109|H107214298 -107214298:lI105|H107217630 -107217630:lI115|H10721AB60 -10721AB60:lI99|H10721E0D0 -10721E0D0:lI46|H1072215C0 -1072215C0:lI98|H107224768 -107224768:lI101|H107227620 -107227620:lI97|H10722A0D8 -10722A0D8:lI109|N -1071F8840:Mn6:H1071FB5B8,H1071FB5C8,H1071FB5D8,H1071FB5E8,H1071FB5F8,H1071FB610 -1071FB5B8:lH1071FE530|N -1071FE530:lI115|H1072015E8 -1072015E8:lI110|H107204790 -107204790:lI109|H1072079C0 -1072079C0:lI112|H10720AC38 -10720AC38:lI97|H10720DE28 -10720DE28:lI95|H107210FB8 -107210FB8:lI115|H107214218 -107214218:lI101|H1072175B0 -1072175B0:lI116|H10721AAE0 -10721AAE0:lI46|H10721E050 -10721E050:lI98|H107221540 -107221540:lI101|H1072246E8 -1072246E8:lI97|H1072275A0 -1072275A0:lI109|N -1071FB610:lH1071FE590|N -1071FE590:lI115|H107201648 -107201648:lI110|H1072047F0 -1072047F0:lI109|H107207A20 -107207A20:lI112|H10720AC98 -10720AC98:lI109|H10720DE88 -10720DE88:lI95|H107211018 -107211018:lI110|H107214278 -107214278:lI101|H107217610 -107217610:lI116|H10721AB40 -10721AB40:lI119|H10721E0B0 -10721E0B0:lI111|H1072215A0 -1072215A0:lI114|H107224748 -107224748:lI107|H107227600 -107227600:lI95|H10722A0B8 -10722A0B8:lI105|H10722C840 -10722C840:lI110|H10722ED68 -10722ED68:lI116|H107230FB0 -107230FB0:lI101|H107232F28 -107232F28:lI114|H107234BD0 -107234BD0:lI102|H1072365A8 -1072365A8:lI97|H107237D50 -107237D50:lI99|H1072392F8 -1072392F8:lI101|H10723A760 -10723A760:lI95|H10723B9D0 -10723B9D0:lI102|H10723CA00 -10723CA00:lI105|H10723D860 -10723D860:lI108|H10723E570 -10723E570:lI116|H10723F150 -10723F150:lI101|H10723FC10 -10723FC10:lI114|H107240550 -107240550:lI46|H107240DC0 -107240DC0:lI98|H107241550 -107241550:lI101|H107241C70 -107241C70:lI97|H107242330 -107242330:lI109|N -1071FB5F8:Mn2:H1071FE570,H1071FE580 -1071FE570:lH107201628|N -107201628:lI115|H1072047D0 -1072047D0:lI110|H107207A00 -107207A00:lI109|H10720AC78 -10720AC78:lI112|H10720DE68 -10720DE68:lI97|H107210FF8 -107210FF8:lI95|H107214258 -107214258:lI110|H1072175F0 -1072175F0:lI111|H10721AB20 -10721AB20:lI116|H10721E090 -10721E090:lI105|H107221580 -107221580:lI102|H107224728 -107224728:lI105|H1072275E0 -1072275E0:lI99|H10722A098 -10722A098:lI97|H10722C820 -10722C820:lI116|H10722ED48 -10722ED48:lI105|H107230F90 -107230F90:lI111|H107232F08 -107232F08:lI110|H107234BB0 -107234BB0:lI95|H107236588 -107236588:lI102|H107237D30 -107237D30:lI105|H1072392D8 -1072392D8:lI108|H10723A740 -10723A740:lI116|H10723B9B0 -10723B9B0:lI101|H10723C9E0 -10723C9E0:lI114|H10723D850 -10723D850:lI46|H10723E560 -10723E560:lI98|H10723F140 -10723F140:lI101|H10723FC00 -10723FC00:lI97|H107240540 -107240540:lI109|N -1071FE580:lH107201638|N -107201638:lI115|H1072047E0 -1072047E0:lI110|H107207A10 -107207A10:lI109|H10720AC88 -10720AC88:lI112|H10720DE78 -10720DE78:lI97|H107211008 -107211008:lI95|H107214268 -107214268:lI115|H107217600 -107217600:lI121|H10721AB30 -10721AB30:lI109|H10721E0A0 -10721E0A0:lI98|H107221590 -107221590:lI111|H107224738 -107224738:lI108|H1072275F0 -1072275F0:lI105|H10722A0A8 -10722A0A8:lI99|H10722C830 -10722C830:lI95|H10722ED58 -10722ED58:lI115|H107230FA0 -107230FA0:lI116|H107232F18 -107232F18:lI111|H107234BC0 -107234BC0:lI114|H107236598 -107236598:lI101|H107237D40 -107237D40:lI46|H1072392E8 -1072392E8:lI98|H10723A750 -10723A750:lI101|H10723B9C0 -10723B9C0:lI97|H10723C9F0 -10723C9F0:lI109|N -1071FB5E8:lH1071FE560|N -1071FE560:lI115|H107201618 -107201618:lI110|H1072047C0 -1072047C0:lI109|H1072079F0 -1072079F0:lI112|H10720AC68 -10720AC68:lI109|H10720DE58 -10720DE58:lI95|H107210FE8 -107210FE8:lI110|H107214248 -107214248:lI101|H1072175E0 -1072175E0:lI116|H10721AB10 -10721AB10:lI119|H10721E080 -10721E080:lI111|H107221570 -107221570:lI114|H107224718 -107224718:lI107|H1072275D0 -1072275D0:lI95|H10722A088 -10722A088:lI105|H10722C810 -10722C810:lI110|H10722ED38 -10722ED38:lI116|H107230F80 -107230F80:lI101|H107232EF8 -107232EF8:lI114|H107234BA0 -107234BA0:lI102|H107236578 -107236578:lI97|H107237D20 -107237D20:lI99|H1072392C8 -1072392C8:lI101|H10723A730 -10723A730:lI46|H10723B9A0 -10723B9A0:lI98|H10723C9D0 -10723C9D0:lI101|H10723D840 -10723D840:lI97|H10723E550 -10723E550:lI109|N -1071FB5D8:lH1071FE550|N -1071FE550:lI115|H107201608 -107201608:lI110|H1072047B0 -1072047B0:lI109|H1072079E0 -1072079E0:lI112|H10720AC58 -10720AC58:lI109|H10720DE48 -10720DE48:lI95|H107210FD8 -107210FD8:lI117|H107214238 -107214238:lI115|H1072175D0 -1072175D0:lI101|H10721AB00 -10721AB00:lI114|H10721E070 -10721E070:lI46|H107221560 -107221560:lI98|H107224708 -107224708:lI101|H1072275C0 -1072275C0:lI97|H10722A078 -10722A078:lI109|N -1071FB5C8:lH1071FE540|N -1071FE540:lI115|H1072015F8 -1072015F8:lI110|H1072047A0 -1072047A0:lI109|H1072079D0 -1072079D0:lI112|H10720AC48 -10720AC48:lI95|H10720DE38 -10720DE38:lI99|H107210FC8 -107210FC8:lI111|H107214228 -107214228:lI110|H1072175C0 -1072175C0:lI102|H10721AAF0 -10721AAF0:lI105|H10721E060 -10721E060:lI103|H107221550 -107221550:lI46|H1072246F8 -1072246F8:lI98|H1072275B0 -1072275B0:lI101|H10722A068 -10722A068:lI97|H10722C800 -10722C800:lI109|N -1071F87F8:Mn8:H1071FB538,H1071FB548,H1071FB558,H1071FB568,H1071FB578,H1071FB588,H1071FB598,H1071FB5A8 -1071FB538:lH1071FE4B0|N -1071FE4B0:lI115|H107201568 -107201568:lI110|H107204710 -107204710:lI109|H107207940 -107207940:lI112|H10720ABB8 -10720ABB8:lI97|H10720DDA8 -10720DDA8:lI95|H107210F38 -107210F38:lI117|H107214198 -107214198:lI115|H107217530 -107217530:lI109|H10721AA60 -10721AA60:lI46|H10721DFD0 -10721DFD0:lI98|H1072214C0 -1072214C0:lI101|H107224668 -107224668:lI97|H107227520 -107227520:lI109|N -1071FB5A8:lH1071FE520|N -1071FE520:lI115|H1072015D8 -1072015D8:lI110|H107204780 -107204780:lI109|H1072079B0 -1072079B0:lI112|H10720AC28 -10720AC28:lI97|H10720DE18 -10720DE18:lI95|H107210FA8 -107210FA8:lI101|H107214208 -107214208:lI114|H1072175A0 -1072175A0:lI114|H10721AAD0 -10721AAD0:lI111|H10721E040 -10721E040:lI114|H107221530 -107221530:lI95|H1072246D8 -1072246D8:lI108|H107227590 -107227590:lI111|H10722A058 -10722A058:lI103|H10722C7F0 -10722C7F0:lI103|H10722ED28 -10722ED28:lI101|H107230F70 -107230F70:lI114|H107232EE8 -107232EE8:lI46|H107234B90 -107234B90:lI98|H107236568 -107236568:lI101|H107237D10 -107237D10:lI97|H1072392B8 -1072392B8:lI109|N -1071FB598:lH1071FE510|N -1071FE510:lI115|H1072015C8 -1072015C8:lI110|H107204770 -107204770:lI109|H1072079A0 -1072079A0:lI112|H10720AC18 -10720AC18:lI97|H10720DE08 -10720DE08:lI95|H107210F98 -107210F98:lI101|H1072141F8 -1072141F8:lI114|H107217590 -107217590:lI114|H10721AAC0 -10721AAC0:lI111|H10721E030 -10721E030:lI114|H107221520 -107221520:lI95|H1072246C8 -1072246C8:lI105|H107227580 -107227580:lI111|H10722A048 -10722A048:lI46|H10722C7E0 -10722C7E0:lI98|H10722ED18 -10722ED18:lI101|H107230F60 -107230F60:lI97|H107232ED8 -107232ED8:lI109|N -1071FB588:lH1071FE500|N -1071FE500:lI115|H1072015B8 -1072015B8:lI110|H107204760 -107204760:lI109|H107207990 -107207990:lI112|H10720AC08 -10720AC08:lI95|H10720DDF8 -10720DDF8:lI99|H107210F88 -107210F88:lI111|H1072141E8 -1072141E8:lI110|H107217580 -107217580:lI102|H10721AAB0 -10721AAB0:lI46|H10721E020 -10721E020:lI98|H107221510 -107221510:lI101|H1072246B8 -1072246B8:lI97|H107227570 -107227570:lI109|N -1071FB578:lH1071FE4F0|N -1071FE4F0:lI115|H1072015A8 -1072015A8:lI110|H107204750 -107204750:lI109|H107207980 -107207980:lI112|H10720ABF8 -10720ABF8:lI97|H10720DDE8 -10720DDE8:lI95|H107210F78 -107210F78:lI109|H1072141D8 -1072141D8:lI105|H107217570 -107217570:lI98|H10721AAA0 -10721AAA0:lI95|H10721E010 -10721E010:lI115|H107221500 -107221500:lI116|H1072246A8 -1072246A8:lI111|H107227560 -107227560:lI114|H10722A038 -10722A038:lI97|H10722C7D0 -10722C7D0:lI103|H10722ED08 -10722ED08:lI101|H107230F50 -107230F50:lI95|H107232EC8 -107232EC8:lI100|H107234B80 -107234B80:lI101|H107236558 -107236558:lI116|H107237D00 -107237D00:lI115|H1072392A8 -1072392A8:lI46|H10723A720 -10723A720:lI98|H10723B990 -10723B990:lI101|H10723C9C0 -10723C9C0:lI97|H10723D830 -10723D830:lI109|N -1071FB568:lH1071FE4E0|N -1071FE4E0:lI115|H107201598 -107201598:lI110|H107204740 -107204740:lI109|H107207970 -107207970:lI112|H10720ABE8 -10720ABE8:lI97|H10720DDD8 -10720DDD8:lI95|H107210F68 -107210F68:lI109|H1072141C8 -1072141C8:lI105|H107217560 -107217560:lI98|H10721AA90 -10721AA90:lI95|H10721E000 -10721E000:lI108|H1072214F0 -1072214F0:lI105|H107224698 -107224698:lI98|H107227550 -107227550:lI46|H10722A028 -10722A028:lI98|H10722C7C0 -10722C7C0:lI101|H10722ECF8 -10722ECF8:lI97|H107230F40 -107230F40:lI109|N -1071FB558:lH1071FE4D0|N -1071FE4D0:lI115|H107201588 -107201588:lI110|H107204730 -107204730:lI109|H107207960 -107207960:lI112|H10720ABD8 -10720ABD8:lI95|H10720DDC8 -10720DDC8:lI109|H107210F58 -107210F58:lI105|H1072141B8 -1072141B8:lI110|H107217550 -107217550:lI105|H10721AA80 -10721AA80:lI95|H10721DFF0 -10721DFF0:lI109|H1072214E0 -1072214E0:lI105|H107224688 -107224688:lI98|H107227540 -107227540:lI46|H10722A018 -10722A018:lI98|H10722C7B0 -10722C7B0:lI101|H10722ECE8 -10722ECE8:lI97|H107230F30 -107230F30:lI109|N -1071FB548:lH1071FE4C0|N -1071FE4C0:lI115|H107201578 -107201578:lI110|H107204720 -107204720:lI109|H107207950 -107207950:lI112|H10720ABC8 -10720ABC8:lI97|H10720DDB8 -10720DDB8:lI95|H107210F48 -107210F48:lI97|H1072141A8 -1072141A8:lI117|H107217540 -107217540:lI116|H10721AA70 -10721AA70:lI104|H10721DFE0 -10721DFE0:lI101|H1072214D0 -1072214D0:lI110|H107224678 -107224678:lI116|H107227530 -107227530:lI105|H10722A008 -10722A008:lI99|H10722C7A0 -10722C7A0:lI97|H10722ECD8 -10722ECD8:lI116|H107230F20 -107230F20:lI105|H107232EB8 -107232EB8:lI111|H107234B70 -107234B70:lI110|H107236548 -107236548:lI95|H107237CF0 -107237CF0:lI115|H107239298 -107239298:lI101|H10723A710 -10723A710:lI114|H10723B980 -10723B980:lI118|H10723C9B0 -10723C9B0:lI105|H10723D820 -10723D820:lI99|H10723E540 -10723E540:lI101|H10723F130 -10723F130:lI46|H10723FBF0 -10723FBF0:lI98|H107240530 -107240530:lI101|H107240DB0 -107240DB0:lI97|H107241540 -107241540:lI109|N -1071F87D8:Mn3:H1071FB500,H1071FB518,H1071FB528 -1071FB500:Mn2:H1071FE470,H1071FE480 -1071FE470:lH107201528|N -107201528:lI115|H1072046D0 -1072046D0:lI110|H107207900 -107207900:lI109|H10720AB78 -10720AB78:lI112|H10720DD68 -10720DD68:lI99|H107210EF8 -107210EF8:lI95|H107214158 -107214158:lI109|H1072174F0 -1072174F0:lI105|H10721AA20 -10721AA20:lI98|H10721DF90 -10721DF90:lI95|H107221480 -107221480:lI103|H107224628 -107224628:lI114|H1072274E0 -1072274E0:lI97|H107229FD8 -107229FD8:lI109|H10722C770 -10722C770:lI46|H10722ECA8 -10722ECA8:lI98|H107230EF0 -107230EF0:lI101|H107232E88 -107232E88:lI97|H107234B50 -107234B50:lI109|N -1071FE480:lH107201538|N -107201538:lI115|H1072046E0 -1072046E0:lI110|H107207910 -107207910:lI109|H10720AB88 -10720AB88:lI112|H10720DD78 -10720DD78:lI97|H107210F08 -107210F08:lI95|H107214168 -107214168:lI110|H107217500 -107217500:lI101|H10721AA30 -10721AA30:lI116|H10721DFA0 -10721DFA0:lI119|H107221490 -107221490:lI111|H107224638 -107224638:lI114|H1072274F0 -1072274F0:lI107|H107229FE8 -107229FE8:lI95|H10722C780 -10722C780:lI105|H10722ECB8 -10722ECB8:lI110|H107230F00 -107230F00:lI116|H107232E98 -107232E98:lI101|H107234B60 -107234B60:lI114|H107236538 -107236538:lI102|H107237CE0 -107237CE0:lI97|H107239288 -107239288:lI99|H10723A700 -10723A700:lI101|H10723B970 -10723B970:lI95|H10723C9A0 -10723C9A0:lI102|H10723D810 -10723D810:lI105|H10723E530 -10723E530:lI108|H10723F120 -10723F120:lI116|H10723FBE0 -10723FBE0:lI101|H107240520 -107240520:lI114|H107240DA0 -107240DA0:lI46|H107241530 -107241530:lI98|H107241C60 -107241C60:lI101|H107242320 -107242320:lI97|H107242990 -107242990:lI109|N -1071FB528:lH1071FE4A0|N -1071FE4A0:lI115|H107201558 -107201558:lI110|H107204700 -107204700:lI109|H107207930 -107207930:lI112|H10720ABA8 -10720ABA8:lI109|H10720DD98 -10720DD98:lI95|H107210F28 -107210F28:lI117|H107214188 -107214188:lI115|H107217520 -107217520:lI109|H10721AA50 -10721AA50:lI46|H10721DFC0 -10721DFC0:lI98|H1072214B0 -1072214B0:lI101|H107224658 -107224658:lI97|H107227510 -107227510:lI109|N -1071FB518:lH1071FE490|N -1071FE490:lI115|H107201548 -107201548:lI110|H1072046F0 -1072046F0:lI109|H107207920 -107207920:lI112|H10720AB98 -10720AB98:lI97|H10720DD88 -10720DD88:lI95|H107210F18 -107210F18:lI109|H107214178 -107214178:lI105|H107217510 -107217510:lI98|H10721AA40 -10721AA40:lI95|H10721DFB0 -10721DFB0:lI100|H1072214A0 -1072214A0:lI97|H107224648 -107224648:lI116|H107227500 -107227500:lI97|H107229FF8 -107229FF8:lI46|H10722C790 -10722C790:lI98|H10722ECC8 -10722ECC8:lI101|H107230F10 -107230F10:lI97|H107232EA8 -107232EA8:lI109|N -1071F87B8:Mn3:H1071FB4D0,H1071FB4E0,H1071FB4F0 -1071FB4D0:lH1071FE440|N -1071FE440:lI115|H1072014F8 -1072014F8:lI110|H1072046A0 -1072046A0:lI109|H1072078D0 -1072078D0:lI112|H10720AB48 -10720AB48:lI97|H10720DD38 -10720DD38:lI95|H107210EC8 -107210EC8:lI109|H107214128 -107214128:lI105|H1072174C0 -1072174C0:lI98|H10721A9F0 -10721A9F0:lI46|H10721DF70 -10721DF70:lI98|H107221460 -107221460:lI101|H107224608 -107224608:lI97|H1072274C0 -1072274C0:lI109|N -1071FB4F0:lH1071FE460|N -1071FE460:lI115|H107201518 -107201518:lI110|H1072046C0 -1072046C0:lI109|H1072078F0 -1072078F0:lI112|H10720AB68 -10720AB68:lI46|H10720DD58 -10720DD58:lI97|H107210EE8 -107210EE8:lI112|H107214148 -107214148:lI112|H1072174E0 -1072174E0:lI117|H10721AA10 -10721AA10:lI112|N -1071FB4E0:lH1071FE450|N -1071FE450:lI115|H107201508 -107201508:lI110|H1072046B0 -1072046B0:lI109|H1072078E0 -1072078E0:lI112|H10720AB58 -10720AB58:lI109|H10720DD48 -10720DD48:lI95|H107210ED8 -107210ED8:lI99|H107214138 -107214138:lI111|H1072174D0 -1072174D0:lI110|H10721AA00 -10721AA00:lI102|H10721DF80 -10721DF80:lI105|H107221470 -107221470:lI103|H107224618 -107224618:lI46|H1072274D0 -1072274D0:lI98|H107229FC8 -107229FC8:lI101|H10722C760 -10722C760:lI97|H10722EC98 -10722EC98:lI109|N -1071F8788:Mn5:H1071FB480,H1071FB490,H1071FB4A0,H1071FB4B0,H1071FB4C0 -1071FB480:lH1071FE3F0|N -1071FE3F0:lI115|H1072014A8 -1072014A8:lI110|H107204650 -107204650:lI109|H107207880 -107207880:lI112|H10720AAF8 -10720AAF8:lI97|H10720DCE8 -10720DCE8:lI95|H107210E78 -107210E78:lI115|H1072140D8 -1072140D8:lI101|H107217470 -107217470:lI116|H10721A9A0 -10721A9A0:lI95|H10721DF20 -10721DF20:lI109|H107221410 -107221410:lI101|H1072245B8 -1072245B8:lI99|H107227470 -107227470:lI104|H107229F98 -107229F98:lI97|H10722C730 -10722C730:lI110|H10722EC68 -10722EC68:lI105|H107230EC0 -107230EC0:lI115|H107232E58 -107232E58:lI109|H107234B20 -107234B20:lI46|H107236508 -107236508:lI98|H107237CB0 -107237CB0:lI101|H107239258 -107239258:lI97|H10723A6D0 -10723A6D0:lI109|N -1071FB4C0:lH1071FE430|N -1071FE430:lI115|H1072014E8 -1072014E8:lI110|H107204690 -107204690:lI109|H1072078C0 -1072078C0:lI112|H10720AB38 -10720AB38:lI95|H10720DD28 -10720DD28:lI103|H107210EB8 -107210EB8:lI101|H107214118 -107214118:lI110|H1072174B0 -1072174B0:lI101|H10721A9E0 -10721A9E0:lI114|H10721DF60 -10721DF60:lI105|H107221450 -107221450:lI99|H1072245F8 -1072245F8:lI95|H1072274B0 -1072274B0:lI109|H107229FB8 -107229FB8:lI110|H10722C750 -10722C750:lI101|H10722EC88 -10722EC88:lI115|H107230EE0 -107230EE0:lI105|H107232E78 -107232E78:lI97|H107234B40 -107234B40:lI46|H107236528 -107236528:lI98|H107237CD0 -107237CD0:lI101|H107239278 -107239278:lI97|H10723A6F0 -10723A6F0:lI109|N -1071FB4B0:lH1071FE420|N -1071FE420:lI115|H1072014D8 -1072014D8:lI110|H107204680 -107204680:lI109|H1072078B0 -1072078B0:lI112|H10720AB28 -10720AB28:lI97|H10720DD18 -10720DD18:lI95|H107210EA8 -107210EA8:lI97|H107214108 -107214108:lI112|H1072174A0 -1072174A0:lI112|H10721A9D0 -10721A9D0:lI46|H10721DF50 -10721DF50:lI98|H107221440 -107221440:lI101|H1072245E8 -1072245E8:lI97|H1072274A0 -1072274A0:lI109|N -1071FB4A0:lH1071FE410|N -1071FE410:lI115|H1072014C8 -1072014C8:lI110|H107204670 -107204670:lI109|H1072078A0 -1072078A0:lI112|H10720AB18 -10720AB18:lI109|H10720DD08 -10720DD08:lI95|H107210E98 -107210E98:lI110|H1072140F8 -1072140F8:lI101|H107217490 -107217490:lI116|H10721A9C0 -10721A9C0:lI95|H10721DF40 -10721DF40:lI105|H107221430 -107221430:lI102|H1072245D8 -1072245D8:lI95|H107227490 -107227490:lI102|H107229FA8 -107229FA8:lI105|H10722C740 -10722C740:lI108|H10722EC78 -10722EC78:lI116|H107230ED0 -107230ED0:lI101|H107232E68 -107232E68:lI114|H107234B30 -107234B30:lI46|H107236518 -107236518:lI98|H107237CC0 -107237CC0:lI101|H107239268 -107239268:lI97|H10723A6E0 -10723A6E0:lI109|N -1071FB490:lH1071FE400|N -1071FE400:lI115|H1072014B8 -1072014B8:lI110|H107204660 -107204660:lI109|H107207890 -107207890:lI112|H10720AB08 -10720AB08:lI99|H10720DCF8 -10720DCF8:lI95|H107210E88 -107210E88:lI116|H1072140E8 -1072140E8:lI111|H107217480 -107217480:lI107|H10721A9B0 -10721A9B0:lI46|H10721DF30 -10721DF30:lI98|H107221420 -107221420:lI101|H1072245C8 -1072245C8:lI97|H107227480 -107227480:lI109|N -1071F8778:lH1071FB470|N -1071FB470:lI115|H1071FE3E0 -1071FE3E0:lI110|H107201498 -107201498:lI109|H107204640 -107204640:lI112|H107207870 -107207870:lI97|H10720AAE8 -10720AAE8:lI95|H10720DCD8 -10720DCD8:lI103|H107210E68 -107210E68:lI101|H1072140C8 -1072140C8:lI116|H107217460 -107217460:lI46|H10721A990 -10721A990:lI98|H10721DF10 -10721DF10:lI101|H107221400 -107221400:lI97|H1072245A8 -1072245A8:lI109|N -1071F8740:Mn6:H1071FB408,H1071FB418,H1071FB428,H1071FB438,H1071FB450,H1071FB460 -1071FB408:lH1071FE370|N -1071FE370:lI115|H107201428 -107201428:lI110|H1072045D0 -1072045D0:lI109|H107207800 -107207800:lI112|H10720AA78 -10720AA78:lI95|H10720DC68 -10720DC68:lI117|H107210DF8 -107210DF8:lI115|H107214058 -107214058:lI101|H1072173F0 -1072173F0:lI114|H10721A920 -10721A920:lI95|H10721DEA0 -10721DEA0:lI98|H107221390 -107221390:lI97|H107224538 -107224538:lI115|H107227410 -107227410:lI101|H107229F48 -107229F48:lI100|H10722C6E0 -10722C6E0:lI95|H10722EC18 -10722EC18:lI115|H107230E70 -107230E70:lI109|H107232E18 -107232E18:lI95|H107234AE0 -107234AE0:lI109|H1072364D8 -1072364D8:lI105|H107237C80 -107237C80:lI98|H107239238 -107239238:lI46|H10723A6C0 -10723A6C0:lI98|H10723B960 -10723B960:lI101|H10723C990 -10723C990:lI97|H10723D800 -10723D800:lI109|N -1071FB460:lH1071FE3D0|N -1071FE3D0:lI115|H107201488 -107201488:lI110|H107204630 -107204630:lI109|H107207860 -107207860:lI112|H10720AAD8 -10720AAD8:lI99|H10720DCC8 -10720DCC8:lI95|H107210E58 -107210E58:lI108|H1072140B8 -1072140B8:lI105|H107217450 -107217450:lI98|H10721A980 -10721A980:lI46|H10721DF00 -10721DF00:lI98|H1072213F0 -1072213F0:lI101|H107224598 -107224598:lI97|H107227460 -107227460:lI109|N -1071FB450:lH1071FE3C0|N -1071FE3C0:lI115|H107201478 -107201478:lI110|H107204620 -107204620:lI109|H107207850 -107207850:lI112|H10720AAC8 -10720AAC8:lI95|H10720DCB8 -10720DCB8:lI115|H107210E48 -107210E48:lI116|H1072140A8 -1072140A8:lI97|H107217440 -107217440:lI110|H10721A970 -10721A970:lI100|H10721DEF0 -10721DEF0:lI97|H1072213E0 -1072213E0:lI114|H107224588 -107224588:lI100|H107227450 -107227450:lI95|H107229F88 -107229F88:lI109|H10722C720 -10722C720:lI105|H10722EC58 -10722EC58:lI98|H107230EB0 -107230EB0:lI46|H107232E48 -107232E48:lI98|H107234B10 -107234B10:lI101|H1072364F8 -1072364F8:lI97|H107237CA0 -107237CA0:lI109|N -1071FB438:Mn2:H1071FE3A0,H1071FE3B0 -1071FE3A0:lH107201458|N -107201458:lI115|H107204600 -107204600:lI110|H107207830 -107207830:lI109|H10720AAA8 -10720AAA8:lI112|H10720DC98 -10720DC98:lI95|H107210E28 -107210E28:lI118|H107214088 -107214088:lI101|H107217420 -107217420:lI114|H10721A950 -10721A950:lI98|H10721DED0 -10721DED0:lI111|H1072213C0 -1072213C0:lI115|H107224568 -107224568:lI105|H107227430 -107227430:lI116|H107229F68 -107229F68:lI121|H10722C700 -10722C700:lI46|H10722EC38 -10722EC38:lI98|H107230E90 -107230E90:lI101|H107232E38 -107232E38:lI97|H107234B00 -107234B00:lI109|N -1071FE3B0:lH107201468|N -107201468:lI115|H107204610 -107204610:lI110|H107207840 -107207840:lI109|H10720AAB8 -10720AAB8:lI112|H10720DCA8 -10720DCA8:lI97|H107210E38 -107210E38:lI95|H107214098 -107214098:lI110|H107217430 -107217430:lI101|H10721A960 -10721A960:lI116|H10721DEE0 -10721DEE0:lI95|H1072213D0 -1072213D0:lI105|H107224578 -107224578:lI102|H107227440 -107227440:lI46|H107229F78 -107229F78:lI98|H10722C710 -10722C710:lI101|H10722EC48 -10722EC48:lI97|H107230EA0 -107230EA0:lI109|N -1071FB428:lH1071FE390|N -1071FE390:lI115|H107201448 -107201448:lI110|H1072045F0 -1072045F0:lI109|H107207820 -107207820:lI112|H10720AA98 -10720AA98:lI95|H10720DC88 -10720DC88:lI97|H107210E18 -107210E18:lI112|H107214078 -107214078:lI112|H107217410 -107217410:lI46|H10721A940 -10721A940:lI98|H10721DEC0 -10721DEC0:lI101|H1072213B0 -1072213B0:lI97|H107224558 -107224558:lI109|N -1071FB418:lH1071FE380|N -1071FE380:lI115|H107201438 -107201438:lI110|H1072045E0 -1072045E0:lI109|H107207810 -107207810:lI112|H10720AA88 -10720AA88:lI97|H10720DC78 -10720DC78:lI95|H107210E08 -107210E08:lI101|H107214068 -107214068:lI114|H107217400 -107217400:lI114|H10721A930 -10721A930:lI111|H10721DEB0 -10721DEB0:lI114|H1072213A0 -1072213A0:lI95|H107224548 -107224548:lI114|H107227420 -107227420:lI101|H107229F58 -107229F58:lI112|H10722C6F0 -10722C6F0:lI111|H10722EC28 -10722EC28:lI114|H107230E80 -107230E80:lI116|H107232E28 -107232E28:lI46|H107234AF0 -107234AF0:lI98|H1072364E8 -1072364E8:lI101|H107237C90 -107237C90:lI97|H107239248 -107239248:lI109|N -1071F8720:Mn3:H1071FB3C8,H1071FB3D8,H1071FB3E8 -1071FB3C8:lH1071FE320|N -1071FE320:lI115|H1072013D8 -1072013D8:lI110|H107204580 -107204580:lI109|H1072077B0 -1072077B0:lI112|H10720AA28 -10720AA28:lI109|H10720DC18 -10720DC18:lI95|H107210DA8 -107210DA8:lI110|H107214008 -107214008:lI101|H1072173A0 -1072173A0:lI116|H10721A8D0 -10721A8D0:lI95|H10721DE50 -10721DE50:lI105|H107221350 -107221350:lI102|H1072244F8 -1072244F8:lI95|H1072273D0 -1072273D0:lI109|H107229F08 -107229F08:lI116|H10722C6A0 -10722C6A0:lI46|H10722EBD8 -10722EBD8:lI98|H107230E30 -107230E30:lI101|H107232DF8 -107232DF8:lI97|H107234AC0 -107234AC0:lI109|N -1071FB3E8:Mn3:H1071FE340,H1071FE350,H1071FE360 -1071FE340:lH1072013F8|N -1072013F8:lI115|H1072045A0 -1072045A0:lI110|H1072077D0 -1072077D0:lI109|H10720AA48 -10720AA48:lI112|H10720DC38 -10720DC38:lI97|H107210DC8 -107210DC8:lI95|H107214028 -107214028:lI109|H1072173C0 -1072173C0:lI105|H10721A8F0 -10721A8F0:lI98|H10721DE70 -10721DE70:lI95|H107221370 -107221370:lI115|H107224518 -107224518:lI116|H1072273F0 -1072273F0:lI111|H107229F28 -107229F28:lI114|H10722C6C0 -10722C6C0:lI97|H10722EBF8 -10722EBF8:lI103|H107230E50 -107230E50:lI101|H107232E08 -107232E08:lI46|H107234AD0 -107234AD0:lI98|H1072364C8 -1072364C8:lI101|H107237C70 -107237C70:lI97|H107239228 -107239228:lI109|N -1071FE360:lH107201418|N -107201418:lI115|H1072045C0 -1072045C0:lI110|H1072077F0 -1072077F0:lI109|H10720AA68 -10720AA68:lI112|H10720DC58 -10720DC58:lI95|H107210DE8 -107210DE8:lI97|H107214048 -107214048:lI112|H1072173E0 -1072173E0:lI112|H10721A910 -10721A910:lI95|H10721DE90 -10721DE90:lI115|H107221380 -107221380:lI117|H107224528 -107224528:lI112|H107227400 -107227400:lI46|H107229F38 -107229F38:lI98|H10722C6D0 -10722C6D0:lI101|H10722EC08 -10722EC08:lI97|H107230E60 -107230E60:lI109|N -1071FE350:lH107201408|N -107201408:lI115|H1072045B0 -1072045B0:lI110|H1072077E0 -1072077E0:lI109|H10720AA58 -10720AA58:lI112|H10720DC48 -10720DC48:lI99|H107210DD8 -107210DD8:lI46|H107214038 -107214038:lI98|H1072173D0 -1072173D0:lI101|H10721A900 -10721A900:lI97|H10721DE80 -10721DE80:lI109|N -1071FB3D8:lH1071FE330|N -1071FE330:lI115|H1072013E8 -1072013E8:lI110|H107204590 -107204590:lI109|H1072077C0 -1072077C0:lI112|H10720AA38 -10720AA38:lI97|H10720DC28 -10720DC28:lI95|H107210DB8 -107210DB8:lI115|H107214018 -107214018:lI101|H1072173B0 -1072173B0:lI116|H10721A8E0 -10721A8E0:lI95|H10721DE60 -10721DE60:lI108|H107221360 -107221360:lI105|H107224508 -107224508:lI98|H1072273E0 -1072273E0:lI46|H107229F18 -107229F18:lI98|H10722C6B0 -10722C6B0:lI101|H10722EBE8 -10722EBE8:lI97|H107230E40 -107230E40:lI109|N -1071F8700:Mn3:H1071FB390,H1071FB3A0,H1071FB3B0 -1071FB390:lH1071FE2E0|N -1071FE2E0:lI115|H107201398 -107201398:lI110|H107204540 -107204540:lI109|H107207770 -107207770:lI112|H10720A9E8 -10720A9E8:lI97|H10720DBD8 -10720DBD8:lI95|H107210D68 -107210D68:lI115|H107213FC8 -107213FC8:lI117|H107217360 -107217360:lI112|H10721A890 -10721A890:lI101|H10721DE10 -10721DE10:lI114|H107221310 -107221310:lI118|H1072244B8 -1072244B8:lI105|H107227390 -107227390:lI115|H107229EC8 -107229EC8:lI111|H10722C680 -10722C680:lI114|H10722EBB8 -10722EBB8:lI46|H107230E10 -107230E10:lI98|H107232DD8 -107232DD8:lI101|H107234AA0 -107234AA0:lI97|H1072364A8 -1072364A8:lI109|N -1071FB3B0:Mn2:H1071FE300,H1071FE310 -1071FE300:lH1072013B8|N -1072013B8:lI115|H107204560 -107204560:lI110|H107207790 -107207790:lI109|H10720AA08 -10720AA08:lI112|H10720DBF8 -10720DBF8:lI95|H107210D88 -107210D88:lI110|H107213FE8 -107213FE8:lI111|H107217380 -107217380:lI116|H10721A8B0 -10721A8B0:lI105|H10721DE30 -10721DE30:lI102|H107221330 -107221330:lI105|H1072244D8 -1072244D8:lI99|H1072273B0 -1072273B0:lI97|H107229EE8 -107229EE8:lI116|H10722C690 -10722C690:lI105|H10722EBC8 -10722EBC8:lI111|H107230E20 -107230E20:lI110|H107232DE8 -107232DE8:lI95|H107234AB0 -107234AB0:lI109|H1072364B8 -1072364B8:lI105|H107237C60 -107237C60:lI98|H107239218 -107239218:lI46|H10723A6B0 -10723A6B0:lI98|H10723B950 -10723B950:lI101|H10723C980 -10723C980:lI97|H10723D7F0 -10723D7F0:lI109|N -1071FE310:lH1072013C8|N -1072013C8:lI115|H107204570 -107204570:lI110|H1072077A0 -1072077A0:lI109|H10720AA18 -10720AA18:lI112|H10720DC08 -10720DC08:lI109|H107210D98 -107210D98:lI95|H107213FF8 -107213FF8:lI109|H107217390 -107217390:lI112|H10721A8C0 -10721A8C0:lI100|H10721DE40 -10721DE40:lI46|H107221340 -107221340:lI98|H1072244E8 -1072244E8:lI101|H1072273C0 -1072273C0:lI97|H107229EF8 -107229EF8:lI109|N -1071FB3A0:lH1071FE2F0|N -1071FE2F0:lI115|H1072013A8 -1072013A8:lI110|H107204550 -107204550:lI109|H107207780 -107207780:lI112|H10720A9F8 -10720A9F8:lI109|H10720DBE8 -10720DBE8:lI95|H107210D78 -107210D78:lI99|H107213FD8 -107213FD8:lI111|H107217370 -107217370:lI110|H10721A8A0 -10721A8A0:lI102|H10721DE20 -10721DE20:lI46|H107221320 -107221320:lI98|H1072244C8 -1072244C8:lI101|H1072273A0 -1072273A0:lI97|H107229ED8 -107229ED8:lI109|N -1071F5D88:lI47|H1071F86C8 -1071F86C8:lI111|H1071FB330 -1071FB330:lI112|H1071FE270 -1071FE270:lI116|H107201328 -107201328:lI47|H1072044D0 -1072044D0:lI104|H107207700 -107207700:lI111|H10720A978 -10720A978:lI109|H10720DB68 -10720DB68:lI101|H107210CF8 -107210CF8:lI98|H107213F58 -107213F58:lI114|H1072172F0 -1072172F0:lI101|H10721A820 -10721A820:lI119|H10721DDA0 -10721DDA0:lI47|H1072212A0 -1072212A0:lI67|H107224448 -107224448:lI101|H107227320 -107227320:lI108|H107229E58 -107229E58:lI108|H10722C630 -10722C630:lI97|H10722EB68 -10722EB68:lI114|H107230DC0 -107230DC0:lI47|H107232D88 -107232D88:lI101|H107234A50 -107234A50:lI114|H107236468 -107236468:lI108|H107237C20 -107237C20:lI97|H1072391D8 -1072391D8:lI110|H10723A670 -10723A670:lI103|H10723B930 -10723B930:lI47|H10723C960 -10723C960:lI50|H10723D7D0 -10723D7D0:lI54|H10723E510 -10723E510:lI46|H10723F110 -10723F110:lI48|H10723FBD0 -10723FBD0:lI46|H107240510 -107240510:lI50|H107240D90 -107240D90:lI47|H107241520 -107241520:lI108|H107241C50 -107241C50:lI105|H107242310 -107242310:lI98|H107242980 -107242980:lI47|H107242F80 -107242F80:lI101|H1072434F0 -1072434F0:lI114|H107243A30 -107243A30:lI108|H107243F20 -107243F20:lI97|H107244410 -107244410:lI110|H1072448C0 -1072448C0:lI103|H107244D30 -107244D30:lI47|H107245190 -107245190:lI108|H1072455E0 -1072455E0:lI105|H1072459E0 -1072459E0:lI98|H107245DA0 -107245DA0:lI47|H107246130 -107246130:lI115|H1072464C0 -1072464C0:lI110|H107246850 -107246850:lI109|H107246BE0 -107246BE0:lI112|H107246F10 -107246F10:lI45|H107247230 -107247230:lI53|H107247540 -107247540:lI46|H107247840 -107247840:lI49|H107247B40 -107247B40:lI52|H107247E20 -107247E20:lI47|H280052C20 -1071F3680:lH1071F5E28|H1071F5E40 -1071F5E28:t2:H1071F89B8,H1071F89C8 -1071F89C8:Mf13:H1071FB880:N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N -1071FB880:t13:H1071FE838,H1071FE848,H1071FE858,H1071FE868,H1071FE878,H1071FE888,H1071FE898,H1071FE8A8,H1071FE8B8,H1071FE8C8,H1071FE8D8,H1071FE8E8,H1071FE8F8,H1071FE908,H1071FE918,H1071FE928,H1071FE938,H1071FE948,H1071FE958 -1071FE958:lI115|H107201A18 -107201A18:lI121|H107204BC0 -107204BC0:lI115|H107207DF0 -107207DF0:lI116|H10720B068 -10720B068:lI111|H10720E258 -10720E258:lI111|H1072113E8 -1072113E8:lI108|H107214638 -107214638:lI115|H1072179C0 -1072179C0:lI95|H10721AEC0 -10721AEC0:lI114|H10721E410 -10721E410:lI101|H1072218E0 -1072218E0:lI108|H107224A88 -107224A88:lI117|H107227910 -107227910:lI112|H10722A388 -10722A388:lI46|H10722CAE0 -10722CAE0:lI98|H10722EFD8 -10722EFD8:lI101|H1072311E0 -1072311E0:lI97|H1072330F8 -1072330F8:lI109|N -1071FE948:lI115|H107201A08 -107201A08:lI121|H107204BB0 -107204BB0:lI115|H107207DE0 -107207DE0:lI116|H10720B058 -10720B058:lI111|H10720E248 -10720E248:lI111|H1072113D8 -1072113D8:lI108|H107214628 -107214628:lI115|H1072179B0 -1072179B0:lI95|H10721AEB0 -10721AEB0:lI114|H10721E400 -10721E400:lI99|H1072218D0 -1072218D0:lI46|H107224A78 -107224A78:lI98|H107227900 -107227900:lI101|H10722A378 -10722A378:lI97|H10722CAD0 -10722CAD0:lI109|N -1071FE938:lI115|H1072019F8 -1072019F8:lI121|H107204BA0 -107204BA0:lI115|H107207DD0 -107207DD0:lI116|H10720B048 -10720B048:lI111|H10720E238 -10720E238:lI111|H1072113C8 -1072113C8:lI108|H107214618 -107214618:lI115|H1072179A0 -1072179A0:lI95|H10721AEA0 -10721AEA0:lI109|H10721E3F0 -10721E3F0:lI97|H1072218C0 -1072218C0:lI107|H107224A68 -107224A68:lI101|H1072278F0 -1072278F0:lI46|H10722A368 -10722A368:lI98|H10722CAC0 -10722CAC0:lI101|H10722EFC8 -10722EFC8:lI97|H1072311D0 -1072311D0:lI109|N -1071FE928:lI115|H1072019E8 -1072019E8:lI121|H107204B90 -107204B90:lI115|H107207DC0 -107207DC0:lI116|H10720B038 -10720B038:lI111|H10720E228 -10720E228:lI111|H1072113B8 -1072113B8:lI108|H107214608 -107214608:lI115|H107217990 -107217990:lI95|H10721AE90 -10721AE90:lI108|H10721E3E0 -10721E3E0:lI105|H1072218B0 -1072218B0:lI98|H107224A58 -107224A58:lI46|H1072278E0 -1072278E0:lI98|H10722A358 -10722A358:lI101|H10722CAB0 -10722CAB0:lI97|H10722EFB8 -10722EFB8:lI109|N -1071FE918:lI115|H1072019D8 -1072019D8:lI121|H107204B80 -107204B80:lI115|H107207DB0 -107207DB0:lI116|H10720B028 -10720B028:lI111|H10720E218 -10720E218:lI111|H1072113A8 -1072113A8:lI108|H1072145F8 -1072145F8:lI115|H107217980 -107217980:lI46|H10721AE80 -10721AE80:lI98|H10721E3D0 -10721E3D0:lI101|H1072218A0 -1072218A0:lI97|H107224A48 -107224A48:lI109|N -1071FE908:lI115|H1072019C8 -1072019C8:lI97|H107204B70 -107204B70:lI115|H107207DA0 -107207DA0:lI108|H10720B018 -10720B018:lI95|H10720E208 -10720E208:lI114|H107211398 -107211398:lI101|H1072145E8 -1072145E8:lI112|H107217970 -107217970:lI111|H10721AE70 -10721AE70:lI114|H10721E3C0 -10721E3C0:lI116|H107221890 -107221890:lI95|H107224A38 -107224A38:lI116|H1072278D0 -1072278D0:lI116|H10722A348 -10722A348:lI121|H10722CAA0 -10722CAA0:lI95|H10722EFA8 -10722EFA8:lI104|H1072311C0 -1072311C0:lI46|H1072330E8 -1072330E8:lI98|H107234D40 -107234D40:lI101|H1072366E8 -1072366E8:lI97|H107237E50 -107237E50:lI109|N -1071FE8F8:lI115|H1072019B8 -1072019B8:lI97|H107204B60 -107204B60:lI115|H107207D90 -107207D90:lI108|H10720B008 -10720B008:lI95|H10720E1F8 -10720E1F8:lI114|H107211388 -107211388:lI101|H1072145D8 -1072145D8:lI112|H107217960 -107217960:lI111|H10721AE60 -10721AE60:lI114|H10721E3B0 -10721E3B0:lI116|H107221880 -107221880:lI95|H107224A28 -107224A28:lI102|H1072278C0 -1072278C0:lI105|H10722A338 -10722A338:lI108|H10722CA90 -10722CA90:lI101|H10722EF98 -10722EF98:lI95|H1072311B0 -1072311B0:lI104|H1072330D8 -1072330D8:lI46|H107234D30 -107234D30:lI98|H1072366D8 -1072366D8:lI101|H107237E40 -107237E40:lI97|H1072393C8 -1072393C8:lI109|N -1071FE8E8:lI115|H1072019A8 -1072019A8:lI97|H107204B50 -107204B50:lI115|H107207D80 -107207D80:lI108|H10720AFF8 -10720AFF8:lI95|H10720E1E8 -10720E1E8:lI114|H107211378 -107211378:lI101|H1072145C8 -1072145C8:lI112|H107217950 -107217950:lI111|H10721AE50 -10721AE50:lI114|H10721E3A0 -10721E3A0:lI116|H107221870 -107221870:lI46|H107224A18 -107224A18:lI98|H1072278B0 -1072278B0:lI101|H10722A328 -10722A328:lI97|H10722CA80 -10722CA80:lI109|N -1071FE8D8:lI115|H107201998 -107201998:lI97|H107204B40 -107204B40:lI115|H107207D70 -107207D70:lI108|H10720AFE8 -10720AFE8:lI46|H10720E1D8 -10720E1D8:lI98|H107211368 -107211368:lI101|H1072145B8 -1072145B8:lI97|H107217940 -107217940:lI109|N -1071FE8C8:lI115|H107201988 -107201988:lI97|H107204B30 -107204B30:lI115|H107207D60 -107207D60:lI108|H10720AFD8 -10720AFD8:lI46|H10720E1C8 -10720E1C8:lI97|H107211358 -107211358:lI112|H1072145A8 -1072145A8:lI112|H107217930 -107217930:lI117|H10721AE40 -10721AE40:lI112|N -1071FE8B8:lI115|H107201978 -107201978:lI97|H107204B20 -107204B20:lI115|H107207D50 -107207D50:lI108|H10720AFC8 -10720AFC8:lI46|H10720E1B8 -10720E1B8:lI97|H107211348 -107211348:lI112|H107214598 -107214598:lI112|N -1071FE8A8:lI114|H107201968 -107201968:lI101|H107204B10 -107204B10:lI108|H107207D40 -107207D40:lI101|H10720AFB8 -10720AFB8:lI97|H10720E1A8 -10720E1A8:lI115|H107211338 -107211338:lI101|H107214588 -107214588:lI95|H107217920 -107217920:lI104|H10721AE30 -10721AE30:lI97|H10721E390 -10721E390:lI110|H107221860 -107221860:lI100|H107224A08 -107224A08:lI108|H1072278A0 -1072278A0:lI101|H10722A318 -10722A318:lI114|H10722CA70 -10722CA70:lI95|H10722EF88 -10722EF88:lI49|H1072311A0 -1072311A0:lI46|H1072330C8 -1072330C8:lI98|H107234D20 -107234D20:lI101|H1072366C8 -1072366C8:lI97|H107237E30 -107237E30:lI109|N -1071FE898:lI114|H107201958 -107201958:lI101|H107204B00 -107204B00:lI108|H107207D30 -107207D30:lI101|H10720AFA8 -10720AFA8:lI97|H10720E198 -10720E198:lI115|H107211328 -107211328:lI101|H107214578 -107214578:lI95|H107217910 -107217910:lI104|H10721AE20 -10721AE20:lI97|H10721E380 -10721E380:lI110|H107221850 -107221850:lI100|H1072249F8 -1072249F8:lI108|H107227890 -107227890:lI101|H10722A308 -10722A308:lI114|H10722CA60 -10722CA60:lI46|H10722EF78 -10722EF78:lI98|H107231190 -107231190:lI101|H1072330B8 -1072330B8:lI97|H107234D10 -107234D10:lI109|N -1071FE888:lI114|H107201948 -107201948:lI98|H107204AF0 -107204AF0:lI95|H107207D20 -107207D20:lI102|H10720AF98 -10720AF98:lI111|H10720E188 -10720E188:lI114|H107211318 -107211318:lI109|H107214568 -107214568:lI97|H107217900 -107217900:lI116|H10721AE10 -10721AE10:lI95|H10721E370 -10721E370:lI115|H107221840 -107221840:lI117|H1072249E8 -1072249E8:lI112|H107227880 -107227880:lI112|H10722A2F8 -10722A2F8:lI46|H10722CA50 -10722CA50:lI98|H10722EF68 -10722EF68:lI101|H107231180 -107231180:lI97|H1072330A8 -1072330A8:lI109|N -1071FE878:lI114|H107201938 -107201938:lI98|H107204AE0 -107204AE0:lI46|H107207D10 -107207D10:lI98|H10720AF88 -10720AF88:lI101|H10720E178 -10720E178:lI97|H107211308 -107211308:lI109|N -1071FE868:lI109|H107201928 -107201928:lI105|H107204AD0 -107204AD0:lI115|H107207D00 -107207D00:lI99|H10720AF78 -10720AF78:lI95|H10720E168 -10720E168:lI115|H1072112F8 -1072112F8:lI117|H107214558 -107214558:lI112|H1072178F0 -1072178F0:lI112|H10721AE00 -10721AE00:lI46|H10721E360 -10721E360:lI98|H107221830 -107221830:lI101|H1072249D8 -1072249D8:lI97|H107227870 -107227870:lI109|N -1071FE858:lI102|H107201918 -107201918:lI111|H107204AC0 -107204AC0:lI114|H107207CF0 -107207CF0:lI109|H10720AF68 -10720AF68:lI97|H10720E158 -10720E158:lI116|H1072112E8 -1072112E8:lI95|H107214548 -107214548:lI108|H1072178E0 -1072178E0:lI105|H10721ADF0 -10721ADF0:lI98|H10721E350 -10721E350:lI95|H107221820 -107221820:lI115|H1072249C8 -1072249C8:lI117|H107227860 -107227860:lI112|H10722A2E8 -10722A2E8:lI112|H10722CA40 -10722CA40:lI46|H10722EF58 -10722EF58:lI98|H107231170 -107231170:lI101|H107233098 -107233098:lI97|H107234D00 -107234D00:lI109|N -1071FE848:lI101|H107201908 -107201908:lI114|H107204AB0 -107204AB0:lI108|H107207CE0 -107207CE0:lI115|H10720AF58 -10720AF58:lI114|H10720E148 -10720E148:lI118|H1072112D8 -1072112D8:lI46|H107214538 -107214538:lI98|H1072178D0 -1072178D0:lI101|H10721ADE0 -10721ADE0:lI97|H10721E340 -10721E340:lI109|N -1071FE838:lI97|H1072018F8 -1072018F8:lI108|H107204AA0 -107204AA0:lI97|H107207CD0 -107207CD0:lI114|H10720AF48 -10720AF48:lI109|H10720E138 -10720E138:lI95|H1072112C8 -1072112C8:lI104|H107214528 -107214528:lI97|H1072178C0 -1072178C0:lI110|H10721ADD0 -10721ADD0:lI100|H10721E330 -10721E330:lI108|H107221810 -107221810:lI101|H1072249B8 -1072249B8:lI114|H107227850 -107227850:lI46|H10722A2D8 -10722A2D8:lI98|H10722CA30 -10722CA30:lI101|H10722EF48 -10722EF48:lI97|H107231160 -107231160:lI109|N -1071F89B8:lI47|H1071FB870 -1071FB870:lI111|H1071FE828 -1071FE828:lI112|H1072018E8 -1072018E8:lI116|H107204A90 -107204A90:lI47|H107207CC0 -107207CC0:lI104|H10720AF38 -10720AF38:lI111|H10720E128 -10720E128:lI109|H1072112B8 -1072112B8:lI101|H107214518 -107214518:lI98|H1072178B0 -1072178B0:lI114|H10721ADC0 -10721ADC0:lI101|H10721E320 -10721E320:lI119|H107221800 -107221800:lI47|H1072249A8 -1072249A8:lI67|H107227840 -107227840:lI101|H10722A2C8 -10722A2C8:lI108|H10722CA20 -10722CA20:lI108|H10722EF38 -10722EF38:lI97|H107231150 -107231150:lI114|H107233088 -107233088:lI47|H107234CF0 -107234CF0:lI101|H1072366B8 -1072366B8:lI114|H107237E20 -107237E20:lI108|H1072393B8 -1072393B8:lI97|H10723A810 -10723A810:lI110|H10723BA40 -10723BA40:lI103|H10723CA70 -10723CA70:lI47|H10723D8D0 -10723D8D0:lI50|H10723E5D0 -10723E5D0:lI54|H10723F1B0 -10723F1B0:lI46|H10723FC40 -10723FC40:lI48|H107240580 -107240580:lI46|H107240DF0 -107240DF0:lI50|H107241580 -107241580:lI47|H107241CA0 -107241CA0:lI108|H107242360 -107242360:lI105|H1072429C0 -1072429C0:lI98|H107242FA0 -107242FA0:lI47|H107243510 -107243510:lI101|H107243A50 -107243A50:lI114|H107243F40 -107243F40:lI108|H107244430 -107244430:lI97|H1072448E0 -1072448E0:lI110|H107244D50 -107244D50:lI103|H1072451B0 -1072451B0:lI47|H107245600 -107245600:lI108|H107245A00 -107245A00:lI105|H107245DB0 -107245DB0:lI98|H107246140 -107246140:lI47|H1072464D0 -1072464D0:lI115|H107246860 -107246860:lI97|H107246BF0 -107246BF0:lI115|H107246F20 -107246F20:lI108|H107247240 -107247240:lI45|H107247550 -107247550:lI52|H107247850 -107247850:lI46|H107247B50 -107247B50:lI50|H107247E30 -107247E30:lI46|H1072480F0 -1072480F0:lI49|H1072483B0 -1072483B0:lI47|H280052C20 -1071F5E40:lH1071F8A78|H1071F8A90 -1071F8A78:t2:H1071FB920,H1071FB930 -1071FB930:MfE:H1071FE978:N,N,N,N,N,N,N,N,N,N,N,N,N,N -1071FE978:tE:H107201A38,H107201A48,H107201A58,H107201A68,H107201A78,H107201A88,H107201A98,H107201AA8,H107201AB8,H107201AC8,H107201AD8,H107201AE8,H107201AF8,H107201B08 -107201B08:lI116|H107204CB0 -107204CB0:lI116|H107207EE0 -107207EE0:lI98|H10720B158 -10720B158:lI95|H10720E348 -10720E348:lI97|H1072114D8 -1072114D8:lI117|H107214728 -107214728:lI116|H107217AB0 -107217AB0:lI111|H10721AFA0 -10721AFA0:lI115|H10721E4F0 -10721E4F0:lI116|H1072219B0 -1072219B0:lI97|H107224B58 -107224B58:lI114|H1072279E0 -1072279E0:lI116|H10722A448 -10722A448:lI46|H10722CB90 -10722CB90:lI98|H10722F078 -10722F078:lI101|H107231270 -107231270:lI97|H107233178 -107233178:lI109|N -107201AF8:lI115|H107204CA0 -107204CA0:lI121|H107207ED0 -107207ED0:lI115|H10720B148 -10720B148:lI116|H10720E338 -10720E338:lI101|H1072114C8 -1072114C8:lI109|H107214718 -107214718:lI95|H107217AA0 -107217AA0:lI105|H10721AF90 -10721AF90:lI110|H10721E4E0 -10721E4E0:lI102|H1072219A0 -1072219A0:lI111|H107224B48 -107224B48:lI114|H1072279D0 -1072279D0:lI109|H10722A438 -10722A438:lI97|H10722CB80 -10722CB80:lI116|H10722F068 -10722F068:lI105|H107231260 -107231260:lI111|H107233168 -107233168:lI110|H107234DA0 -107234DA0:lI46|H107236738 -107236738:lI98|H107237EA0 -107237EA0:lI101|H107239408 -107239408:lI97|H10723A830 -10723A830:lI109|N -107201AE8:lI115|H107204C90 -107204C90:lI99|H107207EC0 -107207EC0:lI104|H10720B138 -10720B138:lI101|H10720E328 -10720E328:lI100|H1072114B8 -1072114B8:lI117|H107214708 -107214708:lI108|H107217A90 -107217A90:lI101|H10721AF80 -10721AF80:lI114|H10721E4D0 -10721E4D0:lI46|H107221990 -107221990:lI98|H107224B38 -107224B38:lI101|H1072279C0 -1072279C0:lI97|H10722A428 -10722A428:lI109|N -107201AD8:lI114|H107204C80 -107204C80:lI117|H107207EB0 -107207EB0:lI110|H10720B128 -10720B128:lI116|H10720E318 -10720E318:lI105|H1072114A8 -1072114A8:lI109|H1072146F8 -1072146F8:lI101|H107217A80 -107217A80:lI95|H10721AF70 -10721AF70:lI116|H10721E4C0 -10721E4C0:lI111|H107221980 -107221980:lI111|H107224B28 -107224B28:lI108|H1072279B0 -1072279B0:lI115|H10722A418 -10722A418:lI95|H10722CB70 -10722CB70:lI115|H10722F058 -10722F058:lI117|H107231250 -107231250:lI112|H107233158 -107233158:lI46|H107234D90 -107234D90:lI98|H107236728 -107236728:lI101|H107237E90 -107237E90:lI97|H1072393F8 -1072393F8:lI109|N -107201AC8:lI114|H107204C70 -107204C70:lI117|H107207EA0 -107207EA0:lI110|H10720B118 -10720B118:lI116|H10720E308 -10720E308:lI105|H107211498 -107211498:lI109|H1072146E8 -1072146E8:lI101|H107217A70 -107217A70:lI95|H10721AF60 -10721AF60:lI116|H10721E4B0 -10721E4B0:lI111|H107221970 -107221970:lI111|H107224B18 -107224B18:lI108|H1072279A0 -1072279A0:lI115|H10722A408 -10722A408:lI46|H10722CB60 -10722CB60:lI98|H10722F048 -10722F048:lI101|H107231240 -107231240:lI97|H107233148 -107233148:lI109|N -107201AB8:lI114|H107204C60 -107204C60:lI117|H107207E90 -107207E90:lI110|H10720B108 -10720B108:lI116|H10720E2F8 -10720E2F8:lI105|H107211488 -107211488:lI109|H1072146D8 -1072146D8:lI101|H107217A60 -107217A60:lI95|H10721AF50 -10721AF50:lI116|H10721E4A0 -10721E4A0:lI111|H107221960 -107221960:lI111|H107224B08 -107224B08:lI108|H107227990 -107227990:lI115|H10722A3F8 -10722A3F8:lI46|H10722CB50 -10722CB50:lI97|H10722F038 -10722F038:lI112|H107231230 -107231230:lI112|H107233138 -107233138:lI117|H107234D80 -107234D80:lI112|N -107201AA8:lI114|H107204C50 -107204C50:lI117|H107207E80 -107207E80:lI110|H10720B0F8 -10720B0F8:lI116|H10720E2E8 -10720E2E8:lI105|H107211478 -107211478:lI109|H1072146C8 -1072146C8:lI101|H107217A50 -107217A50:lI95|H10721AF40 -10721AF40:lI116|H10721E490 -10721E490:lI111|H107221950 -107221950:lI111|H107224AF8 -107224AF8:lI108|H107227980 -107227980:lI115|H10722A3E8 -10722A3E8:lI46|H10722CB40 -10722CB40:lI97|H10722F028 -10722F028:lI112|H107231220 -107231220:lI112|N -107201A98:lI111|H107204C40 -107204C40:lI98|H107207E70 -107207E70:lI115|H10720B0E8 -10720B0E8:lI101|H10720E2D8 -10720E2D8:lI114|H107211468 -107211468:lI118|H1072146B8 -1072146B8:lI101|H107217A40 -107217A40:lI114|H10721AF30 -10721AF30:lI95|H10721E480 -10721E480:lI98|H107221940 -107221940:lI97|H107224AE8 -107224AE8:lI99|H107227970 -107227970:lI107|H10722A3D8 -10722A3D8:lI101|H10722CB30 -10722CB30:lI110|H10722F018 -10722F018:lI100|H107231210 -107231210:lI46|H107233128 -107233128:lI98|H107234D70 -107234D70:lI101|H107236718 -107236718:lI97|H107237E80 -107237E80:lI109|N -107201A88:lI109|H107204C30 -107204C30:lI115|H107207E60 -107207E60:lI97|H10720B0D8 -10720B0D8:lI99|H10720E2C8 -10720E2C8:lI99|H107211458 -107211458:lI46|H1072146A8 -1072146A8:lI98|H107217A30 -107217A30:lI101|H10721AF20 -10721AF20:lI97|H10721E470 -10721E470:lI109|N -107201A78:lI105|H107204C20 -107204C20:lI110|H107207E50 -107207E50:lI115|H10720B0C8 -10720B0C8:lI116|H10720E2B8 -10720E2B8:lI114|H107211448 -107211448:lI117|H107214698 -107214698:lI109|H107217A20 -107217A20:lI101|H10721AF10 -10721AF10:lI110|H10721E460 -10721E460:lI116|H107221930 -107221930:lI46|H107224AD8 -107224AD8:lI98|H107227960 -107227960:lI101|H10722A3C8 -10722A3C8:lI97|H10722CB20 -10722CB20:lI109|N -107201A68:lI101|H107204C10 -107204C10:lI114|H107207E40 -107207E40:lI116|H10720B0B8 -10720B0B8:lI115|H10720E2A8 -10720E2A8:lI95|H107211438 -107211438:lI97|H107214688 -107214688:lI108|H107217A10 -107217A10:lI108|H10721AF00 -10721AF00:lI111|H10721E450 -10721E450:lI99|H107221920 -107221920:lI95|H107224AC8 -107224AC8:lI99|H107227950 -107227950:lI111|H10722A3B8 -10722A3B8:lI110|H10722CB10 -10722CB10:lI102|H10722F008 -10722F008:lI105|H107231200 -107231200:lI103|H107233118 -107233118:lI46|H107234D60 -107234D60:lI98|H107236708 -107236708:lI101|H107237E70 -107237E70:lI97|H1072393E8 -1072393E8:lI109|N -107201A58:lI100|H107204C00 -107204C00:lI121|H107207E30 -107207E30:lI110|H10720B0A8 -10720B0A8:lI116|H10720E298 -10720E298:lI114|H107211428 -107211428:lI97|H107214678 -107214678:lI99|H107217A00 -107217A00:lI101|H10721AEF0 -10721AEF0:lI46|H10721E440 -10721E440:lI98|H107221910 -107221910:lI101|H107224AB8 -107224AB8:lI97|H107227940 -107227940:lI109|N -107201A48:lI100|H107204BF0 -107204BF0:lI98|H107207E20 -107207E20:lI103|H10720B098 -10720B098:lI46|H10720E288 -10720E288:lI98|H107211418 -107211418:lI101|H107214668 -107214668:lI97|H1072179F0 -1072179F0:lI109|N -107201A38:lI97|H107204BE0 -107204BE0:lI112|H107207E10 -107207E10:lI112|H10720B088 -10720B088:lI109|H10720E278 -10720E278:lI111|H107211408 -107211408:lI110|H107214658 -107214658:lI95|H1072179E0 -1072179E0:lI105|H10721AEE0 -10721AEE0:lI110|H10721E430 -10721E430:lI102|H107221900 -107221900:lI111|H107224AA8 -107224AA8:lI46|H107227930 -107227930:lI98|H10722A3A8 -10722A3A8:lI101|H10722CB00 -10722CB00:lI97|H10722EFF8 -10722EFF8:lI109|N -1071FB920:lI47|H1071FE968 -1071FE968:lI111|H107201A28 -107201A28:lI112|H107204BD0 -107204BD0:lI116|H107207E00 -107207E00:lI47|H10720B078 -10720B078:lI104|H10720E268 -10720E268:lI111|H1072113F8 -1072113F8:lI109|H107214648 -107214648:lI101|H1072179D0 -1072179D0:lI98|H10721AED0 -10721AED0:lI114|H10721E420 -10721E420:lI101|H1072218F0 -1072218F0:lI119|H107224A98 -107224A98:lI47|H107227920 -107227920:lI67|H10722A398 -10722A398:lI101|H10722CAF0 -10722CAF0:lI108|H10722EFE8 -10722EFE8:lI108|H1072311F0 -1072311F0:lI97|H107233108 -107233108:lI114|H107234D50 -107234D50:lI47|H1072366F8 -1072366F8:lI101|H107237E60 -107237E60:lI114|H1072393D8 -1072393D8:lI108|H10723A820 -10723A820:lI97|H10723BA50 -10723BA50:lI110|H10723CA80 -10723CA80:lI103|H10723D8E0 -10723D8E0:lI47|H10723E5E0 -10723E5E0:lI50|H10723F1C0 -10723F1C0:lI54|H10723FC50 -10723FC50:lI46|H107240590 -107240590:lI48|H107240E00 -107240E00:lI46|H107241590 -107241590:lI50|H107241CB0 -107241CB0:lI47|H107242370 -107242370:lI108|H1072429D0 -1072429D0:lI105|H107242FB0 -107242FB0:lI98|H107243520 -107243520:lI47|H107243A60 -107243A60:lI101|H107243F50 -107243F50:lI114|H107244440 -107244440:lI108|H1072448F0 -1072448F0:lI97|H107244D60 -107244D60:lI110|H1072451C0 -1072451C0:lI103|H107245610 -107245610:lI47|H107245A10 -107245A10:lI108|H107245DC0 -107245DC0:lI105|H107246150 -107246150:lI98|H1072464E0 -1072464E0:lI47|H107246870 -107246870:lI114|H107246C00 -107246C00:lI117|H107246F30 -107246F30:lI110|H107247250 -107247250:lI116|H107247560 -107247560:lI105|H107247860 -107247860:lI109|H107247B60 -107247B60:lI101|H107247E40 -107247E40:lI95|H107248100 -107248100:lI116|H1072483C0 -1072483C0:lI111|H107248670 -107248670:lI111|H107248920 -107248920:lI108|H107248BA0 -107248BA0:lI115|H107248E20 -107248E20:lI45|H107249090 -107249090:lI50|H107249300 -107249300:lI46|H107249560 -107249560:lI48|H1072497C0 -1072497C0:lI47|H280052C20 -1071F8A90:lH1071FB9B8|H1071FB9D0 -1071FB9B8:t2:H1071FE9F0,H1071FEA00 -1071FEA00:MfB:H107201B28:N,N,N,N,N,N,N,N,N,N,N -107201B28:tB:H107204CD0,H107204CE0,H107204CF0,H107204D00,H107204D10,H107204D20,H107204D30,H107204D40,H107204D50,H107204D60,H107204D70 -107204D70:lI114|H107207FA0 -107207FA0:lI101|H10720B218 -10720B218:lI108|H10720E408 -10720E408:lI116|H107211598 -107211598:lI111|H1072147E8 -1072147E8:lI111|H107217B70 -107217B70:lI108|H10721B060 -10721B060:lI95|H10721E5B0 -10721E5B0:lI117|H107221A70 -107221A70:lI116|H107224C18 -107224C18:lI105|H107227A90 -107227A90:lI108|H10722A4E8 -10722A4E8:lI115|H10722CC20 -10722CC20:lI46|H10722F108 -10722F108:lI98|H107231300 -107231300:lI101|H107233208 -107233208:lI97|H107234E30 -107234E30:lI109|N -107204D60:lI114|H107207F90 -107207F90:lI101|H10720B208 -10720B208:lI108|H10720E3F8 -10720E3F8:lI116|H107211588 -107211588:lI111|H1072147D8 -1072147D8:lI111|H107217B60 -107217B60:lI108|H10721B050 -10721B050:lI95|H10721E5A0 -10721E5A0:lI116|H107221A60 -107221A60:lI97|H107224C08 -107224C08:lI114|H107227A80 -107227A80:lI103|H10722A4D8 -10722A4D8:lI101|H10722CC10 -10722CC10:lI116|H10722F0F8 -10722F0F8:lI46|H1072312F0 -1072312F0:lI98|H1072331F8 -1072331F8:lI101|H107234E20 -107234E20:lI97|H1072367B8 -1072367B8:lI109|N -107204D50:lI114|H107207F80 -107207F80:lI101|H10720B1F8 -10720B1F8:lI108|H10720E3E8 -10720E3E8:lI116|H107211578 -107211578:lI111|H1072147C8 -1072147C8:lI111|H107217B50 -107217B50:lI108|H10721B040 -10721B040:lI95|H10721E590 -10721E590:lI115|H107221A50 -107221A50:lI121|H107224BF8 -107224BF8:lI115|H107227A70 -107227A70:lI95|H10722A4C8 -10722A4C8:lI119|H10722CC00 -10722CC00:lI105|H10722F0E8 -10722F0E8:lI110|H1072312E0 -1072312E0:lI46|H1072331E8 -1072331E8:lI98|H107234E10 -107234E10:lI101|H1072367A8 -1072367A8:lI97|H107237EF0 -107237EF0:lI109|N -107204D40:lI114|H107207F70 -107207F70:lI101|H10720B1E8 -10720B1E8:lI108|H10720E3D8 -10720E3D8:lI116|H107211568 -107211568:lI111|H1072147B8 -1072147B8:lI111|H107217B40 -107217B40:lI108|H10721B030 -10721B030:lI95|H10721E580 -10721E580:lI115|H107221A40 -107221A40:lI101|H107224BE8 -107224BE8:lI114|H107227A60 -107227A60:lI118|H10722A4B8 -10722A4B8:lI101|H10722CBF0 -10722CBF0:lI114|H10722F0D8 -10722F0D8:lI46|H1072312D0 -1072312D0:lI98|H1072331D8 -1072331D8:lI101|H107234E00 -107234E00:lI97|H107236798 -107236798:lI109|N -107204D30:lI114|H107207F60 -107207F60:lI101|H10720B1D8 -10720B1D8:lI108|H10720E3C8 -10720E3C8:lI116|H107211558 -107211558:lI111|H1072147A8 -1072147A8:lI111|H107217B30 -107217B30:lI108|H10721B020 -10721B020:lI95|H10721E570 -10721E570:lI109|H107221A30 -107221A30:lI111|H107224BD8 -107224BD8:lI100|H107227A50 -107227A50:lI95|H10722A4A8 -10722A4A8:lI119|H10722CBE0 -10722CBE0:lI105|H10722F0C8 -10722F0C8:lI110|H1072312C0 -1072312C0:lI46|H1072331C8 -1072331C8:lI98|H107234DF0 -107234DF0:lI101|H107236788 -107236788:lI97|H107237EE0 -107237EE0:lI109|N -107204D20:lI114|H107207F50 -107207F50:lI101|H10720B1C8 -10720B1C8:lI108|H10720E3B8 -10720E3B8:lI116|H107211548 -107211548:lI111|H107214798 -107214798:lI111|H107217B20 -107217B20:lI108|H10721B010 -10721B010:lI95|H10721E560 -10721E560:lI102|H107221A20 -107221A20:lI103|H107224BC8 -107224BC8:lI114|H107227A40 -107227A40:lI97|H10722A498 -10722A498:lI112|H10722CBD0 -10722CBD0:lI104|H10722F0B8 -10722F0B8:lI95|H1072312B0 -1072312B0:lI119|H1072331B8 -1072331B8:lI105|H107234DE0 -107234DE0:lI110|H107236778 -107236778:lI46|H107237ED0 -107237ED0:lI98|H107239428 -107239428:lI101|H10723A850 -10723A850:lI97|H10723BA70 -10723BA70:lI109|N -107204D10:lI114|H107207F40 -107207F40:lI101|H10720B1B8 -10720B1B8:lI108|H10720E3A8 -10720E3A8:lI116|H107211538 -107211538:lI111|H107214788 -107214788:lI111|H107217B10 -107217B10:lI108|H10721B000 -10721B000:lI95|H10721E550 -10721E550:lI102|H107221A10 -107221A10:lI103|H107224BB8 -107224BB8:lI114|H107227A30 -107227A30:lI97|H10722A488 -10722A488:lI112|H10722CBC0 -10722CBC0:lI104|H10722F0A8 -10722F0A8:lI46|H1072312A0 -1072312A0:lI98|H1072331A8 -1072331A8:lI101|H107234DD0 -107234DD0:lI97|H107236768 -107236768:lI109|N -107204D00:lI114|H107207F30 -107207F30:lI101|H10720B1A8 -10720B1A8:lI108|H10720E398 -10720E398:lI116|H107211528 -107211528:lI111|H107214778 -107214778:lI111|H107217B00 -107217B00:lI108|H10721AFF0 -10721AFF0:lI95|H10721E540 -10721E540:lI97|H107221A00 -107221A00:lI112|H107224BA8 -107224BA8:lI112|H107227A20 -107227A20:lI95|H10722A478 -10722A478:lI119|H10722CBB0 -10722CBB0:lI105|H10722F098 -10722F098:lI110|H107231290 -107231290:lI46|H107233198 -107233198:lI98|H107234DC0 -107234DC0:lI101|H107236758 -107236758:lI97|H107237EC0 -107237EC0:lI109|N -107204CF0:lI114|H107207F20 -107207F20:lI101|H10720B198 -10720B198:lI108|H10720E388 -10720E388:lI116|H107211518 -107211518:lI111|H107214768 -107214768:lI111|H107217AF0 -107217AF0:lI108|H10721AFE0 -10721AFE0:lI46|H10721E530 -10721E530:lI98|H1072219F0 -1072219F0:lI101|H107224B98 -107224B98:lI97|H107227A10 -107227A10:lI109|N -107204CE0:lI114|H107207F10 -107207F10:lI101|H10720B188 -10720B188:lI108|H10720E378 -10720E378:lI116|H107211508 -107211508:lI111|H107214758 -107214758:lI111|H107217AE0 -107217AE0:lI108|H10721AFD0 -10721AFD0:lI46|H10721E520 -10721E520:lI97|H1072219E0 -1072219E0:lI112|H107224B88 -107224B88:lI112|H107227A00 -107227A00:lI117|H10722A468 -10722A468:lI112|N -107204CD0:lI114|H107207F00 -107207F00:lI101|H10720B178 -10720B178:lI108|H10720E368 -10720E368:lI116|H1072114F8 -1072114F8:lI111|H107214748 -107214748:lI111|H107217AD0 -107217AD0:lI108|H10721AFC0 -10721AFC0:lI46|H10721E510 -10721E510:lI97|H1072219D0 -1072219D0:lI112|H107224B78 -107224B78:lI112|N -1071FE9F0:lI47|H107201B18 -107201B18:lI111|H107204CC0 -107204CC0:lI112|H107207EF0 -107207EF0:lI116|H10720B168 -10720B168:lI47|H10720E358 -10720E358:lI104|H1072114E8 -1072114E8:lI111|H107214738 -107214738:lI109|H107217AC0 -107217AC0:lI101|H10721AFB0 -10721AFB0:lI98|H10721E500 -10721E500:lI114|H1072219C0 -1072219C0:lI101|H107224B68 -107224B68:lI119|H1072279F0 -1072279F0:lI47|H10722A458 -10722A458:lI67|H10722CBA0 -10722CBA0:lI101|H10722F088 -10722F088:lI108|H107231280 -107231280:lI108|H107233188 -107233188:lI97|H107234DB0 -107234DB0:lI114|H107236748 -107236748:lI47|H107237EB0 -107237EB0:lI101|H107239418 -107239418:lI114|H10723A840 -10723A840:lI108|H10723BA60 -10723BA60:lI97|H10723CA90 -10723CA90:lI110|H10723D8F0 -10723D8F0:lI103|H10723E5F0 -10723E5F0:lI47|H10723F1D0 -10723F1D0:lI50|H10723FC60 -10723FC60:lI54|H1072405A0 -1072405A0:lI46|H107240E10 -107240E10:lI48|H1072415A0 -1072415A0:lI46|H107241CC0 -107241CC0:lI50|H107242380 -107242380:lI47|H1072429E0 -1072429E0:lI108|H107242FC0 -107242FC0:lI105|H107243530 -107243530:lI98|H107243A70 -107243A70:lI47|H107243F60 -107243F60:lI101|H107244450 -107244450:lI114|H107244900 -107244900:lI108|H107244D70 -107244D70:lI97|H1072451D0 -1072451D0:lI110|H107245620 -107245620:lI103|H107245A20 -107245A20:lI47|H107245DD0 -107245DD0:lI108|H107246160 -107246160:lI105|H1072464F0 -1072464F0:lI98|H107246880 -107246880:lI47|H107246C10 -107246C10:lI114|H107246F40 -107246F40:lI101|H107247260 -107247260:lI108|H107247570 -107247570:lI116|H107247870 -107247870:lI111|H107247B70 -107247B70:lI111|H107247E50 -107247E50:lI108|H107248110 -107248110:lI45|H1072483D0 -1072483D0:lI49|H107248680 -107248680:lI46|H107248930 -107248930:lI48|H107248BB0 -107248BB0:lI47|H280052C20 -1071FB9D0:lH1071FEA70|H1071FEA88 -1071FEA70:t2:H107201B88,H107201B98 -107201B98:MfD:H107204D90:N,N,N,N,N,N,N,N,N,N,N,N,N -107204D90:tD:H107207FC0,H107207FD0,H107207FE0,H107207FF0,H107208000,H107208010,H107208020,H107208030,H107208040,H107208050,H107208060,H107208070,H107208080 -107208080:lI112|H10720B2F8 -10720B2F8:lI117|H10720E4E8 -10720E4E8:lI98|H107211678 -107211678:lI108|H1072148C8 -1072148C8:lI105|H107217C50 -107217C50:lI99|H10721B140 -10721B140:lI95|H10721E690 -10721E690:lI107|H107221B50 -107221B50:lI101|H107224CF8 -107224CF8:lI121|H107227B70 -107227B70:lI46|H10722A5C8 -10722A5C8:lI98|H10722CD00 -10722CD00:lI101|H10722F1E8 -10722F1E8:lI97|H1072313D0 -1072313D0:lI109|N -107208070:lI112|H10720B2E8 -10720B2E8:lI117|H10720E4D8 -10720E4D8:lI98|H107211668 -107211668:lI108|H1072148B8 -1072148B8:lI105|H107217C40 -107217C40:lI99|H10721B130 -10721B130:lI95|H10721E680 -10721E680:lI107|H107221B40 -107221B40:lI101|H107224CE8 -107224CE8:lI121|H107227B60 -107227B60:lI46|H10722A5B8 -10722A5B8:lI97|H10722CCF0 -10722CCF0:lI112|H10722F1D8 -10722F1D8:lI112|H1072313C0 -1072313C0:lI117|H107233278 -107233278:lI112|N -107208060:lI112|H10720B2D8 -10720B2D8:lI117|H10720E4C8 -10720E4C8:lI98|H107211658 -107211658:lI108|H1072148A8 -1072148A8:lI105|H107217C30 -107217C30:lI99|H10721B120 -10721B120:lI95|H10721E670 -10721E670:lI107|H107221B30 -107221B30:lI101|H107224CD8 -107224CD8:lI121|H107227B50 -107227B50:lI46|H10722A5A8 -10722A5A8:lI97|H10722CCE0 -10722CCE0:lI112|H10722F1C8 -10722F1C8:lI112|N -107208050:lI112|H10720B2C8 -10720B2C8:lI117|H10720E4B8 -10720E4B8:lI98|H107211648 -107211648:lI107|H107214898 -107214898:lI101|H107217C20 -107217C20:lI121|H10721B110 -10721B110:lI95|H10721E660 -10721E660:lI115|H107221B20 -107221B20:lI115|H107224CC8 -107224CC8:lI104|H107227B40 -107227B40:lI46|H10722A598 -10722A598:lI98|H10722CCD0 -10722CCD0:lI101|H10722F1B8 -10722F1B8:lI97|H1072313B0 -1072313B0:lI109|N -107208040:lI112|H10720B2B8 -10720B2B8:lI117|H10720E4A8 -10720E4A8:lI98|H107211638 -107211638:lI107|H107214888 -107214888:lI101|H107217C10 -107217C10:lI121|H10721B100 -10721B100:lI95|H10721E650 -10721E650:lI112|H107221B10 -107221B10:lI101|H107224CB8 -107224CB8:lI109|H107227B30 -107227B30:lI46|H10722A588 -10722A588:lI98|H10722CCC0 -10722CCC0:lI101|H10722F1A8 -10722F1A8:lI97|H1072313A0 -1072313A0:lI109|N -107208030:lI112|H10720B2A8 -10720B2A8:lI117|H10720E498 -10720E498:lI98|H107211628 -107211628:lI107|H107214878 -107214878:lI101|H107217C00 -107217C00:lI121|H10721B0F0 -10721B0F0:lI95|H10721E640 -10721E640:lI112|H107221B00 -107221B00:lI98|H107224CA8 -107224CA8:lI101|H107227B20 -107227B20:lI46|H10722A578 -10722A578:lI98|H10722CCB0 -10722CCB0:lI101|H10722F198 -10722F198:lI97|H107231390 -107231390:lI109|N -107208020:lI112|H10720B298 -10720B298:lI117|H10720E488 -10720E488:lI98|H107211618 -107211618:lI107|H107214868 -107214868:lI101|H107217BF0 -107217BF0:lI121|H10721B0E0 -10721B0E0:lI95|H10721E630 -10721E630:lI111|H107221AF0 -107221AF0:lI115|H107224C98 -107224C98:lI95|H107227B10 -107227B10:lI99|H10722A568 -10722A568:lI97|H10722CCA0 -10722CCA0:lI99|H10722F188 -10722F188:lI101|H107231380 -107231380:lI114|H107233268 -107233268:lI116|H107234E60 -107234E60:lI115|H1072367E8 -1072367E8:lI46|H107237F20 -107237F20:lI98|H107239458 -107239458:lI101|H10723A880 -10723A880:lI97|H10723BAA0 -10723BAA0:lI109|N -107208010:lI112|H10720B288 -10720B288:lI117|H10720E478 -10720E478:lI98|H107211608 -107211608:lI107|H107214858 -107214858:lI101|H107217BE0 -107217BE0:lI121|H10721B0D0 -10721B0D0:lI95|H10721E620 -10721E620:lI111|H107221AE0 -107221AE0:lI99|H107224C88 -107224C88:lI115|H107227B00 -107227B00:lI112|H10722A558 -10722A558:lI46|H10722CC90 -10722CC90:lI98|H10722F178 -10722F178:lI101|H107231370 -107231370:lI97|H107233258 -107233258:lI109|N -107208000:lI112|H10720B278 -10720B278:lI117|H10720E468 -10720E468:lI98|H1072115F8 -1072115F8:lI107|H107214848 -107214848:lI101|H107217BD0 -107217BD0:lI121|H10721B0C0 -10721B0C0:lI95|H10721E610 -10721E610:lI99|H107221AD0 -107221AD0:lI114|H107224C78 -107224C78:lI108|H107227AF0 -107227AF0:lI46|H10722A548 -10722A548:lI98|H10722CC80 -10722CC80:lI101|H10722F168 -10722F168:lI97|H107231360 -107231360:lI109|N -107207FF0:lI112|H10720B268 -10720B268:lI117|H10720E458 -10720E458:lI98|H1072115E8 -1072115E8:lI107|H107214838 -107214838:lI101|H107217BC0 -107217BC0:lI121|H10721B0B0 -10721B0B0:lI95|H10721E600 -10721E600:lI99|H107221AC0 -107221AC0:lI101|H107224C68 -107224C68:lI114|H107227AE0 -107227AE0:lI116|H10722A538 -10722A538:lI95|H10722CC70 -10722CC70:lI114|H10722F158 -10722F158:lI101|H107231350 -107231350:lI99|H107233248 -107233248:lI111|H107234E50 -107234E50:lI114|H1072367D8 -1072367D8:lI100|H107237F10 -107237F10:lI115|H107239448 -107239448:lI46|H10723A870 -10723A870:lI98|H10723BA90 -10723BA90:lI101|H10723CAB0 -10723CAB0:lI97|H10723D910 -10723D910:lI109|N -107207FE0:lI112|H10720B258 -10720B258:lI117|H10720E448 -10720E448:lI98|H1072115D8 -1072115D8:lI107|H107214828 -107214828:lI101|H107217BB0 -107217BB0:lI121|H10721B0A0 -10721B0A0:lI95|H10721E5F0 -10721E5F0:lI99|H107221AB0 -107221AB0:lI101|H107224C58 -107224C58:lI114|H107227AD0 -107227AD0:lI116|H10722A528 -10722A528:lI46|H10722CC60 -10722CC60:lI98|H10722F148 -10722F148:lI101|H107231340 -107231340:lI97|H107233238 -107233238:lI109|N -107207FD0:lI80|H10720B248 -10720B248:lI75|H10720E438 -10720E438:lI67|H1072115C8 -1072115C8:lI83|H107214818 -107214818:lI45|H107217BA0 -107217BA0:lI70|H10721B090 -10721B090:lI82|H10721E5E0 -10721E5E0:lI65|H107221AA0 -107221AA0:lI77|H107224C48 -107224C48:lI69|H107227AC0 -107227AC0:lI46|H10722A518 -10722A518:lI98|H10722CC50 -10722CC50:lI101|H10722F138 -10722F138:lI97|H107231330 -107231330:lI109|N -107207FC0:lI79|H10720B238 -10720B238:lI84|H10720E428 -10720E428:lI80|H1072115B8 -1072115B8:lI45|H107214808 -107214808:lI80|H107217B90 -107217B90:lI85|H10721B080 -10721B080:lI66|H10721E5D0 -10721E5D0:lI45|H107221A90 -107221A90:lI75|H107224C38 -107224C38:lI69|H107227AB0 -107227AB0:lI89|H10722A508 -10722A508:lI46|H10722CC40 -10722CC40:lI98|H10722F128 -10722F128:lI101|H107231320 -107231320:lI97|H107233228 -107233228:lI109|N -107201B88:lI47|H107204D80 -107204D80:lI111|H107207FB0 -107207FB0:lI112|H10720B228 -10720B228:lI116|H10720E418 -10720E418:lI47|H1072115A8 -1072115A8:lI104|H1072147F8 -1072147F8:lI111|H107217B80 -107217B80:lI109|H10721B070 -10721B070:lI101|H10721E5C0 -10721E5C0:lI98|H107221A80 -107221A80:lI114|H107224C28 -107224C28:lI101|H107227AA0 -107227AA0:lI119|H10722A4F8 -10722A4F8:lI47|H10722CC30 -10722CC30:lI67|H10722F118 -10722F118:lI101|H107231310 -107231310:lI108|H107233218 -107233218:lI108|H107234E40 -107234E40:lI97|H1072367C8 -1072367C8:lI114|H107237F00 -107237F00:lI47|H107239438 -107239438:lI101|H10723A860 -10723A860:lI114|H10723BA80 -10723BA80:lI108|H10723CAA0 -10723CAA0:lI97|H10723D900 -10723D900:lI110|H10723E600 -10723E600:lI103|H10723F1E0 -10723F1E0:lI47|H10723FC70 -10723FC70:lI50|H1072405B0 -1072405B0:lI54|H107240E20 -107240E20:lI46|H1072415B0 -1072415B0:lI48|H107241CD0 -107241CD0:lI46|H107242390 -107242390:lI50|H1072429F0 -1072429F0:lI47|H107242FD0 -107242FD0:lI108|H107243540 -107243540:lI105|H107243A80 -107243A80:lI98|H107243F70 -107243F70:lI47|H107244460 -107244460:lI101|H107244910 -107244910:lI114|H107244D80 -107244D80:lI108|H1072451E0 -1072451E0:lI97|H107245630 -107245630:lI110|H107245A30 -107245A30:lI103|H107245DE0 -107245DE0:lI47|H107246170 -107246170:lI108|H107246500 -107246500:lI105|H107246890 -107246890:lI98|H107246C20 -107246C20:lI47|H107246F50 -107246F50:lI112|H107247270 -107247270:lI117|H107247580 -107247580:lI98|H107247880 -107247880:lI108|H107247B80 -107247B80:lI105|H107247E60 -107247E60:lI99|H107248120 -107248120:lI95|H1072483E0 -1072483E0:lI107|H107248690 -107248690:lI101|H107248940 -107248940:lI121|H107248BC0 -107248BC0:lI45|H107248E30 -107248E30:lI49|H1072490A0 -1072490A0:lI46|H107249310 -107249310:lI49|H107249570 -107249570:lI52|H1072497D0 -1072497D0:lI47|H280052C20 -1071FEA88:lH107201C18|H107201C30 -107201C18:t2:H107204E00,H107204E10 -107204E10:Mf6:H1072080A0:N,N,N,N,N,N -1072080A0:t6:H10720B318,H10720B328,H10720B338,H10720B348,H10720B358,H10720B368 -10720B368:lI121|H10720E558 -10720E558:lI101|H1072116E8 -1072116E8:lI99|H107214938 -107214938:lI99|H107217CC0 -107217CC0:lI115|H10721B1B0 -10721B1B0:lI99|H10721E700 -10721E700:lI97|H107221BC0 -107221BC0:lI110|H107224D68 -107224D68:lI46|H107227BC0 -107227BC0:lI98|H10722A618 -10722A618:lI101|H10722CD50 -10722CD50:lI97|H10722F238 -10722F238:lI109|N -10720B358:lI121|H10720E548 -10720E548:lI101|H1072116D8 -1072116D8:lI99|H107214928 -107214928:lI99|H107217CB0 -107217CB0:lI112|H10721B1A0 -10721B1A0:lI97|H10721E6F0 -10721E6F0:lI114|H107221BB0 -107221BB0:lI115|H107224D58 -107224D58:lI101|H107227BB0 -107227BB0:lI114|H10722A608 -10722A608:lI46|H10722CD40 -10722CD40:lI98|H10722F228 -10722F228:lI101|H107231410 -107231410:lI97|H1072332A8 -1072332A8:lI109|N -10720B348:lI121|H10720E538 -10720E538:lI101|H1072116C8 -1072116C8:lI99|H107214918 -107214918:lI99|H107217CA0 -107217CA0:lI46|H10721B190 -10721B190:lI98|H10721E6E0 -10721E6E0:lI101|H107221BA0 -107221BA0:lI97|H107224D48 -107224D48:lI109|N -10720B338:lI112|H10720E528 -10720E528:lI97|H1072116B8 -1072116B8:lI114|H107214908 -107214908:lI115|H107217C90 -107217C90:lI101|H10721B180 -10721B180:lI116|H10721E6D0 -10721E6D0:lI111|H107221B90 -107221B90:lI111|H107224D38 -107224D38:lI108|H107227BA0 -107227BA0:lI115|H10722A5F8 -10722A5F8:lI46|H10722CD30 -10722CD30:lI97|H10722F218 -10722F218:lI112|H107231400 -107231400:lI112|H107233298 -107233298:lI117|H107234E80 -107234E80:lI112|N -10720B328:lI112|H10720E518 -10720E518:lI97|H1072116A8 -1072116A8:lI114|H1072148F8 -1072148F8:lI115|H107217C80 -107217C80:lI101|H10721B170 -10721B170:lI116|H10721E6C0 -10721E6C0:lI111|H107221B80 -107221B80:lI111|H107224D28 -107224D28:lI108|H107227B90 -107227B90:lI115|H10722A5E8 -10722A5E8:lI46|H10722CD20 -10722CD20:lI97|H10722F208 -10722F208:lI112|H1072313F0 -1072313F0:lI112|N -10720B318:lI108|H10720E508 -10720E508:lI101|H107211698 -107211698:lI101|H1072148E8 -1072148E8:lI120|H107217C70 -107217C70:lI46|H10721B160 -10721B160:lI98|H10721E6B0 -10721E6B0:lI101|H107221B70 -107221B70:lI97|H107224D18 -107224D18:lI109|N -107204E00:lI47|H107208090 -107208090:lI111|H10720B308 -10720B308:lI112|H10720E4F8 -10720E4F8:lI116|H107211688 -107211688:lI47|H1072148D8 -1072148D8:lI104|H107217C60 -107217C60:lI111|H10721B150 -10721B150:lI109|H10721E6A0 -10721E6A0:lI101|H107221B60 -107221B60:lI98|H107224D08 -107224D08:lI114|H107227B80 -107227B80:lI101|H10722A5D8 -10722A5D8:lI119|H10722CD10 -10722CD10:lI47|H10722F1F8 -10722F1F8:lI67|H1072313E0 -1072313E0:lI101|H107233288 -107233288:lI108|H107234E70 -107234E70:lI108|H1072367F8 -1072367F8:lI97|H107237F30 -107237F30:lI114|H107239468 -107239468:lI47|H10723A890 -10723A890:lI101|H10723BAB0 -10723BAB0:lI114|H10723CAC0 -10723CAC0:lI108|H10723D920 -10723D920:lI97|H10723E610 -10723E610:lI110|H10723F1F0 -10723F1F0:lI103|H10723FC80 -10723FC80:lI47|H1072405C0 -1072405C0:lI50|H107240E30 -107240E30:lI54|H1072415C0 -1072415C0:lI46|H107241CE0 -107241CE0:lI48|H1072423A0 -1072423A0:lI46|H107242A00 -107242A00:lI50|H107242FE0 -107242FE0:lI47|H107243550 -107243550:lI108|H107243A90 -107243A90:lI105|H107243F80 -107243F80:lI98|H107244470 -107244470:lI47|H107244920 -107244920:lI101|H107244D90 -107244D90:lI114|H1072451F0 -1072451F0:lI108|H107245640 -107245640:lI97|H107245A40 -107245A40:lI110|H107245DF0 -107245DF0:lI103|H107246180 -107246180:lI47|H107246510 -107246510:lI108|H1072468A0 -1072468A0:lI105|H107246C30 -107246C30:lI98|H107246F60 -107246F60:lI47|H107247280 -107247280:lI112|H107247590 -107247590:lI97|H107247890 -107247890:lI114|H107247B90 -107247B90:lI115|H107247E70 -107247E70:lI101|H107248130 -107248130:lI116|H1072483F0 -1072483F0:lI111|H1072486A0 -1072486A0:lI111|H107248950 -107248950:lI108|H107248BD0 -107248BD0:lI115|H107248E40 -107248E40:lI45|H1072490B0 -1072490B0:lI50|H107249320 -107249320:lI46|H107249580 -107249580:lI53|H1072497E0 -1072497E0:lI47|H280052C20 -107201C30:lH107204E58|H107204E70 -107204E58:t2:H1072080D8,H1072080E8 -1072080E8:MfA:H10720B388:N,N,N,N,N,N,N,N,N,N -10720B388:tA:H10720E578,H10720E588,H10720E598,H10720E5A8,H10720E5B8,H10720E5C8,H10720E5D8,H10720E5E8,H10720E5F8,H10720E608 -10720E608:lI111|H107211798 -107211798:lI115|H1072149E8 -1072149E8:lI95|H107217D70 -107217D70:lI115|H10721B260 -10721B260:lI117|H10721E7B0 -10721E7B0:lI112|H107221C70 -107221C70:lI46|H107224E18 -107224E18:lI98|H107227C70 -107227C70:lI101|H10722A6C8 -10722A6C8:lI97|H10722CDF0 -10722CDF0:lI109|N -10720E5F8:lI111|H107211788 -107211788:lI115|H1072149D8 -1072149D8:lI95|H107217D60 -107217D60:lI109|H10721B250 -10721B250:lI111|H10721E7A0 -10721E7A0:lI110|H107221C60 -107221C60:lI95|H107224E08 -107224E08:lI115|H107227C60 -107227C60:lI121|H10722A6B8 -10722A6B8:lI115|H10722CDE0 -10722CDE0:lI105|H10722F2A8 -10722F2A8:lI110|H107231450 -107231450:lI102|H1072332E8 -1072332E8:lI111|H107234EC0 -107234EC0:lI46|H107236818 -107236818:lI98|H107237F50 -107237F50:lI101|H107239488 -107239488:lI97|H10723A8B0 -10723A8B0:lI109|N -10720E5E8:lI111|H107211778 -107211778:lI115|H1072149C8 -1072149C8:lI95|H107217D50 -107217D50:lI109|H10721B240 -10721B240:lI111|H10721E790 -10721E790:lI110|H107221C50 -107221C50:lI95|H107224DF8 -107224DF8:lI109|H107227C50 -107227C50:lI105|H10722A6A8 -10722A6A8:lI98|H10722CDD0 -10722CDD0:lI46|H10722F298 -10722F298:lI98|H107231440 -107231440:lI101|H1072332D8 -1072332D8:lI97|H107234EB0 -107234EB0:lI109|N -10720E5D8:lI111|H107211768 -107211768:lI115|H1072149B8 -1072149B8:lI95|H107217D40 -107217D40:lI109|H10721B230 -10721B230:lI111|H10721E780 -10721E780:lI110|H107221C40 -107221C40:lI46|H107224DE8 -107224DE8:lI98|H107227C40 -107227C40:lI101|H10722A698 -10722A698:lI97|H10722CDC0 -10722CDC0:lI109|N -10720E5C8:lI111|H107211758 -107211758:lI115|H1072149A8 -1072149A8:lI95|H107217D30 -107217D30:lI109|H10721B220 -10721B220:lI111|H10721E770 -10721E770:lI110|H107221C30 -107221C30:lI46|H107224DD8 -107224DD8:lI97|H107227C30 -107227C30:lI112|H10722A688 -10722A688:lI112|H10722CDB0 -10722CDB0:lI117|H10722F288 -10722F288:lI112|N -10720E5B8:lI111|H107211748 -107211748:lI115|H107214998 -107214998:lI95|H107217D20 -107217D20:lI109|H10721B210 -10721B210:lI111|H10721E760 -10721E760:lI110|H107221C20 -107221C20:lI46|H107224DC8 -107224DC8:lI97|H107227C20 -107227C20:lI112|H10722A678 -10722A678:lI112|N -10720E5A8:lI110|H107211738 -107211738:lI116|H107214988 -107214988:lI101|H107217D10 -107217D10:lI118|H10721B200 -10721B200:lI101|H10721E750 -10721E750:lI110|H107221C10 -107221C10:lI116|H107224DB8 -107224DB8:lI108|H107227C10 -107227C10:lI111|H10722A668 -10722A668:lI103|H10722CDA0 -10722CDA0:lI46|H10722F278 -10722F278:lI98|H107231430 -107231430:lI101|H1072332C8 -1072332C8:lI97|H107234EA0 -107234EA0:lI109|N -10720E598:lI109|H107211728 -107211728:lI101|H107214978 -107214978:lI109|H107217D00 -107217D00:lI115|H10721B1F0 -10721B1F0:lI117|H10721E740 -10721E740:lI112|H107221C00 -107221C00:lI46|H107224DA8 -107224DA8:lI98|H107227C00 -107227C00:lI101|H10722A658 -10722A658:lI97|H10722CD90 -10722CD90:lI109|N -10720E588:lI100|H107211718 -107211718:lI105|H107214968 -107214968:lI115|H107217CF0 -107217CF0:lI107|H10721B1E0 -10721B1E0:lI115|H10721E730 -10721E730:lI117|H107221BF0 -107221BF0:lI112|H107224D98 -107224D98:lI46|H107227BF0 -107227BF0:lI98|H10722A648 -10722A648:lI101|H10722CD80 -10722CD80:lI97|H10722F268 -10722F268:lI109|N -10720E578:lI99|H107211708 -107211708:lI112|H107214958 -107214958:lI117|H107217CE0 -107217CE0:lI95|H10721B1D0 -10721B1D0:lI115|H10721E720 -10721E720:lI117|H107221BE0 -107221BE0:lI112|H107224D88 -107224D88:lI46|H107227BE0 -107227BE0:lI98|H10722A638 -10722A638:lI101|H10722CD70 -10722CD70:lI97|H10722F258 -10722F258:lI109|N -1072080D8:lI47|H10720B378 -10720B378:lI111|H10720E568 -10720E568:lI112|H1072116F8 -1072116F8:lI116|H107214948 -107214948:lI47|H107217CD0 -107217CD0:lI104|H10721B1C0 -10721B1C0:lI111|H10721E710 -10721E710:lI109|H107221BD0 -107221BD0:lI101|H107224D78 -107224D78:lI98|H107227BD0 -107227BD0:lI114|H10722A628 -10722A628:lI101|H10722CD60 -10722CD60:lI119|H10722F248 -10722F248:lI47|H107231420 -107231420:lI67|H1072332B8 -1072332B8:lI101|H107234E90 -107234E90:lI108|H107236808 -107236808:lI108|H107237F40 -107237F40:lI97|H107239478 -107239478:lI114|H10723A8A0 -10723A8A0:lI47|H10723BAC0 -10723BAC0:lI101|H10723CAD0 -10723CAD0:lI114|H10723D930 -10723D930:lI108|H10723E620 -10723E620:lI97|H10723F200 -10723F200:lI110|H10723FC90 -10723FC90:lI103|H1072405D0 -1072405D0:lI47|H107240E40 -107240E40:lI50|H1072415D0 -1072415D0:lI54|H107241CF0 -107241CF0:lI46|H1072423B0 -1072423B0:lI48|H107242A10 -107242A10:lI46|H107242FF0 -107242FF0:lI50|H107243560 -107243560:lI47|H107243AA0 -107243AA0:lI108|H107243F90 -107243F90:lI105|H107244480 -107244480:lI98|H107244930 -107244930:lI47|H107244DA0 -107244DA0:lI101|H107245200 -107245200:lI114|H107245650 -107245650:lI108|H107245A50 -107245A50:lI97|H107245E00 -107245E00:lI110|H107246190 -107246190:lI103|H107246520 -107246520:lI47|H1072468B0 -1072468B0:lI108|H107246C40 -107246C40:lI105|H107246F70 -107246F70:lI98|H107247290 -107247290:lI47|H1072475A0 -1072475A0:lI111|H1072478A0 -1072478A0:lI115|H107247BA0 -107247BA0:lI95|H107247E80 -107247E80:lI109|H107248140 -107248140:lI111|H107248400 -107248400:lI110|H1072486B0 -1072486B0:lI45|H107248960 -107248960:lI50|H107248BE0 -107248BE0:lI46|H107248E50 -107248E50:lI57|H1072490C0 -1072490C0:lI47|H280052C20 -107204E70:lH107208150|H107208168 -107208150:t2:H10720B3E0,H10720B3F0 -10720B3F0:Mf5:H10720E628:N,N,N,N,N -10720E628:t5:H1072117B8,H1072117C8,H1072117D8,H1072117E8,H1072117F8 -1072117F8:lI111|H107214A48 -107214A48:lI100|H107217DD0 -107217DD0:lI98|H10721B2C0 -10721B2C0:lI99|H10721E810 -10721E810:lI95|H107221CD0 -107221CD0:lI115|H107224E78 -107224E78:lI117|H107227CD0 -107227CD0:lI112|H10722A718 -10722A718:lI46|H10722CE30 -10722CE30:lI98|H10722F2D8 -10722F2D8:lI101|H107231480 -107231480:lI97|H107233318 -107233318:lI109|N -1072117E8:lI111|H107214A38 -107214A38:lI100|H107217DC0 -107217DC0:lI98|H10721B2B0 -10721B2B0:lI99|H10721E800 -10721E800:lI95|H107221CC0 -107221CC0:lI97|H107224E68 -107224E68:lI112|H107227CC0 -107227CC0:lI112|H10722A708 -10722A708:lI46|H10722CE20 -10722CE20:lI98|H10722F2C8 -10722F2C8:lI101|H107231470 -107231470:lI97|H107233308 -107233308:lI109|N -1072117D8:lI111|H107214A28 -107214A28:lI100|H107217DB0 -107217DB0:lI98|H10721B2A0 -10721B2A0:lI99|H10721E7F0 -10721E7F0:lI46|H107221CB0 -107221CB0:lI98|H107224E58 -107224E58:lI101|H107227CB0 -107227CB0:lI97|H10722A6F8 -10722A6F8:lI109|N -1072117C8:lI111|H107214A18 -107214A18:lI100|H107217DA0 -107217DA0:lI98|H10721B290 -10721B290:lI99|H10721E7E0 -10721E7E0:lI46|H107221CA0 -107221CA0:lI97|H107224E48 -107224E48:lI112|H107227CA0 -107227CA0:lI112|H10722A6E8 -10722A6E8:lI117|H10722CE10 -10722CE10:lI112|N -1072117B8:lI111|H107214A08 -107214A08:lI100|H107217D90 -107217D90:lI98|H10721B280 -10721B280:lI99|H10721E7D0 -10721E7D0:lI46|H107221C90 -107221C90:lI97|H107224E38 -107224E38:lI112|H107227C90 -107227C90:lI112|N -10720B3E0:lI47|H10720E618 -10720E618:lI111|H1072117A8 -1072117A8:lI112|H1072149F8 -1072149F8:lI116|H107217D80 -107217D80:lI47|H10721B270 -10721B270:lI104|H10721E7C0 -10721E7C0:lI111|H107221C80 -107221C80:lI109|H107224E28 -107224E28:lI101|H107227C80 -107227C80:lI98|H10722A6D8 -10722A6D8:lI114|H10722CE00 -10722CE00:lI101|H10722F2B8 -10722F2B8:lI119|H107231460 -107231460:lI47|H1072332F8 -1072332F8:lI67|H107234ED0 -107234ED0:lI101|H107236828 -107236828:lI108|H107237F60 -107237F60:lI108|H107239498 -107239498:lI97|H10723A8C0 -10723A8C0:lI114|H10723BAD0 -10723BAD0:lI47|H10723CAE0 -10723CAE0:lI101|H10723D940 -10723D940:lI114|H10723E630 -10723E630:lI108|H10723F210 -10723F210:lI97|H10723FCA0 -10723FCA0:lI110|H1072405E0 -1072405E0:lI103|H107240E50 -107240E50:lI47|H1072415E0 -1072415E0:lI50|H107241D00 -107241D00:lI54|H1072423C0 -1072423C0:lI46|H107242A20 -107242A20:lI48|H107243000 -107243000:lI46|H107243570 -107243570:lI50|H107243AB0 -107243AB0:lI47|H107243FA0 -107243FA0:lI108|H107244490 -107244490:lI105|H107244940 -107244940:lI98|H107244DB0 -107244DB0:lI47|H107245210 -107245210:lI101|H107245660 -107245660:lI114|H107245A60 -107245A60:lI108|H107245E10 -107245E10:lI97|H1072461A0 -1072461A0:lI110|H107246530 -107246530:lI103|H1072468C0 -1072468C0:lI47|H107246C50 -107246C50:lI108|H107246F80 -107246F80:lI105|H1072472A0 -1072472A0:lI98|H1072475B0 -1072475B0:lI47|H1072478B0 -1072478B0:lI111|H107247BB0 -107247BB0:lI100|H107247E90 -107247E90:lI98|H107248150 -107248150:lI99|H107248410 -107248410:lI45|H1072486C0 -1072486C0:lI50|H107248970 -107248970:lI46|H107248BF0 -107248BF0:lI49|H107248E60 -107248E60:lI52|H1072490D0 -1072490D0:lI46|H107249330 -107249330:lI49|H107249590 -107249590:lI47|H280052C20 -107208168:lH10720B430|H10720B448 -10720B430:t2:H10720E658,H10720E668 -10720E668:Mh2E:F:H107211818,H107211830,H107211848,H107211878,H107211890,H1072118B0,H1072118C0,H107211900,H107211918,H107211930,H107211940,H107211958,H107211988,H1072119A8,H1072119C0 -107211818:Mn2:H107214A68,H107214A78 -107214A68:lH107217DF0|N -107217DF0:lI99|H10721B2E0 -10721B2E0:lI100|H10721E830 -10721E830:lI118|H107221CF0 -107221CF0:lI95|H107224E98 -107224E98:lI112|H107227CF0 -107227CF0:lI111|H10722A738 -10722A738:lI114|H10722CE50 -10722CE50:lI116|H10722F2F8 -10722F2F8:lI95|H1072314A0 -1072314A0:lI99|H107233338 -107233338:lI98|H107234EF0 -107234EF0:lI46|H107236848 -107236848:lI98|H107237F80 -107237F80:lI101|H1072394B8 -1072394B8:lI97|H10723A8E0 -10723A8E0:lI109|N -107214A78:lH107217E00|N -107217E00:lI99|H10721B2F0 -10721B2F0:lI100|H10721E840 -10721E840:lI118|H107221D00 -107221D00:lI95|H107224EA8 -107224EA8:lI109|H107227D00 -107227D00:lI111|H10722A748 -10722A748:lI100|H10722CE60 -10722CE60:lI95|H10722F308 -10722F308:lI99|H1072314B0 -1072314B0:lI98|H107233348 -107233348:lI46|H107234F00 -107234F00:lI98|H107236858 -107236858:lI101|H107237F90 -107237F90:lI97|H1072394C8 -1072394C8:lI109|N -1072119C0:Mn2:H107214CF0,H107214D10 -107214CF0:Mn3:H107218090,H1072180A0,H1072180B0 -107218090:lH10721B580|N -10721B580:lI99|H10721EAD0 -10721EAD0:lI100|H107221F90 -107221F90:lI118|H107225138 -107225138:lI95|H107227F90 -107227F90:lI112|H10722A9D8 -10722A9D8:lI101|H10722D0F0 -10722D0F0:lI114|H10722F588 -10722F588:lI115|H107231720 -107231720:lI105|H1072335B8 -1072335B8:lI115|H107235150 -107235150:lI116|H107236A98 -107236A98:lI101|H1072381A0 -1072381A0:lI110|H1072396B8 -1072396B8:lI116|H10723AA90 -10723AA90:lI95|H10723BC30 -10723BC30:lI99|H10723CC00 -10723CC00:lI98|H10723DA40 -10723DA40:lI46|H10723E720 -10723E720:lI98|H10723F2D0 -10723F2D0:lI101|H10723FD30 -10723FD30:lI97|H107240630 -107240630:lI109|N -1072180B0:lH10721B5A0|N -10721B5A0:lI111|H10721EAF0 -10721EAF0:lI98|H107221FB0 -107221FB0:lI115|H107225158 -107225158:lI101|H107227FB0 -107227FB0:lI114|H10722A9F8 -10722A9F8:lI118|H10722D110 -10722D110:lI101|H10722F5A8 -10722F5A8:lI114|H107231740 -107231740:lI95|H1072335D8 -1072335D8:lI97|H107235170 -107235170:lI108|H107236AB8 -107236AB8:lI108|H1072381C0 -1072381C0:lI111|H1072396D8 -1072396D8:lI99|H10723AAB0 -10723AAB0:lI95|H10723BC50 -10723BC50:lI119|H10723CC20 -10723CC20:lI120|H10723DA50 -10723DA50:lI46|H10723E730 -10723E730:lI98|H10723F2E0 -10723F2E0:lI101|H10723FD40 -10723FD40:lI97|H107240640 -107240640:lI109|N -1072180A0:lH10721B590|N -10721B590:lI99|H10721EAE0 -10721EAE0:lI100|H107221FA0 -107221FA0:lI118|H107225148 -107225148:lI95|H107227FA0 -107227FA0:lI109|H10722A9E8 -10722A9E8:lI117|H10722D100 -10722D100:lI108|H10722F598 -10722F598:lI116|H107231730 -107231730:lI105|H1072335C8 -1072335C8:lI95|H107235160 -107235160:lI119|H107236AA8 -107236AA8:lI120|H1072381B0 -1072381B0:lI46|H1072396C8 -1072396C8:lI98|H10723AAA0 -10723AAA0:lI101|H10723BC40 -10723BC40:lI97|H10723CC10 -10723CC10:lI109|N -107214D10:lH1072180C0|N -1072180C0:lI111|H10721B5B0 -10721B5B0:lI98|H10721EB00 -10721EB00:lI115|H107221FC0 -107221FC0:lI101|H107225168 -107225168:lI114|H107227FC0 -107227FC0:lI118|H10722AA08 -10722AA08:lI101|H10722D120 -10722D120:lI114|H10722F5B8 -10722F5B8:lI95|H107231750 -107231750:lI116|H1072335E8 -1072335E8:lI118|H107235180 -107235180:lI95|H107236AC8 -107236AC8:lI119|H1072381D0 -1072381D0:lI120|H1072396E8 -1072396E8:lI46|H10723AAC0 -10723AAC0:lI98|H10723BC60 -10723BC60:lI101|H10723CC30 -10723CC30:lI97|H10723DA60 -10723DA60:lI109|N -1072119A8:Mn2:H107214CD0,H107214CE0 -107214CD0:lH107218070|N -107218070:lI111|H10721B560 -10721B560:lI98|H10721EAB0 -10721EAB0:lI115|H107221F70 -107221F70:lI101|H107225118 -107225118:lI114|H107227F70 -107227F70:lI118|H10722A9B8 -10722A9B8:lI101|H10722D0D0 -10722D0D0:lI114|H10722F568 -10722F568:lI95|H107231700 -107231700:lI104|H107233598 -107233598:lI116|H107235130 -107235130:lI109|H107236A78 -107236A78:lI108|H107238180 -107238180:lI95|H107239698 -107239698:lI108|H10723AA80 -10723AA80:lI105|H10723BC20 -10723BC20:lI98|H10723CBF0 -10723CBF0:lI46|H10723DA30 -10723DA30:lI98|H10723E710 -10723E710:lI101|H10723F2C0 -10723F2C0:lI97|H10723FD20 -10723FD20:lI109|N -107214CE0:lH107218080|N -107218080:lI99|H10721B570 -10721B570:lI100|H10721EAC0 -10721EAC0:lI118|H107221F80 -107221F80:lI95|H107225128 -107225128:lI103|H107227F80 -107227F80:lI101|H10722A9C8 -10722A9C8:lI110|H10722D0E0 -10722D0E0:lI95|H10722F578 -10722F578:lI99|H107231710 -107231710:lI98|H1072335A8 -1072335A8:lI46|H107235140 -107235140:lI98|H107236A88 -107236A88:lI101|H107238190 -107238190:lI97|H1072396A8 -1072396A8:lI109|N -107211988:Mn3:H107214C98,H107214CA8,H107214CB8 -107214C98:lH107218030|N -107218030:lI111|H10721B520 -10721B520:lI98|H10721EA70 -10721EA70:lI115|H107221F30 -107221F30:lI101|H1072250D8 -1072250D8:lI114|H107227F30 -107227F30:lI118|H10722A978 -10722A978:lI101|H10722D090 -10722D090:lI114|H10722F528 -10722F528:lI46|H1072316C0 -1072316C0:lI98|H107233558 -107233558:lI101|H1072350F0 -1072350F0:lI97|H107236A38 -107236A38:lI109|N -107214CB8:Mn2:H107218050,H107218060 -107218050:lH10721B540|N -10721B540:lI111|H10721EA90 -10721EA90:lI98|H107221F50 -107221F50:lI115|H1072250F8 -1072250F8:lI101|H107227F50 -107227F50:lI114|H10722A998 -10722A998:lI118|H10722D0B0 -10722D0B0:lI101|H10722F548 -10722F548:lI114|H1072316E0 -1072316E0:lI95|H107233578 -107233578:lI116|H107235110 -107235110:lI114|H107236A58 -107236A58:lI97|H107238170 -107238170:lI99|H107239688 -107239688:lI101|H10723AA70 -10723AA70:lI111|H10723BC10 -10723BC10:lI112|H10723CBE0 -10723CBE0:lI116|H10723DA20 -10723DA20:lI105|H10723E700 -10723E700:lI111|H10723F2B0 -10723F2B0:lI110|H10723FD10 -10723FD10:lI115|H107240620 -107240620:lI95|H107240E80 -107240E80:lI119|H107241600 -107241600:lI120|H107241D20 -107241D20:lI46|H1072423E0 -1072423E0:lI98|H107242A40 -107242A40:lI101|H107243020 -107243020:lI97|H107243590 -107243590:lI109|N -107218060:lH10721B550|N -10721B550:lI111|H10721EAA0 -10721EAA0:lI98|H107221F60 -107221F60:lI115|H107225108 -107225108:lI101|H107227F60 -107227F60:lI114|H10722A9A8 -10722A9A8:lI118|H10722D0C0 -10722D0C0:lI101|H10722F558 -10722F558:lI114|H1072316F0 -1072316F0:lI46|H107233588 -107233588:lI97|H107235120 -107235120:lI112|H107236A68 -107236A68:lI112|N -107214CA8:lH107218040|N -107218040:lI101|H10721B530 -10721B530:lI116|H10721EA80 -10721EA80:lI111|H107221F40 -107221F40:lI112|H1072250E8 -1072250E8:lI95|H107227F40 -107227F40:lI116|H10722A988 -10722A988:lI120|H10722D0A0 -10722D0A0:lI116|H10722F538 -10722F538:lI46|H1072316D0 -1072316D0:lI98|H107233568 -107233568:lI101|H107235100 -107235100:lI97|H107236A48 -107236A48:lI109|N -107211958:Mn5:H107214C48,H107214C58,H107214C68,H107214C78,H107214C88 -107214C48:lH107217FE0|N -107217FE0:lI99|H10721B4D0 -10721B4D0:lI100|H10721EA20 -10721EA20:lI118|H107221EE0 -107221EE0:lI95|H107225088 -107225088:lI112|H107227EE0 -107227EE0:lI114|H10722A928 -10722A928:lI111|H10722D040 -10722D040:lI99|H10722F4D8 -10722F4D8:lI95|H107231680 -107231680:lI99|H107233518 -107233518:lI98|H1072350B0 -1072350B0:lI46|H1072369F8 -1072369F8:lI98|H107238130 -107238130:lI101|H107239648 -107239648:lI97|H10723AA30 -10723AA30:lI109|N -107214C88:lH107218020|N -107218020:lI111|H10721B510 -10721B510:lI98|H10721EA60 -10721EA60:lI115|H107221F20 -107221F20:lI101|H1072250C8 -1072250C8:lI114|H107227F20 -107227F20:lI118|H10722A968 -10722A968:lI101|H10722D080 -10722D080:lI114|H10722F518 -10722F518:lI95|H1072316B0 -1072316B0:lI116|H107233548 -107233548:lI118|H1072350E0 -1072350E0:lI95|H107236A28 -107236A28:lI116|H107238160 -107238160:lI97|H107239678 -107239678:lI98|H10723AA60 -10723AA60:lI108|H10723BC00 -10723BC00:lI101|H10723CBD0 -10723CBD0:lI46|H10723DA10 -10723DA10:lI98|H10723E6F0 -10723E6F0:lI101|H10723F2A0 -10723F2A0:lI97|H10723FD00 -10723FD00:lI109|N -107214C78:lH107218010|N -107218010:lI111|H10721B500 -10721B500:lI98|H10721EA50 -10721EA50:lI115|H107221F10 -107221F10:lI101|H1072250B8 -1072250B8:lI114|H107227F10 -107227F10:lI118|H10722A958 -10722A958:lI101|H10722D070 -10722D070:lI114|H10722F508 -10722F508:lI95|H1072316A0 -1072316A0:lI115|H107233538 -107233538:lI121|H1072350D0 -1072350D0:lI115|H107236A18 -107236A18:lI95|H107238150 -107238150:lI119|H107239668 -107239668:lI120|H10723AA50 -10723AA50:lI46|H10723BBF0 -10723BBF0:lI98|H10723CBC0 -10723CBC0:lI101|H10723DA00 -10723DA00:lI97|H10723E6E0 -10723E6E0:lI109|N -107214C68:lH107218000|N -107218000:lI99|H10721B4F0 -10721B4F0:lI100|H10721EA40 -10721EA40:lI118|H107221F00 -107221F00:lI95|H1072250A8 -1072250A8:lI118|H107227F00 -107227F00:lI105|H10722A948 -10722A948:lI114|H10722D060 -10722D060:lI116|H10722F4F8 -10722F4F8:lI117|H107231690 -107231690:lI97|H107233528 -107233528:lI108|H1072350C0 -1072350C0:lI95|H107236A08 -107236A08:lI108|H107238140 -107238140:lI105|H107239658 -107239658:lI115|H10723AA40 -10723AA40:lI116|H10723BBE0 -10723BBE0:lI95|H10723CBB0 -10723CBB0:lI119|H10723D9F0 -10723D9F0:lI120|H10723E6D0 -10723E6D0:lI46|H10723F290 -10723F290:lI98|H10723FCF0 -10723FCF0:lI101|H107240610 -107240610:lI97|H107240E70 -107240E70:lI109|N -107214C58:lH107217FF0|N -107217FF0:lI101|H10721B4E0 -10721B4E0:lI116|H10721EA30 -10721EA30:lI111|H107221EF0 -107221EF0:lI112|H107225098 -107225098:lI46|H107227EF0 -107227EF0:lI98|H10722A938 -10722A938:lI101|H10722D050 -10722D050:lI97|H10722F4E8 -10722F4E8:lI109|N -107211940:Mn2:H107214C20,H107214C38 -107214C20:Mn2:H107217FB0,H107217FC0 -107217FB0:lH10721B4A0|N -10721B4A0:lI111|H10721E9F0 -10721E9F0:lI98|H107221EB0 -107221EB0:lI115|H107225058 -107225058:lI101|H107227EB0 -107227EB0:lI114|H10722A8F8 -10722A8F8:lI118|H10722D010 -10722D010:lI101|H10722F4A8 -10722F4A8:lI114|H107231650 -107231650:lI95|H1072334E8 -1072334E8:lI119|H107235080 -107235080:lI120|H1072369C8 -1072369C8:lI46|H107238100 -107238100:lI98|H107239618 -107239618:lI101|H10723AA00 -10723AA00:lI97|H10723BBB0 -10723BBB0:lI109|N -107217FC0:lH10721B4B0|N -10721B4B0:lI99|H10721EA00 -10721EA00:lI100|H107221EC0 -107221EC0:lI118|H107225068 -107225068:lI95|H107227EC0 -107227EC0:lI116|H10722A908 -10722A908:lI97|H10722D020 -10722D020:lI98|H10722F4B8 -10722F4B8:lI108|H107231660 -107231660:lI101|H1072334F8 -1072334F8:lI95|H107235090 -107235090:lI119|H1072369D8 -1072369D8:lI120|H107238110 -107238110:lI46|H107239628 -107239628:lI98|H10723AA10 -10723AA10:lI101|H10723BBC0 -10723BBC0:lI97|H10723CB90 -10723CB90:lI109|N -107214C38:lH107217FD0|N -107217FD0:lI111|H10721B4C0 -10721B4C0:lI98|H10721EA10 -10721EA10:lI115|H107221ED0 -107221ED0:lI101|H107225078 -107225078:lI114|H107227ED0 -107227ED0:lI118|H10722A918 -10722A918:lI101|H10722D030 -10722D030:lI114|H10722F4C8 -10722F4C8:lI95|H107231670 -107231670:lI116|H107233508 -107233508:lI114|H1072350A0 -1072350A0:lI97|H1072369E8 -1072369E8:lI99|H107238120 -107238120:lI101|H107239638 -107239638:lI95|H10723AA20 -10723AA20:lI119|H10723BBD0 -10723BBD0:lI120|H10723CBA0 -10723CBA0:lI46|H10723D9E0 -10723D9E0:lI98|H10723E6C0 -10723E6C0:lI101|H10723F280 -10723F280:lI97|H10723FCE0 -10723FCE0:lI109|N -107211930:Mn1:H107214C08 -107214C08:Mn2:H107217F90,H107217FA0 -107217F90:lH10721B480|N -10721B480:lI111|H10721E9D0 -10721E9D0:lI98|H107221E90 -107221E90:lI115|H107225038 -107225038:lI101|H107227E90 -107227E90:lI114|H10722A8D8 -10722A8D8:lI118|H10722CFF0 -10722CFF0:lI101|H10722F488 -10722F488:lI114|H107231630 -107231630:lI95|H1072334C8 -1072334C8:lI112|H107235060 -107235060:lI114|H1072369A8 -1072369A8:lI111|H1072380E0 -1072380E0:lI99|H1072395F8 -1072395F8:lI105|H10723A9E0 -10723A9E0:lI110|H10723BB90 -10723BB90:lI102|H10723CB70 -10723CB70:lI111|H10723D9C0 -10723D9C0:lI46|H10723E6A0 -10723E6A0:lI98|H10723F260 -10723F260:lI101|H10723FCC0 -10723FCC0:lI97|H107240600 -107240600:lI109|N -107217FA0:lH10721B490|N -10721B490:lI111|H10721E9E0 -10721E9E0:lI98|H107221EA0 -107221EA0:lI115|H107225048 -107225048:lI101|H107227EA0 -107227EA0:lI114|H10722A8E8 -10722A8E8:lI118|H10722D000 -10722D000:lI101|H10722F498 -10722F498:lI114|H107231640 -107231640:lI95|H1072334D8 -1072334D8:lI112|H107235070 -107235070:lI101|H1072369B8 -1072369B8:lI114|H1072380F0 -1072380F0:lI102|H107239608 -107239608:lI95|H10723A9F0 -10723A9F0:lI119|H10723BBA0 -10723BBA0:lI120|H10723CB80 -10723CB80:lI46|H10723D9D0 -10723D9D0:lI98|H10723E6B0 -10723E6B0:lI101|H10723F270 -10723F270:lI97|H10723FCD0 -10723FCD0:lI109|N -107211918:Mn2:H107214BE8,H107214BF8 -107214BE8:lH107217F70|N -107217F70:lI111|H10721B460 -10721B460:lI98|H10721E9B0 -10721E9B0:lI115|H107221E70 -107221E70:lI101|H107225018 -107225018:lI114|H107227E70 -107227E70:lI118|H10722A8B8 -10722A8B8:lI101|H10722CFD0 -10722CFD0:lI114|H10722F468 -10722F468:lI95|H107231610 -107231610:lI112|H1072334A8 -1072334A8:lI114|H107235040 -107235040:lI111|H107236988 -107236988:lI95|H1072380C0 -1072380C0:lI119|H1072395D8 -1072395D8:lI120|H10723A9C0 -10723A9C0:lI46|H10723BB80 -10723BB80:lI98|H10723CB60 -10723CB60:lI101|H10723D9B0 -10723D9B0:lI97|H10723E690 -10723E690:lI109|N -107214BF8:lH107217F80|N -107217F80:lI99|H10721B470 -10721B470:lI100|H10721E9C0 -10721E9C0:lI118|H107221E80 -107221E80:lI95|H107225028 -107225028:lI100|H107227E80 -107227E80:lI105|H10722A8C8 -10722A8C8:lI115|H10722CFE0 -10722CFE0:lI116|H10722F478 -10722F478:lI95|H107231620 -107231620:lI99|H1072334B8 -1072334B8:lI98|H107235050 -107235050:lI46|H107236998 -107236998:lI98|H1072380D0 -1072380D0:lI101|H1072395E8 -1072395E8:lI97|H10723A9D0 -10723A9D0:lI109|N -107211900:Mn2:H107214BC8,H107214BD8 -107214BC8:lH107217F50|N -107217F50:lI116|H10721B440 -10721B440:lI116|H10721E990 -10721E990:lI98|H107221E50 -107221E50:lI46|H107224FF8 -107224FF8:lI98|H107227E50 -107227E50:lI101|H10722A898 -10722A898:lI97|H10722CFB0 -10722CFB0:lI109|N -107214BD8:lH107217F60|N -107217F60:lI111|H10721B450 -10721B450:lI98|H10721E9A0 -10721E9A0:lI115|H107221E60 -107221E60:lI101|H107225008 -107225008:lI114|H107227E60 -107227E60:lI118|H10722A8A8 -10722A8A8:lI101|H10722CFC0 -10722CFC0:lI114|H10722F458 -10722F458:lI95|H107231600 -107231600:lI115|H107233498 -107233498:lI111|H107235030 -107235030:lI99|H107236978 -107236978:lI107|H1072380B0 -1072380B0:lI95|H1072395C8 -1072395C8:lI119|H10723A9B0 -10723A9B0:lI120|H10723BB70 -10723BB70:lI46|H10723CB50 -10723CB50:lI98|H10723D9A0 -10723D9A0:lI101|H10723E680 -10723E680:lI97|H10723F250 -10723F250:lI109|N -1072118C0:Mn7:H107214B58,H107214B68,H107214B78,H107214B88,H107214B98,H107214BA8,H107214BB8 -107214B58:lH107217EE0|N -107217EE0:lI99|H10721B3D0 -10721B3D0:lI100|H10721E920 -10721E920:lI118|H107221DE0 -107221DE0:lI95|H107224F88 -107224F88:lI119|H107227DE0 -107227DE0:lI120|H10722A828 -10722A828:lI46|H10722CF40 -10722CF40:lI98|H10722F3E8 -10722F3E8:lI101|H107231590 -107231590:lI97|H107233428 -107233428:lI109|N -107214BB8:lH107217F40|N -107217F40:lI99|H10721B430 -10721B430:lI100|H10721E980 -10721E980:lI118|H107221E40 -107221E40:lI95|H107224FE8 -107224FE8:lI105|H107227E40 -107227E40:lI110|H10722A888 -10722A888:lI102|H10722CFA0 -10722CFA0:lI111|H10722F448 -10722F448:lI95|H1072315F0 -1072315F0:lI119|H107233488 -107233488:lI120|H107235020 -107235020:lI46|H107236968 -107236968:lI98|H1072380A0 -1072380A0:lI101|H1072395B8 -1072395B8:lI97|H10723A9A0 -10723A9A0:lI109|N -107214BA8:lH107217F30|N -107217F30:lI111|H10721B420 -10721B420:lI98|H10721E970 -10721E970:lI115|H107221E30 -107221E30:lI101|H107224FD8 -107224FD8:lI114|H107227E30 -107227E30:lI118|H10722A878 -10722A878:lI101|H10722CF90 -10722CF90:lI114|H10722F438 -10722F438:lI46|H1072315E0 -1072315E0:lI97|H107233478 -107233478:lI112|H107235010 -107235010:lI112|H107236958 -107236958:lI117|H107238090 -107238090:lI112|N -107214B98:lH107217F20|N -107217F20:lI99|H10721B410 -10721B410:lI100|H10721E960 -10721E960:lI118|H107221E20 -107221E20:lI95|H107224FC8 -107224FC8:lI105|H107227E20 -107227E20:lI110|H10722A868 -10722A868:lI116|H10722CF80 -10722CF80:lI95|H10722F428 -10722F428:lI116|H1072315D0 -1072315D0:lI97|H107233468 -107233468:lI98|H107235000 -107235000:lI95|H107236948 -107236948:lI99|H107238080 -107238080:lI98|H1072395A8 -1072395A8:lI46|H10723A990 -10723A990:lI98|H10723BB60 -10723BB60:lI101|H10723CB40 -10723CB40:lI97|H10723D990 -10723D990:lI109|N -107214B88:lH107217F10|N -107217F10:lI99|H10721B400 -10721B400:lI100|H10721E950 -10721E950:lI118|H107221E10 -107221E10:lI95|H107224FB8 -107224FB8:lI116|H107227E10 -107227E10:lI105|H10722A858 -10722A858:lI109|H10722CF70 -10722CF70:lI101|H10722F418 -10722F418:lI114|H1072315C0 -1072315C0:lI95|H107233458 -107233458:lI99|H107234FF0 -107234FF0:lI98|H107236938 -107236938:lI46|H107238070 -107238070:lI98|H107239598 -107239598:lI101|H10723A980 -10723A980:lI97|H10723BB50 -10723BB50:lI109|N -107214B78:lH107217F00|N -107217F00:lI99|H10721B3F0 -10721B3F0:lI114|H10721E940 -10721E940:lI97|H107221E00 -107221E00:lI115|H107224FA8 -107224FA8:lI104|H107227E00 -107227E00:lI100|H10722A848 -10722A848:lI117|H10722CF60 -10722CF60:lI109|H10722F408 -10722F408:lI112|H1072315B0 -1072315B0:lI95|H107233448 -107233448:lI118|H107234FE0 -107234FE0:lI105|H107236928 -107236928:lI101|H107238060 -107238060:lI119|H107239588 -107239588:lI101|H10723A970 -10723A970:lI114|H10723BB40 -10723BB40:lI46|H10723CB30 -10723CB30:lI98|H10723D980 -10723D980:lI101|H10723E670 -10723E670:lI97|H10723F240 -10723F240:lI109|N -107214B68:lH107217EF0|N -107217EF0:lI99|H10721B3E0 -10721B3E0:lI100|H10721E930 -10721E930:lI118|H107221DF0 -107221DF0:lI95|H107224F98 -107224F98:lI115|H107227DF0 -107227DF0:lI99|H10722A838 -10722A838:lI104|H10722CF50 -10722CF50:lI101|H10722F3F8 -10722F3F8:lI100|H1072315A0 -1072315A0:lI95|H107233438 -107233438:lI99|H107234FD0 -107234FD0:lI98|H107236918 -107236918:lI46|H107238050 -107238050:lI98|H107239578 -107239578:lI101|H10723A960 -10723A960:lI97|H10723BB30 -10723BB30:lI109|N -1072118B0:lH107214B48|N -107214B48:lI99|H107217ED0 -107217ED0:lI100|H10721B3C0 -10721B3C0:lI118|H10721E910 -10721E910:lI95|H107221DD0 -107221DD0:lI109|H107224F78 -107224F78:lI101|H107227DD0 -107227DD0:lI109|H10722A818 -10722A818:lI95|H10722CF30 -10722CF30:lI99|H10722F3D8 -10722F3D8:lI98|H107231580 -107231580:lI46|H107233418 -107233418:lI98|H107234FC0 -107234FC0:lI101|H107236908 -107236908:lI97|H107238040 -107238040:lI109|N -107211890:Mn3:H107214B18,H107214B28,H107214B38 -107214B18:lH107217EA0|N -107217EA0:lI111|H10721B390 -10721B390:lI98|H10721E8E0 -10721E8E0:lI115|H107221DA0 -107221DA0:lI101|H107224F48 -107224F48:lI114|H107227DA0 -107227DA0:lI118|H10722A7E8 -10722A7E8:lI101|H10722CF00 -10722CF00:lI114|H10722F3A8 -10722F3A8:lI95|H107231550 -107231550:lI112|H1072333E8 -1072333E8:lI111|H107234FA0 -107234FA0:lI114|H1072368E8 -1072368E8:lI116|H107238020 -107238020:lI95|H107239558 -107239558:lI119|H10723A940 -10723A940:lI120|H10723BB20 -10723BB20:lI46|H10723CB20 -10723CB20:lI98|H10723D970 -10723D970:lI101|H10723E660 -10723E660:lI97|H10723F230 -10723F230:lI109|N -107214B38:lH107217EC0|N -107217EC0:lI116|H10721B3B0 -10721B3B0:lI116|H10721E900 -10721E900:lI98|H107221DC0 -107221DC0:lI95|H107224F68 -107224F68:lI101|H107227DC0 -107227DC0:lI116|H10722A808 -10722A808:lI46|H10722CF20 -10722CF20:lI98|H10722F3C8 -10722F3C8:lI101|H107231570 -107231570:lI97|H107233408 -107233408:lI109|N -107214B28:lH107217EB0|N -107217EB0:lI99|H10721B3A0 -10721B3A0:lI100|H10721E8F0 -10721E8F0:lI118|H107221DB0 -107221DB0:lI95|H107224F58 -107224F58:lI97|H107227DB0 -107227DB0:lI116|H10722A7F8 -10722A7F8:lI111|H10722CF10 -10722CF10:lI109|H10722F3B8 -10722F3B8:lI95|H107231560 -107231560:lI99|H1072333F8 -1072333F8:lI98|H107234FB0 -107234FB0:lI46|H1072368F8 -1072368F8:lI98|H107238030 -107238030:lI101|H107239568 -107239568:lI97|H10723A950 -10723A950:lI109|N -107211878:Mn2:H107214AF8,H107214B08 -107214AF8:lH107217E80|N -107217E80:lI99|H10721B370 -10721B370:lI100|H10721E8C0 -10721E8C0:lI118|H107221D80 -107221D80:lI95|H107224F28 -107224F28:lI100|H107227D80 -107227D80:lI101|H10722A7C8 -10722A7C8:lI116|H10722CEE0 -10722CEE0:lI97|H10722F388 -10722F388:lI105|H107231530 -107231530:lI108|H1072333C8 -1072333C8:lI95|H107234F80 -107234F80:lI119|H1072368C8 -1072368C8:lI120|H107238000 -107238000:lI46|H107239538 -107239538:lI98|H10723A930 -10723A930:lI101|H10723BB10 -10723BB10:lI97|H10723CB10 -10723CB10:lI109|N -107214B08:lH107217E90|N -107217E90:lI99|H10721B380 -10721B380:lI100|H10721E8D0 -10721E8D0:lI118|H107221D90 -107221D90:lI95|H107224F38 -107224F38:lI102|H107227D90 -107227D90:lI117|H10722A7D8 -10722A7D8:lI110|H10722CEF0 -10722CEF0:lI95|H10722F398 -10722F398:lI99|H107231540 -107231540:lI98|H1072333D8 -1072333D8:lI46|H107234F90 -107234F90:lI98|H1072368D8 -1072368D8:lI101|H107238010 -107238010:lI97|H107239548 -107239548:lI109|N -107211848:Mn5:H107214AA8,H107214AB8,H107214AC8,H107214AD8,H107214AE8 -107214AA8:lH107217E30|N -107217E30:lI99|H10721B320 -10721B320:lI100|H10721E870 -10721E870:lI118|H107221D30 -107221D30:lI95|H107224ED8 -107224ED8:lI104|H107227D30 -107227D30:lI116|H10722A778 -10722A778:lI109|H10722CE90 -10722CE90:lI108|H10722F338 -10722F338:lI95|H1072314E0 -1072314E0:lI119|H107233378 -107233378:lI120|H107234F30 -107234F30:lI46|H107236888 -107236888:lI98|H107237FC0 -107237FC0:lI101|H1072394F8 -1072394F8:lI97|H10723A910 -10723A910:lI109|N -107214AE8:lH107217E70|N -107217E70:lI101|H10721B360 -10721B360:lI116|H10721E8B0 -10721E8B0:lI111|H107221D70 -107221D70:lI112|H107224F18 -107224F18:lI95|H107227D70 -107227D70:lI116|H10722A7B8 -10722A7B8:lI114|H10722CED0 -10722CED0:lI46|H10722F378 -10722F378:lI98|H107231520 -107231520:lI101|H1072333B8 -1072333B8:lI97|H107234F70 -107234F70:lI109|N -107214AD8:lH107217E60|N -107217E60:lI99|H10721B350 -10721B350:lI100|H10721E8A0 -10721E8A0:lI118|H107221D60 -107221D60:lI95|H107224F08 -107224F08:lI98|H107227D60 -107227D60:lI105|H10722A7A8 -10722A7A8:lI110|H10722CEC0 -10722CEC0:lI95|H10722F368 -10722F368:lI99|H107231510 -107231510:lI98|H1072333A8 -1072333A8:lI46|H107234F60 -107234F60:lI98|H1072368B8 -1072368B8:lI101|H107237FF0 -107237FF0:lI97|H107239528 -107239528:lI109|N -107214AC8:lH107217E50|N -107217E50:lI99|H10721B340 -10721B340:lI100|H10721E890 -10721E890:lI118|H107221D50 -107221D50:lI95|H107224EF8 -107224EF8:lI101|H107227D50 -107227D50:lI116|H10722A798 -10722A798:lI115|H10722CEB0 -10722CEB0:lI95|H10722F358 -10722F358:lI99|H107231500 -107231500:lI98|H107233398 -107233398:lI46|H107234F50 -107234F50:lI98|H1072368A8 -1072368A8:lI101|H107237FE0 -107237FE0:lI97|H107239518 -107239518:lI109|N -107214AB8:lH107217E40|N -107217E40:lI99|H10721B330 -10721B330:lI100|H10721E880 -10721E880:lI118|H107221D40 -107221D40:lI95|H107224EE8 -107224EE8:lI116|H107227D40 -107227D40:lI101|H10722A788 -10722A788:lI114|H10722CEA0 -10722CEA0:lI109|H10722F348 -10722F348:lI95|H1072314F0 -1072314F0:lI99|H107233388 -107233388:lI98|H107234F40 -107234F40:lI46|H107236898 -107236898:lI98|H107237FD0 -107237FD0:lI101|H107239508 -107239508:lI97|H10723A920 -10723A920:lI109|N -107211830:Mn2:H107214A88,H107214A98 -107214A88:lH107217E10|N -107217E10:lI111|H10721B300 -10721B300:lI98|H10721E850 -10721E850:lI115|H107221D10 -107221D10:lI101|H107224EB8 -107224EB8:lI114|H107227D10 -107227D10:lI118|H10722A758 -10722A758:lI101|H10722CE70 -10722CE70:lI114|H10722F318 -10722F318:lI95|H1072314C0 -1072314C0:lI108|H107233358 -107233358:lI105|H107234F10 -107234F10:lI98|H107236868 -107236868:lI46|H107237FA0 -107237FA0:lI98|H1072394D8 -1072394D8:lI101|H10723A8F0 -10723A8F0:lI97|H10723BAF0 -10723BAF0:lI109|N -107214A98:lH107217E20|N -107217E20:lI111|H10721B310 -10721B310:lI98|H10721E860 -10721E860:lI115|H107221D20 -107221D20:lI101|H107224EC8 -107224EC8:lI114|H107227D20 -107227D20:lI118|H10722A768 -10722A768:lI101|H10722CE80 -10722CE80:lI114|H10722F328 -10722F328:lI95|H1072314D0 -1072314D0:lI97|H107233368 -107233368:lI112|H107234F20 -107234F20:lI112|H107236878 -107236878:lI95|H107237FB0 -107237FB0:lI119|H1072394E8 -1072394E8:lI120|H10723A900 -10723A900:lI46|H10723BB00 -10723BB00:lI98|H10723CB00 -10723CB00:lI101|H10723D960 -10723D960:lI97|H10723E650 -10723E650:lI109|N -10720E658:lI47|H107211808 -107211808:lI111|H107214A58 -107214A58:lI112|H107217DE0 -107217DE0:lI116|H10721B2D0 -10721B2D0:lI47|H10721E820 -10721E820:lI104|H107221CE0 -107221CE0:lI111|H107224E88 -107224E88:lI109|H107227CE0 -107227CE0:lI101|H10722A728 -10722A728:lI98|H10722CE40 -10722CE40:lI114|H10722F2E8 -10722F2E8:lI101|H107231490 -107231490:lI119|H107233328 -107233328:lI47|H107234EE0 -107234EE0:lI67|H107236838 -107236838:lI101|H107237F70 -107237F70:lI108|H1072394A8 -1072394A8:lI108|H10723A8D0 -10723A8D0:lI97|H10723BAE0 -10723BAE0:lI114|H10723CAF0 -10723CAF0:lI47|H10723D950 -10723D950:lI101|H10723E640 -10723E640:lI114|H10723F220 -10723F220:lI108|H10723FCB0 -10723FCB0:lI97|H1072405F0 -1072405F0:lI110|H107240E60 -107240E60:lI103|H1072415F0 -1072415F0:lI47|H107241D10 -107241D10:lI50|H1072423D0 -1072423D0:lI54|H107242A30 -107242A30:lI46|H107243010 -107243010:lI48|H107243580 -107243580:lI46|H107243AC0 -107243AC0:lI50|H107243FB0 -107243FB0:lI47|H1072444A0 -1072444A0:lI108|H107244950 -107244950:lI105|H107244DC0 -107244DC0:lI98|H107245220 -107245220:lI47|H107245670 -107245670:lI101|H107245A70 -107245A70:lI114|H107245E20 -107245E20:lI108|H1072461B0 -1072461B0:lI97|H107246540 -107246540:lI110|H1072468D0 -1072468D0:lI103|H107246C60 -107246C60:lI47|H107246F90 -107246F90:lI108|H1072472B0 -1072472B0:lI105|H1072475C0 -1072475C0:lI98|H1072478C0 -1072478C0:lI47|H107247BC0 -107247BC0:lI111|H107247EA0 -107247EA0:lI98|H107248160 -107248160:lI115|H107248420 -107248420:lI101|H1072486D0 -1072486D0:lI114|H107248980 -107248980:lI118|H107248C00 -107248C00:lI101|H107248E70 -107248E70:lI114|H1072490E0 -1072490E0:lI45|H107249340 -107249340:lI50|H1072495A0 -1072495A0:lI46|H1072497F0 -1072497F0:lI49|H107249A10 -107249A10:lI53|H107249C20 -107249C20:lI47|H280052C20 -10720B448:lH10720E6F0|H10720E708 -10720E6F0:t2:H1072119D8,H1072119E8 -1072119E8:Mh21:F:H107214D30,H107214D50,H107214D88,H107214DA0,H107214DB8,H107214DD8,H107214DE8,H107214DF8,H107214E20,H107214E30,H107214E48,H107214E58,H107214E68,H107214E78,H107214E98 -107214D30:Mn3:H1072180E0,H1072180F0,H107218100 -1072180E0:lH10721B5D0|N -10721B5D0:lI109|H10721EB20 -10721EB20:lI110|H107221FE0 -107221FE0:lI101|H107225188 -107225188:lI115|H107227FE0 -107227FE0:lI105|H10722AA28 -10722AA28:lI97|H10722D140 -10722D140:lI95|H10722F5D8 -10722F5D8:lI114|H107231770 -107231770:lI101|H107233608 -107233608:lI103|H1072351A0 -1072351A0:lI105|H107236AE8 -107236AE8:lI115|H1072381F0 -1072381F0:lI116|H107239708 -107239708:lI114|H10723AAE0 -10723AAE0:lI121|H10723BC80 -10723BC80:lI46|H10723CC50 -10723CC50:lI98|H10723DA80 -10723DA80:lI101|H10723E750 -10723E750:lI97|H10723F300 -10723F300:lI109|N -107218100:lH10721B5F0|N -10721B5F0:lI109|H10721EB40 -10721EB40:lI110|H107222000 -107222000:lI101|H1072251A8 -1072251A8:lI115|H107228000 -107228000:lI105|H10722AA48 -10722AA48:lI97|H10722D160 -10722D160:lI95|H10722F5F8 -10722F5F8:lI98|H107231790 -107231790:lI117|H107233628 -107233628:lI112|H1072351C0 -1072351C0:lI46|H107236B08 -107236B08:lI98|H107238210 -107238210:lI101|H107239728 -107239728:lI97|H10723AB00 -10723AB00:lI109|N -1072180F0:lH10721B5E0|N -10721B5E0:lI109|H10721EB30 -10721EB30:lI110|H107221FF0 -107221FF0:lI101|H107225198 -107225198:lI115|H107227FF0 -107227FF0:lI105|H10722AA38 -10722AA38:lI97|H10722D150 -10722D150:lI95|H10722F5E8 -10722F5E8:lI99|H107231780 -107231780:lI104|H107233618 -107233618:lI101|H1072351B0 -1072351B0:lI99|H107236AF8 -107236AF8:lI107|H107238200 -107238200:lI112|H107239718 -107239718:lI111|H10723AAF0 -10723AAF0:lI105|H10723BC90 -10723BC90:lI110|H10723CC60 -10723CC60:lI116|H10723DA90 -10723DA90:lI46|H10723E760 -10723E760:lI98|H10723F310 -10723F310:lI101|H10723FD60 -10723FD60:lI97|H107240660 -107240660:lI109|N -107214E98:Mn2:H1072182D0,H1072182E0 -1072182D0:lH10721B7C0|N -10721B7C0:lI109|H10721ED10 -10721ED10:lI110|H1072221D0 -1072221D0:lI101|H107225378 -107225378:lI115|H1072281D0 -1072281D0:lI105|H10722AC18 -10722AC18:lI97|H10722D330 -10722D330:lI95|H10722F7C8 -10722F7C8:lI108|H107231960 -107231960:lI97|H1072337E8 -1072337E8:lI116|H107235380 -107235380:lI101|H107236CB8 -107236CB8:lI95|H1072383B0 -1072383B0:lI108|H1072398C8 -1072398C8:lI111|H10723AC80 -10723AC80:lI97|H10723BDB0 -10723BDB0:lI100|H10723CD70 -10723CD70:lI101|H10723DB70 -10723DB70:lI114|H10723E7F0 -10723E7F0:lI46|H10723F370 -10723F370:lI98|H10723FDA0 -10723FDA0:lI101|H107240690 -107240690:lI97|H107240EB0 -107240EB0:lI109|N -1072182E0:lH10721B7D0|N -10721B7D0:lI109|H10721ED20 -10721ED20:lI110|H1072221E0 -1072221E0:lI101|H107225388 -107225388:lI115|H1072281E0 -1072281E0:lI105|H10722AC28 -10722AC28:lI97|H10722D340 -10722D340:lI95|H10722F7D8 -10722F7D8:lI98|H107231970 -107231970:lI97|H1072337F8 -1072337F8:lI99|H107235390 -107235390:lI107|H107236CC8 -107236CC8:lI101|H1072383C0 -1072383C0:lI110|H1072398D8 -1072398D8:lI100|H10723AC90 -10723AC90:lI95|H10723BDC0 -10723BDC0:lI116|H10723CD80 -10723CD80:lI121|H10723DB80 -10723DB80:lI112|H10723E800 -10723E800:lI101|H10723F380 -10723F380:lI46|H10723FDB0 -10723FDB0:lI98|H1072406A0 -1072406A0:lI101|H107240EC0 -107240EC0:lI97|H107241630 -107241630:lI109|N -107214E78:Mn3:H1072182A0,H1072182B0,H1072182C0 -1072182A0:lH10721B790|N -10721B790:lI109|H10721ECE0 -10721ECE0:lI110|H1072221A0 -1072221A0:lI101|H107225348 -107225348:lI115|H1072281A0 -1072281A0:lI105|H10722ABE8 -10722ABE8:lI97|H10722D300 -10722D300:lI95|H10722F798 -10722F798:lI99|H107231930 -107231930:lI104|H1072337B8 -1072337B8:lI101|H107235350 -107235350:lI99|H107236C88 -107236C88:lI107|H107238380 -107238380:lI112|H107239898 -107239898:lI111|H10723AC60 -10723AC60:lI105|H10723BD90 -10723BD90:lI110|H10723CD50 -10723CD50:lI116|H10723DB50 -10723DB50:lI95|H10723E7E0 -10723E7E0:lI115|H10723F360 -10723F360:lI117|H10723FD90 -10723FD90:lI112|H107240680 -107240680:lI46|H107240EA0 -107240EA0:lI98|H107241620 -107241620:lI101|H107241D40 -107241D40:lI97|H107242400 -107242400:lI109|N -1072182C0:lH10721B7B0|N -10721B7B0:lI109|H10721ED00 -10721ED00:lI110|H1072221C0 -1072221C0:lI101|H107225368 -107225368:lI115|H1072281C0 -1072281C0:lI105|H10722AC08 -10722AC08:lI97|H10722D320 -10722D320:lI95|H10722F7B8 -10722F7B8:lI115|H107231950 -107231950:lI112|H1072337D8 -1072337D8:lI46|H107235370 -107235370:lI98|H107236CA8 -107236CA8:lI101|H1072383A0 -1072383A0:lI97|H1072398B8 -1072398B8:lI109|N -1072182B0:lH10721B7A0|N -10721B7A0:lI109|H10721ECF0 -10721ECF0:lI110|H1072221B0 -1072221B0:lI101|H107225358 -107225358:lI115|H1072281B0 -1072281B0:lI105|H10722ABF8 -10722ABF8:lI97|H10722D310 -10722D310:lI95|H10722F7A8 -10722F7A8:lI115|H107231940 -107231940:lI99|H1072337C8 -1072337C8:lI104|H107235360 -107235360:lI101|H107236C98 -107236C98:lI109|H107238390 -107238390:lI97|H1072398A8 -1072398A8:lI46|H10723AC70 -10723AC70:lI98|H10723BDA0 -10723BDA0:lI101|H10723CD60 -10723CD60:lI97|H10723DB60 -10723DB60:lI109|N -107214E68:lH107218290|N -107218290:lI109|H10721B780 -10721B780:lI110|H10721ECD0 -10721ECD0:lI101|H107222190 -107222190:lI115|H107225338 -107225338:lI105|H107228190 -107228190:lI97|H10722ABD8 -10722ABD8:lI95|H10722D2F0 -10722D2F0:lI116|H10722F788 -10722F788:lI101|H107231920 -107231920:lI120|H1072337A8 -1072337A8:lI116|H107235340 -107235340:lI46|H107236C78 -107236C78:lI98|H107238370 -107238370:lI101|H107239888 -107239888:lI97|H10723AC50 -10723AC50:lI109|N -107214E58:lH107218280|N -107218280:lI109|H10721B770 -10721B770:lI110|H10721ECC0 -10721ECC0:lI101|H107222180 -107222180:lI115|H107225328 -107225328:lI105|H107228180 -107228180:lI97|H10722ABC8 -10722ABC8:lI95|H10722D2E0 -10722D2E0:lI99|H10722F778 -10722F778:lI111|H107231910 -107231910:lI110|H107233798 -107233798:lI116|H107235330 -107235330:lI114|H107236C68 -107236C68:lI111|H107238360 -107238360:lI108|H107239878 -107239878:lI108|H10723AC40 -10723AC40:lI101|H10723BD80 -10723BD80:lI114|H10723CD40 -10723CD40:lI46|H10723DB40 -10723DB40:lI98|H10723E7D0 -10723E7D0:lI101|H10723F350 -10723F350:lI97|H10723FD80 -10723FD80:lI109|N -107214E48:lH107218270|N -107218270:lI109|H10721B760 -10721B760:lI110|H10721ECB0 -10721ECB0:lI101|H107222170 -107222170:lI115|H107225318 -107225318:lI105|H107228170 -107228170:lI97|H10722ABB8 -10722ABB8:lI95|H10722D2D0 -10722D2D0:lI108|H10722F768 -10722F768:lI111|H107231900 -107231900:lI99|H107233788 -107233788:lI107|H107235320 -107235320:lI101|H107236C58 -107236C58:lI114|H107238350 -107238350:lI46|H107239868 -107239868:lI98|H10723AC30 -10723AC30:lI101|H10723BD70 -10723BD70:lI97|H10723CD30 -10723CD30:lI109|N -107214E30:Mn2:H107218250,H107218260 -107218250:lH10721B740|N -10721B740:lI109|H10721EC90 -10721EC90:lI110|H107222150 -107222150:lI101|H1072252F8 -1072252F8:lI115|H107228150 -107228150:lI105|H10722AB98 -10722AB98:lI97|H10722D2B0 -10722D2B0:lI95|H10722F748 -10722F748:lI107|H1072318E0 -1072318E0:lI101|H107233768 -107233768:lI114|H107235300 -107235300:lI110|H107236C38 -107236C38:lI101|H107238330 -107238330:lI108|H107239848 -107239848:lI95|H10723AC10 -10723AC10:lI115|H10723BD50 -10723BD50:lI117|H10723CD20 -10723CD20:lI112|H10723DB30 -10723DB30:lI46|H10723E7C0 -10723E7C0:lI98|H10723F340 -10723F340:lI101|H10723FD70 -10723FD70:lI97|H107240670 -107240670:lI109|N -107218260:lH10721B750|N -10721B750:lI109|H10721ECA0 -10721ECA0:lI110|H107222160 -107222160:lI101|H107225308 -107225308:lI115|H107228160 -107228160:lI105|H10722ABA8 -10722ABA8:lI97|H10722D2C0 -10722D2C0:lI95|H10722F758 -10722F758:lI102|H1072318F0 -1072318F0:lI114|H107233778 -107233778:lI97|H107235310 -107235310:lI103|H107236C48 -107236C48:lI46|H107238340 -107238340:lI98|H107239858 -107239858:lI101|H10723AC20 -10723AC20:lI97|H10723BD60 -10723BD60:lI109|N -107214E20:lH107218240|N -107218240:lI109|H10721B730 -10721B730:lI110|H10721EC80 -10721EC80:lI101|H107222140 -107222140:lI115|H1072252E8 -1072252E8:lI105|H107228140 -107228140:lI97|H10722AB88 -10722AB88:lI95|H10722D2A0 -10722D2A0:lI102|H10722F738 -10722F738:lI114|H1072318D0 -1072318D0:lI97|H107233758 -107233758:lI103|H1072352F0 -1072352F0:lI95|H107236C28 -107236C28:lI104|H107238320 -107238320:lI97|H107239838 -107239838:lI115|H10723AC00 -10723AC00:lI104|H10723BD40 -10723BD40:lI46|H10723CD10 -10723CD10:lI98|H10723DB20 -10723DB20:lI101|H10723E7B0 -10723E7B0:lI97|H10723F330 -10723F330:lI109|N -107214DF8:Mn4:H107218200,H107218210,H107218220,H107218230 -107218200:lH10721B6F0|N -10721B6F0:lI109|H10721EC40 -10721EC40:lI110|H107222100 -107222100:lI101|H1072252A8 -1072252A8:lI115|H107228100 -107228100:lI105|H10722AB48 -10722AB48:lI97|H10722D260 -10722D260:lI95|H10722F6F8 -10722F6F8:lI116|H107231890 -107231890:lI109|H107233718 -107233718:lI46|H1072352B0 -1072352B0:lI98|H107236BE8 -107236BE8:lI101|H1072382E0 -1072382E0:lI97|H1072397F8 -1072397F8:lI109|N -107218230:lH10721B720|N -10721B720:lI109|H10721EC70 -10721EC70:lI110|H107222130 -107222130:lI101|H1072252D8 -1072252D8:lI115|H107228130 -107228130:lI105|H10722AB78 -10722AB78:lI97|H10722D290 -10722D290:lI95|H10722F728 -10722F728:lI100|H1072318C0 -1072318C0:lI117|H107233748 -107233748:lI109|H1072352E0 -1072352E0:lI112|H107236C18 -107236C18:lI101|H107238310 -107238310:lI114|H107239828 -107239828:lI46|H10723ABF0 -10723ABF0:lI98|H10723BD30 -10723BD30:lI101|H10723CD00 -10723CD00:lI97|H10723DB10 -10723DB10:lI109|N -107218220:lH10721B710|N -10721B710:lI109|H10721EC60 -10721EC60:lI110|H107222120 -107222120:lI101|H1072252C8 -1072252C8:lI115|H107228120 -107228120:lI105|H10722AB68 -10722AB68:lI97|H10722D280 -10722D280:lI95|H10722F718 -10722F718:lI101|H1072318B0 -1072318B0:lI118|H107233738 -107233738:lI101|H1072352D0 -1072352D0:lI110|H107236C08 -107236C08:lI116|H107238300 -107238300:lI46|H107239818 -107239818:lI98|H10723ABE0 -10723ABE0:lI101|H10723BD20 -10723BD20:lI97|H10723CCF0 -10723CCF0:lI109|N -107218210:lH10721B700|N -10721B700:lI109|H10721EC50 -10721EC50:lI110|H107222110 -107222110:lI101|H1072252B8 -1072252B8:lI115|H107228110 -107228110:lI105|H10722AB58 -10722AB58:lI97|H10722D270 -10722D270:lI95|H10722F708 -10722F708:lI98|H1072318A0 -1072318A0:lI97|H107233728 -107233728:lI99|H1072352C0 -1072352C0:lI107|H107236BF8 -107236BF8:lI117|H1072382F0 -1072382F0:lI112|H107239808 -107239808:lI46|H10723ABD0 -10723ABD0:lI98|H10723BD10 -10723BD10:lI101|H10723CCE0 -10723CCE0:lI97|H10723DB00 -10723DB00:lI109|N -107214DE8:lH1072181F0|N -1072181F0:lI109|H10721B6E0 -10721B6E0:lI110|H10721EC30 -10721EC30:lI101|H1072220F0 -1072220F0:lI115|H107225298 -107225298:lI105|H1072280F0 -1072280F0:lI97|H10722AB38 -10722AB38:lI46|H10722D250 -10722D250:lI97|H10722F6E8 -10722F6E8:lI112|H107231880 -107231880:lI112|N -107214DD8:lH1072181E0|N -1072181E0:lI109|H10721B6D0 -10721B6D0:lI110|H10721EC20 -10721EC20:lI101|H1072220E0 -1072220E0:lI115|H107225288 -107225288:lI105|H1072280E0 -1072280E0:lI97|H10722AB28 -10722AB28:lI95|H10722D240 -10722D240:lI115|H10722F6D8 -10722F6D8:lI110|H107231870 -107231870:lI109|H107233708 -107233708:lI112|H1072352A0 -1072352A0:lI95|H107236BD8 -107236BD8:lI104|H1072382D0 -1072382D0:lI111|H1072397E8 -1072397E8:lI111|H10723ABC0 -10723ABC0:lI107|H10723BD00 -10723BD00:lI46|H10723CCD0 -10723CCD0:lI98|H10723DAF0 -10723DAF0:lI101|H10723E7A0 -10723E7A0:lI97|H10723F320 -10723F320:lI109|N -107214DB8:Mn3:H1072181B0,H1072181C0,H1072181D0 -1072181B0:lH10721B6A0|N -10721B6A0:lI109|H10721EBF0 -10721EBF0:lI110|H1072220B0 -1072220B0:lI101|H107225258 -107225258:lI115|H1072280B0 -1072280B0:lI105|H10722AAF8 -10722AAF8:lI97|H10722D210 -10722D210:lI95|H10722F6A8 -10722F6A8:lI115|H107231840 -107231840:lI117|H1072336D8 -1072336D8:lI112|H107235270 -107235270:lI46|H107236BA8 -107236BA8:lI98|H1072382B0 -1072382B0:lI101|H1072397C8 -1072397C8:lI97|H10723ABA0 -10723ABA0:lI109|N -1072181D0:lH10721B6C0|N -10721B6C0:lI109|H10721EC10 -10721EC10:lI110|H1072220D0 -1072220D0:lI101|H107225278 -107225278:lI115|H1072280D0 -1072280D0:lI105|H10722AB18 -10722AB18:lI97|H10722D230 -10722D230:lI95|H10722F6C8 -10722F6C8:lI108|H107231860 -107231860:lI105|H1072336F8 -1072336F8:lI98|H107235290 -107235290:lI46|H107236BC8 -107236BC8:lI98|H1072382C0 -1072382C0:lI101|H1072397D8 -1072397D8:lI97|H10723ABB0 -10723ABB0:lI109|N -1072181C0:lH10721B6B0|N -10721B6B0:lI109|H10721EC00 -10721EC00:lI110|H1072220C0 -1072220C0:lI101|H107225268 -107225268:lI115|H1072280C0 -1072280C0:lI105|H10722AB08 -10722AB08:lI97|H10722D220 -10722D220:lI46|H10722F6B8 -10722F6B8:lI97|H107231850 -107231850:lI112|H1072336E8 -1072336E8:lI112|H107235280 -107235280:lI117|H107236BB8 -107236BB8:lI112|N -107214DA0:Mn2:H107218190,H1072181A0 -107218190:lH10721B680|N -10721B680:lI109|H10721EBD0 -10721EBD0:lI110|H107222090 -107222090:lI101|H107225238 -107225238:lI115|H107228090 -107228090:lI105|H10722AAD8 -10722AAD8:lI97|H10722D1F0 -10722D1F0:lI95|H10722F688 -10722F688:lI97|H107231820 -107231820:lI112|H1072336B8 -1072336B8:lI112|H107235250 -107235250:lI46|H107236B88 -107236B88:lI98|H107238290 -107238290:lI101|H1072397A8 -1072397A8:lI97|H10723AB80 -10723AB80:lI109|N -1072181A0:lH10721B690|N -10721B690:lI109|H10721EBE0 -10721EBE0:lI110|H1072220A0 -1072220A0:lI101|H107225248 -107225248:lI115|H1072280A0 -1072280A0:lI105|H10722AAE8 -10722AAE8:lI97|H10722D200 -10722D200:lI95|H10722F698 -10722F698:lI108|H107231830 -107231830:lI111|H1072336C8 -1072336C8:lI103|H107235260 -107235260:lI46|H107236B98 -107236B98:lI98|H1072382A0 -1072382A0:lI101|H1072397B8 -1072397B8:lI97|H10723AB90 -10723AB90:lI109|N -107214D88:Mn2:H107218170,H107218180 -107218170:lH10721B660|N -10721B660:lI109|H10721EBB0 -10721EBB0:lI110|H107222070 -107222070:lI101|H107225218 -107225218:lI115|H107228070 -107228070:lI105|H10722AAB8 -10722AAB8:lI97|H10722D1D0 -10722D1D0:lI95|H10722F668 -10722F668:lI115|H107231800 -107231800:lI117|H107233698 -107233698:lI98|H107235230 -107235230:lI115|H107236B68 -107236B68:lI99|H107238270 -107238270:lI114|H107239788 -107239788:lI46|H10723AB60 -10723AB60:lI98|H10723BCF0 -10723BCF0:lI101|H10723CCC0 -10723CCC0:lI97|H10723DAE0 -10723DAE0:lI109|N -107218180:lH10721B670|N -10721B670:lI109|H10721EBC0 -10721EBC0:lI110|H107222080 -107222080:lI101|H107225228 -107225228:lI115|H107228080 -107228080:lI105|H10722AAC8 -10722AAC8:lI97|H10722D1E0 -10722D1E0:lI95|H10722F678 -10722F678:lI114|H107231810 -107231810:lI112|H1072336A8 -1072336A8:lI99|H107235240 -107235240:lI46|H107236B78 -107236B78:lI98|H107238280 -107238280:lI101|H107239798 -107239798:lI97|H10723AB70 -10723AB70:lI109|N -107214D50:Mn6:H107218110,H107218120,H107218130,H107218140,H107218150,H107218160 -107218110:lH10721B600|N -10721B600:lI109|H10721EB50 -10721EB50:lI110|H107222010 -107222010:lI101|H1072251B8 -1072251B8:lI115|H107228010 -107228010:lI105|H10722AA58 -10722AA58:lI97|H10722D170 -10722D170:lI46|H10722F608 -10722F608:lI98|H1072317A0 -1072317A0:lI101|H107233638 -107233638:lI97|H1072351D0 -1072351D0:lI109|N -107218160:lH10721B650|N -10721B650:lI109|H10721EBA0 -10721EBA0:lI110|H107222060 -107222060:lI101|H107225208 -107225208:lI115|H107228060 -107228060:lI105|H10722AAA8 -10722AAA8:lI97|H10722D1C0 -10722D1C0:lI95|H10722F658 -10722F658:lI109|H1072317F0 -1072317F0:lI111|H107233688 -107233688:lI110|H107235220 -107235220:lI105|H107236B58 -107236B58:lI116|H107238260 -107238260:lI111|H107239778 -107239778:lI114|H10723AB50 -10723AB50:lI46|H10723BCE0 -10723BCE0:lI98|H10723CCB0 -10723CCB0:lI101|H10723DAD0 -10723DAD0:lI97|H10723E790 -10723E790:lI109|N -107218150:lH10721B640|N -10721B640:lI109|H10721EB90 -10721EB90:lI110|H107222050 -107222050:lI101|H1072251F8 -1072251F8:lI115|H107228050 -107228050:lI105|H10722AA98 -10722AA98:lI97|H10722D1B0 -10722D1B0:lI95|H10722F648 -10722F648:lI105|H1072317E0 -1072317E0:lI110|H107233678 -107233678:lI100|H107235210 -107235210:lI101|H107236B48 -107236B48:lI120|H107238250 -107238250:lI46|H107239768 -107239768:lI98|H10723AB40 -10723AB40:lI101|H10723BCD0 -10723BCD0:lI97|H10723CCA0 -10723CCA0:lI109|N -107218140:lH10721B630|N -10721B630:lI109|H10721EB80 -10721EB80:lI110|H107222040 -107222040:lI101|H1072251E8 -1072251E8:lI115|H107228040 -107228040:lI105|H10722AA88 -10722AA88:lI97|H10722D1A0 -10722D1A0:lI95|H10722F638 -10722F638:lI114|H1072317D0 -1072317D0:lI101|H107233668 -107233668:lI99|H107235200 -107235200:lI111|H107236B38 -107236B38:lI118|H107238240 -107238240:lI101|H107239758 -107239758:lI114|H10723AB30 -10723AB30:lI46|H10723BCC0 -10723BCC0:lI98|H10723CC90 -10723CC90:lI101|H10723DAC0 -10723DAC0:lI97|H10723E780 -10723E780:lI109|N -107218130:lH10721B620|N -10721B620:lI109|H10721EB70 -10721EB70:lI110|H107222030 -107222030:lI101|H1072251D8 -1072251D8:lI115|H107228030 -107228030:lI105|H10722AA78 -10722AA78:lI97|H10722D190 -10722D190:lI95|H10722F628 -10722F628:lI108|H1072317C0 -1072317C0:lI111|H107233658 -107233658:lI97|H1072351F0 -1072351F0:lI100|H107236B28 -107236B28:lI101|H107238230 -107238230:lI114|H107239748 -107239748:lI46|H10723AB20 -10723AB20:lI98|H10723BCB0 -10723BCB0:lI101|H10723CC80 -10723CC80:lI97|H10723DAB0 -10723DAB0:lI109|N -107218120:lH10721B610|N -10721B610:lI109|H10721EB60 -10721EB60:lI110|H107222020 -107222020:lI101|H1072251C8 -1072251C8:lI115|H107228020 -107228020:lI105|H10722AA68 -10722AA68:lI97|H10722D180 -10722D180:lI95|H10722F618 -10722F618:lI101|H1072317B0 -1072317B0:lI120|H107233648 -107233648:lI116|H1072351E0 -1072351E0:lI95|H107236B18 -107236B18:lI115|H107238220 -107238220:lI117|H107239738 -107239738:lI112|H10723AB10 -10723AB10:lI46|H10723BCA0 -10723BCA0:lI98|H10723CC70 -10723CC70:lI101|H10723DAA0 -10723DAA0:lI97|H10723E770 -10723E770:lI109|N -1072119D8:lI47|H107214D20 -107214D20:lI111|H1072180D0 -1072180D0:lI112|H10721B5C0 -10721B5C0:lI116|H10721EB10 -10721EB10:lI47|H107221FD0 -107221FD0:lI104|H107225178 -107225178:lI111|H107227FD0 -107227FD0:lI109|H10722AA18 -10722AA18:lI101|H10722D130 -10722D130:lI98|H10722F5C8 -10722F5C8:lI114|H107231760 -107231760:lI101|H1072335F8 -1072335F8:lI119|H107235190 -107235190:lI47|H107236AD8 -107236AD8:lI67|H1072381E0 -1072381E0:lI101|H1072396F8 -1072396F8:lI108|H10723AAD0 -10723AAD0:lI108|H10723BC70 -10723BC70:lI97|H10723CC40 -10723CC40:lI114|H10723DA70 -10723DA70:lI47|H10723E740 -10723E740:lI101|H10723F2F0 -10723F2F0:lI114|H10723FD50 -10723FD50:lI108|H107240650 -107240650:lI97|H107240E90 -107240E90:lI110|H107241610 -107241610:lI103|H107241D30 -107241D30:lI47|H1072423F0 -1072423F0:lI50|H107242A50 -107242A50:lI54|H107243030 -107243030:lI46|H1072435A0 -1072435A0:lI48|H107243AD0 -107243AD0:lI46|H107243FC0 -107243FC0:lI50|H1072444B0 -1072444B0:lI47|H107244960 -107244960:lI108|H107244DD0 -107244DD0:lI105|H107245230 -107245230:lI98|H107245680 -107245680:lI47|H107245A80 -107245A80:lI101|H107245E30 -107245E30:lI114|H1072461C0 -1072461C0:lI108|H107246550 -107246550:lI97|H1072468E0 -1072468E0:lI110|H107246C70 -107246C70:lI103|H107246FA0 -107246FA0:lI47|H1072472C0 -1072472C0:lI108|H1072475D0 -1072475D0:lI105|H1072478D0 -1072478D0:lI98|H107247BD0 -107247BD0:lI47|H107247EB0 -107247EB0:lI109|H107248170 -107248170:lI110|H107248430 -107248430:lI101|H1072486E0 -1072486E0:lI115|H107248990 -107248990:lI105|H107248C10 -107248C10:lI97|H107248E80 -107248E80:lI45|H1072490F0 -1072490F0:lI52|H107249350 -107249350:lI46|H1072495B0 -1072495B0:lI50|H107249800 -107249800:lI50|H107249A20 -107249A20:lI47|H280052C20 -10720E708:lH107211A70|H107211A88 -107211A70:t2:H107214EB0,H107214EC0 -107214EC0:Mh43:F:H107218300,H107218320,H107218350,H107218378,H107218398,H1072183D0,H1072183E8,H107218420,H107218450,H107218470,H107218490,H1072184B8,H1072184C8,H1072184E8,H107218518 -107218300:Mn3:H10721B7F0,H10721B800,H10721B810 -10721B7F0:lH10721ED40|N -10721ED40:lI109|H107222200 -107222200:lI101|H1072253A8 -1072253A8:lI103|H107228200 -107228200:lI97|H10722AC48 -10722AC48:lI99|H10722D360 -10722D360:lI111|H10722F7F8 -10722F7F8:lI95|H107231990 -107231990:lI116|H107233818 -107233818:lI101|H1072353B0 -1072353B0:lI120|H107236CE8 -107236CE8:lI116|H1072383E0 -1072383E0:lI95|H1072398F8 -1072398F8:lI112|H10723ACB0 -10723ACB0:lI97|H10723BDE0 -10723BDE0:lI114|H10723CDA0 -10723CDA0:lI115|H10723DBA0 -10723DBA0:lI101|H10723E820 -10723E820:lI114|H10723F3A0 -10723F3A0:lI95|H10723FDD0 -10723FDD0:lI118|H1072406C0 -1072406C0:lI51|H107240EE0 -107240EE0:lI46|H107241650 -107241650:lI98|H107241D60 -107241D60:lI101|H107242420 -107242420:lI97|H107242A70 -107242A70:lI109|N -10721B810:lH10721ED60|N -10721ED60:lI109|H107222220 -107222220:lI101|H1072253C8 -1072253C8:lI103|H107228220 -107228220:lI97|H10722AC68 -10722AC68:lI99|H10722D380 -10722D380:lI111|H10722F818 -10722F818:lI95|H1072319B0 -1072319B0:lI112|H107233838 -107233838:lI101|H1072353D0 -1072353D0:lI114|H107236D08 -107236D08:lI95|H107238400 -107238400:lI109|H107239918 -107239918:lI101|H10723ACD0 -10723ACD0:lI100|H10723BE00 -10723BE00:lI105|H10723CDC0 -10723CDC0:lI97|H10723DBC0 -10723DBC0:lI95|H10723E830 -10723E830:lI103|H10723F3B0 -10723F3B0:lI97|H10723FDE0 -10723FDE0:lI116|H1072406D0 -1072406D0:lI101|H107240EF0 -107240EF0:lI119|H107241660 -107241660:lI97|H107241D70 -107241D70:lI121|H107242430 -107242430:lI95|H107242A80 -107242A80:lI99|H107243050 -107243050:lI111|H1072435C0 -1072435C0:lI110|H107243AF0 -107243AF0:lI116|H107243FE0 -107243FE0:lI114|H1072444D0 -1072444D0:lI111|H107244980 -107244980:lI108|H107244DF0 -107244DF0:lI95|H107245250 -107245250:lI118|H1072456A0 -1072456A0:lI49|H107245AA0 -107245AA0:lI46|H107245E50 -107245E50:lI98|H1072461E0 -1072461E0:lI101|H107246570 -107246570:lI97|H107246900 -107246900:lI109|N -10721B800:lH10721ED50|N -10721ED50:lI109|H107222210 -107222210:lI101|H1072253B8 -1072253B8:lI103|H107228210 -107228210:lI97|H10722AC58 -10722AC58:lI99|H10722D370 -10722D370:lI111|H10722F808 -10722F808:lI95|H1072319A0 -1072319A0:lI116|H107233828 -107233828:lI105|H1072353C0 -1072353C0:lI109|H107236CF8 -107236CF8:lI101|H1072383F0 -1072383F0:lI114|H107239908 -107239908:lI46|H10723ACC0 -10723ACC0:lI98|H10723BDF0 -10723BDF0:lI101|H10723CDB0 -10723CDB0:lI97|H10723DBB0 -10723DBB0:lI109|N -107218518:Mn5:H10721BB78,H10721BB88,H10721BB98,H10721BBA8,H10721BBB8 -10721BB78:lH10721F110|N -10721F110:lI109|H1072225E0 -1072225E0:lI101|H107225788 -107225788:lI103|H1072285E0 -1072285E0:lI97|H10722B028 -10722B028:lI99|H10722D740 -10722D740:lI111|H10722FBD8 -10722FBD8:lI95|H107231D70 -107231D70:lI98|H107233BF8 -107233BF8:lI105|H107235790 -107235790:lI110|H1072370B8 -1072370B8:lI97|H1072387B0 -1072387B0:lI114|H107239CA8 -107239CA8:lI121|H10723B060 -10723B060:lI95|H10723C190 -10723C190:lI110|H10723D110 -10723D110:lI97|H10723DF10 -10723DF10:lI109|H10723EB70 -10723EB70:lI101|H10723F6D0 -10723F6D0:lI95|H1072400D0 -1072400D0:lI114|H1072409B0 -1072409B0:lI101|H107241190 -107241190:lI115|H1072418E0 -1072418E0:lI111|H107241FD0 -107241FD0:lI108|H107242640 -107242640:lI118|H107242C80 -107242C80:lI101|H107243210 -107243210:lI114|H107243760 -107243760:lI95|H107243C80 -107243C80:lI118|H107244170 -107244170:lI50|H107244620 -107244620:lI46|H107244A90 -107244A90:lI98|H107244F00 -107244F00:lI101|H107245350 -107245350:lI97|H107245750 -107245750:lI109|N -10721BBB8:lH10721F150|N -10721F150:lI109|H107222620 -107222620:lI101|H1072257C8 -1072257C8:lI103|H107228620 -107228620:lI97|H10722B068 -10722B068:lI99|H10722D780 -10722D780:lI111|H10722FC18 -10722FC18:lI95|H107231DB0 -107231DB0:lI101|H107233C38 -107233C38:lI114|H1072357D0 -1072357D0:lI108|H1072370F8 -1072370F8:lI95|H1072387F0 -1072387F0:lI100|H107239CE8 -107239CE8:lI105|H10723B0A0 -10723B0A0:lI115|H10723C1D0 -10723C1D0:lI116|H10723D150 -10723D150:lI95|H10723DF40 -10723DF40:lI101|H10723EBA0 -10723EBA0:lI110|H10723F700 -10723F700:lI99|H107240100 -107240100:lI111|H1072409E0 -1072409E0:lI100|H1072411C0 -1072411C0:lI101|H107241910 -107241910:lI114|H107242000 -107242000:lI46|H107242670 -107242670:lI98|H107242CB0 -107242CB0:lI101|H107243230 -107243230:lI97|H107243780 -107243780:lI109|N -10721BBA8:lH10721F140|N -10721F140:lI109|H107222610 -107222610:lI101|H1072257B8 -1072257B8:lI103|H107228610 -107228610:lI97|H10722B058 -10722B058:lI99|H10722D770 -10722D770:lI111|H10722FC08 -10722FC08:lI95|H107231DA0 -107231DA0:lI99|H107233C28 -107233C28:lI111|H1072357C0 -1072357C0:lI109|H1072370E8 -1072370E8:lI112|H1072387E0 -1072387E0:lI97|H107239CD8 -107239CD8:lI99|H10723B090 -10723B090:lI116|H10723C1C0 -10723C1C0:lI95|H10723D140 -10723D140:lI116|H10723DF30 -10723DF30:lI101|H10723EB90 -10723EB90:lI120|H10723F6F0 -10723F6F0:lI116|H1072400F0 -1072400F0:lI95|H1072409D0 -1072409D0:lI101|H1072411B0 -1072411B0:lI110|H107241900 -107241900:lI99|H107241FF0 -107241FF0:lI111|H107242660 -107242660:lI100|H107242CA0 -107242CA0:lI101|H107243220 -107243220:lI114|H107243770 -107243770:lI46|H107243C90 -107243C90:lI98|H107244180 -107244180:lI101|H107244630 -107244630:lI97|H107244AA0 -107244AA0:lI109|N -10721BB98:lH10721F130|N -10721F130:lI109|H107222600 -107222600:lI101|H1072257A8 -1072257A8:lI103|H107228600 -107228600:lI97|H10722B048 -10722B048:lI99|H10722D760 -10722D760:lI111|H10722FBF8 -10722FBF8:lI95|H107231D90 -107231D90:lI117|H107233C18 -107233C18:lI115|H1072357B0 -1072357B0:lI101|H1072370D8 -1072370D8:lI114|H1072387D0 -1072387D0:lI46|H107239CC8 -107239CC8:lI98|H10723B080 -10723B080:lI101|H10723C1B0 -10723C1B0:lI97|H10723D130 -10723D130:lI109|N -10721BB88:lH10721F120|N -10721F120:lI109|H1072225F0 -1072225F0:lI101|H107225798 -107225798:lI103|H1072285F0 -1072285F0:lI97|H10722B038 -10722B038:lI99|H10722D750 -10722D750:lI111|H10722FBE8 -10722FBE8:lI95|H107231D80 -107231D80:lI101|H107233C08 -107233C08:lI100|H1072357A0 -1072357A0:lI105|H1072370C8 -1072370C8:lI115|H1072387C0 -1072387C0:lI116|H107239CB8 -107239CB8:lI95|H10723B070 -10723B070:lI99|H10723C1A0 -10723C1A0:lI111|H10723D120 -10723D120:lI109|H10723DF20 -10723DF20:lI112|H10723EB80 -10723EB80:lI114|H10723F6E0 -10723F6E0:lI101|H1072400E0 -1072400E0:lI115|H1072409C0 -1072409C0:lI115|H1072411A0 -1072411A0:lI46|H1072418F0 -1072418F0:lI98|H107241FE0 -107241FE0:lI101|H107242650 -107242650:lI97|H107242C90 -107242C90:lI109|N -1072184E8:Mn5:H10721BB20,H10721BB30,H10721BB40,H10721BB58,H10721BB68 -10721BB20:lH10721F0B0|N -10721F0B0:lI109|H107222580 -107222580:lI101|H107225728 -107225728:lI103|H107228580 -107228580:lI97|H10722AFC8 -10722AFC8:lI99|H10722D6E0 -10722D6E0:lI111|H10722FB78 -10722FB78:lI95|H107231D10 -107231D10:lI116|H107233B98 -107233B98:lI99|H107235730 -107235730:lI112|H107237068 -107237068:lI46|H107238760 -107238760:lI98|H107239C58 -107239C58:lI101|H10723B010 -10723B010:lI97|H10723C140 -10723C140:lI109|N -10721BB68:lH10721F100|N -10721F100:lI109|H1072225D0 -1072225D0:lI101|H107225778 -107225778:lI103|H1072285D0 -1072285D0:lI97|H10722B018 -10722B018:lI99|H10722D730 -10722D730:lI111|H10722FBC8 -10722FBC8:lI95|H107231D60 -107231D60:lI102|H107233BE8 -107233BE8:lI105|H107235780 -107235780:lI108|H1072370A8 -1072370A8:lI116|H1072387A0 -1072387A0:lI101|H107239C98 -107239C98:lI114|H10723B050 -10723B050:lI46|H10723C180 -10723C180:lI98|H10723D100 -10723D100:lI101|H10723DF00 -10723DF00:lI97|H10723EB60 -10723EB60:lI109|N -10721BB58:lH10721F0F0|N -10721F0F0:lI109|H1072225C0 -1072225C0:lI101|H107225768 -107225768:lI103|H1072285C0 -1072285C0:lI97|H10722B008 -10722B008:lI99|H10722D720 -10722D720:lI111|H10722FBB8 -10722FBB8:lI95|H107231D50 -107231D50:lI116|H107233BD8 -107233BD8:lI114|H107235770 -107235770:lI97|H107237098 -107237098:lI110|H107238790 -107238790:lI115|H107239C88 -107239C88:lI95|H10723B040 -10723B040:lI115|H10723C170 -10723C170:lI101|H10723D0F0 -10723D0F0:lI110|H10723DEF0 -10723DEF0:lI100|H10723EB50 -10723EB50:lI101|H10723F6C0 -10723F6C0:lI114|H1072400C0 -1072400C0:lI46|H1072409A0 -1072409A0:lI98|H107241180 -107241180:lI101|H1072418D0 -1072418D0:lI97|H107241FC0 -107241FC0:lI109|N -10721BB40:Mn2:H10721F0D0,H10721F0E0 -10721F0D0:lH1072225A0|N -1072225A0:lI109|H107225748 -107225748:lI101|H1072285A0 -1072285A0:lI103|H10722AFE8 -10722AFE8:lI97|H10722D700 -10722D700:lI99|H10722FB98 -10722FB98:lI111|H107231D30 -107231D30:lI95|H107233BB8 -107233BB8:lI98|H107235750 -107235750:lI105|H107237078 -107237078:lI110|H107238770 -107238770:lI97|H107239C68 -107239C68:lI114|H10723B020 -10723B020:lI121|H10723C150 -10723C150:lI95|H10723D0D0 -10723D0D0:lI116|H10723DED0 -10723DED0:lI114|H10723EB30 -10723EB30:lI97|H10723F6A0 -10723F6A0:lI110|H1072400A0 -1072400A0:lI115|H107240980 -107240980:lI102|H107241160 -107241160:lI111|H1072418B0 -1072418B0:lI114|H107241FA0 -107241FA0:lI109|H107242620 -107242620:lI101|H107242C60 -107242C60:lI114|H1072431F0 -1072431F0:lI95|H107243740 -107243740:lI118|H107243C60 -107243C60:lI51|H107244150 -107244150:lI46|H107244600 -107244600:lI98|H107244A70 -107244A70:lI101|H107244EE0 -107244EE0:lI97|H107245330 -107245330:lI109|N -10721F0E0:lH1072225B0|N -1072225B0:lI109|H107225758 -107225758:lI101|H1072285B0 -1072285B0:lI103|H10722AFF8 -10722AFF8:lI97|H10722D710 -10722D710:lI99|H10722FBA8 -10722FBA8:lI111|H107231D40 -107231D40:lI95|H107233BC8 -107233BC8:lI99|H107235760 -107235760:lI111|H107237088 -107237088:lI109|H107238780 -107238780:lI112|H107239C78 -107239C78:lI97|H10723B030 -10723B030:lI99|H10723C160 -10723C160:lI116|H10723D0E0 -10723D0E0:lI95|H10723DEE0 -10723DEE0:lI116|H10723EB40 -10723EB40:lI101|H10723F6B0 -10723F6B0:lI120|H1072400B0 -1072400B0:lI116|H107240990 -107240990:lI95|H107241170 -107241170:lI101|H1072418C0 -1072418C0:lI110|H107241FB0 -107241FB0:lI99|H107242630 -107242630:lI111|H107242C70 -107242C70:lI100|H107243200 -107243200:lI101|H107243750 -107243750:lI114|H107243C70 -107243C70:lI95|H107244160 -107244160:lI118|H107244610 -107244610:lI49|H107244A80 -107244A80:lI46|H107244EF0 -107244EF0:lI98|H107245340 -107245340:lI101|H107245740 -107245740:lI97|H107245B10 -107245B10:lI109|N -10721BB30:lH10721F0C0|N -10721F0C0:lI109|H107222590 -107222590:lI101|H107225738 -107225738:lI103|H107228590 -107228590:lI97|H10722AFD8 -10722AFD8:lI99|H10722D6F0 -10722D6F0:lI111|H10722FB88 -10722FB88:lI46|H107231D20 -107231D20:lI97|H107233BA8 -107233BA8:lI112|H107235740 -107235740:lI112|N -1072184C8:Mn3:H10721BAF0,H10721BB00,H10721BB10 -10721BAF0:lH10721F080|N -10721F080:lI109|H107222550 -107222550:lI101|H1072256F8 -1072256F8:lI103|H107228550 -107228550:lI97|H10722AF98 -10722AF98:lI99|H10722D6B0 -10722D6B0:lI111|H10722FB48 -10722FB48:lI95|H107231CE0 -107231CE0:lI109|H107233B68 -107233B68:lI105|H107235700 -107235700:lI115|H107237038 -107237038:lI99|H107238730 -107238730:lI95|H107239C28 -107239C28:lI115|H10723AFE0 -10723AFE0:lI117|H10723C110 -10723C110:lI112|H10723D0A0 -10723D0A0:lI46|H10723DEA0 -10723DEA0:lI98|H10723EB00 -10723EB00:lI101|H10723F670 -10723F670:lI97|H107240070 -107240070:lI109|N -10721BB10:lH10721F0A0|N -10721F0A0:lI109|H107222570 -107222570:lI101|H107225718 -107225718:lI103|H107228570 -107228570:lI97|H10722AFB8 -10722AFB8:lI99|H10722D6D0 -10722D6D0:lI111|H10722FB68 -10722FB68:lI95|H107231D00 -107231D00:lI109|H107233B88 -107233B88:lI101|H107235720 -107235720:lI115|H107237058 -107237058:lI115|H107238750 -107238750:lI101|H107239C48 -107239C48:lI110|H10723B000 -10723B000:lI103|H10723C130 -10723C130:lI101|H10723D0C0 -10723D0C0:lI114|H10723DEC0 -10723DEC0:lI95|H10723EB20 -10723EB20:lI109|H10723F690 -10723F690:lI105|H107240090 -107240090:lI115|H107240970 -107240970:lI99|H107241150 -107241150:lI46|H1072418A0 -1072418A0:lI98|H107241F90 -107241F90:lI101|H107242610 -107242610:lI97|H107242C50 -107242C50:lI109|N -10721BB00:lH10721F090|N -10721F090:lI109|H107222560 -107222560:lI101|H107225708 -107225708:lI103|H107228560 -107228560:lI97|H10722AFA8 -10722AFA8:lI99|H10722D6C0 -10722D6C0:lI111|H10722FB58 -10722FB58:lI95|H107231CF0 -107231CF0:lI112|H107233B78 -107233B78:lI114|H107235710 -107235710:lI101|H107237048 -107237048:lI116|H107238740 -107238740:lI116|H107239C38 -107239C38:lI121|H10723AFF0 -10723AFF0:lI95|H10723C120 -10723C120:lI116|H10723D0B0 -10723D0B0:lI101|H10723DEB0 -10723DEB0:lI120|H10723EB10 -10723EB10:lI116|H10723F680 -10723F680:lI95|H107240080 -107240080:lI101|H107240960 -107240960:lI110|H107241140 -107241140:lI99|H107241890 -107241890:lI111|H107241F80 -107241F80:lI100|H107242600 -107242600:lI101|H107242C40 -107242C40:lI114|H1072431E0 -1072431E0:lI95|H107243730 -107243730:lI118|H107243C50 -107243C50:lI50|H107244140 -107244140:lI46|H1072445F0 -1072445F0:lI98|H107244A60 -107244A60:lI101|H107244ED0 -107244ED0:lI97|H107245320 -107245320:lI109|N -1072184B8:lH10721BAE0|N -10721BAE0:lI109|H10721F070 -10721F070:lI101|H107222540 -107222540:lI103|H1072256E8 -1072256E8:lI97|H107228540 -107228540:lI99|H10722AF88 -10722AF88:lI111|H10722D6A0 -10722D6A0:lI95|H10722FB38 -10722FB38:lI102|H107231CD0 -107231CD0:lI108|H107233B58 -107233B58:lI101|H1072356F0 -1072356F0:lI120|H107237028 -107237028:lI95|H107238720 -107238720:lI115|H107239C18 -107239C18:lI99|H10723AFD0 -10723AFD0:lI97|H10723C100 -10723C100:lI110|H10723D090 -10723D090:lI110|H10723DE90 -10723DE90:lI101|H10723EAF0 -10723EAF0:lI114|H10723F660 -10723F660:lI95|H107240060 -107240060:lI104|H107240950 -107240950:lI97|H107241130 -107241130:lI110|H107241880 -107241880:lI100|H107241F70 -107241F70:lI108|H1072425F0 -1072425F0:lI101|H107242C30 -107242C30:lI114|H1072431D0 -1072431D0:lI46|H107243720 -107243720:lI98|H107243C40 -107243C40:lI101|H107244130 -107244130:lI97|H1072445E0 -1072445E0:lI109|N -107218490:Mn4:H10721BAA0,H10721BAB0,H10721BAC0,H10721BAD0 -10721BAA0:lH10721F030|N -10721F030:lI109|H107222500 -107222500:lI101|H1072256A8 -1072256A8:lI103|H107228500 -107228500:lI97|H10722AF48 -10722AF48:lI99|H10722D660 -10722D660:lI111|H10722FAF8 -10722FAF8:lI95|H107231C90 -107231C90:lI116|H107233B18 -107233B18:lI99|H1072356B0 -1072356B0:lI112|H107236FE8 -107236FE8:lI95|H1072386E0 -1072386E0:lI99|H107239BD8 -107239BD8:lI111|H10723AF90 -10723AF90:lI110|H10723C0C0 -10723C0C0:lI110|H10723D050 -10723D050:lI101|H10723DE50 -10723DE50:lI99|H10723EAB0 -10723EAB0:lI116|H10723F620 -10723F620:lI105|H107240040 -107240040:lI111|H107240930 -107240930:lI110|H107241110 -107241110:lI95|H107241860 -107241860:lI115|H107241F50 -107241F50:lI117|H1072425D0 -1072425D0:lI112|H107242C10 -107242C10:lI46|H1072431B0 -1072431B0:lI98|H107243700 -107243700:lI101|H107243C20 -107243C20:lI97|H107244110 -107244110:lI109|N -10721BAD0:lH10721F060|N -10721F060:lI109|H107222530 -107222530:lI101|H1072256D8 -1072256D8:lI103|H107228530 -107228530:lI97|H10722AF78 -10722AF78:lI99|H10722D690 -10722D690:lI111|H10722FB28 -10722FB28:lI95|H107231CC0 -107231CC0:lI98|H107233B48 -107233B48:lI105|H1072356E0 -1072356E0:lI110|H107237018 -107237018:lI97|H107238710 -107238710:lI114|H107239C08 -107239C08:lI121|H10723AFC0 -10723AFC0:lI95|H10723C0F0 -10723C0F0:lI101|H10723D080 -10723D080:lI110|H10723DE80 -10723DE80:lI99|H10723EAE0 -10723EAE0:lI111|H10723F650 -10723F650:lI100|H107240050 -107240050:lI101|H107240940 -107240940:lI114|H107241120 -107241120:lI95|H107241870 -107241870:lI108|H107241F60 -107241F60:lI105|H1072425E0 -1072425E0:lI98|H107242C20 -107242C20:lI46|H1072431C0 -1072431C0:lI98|H107243710 -107243710:lI101|H107243C30 -107243C30:lI97|H107244120 -107244120:lI109|N -10721BAC0:lH10721F050|N -10721F050:lI109|H107222520 -107222520:lI101|H1072256C8 -1072256C8:lI103|H107228520 -107228520:lI97|H10722AF68 -10722AF68:lI99|H10722D680 -10722D680:lI111|H10722FB18 -10722FB18:lI95|H107231CB0 -107231CB0:lI117|H107233B38 -107233B38:lI100|H1072356D0 -1072356D0:lI112|H107237008 -107237008:lI95|H107238700 -107238700:lI115|H107239BF8 -107239BF8:lI117|H10723AFB0 -10723AFB0:lI112|H10723C0E0 -10723C0E0:lI46|H10723D070 -10723D070:lI98|H10723DE70 -10723DE70:lI101|H10723EAD0 -10723EAD0:lI97|H10723F640 -10723F640:lI109|N -10721BAB0:lH10721F040|N -10721F040:lI109|H107222510 -107222510:lI101|H1072256B8 -1072256B8:lI103|H107228510 -107228510:lI97|H10722AF58 -10722AF58:lI99|H10722D670 -10722D670:lI111|H10722FB08 -10722FB08:lI95|H107231CA0 -107231CA0:lI109|H107233B28 -107233B28:lI111|H1072356C0 -1072356C0:lI110|H107236FF8 -107236FF8:lI105|H1072386F0 -1072386F0:lI116|H107239BE8 -107239BE8:lI111|H10723AFA0 -10723AFA0:lI114|H10723C0D0 -10723C0D0:lI46|H10723D060 -10723D060:lI98|H10723DE60 -10723DE60:lI101|H10723EAC0 -10723EAC0:lI97|H10723F630 -10723F630:lI109|N -107218470:Mn3:H10721BA70,H10721BA80,H10721BA90 -10721BA70:lH10721F000|N -10721F000:lI109|H1072224D0 -1072224D0:lI101|H107225678 -107225678:lI103|H1072284D0 -1072284D0:lI97|H10722AF18 -10722AF18:lI99|H10722D630 -10722D630:lI111|H10722FAC8 -10722FAC8:lI95|H107231C60 -107231C60:lI116|H107233AE8 -107233AE8:lI114|H107235680 -107235680:lI97|H107236FB8 -107236FB8:lI110|H1072386B0 -1072386B0:lI115|H107239BA8 -107239BA8:lI112|H10723AF60 -10723AF60:lI111|H10723C090 -10723C090:lI114|H10723D020 -10723D020:lI116|H10723DE20 -10723DE20:lI46|H10723EA80 -10723EA80:lI98|H10723F5F0 -10723F5F0:lI101|H107240010 -107240010:lI97|H107240900 -107240900:lI109|N -10721BA90:lH10721F020|N -10721F020:lI109|H1072224F0 -1072224F0:lI101|H107225698 -107225698:lI103|H1072284F0 -1072284F0:lI97|H10722AF38 -10722AF38:lI99|H10722D650 -10722D650:lI111|H10722FAE8 -10722FAE8:lI95|H107231C80 -107231C80:lI98|H107233B08 -107233B08:lI101|H1072356A0 -1072356A0:lI114|H107236FD8 -107236FD8:lI95|H1072386D0 -1072386D0:lI109|H107239BC8 -107239BC8:lI101|H10723AF80 -10723AF80:lI100|H10723C0B0 -10723C0B0:lI105|H10723D040 -10723D040:lI97|H10723DE40 -10723DE40:lI95|H10723EAA0 -10723EAA0:lI103|H10723F610 -10723F610:lI97|H107240030 -107240030:lI116|H107240920 -107240920:lI101|H107241100 -107241100:lI119|H107241850 -107241850:lI97|H107241F40 -107241F40:lI121|H1072425C0 -1072425C0:lI95|H107242C00 -107242C00:lI99|H1072431A0 -1072431A0:lI111|H1072436F0 -1072436F0:lI110|H107243C10 -107243C10:lI116|H107244100 -107244100:lI114|H1072445D0 -1072445D0:lI111|H107244A50 -107244A50:lI108|H107244EC0 -107244EC0:lI95|H107245310 -107245310:lI118|H107245730 -107245730:lI50|H107245B00 -107245B00:lI46|H107245EA0 -107245EA0:lI98|H107246230 -107246230:lI101|H1072465C0 -1072465C0:lI97|H107246950 -107246950:lI109|N -10721BA80:lH10721F010|N -10721F010:lI109|H1072224E0 -1072224E0:lI101|H107225688 -107225688:lI103|H1072284E0 -1072284E0:lI97|H10722AF28 -10722AF28:lI99|H10722D640 -10722D640:lI111|H10722FAD8 -10722FAD8:lI95|H107231C70 -107231C70:lI116|H107233AF8 -107233AF8:lI101|H107235690 -107235690:lI120|H107236FC8 -107236FC8:lI116|H1072386C0 -1072386C0:lI95|H107239BB8 -107239BB8:lI112|H10723AF70 -10723AF70:lI97|H10723C0A0 -10723C0A0:lI114|H10723D030 -10723D030:lI115|H10723DE30 -10723DE30:lI101|H10723EA90 -10723EA90:lI114|H10723F600 -10723F600:lI95|H107240020 -107240020:lI118|H107240910 -107240910:lI49|H1072410F0 -1072410F0:lI46|H107241840 -107241840:lI98|H107241F30 -107241F30:lI101|H1072425B0 -1072425B0:lI97|H107242BF0 -107242BF0:lI109|N -107218450:Mn3:H10721BA40,H10721BA50,H10721BA60 -10721BA40:lH10721EFD0|N -10721EFD0:lI109|H1072224A0 -1072224A0:lI101|H107225648 -107225648:lI103|H1072284A0 -1072284A0:lI97|H10722AEE8 -10722AEE8:lI99|H10722D600 -10722D600:lI111|H10722FA98 -10722FA98:lI95|H107231C30 -107231C30:lI115|H107233AB8 -107233AB8:lI117|H107235650 -107235650:lI112|H107236F88 -107236F88:lI46|H107238680 -107238680:lI98|H107239B78 -107239B78:lI101|H10723AF30 -10723AF30:lI97|H10723C060 -10723C060:lI109|N -10721BA60:lH10721EFF0|N -10721EFF0:lI109|H1072224C0 -1072224C0:lI101|H107225668 -107225668:lI103|H1072284C0 -1072284C0:lI97|H10722AF08 -10722AF08:lI99|H10722D620 -10722D620:lI111|H10722FAB8 -10722FAB8:lI95|H107231C50 -107231C50:lI98|H107233AD8 -107233AD8:lI101|H107235670 -107235670:lI114|H107236FA8 -107236FA8:lI95|H1072386A0 -1072386A0:lI101|H107239B98 -107239B98:lI110|H10723AF50 -10723AF50:lI99|H10723C080 -10723C080:lI111|H10723D010 -10723D010:lI100|H10723DE10 -10723DE10:lI101|H10723EA70 -10723EA70:lI114|H10723F5E0 -10723F5E0:lI46|H107240000 -107240000:lI98|H1072408F0 -1072408F0:lI101|H1072410E0 -1072410E0:lI97|H107241830 -107241830:lI109|N -10721BA50:lH10721EFE0|N -10721EFE0:lI109|H1072224B0 -1072224B0:lI101|H107225658 -107225658:lI103|H1072284B0 -1072284B0:lI97|H10722AEF8 -10722AEF8:lI99|H10722D610 -10722D610:lI111|H10722FAA8 -10722FAA8:lI95|H107231C40 -107231C40:lI100|H107233AC8 -107233AC8:lI105|H107235660 -107235660:lI103|H107236F98 -107236F98:lI105|H107238690 -107238690:lI116|H107239B88 -107239B88:lI95|H10723AF40 -10723AF40:lI109|H10723C070 -10723C070:lI97|H10723D000 -10723D000:lI112|H10723DE00 -10723DE00:lI46|H10723EA60 -10723EA60:lI98|H10723F5D0 -10723F5D0:lI101|H10723FFF0 -10723FFF0:lI97|H1072408E0 -1072408E0:lI109|N -107218420:Mn5:H10721B9F0,H10721BA00,H10721BA10,H10721BA20,H10721BA30 -10721B9F0:lH10721EF80|N -10721EF80:lI109|H107222450 -107222450:lI101|H1072255F8 -1072255F8:lI103|H107228450 -107228450:lI97|H10722AE98 -10722AE98:lI99|H10722D5B0 -10722D5B0:lI111|H10722FA48 -10722FA48:lI95|H107231BE0 -107231BE0:lI112|H107233A68 -107233A68:lI101|H107235600 -107235600:lI114|H107236F38 -107236F38:lI95|H107238630 -107238630:lI109|H107239B38 -107239B38:lI101|H10723AEF0 -10723AEF0:lI100|H10723C020 -10723C020:lI105|H10723CFC0 -10723CFC0:lI97|H10723DDC0 -10723DDC0:lI95|H10723EA20 -10723EA20:lI103|H10723F590 -10723F590:lI97|H10723FFB0 -10723FFB0:lI116|H1072408A0 -1072408A0:lI101|H1072410A0 -1072410A0:lI119|H1072417F0 -1072417F0:lI97|H107241EF0 -107241EF0:lI121|H107242570 -107242570:lI95|H107242BB0 -107242BB0:lI99|H107243160 -107243160:lI111|H1072436B0 -1072436B0:lI110|H107243BD0 -107243BD0:lI116|H1072440C0 -1072440C0:lI114|H107244590 -107244590:lI111|H107244A10 -107244A10:lI108|H107244E80 -107244E80:lI95|H1072452D0 -1072452D0:lI118|H107245700 -107245700:lI50|H107245AE0 -107245AE0:lI46|H107245E80 -107245E80:lI98|H107246210 -107246210:lI101|H1072465A0 -1072465A0:lI97|H107246930 -107246930:lI109|N -10721BA30:lH10721EFC0|N -10721EFC0:lI109|H107222490 -107222490:lI101|H107225638 -107225638:lI103|H107228490 -107228490:lI97|H10722AED8 -10722AED8:lI99|H10722D5F0 -10722D5F0:lI111|H10722FA88 -10722FA88:lI46|H107231C20 -107231C20:lI97|H107233AA8 -107233AA8:lI112|H107235640 -107235640:lI112|H107236F78 -107236F78:lI117|H107238670 -107238670:lI112|N -10721BA20:lH10721EFB0|N -10721EFB0:lI109|H107222480 -107222480:lI101|H107225628 -107225628:lI103|H107228480 -107228480:lI97|H10722AEC8 -10722AEC8:lI99|H10722D5E0 -10722D5E0:lI111|H10722FA78 -10722FA78:lI95|H107231C10 -107231C10:lI112|H107233A98 -107233A98:lI101|H107235630 -107235630:lI114|H107236F68 -107236F68:lI95|H107238660 -107238660:lI109|H107239B68 -107239B68:lI101|H10723AF20 -10723AF20:lI100|H10723C050 -10723C050:lI105|H10723CFF0 -10723CFF0:lI97|H10723DDF0 -10723DDF0:lI95|H10723EA50 -10723EA50:lI103|H10723F5C0 -10723F5C0:lI97|H10723FFE0 -10723FFE0:lI116|H1072408D0 -1072408D0:lI101|H1072410D0 -1072410D0:lI119|H107241820 -107241820:lI97|H107241F20 -107241F20:lI121|H1072425A0 -1072425A0:lI95|H107242BE0 -107242BE0:lI99|H107243190 -107243190:lI111|H1072436E0 -1072436E0:lI110|H107243C00 -107243C00:lI116|H1072440F0 -1072440F0:lI114|H1072445C0 -1072445C0:lI111|H107244A40 -107244A40:lI108|H107244EB0 -107244EB0:lI95|H107245300 -107245300:lI118|H107245720 -107245720:lI51|H107245AF0 -107245AF0:lI46|H107245E90 -107245E90:lI98|H107246220 -107246220:lI101|H1072465B0 -1072465B0:lI97|H107246940 -107246940:lI109|N -10721BA10:lH10721EFA0|N -10721EFA0:lI109|H107222470 -107222470:lI101|H107225618 -107225618:lI103|H107228470 -107228470:lI97|H10722AEB8 -10722AEB8:lI99|H10722D5D0 -10722D5D0:lI111|H10722FA68 -10722FA68:lI95|H107231C00 -107231C00:lI112|H107233A88 -107233A88:lI114|H107235620 -107235620:lI101|H107236F58 -107236F58:lI116|H107238650 -107238650:lI116|H107239B58 -107239B58:lI121|H10723AF10 -10723AF10:lI95|H10723C040 -10723C040:lI116|H10723CFE0 -10723CFE0:lI101|H10723DDE0 -10723DDE0:lI120|H10723EA40 -10723EA40:lI116|H10723F5B0 -10723F5B0:lI95|H10723FFD0 -10723FFD0:lI101|H1072408C0 -1072408C0:lI110|H1072410C0 -1072410C0:lI99|H107241810 -107241810:lI111|H107241F10 -107241F10:lI100|H107242590 -107242590:lI101|H107242BD0 -107242BD0:lI114|H107243180 -107243180:lI95|H1072436D0 -1072436D0:lI118|H107243BF0 -107243BF0:lI51|H1072440E0 -1072440E0:lI46|H1072445B0 -1072445B0:lI98|H107244A30 -107244A30:lI101|H107244EA0 -107244EA0:lI97|H1072452F0 -1072452F0:lI109|N -10721BA00:lH10721EF90|N -10721EF90:lI109|H107222460 -107222460:lI101|H107225608 -107225608:lI103|H107228460 -107228460:lI97|H10722AEA8 -10722AEA8:lI99|H10722D5C0 -10722D5C0:lI111|H10722FA58 -10722FA58:lI95|H107231BF0 -107231BF0:lI98|H107233A78 -107233A78:lI105|H107235610 -107235610:lI110|H107236F48 -107236F48:lI97|H107238640 -107238640:lI114|H107239B48 -107239B48:lI121|H10723AF00 -10723AF00:lI95|H10723C030 -10723C030:lI110|H10723CFD0 -10723CFD0:lI97|H10723DDD0 -10723DDD0:lI109|H10723EA30 -10723EA30:lI101|H10723F5A0 -10723F5A0:lI95|H10723FFC0 -10723FFC0:lI114|H1072408B0 -1072408B0:lI101|H1072410B0 -1072410B0:lI115|H107241800 -107241800:lI111|H107241F00 -107241F00:lI108|H107242580 -107242580:lI118|H107242BC0 -107242BC0:lI101|H107243170 -107243170:lI114|H1072436C0 -1072436C0:lI95|H107243BE0 -107243BE0:lI118|H1072440D0 -1072440D0:lI49|H1072445A0 -1072445A0:lI46|H107244A20 -107244A20:lI98|H107244E90 -107244E90:lI101|H1072452E0 -1072452E0:lI97|H107245710 -107245710:lI109|N -1072183E8:Mn6:H10721B980,H10721B990,H10721B9A0,H10721B9B0,H10721B9D0,H10721B9E0 -10721B980:lH10721EF00|N -10721EF00:lI109|H1072223D0 -1072223D0:lI101|H107225578 -107225578:lI103|H1072283D0 -1072283D0:lI97|H10722AE18 -10722AE18:lI99|H10722D530 -10722D530:lI111|H10722F9C8 -10722F9C8:lI95|H107231B60 -107231B60:lI98|H1072339E8 -1072339E8:lI105|H107235580 -107235580:lI110|H107236EB8 -107236EB8:lI97|H1072385B0 -1072385B0:lI114|H107239AC8 -107239AC8:lI121|H10723AE80 -10723AE80:lI95|H10723BFB0 -10723BFB0:lI116|H10723CF60 -10723CF60:lI114|H10723DD60 -10723DD60:lI97|H10723E9C0 -10723E9C0:lI110|H10723F530 -10723F530:lI115|H10723FF50 -10723FF50:lI102|H107240840 -107240840:lI111|H107241040 -107241040:lI114|H107241790 -107241790:lI109|H107241E90 -107241E90:lI101|H107242520 -107242520:lI114|H107242B60 -107242B60:lI95|H107243110 -107243110:lI118|H107243670 -107243670:lI49|H107243B90 -107243B90:lI46|H107244080 -107244080:lI98|H107244560 -107244560:lI101|H1072449F0 -1072449F0:lI97|H107244E60 -107244E60:lI109|N -10721B9E0:lH10721EF70|N -10721EF70:lI109|H107222440 -107222440:lI101|H1072255E8 -1072255E8:lI103|H107228440 -107228440:lI97|H10722AE88 -10722AE88:lI99|H10722D5A0 -10722D5A0:lI111|H10722FA38 -10722FA38:lI95|H107231BD0 -107231BD0:lI102|H107233A58 -107233A58:lI108|H1072355F0 -1072355F0:lI101|H107236F28 -107236F28:lI120|H107238620 -107238620:lI95|H107239B28 -107239B28:lI115|H10723AEE0 -10723AEE0:lI99|H10723C010 -10723C010:lI97|H10723CFB0 -10723CFB0:lI110|H10723DDB0 -10723DDB0:lI110|H10723EA10 -10723EA10:lI101|H10723F580 -10723F580:lI114|H10723FFA0 -10723FFA0:lI46|H107240890 -107240890:lI98|H107241090 -107241090:lI101|H1072417E0 -1072417E0:lI97|H107241EE0 -107241EE0:lI109|N -10721B9D0:lH10721EF60|N -10721EF60:lI109|H107222430 -107222430:lI101|H1072255D8 -1072255D8:lI103|H107228430 -107228430:lI97|H10722AE78 -10722AE78:lI99|H10722D590 -10722D590:lI111|H10722FA28 -10722FA28:lI95|H107231BC0 -107231BC0:lI115|H107233A48 -107233A48:lI100|H1072355E0 -1072355E0:lI112|H107236F18 -107236F18:lI46|H107238610 -107238610:lI98|H107239B18 -107239B18:lI101|H10723AED0 -10723AED0:lI97|H10723C000 -10723C000:lI109|N -10721B9B0:Mn3:H10721EF30,H10721EF40,H10721EF50 -10721EF30:lH107222400|N -107222400:lI109|H1072255A8 -1072255A8:lI101|H107228400 -107228400:lI103|H10722AE48 -10722AE48:lI97|H10722D560 -10722D560:lI99|H10722F9F8 -10722F9F8:lI111|H107231B90 -107231B90:lI46|H107233A18 -107233A18:lI98|H1072355B0 -1072355B0:lI101|H107236EE8 -107236EE8:lI97|H1072385E0 -1072385E0:lI109|N -10721EF50:lH107222420|N -107222420:lI109|H1072255C8 -1072255C8:lI101|H107228420 -107228420:lI103|H10722AE68 -10722AE68:lI97|H10722D580 -10722D580:lI99|H10722FA18 -10722FA18:lI111|H107231BB0 -107231BB0:lI95|H107233A38 -107233A38:lI116|H1072355D0 -1072355D0:lI101|H107236F08 -107236F08:lI120|H107238600 -107238600:lI116|H107239B08 -107239B08:lI95|H10723AEC0 -10723AEC0:lI109|H10723BFF0 -10723BFF0:lI105|H10723CFA0 -10723CFA0:lI110|H10723DDA0 -10723DDA0:lI105|H10723EA00 -10723EA00:lI95|H10723F570 -10723F570:lI100|H10723FF90 -10723FF90:lI101|H107240880 -107240880:lI99|H107241080 -107241080:lI111|H1072417D0 -1072417D0:lI100|H107241ED0 -107241ED0:lI101|H107242560 -107242560:lI114|H107242BA0 -107242BA0:lI46|H107243150 -107243150:lI98|H1072436A0 -1072436A0:lI101|H107243BC0 -107243BC0:lI97|H1072440B0 -1072440B0:lI109|N -10721EF40:lH107222410|N -107222410:lI109|H1072255B8 -1072255B8:lI101|H107228410 -107228410:lI103|H10722AE58 -10722AE58:lI97|H10722D570 -10722D570:lI99|H10722FA08 -10722FA08:lI111|H107231BA0 -107231BA0:lI95|H107233A28 -107233A28:lI116|H1072355C0 -1072355C0:lI99|H107236EF8 -107236EF8:lI112|H1072385F0 -1072385F0:lI95|H107239AF8 -107239AF8:lI97|H10723AEB0 -10723AEB0:lI99|H10723BFE0 -10723BFE0:lI99|H10723CF90 -10723CF90:lI101|H10723DD90 -10723DD90:lI112|H10723E9F0 -10723E9F0:lI116|H10723F560 -10723F560:lI95|H10723FF80 -10723FF80:lI115|H107240870 -107240870:lI117|H107241070 -107241070:lI112|H1072417C0 -1072417C0:lI46|H107241EC0 -107241EC0:lI98|H107242550 -107242550:lI101|H107242B90 -107242B90:lI97|H107243140 -107243140:lI109|N -10721B9A0:lH10721EF20|N -10721EF20:lI109|H1072223F0 -1072223F0:lI101|H107225598 -107225598:lI103|H1072283F0 -1072283F0:lI97|H10722AE38 -10722AE38:lI99|H10722D550 -10722D550:lI111|H10722F9E8 -10722F9E8:lI95|H107231B80 -107231B80:lI98|H107233A08 -107233A08:lI105|H1072355A0 -1072355A0:lI110|H107236ED8 -107236ED8:lI97|H1072385D0 -1072385D0:lI114|H107239AE8 -107239AE8:lI121|H10723AEA0 -10723AEA0:lI95|H10723BFD0 -10723BFD0:lI110|H10723CF80 -10723CF80:lI97|H10723DD80 -10723DD80:lI109|H10723E9E0 -10723E9E0:lI101|H10723F550 -10723F550:lI95|H10723FF70 -10723FF70:lI114|H107240860 -107240860:lI101|H107241060 -107241060:lI115|H1072417B0 -1072417B0:lI111|H107241EB0 -107241EB0:lI108|H107242540 -107242540:lI118|H107242B80 -107242B80:lI101|H107243130 -107243130:lI114|H107243690 -107243690:lI95|H107243BB0 -107243BB0:lI118|H1072440A0 -1072440A0:lI51|H107244580 -107244580:lI46|H107244A00 -107244A00:lI98|H107244E70 -107244E70:lI101|H1072452C0 -1072452C0:lI97|H1072456F0 -1072456F0:lI109|N -10721B990:lH10721EF10|N -10721EF10:lI109|H1072223E0 -1072223E0:lI101|H107225588 -107225588:lI103|H1072283E0 -1072283E0:lI97|H10722AE28 -10722AE28:lI99|H10722D540 -10722D540:lI111|H10722F9D8 -10722F9D8:lI95|H107231B70 -107231B70:lI101|H1072339F8 -1072339F8:lI114|H107235590 -107235590:lI108|H107236EC8 -107236EC8:lI95|H1072385C0 -1072385C0:lI100|H107239AD8 -107239AD8:lI105|H10723AE90 -10723AE90:lI115|H10723BFC0 -10723BFC0:lI116|H10723CF70 -10723CF70:lI95|H10723DD70 -10723DD70:lI101|H10723E9D0 -10723E9D0:lI110|H10723F540 -10723F540:lI99|H10723FF60 -10723FF60:lI111|H107240850 -107240850:lI100|H107241050 -107241050:lI101|H1072417A0 -1072417A0:lI114|H107241EA0 -107241EA0:lI95|H107242530 -107242530:lI109|H107242B70 -107242B70:lI99|H107243120 -107243120:lI46|H107243680 -107243680:lI98|H107243BA0 -107243BA0:lI101|H107244090 -107244090:lI97|H107244570 -107244570:lI109|N -1072183D0:Mn2:H10721B958,H10721B970 -10721B958:Mn2:H10721EED0,H10721EEE0 -10721EED0:lH1072223A0|N -1072223A0:lI109|H107225548 -107225548:lI101|H1072283A0 -1072283A0:lI103|H10722ADE8 -10722ADE8:lI97|H10722D500 -10722D500:lI99|H10722F998 -10722F998:lI111|H107231B30 -107231B30:lI95|H1072339B8 -1072339B8:lI99|H107235550 -107235550:lI111|H107236E88 -107236E88:lI109|H107238580 -107238580:lI112|H107239A98 -107239A98:lI97|H10723AE50 -10723AE50:lI99|H10723BF80 -10723BF80:lI116|H10723CF30 -10723CF30:lI95|H10723DD30 -10723DD30:lI116|H10723E990 -10723E990:lI101|H10723F500 -10723F500:lI120|H10723FF20 -10723FF20:lI116|H107240810 -107240810:lI95|H107241010 -107241010:lI101|H107241760 -107241760:lI110|H107241E60 -107241E60:lI99|H107242510 -107242510:lI111|H107242B50 -107242B50:lI100|H107243100 -107243100:lI101|H107243660 -107243660:lI114|H107243B80 -107243B80:lI95|H107244070 -107244070:lI118|H107244550 -107244550:lI50|H1072449E0 -1072449E0:lI46|H107244E50 -107244E50:lI98|H1072452B0 -1072452B0:lI101|H1072456E0 -1072456E0:lI97|H107245AD0 -107245AD0:lI109|N -10721EEE0:lH1072223B0|N -1072223B0:lI109|H107225558 -107225558:lI101|H1072283B0 -1072283B0:lI103|H10722ADF8 -10722ADF8:lI97|H10722D510 -10722D510:lI99|H10722F9A8 -10722F9A8:lI111|H107231B40 -107231B40:lI95|H1072339C8 -1072339C8:lI112|H107235560 -107235560:lI101|H107236E98 -107236E98:lI114|H107238590 -107238590:lI95|H107239AA8 -107239AA8:lI101|H10723AE60 -10723AE60:lI110|H10723BF90 -10723BF90:lI99|H10723CF40 -10723CF40:lI111|H10723DD40 -10723DD40:lI100|H10723E9A0 -10723E9A0:lI101|H10723F510 -10723F510:lI114|H10723FF30 -10723FF30:lI46|H107240820 -107240820:lI98|H107241020 -107241020:lI101|H107241770 -107241770:lI97|H107241E70 -107241E70:lI109|N -10721B970:lH10721EEF0|N -10721EEF0:lI109|H1072223C0 -1072223C0:lI101|H107225568 -107225568:lI103|H1072283C0 -1072283C0:lI97|H10722AE08 -10722AE08:lI99|H10722D520 -10722D520:lI111|H10722F9B8 -10722F9B8:lI95|H107231B50 -107231B50:lI117|H1072339D8 -1072339D8:lI115|H107235570 -107235570:lI101|H107236EA8 -107236EA8:lI114|H1072385A0 -1072385A0:lI95|H107239AB8 -107239AB8:lI100|H10723AE70 -10723AE70:lI101|H10723BFA0 -10723BFA0:lI102|H10723CF50 -10723CF50:lI97|H10723DD50 -10723DD50:lI117|H10723E9B0 -10723E9B0:lI108|H10723F520 -10723F520:lI116|H10723FF40 -10723FF40:lI46|H107240830 -107240830:lI98|H107241030 -107241030:lI101|H107241780 -107241780:lI97|H107241E80 -107241E80:lI109|N -107218398:Mn6:H10721B8E8,H10721B8F8,H10721B910,H10721B928,H10721B938,H10721B948 -10721B8E8:lH10721EE50|N -10721EE50:lI109|H107222320 -107222320:lI101|H1072254C8 -1072254C8:lI103|H107228320 -107228320:lI97|H10722AD68 -10722AD68:lI99|H10722D480 -10722D480:lI111|H10722F918 -10722F918:lI95|H107231AB0 -107231AB0:lI112|H107233938 -107233938:lI114|H1072354D0 -1072354D0:lI101|H107236E08 -107236E08:lI116|H107238500 -107238500:lI116|H107239A18 -107239A18:lI121|H10723ADD0 -10723ADD0:lI95|H10723BF00 -10723BF00:lI116|H10723CEB0 -10723CEB0:lI101|H10723DCB0 -10723DCB0:lI120|H10723E920 -10723E920:lI116|H10723F490 -10723F490:lI95|H10723FEB0 -10723FEB0:lI101|H1072407A0 -1072407A0:lI110|H107240FA0 -107240FA0:lI99|H1072416F0 -1072416F0:lI111|H107241E00 -107241E00:lI100|H1072424B0 -1072424B0:lI101|H107242AF0 -107242AF0:lI114|H1072430B0 -1072430B0:lI95|H107243620 -107243620:lI118|H107243B40 -107243B40:lI49|H107244030 -107244030:lI46|H107244510 -107244510:lI98|H1072449B0 -1072449B0:lI101|H107244E20 -107244E20:lI97|H107245280 -107245280:lI109|N -10721B948:lH10721EEC0|N -10721EEC0:lI109|H107222390 -107222390:lI101|H107225538 -107225538:lI103|H107228390 -107228390:lI97|H10722ADD8 -10722ADD8:lI99|H10722D4F0 -10722D4F0:lI111|H10722F988 -10722F988:lI95|H107231B20 -107231B20:lI98|H1072339A8 -1072339A8:lI105|H107235540 -107235540:lI110|H107236E78 -107236E78:lI97|H107238570 -107238570:lI114|H107239A88 -107239A88:lI121|H10723AE40 -10723AE40:lI95|H10723BF70 -10723BF70:lI116|H10723CF20 -10723CF20:lI101|H10723DD20 -10723DD20:lI114|H10723E980 -10723E980:lI109|H10723F4F0 -10723F4F0:lI95|H10723FF10 -10723FF10:lI105|H107240800 -107240800:lI100|H107241000 -107241000:lI46|H107241750 -107241750:lI98|H107241E50 -107241E50:lI101|H107242500 -107242500:lI97|H107242B40 -107242B40:lI109|N -10721B938:lH10721EEB0|N -10721EEB0:lI109|H107222380 -107222380:lI101|H107225528 -107225528:lI103|H107228380 -107228380:lI97|H10722ADC8 -10722ADC8:lI99|H10722D4E0 -10722D4E0:lI111|H10722F978 -10722F978:lI95|H107231B10 -107231B10:lI115|H107233998 -107233998:lI116|H107235530 -107235530:lI97|H107236E68 -107236E68:lI116|H107238560 -107238560:lI115|H107239A78 -107239A78:lI46|H10723AE30 -10723AE30:lI98|H10723BF60 -10723BF60:lI101|H10723CF10 -10723CF10:lI97|H10723DD10 -10723DD10:lI109|N -10721B928:lH10721EEA0|N -10721EEA0:lI109|H107222370 -107222370:lI101|H107225518 -107225518:lI103|H107228370 -107228370:lI97|H10722ADB8 -10722ADB8:lI99|H10722D4D0 -10722D4D0:lI111|H10722F968 -10722F968:lI95|H107231B00 -107231B00:lI99|H107233988 -107233988:lI111|H107235520 -107235520:lI109|H107236E58 -107236E58:lI112|H107238550 -107238550:lI97|H107239A68 -107239A68:lI99|H10723AE20 -10723AE20:lI116|H10723BF50 -10723BF50:lI95|H10723CF00 -10723CF00:lI116|H10723DD00 -10723DD00:lI101|H10723E970 -10723E970:lI120|H10723F4E0 -10723F4E0:lI116|H10723FF00 -10723FF00:lI95|H1072407F0 -1072407F0:lI101|H107240FF0 -107240FF0:lI110|H107241740 -107241740:lI99|H107241E40 -107241E40:lI111|H1072424F0 -1072424F0:lI100|H107242B30 -107242B30:lI101|H1072430F0 -1072430F0:lI114|H107243650 -107243650:lI95|H107243B70 -107243B70:lI118|H107244060 -107244060:lI51|H107244540 -107244540:lI46|H1072449D0 -1072449D0:lI98|H107244E40 -107244E40:lI101|H1072452A0 -1072452A0:lI97|H1072456D0 -1072456D0:lI109|N -10721B910:Mn2:H10721EE80,H10721EE90 -10721EE80:lH107222350|N -107222350:lI109|H1072254F8 -1072254F8:lI101|H107228350 -107228350:lI103|H10722AD98 -10722AD98:lI97|H10722D4B0 -10722D4B0:lI99|H10722F948 -10722F948:lI111|H107231AE0 -107231AE0:lI95|H107233968 -107233968:lI98|H107235500 -107235500:lI101|H107236E38 -107236E38:lI114|H107238530 -107238530:lI95|H107239A48 -107239A48:lI109|H10723AE00 -10723AE00:lI101|H10723BF30 -10723BF30:lI100|H10723CEE0 -10723CEE0:lI105|H10723DCE0 -10723DCE0:lI97|H10723E950 -10723E950:lI95|H10723F4C0 -10723F4C0:lI103|H10723FEE0 -10723FEE0:lI97|H1072407D0 -1072407D0:lI116|H107240FD0 -107240FD0:lI101|H107241720 -107241720:lI119|H107241E30 -107241E30:lI97|H1072424E0 -1072424E0:lI121|H107242B20 -107242B20:lI95|H1072430E0 -1072430E0:lI99|H107243640 -107243640:lI111|H107243B60 -107243B60:lI110|H107244050 -107244050:lI116|H107244530 -107244530:lI114|H1072449C0 -1072449C0:lI111|H107244E30 -107244E30:lI108|H107245290 -107245290:lI95|H1072456C0 -1072456C0:lI118|H107245AC0 -107245AC0:lI51|H107245E70 -107245E70:lI46|H107246200 -107246200:lI98|H107246590 -107246590:lI101|H107246920 -107246920:lI97|H107246C90 -107246C90:lI109|N -10721EE90:lH107222360|N -107222360:lI109|H107225508 -107225508:lI101|H107228360 -107228360:lI103|H10722ADA8 -10722ADA8:lI97|H10722D4C0 -10722D4C0:lI99|H10722F958 -10722F958:lI111|H107231AF0 -107231AF0:lI95|H107233978 -107233978:lI116|H107235510 -107235510:lI99|H107236E48 -107236E48:lI112|H107238540 -107238540:lI95|H107239A58 -107239A58:lI97|H10723AE10 -10723AE10:lI99|H10723BF40 -10723BF40:lI99|H10723CEF0 -10723CEF0:lI101|H10723DCF0 -10723DCF0:lI112|H10723E960 -10723E960:lI116|H10723F4D0 -10723F4D0:lI46|H10723FEF0 -10723FEF0:lI98|H1072407E0 -1072407E0:lI101|H107240FE0 -107240FE0:lI97|H107241730 -107241730:lI109|N -10721B8F8:Mn2:H10721EE60,H10721EE70 -10721EE60:lH107222330|N -107222330:lI109|H1072254D8 -1072254D8:lI101|H107228330 -107228330:lI103|H10722AD78 -10722AD78:lI97|H10722D490 -10722D490:lI99|H10722F928 -10722F928:lI111|H107231AC0 -107231AC0:lI95|H107233948 -107233948:lI116|H1072354E0 -1072354E0:lI101|H107236E18 -107236E18:lI120|H107238510 -107238510:lI116|H107239A28 -107239A28:lI95|H10723ADE0 -10723ADE0:lI112|H10723BF10 -10723BF10:lI97|H10723CEC0 -10723CEC0:lI114|H10723DCC0 -10723DCC0:lI115|H10723E930 -10723E930:lI101|H10723F4A0 -10723F4A0:lI114|H10723FEC0 -10723FEC0:lI95|H1072407B0 -1072407B0:lI118|H107240FB0 -107240FB0:lI50|H107241700 -107241700:lI46|H107241E10 -107241E10:lI98|H1072424C0 -1072424C0:lI101|H107242B00 -107242B00:lI97|H1072430C0 -1072430C0:lI109|N -10721EE70:lH107222340|N -107222340:lI109|H1072254E8 -1072254E8:lI101|H107228340 -107228340:lI103|H10722AD88 -10722AD88:lI97|H10722D4A0 -10722D4A0:lI99|H10722F938 -10722F938:lI111|H107231AD0 -107231AD0:lI95|H107233958 -107233958:lI98|H1072354F0 -1072354F0:lI105|H107236E28 -107236E28:lI110|H107238520 -107238520:lI97|H107239A38 -107239A38:lI114|H10723ADF0 -10723ADF0:lI121|H10723BF20 -10723BF20:lI95|H10723CED0 -10723CED0:lI116|H10723DCD0 -10723DCD0:lI101|H10723E940 -10723E940:lI114|H10723F4B0 -10723F4B0:lI109|H10723FED0 -10723FED0:lI95|H1072407C0 -1072407C0:lI105|H107240FC0 -107240FC0:lI100|H107241710 -107241710:lI95|H107241E20 -107241E20:lI103|H1072424D0 -1072424D0:lI101|H107242B10 -107242B10:lI110|H1072430D0 -1072430D0:lI46|H107243630 -107243630:lI98|H107243B50 -107243B50:lI101|H107244040 -107244040:lI97|H107244520 -107244520:lI109|N -107218378:Mn3:H10721B8B8,H10721B8C8,H10721B8D8 -10721B8B8:lH10721EE18|N -10721EE18:lI109|H1072222E0 -1072222E0:lI101|H107225488 -107225488:lI103|H1072282E0 -1072282E0:lI97|H10722AD28 -10722AD28:lI99|H10722D440 -10722D440:lI111|H10722F8D8 -10722F8D8:lI95|H107231A70 -107231A70:lI101|H1072338F8 -1072338F8:lI110|H107235490 -107235490:lI99|H107236DC8 -107236DC8:lI111|H1072384C0 -1072384C0:lI100|H1072399D8 -1072399D8:lI101|H10723AD90 -10723AD90:lI114|H10723BEC0 -10723BEC0:lI46|H10723CE70 -10723CE70:lI98|H10723DC70 -10723DC70:lI101|H10723E8E0 -10723E8E0:lI97|H10723F460 -10723F460:lI109|N -10721B8D8:Mn1:H10721EE38 -10721EE38:Mn2:H107222300,H107222310 -107222300:lH1072254A8|N -1072254A8:lI109|H107228300 -107228300:lI101|H10722AD48 -10722AD48:lI103|H10722D460 -10722D460:lI97|H10722F8F8 -10722F8F8:lI99|H107231A90 -107231A90:lI111|H107233918 -107233918:lI95|H1072354B0 -1072354B0:lI116|H107236DE8 -107236DE8:lI99|H1072384E0 -1072384E0:lI112|H1072399F8 -1072399F8:lI95|H10723ADB0 -10723ADB0:lI115|H10723BEE0 -10723BEE0:lI117|H10723CE90 -10723CE90:lI112|H10723DC90 -10723DC90:lI46|H10723E900 -10723E900:lI98|H10723F470 -10723F470:lI101|H10723FE90 -10723FE90:lI97|H107240780 -107240780:lI109|N -107222310:lH1072254B8|N -1072254B8:lI109|H107228310 -107228310:lI101|H10722AD58 -10722AD58:lI103|H10722D470 -10722D470:lI97|H10722F908 -10722F908:lI99|H107231AA0 -107231AA0:lI111|H107233928 -107233928:lI95|H1072354C0 -1072354C0:lI116|H107236DF8 -107236DF8:lI101|H1072384F0 -1072384F0:lI120|H107239A08 -107239A08:lI116|H10723ADC0 -10723ADC0:lI95|H10723BEF0 -10723BEF0:lI109|H10723CEA0 -10723CEA0:lI105|H10723DCA0 -10723DCA0:lI110|H10723E910 -10723E910:lI105|H10723F480 -10723F480:lI95|H10723FEA0 -10723FEA0:lI112|H107240790 -107240790:lI97|H107240F90 -107240F90:lI114|H1072416E0 -1072416E0:lI115|H107241DF0 -107241DF0:lI101|H1072424A0 -1072424A0:lI114|H107242AE0 -107242AE0:lI46|H1072430A0 -1072430A0:lI98|H107243610 -107243610:lI101|H107243B30 -107243B30:lI97|H107244020 -107244020:lI109|N -10721B8C8:lH10721EE28|N -10721EE28:lI109|H1072222F0 -1072222F0:lI101|H107225498 -107225498:lI103|H1072282F0 -1072282F0:lI97|H10722AD38 -10722AD38:lI99|H10722D450 -10722D450:lI111|H10722F8E8 -10722F8E8:lI95|H107231A80 -107231A80:lI99|H107233908 -107233908:lI111|H1072354A0 -1072354A0:lI110|H107236DD8 -107236DD8:lI102|H1072384D0 -1072384D0:lI105|H1072399E8 -1072399E8:lI103|H10723ADA0 -10723ADA0:lI46|H10723BED0 -10723BED0:lI98|H10723CE80 -10723CE80:lI101|H10723DC80 -10723DC80:lI97|H10723E8F0 -10723E8F0:lI109|N -107218350:Mn4:H10721B870,H10721B888,H10721B898,H10721B8A8 -10721B870:Mn2:H10721EDC0,H10721EDD0 -10721EDC0:lH107222280|N -107222280:lI109|H107225428 -107225428:lI101|H107228280 -107228280:lI103|H10722ACC8 -10722ACC8:lI97|H10722D3E0 -10722D3E0:lI99|H10722F878 -10722F878:lI111|H107231A10 -107231A10:lI95|H107233898 -107233898:lI109|H107235430 -107235430:lI101|H107236D68 -107236D68:lI115|H107238460 -107238460:lI115|H107239978 -107239978:lI101|H10723AD30 -10723AD30:lI110|H10723BE60 -10723BE60:lI103|H10723CE10 -10723CE10:lI101|H10723DC10 -10723DC10:lI114|H10723E880 -10723E880:lI46|H10723F400 -10723F400:lI98|H10723FE30 -10723FE30:lI101|H107240720 -107240720:lI97|H107240F40 -107240F40:lI109|N -10721EDD0:lH107222290|N -107222290:lI109|H107225438 -107225438:lI101|H107228290 -107228290:lI103|H10722ACD8 -10722ACD8:lI97|H10722D3F0 -10722D3F0:lI99|H10722F888 -10722F888:lI111|H107231A20 -107231A20:lI95|H1072338A8 -1072338A8:lI98|H107235440 -107235440:lI105|H107236D78 -107236D78:lI110|H107238470 -107238470:lI97|H107239988 -107239988:lI114|H10723AD40 -10723AD40:lI121|H10723BE70 -10723BE70:lI95|H10723CE20 -10723CE20:lI116|H10723DC20 -10723DC20:lI114|H10723E890 -10723E890:lI97|H10723F410 -10723F410:lI110|H10723FE40 -10723FE40:lI115|H107240730 -107240730:lI102|H107240F50 -107240F50:lI111|H1072416A0 -1072416A0:lI114|H107241DB0 -107241DB0:lI109|H107242460 -107242460:lI101|H107242AB0 -107242AB0:lI114|H107243070 -107243070:lI95|H1072435E0 -1072435E0:lI118|H107243B10 -107243B10:lI50|H107244000 -107244000:lI46|H1072444F0 -1072444F0:lI98|H1072449A0 -1072449A0:lI101|H107244E10 -107244E10:lI97|H107245270 -107245270:lI109|N -10721B8A8:Mn1:H10721EE00 -10721EE00:Mn2:H1072222C0,H1072222D0 -1072222C0:lH107225468|N -107225468:lI109|H1072282C0 -1072282C0:lI101|H10722AD08 -10722AD08:lI103|H10722D420 -10722D420:lI97|H10722F8B8 -10722F8B8:lI99|H107231A50 -107231A50:lI111|H1072338D8 -1072338D8:lI95|H107235470 -107235470:lI98|H107236DA8 -107236DA8:lI105|H1072384A0 -1072384A0:lI110|H1072399B8 -1072399B8:lI97|H10723AD70 -10723AD70:lI114|H10723BEA0 -10723BEA0:lI121|H10723CE50 -10723CE50:lI95|H10723DC50 -10723DC50:lI101|H10723E8C0 -10723E8C0:lI110|H10723F440 -10723F440:lI99|H10723FE70 -10723FE70:lI111|H107240760 -107240760:lI100|H107240F70 -107240F70:lI101|H1072416C0 -1072416C0:lI114|H107241DD0 -107241DD0:lI46|H107242480 -107242480:lI98|H107242AD0 -107242AD0:lI101|H107243090 -107243090:lI97|H107243600 -107243600:lI109|N -1072222D0:lH107225478|N -107225478:lI109|H1072282D0 -1072282D0:lI101|H10722AD18 -10722AD18:lI103|H10722D430 -10722D430:lI97|H10722F8C8 -10722F8C8:lI99|H107231A60 -107231A60:lI111|H1072338E8 -1072338E8:lI95|H107235480 -107235480:lI99|H107236DB8 -107236DB8:lI111|H1072384B0 -1072384B0:lI110|H1072399C8 -1072399C8:lI102|H10723AD80 -10723AD80:lI105|H10723BEB0 -10723BEB0:lI103|H10723CE60 -10723CE60:lI95|H10723DC60 -10723DC60:lI109|H10723E8D0 -10723E8D0:lI105|H10723F450 -10723F450:lI115|H10723FE80 -10723FE80:lI99|H107240770 -107240770:lI46|H107240F80 -107240F80:lI98|H1072416D0 -1072416D0:lI101|H107241DE0 -107241DE0:lI97|H107242490 -107242490:lI109|N -10721B898:lH10721EDF0|N -10721EDF0:lI109|H1072222B0 -1072222B0:lI101|H107225458 -107225458:lI103|H1072282B0 -1072282B0:lI97|H10722ACF8 -10722ACF8:lI99|H10722D410 -10722D410:lI111|H10722F8A8 -10722F8A8:lI95|H107231A40 -107231A40:lI112|H1072338C8 -1072338C8:lI114|H107235460 -107235460:lI101|H107236D98 -107236D98:lI116|H107238490 -107238490:lI116|H1072399A8 -1072399A8:lI121|H10723AD60 -10723AD60:lI95|H10723BE90 -10723BE90:lI116|H10723CE40 -10723CE40:lI101|H10723DC40 -10723DC40:lI120|H10723E8B0 -10723E8B0:lI116|H10723F430 -10723F430:lI95|H10723FE60 -10723FE60:lI101|H107240750 -107240750:lI110|H107240F60 -107240F60:lI99|H1072416B0 -1072416B0:lI111|H107241DC0 -107241DC0:lI100|H107242470 -107242470:lI101|H107242AC0 -107242AC0:lI114|H107243080 -107243080:lI46|H1072435F0 -1072435F0:lI98|H107243B20 -107243B20:lI101|H107244010 -107244010:lI97|H107244500 -107244500:lI109|N -10721B888:lH10721EDE0|N -10721EDE0:lI109|H1072222A0 -1072222A0:lI101|H107225448 -107225448:lI103|H1072282A0 -1072282A0:lI97|H10722ACE8 -10722ACE8:lI99|H10722D400 -10722D400:lI111|H10722F898 -10722F898:lI95|H107231A30 -107231A30:lI116|H1072338B8 -1072338B8:lI114|H107235450 -107235450:lI97|H107236D88 -107236D88:lI110|H107238480 -107238480:lI115|H107239998 -107239998:lI95|H10723AD50 -10723AD50:lI115|H10723BE80 -10723BE80:lI117|H10723CE30 -10723CE30:lI112|H10723DC30 -10723DC30:lI46|H10723E8A0 -10723E8A0:lI98|H10723F420 -10723F420:lI101|H10723FE50 -10723FE50:lI97|H107240740 -107240740:lI109|N -107218320:Mn5:H10721B820,H10721B830,H10721B840,H10721B850,H10721B860 -10721B820:lH10721ED70|N -10721ED70:lI109|H107222230 -107222230:lI101|H1072253D8 -1072253D8:lI103|H107228230 -107228230:lI97|H10722AC78 -10722AC78:lI99|H10722D390 -10722D390:lI111|H10722F828 -10722F828:lI95|H1072319C0 -1072319C0:lI117|H107233848 -107233848:lI100|H1072353E0 -1072353E0:lI112|H107236D18 -107236D18:lI46|H107238410 -107238410:lI98|H107239928 -107239928:lI101|H10723ACE0 -10723ACE0:lI97|H10723BE10 -10723BE10:lI109|N -10721B860:lH10721EDB0|N -10721EDB0:lI109|H107222270 -107222270:lI101|H107225418 -107225418:lI103|H107228270 -107228270:lI97|H10722ACB8 -10722ACB8:lI99|H10722D3D0 -10722D3D0:lI111|H10722F868 -10722F868:lI95|H107231A00 -107231A00:lI98|H107233888 -107233888:lI101|H107235420 -107235420:lI114|H107236D58 -107236D58:lI95|H107238450 -107238450:lI109|H107239968 -107239968:lI101|H10723AD20 -10723AD20:lI100|H10723BE50 -10723BE50:lI105|H10723CE00 -10723CE00:lI97|H10723DC00 -10723DC00:lI95|H10723E870 -10723E870:lI103|H10723F3F0 -10723F3F0:lI97|H10723FE20 -10723FE20:lI116|H107240710 -107240710:lI101|H107240F30 -107240F30:lI119|H107241690 -107241690:lI97|H107241DA0 -107241DA0:lI121|H107242450 -107242450:lI95|H107242AA0 -107242AA0:lI99|H107243060 -107243060:lI111|H1072435D0 -1072435D0:lI110|H107243B00 -107243B00:lI116|H107243FF0 -107243FF0:lI114|H1072444E0 -1072444E0:lI111|H107244990 -107244990:lI108|H107244E00 -107244E00:lI95|H107245260 -107245260:lI118|H1072456B0 -1072456B0:lI49|H107245AB0 -107245AB0:lI46|H107245E60 -107245E60:lI98|H1072461F0 -1072461F0:lI101|H107246580 -107246580:lI97|H107246910 -107246910:lI109|N -10721B850:lH10721EDA0|N -10721EDA0:lI109|H107222260 -107222260:lI101|H107225408 -107225408:lI103|H107228260 -107228260:lI97|H10722ACA8 -10722ACA8:lI99|H10722D3C0 -10722D3C0:lI111|H10722F858 -10722F858:lI95|H1072319F0 -1072319F0:lI116|H107233878 -107233878:lI99|H107235410 -107235410:lI112|H107236D48 -107236D48:lI95|H107238440 -107238440:lI99|H107239958 -107239958:lI111|H10723AD10 -10723AD10:lI110|H10723BE40 -10723BE40:lI110|H10723CDF0 -10723CDF0:lI101|H10723DBF0 -10723DBF0:lI99|H10723E860 -10723E860:lI116|H10723F3E0 -10723F3E0:lI105|H10723FE10 -10723FE10:lI111|H107240700 -107240700:lI110|H107240F20 -107240F20:lI46|H107241680 -107241680:lI98|H107241D90 -107241D90:lI101|H107242440 -107242440:lI97|H107242A90 -107242A90:lI109|N -10721B840:lH10721ED90|N -10721ED90:lI109|H107222250 -107222250:lI101|H1072253F8 -1072253F8:lI103|H107228250 -107228250:lI97|H10722AC98 -10722AC98:lI99|H10722D3B0 -10722D3B0:lI111|H10722F848 -10722F848:lI95|H1072319E0 -1072319E0:lI116|H107233868 -107233868:lI101|H107235400 -107235400:lI120|H107236D38 -107236D38:lI116|H107238430 -107238430:lI95|H107239948 -107239948:lI115|H10723AD00 -10723AD00:lI99|H10723BE30 -10723BE30:lI97|H10723CDE0 -10723CDE0:lI110|H10723DBE0 -10723DBE0:lI110|H10723E850 -10723E850:lI101|H10723F3D0 -10723F3D0:lI114|H10723FE00 -10723FE00:lI46|H1072406F0 -1072406F0:lI98|H107240F10 -107240F10:lI101|H107241670 -107241670:lI97|H107241D80 -107241D80:lI109|N -10721B830:lH10721ED80|N -10721ED80:lI109|H107222240 -107222240:lI101|H1072253E8 -1072253E8:lI103|H107228240 -107228240:lI97|H10722AC88 -10722AC88:lI99|H10722D3A0 -10722D3A0:lI111|H10722F838 -10722F838:lI95|H1072319D0 -1072319D0:lI117|H107233858 -107233858:lI100|H1072353F0 -1072353F0:lI112|H107236D28 -107236D28:lI95|H107238420 -107238420:lI115|H107239938 -107239938:lI101|H10723ACF0 -10723ACF0:lI114|H10723BE20 -10723BE20:lI118|H10723CDD0 -10723CDD0:lI101|H10723DBD0 -10723DBD0:lI114|H10723E840 -10723E840:lI46|H10723F3C0 -10723F3C0:lI98|H10723FDF0 -10723FDF0:lI101|H1072406E0 -1072406E0:lI97|H107240F00 -107240F00:lI109|N -107214EB0:lI47|H1072182F0 -1072182F0:lI111|H10721B7E0 -10721B7E0:lI112|H10721ED30 -10721ED30:lI116|H1072221F0 -1072221F0:lI47|H107225398 -107225398:lI104|H1072281F0 -1072281F0:lI111|H10722AC38 -10722AC38:lI109|H10722D350 -10722D350:lI101|H10722F7E8 -10722F7E8:lI98|H107231980 -107231980:lI114|H107233808 -107233808:lI101|H1072353A0 -1072353A0:lI119|H107236CD8 -107236CD8:lI47|H1072383D0 -1072383D0:lI67|H1072398E8 -1072398E8:lI101|H10723ACA0 -10723ACA0:lI108|H10723BDD0 -10723BDD0:lI108|H10723CD90 -10723CD90:lI97|H10723DB90 -10723DB90:lI114|H10723E810 -10723E810:lI47|H10723F390 -10723F390:lI101|H10723FDC0 -10723FDC0:lI114|H1072406B0 -1072406B0:lI108|H107240ED0 -107240ED0:lI97|H107241640 -107241640:lI110|H107241D50 -107241D50:lI103|H107242410 -107242410:lI47|H107242A60 -107242A60:lI50|H107243040 -107243040:lI54|H1072435B0 -1072435B0:lI46|H107243AE0 -107243AE0:lI48|H107243FD0 -107243FD0:lI46|H1072444C0 -1072444C0:lI50|H107244970 -107244970:lI47|H107244DE0 -107244DE0:lI108|H107245240 -107245240:lI105|H107245690 -107245690:lI98|H107245A90 -107245A90:lI47|H107245E40 -107245E40:lI101|H1072461D0 -1072461D0:lI114|H107246560 -107246560:lI108|H1072468F0 -1072468F0:lI97|H107246C80 -107246C80:lI110|H107246FB0 -107246FB0:lI103|H1072472D0 -1072472D0:lI47|H1072475E0 -1072475E0:lI108|H1072478E0 -1072478E0:lI105|H107247BE0 -107247BE0:lI98|H107247EC0 -107247EC0:lI47|H107248180 -107248180:lI109|H107248440 -107248440:lI101|H1072486F0 -1072486F0:lI103|H1072489A0 -1072489A0:lI97|H107248C20 -107248C20:lI99|H107248E90 -107248E90:lI111|H107249100 -107249100:lI45|H107249360 -107249360:lI52|H1072495C0 -1072495C0:lI46|H107249810 -107249810:lI52|H107249A30 -107249A30:lI46|H107249C30 -107249C30:lI52|H107249E10 -107249E10:lI47|H280052C20 -107211A88:lH107214F48|H107214F60 -107214F48:t2:H107218548,H107218558 -107218558:Mh41:10:H10721BBD8,H10721BBF8,H10721BC20,H10721BC50,H10721BC68,H10721BC78,H10721BCA8,H10721BCD8,H10721BCF8,H10721BD18,H10721BD48,H10721BD88,H10721BDA0,H10721BDC8,H10721BDF8,H10721BE10 -10721BBD8:Mn3:H10721F170,H10721F188,H10721F198 -10721F170:Mn2:H107222640,H107222650 -107222640:lH1072257E8|N -1072257E8:lI105|H107228640 -107228640:lI110|H10722B088 -10722B088:lI101|H10722D7A0 -10722D7A0:lI116|H10722FC38 -10722FC38:lI115|H107231DD0 -107231DD0:lI95|H107233C58 -107233C58:lI115|H1072357F0 -1072357F0:lI101|H107237118 -107237118:lI114|H107238810 -107238810:lI118|H107239D08 -107239D08:lI105|H10723B0C0 -10723B0C0:lI99|H10723C1F0 -10723C1F0:lI101|H10723D170 -10723D170:lI46|H10723DF60 -10723DF60:lI98|H10723EBC0 -10723EBC0:lI101|H10723F720 -10723F720:lI97|H107240120 -107240120:lI109|N -107222650:lH1072257F8|N -1072257F8:lI104|H107228650 -107228650:lI116|H10722B098 -10722B098:lI116|H10722D7B0 -10722D7B0:lI112|H10722FC48 -10722FC48:lI99|H107231DE0 -107231DE0:lI95|H107233C68 -107233C68:lI114|H107235800 -107235800:lI101|H107237128 -107237128:lI115|H107238820 -107238820:lI112|H107239D18 -107239D18:lI111|H10723B0D0 -10723B0D0:lI110|H10723C200 -10723C200:lI115|H10723D180 -10723D180:lI101|H10723DF70 -10723DF70:lI46|H10723EBD0 -10723EBD0:lI98|H10723F730 -10723F730:lI101|H107240130 -107240130:lI97|H107240A00 -107240A00:lI109|N -10721F198:lH107222670|N -107222670:lI104|H107225818 -107225818:lI116|H107228670 -107228670:lI116|H10722B0B8 -10722B0B8:lI112|H10722D7D0 -10722D7D0:lI100|H10722FC68 -10722FC68:lI95|H107231E00 -107231E00:lI114|H107233C88 -107233C88:lI101|H107235820 -107235820:lI115|H107237148 -107237148:lI112|H107238840 -107238840:lI111|H107239D38 -107239D38:lI110|H10723B0F0 -10723B0F0:lI115|H10723C220 -10723C220:lI101|H10723D1A0 -10723D1A0:lI46|H10723DF90 -10723DF90:lI98|H10723EBF0 -10723EBF0:lI101|H10723F750 -10723F750:lI97|H107240150 -107240150:lI109|N -10721F188:lH107222660|N -107222660:lI109|H107225808 -107225808:lI111|H107228660 -107228660:lI100|H10722B0A8 -10722B0A8:lI95|H10722D7C0 -10722D7C0:lI97|H10722FC58 -10722FC58:lI117|H107231DF0 -107231DF0:lI116|H107233C78 -107233C78:lI104|H107235810 -107235810:lI95|H107237138 -107237138:lI115|H107238830 -107238830:lI101|H107239D28 -107239D28:lI114|H10723B0E0 -10723B0E0:lI118|H10723C210 -10723C210:lI101|H10723D190 -10723D190:lI114|H10723DF80 -10723DF80:lI46|H10723EBE0 -10723EBE0:lI98|H10723F740 -10723F740:lI101|H107240140 -107240140:lI97|H107240A10 -107240A10:lI109|N -10721BE10:Mn4:H10721F518,H10721F528,H10721F538,H10721F548 -10721F518:lH107222A10|N -107222A10:lI109|H107225BB8 -107225BB8:lI111|H107228A10 -107228A10:lI100|H10722B458 -10722B458:lI95|H10722DB70 -10722DB70:lI115|H107230008 -107230008:lI101|H1072321A0 -1072321A0:lI99|H107234028 -107234028:lI117|H107235BC0 -107235BC0:lI114|H1072374E8 -1072374E8:lI105|H107238BA0 -107238BA0:lI116|H10723A088 -10723A088:lI121|H10723B400 -10723B400:lI95|H10723C520 -10723C520:lI115|H10723D3F0 -10723D3F0:lI101|H10723E190 -10723E190:lI114|H10723EDD0 -10723EDD0:lI118|H10723F8B0 -10723F8B0:lI101|H107240220 -107240220:lI114|H107240AB0 -107240AB0:lI46|H107241270 -107241270:lI98|H1072419A0 -1072419A0:lI101|H107242070 -107242070:lI97|H1072426E0 -1072426E0:lI109|N -10721F548:lH107222A40|N -107222A40:lI109|H107225BE8 -107225BE8:lI111|H107228A40 -107228A40:lI100|H10722B488 -10722B488:lI95|H10722DBA0 -10722DBA0:lI104|H107230038 -107230038:lI101|H1072321D0 -1072321D0:lI97|H107234058 -107234058:lI100|H107235BF0 -107235BF0:lI46|H107237518 -107237518:lI98|H107238BD0 -107238BD0:lI101|H10723A0B8 -10723A0B8:lI97|H10723B420 -10723B420:lI109|N -10721F538:lH107222A30|N -107222A30:lI109|H107225BD8 -107225BD8:lI111|H107228A30 -107228A30:lI100|H10722B478 -10722B478:lI95|H10722DB90 -10722DB90:lI108|H107230028 -107230028:lI111|H1072321C0 -1072321C0:lI103|H107234048 -107234048:lI46|H107235BE0 -107235BE0:lI98|H107237508 -107237508:lI101|H107238BC0 -107238BC0:lI97|H10723A0A8 -10723A0A8:lI109|N -10721F528:lH107222A20|N -107222A20:lI109|H107225BC8 -107225BC8:lI111|H107228A20 -107228A20:lI100|H10722B468 -10722B468:lI95|H10722DB80 -10722DB80:lI97|H107230018 -107230018:lI117|H1072321B0 -1072321B0:lI116|H107234038 -107234038:lI104|H107235BD0 -107235BD0:lI95|H1072374F8 -1072374F8:lI109|H107238BB0 -107238BB0:lI110|H10723A098 -10723A098:lI101|H10723B410 -10723B410:lI115|H10723C530 -10723C530:lI105|H10723D400 -10723D400:lI97|H10723E1A0 -10723E1A0:lI46|H10723EDE0 -10723EDE0:lI98|H10723F8C0 -10723F8C0:lI101|H107240230 -107240230:lI97|H107240AC0 -107240AC0:lI109|N -10721BDF8:Mn2:H10721F4F0,H10721F508 -10721F4F0:Mn2:H1072229E0,H1072229F0 -1072229E0:lH107225B88|N -107225B88:lI109|H1072289E0 -1072289E0:lI111|H10722B428 -10722B428:lI100|H10722DB40 -10722DB40:lI95|H10722FFD8 -10722FFD8:lI97|H107232170 -107232170:lI99|H107233FF8 -107233FF8:lI116|H107235B90 -107235B90:lI105|H1072374B8 -1072374B8:lI111|H107238B80 -107238B80:lI110|H10723A068 -10723A068:lI115|H10723B3E0 -10723B3E0:lI46|H10723C500 -10723C500:lI98|H10723D3E0 -10723D3E0:lI101|H10723E180 -10723E180:lI97|H10723EDC0 -10723EDC0:lI109|N -1072229F0:lH107225B98|N -107225B98:lI109|H1072289F0 -1072289F0:lI111|H10722B438 -10722B438:lI100|H10722DB50 -10722DB50:lI95|H10722FFE8 -10722FFE8:lI97|H107232180 -107232180:lI117|H107234008 -107234008:lI116|H107235BA0 -107235BA0:lI104|H1072374C8 -1072374C8:lI46|H107238B90 -107238B90:lI98|H10723A078 -10723A078:lI101|H10723B3F0 -10723B3F0:lI97|H10723C510 -10723C510:lI109|N -10721F508:lH107222A00|N -107222A00:lI104|H107225BA8 -107225BA8:lI116|H107228A00 -107228A00:lI116|H10722B448 -10722B448:lI112|H10722DB60 -10722DB60:lI99|H10722FFF8 -10722FFF8:lI46|H107232190 -107232190:lI98|H107234018 -107234018:lI101|H107235BB0 -107235BB0:lI97|H1072374D8 -1072374D8:lI109|N -10721BDC8:Mn5:H10721F4A0,H10721F4B0,H10721F4C0,H10721F4D0,H10721F4E0 -10721F4A0:lH107222990|N -107222990:lI104|H107225B38 -107225B38:lI116|H107228990 -107228990:lI116|H10722B3D8 -10722B3D8:lI112|H10722DAF0 -10722DAF0:lI99|H10722FF88 -10722FF88:lI95|H107232120 -107232120:lI104|H107233FA8 -107233FA8:lI97|H107235B40 -107235B40:lI110|H107237468 -107237468:lI100|H107238B50 -107238B50:lI108|H10723A038 -10723A038:lI101|H10723B3B0 -10723B3B0:lI114|H10723C4D0 -10723C4D0:lI95|H10723D3B0 -10723D3B0:lI115|H10723E150 -10723E150:lI117|H10723ED90 -10723ED90:lI112|H10723F880 -10723F880:lI46|H107240200 -107240200:lI98|H107240AA0 -107240AA0:lI101|H107241260 -107241260:lI97|H107241990 -107241990:lI109|N -10721F4E0:lH1072229D0|N -1072229D0:lI105|H107225B78 -107225B78:lI110|H1072289D0 -1072289D0:lI101|H10722B418 -10722B418:lI116|H10722DB30 -10722DB30:lI115|H10722FFC8 -10722FFC8:lI46|H107232160 -107232160:lI98|H107233FE8 -107233FE8:lI101|H107235B80 -107235B80:lI97|H1072374A8 -1072374A8:lI109|N -10721F4D0:lH1072229C0|N -1072229C0:lI104|H107225B68 -107225B68:lI116|H1072289C0 -1072289C0:lI116|H10722B408 -10722B408:lI112|H10722DB20 -10722DB20:lI100|H10722FFB8 -10722FFB8:lI95|H107232150 -107232150:lI109|H107233FD8 -107233FD8:lI105|H107235B70 -107235B70:lI115|H107237498 -107237498:lI99|H107238B70 -107238B70:lI95|H10723A058 -10723A058:lI115|H10723B3D0 -10723B3D0:lI117|H10723C4F0 -10723C4F0:lI112|H10723D3D0 -10723D3D0:lI46|H10723E170 -10723E170:lI98|H10723EDB0 -10723EDB0:lI101|H10723F8A0 -10723F8A0:lI97|H107240210 -107240210:lI109|N -10721F4C0:lH1072229B0|N -1072229B0:lI104|H107225B58 -107225B58:lI116|H1072289B0 -1072289B0:lI116|H10722B3F8 -10722B3F8:lI112|H10722DB10 -10722DB10:lI100|H10722FFA8 -10722FFA8:lI46|H107232140 -107232140:lI98|H107233FC8 -107233FC8:lI101|H107235B60 -107235B60:lI97|H107237488 -107237488:lI109|N -10721F4B0:lH1072229A0|N -1072229A0:lI104|H107225B48 -107225B48:lI116|H1072289A0 -1072289A0:lI116|H10722B3E8 -10722B3E8:lI112|H10722DB00 -10722DB00:lI100|H10722FF98 -10722FF98:lI95|H107232130 -107232130:lI109|H107233FB8 -107233FB8:lI97|H107235B50 -107235B50:lI110|H107237478 -107237478:lI97|H107238B60 -107238B60:lI103|H10723A048 -10723A048:lI101|H10723B3C0 -10723B3C0:lI114|H10723C4E0 -10723C4E0:lI46|H10723D3C0 -10723D3C0:lI98|H10723E160 -10723E160:lI101|H10723EDA0 -10723EDA0:lI97|H10723F890 -10723F890:lI109|N -10721BDA0:Mn4:H10721F460,H10721F470,H10721F480,H10721F490 -10721F460:lH107222950|N -107222950:lI104|H107225AF8 -107225AF8:lI116|H107228950 -107228950:lI116|H10722B398 -10722B398:lI112|H10722DAB0 -10722DAB0:lI100|H10722FF48 -10722FF48:lI95|H1072320E0 -1072320E0:lI115|H107233F68 -107233F68:lI117|H107235B00 -107235B00:lI112|H107237428 -107237428:lI46|H107238B10 -107238B10:lI98|H107239FF8 -107239FF8:lI101|H10723B380 -10723B380:lI97|H10723C4A0 -10723C4A0:lI109|N -10721F490:lH107222980|N -107222980:lI109|H107225B28 -107225B28:lI111|H107228980 -107228980:lI100|H10722B3C8 -10722B3C8:lI95|H10722DAE0 -10722DAE0:lI103|H10722FF78 -10722FF78:lI101|H107232110 -107232110:lI116|H107233F98 -107233F98:lI46|H107235B30 -107235B30:lI98|H107237458 -107237458:lI101|H107238B40 -107238B40:lI97|H10723A028 -10723A028:lI109|N -10721F480:lH107222970|N -107222970:lI104|H107225B18 -107225B18:lI116|H107228970 -107228970:lI116|H10722B3B8 -10722B3B8:lI112|H10722DAD0 -10722DAD0:lI95|H10722FF68 -10722FF68:lI114|H107232100 -107232100:lI101|H107233F88 -107233F88:lI115|H107235B20 -107235B20:lI112|H107237448 -107237448:lI111|H107238B30 -107238B30:lI110|H10723A018 -10723A018:lI115|H10723B3A0 -10723B3A0:lI101|H10723C4C0 -10723C4C0:lI46|H10723D3A0 -10723D3A0:lI98|H10723E140 -10723E140:lI101|H10723ED80 -10723ED80:lI97|H10723F870 -10723F870:lI109|N -10721F470:lH107222960|N -107222960:lI104|H107225B08 -107225B08:lI116|H107228960 -107228960:lI116|H10722B3A8 -10722B3A8:lI112|H10722DAC0 -10722DAC0:lI100|H10722FF58 -10722FF58:lI95|H1072320F0 -1072320F0:lI108|H107233F78 -107233F78:lI111|H107235B10 -107235B10:lI103|H107237438 -107237438:lI103|H107238B20 -107238B20:lI101|H10723A008 -10723A008:lI114|H10723B390 -10723B390:lI46|H10723C4B0 -10723C4B0:lI98|H10723D390 -10723D390:lI101|H10723E130 -10723E130:lI97|H10723ED70 -10723ED70:lI109|N -10721BD88:Mn2:H10721F440,H10721F450 -10721F440:lH107222930|N -107222930:lI109|H107225AD8 -107225AD8:lI111|H107228930 -107228930:lI100|H10722B378 -10722B378:lI95|H10722DA90 -10722DA90:lI100|H10722FF28 -10722FF28:lI105|H1072320C0 -1072320C0:lI114|H107233F48 -107233F48:lI46|H107235AE0 -107235AE0:lI98|H107237408 -107237408:lI101|H107238AF0 -107238AF0:lI97|H107239FD8 -107239FD8:lI109|N -10721F450:lH107222940|N -107222940:lI104|H107225AE8 -107225AE8:lI116|H107228940 -107228940:lI116|H10722B388 -10722B388:lI112|H10722DAA0 -10722DAA0:lI95|H10722FF38 -10722FF38:lI117|H1072320D0 -1072320D0:lI116|H107233F58 -107233F58:lI105|H107235AF0 -107235AF0:lI108|H107237418 -107237418:lI46|H107238B00 -107238B00:lI98|H107239FE8 -107239FE8:lI101|H10723B370 -10723B370:lI97|H10723C490 -10723C490:lI109|N -10721BD48:Mn7:H10721F3C8,H10721F3D8,H10721F3E8,H10721F3F8,H10721F410,H10721F420,H10721F430 -10721F3C8:lH1072228B0|N -1072228B0:lI104|H107225A58 -107225A58:lI116|H1072288B0 -1072288B0:lI116|H10722B2F8 -10722B2F8:lI112|H10722DA10 -10722DA10:lI100|H10722FEA8 -10722FEA8:lI95|H107232040 -107232040:lI101|H107233EC8 -107233EC8:lI120|H107235A60 -107235A60:lI97|H107237388 -107237388:lI109|H107238A70 -107238A70:lI112|H107239F58 -107239F58:lI108|H10723B2F0 -10723B2F0:lI101|H10723C410 -10723C410:lI46|H10723D330 -10723D330:lI98|H10723E100 -10723E100:lI101|H10723ED40 -10723ED40:lI97|H10723F850 -10723F850:lI109|N -10721F430:lH107222920|N -107222920:lI104|H107225AC8 -107225AC8:lI116|H107228920 -107228920:lI116|H10722B368 -10722B368:lI112|H10722DA80 -10722DA80:lI100|H10722FF18 -10722FF18:lI95|H1072320B0 -1072320B0:lI102|H107233F38 -107233F38:lI105|H107235AD0 -107235AD0:lI108|H1072373F8 -1072373F8:lI101|H107238AE0 -107238AE0:lI46|H107239FC8 -107239FC8:lI98|H10723B360 -10723B360:lI101|H10723C480 -10723C480:lI97|H10723D380 -10723D380:lI109|N -10721F420:lH107222910|N -107222910:lI104|H107225AB8 -107225AB8:lI116|H107228910 -107228910:lI116|H10722B358 -10722B358:lI112|H10722DA70 -10722DA70:lI99|H10722FF08 -10722FF08:lI95|H1072320A0 -1072320A0:lI99|H107233F28 -107233F28:lI111|H107235AC0 -107235AC0:lI111|H1072373E8 -1072373E8:lI107|H107238AD0 -107238AD0:lI105|H107239FB8 -107239FB8:lI101|H10723B350 -10723B350:lI46|H10723C470 -10723C470:lI98|H10723D370 -10723D370:lI101|H10723E120 -10723E120:lI97|H10723ED60 -10723ED60:lI109|N -10721F410:lH107222900|N -107222900:lI104|H107225AA8 -107225AA8:lI116|H107228900 -107228900:lI116|H10722B348 -10722B348:lI112|H10722DA60 -10722DA60:lI99|H10722FEF8 -10722FEF8:lI95|H107232090 -107232090:lI114|H107233F18 -107233F18:lI101|H107235AB0 -107235AB0:lI113|H1072373D8 -1072373D8:lI117|H107238AC0 -107238AC0:lI101|H107239FA8 -107239FA8:lI115|H10723B340 -10723B340:lI116|H10723C460 -10723C460:lI46|H10723D360 -10723D360:lI98|H10723E110 -10723E110:lI101|H10723ED50 -10723ED50:lI97|H10723F860 -10723F860:lI109|N -10721F3F8:Mn2:H1072228E0,H1072228F0 -1072228E0:lH107225A88|N -107225A88:lI104|H1072288E0 -1072288E0:lI116|H10722B328 -10722B328:lI116|H10722DA40 -10722DA40:lI112|H10722FED8 -10722FED8:lI100|H107232070 -107232070:lI95|H107233EF8 -107233EF8:lI99|H107235A90 -107235A90:lI103|H1072373B8 -1072373B8:lI105|H107238AA0 -107238AA0:lI46|H107239F88 -107239F88:lI98|H10723B320 -10723B320:lI101|H10723C440 -10723C440:lI97|H10723D340 -10723D340:lI109|N -1072228F0:lH107225A98|N -107225A98:lI109|H1072288F0 -1072288F0:lI111|H10722B338 -10722B338:lI100|H10722DA50 -10722DA50:lI95|H10722FEE8 -10722FEE8:lI97|H107232080 -107232080:lI108|H107233F08 -107233F08:lI105|H107235AA0 -107235AA0:lI97|H1072373C8 -1072373C8:lI115|H107238AB0 -107238AB0:lI46|H107239F98 -107239F98:lI98|H10723B330 -10723B330:lI101|H10723C450 -10723C450:lI97|H10723D350 -10723D350:lI109|N -10721F3E8:lH1072228D0|N -1072228D0:lI105|H107225A78 -107225A78:lI110|H1072288D0 -1072288D0:lI101|H10722B318 -10722B318:lI116|H10722DA30 -10722DA30:lI115|H10722FEC8 -10722FEC8:lI95|H107232060 -107232060:lI97|H107233EE8 -107233EE8:lI112|H107235A80 -107235A80:lI112|H1072373A8 -1072373A8:lI46|H107238A90 -107238A90:lI98|H107239F78 -107239F78:lI101|H10723B310 -10723B310:lI97|H10723C430 -10723C430:lI109|N -10721F3D8:lH1072228C0|N -1072228C0:lI109|H107225A68 -107225A68:lI111|H1072288C0 -1072288C0:lI100|H10722B308 -10722B308:lI95|H10722DA20 -10722DA20:lI114|H10722FEB8 -10722FEB8:lI97|H107232050 -107232050:lI110|H107233ED8 -107233ED8:lI103|H107235A70 -107235A70:lI101|H107237398 -107237398:lI46|H107238A80 -107238A80:lI98|H107239F68 -107239F68:lI101|H10723B300 -10723B300:lI97|H10723C420 -10723C420:lI109|N -10721BD18:Mn5:H10721F378,H10721F388,H10721F398,H10721F3A8,H10721F3B8 -10721F378:lH107222860|N -107222860:lI104|H107225A08 -107225A08:lI116|H107228860 -107228860:lI116|H10722B2A8 -10722B2A8:lI112|H10722D9C0 -10722D9C0:lI99|H10722FE58 -10722FE58:lI95|H107231FF0 -107231FF0:lI109|H107233E78 -107233E78:lI97|H107235A10 -107235A10:lI110|H107237338 -107237338:lI97|H107238A20 -107238A20:lI103|H107239F08 -107239F08:lI101|H10723B2A0 -10723B2A0:lI114|H10723C3C0 -10723C3C0:lI46|H10723D2E0 -10723D2E0:lI98|H10723E0C0 -10723E0C0:lI101|H10723ED00 -10723ED00:lI97|H10723F820 -10723F820:lI109|N -10721F3B8:lH1072228A0|N -1072228A0:lI109|H107225A48 -107225A48:lI111|H1072288A0 -1072288A0:lI100|H10722B2E8 -10722B2E8:lI95|H10722DA00 -10722DA00:lI115|H10722FE98 -10722FE98:lI101|H107232030 -107232030:lI99|H107233EB8 -107233EB8:lI117|H107235A50 -107235A50:lI114|H107237378 -107237378:lI105|H107238A60 -107238A60:lI116|H107239F48 -107239F48:lI121|H10723B2E0 -10723B2E0:lI46|H10723C400 -10723C400:lI98|H10723D320 -10723D320:lI101|H10723E0F0 -10723E0F0:lI97|H10723ED30 -10723ED30:lI109|N -10721F3A8:lH107222890|N -107222890:lI104|H107225A38 -107225A38:lI116|H107228890 -107228890:lI116|H10722B2D8 -10722B2D8:lI112|H10722D9F0 -10722D9F0:lI100|H10722FE88 -10722FE88:lI95|H107232020 -107232020:lI99|H107233EA8 -107233EA8:lI111|H107235A40 -107235A40:lI110|H107237368 -107237368:lI102|H107238A50 -107238A50:lI46|H107239F38 -107239F38:lI98|H10723B2D0 -10723B2D0:lI101|H10723C3F0 -10723C3F0:lI97|H10723D310 -10723D310:lI109|N -10721F398:lH107222880|N -107222880:lI104|H107225A28 -107225A28:lI116|H107228880 -107228880:lI116|H10722B2C8 -10722B2C8:lI112|H10722D9E0 -10722D9E0:lI95|H10722FE78 -10722FE78:lI116|H107232010 -107232010:lI114|H107233E98 -107233E98:lI97|H107235A30 -107235A30:lI110|H107237358 -107237358:lI115|H107238A40 -107238A40:lI112|H107239F28 -107239F28:lI111|H10723B2C0 -10723B2C0:lI114|H10723C3E0 -10723C3E0:lI116|H10723D300 -10723D300:lI46|H10723E0E0 -10723E0E0:lI98|H10723ED20 -10723ED20:lI101|H10723F840 -10723F840:lI97|H1072401F0 -1072401F0:lI109|N -10721F388:lH107222870|N -107222870:lI104|H107225A18 -107225A18:lI116|H107228870 -107228870:lI116|H10722B2B8 -10722B2B8:lI112|H10722D9D0 -10722D9D0:lI100|H10722FE68 -10722FE68:lI95|H107232000 -107232000:lI114|H107233E88 -107233E88:lI101|H107235A20 -107235A20:lI113|H107237348 -107237348:lI117|H107238A30 -107238A30:lI101|H107239F18 -107239F18:lI115|H10723B2B0 -10723B2B0:lI116|H10723C3D0 -10723C3D0:lI95|H10723D2F0 -10723D2F0:lI104|H10723E0D0 -10723E0D0:lI97|H10723ED10 -10723ED10:lI110|H10723F830 -10723F830:lI100|H1072401E0 -1072401E0:lI108|H107240A90 -107240A90:lI101|H107241250 -107241250:lI114|H107241980 -107241980:lI46|H107242060 -107242060:lI98|H1072426D0 -1072426D0:lI101|H107242CE0 -107242CE0:lI97|H107243250 -107243250:lI109|N -10721BCF8:Mn3:H10721F348,H10721F358,H10721F368 -10721F348:lH107222830|N -107222830:lI104|H1072259D8 -1072259D8:lI116|H107228830 -107228830:lI116|H10722B278 -10722B278:lI112|H10722D990 -10722D990:lI95|H10722FE28 -10722FE28:lI117|H107231FC0 -107231FC0:lI114|H107233E48 -107233E48:lI105|H1072359E0 -1072359E0:lI46|H107237308 -107237308:lI98|H1072389F0 -1072389F0:lI101|H107239ED8 -107239ED8:lI97|H10723B270 -10723B270:lI109|N -10721F368:lH107222850|N -107222850:lI104|H1072259F8 -1072259F8:lI116|H107228850 -107228850:lI116|H10722B298 -10722B298:lI112|H10722D9B0 -10722D9B0:lI99|H10722FE48 -10722FE48:lI95|H107231FE0 -107231FE0:lI112|H107233E68 -107233E68:lI114|H107235A00 -107235A00:lI111|H107237328 -107237328:lI102|H107238A10 -107238A10:lI105|H107239EF8 -107239EF8:lI108|H10723B290 -10723B290:lI101|H10723C3B0 -10723C3B0:lI95|H10723D2D0 -10723D2D0:lI115|H10723E0B0 -10723E0B0:lI117|H10723ECF0 -10723ECF0:lI112|H10723F810 -10723F810:lI46|H1072401D0 -1072401D0:lI98|H107240A80 -107240A80:lI101|H107241240 -107241240:lI97|H107241970 -107241970:lI109|N -10721F358:lH107222840|N -107222840:lI104|H1072259E8 -1072259E8:lI116|H107228840 -107228840:lI116|H10722B288 -10722B288:lI112|H10722D9A0 -10722D9A0:lI100|H10722FE38 -10722FE38:lI95|H107231FD0 -107231FD0:lI115|H107233E58 -107233E58:lI99|H1072359F0 -1072359F0:lI114|H107237318 -107237318:lI105|H107238A00 -107238A00:lI112|H107239EE8 -107239EE8:lI116|H10723B280 -10723B280:lI95|H10723C3A0 -10723C3A0:lI101|H10723D2C0 -10723D2C0:lI110|H10723E0A0 -10723E0A0:lI118|H10723ECE0 -10723ECE0:lI46|H10723F800 -10723F800:lI98|H1072401C0 -1072401C0:lI101|H107240A70 -107240A70:lI97|H107241230 -107241230:lI109|N -10721BCD8:Mn3:H10721F318,H10721F328,H10721F338 -10721F318:lH107222800|N -107222800:lI105|H1072259A8 -1072259A8:lI110|H107228800 -107228800:lI101|H10722B248 -10722B248:lI116|H10722D960 -10722D960:lI115|H10722FDF8 -10722FDF8:lI46|H107231F90 -107231F90:lI97|H107233E18 -107233E18:lI112|H1072359B0 -1072359B0:lI112|H1072372D8 -1072372D8:lI117|H1072389C0 -1072389C0:lI112|N -10721F338:lH107222820|N -107222820:lI104|H1072259C8 -1072259C8:lI116|H107228820 -107228820:lI116|H10722B268 -10722B268:lI112|H10722D980 -10722D980:lI100|H10722FE18 -10722FE18:lI95|H107231FB0 -107231FB0:lI117|H107233E38 -107233E38:lI116|H1072359D0 -1072359D0:lI105|H1072372F8 -1072372F8:lI108|H1072389E0 -1072389E0:lI46|H107239EC8 -107239EC8:lI98|H10723B260 -10723B260:lI101|H10723C390 -10723C390:lI97|H10723D2B0 -10723D2B0:lI109|N -10721F328:lH107222810|N -107222810:lI104|H1072259B8 -1072259B8:lI116|H107228810 -107228810:lI116|H10722B258 -10722B258:lI112|H10722D970 -10722D970:lI99|H10722FE08 -10722FE08:lI95|H107231FA0 -107231FA0:lI104|H107233E28 -107233E28:lI97|H1072359C0 -1072359C0:lI110|H1072372E8 -1072372E8:lI100|H1072389D0 -1072389D0:lI108|H107239EB8 -107239EB8:lI101|H10723B250 -10723B250:lI114|H10723C380 -10723C380:lI46|H10723D2A0 -10723D2A0:lI98|H10723E090 -10723E090:lI101|H10723ECD0 -10723ECD0:lI97|H10723F7F0 -10723F7F0:lI109|N -10721BCA8:Mn5:H10721F2C0,H10721F2D0,H10721F2E8,H10721F2F8,H10721F308 -10721F2C0:lH1072227A0|N -1072227A0:lI104|H107225948 -107225948:lI116|H1072287A0 -1072287A0:lI116|H10722B1E8 -10722B1E8:lI112|H10722D900 -10722D900:lI100|H10722FD98 -10722FD98:lI95|H107231F30 -107231F30:lI108|H107233DB8 -107233DB8:lI111|H107235950 -107235950:lI103|H107237278 -107237278:lI46|H107238970 -107238970:lI98|H107239E68 -107239E68:lI101|H10723B220 -10723B220:lI97|H10723C350 -10723C350:lI109|N -10721F308:lH1072227F0|N -1072227F0:lI109|H107225998 -107225998:lI111|H1072287F0 -1072287F0:lI100|H10722B238 -10722B238:lI95|H10722D950 -10722D950:lI99|H10722FDE8 -10722FDE8:lI103|H107231F80 -107231F80:lI105|H107233E08 -107233E08:lI46|H1072359A0 -1072359A0:lI98|H1072372C8 -1072372C8:lI101|H1072389B0 -1072389B0:lI97|H107239EA8 -107239EA8:lI109|N -10721F2F8:lH1072227E0|N -1072227E0:lI109|H107225988 -107225988:lI111|H1072287E0 -1072287E0:lI100|H10722B228 -10722B228:lI95|H10722D940 -10722D940:lI101|H10722FDD8 -10722FDD8:lI115|H107231F70 -107231F70:lI105|H107233DF8 -107233DF8:lI46|H107235990 -107235990:lI98|H1072372B8 -1072372B8:lI101|H1072389A0 -1072389A0:lI97|H107239E98 -107239E98:lI109|N -10721F2E8:lH1072227D0|N -1072227D0:lI105|H107225978 -107225978:lI110|H1072287D0 -1072287D0:lI101|H10722B218 -10722B218:lI116|H10722D930 -10722D930:lI115|H10722FDC8 -10722FDC8:lI95|H107231F60 -107231F60:lI116|H107233DE8 -107233DE8:lI114|H107235980 -107235980:lI97|H1072372A8 -1072372A8:lI99|H107238990 -107238990:lI101|H107239E88 -107239E88:lI46|H10723B240 -10723B240:lI98|H10723C370 -10723C370:lI101|H10723D290 -10723D290:lI97|H10723E080 -10723E080:lI109|N -10721F2D0:Mn2:H1072227B0,H1072227C0 -1072227B0:lH107225958|N -107225958:lI105|H1072287B0 -1072287B0:lI110|H10722B1F8 -10722B1F8:lI101|H10722D910 -10722D910:lI116|H10722FDA8 -10722FDA8:lI115|H107231F40 -107231F40:lI46|H107233DC8 -107233DC8:lI97|H107235960 -107235960:lI112|H107237288 -107237288:lI112|N -1072227C0:lH107225968|N -107225968:lI104|H1072287C0 -1072287C0:lI116|H10722B208 -10722B208:lI116|H10722D920 -10722D920:lI112|H10722FDB8 -10722FDB8:lI100|H107231F50 -107231F50:lI95|H107233DD8 -107233DD8:lI97|H107235970 -107235970:lI99|H107237298 -107237298:lI99|H107238980 -107238980:lI101|H107239E78 -107239E78:lI112|H10723B230 -10723B230:lI116|H10723C360 -10723C360:lI111|H10723D280 -10723D280:lI114|H10723E070 -10723E070:lI95|H10723ECC0 -10723ECC0:lI115|H10723F7E0 -10723F7E0:lI117|H1072401B0 -1072401B0:lI112|H107240A60 -107240A60:lI46|H107241220 -107241220:lI98|H107241960 -107241960:lI101|H107242050 -107242050:lI97|H1072426C0 -1072426C0:lI109|N -10721BC78:Mn5:H10721F270,H10721F280,H10721F290,H10721F2A0,H10721F2B0 -10721F270:lH107222750|N -107222750:lI109|H1072258F8 -1072258F8:lI111|H107228750 -107228750:lI100|H10722B198 -10722B198:lI95|H10722D8B0 -10722D8B0:lI114|H10722FD48 -10722FD48:lI101|H107231EE0 -107231EE0:lI115|H107233D68 -107233D68:lI112|H107235900 -107235900:lI111|H107237228 -107237228:lI110|H107238920 -107238920:lI115|H107239E18 -107239E18:lI101|H10723B1D0 -10723B1D0:lI99|H10723C300 -10723C300:lI111|H10723D240 -10723D240:lI110|H10723E030 -10723E030:lI116|H10723EC80 -10723EC80:lI114|H10723F7C0 -10723F7C0:lI111|H1072401A0 -1072401A0:lI108|H107240A50 -107240A50:lI46|H107241210 -107241210:lI98|H107241950 -107241950:lI101|H107242040 -107242040:lI97|H1072426B0 -1072426B0:lI109|N -10721F2B0:lH107222790|N -107222790:lI104|H107225938 -107225938:lI116|H107228790 -107228790:lI116|H10722B1D8 -10722B1D8:lI112|H10722D8F0 -10722D8F0:lI100|H10722FD88 -10722FD88:lI95|H107231F20 -107231F20:lI99|H107233DA8 -107233DA8:lI117|H107235940 -107235940:lI115|H107237268 -107237268:lI116|H107238960 -107238960:lI111|H107239E58 -107239E58:lI109|H10723B210 -10723B210:lI46|H10723C340 -10723C340:lI98|H10723D270 -10723D270:lI101|H10723E060 -10723E060:lI97|H10723ECB0 -10723ECB0:lI109|N -10721F2A0:lH107222780|N -107222780:lI104|H107225928 -107225928:lI116|H107228780 -107228780:lI116|H10722B1C8 -10722B1C8:lI112|H10722D8E0 -10722D8E0:lI100|H10722FD78 -10722FD78:lI95|H107231F10 -107231F10:lI114|H107233D98 -107233D98:lI101|H107235930 -107235930:lI113|H107237258 -107237258:lI117|H107238950 -107238950:lI101|H107239E48 -107239E48:lI115|H10723B200 -10723B200:lI116|H10723C330 -10723C330:lI46|H10723D260 -10723D260:lI98|H10723E050 -10723E050:lI101|H10723ECA0 -10723ECA0:lI97|H10723F7D0 -10723F7D0:lI109|N -10721F290:lH107222770|N -107222770:lI104|H107225918 -107225918:lI116|H107228770 -107228770:lI116|H10722B1B8 -10722B1B8:lI112|H10722D8D0 -10722D8D0:lI100|H10722FD68 -10722FD68:lI95|H107231F00 -107231F00:lI101|H107233D88 -107233D88:lI115|H107235920 -107235920:lI105|H107237248 -107237248:lI46|H107238940 -107238940:lI98|H107239E38 -107239E38:lI101|H10723B1F0 -10723B1F0:lI97|H10723C320 -10723C320:lI109|N -10721F280:lH107222760|N -107222760:lI109|H107225908 -107225908:lI111|H107228760 -107228760:lI100|H10722B1A8 -10722B1A8:lI95|H10722D8C0 -10722D8C0:lI100|H10722FD58 -10722FD58:lI105|H107231EF0 -107231EF0:lI115|H107233D78 -107233D78:lI107|H107235910 -107235910:lI95|H107237238 -107237238:lI108|H107238930 -107238930:lI111|H107239E28 -107239E28:lI103|H10723B1E0 -10723B1E0:lI46|H10723C310 -10723C310:lI98|H10723D250 -10723D250:lI101|H10723E040 -10723E040:lI97|H10723EC90 -10723EC90:lI109|N -10721BC68:lH10721F260|N -10721F260:lI109|H107222740 -107222740:lI111|H1072258E8 -1072258E8:lI100|H107228740 -107228740:lI95|H10722B188 -10722B188:lI97|H10722D8A0 -10722D8A0:lI117|H10722FD38 -10722FD38:lI116|H107231ED0 -107231ED0:lI104|H107233D58 -107233D58:lI95|H1072358F0 -1072358F0:lI112|H107237218 -107237218:lI108|H107238910 -107238910:lI97|H107239E08 -107239E08:lI105|H10723B1C0 -10723B1C0:lI110|H10723C2F0 -10723C2F0:lI46|H10723D230 -10723D230:lI98|H10723E020 -10723E020:lI101|H10723EC70 -10723EC70:lI97|H10723F7B0 -10723F7B0:lI109|N -10721BC50:Mn2:H10721F240,H10721F250 -10721F240:lH107222720|N -107222720:lI109|H1072258C8 -1072258C8:lI111|H107228720 -107228720:lI100|H10722B168 -10722B168:lI95|H10722D880 -10722D880:lI97|H10722FD18 -10722FD18:lI117|H107231EB0 -107231EB0:lI116|H107233D38 -107233D38:lI104|H1072358D0 -1072358D0:lI95|H1072371F8 -1072371F8:lI100|H1072388F0 -1072388F0:lI101|H107239DE8 -107239DE8:lI116|H10723B1A0 -10723B1A0:lI115|H10723C2D0 -10723C2D0:lI46|H10723D220 -10723D220:lI98|H10723E010 -10723E010:lI101|H10723EC60 -10723EC60:lI97|H10723F7A0 -10723F7A0:lI109|N -10721F250:lH107222730|N -107222730:lI109|H1072258D8 -1072258D8:lI111|H107228730 -107228730:lI100|H10722B178 -10722B178:lI95|H10722D890 -10722D890:lI116|H10722FD28 -10722FD28:lI114|H107231EC0 -107231EC0:lI97|H107233D48 -107233D48:lI99|H1072358E0 -1072358E0:lI101|H107237208 -107237208:lI46|H107238900 -107238900:lI98|H107239DF8 -107239DF8:lI101|H10723B1B0 -10723B1B0:lI97|H10723C2E0 -10723C2E0:lI109|N -10721BC20:Mn5:H10721F1E8,H10721F1F8,H10721F208,H10721F218,H10721F230 -10721F1E8:lH1072226C0|N -1072226C0:lI104|H107225868 -107225868:lI116|H1072286C0 -1072286C0:lI116|H10722B108 -10722B108:lI112|H10722D820 -10722D820:lI100|H10722FCB8 -10722FCB8:lI95|H107231E50 -107231E50:lI99|H107233CD8 -107233CD8:lI117|H107235870 -107235870:lI115|H107237198 -107237198:lI116|H107238890 -107238890:lI111|H107239D88 -107239D88:lI109|H10723B140 -10723B140:lI95|H10723C270 -10723C270:lI97|H10723D1D0 -10723D1D0:lI112|H10723DFC0 -10723DFC0:lI105|H10723EC20 -10723EC20:lI46|H10723F770 -10723F770:lI98|H107240170 -107240170:lI101|H107240A20 -107240A20:lI97|H1072411E0 -1072411E0:lI109|N -10721F230:lH107222710|N -107222710:lI104|H1072258B8 -1072258B8:lI116|H107228710 -107228710:lI116|H10722B158 -10722B158:lI112|H10722D870 -10722D870:lI95|H10722FD08 -10722FD08:lI114|H107231EA0 -107231EA0:lI101|H107233D28 -107233D28:lI113|H1072358C0 -1072358C0:lI117|H1072371E8 -1072371E8:lI101|H1072388E0 -1072388E0:lI115|H107239DD8 -107239DD8:lI116|H10723B190 -10723B190:lI46|H10723C2C0 -10723C2C0:lI98|H10723D210 -10723D210:lI101|H10723E000 -10723E000:lI97|H10723EC50 -10723EC50:lI109|N -10721F218:Mn2:H1072226F0,H107222700 -1072226F0:lH107225898|N -107225898:lI104|H1072286F0 -1072286F0:lI116|H10722B138 -10722B138:lI116|H10722D850 -10722D850:lI112|H10722FCE8 -10722FCE8:lI100|H107231E80 -107231E80:lI95|H107233D08 -107233D08:lI105|H1072358A0 -1072358A0:lI110|H1072371C8 -1072371C8:lI115|H1072388C0 -1072388C0:lI116|H107239DB8 -107239DB8:lI97|H10723B170 -10723B170:lI110|H10723C2A0 -10723C2A0:lI99|H10723D1F0 -10723D1F0:lI101|H10723DFE0 -10723DFE0:lI95|H10723EC40 -10723EC40:lI115|H10723F790 -10723F790:lI117|H107240190 -107240190:lI112|H107240A40 -107240A40:lI46|H107241200 -107241200:lI98|H107241940 -107241940:lI101|H107242030 -107242030:lI97|H1072426A0 -1072426A0:lI109|N -107222700:lH1072258A8|N -1072258A8:lI104|H107228700 -107228700:lI116|H10722B148 -10722B148:lI116|H10722D860 -10722D860:lI112|H10722FCF8 -10722FCF8:lI95|H107231E90 -107231E90:lI99|H107233D18 -107233D18:lI104|H1072358B0 -1072358B0:lI117|H1072371D8 -1072371D8:lI110|H1072388D0 -1072388D0:lI107|H107239DC8 -107239DC8:lI46|H10723B180 -10723B180:lI98|H10723C2B0 -10723C2B0:lI101|H10723D200 -10723D200:lI97|H10723DFF0 -10723DFF0:lI109|N -10721F208:lH1072226E0|N -1072226E0:lI105|H107225888 -107225888:lI110|H1072286E0 -1072286E0:lI101|H10722B128 -10722B128:lI116|H10722D840 -10722D840:lI115|H10722FCD8 -10722FCD8:lI95|H107231E70 -107231E70:lI115|H107233CF8 -107233CF8:lI117|H107235890 -107235890:lI112|H1072371B8 -1072371B8:lI46|H1072388B0 -1072388B0:lI98|H107239DA8 -107239DA8:lI101|H10723B160 -10723B160:lI97|H10723C290 -10723C290:lI109|N -10721F1F8:lH1072226D0|N -1072226D0:lI104|H107225878 -107225878:lI116|H1072286D0 -1072286D0:lI116|H10722B118 -10722B118:lI112|H10722D830 -10722D830:lI100|H10722FCC8 -10722FCC8:lI95|H107231E60 -107231E60:lI99|H107233CE8 -107233CE8:lI111|H107235880 -107235880:lI110|H1072371A8 -1072371A8:lI110|H1072388A0 -1072388A0:lI101|H107239D98 -107239D98:lI99|H10723B150 -10723B150:lI116|H10723C280 -10723C280:lI105|H10723D1E0 -10723D1E0:lI111|H10723DFD0 -10723DFD0:lI110|H10723EC30 -10723EC30:lI95|H10723F780 -10723F780:lI115|H107240180 -107240180:lI117|H107240A30 -107240A30:lI112|H1072411F0 -1072411F0:lI46|H107241930 -107241930:lI98|H107242020 -107242020:lI101|H107242690 -107242690:lI97|H107242CD0 -107242CD0:lI109|N -10721BBF8:Mn4:H10721F1A8,H10721F1B8,H10721F1C8,H10721F1D8 -10721F1A8:lH107222680|N -107222680:lI104|H107225828 -107225828:lI116|H107228680 -107228680:lI116|H10722B0C8 -10722B0C8:lI112|H10722D7E0 -10722D7E0:lI100|H10722FC78 -10722FC78:lI95|H107231E10 -107231E10:lI97|H107233C98 -107233C98:lI99|H107235830 -107235830:lI99|H107237158 -107237158:lI101|H107238850 -107238850:lI112|H107239D48 -107239D48:lI116|H10723B100 -10723B100:lI111|H10723C230 -10723C230:lI114|H10723D1B0 -10723D1B0:lI46|H10723DFA0 -10723DFA0:lI98|H10723EC00 -10723EC00:lI101|H10723F760 -10723F760:lI97|H107240160 -107240160:lI109|N -10721F1D8:lH1072226B0|N -1072226B0:lI105|H107225858 -107225858:lI110|H1072286B0 -1072286B0:lI101|H10722B0F8 -10722B0F8:lI116|H10722D810 -10722D810:lI115|H10722FCA8 -10722FCA8:lI95|H107231E40 -107231E40:lI108|H107233CC8 -107233CC8:lI105|H107235860 -107235860:lI98|H107237188 -107237188:lI46|H107238880 -107238880:lI98|H107239D78 -107239D78:lI101|H10723B130 -10723B130:lI97|H10723C260 -10723C260:lI109|N -10721F1C8:lH1072226A0|N -1072226A0:lI104|H107225848 -107225848:lI116|H1072286A0 -1072286A0:lI116|H10722B0E8 -10722B0E8:lI112|H10722D800 -10722D800:lI100|H10722FC98 -10722FC98:lI95|H107231E30 -107231E30:lI115|H107233CB8 -107233CB8:lI111|H107235850 -107235850:lI99|H107237178 -107237178:lI107|H107238870 -107238870:lI101|H107239D68 -107239D68:lI116|H10723B120 -10723B120:lI46|H10723C250 -10723C250:lI98|H10723D1C0 -10723D1C0:lI101|H10723DFB0 -10723DFB0:lI97|H10723EC10 -10723EC10:lI109|N -10721F1B8:lH107222690|N -107222690:lI104|H107225838 -107225838:lI116|H107228690 -107228690:lI116|H10722B0D8 -10722B0D8:lI112|H10722D7F0 -10722D7F0:lI99|H10722FC88 -10722FC88:lI95|H107231E20 -107231E20:lI115|H107233CA8 -107233CA8:lI117|H107235840 -107235840:lI112|H107237168 -107237168:lI46|H107238860 -107238860:lI98|H107239D58 -107239D58:lI101|H10723B110 -10723B110:lI97|H10723C240 -10723C240:lI109|N -107218548:lI47|H10721BBC8 -10721BBC8:lI111|H10721F160 -10721F160:lI112|H107222630 -107222630:lI116|H1072257D8 -1072257D8:lI47|H107228630 -107228630:lI104|H10722B078 -10722B078:lI111|H10722D790 -10722D790:lI109|H10722FC28 -10722FC28:lI101|H107231DC0 -107231DC0:lI98|H107233C48 -107233C48:lI114|H1072357E0 -1072357E0:lI101|H107237108 -107237108:lI119|H107238800 -107238800:lI47|H107239CF8 -107239CF8:lI67|H10723B0B0 -10723B0B0:lI101|H10723C1E0 -10723C1E0:lI108|H10723D160 -10723D160:lI108|H10723DF50 -10723DF50:lI97|H10723EBB0 -10723EBB0:lI114|H10723F710 -10723F710:lI47|H107240110 -107240110:lI101|H1072409F0 -1072409F0:lI114|H1072411D0 -1072411D0:lI108|H107241920 -107241920:lI97|H107242010 -107242010:lI110|H107242680 -107242680:lI103|H107242CC0 -107242CC0:lI47|H107243240 -107243240:lI50|H107243790 -107243790:lI54|H107243CA0 -107243CA0:lI46|H107244190 -107244190:lI48|H107244640 -107244640:lI46|H107244AB0 -107244AB0:lI50|H107244F10 -107244F10:lI47|H107245360 -107245360:lI108|H107245760 -107245760:lI105|H107245B20 -107245B20:lI98|H107245EB0 -107245EB0:lI47|H107246240 -107246240:lI101|H1072465D0 -1072465D0:lI114|H107246960 -107246960:lI108|H107246CA0 -107246CA0:lI97|H107246FC0 -107246FC0:lI110|H1072472E0 -1072472E0:lI103|H1072475F0 -1072475F0:lI47|H1072478F0 -1072478F0:lI108|H107247BF0 -107247BF0:lI105|H107247ED0 -107247ED0:lI98|H107248190 -107248190:lI47|H107248450 -107248450:lI105|H107248700 -107248700:lI110|H1072489B0 -1072489B0:lI101|H107248C30 -107248C30:lI116|H107248EA0 -107248EA0:lI115|H107249110 -107249110:lI45|H107249370 -107249370:lI57|H1072495D0 -1072495D0:lI46|H107249820 -107249820:lI48|H107249A40 -107249A40:lI46|H107249C40 -107249C40:lI49|H107249E20 -107249E20:lI47|H280052C20 -107214F60:lH1072185E8|H107218600 -1072185E8:t2:H10721BE38,A5:cache -10721BE38:lI47|H10721F558 -10721F558:lI111|H107222A50 -107222A50:lI112|H107225BF8 -107225BF8:lI116|H107228A50 -107228A50:lI47|H10722B498 -10722B498:lI104|H10722DBB0 -10722DBB0:lI111|H107230048 -107230048:lI109|H1072321E0 -1072321E0:lI101|H107234068 -107234068:lI98|H107235C00 -107235C00:lI114|H107237528 -107237528:lI101|H107238BE0 -107238BE0:lI119|H10723A0C8 -10723A0C8:lI47|H10723B430 -10723B430:lI67|H10723C540 -10723C540:lI101|H10723D410 -10723D410:lI108|H10723E1B0 -10723E1B0:lI108|H10723EDF0 -10723EDF0:lI97|H10723F8D0 -10723F8D0:lI114|H107240240 -107240240:lI47|H107240AD0 -107240AD0:lI101|H107241280 -107241280:lI114|H1072419B0 -1072419B0:lI108|H107242080 -107242080:lI97|H1072426F0 -1072426F0:lI110|H107242CF0 -107242CF0:lI103|H107243260 -107243260:lI47|H1072437A0 -1072437A0:lI50|H107243CB0 -107243CB0:lI54|H1072441A0 -1072441A0:lI46|H107244650 -107244650:lI48|H107244AC0 -107244AC0:lI46|H107244F20 -107244F20:lI50|H107245370 -107245370:lI47|H107245770 -107245770:lI108|H107245B30 -107245B30:lI105|H107245EC0 -107245EC0:lI98|H107246250 -107246250:lI47|H1072465E0 -1072465E0:lI101|H107246970 -107246970:lI114|H107246CB0 -107246CB0:lI108|H107246FD0 -107246FD0:lI97|H1072472F0 -1072472F0:lI110|H107247600 -107247600:lI103|H107247900 -107247900:lI47|H107247C00 -107247C00:lI108|H107247EE0 -107247EE0:lI105|H1072481A0 -1072481A0:lI98|H107248460 -107248460:lI47|H107248710 -107248710:lI102|H1072489C0 -1072489C0:lI116|H107248C40 -107248C40:lI112|H107248EB0 -107248EB0:lI45|H107249120 -107249120:lI49|H107249380 -107249380:lI46|H1072495E0 -1072495E0:lI50|H107249830 -107249830:lI47|H280052C20 -107218600:lH10721BE48|H10721BE60 -10721BE48:t2:H10721F568,A5:cache -10721F568:lI47|H107222A60 -107222A60:lI111|H107225C08 -107225C08:lI112|H107228A60 -107228A60:lI116|H10722B4A8 -10722B4A8:lI47|H10722DBC0 -10722DBC0:lI104|H107230058 -107230058:lI111|H1072321F0 -1072321F0:lI109|H107234078 -107234078:lI101|H107235C10 -107235C10:lI98|H107237538 -107237538:lI114|H107238BF0 -107238BF0:lI101|H10723A0D8 -10723A0D8:lI119|H10723B440 -10723B440:lI47|H10723C550 -10723C550:lI67|H10723D420 -10723D420:lI101|H10723E1C0 -10723E1C0:lI108|H10723EE00 -10723EE00:lI108|H10723F8E0 -10723F8E0:lI97|H107240250 -107240250:lI114|H107240AE0 -107240AE0:lI47|H107241290 -107241290:lI101|H1072419C0 -1072419C0:lI114|H107242090 -107242090:lI108|H107242700 -107242700:lI97|H107242D00 -107242D00:lI110|H107243270 -107243270:lI103|H1072437B0 -1072437B0:lI47|H107243CC0 -107243CC0:lI50|H1072441B0 -1072441B0:lI54|H107244660 -107244660:lI46|H107244AD0 -107244AD0:lI48|H107244F30 -107244F30:lI46|H107245380 -107245380:lI50|H107245780 -107245780:lI47|H107245B40 -107245B40:lI108|H107245ED0 -107245ED0:lI105|H107246260 -107246260:lI98|H1072465F0 -1072465F0:lI47|H107246980 -107246980:lI101|H107246CC0 -107246CC0:lI114|H107246FE0 -107246FE0:lI108|H107247300 -107247300:lI97|H107247610 -107247610:lI110|H107247910 -107247910:lI103|H107247C10 -107247C10:lI47|H107247EF0 -107247EF0:lI108|H1072481B0 -1072481B0:lI105|H107248470 -107248470:lI98|H107248720 -107248720:lI47|H1072489D0 -1072489D0:lI101|H107248C50 -107248C50:lI117|H107248EC0 -107248EC0:lI110|H107249130 -107249130:lI105|H107249390 -107249390:lI116|H1072495F0 -1072495F0:lI45|H107249840 -107249840:lI50|H107249A50 -107249A50:lI46|H107249C50 -107249C50:lI56|H107249E30 -107249E30:lI46|H107249FF0 -107249FF0:lI50|H10724A190 -10724A190:lI47|H280052C20 -10721BE60:lH10721F578|H10721F590 -10721F578:t2:H107222A70,A5:cache -107222A70:lI47|H107225C18 -107225C18:lI111|H107228A70 -107228A70:lI112|H10722B4B8 -10722B4B8:lI116|H10722DBD0 -10722DBD0:lI47|H107230068 -107230068:lI104|H107232200 -107232200:lI111|H107234088 -107234088:lI109|H107235C20 -107235C20:lI101|H107237548 -107237548:lI98|H107238C00 -107238C00:lI114|H10723A0E8 -10723A0E8:lI101|H10723B450 -10723B450:lI119|H10723C560 -10723C560:lI47|H10723D430 -10723D430:lI67|H10723E1D0 -10723E1D0:lI101|H10723EE10 -10723EE10:lI108|H10723F8F0 -10723F8F0:lI108|H107240260 -107240260:lI97|H107240AF0 -107240AF0:lI114|H1072412A0 -1072412A0:lI47|H1072419D0 -1072419D0:lI101|H1072420A0 -1072420A0:lI114|H107242710 -107242710:lI108|H107242D10 -107242D10:lI97|H107243280 -107243280:lI110|H1072437C0 -1072437C0:lI103|H107243CD0 -107243CD0:lI47|H1072441C0 -1072441C0:lI50|H107244670 -107244670:lI54|H107244AE0 -107244AE0:lI46|H107244F40 -107244F40:lI48|H107245390 -107245390:lI46|H107245790 -107245790:lI50|H107245B50 -107245B50:lI47|H107245EE0 -107245EE0:lI108|H107246270 -107246270:lI105|H107246600 -107246600:lI98|H107246990 -107246990:lI47|H107246CD0 -107246CD0:lI101|H107246FF0 -107246FF0:lI114|H107247310 -107247310:lI108|H107247620 -107247620:lI97|H107247920 -107247920:lI110|H107247C20 -107247C20:lI103|H107247F00 -107247F00:lI47|H1072481C0 -1072481C0:lI108|H107248480 -107248480:lI105|H107248730 -107248730:lI98|H1072489E0 -1072489E0:lI47|H107248C60 -107248C60:lI101|H107248ED0 -107248ED0:lI116|H107249140 -107249140:lI45|H1072493A0 -1072493A0:lI49|H107249600 -107249600:lI46|H107249850 -107249850:lI55|H107249A60 -107249A60:lI47|H280052C20 -10721F590:lH107222A80|H107222A98 -107222A80:t2:H107225C28,A5:cache -107225C28:lI47|H107228A80 -107228A80:lI111|H10722B4C8 -10722B4C8:lI112|H10722DBE0 -10722DBE0:lI116|H107230078 -107230078:lI47|H107232210 -107232210:lI104|H107234098 -107234098:lI111|H107235C30 -107235C30:lI109|H107237558 -107237558:lI101|H107238C10 -107238C10:lI98|H10723A0F8 -10723A0F8:lI114|H10723B460 -10723B460:lI101|H10723C570 -10723C570:lI119|H10723D440 -10723D440:lI47|H10723E1E0 -10723E1E0:lI67|H10723EE20 -10723EE20:lI101|H10723F900 -10723F900:lI108|H107240270 -107240270:lI108|H107240B00 -107240B00:lI97|H1072412B0 -1072412B0:lI114|H1072419E0 -1072419E0:lI47|H1072420B0 -1072420B0:lI101|H107242720 -107242720:lI114|H107242D20 -107242D20:lI108|H107243290 -107243290:lI97|H1072437D0 -1072437D0:lI110|H107243CE0 -107243CE0:lI103|H1072441D0 -1072441D0:lI47|H107244680 -107244680:lI50|H107244AF0 -107244AF0:lI54|H107244F50 -107244F50:lI46|H1072453A0 -1072453A0:lI48|H1072457A0 -1072457A0:lI46|H107245B60 -107245B60:lI50|H107245EF0 -107245EF0:lI47|H107246280 -107246280:lI108|H107246610 -107246610:lI105|H1072469A0 -1072469A0:lI98|H107246CE0 -107246CE0:lI47|H107247000 -107247000:lI101|H107247320 -107247320:lI114|H107247630 -107247630:lI108|H107247930 -107247930:lI97|H107247C30 -107247C30:lI110|H107247F10 -107247F10:lI103|H1072481D0 -1072481D0:lI47|H107248490 -107248490:lI108|H107248740 -107248740:lI105|H1072489F0 -1072489F0:lI98|H107248C70 -107248C70:lI47|H107248EE0 -107248EE0:lI101|H107249150 -107249150:lI114|H1072493B0 -1072493B0:lI116|H107249610 -107249610:lI115|H107249860 -107249860:lI45|H107249A70 -107249A70:lI49|H107249C60 -107249C60:lI52|H107249E40 -107249E40:lI46|H10724A000 -10724A000:lI48|H10724A1A0 -10724A1A0:lI46|H10724A320 -10724A320:lI50|H10724A490 -10724A490:lI47|H280052C20 -107222A98:lH107225C38|H107225C50 -107225C38:t2:H107228A90,A5:cache -107228A90:lI47|H10722B4D8 -10722B4D8:lI111|H10722DBF0 -10722DBF0:lI112|H107230088 -107230088:lI116|H107232220 -107232220:lI47|H1072340A8 -1072340A8:lI104|H107235C40 -107235C40:lI111|H107237568 -107237568:lI109|H107238C20 -107238C20:lI101|H10723A108 -10723A108:lI98|H10723B470 -10723B470:lI114|H10723C580 -10723C580:lI101|H10723D450 -10723D450:lI119|H10723E1F0 -10723E1F0:lI47|H10723EE30 -10723EE30:lI67|H10723F910 -10723F910:lI101|H107240280 -107240280:lI108|H107240B10 -107240B10:lI108|H1072412C0 -1072412C0:lI97|H1072419F0 -1072419F0:lI114|H1072420C0 -1072420C0:lI47|H107242730 -107242730:lI101|H107242D30 -107242D30:lI114|H1072432A0 -1072432A0:lI108|H1072437E0 -1072437E0:lI97|H107243CF0 -107243CF0:lI110|H1072441E0 -1072441E0:lI103|H107244690 -107244690:lI47|H107244B00 -107244B00:lI50|H107244F60 -107244F60:lI54|H1072453B0 -1072453B0:lI46|H1072457B0 -1072457B0:lI48|H107245B70 -107245B70:lI46|H107245F00 -107245F00:lI50|H107246290 -107246290:lI47|H107246620 -107246620:lI108|H1072469B0 -1072469B0:lI105|H107246CF0 -107246CF0:lI98|H107247010 -107247010:lI47|H107247330 -107247330:lI101|H107247640 -107247640:lI114|H107247940 -107247940:lI108|H107247C40 -107247C40:lI97|H107247F20 -107247F20:lI110|H1072481E0 -1072481E0:lI103|H1072484A0 -1072484A0:lI47|H107248750 -107248750:lI108|H107248A00 -107248A00:lI105|H107248C80 -107248C80:lI98|H107248EF0 -107248EF0:lI47|H107249160 -107249160:lI101|H1072493C0 -1072493C0:lI114|H107249620 -107249620:lI108|H107249870 -107249870:lI95|H107249A80 -107249A80:lI105|H107249C70 -107249C70:lI110|H107249E50 -107249E50:lI116|H10724A010 -10724A010:lI101|H10724A1B0 -10724A1B0:lI114|H10724A330 -10724A330:lI102|H10724A4A0 -10724A4A0:lI97|H10724A600 -10724A600:lI99|H10724A740 -10724A740:lI101|H10724A860 -10724A860:lI45|H10724A970 -10724A970:lI53|H10724AA60 -10724AA60:lI46|H10724AB30 -10724AB30:lI52|H10724ABD0 -10724ABD0:lI47|H280052C20 -107225C50:lH107228AA0|H107228AB8 -107228AA0:t2:H10722B4E8,A5:cache -10722B4E8:lI47|H10722DC00 -10722DC00:lI111|H107230098 -107230098:lI112|H107232230 -107232230:lI116|H1072340B8 -1072340B8:lI47|H107235C50 -107235C50:lI104|H107237578 -107237578:lI111|H107238C30 -107238C30:lI109|H10723A118 -10723A118:lI101|H10723B480 -10723B480:lI98|H10723C590 -10723C590:lI114|H10723D460 -10723D460:lI101|H10723E200 -10723E200:lI119|H10723EE40 -10723EE40:lI47|H10723F920 -10723F920:lI67|H107240290 -107240290:lI101|H107240B20 -107240B20:lI108|H1072412D0 -1072412D0:lI108|H107241A00 -107241A00:lI97|H1072420D0 -1072420D0:lI114|H107242740 -107242740:lI47|H107242D40 -107242D40:lI101|H1072432B0 -1072432B0:lI114|H1072437F0 -1072437F0:lI108|H107243D00 -107243D00:lI97|H1072441F0 -1072441F0:lI110|H1072446A0 -1072446A0:lI103|H107244B10 -107244B10:lI47|H107244F70 -107244F70:lI50|H1072453C0 -1072453C0:lI54|H1072457C0 -1072457C0:lI46|H107245B80 -107245B80:lI48|H107245F10 -107245F10:lI46|H1072462A0 -1072462A0:lI50|H107246630 -107246630:lI47|H1072469C0 -1072469C0:lI108|H107246D00 -107246D00:lI105|H107247020 -107247020:lI98|H107247340 -107247340:lI47|H107247650 -107247650:lI101|H107247950 -107247950:lI114|H107247C50 -107247C50:lI108|H107247F30 -107247F30:lI97|H1072481F0 -1072481F0:lI110|H1072484B0 -1072484B0:lI103|H107248760 -107248760:lI47|H107248A10 -107248A10:lI108|H107248C90 -107248C90:lI105|H107248F00 -107248F00:lI98|H107249170 -107249170:lI47|H1072493D0 -1072493D0:lI101|H107249630 -107249630:lI114|H107249880 -107249880:lI108|H107249A90 -107249A90:lI95|H107249C80 -107249C80:lI100|H107249E60 -107249E60:lI111|H10724A020 -10724A020:lI99|H10724A1C0 -10724A1C0:lI103|H10724A340 -10724A340:lI101|H10724A4B0 -10724A4B0:lI110|H10724A610 -10724A610:lI45|H10724A750 -10724A750:lI49|H10724A870 -10724A870:lI46|H10724A980 -10724A980:lI53|H10724AA70 -10724AA70:lI47|H280052C20 -107228AB8:lH10722B4F8|H10722B510 -10722B4F8:t2:H10722DC10,A5:cache -10722DC10:lI47|H1072300A8 -1072300A8:lI111|H107232240 -107232240:lI112|H1072340C8 -1072340C8:lI116|H107235C60 -107235C60:lI47|H107237588 -107237588:lI104|H107238C40 -107238C40:lI111|H10723A128 -10723A128:lI109|H10723B490 -10723B490:lI101|H10723C5A0 -10723C5A0:lI98|H10723D470 -10723D470:lI114|H10723E210 -10723E210:lI101|H10723EE50 -10723EE50:lI119|H10723F930 -10723F930:lI47|H1072402A0 -1072402A0:lI67|H107240B30 -107240B30:lI101|H1072412E0 -1072412E0:lI108|H107241A10 -107241A10:lI108|H1072420E0 -1072420E0:lI97|H107242750 -107242750:lI114|H107242D50 -107242D50:lI47|H1072432C0 -1072432C0:lI101|H107243800 -107243800:lI114|H107243D10 -107243D10:lI108|H107244200 -107244200:lI97|H1072446B0 -1072446B0:lI110|H107244B20 -107244B20:lI103|H107244F80 -107244F80:lI47|H1072453D0 -1072453D0:lI50|H1072457D0 -1072457D0:lI54|H107245B90 -107245B90:lI46|H107245F20 -107245F20:lI48|H1072462B0 -1072462B0:lI46|H107246640 -107246640:lI50|H1072469D0 -1072469D0:lI47|H107246D10 -107246D10:lI108|H107247030 -107247030:lI105|H107247350 -107247350:lI98|H107247660 -107247660:lI47|H107247960 -107247960:lI101|H107247C60 -107247C60:lI114|H107247F40 -107247F40:lI108|H107248200 -107248200:lI97|H1072484C0 -1072484C0:lI110|H107248770 -107248770:lI103|H107248A20 -107248A20:lI47|H107248CA0 -107248CA0:lI108|H107248F10 -107248F10:lI105|H107249180 -107249180:lI98|H1072493E0 -1072493E0:lI47|H107249640 -107249640:lI101|H107249890 -107249890:lI108|H107249AA0 -107249AA0:lI100|H107249C90 -107249C90:lI97|H107249E70 -107249E70:lI112|H10724A030 -10724A030:lI45|H10724A1D0 -10724A1D0:lI49|H10724A350 -10724A350:lI46|H10724A4C0 -10724A4C0:lI50|H10724A620 -10724A620:lI46|H10724A760 -10724A760:lI49|H10724A880 -10724A880:lI49|H10724A990 -10724A990:lI47|H280052C20 -10722B510:lH10722DC20|H10722DC38 -10722DC20:t2:H1072300B8,A5:cache -1072300B8:lI47|H107232250 -107232250:lI111|H1072340D8 -1072340D8:lI112|H107235C70 -107235C70:lI116|H107237598 -107237598:lI47|H107238C50 -107238C50:lI104|H10723A138 -10723A138:lI111|H10723B4A0 -10723B4A0:lI109|H10723C5B0 -10723C5B0:lI101|H10723D480 -10723D480:lI98|H10723E220 -10723E220:lI114|H10723EE60 -10723EE60:lI101|H10723F940 -10723F940:lI119|H1072402B0 -1072402B0:lI47|H107240B40 -107240B40:lI67|H1072412F0 -1072412F0:lI101|H107241A20 -107241A20:lI108|H1072420F0 -1072420F0:lI108|H107242760 -107242760:lI97|H107242D60 -107242D60:lI114|H1072432D0 -1072432D0:lI47|H107243810 -107243810:lI101|H107243D20 -107243D20:lI114|H107244210 -107244210:lI108|H1072446C0 -1072446C0:lI97|H107244B30 -107244B30:lI110|H107244F90 -107244F90:lI103|H1072453E0 -1072453E0:lI47|H1072457E0 -1072457E0:lI50|H107245BA0 -107245BA0:lI54|H107245F30 -107245F30:lI46|H1072462C0 -1072462C0:lI48|H107246650 -107246650:lI46|H1072469E0 -1072469E0:lI50|H107246D20 -107246D20:lI47|H107247040 -107247040:lI108|H107247360 -107247360:lI105|H107247670 -107247670:lI98|H107247970 -107247970:lI47|H107247C70 -107247C70:lI101|H107247F50 -107247F50:lI114|H107248210 -107248210:lI108|H1072484D0 -1072484D0:lI97|H107248780 -107248780:lI110|H107248A30 -107248A30:lI103|H107248CB0 -107248CB0:lI47|H107248F20 -107248F20:lI108|H107249190 -107249190:lI105|H1072493F0 -1072493F0:lI98|H107249650 -107249650:lI47|H1072498A0 -1072498A0:lI101|H107249AB0 -107249AB0:lI100|H107249CA0 -107249CA0:lI111|H107249E80 -107249E80:lI99|H10724A040 -10724A040:lI45|H10724A1E0 -10724A1E0:lI49|H10724A360 -10724A360:lI46|H10724A4D0 -10724A4D0:lI50|H10724A630 -10724A630:lI47|H280052C20 -10722DC38:lH1072300C8|H1072300E0 -1072300C8:t2:H107232260,A5:cache -107232260:lI47|H1072340E8 -1072340E8:lI111|H107235C80 -107235C80:lI112|H1072375A8 -1072375A8:lI116|H107238C60 -107238C60:lI47|H10723A148 -10723A148:lI104|H10723B4B0 -10723B4B0:lI111|H10723C5C0 -10723C5C0:lI109|H10723D490 -10723D490:lI101|H10723E230 -10723E230:lI98|H10723EE70 -10723EE70:lI114|H10723F950 -10723F950:lI101|H1072402C0 -1072402C0:lI119|H107240B50 -107240B50:lI47|H107241300 -107241300:lI67|H107241A30 -107241A30:lI101|H107242100 -107242100:lI108|H107242770 -107242770:lI108|H107242D70 -107242D70:lI97|H1072432E0 -1072432E0:lI114|H107243820 -107243820:lI47|H107243D30 -107243D30:lI101|H107244220 -107244220:lI114|H1072446D0 -1072446D0:lI108|H107244B40 -107244B40:lI97|H107244FA0 -107244FA0:lI110|H1072453F0 -1072453F0:lI103|H1072457F0 -1072457F0:lI47|H107245BB0 -107245BB0:lI50|H107245F40 -107245F40:lI54|H1072462D0 -1072462D0:lI46|H107246660 -107246660:lI48|H1072469F0 -1072469F0:lI46|H107246D30 -107246D30:lI50|H107247050 -107247050:lI47|H107247370 -107247370:lI108|H107247680 -107247680:lI105|H107247980 -107247980:lI98|H107247C80 -107247C80:lI47|H107247F60 -107247F60:lI101|H107248220 -107248220:lI114|H1072484E0 -1072484E0:lI108|H107248790 -107248790:lI97|H107248A40 -107248A40:lI110|H107248CC0 -107248CC0:lI103|H107248F30 -107248F30:lI47|H1072491A0 -1072491A0:lI108|H107249400 -107249400:lI105|H107249660 -107249660:lI98|H1072498B0 -1072498B0:lI47|H107249AC0 -107249AC0:lI100|H107249CB0 -107249CB0:lI105|H107249E90 -107249E90:lI97|H10724A050 -10724A050:lI109|H10724A1F0 -10724A1F0:lI101|H10724A370 -10724A370:lI116|H10724A4E0 -10724A4E0:lI101|H10724A640 -10724A640:lI114|H10724A770 -10724A770:lI45|H10724A890 -10724A890:lI50|H10724A9A0 -10724A9A0:lI46|H10724AA80 -10724AA80:lI51|H10724AB40 -10724AB40:lI47|H280052C20 -1072300E0:lH107232270|H107232288 -107232270:t2:H1072340F8,A5:cache -1072340F8:lI47|H107235C90 -107235C90:lI111|H1072375B8 -1072375B8:lI112|H107238C70 -107238C70:lI116|H10723A158 -10723A158:lI47|H10723B4C0 -10723B4C0:lI104|H10723C5D0 -10723C5D0:lI111|H10723D4A0 -10723D4A0:lI109|H10723E240 -10723E240:lI101|H10723EE80 -10723EE80:lI98|H10723F960 -10723F960:lI114|H1072402D0 -1072402D0:lI101|H107240B60 -107240B60:lI119|H107241310 -107241310:lI47|H107241A40 -107241A40:lI67|H107242110 -107242110:lI101|H107242780 -107242780:lI108|H107242D80 -107242D80:lI108|H1072432F0 -1072432F0:lI97|H107243830 -107243830:lI114|H107243D40 -107243D40:lI47|H107244230 -107244230:lI101|H1072446E0 -1072446E0:lI114|H107244B50 -107244B50:lI108|H107244FB0 -107244FB0:lI97|H107245400 -107245400:lI110|H107245800 -107245800:lI103|H107245BC0 -107245BC0:lI47|H107245F50 -107245F50:lI50|H1072462E0 -1072462E0:lI54|H107246670 -107246670:lI46|H107246A00 -107246A00:lI48|H107246D40 -107246D40:lI46|H107247060 -107247060:lI50|H107247380 -107247380:lI47|H107247690 -107247690:lI108|H107247990 -107247990:lI105|H107247C90 -107247C90:lI98|H107247F70 -107247F70:lI47|H107248230 -107248230:lI101|H1072484F0 -1072484F0:lI114|H1072487A0 -1072487A0:lI108|H107248A50 -107248A50:lI97|H107248CD0 -107248CD0:lI110|H107248F40 -107248F40:lI103|H1072491B0 -1072491B0:lI47|H107249410 -107249410:lI108|H107249670 -107249670:lI105|H1072498C0 -1072498C0:lI98|H107249AD0 -107249AD0:lI47|H107249CC0 -107249CC0:lI100|H107249EA0 -107249EA0:lI105|H10724A060 -10724A060:lI97|H10724A200 -10724A200:lI108|H10724A380 -10724A380:lI121|H10724A4F0 -10724A4F0:lI122|H10724A650 -10724A650:lI101|H10724A780 -10724A780:lI114|H10724A8A0 -10724A8A0:lI45|H10724A9B0 -10724A9B0:lI53|H10724AA90 -10724AA90:lI46|H10724AB50 -10724AB50:lI49|H10724ABE0 -10724ABE0:lI47|H280052C20 -107232288:lH107234108|H107234120 -107234108:t2:H107235CA0,A5:cache -107235CA0:lI47|H1072375C8 -1072375C8:lI111|H107238C80 -107238C80:lI112|H10723A168 -10723A168:lI116|H10723B4D0 -10723B4D0:lI47|H10723C5E0 -10723C5E0:lI104|H10723D4B0 -10723D4B0:lI111|H10723E250 -10723E250:lI109|H10723EE90 -10723EE90:lI101|H10723F970 -10723F970:lI98|H1072402E0 -1072402E0:lI114|H107240B70 -107240B70:lI101|H107241320 -107241320:lI119|H107241A50 -107241A50:lI47|H107242120 -107242120:lI67|H107242790 -107242790:lI101|H107242D90 -107242D90:lI108|H107243300 -107243300:lI108|H107243840 -107243840:lI97|H107243D50 -107243D50:lI114|H107244240 -107244240:lI47|H1072446F0 -1072446F0:lI101|H107244B60 -107244B60:lI114|H107244FC0 -107244FC0:lI108|H107245410 -107245410:lI97|H107245810 -107245810:lI110|H107245BD0 -107245BD0:lI103|H107245F60 -107245F60:lI47|H1072462F0 -1072462F0:lI50|H107246680 -107246680:lI54|H107246A10 -107246A10:lI46|H107246D50 -107246D50:lI48|H107247070 -107247070:lI46|H107247390 -107247390:lI50|H1072476A0 -1072476A0:lI47|H1072479A0 -1072479A0:lI108|H107247CA0 -107247CA0:lI105|H107247F80 -107247F80:lI98|H107248240 -107248240:lI47|H107248500 -107248500:lI101|H1072487B0 -1072487B0:lI114|H107248A60 -107248A60:lI108|H107248CE0 -107248CE0:lI97|H107248F50 -107248F50:lI110|H1072491C0 -1072491C0:lI103|H107249420 -107249420:lI47|H107249680 -107249680:lI108|H1072498D0 -1072498D0:lI105|H107249AE0 -107249AE0:lI98|H107249CD0 -107249CD0:lI47|H107249EB0 -107249EB0:lI100|H10724A070 -10724A070:lI101|H10724A210 -10724A210:lI98|H10724A390 -10724A390:lI117|H10724A500 -10724A500:lI103|H10724A660 -10724A660:lI103|H10724A790 -10724A790:lI101|H10724A8B0 -10724A8B0:lI114|H10724A9C0 -10724A9C0:lI45|H10724AAA0 -10724AAA0:lI53|H10724AB60 -10724AB60:lI46|H10724ABF0 -10724ABF0:lI51|H10724AC60 -10724AC60:lI46|H10724ACC0 -10724ACC0:lI49|H10724AD10 -10724AD10:lI47|H280052C20 -107234120:lH107235CB0|H107235CC8 -107235CB0:t2:H1072375D8,A5:cache -1072375D8:lI47|H107238C90 -107238C90:lI111|H10723A178 -10723A178:lI112|H10723B4E0 -10723B4E0:lI116|H10723C5F0 -10723C5F0:lI47|H10723D4C0 -10723D4C0:lI104|H10723E260 -10723E260:lI111|H10723EEA0 -10723EEA0:lI109|H10723F980 -10723F980:lI101|H1072402F0 -1072402F0:lI98|H107240B80 -107240B80:lI114|H107241330 -107241330:lI101|H107241A60 -107241A60:lI119|H107242130 -107242130:lI47|H1072427A0 -1072427A0:lI67|H107242DA0 -107242DA0:lI101|H107243310 -107243310:lI108|H107243850 -107243850:lI108|H107243D60 -107243D60:lI97|H107244250 -107244250:lI114|H107244700 -107244700:lI47|H107244B70 -107244B70:lI101|H107244FD0 -107244FD0:lI114|H107245420 -107245420:lI108|H107245820 -107245820:lI97|H107245BE0 -107245BE0:lI110|H107245F70 -107245F70:lI103|H107246300 -107246300:lI47|H107246690 -107246690:lI50|H107246A20 -107246A20:lI54|H107246D60 -107246D60:lI46|H107247080 -107247080:lI48|H1072473A0 -1072473A0:lI46|H1072476B0 -1072476B0:lI50|H1072479B0 -1072479B0:lI47|H107247CB0 -107247CB0:lI108|H107247F90 -107247F90:lI105|H107248250 -107248250:lI98|H107248510 -107248510:lI47|H1072487C0 -1072487C0:lI101|H107248A70 -107248A70:lI114|H107248CF0 -107248CF0:lI108|H107248F60 -107248F60:lI97|H1072491D0 -1072491D0:lI110|H107249430 -107249430:lI103|H107249690 -107249690:lI47|H1072498E0 -1072498E0:lI108|H107249AF0 -107249AF0:lI105|H107249CE0 -107249CE0:lI98|H107249EC0 -107249EC0:lI47|H10724A080 -10724A080:lI99|H10724A220 -10724A220:lI114|H10724A3A0 -10724A3A0:lI121|H10724A510 -10724A510:lI112|H10724A670 -10724A670:lI116|H10724A7A0 -10724A7A0:lI111|H10724A8C0 -10724A8C0:lI45|H10724A9D0 -10724A9D0:lI53|H10724AAB0 -10724AAB0:lI46|H10724AB70 -10724AB70:lI50|H10724AC00 -10724AC00:lI47|H280052C20 -107235CC8:lH1072375E8|H107237600 -1072375E8:t2:H107238CA0,A5:cache -107238CA0:lI47|H10723A188 -10723A188:lI111|H10723B4F0 -10723B4F0:lI112|H10723C600 -10723C600:lI116|H10723D4D0 -10723D4D0:lI47|H10723E270 -10723E270:lI104|H10723EEB0 -10723EEB0:lI111|H10723F990 -10723F990:lI109|H107240300 -107240300:lI101|H107240B90 -107240B90:lI98|H107241340 -107241340:lI114|H107241A70 -107241A70:lI101|H107242140 -107242140:lI119|H1072427B0 -1072427B0:lI47|H107242DB0 -107242DB0:lI67|H107243320 -107243320:lI101|H107243860 -107243860:lI108|H107243D70 -107243D70:lI108|H107244260 -107244260:lI97|H107244710 -107244710:lI114|H107244B80 -107244B80:lI47|H107244FE0 -107244FE0:lI101|H107245430 -107245430:lI114|H107245830 -107245830:lI108|H107245BF0 -107245BF0:lI97|H107245F80 -107245F80:lI110|H107246310 -107246310:lI103|H1072466A0 -1072466A0:lI47|H107246A30 -107246A30:lI50|H107246D70 -107246D70:lI54|H107247090 -107247090:lI46|H1072473B0 -1072473B0:lI48|H1072476C0 -1072476C0:lI46|H1072479C0 -1072479C0:lI50|H107247CC0 -107247CC0:lI47|H107247FA0 -107247FA0:lI108|H107248260 -107248260:lI105|H107248520 -107248520:lI98|H1072487D0 -1072487D0:lI47|H107248A80 -107248A80:lI101|H107248D00 -107248D00:lI114|H107248F70 -107248F70:lI108|H1072491E0 -1072491E0:lI97|H107249440 -107249440:lI110|H1072496A0 -1072496A0:lI103|H1072498F0 -1072498F0:lI47|H107249B00 -107249B00:lI108|H107249CF0 -107249CF0:lI105|H107249ED0 -107249ED0:lI98|H10724A090 -10724A090:lI47|H10724A230 -10724A230:lI99|H10724A3B0 -10724A3B0:lI111|H10724A520 -10724A520:lI109|H10724A680 -10724A680:lI112|H10724A7B0 -10724A7B0:lI105|H10724A8D0 -10724A8D0:lI108|H10724A9E0 -10724A9E0:lI101|H10724AAC0 -10724AAC0:lI114|H10724AB80 -10724AB80:lI45|H10724AC10 -10724AC10:lI56|H10724AC70 -10724AC70:lI46|H10724ACD0 -10724ACD0:lI51|H10724AD20 -10724AD20:lI46|H10724AD60 -10724AD60:lI50|H10724ADA0 -10724ADA0:lI47|H280052C20 -107237600:lH107238CB0|H107238CC8 -107238CB0:t2:H10723A198,A5:cache -10723A198:lI47|H10723B500 -10723B500:lI111|H10723C610 -10723C610:lI112|H10723D4E0 -10723D4E0:lI116|H10723E280 -10723E280:lI47|H10723EEC0 -10723EEC0:lI104|H10723F9A0 -10723F9A0:lI111|H107240310 -107240310:lI109|H107240BA0 -107240BA0:lI101|H107241350 -107241350:lI98|H107241A80 -107241A80:lI114|H107242150 -107242150:lI101|H1072427C0 -1072427C0:lI119|H107242DC0 -107242DC0:lI47|H107243330 -107243330:lI67|H107243870 -107243870:lI101|H107243D80 -107243D80:lI108|H107244270 -107244270:lI108|H107244720 -107244720:lI97|H107244B90 -107244B90:lI114|H107244FF0 -107244FF0:lI47|H107245440 -107245440:lI101|H107245840 -107245840:lI114|H107245C00 -107245C00:lI108|H107245F90 -107245F90:lI97|H107246320 -107246320:lI110|H1072466B0 -1072466B0:lI103|H107246A40 -107246A40:lI47|H107246D80 -107246D80:lI50|H1072470A0 -1072470A0:lI54|H1072473C0 -1072473C0:lI46|H1072476D0 -1072476D0:lI48|H1072479D0 -1072479D0:lI46|H107247CD0 -107247CD0:lI50|H107247FB0 -107247FB0:lI47|H107248270 -107248270:lI108|H107248530 -107248530:lI105|H1072487E0 -1072487E0:lI98|H107248A90 -107248A90:lI47|H107248D10 -107248D10:lI101|H107248F80 -107248F80:lI114|H1072491F0 -1072491F0:lI108|H107249450 -107249450:lI97|H1072496B0 -1072496B0:lI110|H107249900 -107249900:lI103|H107249B10 -107249B10:lI47|H107249D00 -107249D00:lI108|H107249EE0 -107249EE0:lI105|H10724A0A0 -10724A0A0:lI98|H10724A240 -10724A240:lI47|H10724A3C0 -10724A3C0:lI99|H10724A530 -10724A530:lI111|H10724A690 -10724A690:lI109|H10724A7C0 -10724A7C0:lI109|H10724A8E0 -10724A8E0:lI111|H10724A9F0 -10724A9F0:lI110|H10724AAD0 -10724AAD0:lI95|H10724AB90 -10724AB90:lI116|H10724AC20 -10724AC20:lI101|H10724AC80 -10724AC80:lI115|H10724ACE0 -10724ACE0:lI116|H10724AD30 -10724AD30:lI45|H10724AD70 -10724AD70:lI49|H10724ADB0 -10724ADB0:lI46|H10724ADE0 -10724ADE0:lI50|H10724AE10 -10724AE10:lI53|H10724AE30 -10724AE30:lI47|H280052C20 -107238CC8:lH10723A1A8|N -10723A1A8:t2:H10723B510,A5:cache -10723B510:lI47|H10723C620 -10723C620:lI111|H10723D4F0 -10723D4F0:lI112|H10723E290 -10723E290:lI116|H10723EED0 -10723EED0:lI47|H10723F9B0 -10723F9B0:lI104|H107240320 -107240320:lI111|H107240BB0 -107240BB0:lI109|H107241360 -107241360:lI101|H107241A90 -107241A90:lI98|H107242160 -107242160:lI114|H1072427D0 -1072427D0:lI101|H107242DD0 -107242DD0:lI119|H107243340 -107243340:lI47|H107243880 -107243880:lI67|H107243D90 -107243D90:lI101|H107244280 -107244280:lI108|H107244730 -107244730:lI108|H107244BA0 -107244BA0:lI97|H107245000 -107245000:lI114|H107245450 -107245450:lI47|H107245850 -107245850:lI101|H107245C10 -107245C10:lI114|H107245FA0 -107245FA0:lI108|H107246330 -107246330:lI97|H1072466C0 -1072466C0:lI110|H107246A50 -107246A50:lI103|H107246D90 -107246D90:lI47|H1072470B0 -1072470B0:lI50|H1072473D0 -1072473D0:lI54|H1072476E0 -1072476E0:lI46|H1072479E0 -1072479E0:lI48|H107247CE0 -107247CE0:lI46|H107247FC0 -107247FC0:lI50|H107248280 -107248280:lI47|H107248540 -107248540:lI108|H1072487F0 -1072487F0:lI105|H107248AA0 -107248AA0:lI98|H107248D20 -107248D20:lI47|H107248F90 -107248F90:lI101|H107249200 -107249200:lI114|H107249460 -107249460:lI108|H1072496C0 -1072496C0:lI97|H107249910 -107249910:lI110|H107249B20 -107249B20:lI103|H107249D10 -107249D10:lI47|H107249EF0 -107249EF0:lI108|H10724A0B0 -10724A0B0:lI105|H10724A250 -10724A250:lI98|H10724A3D0 -10724A3D0:lI47|H10724A540 -10724A540:lI97|H10724A6A0 -10724A6A0:lI115|H10724A7D0 -10724A7D0:lI110|H10724A8F0 -10724A8F0:lI49|H10724AA00 -10724AA00:lI45|H10724AAE0 -10724AAE0:lI53|H10724ABA0 -10724ABA0:lI46|H10724AC30 -10724AC30:lI49|H10724AC90 -10724AC90:lI47|H280052C20 -1071F0038:lI47|H1071F05F8 -1071F05F8:lI111|H1071F1880 -1071F1880:lI112|H1071F3AF8 -1071F3AF8:lI116|H1071F6310 -1071F6310:lI47|H1071F8F60 -1071F8F60:lI104|H1071FBEA0 -1071FBEA0:lI111|H1071FEF58 -1071FEF58:lI109|H107202100 -107202100:lI101|H107205340 -107205340:lI98|H107208638 -107208638:lI114|H10720B908 -10720B908:lI101|H10720EBC8 -10720EBC8:lI119|H107211F28 -107211F28:lI47|H107215400 -107215400:lI67|H107218A90 -107218A90:lI101|H10721C2C0 -10721C2C0:lI108|H10721F9C0 -10721F9C0:lI108|H107222EB8 -107222EB8:lI97|H107226020 -107226020:lI114|H107228E08 -107228E08:lI47|H10722B840 -10722B840:lI101|H10722DF18 -10722DF18:lI114|H107230340 -107230340:lI108|H1072324B8 -1072324B8:lI97|H107234320 -107234320:lI110|H107235E88 -107235E88:lI103|H107237780 -107237780:lI47|H107238E08 -107238E08:lI50|H10723A2E0 -10723A2E0:lI54|H10723B640 -10723B640:lI46|H10723C720 -10723C720:lI48|H10723D5E0 -10723D5E0:lI46|H10723E360 -10723E360:lI50|H10723EF70 -10723EF70:lI47|H10723FA40 -10723FA40:lI108|H107240390 -107240390:lI105|H107240C10 -107240C10:lI98|H1072413A0 -1072413A0:lI47|H107241AD0 -107241AD0:lI101|H1072421A0 -1072421A0:lI114|H107242810 -107242810:lI108|H107242E10 -107242E10:lI97|H107243380 -107243380:lI110|H1072438C0 -1072438C0:lI103|N -=proc_dictionary:<0.51.0> -H105D8DDC8 -H105D8DE00 -=proc_stack:<0.51.0> -y0:N -y1:A8:infinity -y2:H105D8DE90 -y3:H105D8DF68 -y4:A12:standard_error_sup -y5:P<0.49.0> -0x0000000105d8e3d8:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d8e3f8:SReturn addr 0x3D82348 () -=proc_heap:<0.51.0> -105D8DE90:t5:AE:callback_cache,A11:supervisor_bridge,H105D8DE18,H105D8DE40,H105D8DE68 -105D8DE68:E24:g3F3EXN1cGVydmlzb3JfYnJpZGdldwtoYW5kbGVfaW5mb2EC -105D8DE40:E24:g3F3EXN1cGVydmlzb3JfYnJpZGdldwtoYW5kbGVfY2FzdGEC -105D8DE18:E24:g3F3EXN1cGVydmlzb3JfYnJpZGdldwtoYW5kbGVfY2FsbGED -105D8DF68:t5:A5:state,AE:standard_error,P<0.52.0>,P<0.52.0>,H280068C20 -105D8DDC8:t2:AA:$ancestors,H105D8DDB8 -105D8DDB8:lAA:kernel_sup|H105D8DD78 -105D8DD78:lP<0.47.0>|N -105D8DE00:t2:AD:$initial_call,H105D8DDE0 -105D8DDE0:t3:A11:supervisor_bridge,AE:standard_error,I1 -=proc_dictionary:<0.52.0> -H105D972F8 -H105D972E0 -=proc_stack:<0.52.0> -y0:p<0.1> -0x0000000105d979e0:SReturn addr 0x3D82348 () -=proc_heap:<0.52.0> -105D972F8:t2:A5:onlcr,A5:false -105D972E0:t2:A8:encoding,A7:unicode -=proc_dictionary:<0.53.0> -H105D801F0 -H105D80208 -=proc_stack:<0.53.0> -y0:N -y1:A8:infinity -y2:H105D801C0 -y3:A9:undefined -y4:AD:file_server_2 -y5:P<0.49.0> -0x0000000105ddf9b8:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105ddf9d8:SReturn addr 0x3D82348 () -=proc_heap:<0.53.0> -105D801C0:t5:AE:callback_cache,AB:file_server,H105D80220,H105D80248,H105D80270 -105D80270:E1E:g3F3C2ZpbGVfc2VydmVydwtoYW5kbGVfaW5mb2EC -105D80248:E1E:g3F3C2ZpbGVfc2VydmVydwtoYW5kbGVfY2FzdGEC -105D80220:E1E:g3F3C2ZpbGVfc2VydmVydwtoYW5kbGVfY2FsbGED -105D801F0:t2:AA:$ancestors,H105D80298 -105D80298:lAA:kernel_sup|H105D802C8 -105D802C8:lP<0.47.0>|N -105D80208:t2:AD:$initial_call,H105D802A8 -105D802A8:t3:AB:file_server,A4:init,I1 -=proc_dictionary:<0.55.0> -H105D90368 -H105D90380 -=proc_stack:<0.55.0> -y0:N -y1:A8:infinity -y2:H105D902E8 -y3:H105D90318 -y4:A7:inet_db -y5:P<0.49.0> -0x0000000105d92198:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d921b8:SReturn addr 0x3D82348 () -=proc_heap:<0.55.0> -105D902E8:t5:AE:callback_cache,A7:inet_db,H105D90398,H105D903C0,H105D903E8 -105D903E8:E1A:g3F3B2luZXRfZGJ3C2hhbmRsZV9pbmZvYQI= -105D903C0:E1A:g3F3B2luZXRfZGJ3C2hhbmRsZV9jYXN0YQI= -105D90398:E1A:g3F3B2luZXRfZGJ3C2hhbmRsZV9jYWxsYQM= -105D90318:t9:A5:state,A7:inet_db,AA:inet_cache,A11:inet_hosts_byname,A11:inet_hosts_byaddr,A16:inet_hosts_file_byname,A16:inet_hosts_file_byaddr,AC:inet_sockets,H105D90410 -105D90410:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAAK/o+vQAAd/g02c= -105D90368:t2:AA:$ancestors,H105D90428 -105D90428:lAA:kernel_sup|H105D90458 -105D90458:lP<0.47.0>|N -105D90380:t2:AD:$initial_call,H105D90438 -105D90438:t3:A7:inet_db,A4:init,I1 -=proc_dictionary:<0.56.0> -H105D98DE8 -H105D98E20 -=proc_stack:<0.56.0> -y0:N -y1:A8:infinity -y2:H105D98EB0 -y3:H105D98F20 -y4:A3:rex -y5:P<0.49.0> -0x0000000105d99428:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d99448:SReturn addr 0x3D82348 () -=proc_heap:<0.56.0> -105D98EB0:t5:AE:callback_cache,A3:rpc,H105D98E38,H105D98E60,H105D98E88 -105D98E88:E16:g3F3A3JwY3cLaGFuZGxlX2luZm9hAg== -105D98E60:E16:g3F3A3JwY3cLaGFuZGxlX2Nhc3RhAg== -105D98E38:E16:g3F3A3JwY3cLaGFuZGxlX2NhbGxhAw== -105D98F20:Mf1:H280071110:H105D98F08 -105D98F08:t2:P<0.57.0>,H105D98EF0 -105D98EF0:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALAD+vQAAd/g02c= -105D98DE8:t2:AA:$ancestors,H105D98DD8 -105D98DD8:lAA:kernel_sup|H105D98D98 -105D98D98:lP<0.47.0>|N -105D98E20:t2:AD:$initial_call,H105D98E00 -105D98E00:t3:A3:rpc,A4:init,I1 -=proc_stack:<0.57.0> -y0:N -y1:H105D99468 -y2:N -0x0000000105d99b98:SReturn addr 0x3D82348 () -=proc_heap:<0.57.0> -105D99468:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALAE+vYAAd/g02c= -=proc_dictionary:<0.58.0> -H105D84510 -H105DA9070 -H105DA9088 -H105D84428 -=proc_stack:<0.58.0> -y0:N -y1:A8:infinity -y2:H105DA9040 -y3:H105DA9158 -y4:A12:global_name_server -y5:P<0.49.0> -0x0000000105d856e8:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d85708:SReturn addr 0x3D82348 () -=proc_heap:<0.58.0> -105DA9040:t5:AE:callback_cache,A6:global,H105DA90A0,H105DA90C8,H105DA90F0 -105DA90F0:E19:g3F3Bmdsb2JhbHcLaGFuZGxlX2luZm9hAg== -105DA90C8:E19:g3F3Bmdsb2JhbHcLaGFuZGxlX2Nhc3RhAg== -105DA90A0:E19:g3F3Bmdsb2JhbHcLaGFuZGxlX2NhbGxhAw== -105DA9158:tB:A5:state,H105DA91B8,H2800715B0,N,N,N,AD:nonode@nohost,P<0.59.0>,P<0.60.0>,A8:no_trace,A5:false -105DA91B8:t3:A4:conf,A4:true,A4:true -105D84510:t2:A12:creation_extension,H105D833F0 -105D833F0:B889410000978444288 -105DA9070:t2:AA:$ancestors,H105DA9118 -105DA9118:lAA:kernel_sup|H105DA9148 -105DA9148:lP<0.47.0>|N -105DA9088:t2:AD:$initial_call,H105DA9128 -105DA9128:t3:A6:global,A4:init,I1 -105D84428:t2:A9:rand_seed,H105D84400 -105D84400:t2:H105D84478,H105D844C0 -105D844C0:lI236283493786687394|I177509139475053309 -105D84478:Mf6:H28007DE10:A5:exsss,H28007DD70,I58,H28007DD98,H28007DDC0,H28007DDE8 -=proc_stack:<0.59.0> -y0:A8:infinity -y1:H105DAE560 -0x0000000105daeb20:SReturn addr 0x3D82348 () -=proc_heap:<0.59.0> -105DAE560:t7:A5:multi,N,N,N,AD:nonode@nohost,A5:false,A5:false -=proc_stack:<0.60.0> -y0:N -0x0000000105dafe38:SReturn addr 0x3D82348 () -=proc_heap:<0.60.0> -=proc_dictionary:<0.61.0> -H105DAA4F0 -H105DAA580 -H105DAA418 -H105DAA430 -H105DAA518 -H105DAA598 -=proc_stack:<0.61.0> -y0:N -y1:A8:infinity -y2:H105DAA3D8 -y3:H105DAAB68 -y4:AC:global_group -y5:P<0.49.0> -0x0000000105daaef0:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105daaf10:SReturn addr 0x3D82348 () -=proc_heap:<0.61.0> -105DAA3D8:t5:AE:callback_cache,AC:global_group,H105DAA478,H105DAA4A0,H105DAA4C8 -105DAA4C8:E1F:g3F3DGdsb2JhbF9ncm91cHcLaGFuZGxlX2luZm9hAg== -105DAA4A0:E1F:g3F3DGdsb2JhbF9ncm91cHcLaGFuZGxlX2Nhc3RhAg== -105DAA478:E1F:g3F3DGdsb2JhbF9ncm91cHcLaGFuZGxlX2NhbGxhAw== -105DAAB68:tA:A5:state,A7:no_conf,N,H28007F1E8,N,N,A6:normal,H28007F1E8,H28007FCE8,A9:undefined -105DAA4F0:t2:A4:send,H28007F1D8 -105DAA580:t2:AA:$ancestors,H105DAA5C0 -105DAA5C0:lAA:kernel_sup|H105DAA600 -105DAA600:lP<0.47.0>|N -105DAA418:t2:A12:global_group_check,P<0.62.0> -105DAA430:t2:A10:registered_names,H28007F1D8 -105DAA518:t2:AC:whereis_name,H28007F1D8 -105DAA598:t2:AD:$initial_call,H105DAA5D0 -105DAA5D0:t3:AC:global_group,A4:init,I1 -=proc_stack:<0.62.0> -0x0000000105daf270:SReturn addr 0x3D82348 () -=proc_heap:<0.62.0> -=proc_dictionary:<0.63.0> -H105DAFF28 -H105DAFF40 -=proc_stack:<0.63.0> -y0:A5:false -y1:N -y2:A8:infinity -y3:H105DB0060 -y4:A11:erl_signal_server -y5:P<0.49.0> -0x0000000105db0568:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105db0588:SReturn addr 0x3D82348 () -=proc_heap:<0.63.0> -105DB0060:lH105DB0030|N -105DB0030:t5:A7:handler,A12:erl_signal_handler,A5:false,H28008FBD0,A5:false -105DAFF28:t2:AA:$ancestors,H105DAFF18 -105DAFF18:lAA:kernel_sup|H105DAFED8 -105DAFED8:lP<0.47.0>|N -105DAFF40:t2:AD:$initial_call,H280042BE0 -=proc_dictionary:<0.64.0> -H105DF31D8 -H105DF31F0 -=proc_stack:<0.64.0> -y0:N -y1:A8:infinity -y2:H105DF31A8 -y3:H105DFA798 -y4:P<0.64.0> -y5:P<0.49.0> -0x0000000105dfb420:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105dfb440:SReturn addr 0x3D82348 () -=proc_heap:<0.64.0> -105DF31A8:t5:AE:callback_cache,A11:supervisor_bridge,H105DF3230,H105DF3258,H105DF3280 -105DF3280:E24:g3F3EXN1cGVydmlzb3JfYnJpZGdldwtoYW5kbGVfaW5mb2EC -105DF3258:E24:g3F3EXN1cGVydmlzb3JfYnJpZGdldwtoYW5kbGVfY2FzdGEC -105DF3230:E24:g3F3EXN1cGVydmlzb3JfYnJpZGdldwtoYW5kbGVfY2FsbGED -105DFA798:t5:A5:state,A8:user_sup,P<0.69.0>,P<0.69.0>,H105DF3190 -105DF3190:t2:P<0.64.0>,A8:user_sup -105DF31D8:t2:AA:$ancestors,H105DF32A8 -105DF32A8:lAA:kernel_sup|H105DF3310 -105DF3310:lP<0.47.0>|N -105DF31F0:t2:AD:$initial_call,H105DF32B8 -105DF32B8:t3:A11:supervisor_bridge,A8:user_sup,I1 -=proc_dictionary:<0.65.0> -H105DAC538 -H105D87E18 -H105DAC250 -=proc_stack:<0.65.0> -y0:N -y1:A8:infinity -y2:H105D889A8 -y3:N -y4:H105DAC4F8 -0x0000000105d89030:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d89050:SReturn addr 0x3D82348 () -=proc_heap:<0.65.0> -105D889A8:t5:A5:state,H105D88990,N,H280082770,A5:false -105D88990:t2:A6:server,H105D88920 -105D88920:tA:A5:state,H105DAC3B0,H105DAC350,H105DAC398,A5:false,A9:undefined,P<0.69.0>,P<0.69.0>,H105D87DE8,H105D888F0 -105D888F0:t2:A5:false,H28005B2F8 -105D87DE8:t5:A2:gr,I1,I0,P<0.69.0>,H105D87E40 -105D87E40:lH105D87E50|N -105D87E50:t4:A5:group,I0,P<0.69.0>,H280010188 -105DAC398:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALBC+vQAAd/g02c= -105DAC350:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALBA+vQAAd/g02c= -105DAC3B0:t1A:A5:state,H105DAC2B8,H105DAC488,H105DAC2D0,H105DAC2E8,A4:true,N,N,N,N,A9:undefined,I125,I12,A5:false,H280086838,H280086850,H280086868,H280086880,H280086898,H2800868B0,H2800868C8,A5:false,A5:false,H2800868E0,H2800868F8,H105DAC320 -105DAC320:t5:AA:re_pattern,I0,I1,I0,H105DAC368 -105DAC368:Yc130931BD0:0:15E -105DAC2E8:Mf4:H280086920:A4:true,A5:false,A5:false,A5:false -105DAC2D0:t2:P<0.67.0>,H105DAC350 -105DAC488:t2:P<0.68.0>,H105DAC398 -105DAC2B8:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALA++vYAAd/g02c= -105DAC4F8:t7:A6:params,AF:state_functions,A5:false,P<0.65.0>,H105DAC598,A8:user_drv,A8:infinity -105DAC598:lA8:user_drv|N -105DAC538:t2:AA:$ancestors,H105DAC5A8 -105DAC5A8:lP<0.69.0>|H105DAC268 -105DAC268:lP<0.64.0>|H105DAC298 -105DAC298:lAA:kernel_sup|H105DAC2A8 -105DAC2A8:lP<0.47.0>|N -105D87E18:t2:AD:current_group,P<0.69.0> -105DAC250:t2:AD:$initial_call,H105DAC278 -105DAC278:t3:A8:user_drv,A4:init,I1 -=proc_dictionary:<0.67.0> -H105DAAFD8 -H105DAB010 -=proc_stack:<0.67.0> -y0:N -y1:H105DAB028 -y2:H105DAAF50 -0x0000000105dab640:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105dab660:SReturn addr 0x3D82348 () -=proc_heap:<0.67.0> -105DAB028:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALBA+vQAAd/g02c= -105DAAF50:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALA++vYAAd/g02c= -105DAAFD8:t2:AA:$ancestors,H105DAAFC8 -105DAAFC8:lA8:user_drv|H105DAAF88 -105DAAF88:lP<0.64.0>|H105DAAF78 -105DAAF78:lAA:kernel_sup|H105DAAF68 -105DAAF68:lP<0.47.0>|N -105DAB010:t2:AD:$initial_call,H105DAAFF0 -105DAAFF0:t3:A8:prim_tty,A6:writer,I1 -=proc_dictionary:<0.68.0> -H105DAB758 -H105DAB790 -=proc_stack:<0.68.0> -y0:N -y1:N -y2:H280086C10 -y3:A4:utf8 -y4:H105DAB7A8 -y5:H105DAB7C0 -y6:P<0.65.0> -y7:H105DAB6B0 -0x0000000105dabd90:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105dabdb0:SReturn addr 0x3D82348 () -=proc_heap:<0.68.0> -105DAB7A8:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALBC+vQAAd/g02c= -105DAB7C0:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALBD+vQAAd/g02c= -105DAB6B0:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALA++vYAAd/g02c= -105DAB758:t2:AA:$ancestors,H105DAB748 -105DAB748:lA8:user_drv|H105DAB708 -105DAB708:lP<0.64.0>|H105DAB6F8 -105DAB6F8:lAA:kernel_sup|H105DAB6E8 -105DAB6E8:lP<0.47.0>|N -105DAB790:t2:AD:$initial_call,H105DAB770 -105DAB770:t3:A8:prim_tty,A6:reader,I1 -=proc_dictionary:<0.69.0> -H105D89778 -H105D898F8 -H105D897E8 -H105D85E78 -H105D89810 -H105D89730 -H105D89748 -H105D89760 -=proc_stack:<0.69.0> -y0:N -y1:A2:ok -y2:P<0.65.0> -0x0000000105d89c18:SReturn addr 0x3D82348 () -=proc_heap:<0.69.0> -105D89778:t2:AD:unicode_state,A4:true -105D898F8:t2:AA:expand_fun,H2800870F0 -105D897E8:t2:A4:echo,A5:false -105D85E78:t2:AB:kill_buffer,N -105D89810:t2:AC:expand_below,A4:true -105D89730:t2:AB:line_buffer,N -105D89748:t2:A9:read_mode,A6:binary -105D89760:t2:A8:user_drv,P<0.65.0> -=proc_dictionary:<0.70.0> -H105D86A30 -H105D86A48 -=proc_stack:<0.70.0> -y0:N -y1:A8:infinity -y2:H105D86C90 -y3:H105D81B48 -y4:AA:logger_sup -y5:P<0.49.0> -0x0000000105d82070:SReturn addr 0x3E951BC (proc_lib:wake_up/3 + 220) -y0:N -y1:N -y2:SCatch 0x3E951E4 (proc_lib:wake_up/3 + 260) -0x0000000105d82090:SReturn addr 0x3D82348 () -=proc_heap:<0.70.0> -105D86C90:t5:AE:callback_cache,AA:supervisor,H105D86CC0,H105D86CE8,H105D86D10 -105D86D10:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105D86CE8:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105D86CC0:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105D81B48:tC:A5:state,H280088258,AB:one_for_one,H105D81B30,A9:undefined,I1,I5,N,I0,A5:never,AA:logger_sup,N -105D81B30:t2:H105D81B20,H105D81AC0 -105D81AC0:Mf4:H105D81AF8:H105D81718,H105D86BE0,H105D86C30,H105D81A70 -105D81AF8:t4:A7:default,A16:logger_handler_watcher,AC:logger_proxy,AB:ssl_handler -105D81A70:t9:A5:child,P<0.105.0>,AB:ssl_handler,H105D81A50,A9:temporary,A5:false,I2000,A6:worker,H280091F30 -105D81A50:t3:AA:logger_olp,AA:start_link,A9:undefined -105D86C30:t9:A5:child,P<0.72.0>,AC:logger_proxy,H28005A150,A9:temporary,A5:false,I2000,A6:worker,H28005A140 -105D86BE0:t9:A5:child,P<0.71.0>,A16:logger_handler_watcher,H2800882C0,A9:permanent,A5:false,AB:brutal_kill,A6:worker,H105D86C80 -105D86C80:lA16:logger_handler_watcher|N -105D81718:t9:A5:child,P<0.77.0>,A7:default,H105D817D8,A9:temporary,A5:false,I2000,A6:worker,H280091F30 -105D817D8:t3:AA:logger_olp,AA:start_link,A9:undefined -105D81B20:lAB:ssl_handler|H105D81698 -105D81698:lA7:default|H105D86B70 -105D86B70:lAC:logger_proxy|H105D86BB8 -105D86BB8:lA16:logger_handler_watcher|N -105D86A30:t2:AA:$ancestors,H105D86A70 -105D86A70:lAA:kernel_sup|H105D86AB0 -105D86AB0:lP<0.47.0>|N -105D86A48:t2:AD:$initial_call,H105D86A80 -105D86A80:t3:AA:supervisor,AA:logger_sup,I1 -=proc_dictionary:<0.71.0> -H105D85808 -H105D85840 -=proc_stack:<0.71.0> -y0:N -y1:A8:infinity -y2:H105D858D0 -y3:H105D85B58 -y4:A16:logger_handler_watcher -y5:P<0.70.0> -0x0000000105d85e38:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d85e58:SReturn addr 0x3D82348 () -=proc_heap:<0.71.0> -105D858D0:t5:AE:callback_cache,A16:logger_handler_watcher,H105D85858,H105D85880,H105D858A8 -105D858A8:E29:g3F3FmxvZ2dlcl9oYW5kbGVyX3dhdGNoZXJ3C2hhbmRsZV9pbmZvYQI= -105D85880:E29:g3F3FmxvZ2dlcl9oYW5kbGVyX3dhdGNoZXJ3C2hhbmRsZV9jYXN0YQI= -105D85858:E29:g3F3FmxvZ2dlcl9oYW5kbGVyX3dhdGNoZXJ3C2hhbmRsZV9jYWxsYQM= -105D85B58:t2:A5:state,H105D85B48 -105D85B48:lH105D859F0|H105D85B38 -105D859F0:t2:A7:default,H105D859D8 -105D859D8:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALCJ+vQAAd/g02c= -105D85B38:lH105D85B20|N -105D85B20:t2:AB:ssl_handler,H105D85B08 -105D85B08:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALFo+vQAAd/g02c= -105D85808:t2:AA:$ancestors,H105D857F8 -105D857F8:lAA:logger_sup|H105D857B8 -105D857B8:lAA:kernel_sup|H105D857A8 -105D857A8:lP<0.47.0>|N -105D85840:t2:AD:$initial_call,H105D85820 -105D85820:t3:A16:logger_handler_watcher,A4:init,I1 -=proc_dictionary:<0.72.0> -H105D89DB0 -H105D89DC8 -H105D89DE0 -=proc_stack:<0.72.0> -0x0000000105d8a748:SReturn addr 0x3F1CC18 (gen_server:try_handle_info/3 + 240) -y0:N -y1:N -y2:N -y3:AA:logger_olp -y4:H105D89CF8 -y5:H105DE8808 -y6:SCatch 0x3F1CC6C (gen_server:try_handle_info/3 + 324) -0x0000000105d8a788:SReturn addr 0x3F1D994 (gen_server:handle_msg/6 + 1028) -y0:A8:infinity -y1:H105D8A120 -y2:H105D89CF8 -y3:P<0.72.0> -y4:P<0.70.0> -y5:H105DE8808 -0x0000000105d8a7c0:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d8a7e0:SReturn addr 0x3D82348 () -=proc_heap:<0.72.0> -105D89CF8:Mf14:H105D89E18:AC:logger_proxy,AC:logger_proxy,A5:async,A4:true,A5:false,I1000,I5000,I500,I0,I-576460751881273,A8:no_state,I-576460751881273,I0,H105D89EC0,I5000,I500,I1000,A5:false,I3000000,I20000 -105D89E18:t14:A2:id,A6:module,A4:mode,A4:idle,A12:burst_limit_enable,AE:drop_mode_qlen,AA:flush_qlen,AE:sync_mode_qlen,AF:burst_msg_count,AC:burst_win_ts,A8:cb_state,AC:last_load_ts,A9:last_qlen,A8:mode_ref,A1B:overload_kill_restart_after,A15:burst_limit_max_count,A17:burst_limit_window_time,A14:overload_kill_enable,A16:overload_kill_mem_size,A12:overload_kill_qlen -105D89EC0:t2:AA:logger_olp,AC:logger_proxy -105DE8808:t5:A3:log,A5:error,H105DE5C18,H105DE8758,H105DE87D0 -105DE87D0:Mf4:H105DE87A8:H105DE8768,P<0.134.0>,I1701928823965135,P<0.69.0> -105DE87A8:t4:AC:error_logger,A3:pid,A4:time,A2:gl -105DE8768:Mf2:H105DE8790:A4:true,A5:error -105DE8790:t2:A8:emulator,A3:tag -105DE8758:lP<0.134.0>|H105DE5C28 -105DE5C28:lH105DE5C38|N -105DE5C38:t2:H105DE5C50,H105DE5C90 -105DE5C90:lH105DE5D10|H105DE5CA0 -105DE5D10:t4:A23:showtime@internal@reports@formatter,A1C:-create_test_report/1-fun-4-,I1,H105DE5DD8 -105DE5DD8:lH105DE5E78|H105DE5DE8 -105DE5E78:t2:A4:file,H105DE86B8 -105DE86B8:lI47|H105DE86A8 -105DE86A8:lI85|H105DE8698 -105DE8698:lI115|H105DE8688 -105DE8688:lI101|H105DE8678 -105DE8678:lI114|H105DE8668 -105DE8668:lI115|H105DE8658 -105DE8658:lI47|H105DE8648 -105DE8648:lI110|H105DE8638 -105DE8638:lI105|H105DE8628 -105DE8628:lI99|H105DE8618 -105DE8618:lI104|H105DE8608 -105DE8608:lI111|H105DE85F8 -105DE85F8:lI108|H105DE85E8 -105DE85E8:lI97|H105DE85D8 -105DE85D8:lI115|H105DE85C8 -105DE85C8:lI99|H105DE85B8 -105DE85B8:lI97|H105DE85A8 -105DE85A8:lI114|H105DE8598 -105DE8598:lI108|H105DE8588 -105DE8588:lI115|H105DE8578 -105DE8578:lI111|H105DE8568 -105DE8568:lI110|H105DE8558 -105DE8558:lI47|H105DE8548 -105DE8548:lI86|H105DE8538 -105DE8538:lI83|H105DE8528 -105DE8528:lI32|H105DE8518 -105DE8518:lI67|H105DE8508 -105DE8508:lI111|H105DE84F8 -105DE84F8:lI100|H105DE84E8 -105DE84E8:lI101|H105DE84D8 -105DE84D8:lI47|H105DE84C8 -105DE84C8:lI65|H105DE84B8 -105DE84B8:lI100|H105DE84A8 -105DE84A8:lI118|H105DE8498 -105DE8498:lI101|H105DE8488 -105DE8488:lI110|H105DE8478 -105DE8478:lI116|H105DE8468 -105DE8468:lI79|H105DE8458 -105DE8458:lI102|H105DE8448 -105DE8448:lI67|H105DE8438 -105DE8438:lI111|H105DE8428 -105DE8428:lI100|H105DE8418 -105DE8418:lI101|H105DE8408 -105DE8408:lI47|H105DE83F8 -105DE83F8:lI97|H105DE83E8 -105DE83E8:lI111|H105DE83D8 -105DE83D8:lI99|H105DE83C8 -105DE83C8:lI50|H105DE83B8 -105DE83B8:lI48|H105DE83A8 -105DE83A8:lI50|H105DE8398 -105DE8398:lI51|H105DE8388 -105DE8388:lI47|H105DE8378 -105DE8378:lI98|H105DE8368 -105DE8368:lI117|H105DE8358 -105DE8358:lI105|H105DE8348 -105DE8348:lI108|H105DE8338 -105DE8338:lI100|H105DE8328 -105DE8328:lI47|H105DE8318 -105DE8318:lI100|H105DE8308 -105DE8308:lI101|H105DE82F8 -105DE82F8:lI118|H105DE82E8 -105DE82E8:lI47|H105DE82D8 -105DE82D8:lI101|H105DE82C8 -105DE82C8:lI114|H105DE82B8 -105DE82B8:lI108|H105DE82A8 -105DE82A8:lI97|H105DE8298 -105DE8298:lI110|H105DE8288 -105DE8288:lI103|H105DE8278 -105DE8278:lI47|H105DE8268 -105DE8268:lI97|H105DE8258 -105DE8258:lI100|H105DE8248 -105DE8248:lI103|H105DE8238 -105DE8238:lI108|H105DE8228 -105DE8228:lI101|H105DE8218 -105DE8218:lI110|H105DE8208 -105DE8208:lI116|H105DE81F8 -105DE81F8:lI47|H105DE81E8 -105DE81E8:lI95|H105DE81D8 -105DE81D8:lI103|H105DE81C8 -105DE81C8:lI108|H105DE81B8 -105DE81B8:lI101|H105DE81A8 -105DE81A8:lI97|H105DE8198 -105DE8198:lI109|H105DE8188 -105DE8188:lI95|H105DE8178 -105DE8178:lI97|H105DE8168 -105DE8168:lI114|H105DE8158 -105DE8158:lI116|H105DE8148 -105DE8148:lI101|H105DE8138 -105DE8138:lI102|H105DE8128 -105DE8128:lI97|H105DE8118 -105DE8118:lI99|H105DE8108 -105DE8108:lI116|H105DE80F8 -105DE80F8:lI115|H105DE80E8 -105DE80E8:lI47|H105DE80D8 -105DE80D8:lI115|H105DE80C8 -105DE80C8:lI104|H105DE80B8 -105DE80B8:lI111|H105DE80A8 -105DE80A8:lI119|H105DE8098 -105DE8098:lI116|H105DE8088 -105DE8088:lI105|H105DE8078 -105DE8078:lI109|H105DE8068 -105DE8068:lI101|H105DE8058 -105DE8058:lI64|H105DE8048 -105DE8048:lI105|H105DE8038 -105DE8038:lI110|H105DE8028 -105DE8028:lI116|H105DE8018 -105DE8018:lI101|H105DE8008 -105DE8008:lI114|H105DE7FF8 -105DE7FF8:lI110|H105DE7FE8 -105DE7FE8:lI97|H105DE7FD8 -105DE7FD8:lI108|H105DE7FC8 -105DE7FC8:lI64|H105DE7FB8 -105DE7FB8:lI114|H105DE7FA8 -105DE7FA8:lI101|H105DE7F98 -105DE7F98:lI112|H105DE7F88 -105DE7F88:lI111|H105DE7F78 -105DE7F78:lI114|H105DE7F68 -105DE7F68:lI116|H105DE7F58 -105DE7F58:lI115|H105DE7F48 -105DE7F48:lI64|H105DE7F38 -105DE7F38:lI102|H105DE7F28 -105DE7F28:lI111|H105DE7F18 -105DE7F18:lI114|H105DE7F08 -105DE7F08:lI109|H105DE7EF8 -105DE7EF8:lI97|H105DE7EE8 -105DE7EE8:lI116|H105DE7ED8 -105DE7ED8:lI116|H105DE7EC8 -105DE7EC8:lI101|H105DE7EB8 -105DE7EB8:lI114|H105DE7EA8 -105DE7EA8:lI46|H105DE7E98 -105DE7E98:lI101|H105DE7E88 -105DE7E88:lI114|H105DE7E78 -105DE7E78:lI108|N -105DE5DE8:lH105DE5E90|N -105DE5E90:t2:A4:line,I665 -105DE5CA0:lH105DE5D38|H105DE5CB0 -105DE5D38:t4:AA:gleam@list,AD:do_filter_map,I3,H105DE5DF8 -105DE5DF8:lH105DE5EA8|H105DE5E08 -105DE5EA8:t2:A4:file,H105DE7E68 -105DE7E68:lI47|H105DE7E58 -105DE7E58:lI85|H105DE7E48 -105DE7E48:lI115|H105DE7E38 -105DE7E38:lI101|H105DE7E28 -105DE7E28:lI114|H105DE7E18 -105DE7E18:lI115|H105DE7E08 -105DE7E08:lI47|H105DE7DF8 -105DE7DF8:lI110|H105DE7DE8 -105DE7DE8:lI105|H105DE7DD8 -105DE7DD8:lI99|H105DE7DC8 -105DE7DC8:lI104|H105DE7DB8 -105DE7DB8:lI111|H105DE7DA8 -105DE7DA8:lI108|H105DE7D98 -105DE7D98:lI97|H105DE7D88 -105DE7D88:lI115|H105DE7D78 -105DE7D78:lI99|H105DE7D68 -105DE7D68:lI97|H105DE7D58 -105DE7D58:lI114|H105DE7D48 -105DE7D48:lI108|H105DE7D38 -105DE7D38:lI115|H105DE7D28 -105DE7D28:lI111|H105DE7D18 -105DE7D18:lI110|H105DE7D08 -105DE7D08:lI47|H105DE7CF8 -105DE7CF8:lI86|H105DE7CE8 -105DE7CE8:lI83|H105DE7CD8 -105DE7CD8:lI32|H105DE7CC8 -105DE7CC8:lI67|H105DE7CB8 -105DE7CB8:lI111|H105DE7CA8 -105DE7CA8:lI100|H105DE7C98 -105DE7C98:lI101|H105DE7C88 -105DE7C88:lI47|H105DE7C78 -105DE7C78:lI65|H105DE7C68 -105DE7C68:lI100|H105DE7C58 -105DE7C58:lI118|H105DE7C48 -105DE7C48:lI101|H105DE7C38 -105DE7C38:lI110|H105DE7C28 -105DE7C28:lI116|H105DE7C18 -105DE7C18:lI79|H105DE7C08 -105DE7C08:lI102|H105DE7BF8 -105DE7BF8:lI67|H105DE7BE8 -105DE7BE8:lI111|H105DE7BD8 -105DE7BD8:lI100|H105DE7BC8 -105DE7BC8:lI101|H105DE7BB8 -105DE7BB8:lI47|H105DE7BA8 -105DE7BA8:lI97|H105DE7B98 -105DE7B98:lI111|H105DE7B88 -105DE7B88:lI99|H105DE7B78 -105DE7B78:lI50|H105DE7B68 -105DE7B68:lI48|H105DE7B58 -105DE7B58:lI50|H105DE7B48 -105DE7B48:lI51|H105DE7B38 -105DE7B38:lI47|H105DE7B28 -105DE7B28:lI98|H105DE7B18 -105DE7B18:lI117|H105DE7B08 -105DE7B08:lI105|H105DE7AF8 -105DE7AF8:lI108|H105DE7AE8 -105DE7AE8:lI100|H105DE7AD8 -105DE7AD8:lI47|H105DE7AC8 -105DE7AC8:lI100|H105DE7AB8 -105DE7AB8:lI101|H105DE7AA8 -105DE7AA8:lI118|H105DE7A98 -105DE7A98:lI47|H105DE7A88 -105DE7A88:lI101|H105DE7A78 -105DE7A78:lI114|H105DE7A68 -105DE7A68:lI108|H105DE7A58 -105DE7A58:lI97|H105DE7A48 -105DE7A48:lI110|H105DE7A38 -105DE7A38:lI103|H105DE7A28 -105DE7A28:lI47|H105DE7A18 -105DE7A18:lI103|H105DE7A08 -105DE7A08:lI108|H105DE79F8 -105DE79F8:lI101|H105DE79E8 -105DE79E8:lI97|H105DE79D8 -105DE79D8:lI109|H105DE79C8 -105DE79C8:lI95|H105DE79B8 -105DE79B8:lI115|H105DE79A8 -105DE79A8:lI116|H105DE7998 -105DE7998:lI100|H105DE7988 -105DE7988:lI108|H105DE7978 -105DE7978:lI105|H105DE7968 -105DE7968:lI98|H105DE7958 -105DE7958:lI47|H105DE7948 -105DE7948:lI95|H105DE7938 -105DE7938:lI103|H105DE7928 -105DE7928:lI108|H105DE7918 -105DE7918:lI101|H105DE7908 -105DE7908:lI97|H105DE78F8 -105DE78F8:lI109|H105DE78E8 -105DE78E8:lI95|H105DE78D8 -105DE78D8:lI97|H105DE78C8 -105DE78C8:lI114|H105DE78B8 -105DE78B8:lI116|H105DE78A8 -105DE78A8:lI101|H105DE7898 -105DE7898:lI102|H105DE7888 -105DE7888:lI97|H105DE7878 -105DE7878:lI99|H105DE7868 -105DE7868:lI116|H105DE7858 -105DE7858:lI115|H105DE7848 -105DE7848:lI47|H105DE7838 -105DE7838:lI103|H105DE7828 -105DE7828:lI108|H105DE7818 -105DE7818:lI101|H105DE7808 -105DE7808:lI97|H105DE77F8 -105DE77F8:lI109|H105DE77E8 -105DE77E8:lI64|H105DE77D8 -105DE77D8:lI108|H105DE77C8 -105DE77C8:lI105|H105DE77B8 -105DE77B8:lI115|H105DE77A8 -105DE77A8:lI116|H105DE7798 -105DE7798:lI46|H105DE7788 -105DE7788:lI101|H105DE7778 -105DE7778:lI114|H105DE7768 -105DE7768:lI108|N -105DE5E08:lH105DE5EC0|N -105DE5EC0:t2:A4:line,I94 -105DE5CB0:lH105DE5D60|H105DE5CC0 -105DE5D60:t4:A23:showtime@internal@reports@formatter,A12:create_test_report,I1,H105DE5E18 -105DE5E18:lH105DE5ED8|H105DE5E28 -105DE5ED8:t2:A4:file,H105DE7758 -105DE7758:lI47|H105DE7748 -105DE7748:lI85|H105DE7738 -105DE7738:lI115|H105DE7728 -105DE7728:lI101|H105DE7718 -105DE7718:lI114|H105DE7708 -105DE7708:lI115|H105DE76F8 -105DE76F8:lI47|H105DE76E8 -105DE76E8:lI110|H105DE76D8 -105DE76D8:lI105|H105DE76C8 -105DE76C8:lI99|H105DE76B8 -105DE76B8:lI104|H105DE76A8 -105DE76A8:lI111|H105DE7698 -105DE7698:lI108|H105DE7688 -105DE7688:lI97|H105DE7678 -105DE7678:lI115|H105DE7668 -105DE7668:lI99|H105DE7658 -105DE7658:lI97|H105DE7648 -105DE7648:lI114|H105DE7638 -105DE7638:lI108|H105DE7628 -105DE7628:lI115|H105DE7618 -105DE7618:lI111|H105DE7608 -105DE7608:lI110|H105DE75F8 -105DE75F8:lI47|H105DE75E8 -105DE75E8:lI86|H105DE75D8 -105DE75D8:lI83|H105DE75C8 -105DE75C8:lI32|H105DE75B8 -105DE75B8:lI67|H105DE75A8 -105DE75A8:lI111|H105DE7598 -105DE7598:lI100|H105DE7588 -105DE7588:lI101|H105DE7578 -105DE7578:lI47|H105DE7568 -105DE7568:lI65|H105DE7558 -105DE7558:lI100|H105DE7548 -105DE7548:lI118|H105DE7538 -105DE7538:lI101|H105DE7528 -105DE7528:lI110|H105DE7518 -105DE7518:lI116|H105DE7508 -105DE7508:lI79|H105DE74F8 -105DE74F8:lI102|H105DE74E8 -105DE74E8:lI67|H105DE74D8 -105DE74D8:lI111|H105DE74C8 -105DE74C8:lI100|H105DE74B8 -105DE74B8:lI101|H105DE74A8 -105DE74A8:lI47|H105DE7498 -105DE7498:lI97|H105DE7488 -105DE7488:lI111|H105DE7478 -105DE7478:lI99|H105DE7468 -105DE7468:lI50|H105DE7458 -105DE7458:lI48|H105DE7448 -105DE7448:lI50|H105DE7438 -105DE7438:lI51|H105DE7428 -105DE7428:lI47|H105DE7418 -105DE7418:lI98|H105DE7408 -105DE7408:lI117|H105DE73F8 -105DE73F8:lI105|H105DE73E8 -105DE73E8:lI108|H105DE73D8 -105DE73D8:lI100|H105DE73C8 -105DE73C8:lI47|H105DE73B8 -105DE73B8:lI100|H105DE73A8 -105DE73A8:lI101|H105DE7398 -105DE7398:lI118|H105DE7388 -105DE7388:lI47|H105DE7378 -105DE7378:lI101|H105DE7368 -105DE7368:lI114|H105DE7358 -105DE7358:lI108|H105DE7348 -105DE7348:lI97|H105DE7338 -105DE7338:lI110|H105DE7328 -105DE7328:lI103|H105DE7318 -105DE7318:lI47|H105DE7308 -105DE7308:lI97|H105DE72F8 -105DE72F8:lI100|H105DE72E8 -105DE72E8:lI103|H105DE72D8 -105DE72D8:lI108|H105DE72C8 -105DE72C8:lI101|H105DE72B8 -105DE72B8:lI110|H105DE72A8 -105DE72A8:lI116|H105DE7298 -105DE7298:lI47|H105DE7288 -105DE7288:lI95|H105DE7278 -105DE7278:lI103|H105DE7268 -105DE7268:lI108|H105DE7258 -105DE7258:lI101|H105DE7248 -105DE7248:lI97|H105DE7238 -105DE7238:lI109|H105DE7228 -105DE7228:lI95|H105DE7218 -105DE7218:lI97|H105DE7208 -105DE7208:lI114|H105DE71F8 -105DE71F8:lI116|H105DE71E8 -105DE71E8:lI101|H105DE71D8 -105DE71D8:lI102|H105DE71C8 -105DE71C8:lI97|H105DE71B8 -105DE71B8:lI99|H105DE71A8 -105DE71A8:lI116|H105DE7198 -105DE7198:lI115|H105DE7188 -105DE7188:lI47|H105DE7178 -105DE7178:lI115|H105DE7168 -105DE7168:lI104|H105DE7158 -105DE7158:lI111|H105DE7148 -105DE7148:lI119|H105DE7138 -105DE7138:lI116|H105DE7128 -105DE7128:lI105|H105DE7118 -105DE7118:lI109|H105DE7108 -105DE7108:lI101|H105DE70F8 -105DE70F8:lI64|H105DE70E8 -105DE70E8:lI105|H105DE70D8 -105DE70D8:lI110|H105DE70C8 -105DE70C8:lI116|H105DE70B8 -105DE70B8:lI101|H105DE70A8 -105DE70A8:lI114|H105DE7098 -105DE7098:lI110|H105DE7088 -105DE7088:lI97|H105DE7078 -105DE7078:lI108|H105DE7068 -105DE7068:lI64|H105DE7058 -105DE7058:lI114|H105DE7048 -105DE7048:lI101|H105DE7038 -105DE7038:lI112|H105DE7028 -105DE7028:lI111|H105DE7018 -105DE7018:lI114|H105DE7008 -105DE7008:lI116|H105DE6FF8 -105DE6FF8:lI115|H105DE6FE8 -105DE6FE8:lI64|H105DE6FD8 -105DE6FD8:lI102|H105DE6FC8 -105DE6FC8:lI111|H105DE6FB8 -105DE6FB8:lI114|H105DE6FA8 -105DE6FA8:lI109|H105DE6F98 -105DE6F98:lI97|H105DE6F88 -105DE6F88:lI116|H105DE6F78 -105DE6F78:lI116|H105DE6F68 -105DE6F68:lI101|H105DE6F58 -105DE6F58:lI114|H105DE6F48 -105DE6F48:lI46|H105DE6F38 -105DE6F38:lI101|H105DE6F28 -105DE6F28:lI114|H105DE6F18 -105DE6F18:lI108|N -105DE5E28:lH105DE5EF0|N -105DE5EF0:t2:A4:line,I486 -105DE5CC0:lH105DE5D88|H105DE5CD0 -105DE5D88:t4:A26:showtime@internal@erlang@event_handler,AF:-start/0-fun-1-,I2,H105DE5E38 -105DE5E38:lH105DE5F08|H105DE5E48 -105DE5F08:t2:A4:file,H105DE6F08 -105DE6F08:lI47|H105DE6EF8 -105DE6EF8:lI85|H105DE6EE8 -105DE6EE8:lI115|H105DE6ED8 -105DE6ED8:lI101|H105DE6EC8 -105DE6EC8:lI114|H105DE6EB8 -105DE6EB8:lI115|H105DE6EA8 -105DE6EA8:lI47|H105DE6E98 -105DE6E98:lI110|H105DE6E88 -105DE6E88:lI105|H105DE6E78 -105DE6E78:lI99|H105DE6E68 -105DE6E68:lI104|H105DE6E58 -105DE6E58:lI111|H105DE6E48 -105DE6E48:lI108|H105DE6E38 -105DE6E38:lI97|H105DE6E28 -105DE6E28:lI115|H105DE6E18 -105DE6E18:lI99|H105DE6E08 -105DE6E08:lI97|H105DE6DF8 -105DE6DF8:lI114|H105DE6DE8 -105DE6DE8:lI108|H105DE6DD8 -105DE6DD8:lI115|H105DE6DC8 -105DE6DC8:lI111|H105DE6DB8 -105DE6DB8:lI110|H105DE6DA8 -105DE6DA8:lI47|H105DE6D98 -105DE6D98:lI86|H105DE6D88 -105DE6D88:lI83|H105DE6D78 -105DE6D78:lI32|H105DE6D68 -105DE6D68:lI67|H105DE6D58 -105DE6D58:lI111|H105DE6D48 -105DE6D48:lI100|H105DE6D38 -105DE6D38:lI101|H105DE6D28 -105DE6D28:lI47|H105DE6D18 -105DE6D18:lI65|H105DE6D08 -105DE6D08:lI100|H105DE6CF8 -105DE6CF8:lI118|H105DE6CE8 -105DE6CE8:lI101|H105DE6CD8 -105DE6CD8:lI110|H105DE6CC8 -105DE6CC8:lI116|H105DE6CB8 -105DE6CB8:lI79|H105DE6CA8 -105DE6CA8:lI102|H105DE6C98 -105DE6C98:lI67|H105DE6C88 -105DE6C88:lI111|H105DE6C78 -105DE6C78:lI100|H105DE6C68 -105DE6C68:lI101|H105DE6C58 -105DE6C58:lI47|H105DE6C48 -105DE6C48:lI97|H105DE6C38 -105DE6C38:lI111|H105DE6C28 -105DE6C28:lI99|H105DE6C18 -105DE6C18:lI50|H105DE6C08 -105DE6C08:lI48|H105DE6BF8 -105DE6BF8:lI50|H105DE6BE8 -105DE6BE8:lI51|H105DE6BD8 -105DE6BD8:lI47|H105DE6BC8 -105DE6BC8:lI98|H105DE6BB8 -105DE6BB8:lI117|H105DE6BA8 -105DE6BA8:lI105|H105DE6B98 -105DE6B98:lI108|H105DE6B88 -105DE6B88:lI100|H105DE6B78 -105DE6B78:lI47|H105DE6B68 -105DE6B68:lI100|H105DE6B58 -105DE6B58:lI101|H105DE6B48 -105DE6B48:lI118|H105DE6B38 -105DE6B38:lI47|H105DE6B28 -105DE6B28:lI101|H105DE6B18 -105DE6B18:lI114|H105DE6B08 -105DE6B08:lI108|H105DE6AF8 -105DE6AF8:lI97|H105DE6AE8 -105DE6AE8:lI110|H105DE6AD8 -105DE6AD8:lI103|H105DE6AC8 -105DE6AC8:lI47|H105DE6AB8 -105DE6AB8:lI97|H105DE6AA8 -105DE6AA8:lI100|H105DE6A98 -105DE6A98:lI103|H105DE6A88 -105DE6A88:lI108|H105DE6A78 -105DE6A78:lI101|H105DE6A68 -105DE6A68:lI110|H105DE6A58 -105DE6A58:lI116|H105DE6A48 -105DE6A48:lI47|H105DE6A38 -105DE6A38:lI95|H105DE6A28 -105DE6A28:lI103|H105DE6A18 -105DE6A18:lI108|H105DE6A08 -105DE6A08:lI101|H105DE69F8 -105DE69F8:lI97|H105DE69E8 -105DE69E8:lI109|H105DE69D8 -105DE69D8:lI95|H105DE69C8 -105DE69C8:lI97|H105DE69B8 -105DE69B8:lI114|H105DE69A8 -105DE69A8:lI116|H105DE6998 -105DE6998:lI101|H105DE6988 -105DE6988:lI102|H105DE6978 -105DE6978:lI97|H105DE6968 -105DE6968:lI99|H105DE6958 -105DE6958:lI116|H105DE6948 -105DE6948:lI115|H105DE6938 -105DE6938:lI47|H105DE6928 -105DE6928:lI115|H105DE6918 -105DE6918:lI104|H105DE6908 -105DE6908:lI111|H105DE68F8 -105DE68F8:lI119|H105DE68E8 -105DE68E8:lI116|H105DE68D8 -105DE68D8:lI105|H105DE68C8 -105DE68C8:lI109|H105DE68B8 -105DE68B8:lI101|H105DE68A8 -105DE68A8:lI64|H105DE6898 -105DE6898:lI105|H105DE6888 -105DE6888:lI110|H105DE6878 -105DE6878:lI116|H105DE6868 -105DE6868:lI101|H105DE6858 -105DE6858:lI114|H105DE6848 -105DE6848:lI110|H105DE6838 -105DE6838:lI97|H105DE6828 -105DE6828:lI108|H105DE6818 -105DE6818:lI64|H105DE6808 -105DE6808:lI101|H105DE67F8 -105DE67F8:lI114|H105DE67E8 -105DE67E8:lI108|H105DE67D8 -105DE67D8:lI97|H105DE67C8 -105DE67C8:lI110|H105DE67B8 -105DE67B8:lI103|H105DE67A8 -105DE67A8:lI64|H105DE6798 -105DE6798:lI101|H105DE6788 -105DE6788:lI118|H105DE6778 -105DE6778:lI101|H105DE6768 -105DE6768:lI110|H105DE6758 -105DE6758:lI116|H105DE6748 -105DE6748:lI95|H105DE6738 -105DE6738:lI104|H105DE6728 -105DE6728:lI97|H105DE6718 -105DE6718:lI110|H105DE6708 -105DE6708:lI100|H105DE66F8 -105DE66F8:lI108|H105DE66E8 -105DE66E8:lI101|H105DE66D8 -105DE66D8:lI114|H105DE66C8 -105DE66C8:lI46|H105DE66B8 -105DE66B8:lI101|H105DE66A8 -105DE66A8:lI114|H105DE6698 -105DE6698:lI108|N -105DE5E48:lH105DE5F20|N -105DE5F20:t2:A4:line,I29 -105DE5CD0:lH105DE5DB0|N -105DE5DB0:t4:AF:gleam@otp@actor,A4:loop,I1,H105DE5E58 -105DE5E58:lH105DE5F38|H105DE5E68 -105DE5F38:t2:A4:file,H105DE6688 -105DE6688:lI47|H105DE6678 -105DE6678:lI85|H105DE6668 -105DE6668:lI115|H105DE6658 -105DE6658:lI101|H105DE6648 -105DE6648:lI114|H105DE6638 -105DE6638:lI115|H105DE6628 -105DE6628:lI47|H105DE6618 -105DE6618:lI110|H105DE6608 -105DE6608:lI105|H105DE65F8 -105DE65F8:lI99|H105DE65E8 -105DE65E8:lI104|H105DE65D8 -105DE65D8:lI111|H105DE65C8 -105DE65C8:lI108|H105DE65B8 -105DE65B8:lI97|H105DE65A8 -105DE65A8:lI115|H105DE6598 -105DE6598:lI99|H105DE6588 -105DE6588:lI97|H105DE6578 -105DE6578:lI114|H105DE6568 -105DE6568:lI108|H105DE6558 -105DE6558:lI115|H105DE6548 -105DE6548:lI111|H105DE6538 -105DE6538:lI110|H105DE6528 -105DE6528:lI47|H105DE6518 -105DE6518:lI86|H105DE6508 -105DE6508:lI83|H105DE64F8 -105DE64F8:lI32|H105DE64E8 -105DE64E8:lI67|H105DE64D8 -105DE64D8:lI111|H105DE64C8 -105DE64C8:lI100|H105DE64B8 -105DE64B8:lI101|H105DE64A8 -105DE64A8:lI47|H105DE6498 -105DE6498:lI65|H105DE6488 -105DE6488:lI100|H105DE6478 -105DE6478:lI118|H105DE6468 -105DE6468:lI101|H105DE6458 -105DE6458:lI110|H105DE6448 -105DE6448:lI116|H105DE6438 -105DE6438:lI79|H105DE6428 -105DE6428:lI102|H105DE6418 -105DE6418:lI67|H105DE6408 -105DE6408:lI111|H105DE63F8 -105DE63F8:lI100|H105DE63E8 -105DE63E8:lI101|H105DE63D8 -105DE63D8:lI47|H105DE63C8 -105DE63C8:lI97|H105DE63B8 -105DE63B8:lI111|H105DE63A8 -105DE63A8:lI99|H105DE6398 -105DE6398:lI50|H105DE6388 -105DE6388:lI48|H105DE6378 -105DE6378:lI50|H105DE6368 -105DE6368:lI51|H105DE6358 -105DE6358:lI47|H105DE6348 -105DE6348:lI98|H105DE6338 -105DE6338:lI117|H105DE6328 -105DE6328:lI105|H105DE6318 -105DE6318:lI108|H105DE6308 -105DE6308:lI100|H105DE62F8 -105DE62F8:lI47|H105DE62E8 -105DE62E8:lI100|H105DE62D8 -105DE62D8:lI101|H105DE62C8 -105DE62C8:lI118|H105DE62B8 -105DE62B8:lI47|H105DE62A8 -105DE62A8:lI101|H105DE6298 -105DE6298:lI114|H105DE6288 -105DE6288:lI108|H105DE6278 -105DE6278:lI97|H105DE6268 -105DE6268:lI110|H105DE6258 -105DE6258:lI103|H105DE6248 -105DE6248:lI47|H105DE6238 -105DE6238:lI103|H105DE6228 -105DE6228:lI108|H105DE6218 -105DE6218:lI101|H105DE6208 -105DE6208:lI97|H105DE61F8 -105DE61F8:lI109|H105DE61E8 -105DE61E8:lI95|H105DE61D8 -105DE61D8:lI111|H105DE61C8 -105DE61C8:lI116|H105DE61B8 -105DE61B8:lI112|H105DE61A8 -105DE61A8:lI47|H105DE6198 -105DE6198:lI95|H105DE6188 -105DE6188:lI103|H105DE6178 -105DE6178:lI108|H105DE6168 -105DE6168:lI101|H105DE6158 -105DE6158:lI97|H105DE6148 -105DE6148:lI109|H105DE6138 -105DE6138:lI95|H105DE6128 -105DE6128:lI97|H105DE6118 -105DE6118:lI114|H105DE6108 -105DE6108:lI116|H105DE60F8 -105DE60F8:lI101|H105DE60E8 -105DE60E8:lI102|H105DE60D8 -105DE60D8:lI97|H105DE60C8 -105DE60C8:lI99|H105DE60B8 -105DE60B8:lI116|H105DE60A8 -105DE60A8:lI115|H105DE6098 -105DE6098:lI47|H105DE6088 -105DE6088:lI103|H105DE6078 -105DE6078:lI108|H105DE6068 -105DE6068:lI101|H105DE6058 -105DE6058:lI97|H105DE6048 -105DE6048:lI109|H105DE6038 -105DE6038:lI64|H105DE6028 -105DE6028:lI111|H105DE6018 -105DE6018:lI116|H105DE6008 -105DE6008:lI112|H105DE5FF8 -105DE5FF8:lI64|H105DE5FE8 -105DE5FE8:lI97|H105DE5FD8 -105DE5FD8:lI99|H105DE5FC8 -105DE5FC8:lI116|H105DE5FB8 -105DE5FB8:lI111|H105DE5FA8 -105DE5FA8:lI114|H105DE5F98 -105DE5F98:lI46|H105DE5F88 -105DE5F88:lI101|H105DE5F78 -105DE5F78:lI114|H105DE5F68 -105DE5F68:lI108|N -105DE5E68:lH105DE5F50|N -105DE5F50:t2:A4:line,I150 -105DE5C50:Mf5:H105DE5CE0:H105DE8730,I178,H105DE8700,H105DE86C8,A5:panic -105DE5CE0:t5:A8:function,A4:line,A7:message,A6:module,AB:gleam_error -105DE86C8:Yh23:c2hvd3RpbWUvaW50ZXJuYWwvcmVwb3J0cy9mb3JtYXR0ZXI= -105DE8700:Yh1A:cGFuaWMgZXhwcmVzc2lvbiBldmFsdWF0ZWQ= -105DE8730:Yh12:Y3JlYXRlX3Rlc3RfcmVwb3J0 -105DE5C18:lI69|H105DE5C08 -105DE5C08:lI114|H105DE5BF8 -105DE5BF8:lI114|H105DE5BE8 -105DE5BE8:lI111|H105DE5BD8 -105DE5BD8:lI114|H105DE5BC8 -105DE5BC8:lI32|H105DE5BB8 -105DE5BB8:lI105|H105DE5BA8 -105DE5BA8:lI110|H105DE5B98 -105DE5B98:lI32|H105DE5B88 -105DE5B88:lI112|H105DE5B78 -105DE5B78:lI114|H105DE5B68 -105DE5B68:lI111|H105DE5B58 -105DE5B58:lI99|H105DE5B48 -105DE5B48:lI101|H105DE5B38 -105DE5B38:lI115|H105DE5B28 -105DE5B28:lI115|H105DE5B18 -105DE5B18:lI32|H105DE5B08 -105DE5B08:lI126|H105DE5AF8 -105DE5AF8:lI112|H105DE5AE8 -105DE5AE8:lI32|H105DE5AD8 -105DE5AD8:lI119|H105DE5AC8 -105DE5AC8:lI105|H105DE5AB8 -105DE5AB8:lI116|H105DE5AA8 -105DE5AA8:lI104|H105DE5A98 -105DE5A98:lI32|H105DE5A88 -105DE5A88:lI101|H105DE5A78 -105DE5A78:lI120|H105DE5A68 -105DE5A68:lI105|H105DE5A58 -105DE5A58:lI116|H105DE5A48 -105DE5A48:lI32|H105DE5A38 -105DE5A38:lI118|H105DE5A28 -105DE5A28:lI97|H105DE5A18 -105DE5A18:lI108|H105DE5A08 -105DE5A08:lI117|H105DE59F8 -105DE59F8:lI101|H105DE59E8 -105DE59E8:lI58|H105DE59D8 -105DE59D8:lI126|H105DE59C8 -105DE59C8:lI110|H105DE59B8 -105DE59B8:lI126|H105DE59A8 -105DE59A8:lI112|H105DE5998 -105DE5998:lI126|H105DE5988 -105DE5988:lI110|N -105D8A120:t5:AE:callback_cache,AA:logger_olp,H105D8A0A8,H105D8A0D0,H105D8A0F8 -105D8A0F8:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9pbmZvYQI= -105D8A0D0:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9jYXN0YQI= -105D8A0A8:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9jYWxsYQM= -105D89DB0:t2:A7:olp_ref,H105D89ED8 -105D89ED8:t3:AC:logger_proxy,P<0.72.0>,H105D89EC0 -105D89DC8:t2:AA:$ancestors,H105D89EF8 -105D89EF8:lAA:logger_sup|H105D89F48 -105D89F48:lAA:kernel_sup|H105D89F78 -105D89F78:lP<0.47.0>|N -105D89DE0:t2:AD:$initial_call,H105D89F08 -105D89F08:t3:AA:logger_olp,A4:init,I1 -=proc_dictionary:<0.73.0> -H105DAD620 -H105DAD658 -=proc_stack:<0.73.0> -y0:N -y1:A8:infinity -y2:H105DAD6E8 -y3:N -y4:P<0.73.0> -y5:P<0.49.0> -0x0000000105dadc70:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105dadc90:SReturn addr 0x3D82348 () -=proc_heap:<0.73.0> -105DAD6E8:t5:AE:callback_cache,AD:kernel_config,H105DAD670,H105DAD698,H105DAD6C0 -105DAD6C0:E20:g3F3DWtlcm5lbF9jb25maWd3C2hhbmRsZV9pbmZvYQI= -105DAD698:E20:g3F3DWtlcm5lbF9jb25maWd3C2hhbmRsZV9jYXN0YQI= -105DAD670:E20:g3F3DWtlcm5lbF9jb25maWd3C2hhbmRsZV9jYWxsYQM= -105DAD620:t2:AA:$ancestors,H105DAD610 -105DAD610:lAA:kernel_sup|H105DAD5D0 -105DAD5D0:lP<0.47.0>|N -105DAD658:t2:AD:$initial_call,H105DAD638 -105DAD638:t3:AD:kernel_config,A4:init,I1 -=proc_dictionary:<0.74.0> -H105DA80D0 -H105DA8108 -=proc_stack:<0.74.0> -y0:N -y1:A8:infinity -y2:H105DA8198 -y3:H28008FA68 -y4:AB:kernel_refc -y5:P<0.49.0> -0x0000000105da8710:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105da8730:SReturn addr 0x3D82348 () -=proc_heap:<0.74.0> -105DA8198:t5:AE:callback_cache,AB:kernel_refc,H105DA8120,H105DA8148,H105DA8170 -105DA8170:E1E:g3F3C2tlcm5lbF9yZWZjdwtoYW5kbGVfaW5mb2EC -105DA8148:E1E:g3F3C2tlcm5lbF9yZWZjdwtoYW5kbGVfY2FzdGEC -105DA8120:E1E:g3F3C2tlcm5lbF9yZWZjdwtoYW5kbGVfY2FsbGED -105DA80D0:t2:AA:$ancestors,H105DA80C0 -105DA80C0:lAA:kernel_sup|H105DA8080 -105DA8080:lP<0.47.0>|N -105DA8108:t2:AD:$initial_call,H105DA80E8 -105DA80E8:t3:AB:kernel_refc,A4:init,I1 -=proc_dictionary:<0.75.0> -H105DAC078 -H105DAC090 -=proc_stack:<0.75.0> -0x0000000105dac210:SReturn addr 0x3D82348 () -=proc_heap:<0.75.0> -105DAC078:t2:AA:$ancestors,H105DAC0B8 -105DAC0B8:lAA:kernel_sup|H105DAC0F8 -105DAC0F8:lP<0.47.0>|N -105DAC090:t2:AD:$initial_call,H105DAC0C8 -105DAC0C8:t3:AA:supervisor,A6:kernel,I1 -=proc_dictionary:<0.77.0> -H105DA2880 -H105DA2898 -H105DA28B0 -=proc_stack:<0.77.0> -y0:N -y1:A8:infinity -y2:H105DA3BB8 -y3:H105DA27C8 -y4:P<0.77.0> -y5:P<0.70.0> -0x0000000105da4dc8:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105da4de8:SReturn addr 0x3D82348 () -=proc_heap:<0.77.0> -105DA3BB8:t5:AE:callback_cache,AA:logger_olp,H105DA3BF8,H105DA3C20,H105DA3C48 -105DA3C48:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9pbmZvYQI= -105DA3C20:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9jYXN0YQI= -105DA3BF8:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9jYWxsYQM= -105DA27C8:Mf14:H105DA28C8:A14:logger_std_h_default,AF:logger_h_common,A5:async,A4:true,A4:true,I200,I1000,I10,I0,I-576460751874469,H105DA2970,I-576460751874469,I0,H105DA29B8,I5000,I500,I1000,A5:false,I3000000,I20000 -105DA28C8:t14:A2:id,A6:module,A4:mode,A4:idle,A12:burst_limit_enable,AE:drop_mode_qlen,AA:flush_qlen,AE:sync_mode_qlen,AF:burst_msg_count,AC:burst_win_ts,A8:cb_state,AC:last_load_ts,A9:last_qlen,A8:mode_ref,A1B:overload_kill_restart_after,A15:burst_limit_max_count,A17:burst_limit_window_time,A14:overload_kill_enable,A16:overload_kill_mem_size,A12:overload_kill_qlen -105DA29B8:t2:AA:logger_olp,A14:logger_std_h_default -105DA2970:Mf6:H105DA2A20:A7:default,AC:logger_std_h,A9:no_repeat,I20,H105DA2A58,A4:sync -105DA2A20:t6:A2:id,A6:module,A18:filesync_repeat_interval,AF:ctrl_sync_count,AD:handler_state,A7:last_op -105DA2A58:Mf2:H105DA2A90:AB:standard_io,P<0.78.0> -105DA2A90:t2:A4:type,AD:file_ctrl_pid -105DA2880:t2:A7:olp_ref,H105DA29D0 -105DA29D0:t3:A14:logger_std_h_default,P<0.77.0>,H105DA29B8 -105DA2898:t2:AA:$ancestors,H105DA29F0 -105DA29F0:lAA:logger_sup|H105DA2A80 -105DA2A80:lAA:kernel_sup|H105DA2AA8 -105DA2AA8:lP<0.47.0>|N -105DA28B0:t2:AD:$initial_call,H105DA2A00 -105DA2A00:t3:AA:logger_olp,A4:init,I1 -=proc_stack:<0.78.0> -y0:N -y1:N -y2:H105D98488 -0x0000000105d98b30:SReturn addr 0x3D82348 () -=proc_heap:<0.78.0> -105D98488:Mf2:H280091C80:A7:default,AB:standard_io -=proc_dictionary:<0.90.0> -H105D97F00 -H105D97F38 -=proc_stack:<0.90.0> -y0:H105D98098 -y1:P<0.44.0> -0x0000000105d98110:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d98130:SReturn addr 0x3D82348 () -=proc_heap:<0.90.0> -105D98098:t7:A5:state,P<0.91.0>,H105D97A10,N,I0,P<0.69.0>,N -105D97A10:t8:A9:appl_data,A5:inets,H105D97E70,A9:undefined,H105D97A58,H105D97E50,A8:infinity,A8:infinity -105D97E50:lA5:inets|H105D97E40 -105D97E40:lA9:inets_sup|H105D97E30 -105D97E30:lA9:inets_app|H105D97E20 -105D97E20:lAD:inets_service|H105D97E10 -105D97E10:lAB:inets_trace|H105D97E00 -105D97E00:lA9:inets_lib|H105D97DF0 -105D97DF0:lA5:httpc|H105D97DE0 -105D97DE0:lAD:httpc_handler|H105D97DD0 -105D97DD0:lA11:httpc_handler_sup|H105D97DC0 -105D97DC0:lAD:httpc_manager|H105D97DB0 -105D97DB0:lA11:httpc_profile_sup|H105D97DA0 -105D97DA0:lAD:httpc_request|H105D97D90 -105D97D90:lAE:httpc_response|H105D97D80 -105D97D80:lA9:httpc_sup|H105D97D70 -105D97D70:lAC:httpc_cookie|H105D97D60 -105D97D60:lAA:http_chunk|H105D97D50 -105D97D50:lAC:http_request|H105D97D40 -105D97D40:lAD:http_response|H105D97D30 -105D97D30:lAE:http_transport|H105D97D20 -105D97D20:lA9:http_util|H105D97D10 -105D97D10:lA8:http_uri|H105D97D00 -105D97D00:lA5:httpd|H105D97CF0 -105D97CF0:lAE:httpd_acceptor|H105D97CE0 -105D97CE0:lA12:httpd_acceptor_sup|H105D97CD0 -105D97CD0:lA9:httpd_cgi|H105D97CC0 -105D97CC0:lA14:httpd_connection_sup|H105D97CB0 -105D97CB0:lAA:httpd_conf|H105D97CA0 -105D97CA0:lAC:httpd_custom|H105D97C90 -105D97C90:lA10:httpd_custom_api|H105D97C80 -105D97C80:lA9:httpd_esi|H105D97C70 -105D97C70:lAD:httpd_example|H105D97C60 -105D97C60:lAA:httpd_file|H105D97C50 -105D97C50:lA12:httpd_instance_sup|H105D97C40 -105D97C40:lA9:httpd_log|H105D97C30 -105D97C30:lAC:httpd_logger|H105D97C20 -105D97C20:lAD:httpd_manager|H105D97C10 -105D97C10:lAE:httpd_misc_sup|H105D97C00 -105D97C00:lAD:httpd_request|H105D97BF0 -105D97BF0:lA15:httpd_request_handler|H105D97BE0 -105D97BE0:lAE:httpd_response|H105D97BD0 -105D97BD0:lA10:httpd_script_env|H105D97BC0 -105D97BC0:lAC:httpd_socket|H105D97BB0 -105D97BB0:lA9:httpd_sup|H105D97BA0 -105D97BA0:lAA:httpd_util|H105D97B90 -105D97B90:lAB:mod_actions|H105D97B80 -105D97B80:lA9:mod_alias|H105D97B70 -105D97B70:lA8:mod_auth|H105D97B60 -105D97B60:lAD:mod_auth_dets|H105D97B50 -105D97B50:lAF:mod_auth_mnesia|H105D97B40 -105D97B40:lAE:mod_auth_plain|H105D97B30 -105D97B30:lAF:mod_auth_server|H105D97B20 -105D97B20:lA7:mod_cgi|H105D97B10 -105D97B10:lA7:mod_dir|H105D97B00 -105D97B00:lAC:mod_disk_log|H105D97AF0 -105D97AF0:lA7:mod_esi|H105D97AE0 -105D97AE0:lA7:mod_get|H105D97AD0 -105D97AD0:lA8:mod_head|H105D97AC0 -105D97AC0:lA7:mod_log|H105D97AB0 -105D97AB0:lA9:mod_range|H105D97AA0 -105D97AA0:lA13:mod_responsecontrol|H105D97A90 -105D97A90:lAC:mod_security|H105D97A80 -105D97A80:lA13:mod_security_server|H105D97A70 -105D97A70:lA9:mod_trace|N -105D97A58:t2:A9:inets_app,N -105D97E70:lA9:inets_sup|H105D97E60 -105D97E60:lAD:httpc_manager|N -105D97F00:t2:AA:$ancestors,H105D97EF0 -105D97EF0:lP<0.89.0>|N -105D97F38:t2:AD:$initial_call,H105D97F18 -105D97F18:t3:A12:application_master,A4:init,I4 -=proc_stack:<0.91.0> -y0:N -y1:N -y2:A9:inets_app -y3:P<0.92.0> -y4:P<0.90.0> -0x0000000105da7fe0:SReturn addr 0x3D82348 () -=proc_heap:<0.91.0> -=proc_dictionary:<0.92.0> -H105DBF960 -H105DBF978 -=proc_stack:<0.92.0> -0x0000000105dbfc58:SReturn addr 0x3D82348 () -=proc_heap:<0.92.0> -105DBF960:t2:AA:$ancestors,H105DBF9A0 -105DBF9A0:lP<0.91.0>|N -105DBF978:t2:AD:$initial_call,H105DBF9B0 -105DBF9B0:t3:AA:supervisor,A9:inets_sup,I1 -=proc_dictionary:<0.93.0> -H105D99BA8 -H105D99BC0 -=proc_stack:<0.93.0> -0x0000000105d99e90:SReturn addr 0x3D82348 () -=proc_heap:<0.93.0> -105D99BA8:t2:AA:$ancestors,H105D99BE8 -105D99BE8:lA9:inets_sup|H105D99C28 -105D99C28:lP<0.91.0>|N -105D99BC0:t2:AD:$initial_call,H105D99BF8 -105D99BF8:t3:AA:supervisor,A9:httpc_sup,I1 -=proc_dictionary:<0.94.0> -H105DAF280 -H105DAF298 -=proc_stack:<0.94.0> -0x0000000105daf518:SReturn addr 0x3D82348 () -=proc_heap:<0.94.0> -105DAF280:t2:AA:$ancestors,H105DAF2C0 -105DAF2C0:lA9:httpc_sup|H105DAF300 -105DAF300:lA9:inets_sup|H105DAF320 -105DAF320:lP<0.91.0>|N -105DAF298:t2:AD:$initial_call,H105DAF2D0 -105DAF2D0:t3:AA:supervisor,A11:httpc_profile_sup,I1 -=proc_dictionary:<0.95.0> -H105E0BA38 -H105E0BA50 -=proc_stack:<0.95.0> -y0:N -y1:A8:infinity -y2:H105E0B9F0 -y3:H105E0D878 -y4:AD:httpc_manager -y5:P<0.94.0> -0x0000000105e0dff0:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105e0e010:SReturn addr 0x3D82348 () -=proc_heap:<0.95.0> -105E0B9F0:t5:AE:callback_cache,AD:httpc_manager,H105E0BA68,H105E0BA90,H105E0BAB8 -105E0BAB8:E20:g3F3DWh0dHBjX21hbmFnZXJ3C2hhbmRsZV9pbmZvYQI= -105E0BA90:E20:g3F3DWh0dHBjX21hbmFnZXJ3C2hhbmRsZV9jYXN0YQI= -105E0BA68:E20:g3F3DWh0dHBjX21hbmFnZXJ3C2hhbmRsZV9jYWxsYQM= -105E0D878:t7:A5:state,N,A19:httpc_manager__handler_db,H105E0D858,A19:httpc_manager__session_db,AD:httpc_manager,H2800B17A0 -105E0D858:t3:A9:cookie_db,A9:undefined,H105E0D840 -105E0D840:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALEs+vYAAd/g02c= -105E0BA38:t2:AA:$ancestors,H105E0BAE0 -105E0BAE0:lA11:httpc_profile_sup|H105E0BB10 -105E0BB10:lA9:httpc_sup|H105E0BB20 -105E0BB20:lA9:inets_sup|H105E0BB30 -105E0BB30:lP<0.91.0>|N -105E0BA50:t2:AD:$initial_call,H105E0BAF0 -105E0BAF0:t3:AD:httpc_manager,A4:init,I1 -=proc_dictionary:<0.96.0> -H105D82D78 -H105D82DB0 -=proc_stack:<0.96.0> -y0:N -y1:A8:infinity -y2:H105D82E40 -y3:H105D831B8 -y4:A11:httpc_handler_sup -y5:P<0.93.0> -0x0000000105d83388:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d833a8:SReturn addr 0x3D82348 () -=proc_heap:<0.96.0> -105D82E40:t5:AE:callback_cache,AA:supervisor,H105D82DC8,H105D82DF0,H105D82E18 -105D82E18:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105D82DF0:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105D82DC8:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105D831B8:tC:A5:state,H2800B6F58,A12:simple_one_for_one,H105D83120,H280028328,I0,I3600,N,I0,A5:never,A11:httpc_handler_sup,N -105D83120:t2:H105D83110,H105D830F0 -105D830F0:Mf1:H105D830E0:H105D83078 -105D830E0:t1:A9:undefined -105D83078:t9:A5:child,A9:undefined,A9:undefined,H105D82E70,A9:temporary,A5:false,I4000,A6:worker,H2800B6F70 -105D82E70:t3:AD:httpc_handler,AA:start_link,N -105D83110:lA9:undefined|N -105D82D78:t2:AA:$ancestors,H105D82D68 -105D82D68:lA9:httpc_sup|H105D82D28 -105D82D28:lA9:inets_sup|H105D82D18 -105D82D18:lP<0.91.0>|N -105D82DB0:t2:AD:$initial_call,H105D82D90 -105D82D90:t3:AA:supervisor,A11:httpc_handler_sup,I1 -=proc_dictionary:<0.97.0> -H105D98B40 -H105D98B58 -=proc_stack:<0.97.0> -0x0000000105d98ce8:SReturn addr 0x3D82348 () -=proc_heap:<0.97.0> -105D98B40:t2:AA:$ancestors,H105D98B80 -105D98B80:lA9:inets_sup|H105D98BC0 -105D98BC0:lP<0.91.0>|N -105D98B58:t2:AD:$initial_call,H105D98B90 -105D98B90:t3:AA:supervisor,A9:httpd_sup,I1 -=proc_dictionary:<0.102.0> -H105DBE6D0 -H105DBE6E8 -=proc_stack:<0.102.0> -y0:H105DBEC80 -y1:P<0.44.0> -0x0000000105dbed68:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105dbed88:SReturn addr 0x3D82348 () -=proc_heap:<0.102.0> -105DBEC80:t7:A5:state,P<0.103.0>,H105DBE688,N,I0,P<0.69.0>,N -105DBE688:t8:A9:appl_data,A3:ssl,H105DBE718,A9:undefined,H105DBE728,H105DBE740,A8:infinity,A8:infinity -105DBE740:lAE:tls_connection|H105DBE790 -105DBE790:lA19:tls_client_connection_1_3|H105DBE7A0 -105DBE7A0:lA19:tls_server_connection_1_3|H105DBE7B0 -105DBE7B0:lA16:tls_gen_connection_1_3|H105DBE7C0 -105DBE7C0:lAD:tls_handshake|H105DBE7D0 -105DBE7D0:lA11:tls_handshake_1_3|H105DBE7E0 -105DBE7E0:lAA:tls_record|H105DBE7F0 -105DBE7F0:lAE:tls_record_1_3|H105DBE800 -105DBE800:lAA:tls_socket|H105DBE810 -105DBE810:lA6:tls_v1|H105DBE820 -105DBE820:lA12:tls_connection_sup|H105DBE830 -105DBE830:lA12:tls_gen_connection|H105DBE840 -105DBE840:lAA:tls_sender|H105DBE850 -105DBE850:lAE:tls_server_sup|H105DBE860 -105DBE860:lA1D:tls_server_session_ticket_sup|H105DBE870 -105DBE870:lA19:tls_server_session_ticket|H105DBE880 -105DBE880:lA7:tls_sup|H105DBE890 -105DBE890:lA16:tls_dyn_connection_sup|H105DBE8A0 -105DBE8A0:lAD:ssl_dh_groups|H105DBE8B0 -105DBE8B0:lAF:dtls_connection|H105DBE8C0 -105DBE8C0:lAE:dtls_handshake|H105DBE8D0 -105DBE8D0:lAB:dtls_record|H105DBE8E0 -105DBE8E0:lAB:dtls_socket|H105DBE8F0 -105DBE8F0:lA7:dtls_v1|H105DBE900 -105DBE900:lA13:dtls_connection_sup|H105DBE910 -105DBE910:lA13:dtls_gen_connection|H105DBE920 -105DBE920:lA11:dtls_packet_demux|H105DBE930 -105DBE930:lA11:dtls_listener_sup|H105DBE940 -105DBE940:lA8:dtls_sup|H105DBE950 -105DBE950:lAF:dtls_server_sup|H105DBE960 -105DBE960:lA1D:dtls_server_session_cache_sup|H105DBE970 -105DBE970:lA3:ssl|H105DBE980 -105DBE980:lA15:ssl_session_cache_api|H105DBE990 -105DBE990:lA13:tls_dtls_connection|H105DBE9A0 -105DBE9A0:lAA:ssl_config|H105DBE9B0 -105DBE9B0:lAE:ssl_gen_statem|H105DBE9C0 -105DBE9C0:lAD:ssl_handshake|H105DBE9D0 -105DBE9D0:lAA:ssl_record|H105DBE9E0 -105DBE9E0:lAA:ssl_cipher|H105DBE9F0 -105DBE9F0:lA11:ssl_cipher_format|H105DBEA00 -105DBEA00:lAE:ssl_srp_primes|H105DBEA10 -105DBEA10:lA9:ssl_alert|H105DBEA20 -105DBEA20:lA16:ssl_listen_tracker_sup|H105DBEA30 -105DBEA30:lA10:tls_bloom_filter|H105DBEA40 -105DBEA40:lA17:tls_client_ticket_store|H105DBEA50 -105DBEA50:lAD:inet_tls_dist|H105DBEA60 -105DBEA60:lAE:inet6_tls_dist|H105DBEA70 -105DBEA70:lAC:ssl_dist_sup|H105DBEA80 -105DBEA80:lA17:ssl_dist_connection_sup|H105DBEA90 -105DBEA90:lA12:ssl_dist_admin_sup|H105DBEAA0 -105DBEAA0:lAC:tls_dist_sup|H105DBEAB0 -105DBEAB0:lA13:tls_dist_server_sup|H105DBEAC0 -105DBEAC0:lAB:ssl_session|H105DBEAD0 -105DBEAD0:lA1B:ssl_client_session_cache_db|H105DBEAE0 -105DBEAE0:lA18:ssl_server_session_cache|H105DBEAF0 -105DBEAF0:lA1B:ssl_server_session_cache_db|H105DBEB00 -105DBEB00:lA1C:ssl_server_session_cache_sup|H105DBEB10 -105DBEB10:lA24:ssl_upgrade_server_session_cache_sup|H105DBEB20 -105DBEB20:lAB:ssl_manager|H105DBEB30 -105DBEB30:lAD:ssl_pem_cache|H105DBEB40 -105DBEB40:lAB:ssl_pkix_db|H105DBEB50 -105DBEB50:lAF:ssl_certificate|H105DBEB60 -105DBEB60:lA7:ssl_crl|H105DBEB70 -105DBEB70:lAD:ssl_crl_cache|H105DBEB80 -105DBEB80:lA11:ssl_crl_cache_api|H105DBEB90 -105DBEB90:lA10:ssl_crl_hash_dir|H105DBEBA0 -105DBEBA0:lAA:ssl_logger|H105DBEBB0 -105DBEBB0:lA9:ssl_trace|H105DBEBC0 -105DBEBC0:lA7:ssl_app|H105DBEBD0 -105DBEBD0:lA7:ssl_sup|H105DBEBE0 -105DBEBE0:lAD:ssl_admin_sup|H105DBEBF0 -105DBEBF0:lA12:ssl_connection_sup|N -105DBE728:t2:A7:ssl_app,N -105DBE718:lA7:ssl_sup|H105DBE780 -105DBE780:lAB:ssl_manager|N -105DBE6D0:t2:AA:$ancestors,H105DBE750 -105DBE750:lP<0.101.0>|N -105DBE6E8:t2:AD:$initial_call,H105DBE760 -105DBE760:t3:A12:application_master,A4:init,I4 -=proc_stack:<0.103.0> -y0:N -y1:N -y2:A7:ssl_app -y3:P<0.107.0> -y4:P<0.102.0> -0x0000000105da1bf0:SReturn addr 0x3D82348 () -=proc_heap:<0.103.0> -=proc_dictionary:<0.105.0> -H105DB0708 -H105DB0720 -H105DB0738 -=proc_stack:<0.105.0> -y0:N -y1:A8:infinity -y2:H105DB1980 -y3:H105DB0650 -y4:P<0.105.0> -y5:P<0.70.0> -0x0000000105db2c50:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105db2c70:SReturn addr 0x3D82348 () -=proc_heap:<0.105.0> -105DB1980:t5:AE:callback_cache,AA:logger_olp,H105DB19D0,H105DB19F8,H105DB1A20 -105DB1A20:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9pbmZvYQI= -105DB19F8:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9jYXN0YQI= -105DB19D0:E1D:g3F3CmxvZ2dlcl9vbHB3C2hhbmRsZV9jYWxsYQM= -105DB0650:Mf14:H105DB0750:A18:logger_std_h_ssl_handler,AF:logger_h_common,A5:async,A4:true,A4:true,I200,I1000,I10,I0,I-576460751796696,H105DB07F8,I-576460751796696,I0,H105DB0840,I5000,I500,I1000,A5:false,I3000000,I20000 -105DB0750:t14:A2:id,A6:module,A4:mode,A4:idle,A12:burst_limit_enable,AE:drop_mode_qlen,AA:flush_qlen,AE:sync_mode_qlen,AF:burst_msg_count,AC:burst_win_ts,A8:cb_state,AC:last_load_ts,A9:last_qlen,A8:mode_ref,A1B:overload_kill_restart_after,A15:burst_limit_max_count,A17:burst_limit_window_time,A14:overload_kill_enable,A16:overload_kill_mem_size,A12:overload_kill_qlen -105DB0840:t2:AA:logger_olp,A18:logger_std_h_ssl_handler -105DB07F8:Mf6:H105DB08A8:AB:ssl_handler,AC:logger_std_h,A9:no_repeat,I20,H105DB08E0,A4:sync -105DB08A8:t6:A2:id,A6:module,A18:filesync_repeat_interval,AF:ctrl_sync_count,AD:handler_state,A7:last_op -105DB08E0:Mf2:H105DB0918:AB:standard_io,P<0.106.0> -105DB0918:t2:A4:type,AD:file_ctrl_pid -105DB0708:t2:A7:olp_ref,H105DB0858 -105DB0858:t3:A18:logger_std_h_ssl_handler,P<0.105.0>,H105DB0840 -105DB0720:t2:AA:$ancestors,H105DB0878 -105DB0878:lAA:logger_sup|H105DB0908 -105DB0908:lAA:kernel_sup|H105DB0930 -105DB0930:lP<0.47.0>|N -105DB0738:t2:AD:$initial_call,H105DB0888 -105DB0888:t3:AA:logger_olp,A4:init,I1 -=proc_stack:<0.106.0> -y0:N -y1:N -y2:H105DA87D8 -0x0000000105da8e80:SReturn addr 0x3D82348 () -=proc_heap:<0.106.0> -105DA87D8:Mf2:H280091C80:AB:ssl_handler,AB:standard_io -=proc_dictionary:<0.107.0> -H105D8C6D0 -H105D8C6E8 -=proc_stack:<0.107.0> -0x0000000105d8c958:SReturn addr 0x3D82348 () -=proc_heap:<0.107.0> -105D8C6D0:t2:AA:$ancestors,H105D8C710 -105D8C710:lP<0.103.0>|N -105D8C6E8:t2:AD:$initial_call,H105D8C720 -105D8C720:t3:AA:supervisor,A7:ssl_sup,I1 -=proc_dictionary:<0.108.0> -H105DBFC68 -H105DBFC80 -=proc_stack:<0.108.0> -0x0000000105dbffe0:SReturn addr 0x3D82348 () -=proc_heap:<0.108.0> -105DBFC68:t2:AA:$ancestors,H105DBFCA8 -105DBFCA8:lA7:ssl_sup|H105DBFCE8 -105DBFCE8:lP<0.103.0>|N -105DBFC80:t2:AD:$initial_call,H105DBFCB8 -105DBFCB8:t3:AA:supervisor,AD:ssl_admin_sup,I1 -=proc_dictionary:<0.109.0> -H105D82110 -H105D82128 -H105D82140 -=proc_stack:<0.109.0> -y0:N -y1:A8:infinity -y2:H105D820E0 -y3:H105D828A8 -y4:AD:ssl_pem_cache -y5:P<0.108.0> -0x0000000105d82c38:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d82c58:SReturn addr 0x3D82348 () -=proc_heap:<0.109.0> -105D820E0:t5:AE:callback_cache,AD:ssl_pem_cache,H105D82178,H105D821A0,H105D821C8 -105D821C8:E20:g3F3DXNzbF9wZW1fY2FjaGV3C2hhbmRsZV9pbmZvYQI= -105D821A0:E20:g3F3DXNzbF9wZW1fY2FjaGV3C2hhbmRsZV9jYXN0YQI= -105D82178:E20:g3F3DXNzbF9wZW1fY2FjaGV3C2hhbmRsZV9jYWxsYQM= -105D828A8:t4:A5:state,AD:ssl_pem_cache,I1701928823,I120000 -105D82110:t2:AA:$ancestors,H105D821F0 -105D821F0:lAD:ssl_admin_sup|H105D82260 -105D82260:lA7:ssl_sup|H105D82280 -105D82280:lP<0.103.0>|N -105D82128:t2:AD:ssl_pem_cache,AD:ssl_pem_cache -105D82140:t2:AD:$initial_call,H105D82200 -105D82200:t3:AD:ssl_pem_cache,A4:init,I1 -=proc_dictionary:<0.110.0> -H105DB84D8 -H105DB84F0 -H105DB8508 -H105DB8520 -=proc_stack:<0.110.0> -y0:N -y1:A8:infinity -y2:H105DB84A8 -y3:H105DB67C8 -y4:AB:ssl_manager -y5:P<0.108.0> -0x0000000105db7160:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105db7180:SReturn addr 0x3D82348 () -=proc_heap:<0.110.0> -105DB84A8:t5:AE:callback_cache,AB:ssl_manager,H105DB8538,H105DB8560,H105DB8588 -105DB8588:E1E:g3F3C3NzbF9tYW5hZ2VydwtoYW5kbGVfaW5mb2EC -105DB8560:E1E:g3F3C3NzbF9tYW5hZ2VydwtoYW5kbGVfY2FzdGEC -105DB8538:E1E:g3F3C3NzbF9tYW5hZ2VydwtoYW5kbGVfY2FsbGED -105DB67C8:tA:A5:state,H105DB66B0,A1B:ssl_client_session_cache_db,I86400,H105DB67A0,H105DB67B0,I1000,A9:undefined,N,H280061C80 -105DB67B0:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALGc+vQAAd/g02c= -105DB67A0:lH105DB66C8|H105DB6790 -105DB66C8:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALGX+vYAAd/g02c= -105DB6790:lH105DB6778|H105DB6768 -105DB6778:t2:H105DB66E0,H105DB66F8 -105DB66F8:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALGZ+vYAAd/g02c= -105DB66E0:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALGY+vYAAd/g02c= -105DB6768:lAD:ssl_pem_cache|H105DB6758 -105DB6758:lH105DB6740|N -105DB6740:t2:H105DB6710,H105DB6728 -105DB6728:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALGb+vYAAd/g02c= -105DB6710:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALGa+vYAAd/g02c= -105DB66B0:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALGW+vYAAd/g02c= -105DB84D8:t2:AA:$ancestors,H105DB85B0 -105DB85B0:lAD:ssl_admin_sup|H105DB85E0 -105DB85E0:lA7:ssl_sup|H105DB85F0 -105DB85F0:lP<0.103.0>|N -105DB84F0:t2:AB:ssl_manager,AB:ssl_manager -105DB8508:t2:AD:ssl_pem_cache,AD:ssl_pem_cache -105DB8520:t2:AD:$initial_call,H105DB85C0 -105DB85C0:t3:AB:ssl_manager,A4:init,I1 -=proc_dictionary:<0.111.0> -H105D8FCA8 -H105D8FCE0 -=proc_stack:<0.111.0> -y0:N -y1:A8:infinity -y2:H105D8FD70 -y3:H105D8FDB8 -y4:A17:tls_client_ticket_store -y5:P<0.108.0> -0x0000000105d902b8:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d902d8:SReturn addr 0x3D82348 () -=proc_heap:<0.111.0> -105D8FD70:t5:AE:callback_cache,A17:tls_client_ticket_store,H105D8FCF8,H105D8FD20,H105D8FD48 -105D8FD48:E2A:g3F3F3Rsc19jbGllbnRfdGlja2V0X3N0b3JldwtoYW5kbGVfaW5mb2EC -105D8FD20:E2A:g3F3F3Rsc19jbGllbnRfdGlja2V0X3N0b3JldwtoYW5kbGVfY2FzdGEC -105D8FCF8:E2A:g3F3F3Rsc19jbGllbnRfdGlja2V0X3N0b3JldwtoYW5kbGVfY2FsbGED -105D8FDB8:t4:A5:state,H280061C80,I7200,I1000 -105D8FCA8:t2:AA:$ancestors,H105D8FC98 -105D8FC98:lAD:ssl_admin_sup|H105D8FC58 -105D8FC58:lA7:ssl_sup|H105D8FC48 -105D8FC48:lP<0.103.0>|N -105D8FCE0:t2:AD:$initial_call,H105D8FCC0 -105D8FCC0:t3:A17:tls_client_ticket_store,A4:init,I1 -=proc_dictionary:<0.112.0> -H105DADF58 -H105DADF70 -=proc_stack:<0.112.0> -0x0000000105dae1f0:SReturn addr 0x3D82348 () -=proc_heap:<0.112.0> -105DADF58:t2:AA:$ancestors,H105DADF98 -105DADF98:lA7:ssl_sup|H105DADFD8 -105DADFD8:lP<0.103.0>|N -105DADF70:t2:AD:$initial_call,H105DADFA8 -105DADFA8:t3:AA:supervisor,A12:ssl_connection_sup,I1 -=proc_dictionary:<0.113.0> -H105DADCA0 -H105DADCB8 -=proc_stack:<0.113.0> -0x0000000105dadf48:SReturn addr 0x3D82348 () -=proc_heap:<0.113.0> -105DADCA0:t2:AA:$ancestors,H105DADCE0 -105DADCE0:lA12:ssl_connection_sup|H105DADD20 -105DADD20:lA7:ssl_sup|H105DADD40 -105DADD40:lP<0.103.0>|N -105DADCB8:t2:AD:$initial_call,H105DADCF0 -105DADCF0:t3:AA:supervisor,A7:tls_sup,I1 -=proc_dictionary:<0.114.0> -H105D87718 -H105D87750 -=proc_stack:<0.114.0> -y0:N -y1:A8:infinity -y2:H105D877E0 -y3:H105D87A80 -y4:A12:tls_connection_sup -y5:P<0.113.0> -0x0000000105d87d18:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105d87d38:SReturn addr 0x3D82348 () -=proc_heap:<0.114.0> -105D877E0:t5:AE:callback_cache,AA:supervisor,H105D87768,H105D87790,H105D877B8 -105D877B8:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105D87790:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105D87768:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105D87A80:tC:A5:state,H2800BDB80,A12:simple_one_for_one,H105D879E8,H280028328,I0,I3600,N,I0,A5:never,A12:tls_connection_sup,N -105D879E8:t2:H105D879D8,H105D879B8 -105D879B8:Mf1:H105D879A8:H105D87940 -105D879A8:t1:A9:undefined -105D87940:t9:A5:child,A9:undefined,A9:undefined,H2800BDCA0,A9:temporary,A5:false,A8:infinity,AA:supervisor,H105D87930 -105D87930:lA16:tls_dyn_connection_sup|N -105D879D8:lA9:undefined|N -105D87718:t2:AA:$ancestors,H105D87708 -105D87708:lA7:tls_sup|H105D876C8 -105D876C8:lA12:ssl_connection_sup|H105D876B8 -105D876B8:lA7:ssl_sup|H105D876A8 -105D876A8:lP<0.103.0>|N -105D87750:t2:AD:$initial_call,H105D87730 -105D87730:t3:AA:supervisor,A12:tls_connection_sup,I1 -=proc_dictionary:<0.115.0> -H105DA2350 -H105DA2368 -=proc_stack:<0.115.0> -0x0000000105da26e8:SReturn addr 0x3D82348 () -=proc_heap:<0.115.0> -105DA2350:t2:AA:$ancestors,H105DA2390 -105DA2390:lA7:tls_sup|H105DA23D0 -105DA23D0:lA12:ssl_connection_sup|H105DA23F0 -105DA23F0:lA7:ssl_sup|H105DA2410 -105DA2410:lP<0.103.0>|N -105DA2368:t2:AD:$initial_call,H105DA23A0 -105DA23A0:t3:AA:supervisor,AE:tls_server_sup,I1 -=proc_dictionary:<0.116.0> -H105DBD3E8 -H105DBD420 -=proc_stack:<0.116.0> -y0:N -y1:A8:infinity -y2:H105DBD4B0 -y3:H105DBD740 -y4:A16:ssl_listen_tracker_sup -y5:P<0.115.0> -0x0000000105dbd9d8:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105dbd9f8:SReturn addr 0x3D82348 () -=proc_heap:<0.116.0> -105DBD4B0:t5:AE:callback_cache,AA:supervisor,H105DBD438,H105DBD460,H105DBD488 -105DBD488:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105DBD460:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105DBD438:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105DBD740:tC:A5:state,H2800BE298,A12:simple_one_for_one,H105DBD6A8,H280028328,I0,I3600,N,I0,A5:never,A16:ssl_listen_tracker_sup,N -105DBD6A8:t2:H105DBD698,H105DBD678 -105DBD678:Mf1:H105DBD668:H105DBD600 -105DBD668:t1:A9:undefined -105DBD600:t9:A5:child,A9:undefined,A9:undefined,H2800BE3E8,A9:temporary,A5:false,I4000,A6:worker,H2800BE3D8 -105DBD698:lA9:undefined|N -105DBD3E8:t2:AA:$ancestors,H105DBD3D8 -105DBD3D8:lAE:tls_server_sup|H105DBD398 -105DBD398:lA7:tls_sup|H105DBD388 -105DBD388:lA12:ssl_connection_sup|H105DBD378 -105DBD378:lA7:ssl_sup|H105DBD368 -105DBD368:lP<0.103.0>|N -105DBD420:t2:AD:$initial_call,H105DBD400 -105DBD400:t3:AA:supervisor,A16:ssl_listen_tracker_sup,I1 -=proc_dictionary:<0.117.0> -H105DA1D30 -H105DA1D68 -=proc_stack:<0.117.0> -y0:N -y1:A8:infinity -y2:H105DA1DF8 -y3:H105DA2088 -y4:A1D:tls_server_session_ticket_sup -y5:P<0.115.0> -0x0000000105da2320:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105da2340:SReturn addr 0x3D82348 () -=proc_heap:<0.117.0> -105DA1DF8:t5:AE:callback_cache,AA:supervisor,H105DA1D80,H105DA1DA8,H105DA1DD0 -105DA1DD0:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105DA1DA8:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105DA1D80:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105DA2088:tC:A5:state,H2800BE5C0,A12:simple_one_for_one,H105DA1FF0,H280028358,I0,I3600,N,I0,A5:never,A1D:tls_server_session_ticket_sup,N -105DA1FF0:t2:H105DA1FE0,H105DA1FC0 -105DA1FC0:Mf1:H105DA1FB0:H105DA1F48 -105DA1FB0:t1:A9:undefined -105DA1F48:t9:A5:child,A9:undefined,A9:undefined,H2800BE710,A9:transient,A5:false,I4000,A6:worker,H2800BE700 -105DA1FE0:lA9:undefined|N -105DA1D30:t2:AA:$ancestors,H105DA1D20 -105DA1D20:lAE:tls_server_sup|H105DA1CE0 -105DA1CE0:lA7:tls_sup|H105DA1CD0 -105DA1CD0:lA12:ssl_connection_sup|H105DA1CC0 -105DA1CC0:lA7:ssl_sup|H105DA1CB0 -105DA1CB0:lP<0.103.0>|N -105DA1D68:t2:AD:$initial_call,H105DA1D48 -105DA1D48:t3:AA:supervisor,A1D:tls_server_session_ticket_sup,I1 -=proc_dictionary:<0.118.0> -H105EBF1B0 -H105EBF1E8 -=proc_stack:<0.118.0> -y0:N -y1:A8:infinity -y2:H105EBF278 -y3:H105EBF508 -y4:A1C:ssl_server_session_cache_sup -y5:P<0.115.0> -0x0000000105ebf7a0:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105ebf7c0:SReturn addr 0x3D82348 () -=proc_heap:<0.118.0> -105EBF278:t5:AE:callback_cache,AA:supervisor,H105EBF200,H105EBF228,H105EBF250 -105EBF250:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105EBF228:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105EBF200:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105EBF508:tC:A5:state,H2800BE958,A12:simple_one_for_one,H105EBF470,H280028358,I3,I3600,N,I0,A5:never,A1C:ssl_server_session_cache_sup,N -105EBF470:t2:H105EBF460,H105EBF440 -105EBF440:Mf1:H105EBF430:H105EBF3C8 -105EBF430:t1:A9:undefined -105EBF3C8:t9:A5:child,A9:undefined,A9:undefined,H2800BEA90,A9:transient,A5:false,I4000,A6:worker,H2800BEA80 -105EBF460:lA9:undefined|N -105EBF1B0:t2:AA:$ancestors,H105EBF1A0 -105EBF1A0:lAE:tls_server_sup|H105EBF160 -105EBF160:lA7:tls_sup|H105EBF150 -105EBF150:lA12:ssl_connection_sup|H105EBF140 -105EBF140:lA7:ssl_sup|H105EBF130 -105EBF130:lP<0.103.0>|N -105EBF1E8:t2:AD:$initial_call,H105EBF1C8 -105EBF1C8:t3:AA:supervisor,A1C:ssl_server_session_cache_sup,I1 -=proc_dictionary:<0.119.0> -H105EBF900 -H105EBF938 -=proc_stack:<0.119.0> -y0:N -y1:A8:infinity -y2:H105EBF9C8 -y3:H105EBFC58 -y4:A24:ssl_upgrade_server_session_cache_sup -y5:P<0.115.0> -0x0000000105ebfef0:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105ebff10:SReturn addr 0x3D82348 () -=proc_heap:<0.119.0> -105EBF9C8:t5:AE:callback_cache,AA:supervisor,H105EBF950,H105EBF978,H105EBF9A0 -105EBF9A0:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105EBF978:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105EBF950:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105EBFC58:tC:A5:state,H2800BECC8,A12:simple_one_for_one,H105EBFBC0,H280028358,I3,I3600,N,I0,A5:never,A24:ssl_upgrade_server_session_cache_sup,N -105EBFBC0:t2:H105EBFBB0,H105EBFB90 -105EBFB90:Mf1:H105EBFB80:H105EBFB18 -105EBFB80:t1:A9:undefined -105EBFB18:t9:A5:child,A9:undefined,A9:undefined,H2800BEE18,A9:transient,A5:false,I4000,A6:worker,H2800BEE08 -105EBFBB0:lA9:undefined|N -105EBF900:t2:AA:$ancestors,H105EBF8F0 -105EBF8F0:lAE:tls_server_sup|H105EBF8B0 -105EBF8B0:lA7:tls_sup|H105EBF8A0 -105EBF8A0:lA12:ssl_connection_sup|H105EBF890 -105EBF890:lA7:ssl_sup|H105EBF880 -105EBF880:lP<0.103.0>|N -105EBF938:t2:AD:$initial_call,H105EBF918 -105EBF918:t3:AA:supervisor,A24:ssl_upgrade_server_session_cache_sup,I1 -=proc_dictionary:<0.120.0> -H105DB8030 -H105DB8048 -=proc_stack:<0.120.0> -0x0000000105db82d8:SReturn addr 0x3D82348 () -=proc_heap:<0.120.0> -105DB8030:t2:AA:$ancestors,H105DB8070 -105DB8070:lA12:ssl_connection_sup|H105DB80B0 -105DB80B0:lA7:ssl_sup|H105DB80D0 -105DB80D0:lP<0.103.0>|N -105DB8048:t2:AD:$initial_call,H105DB8080 -105DB8080:t3:AA:supervisor,A8:dtls_sup,I1 -=proc_dictionary:<0.121.0> -H105DB72B0 -H105DB72E8 -=proc_stack:<0.121.0> -y0:N -y1:A8:infinity -y2:H105DB7378 -y3:H105DB7608 -y4:A13:dtls_connection_sup -y5:P<0.120.0> -0x0000000105db78b0:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105db78d0:SReturn addr 0x3D82348 () -=proc_heap:<0.121.0> -105DB7378:t5:AE:callback_cache,AA:supervisor,H105DB7300,H105DB7328,H105DB7350 -105DB7350:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105DB7328:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105DB7300:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105DB7608:tC:A5:state,H2800BF370,A12:simple_one_for_one,H105DB7570,H280028328,I0,I3600,N,I0,A5:never,A13:dtls_connection_sup,N -105DB7570:t2:H105DB7560,H105DB7540 -105DB7540:Mf1:H105DB7530:H105DB74C8 -105DB7530:t1:A9:undefined -105DB74C8:t9:A5:child,A9:undefined,A9:undefined,H2800BF4D0,A9:temporary,A5:false,I4000,A6:worker,H2800BF4B0 -105DB7560:lA9:undefined|N -105DB72B0:t2:AA:$ancestors,H105DB72A0 -105DB72A0:lA8:dtls_sup|H105DB7260 -105DB7260:lA12:ssl_connection_sup|H105DB7250 -105DB7250:lA7:ssl_sup|H105DB7240 -105DB7240:lP<0.103.0>|N -105DB72E8:t2:AD:$initial_call,H105DB72C8 -105DB72C8:t3:AA:supervisor,A13:dtls_connection_sup,I1 -=proc_dictionary:<0.122.0> -H105D8D9E8 -H105D8DA00 -=proc_stack:<0.122.0> -0x0000000105d8dca0:SReturn addr 0x3D82348 () -=proc_heap:<0.122.0> -105D8D9E8:t2:AA:$ancestors,H105D8DA28 -105D8DA28:lA8:dtls_sup|H105D8DA68 -105D8DA68:lA12:ssl_connection_sup|H105D8DA88 -105D8DA88:lA7:ssl_sup|H105D8DAA8 -105D8DAA8:lP<0.103.0>|N -105D8DA00:t2:AD:$initial_call,H105D8DA38 -105D8DA38:t3:AA:supervisor,AF:dtls_server_sup,I1 -=proc_dictionary:<0.123.0> -H105DB7A10 -H105DB7A48 -=proc_stack:<0.123.0> -y0:N -y1:A8:infinity -y2:H105DB7AD8 -y3:H105DB7D68 -y4:A11:dtls_listener_sup -y5:P<0.122.0> -0x0000000105db8000:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105db8020:SReturn addr 0x3D82348 () -=proc_heap:<0.123.0> -105DB7AD8:t5:AE:callback_cache,AA:supervisor,H105DB7A60,H105DB7A88,H105DB7AB0 -105DB7AB0:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105DB7A88:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105DB7A60:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105DB7D68:tC:A5:state,H2800BF988,A12:simple_one_for_one,H105DB7CD0,H280028328,I0,I3600,N,I0,A5:never,A11:dtls_listener_sup,N -105DB7CD0:t2:H105DB7CC0,H105DB7CA0 -105DB7CA0:Mf1:H105DB7C90:H105DB7C28 -105DB7C90:t1:A9:undefined -105DB7C28:t9:A5:child,A9:undefined,A9:undefined,H2800BFB08,A9:temporary,A5:false,I4000,A6:worker,H2800BFAF8 -105DB7CC0:lA9:undefined|N -105DB7A10:t2:AA:$ancestors,H105DB7A00 -105DB7A00:lAF:dtls_server_sup|H105DB79C0 -105DB79C0:lA8:dtls_sup|H105DB79B0 -105DB79B0:lA12:ssl_connection_sup|H105DB79A0 -105DB79A0:lA7:ssl_sup|H105DB7990 -105DB7990:lP<0.103.0>|N -105DB7A48:t2:AD:$initial_call,H105DB7A28 -105DB7A28:t3:AA:supervisor,A11:dtls_listener_sup,I1 -=proc_dictionary:<0.124.0> -H105DE5340 -H105DE5378 -=proc_stack:<0.124.0> -y0:N -y1:A8:infinity -y2:H105DE5408 -y3:H105DE5698 -y4:A1D:dtls_server_session_cache_sup -y5:P<0.122.0> -0x0000000105de5930:SReturn addr 0x3E95064 (proc_lib:init_p_do_apply/3 + 180) -y0:N -y1:N -y2:SCatch 0x3E9508C (proc_lib:init_p_do_apply/3 + 220) -0x0000000105de5950:SReturn addr 0x3D82348 () -=proc_heap:<0.124.0> -105DE5408:t5:AE:callback_cache,AA:supervisor,H105DE5390,H105DE53B8,H105DE53E0 -105DE53E0:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9pbmZvYQI= -105DE53B8:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYXN0YQI= -105DE5390:E1D:g3F3CnN1cGVydmlzb3J3C2hhbmRsZV9jYWxsYQM= -105DE5698:tC:A5:state,H2800BFC90,A12:simple_one_for_one,H105DE5600,H280028328,I0,I3600,N,I0,A5:never,A1D:dtls_server_session_cache_sup,N -105DE5600:t2:H105DE55F0,H105DE55D0 -105DE55D0:Mf1:H105DE55C0:H105DE5558 -105DE55C0:t1:A9:undefined -105DE5558:t9:A5:child,A9:undefined,A9:undefined,H2800BFDC8,A9:temporary,A5:false,I4000,A6:worker,H2800BFDB8 -105DE55F0:lA9:undefined|N -105DE5340:t2:AA:$ancestors,H105DE5330 -105DE5330:lAF:dtls_server_sup|H105DE52F0 -105DE52F0:lA8:dtls_sup|H105DE52E0 -105DE52E0:lA12:ssl_connection_sup|H105DE52D0 -105DE52D0:lA7:ssl_sup|H105DE52C0 -105DE52C0:lP<0.103.0>|N -105DE5378:t2:AD:$initial_call,H105DE5358 -105DE5358:t3:AA:supervisor,A1D:dtls_server_session_cache_sup,I1 -=proc_messages:<0.135.0> -=proc_stack:<0.135.0> -y0:H2800CD8C8 -y1:H105D8D5E0 -y2:A8:infinity -0x0000000105d8d7d0:SReturn addr 0x41FF57C (gleam_erlang_ffi:select/1 + 76) -0x0000000105d8d7d8:SReturn addr 0x41F8888 ('gleam@otp@actor':loop/1 + 88) -y0:N -y1:N -y2:H105D8D4B0 -0x0000000105d8d7f8:SReturn addr 0x3D82348 () -=proc_heap:<0.135.0> -105D8D5E0:Mf3:H105D8D610:H2800CD8C8,H105D8D598,H105D8D340 -105D8D610:t3:A8:anything,H105D8D5C8,H105D8D3B0 -105D8D3B0:t2:H105D8D288,I2 -105D8D288:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALJ5+vQAAd/g02c= -105D8D5C8:t2:A6:system,I3 -105D8D340:E59:g3AAAABXATXkq0co6TIEH9F8d4ohKbUAAAABAAAAAXcUZ2xlYW1AZXJsYW5nQHByb2Nlc3NhAWIBryVaWHcNbm9ub2RlQG5vaG9zdAAAAIcAAAAAAAAAAGo= -105D8D598:E59:g3AAAABXATXkq0co6TIEH9F8d4ohKbUAAAAEAAAAAXcUZ2xlYW1AZXJsYW5nQHByb2Nlc3NhBGIBryVaWHcNbm9ub2RlQG5vaG9zdAAAAIcAAAAAAAAAAGo= -105D8D4B0:t8:A4:self,A7:running,P<0.9.0>,A3:nil,H105D8D160,H105D8D180,N,H105D8D198 -105D8D198:E70:g3AAAABuAm0lB8VhbzpekP2Yj7+xrtsAAAAAAAAABXcnc2hvd3RpbWVAaW50ZXJuYWxAZXJsYW5nQG1vZHVsZV9oYW5kbGVyYQBiA2koPlh3DW5vbm9kZUBub2hvc3QAAAAJAAAAAAAAAABqampqag== -105D8D180:t2:A8:selector,H105D8D2A0 -105D8D2A0:Mf1:H105D8D330:H105D8D340 -105D8D330:t1:H105D8D3B0 -105D8D160:t3:A7:subject,P<0.135.0>,H105D8D288 -=persistent_terms -H280093098|A5:async -AC:logger_proxy|H28008F560 -H2800930E0|I10 -H28001C210|H28001C228 -H280093140|A9:undefined -AC:global_group|H28007FBF0 -H280017DD8|H280017DF0 -H2800BB860|I23 -H28001F250|H28001F268 -H280068270|H280068288 -H280068B60|N -H28001EEC0|H28001EED8 -H2800BB800|I7 -H2800BB7B8|A5:async -A12:rex_nodes_observer|H2800711C8 -H28001EFE8|H28001F000 -H28005B268|I5 -H28006A4B8|I5 -H28008F5C8|A5:async -H280068BF0|I5 -H280068BA8|A4:true -H280068B18|N -H28005B2B0|I5 -=literals -2800101F8:t2:A4:unix,A6:darwin -280010230:t3:I23,I0,I0 -280010268:t6:AB:erts_dflags,I55966662588,I17230663572,I55966662588,I8396866,I8192 -280010188:t0: -280010190:t0: -2800102B8:lI108|N -2800102C8:lI114|H2800102B8 -2800102D8:lI101|H2800102C8 -2800102E8:lI46|H2800102D8 -280013CD0:t4:A5:state,H280013CF8,H280013D10,H280013D28 -280013CF8:Mf0:H280010188: -280013D10:Mf0:H280010188: -280013D28:Mf0:H280010188: -280013D40:Mf0:H280010188: -280013D58:lA5:flush|N -280013D68:lI115|H280013D78 -280013D78:lI111|H280013D88 -280013D88:lI99|H280013D98 -280013D98:lI107|H280013DA8 -280013DA8:lI101|H280013DB8 -280013DB8:lI116|H280013DC8 -280013DC8:lI45|H280013DD8 -280013DD8:lI114|H280013DE8 -280013DE8:lI101|H280013DF8 -280013DF8:lI103|H280013E08 -280013E08:lI105|H280013E18 -280013E18:lI115|H280013E28 -280013E28:lI116|H280013E38 -280013E38:lI114|H280013E48 -280013E48:lI121|H280013E58 -280013E58:lI32|H280013E68 -280013E68:lI114|H280013E78 -280013E78:lI101|H280013E88 -280013E88:lI99|H280013E98 -280013E98:lI101|H280013EA8 -280013EA8:lI105|H280013EB8 -280013EB8:lI118|H280013EC8 -280013EC8:lI101|H280013ED8 -280013ED8:lI100|H280013EE8 -280013EE8:lI32|H280013EF8 -280013EF8:lI117|H280013F08 -280013F08:lI110|H280013F18 -280013F18:lI101|H280013F28 -280013F28:lI120|H280013F38 -280013F38:lI112|H280013F48 -280013F48:lI101|H280013F58 -280013F58:lI99|H280013F68 -280013F68:lI116|H280013F78 -280013F78:lI101|H280013F88 -280013F88:lI100|H280013F98 -280013F98:lI32|H280013FA8 -280013FA8:lI101|H280013FB8 -280013FB8:lI120|H280013FC8 -280013FC8:lI105|H280013FD8 -280013FD8:lI116|H280013FE8 -280013FE8:lI32|H280013FF8 -280013FF8:lI102|H280014008 -280014008:lI114|H280014018 -280014018:lI111|H280014028 -280014028:lI109|H280014038 -280014038:lI32|H280014048 -280014048:lI126|H280014058 -280014058:lI112|H280014068 -280014068:lI58|H280014078 -280014078:lI126|H280014088 -280014088:lI110|H280014098 -280014098:lI32|H2800140A8 -2800140A8:lI32|H2800140B8 -2800140B8:lI32|H2800140C8 -2800140C8:lI126|H2800140D8 -2800140D8:lI112|N -2800140E8:lI115|H2800140F8 -2800140F8:lI111|H280014108 -280014108:lI99|H280014118 -280014118:lI107|H280014128 -280014128:lI101|H280014138 -280014138:lI116|H280014148 -280014148:lI45|H280014158 -280014158:lI114|H280014168 -280014168:lI101|H280014178 -280014178:lI103|H280014188 -280014188:lI105|H280014198 -280014198:lI115|H2800141A8 -2800141A8:lI116|H2800141B8 -2800141B8:lI114|H2800141C8 -2800141C8:lI121|H2800141D8 -2800141D8:lI32|H2800141E8 -2800141E8:lI114|H2800141F8 -2800141F8:lI101|H280014208 -280014208:lI99|H280014218 -280014218:lI101|H280014228 -280014228:lI105|H280014238 -280014238:lI118|H280014248 -280014248:lI101|H280014258 -280014258:lI100|H280014268 -280014268:lI32|H280014278 -280014278:lI117|H280014288 -280014288:lI110|H280014298 -280014298:lI101|H2800142A8 -2800142A8:lI120|H2800142B8 -2800142B8:lI112|H2800142C8 -2800142C8:lI101|H2800142D8 -2800142D8:lI99|H2800142E8 -2800142E8:lI116|H2800142F8 -2800142F8:lI101|H280014308 -280014308:lI100|H280014318 -280014318:lI58|H280014328 -280014328:lI126|H280014338 -280014338:lI110|H280014348 -280014348:lI32|H280014358 -280014358:lI32|H280014368 -280014368:lI32|H280014378 -280014378:lI126|H280014388 -280014388:lI112|N -280014398:lI115|H2800143A8 -2800143A8:lI111|H2800143B8 -2800143B8:lI99|H2800143C8 -2800143C8:lI107|H2800143D8 -2800143D8:lI101|H2800143E8 -2800143E8:lI116|H2800143F8 -2800143F8:lI45|H280014408 -280014408:lI114|H280014418 -280014418:lI101|H280014428 -280014428:lI103|H280014438 -280014438:lI105|H280014448 -280014448:lI115|H280014458 -280014458:lI116|H280014468 -280014468:lI114|H280014478 -280014478:lI121|H280014488 -280014488:lI32|H280014498 -280014498:lI101|H2800144A8 -2800144A8:lI114|H2800144B8 -2800144B8:lI114|H2800144C8 -2800144C8:lI111|H2800144D8 -2800144D8:lI114|H2800144E8 -2800144E8:lI32|H2800144F8 -2800144F8:lI119|H280014508 -280014508:lI104|H280014518 -280014518:lI105|H280014528 -280014528:lI108|H280014538 -280014538:lI101|H280014548 -280014548:lI32|H280014558 -280014558:lI112|H280014568 -280014568:lI114|H280014578 -280014578:lI111|H280014588 -280014588:lI99|H280014598 -280014598:lI101|H2800145A8 -2800145A8:lI115|H2800145B8 -2800145B8:lI115|H2800145C8 -2800145C8:lI105|H2800145D8 -2800145D8:lI110|H2800145E8 -2800145E8:lI103|H2800145F8 -2800145F8:lI32|H280014608 -280014608:lI115|H280014618 -280014618:lI111|H280014628 -280014628:lI99|H280014638 -280014638:lI107|H280014648 -280014648:lI101|H280014658 -280014658:lI116|H280014668 -280014668:lI58|H280014678 -280014678:lI32|H280014688 -280014688:lI126|H280014698 -280014698:lI110|H2800146A8 -2800146A8:lI32|H2800146B8 -2800146B8:lI32|H2800146C8 -2800146C8:lI32|H2800146D8 -2800146D8:lI67|H2800146E8 -2800146E8:lI108|H2800146F8 -2800146F8:lI97|H280014708 -280014708:lI115|H280014718 -280014718:lI115|H280014728 -280014728:lI58|H280014738 -280014738:lI32|H280014748 -280014748:lI126|H280014758 -280014758:lI112|H280014768 -280014768:lI126|H280014778 -280014778:lI110|H280014788 -280014788:lI32|H280014798 -280014798:lI32|H2800147A8 -2800147A8:lI32|H2800147B8 -2800147B8:lI69|H2800147C8 -2800147C8:lI114|H2800147D8 -2800147D8:lI114|H2800147E8 -2800147E8:lI111|H2800147F8 -2800147F8:lI114|H280014808 -280014808:lI58|H280014818 -280014818:lI32|H280014828 -280014828:lI126|H280014838 -280014838:lI112|H280014848 -280014848:lI126|H280014858 -280014858:lI110|H280014868 -280014868:lI32|H280014878 -280014878:lI32|H280014888 -280014888:lI32|H280014898 -280014898:lI83|H2800148A8 -2800148A8:lI116|H2800148B8 -2800148B8:lI97|H2800148C8 -2800148C8:lI99|H2800148D8 -2800148D8:lI107|H2800148E8 -2800148E8:lI58|H2800148F8 -2800148F8:lI32|H280014908 -280014908:lI126|H280014918 -280014918:lI112|N -280014928:t2:A5:error,AE:unknown_socket -280014940:t2:A5:error,A9:not_owner -280014958:t2:A5:error,AF:unknown_monitor -280014970:t2:AF:socket_registry,A9:not_found -280014988:lI115|H280014998 -280014998:lI111|H2800149A8 -2800149A8:lI99|H2800149B8 -2800149B8:lI107|H2800149C8 -2800149C8:lI101|H2800149D8 -2800149D8:lI116|H2800149E8 -2800149E8:lI45|H2800149F8 -2800149F8:lI114|H280014A08 -280014A08:lI101|H280014A18 -280014A18:lI103|H280014A28 -280014A28:lI105|H280014A38 -280014A38:lI115|H280014A48 -280014A48:lI116|H280014A58 -280014A58:lI114|H280014A68 -280014A68:lI121|H280014A78 -280014A78:lI32|H280014A88 -280014A88:lI115|H280014A98 -280014A98:lI101|H280014AA8 -280014AA8:lI110|H280014AB8 -280014AB8:lI100|H280014AC8 -280014AC8:lI102|H280014AD8 -280014AD8:lI105|H280014AE8 -280014AE8:lI108|H280014AF8 -280014AF8:lI101|H280014B08 -280014B08:lI95|H280014B18 -280014B18:lI100|H280014B28 -280014B28:lI101|H280014B38 -280014B38:lI102|H280014B48 -280014B48:lI101|H280014B58 -280014B58:lI114|H280014B68 -280014B68:lI114|H280014B78 -280014B78:lI101|H280014B88 -280014B88:lI100|H280014B98 -280014B98:lI95|H280014BA8 -280014BA8:lI99|H280014BB8 -280014BB8:lI108|H280014BC8 -280014BC8:lI111|H280014BD8 -280014BD8:lI115|H280014BE8 -280014BE8:lI101|H280014BF8 -280014BF8:lI58|H280014C08 -280014C08:lI126|H280014C18 -280014C18:lI110|H280014C28 -280014C28:lI32|H280014C38 -280014C38:lI32|H280014C48 -280014C48:lI32|H280014C58 -280014C58:lI91|H280014C68 -280014C68:lI126|H280014C78 -280014C78:lI112|H280014C88 -280014C88:lI93|H280014C98 -280014C98:lI32|H280014CA8 -280014CA8:lI126|H280014CB8 -280014CB8:lI112|N -280014CC8:lI115|H280014CD8 -280014CD8:lI111|H280014CE8 -280014CE8:lI99|H280014CF8 -280014CF8:lI107|H280014D08 -280014D08:lI101|H280014D18 -280014D18:lI116|H280014D28 -280014D28:lI45|H280014D38 -280014D38:lI114|H280014D48 -280014D48:lI101|H280014D58 -280014D58:lI103|H280014D68 -280014D68:lI105|H280014D78 -280014D78:lI115|H280014D88 -280014D88:lI116|H280014D98 -280014D98:lI114|H280014DA8 -280014DA8:lI121|H280014DB8 -280014DB8:lI32|H280014DC8 -280014DC8:lI115|H280014DD8 -280014DD8:lI101|H280014DE8 -280014DE8:lI110|H280014DF8 -280014DF8:lI100|H280014E08 -280014E08:lI102|H280014E18 -280014E18:lI105|H280014E28 -280014E28:lI108|H280014E38 -280014E38:lI101|H280014E48 -280014E48:lI95|H280014E58 -280014E58:lI100|H280014E68 -280014E68:lI101|H280014E78 -280014E78:lI102|H280014E88 -280014E88:lI101|H280014E98 -280014E98:lI114|H280014EA8 -280014EA8:lI114|H280014EB8 -280014EB8:lI101|H280014EC8 -280014EC8:lI100|H280014ED8 -280014ED8:lI95|H280014EE8 -280014EE8:lI99|H280014EF8 -280014EF8:lI108|H280014F08 -280014F08:lI111|H280014F18 -280014F18:lI115|H280014F28 -280014F28:lI101|H280014F38 -280014F38:lI58|H280014F48 -280014F48:lI126|H280014F58 -280014F58:lI110|H280014F68 -280014F68:lI32|H280014F78 -280014F78:lI32|H280014F88 -280014F88:lI32|H280014F98 -280014F98:lI91|H280014FA8 -280014FA8:lI126|H280014FB8 -280014FB8:lI112|H280014FC8 -280014FC8:lI93|H280014FD8 -280014FD8:lI32|H280014FE8 -280014FE8:lI40|H280014FF8 -280014FF8:lI126|H280015008 -280015008:lI112|H280015018 -280015018:lI58|H280015028 -280015028:lI126|H280015038 -280015038:lI112|H280015048 -280015048:lI41|H280015058 -280015058:lI126|H280015068 -280015068:lI110|H280015078 -280015078:lI32|H280015088 -280015088:lI32|H280015098 -280015098:lI32|H2800150A8 -2800150A8:lI32|H2800150B8 -2800150B8:lI32|H2800150C8 -2800150C8:lI32|H2800150D8 -2800150D8:lI126|H2800150E8 -2800150E8:lI112|N -2800150F8:t1:A3:tag -280015108:t4:AC:error_logger,A3:pid,A4:time,A2:gl -280017B40:t2:I0,N -280025F58:lI67|H280025F68 -280025F68:lI97|H280025F78 -280025F78:lI108|H280025F88 -280025F88:lI108|H280025F98 -280025F98:lI98|H280025FA8 -280025FA8:lI97|H280025FB8 -280025FB8:lI99|H280025FC8 -280025FC8:lI107|N -280025FD8:lI83|H280025FE8 -280025FE8:lI116|H280025FF8 -280025FF8:lI97|H280026008 -280026008:lI116|H280026018 -280026018:lI101|N -280026028:t2:A2:ok,A9:undefined -280026040:t2:A5:error,AA:restarting -280026058:t2:A5:error,A7:running -280026070:t2:A5:error,A9:not_found -280026088:t2:A5:error,A12:simple_one_for_one -2800260A0:t2:AB:supervisors,I0 -2800260B8:t2:A5:specs,I1 -2800260D0:lH2800260E0|N -2800260E0:t2:A7:workers,I0 -2800260F8:t4:I0,I0,I0,I0 -280026120:lI83|H280026130 -280026130:lI117|H280026140 -280026140:lI112|H280026150 -280026150:lI101|H280026160 -280026160:lI114|H280026170 -280026170:lI118|H280026180 -280026180:lI105|H280026190 -280026190:lI115|H2800261A0 -2800261A0:lI111|H2800261B0 -2800261B0:lI114|H2800261C0 -2800261C0:lI32|H2800261D0 -2800261D0:lI114|H2800261E0 -2800261E0:lI101|H2800261F0 -2800261F0:lI99|H280026200 -280026200:lI101|H280026210 -280026210:lI105|H280026220 -280026220:lI118|H280026230 -280026230:lI101|H280026240 -280026240:lI100|H280026250 -280026250:lI32|H280026260 -280026260:lI117|H280026270 -280026270:lI110|H280026280 -280026280:lI101|H280026290 -280026290:lI120|H2800262A0 -2800262A0:lI112|H2800262B0 -2800262B0:lI101|H2800262C0 -2800262C0:lI99|H2800262D0 -2800262D0:lI116|H2800262E0 -2800262E0:lI101|H2800262F0 -2800262F0:lI100|H280026300 -280026300:lI32|H280026310 -280026310:lI109|H280026320 -280026320:lI101|H280026330 -280026330:lI115|H280026340 -280026340:lI115|H280026350 -280026350:lI97|H280026360 -280026360:lI103|H280026370 -280026370:lI101|H280026380 -280026380:lI58|H280026390 -280026390:lI32|H2800263A0 -2800263A0:lI126|H2800263B0 -2800263B0:lI116|H2800263C0 -2800263C0:lI112|H2800263D0 -2800263D0:lI126|H2800263E0 -2800263E0:lI110|N -2800263F0:t2:AC:error_logger,A6:domain -280026408:Mf2:H2800263F0:H280026450,H280026430 -280026430:lA3:otp|N -280026440:t1:A3:tag -280026450:Mf1:H280026440:A5:error -280026470:t3:A4:line,A4:file,A3:mfa -280026490:Mf3:H280026470:I623,H2800264C0,H2800265A0 -2800264C0:lI115|H2800264D0 -2800264D0:lI117|H2800264E0 -2800264E0:lI112|H2800264F0 -2800264F0:lI101|H280026500 -280026500:lI114|H280026510 -280026510:lI118|H280026520 -280026520:lI105|H280026530 -280026530:lI115|H280026540 -280026540:lI111|H280026550 -280026550:lI114|H280026560 -280026560:lI46|H280026570 -280026570:lI101|H280026580 -280026580:lI114|H280026590 -280026590:lI108|N -2800265A0:t3:AA:supervisor,AB:handle_info,I2 -2800265C0:t2:A5:error,AF:already_present -2800265D8:t2:AC:errorContext,A10:child_terminated -2800265F0:Mf0:H280010188: -280026608:t2:AA:supervisor,A10:child_terminated -280026620:t4:AC:error_logger,A6:domain,A10:logger_formatter,A9:report_cb -280026648:Mf4:H280026620:H2800266C0,H280026680,H280026728,H280026858 -280026680:lA3:otp|H280026690 -280026690:lA4:sasl|N -2800266A0:t3:A3:tag,A4:type,A9:report_cb -2800266C0:Mf3:H2800266A0:AC:error_report,A11:supervisor_report,H2800266F0 -2800266F0:E1C:g3F3CnN1cGVydmlzb3J3CmZvcm1hdF9sb2dhAQ== -280026718:t1:A5:title -280026728:Mf1:H280026718:H280026748 -280026748:lI83|H280026758 -280026758:lI85|H280026768 -280026768:lI80|H280026778 -280026778:lI69|H280026788 -280026788:lI82|H280026798 -280026798:lI86|H2800267A8 -2800267A8:lI73|H2800267B8 -2800267B8:lI83|H2800267C8 -2800267C8:lI79|H2800267D8 -2800267D8:lI82|H2800267E8 -2800267E8:lI32|H2800267F8 -2800267F8:lI82|H280026808 -280026808:lI69|H280026818 -280026818:lI80|H280026828 -280026828:lI79|H280026838 -280026838:lI82|H280026848 -280026848:lI84|N -280026858:E1C:g3F3CnN1cGVydmlzb3J3CmZvcm1hdF9sb2dhAg== -280026880:t3:A4:line,A4:file,A3:mfa -2800268A0:Mf3:H280026880:I742,H2800268D0,H2800269B0 -2800268D0:lI115|H2800268E0 -2800268E0:lI117|H2800268F0 -2800268F0:lI112|H280026900 -280026900:lI101|H280026910 -280026910:lI114|H280026920 -280026920:lI118|H280026930 -280026930:lI105|H280026940 -280026940:lI115|H280026950 -280026950:lI111|H280026960 -280026960:lI114|H280026970 -280026970:lI46|H280026980 -280026980:lI101|H280026990 -280026990:lI114|H2800269A0 -2800269A0:lI108|N -2800269B0:t3:AA:supervisor,AA:do_restart,I3 -2800269D0:t3:A4:line,A4:file,A3:mfa -2800269F0:Mf3:H2800269D0:I754,H280026A20,H280026B00 -280026A20:lI115|H280026A30 -280026A30:lI117|H280026A40 -280026A40:lI112|H280026A50 -280026A50:lI101|H280026A60 -280026A60:lI114|H280026A70 -280026A70:lI118|H280026A80 -280026A80:lI105|H280026A90 -280026A90:lI115|H280026AA0 -280026AA0:lI111|H280026AB0 -280026AB0:lI114|H280026AC0 -280026AC0:lI46|H280026AD0 -280026AD0:lI101|H280026AE0 -280026AE0:lI114|H280026AF0 -280026AF0:lI108|N -280026B00:t3:AA:supervisor,AA:do_restart,I3 -280026B20:t3:A4:line,A4:file,A3:mfa -280026B40:Mf3:H280026B20:I757,H280026B70,H280026C50 -280026B70:lI115|H280026B80 -280026B80:lI117|H280026B90 -280026B90:lI112|H280026BA0 -280026BA0:lI101|H280026BB0 -280026BB0:lI114|H280026BC0 -280026BC0:lI118|H280026BD0 -280026BD0:lI105|H280026BE0 -280026BE0:lI115|H280026BF0 -280026BF0:lI111|H280026C00 -280026C00:lI114|H280026C10 -280026C10:lI46|H280026C20 -280026C20:lI101|H280026C30 -280026C30:lI114|H280026C40 -280026C40:lI108|N -280026C50:t3:AA:supervisor,AA:do_restart,I3 -280026C70:t2:A6:reason,A1D:reached_max_restart_intensity -280026C88:t2:AC:errorContext,A8:shutdown -280026CA0:t2:AA:supervisor,A8:shutdown -280026CB8:t3:A4:line,A4:file,A3:mfa -280026CD8:Mf3:H280026CB8:I811,H280026D08,H280026DE8 -280026D08:lI115|H280026D18 -280026D18:lI117|H280026D28 -280026D28:lI112|H280026D38 -280026D38:lI101|H280026D48 -280026D48:lI114|H280026D58 -280026D58:lI118|H280026D68 -280026D68:lI105|H280026D78 -280026D78:lI115|H280026D88 -280026D88:lI111|H280026D98 -280026D98:lI114|H280026DA8 -280026DA8:lI46|H280026DB8 -280026DB8:lI101|H280026DC8 -280026DC8:lI114|H280026DD8 -280026DD8:lI108|N -280026DE8:t3:AA:supervisor,A7:restart,I2 -280026E08:t2:AC:errorContext,AB:start_error -280026E20:t2:AA:supervisor,AB:start_error -280026E38:t3:A4:line,A4:file,A3:mfa -280026E58:Mf3:H280026E38:I838,H280026E88,H280026F68 -280026E88:lI115|H280026E98 -280026E98:lI117|H280026EA8 -280026EA8:lI112|H280026EB8 -280026EB8:lI101|H280026EC8 -280026EC8:lI114|H280026ED8 -280026ED8:lI118|H280026EE8 -280026EE8:lI105|H280026EF8 -280026EF8:lI115|H280026F08 -280026F08:lI111|H280026F18 -280026F18:lI114|H280026F28 -280026F28:lI46|H280026F38 -280026F38:lI101|H280026F48 -280026F48:lI114|H280026F58 -280026F58:lI108|N -280026F68:t3:AA:supervisor,A7:restart,I3 -280026F88:t3:A4:line,A4:file,A3:mfa -280026FA8:Mf3:H280026F88:I852,H280026FD8,H2800270B8 -280026FD8:lI115|H280026FE8 -280026FE8:lI117|H280026FF8 -280026FF8:lI112|H280027008 -280027008:lI101|H280027018 -280027018:lI114|H280027028 -280027028:lI118|H280027038 -280027038:lI105|H280027048 -280027048:lI115|H280027058 -280027058:lI111|H280027068 -280027068:lI114|H280027078 -280027078:lI46|H280027088 -280027088:lI101|H280027098 -280027098:lI114|H2800270A8 -2800270A8:lI108|N -2800270B8:t3:AA:supervisor,A7:restart,I3 -2800270D8:t2:AA:restarting,A9:undefined -2800270F0:t2:AC:errorContext,AE:shutdown_error -280027108:t2:AA:supervisor,AE:shutdown_error -280027120:t3:A4:line,A4:file,A3:mfa -280027140:Mf3:H280027120:I911,H280027170,H280027250 -280027170:lI115|H280027180 -280027180:lI117|H280027190 -280027190:lI112|H2800271A0 -2800271A0:lI101|H2800271B0 -2800271B0:lI114|H2800271C0 -2800271C0:lI118|H2800271D0 -2800271D0:lI105|H2800271E0 -2800271E0:lI115|H2800271F0 -2800271F0:lI111|H280027200 -280027200:lI114|H280027210 -280027210:lI46|H280027220 -280027220:lI101|H280027230 -280027230:lI114|H280027240 -280027240:lI108|N -280027250:t3:AA:supervisor,AC:do_terminate,I2 -280027270:t2:N,H280027288 -280027288:Mf0:H280010188: -2800272A0:t4:A8:strategy,A6:period,A9:intensity,AD:auto_shutdown -2800272C8:Mf4:H2800272A0:AB:one_for_one,I5,I1,A5:never -280027300:t2:A7:restart,A4:type -280027318:Mf2:H280027300:A9:permanent,A6:worker -280027340:t2:AF:bad_combination,H280027358 -280027358:lH280027378|H280027368 -280027368:lH280027390|N -280027378:t2:AD:auto_shutdown,A5:never -280027390:t2:AB:significant,A4:true -2800273A8:t2:AF:bad_combination,H2800273C0 -2800273C0:lH2800273E0|H2800273D0 -2800273D0:lH2800273F8|N -2800273E0:t2:A7:restart,A9:permanent -2800273F8:t2:AB:significant,A4:true -280027410:t2:AA:supervisor,A8:progress -280027428:t4:AC:error_logger,A6:domain,A10:logger_formatter,A9:report_cb -280027450:Mf4:H280027428:H2800274C8,H280027488,H280027530,H280027640 -280027488:lA3:otp|H280027498 -280027498:lA4:sasl|N -2800274A8:t3:A3:tag,A4:type,A9:report_cb -2800274C8:Mf3:H2800274A8:AB:info_report,A8:progress,H2800274F8 -2800274F8:E1C:g3F3CnN1cGVydmlzb3J3CmZvcm1hdF9sb2dhAQ== -280027520:t1:A5:title -280027530:Mf1:H280027520:H280027550 -280027550:lI80|H280027560 -280027560:lI82|H280027570 -280027570:lI79|H280027580 -280027580:lI71|H280027590 -280027590:lI82|H2800275A0 -2800275A0:lI69|H2800275B0 -2800275B0:lI83|H2800275C0 -2800275C0:lI83|H2800275D0 -2800275D0:lI32|H2800275E0 -2800275E0:lI82|H2800275F0 -2800275F0:lI69|H280027600 -280027600:lI80|H280027610 -280027610:lI79|H280027620 -280027620:lI82|H280027630 -280027630:lI84|N -280027640:E1C:g3F3CnN1cGVydmlzb3J3CmZvcm1hdF9sb2dhAg== -280027668:t3:A4:line,A4:file,A3:mfa -280027688:Mf3:H280027668:I1563,H2800276B8,H280027798 -2800276B8:lI115|H2800276C8 -2800276C8:lI117|H2800276D8 -2800276D8:lI112|H2800276E8 -2800276E8:lI101|H2800276F8 -2800276F8:lI114|H280027708 -280027708:lI118|H280027718 -280027718:lI105|H280027728 -280027728:lI115|H280027738 -280027738:lI111|H280027748 -280027748:lI114|H280027758 -280027758:lI46|H280027768 -280027768:lI101|H280027778 -280027778:lI114|H280027788 -280027788:lI108|N -280027798:t3:AA:supervisor,AF:report_progress,I2 -2800277B8:t4:AB:chars_limit,A5:depth,A8:encoding,AB:single_line -2800277E0:Mf4:H2800277B8:A9:unlimited,A9:unlimited,A4:utf8,A5:false -280027818:lI83|H280027828 -280027828:lI116|H280027838 -280027838:lI97|H280027848 -280027848:lI114|H280027858 -280027858:lI116|H280027868 -280027868:lI101|H280027878 -280027878:lI100|H280027888 -280027888:lI58|N -280027898:lI46|N -2800278A8:lI83|H2800278B8 -2800278B8:lI117|H2800278C8 -2800278C8:lI112|H2800278D8 -2800278D8:lI101|H2800278E8 -2800278E8:lI114|H2800278F8 -2800278F8:lI118|H280027908 -280027908:lI105|H280027918 -280027918:lI115|H280027928 -280027928:lI111|H280027938 -280027938:lI114|H280027948 -280027948:lI58|H280027958 -280027958:lI32|N -280027968:lH280027978|N -280027978:lI46|N -280027988:lI46|H280027998 -280027998:lI32|H2800279A8 -2800279A8:lI82|H2800279B8 -2800279B8:lI101|H2800279C8 -2800279C8:lI97|H2800279D8 -2800279D8:lI115|H2800279E8 -2800279E8:lI111|H2800279F8 -2800279F8:lI110|H280027A08 -280027A08:lI58|H280027A18 -280027A18:lI32|N -280027A28:lI46|H280027A38 -280027A38:lI32|H280027A48 -280027A48:lI67|H280027A58 -280027A58:lI111|H280027A68 -280027A68:lI110|H280027A78 -280027A78:lI116|H280027A88 -280027A88:lI101|H280027A98 -280027A98:lI120|H280027AA8 -280027AA8:lI116|H280027AB8 -280027AB8:lI58|H280027AC8 -280027AC8:lI32|N -280027AD8:lI79|H280027AE8 -280027AE8:lI102|H280027AF8 -280027AF8:lI102|H280027B08 -280027B08:lI101|H280027B18 -280027B18:lI110|H280027B28 -280027B28:lI100|H280027B38 -280027B38:lI101|H280027B48 -280027B48:lI114|H280027B58 -280027B58:lI58|N -280027B68:lH280027B78|N -280027B78:lI126|H280027B88 -280027B88:lI110|N -280027B98:lI32|H280027BA8 -280027BA8:lI32|H280027BB8 -280027BB8:lI32|H280027BC8 -280027BC8:lI32|H280027BD8 -280027BD8:lI115|H280027BE8 -280027BE8:lI116|H280027BF8 -280027BF8:lI97|H280027C08 -280027C08:lI114|H280027C18 -280027C18:lI116|H280027C28 -280027C28:lI101|H280027C38 -280027C38:lI100|H280027C48 -280027C48:lI58|H280027C58 -280027C58:lI32|N -280027C68:lI126|H280027C78 -280027C78:lI110|N -280027C88:lI32|H280027C98 -280027C98:lI32|H280027CA8 -280027CA8:lI32|H280027CB8 -280027CB8:lI32|H280027CC8 -280027CC8:lI115|H280027CD8 -280027CD8:lI117|H280027CE8 -280027CE8:lI112|H280027CF8 -280027CF8:lI101|H280027D08 -280027D08:lI114|H280027D18 -280027D18:lI118|H280027D28 -280027D28:lI105|H280027D38 -280027D38:lI115|H280027D48 -280027D48:lI111|H280027D58 -280027D58:lI114|H280027D68 -280027D68:lI58|H280027D78 -280027D78:lI32|N -280027D88:lI32|H280027D98 -280027D98:lI32|H280027DA8 -280027DA8:lI32|H280027DB8 -280027DB8:lI32|H280027DC8 -280027DC8:lI111|H280027DD8 -280027DD8:lI102|H280027DE8 -280027DE8:lI102|H280027DF8 -280027DF8:lI101|H280027E08 -280027E08:lI110|H280027E18 -280027E18:lI100|H280027E28 -280027E28:lI101|H280027E38 -280027E38:lI114|H280027E48 -280027E48:lI58|H280027E58 -280027E58:lI32|N -280027E68:lI32|H280027E78 -280027E78:lI32|H280027E88 -280027E88:lI32|H280027E98 -280027E98:lI32|H280027EA8 -280027EA8:lI114|H280027EB8 -280027EB8:lI101|H280027EC8 -280027EC8:lI97|H280027ED8 -280027ED8:lI115|H280027EE8 -280027EE8:lI111|H280027EF8 -280027EF8:lI110|H280027F08 -280027F08:lI58|H280027F18 -280027F18:lI32|N -280027F28:lI32|H280027F38 -280027F38:lI32|H280027F48 -280027F48:lI32|H280027F58 -280027F58:lI32|H280027F68 -280027F68:lI101|H280027F78 -280027F78:lI114|H280027F88 -280027F88:lI114|H280027F98 -280027F98:lI111|H280027FA8 -280027FA8:lI114|H280027FB8 -280027FB8:lI67|H280027FC8 -280027FC8:lI111|H280027FD8 -280027FD8:lI110|H280027FE8 -280027FE8:lI116|H280027FF8 -280027FF8:lI101|H280028008 -280028008:lI120|H280028018 -280028018:lI116|H280028028 -280028028:lI58|H280028038 -280028038:lI32|N -280028048:lI32|H280028058 -280028058:lI126|H280028068 -280028068:lI115|H280028078 -280028078:lI32|H280028088 -280028088:lI105|H280028098 -280028098:lI100|H2800280A8 -2800280A8:lI61|H2800280B8 -2800280B8:lI126|H2800280C8 -2800280C8:lI119|H2800280D8 -2800280D8:lI44|H2800280E8 -2800280E8:lI110|H2800280F8 -2800280F8:lI98|H280028108 -280028108:lI95|H280028118 -280028118:lI99|H280028128 -280028128:lI104|H280028138 -280028138:lI105|H280028148 -280028148:lI108|H280028158 -280028158:lI100|H280028168 -280028168:lI114|H280028178 -280028178:lI101|H280028188 -280028188:lI110|H280028198 -280028198:lI61|H2800281A8 -2800281A8:lI126|H2800281B8 -2800281B8:lI119|H2800281C8 -2800281C8:lI46|N -2800281D8:lI32|H2800281E8 -2800281E8:lI126|H2800281F8 -2800281F8:lI115|H280028208 -280028208:lI32|H280028218 -280028218:lI105|H280028228 -280028228:lI100|H280028238 -280028238:lI61|H280028248 -280028248:lI126|H280028258 -280028258:lI119|H280028268 -280028268:lI44|H280028278 -280028278:lI112|H280028288 -280028288:lI105|H280028298 -280028298:lI100|H2800282A8 -2800282A8:lI61|H2800282B8 -2800282B8:lI126|H2800282C8 -2800282C8:lI119|H2800282D8 -2800282D8:lI46|N -2800282E8:lI112|N -2800282F8:lI80|N -280028308:lI48|N -280028318:lI116|N -280028328:t2:A7:mapsets,H280028340 -280028340:Mf0:H280010188: -280028358:t2:A4:maps,H280028370 -280028370:Mf0:H280010188: -280028388:lH280028398|N -280028398:t2:A4:init,I1 -2800283B0:t3:A4:line,A4:file,A3:mfa -2800283D0:Mf3:H2800283B0:I1026,H280028400,H2800284E0 -280028400:lI115|H280028410 -280028410:lI117|H280028420 -280028420:lI112|H280028430 -280028430:lI101|H280028440 -280028440:lI114|H280028450 -280028450:lI118|H280028460 -280028460:lI105|H280028470 -280028470:lI115|H280028480 -280028480:lI111|H280028490 -280028490:lI114|H2800284A0 -2800284A0:lI46|H2800284B0 -2800284B0:lI101|H2800284C0 -2800284C0:lI114|H2800284D0 -2800284D0:lI108|N -2800284E0:t3:AA:supervisor,A1A:terminate_dynamic_children,I1 -280028500:t3:A4:line,A4:file,A3:mfa -280028520:Mf3:H280028500:I398,H280028550,H280028630 -280028550:lI115|H280028560 -280028560:lI117|H280028570 -280028570:lI112|H280028580 -280028580:lI101|H280028590 -280028590:lI114|H2800285A0 -2800285A0:lI118|H2800285B0 -2800285B0:lI105|H2800285C0 -2800285C0:lI115|H2800285D0 -2800285D0:lI111|H2800285E0 -2800285E0:lI114|H2800285F0 -2800285F0:lI46|H280028600 -280028600:lI101|H280028610 -280028610:lI114|H280028620 -280028620:lI108|N -280028630:t3:AA:supervisor,AE:start_children,I2 -280028650:lI108|N -280028660:lI114|H280028650 -280028670:lI101|H280028660 -280028680:lI46|H280028670 -280028690:lI114|H280028680 -2800286A0:lI111|H280028690 -2800286B0:lI115|H2800286A0 -2800286C0:lI105|H2800286B0 -2800286D0:lI118|H2800286C0 -2800286E0:lI114|H2800286D0 -2800286F0:lI101|H2800286E0 -280028700:lI112|H2800286F0 -280028710:lI117|H280028700 -280028720:lI115|H280028710 -280028730:E4E:g3AAAABMAnoLCyY6L4XTypzaMLAOL78AAAACAAAAAHcKc3VwZXJ2aXNvcmECYgPQWFlYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -280028758:E4E:g3AAAABMA3oLCyY6L4XTypzaMLAOL78AAAADAAAAAHcKc3VwZXJ2aXNvcmEDYgPQWFlYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -280028780:t2:A5:label,A6:report -280028798:E4E:g3AAAABMAnoLCyY6L4XTypzaMLAOL78AAAAEAAAAAHcKc3VwZXJ2aXNvcmEEYgPQWFlYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -2800287C0:E4E:g3AAAABMAnoLCyY6L4XTypzaMLAOL78AAAAIAAAAAHcKc3VwZXJ2aXNvcmEIYgPQWFlYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -2800287E8:t4:A8:strategy,A6:period,A9:intensity,AD:auto_shutdown -280028810:t7:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules,AB:significant -280028850:E4E:g3AAAABMAXoLCyY6L4XTypzaMLAOL78AAAALAAAAAHcKc3VwZXJ2aXNvcmELYgPQWFlYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -280028878:t4:AB:chars_limit,A5:depth,A8:encoding,AB:single_line -280042AD8:lA5:flush|N -280042AE8:t2:A5:error,A7:timeout -280042B00:lA4:link|H280042B10 -280042B10:lA7:monitor|N -280042B20:lI65|H280042B30 -280042B30:lI114|H280042B40 -280042B40:lI103|H280042B50 -280042B50:lI117|H280042B60 -280042B60:lI109|H280042B70 -280042B70:lI101|H280042B80 -280042B80:lI110|H280042B90 -280042B90:lI116|H280042BA0 -280042BA0:lI95|H280042BB0 -280042BB0:lI95|N -280042BC0:t3:A8:proc_lib,A6:init_p,I5 -280042BE0:t3:A9:gen_event,A7:init_it,I6 -280042C00:Mf0:H280010188: -280042C18:t2:A8:proc_lib,A5:crash -280042C30:t4:AC:error_logger,A6:domain,A10:logger_formatter,A9:report_cb -280042C58:Mf4:H280042C30:H280042CC8,H280042C90,H280042D00,H280042DE0 -280042C90:lA3:otp|H280042CA0 -280042CA0:lA4:sasl|N -280042CB0:t2:A3:tag,A4:type -280042CC8:Mf2:H280042CB0:AC:error_report,AC:crash_report -280042CF0:t1:A5:title -280042D00:Mf1:H280042CF0:H280042D20 -280042D20:lI67|H280042D30 -280042D30:lI82|H280042D40 -280042D40:lI65|H280042D50 -280042D50:lI83|H280042D60 -280042D60:lI72|H280042D70 -280042D70:lI32|H280042D80 -280042D80:lI82|H280042D90 -280042D90:lI69|H280042DA0 -280042DA0:lI80|H280042DB0 -280042DB0:lI79|H280042DC0 -280042DC0:lI82|H280042DD0 -280042DD0:lI84|N -280042DE0:E19:g3F3CHByb2NfbGlidwlyZXBvcnRfY2JhAg== -280042E08:t3:A4:line,A4:file,A3:mfa -280042E28:Mf3:H280042E08:I584,H280042E58,H280042F18 -280042E58:lI112|H280042E68 -280042E68:lI114|H280042E78 -280042E78:lI111|H280042E88 -280042E88:lI99|H280042E98 -280042E98:lI95|H280042EA8 -280042EA8:lI108|H280042EB8 -280042EB8:lI105|H280042EC8 -280042EC8:lI98|H280042ED8 -280042ED8:lI46|H280042EE8 -280042EE8:lI101|H280042EF8 -280042EF8:lI114|H280042F08 -280042F08:lI108|N -280042F18:t3:A8:proc_lib,AC:crash_report,I4 -280042F38:t2:A9:ancestors,N -280042F50:t2:AA:dictionary,N -280042F68:t2:A9:trap_exit,A5:false -280042F80:t2:AF:registered_name,N -280042F98:t4:AB:chars_limit,A5:depth,A8:encoding,AB:single_line -280042FC0:Mf4:H280042F98:A9:unlimited,A9:unlimited,A4:utf8,A5:false -280042FF8:lI32|H280043008 -280043008:lI32|N -280043018:lI32|N -280043028:lI126|H280043038 -280043038:lI116|H280043048 -280043048:lI115|N -280043058:lI126|H280043068 -280043068:lI115|H280043078 -280043078:lI99|H280043088 -280043088:lI114|H280043098 -280043098:lI97|H2800430A8 -2800430A8:lI115|H2800430B8 -2800430B8:lI104|H2800430C8 -2800430C8:lI101|H2800430D8 -2800430D8:lI114|H2800430E8 -2800430E8:lI58|N -2800430F8:lI48|N -280043108:lI110|H280043118 -280043118:lI101|H280043128 -280043128:lI105|H280043138 -280043138:lI103|H280043148 -280043148:lI104|H280043158 -280043158:lI98|H280043168 -280043168:lI111|H280043178 -280043178:lI117|H280043188 -280043188:lI114|H280043198 -280043198:lI115|H2800431A8 -2800431A8:lI58|H2800431B8 -2800431B8:lI32|H2800431C8 -2800431C8:lI126|N -2800431D8:lI110|H2800431E8 -2800431E8:lI101|H2800431F8 -2800431F8:lI105|H280043208 -280043208:lI103|H280043218 -280043218:lI104|H280043228 -280043228:lI98|H280043238 -280043238:lI111|H280043248 -280043248:lI117|H280043258 -280043258:lI114|H280043268 -280043268:lI115|H280043278 -280043278:lI58|N -280043288:lI110|H280043298 -280043298:lI101|H2800432A8 -2800432A8:lI105|H2800432B8 -2800432B8:lI103|H2800432C8 -2800432C8:lI104|H2800432D8 -2800432D8:lI98|H2800432E8 -2800432E8:lI111|H2800432F8 -2800432F8:lI117|H280043308 -280043308:lI114|H280043318 -280043318:lI58|N -280043328:lI58|H280043338 -280043338:lI32|N -280043348:lI32|H280043358 -280043358:lI32|H280043368 -280043368:lI32|H280043378 -280043378:lI32|N -280043388:lI105|H280043398 -280043398:lI110|H2800433A8 -2800433A8:lI105|H2800433B8 -2800433B8:lI116|H2800433C8 -2800433C8:lI105|H2800433D8 -2800433D8:lI97|H2800433E8 -2800433E8:lI108|H2800433F8 -2800433F8:lI32|H280043408 -280043408:lI99|H280043418 -280043418:lI97|H280043428 -280043428:lI108|H280043438 -280043438:lI108|H280043448 -280043448:lI58|H280043458 -280043458:lI32|N -280043468:lI112|N -280043478:lI80|N -280043488:lI59|H280043498 -280043498:lI32|N -2800434A8:lI44|H2800434B8 -2800434B8:lI32|N -2800434C8:lI116|N -2800434D8:lI10|N -2800434E8:lI108|N -2800434F8:lI114|H2800434E8 -280043508:lI101|H2800434F8 -280043518:lI46|H280043508 -280043528:lI98|H280043518 -280043538:lI105|H280043528 -280043548:lI108|H280043538 -280043558:lI95|H280043548 -280043568:lI99|H280043558 -280043578:lI111|H280043568 -280043588:lI114|H280043578 -280043598:lI112|H280043588 -2800435A8:t2:A5:label,A6:report -2800435C0:t4:AB:chars_limit,A5:depth,A8:encoding,AB:single_line -2800435E8:E4C:g3AAAABKAWgua8tdqRXVh3ClT3T2+hwAAAAAAAAAAHcIcHJvY19saWJhAGIDQXNeWHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -280043610:E4C:g3AAAABKA2gua8tdqRXVh3ClT3T2+hwAAAABAAAAAHcIcHJvY19saWJhAWIDQXNeWHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -280043650:t2:A5:local,AA:kernel_sup -280043668:t3:A8:strategy,A6:period,A9:intensity -280043688:Mf3:H280043668:AB:one_for_one,I3600,I4 -2800436B8:lH280043700|N -2800436C8:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043700:Mf6:H2800436C8:AD:file_server_2,A9:permanent,I2000,H280043788,A6:worker,H280043748 -280043748:lA4:file|H280043758 -280043758:lAB:file_server|H280043768 -280043768:lAE:file_io_server|H280043778 -280043778:lA9:prim_file|N -280043788:t3:AB:file_server,AA:start_link,N -2800437A8:lH2800437B8|N -2800437B8:lI109|H2800437C8 -2800437C8:lI105|H2800437D8 -2800437D8:lI110|H2800437E8 -2800437E8:lI105|H2800437F8 -2800437F8:lI109|H280043808 -280043808:lI97|H280043818 -280043818:lI108|N -280043828:lH2800438B0|H280043838 -280043838:lH280043960|H280043848 -280043848:lH280043A10|H280043858 -280043858:lH280043AC0|H280043868 -280043868:lH280043B70|N -280043878:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800438B0:Mf6:H280043878:A4:user,A9:temporary,I2000,H280043908,AA:supervisor,H2800438F8 -2800438F8:lA8:user_sup|N -280043908:t3:A8:user_sup,A5:start,N -280043928:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043960:Mf6:H280043928:AA:logger_sup,A9:permanent,A8:infinity,H2800439B8,AA:supervisor,H2800439A8 -2800439A8:lAA:logger_sup|N -2800439B8:t3:AA:logger_sup,AA:start_link,N -2800439D8:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043A10:Mf6:H2800439D8:AD:kernel_config,A9:permanent,I2000,H280043A68,A6:worker,H280043A58 -280043A58:lAD:kernel_config|N -280043A68:t3:AD:kernel_config,AA:start_link,N -280043A88:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043AC0:Mf6:H280043A88:AB:kernel_refc,A9:permanent,I2000,H280043B18,A6:worker,H280043B08 -280043B08:lAB:kernel_refc|N -280043B18:t3:AB:kernel_refc,AA:start_link,N -280043B38:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043B70:Mf6:H280043B38:AF:kernel_safe_sup,A9:permanent,A8:infinity,H280043BC8,AA:supervisor,H280043BB8 -280043BB8:lA6:kernel|N -280043BC8:t3:AA:supervisor,AA:start_link,H280043BE8 -280043BE8:lH280043C18|H280043BF8 -280043BF8:lA6:kernel|H280043C08 -280043C08:lA4:safe|N -280043C18:t2:A5:local,AF:kernel_safe_sup -280043C30:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043C68:Mf6:H280043C30:A7:on_load,A9:transient,I2000,H280043CC0,A6:worker,H280043CB0 -280043CB0:lA6:kernel|N -280043CC0:t3:A8:proc_lib,AA:start_link,H280043CE0 -280043CE0:lA6:kernel|H280043CF0 -280043CF0:lA4:init|H280043D00 -280043D00:lH280043D10|N -280043D10:lA7:on_load|N -280043D20:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043D58:Mf6:H280043D20:AE:standard_error,A9:temporary,I2000,H280043DB0,AA:supervisor,H280043DA0 -280043DA0:lAE:standard_error|N -280043DB0:t3:AE:standard_error,AA:start_link,N -280043DD0:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043E08:Mf6:H280043DD0:AB:code_server,A9:permanent,I2000,H280043E60,A6:worker,H280043E50 -280043E50:lA4:code|N -280043E60:t3:A4:code,AA:start_link,N -280043E80:t3:A8:strategy,A6:period,A9:intensity -280043EA0:Mf3:H280043E80:AB:one_for_all,I1,I0 -280043ED0:t2:A2:ok,A5:false -280043EE8:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043F20:Mf6:H280043EE8:A11:erl_signal_server,A9:permanent,I2000,H280043F68,A6:worker,A7:dynamic -280043F68:t3:A9:gen_event,AA:start_link,H280043F88 -280043F88:lH280043F98|N -280043F98:t2:A5:local,A11:erl_signal_server -280043FB0:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280043FE8:Mf6:H280043FB0:A7:inet_db,A9:permanent,I2000,H280044040,A6:worker,H280044030 -280044030:lA7:inet_db|N -280044040:t3:A7:inet_db,AA:start_link,N -280044060:lH2800440B8|H280044070 -280044070:lH280044168|N -280044080:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800440B8:Mf6:H280044080:A7:net_sup,A9:permanent,A8:infinity,H280044110,AA:supervisor,H280044100 -280044100:lA10:erl_distribution|N -280044110:t3:A10:erl_distribution,AA:start_link,N -280044130:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280044168:Mf6:H280044130:AC:global_group,A9:permanent,I2000,H2800441C0,A6:worker,H2800441B0 -2800441B0:lAC:global_group|N -2800441C0:t3:AC:global_group,AA:start_link,N -2800441E0:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280044218:Mf6:H2800441E0:A12:global_name_server,A9:permanent,I2000,H280044270,A6:worker,H280044260 -280044260:lA6:global|N -280044270:t3:A6:global,AA:start_link,N -280044290:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800442C8:Mf6:H280044290:A3:rex,A9:permanent,I2000,H280044320,A6:worker,H280044310 -280044310:lA3:rpc|N -280044320:t3:A3:rpc,AA:start_link,N -280044340:lH280044388|N -280044350:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280044388:Mf6:H280044350:A7:dist_ac,A9:permanent,I2000,H2800443E0,A6:worker,H2800443D0 -2800443D0:lA7:dist_ac|N -2800443E0:t3:A7:dist_ac,AA:start_link,N -280044400:t2:A2:ok,A4:true -280044418:Mf0:H280010188: -280044430:lAF:erl_boot_server|N -280044440:lH280044498|H280044450 -280044450:lH280044548|N -280044460:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280044498:Mf6:H280044460:AF:disk_log_server,A9:permanent,I2000,H2800444F0,A6:worker,H2800444E0 -2800444E0:lAF:disk_log_server|N -2800444F0:t3:AF:disk_log_server,AA:start_link,N -280044510:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280044548:Mf6:H280044510:AC:disk_log_sup,A9:permanent,I1000,H2800445A0,AA:supervisor,H280044590 -280044590:lAC:disk_log_sup|N -2800445A0:t3:AC:disk_log_sup,AA:start_link,N -2800445C0:lH280044608|N -2800445D0:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280044608:Mf6:H2800445D0:A2:pg,A9:permanent,I1000,H280044660,A6:worker,H280044650 -280044650:lA2:pg|N -280044660:t3:A2:pg,AA:start_link,N -280044680:lH2800446C8|N -280044690:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800446C8:Mf6:H280044690:AC:timer_server,A9:permanent,I1000,H280044720,A6:worker,H280044710 -280044710:lA5:timer|N -280044720:t3:A5:timer,AA:start_link,N -280044740:lH280044788|N -280044750:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280044788:Mf6:H280044750:A12:erl_compile_server,A9:permanent,I2000,H2800447E0,A6:worker,H2800447D0 -2800447D0:lA12:erl_compile_server|N -2800447E0:t3:A12:erl_compile_server,AA:start_link,N -280044800:lI68|H280044810 -280044810:lI105|H280044820 -280044820:lI115|H280044830 -280044830:lI116|H280044840 -280044840:lI114|H280044850 -280044850:lI105|H280044860 -280044860:lI98|H280044870 -280044870:lI117|H280044880 -280044880:lI116|H280044890 -280044890:lI105|H2800448A0 -2800448A0:lI111|H2800448B0 -2800448B0:lI110|H2800448C0 -2800448C0:lI32|H2800448D0 -2800448D0:lI110|H2800448E0 -2800448E0:lI111|H2800448F0 -2800448F0:lI116|H280044900 -280044900:lI32|H280044910 -280044910:lI99|H280044920 -280044920:lI104|H280044930 -280044930:lI97|H280044940 -280044940:lI110|H280044950 -280044950:lI103|H280044960 -280044960:lI101|H280044970 -280044970:lI100|H280044980 -280044980:lI58|H280044990 -280044990:lI32|H2800449A0 -2800449A0:lI78|H2800449B0 -2800449B0:lI111|H2800449C0 -2800449C0:lI116|H2800449D0 -2800449D0:lI32|H2800449E0 -2800449E0:lI97|H2800449F0 -2800449F0:lI108|H280044A00 -280044A00:lI108|H280044A10 -280044A10:lI111|H280044A20 -280044A20:lI119|H280044A30 -280044A30:lI101|H280044A40 -280044A40:lI100|H280044A50 -280044A50:lI32|H280044A60 -280044A60:lI116|H280044A70 -280044A70:lI111|H280044A80 -280044A80:lI32|H280044A90 -280044A90:lI114|H280044AA0 -280044AA0:lI101|H280044AB0 -280044AB0:lI109|H280044AC0 -280044AC0:lI111|H280044AD0 -280044AD0:lI118|H280044AE0 -280044AE0:lI101|H280044AF0 -280044AF0:lI32|H280044B00 -280044B00:lI116|H280044B10 -280044B10:lI104|H280044B20 -280044B20:lI101|H280044B30 -280044B30:lI32|H280044B40 -280044B40:lI100|H280044B50 -280044B50:lI105|H280044B60 -280044B60:lI115|H280044B70 -280044B70:lI116|H280044B80 -280044B80:lI114|H280044B90 -280044B90:lI105|H280044BA0 -280044BA0:lI98|H280044BB0 -280044BB0:lI117|H280044BC0 -280044BC0:lI116|H280044BD0 -280044BD0:lI105|H280044BE0 -280044BE0:lI111|H280044BF0 -280044BF0:lI110|H280044C00 -280044C00:lI32|H280044C10 -280044C10:lI112|H280044C20 -280044C20:lI97|H280044C30 -280044C30:lI114|H280044C40 -280044C40:lI97|H280044C50 -280044C50:lI109|H280044C60 -280044C60:lI101|H280044C70 -280044C70:lI116|H280044C80 -280044C80:lI101|H280044C90 -280044C90:lI114|H280044CA0 -280044CA0:lI46|N -280044CB0:t2:A5:error,H280044CC8 -280044CC8:t2:A18:distribution_not_changed,H280044CE0 -280044CE0:lI78|H280044CF0 -280044CF0:lI111|H280044D00 -280044D00:lI116|H280044D10 -280044D10:lI32|H280044D20 -280044D20:lI97|H280044D30 -280044D30:lI108|H280044D40 -280044D40:lI108|H280044D50 -280044D50:lI111|H280044D60 -280044D60:lI119|H280044D70 -280044D70:lI101|H280044D80 -280044D80:lI100|H280044D90 -280044D90:lI32|H280044DA0 -280044DA0:lI116|H280044DB0 -280044DB0:lI111|H280044DC0 -280044DC0:lI32|H280044DD0 -280044DD0:lI114|H280044DE0 -280044DE0:lI101|H280044DF0 -280044DF0:lI109|H280044E00 -280044E00:lI111|H280044E10 -280044E10:lI118|H280044E20 -280044E20:lI101|H280044E30 -280044E30:lI32|H280044E40 -280044E40:lI116|H280044E50 -280044E50:lI104|H280044E60 -280044E60:lI101|H280044E70 -280044E70:lI32|H280044E80 -280044E80:lI39|H280044E90 -280044E90:lI100|H280044EA0 -280044EA0:lI105|H280044EB0 -280044EB0:lI115|H280044EC0 -280044EC0:lI116|H280044ED0 -280044ED0:lI114|H280044EE0 -280044EE0:lI105|H280044EF0 -280044EF0:lI98|H280044F00 -280044F00:lI117|H280044F10 -280044F10:lI116|H280044F20 -280044F20:lI101|H280044F30 -280044F30:lI100|H280044F40 -280044F40:lI39|H280044F50 -280044F50:lI32|H280044F60 -280044F60:lI112|H280044F70 -280044F70:lI97|H280044F80 -280044F80:lI114|H280044F90 -280044F90:lI97|H280044FA0 -280044FA0:lI109|H280044FB0 -280044FB0:lI101|H280044FC0 -280044FC0:lI116|H280044FD0 -280044FD0:lI101|H280044FE0 -280044FE0:lI114|N -280044FF0:lI68|H280045000 -280045000:lI105|H280045010 -280045010:lI115|H280045020 -280045020:lI116|H280045030 -280045030:lI114|H280045040 -280045040:lI105|H280045050 -280045050:lI98|H280045060 -280045060:lI117|H280045070 -280045070:lI116|H280045080 -280045080:lI105|H280045090 -280045090:lI111|H2800450A0 -2800450A0:lI110|H2800450B0 -2800450B0:lI32|H2800450C0 -2800450C0:lI110|H2800450D0 -2800450D0:lI111|H2800450E0 -2800450E0:lI116|H2800450F0 -2800450F0:lI32|H280045100 -280045100:lI99|H280045110 -280045110:lI104|H280045120 -280045120:lI97|H280045130 -280045130:lI110|H280045140 -280045140:lI103|H280045150 -280045150:lI101|H280045160 -280045160:lI100|H280045170 -280045170:lI58|H280045180 -280045180:lI32|H280045190 -280045190:lI78|H2800451A0 -2800451A0:lI111|H2800451B0 -2800451B0:lI116|H2800451C0 -2800451C0:lI32|H2800451D0 -2800451D0:lI97|H2800451E0 -2800451E0:lI108|H2800451F0 -2800451F0:lI108|H280045200 -280045200:lI111|H280045210 -280045210:lI119|H280045220 -280045220:lI101|H280045230 -280045230:lI100|H280045240 -280045240:lI32|H280045250 -280045250:lI116|H280045260 -280045260:lI111|H280045270 -280045270:lI32|H280045280 -280045280:lI97|H280045290 -280045290:lI100|H2800452A0 -2800452A0:lI100|H2800452B0 -2800452B0:lI32|H2800452C0 -2800452C0:lI116|H2800452D0 -2800452D0:lI104|H2800452E0 -2800452E0:lI101|H2800452F0 -2800452F0:lI32|H280045300 -280045300:lI39|H280045310 -280045310:lI100|H280045320 -280045320:lI105|H280045330 -280045330:lI115|H280045340 -280045340:lI116|H280045350 -280045350:lI114|H280045360 -280045360:lI105|H280045370 -280045370:lI98|H280045380 -280045380:lI117|H280045390 -280045390:lI116|H2800453A0 -2800453A0:lI101|H2800453B0 -2800453B0:lI100|H2800453C0 -2800453C0:lI39|H2800453D0 -2800453D0:lI32|H2800453E0 -2800453E0:lI112|H2800453F0 -2800453F0:lI97|H280045400 -280045400:lI114|H280045410 -280045410:lI97|H280045420 -280045420:lI109|H280045430 -280045430:lI101|H280045440 -280045440:lI116|H280045450 -280045450:lI101|H280045460 -280045460:lI114|H280045470 -280045470:lI46|N -280045480:t2:A5:error,H280045498 -280045498:t2:A18:distribution_not_changed,H2800454B0 -2800454B0:lI78|H2800454C0 -2800454C0:lI111|H2800454D0 -2800454D0:lI116|H2800454E0 -2800454E0:lI32|H2800454F0 -2800454F0:lI97|H280045500 -280045500:lI108|H280045510 -280045510:lI108|H280045520 -280045520:lI111|H280045530 -280045530:lI119|H280045540 -280045540:lI101|H280045550 -280045550:lI100|H280045560 -280045560:lI32|H280045570 -280045570:lI116|H280045580 -280045580:lI111|H280045590 -280045590:lI32|H2800455A0 -2800455A0:lI97|H2800455B0 -2800455B0:lI100|H2800455C0 -2800455C0:lI100|H2800455D0 -2800455D0:lI32|H2800455E0 -2800455E0:lI116|H2800455F0 -2800455F0:lI104|H280045600 -280045600:lI101|H280045610 -280045610:lI32|H280045620 -280045620:lI39|H280045630 -280045630:lI100|H280045640 -280045640:lI105|H280045650 -280045650:lI115|H280045660 -280045660:lI116|H280045670 -280045670:lI114|H280045680 -280045680:lI105|H280045690 -280045690:lI98|H2800456A0 -2800456A0:lI117|H2800456B0 -2800456B0:lI116|H2800456C0 -2800456C0:lI101|H2800456D0 -2800456D0:lI100|H2800456E0 -2800456E0:lI39|H2800456F0 -2800456F0:lI32|H280045700 -280045700:lI112|H280045710 -280045710:lI97|H280045720 -280045720:lI114|H280045730 -280045730:lI97|H280045740 -280045740:lI109|H280045750 -280045750:lI101|H280045760 -280045760:lI116|H280045770 -280045770:lI101|H280045780 -280045780:lI114|N -280045790:lI108|N -2800457A0:lI114|H280045790 -2800457B0:lI101|H2800457A0 -2800457C0:lI46|H2800457B0 -2800457D0:lI108|H2800457C0 -2800457E0:lI101|H2800457D0 -2800457F0:lI110|H2800457E0 -280045800:lI114|H2800457F0 -280045810:lI101|H280045800 -280045820:lI107|H280045810 -280045830:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280046698:lI66|H2800466A8 -2800466A8:lI97|H2800466B8 -2800466B8:lI100|H2800466C8 -2800466C8:lI32|H2800466D8 -2800466D8:lI101|H2800466E8 -2800466E8:lI110|H2800466F8 -2800466F8:lI118|H280046708 -280046708:lI105|H280046718 -280046718:lI114|H280046728 -280046728:lI111|H280046738 -280046738:lI110|H280046748 -280046748:lI109|H280046758 -280046758:lI101|H280046768 -280046768:lI110|H280046778 -280046778:lI116|H280046788 -280046788:lI32|H280046798 -280046798:lI118|H2800467A8 -2800467A8:lI97|H2800467B8 -2800467B8:lI114|H2800467C8 -2800467C8:lI105|H2800467D8 -2800467D8:lI97|H2800467E8 -2800467E8:lI98|H2800467F8 -2800467F8:lI108|H280046808 -280046808:lI101|H280046818 -280046818:lI58|H280046828 -280046828:lI32|H280046838 -280046838:lI126|H280046848 -280046848:lI116|H280046858 -280046858:lI112|H280046868 -280046868:lI32|H280046878 -280046878:lI32|H280046888 -280046888:lI65|H280046898 -280046898:lI112|H2800468A8 -2800468A8:lI112|H2800468B8 -2800468B8:lI108|H2800468C8 -2800468C8:lI105|H2800468D8 -2800468D8:lI99|H2800468E8 -2800468E8:lI97|H2800468F8 -2800468F8:lI116|H280046908 -280046908:lI105|H280046918 -280046918:lI111|H280046928 -280046928:lI110|H280046938 -280046938:lI58|H280046948 -280046948:lI32|H280046958 -280046958:lI126|H280046968 -280046968:lI112|N -280046978:lH280046988|N -280046988:t3:H2800469A8,N,H280046A30 -2800469A8:t2:H2800469C0,H2800469D8 -2800469C0:t2:A6:loaded,A2:$1 -2800469D8:tA:A4:appl,A1:_,A1:_,A2:$2,A1:_,A2:$3,A1:_,A1:_,A1:_,A1:_ -280046A30:lH280046A40|N -280046A40:t1:H280046A50 -280046A50:t3:A2:$1,A2:$2,A2:$3 -280046A70:t2:A12:application_master,A2:$1 -280046A88:t2:H280046AA0,H280046AB8 -280046AA0:t2:A6:loaded,A2:$1 -280046AB8:tA:A4:appl,A1:_,H280046B10,A1:_,A1:_,A1:_,A1:_,A1:_,A1:_,A1:_ -280046B10:t8:A9:appl_data,A1:_,A1:_,A1:_,A1:_,A2:$2,A1:_,A1:_ -280046B58:t3:A16:application_controller,A5:start,I1 -280046B78:lI105|H280046B88 -280046B88:lI110|H280046B98 -280046B98:lI118|H280046BA8 -280046BA8:lI97|H280046BB8 -280046BB8:lI108|H280046BC8 -280046BC8:lI105|H280046BD8 -280046BD8:lI100|H280046BE8 -280046BE8:lI32|H280046BF8 -280046BF8:lI99|H280046C08 -280046C08:lI111|H280046C18 -280046C18:lI110|H280046C28 -280046C28:lI102|H280046C38 -280046C38:lI105|H280046C48 -280046C48:lI103|H280046C58 -280046C58:lI32|H280046C68 -280046C68:lI100|H280046C78 -280046C78:lI97|H280046C88 -280046C88:lI116|H280046C98 -280046C98:lI97|H280046CA8 -280046CA8:lI58|H280046CB8 -280046CB8:lI32|H280046CC8 -280046CC8:lI126|H280046CD8 -280046CD8:lI116|H280046CE8 -280046CE8:lI115|N -280046CF8:lA3:set|H280046D08 -280046D08:lA6:public|H280046D18 -280046D18:lAB:named_table|H280046D28 -280046D28:lH280046D38|N -280046D38:t2:A10:read_concurrency,A4:true -280046D50:t2:A5:local,A16:application_controller -280046D68:lI101|H280046D78 -280046D78:lI114|H280046D88 -280046D88:lI114|H280046D98 -280046D98:lI111|H280046DA8 -280046DA8:lI114|H280046DB8 -280046DB8:lI32|H280046DC8 -280046DC8:lI105|H280046DD8 -280046DD8:lI110|H280046DE8 -280046DE8:lI32|H280046DF8 -280046DF8:lI99|H280046E08 -280046E08:lI111|H280046E18 -280046E18:lI110|H280046E28 -280046E28:lI102|H280046E38 -280046E38:lI105|H280046E48 -280046E48:lI103|H280046E58 -280046E58:lI32|H280046E68 -280046E68:lI114|H280046E78 -280046E78:lI101|H280046E88 -280046E88:lI97|H280046E98 -280046E98:lI100|H280046EA8 -280046EA8:lI32|H280046EB8 -280046EB8:lI102|H280046EC8 -280046EC8:lI114|H280046ED8 -280046ED8:lI111|H280046EE8 -280046EE8:lI109|H280046EF8 -280046EF8:lI32|H280046F08 -280046F08:lI102|H280046F18 -280046F18:lI105|H280046F28 -280046F28:lI108|H280046F38 -280046F38:lI101|H280046F48 -280046F48:lI32|H280046F58 -280046F58:lI100|H280046F68 -280046F68:lI101|H280046F78 -280046F78:lI115|H280046F88 -280046F88:lI99|H280046F98 -280046F98:lI114|H280046FA8 -280046FA8:lI105|H280046FB8 -280046FB8:lI112|H280046FC8 -280046FC8:lI116|H280046FD8 -280046FD8:lI111|H280046FE8 -280046FE8:lI114|H280046FF8 -280046FF8:lI32|H280047008 -280047008:lI126|H280047018 -280047018:lI116|H280047028 -280047028:lI112|H280047038 -280047038:lI32|H280047048 -280047048:lI40|H280047058 -280047058:lI126|H280047068 -280047068:lI119|H280047078 -280047078:lI41|H280047088 -280047088:lI58|H280047098 -280047098:lI32|H2800470A8 -2800470A8:lI126|H2800470B8 -2800470B8:lI116|H2800470C8 -2800470C8:lI115|N -2800470D8:lI101|H2800470E8 -2800470E8:lI114|H2800470F8 -2800470F8:lI114|H280047108 -280047108:lI111|H280047118 -280047118:lI114|H280047128 -280047128:lI32|H280047138 -280047138:lI105|H280047148 -280047148:lI110|H280047158 -280047158:lI32|H280047168 -280047168:lI99|H280047178 -280047178:lI111|H280047188 -280047188:lI110|H280047198 -280047198:lI102|H2800471A8 -2800471A8:lI105|H2800471B8 -2800471B8:lI103|H2800471C8 -2800471C8:lI32|H2800471D8 -2800471D8:lI102|H2800471E8 -2800471E8:lI105|H2800471F8 -2800471F8:lI108|H280047208 -280047208:lI101|H280047218 -280047218:lI32|H280047228 -280047228:lI126|H280047238 -280047238:lI116|H280047248 -280047248:lI112|H280047258 -280047258:lI32|H280047268 -280047268:lI40|H280047278 -280047278:lI126|H280047288 -280047288:lI119|H280047298 -280047298:lI41|H2800472A8 -2800472A8:lI58|H2800472B8 -2800472B8:lI32|H2800472C8 -2800472C8:lI126|H2800472D8 -2800472D8:lI116|H2800472E8 -2800472E8:lI115|N -2800472F8:lI100|H280047308 -280047308:lI117|H280047318 -280047318:lI112|H280047328 -280047328:lI108|H280047338 -280047338:lI105|H280047348 -280047348:lI99|H280047358 -280047358:lI97|H280047368 -280047368:lI116|H280047378 -280047378:lI101|H280047388 -280047388:lI32|H280047398 -280047398:lI97|H2800473A8 -2800473A8:lI112|H2800473B8 -2800473B8:lI112|H2800473C8 -2800473C8:lI108|H2800473D8 -2800473D8:lI105|H2800473E8 -2800473E8:lI99|H2800473F8 -2800473F8:lI97|H280047408 -280047408:lI116|H280047418 -280047418:lI105|H280047428 -280047428:lI111|H280047438 -280047438:lI110|H280047448 -280047448:lI32|H280047458 -280047458:lI99|H280047468 -280047468:lI111|H280047478 -280047478:lI110|H280047488 -280047488:lI102|H280047498 -280047498:lI105|H2800474A8 -2800474A8:lI103|H2800474B8 -2800474B8:lI58|H2800474C8 -2800474C8:lI32|N -2800474D8:lI126|H2800474E8 -2800474E8:lI116|H2800474F8 -2800474F8:lI112|N -280047508:lI59|H280047518 -280047518:lI32|H280047528 -280047528:lI97|H280047538 -280047538:lI112|H280047548 -280047548:lI112|H280047558 -280047558:lI108|H280047568 -280047568:lI105|H280047578 -280047578:lI99|H280047588 -280047588:lI97|H280047598 -280047598:lI116|H2800475A8 -2800475A8:lI105|H2800475B8 -2800475B8:lI111|H2800475C8 -2800475C8:lI110|H2800475D8 -2800475D8:lI32|H2800475E8 -2800475E8:lI110|H2800475F8 -2800475F8:lI97|H280047608 -280047608:lI109|H280047618 -280047618:lI101|H280047628 -280047628:lI32|H280047638 -280047638:lI109|H280047648 -280047648:lI117|H280047658 -280047658:lI115|H280047668 -280047668:lI116|H280047678 -280047678:lI32|H280047688 -280047688:lI98|H280047698 -280047698:lI101|H2800476A8 -2800476A8:lI32|H2800476B8 -2800476B8:lI97|H2800476C8 -2800476C8:lI110|H2800476D8 -2800476D8:lI32|H2800476E8 -2800476E8:lI97|H2800476F8 -2800476F8:lI116|H280047708 -280047708:lI111|H280047718 -280047718:lI109|N -280047728:lI97|H280047738 -280047738:lI112|H280047748 -280047748:lI112|H280047758 -280047758:lI108|H280047768 -280047768:lI105|H280047778 -280047778:lI99|H280047788 -280047788:lI97|H280047798 -280047798:lI116|H2800477A8 -2800477A8:lI105|H2800477B8 -2800477B8:lI111|H2800477C8 -2800477C8:lI110|H2800477D8 -2800477D8:lI58|H2800477E8 -2800477E8:lI32|N -2800477F8:lI59|H280047808 -280047808:lI32|H280047818 -280047818:lI112|H280047828 -280047828:lI97|H280047838 -280047838:lI114|H280047848 -280047848:lI97|H280047858 -280047858:lI109|H280047868 -280047868:lI101|H280047878 -280047878:lI116|H280047888 -280047888:lI101|H280047898 -280047898:lI114|H2800478A8 -2800478A8:lI115|H2800478B8 -2800478B8:lI32|H2800478C8 -2800478C8:lI109|H2800478D8 -2800478D8:lI117|H2800478E8 -2800478E8:lI115|H2800478F8 -2800478F8:lI116|H280047908 -280047908:lI32|H280047918 -280047918:lI98|H280047928 -280047928:lI101|H280047938 -280047938:lI32|H280047948 -280047948:lI97|H280047958 -280047958:lI32|H280047968 -280047968:lI108|H280047978 -280047978:lI105|H280047988 -280047988:lI115|H280047998 -280047998:lI116|N -2800479A8:lI105|H2800479B8 -2800479B8:lI110|H2800479C8 -2800479C8:lI118|H2800479D8 -2800479D8:lI97|H2800479E8 -2800479E8:lI108|H2800479F8 -2800479F8:lI105|H280047A08 -280047A08:lI100|H280047A18 -280047A18:lI32|H280047A28 -280047A28:lI97|H280047A38 -280047A38:lI112|H280047A48 -280047A48:lI112|H280047A58 -280047A58:lI108|H280047A68 -280047A68:lI105|H280047A78 -280047A78:lI99|H280047A88 -280047A88:lI97|H280047A98 -280047A98:lI116|H280047AA8 -280047AA8:lI105|H280047AB8 -280047AB8:lI111|H280047AC8 -280047AC8:lI110|H280047AD8 -280047AD8:lI32|H280047AE8 -280047AE8:lI99|H280047AF8 -280047AF8:lI111|H280047B08 -280047B08:lI110|H280047B18 -280047B18:lI102|H280047B28 -280047B28:lI105|H280047B38 -280047B38:lI103|H280047B48 -280047B48:lI58|H280047B58 -280047B58:lI32|N -280047B68:t2:A5:error,H280047B80 -280047B80:lI99|H280047B90 -280047B90:lI111|H280047BA0 -280047BA0:lI110|H280047BB0 -280047BB0:lI102|H280047BC0 -280047BC0:lI105|H280047BD0 -280047BD0:lI103|H280047BE0 -280047BE0:lI117|H280047BF0 -280047BF0:lI114|H280047C00 -280047C00:lI97|H280047C10 -280047C10:lI116|H280047C20 -280047C20:lI105|H280047C30 -280047C30:lI111|H280047C40 -280047C40:lI110|H280047C50 -280047C50:lI32|H280047C60 -280047C60:lI109|H280047C70 -280047C70:lI117|H280047C80 -280047C80:lI115|H280047C90 -280047C90:lI116|H280047CA0 -280047CA0:lI32|H280047CB0 -280047CB0:lI98|H280047CC0 -280047CC0:lI101|H280047CD0 -280047CD0:lI32|H280047CE0 -280047CE0:lI97|H280047CF0 -280047CF0:lI32|H280047D00 -280047D00:lI108|H280047D10 -280047D10:lI105|H280047D20 -280047D20:lI115|H280047D30 -280047D30:lI116|H280047D40 -280047D40:lI32|H280047D50 -280047D50:lI101|H280047D60 -280047D60:lI110|H280047D70 -280047D70:lI100|H280047D80 -280047D80:lI101|H280047D90 -280047D90:lI100|H280047DA0 -280047DA0:lI32|H280047DB0 -280047DB0:lI98|H280047DC0 -280047DC0:lI121|H280047DD0 -280047DD0:lI32|H280047DE0 -280047DE0:lI60|H280047DF0 -280047DF0:lI100|H280047E00 -280047E00:lI111|H280047E10 -280047E10:lI116|H280047E20 -280047E20:lI62|H280047E30 -280047E30:lI60|H280047E40 -280047E40:lI119|H280047E50 -280047E50:lI104|H280047E60 -280047E60:lI105|H280047E70 -280047E70:lI116|H280047E80 -280047E80:lI101|H280047E90 -280047E90:lI115|H280047EA0 -280047EA0:lI112|H280047EB0 -280047EB0:lI97|H280047EC0 -280047EC0:lI99|H280047ED0 -280047ED0:lI101|H280047EE0 -280047EE0:lI62|N -280047EF0:lI59|H280047F00 -280047F00:lI32|H280047F10 -280047F10:lI100|H280047F20 -280047F20:lI117|H280047F30 -280047F30:lI112|H280047F40 -280047F40:lI108|H280047F50 -280047F50:lI105|H280047F60 -280047F60:lI99|H280047F70 -280047F70:lI97|H280047F80 -280047F80:lI116|H280047F90 -280047F90:lI101|H280047FA0 -280047FA0:lI32|H280047FB0 -280047FB0:lI112|H280047FC0 -280047FC0:lI97|H280047FD0 -280047FD0:lI114|H280047FE0 -280047FE0:lI97|H280047FF0 -280047FF0:lI109|H280048000 -280048000:lI101|H280048010 -280048010:lI116|H280048020 -280048020:lI101|H280048030 -280048030:lI114|H280048040 -280048040:lI58|H280048050 -280048050:lI32|N -280048060:lI59|H280048070 -280048070:lI32|H280048080 -280048080:lI105|H280048090 -280048090:lI110|H2800480A0 -2800480A0:lI118|H2800480B0 -2800480B0:lI97|H2800480C0 -2800480C0:lI108|H2800480D0 -2800480D0:lI105|H2800480E0 -2800480E0:lI100|H2800480F0 -2800480F0:lI32|H280048100 -280048100:lI112|H280048110 -280048110:lI97|H280048120 -280048120:lI114|H280048130 -280048130:lI97|H280048140 -280048140:lI109|H280048150 -280048150:lI101|H280048160 -280048160:lI116|H280048170 -280048170:lI101|H280048180 -280048180:lI114|H280048190 -280048190:lI32|H2800481A0 -2800481A0:lI110|H2800481B0 -2800481B0:lI97|H2800481C0 -2800481C0:lI109|H2800481D0 -2800481D0:lI101|H2800481E0 -2800481E0:lI58|H2800481F0 -2800481F0:lI32|N -280048200:lI59|H280048210 -280048210:lI32|H280048220 -280048220:lI105|H280048230 -280048230:lI110|H280048240 -280048240:lI118|H280048250 -280048250:lI97|H280048260 -280048260:lI108|H280048270 -280048270:lI105|H280048280 -280048280:lI100|H280048290 -280048290:lI32|H2800482A0 -2800482A0:lI112|H2800482B0 -2800482B0:lI97|H2800482C0 -2800482C0:lI114|H2800482D0 -2800482D0:lI97|H2800482E0 -2800482E0:lI109|H2800482F0 -2800482F0:lI101|H280048300 -280048300:lI116|H280048310 -280048310:lI101|H280048320 -280048320:lI114|H280048330 -280048330:lI58|H280048340 -280048340:lI32|N -280048350:t2:A5:error,H280048368 -280048368:lI97|H280048378 -280048378:lI112|H280048388 -280048388:lI112|H280048398 -280048398:lI108|H2800483A8 -2800483A8:lI105|H2800483B8 -2800483B8:lI99|H2800483C8 -2800483C8:lI97|H2800483D8 -2800483D8:lI116|H2800483E8 -2800483E8:lI105|H2800483F8 -2800483F8:lI111|H280048408 -280048408:lI110|H280048418 -280048418:lI58|H280048428 -280048428:lI32|H280048438 -280048438:lI107|H280048448 -280048448:lI101|H280048458 -280048458:lI114|H280048468 -280048468:lI110|H280048478 -280048478:lI101|H280048488 -280048488:lI108|H280048498 -280048498:lI59|H2800484A8 -2800484A8:lI32|H2800484B8 -2800484B8:lI101|H2800484C8 -2800484C8:lI114|H2800484D8 -2800484D8:lI114|H2800484E8 -2800484E8:lI111|H2800484F8 -2800484F8:lI110|H280048508 -280048508:lI101|H280048518 -280048518:lI111|H280048528 -280048528:lI117|H280048538 -280048538:lI115|H280048548 -280048548:lI32|H280048558 -280048558:lI112|H280048568 -280048568:lI97|H280048578 -280048578:lI114|H280048588 -280048588:lI97|H280048598 -280048598:lI109|H2800485A8 -2800485A8:lI101|H2800485B8 -2800485B8:lI116|H2800485C8 -2800485C8:lI101|H2800485D8 -2800485D8:lI114|H2800485E8 -2800485E8:lI58|H2800485F8 -2800485F8:lI32|H280048608 -280048608:lI100|H280048618 -280048618:lI105|H280048628 -280048628:lI115|H280048638 -280048638:lI116|H280048648 -280048648:lI114|H280048658 -280048658:lI105|H280048668 -280048668:lI98|H280048678 -280048678:lI117|H280048688 -280048688:lI116|H280048698 -280048698:lI101|H2800486A8 -2800486A8:lI100|N -2800486B8:t2:A17:distributed_application,AB:only_loaded -2800486D0:t2:A4:EXIT,A6:normal -2800486E8:t2:AB:distributed,N -280048700:t2:A12:application_master,A1:_ -280048718:t2:A2:ok,A9:undefined -280048730:lI46|H280048740 -280048740:lI97|H280048750 -280048750:lI112|H280048760 -280048760:lI112|N -280048770:t2:A5:error,H280048788 -280048788:lI98|H280048798 -280048798:lI97|H2800487A8 -2800487A8:lI100|H2800487B8 -2800487B8:lI32|H2800487C8 -2800487C8:lI101|H2800487D8 -2800487D8:lI110|H2800487E8 -2800487E8:lI99|H2800487F8 -2800487F8:lI111|H280048808 -280048808:lI100|H280048818 -280048818:lI105|H280048828 -280048828:lI110|H280048838 -280048838:lI103|N -280048848:t2:A5:error,A6:enoent -280048860:lI97|H280048870 -280048870:lI112|H280048880 -280048880:lI112|H280048890 -280048890:lI108|H2800488A0 -2800488A0:lI105|H2800488B0 -2800488B0:lI99|H2800488C0 -2800488C0:lI97|H2800488D0 -2800488D0:lI116|H2800488E0 -2800488E0:lI105|H2800488F0 -2800488F0:lI111|H280048900 -280048900:lI110|H280048910 -280048910:lI95|H280048920 -280048920:lI99|H280048930 -280048930:lI111|H280048940 -280048940:lI110|H280048950 -280048950:lI116|H280048960 -280048960:lI114|H280048970 -280048970:lI111|H280048980 -280048980:lI108|H280048990 -280048990:lI108|H2800489A0 -2800489A0:lI101|H2800489B0 -2800489B0:lI114|H2800489C0 -2800489C0:lI58|H2800489D0 -2800489D0:lI32|H2800489E0 -2800489E0:lI126|H2800489F0 -2800489F0:lI116|H280048A00 -280048A00:lI115|H280048A10 -280048A10:lI58|H280048A20 -280048A20:lI32|H280048A30 -280048A30:lI126|H280048A40 -280048A40:lI116|H280048A50 -280048A50:lI115|H280048A60 -280048A60:lI126|H280048A70 -280048A70:lI110|N -280048A80:t1:AC:error_logger -280048A90:Mf1:H280048A80:H280048AC0 -280048AB0:t1:A3:tag -280048AC0:Mf1:H280048AB0:A5:error -280048AE0:t3:A4:line,A4:file,A3:mfa -280048B00:Mf3:H280048AE0:I1669,H280048B30,H280048CD0 -280048B30:lI97|H280048B40 -280048B40:lI112|H280048B50 -280048B50:lI112|H280048B60 -280048B60:lI108|H280048B70 -280048B70:lI105|H280048B80 -280048B80:lI99|H280048B90 -280048B90:lI97|H280048BA0 -280048BA0:lI116|H280048BB0 -280048BB0:lI105|H280048BC0 -280048BC0:lI111|H280048BD0 -280048BD0:lI110|H280048BE0 -280048BE0:lI95|H280048BF0 -280048BF0:lI99|H280048C00 -280048C00:lI111|H280048C10 -280048C10:lI110|H280048C20 -280048C20:lI116|H280048C30 -280048C30:lI114|H280048C40 -280048C40:lI111|H280048C50 -280048C50:lI108|H280048C60 -280048C60:lI108|H280048C70 -280048C70:lI101|H280048C80 -280048C80:lI114|H280048C90 -280048C90:lI46|H280048CA0 -280048CA0:lI101|H280048CB0 -280048CB0:lI114|H280048CC0 -280048CC0:lI108|N -280048CD0:t3:A16:application_controller,A16:handle_make_term_error,I3 -280048CF0:t2:N,N -280048D08:lH280048D28|H280048D18 -280048D18:lN|N -280048D28:lI46|H280048D38 -280048D38:lI99|H280048D48 -280048D48:lI111|H280048D58 -280048D58:lI110|H280048D68 -280048D68:lI102|H280048D78 -280048D78:lI105|H280048D88 -280048D88:lI103|N -280048D98:lI67|H280048DA8 -280048DA8:lI97|H280048DB8 -280048DB8:lI110|H280048DC8 -280048DC8:lI110|H280048DD8 -280048DD8:lI111|H280048DE8 -280048DE8:lI116|H280048DF8 -280048DF8:lI32|H280048E08 -280048E08:lI112|H280048E18 -280048E18:lI97|H280048E28 -280048E28:lI114|H280048E38 -280048E38:lI115|H280048E48 -280048E48:lI101|H280048E58 -280048E58:lI32|H280048E68 -280048E68:lI102|H280048E78 -280048E78:lI105|H280048E88 -280048E88:lI108|H280048E98 -280048E98:lI101|H280048EA8 -280048EA8:lI32|H280048EB8 -280048EB8:lI100|H280048EC8 -280048EC8:lI101|H280048ED8 -280048ED8:lI115|H280048EE8 -280048EE8:lI99|H280048EF8 -280048EF8:lI114|H280048F08 -280048F08:lI105|H280048F18 -280048F18:lI112|H280048F28 -280048F28:lI116|H280048F38 -280048F38:lI111|H280048F48 -280048F48:lI114|H280048F58 -280048F58:lI32|H280048F68 -280048F68:lI111|H280048F78 -280048F78:lI102|H280048F88 -280048F88:lI32|H280048F98 -280048F98:lI116|H280048FA8 -280048FA8:lI121|H280048FB8 -280048FB8:lI112|H280048FC8 -280048FC8:lI101|H280048FD8 -280048FD8:lI58|H280048FE8 -280048FE8:lI32|H280048FF8 -280048FF8:lI126|H280049008 -280049008:lI116|H280049018 -280049018:lI115|N -280049028:lI84|H280049038 -280049038:lI104|H280049048 -280049048:lI101|H280049058 -280049058:lI32|H280049068 -280049068:lI103|H280049078 -280049078:lI105|H280049088 -280049088:lI118|H280049098 -280049098:lI101|H2800490A8 -2800490A8:lI110|H2800490B8 -2800490B8:lI32|H2800490C8 -2800490C8:lI102|H2800490D8 -2800490D8:lI105|H2800490E8 -2800490E8:lI108|H2800490F8 -2800490F8:lI101|H280049108 -280049108:lI32|H280049118 -280049118:lI100|H280049128 -280049128:lI101|H280049138 -280049138:lI115|H280049148 -280049148:lI99|H280049158 -280049158:lI114|H280049168 -280049168:lI105|H280049178 -280049178:lI112|H280049188 -280049188:lI116|H280049198 -280049198:lI111|H2800491A8 -2800491A8:lI114|H2800491B8 -2800491B8:lI32|H2800491C8 -2800491C8:lI104|H2800491D8 -2800491D8:lI97|H2800491E8 -2800491E8:lI115|H2800491F8 -2800491F8:lI32|H280049208 -280049208:lI105|H280049218 -280049218:lI110|H280049228 -280049228:lI99|H280049238 -280049238:lI111|H280049248 -280049248:lI114|H280049258 -280049258:lI114|H280049268 -280049268:lI101|H280049278 -280049278:lI99|H280049288 -280049288:lI116|H280049298 -280049298:lI32|H2800492A8 -2800492A8:lI102|H2800492B8 -2800492B8:lI111|H2800492C8 -2800492C8:lI114|H2800492D8 -2800492D8:lI109|H2800492E8 -2800492E8:lI97|H2800492F8 -2800492F8:lI116|H280049308 -280049308:lI46|H280049318 -280049318:lI32|H280049328 -280049328:lI84|H280049338 -280049338:lI104|H280049348 -280049348:lI101|H280049358 -280049358:lI32|H280049368 -280049368:lI102|H280049378 -280049378:lI111|H280049388 -280049388:lI114|H280049398 -280049398:lI109|H2800493A8 -2800493A8:lI97|H2800493B8 -2800493B8:lI116|H2800493C8 -2800493C8:lI32|H2800493D8 -2800493D8:lI115|H2800493E8 -2800493E8:lI104|H2800493F8 -2800493F8:lI111|H280049408 -280049408:lI117|H280049418 -280049418:lI108|H280049428 -280049428:lI100|H280049438 -280049438:lI32|H280049448 -280049448:lI98|H280049458 -280049458:lI101|H280049468 -280049468:lI32|H280049478 -280049478:lI34|H280049488 -280049488:lI70|H280049498 -280049498:lI105|H2800494A8 -2800494A8:lI108|H2800494B8 -2800494B8:lI101|H2800494C8 -2800494C8:lI68|H2800494D8 -2800494D8:lI101|H2800494E8 -2800494E8:lI115|H2800494F8 -2800494F8:lI99|H280049508 -280049508:lI73|H280049518 -280049518:lI100|H280049528 -280049528:lI91|H280049538 -280049538:lI46|H280049548 -280049548:lI70|H280049558 -280049558:lI105|H280049568 -280049568:lI108|H280049578 -280049578:lI101|H280049588 -280049588:lI84|H280049598 -280049598:lI121|H2800495A8 -2800495A8:lI112|H2800495B8 -2800495B8:lI101|H2800495C8 -2800495C8:lI93|H2800495D8 -2800495D8:lI34|H2800495E8 -2800495E8:lI46|H2800495F8 -2800495F8:lI32|H280049608 -280049608:lI69|H280049618 -280049618:lI120|H280049628 -280049628:lI97|H280049638 -280049638:lI109|H280049648 -280049648:lI112|H280049658 -280049658:lI108|H280049668 -280049668:lI101|H280049678 -280049678:lI115|H280049688 -280049688:lI58|H280049698 -280049698:lI32|H2800496A8 -2800496A8:lI51|H2800496B8 -2800496B8:lI32|H2800496C8 -2800496C8:lI111|H2800496D8 -2800496D8:lI114|H2800496E8 -2800496E8:lI32|H2800496F8 -2800496F8:lI51|H280049708 -280049708:lI46|H280049718 -280049718:lI99|H280049728 -280049728:lI111|H280049738 -280049738:lI110|H280049748 -280049748:lI102|H280049758 -280049758:lI105|H280049768 -280049768:lI103|N -280049778:lI46|H280049788 -280049788:lI99|H280049798 -280049798:lI111|H2800497A8 -2800497A8:lI110|H2800497B8 -2800497B8:lI102|H2800497C8 -2800497C8:lI105|H2800497D8 -2800497D8:lI103|N -2800497E8:lI115|H2800497F8 -2800497F8:lI121|H280049808 -280049808:lI115|N -280049818:lI32|N -280049828:t2:A5:error,H280049840 -280049840:t3:A4:none,A9:scan_file,H280049860 -280049860:lI98|H280049870 -280049870:lI97|H280049880 -280049880:lI100|H280049890 -280049890:lI32|H2800498A0 -2800498A0:lI101|H2800498B0 -2800498B0:lI110|H2800498C0 -2800498C0:lI99|H2800498D0 -2800498D0:lI111|H2800498E0 -2800498E0:lI100|H2800498F0 -2800498F0:lI105|H280049900 -280049900:lI110|H280049910 -280049910:lI103|N -280049920:t2:A5:error,H280049938 -280049938:t3:A4:none,A9:open_file,H280049958 -280049958:lI99|H280049968 -280049968:lI111|H280049978 -280049978:lI110|H280049988 -280049988:lI102|H280049998 -280049998:lI105|H2800499A8 -2800499A8:lI103|H2800499B8 -2800499B8:lI117|H2800499C8 -2800499C8:lI114|H2800499D8 -2800499D8:lI97|H2800499E8 -2800499E8:lI116|H2800499F8 -2800499F8:lI105|H280049A08 -280049A08:lI111|H280049A18 -280049A18:lI110|H280049A28 -280049A28:lI32|H280049A38 -280049A38:lI102|H280049A48 -280049A48:lI105|H280049A58 -280049A58:lI108|H280049A68 -280049A68:lI101|H280049A78 -280049A78:lI32|H280049A88 -280049A88:lI110|H280049A98 -280049A98:lI111|H280049AA8 -280049AA8:lI116|H280049AB8 -280049AB8:lI32|H280049AC8 -280049AC8:lI102|H280049AD8 -280049AD8:lI111|H280049AE8 -280049AE8:lI117|H280049AF8 -280049AF8:lI110|H280049B08 -280049B08:lI100|N -280049B18:lI67|H280049B28 -280049B28:lI111|H280049B38 -280049B38:lI117|H280049B48 -280049B48:lI108|H280049B58 -280049B58:lI100|H280049B68 -280049B68:lI32|H280049B78 -280049B78:lI110|H280049B88 -280049B88:lI111|H280049B98 -280049B98:lI116|H280049BA8 -280049BA8:lI32|H280049BB8 -280049BB8:lI114|H280049BC8 -280049BC8:lI101|H280049BD8 -280049BD8:lI97|H280049BE8 -280049BE8:lI100|H280049BF8 -280049BF8:lI32|H280049C08 -280049C08:lI102|H280049C18 -280049C18:lI114|H280049C28 -280049C28:lI111|H280049C38 -280049C38:lI109|H280049C48 -280049C48:lI32|H280049C58 -280049C58:lI102|H280049C68 -280049C68:lI105|H280049C78 -280049C78:lI108|H280049C88 -280049C88:lI101|H280049C98 -280049C98:lI32|H280049CA8 -280049CA8:lI100|H280049CB8 -280049CB8:lI101|H280049CC8 -280049CC8:lI115|H280049CD8 -280049CD8:lI99|H280049CE8 -280049CE8:lI114|H280049CF8 -280049CF8:lI105|H280049D08 -280049D08:lI112|H280049D18 -280049D18:lI116|H280049D28 -280049D28:lI111|H280049D38 -280049D38:lI114|H280049D48 -280049D48:lI58|H280049D58 -280049D58:lI32|H280049D68 -280049D68:lI126|H280049D78 -280049D78:lI115|N -280049D88:t2:A5:error,H280049DA0 -280049DA0:t3:A4:none,A9:load_file,H280049DC0 -280049DC0:lI110|H280049DD0 -280049DD0:lI111|H280049DE0 -280049DE0:lI32|H280049DF0 -280049DF0:lI101|H280049E00 -280049E00:lI110|H280049E10 -280049E10:lI100|H280049E20 -280049E20:lI105|H280049E30 -280049E30:lI110|H280049E40 -280049E40:lI103|H280049E50 -280049E50:lI32|H280049E60 -280049E60:lI60|H280049E70 -280049E70:lI100|H280049E80 -280049E80:lI111|H280049E90 -280049E90:lI116|H280049EA0 -280049EA0:lI62|H280049EB0 -280049EB0:lI32|H280049EC0 -280049EC0:lI102|H280049ED0 -280049ED0:lI111|H280049EE0 -280049EE0:lI117|H280049EF0 -280049EF0:lI110|H280049F00 -280049F00:lI100|N -280049F10:t2:A5:error,H280049F28 -280049F28:t3:A4:none,A9:load_file,H280049F48 -280049F48:lI99|H280049F58 -280049F58:lI111|H280049F68 -280049F68:lI110|H280049F78 -280049F78:lI102|H280049F88 -280049F88:lI105|H280049F98 -280049F98:lI103|H280049FA8 -280049FA8:lI117|H280049FB8 -280049FB8:lI114|H280049FC8 -280049FC8:lI97|H280049FD8 -280049FD8:lI116|H280049FE8 -280049FE8:lI105|H280049FF8 -280049FF8:lI111|H28004A008 -28004A008:lI110|H28004A018 -28004A018:lI32|H28004A028 -28004A028:lI102|H28004A038 -28004A038:lI105|H28004A048 -28004A048:lI108|H28004A058 -28004A058:lI101|H28004A068 -28004A068:lI32|H28004A078 -28004A078:lI109|H28004A088 -28004A088:lI117|H28004A098 -28004A098:lI115|H28004A0A8 -28004A0A8:lI116|H28004A0B8 -28004A0B8:lI32|H28004A0C8 -28004A0C8:lI99|H28004A0D8 -28004A0D8:lI111|H28004A0E8 -28004A0E8:lI110|H28004A0F8 -28004A0F8:lI116|H28004A108 -28004A108:lI97|H28004A118 -28004A118:lI105|H28004A128 -28004A128:lI110|H28004A138 -28004A138:lI32|H28004A148 -28004A148:lI79|H28004A158 -28004A158:lI78|H28004A168 -28004A168:lI69|H28004A178 -28004A178:lI32|H28004A188 -28004A188:lI108|H28004A198 -28004A198:lI105|H28004A1A8 -28004A1A8:lI115|H28004A1B8 -28004A1B8:lI116|H28004A1C8 -28004A1C8:lI32|H28004A1D8 -28004A1D8:lI101|H28004A1E8 -28004A1E8:lI110|H28004A1F8 -28004A1F8:lI100|H28004A208 -28004A208:lI101|H28004A218 -28004A218:lI100|H28004A228 -28004A228:lI32|H28004A238 -28004A238:lI98|H28004A248 -28004A248:lI121|H28004A258 -28004A258:lI32|H28004A268 -28004A268:lI60|H28004A278 -28004A278:lI100|H28004A288 -28004A288:lI111|H28004A298 -28004A298:lI116|H28004A2A8 -28004A2A8:lI62|N -28004A2B8:Mf0:H280010188: -28004A2D0:t2:A16:application_controller,A8:progress -28004A2E8:t4:AC:error_logger,A6:domain,A10:logger_formatter,A9:report_cb -28004A310:Mf4:H28004A2E8:H28004A388,H28004A348,H28004A3F0,H28004A500 -28004A348:lA3:otp|H28004A358 -28004A358:lA4:sasl|N -28004A368:t3:A3:tag,A4:type,A9:report_cb -28004A388:Mf3:H28004A368:AB:info_report,A8:progress,H28004A3B8 -28004A3B8:E28:g3F3FmFwcGxpY2F0aW9uX2NvbnRyb2xsZXJ3CmZvcm1hdF9sb2dhAQ== -28004A3E0:t1:A5:title -28004A3F0:Mf1:H28004A3E0:H28004A410 -28004A410:lI80|H28004A420 -28004A420:lI82|H28004A430 -28004A430:lI79|H28004A440 -28004A440:lI71|H28004A450 -28004A450:lI82|H28004A460 -28004A460:lI69|H28004A470 -28004A470:lI83|H28004A480 -28004A480:lI83|H28004A490 -28004A490:lI32|H28004A4A0 -28004A4A0:lI82|H28004A4B0 -28004A4B0:lI69|H28004A4C0 -28004A4C0:lI80|H28004A4D0 -28004A4D0:lI79|H28004A4E0 -28004A4E0:lI82|H28004A4F0 -28004A4F0:lI84|N -28004A500:E28:g3F3FmFwcGxpY2F0aW9uX2NvbnRyb2xsZXJ3CmZvcm1hdF9sb2dhAg== -28004A528:t3:A4:line,A4:file,A3:mfa -28004A548:Mf3:H28004A528:I2117,H28004A578,H28004A718 -28004A578:lI97|H28004A588 -28004A588:lI112|H28004A598 -28004A598:lI112|H28004A5A8 -28004A5A8:lI108|H28004A5B8 -28004A5B8:lI105|H28004A5C8 -28004A5C8:lI99|H28004A5D8 -28004A5D8:lI97|H28004A5E8 -28004A5E8:lI116|H28004A5F8 -28004A5F8:lI105|H28004A608 -28004A608:lI111|H28004A618 -28004A618:lI110|H28004A628 -28004A628:lI95|H28004A638 -28004A638:lI99|H28004A648 -28004A648:lI111|H28004A658 -28004A658:lI110|H28004A668 -28004A668:lI116|H28004A678 -28004A678:lI114|H28004A688 -28004A688:lI111|H28004A698 -28004A698:lI108|H28004A6A8 -28004A6A8:lI108|H28004A6B8 -28004A6B8:lI101|H28004A6C8 -28004A6C8:lI114|H28004A6D8 -28004A6D8:lI46|H28004A6E8 -28004A6E8:lI101|H28004A6F8 -28004A6F8:lI114|H28004A708 -28004A708:lI108|N -28004A718:t3:A16:application_controller,AC:info_started,I2 -28004A738:t2:A16:application_controller,A4:exit -28004A750:t3:AC:error_logger,A6:domain,A9:report_cb -28004A770:Mf3:H28004A750:H28004A7D0,H28004A7A0,H28004A828 -28004A7A0:lA3:otp|N -28004A7B0:t3:A3:tag,A4:type,A9:report_cb -28004A7D0:Mf3:H28004A7B0:AB:info_report,A8:std_info,H28004A800 -28004A800:E28:g3F3FmFwcGxpY2F0aW9uX2NvbnRyb2xsZXJ3CmZvcm1hdF9sb2dhAQ== -28004A828:E28:g3F3FmFwcGxpY2F0aW9uX2NvbnRyb2xsZXJ3CmZvcm1hdF9sb2dhAg== -28004A850:t3:A4:line,A4:file,A3:mfa -28004A870:Mf3:H28004A850:I2129,H28004A8A0,H28004AA40 -28004A8A0:lI97|H28004A8B0 -28004A8B0:lI112|H28004A8C0 -28004A8C0:lI112|H28004A8D0 -28004A8D0:lI108|H28004A8E0 -28004A8E0:lI105|H28004A8F0 -28004A8F0:lI99|H28004A900 -28004A900:lI97|H28004A910 -28004A910:lI116|H28004A920 -28004A920:lI105|H28004A930 -28004A930:lI111|H28004A940 -28004A940:lI110|H28004A950 -28004A950:lI95|H28004A960 -28004A960:lI99|H28004A970 -28004A970:lI111|H28004A980 -28004A980:lI110|H28004A990 -28004A990:lI116|H28004A9A0 -28004A9A0:lI114|H28004A9B0 -28004A9B0:lI111|H28004A9C0 -28004A9C0:lI108|H28004A9D0 -28004A9D0:lI108|H28004A9E0 -28004A9E0:lI101|H28004A9F0 -28004A9F0:lI114|H28004AA00 -28004AA00:lI46|H28004AA10 -28004AA10:lI101|H28004AA20 -28004AA20:lI114|H28004AA30 -28004AA30:lI108|N -28004AA40:t3:A16:application_controller,AB:info_exited,I3 -28004AA60:t4:AB:chars_limit,A5:depth,A8:encoding,AB:single_line -28004AA88:Mf4:H28004AA60:A9:unlimited,A9:unlimited,A4:utf8,A5:false -28004AAC0:lI46|N -28004AAD0:lI46|H28004AAE0 -28004AAE0:lI32|H28004AAF0 -28004AAF0:lI83|H28004AB00 -28004AB00:lI116|H28004AB10 -28004AB10:lI97|H28004AB20 -28004AB20:lI114|H28004AB30 -28004AB30:lI116|H28004AB40 -28004AB40:lI101|H28004AB50 -28004AB50:lI100|H28004AB60 -28004AB60:lI32|H28004AB70 -28004AB70:lI97|H28004AB80 -28004AB80:lI116|H28004AB90 -28004AB90:lI58|H28004ABA0 -28004ABA0:lI32|N -28004ABB0:lI65|H28004ABC0 -28004ABC0:lI112|H28004ABD0 -28004ABD0:lI112|H28004ABE0 -28004ABE0:lI108|H28004ABF0 -28004ABF0:lI105|H28004AC00 -28004AC00:lI99|H28004AC10 -28004AC10:lI97|H28004AC20 -28004AC20:lI116|H28004AC30 -28004AC30:lI105|H28004AC40 -28004AC40:lI111|H28004AC50 -28004AC50:lI110|H28004AC60 -28004AC60:lI58|H28004AC70 -28004AC70:lI32|N -28004AC80:lH28004AC90|N -28004AC90:lI46|N -28004ACA0:lI46|H28004ACB0 -28004ACB0:lI32|H28004ACC0 -28004ACC0:lI84|H28004ACD0 -28004ACD0:lI121|H28004ACE0 -28004ACE0:lI112|H28004ACF0 -28004ACF0:lI101|H28004AD00 -28004AD00:lI58|H28004AD10 -28004AD10:lI32|N -28004AD20:lI46|H28004AD30 -28004AD30:lI32|H28004AD40 -28004AD40:lI69|H28004AD50 -28004AD50:lI120|H28004AD60 -28004AD60:lI105|H28004AD70 -28004AD70:lI116|H28004AD80 -28004AD80:lI101|H28004AD90 -28004AD90:lI100|H28004ADA0 -28004ADA0:lI58|H28004ADB0 -28004ADB0:lI32|N -28004ADC0:lH28004ADD0|N -28004ADD0:lI126|H28004ADE0 -28004ADE0:lI110|N -28004ADF0:lI32|H28004AE00 -28004AE00:lI32|H28004AE10 -28004AE10:lI32|H28004AE20 -28004AE20:lI32|H28004AE30 -28004AE30:lI115|H28004AE40 -28004AE40:lI116|H28004AE50 -28004AE50:lI97|H28004AE60 -28004AE60:lI114|H28004AE70 -28004AE70:lI116|H28004AE80 -28004AE80:lI101|H28004AE90 -28004AE90:lI100|H28004AEA0 -28004AEA0:lI95|H28004AEB0 -28004AEB0:lI97|H28004AEC0 -28004AEC0:lI116|H28004AED0 -28004AED0:lI58|H28004AEE0 -28004AEE0:lI32|N -28004AEF0:lI126|H28004AF00 -28004AF00:lI110|N -28004AF10:lI32|H28004AF20 -28004AF20:lI32|H28004AF30 -28004AF30:lI32|H28004AF40 -28004AF40:lI32|H28004AF50 -28004AF50:lI97|H28004AF60 -28004AF60:lI112|H28004AF70 -28004AF70:lI112|H28004AF80 -28004AF80:lI108|H28004AF90 -28004AF90:lI105|H28004AFA0 -28004AFA0:lI99|H28004AFB0 -28004AFB0:lI97|H28004AFC0 -28004AFC0:lI116|H28004AFD0 -28004AFD0:lI105|H28004AFE0 -28004AFE0:lI111|H28004AFF0 -28004AFF0:lI110|H28004B000 -28004B000:lI58|H28004B010 -28004B010:lI32|N -28004B020:lI32|H28004B030 -28004B030:lI32|H28004B040 -28004B040:lI32|H28004B050 -28004B050:lI32|H28004B060 -28004B060:lI116|H28004B070 -28004B070:lI121|H28004B080 -28004B080:lI112|H28004B090 -28004B090:lI101|H28004B0A0 -28004B0A0:lI58|H28004B0B0 -28004B0B0:lI32|N -28004B0C0:lI32|H28004B0D0 -28004B0D0:lI32|H28004B0E0 -28004B0E0:lI32|H28004B0F0 -28004B0F0:lI32|H28004B100 -28004B100:lI101|H28004B110 -28004B110:lI120|H28004B120 -28004B120:lI105|H28004B130 -28004B130:lI116|H28004B140 -28004B140:lI101|H28004B150 -28004B150:lI100|H28004B160 -28004B160:lI58|H28004B170 -28004B170:lI32|N -28004B180:lI112|N -28004B190:lI80|N -28004B1A0:lI48|N -28004B1B0:lI116|N -28004B1C0:t3:A3:env,A6:kernel,AB:permissions -28004B1E0:lI126|H28004B1F0 -28004B1F0:lI48|H28004B200 -28004B200:lI112|N -28004B210:lI83|H28004B220 -28004B220:lI108|H28004B230 -28004B230:lI111|H28004B240 -28004B240:lI119|H28004B250 -28004B250:lI32|H28004B260 -28004B260:lI45|H28004B270 -28004B270:lI99|H28004B280 -28004B280:lI111|H28004B290 -28004B290:lI110|H28004B2A0 -28004B2A0:lI102|H28004B2B0 -28004B2B0:lI105|H28004B2C0 -28004B2C0:lI103|H28004B2D0 -28004B2D0:lI102|H28004B2E0 -28004B2E0:lI100|H28004B2F0 -28004B2F0:lI32|H28004B300 -28004B300:lI102|H28004B310 -28004B310:lI105|H28004B320 -28004B320:lI108|H28004B330 -28004B330:lI101|H28004B340 -28004B340:lI32|H28004B350 -28004B350:lI100|H28004B360 -28004B360:lI101|H28004B370 -28004B370:lI115|H28004B380 -28004B380:lI99|H28004B390 -28004B390:lI114|H28004B3A0 -28004B3A0:lI105|H28004B3B0 -28004B3B0:lI112|H28004B3C0 -28004B3C0:lI116|H28004B3D0 -28004B3D0:lI111|H28004B3E0 -28004B3E0:lI114|H28004B3F0 -28004B3F0:lI32|H28004B400 -28004B400:lI126|H28004B410 -28004B410:lI112|H28004B420 -28004B420:lI46|H28004B430 -28004B430:lI32|H28004B440 -28004B440:lI84|H28004B450 -28004B450:lI104|H28004B460 -28004B460:lI101|H28004B470 -28004B470:lI32|H28004B480 -28004B480:lI115|H28004B490 -28004B490:lI121|H28004B4A0 -28004B4A0:lI115|H28004B4B0 -28004B4B0:lI116|H28004B4C0 -28004B4C0:lI101|H28004B4D0 -28004B4D0:lI109|H28004B4E0 -28004B4E0:lI32|H28004B4F0 -28004B4F0:lI119|H28004B500 -28004B500:lI105|H28004B510 -28004B510:lI108|H28004B520 -28004B520:lI108|H28004B530 -28004B530:lI32|H28004B540 -28004B540:lI99|H28004B550 -28004B550:lI111|H28004B560 -28004B560:lI110|H28004B570 -28004B570:lI116|H28004B580 -28004B580:lI105|H28004B590 -28004B590:lI110|H28004B5A0 -28004B5A0:lI117|H28004B5B0 -28004B5B0:lI101|H28004B5C0 -28004B5C0:lI32|H28004B5D0 -28004B5D0:lI116|H28004B5E0 -28004B5E0:lI111|H28004B5F0 -28004B5F0:lI32|H28004B600 -28004B600:lI114|H28004B610 -28004B610:lI101|H28004B620 -28004B620:lI97|H28004B630 -28004B630:lI100|H28004B640 -28004B640:lI32|H28004B650 -28004B650:lI102|H28004B660 -28004B660:lI114|H28004B670 -28004B670:lI111|H28004B680 -28004B680:lI109|H28004B690 -28004B690:lI32|H28004B6A0 -28004B6A0:lI116|H28004B6B0 -28004B6B0:lI104|H28004B6C0 -28004B6C0:lI101|H28004B6D0 -28004B6D0:lI32|H28004B6E0 -28004B6E0:lI102|H28004B6F0 -28004B6F0:lI105|H28004B700 -28004B700:lI108|H28004B710 -28004B710:lI101|H28004B720 -28004B720:lI32|H28004B730 -28004B730:lI100|H28004B740 -28004B740:lI101|H28004B750 -28004B750:lI115|H28004B760 -28004B760:lI99|H28004B770 -28004B770:lI114|H28004B780 -28004B780:lI105|H28004B790 -28004B790:lI112|H28004B7A0 -28004B7A0:lI116|H28004B7B0 -28004B7B0:lI111|H28004B7C0 -28004B7C0:lI114|H28004B7D0 -28004B7D0:lI32|H28004B7E0 -28004B7E0:lI97|H28004B7F0 -28004B7F0:lI110|H28004B800 -28004B800:lI100|H28004B810 -28004B810:lI32|H28004B820 -28004B820:lI119|H28004B830 -28004B830:lI105|H28004B840 -28004B840:lI108|H28004B850 -28004B850:lI108|H28004B860 -28004B860:lI32|H28004B870 -28004B870:lI98|H28004B880 -28004B880:lI101|H28004B890 -28004B890:lI32|H28004B8A0 -28004B8A0:lI98|H28004B8B0 -28004B8B0:lI108|H28004B8C0 -28004B8C0:lI111|H28004B8D0 -28004B8D0:lI99|H28004B8E0 -28004B8E0:lI107|H28004B8F0 -28004B8F0:lI101|H28004B900 -28004B900:lI100|H28004B910 -28004B910:lI32|H28004B920 -28004B920:lI117|H28004B930 -28004B930:lI110|H28004B940 -28004B940:lI116|H28004B950 -28004B950:lI105|H28004B960 -28004B960:lI108|H28004B970 -28004B970:lI32|H28004B980 -28004B980:lI101|H28004B990 -28004B990:lI110|H28004B9A0 -28004B9A0:lI100|H28004B9B0 -28004B9B0:lI32|H28004B9C0 -28004B9C0:lI111|H28004B9D0 -28004B9D0:lI102|H28004B9E0 -28004B9E0:lI32|H28004B9F0 -28004B9F0:lI102|H28004BA00 -28004BA00:lI105|H28004BA10 -28004BA10:lI108|H28004BA20 -28004BA20:lI101|H28004BA30 -28004BA30:lI32|H28004BA40 -28004BA40:lI105|H28004BA50 -28004BA50:lI115|H28004BA60 -28004BA60:lI32|H28004BA70 -28004BA70:lI114|H28004BA80 -28004BA80:lI101|H28004BA90 -28004BA90:lI99|H28004BAA0 -28004BAA0:lI101|H28004BAB0 -28004BAB0:lI105|H28004BAC0 -28004BAC0:lI118|H28004BAD0 -28004BAD0:lI101|H28004BAE0 -28004BAE0:lI100|H28004BAF0 -28004BAF0:lI46|N -28004BB00:t3:A4:line,A4:file,A3:mfa -28004BB20:Mf3:H28004BB00:I2094,H28004BB50,H28004BCF0 -28004BB50:lI97|H28004BB60 -28004BB60:lI112|H28004BB70 -28004BB70:lI112|H28004BB80 -28004BB80:lI108|H28004BB90 -28004BB90:lI105|H28004BBA0 -28004BBA0:lI99|H28004BBB0 -28004BBB0:lI97|H28004BBC0 -28004BBC0:lI116|H28004BBD0 -28004BBD0:lI105|H28004BBE0 -28004BBE0:lI111|H28004BBF0 -28004BBF0:lI110|H28004BC00 -28004BC00:lI95|H28004BC10 -28004BC10:lI99|H28004BC20 -28004BC20:lI111|H28004BC30 -28004BC30:lI110|H28004BC40 -28004BC40:lI116|H28004BC50 -28004BC50:lI114|H28004BC60 -28004BC60:lI111|H28004BC70 -28004BC70:lI108|H28004BC80 -28004BC80:lI108|H28004BC90 -28004BC90:lI101|H28004BCA0 -28004BCA0:lI114|H28004BCB0 -28004BCB0:lI46|H28004BCC0 -28004BCC0:lI101|H28004BCD0 -28004BCD0:lI114|H28004BCE0 -28004BCE0:lI108|N -28004BCF0:t3:A16:application_controller,A1B:read_fd_until_end_and_close,I3 -28004BD10:lA4:read|N -28004BD20:lI73|H28004BD30 -28004BD30:lI110|H28004BD40 -28004BD40:lI118|H28004BD50 -28004BD50:lI97|H28004BD60 -28004BD60:lI108|H28004BD70 -28004BD70:lI105|H28004BD80 -28004BD80:lI100|H28004BD90 -28004BD90:lI32|H28004BDA0 -28004BDA0:lI102|H28004BDB0 -28004BDB0:lI105|H28004BDC0 -28004BDC0:lI108|H28004BDD0 -28004BDD0:lI101|H28004BDE0 -28004BDE0:lI32|H28004BDF0 -28004BDF0:lI100|H28004BE00 -28004BE00:lI101|H28004BE10 -28004BE10:lI115|H28004BE20 -28004BE20:lI99|H28004BE30 -28004BE30:lI114|H28004BE40 -28004BE40:lI105|H28004BE50 -28004BE50:lI112|H28004BE60 -28004BE60:lI116|H28004BE70 -28004BE70:lI111|H28004BE80 -28004BE80:lI114|N -28004BE90:lI134217728|N -28004BEA0:lI77|H28004BEB0 -28004BEB0:lI97|H28004BEC0 -28004BEC0:lI120|H28004BED0 -28004BED0:lI32|H28004BEE0 -28004BEE0:lI115|H28004BEF0 -28004BEF0:lI105|H28004BF00 -28004BF00:lI122|H28004BF10 -28004BF10:lI101|H28004BF20 -28004BF20:lI32|H28004BF30 -28004BF30:lI126|H28004BF40 -28004BF40:lI119|H28004BF50 -28004BF50:lI32|H28004BF60 -28004BF60:lI98|H28004BF70 -28004BF70:lI121|H28004BF80 -28004BF80:lI116|H28004BF90 -28004BF90:lI101|H28004BFA0 -28004BFA0:lI115|H28004BFB0 -28004BFB0:lI32|H28004BFC0 -28004BFC0:lI101|H28004BFD0 -28004BFD0:lI120|H28004BFE0 -28004BFE0:lI99|H28004BFF0 -28004BFF0:lI101|H28004C000 -28004C000:lI101|H28004C010 -28004C010:lI100|H28004C020 -28004C020:lI101|H28004C030 -28004C030:lI100|N -28004C040:lI48|H28004C050 -28004C050:lI49|H28004C060 -28004C060:lI50|H28004C070 -28004C070:lI51|H28004C080 -28004C080:lI52|H28004C090 -28004C090:lI53|H28004C0A0 -28004C0A0:lI54|H28004C0B0 -28004C0B0:lI55|H28004C0C0 -28004C0C0:lI56|H28004C0D0 -28004C0D0:lI57|N -28004C0E0:lI126|H28004C0F0 -28004C0F0:lI116|H28004C100 -28004C100:lI112|H28004C110 -28004C110:lI58|H28004C120 -28004C120:lI32|H28004C130 -28004C130:lI126|H28004C140 -28004C140:lI119|H28004C150 -28004C150:lI58|H28004C160 -28004C160:lI32|H28004C170 -28004C170:lI126|H28004C180 -28004C180:lI116|H28004C190 -28004C190:lI115|H28004C1A0 -28004C1A0:lI126|H28004C1B0 -28004C1B0:lI110|N -28004C1C0:t3:A4:line,A4:file,A3:mfa -28004C1E0:Mf3:H28004C1C0:I1588,H28004C210,H28004C3B0 -28004C210:lI97|H28004C220 -28004C220:lI112|H28004C230 -28004C230:lI112|H28004C240 -28004C240:lI108|H28004C250 -28004C250:lI105|H28004C260 -28004C260:lI99|H28004C270 -28004C270:lI97|H28004C280 -28004C280:lI116|H28004C290 -28004C290:lI105|H28004C2A0 -28004C2A0:lI111|H28004C2B0 -28004C2B0:lI110|H28004C2C0 -28004C2C0:lI95|H28004C2D0 -28004C2D0:lI99|H28004C2E0 -28004C2E0:lI111|H28004C2F0 -28004C2F0:lI110|H28004C300 -28004C300:lI116|H28004C310 -28004C310:lI114|H28004C320 -28004C320:lI111|H28004C330 -28004C330:lI108|H28004C340 -28004C340:lI108|H28004C350 -28004C350:lI101|H28004C360 -28004C360:lI114|H28004C370 -28004C370:lI46|H28004C380 -28004C380:lI101|H28004C390 -28004C390:lI114|H28004C3A0 -28004C3A0:lI108|N -28004C3B0:t3:A16:application_controller,AE:do_change_apps,I3 -28004C3D0:lI108|N -28004C3E0:lI114|H28004C3D0 -28004C3F0:lI101|H28004C3E0 -28004C400:lI46|H28004C3F0 -28004C410:lI114|H28004C400 -28004C420:lI101|H28004C410 -28004C430:lI108|H28004C420 -28004C440:lI108|H28004C430 -28004C450:lI111|H28004C440 -28004C460:lI114|H28004C450 -28004C470:lI116|H28004C460 -28004C480:lI110|H28004C470 -28004C490:lI111|H28004C480 -28004C4A0:lI99|H28004C490 -28004C4B0:lI95|H28004C4A0 -28004C4C0:lI110|H28004C4B0 -28004C4D0:lI111|H28004C4C0 -28004C4E0:lI105|H28004C4D0 -28004C4F0:lI116|H28004C4E0 -28004C500:lI97|H28004C4F0 -28004C510:lI99|H28004C500 -28004C520:lI105|H28004C510 -28004C530:lI108|H28004C520 -28004C540:lI112|H28004C530 -28004C550:lI112|H28004C540 -28004C560:lI97|H28004C550 -28004C570:E5A:g3AAAABYAQnO5ercdDL+Dqkv8OJgo/EAAAABAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEBYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C598:E5A:g3AAAABYAgnO5ercdDL+Dqkv8OJgo/EAAAAEAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEEYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C5C0:E5A:g3AAAABYAQnO5ercdDL+Dqkv8OJgo/EAAAAFAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEFYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C5E8:E5A:g3AAAABYAQnO5ercdDL+Dqkv8OJgo/EAAAAGAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEGYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C610:E5A:g3AAAABYAgnO5ercdDL+Dqkv8OJgo/EAAAAIAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEIYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C638:E5A:g3AAAABYAgnO5ercdDL+Dqkv8OJgo/EAAAAJAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEJYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C660:E5A:g3AAAABYAQnO5ercdDL+Dqkv8OJgo/EAAAAMAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEMYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C688:E5A:g3AAAABYAQnO5ercdDL+Dqkv8OJgo/EAAAANAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmENYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C6B0:E5A:g3AAAABYAgnO5ercdDL+Dqkv8OJgo/EAAAAPAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEPYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C6D8:E5A:g3AAAABYAgnO5ercdDL+Dqkv8OJgo/EAAAARAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmERYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C700:E5A:g3AAAABYAQnO5ercdDL+Dqkv8OJgo/EAAAASAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmESYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C728:E5A:g3AAAABYAQnO5ercdDL+Dqkv8OJgo/EAAAATAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmETYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C750:E5A:g3AAAABYAgnO5ercdDL+Dqkv8OJgo/EAAAAUAAAAAHcWYXBwbGljYXRpb25fY29udHJvbGxlcmEUYgBOdy9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28004C778:t2:A5:label,A6:report -28004C790:t4:AB:chars_limit,A5:depth,A8:encoding,AB:single_line -280052908:lAB:named_table|H280052918 -280052918:lA9:protected|N -280052928:lI108|H280052938 -280052938:lI105|H280052948 -280052948:lI98|N -280052958:lI46|N -280052968:lI69|H280052978 -280052978:lI82|H280052988 -280052988:lI76|H280052998 -280052998:lI95|H2800529A8 -2800529A8:lI76|H2800529B8 -2800529B8:lI73|H2800529C8 -2800529C8:lI66|H2800529D8 -2800529D8:lI83|N -2800529E8:lA5:flush|N -2800529F8:t2:A6:module,AB:code_server -280052A10:lI32|H280052A20 -280052A20:lI42|H280052A30 -280052A30:lI42|H280052A40 -280052A40:lI32|H280052A50 -280052A50:lI67|H280052A60 -280052A60:lI111|H280052A70 -280052A70:lI100|H280052A80 -280052A80:lI101|H280052A90 -280052A90:lI115|H280052AA0 -280052AA0:lI101|H280052AB0 -280052AB0:lI114|H280052AC0 -280052AC0:lI118|H280052AD0 -280052AD0:lI101|H280052AE0 -280052AE0:lI114|H280052AF0 -280052AF0:lI42|H280052B00 -280052B00:lI42|H280052B10 -280052B10:lI42|H280052B20 -280052B20:lI32|H280052B30 -280052B30:lI105|H280052B40 -280052B40:lI103|H280052B50 -280052B50:lI110|H280052B60 -280052B60:lI111|H280052B70 -280052B70:lI114|H280052B80 -280052B80:lI105|H280052B90 -280052B90:lI110|H280052BA0 -280052BA0:lI103|H280052BB0 -280052BB0:lI32|H280052BC0 -280052BC0:lI126|H280052BD0 -280052BD0:lI119|H280052BE0 -280052BE0:lI126|H280052BF0 -280052BF0:lI110|H280052C00 -280052C00:lI32|N -280052C10:lI0|N -280052C20:lI101|H280052C30 -280052C30:lI98|H280052C40 -280052C40:lI105|H280052C50 -280052C50:lI110|N -280052C60:lH280052C70|N -280052C70:lI101|H280052C80 -280052C80:lI98|H280052C90 -280052C90:lI105|H280052CA0 -280052CA0:lI110|N -280052CB0:t2:A2:ok,H280052CC8 -280052CC8:lH280052CD8|N -280052CD8:lH280052CE8|N -280052CE8:lI102|H280052CF8 -280052CF8:lI97|H280052D08 -280052D08:lI108|H280052D18 -280052D18:lI115|H280052D28 -280052D28:lI101|N -280052D38:lI45|N -280052D48:t2:A5:error,AD:bad_directory -280052D60:lAB:named_table|H280052D70 -280052D70:lA6:public|N -280052D80:lI101|H280052D90 -280052D90:lI114|H280052DA0 -280052DA0:lI116|H280052DB0 -280052DB0:lI115|N -280052DC0:t2:A5:error,A8:bad_name -280052DD8:lI99|H280052DE8 -280052DE8:lI111|H280052DF8 -280052DF8:lI109|H280052E08 -280052E08:lI112|H280052E18 -280052E18:lI105|H280052E28 -280052E28:lI108|H280052E38 -280052E38:lI101|H280052E48 -280052E48:lI114|N -280052E58:lI67|H280052E68 -280052E68:lI97|H280052E78 -280052E78:lI110|H280052E88 -280052E88:lI39|H280052E98 -280052E98:lI116|H280052EA8 -280052EA8:lI32|H280052EB8 -280052EB8:lI108|H280052EC8 -280052EC8:lI111|H280052ED8 -280052ED8:lI97|H280052EE8 -280052EE8:lI100|H280052EF8 -280052EF8:lI32|H280052F08 -280052F08:lI109|H280052F18 -280052F18:lI111|H280052F28 -280052F28:lI100|H280052F38 -280052F38:lI117|H280052F48 -280052F48:lI108|H280052F58 -280052F58:lI101|H280052F68 -280052F68:lI32|H280052F78 -280052F78:lI39|H280052F88 -280052F88:lI126|H280052F98 -280052F98:lI119|H280052FA8 -280052FA8:lI39|H280052FB8 -280052FB8:lI32|H280052FC8 -280052FC8:lI116|H280052FD8 -280052FD8:lI104|H280052FE8 -280052FE8:lI97|H280052FF8 -280052FF8:lI116|H280053008 -280053008:lI32|H280053018 -280053018:lI114|H280053028 -280053028:lI101|H280053038 -280053038:lI115|H280053048 -280053048:lI105|H280053058 -280053058:lI100|H280053068 -280053068:lI101|H280053078 -280053078:lI115|H280053088 -280053088:lI32|H280053098 -280053098:lI105|H2800530A8 -2800530A8:lI110|H2800530B8 -2800530B8:lI32|H2800530C8 -2800530C8:lI115|H2800530D8 -2800530D8:lI116|H2800530E8 -2800530E8:lI105|H2800530F8 -2800530F8:lI99|H280053108 -280053108:lI107|H280053118 -280053118:lI121|H280053128 -280053128:lI32|H280053138 -280053138:lI100|H280053148 -280053148:lI105|H280053158 -280053158:lI114|H280053168 -280053168:lI10|N -280053178:t2:A5:error,A10:sticky_directory -280053190:t2:A4:true,A7:nocache -2800531A8:t2:A5:false,A5:cache -2800531C0:lI58|H2800531D0 -2800531D0:lI47|N -2800531E0:t2:A5:error,A7:on_load -2800531F8:t2:A5:error,A8:deadlock -280053210:t2:A5:error,AF:on_load_failure -280053228:lH280053238|N -280053238:t3:H280053258,H280053270,H280053298 -280053258:t2:A2:$1,A1:_ -280053270:lH280053280|N -280053280:t2:A7:is_atom,A2:$1 -280053298:lA2:$_|N -2800532A8:Mf0:H280010188: -2800532C0:t1:A3:tag -2800532D0:Mf1:H2800532C0:A5:error -2800532F0:t2:AB:code_server,A5:error -280053308:t1:A3:tag -280053318:Mf1:H280053308:A8:info_msg -280053338:lI10|N -280053348:lI84|H280053358 -280053358:lI104|H280053368 -280053368:lI101|H280053378 -280053378:lI32|H280053388 -280053388:lI111|H280053398 -280053398:lI110|H2800533A8 -2800533A8:lI95|H2800533B8 -2800533B8:lI108|H2800533C8 -2800533C8:lI111|H2800533D8 -2800533D8:lI97|H2800533E8 -2800533E8:lI100|H2800533F8 -2800533F8:lI32|H280053408 -280053408:lI102|H280053418 -280053418:lI117|H280053428 -280053428:lI110|H280053438 -280053438:lI99|H280053448 -280053448:lI116|H280053458 -280053458:lI105|H280053468 -280053468:lI111|H280053478 -280053478:lI110|H280053488 -280053488:lI32|H280053498 -280053498:lI102|H2800534A8 -2800534A8:lI111|H2800534B8 -2800534B8:lI114|H2800534C8 -2800534C8:lI32|H2800534D8 -2800534D8:lI109|H2800534E8 -2800534E8:lI111|H2800534F8 -2800534F8:lI100|H280053508 -280053508:lI117|H280053518 -280053518:lI108|H280053528 -280053528:lI101|H280053538 -280053538:lI32|H280053548 -280053548:lI126|H280053558 -280053558:lI115|H280053568 -280053568:lI32|H280053578 -280053578:lI114|H280053588 -280053588:lI101|H280053598 -280053598:lI116|H2800535A8 -2800535A8:lI117|H2800535B8 -2800535B8:lI114|H2800535C8 -2800535C8:lI110|H2800535D8 -2800535D8:lI101|H2800535E8 -2800535E8:lI100|H2800535F8 -2800535F8:lI58|H280053608 -280053608:lI126|H280053618 -280053618:lI110|H280053628 -280053628:lI126|H280053638 -280053638:lI80|H280053648 -280053648:lI10|N -280053658:lI76|H280053668 -280053668:lI111|H280053678 -280053678:lI97|H280053688 -280053688:lI100|H280053698 -280053698:lI105|H2800536A8 -2800536A8:lI110|H2800536B8 -2800536B8:lI103|H2800536C8 -2800536C8:lI32|H2800536D8 -2800536D8:lI111|H2800536E8 -2800536E8:lI102|H2800536F8 -2800536F8:lI32|H280053708 -280053708:lI126|H280053718 -280053718:lI116|H280053728 -280053728:lI115|H280053738 -280053738:lI32|H280053748 -280053748:lI102|H280053758 -280053758:lI97|H280053768 -280053768:lI105|H280053778 -280053778:lI108|H280053788 -280053788:lI101|H280053798 -280053798:lI100|H2800537A8 -2800537A8:lI58|H2800537B8 -2800537B8:lI32|H2800537C8 -2800537C8:lI126|H2800537D8 -2800537D8:lI112|H2800537E8 -2800537E8:lI10|N -2800537F8:t2:A5:error,A8:embedded -280053810:t2:A5:error,A6:nofile -280053828:lI108|N -280053838:lI114|H280053828 -280053848:lI101|H280053838 -280053858:lI46|H280053848 -280053868:lI114|H280053858 -280053878:lI101|H280053868 -280053888:lI118|H280053878 -280053898:lI114|H280053888 -2800538A8:lI101|H280053898 -2800538B8:lI115|H2800538A8 -2800538C8:lI95|H2800538B8 -2800538D8:lI101|H2800538C8 -2800538E8:lI100|H2800538D8 -2800538F8:lI111|H2800538E8 -280053908:lI99|H2800538F8 -280053918:E4F:g3AAAABNAdRDfzF//Rs9hGTt7lEXZC0AAAADAAAAAHcLY29kZV9zZXJ2ZXJhA2IGohv5WHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -280053940:E4F:g3AAAABNAdRDfzF//Rs9hGTt7lEXZC0AAAAEAAAAAHcLY29kZV9zZXJ2ZXJhBGIGohv5WHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -280053968:t4:AC:error_logger,A3:pid,A4:time,A2:gl -28005A0C0:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -28005A0F8:Mf6:H28005A0C0:AC:logger_proxy,A9:temporary,I2000,H28005A150,A6:worker,H28005A140 -28005A140:lAC:logger_proxy|N -28005A150:t3:AC:logger_proxy,AA:start_link,N -28005A170:t2:A2:ok,A8:no_state -28005A188:lA9:nosuspend|N -28005A198:t2:A2:ok,H28005A1B0 -28005A1B0:E1B:g3F3DGxvZ2dlcl9wcm94eXcHcmVzdGFydGEA -28005A1D8:lI126|H28005A1E8 -28005A1E8:lI119|H28005A1F8 -28005A1F8:lI32|H28005A208 -28005A208:lI115|H28005A218 -28005A218:lI119|H28005A228 -28005A228:lI105|H28005A238 -28005A238:lI116|H28005A248 -28005A248:lI99|H28005A258 -28005A258:lI104|H28005A268 -28005A268:lI101|H28005A278 -28005A278:lI100|H28005A288 -28005A288:lI32|H28005A298 -28005A298:lI102|H28005A2A8 -28005A2A8:lI114|H28005A2B8 -28005A2B8:lI111|H28005A2C8 -28005A2C8:lI109|H28005A2D8 -28005A2D8:lI32|H28005A2E8 -28005A2E8:lI126|H28005A2F8 -28005A2F8:lI119|H28005A308 -28005A308:lI32|H28005A318 -28005A318:lI116|H28005A328 -28005A328:lI111|H28005A338 -28005A338:lI32|H28005A348 -28005A348:lI126|H28005A358 -28005A358:lI119|H28005A368 -28005A368:lI32|H28005A378 -28005A378:lI109|H28005A388 -28005A388:lI111|H28005A398 -28005A398:lI100|H28005A3A8 -28005A3A8:lI101|N -28005A3B8:t3:A4:line,A4:file,A3:mfa -28005A3D8:Mf3:H28005A3B8:I158,H28005A408,H28005A508 -28005A408:lI108|H28005A418 -28005A418:lI111|H28005A428 -28005A428:lI103|H28005A438 -28005A438:lI103|H28005A448 -28005A448:lI101|H28005A458 -28005A458:lI114|H28005A468 -28005A468:lI95|H28005A478 -28005A478:lI112|H28005A488 -28005A488:lI114|H28005A498 -28005A498:lI111|H28005A4A8 -28005A4A8:lI120|H28005A4B8 -28005A4B8:lI121|H28005A4C8 -28005A4C8:lI46|H28005A4D8 -28005A4D8:lI101|H28005A4E8 -28005A4E8:lI114|H28005A4F8 -28005A4F8:lI108|N -28005A508:t3:AC:logger_proxy,A6:notify,I2 -28005A528:Mf0:H280010188: -28005A540:lI126|H28005A550 -28005A550:lI119|H28005A560 -28005A560:lI32|H28005A570 -28005A570:lI102|H28005A580 -28005A580:lI108|H28005A590 -28005A590:lI117|H28005A5A0 -28005A5A0:lI115|H28005A5B0 -28005A5B0:lI104|H28005A5C0 -28005A5C0:lI101|H28005A5D0 -28005A5D0:lI100|H28005A5E0 -28005A5E0:lI32|H28005A5F0 -28005A5F0:lI126|H28005A600 -28005A600:lI119|H28005A610 -28005A610:lI32|H28005A620 -28005A620:lI108|H28005A630 -28005A630:lI111|H28005A640 -28005A640:lI103|H28005A650 -28005A650:lI32|H28005A660 -28005A660:lI101|H28005A670 -28005A670:lI118|H28005A680 -28005A680:lI101|H28005A690 -28005A690:lI110|H28005A6A0 -28005A6A0:lI116|H28005A6B0 -28005A6B0:lI115|N -28005A6C0:t3:A4:line,A4:file,A3:mfa -28005A6E0:Mf3:H28005A6C0:I161,H28005A710,H28005A810 -28005A710:lI108|H28005A720 -28005A720:lI111|H28005A730 -28005A730:lI103|H28005A740 -28005A740:lI103|H28005A750 -28005A750:lI101|H28005A760 -28005A760:lI114|H28005A770 -28005A770:lI95|H28005A780 -28005A780:lI112|H28005A790 -28005A790:lI114|H28005A7A0 -28005A7A0:lI111|H28005A7B0 -28005A7B0:lI120|H28005A7C0 -28005A7C0:lI121|H28005A7D0 -28005A7D0:lI46|H28005A7E0 -28005A7E0:lI101|H28005A7F0 -28005A7F0:lI114|H28005A800 -28005A800:lI108|N -28005A810:t3:AC:logger_proxy,A6:notify,I2 -28005A830:t3:A4:line,A4:file,A3:mfa -28005A850:Mf3:H28005A830:I164,H28005A880,H28005A980 -28005A880:lI108|H28005A890 -28005A890:lI111|H28005A8A0 -28005A8A0:lI103|H28005A8B0 -28005A8B0:lI103|H28005A8C0 -28005A8C0:lI101|H28005A8D0 -28005A8D0:lI114|H28005A8E0 -28005A8E0:lI95|H28005A8F0 -28005A8F0:lI112|H28005A900 -28005A900:lI114|H28005A910 -28005A910:lI111|H28005A920 -28005A920:lI120|H28005A930 -28005A930:lI121|H28005A940 -28005A940:lI46|H28005A950 -28005A950:lI101|H28005A960 -28005A960:lI114|H28005A970 -28005A970:lI108|N -28005A980:t3:AC:logger_proxy,A6:notify,I2 -28005A9A0:lH28005A9C0|H28005A9B0 -28005A9B0:lH28005AA80|N -28005A9C0:lI126|H28005A9D0 -28005A9D0:lI119|H28005A9E0 -28005A9E0:lI32|H28005A9F0 -28005A9F0:lI114|H28005AA00 -28005AA00:lI101|H28005AA10 -28005AA10:lI115|H28005AA20 -28005AA20:lI116|H28005AA30 -28005AA30:lI97|H28005AA40 -28005AA40:lI114|H28005AA50 -28005AA50:lI116|H28005AA60 -28005AA60:lI101|H28005AA70 -28005AA70:lI100|N -28005AA80:lAC:logger_proxy|N -28005AA90:t2:AC:logger_proxy,AA:log_failed -28005AAA8:t3:A4:line,A4:file,A3:mfa -28005AAC8:Mf3:H28005AAA8:I174,H28005AAF8,H28005ABF8 -28005AAF8:lI108|H28005AB08 -28005AB08:lI111|H28005AB18 -28005AB18:lI103|H28005AB28 -28005AB28:lI103|H28005AB38 -28005AB38:lI101|H28005AB48 -28005AB48:lI114|H28005AB58 -28005AB58:lI95|H28005AB68 -28005AB68:lI112|H28005AB78 -28005AB78:lI114|H28005AB88 -28005AB88:lI111|H28005AB98 -28005AB98:lI120|H28005ABA8 -28005ABA8:lI121|H28005ABB8 -28005ABB8:lI46|H28005ABC8 -28005ABC8:lI101|H28005ABD8 -28005ABD8:lI114|H28005ABE8 -28005ABE8:lI108|N -28005ABF8:t3:AC:logger_proxy,A7:try_log,I1 -28005AC18:lI108|N -28005AC28:lI114|H28005AC18 -28005AC38:lI101|H28005AC28 -28005AC48:lI46|H28005AC38 -28005AC58:lI121|H28005AC48 -28005AC68:lI120|H28005AC58 -28005AC78:lI111|H28005AC68 -28005AC88:lI114|H28005AC78 -28005AC98:lI112|H28005AC88 -28005ACA8:lI95|H28005AC98 -28005ACB8:lI114|H28005ACA8 -28005ACC8:lI101|H28005ACB8 -28005ACD8:lI103|H28005ACC8 -28005ACE8:lI103|H28005ACD8 -28005ACF8:lI111|H28005ACE8 -28005AD08:lI108|H28005ACF8 -28005B2F8:t2:N,N -28005B310:t2:A5:empty,H28005B328 -28005B328:t2:N,N -28005B340:lH28005B350|N -28005B350:t2:N,N -28005B368:lI108|N -28005B378:lI114|H28005B368 -28005B388:lI101|H28005B378 -28005B398:lI46|H28005B388 -28005B3A8:lI101|H28005B398 -28005B3B8:lI117|H28005B3A8 -28005B3C8:lI101|H28005B3B8 -28005B3D8:lI117|H28005B3C8 -28005B3E8:lI113|H28005B3D8 -280061C80:t2:I0,A3:nil -280061C98:t2:I1,I1 -280061CB0:t2:I1,I0 -280061CC8:lI108|N -280061CD8:lI114|H280061CC8 -280061CE8:lI101|H280061CD8 -280061CF8:lI46|H280061CE8 -280061D08:lI115|H280061CF8 -280061D18:lI101|H280061D08 -280061D28:lI101|H280061D18 -280061D38:lI114|H280061D28 -280061D48:lI116|H280061D38 -280061D58:lI95|H280061D48 -280061D68:lI98|H280061D58 -280061D78:lI103|H280061D68 -280068C20:t2:A5:local,A12:standard_error_sup -280068C38:lA3:out|H280068C48 -280068C48:lA6:binary|N -280068C58:t2:A5:error,AB:no_stderror -280068C70:t3:A2:fd,I2,I2 -280068C90:lA6:native|N -280068CA0:t2:A5:error,H280068CB8 -280068CB8:t2:A5:error,A9:put_chars -280068CD0:t2:A2:ok,A2:ok -280068CE8:t2:A5:error,H280068D00 -280068D00:t2:A5:error,A7:enotsup -280068D18:t2:A8:encoding,A4:utf8 -280068D30:t2:A8:encoding,A7:unicode -280068D48:t2:A8:encoding,A6:latin1 -280068D60:lI13|H280068D70 -280068D70:lI10|N -280068D80:lI125|N -280068D90:lI92|H280068DA0 -280068DA0:lI120|H280068DB0 -280068DB0:lI123|N -280068DC0:lI108|N -280068DD0:lI114|H280068DC0 -280068DE0:lI101|H280068DD0 -280068DF0:lI46|H280068DE0 -280068E00:lI114|H280068DF0 -280068E10:lI111|H280068E00 -280068E20:lI114|H280068E10 -280068E30:lI114|H280068E20 -280068E40:lI101|H280068E30 -280068E50:lI95|H280068E40 -280068E60:lI100|H280068E50 -280068E70:lI114|H280068E60 -280068E80:lI97|H280068E70 -280068E90:lI100|H280068E80 -280068EA0:lI110|H280068E90 -280068EB0:lI97|H280068EA0 -280068EC0:lI116|H280068EB0 -280068ED0:lI115|H280068EC0 -280068EE0:E52:g3AAAABQAerTAUbpHNfN5LUoR+s7ypAAAAABAAAAAHcOc3RhbmRhcmRfZXJyb3JhAWIHVpgKWHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -280070EF0:lH280070F00|N -280070F00:t2:A9:spawn_opt,H280070F18 -280070F18:lH280070F28|N -280070F28:t2:A12:message_queue_data,A8:off_heap -280070F40:t2:A5:local,A3:rex -280070F58:Mf0:H280010188: -280070F70:t2:A6:badrpc,H280070F88 -280070F88:t2:A4:EXIT,AC:system_limit -280070FA0:lA4:erpc|N -280070FB0:t2:A6:badrpc,A7:timeout -280070FC8:t2:A6:badrpc,A6:notsup -280070FE0:t2:A6:badrpc,A8:nodedown -280070FF8:t2:A5:error,A8:nodedown -280071010:lA5:flush|N -280071020:t2:A4:erpc,A6:badarg -280071038:t2:A5:error,A7:enotsup -280071050:t2:A5:error,A7:request -280071068:lH280071088|H280071078 -280071078:lA9:protected|N -280071088:t2:A10:read_concurrency,A4:true -2800710A0:lI108|N -2800710B0:lI114|H2800710A0 -2800710C0:lI101|H2800710B0 -2800710D0:lI46|H2800710C0 -2800710E0:lI99|H2800710D0 -2800710F0:lI112|H2800710E0 -280071100:lI114|H2800710F0 -280071110:t1:AE:nodes_observer -280071120:E47:g3AAAABFAIbTaQSrg2lQNTtMKFV2UOkAAAACAAAAAHcDcnBjYQJiBDabSFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280071148:E47:g3AAAABFAIbTaQSrg2lQNTtMKFV2UOkAAAADAAAAAHcDcnBjYQNiBDabSFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280071170:E47:g3AAAABFAYbTaQSrg2lQNTtMKFV2UOkAAAAHAAAAAHcDcnBjYQdiBDabSFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800711F8:t2:A5:local,A12:global_name_server -280071210:t2:A2:ok,A5:allow -280071228:lI103|H280071238 -280071238:lI108|H280071248 -280071248:lI111|H280071258 -280071258:lI98|H280071268 -280071268:lI97|H280071278 -280071278:lI108|H280071288 -280071288:lI58|H280071298 -280071298:lI32|H2800712A8 -2800712A8:lI126|H2800712B8 -2800712B8:lI119|H2800712C8 -2800712C8:lI32|H2800712D8 -2800712D8:lI114|H2800712E8 -2800712E8:lI101|H2800712F8 -2800712F8:lI103|H280071308 -280071308:lI105|H280071318 -280071318:lI115|H280071328 -280071328:lI116|H280071338 -280071338:lI101|H280071348 -280071348:lI114|H280071358 -280071358:lI101|H280071368 -280071368:lI100|H280071378 -280071378:lI32|H280071388 -280071388:lI117|H280071398 -280071398:lI110|H2800713A8 -2800713A8:lI100|H2800713B8 -2800713B8:lI101|H2800713C8 -2800713C8:lI114|H2800713D8 -2800713D8:lI32|H2800713E8 -2800713E8:lI115|H2800713F8 -2800713F8:lI101|H280071408 -280071408:lI118|H280071418 -280071418:lI101|H280071428 -280071428:lI114|H280071438 -280071438:lI97|H280071448 -280071448:lI108|H280071458 -280071458:lI32|H280071468 -280071468:lI110|H280071478 -280071478:lI97|H280071488 -280071488:lI109|H280071498 -280071498:lI101|H2800714A8 -2800714A8:lI115|H2800714B8 -2800714B8:lI58|H2800714C8 -2800714C8:lI32|H2800714D8 -2800714D8:lI126|H2800714E8 -2800714E8:lI116|H2800714F8 -2800714F8:lI119|H280071508 -280071508:lI10|N -280071518:lH280071528|N -280071528:t3:H280071548,N,H280071570 -280071548:t4:A2:$1,A2:$2,A2:$3,A2:$4 -280071570:lA2:$1|N -280071580:t1:AD:connection_id -280071590:Mf1:H280071580:A4:true -2800715B0:Mf0:H280010188: -2800715C8:lA3:set|H2800715D8 -2800715D8:lAB:named_table|H2800715E8 -2800715E8:lA9:protected|N -2800715F8:lA3:set|H280071608 -280071608:lAB:named_table|H280071618 -280071618:lA9:protected|H280071628 -280071628:lH280071638|N -280071638:t2:A10:read_concurrency,A4:true -280071650:lA3:bag|H280071660 -280071660:lAB:named_table|H280071670 -280071670:lA9:protected|N -280071680:lI71|H280071690 -280071690:lI76|H2800716A0 -2800716A0:lI79|H2800716B0 -2800716B0:lI66|H2800716C0 -2800716C0:lI65|H2800716D0 -2800716D0:lI76|H2800716E0 -2800716E0:lI95|H2800716F0 -2800716F0:lI72|H280071700 -280071700:lI73|H280071710 -280071710:lI71|H280071720 -280071720:lI72|H280071730 -280071730:lI95|H280071740 -280071740:lI76|H280071750 -280071750:lI69|H280071760 -280071760:lI86|H280071770 -280071770:lI69|H280071780 -280071780:lI76|H280071790 -280071790:lI95|H2800717A0 -2800717A0:lI84|H2800717B0 -2800717B0:lI82|H2800717C0 -2800717C0:lI65|H2800717D0 -2800717D0:lI67|H2800717E0 -2800717E0:lI69|N -2800717F0:lI84|H280071800 -280071800:lI82|H280071810 -280071810:lI85|H280071820 -280071820:lI69|N -280071830:lI102|H280071840 -280071840:lI97|H280071850 -280071850:lI108|H280071860 -280071860:lI115|H280071870 -280071870:lI101|N -280071880:lH280071890|N -280071890:t2:A7:timeout,A8:infinity -2800718A8:t2:A8:do_trace,A5:false -2800718C0:t2:A8:do_trace,A4:true -2800718D8:lI84|H2800718E8 -2800718E8:lI104|H2800718F8 -2800718F8:lI101|H280071908 -280071908:lI32|H280071918 -280071918:lI103|H280071928 -280071928:lI108|H280071938 -280071938:lI111|H280071948 -280071948:lI98|H280071958 -280071958:lI97|H280071968 -280071968:lI108|H280071978 -280071978:lI95|H280071988 -280071988:lI110|H280071998 -280071998:lI97|H2800719A8 -2800719A8:lI109|H2800719B8 -2800719B8:lI101|H2800719C8 -2800719C8:lI95|H2800719D8 -2800719D8:lI115|H2800719E8 -2800719E8:lI101|H2800719F8 -2800719F8:lI114|H280071A08 -280071A08:lI118|H280071A18 -280071A18:lI101|H280071A28 -280071A28:lI114|H280071A38 -280071A38:lI32|H280071A48 -280071A48:lI114|H280071A58 -280071A58:lI101|H280071A68 -280071A68:lI99|H280071A78 -280071A78:lI101|H280071A88 -280071A88:lI105|H280071A98 -280071A98:lI118|H280071AA8 -280071AA8:lI101|H280071AB8 -280071AB8:lI100|H280071AC8 -280071AC8:lI32|H280071AD8 -280071AD8:lI97|H280071AE8 -280071AE8:lI110|H280071AF8 -280071AF8:lI32|H280071B08 -280071B08:lI117|H280071B18 -280071B18:lI110|H280071B28 -280071B28:lI101|H280071B38 -280071B38:lI120|H280071B48 -280071B48:lI112|H280071B58 -280071B58:lI101|H280071B68 -280071B68:lI99|H280071B78 -280071B78:lI116|H280071B88 -280071B88:lI101|H280071B98 -280071B98:lI100|H280071BA8 -280071BA8:lI32|H280071BB8 -280071BB8:lI109|H280071BC8 -280071BC8:lI101|H280071BD8 -280071BD8:lI115|H280071BE8 -280071BE8:lI115|H280071BF8 -280071BF8:lI97|H280071C08 -280071C08:lI103|H280071C18 -280071C18:lI101|H280071C28 -280071C28:lI58|H280071C38 -280071C38:lI10|H280071C48 -280071C48:lI104|H280071C58 -280071C58:lI97|H280071C68 -280071C68:lI110|H280071C78 -280071C78:lI100|H280071C88 -280071C88:lI108|H280071C98 -280071C98:lI101|H280071CA8 -280071CA8:lI95|H280071CB8 -280071CB8:lI99|H280071CC8 -280071CC8:lI97|H280071CD8 -280071CD8:lI108|H280071CE8 -280071CE8:lI108|H280071CF8 -280071CF8:lI40|H280071D08 -280071D08:lI126|H280071D18 -280071D18:lI116|H280071D28 -280071D28:lI112|H280071D38 -280071D38:lI44|H280071D48 -280071D48:lI32|H280071D58 -280071D58:lI126|H280071D68 -280071D68:lI116|H280071D78 -280071D78:lI112|H280071D88 -280071D88:lI44|H280071D98 -280071D98:lI32|H280071DA8 -280071DA8:lI95|H280071DB8 -280071DB8:lI41|H280071DC8 -280071DC8:lI10|N -280071DD8:lI73|H280071DE8 -280071DE8:lI108|H280071DF8 -280071DF8:lI108|H280071E08 -280071E08:lI101|H280071E18 -280071E18:lI103|H280071E28 -280071E28:lI97|H280071E38 -280071E38:lI108|H280071E48 -280071E48:lI32|H280071E58 -280071E58:lI103|H280071E68 -280071E68:lI108|H280071E78 -280071E78:lI111|H280071E88 -280071E88:lI98|H280071E98 -280071E98:lI97|H280071EA8 -280071EA8:lI108|H280071EB8 -280071EB8:lI32|H280071EC8 -280071EC8:lI112|H280071ED8 -280071ED8:lI114|H280071EE8 -280071EE8:lI111|H280071EF8 -280071EF8:lI116|H280071F08 -280071F08:lI111|H280071F18 -280071F18:lI99|H280071F28 -280071F28:lI111|H280071F38 -280071F38:lI108|H280071F48 -280071F48:lI32|H280071F58 -280071F58:lI118|H280071F68 -280071F68:lI101|H280071F78 -280071F78:lI114|H280071F88 -280071F88:lI115|H280071F98 -280071F98:lI105|H280071FA8 -280071FA8:lI111|H280071FB8 -280071FB8:lI110|H280071FC8 -280071FC8:lI32|H280071FD8 -280071FD8:lI126|H280071FE8 -280071FE8:lI112|H280071FF8 -280071FF8:lI32|H280072008 -280072008:lI78|H280072018 -280072018:lI111|H280072028 -280072028:lI100|H280072038 -280072038:lI101|H280072048 -280072048:lI58|H280072058 -280072058:lI32|H280072068 -280072068:lI126|H280072078 -280072078:lI112|H280072088 -280072088:lI10|N -280072098:lI84|H2800720A8 -2800720A8:lI104|H2800720B8 -2800720B8:lI101|H2800720C8 -2800720C8:lI32|H2800720D8 -2800720D8:lI103|H2800720E8 -2800720E8:lI108|H2800720F8 -2800720F8:lI111|H280072108 -280072108:lI98|H280072118 -280072118:lI97|H280072128 -280072128:lI108|H280072138 -280072138:lI95|H280072148 -280072148:lI110|H280072158 -280072158:lI97|H280072168 -280072168:lI109|H280072178 -280072178:lI101|H280072188 -280072188:lI95|H280072198 -280072198:lI115|H2800721A8 -2800721A8:lI101|H2800721B8 -2800721B8:lI114|H2800721C8 -2800721C8:lI118|H2800721D8 -2800721D8:lI101|H2800721E8 -2800721E8:lI114|H2800721F8 -2800721F8:lI32|H280072208 -280072208:lI114|H280072218 -280072218:lI101|H280072228 -280072228:lI99|H280072238 -280072238:lI101|H280072248 -280072248:lI105|H280072258 -280072258:lI118|H280072268 -280072268:lI101|H280072278 -280072278:lI100|H280072288 -280072288:lI32|H280072298 -280072298:lI97|H2800722A8 -2800722A8:lI110|H2800722B8 -2800722B8:lI32|H2800722C8 -2800722C8:lI117|H2800722D8 -2800722D8:lI110|H2800722E8 -2800722E8:lI101|H2800722F8 -2800722F8:lI120|H280072308 -280072308:lI112|H280072318 -280072318:lI101|H280072328 -280072328:lI99|H280072338 -280072338:lI116|H280072348 -280072348:lI101|H280072358 -280072358:lI100|H280072368 -280072368:lI32|H280072378 -280072378:lI109|H280072388 -280072388:lI101|H280072398 -280072398:lI115|H2800723A8 -2800723A8:lI115|H2800723B8 -2800723B8:lI97|H2800723C8 -2800723C8:lI103|H2800723D8 -2800723D8:lI101|H2800723E8 -2800723E8:lI58|H2800723F8 -2800723F8:lI10|H280072408 -280072408:lI104|H280072418 -280072418:lI97|H280072428 -280072428:lI110|H280072438 -280072438:lI100|H280072448 -280072448:lI108|H280072458 -280072458:lI101|H280072468 -280072468:lI95|H280072478 -280072478:lI99|H280072488 -280072488:lI97|H280072498 -280072498:lI115|H2800724A8 -2800724A8:lI116|H2800724B8 -2800724B8:lI40|H2800724C8 -2800724C8:lI126|H2800724D8 -2800724D8:lI116|H2800724E8 -2800724E8:lI112|H2800724F8 -2800724F8:lI44|H280072508 -280072508:lI32|H280072518 -280072518:lI95|H280072528 -280072528:lI41|H280072538 -280072538:lI10|N -280072548:t3:A4:conf,A4:true,A4:true -280072568:lI100|H280072578 -280072578:lI105|H280072588 -280072588:lI115|H280072598 -280072598:lI99|H2800725A8 -2800725A8:lI111|H2800725B8 -2800725B8:lI110|H2800725C8 -2800725C8:lI110|H2800725D8 -2800725D8:lI101|H2800725E8 -2800725E8:lI99|H2800725F8 -2800725F8:lI116|H280072608 -280072608:lI101|H280072618 -280072618:lI100|H280072628 -280072628:lI32|H280072638 -280072638:lI111|H280072648 -280072648:lI108|H280072658 -280072658:lI100|N -280072668:lI101|H280072678 -280072678:lI120|H280072688 -280072688:lI99|H280072698 -280072698:lI108|H2800726A8 -2800726A8:lI117|H2800726B8 -2800726B8:lI100|H2800726C8 -2800726C8:lI101|H2800726D8 -2800726D8:lI100|H2800726E8 -2800726E8:lI32|H2800726F8 -2800726F8:lI103|H280072708 -280072708:lI108|H280072718 -280072718:lI111|H280072728 -280072728:lI98|H280072738 -280072738:lI97|H280072748 -280072748:lI108|H280072758 -280072758:lI32|H280072768 -280072768:lI103|H280072778 -280072778:lI114|H280072788 -280072788:lI111|H280072798 -280072798:lI117|H2800727A8 -2800727A8:lI112|H2800727B8 -2800727B8:lI32|H2800727C8 -2800727C8:lI109|H2800727D8 -2800727D8:lI101|H2800727E8 -2800727E8:lI109|H2800727F8 -2800727F8:lI98|H280072808 -280072808:lI101|H280072818 -280072818:lI114|N -280072828:lI114|H280072838 -280072838:lI101|H280072848 -280072848:lI113|H280072858 -280072858:lI117|H280072868 -280072868:lI101|H280072878 -280072878:lI115|H280072888 -280072888:lI116|H280072898 -280072898:lI101|H2800728A8 -2800728A8:lI100|H2800728B8 -2800728B8:lI32|H2800728C8 -2800728C8:lI100|H2800728D8 -2800728D8:lI105|H2800728E8 -2800728E8:lI115|H2800728F8 -2800728F8:lI99|H280072908 -280072908:lI111|H280072918 -280072918:lI110|H280072928 -280072928:lI110|H280072938 -280072938:lI101|H280072948 -280072948:lI99|H280072958 -280072958:lI116|H280072968 -280072968:lI32|H280072978 -280072978:lI102|H280072988 -280072988:lI114|H280072998 -280072998:lI111|H2800729A8 -2800729A8:lI109|N -2800729B8:lI39|H2800729C8 -2800729C8:lI103|H2800729D8 -2800729D8:lI108|H2800729E8 -2800729E8:lI111|H2800729F8 -2800729F8:lI98|H280072A08 -280072A08:lI97|H280072A18 -280072A18:lI108|H280072A28 -280072A28:lI39|H280072A38 -280072A38:lI32|H280072A48 -280072A48:lI97|H280072A58 -280072A58:lI116|H280072A68 -280072A68:lI32|H280072A78 -280072A78:lI110|H280072A88 -280072A88:lI111|H280072A98 -280072A98:lI100|H280072AA8 -280072AA8:lI101|H280072AB8 -280072AB8:lI32|H280072AC8 -280072AC8:lI126|H280072AD8 -280072AD8:lI112|H280072AE8 -280072AE8:lI32|H280072AF8 -280072AF8:lI126|H280072B08 -280072B08:lI115|H280072B18 -280072B18:lI32|H280072B28 -280072B28:lI110|H280072B38 -280072B38:lI111|H280072B48 -280072B48:lI100|H280072B58 -280072B58:lI101|H280072B68 -280072B68:lI32|H280072B78 -280072B78:lI126|H280072B88 -280072B88:lI112|H280072B98 -280072B98:lI32|H280072BA8 -280072BA8:lI105|H280072BB8 -280072BB8:lI110|H280072BC8 -280072BC8:lI32|H280072BD8 -280072BD8:lI111|H280072BE8 -280072BE8:lI114|H280072BF8 -280072BF8:lI100|H280072C08 -280072C08:lI101|H280072C18 -280072C18:lI114|H280072C28 -280072C28:lI32|H280072C38 -280072C38:lI116|H280072C48 -280072C48:lI111|H280072C58 -280072C58:lI32|H280072C68 -280072C68:lI112|H280072C78 -280072C78:lI114|H280072C88 -280072C88:lI101|H280072C98 -280072C98:lI118|H280072CA8 -280072CA8:lI101|H280072CB8 -280072CB8:lI110|H280072CC8 -280072CC8:lI116|H280072CD8 -280072CD8:lI32|H280072CE8 -280072CE8:lI111|H280072CF8 -280072CF8:lI118|H280072D08 -280072D08:lI101|H280072D18 -280072D18:lI114|H280072D28 -280072D28:lI108|H280072D38 -280072D38:lI97|H280072D48 -280072D48:lI112|H280072D58 -280072D58:lI112|H280072D68 -280072D68:lI105|H280072D78 -280072D78:lI110|H280072D88 -280072D88:lI103|H280072D98 -280072D98:lI32|H280072DA8 -280072DA8:lI112|H280072DB8 -280072DB8:lI97|H280072DC8 -280072DC8:lI114|H280072DD8 -280072DD8:lI116|H280072DE8 -280072DE8:lI105|H280072DF8 -280072DF8:lI116|H280072E08 -280072E08:lI105|H280072E18 -280072E18:lI111|H280072E28 -280072E28:lI110|H280072E38 -280072E38:lI115|N -280072E48:t3:A4:conf,A5:false,A5:false -280072E68:lI100|H280072E78 -280072E78:lI105|H280072E88 -280072E88:lI115|H280072E98 -280072E98:lI99|H280072EA8 -280072EA8:lI111|H280072EB8 -280072EB8:lI110|H280072EC8 -280072EC8:lI110|H280072ED8 -280072ED8:lI101|H280072EE8 -280072EE8:lI99|H280072EF8 -280072EF8:lI116|H280072F08 -280072F08:lI101|H280072F18 -280072F18:lI100|N -280072F28:lI62|H280072F38 -280072F38:lI62|H280072F48 -280072F48:lI62|H280072F58 -280072F58:lI62|H280072F68 -280072F68:lI32|H280072F78 -280072F78:lI126|H280072F88 -280072F88:lI112|H280072F98 -280072F98:lI10|N -280072FA8:lI84|H280072FB8 -280072FB8:lI104|H280072FC8 -280072FC8:lI101|H280072FD8 -280072FD8:lI32|H280072FE8 -280072FE8:lI103|H280072FF8 -280072FF8:lI108|H280073008 -280073008:lI111|H280073018 -280073018:lI98|H280073028 -280073028:lI97|H280073038 -280073038:lI108|H280073048 -280073048:lI95|H280073058 -280073058:lI110|H280073068 -280073068:lI97|H280073078 -280073078:lI109|H280073088 -280073088:lI101|H280073098 -280073098:lI95|H2800730A8 -2800730A8:lI115|H2800730B8 -2800730B8:lI101|H2800730C8 -2800730C8:lI114|H2800730D8 -2800730D8:lI118|H2800730E8 -2800730E8:lI101|H2800730F8 -2800730F8:lI114|H280073108 -280073108:lI32|H280073118 -280073118:lI114|H280073128 -280073128:lI101|H280073138 -280073138:lI99|H280073148 -280073148:lI101|H280073158 -280073158:lI105|H280073168 -280073168:lI118|H280073178 -280073178:lI101|H280073188 -280073188:lI100|H280073198 -280073198:lI32|H2800731A8 -2800731A8:lI97|H2800731B8 -2800731B8:lI110|H2800731C8 -2800731C8:lI32|H2800731D8 -2800731D8:lI117|H2800731E8 -2800731E8:lI110|H2800731F8 -2800731F8:lI101|H280073208 -280073208:lI120|H280073218 -280073218:lI112|H280073228 -280073228:lI101|H280073238 -280073238:lI99|H280073248 -280073248:lI116|H280073258 -280073258:lI101|H280073268 -280073268:lI100|H280073278 -280073278:lI32|H280073288 -280073288:lI109|H280073298 -280073298:lI101|H2800732A8 -2800732A8:lI115|H2800732B8 -2800732B8:lI115|H2800732C8 -2800732C8:lI97|H2800732D8 -2800732D8:lI103|H2800732E8 -2800732E8:lI101|H2800732F8 -2800732F8:lI58|H280073308 -280073308:lI10|H280073318 -280073318:lI104|H280073328 -280073328:lI97|H280073338 -280073338:lI110|H280073348 -280073348:lI100|H280073358 -280073358:lI108|H280073368 -280073368:lI101|H280073378 -280073378:lI95|H280073388 -280073388:lI105|H280073398 -280073398:lI110|H2800733A8 -2800733A8:lI102|H2800733B8 -2800733B8:lI111|H2800733C8 -2800733C8:lI40|H2800733D8 -2800733D8:lI126|H2800733E8 -2800733E8:lI116|H2800733F8 -2800733F8:lI112|H280073408 -280073408:lI44|H280073418 -280073418:lI32|H280073428 -280073428:lI95|H280073438 -280073438:lI41|H280073448 -280073448:lI10|N -280073458:lI39|H280073468 -280073468:lI103|H280073478 -280073478:lI108|H280073488 -280073488:lI111|H280073498 -280073498:lI98|H2800734A8 -2800734A8:lI97|H2800734B8 -2800734B8:lI108|H2800734C8 -2800734C8:lI39|H2800734D8 -2800734D8:lI32|H2800734E8 -2800734E8:lI97|H2800734F8 -2800734F8:lI116|H280073508 -280073508:lI32|H280073518 -280073518:lI110|H280073528 -280073528:lI111|H280073538 -280073538:lI100|H280073548 -280073548:lI101|H280073558 -280073558:lI32|H280073568 -280073568:lI126|H280073578 -280073578:lI112|H280073588 -280073588:lI32|H280073598 -280073598:lI103|H2800735A8 -2800735A8:lI111|H2800735B8 -2800735B8:lI116|H2800735C8 -2800735C8:lI32|H2800735D8 -2800735D8:lI97|H2800735E8 -2800735E8:lI110|H2800735F8 -2800735F8:lI32|H280073608 -280073608:lI111|H280073618 -280073618:lI117|H280073628 -280073628:lI116|H280073638 -280073638:lI32|H280073648 -280073648:lI111|H280073658 -280073658:lI102|H280073668 -280073668:lI32|H280073678 -280073678:lI115|H280073688 -280073688:lI121|H280073698 -280073698:lI110|H2800736A8 -2800736A8:lI99|H2800736B8 -2800736B8:lI32|H2800736C8 -2800736C8:lI99|H2800736D8 -2800736D8:lI111|H2800736E8 -2800736E8:lI110|H2800736F8 -2800736F8:lI110|H280073708 -280073708:lI101|H280073718 -280073718:lI99|H280073728 -280073728:lI116|H280073738 -280073738:lI105|H280073748 -280073748:lI111|H280073758 -280073758:lI110|H280073768 -280073768:lI32|H280073778 -280073778:lI97|H280073788 -280073788:lI116|H280073798 -280073798:lI116|H2800737A8 -2800737A8:lI101|H2800737B8 -2800737B8:lI109|H2800737C8 -2800737C8:lI112|H2800737D8 -2800737D8:lI116|H2800737E8 -2800737E8:lI32|H2800737F8 -2800737F8:lI102|H280073808 -280073808:lI114|H280073818 -280073818:lI111|H280073828 -280073828:lI109|H280073838 -280073838:lI32|H280073848 -280073848:lI111|H280073858 -280073858:lI108|H280073868 -280073868:lI100|H280073878 -280073878:lI32|H280073888 -280073888:lI118|H280073898 -280073898:lI101|H2800738A8 -2800738A8:lI114|H2800738B8 -2800738B8:lI115|H2800738C8 -2800738C8:lI105|H2800738D8 -2800738D8:lI111|H2800738E8 -2800738E8:lI110|H2800738F8 -2800738F8:lI32|H280073908 -280073908:lI126|H280073918 -280073918:lI112|H280073928 -280073928:lI32|H280073938 -280073938:lI110|H280073948 -280073948:lI111|H280073958 -280073958:lI100|H280073968 -280073968:lI101|H280073978 -280073978:lI32|H280073988 -280073988:lI126|H280073998 -280073998:lI112|H2800739A8 -2800739A8:lI46|H2800739B8 -2800739B8:lI32|H2800739C8 -2800739C8:lI68|H2800739D8 -2800739D8:lI105|H2800739E8 -2800739E8:lI115|H2800739F8 -2800739F8:lI99|H280073A08 -280073A08:lI111|H280073A18 -280073A18:lI110|H280073A28 -280073A28:lI110|H280073A38 -280073A38:lI101|H280073A48 -280073A48:lI99|H280073A58 -280073A58:lI116|H280073A68 -280073A68:lI105|H280073A78 -280073A78:lI110|H280073A88 -280073A88:lI103|H280073A98 -280073A98:lI32|H280073AA8 -280073AA8:lI102|H280073AB8 -280073AB8:lI114|H280073AC8 -280073AC8:lI111|H280073AD8 -280073AD8:lI109|H280073AE8 -280073AE8:lI32|H280073AF8 -280073AF8:lI105|H280073B08 -280073B08:lI116|H280073B18 -280073B18:lI46|N -280073B28:t2:A4:true,N -280073B40:lA5:flush|N -280073B50:lA15:allow_passive_connect|N -280073B60:lI39|H280073B70 -280073B70:lI103|H280073B80 -280073B80:lI108|H280073B90 -280073B90:lI111|H280073BA0 -280073BA0:lI98|H280073BB0 -280073BB0:lI97|H280073BC0 -280073BC0:lI108|H280073BD0 -280073BD0:lI39|H280073BE0 -280073BE0:lI32|H280073BF0 -280073BF0:lI97|H280073C00 -280073C00:lI116|H280073C10 -280073C10:lI32|H280073C20 -280073C20:lI126|H280073C30 -280073C30:lI119|H280073C40 -280073C40:lI32|H280073C50 -280073C50:lI102|H280073C60 -280073C60:lI97|H280073C70 -280073C70:lI105|H280073C80 -280073C80:lI108|H280073C90 -280073C90:lI101|H280073CA0 -280073CA0:lI100|H280073CB0 -280073CB0:lI32|H280073CC0 -280073CC0:lI116|H280073CD0 -280073CD0:lI111|H280073CE0 -280073CE0:lI32|H280073CF0 -280073CF0:lI99|H280073D00 -280073D00:lI111|H280073D10 -280073D10:lI110|H280073D20 -280073D20:lI110|H280073D30 -280073D30:lI101|H280073D40 -280073D40:lI99|H280073D50 -280073D50:lI116|H280073D60 -280073D60:lI32|H280073D70 -280073D70:lI116|H280073D80 -280073D80:lI111|H280073D90 -280073D90:lI32|H280073DA0 -280073DA0:lI126|H280073DB0 -280073DB0:lI119|H280073DC0 -280073DC0:lI10|N -280073DD0:lA9:noconnect|N -280073DE0:lI103|H280073DF0 -280073DF0:lI108|H280073E00 -280073E00:lI111|H280073E10 -280073E10:lI98|H280073E20 -280073E20:lI97|H280073E30 -280073E30:lI108|H280073E40 -280073E40:lI58|H280073E50 -280073E50:lI32|H280073E60 -280073E60:lI98|H280073E70 -280073E70:lI97|H280073E80 -280073E80:lI100|H280073E90 -280073E90:lI114|H280073EA0 -280073EA0:lI112|H280073EB0 -280073EB0:lI99|H280073EC0 -280073EC0:lI32|H280073ED0 -280073ED0:lI126|H280073EE0 -280073EE0:lI119|H280073EF0 -280073EF0:lI32|H280073F00 -280073F00:lI114|H280073F10 -280073F10:lI101|H280073F20 -280073F20:lI99|H280073F30 -280073F30:lI101|H280073F40 -280073F40:lI105|H280073F50 -280073F50:lI118|H280073F60 -280073F60:lI101|H280073F70 -280073F70:lI100|H280073F80 -280073F80:lI32|H280073F90 -280073F90:lI119|H280073FA0 -280073FA0:lI104|H280073FB0 -280073FB0:lI101|H280073FC0 -280073FC0:lI110|H280073FD0 -280073FD0:lI32|H280073FE0 -280073FE0:lI99|H280073FF0 -280073FF0:lI111|H280074000 -280074000:lI110|H280074010 -280074010:lI102|H280074020 -280074020:lI108|H280074030 -280074030:lI105|H280074040 -280074040:lI99|H280074050 -280074050:lI116|H280074060 -280074060:lI105|H280074070 -280074070:lI110|H280074080 -280074080:lI103|H280074090 -280074090:lI32|H2800740A0 -2800740A0:lI110|H2800740B0 -2800740B0:lI97|H2800740C0 -2800740C0:lI109|H2800740D0 -2800740D0:lI101|H2800740E0 -2800740E0:lI32|H2800740F0 -2800740F0:lI126|H280074100 -280074100:lI116|H280074110 -280074110:lI119|H280074120 -280074120:lI32|H280074130 -280074130:lI119|H280074140 -280074140:lI97|H280074150 -280074150:lI115|H280074160 -280074160:lI32|H280074170 -280074170:lI102|H280074180 -280074180:lI111|H280074190 -280074190:lI117|H2800741A0 -2800741A0:lI110|H2800741B0 -2800741B0:lI100|H2800741C0 -2800741C0:lI10|N -2800741D0:lI103|H2800741E0 -2800741E0:lI108|H2800741F0 -2800741F0:lI111|H280074200 -280074200:lI98|H280074210 -280074210:lI97|H280074220 -280074220:lI108|H280074230 -280074230:lI58|H280074240 -280074240:lI32|H280074250 -280074250:lI82|H280074260 -280074260:lI101|H280074270 -280074270:lI115|H280074280 -280074280:lI111|H280074290 -280074290:lI108|H2800742A0 -2800742A0:lI118|H2800742B0 -2800742B0:lI101|H2800742C0 -2800742C0:lI32|H2800742D0 -2800742D0:lI109|H2800742E0 -2800742E0:lI101|H2800742F0 -2800742F0:lI116|H280074300 -280074300:lI104|H280074310 -280074310:lI111|H280074320 -280074320:lI100|H280074330 -280074330:lI32|H280074340 -280074340:lI126|H280074350 -280074350:lI119|H280074360 -280074360:lI32|H280074370 -280074370:lI102|H280074380 -280074380:lI111|H280074390 -280074390:lI114|H2800743A0 -2800743A0:lI32|H2800743B0 -2800743B0:lI99|H2800743C0 -2800743C0:lI111|H2800743D0 -2800743D0:lI110|H2800743E0 -2800743E0:lI102|H2800743F0 -2800743F0:lI108|H280074400 -280074400:lI105|H280074410 -280074410:lI99|H280074420 -280074420:lI116|H280074430 -280074430:lI105|H280074440 -280074440:lI110|H280074450 -280074450:lI103|H280074460 -280074460:lI32|H280074470 -280074470:lI110|H280074480 -280074480:lI97|H280074490 -280074490:lI109|H2800744A0 -2800744A0:lI101|H2800744B0 -2800744B0:lI32|H2800744C0 -2800744C0:lI126|H2800744D0 -2800744D0:lI116|H2800744E0 -2800744E0:lI119|H2800744F0 -2800744F0:lI32|H280074500 -280074500:lI114|H280074510 -280074510:lI101|H280074520 -280074520:lI116|H280074530 -280074530:lI117|H280074540 -280074540:lI114|H280074550 -280074550:lI110|H280074560 -280074560:lI101|H280074570 -280074570:lI100|H280074580 -280074580:lI32|H280074590 -280074590:lI126|H2800745A0 -2800745A0:lI116|H2800745B0 -2800745B0:lI119|H2800745C0 -2800745C0:lI10|N -2800745D0:lI103|H2800745E0 -2800745E0:lI108|H2800745F0 -2800745F0:lI111|H280074600 -280074600:lI98|H280074610 -280074610:lI97|H280074620 -280074620:lI108|H280074630 -280074630:lI58|H280074640 -280074640:lI32|H280074650 -280074650:lI78|H280074660 -280074660:lI97|H280074670 -280074670:lI109|H280074680 -280074680:lI101|H280074690 -280074690:lI32|H2800746A0 -2800746A0:lI99|H2800746B0 -2800746B0:lI111|H2800746C0 -2800746C0:lI110|H2800746D0 -2800746D0:lI102|H2800746E0 -2800746E0:lI108|H2800746F0 -2800746F0:lI105|H280074700 -280074700:lI99|H280074710 -280074710:lI116|H280074720 -280074720:lI32|H280074730 -280074730:lI116|H280074740 -280074740:lI101|H280074750 -280074750:lI114|H280074760 -280074760:lI109|H280074770 -280074770:lI105|H280074780 -280074780:lI110|H280074790 -280074790:lI97|H2800747A0 -2800747A0:lI116|H2800747B0 -2800747B0:lI105|H2800747C0 -2800747C0:lI110|H2800747D0 -2800747D0:lI103|H2800747E0 -2800747E0:lI32|H2800747F0 -2800747F0:lI126|H280074800 -280074800:lI116|H280074810 -280074810:lI119|H280074820 -280074820:lI10|N -280074830:lA9:monotonic|N -280074840:t3:A9:undefined,A9:undefined,A9:undefined -280074860:lH280074880|H280074870 -280074870:lH280074898|N -280074880:t2:A5:async,A4:true -280074898:t2:A4:info,A5:false -2800748B0:lH2800748C0|N -2800748C0:t3:H2800748E0,N,H280074908 -2800748E0:t4:A2:$1,A2:$2,A2:$3,A2:$4 -280074908:lH280074918|N -280074918:t1:H280074928 -280074928:t3:A2:$1,A2:$2,A2:$3 -280074948:lI84|H280074958 -280074958:lI114|H280074968 -280074968:lI121|H280074978 -280074978:lI105|H280074988 -280074988:lI110|H280074998 -280074998:lI103|H2800749A8 -2800749A8:lI32|H2800749B8 -2800749B8:lI116|H2800749C8 -2800749C8:lI111|H2800749D8 -2800749D8:lI32|H2800749E8 -2800749E8:lI115|H2800749F8 -2800749F8:lI121|H280074A08 -280074A08:lI110|H280074A18 -280074A18:lI99|H280074A28 -280074A28:lI32|H280074A38 -280074A38:lI110|H280074A48 -280074A48:lI111|H280074A58 -280074A58:lI100|H280074A68 -280074A68:lI101|H280074A78 -280074A78:lI115|H280074A88 -280074A88:lI32|H280074A98 -280074A98:lI110|H280074AA8 -280074AA8:lI111|H280074AB8 -280074AB8:lI116|H280074AC8 -280074AC8:lI32|H280074AD8 -280074AD8:lI100|H280074AE8 -280074AE8:lI101|H280074AF8 -280074AF8:lI102|H280074B08 -280074B08:lI105|H280074B18 -280074B18:lI110|H280074B28 -280074B28:lI101|H280074B38 -280074B38:lI100|H280074B48 -280074B48:lI32|H280074B58 -280074B58:lI105|H280074B68 -280074B68:lI110|H280074B78 -280074B78:lI32|H280074B88 -280074B88:lI116|H280074B98 -280074B98:lI104|H280074BA8 -280074BA8:lI101|H280074BB8 -280074BB8:lI32|H280074BC8 -280074BC8:lI111|H280074BD8 -280074BD8:lI119|H280074BE8 -280074BE8:lI110|H280074BF8 -280074BF8:lI32|H280074C08 -280074C08:lI103|H280074C18 -280074C18:lI108|H280074C28 -280074C28:lI111|H280074C38 -280074C38:lI98|H280074C48 -280074C48:lI97|H280074C58 -280074C58:lI108|H280074C68 -280074C68:lI32|H280074C78 -280074C78:lI103|H280074C88 -280074C88:lI114|H280074C98 -280074C98:lI111|H280074CA8 -280074CA8:lI117|H280074CB8 -280074CB8:lI112|N -280074CC8:lI103|H280074CD8 -280074CD8:lI108|H280074CE8 -280074CE8:lI111|H280074CF8 -280074CF8:lI98|H280074D08 -280074D08:lI97|H280074D18 -280074D18:lI108|H280074D28 -280074D28:lI95|H280074D38 -280074D38:lI103|H280074D48 -280074D48:lI114|H280074D58 -280074D58:lI111|H280074D68 -280074D68:lI117|H280074D78 -280074D78:lI112|H280074D88 -280074D88:lI115|H280074D98 -280074D98:lI32|H280074DA8 -280074DA8:lI100|H280074DB8 -280074DB8:lI101|H280074DC8 -280074DC8:lI102|H280074DD8 -280074DD8:lI105|H280074DE8 -280074DE8:lI110|H280074DF8 -280074DF8:lI105|H280074E08 -280074E08:lI116|H280074E18 -280074E18:lI105|H280074E28 -280074E28:lI111|H280074E38 -280074E38:lI110|H280074E48 -280074E48:lI32|H280074E58 -280074E58:lI101|H280074E68 -280074E68:lI114|H280074E78 -280074E78:lI114|H280074E88 -280074E88:lI111|H280074E98 -280074E98:lI114|N -280074EA8:lI84|H280074EB8 -280074EB8:lI104|H280074EC8 -280074EC8:lI101|H280074ED8 -280074ED8:lI32|H280074EE8 -280074EE8:lI103|H280074EF8 -280074EF8:lI108|H280074F08 -280074F08:lI111|H280074F18 -280074F18:lI98|H280074F28 -280074F28:lI97|H280074F38 -280074F38:lI108|H280074F48 -280074F48:lI95|H280074F58 -280074F58:lI110|H280074F68 -280074F68:lI97|H280074F78 -280074F78:lI109|H280074F88 -280074F88:lI101|H280074F98 -280074F98:lI95|H280074FA8 -280074FA8:lI115|H280074FB8 -280074FB8:lI101|H280074FC8 -280074FC8:lI114|H280074FD8 -280074FD8:lI118|H280074FE8 -280074FE8:lI101|H280074FF8 -280074FF8:lI114|H280075008 -280075008:lI32|H280075018 -280075018:lI126|H280075028 -280075028:lI119|H280075038 -280075038:lI32|H280075048 -280075048:lI112|H280075058 -280075058:lI114|H280075068 -280075068:lI111|H280075078 -280075078:lI99|H280075088 -280075088:lI101|H280075098 -280075098:lI115|H2800750A8 -2800750A8:lI115|H2800750B8 -2800750B8:lI32|H2800750C8 -2800750C8:lI114|H2800750D8 -2800750D8:lI101|H2800750E8 -2800750E8:lI99|H2800750F8 -2800750F8:lI101|H280075108 -280075108:lI105|H280075118 -280075118:lI118|H280075128 -280075128:lI101|H280075138 -280075138:lI100|H280075148 -280075148:lI32|H280075158 -280075158:lI97|H280075168 -280075168:lI110|H280075178 -280075178:lI32|H280075188 -280075188:lI117|H280075198 -280075198:lI110|H2800751A8 -2800751A8:lI101|H2800751B8 -2800751B8:lI120|H2800751C8 -2800751C8:lI112|H2800751D8 -2800751D8:lI101|H2800751E8 -2800751E8:lI99|H2800751F8 -2800751F8:lI116|H280075208 -280075208:lI101|H280075218 -280075218:lI100|H280075228 -280075228:lI32|H280075238 -280075238:lI109|H280075248 -280075248:lI101|H280075258 -280075258:lI115|H280075268 -280075268:lI115|H280075278 -280075278:lI97|H280075288 -280075288:lI103|H280075298 -280075298:lI101|H2800752A8 -2800752A8:lI58|H2800752B8 -2800752B8:lI10|H2800752C8 -2800752C8:lI126|H2800752D8 -2800752D8:lI116|H2800752E8 -2800752E8:lI112|H2800752F8 -2800752F8:lI10|N -280075308:lI108|N -280075318:lI114|H280075308 -280075328:lI101|H280075318 -280075338:lI46|H280075328 -280075348:lI108|H280075338 -280075358:lI97|H280075348 -280075368:lI98|H280075358 -280075378:lI111|H280075368 -280075388:lI108|H280075378 -280075398:lI103|H280075388 -2800753A8:E4A:g3AAAABIA79fDarOZVmFQtYEsqv4Sd0AAAAAAAAAAHcGZ2xvYmFsYQBiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800753D0:E4A:g3AAAABIAr9fDarOZVmFQtYEsqv4Sd0AAAAFAAAAAHcGZ2xvYmFsYQViBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800753F8:B1152921504606846975 -280075408:E4A:g3AAAABIA79fDarOZVmFQtYEsqv4Sd0AAAAGAAAAAHcGZ2xvYmFsYQZiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280075430:E4A:g3AAAABIAr9fDarOZVmFQtYEsqv4Sd0AAAAHAAAAAHcGZ2xvYmFsYQdiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280075458:E4A:g3AAAABIA79fDarOZVmFQtYEsqv4Sd0AAAALAAAAAHcGZ2xvYmFsYQtiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280075480:E4A:g3AAAABIAr9fDarOZVmFQtYEsqv4Sd0AAAANAAAAAHcGZ2xvYmFsYQ1iBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800754A8:E4A:g3AAAABIAr9fDarOZVmFQtYEsqv4Sd0AAAATAAAAAHcGZ2xvYmFsYRNiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800754D0:E4A:g3AAAABIAb9fDarOZVmFQtYEsqv4Sd0AAAAXAAAAAHcGZ2xvYmFsYRdiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800754F8:E4A:g3AAAABIAb9fDarOZVmFQtYEsqv4Sd0AAAAZAAAAAHcGZ2xvYmFsYRliBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280075520:E4A:g3AAAABIAr9fDarOZVmFQtYEsqv4Sd0AAAAbAAAAAHcGZ2xvYmFsYRtiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280075548:E4A:g3AAAABIAr9fDarOZVmFQtYEsqv4Sd0AAAAcAAAAAHcGZ2xvYmFsYRxiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280075570:E4A:g3AAAABIAr9fDarOZVmFQtYEsqv4Sd0AAAAdAAAAAHcGZ2xvYmFsYR1iBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280075598:E4A:g3AAAABIAb9fDarOZVmFQtYEsqv4Sd0AAAAgAAAAAHcGZ2xvYmFsYSBiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800755C0:E4A:g3AAAABIAb9fDarOZVmFQtYEsqv4Sd0AAAAhAAAAAHcGZ2xvYmFsYSFiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800755E8:E4A:g3AAAABIAL9fDarOZVmFQtYEsqv4Sd0AAAAiAAAAAHcGZ2xvYmFsYSJiBfr4bVh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280078CF0:F1A:1.11022302462515654042e-16 -280078D00:F1A:5.55111512312578270212e-17 -280078D10:F1A:2.77555756156289135106e-17 -280078D20:F1A:1.38777878078144567553e-17 -280078D30:F1A:2.00000000000000000000e+00 -280078D40:Yh0: -280078D50:t100:H280079558,H280079580,H2800795A8,H2800795D0,H2800795F8,H280079620,H280079648,H280079670,H280079698,H2800796C0,H2800796E8,H280079710,H280079738,H280079760,H280079788,H2800797B0,H2800797D8,H280079800,H280079828,H280079850,H280079878,H2800798A0,H2800798C8,H2800798F0,H280079918,H280079940,H280079968,H280079990,H2800799B8,H2800799E0,H280079A08,H280079A30,H280079A58,H280079A80,H280079AA8,H280079AD0,H280079AF8,H280079B20,H280079B48,H280079B70,H280079B98,H280079BC0,H280079BE8,H280079C10,H280079C38,H280079C60,H280079C88,H280079CB0,H280079CD8,H280079D00,H280079D28,H280079D50,H280079D78,H280079DA0,H280079DC8,H280079DF0,H280079E18,H280079E40,H280079E68,H280079E90,H280079EB8,H280079EE0,H280079F08,H280079F30,H280079F58,H280079F80,H280079FA8,H280079FD0,H280079FF8,H28007A020,H28007A048,H28007A070,H28007A098,H28007A0C0,H28007A0E8,H28007A110,H28007A138,H28007A160,H28007A188,H28007A1B0,H28007A1D8,H28007A200,H28007A228,H28007A250,H28007A278,H28007A2A0,H28007A2C8,H28007A2F0,H28007A318,H28007A340,H28007A368,H28007A390,H28007A3B8,H28007A3E0,H28007A408,H28007A430,H28007A458,H28007A480,H28007A4A8,H28007A4D0,H28007A4F8,H28007A520,H28007A548,H28007A570,H28007A598,H28007A5C0,H28007A5E8,H28007A610,H28007A638,H28007A660,H28007A688,H28007A6B0,H28007A6D8,H28007A700,H28007A728,H28007A750,H28007A778,H28007A7A0,H28007A7C8,H28007A7F0,H28007A818,H28007A840,H28007A868,H28007A890,H28007A8B8,H28007A8E0,H28007A908,H28007A930,H28007A958,H28007A980,H28007A9A8,H28007A9D0,H28007A9F8,H28007AA20,H28007AA48,H28007AA70,H28007AA98,H28007AAC0,H28007AAE8,H28007AB10,H28007AB38,H28007AB60,H28007AB88,H28007ABB0,H28007ABD8,H28007AC00,H28007AC28,H28007AC50,H28007AC78,H28007ACA0,H28007ACC8,H28007ACF0,H28007AD18,H28007AD40,H28007AD68,H28007AD90,H28007ADB8,H28007ADE0,H28007AE08,H28007AE30,H28007AE58,H28007AE80,H28007AEA8,H28007AED0,H28007AEF8,H28007AF20,H28007AF48,H28007AF70,H28007AF98,H28007AFC0,H28007AFE8,H28007B010,H28007B038,H28007B060,H28007B088,H28007B0B0,H28007B0D8,H28007B100,H28007B128,H28007B150,H28007B178,H28007B1A0,H28007B1C8,H28007B1F0,H28007B218,H28007B240,H28007B268,H28007B290,H28007B2B8,H28007B2E0,H28007B308,H28007B330,H28007B358,H28007B380,H28007B3A8,H28007B3D0,H28007B3F8,H28007B420,H28007B448,H28007B470,H28007B498,H28007B4C0,H28007B4E8,H28007B510,H28007B538,H28007B560,H28007B588,H28007B5B0,H28007B5D8,H28007B600,H28007B628,H28007B650,H28007B678,H28007B6A0,H28007B6C8,H28007B6F0,H28007B718,H28007B740,H28007B768,H28007B790,H28007B7B8,H28007B7E0,H28007B808,H28007B830,H28007B858,H28007B880,H28007B8A8,H28007B8D0,H28007B8F8,H28007B920,H28007B948,H28007B970,H28007B998,H28007B9C0,H28007B9E8,H28007BA10,H28007BA38,H28007BA60,H28007BA88,H28007BAB0,H28007BAD8,H28007BB00,H28007BB28,H28007BB50,H28007BB78,H28007BBA0,H28007BBC8,H28007BBF0,H28007BC18,H28007BC40,H28007BC68,H28007BC90,H28007BCB8,H28007BCE0,H28007BD08,H28007BD30 -280079558:t2:I2104047571236786,H280079570 -280079570:F1A:1.73672541216026300829e-15 -280079580:t2:I0,H280079598 -280079598:F1A:9.55866035145563388593e-17 -2800795A8:t2:I1693657211986787,H2800795C0 -2800795C0:F1A:1.27087048348106232125e-16 -2800795D0:t2:I1919380038271141,H2800795E8 -2800795E8:F1A:1.49097409624954739056e-16 -2800795F8:t2:I2015384402196343,H280079610 -280079610:F1A:1.66587336315862684825e-16 -280079620:t2:I2068365869448128,H280079638 -280079638:F1A:1.81361208101190286598e-16 -280079648:t2:I2101878624052573,H280079660 -280079660:F1A:1.94297201531355877741e-16 -280079670:t2:I2124958784102998,H280079688 -280079688:F1A:2.05895006284820926559e-16 -280079698:t2:I2141808670795147,H2800796B0 -2800796B0:F1A:2.16468605768954222017e-16 -2800796C0:t2:I2154644611568301,H2800796D8 -2800796D8:F1A:2.26229403922181158232e-16 -2800796E8:t2:I2164744887587275,H280079700 -280079700:F1A:2.35327189140458915861e-16 -280079710:t2:I2172897953696594,H280079728 -280079728:F1A:2.43872345574287710295e-16 -280079738:t2:I2179616279372365,H280079750 -280079750:F1A:2.51948798292742250158e-16 -280079760:t2:I2185247251868649,H280079778 -280079778:F1A:2.59621997725281025263e-16 -280079788:t2:I2190034623107822,H2800797A0 -2800797A0:F1A:2.66944074736482849525e-16 -2800797B0:t2:I2194154434521197,H2800797C8 -2800797C8:F1A:2.73957296851424460024e-16 -2800797D8:t2:I2197736978774660,H2800797F0 -2800797F0:F1A:2.80696460024848035749e-16 -280079800:t2:I2200880740891961,H280079818 -280079818:F1A:2.87190589041139304275e-16 -280079828:t2:I2203661538010620,H280079840 -280079840:F1A:2.93464174847288832596e-16 -280079850:t2:I2206138681109102,H280079868 -280079868:F1A:2.99538093367821129281e-16 -280079878:t2:I2208359231806599,H280079890 -280079890:F1A:3.05430300071924403235e-16 -2800798A0:t2:I2210361007258210,H2800798B8 -2800798B8:F1A:3.11156363389215722701e-16 -2800798C8:t2:I2212174742388539,H2800798E0 -2800798E0:F1A:3.16729880185818151712e-16 -2800798F0:t2:I2213825672704646,H280079908 -280079908:F1A:3.22162803505499051688e-16 -280079918:t2:I2215334711002614,H280079930 -280079930:F1A:3.27465704079397507757e-16 -280079940:t2:I2216719334487595,H280079958 -280079958:F1A:3.32647981168417099987e-16 -280079968:t2:I2217994262139172,H280079980 -280079980:F1A:3.37718034173532322460e-16 -280079990:t2:I2219171977965032,H2800799A8 -2800799A8:F1A:3.42683403531193559494e-16 -2800799B8:t2:I2220263139538712,H2800799D0 -2800799D0:F1A:3.47550887317297581051e-16 -2800799E0:t2:I2221276900117330,H2800799F8 -2800799F8:F1A:3.52326638460020314094e-16 -280079A08:t2:I2222221164932930,H280079A20 -280079A20:F1A:3.57016246339534940285e-16 -280079A30:t2:I2223102796829069,H280079A48 -280079A48:F1A:3.61624805715983390475e-16 -280079A58:t2:I2223927782546658,H280079A70 -280079A70:F1A:3.66156975296535397983e-16 -280079A80:t2:I2224701368170060,H280079A98 -280079A98:F1A:3.70617027772360773203e-16 -280079AA8:t2:I2225428170204312,H280079AC0 -280079AC0:F1A:3.75008892787477978824e-16 -280079AD0:t2:I2226112267248242,H280079AE8 -280079AE8:F1A:3.79336194015495537551e-16 -280079AF8:t2:I2226757276105256,H280079B10 -280079B10:F1A:3.83602281296772790489e-16 -280079B20:t2:I2227366415328399,H280079B38 -280079B38:F1A:3.87810258612502468569e-16 -280079B48:t2:I2227942558554684,H280079B60 -280079B60:F1A:3.91963008532576783898e-16 -280079B70:t2:I2228488279492521,H280079B88 -280079B88:F1A:3.96063213662563775295e-16 -280079B98:t2:I2229005890047222,H280079BB0 -280079BB0:F1A:4.00113375525466896220e-16 -280079BC0:t2:I2229497472775193,H280079BD8 -280079BD8:F1A:4.04115831241433324136e-16 -280079BE8:t2:I2229964908627060,H280079C00 -280079C00:F1A:4.08072768309604483145e-16 -280079C10:t2:I2230409900758597,H280079C28 -280079C28:F1A:4.11986237748074422111e-16 -280079C38:t2:I2230833995044585,H280079C50 -280079C50:F1A:4.15858165808280641140e-16 -280079C60:t2:I2231238597816133,H280079C78 -280079C78:F1A:4.19690364447407329203e-16 -280079C88:t2:I2231624991250191,H280079CA0 -280079CA0:F1A:4.23484540715207084057e-16 -280079CB0:t2:I2231994346765928,H280079CC8 -280079CC8:F1A:4.27242305188997608562e-16 -280079CD8:t2:I2232347736722750,H280079CF0 -280079CF0:F1A:4.30965179571629408372e-16 -280079D00:t2:I2232686144665934,H280079D18 -280079D18:F1A:4.34654603551287596498e-16 -280079D28:t2:I2233010474325959,H280079D40 -280079D40:F1A:4.38311941008545712860e-16 -280079D50:t2:I2233321557544881,H280079D68 -280079D68:F1A:4.41938485644706647812e-16 -280079D78:t2:I2233620161276071,H280079D90 -280079D90:F1A:4.45535466095791365718e-16 -280079DA0:t2:I2233906993781271,H280079DB8 -280079DB8:F1A:4.49104050588287499193e-16 -280079DC8:t2:I2234182710130335,H280079DE0 -280079DE0:F1A:4.52645351185713967562e-16 -280079DF0:t2:I2234447917093496,H280079E08 -280079E08:F1A:4.56160427669003807995e-16 -280079E18:t2:I2234703177503020,H280079E30 -280079E30:F1A:4.59650291088494072552e-16 -280079E40:t2:I2234949014150181,H280079E58 -280079E58:F1A:4.63115907020816468447e-16 -280079E68:t2:I2235185913274316,H280079E80 -280079E80:F1A:4.66558198560087516686e-16 -280079E90:t2:I2235414327692884,H280079EA8 -280079EA8:F1A:4.69978049069419496306e-16 -280079EB8:t2:I2235634679614920,H280079ED0 -280079ED0:F1A:4.73376304715832370759e-16 -280079EE0:t2:I2235847363174595,H280079EF8 -280079EF8:F1A:4.76753776809085264392e-16 -280079F08:t2:I2236052746716837,H280079F20 -280079F20:F1A:4.80111243962701550521e-16 -280079F30:t2:I2236251174862869,H280079F48 -280079F48:F1A:4.83449454093500800172e-16 -280079F58:t2:I2236442970379967,H280079F70 -280079F70:F1A:4.86769126274220868624e-16 -280079F80:t2:I2236628435876762,H280079F98 -280079F98:F1A:4.90070952452299375578e-16 -280079FA8:t2:I2236807855342765,H280079FC0 -280079FC0:F1A:4.93355599046541390746e-16 -280079FD0:t2:I2236981495548562,H280079FE8 -280079FE8:F1A:4.96623708432217831361e-16 -280079FF8:t2:I2237149607321147,H28007A010 -28007A010:F1A:4.99875900324090879179e-16 -28007A020:t2:I2237312426707209,H28007A038 -28007A038:F1A:5.03112773065931868701e-16 -28007A048:t2:I2237470176035652,H28007A060 -28007A060:F1A:5.06334904834271949789e-16 -28007A070:t2:I2237623064889403,H28007A088 -28007A088:F1A:5.09542854763389229036e-16 -28007A098:t2:I2237771290995388,H28007A0B0 -28007A0B0:F1A:5.12737163997879663320e-16 -28007A0C0:t2:I2237915041040597,H28007A0D8 -28007A0D8:F1A:5.15918356678573644216e-16 -28007A0E8:t2:I2238054491421305,H28007A100 -28007A100:F1A:5.19086940867034337507e-16 -28007A110:t2:I2238189808931712,H28007A128 -28007A128:F1A:5.22243409413404174016e-16 -28007A138:t2:I2238321151397660,H28007A150 -28007A150:F1A:5.25388240771945425068e-16 -28007A160:t2:I2238448668260432,H28007A178 -28007A178:F1A:5.28521899768238198395e-16 -28007A188:t2:I2238572501115169,H28007A1A0 -28007A1A0:F1A:5.31644838321661755014e-16 -28007A1B0:t2:I2238692784207942,H28007A1C8 -28007A1C8:F1A:5.34757496126472954545e-16 -28007A1D8:t2:I2238809644895133,H28007A1F0 -28007A1F0:F1A:5.37860301294523479377e-16 -28007A200:t2:I2238923204068402,H28007A218 -28007A218:F1A:5.40953670962399333412e-16 -28007A228:t2:I2239033576548190,H28007A240 -28007A240:F1A:5.44038011865546709133e-16 -28007A250:t2:I2239140871448443,H28007A268 -28007A268:F1A:5.47113720881736113194e-16 -28007A278:t2:I2239245192514958,H28007A290 -28007A290:F1A:5.50181185546033624966e-16 -28007A2A0:t2:I2239346638439541,H28007A2B8 -28007A2B8:F1A:5.53240784539278360189e-16 -28007A2C8:t2:I2239445303151952,H28007A2E0 -28007A2E0:F1A:5.56292888151909017422e-16 -28007A2F0:t2:I2239541276091442,H28007A308 -28007A308:F1A:5.59337858724846207834e-16 -28007A318:t2:I2239634642459498,H28007A330 -28007A330:F1A:5.62376051069004345873e-16 -28007A340:t2:I2239725483455293,H28007A358 -28007A358:F1A:5.65407812864896043333e-16 -28007A368:t2:I2239813876495186,H28007A380 -28007A380:F1A:5.68433485043681410254e-16 -28007A390:t2:I2239899895417494,H28007A3A8 -28007A3A8:F1A:5.71453402150920397185e-16 -28007A3B8:t2:I2239983610673676,H28007A3D0 -28007A3D0:F1A:5.74467892694196087369e-16 -28007A3E0:t2:I2240065089506935,H28007A3F8 -28007A3F8:F1A:5.77477279475696482238e-16 -28007A408:t2:I2240144396119183,H28007A420 -28007A420:F1A:5.80481879910768565067e-16 -28007A430:t2:I2240221591827230,H28007A448 -28007A448:F1A:5.83482006333389205125e-16 -28007A458:t2:I2240296735208969,H28007A470 -28007A470:F1A:5.86477966289436525146e-16 -28007A480:t2:I2240369882240293,H28007A498 -28007A498:F1A:5.89470062818587176437e-16 -28007A4A8:t2:I2240441086423386,H28007A4C0 -28007A4C0:F1A:5.92458594725613394191e-16 -28007A4D0:t2:I2240510398907004,H28007A4E8 -28007A4E8:F1A:5.95443856841805979446e-16 -28007A4F8:t2:I2240577868599305,H28007A510 -28007A510:F1A:5.98426140277202811378e-16 -28007A520:t2:I2240643542273726,H28007A538 -28007A538:F1A:6.01405732664266403201e-16 -28007A548:t2:I2240707464668391,H28007A560 -28007A560:F1A:6.04382918393612501158e-16 -28007A570:t2:I2240769678579486,H28007A588 -28007A588:F1A:6.07357978842360566070e-16 -28007A598:t2:I2240830224948980,H28007A5B0 -28007A5B0:F1A:6.10331192595643943370e-16 -28007A5C0:t2:I2240889142947082,H28007A5D8 -28007A5D8:F1A:6.13302835661791100703e-16 -28007A5E8:t2:I2240946470049769,H28007A600 -28007A600:F1A:6.16273181681659631279e-16 -28007A610:t2:I2241002242111691,H28007A628 -28007A628:F1A:6.19242502132584703827e-16 -28007A638:t2:I2241056493434746,H28007A650 -28007A650:F1A:6.22211066527378790876e-16 -28007A660:t2:I2241109256832602,H28007A678 -28007A678:F1A:6.25179142608799982782e-16 -28007A688:t2:I2241160563691400,H28007A6A0 -28007A6A0:F1A:6.28146996539889530228e-16 -28007A6B0:t2:I2241210444026879,H28007A6C8 -28007A6C8:F1A:6.31114893090560423885e-16 -28007A6D8:t2:I2241258926538122,H28007A6F0 -28007A6F0:F1A:6.34083095820806000914e-16 -28007A700:t2:I2241306038658137,H28007A718 -28007A718:F1A:6.37051867260881494958e-16 -28007A728:t2:I2241351806601435,H28007A740 -28007A740:F1A:6.40021469088802472988e-16 -28007A750:t2:I2241396255408788,H28007A768 -28007A768:F1A:6.42992162305489607018e-16 -28007A778:t2:I2241439408989313,H28007A790 -28007A790:F1A:6.45964207407883213683e-16 -28007A7A0:t2:I2241481290160038,H28007A7B8 -28007A7B8:F1A:6.48937864560339654762e-16 -28007A7C8:t2:I2241521920683062,H28007A7E0 -28007A7E0:F1A:6.51913393764615873896e-16 -28007A7F0:t2:I2241561321300462,H28007A808 -28007A808:F1A:6.54891055028741540820e-16 -28007A818:t2:I2241599511767028,H28007A830 -28007A830:F1A:6.57871108535074132917e-16 -28007A840:t2:I2241636510880960,H28007A858 -28007A858:F1A:6.60853814807825874393e-16 -28007A868:t2:I2241672336512612,H28007A880 -28007A880:F1A:6.63839434880350565911e-16 -28007A890:t2:I2241707005631362,H28007A8A8 -28007A8A8:F1A:6.66828230462474590443e-16 -28007A8B8:t2:I2241740534330713,H28007A8D0 -28007A8D0:F1A:6.69820464108155789432e-16 -28007A8E0:t2:I2241772937851689,H28007A8F8 -28007A8F8:F1A:6.72816399383753114503e-16 -28007A908:t2:I2241804230604585,H28007A920 -28007A920:F1A:6.75816301037190058595e-16 -28007A930:t2:I2241834426189161,H28007A948 -28007A948:F1A:6.78820435168298025779e-16 -28007A958:t2:I2241863537413311,H28007A970 -28007A970:F1A:6.81829069400625404640e-16 -28007A980:t2:I2241891576310281,H28007A998 -28007A998:F1A:6.84842473055003829332e-16 -28007A9A8:t2:I2241918554154466,H28007A9C0 -28007A9C0:F1A:6.87860917325166366447e-16 -28007A9D0:t2:I2241944481475843,H28007A9E8 -28007A9E8:F1A:6.90884675455716901816e-16 -28007A9F8:t2:I2241969368073071,H28007AA10 -28007AA10:F1A:6.93914022922756903880e-16 -28007AA20:t2:I2241993223025298,H28007AA38 -28007AA38:F1A:6.96949237617482938615e-16 -28007AA48:t2:I2242016054702685,H28007AA60 -28007AA60:F1A:6.99990600033076396841e-16 -28007AA70:t2:I2242037870775710,H28007AA88 -28007AA88:F1A:7.03038393455215079165e-16 -28007AA98:t2:I2242058678223225,H28007AAB0 -28007AAB0:F1A:7.06092904156548215323e-16 -28007AAC0:t2:I2242078483339331,H28007AAD8 -28007AAD8:F1A:7.09154421595487341536e-16 -28007AAE8:t2:I2242097291739040,H28007AB00 -28007AB00:F1A:7.12223238619677884046e-16 -28007AB10:t2:I2242115108362774,H28007AB28 -28007AB28:F1A:7.15299651674530299286e-16 -28007AB38:t2:I2242131937479672,H28007AB50 -28007AB50:F1A:7.18383961017206285811e-16 -28007AB60:t2:I2242147782689725,H28007AB78 -28007AB78:F1A:7.21476470936470670108e-16 -28007AB88:t2:I2242162646924736,H28007ABA0 -28007ABA0:F1A:7.24577489978838698238e-16 -28007ABB0:t2:I2242176532448092,H28007ABC8 -28007ABC8:F1A:7.27687331181469271523e-16 -28007ABD8:t2:I2242189440853337,H28007ABF0 -28007ABF0:F1A:7.30806312312274287356e-16 -28007AC00:t2:I2242201373061537,H28007AC18 -28007AC18:F1A:7.33934756117740475864e-16 -28007AC28:t2:I2242212329317416,H28007AC40 -28007AC40:F1A:7.37072990578983098735e-16 -28007AC50:t2:I2242222309184237,H28007AC68 -28007AC68:F1A:7.40221349176579965727e-16 -28007AC78:t2:I2242231311537397,H28007AC90 -28007AC90:F1A:7.43380171164764792799e-16 -28007ACA0:t2:I2242239334556717,H28007ACB8 -28007ACB8:F1A:7.46549801855588902443e-16 -28007ACC8:t2:I2242246375717369,H28007ACE0 -28007ACE0:F1A:7.49730592913697934980e-16 -28007ACF0:t2:I2242252431779415,H28007AD08 -28007AD08:F1A:7.52922902662405836870e-16 -28007AD18:t2:I2242257498775893,H28007AD30 -28007AD30:F1A:7.56127096401792173910e-16 -28007AD40:t2:I2242261571999416,H28007AD58 -28007AD58:F1A:7.59343546739588950455e-16 -28007AD68:t2:I2242264645987196,H28007AD80 -28007AD80:F1A:7.62572633935675575083e-16 -28007AD90:t2:I2242266714504453,H28007ADA8 -28007ADA8:F1A:7.65814746261048733621e-16 -28007ADB8:t2:I2242267770526109,H28007ADD0 -28007ADD0:F1A:7.69070280372191911716e-16 -28007ADE0:t2:I2242267806216711,H28007ADF8 -28007ADF8:F1A:7.72339641701829854238e-16 -28007AE08:t2:I2242266812908462,H28007AE20 -28007AE20:F1A:7.75623244867117442328e-16 -28007AE30:t2:I2242264781077289,H28007AE48 -28007AE48:F1A:7.78921514096385241347e-16 -28007AE58:t2:I2242261700316818,H28007AE70 -28007AE70:F1A:7.82234883675641084120e-16 -28007AE80:t2:I2242257559310145,H28007AE98 -28007AE98:F1A:7.85563798416108405147e-16 -28007AEA8:t2:I2242252345799276,H28007AEC0 -28007AEC0:F1A:7.88908714144175521500e-16 -28007AED0:t2:I2242246046552082,H28007AEE8 -28007AEE8:F1A:7.92270098215227085966e-16 -28007AEF8:t2:I2242238647326615,H28007AF10 -28007AF10:F1A:7.95648430052936617556e-16 -28007AF20:t2:I2242230132832625,H28007AF38 -28007AF38:F1A:7.99044201715713004887e-16 -28007AF48:t2:I2242220486690076,H28007AF60 -28007AF60:F1A:8.02457918492125913510e-16 -28007AF70:t2:I2242209691384458,H28007AF88 -28007AF88:F1A:8.05890099527265683393e-16 -28007AF98:t2:I2242197728218684,H28007AFB0 -28007AFB0:F1A:8.09341278482150088838e-16 -28007AFC0:t2:I2242184577261310,H28007AFD8 -28007AFD8:F1A:8.12812004228450077447e-16 -28007AFE8:t2:I2242170217290819,H28007B000 -28007B000:F1A:8.16302841580987746960e-16 -28007B010:t2:I2242154625735679,H28007B028 -28007B028:F1A:8.19814372070653286895e-16 -28007B038:t2:I2242137778609839,H28007B050 -28007B050:F1A:8.23347194760605041733e-16 -28007B060:t2:I2242119650443327,H28007B078 -28007B078:F1A:8.26901927108847002541e-16 -28007B088:t2:I2242100214207556,H28007B0A0 -28007B0A0:F1A:8.30479205880537371959e-16 -28007B0B0:t2:I2242079441234906,H28007B0C8 -28007B0C8:F1A:8.34079688113662879173e-16 -28007B0D8:t2:I2242057301132135,H28007B0F0 -28007B0F0:F1A:8.37704052142022163322e-16 -28007B100:t2:I2242033761687079,H28007B118 -28007B118:F1A:8.41352998679802824740e-16 -28007B128:t2:I2242008788768107,H28007B140 -28007B140:F1A:8.45027251972409677425e-16 -28007B150:t2:I2241982346215682,H28007B168 -28007B168:F1A:8.48727561018615493666e-16 -28007B178:t2:I2241954395725356,H28007B190 -28007B190:F1A:8.52454700869559619833e-16 -28007B1A0:t2:I2241924896721443,H28007B1B8 -28007B1B8:F1A:8.56209474010623332794e-16 -28007B1C8:t2:I2241893806220517,H28007B1E0 -28007B1E0:F1A:8.59992711832766460322e-16 -28007B1F0:t2:I2241861078683830,H28007B208 -28007B208:F1A:8.63805276200525889234e-16 -28007B218:t2:I2241826665857598,H28007B230 -28007B230:F1A:8.67648061124558160821e-16 -28007B240:t2:I2241790516600041,H28007B258 -28007B258:F1A:8.71521994547369801105e-16 -28007B268:t2:I2241752576693881,H28007B280 -28007B280:F1A:8.75428040251717494016e-16 -28007B290:t2:I2241712788642916,H28007B2A8 -28007B2A8:F1A:8.79367199902104274846e-16 -28007B2B8:t2:I2241671091451078,H28007B2D0 -28007B2D0:F1A:8.83340515230840795477e-16 -28007B2E0:t2:I2241627420382235,H28007B2F8 -28007B2F8:F1A:8.87349070381313453209e-16 -28007B308:t2:I2241581706698773,H28007B320 -28007B320:F1A:8.91393994422408613348e-16 -28007B330:t2:I2241533877376767,H28007B348 -28007B348:F1A:8.95476464049506774624e-16 -28007B358:t2:I2241483854795281,H28007B370 -28007B370:F1A:8.99597706489109936019e-16 -28007B380:t2:I2241431556397035,H28007B398 -28007B398:F1A:9.03759002626011752555e-16 -28007B3A8:t2:I2241376894317345,H28007B3C0 -28007B3C0:F1A:9.07961690374006801893e-16 -28007B3D0:t2:I2241319774977817,H28007B3E8 -28007B3E8:F1A:9.12207168313484609982e-16 -28007B3F8:t2:I2241260098640860,H28007B410 -28007B410:F1A:9.16496899621913531320e-16 -28007B420:t2:I2241197758920538,H28007B438 -28007B438:F1A:9.20832416326230760072e-16 -28007B448:t2:I2241132642244704,H28007B460 -28007B460:F1A:9.25215323909569332723e-16 -28007B470:t2:I2241064627262652,H28007B488 -28007B488:F1A:9.29647306308641672775e-16 -28007B498:t2:I2240993584191742,H28007B4B0 -28007B4B0:F1A:9.34130131342526512592e-16 -28007B4C0:t2:I2240919374095536,H28007B4D8 -28007B4D8:F1A:9.38665656618665978610e-16 -28007B4E8:t2:I2240841848084890,H28007B500 -28007B500:F1A:9.43255835967670653963e-16 -28007B510:t2:I2240760846432232,H28007B528 -28007B528:F1A:9.47902726465173824760e-16 -28007B538:t2:I2240676197587784,H28007B550 -28007B550:F1A:9.52608496106627869756e-16 -28007B560:t2:I2240587717084782,H28007B578 -28007B578:F1A:9.57375432209744962925e-16 -28007B588:t2:I2240495206318753,H28007B5A0 -28007B5A0:F1A:9.62205950629483835507e-16 -28007B5B0:t2:I2240398451183567,H28007B5C8 -28007B5C8:F1A:9.67102605882305424755e-16 -28007B5D8:t2:I2240297220544165,H28007B5F0 -28007B5F0:F1A:9.72068102290162588019e-16 -28007B600:t2:I2240191264522612,H28007B618 -28007B618:F1A:9.77105306270720883776e-16 -28007B628:t2:I2240080312570155,H28007B640 -28007B640:F1A:9.82217259919054108939e-16 -28007B650:t2:I2239964071293331,H28007B668 -28007B668:F1A:9.87407196048067106672e-16 -28007B678:t2:I2239842221996530,H28007B690 -28007B690:F1A:9.92678554880797648454e-16 -28007B6A0:t2:I2239714417896699,H28007B6B8 -28007B6B8:F1A:9.98035002618364491509e-16 -28007B6C8:t2:I2239580280957725,H28007B6E0 -28007B6E0:F1A:1.00348045214361808924e-15 -28007B6F0:t2:I2239439398282193,H28007B708 -28007B708:F1A:1.00901908616374569449e-15 -28007B718:t2:I2239291317986196,H28007B730 -28007B730:F1A:1.01465538314670861133e-15 -28007B740:t2:I2239135544468203,H28007B758 -28007B758:F1A:1.02039414646831236830e-15 -28007B768:t2:I2238971532964979,H28007B780 -28007B780:F1A:1.02624053726135674640e-15 -28007B790:t2:I2238798683265269,H28007B7A8 -28007B7A8:F1A:1.03220011154864564914e-15 -28007B7B8:t2:I2238616332424351,H28007B7D0 -28007B7D0:F1A:1.03827886235153991696e-15 -28007B7E0:t2:I2238423746288095,H28007B7F8 -28007B7F8:F1A:1.04448326760004705473e-15 -28007B808:t2:I2238220109591890,H28007B820 -28007B820:F1A:1.05082034483551946539e-15 -28007B830:t2:I2238004514345216,H28007B848 -28007B848:F1A:1.05729771390098902296e-15 -28007B858:t2:I2237775946143212,H28007B870 -28007B870:F1A:1.06392366906768007507e-15 -28007B880:t2:I2237533267957822,H28007B898 -28007B898:F1A:1.07070726236329937629e-15 -28007B8A8:t2:I2237275200846753,H28007B8C0 -28007B8C0:F1A:1.07765840026681064032e-15 -28007B8D0:t2:I2237000300869952,H28007B8E8 -28007B8E8:F1A:1.08478795644034246815e-15 -28007B8F8:t2:I2236706931309099,H28007B910 -28007B910:F1A:1.09210790381495627955e-15 -28007B920:t2:I2236393229029147,H28007B938 -28007B938:F1A:1.09963147017856282141e-15 -28007B948:t2:I2236057063479501,H28007B960 -28007B960:F1A:1.10737332249357520075e-15 -28007B970:t2:I2235695986373246,H28007B988 -28007B988:F1A:1.11534978658531549289e-15 -28007B998:t2:I2235307169458859,H28007B9B0 -28007B9B0:F1A:1.12357911071108333166e-15 -28007B9C0:t2:I2234887326941578,H28007B9D8 -28007B9D8:F1A:1.13208178401648463069e-15 -28007B9E8:t2:I2234432617919447,H28007BA00 -28007BA00:F1A:1.14088092425827801405e-15 -28007BA10:t2:I2233938522519765,H28007BA28 -28007BA28:F1A:1.15000275378397924458e-15 -28007BA38:t2:I2233399683022677,H28007BA50 -28007BA50:F1A:1.15947718914491892724e-15 -28007BA60:t2:I2232809697779198,H28007BA78 -28007BA78:F1A:1.16933857869109599762e-15 -28007BA88:t2:I2232160850599817,H28007BAA0 -28007BAA0:F1A:1.17962663529558008258e-15 -28007BAB0:t2:I2231443750584641,H28007BAC8 -28007BAC8:F1A:1.19038762992828902828e-15 -28007BAD8:t2:I2230646845562170,H28007BAF0 -28007BAF0:F1A:1.20167593925438186168e-15 -28007BB00:t2:I2229755753817986,H28007BB18 -28007BB18:F1A:1.21355608186668970279e-15 -28007BB28:t2:I2228752329126533,H28007BB40 -28007BB40:F1A:1.22610544174505612103e-15 -28007BB50:t2:I2227613325162504,H28007BB68 -28007BB68:F1A:1.23941797891632511077e-15 -28007BB78:t2:I2226308442121174,H28007BB90 -28007BB90:F1A:1.25360939266025668161e-15 -28007BBA0:t2:I2224797391720399,H28007BBB8 -28007BBB8:F1A:1.26882448142550100004e-15 -28007BBC8:t2:I2223025347823832,H28007BBE0 -28007BBE0:F1A:1.28524793190961088468e-15 -28007BBF0:t2:I2220915633329809,H28007BC08 -28007BC08:F1A:1.30312066346899851655e-15 -28007BC18:t2:I2218357446087030,H28007BC30 -28007BC30:F1A:1.32276557701953263307e-15 -28007BC40:t2:I2215184158448668,H28007BC58 -28007BC58:F1A:1.34463009250111712861e-15 -28007BC68:t2:I2211132412537369,H28007BC80 -28007BC80:F1A:1.36936068351285175171e-15 -28007BC90:t2:I2205758503851065,H28007BCA8 -28007BCA8:F1A:1.39794366727752399083e-15 -28007BCB8:t2:I2198248265654987,H28007BCD0 -28007BCD0:F1A:1.43199898696613284312e-15 -28007BCE0:t2:I2186916352102141,H28007BCF8 -28007BCF8:F1A:1.47448486035975958423e-15 -28007BD08:t2:I2167562552481814,H28007BD20 -28007BD20:F1A:1.53178727416111435375e-15 -28007BD30:t2:I2125549880839716,H28007BD48 -28007BD48:F1A:1.62276986753129683713e-15 -28007BD58:Mf0:H280010188: -28007BD70:lI0|I0 -28007BD80:lI0|H28007BD90 -28007BD90:lI0|H28007BDA0 -28007BDA0:lI0|H28007BDB0 -28007BDB0:lI0|H28007BDC0 -28007BDC0:lI0|H28007BDD0 -28007BDD0:lI0|H28007BDE0 -28007BDE0:lI0|H28007BDF0 -28007BDF0:lI0|H28007BE00 -28007BE00:lI0|H28007BE10 -28007BE10:lI0|H28007BE20 -28007BE20:lI0|H28007BE30 -28007BE30:lI0|H28007BE40 -28007BE40:lI0|H28007BE50 -28007BE50:lI0|H28007BE60 -28007BE60:lI0|H28007BE70 -28007BE70:lI0|N -28007BE80:lI114527183042123105|H28007BE90 -28007BE90:lI160423628620659260|H28007BEA0 -28007BEA0:lI284733707589872850|H28007BEB0 -28007BEB0:lI164435740288387503|H28007BEC0 -28007BEC0:lI259572741793888962|H28007BED0 -28007BED0:lI215793509705812255|H28007BEE0 -28007BEE0:lI228241955430903492|H28007BEF0 -28007BEF0:lI221708554683218499|H28007BF00 -28007BF00:lI212006596549813798|H28007BF10 -28007BF10:lI139215019150089363|H28007BF20 -28007BF20:lI23964000621384961|H28007BF30 -28007BF30:lI55201052708218217|H28007BF40 -28007BF40:lI112969240468397636|H28007BF50 -28007BF50:lI22130735059088892|H28007BF60 -28007BF60:lI244278597799509466|H28007BF70 -28007BF70:lI220175845070832114|H28007BF80 -28007BF80:lI43243288828|N -28007BF90:lI290573448171827402|H28007BFA0 -28007BFA0:lI382251779910418577|H28007BFB0 -28007BFB0:lI423857156240780192|H28007BFC0 -28007BFC0:lI317638803078791815|H28007BFD0 -28007BFD0:lI312577798172065765|H28007BFE0 -28007BFE0:lI305801842905235492|H28007BFF0 -28007BFF0:lI450887821400921554|H28007C000 -28007C000:lI490154825290594607|H28007C010 -28007C010:lI507224882549817556|H28007C020 -28007C020:lI305131922350994371|H28007C030 -28007C030:lI524004876356613068|H28007C040 -28007C040:lI399286492428034246|H28007C050 -28007C050:lI556129459533271918|H28007C060 -28007C060:lI302163523288674092|H28007C070 -28007C070:lI295571835370094372|H28007C080 -28007C080:lI487547435355635071|N -28007C090:lI412473694820566502|H28007C0A0 -28007C0A0:lI432883605991317039|H28007C0B0 -28007C0B0:lI525373508288112196|H28007C0C0 -28007C0C0:lI403915169708599875|H28007C0D0 -28007C0D0:lI319067783491633768|H28007C0E0 -28007C0E0:lI301226760020322060|H28007C0F0 -28007C0F0:lI311627678308842608|H28007C100 -28007C100:lI376040681981803602|H28007C110 -28007C110:lI339701046172540810|H28007C120 -28007C120:lI406476937554306621|H28007C130 -28007C130:lI319178240279900411|H28007C140 -28007C140:lI538961455727032748|H28007C150 -28007C150:lI343829982822907227|H28007C160 -28007C160:lI562090186051299616|H28007C170 -28007C170:lI294421712295949406|H28007C180 -28007C180:lI517056752316592047|N -28007C190:lI171572743241724754|N -28007C1A0:F1A:5.00000000000000000000e-01 -28007C1B0:lH28007C1E0|H28007C1C0 -28007C1C0:lH28007C1F8|H28007C1D0 -28007C1D0:lA6:global|N -28007C1E0:t2:A7:newline,A3:any -28007C1F8:t3:A7:capture,AD:all_but_first,A6:binary -28007C218:lI48|H28007C228 -28007C228:lI120|H28007C238 -28007C238:lI40|H28007C248 -28007C248:lI91|H28007C258 -28007C258:lI97|H28007C268 -28007C268:lI45|H28007C278 -28007C278:lI122|H28007C288 -28007C288:lI65|H28007C298 -28007C298:lI45|H28007C2A8 -28007C2A8:lI90|H28007C2B8 -28007C2B8:lI48|H28007C2C8 -28007C2C8:lI45|H28007C2D8 -28007C2D8:lI57|H28007C2E8 -28007C2E8:lI93|H28007C2F8 -28007C2F8:lI43|H28007C308 -28007C308:lI41|N -28007C318:lI49|H28007C328 -28007C328:lI54|H28007C338 -28007C338:lI35|H28007C348 -28007C348:lI126|H28007C358 -28007C358:lI115|H28007C368 -28007C368:lI44|H28007C378 -28007C378:lI126|H28007C388 -28007C388:lI110|N -28007C398:F1B:-2.73661237329758277870e-01 -28007C3A8:F1A:3.65415288536100879568e+00 -28007C3B8:F1B:-3.65415288536100879568e+00 -28007C3C8:F1B:-5.00000000000000000000e-01 -28007C3D8:t100:H28007CBE0,H28007CBF0,H28007CC00,H28007CC10,H28007CC20,H28007CC30,H28007CC40,H28007CC50,H28007CC60,H28007CC70,H28007CC80,H28007CC90,H28007CCA0,H28007CCB0,H28007CCC0,H28007CCD0,H28007CCE0,H28007CCF0,H28007CD00,H28007CD10,H28007CD20,H28007CD30,H28007CD40,H28007CD50,H28007CD60,H28007CD70,H28007CD80,H28007CD90,H28007CDA0,H28007CDB0,H28007CDC0,H28007CDD0,H28007CDE0,H28007CDF0,H28007CE00,H28007CE10,H28007CE20,H28007CE30,H28007CE40,H28007CE50,H28007CE60,H28007CE70,H28007CE80,H28007CE90,H28007CEA0,H28007CEB0,H28007CEC0,H28007CED0,H28007CEE0,H28007CEF0,H28007CF00,H28007CF10,H28007CF20,H28007CF30,H28007CF40,H28007CF50,H28007CF60,H28007CF70,H28007CF80,H28007CF90,H28007CFA0,H28007CFB0,H28007CFC0,H28007CFD0,H28007CFE0,H28007CFF0,H28007D000,H28007D010,H28007D020,H28007D030,H28007D040,H28007D050,H28007D060,H28007D070,H28007D080,H28007D090,H28007D0A0,H28007D0B0,H28007D0C0,H28007D0D0,H28007D0E0,H28007D0F0,H28007D100,H28007D110,H28007D120,H28007D130,H28007D140,H28007D150,H28007D160,H28007D170,H28007D180,H28007D190,H28007D1A0,H28007D1B0,H28007D1C0,H28007D1D0,H28007D1E0,H28007D1F0,H28007D200,H28007D210,H28007D220,H28007D230,H28007D240,H28007D250,H28007D260,H28007D270,H28007D280,H28007D290,H28007D2A0,H28007D2B0,H28007D2C0,H28007D2D0,H28007D2E0,H28007D2F0,H28007D300,H28007D310,H28007D320,H28007D330,H28007D340,H28007D350,H28007D360,H28007D370,H28007D380,H28007D390,H28007D3A0,H28007D3B0,H28007D3C0,H28007D3D0,H28007D3E0,H28007D3F0,H28007D400,H28007D410,H28007D420,H28007D430,H28007D440,H28007D450,H28007D460,H28007D470,H28007D480,H28007D490,H28007D4A0,H28007D4B0,H28007D4C0,H28007D4D0,H28007D4E0,H28007D4F0,H28007D500,H28007D510,H28007D520,H28007D530,H28007D540,H28007D550,H28007D560,H28007D570,H28007D580,H28007D590,H28007D5A0,H28007D5B0,H28007D5C0,H28007D5D0,H28007D5E0,H28007D5F0,H28007D600,H28007D610,H28007D620,H28007D630,H28007D640,H28007D650,H28007D660,H28007D670,H28007D680,H28007D690,H28007D6A0,H28007D6B0,H28007D6C0,H28007D6D0,H28007D6E0,H28007D6F0,H28007D700,H28007D710,H28007D720,H28007D730,H28007D740,H28007D750,H28007D760,H28007D770,H28007D780,H28007D790,H28007D7A0,H28007D7B0,H28007D7C0,H28007D7D0,H28007D7E0,H28007D7F0,H28007D800,H28007D810,H28007D820,H28007D830,H28007D840,H28007D850,H28007D860,H28007D870,H28007D880,H28007D890,H28007D8A0,H28007D8B0,H28007D8C0,H28007D8D0,H28007D8E0,H28007D8F0,H28007D900,H28007D910,H28007D920,H28007D930,H28007D940,H28007D950,H28007D960,H28007D970,H28007D980,H28007D990,H28007D9A0,H28007D9B0,H28007D9C0,H28007D9D0,H28007D9E0,H28007D9F0,H28007DA00,H28007DA10,H28007DA20,H28007DA30,H28007DA40,H28007DA50,H28007DA60,H28007DA70,H28007DA80,H28007DA90,H28007DAA0,H28007DAB0,H28007DAC0,H28007DAD0,H28007DAE0,H28007DAF0,H28007DB00,H28007DB10,H28007DB20,H28007DB30,H28007DB40,H28007DB50,H28007DB60,H28007DB70,H28007DB80,H28007DB90,H28007DBA0,H28007DBB0,H28007DBC0,H28007DBD0 -28007CBE0:F1A:1.00000000000000000000e+00 -28007CBF0:F1A:9.77101701267670819107e-01 -28007CC00:F1A:9.59879091800105999077e-01 -28007CC10:F1A:9.45198953442299094618e-01 -28007CC20:F1A:9.32060075959229905607e-01 -28007CC30:F1A:9.19991505039346457728e-01 -28007CC40:F1A:9.08726440052130324254e-01 -28007CC50:F1A:8.98095921898342974821e-01 -28007CC60:F1A:8.87984660755832821977e-01 -28007CC70:F1A:8.78309655808916844855e-01 -28007CC80:F1A:8.69008688036856491443e-01 -28007CC90:F1A:8.60033621196331088399e-01 -28007CCA0:F1A:8.51346258458677507264e-01 -28007CCB0:F1A:8.42915653112203733244e-01 -28007CCC0:F1A:8.34716292986882990590e-01 -28007CCD0:F1A:8.26726833946220929228e-01 -28007CCE0:F1A:8.18929191603701922553e-01 -28007CCF0:F1A:8.11307874312655719073e-01 -28007CD00:F1A:8.03849483170963829970e-01 -28007CD10:F1A:7.96542330422958411162e-01 -28007CD20:F1A:7.89376143566024035536e-01 -28007CD30:F1A:7.82341832654801949687e-01 -28007CD40:F1A:7.75431304981186619862e-01 -28007CD50:F1A:7.68637315798485709628e-01 -28007CD60:F1A:7.61953346836794831454e-01 -28007CD70:F1A:7.55373506507095671125e-01 -28007CD80:F1A:7.48892447219156376370e-01 -28007CD90:F1A:7.42505296340150611201e-01 -28007CDA0:F1A:7.36207598126862095000e-01 -28007CDB0:F1A:7.29995264561475676324e-01 -28007CDC0:F1A:7.23864533468629667290e-01 -28007CDD0:F1A:7.17811932630721516446e-01 -28007CDE0:F1A:7.11834248878247977110e-01 -28007CDF0:F1A:7.05928501332753755015e-01 -28007CE00:F1A:7.00091918136511170978e-01 -28007CE10:F1A:6.94321916126116267520e-01 -28007CE20:F1A:6.88616083004671364343e-01 -28007CE30:F1A:6.82972161644994302243e-01 -28007CE40:F1A:6.77388036218773081920e-01 -28007CE50:F1A:6.71861719897081655084e-01 -28007CE60:F1A:6.66391343908749766989e-01 -28007CE70:F1A:6.60975147776662774746e-01 -28007CE80:F1A:6.55611470579696931082e-01 -28007CE90:F1A:6.50298743110816368507e-01 -28007CEA0:F1A:6.45035480820821960357e-01 -28007CEB0:F1A:6.39820277453056140970e-01 -28007CEC0:F1A:6.34651799287623274992e-01 -28007CED0:F1A:6.29528779924836245918e-01 -28007CEE0:F1A:6.24450015547026060503e-01 -28007CEF0:F1A:6.19414360605833991258e-01 -28007CF00:F1A:6.14420723888913444810e-01 -28007CF10:F1A:6.09468064925773100882e-01 -28007CF20:F1A:6.04555390697467331940e-01 -28007CF30:F1A:5.99681752619124819326e-01 -28007CF40:F1A:5.94846243767986893047e-01 -28007CF50:F1A:5.90047996332825452903e-01 -28007CF60:F1A:5.85286179263370898163e-01 -28007CF70:F1A:5.80559996100790343121e-01 -28007CF80:F1A:5.75868682972353163052e-01 -28007CF90:F1A:5.71211506735252672051e-01 -28007CFA0:F1A:5.66587763256163889913e-01 -28007CFB0:F1A:5.61996775814523896742e-01 -28007CFC0:F1A:5.57437893618765500925e-01 -28007CFD0:F1A:5.52910490425831846473e-01 -28007CFE0:F1A:5.48413963255265368701e-01 -28007CFF0:F1A:5.43947731190025818293e-01 -28007D000:F1A:5.39511234256951577315e-01 -28007D010:F1A:5.35103932380457170126e-01 -28007D020:F1A:5.30725304403661501951e-01 -28007D030:F1A:5.26374847171684034919e-01 -28007D040:F1A:5.22052074672321397841e-01 -28007D050:F1A:5.17756517229755908183e-01 -28007D060:F1A:5.13487720747326514825e-01 -28007D070:F1A:5.09245245995747608525e-01 -28007D080:F1A:5.05028667943467901580e-01 -28007D090:F1A:5.00837575126148348836e-01 -28007D0A0:F1A:4.96671569052489325635e-01 -28007D0B0:F1A:4.92530263643868149170e-01 -28007D0C0:F1A:4.88413284705457584334e-01 -28007D0D0:F1A:4.84320269426682881164e-01 -28007D0E0:F1A:4.80250865909046420477e-01 -28007D0F0:F1A:4.76204732719505474670e-01 -28007D100:F1A:4.72181538467729755570e-01 -28007D110:F1A:4.68180961405693207844e-01 -28007D120:F1A:4.64202689048173910980e-01 -28007D130:F1A:4.60246417812842478767e-01 -28007D140:F1A:4.56311852678716101117e-01 -28007D150:F1A:4.52398706861848243221e-01 -28007D160:F1A:4.48506701507202731882e-01 -28007D170:F1A:4.44635565395739118522e-01 -28007D180:F1A:4.40785034665803765463e-01 -28007D190:F1A:4.36954852547985328481e-01 -28007D1A0:F1A:4.33144769112652094911e-01 -28007D1B0:F1A:4.29354541029441261202e-01 -28007D1C0:F1A:4.25583931338021803636e-01 -28007D1D0:F1A:4.21832709229495728120e-01 -28007D1E0:F1A:4.18100649837847948564e-01 -28007D1F0:F1A:4.14387534040890903597e-01 -28007D200:F1A:4.10693148270187990967e-01 -28007D210:F1A:4.07017284329473150173e-01 -28007D220:F1A:4.03359739221114288465e-01 -28007D230:F1A:3.99720314980197000132e-01 -28007D240:F1A:3.96098818515832229448e-01 -28007D250:F1A:3.92495061459315397467e-01 -28007D260:F1A:3.88908860018788549162e-01 -28007D270:F1A:3.85340034840077061418e-01 -28007D280:F1A:3.81788410873393435629e-01 -28007D290:F1A:3.78253817245618961795e-01 -28007D2A0:F1A:3.74736087137890860888e-01 -28007D2B0:F1A:3.71235057668239221140e-01 -28007D2C0:F1A:3.67750569779032254747e-01 -28007D2D0:F1A:3.64282468129003722535e-01 -28007D2E0:F1A:3.60830600989647753973e-01 -28007D2F0:F1A:3.57394820145780223175e-01 -28007D300:F1A:3.53974980800076555187e-01 -28007D310:F1A:3.50570941481405884410e-01 -28007D320:F1A:3.47182563956793477367e-01 -28007D330:F1A:3.43809713146850548515e-01 -28007D340:F1A:3.40452257044521644502e-01 -28007D350:F1A:3.37110066637005878487e-01 -28007D360:F1A:3.33783015830718232664e-01 -28007D370:F1A:3.30470981379163419867e-01 -28007D380:F1A:3.27173842813601289947e-01 -28007D390:F1A:3.23891482376391037779e-01 -28007D3A0:F1A:3.20623784956905300003e-01 -28007D3B0:F1A:3.17370638029913498812e-01 -28007D3C0:F1A:3.14131931596337066193e-01 -28007D3D0:F1A:3.10907558126286343025e-01 -28007D3E0:F1A:3.07697412504291889501e-01 -28007D3F0:F1A:3.04501391976649826709e-01 -28007D400:F1A:3.01319396100802883165e-01 -28007D410:F1A:2.98151326696685314843e-01 -28007D420:F1A:2.94997087799961643650e-01 -28007D430:F1A:2.91856585617094987928e-01 -28007D440:F1A:2.88729728482182701477e-01 -28007D450:F1A:2.85616426815501589509e-01 -28007D460:F1A:2.82516593083707412415e-01 -28007D470:F1A:2.79430141761637718112e-01 -28007D480:F1A:2.76356989295668098450e-01 -28007D490:F1A:2.73297054068576905639e-01 -28007D4A0:F1A:2.70250256365875185516e-01 -28007D4B0:F1A:2.67216518343561137971e-01 -28007D4C0:F1A:2.64195763997260801847e-01 -28007D4D0:F1A:2.61187919132720824944e-01 -28007D4E0:F1A:2.58192911337618902223e-01 -28007D4F0:F1A:2.55210669954661684145e-01 -28007D500:F1A:2.52241126055941899953e-01 -28007D510:F1A:2.49284212418528244859e-01 -28007D520:F1A:2.46339863501263633960e-01 -28007D530:F1A:2.43408015422750118040e-01 -28007D540:F1A:2.40488605940500393965e-01 -28007D550:F1A:2.37581574431237951828e-01 -28007D560:F1A:2.34686861872329899370e-01 -28007D570:F1A:2.31804410824338585906e-01 -28007D580:F1A:2.28934165414680229622e-01 -28007D590:F1A:2.26076071322380195427e-01 -28007D5A0:F1A:2.23230075763917457099e-01 -28007D5B0:F1A:2.20396127480151943212e-01 -28007D5C0:F1A:2.17574176724331130872e-01 -28007D5D0:F1A:2.14764175251173583536e-01 -28007D5E0:F1A:2.11966076307030154569e-01 -28007D5F0:F1A:2.09179834621124993710e-01 -28007D600:F1A:2.06405406397880714087e-01 -28007D610:F1A:2.03642749310334852941e-01 -28007D620:F1A:2.00891822494656563380e-01 -28007D630:F1A:1.98152586545775111215e-01 -28007D640:F1A:1.95425003514134276728e-01 -28007D650:F1A:1.92709036903589120415e-01 -28007D660:F1A:1.90004651670464957958e-01 -28007D670:F1A:1.87311814223800249257e-01 -28007D680:F1A:1.84630492426799269756e-01 -28007D690:F1A:1.81960655599522541648e-01 -28007D6A0:F1A:1.79302274522847665539e-01 -28007D6B0:F1A:1.76655321443734997233e-01 -28007D6C0:F1A:1.74019770081838748288e-01 -28007D6D0:F1A:1.71395595637505948616e-01 -28007D6E0:F1A:1.68782774801211510329e-01 -28007D6F0:F1A:1.66181285764482045142e-01 -28007D700:F1A:1.63591108232365695097e-01 -28007D710:F1A:1.61012223437511065027e-01 -28007D720:F1A:1.58444614155924312637e-01 -28007D730:F1A:1.55888264724479197465e-01 -28007D740:F1A:1.53343161060262828110e-01 -28007D750:F1A:1.50809290681845675763e-01 -28007D760:F1A:1.48286642732574525105e-01 -28007D770:F1A:1.45775208005994028060e-01 -28007D780:F1A:1.43274978973513406055e-01 -28007D790:F1A:1.40785949814444699690e-01 -28007D7A0:F1A:1.38308116448550705302e-01 -28007D7B0:F1A:1.35841476571253727545e-01 -28007D7C0:F1A:1.33386029691669127928e-01 -28007D7D0:F1A:1.30941777173644302579e-01 -28007D7E0:F1A:1.28508722279999515470e-01 -28007D7F0:F1A:1.26086870220185859326e-01 -28007D800:F1A:1.23676228201596544176e-01 -28007D810:F1A:1.21276805484790209388e-01 -28007D820:F1A:1.18888613442909976681e-01 -28007D830:F1A:1.16511665625610799646e-01 -28007D840:F1A:1.14145977827838349117e-01 -28007D850:F1A:1.11791568163838006544e-01 -28007D860:F1A:1.09448457146811631291e-01 -28007D870:F1A:1.07116667774683635428e-01 -28007D880:F1A:1.04796225622486902096e-01 -28007D890:F1A:1.02487158941935080358e-01 -28007D8A0:F1A:1.00189498768809809315e-01 -28007D8B0:F1A:9.79032790388622842226e-02 -28007D8C0:F1A:9.56285367130088187482e-02 -28007D8D0:F1A:9.33653119126908598302e-02 -28007D8E0:F1A:9.11136480663736342267e-02 -28007D8F0:F1A:8.88735920682757890576e-02 -28007D900:F1A:8.66451944505579607636e-02 -28007D910:F1A:8.44285095703533744471e-02 -28007D920:F1A:8.22235958132028627032e-02 -28007D930:F1A:8.00305158146630557514e-02 -28007D940:F1A:7.78493367020960391756e-02 -28007D950:F1A:7.56801303589270668581e-02 -28007D960:F1A:7.35229737139812683511e-02 -28007D970:F1A:7.13779490588903747783e-02 -28007D980:F1A:6.92451443970067692657e-02 -28007D990:F1A:6.71246538277884968737e-02 -28007D9A0:F1A:6.50165779712428421044e-02 -28007D9B0:F1A:6.29210244377581134900e-02 -28007D9C0:F1A:6.08381083495398641836e-02 -28007D9D0:F1A:5.87679529209337581097e-02 -28007D9E0:F1A:5.67106901062029017391e-02 -28007D9F0:F1A:5.46664613248889139085e-02 -28007DA00:F1A:5.26354182767921757735e-02 -28007DA10:F1A:5.06177238609477608833e-02 -28007DA20:F1A:4.86135532158685212956e-02 -28007DA30:F1A:4.66230949019303675396e-02 -28007DA40:F1A:4.46465522512944426592e-02 -28007DA50:F1A:4.26841449164744313194e-02 -28007DA60:F1A:4.07361106559409325012e-02 -28007DA70:F1A:3.88027074045261127777e-02 -28007DA80:F1A:3.68842156885672844968e-02 -28007DA90:F1A:3.49809414617160835403e-02 -28007DAA0:F1A:3.30932194585785224850e-02 -28007DAB0:F1A:3.12214171919202448935e-02 -28007DAC0:F1A:2.93659397581333136973e-02 -28007DAD0:F1A:2.75272356696030819079e-02 -28007DAE0:F1A:2.57058040085488964666e-02 -28007DAF0:F1A:2.39022033057958820101e-02 -28007DB00:F1A:2.21170627073088640890e-02 -28007DB10:F1A:2.03510962300445172324e-02 -28007DB20:F1A:1.86051212757246432761e-02 -28007DB30:F1A:1.68800831525431661861e-02 -28007DB40:F1A:1.51770883079353248457e-02 -28007DB50:F1A:1.34974506017398795249e-02 -28007DB60:F1A:1.18427578579078877224e-02 -28007DB70:F1A:1.02149714397014711870e-02 -28007DB80:F1A:8.61658276939873159217e-03 -28007DB90:F1A:7.05087547137322676050e-03 -28007DBA0:F1A:5.52240329925099675962e-03 -28007DBB0:F1A:4.03797259336303050042e-03 -28007DBC0:F1A:2.60907274610216273134e-03 -28007DBD0:F1A:1.26028593049859753868e-03 -28007DBE0:lI126|H28007DBF0 -28007DBF0:lI99|H28007DC00 -28007DC00:lI126|H28007DC10 -28007DC10:lI99|H28007DC20 -28007DC20:lI46|H28007DC30 -28007DC30:lI126|H28007DC40 -28007DC40:lI49|H28007DC50 -28007DC50:lI51|H28007DC60 -28007DC60:lI46|H28007DC70 -28007DC70:lI49|H28007DC80 -28007DC80:lI54|H28007DC90 -28007DC90:lI46|H28007DCA0 -28007DCA0:lI48|H28007DCB0 -28007DCB0:lI98|H28007DCC0 -28007DCC0:lI69|H28007DCD0 -28007DCD0:lI126|H28007DCE0 -28007DCE0:lI98|N -28007DCF0:lI108|N -28007DD00:lI114|H28007DCF0 -28007DD10:lI101|H28007DD00 -28007DD20:lI46|H28007DD10 -28007DD30:lI100|H28007DD20 -28007DD40:lI110|H28007DD30 -28007DD50:lI97|H28007DD40 -28007DD60:lI114|H28007DD50 -28007DD70:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAAAAAAAHcEcmFuZGEAYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DD98:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAABAAAAAHcEcmFuZGEBYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DDC0:E48:g3AAAABGAn3XkEUS41MGPnrQPyy5JUoAAAACAAAAAHcEcmFuZGECYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DDE8:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAADAAAAAHcEcmFuZGEDYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DE10:t6:A4:type,A4:next,A4:bits,A7:uniform,A9:uniform_n,A4:jump -28007DE48:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAEAAAAAHcEcmFuZGEEYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DE70:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAFAAAAAHcEcmFuZGEFYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DE98:t4:A3:max,A4:type,A4:next,A4:jump -28007DEC0:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAGAAAAAHcEcmFuZGEGYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DEE8:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAHAAAAAHcEcmFuZGEHYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DF10:E48:g3AAAABGAn3XkEUS41MGPnrQPyy5JUoAAAAIAAAAAHcEcmFuZGEIYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DF38:t7:A4:type,A4:next,A4:bits,A7:uniform,AD:weak_low_bits,A9:uniform_n,A4:jump -28007DF78:B18446744073709551615 -28007DF88:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAJAAAAAHcEcmFuZGEJYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DFB0:t3:A3:max,A4:type,A4:next -28007DFD0:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAKAAAAAHcEcmFuZGEKYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007DFF8:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAALAAAAAHcEcmFuZGELYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E020:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAMAAAAAHcEcmFuZGEMYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E048:t5:A4:type,A4:next,A4:bits,AD:weak_low_bits,A4:jump -28007E078:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAANAAAAAHcEcmFuZGENYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E0A0:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAOAAAAAHcEcmFuZGEOYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E0C8:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAPAAAAAHcEcmFuZGEPYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E0F0:E48:g3AAAABGAn3XkEUS41MGPnrQPyy5JUoAAAAQAAAAAHcEcmFuZGEQYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E118:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAARAAAAAHcEcmFuZGERYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E140:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAASAAAAAHcEcmFuZGESYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E168:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAATAAAAAHcEcmFuZGETYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E190:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAUAAAAAHcEcmFuZGEUYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E1B8:E48:g3AAAABGAn3XkEUS41MGPnrQPyy5JUoAAAAVAAAAAHcEcmFuZGEVYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E1E0:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAWAAAAAHcEcmFuZGEWYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E208:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAXAAAAAHcEcmFuZGEXYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E230:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAYAAAAAHcEcmFuZGEYYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E258:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAZAAAAAHcEcmFuZGEZYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E280:E48:g3AAAABGAn3XkEUS41MGPnrQPyy5JUoAAAAaAAAAAHcEcmFuZGEaYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E2A8:t5:A4:type,A4:next,A4:bits,A7:uniform,A9:uniform_n -28007E2D8:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAbAAAAAHcEcmFuZGEbYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E300:B2685821657736338717 -28007E310:B18446744073709551614 -28007E320:B1181783497276652981 -28007E330:E48:g3AAAABGAn3XkEUS41MGPnrQPyy5JUoAAAAcAAAAAHcEcmFuZGEcYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E358:E48:g3AAAABGAX3XkEUS41MGPnrQPyy5JUoAAAAdAAAAAHcEcmFuZGEdYgPuvIJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007E380:B11400714819323198485 -28007E390:B13787848793156543929 -28007E3A0:B10723151780598845931 -28007E3B0:B9223372036854775808 -28007F160:t2:A5:error,AB:not_boolean -28007F178:t2:A5:error,A17:global_group_not_runnig -28007F190:t2:A5:local,AC:global_group -28007F1A8:t1:AD:connection_id -28007F1B8:Mf1:H28007F1A8:A4:true -28007F1D8:lA9:undefined|N -28007F1E8:Mf0:H280010188: -28007F200:t2:A4:node,AB:test3844zty -28007F218:t2:A5:error,A15:illegal_function_call -28007F230:t2:A5:error,A1A:no global_groups definiton -28007F248:t2:H28007F260,H28007F278 -28007F260:Mf0:H280010188: -28007F278:Mf0:H280010188: -28007F290:t3:N,N,N -28007F2B0:lI103|H28007F2C0 -28007F2C0:lI108|H28007F2D0 -28007F2D0:lI111|H28007F2E0 -28007F2E0:lI98|H28007F2F0 -28007F2F0:lI97|H28007F300 -28007F300:lI108|H28007F310 -28007F310:lI95|H28007F320 -28007F320:lI103|H28007F330 -28007F330:lI114|H28007F340 -28007F340:lI111|H28007F350 -28007F350:lI117|H28007F360 -28007F360:lI112|H28007F370 -28007F370:lI58|H28007F380 -28007F380:lI32|H28007F390 -28007F390:lI67|H28007F3A0 -28007F3A0:lI111|H28007F3B0 -28007F3B0:lI117|H28007F3C0 -28007F3C0:lI108|H28007F3D0 -28007F3D0:lI100|H28007F3E0 -28007F3E0:lI32|H28007F3F0 -28007F3F0:lI110|H28007F400 -28007F400:lI111|H28007F410 -28007F410:lI116|H28007F420 -28007F420:lI32|H28007F430 -28007F430:lI115|H28007F440 -28007F440:lI121|H28007F450 -28007F450:lI110|H28007F460 -28007F460:lI99|H28007F470 -28007F470:lI104|H28007F480 -28007F480:lI114|H28007F490 -28007F490:lI111|H28007F4A0 -28007F4A0:lI110|H28007F4B0 -28007F4B0:lI105|H28007F4C0 -28007F4C0:lI122|H28007F4D0 -28007F4D0:lI101|H28007F4E0 -28007F4E0:lI32|H28007F4F0 -28007F4F0:lI119|H28007F500 -28007F500:lI105|H28007F510 -28007F510:lI116|H28007F520 -28007F520:lI104|H28007F530 -28007F530:lI32|H28007F540 -28007F540:lI110|H28007F550 -28007F550:lI111|H28007F560 -28007F560:lI100|H28007F570 -28007F570:lI101|H28007F580 -28007F580:lI32|H28007F590 -28007F590:lI126|H28007F5A0 -28007F5A0:lI112|H28007F5B0 -28007F5B0:lI126|H28007F5C0 -28007F5C0:lI110|H28007F5D0 -28007F5D0:lI98|H28007F5E0 -28007F5E0:lI101|H28007F5F0 -28007F5F0:lI99|H28007F600 -28007F600:lI97|H28007F610 -28007F610:lI117|H28007F620 -28007F620:lI115|H28007F630 -28007F630:lI101|H28007F640 -28007F640:lI32|H28007F650 -28007F650:lI103|H28007F660 -28007F660:lI108|H28007F670 -28007F670:lI111|H28007F680 -28007F680:lI98|H28007F690 -28007F690:lI97|H28007F6A0 -28007F6A0:lI108|H28007F6B0 -28007F6B0:lI95|H28007F6C0 -28007F6C0:lI103|H28007F6D0 -28007F6D0:lI114|H28007F6E0 -28007F6E0:lI111|H28007F6F0 -28007F6F0:lI117|H28007F700 -28007F700:lI112|H28007F710 -28007F710:lI115|H28007F720 -28007F720:lI32|H28007F730 -28007F730:lI112|H28007F740 -28007F740:lI97|H28007F750 -28007F750:lI114|H28007F760 -28007F760:lI97|H28007F770 -28007F770:lI109|H28007F780 -28007F780:lI101|H28007F790 -28007F790:lI116|H28007F7A0 -28007F7A0:lI101|H28007F7B0 -28007F7B0:lI114|H28007F7C0 -28007F7C0:lI32|H28007F7D0 -28007F7D0:lI119|H28007F7E0 -28007F7E0:lI101|H28007F7F0 -28007F7F0:lI114|H28007F800 -28007F800:lI101|H28007F810 -28007F810:lI32|H28007F820 -28007F820:lI110|H28007F830 -28007F830:lI111|H28007F840 -28007F840:lI116|H28007F850 -28007F850:lI32|H28007F860 -28007F860:lI105|H28007F870 -28007F870:lI110|H28007F880 -28007F880:lI32|H28007F890 -28007F890:lI97|H28007F8A0 -28007F8A0:lI103|H28007F8B0 -28007F8B0:lI114|H28007F8C0 -28007F8C0:lI101|H28007F8D0 -28007F8D0:lI101|H28007F8E0 -28007F8E0:lI109|H28007F8F0 -28007F8F0:lI101|H28007F900 -28007F900:lI110|H28007F910 -28007F910:lI116|H28007F920 -28007F920:lI46|H28007F930 -28007F930:lI126|H28007F940 -28007F940:lI110|N -28007F950:t2:A4:erpc,AC:noconnection -28007F968:t9:A5:gconf,A7:invalid,A9:undefined,N,A6:normal,N,A3:all,N,A7:no_conf -28007F9B8:t2:A2:ok,A3:all -28007F9D0:lI108|N -28007F9E0:lI114|H28007F9D0 -28007F9F0:lI101|H28007F9E0 -28007FA00:lI46|H28007F9F0 -28007FA10:lI112|H28007FA00 -28007FA20:lI117|H28007FA10 -28007FA30:lI111|H28007FA20 -28007FA40:lI114|H28007FA30 -28007FA50:lI103|H28007FA40 -28007FA60:lI95|H28007FA50 -28007FA70:lI108|H28007FA60 -28007FA80:lI97|H28007FA70 -28007FA90:lI98|H28007FA80 -28007FAA0:lI111|H28007FA90 -28007FAB0:lI108|H28007FAA0 -28007FAC0:lI103|H28007FAB0 -28007FAD0:E50:g3AAAABOAP90bxlFikMVMF8VpcuovIcAAAAAAAAAAHcMZ2xvYmFsX2dyb3VwYQBiB/ujeFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -28007FAF8:E50:g3AAAABOAv90bxlFikMVMF8VpcuovIcAAAABAAAAAHcMZ2xvYmFsX2dyb3VwYQFiB/ujeFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -28007FB20:E50:g3AAAABOAv90bxlFikMVMF8VpcuovIcAAAACAAAAAHcMZ2xvYmFsX2dyb3VwYQJiB/ujeFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -28007FB48:E50:g3AAAABOAv90bxlFikMVMF8VpcuovIcAAAADAAAAAHcMZ2xvYmFsX2dyb3VwYQNiB/ujeFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -28007FB70:E50:g3AAAABOA/90bxlFikMVMF8VpcuovIcAAAAHAAAAAHcMZ2xvYmFsX2dyb3VwYQdiB/ujeFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -28007FB98:E50:g3AAAABOAv90bxlFikMVMF8VpcuovIcAAAAIAAAAAHcMZ2xvYmFsX2dyb3VwYQhiB/ujeFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -28007FC58:lN|N -28007FC68:t2:A4:erpc,A6:badarg -28007FC80:lH28007FCA0|H28007FC90 -28007FC90:lA7:monitor|N -28007FCA0:t2:A5:reply,AA:error_only -28007FCB8:t2:A4:erpc,AC:noconnection -28007FCD0:t2:A4:erpc,A7:timeout -28007FCE8:Mf0:H280010188: -28007FD00:lH28007FD10|N -28007FD10:t2:A5:reply,A2:no -28007FD28:lA4:info|N -28007FD38:t2:A5:reply,AA:error_only -28007FD50:t2:A5:error,H28007FD68 -28007FD68:t2:A4:erpc,A7:timeout -28007FD80:lI108|N -28007FD90:lI114|H28007FD80 -28007FDA0:lI101|H28007FD90 -28007FDB0:lI46|H28007FDA0 -28007FDC0:lI99|H28007FDB0 -28007FDD0:lI112|H28007FDC0 -28007FDE0:lI114|H28007FDD0 -28007FDF0:lI101|H28007FDE0 -28007FE00:E48:g3AAAABGArZvHmfGlHCs4XDYkOAiwhMAAAAAAAAAAHcEZXJwY2EAYgWzePNYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007FE28:E48:g3AAAABGA7ZvHmfGlHCs4XDYkOAiwhMAAAABAAAAAHcEZXJwY2EBYgWzePNYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -28007FE50:t1:AA:local_call -280082718:lA8:infinity|N -280082728:lH280082738|N -280082738:t2:A8:postpone,A5:false -280082750:lAA:gen_statem|N -280082760:t1:A3:t0q -280082770:Mf1:H280082760:N -280082790:lH2800827A0|N -2800827A0:t2:A8:internal,AA:init_state -2800827B8:t5:A5:state,H2800827E8,N,H280082810,A5:false -2800827E8:t2:A9:undefined,A9:undefined -280082800:t1:A3:t0q -280082810:Mf1:H280082800:N -280082830:t2:A4:exit,A6:normal -280082848:lI83|H280082858 -280082858:lI116|H280082868 -280082868:lI97|H280082878 -280082878:lI116|H280082888 -280082888:lI117|H280082898 -280082898:lI115|H2800828A8 -2800828A8:lI32|H2800828B8 -2800828B8:lI102|H2800828C8 -2800828C8:lI111|H2800828D8 -2800828D8:lI114|H2800828E8 -2800828E8:lI32|H2800828F8 -2800828F8:lI115|H280082908 -280082908:lI116|H280082918 -280082918:lI97|H280082928 -280082928:lI116|H280082938 -280082938:lI101|H280082948 -280082948:lI32|H280082958 -280082958:lI109|H280082968 -280082968:lI97|H280082978 -280082978:lI99|H280082988 -280082988:lI104|H280082998 -280082998:lI105|H2800829A8 -2800829A8:lI110|H2800829B8 -2800829B8:lI101|N -2800829C8:Mf0:H280010188: -2800829E0:lI83|H2800829F0 -2800829F0:lI116|H280082A00 -280082A00:lI97|H280082A10 -280082A10:lI116|H280082A20 -280082A20:lI101|N -280082A30:lI80|H280082A40 -280082A40:lI111|H280082A50 -280082A50:lI115|H280082A60 -280082A60:lI116|H280082A70 -280082A70:lI112|H280082A80 -280082A80:lI111|H280082A90 -280082A90:lI110|H280082AA0 -280082AA0:lI101|H280082AB0 -280082AB0:lI100|N -280082AC0:lI76|H280082AD0 -280082AD0:lI111|H280082AE0 -280082AE0:lI103|H280082AF0 -280082AF0:lI103|H280082B00 -280082B00:lI101|H280082B10 -280082B10:lI100|H280082B20 -280082B20:lI32|H280082B30 -280082B30:lI69|H280082B40 -280082B40:lI118|H280082B50 -280082B50:lI101|H280082B60 -280082B60:lI110|H280082B70 -280082B70:lI116|H280082B80 -280082B80:lI115|N -280082B90:lI84|H280082BA0 -280082BA0:lI105|H280082BB0 -280082BB0:lI109|H280082BC0 -280082BC0:lI101|H280082BD0 -280082BD0:lI45|H280082BE0 -280082BE0:lI111|H280082BF0 -280082BF0:lI117|H280082C00 -280082C00:lI116|H280082C10 -280082C10:lI115|N -280082C20:lI77|H280082C30 -280082C30:lI111|H280082C40 -280082C40:lI100|H280082C50 -280082C50:lI117|H280082C60 -280082C60:lI108|H280082C70 -280082C70:lI101|H280082C80 -280082C80:lI115|N -280082C90:lI80|H280082CA0 -280082CA0:lI97|H280082CB0 -280082CB0:lI114|H280082CC0 -280082CC0:lI101|H280082CD0 -280082CD0:lI110|H280082CE0 -280082CE0:lI116|N -280082CF0:lI83|H280082D00 -280082D00:lI116|H280082D10 -280082D10:lI97|H280082D20 -280082D20:lI116|H280082D30 -280082D30:lI117|H280082D40 -280082D40:lI115|N -280082D50:lI126|H280082D60 -280082D60:lI116|H280082D70 -280082D70:lI112|N -280082D80:lI126|H280082D90 -280082D90:lI116|H280082DA0 -280082DA0:lI112|H280082DB0 -280082DB0:lI32|H280082DC0 -280082DC0:lI61|H280082DD0 -280082DD0:lI62|H280082DE0 -280082DE0:lI32|H280082DF0 -280082DF0:lI126|H280082E00 -280082E00:lI116|H280082E10 -280082E10:lI112|N -280082E20:lI42|H280082E30 -280082E30:lI68|H280082E40 -280082E40:lI66|H280082E50 -280082E50:lI71|H280082E60 -280082E60:lI42|H280082E70 -280082E70:lI32|H280082E80 -280082E80:lI126|H280082E90 -280082E90:lI116|H280082EA0 -280082EA0:lI112|H280082EB0 -280082EB0:lI32|H280082EC0 -280082EC0:lI126|H280082ED0 -280082ED0:lI116|H280082EE0 -280082EE0:lI119|H280082EF0 -280082EF0:lI32|H280082F00 -280082F00:lI126|H280082F10 -280082F10:lI116|H280082F20 -280082F20:lI115|H280082F30 -280082F30:lI32|H280082F40 -280082F40:lI105|H280082F50 -280082F50:lI110|H280082F60 -280082F60:lI32|H280082F70 -280082F70:lI115|H280082F80 -280082F80:lI116|H280082F90 -280082F90:lI97|H280082FA0 -280082FA0:lI116|H280082FB0 -280082FB0:lI101|H280082FC0 -280082FC0:lI32|H280082FD0 -280082FD0:lI126|H280082FE0 -280082FE0:lI116|H280082FF0 -280082FF0:lI115|H280083000 -280083000:lI126|H280083010 -280083010:lI110|N -280083020:lI42|H280083030 -280083030:lI68|H280083040 -280083040:lI66|H280083050 -280083050:lI71|H280083060 -280083060:lI42|H280083070 -280083070:lI32|H280083080 -280083080:lI126|H280083090 -280083090:lI116|H2800830A0 -2800830A0:lI112|H2800830B0 -2800830B0:lI32|H2800830C0 -2800830C0:lI116|H2800830D0 -2800830D0:lI101|H2800830E0 -2800830E0:lI114|H2800830F0 -2800830F0:lI109|H280083100 -280083100:lI105|H280083110 -280083110:lI110|H280083120 -280083120:lI97|H280083130 -280083130:lI116|H280083140 -280083140:lI101|H280083150 -280083150:lI32|H280083160 -280083160:lI126|H280083170 -280083170:lI116|H280083180 -280083180:lI112|H280083190 -280083190:lI32|H2800831A0 -2800831A0:lI105|H2800831B0 -2800831B0:lI110|H2800831C0 -2800831C0:lI32|H2800831D0 -2800831D0:lI115|H2800831E0 -2800831E0:lI116|H2800831F0 -2800831F0:lI97|H280083200 -280083200:lI116|H280083210 -280083210:lI101|H280083220 -280083220:lI32|H280083230 -280083230:lI126|H280083240 -280083240:lI116|H280083250 -280083250:lI112|H280083260 -280083260:lI126|H280083270 -280083270:lI110|N -280083280:lI42|H280083290 -280083290:lI68|H2800832A0 -2800832A0:lI66|H2800832B0 -2800832B0:lI71|H2800832C0 -2800832C0:lI42|H2800832D0 -2800832D0:lI32|H2800832E0 -2800832E0:lI126|H2800832F0 -2800832F0:lI116|H280083300 -280083300:lI112|H280083310 -280083310:lI32|H280083320 -280083320:lI115|H280083330 -280083330:lI116|H280083340 -280083340:lI97|H280083350 -280083350:lI114|H280083360 -280083360:lI116|H280083370 -280083370:lI95|H280083380 -280083380:lI116|H280083390 -280083390:lI105|H2800833A0 -2800833A0:lI109|H2800833B0 -2800833B0:lI101|H2800833C0 -2800833C0:lI114|H2800833D0 -2800833D0:lI32|H2800833E0 -2800833E0:lI126|H2800833F0 -2800833F0:lI116|H280083400 -280083400:lI112|H280083410 -280083410:lI32|H280083420 -280083420:lI105|H280083430 -280083430:lI110|H280083440 -280083440:lI32|H280083450 -280083450:lI115|H280083460 -280083460:lI116|H280083470 -280083470:lI97|H280083480 -280083480:lI116|H280083490 -280083490:lI101|H2800834A0 -2800834A0:lI32|H2800834B0 -2800834B0:lI126|H2800834C0 -2800834C0:lI116|H2800834D0 -2800834D0:lI112|H2800834E0 -2800834E0:lI126|H2800834F0 -2800834F0:lI110|N -280083500:lI42|H280083510 -280083510:lI68|H280083520 -280083520:lI66|H280083530 -280083530:lI71|H280083540 -280083540:lI42|H280083550 -280083550:lI32|H280083560 -280083560:lI126|H280083570 -280083570:lI116|H280083580 -280083580:lI112|H280083590 -280083590:lI32|H2800835A0 -2800835A0:lI115|H2800835B0 -2800835B0:lI101|H2800835C0 -2800835C0:lI110|H2800835D0 -2800835D0:lI100|H2800835E0 -2800835E0:lI32|H2800835F0 -2800835F0:lI126|H280083600 -280083600:lI116|H280083610 -280083610:lI112|H280083620 -280083620:lI32|H280083630 -280083630:lI116|H280083640 -280083640:lI111|H280083650 -280083650:lI32|H280083660 -280083660:lI126|H280083670 -280083670:lI116|H280083680 -280083680:lI119|H280083690 -280083690:lI126|H2800836A0 -2800836A0:lI110|N -2800836B0:lI42|H2800836C0 -2800836C0:lI68|H2800836D0 -2800836D0:lI66|H2800836E0 -2800836E0:lI71|H2800836F0 -2800836F0:lI42|H280083700 -280083700:lI32|H280083710 -280083710:lI126|H280083720 -280083720:lI116|H280083730 -280083730:lI112|H280083740 -280083740:lI32|H280083750 -280083750:lI109|H280083760 -280083760:lI111|H280083770 -280083770:lI100|H280083780 -280083780:lI117|H280083790 -280083790:lI108|H2800837A0 -2800837A0:lI101|H2800837B0 -2800837B0:lI32|H2800837C0 -2800837C0:lI126|H2800837D0 -2800837D0:lI116|H2800837E0 -2800837E0:lI112|H2800837F0 -2800837F0:lI32|H280083800 -280083800:lI105|H280083810 -280083810:lI110|H280083820 -280083820:lI32|H280083830 -280083830:lI115|H280083840 -280083840:lI116|H280083850 -280083850:lI97|H280083860 -280083860:lI116|H280083870 -280083870:lI101|H280083880 -280083880:lI32|H280083890 -280083890:lI126|H2800838A0 -2800838A0:lI116|H2800838B0 -2800838B0:lI112|H2800838C0 -2800838C0:lI126|H2800838D0 -2800838D0:lI110|N -2800838E0:lI42|H2800838F0 -2800838F0:lI68|H280083900 -280083900:lI66|H280083910 -280083910:lI71|H280083920 -280083920:lI42|H280083930 -280083930:lI32|H280083940 -280083940:lI126|H280083950 -280083950:lI116|H280083960 -280083960:lI112|H280083970 -280083970:lI32|H280083980 -280083980:lI105|H280083990 -280083990:lI110|H2800839A0 -2800839A0:lI115|H2800839B0 -2800839B0:lI101|H2800839C0 -2800839C0:lI114|H2800839D0 -2800839D0:lI116|H2800839E0 -2800839E0:lI95|H2800839F0 -2800839F0:lI116|H280083A00 -280083A00:lI105|H280083A10 -280083A10:lI109|H280083A20 -280083A20:lI101|H280083A30 -280083A30:lI111|H280083A40 -280083A40:lI117|H280083A50 -280083A50:lI116|H280083A60 -280083A60:lI32|H280083A70 -280083A70:lI126|H280083A80 -280083A80:lI116|H280083A90 -280083A90:lI112|H280083AA0 -280083AA0:lI32|H280083AB0 -280083AB0:lI105|H280083AC0 -280083AC0:lI110|H280083AD0 -280083AD0:lI32|H280083AE0 -280083AE0:lI115|H280083AF0 -280083AF0:lI116|H280083B00 -280083B00:lI97|H280083B10 -280083B10:lI116|H280083B20 -280083B20:lI101|H280083B30 -280083B30:lI32|H280083B40 -280083B40:lI126|H280083B50 -280083B50:lI116|H280083B60 -280083B60:lI112|H280083B70 -280083B70:lI126|H280083B80 -280083B80:lI110|N -280083B90:lI42|H280083BA0 -280083BA0:lI68|H280083BB0 -280083BB0:lI66|H280083BC0 -280083BC0:lI71|H280083BD0 -280083BD0:lI42|H280083BE0 -280083BE0:lI32|H280083BF0 -280083BF0:lI126|H280083C00 -280083C00:lI116|H280083C10 -280083C10:lI112|H280083C20 -280083C20:lI32|H280083C30 -280083C30:lI114|H280083C40 -280083C40:lI101|H280083C50 -280083C50:lI99|H280083C60 -280083C60:lI101|H280083C70 -280083C70:lI105|H280083C80 -280083C80:lI118|H280083C90 -280083C90:lI101|H280083CA0 -280083CA0:lI32|H280083CB0 -280083CB0:lI126|H280083CC0 -280083CC0:lI116|H280083CD0 -280083CD0:lI115|H280083CE0 -280083CE0:lI32|H280083CF0 -280083CF0:lI105|H280083D00 -280083D00:lI110|H280083D10 -280083D10:lI32|H280083D20 -280083D20:lI115|H280083D30 -280083D30:lI116|H280083D40 -280083D40:lI97|H280083D50 -280083D50:lI116|H280083D60 -280083D60:lI101|H280083D70 -280083D70:lI32|H280083D80 -280083D80:lI126|H280083D90 -280083D90:lI116|H280083DA0 -280083DA0:lI112|H280083DB0 -280083DB0:lI126|H280083DC0 -280083DC0:lI110|N -280083DD0:lI42|H280083DE0 -280083DE0:lI68|H280083DF0 -280083DF0:lI66|H280083E00 -280083E00:lI71|H280083E10 -280083E10:lI42|H280083E20 -280083E20:lI32|H280083E30 -280083E30:lI126|H280083E40 -280083E40:lI116|H280083E50 -280083E50:lI112|H280083E60 -280083E60:lI32|H280083E70 -280083E70:lI101|H280083E80 -280083E80:lI110|H280083E90 -280083E90:lI116|H280083EA0 -280083EA0:lI101|H280083EB0 -280083EB0:lI114|H280083EC0 -280083EC0:lI32|H280083ED0 -280083ED0:lI126|H280083EE0 -280083EE0:lI116|H280083EF0 -280083EF0:lI112|H280083F00 -280083F00:lI32|H280083F10 -280083F10:lI105|H280083F20 -280083F20:lI110|H280083F30 -280083F30:lI32|H280083F40 -280083F40:lI115|H280083F50 -280083F50:lI116|H280083F60 -280083F60:lI97|H280083F70 -280083F70:lI116|H280083F80 -280083F80:lI101|H280083F90 -280083F90:lI32|H280083FA0 -280083FA0:lI126|H280083FB0 -280083FB0:lI116|H280083FC0 -280083FC0:lI112|H280083FD0 -280083FD0:lI126|H280083FE0 -280083FE0:lI110|N -280083FF0:lI99|H280084000 -280084000:lI97|H280084010 -280084010:lI108|H280084020 -280084020:lI108|H280084030 -280084030:lI32|H280084040 -280084040:lI126|H280084050 -280084050:lI116|H280084060 -280084060:lI112|H280084070 -280084070:lI32|H280084080 -280084080:lI102|H280084090 -280084090:lI114|H2800840A0 -2800840A0:lI111|H2800840B0 -2800840B0:lI109|H2800840C0 -2800840C0:lI32|H2800840D0 -2800840D0:lI126|H2800840E0 -2800840E0:lI116|H2800840F0 -2800840F0:lI119|N -280084100:lI126|H280084110 -280084110:lI116|H280084120 -280084120:lI119|H280084130 -280084130:lI32|H280084140 -280084140:lI126|H280084150 -280084150:lI116|H280084160 -280084160:lI112|N -280084170:t2:A2B:should_not_have_arrived_here_but_instead_in,H280084188 -280084188:t3:AA:gen_statem,A15:wakeup_from_hibernate,I3 -2800841A8:t2:A2A:bad_state_enter_action_from_state_function,A8:postpone -2800841C0:t2:A2A:bad_state_enter_action_from_state_function,A13:pop_callback_module -2800841D8:t2:AA:gen_statem,A9:terminate -2800841F0:t3:AC:error_logger,A6:domain,A9:report_cb -280084210:Mf3:H2800841F0:H280084268,H280084240,H2800842B8 -280084240:lA3:otp|N -280084250:t2:A3:tag,A9:report_cb -280084268:Mf2:H280084250:A5:error,H280084290 -280084290:E1C:g3F3Cmdlbl9zdGF0ZW13CmZvcm1hdF9sb2dhAQ== -2800842B8:E1C:g3F3Cmdlbl9zdGF0ZW13CmZvcm1hdF9sb2dhAg== -2800842E0:t3:A4:line,A4:file,A3:mfa -280084300:Mf3:H2800842E0:I2617,H280084330,H280084410 -280084330:lI103|H280084340 -280084340:lI101|H280084350 -280084350:lI110|H280084360 -280084360:lI95|H280084370 -280084370:lI115|H280084380 -280084380:lI116|H280084390 -280084390:lI97|H2800843A0 -2800843A0:lI116|H2800843B0 -2800843B0:lI101|H2800843C0 -2800843C0:lI109|H2800843D0 -2800843D0:lI46|H2800843E0 -2800843E0:lI101|H2800843F0 -2800843F0:lI114|H280084400 -280084400:lI108|N -280084410:t3:AA:gen_statem,AA:error_info,I7 -280084430:lA12:current_stacktrace|H280084440 -280084440:lAF:registered_name|N -280084450:t4:AB:chars_limit,A5:depth,A8:encoding,AB:single_line -280084478:Mf4:H280084450:A9:unlimited,A9:unlimited,A4:utf8,A5:false -2800844B0:lI46|H2800844C0 -2800844C0:lI32|H2800844D0 -2800844D0:lI83|H2800844E0 -2800844E0:lI116|H2800844F0 -2800844F0:lI97|H280084500 -280084500:lI99|H280084510 -280084510:lI107|H280084520 -280084520:lI58|H280084530 -280084530:lI32|N -280084540:lI46|H280084550 -280084550:lI32|H280084560 -280084560:lI76|H280084570 -280084570:lI97|H280084580 -280084580:lI115|H280084590 -280084590:lI116|H2800845A0 -2800845A0:lI32|H2800845B0 -2800845B0:lI101|H2800845C0 -2800845C0:lI118|H2800845D0 -2800845D0:lI101|H2800845E0 -2800845E0:lI110|H2800845F0 -2800845F0:lI116|H280084600 -280084600:lI58|H280084610 -280084610:lI32|N -280084620:lI46|H280084630 -280084630:lI32|H280084640 -280084640:lI76|H280084650 -280084650:lI111|H280084660 -280084660:lI103|H280084670 -280084670:lI58|H280084680 -280084680:lI32|N -280084690:lH2800846A0|N -2800846A0:lI46|N -2800846B0:lI46|H2800846C0 -2800846C0:lI32|H2800846D0 -2800846D0:lI83|H2800846E0 -2800846E0:lI116|H2800846F0 -2800846F0:lI97|H280084700 -280084700:lI116|H280084710 -280084710:lI101|H280084720 -280084720:lI58|H280084730 -280084730:lI32|N -280084740:lI32|H280084750 -280084750:lI116|H280084760 -280084760:lI101|H280084770 -280084770:lI114|H280084780 -280084780:lI109|H280084790 -280084790:lI105|H2800847A0 -2800847A0:lI110|H2800847B0 -2800847B0:lI97|H2800847C0 -2800847C0:lI116|H2800847D0 -2800847D0:lI105|H2800847E0 -2800847E0:lI110|H2800847F0 -2800847F0:lI103|H280084800 -280084800:lI46|H280084810 -280084810:lI32|H280084820 -280084820:lI82|H280084830 -280084830:lI101|H280084840 -280084840:lI97|H280084850 -280084850:lI115|H280084860 -280084860:lI111|H280084870 -280084870:lI110|H280084880 -280084880:lI58|H280084890 -280084890:lI32|N -2800848A0:lI83|H2800848B0 -2800848B0:lI116|H2800848C0 -2800848C0:lI97|H2800848D0 -2800848D0:lI116|H2800848E0 -2800848E0:lI101|H2800848F0 -2800848F0:lI32|H280084900 -280084900:lI109|H280084910 -280084910:lI97|H280084920 -280084920:lI99|H280084930 -280084930:lI104|H280084940 -280084940:lI105|H280084950 -280084950:lI110|H280084960 -280084960:lI101|H280084970 -280084970:lI32|N -280084980:lAB:state_enter|N -280084990:lI126|H2800849A0 -2800849A0:lI110|N -2800849B0:lI42|H2800849C0 -2800849C0:lI42|H2800849D0 -2800849D0:lI32|H2800849E0 -2800849E0:lI76|H2800849F0 -2800849F0:lI97|H280084A00 -280084A00:lI115|H280084A10 -280084A10:lI116|H280084A20 -280084A20:lI32|H280084A30 -280084A30:lI101|H280084A40 -280084A40:lI118|H280084A50 -280084A50:lI101|H280084A60 -280084A60:lI110|H280084A70 -280084A70:lI116|H280084A80 -280084A80:lI32|H280084A90 -280084A90:lI61|H280084AA0 -280084AA0:lI32|N -280084AB0:lI42|H280084AC0 -280084AC0:lI42|H280084AD0 -280084AD0:lI32|H280084AE0 -280084AE0:lI81|H280084AF0 -280084AF0:lI117|H280084B00 -280084B00:lI101|H280084B10 -280084B10:lI117|H280084B20 -280084B20:lI101|H280084B30 -280084B30:lI100|H280084B40 -280084B40:lI32|H280084B50 -280084B50:lI61|H280084B60 -280084B60:lI32|N -280084B70:lI42|H280084B80 -280084B80:lI42|H280084B90 -280084B90:lI32|H280084BA0 -280084BA0:lI80|H280084BB0 -280084BB0:lI111|H280084BC0 -280084BC0:lI115|H280084BD0 -280084BD0:lI116|H280084BE0 -280084BE0:lI112|H280084BF0 -280084BF0:lI111|H280084C00 -280084C00:lI110|H280084C10 -280084C10:lI101|H280084C20 -280084C20:lI100|H280084C30 -280084C30:lI32|H280084C40 -280084C40:lI61|H280084C50 -280084C50:lI32|N -280084C60:lI42|H280084C70 -280084C70:lI42|H280084C80 -280084C80:lI32|H280084C90 -280084C90:lI83|H280084CA0 -280084CA0:lI116|H280084CB0 -280084CB0:lI97|H280084CC0 -280084CC0:lI99|H280084CD0 -280084CD0:lI107|H280084CE0 -280084CE0:lI116|H280084CF0 -280084CF0:lI114|H280084D00 -280084D00:lI97|H280084D10 -280084D10:lI99|H280084D20 -280084D20:lI101|H280084D30 -280084D30:lI32|H280084D40 -280084D40:lI61|H280084D50 -280084D50:lI126|H280084D60 -280084D60:lI110|H280084D70 -280084D70:lI42|H280084D80 -280084D80:lI42|H280084D90 -280084D90:lI32|H280084DA0 -280084DA0:lI32|N -280084DB0:lI42|H280084DC0 -280084DC0:lI42|H280084DD0 -280084DD0:lI32|H280084DE0 -280084DE0:lI84|H280084DF0 -280084DF0:lI105|H280084E00 -280084E00:lI109|H280084E10 -280084E10:lI101|H280084E20 -280084E20:lI45|H280084E30 -280084E30:lI111|H280084E40 -280084E40:lI117|H280084E50 -280084E50:lI116|H280084E60 -280084E60:lI115|H280084E70 -280084E70:lI58|H280084E80 -280084E80:lI32|N -280084E90:lI42|H280084EA0 -280084EA0:lI42|H280084EB0 -280084EB0:lI32|H280084EC0 -280084EC0:lI76|H280084ED0 -280084ED0:lI111|H280084EE0 -280084EE0:lI103|H280084EF0 -280084EF0:lI32|H280084F00 -280084F00:lI61|H280084F10 -280084F10:lI126|H280084F20 -280084F20:lI110|H280084F30 -280084F30:lI42|H280084F40 -280084F40:lI42|H280084F50 -280084F50:lI32|H280084F60 -280084F60:lI32|N -280084F70:lI42|H280084F80 -280084F80:lI42|H280084F90 -280084F90:lI32|H280084FA0 -280084FA0:lI67|H280084FB0 -280084FB0:lI97|H280084FC0 -280084FC0:lI108|H280084FD0 -280084FD0:lI108|H280084FE0 -280084FE0:lI98|H280084FF0 -280084FF0:lI97|H280085000 -280085000:lI99|H280085010 -280085010:lI107|H280085020 -280085020:lI32|H280085030 -280085030:lI109|H280085040 -280085040:lI111|H280085050 -280085050:lI100|H280085060 -280085060:lI101|H280085070 -280085070:lI32|H280085080 -280085080:lI61|H280085090 -280085090:lI32|N -2800850A0:lI42|H2800850B0 -2800850B0:lI42|H2800850C0 -2800850C0:lI32|H2800850D0 -2800850D0:lI67|H2800850E0 -2800850E0:lI97|H2800850F0 -2800850F0:lI108|H280085100 -280085100:lI108|H280085110 -280085110:lI98|H280085120 -280085120:lI97|H280085130 -280085130:lI99|H280085140 -280085140:lI107|H280085150 -280085150:lI32|H280085160 -280085160:lI109|H280085170 -280085170:lI111|H280085180 -280085180:lI100|H280085190 -280085190:lI117|H2800851A0 -2800851A0:lI108|H2800851B0 -2800851B0:lI101|H2800851C0 -2800851C0:lI115|H2800851D0 -2800851D0:lI32|H2800851E0 -2800851E0:lI61|H2800851F0 -2800851F0:lI32|N -280085200:lI58|N -280085210:lI42|H280085220 -280085220:lI42|H280085230 -280085230:lI32|H280085240 -280085240:lI82|H280085250 -280085250:lI101|H280085260 -280085260:lI97|H280085270 -280085270:lI115|H280085280 -280085280:lI111|H280085290 -280085290:lI110|H2800852A0 -2800852A0:lI32|H2800852B0 -2800852B0:lI102|H2800852C0 -2800852C0:lI111|H2800852D0 -2800852D0:lI114|H2800852E0 -2800852E0:lI32|H2800852F0 -2800852F0:lI116|H280085300 -280085300:lI101|H280085310 -280085310:lI114|H280085320 -280085320:lI109|H280085330 -280085330:lI105|H280085340 -280085340:lI110|H280085350 -280085350:lI97|H280085360 -280085360:lI116|H280085370 -280085370:lI105|H280085380 -280085380:lI111|H280085390 -280085390:lI110|H2800853A0 -2800853A0:lI32|H2800853B0 -2800853B0:lI61|H2800853C0 -2800853C0:lI32|N -2800853D0:lI42|H2800853E0 -2800853E0:lI42|H2800853F0 -2800853F0:lI32|H280085400 -280085400:lI87|H280085410 -280085410:lI104|H280085420 -280085420:lI101|H280085430 -280085430:lI110|H280085440 -280085440:lI32|H280085450 -280085450:lI115|H280085460 -280085460:lI101|H280085470 -280085470:lI114|H280085480 -280085480:lI118|H280085490 -280085490:lI101|H2800854A0 -2800854A0:lI114|H2800854B0 -2800854B0:lI32|H2800854C0 -2800854C0:lI115|H2800854D0 -2800854D0:lI116|H2800854E0 -2800854E0:lI97|H2800854F0 -2800854F0:lI116|H280085500 -280085500:lI101|H280085510 -280085510:lI32|H280085520 -280085520:lI32|H280085530 -280085530:lI61|H280085540 -280085540:lI32|N -280085550:lI32|H280085560 -280085560:lI116|H280085570 -280085570:lI101|H280085580 -280085580:lI114|H280085590 -280085590:lI109|H2800855A0 -2800855A0:lI105|H2800855B0 -2800855B0:lI110|H2800855C0 -2800855C0:lI97|H2800855D0 -2800855D0:lI116|H2800855E0 -2800855E0:lI105|H2800855F0 -2800855F0:lI110|H280085600 -280085600:lI103|H280085610 -280085610:lI126|H280085620 -280085620:lI110|N -280085630:lI42|H280085640 -280085640:lI42|H280085650 -280085650:lI32|H280085660 -280085660:lI83|H280085670 -280085670:lI116|H280085680 -280085680:lI97|H280085690 -280085690:lI116|H2800856A0 -2800856A0:lI101|H2800856B0 -2800856B0:lI32|H2800856C0 -2800856C0:lI109|H2800856D0 -2800856D0:lI97|H2800856E0 -2800856E0:lI99|H2800856F0 -2800856F0:lI104|H280085700 -280085700:lI105|H280085710 -280085710:lI110|H280085720 -280085720:lI101|H280085730 -280085730:lI32|N -280085740:lI32|H280085750 -280085750:lI115|H280085760 -280085760:lI116|H280085770 -280085770:lI97|H280085780 -280085780:lI99|H280085790 -280085790:lI107|H2800857A0 -2800857A0:lI116|H2800857B0 -2800857B0:lI114|H2800857C0 -2800857C0:lI97|H2800857D0 -2800857D0:lI99|H2800857E0 -2800857E0:lI101|H2800857F0 -2800857F0:lI58|H280085800 -280085800:lI32|N -280085810:lI32|H280085820 -280085820:lI67|H280085830 -280085830:lI108|H280085840 -280085840:lI105|H280085850 -280085850:lI101|H280085860 -280085860:lI110|H280085870 -280085870:lI116|H280085880 -280085880:lI32|N -280085890:lI32|H2800858A0 -2800858A0:lI67|H2800858B0 -2800858B0:lI108|H2800858C0 -2800858C0:lI105|H2800858D0 -2800858D0:lI101|H2800858E0 -2800858E0:lI110|H2800858F0 -2800858F0:lI116|H280085900 -280085900:lI32|H280085910 -280085910:lI126|H280085920 -280085920:lI48|H280085930 -280085930:lI112|H280085940 -280085940:lI32|H280085950 -280085950:lI105|H280085960 -280085960:lI115|H280085970 -280085970:lI32|H280085980 -280085980:lI114|H280085990 -280085990:lI101|H2800859A0 -2800859A0:lI109|H2800859B0 -2800859B0:lI111|H2800859C0 -2800859C0:lI116|H2800859D0 -2800859D0:lI101|H2800859E0 -2800859E0:lI32|H2800859F0 -2800859F0:lI111|H280085A00 -280085A00:lI110|H280085A10 -280085A10:lI32|H280085A20 -280085A20:lI110|H280085A30 -280085A30:lI111|H280085A40 -280085A40:lI100|H280085A50 -280085A50:lI101|H280085A60 -280085A60:lI32|H280085A70 -280085A70:lI126|H280085A80 -280085A80:lI48|H280085A90 -280085A90:lI112|H280085AA0 -280085AA0:lI46|N -280085AB0:lI32|H280085AC0 -280085AC0:lI67|H280085AD0 -280085AD0:lI108|H280085AE0 -280085AE0:lI105|H280085AF0 -280085AF0:lI101|H280085B00 -280085B00:lI110|H280085B10 -280085B10:lI116|H280085B20 -280085B20:lI32|H280085B30 -280085B30:lI126|H280085B40 -280085B40:lI48|H280085B50 -280085B50:lI112|H280085B60 -280085B60:lI32|H280085B70 -280085B70:lI105|H280085B80 -280085B80:lI115|H280085B90 -280085B90:lI32|H280085BA0 -280085BA0:lI100|H280085BB0 -280085BB0:lI101|H280085BC0 -280085BC0:lI97|H280085BD0 -280085BD0:lI100|H280085BE0 -280085BE0:lI46|N -280085BF0:t2:N,N -280085C08:lH280085C18|N -280085C18:lI126|H280085C28 -280085C28:lI110|N -280085C38:lI32|H280085C48 -280085C48:lI115|H280085C58 -280085C58:lI116|H280085C68 -280085C68:lI97|H280085C78 -280085C78:lI99|H280085C88 -280085C88:lI107|H280085C98 -280085C98:lI116|H280085CA8 -280085CA8:lI114|H280085CB8 -280085CB8:lI97|H280085CC8 -280085CC8:lI99|H280085CD8 -280085CD8:lI101|H280085CE8 -280085CE8:lI126|H280085CF8 -280085CF8:lI110|H280085D08 -280085D08:lI42|H280085D18 -280085D18:lI42|H280085D28 -280085D28:lI32|N -280085D38:lI42|H280085D48 -280085D48:lI42|H280085D58 -280085D58:lI32|H280085D68 -280085D68:lI67|H280085D78 -280085D78:lI108|H280085D88 -280085D88:lI105|H280085D98 -280085D98:lI101|H280085DA8 -280085DA8:lI110|H280085DB8 -280085DB8:lI116|H280085DC8 -280085DC8:lI32|N -280085DD8:lI42|H280085DE8 -280085DE8:lI42|H280085DF8 -280085DF8:lI32|H280085E08 -280085E08:lI67|H280085E18 -280085E18:lI108|H280085E28 -280085E28:lI105|H280085E38 -280085E38:lI101|H280085E48 -280085E48:lI110|H280085E58 -280085E58:lI116|H280085E68 -280085E68:lI32|H280085E78 -280085E78:lI126|H280085E88 -280085E88:lI112|H280085E98 -280085E98:lI32|H280085EA8 -280085EA8:lI105|H280085EB8 -280085EB8:lI115|H280085EC8 -280085EC8:lI32|H280085ED8 -280085ED8:lI114|H280085EE8 -280085EE8:lI101|H280085EF8 -280085EF8:lI109|H280085F08 -280085F08:lI111|H280085F18 -280085F18:lI116|H280085F28 -280085F28:lI101|H280085F38 -280085F38:lI32|H280085F48 -280085F48:lI111|H280085F58 -280085F58:lI110|H280085F68 -280085F68:lI32|H280085F78 -280085F78:lI110|H280085F88 -280085F88:lI111|H280085F98 -280085F98:lI100|H280085FA8 -280085FA8:lI101|H280085FB8 -280085FB8:lI32|H280085FC8 -280085FC8:lI126|H280085FD8 -280085FD8:lI112|H280085FE8 -280085FE8:lI126|H280085FF8 -280085FF8:lI110|N -280086008:lI42|H280086018 -280086018:lI42|H280086028 -280086028:lI32|H280086038 -280086038:lI67|H280086048 -280086048:lI108|H280086058 -280086058:lI105|H280086068 -280086068:lI101|H280086078 -280086078:lI110|H280086088 -280086088:lI116|H280086098 -280086098:lI32|H2800860A8 -2800860A8:lI126|H2800860B8 -2800860B8:lI112|H2800860C8 -2800860C8:lI32|H2800860D8 -2800860D8:lI105|H2800860E8 -2800860E8:lI115|H2800860F8 -2800860F8:lI32|H280086108 -280086108:lI100|H280086118 -280086118:lI101|H280086128 -280086128:lI97|H280086138 -280086138:lI100|H280086148 -280086148:lI126|H280086158 -280086158:lI110|N -280086168:lI112|N -280086178:lI80|N -280086188:lI48|N -280086198:lI116|N -2800861A8:lH280086208|H2800861B8 -2800861B8:lH280086220|H2800861C8 -2800861C8:lH280086238|H2800861D8 -2800861D8:lH280086250|H2800861E8 -2800861E8:lH280086268|H2800861F8 -2800861F8:lH280086280|N -280086208:t2:AD:format_status,I1 -280086220:t2:AD:format_status,I2 -280086238:t2:A9:terminate,I3 -280086250:t2:AB:code_change,I4 -280086268:t2:AA:state_name,I3 -280086280:t2:AC:handle_event,I4 -280086298:lH280086318|H2800862A8 -2800862A8:lH280086330|H2800862B8 -2800862B8:lH280086348|H2800862C8 -2800862C8:lH280086360|H2800862D8 -2800862D8:lH280086378|H2800862E8 -2800862E8:lH280086390|H2800862F8 -2800862F8:lH2800863A8|H280086308 -280086308:lH2800863C0|N -280086318:t2:A4:init,I1 -280086330:t2:AD:callback_mode,I0 -280086348:t2:AA:state_name,I3 -280086360:t2:AC:handle_event,I4 -280086378:t2:A9:terminate,I3 -280086390:t2:AB:code_change,I4 -2800863A8:t2:AD:format_status,I2 -2800863C0:t2:AD:format_status,I1 -2800863D8:lI108|N -2800863E8:lI114|H2800863D8 -2800863F8:lI101|H2800863E8 -280086408:lI46|H2800863F8 -280086418:lI109|H280086408 -280086428:lI101|H280086418 -280086438:lI116|H280086428 -280086448:lI97|H280086438 -280086458:lI116|H280086448 -280086468:lI115|H280086458 -280086478:lI95|H280086468 -280086488:lI110|H280086478 -280086498:lI101|H280086488 -2800864A8:lI103|H280086498 -2800864B8:t5:A4:data,A3:log,A5:state,A9:postponed,A8:timeouts -2800864E8:E4E:g3AAAABMA28avFfTiJ0lhkokoxIXuNAAAAAAAAAAAHcKZ2VuX3N0YXRlbWEAYgN41eJYdw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -280086510:t7:A4:data,A6:reason,A3:log,A5:state,A5:queue,A9:postponed,A8:timeouts -280086550:tC:A5:label,A4:name,A6:reason,A3:log,A5:state,A5:queue,A7:modules,AB:client_info,AD:callback_mode,A9:postponed,A8:timeouts,AB:state_enter -2800865B8:t4:AB:chars_limit,A5:depth,A8:encoding,AB:single_line -2800865F8:Mf0:H280010188: -280086610:lI112|H280086620 -280086620:lI114|H280086630 -280086630:lI105|H280086640 -280086640:lI109|H280086650 -280086650:lI95|H280086660 -280086660:lI116|H280086670 -280086670:lI116|H280086680 -280086680:lI121|N -280086690:t2:A5:error,A7:enotsup -2800866A8:lH2800866D8|H2800866B8 -2800866B8:lH280086738|H2800866C8 -2800866C8:lH2800867B8|N -2800866D8:lI76|H2800866E8 -2800866E8:lI67|H2800866F8 -2800866F8:lI95|H280086708 -280086708:lI65|H280086718 -280086718:lI76|H280086728 -280086728:lI76|N -280086738:lI76|H280086748 -280086748:lI67|H280086758 -280086758:lI95|H280086768 -280086768:lI67|H280086778 -280086778:lI84|H280086788 -280086788:lI89|H280086798 -280086798:lI80|H2800867A8 -2800867A8:lI69|N -2800867B8:lI76|H2800867C8 -2800867C8:lI65|H2800867D8 -2800867D8:lI78|H2800867E8 -2800867E8:lI71|N -2800867F8:lA7:unicode|N -280086808:Yc1309301C0:0:9C -280086838:Yh7:G1tIG1sySg== -280086850:Yh3:G1tB -280086868:Yh1:Cg== -280086880:Yh1:CA== -280086898:Yh3:G1tD -2800868B0:Yh4:G1sxSQ== -2800868C8:Yh3:G1tK -2800868E0:Yh4:G1s2bg== -2800868F8:Yh15:G1xbKFswLTldKyk7KFswLTldKylS -280086920:t4:A5:input,A4:echo,A3:tty,A5:canon -280086948:Mf4:H280086920:A4:true,A5:false,A4:true,A5:false -280086980:lI84|H280086990 -280086990:lI69|H2800869A0 -2800869A0:lI82|H2800869B0 -2800869B0:lI77|N -2800869C0:lI99|H2800869D0 -2800869D0:lI108|H2800869E0 -2800869E0:lI101|H2800869F0 -2800869F0:lI97|H280086A00 -280086A00:lI114|N -280086A10:lI99|H280086A20 -280086A20:lI111|N -280086A30:lI117|H280086A40 -280086A40:lI112|N -280086A50:lI100|H280086A60 -280086A60:lI111|N -280086A70:lI98|H280086A80 -280086A80:lI115|N -280086A90:lI98|H280086AA0 -280086AA0:lI99|N -280086AB0:lI110|H280086AC0 -280086AC0:lI100|N -280086AD0:lI73|H280086AE0 -280086AE0:lI67|N -280086AF0:lI116|H280086B00 -280086B00:lI97|N -280086B10:lI68|H280086B20 -280086B20:lI67|N -280086B30:lI117|H280086B40 -280086B40:lI55|N -280086B50:lI117|H280086B60 -280086B60:lI54|N -280086B70:t2:A2:ok,H280086B88 -280086B88:YhA:G1slaSVkOyVkUg== -280086BA8:lI99|H280086BB8 -280086BB8:lI100|N -280086BC8:lI120|H280086BD8 -280086BD8:lI110|N -280086BE8:lH280086BF8|N -280086BF8:t2:A5:alias,AF:reply_demonitor -280086C10:Yh0: -280086C20:t2:A11:set_unicode_state,A5:false -280086C38:t2:A5:utf16,A6:little -280086C50:lI13|H280086C60 -280086C60:lI10|N -280086C70:t2:A4:move,I0 -280086C88:lN|N -280086C98:Yh1:Bw== -280086CB0:t2:N,N -280086CC8:Yh1:IA== -280086CE0:Yh1:DQ== -280086CF8:Yh2:DQo= -280086D10:lI94|H280086D20 -280086D20:lI63|N -280086D30:lI0|N -280086D40:lI92|H280086D50 -280086D50:lI36|H280086D60 -280086D60:lI60|H280086D70 -280086D70:lI91|H280086D80 -280086D80:lI94|H280086D90 -280086D90:lI62|H280086DA0 -280086DA0:lI93|H280086DB0 -280086DB0:lI42|H280086DC0 -280086DC0:lI62|N -280086DD0:lI10|N -280086DE0:lI85|H280086DF0 -280086DF0:lI84|H280086E00 -280086E00:lI70|H280086E10 -280086E10:lI45|H280086E20 -280086E20:lI56|N -280086E30:lI108|N -280086E40:lI114|H280086E30 -280086E50:lI101|H280086E40 -280086E60:lI46|H280086E50 -280086E70:lI121|H280086E60 -280086E80:lI116|H280086E70 -280086E90:lI116|H280086E80 -280086EA0:lI95|H280086E90 -280086EB0:lI109|H280086EA0 -280086EC0:lI105|H280086EB0 -280086ED0:lI114|H280086EC0 -280086EE0:lI112|H280086ED0 -280086EF0:E4C:g3AAAABKAY/2CN5VWPSliGwYiyNwoQIAAAAAAAAAAHcIcHJpbV90dHlhAGIEf7BGWHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -280086F18:t2:A4:read,A5:write -280086F30:E4C:g3AAAABKAY/2CN5VWPSliGwYiyNwoQIAAAABAAAAAHcIcHJpbV90dHlhAWIEf7BGWHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -280086F58:E4C:g3AAAABKAY/2CN5VWPSliGwYiyNwoQIAAAACAAAAAHcIcHJpbV90dHlhAmIEf7BGWHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -2800870F0:E1A:g3F3DGVkbGluX2V4cGFuZHcGZXhwYW5kYQI= -280087118:t2:A5:error,A7:timeout -280087130:t2:A5:error,A7:enotsup -280087148:t2:AC:get_password,A6:latin1 -280087160:t2:A5:error,A7:request -280087178:t2:A8:encoding,A7:unicode -280087190:t2:A8:encoding,A6:latin1 -2800871A8:lH2800871B8|N -2800871B8:t2:A4:list,A6:binary -2800871D0:t2:A4:exit,AA:terminated -2800871E8:t3:A5:error,H280087208,N -280087208:t2:A5:error,AB:interrupted -280087220:lAA:new_prompt|N -280087230:lI10|N -280087240:lI27|H280087250 -280087250:lI91|H280087260 -280087260:lI59|H280087270 -280087270:lI49|H280087280 -280087280:lI59|H280087290 -280087290:lI52|H2800872A0 -2800872A0:lI109|H2800872B0 -2800872B0:lI115|H2800872C0 -2800872C0:lI101|H2800872D0 -2800872D0:lI97|H2800872E0 -2800872E0:lI114|H2800872F0 -2800872F0:lI99|H280087300 -280087300:lI104|H280087310 -280087310:lI58|H280087320 -280087320:lI27|H280087330 -280087330:lI91|H280087340 -280087340:lI48|H280087350 -280087350:lI109|H280087360 -280087360:lI32|N -280087370:lI80|H280087380 -280087380:lI114|H280087390 -280087390:lI101|H2800873A0 -2800873A0:lI115|H2800873B0 -2800873B0:lI115|H2800873C0 -2800873C0:lI32|H2800873D0 -2800873D0:lI116|H2800873E0 -2800873E0:lI97|H2800873F0 -2800873F0:lI98|H280087400 -280087400:lI32|H280087410 -280087410:lI116|H280087420 -280087420:lI111|H280087430 -280087430:lI32|H280087440 -280087440:lI115|H280087450 -280087450:lI101|H280087460 -280087460:lI101|H280087470 -280087470:lI32|H280087480 -280087480:lI97|H280087490 -280087490:lI108|H2800874A0 -2800874A0:lI108|H2800874B0 -2800874B0:lI32|H2800874C0 -2800874C0:lI126|H2800874D0 -2800874D0:lI112|H2800874E0 -2800874E0:lI32|H2800874F0 -2800874F0:lI101|H280087500 -280087500:lI120|H280087510 -280087510:lI112|H280087520 -280087520:lI97|H280087530 -280087530:lI110|H280087540 -280087540:lI115|H280087550 -280087550:lI105|H280087560 -280087560:lI111|H280087570 -280087570:lI110|H280087580 -280087580:lI115|N -280087590:lI27|H2800875A0 -2800875A0:lI108|N -2800875B0:t3:N,H2800875D0,N -2800875D0:t2:N,N -2800875E8:lI126|H2800875F8 -2800875F8:lI110|H280087608 -280087608:lI32|H280087618 -280087618:lI32|H280087628 -280087628:lI46|H280087638 -280087638:lI46|H280087648 -280087648:lI46|H280087658 -280087658:lI32|H280087668 -280087668:lI40|H280087678 -280087678:lI126|H280087688 -280087688:lI119|H280087698 -280087698:lI32|H2800876A8 -2800876A8:lI108|H2800876B8 -2800876B8:lI105|H2800876C8 -2800876C8:lI110|H2800876D8 -2800876D8:lI101|H2800876E8 -2800876E8:lI115|H2800876F8 -2800876F8:lI32|H280087708 -280087708:lI111|H280087718 -280087718:lI109|H280087728 -280087728:lI105|H280087738 -280087738:lI116|H280087748 -280087748:lI116|H280087758 -280087758:lI101|H280087768 -280087768:lI100|H280087778 -280087778:lI41|N -280087788:t3:A4:done,A3:eof,A3:eof -2800877A8:lH2800877B8|N -2800877B8:lI10|N -2800877C8:lI36|H2800877D8 -2800877D8:lI10|N -2800877E8:lH2800877F8|N -2800877F8:t3:AC:insert_chars,A7:unicode,H280087818 -280087818:lI10|N -280087828:lI108|N -280087838:lI114|H280087828 -280087848:lI101|H280087838 -280087858:lI46|H280087848 -280087868:lI112|H280087858 -280087878:lI117|H280087868 -280087888:lI111|H280087878 -280087898:lI114|H280087888 -2800878A8:lI103|H280087898 -2800878B8:E49:g3AAAABHAqhn0q4vp+7qt42F8kJsnfMAAAABAAAAAHcFZ3JvdXBhAWIFQz6VWHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -2800878E0:E49:g3AAAABHAqhn0q4vp+7qt42F8kJsnfMAAAACAAAAAHcFZ3JvdXBhAmIFQz6VWHcNbm9ub2RlQG5vaG9zdAAAAAAAAAAAAAAAAA== -280088258:t2:A5:local,AA:logger_sup -280088270:t3:A2:id,A8:shutdown,A5:start -280088290:Mf3:H280088270:A16:logger_handler_watcher,AB:brutal_kill,H2800882C0 -2800882C0:t3:A16:logger_handler_watcher,AA:start_link,N -2800882E0:t3:A8:strategy,A6:period,A9:intensity -280088300:Mf3:H2800882E0:AB:one_for_one,I5,I1 -280088330:lI108|N -280088340:lI114|H280088330 -280088350:lI101|H280088340 -280088360:lI46|H280088350 -280088370:lI112|H280088360 -280088380:lI117|H280088370 -280088390:lI115|H280088380 -2800883A0:lI95|H280088390 -2800883B0:lI114|H2800883A0 -2800883C0:lI101|H2800883B0 -2800883D0:lI103|H2800883C0 -2800883E0:lI103|H2800883D0 -2800883F0:lI111|H2800883E0 -280088400:lI108|H2800883F0 -28008FA28:t2:A5:local,AB:kernel_refc -28008FA40:t2:A2:ok,H28008FA68 -28008FA58:t1:A13:scheduler_wall_time -28008FA68:Mf1:H28008FA58:H28008FA88 -28008FA88:Mf0:H280010188: -28008FAA0:lA5:flush|N -28008FAB0:lI108|N -28008FAC0:lI114|H28008FAB0 -28008FAD0:lI101|H28008FAC0 -28008FAE0:lI46|H28008FAD0 -28008FAF0:lI99|H28008FAE0 -28008FB00:lI102|H28008FAF0 -28008FB10:lI101|H28008FB00 -28008FB20:lI114|H28008FB10 -28008FB30:lI95|H28008FB20 -28008FB40:lI108|H28008FB30 -28008FB50:lI101|H28008FB40 -28008FB60:lI110|H28008FB50 -28008FB70:lI114|H28008FB60 -28008FB80:lI101|H28008FB70 -28008FB90:lI107|H28008FB80 -28008FBB8:t2:A2:ok,H28008FBD0 -28008FBD0:t1:A5:state -28008FBE0:lI82|H28008FBF0 -28008FBF0:lI101|H28008FC00 -28008FC00:lI99|H28008FC10 -28008FC10:lI101|H28008FC20 -28008FC20:lI105|H28008FC30 -28008FC30:lI118|H28008FC40 -28008FC40:lI101|H28008FC50 -28008FC50:lI100|H28008FC60 -28008FC60:lI32|H28008FC70 -28008FC70:lI83|H28008FC80 -28008FC80:lI73|H28008FC90 -28008FC90:lI71|H28008FCA0 -28008FCA0:lI85|H28008FCB0 -28008FCB0:lI83|H28008FCC0 -28008FCC0:lI82|H28008FCD0 -28008FCD0:lI49|N -28008FCE0:lI83|H28008FCF0 -28008FCF0:lI73|H28008FD00 -28008FD00:lI71|H28008FD10 -28008FD10:lI84|H28008FD20 -28008FD20:lI69|H28008FD30 -28008FD30:lI82|H28008FD40 -28008FD40:lI77|H28008FD50 -28008FD50:lI32|H28008FD60 -28008FD60:lI114|H28008FD70 -28008FD70:lI101|H28008FD80 -28008FD80:lI99|H28008FD90 -28008FD90:lI101|H28008FDA0 -28008FDA0:lI105|H28008FDB0 -28008FDB0:lI118|H28008FDC0 -28008FDC0:lI101|H28008FDD0 -28008FDD0:lI100|H28008FDE0 -28008FDE0:lI32|H28008FDF0 -28008FDF0:lI45|H28008FE00 -28008FE00:lI32|H28008FE10 -28008FE10:lI115|H28008FE20 -28008FE20:lI104|H28008FE30 -28008FE30:lI117|H28008FE40 -28008FE40:lI116|H28008FE50 -28008FE50:lI116|H28008FE60 -28008FE60:lI105|H28008FE70 -28008FE70:lI110|H28008FE80 -28008FE80:lI103|H28008FE90 -28008FE90:lI32|H28008FEA0 -28008FEA0:lI100|H28008FEB0 -28008FEB0:lI111|H28008FEC0 -28008FEC0:lI119|H28008FED0 -28008FED0:lI110|H28008FEE0 -28008FEE0:lI126|H28008FEF0 -28008FEF0:lI110|N -28008FF00:lI108|N -28008FF10:lI114|H28008FF00 -28008FF20:lI101|H28008FF10 -28008FF30:lI46|H28008FF20 -28008FF40:lI114|H28008FF30 -28008FF50:lI101|H28008FF40 -28008FF60:lI108|H28008FF50 -28008FF70:lI100|H28008FF60 -28008FF80:lI110|H28008FF70 -28008FF90:lI97|H28008FF80 -28008FFA0:lI104|H28008FF90 -28008FFB0:lI95|H28008FFA0 -28008FFC0:lI108|H28008FFB0 -28008FFD0:lI97|H28008FFC0 -28008FFE0:lI110|H28008FFD0 -28008FFF0:lI103|H28008FFE0 -280090000:lI105|H28008FFF0 -280090010:lI115|H280090000 -280090020:lI95|H280090010 -280090030:lI108|H280090020 -280090040:lI114|H280090030 -280090050:lI101|H280090040 -280091550:lA4:type|H280091560 -280091560:lA4:file|H280091570 -280091570:lA5:modes|H280091580 -280091580:lAA:file_check|H280091590 -280091590:lAC:max_no_bytes|H2800915A0 -2800915A0:lAC:max_no_files|H2800915B0 -2800915B0:lA12:compress_on_rotate|N -2800915C0:lA4:type|H2800915D0 -2800915D0:lA4:file|H2800915E0 -2800915E0:lA5:modes|N -2800915F0:Mf0:H280010188: -280091608:lA3:raw|H280091618 -280091618:lA6:append|N -280091628:lA3:raw|N -280091638:lA5:write|H280091648 -280091648:lA6:append|H280091658 -280091658:lA9:exclusive|N -280091668:t2:A5:error,A1D:file_ctrl_process_not_started -280091680:lA5:flush|N -280091690:lI70|H2800916A0 -2800916A0:lI97|H2800916B0 -2800916B0:lI105|H2800916C0 -2800916C0:lI108|H2800916D0 -2800916D0:lI101|H2800916E0 -2800916E0:lI100|H2800916F0 -2800916F0:lI32|H280091700 -280091700:lI116|H280091710 -280091710:lI111|H280091720 -280091720:lI32|H280091730 -280091730:lI119|H280091740 -280091740:lI114|H280091750 -280091750:lI105|H280091760 -280091760:lI116|H280091770 -280091770:lI101|H280091780 -280091780:lI32|H280091790 -280091790:lI108|H2800917A0 -2800917A0:lI111|H2800917B0 -2800917B0:lI103|H2800917C0 -2800917C0:lI32|H2800917D0 -2800917D0:lI109|H2800917E0 -2800917E0:lI101|H2800917F0 -2800917F0:lI115|H280091800 -280091800:lI115|H280091810 -280091810:lI97|H280091820 -280091820:lI103|H280091830 -280091830:lI101|H280091840 -280091840:lI32|H280091850 -280091850:lI116|H280091860 -280091860:lI111|H280091870 -280091870:lI32|H280091880 -280091880:lI115|H280091890 -280091890:lI116|H2800918A0 -2800918A0:lI100|H2800918B0 -2800918B0:lI111|H2800918C0 -2800918C0:lI117|H2800918D0 -2800918D0:lI116|H2800918E0 -2800918E0:lI44|H2800918F0 -2800918F0:lI32|H280091900 -280091900:lI116|H280091910 -280091910:lI114|H280091920 -280091920:lI121|H280091930 -280091930:lI105|H280091940 -280091940:lI110|H280091950 -280091950:lI103|H280091960 -280091960:lI32|H280091970 -280091970:lI115|H280091980 -280091980:lI116|H280091990 -280091990:lI100|H2800919A0 -2800919A0:lI101|H2800919B0 -2800919B0:lI114|H2800919C0 -2800919C0:lI114|H2800919D0 -2800919D0:lI10|N -2800919E0:t2:A5:error,A6:enoent -2800919F8:lI46|H280091A08 -280091A08:lI48|N -280091A18:lI46|H280091A28 -280091A28:lI103|H280091A38 -280091A38:lI122|N -280091A48:lA4:read|H280091A58 -280091A58:lA6:binary|N -280091A68:lA5:write|N -280091A78:Yh0: -280091A88:lI108|N -280091A98:lI114|H280091A88 -280091AA8:lI101|H280091A98 -280091AB8:lI46|H280091AA8 -280091AC8:lI104|H280091AB8 -280091AD8:lI95|H280091AC8 -280091AE8:lI100|H280091AD8 -280091AF8:lI116|H280091AE8 -280091B08:lI115|H280091AF8 -280091B18:lI95|H280091B08 -280091B28:lI114|H280091B18 -280091B38:lI101|H280091B28 -280091B48:lI103|H280091B38 -280091B58:lI103|H280091B48 -280091B68:lI111|H280091B58 -280091B78:lI108|H280091B68 -280091B88:t7:A4:type,A4:file,A12:compress_on_rotate,AA:file_check,AC:max_no_bytes,AC:max_no_files,A5:modes -280091BC8:t1:A4:type -280091BD8:E50:g3AAAABOAQjqLBPECzXLncj+B21nkB0AAAAAAAAAAHcMbG9nZ2VyX3N0ZF9oYQBiAEdRYFh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280091C00:t4:A12:compress_on_rotate,AA:file_check,AC:max_no_bytes,AC:max_no_files -280091C28:tA:A2:fd,A9:file_name,A6:synced,AA:file_check,A5:modes,AC:handler_name,A5:inode,AA:last_check,A8:sync_res,A9:write_res -280091C80:t2:AC:handler_name,A3:dev -280091C98:t4:A5:count,A4:size,A8:compress,A9:curr_size -280091CD8:Mf0:H280010188: -280091CF0:lAE:sync_mode_qlen|H280091D00 -280091D00:lAE:drop_mode_qlen|H280091D10 -280091D10:lAA:flush_qlen|H280091D20 -280091D20:lA12:burst_limit_enable|H280091D30 -280091D30:lA15:burst_limit_max_count|H280091D40 -280091D40:lA17:burst_limit_window_time|H280091D50 -280091D50:lA14:overload_kill_enable|H280091D60 -280091D60:lA12:overload_kill_qlen|H280091D70 -280091D70:lA16:overload_kill_mem_size|H280091D80 -280091D80:lA1B:overload_kill_restart_after|H280091D90 -280091D90:lA18:filesync_repeat_interval|N -280091DA0:lA18:filesync_repeat_interval|N -280091DB0:lAE:sync_mode_qlen|H280091DC0 -280091DC0:lAE:drop_mode_qlen|H280091DD0 -280091DD0:lAA:flush_qlen|H280091DE0 -280091DE0:lA12:burst_limit_enable|H280091DF0 -280091DF0:lA15:burst_limit_max_count|H280091E00 -280091E00:lA17:burst_limit_window_time|H280091E10 -280091E10:lA14:overload_kill_enable|H280091E20 -280091E20:lA12:overload_kill_qlen|H280091E30 -280091E30:lA16:overload_kill_mem_size|H280091E40 -280091E40:lA1B:overload_kill_restart_after|N -280091E50:lI95|N -280091E60:lAE:sync_mode_qlen|H280091E70 -280091E70:lAE:drop_mode_qlen|H280091E80 -280091E80:lAA:flush_qlen|H280091E90 -280091E90:lA12:burst_limit_enable|H280091EA0 -280091EA0:lA15:burst_limit_max_count|H280091EB0 -280091EB0:lA17:burst_limit_window_time|H280091EC0 -280091EC0:lA14:overload_kill_enable|H280091ED0 -280091ED0:lA12:overload_kill_qlen|H280091EE0 -280091EE0:lA16:overload_kill_mem_size|H280091EF0 -280091EF0:lA1B:overload_kill_restart_after|H280091F00 -280091F00:lA18:filesync_repeat_interval|H280091F10 -280091F10:lA3:olp|N -280091F20:lA3:olp|N -280091F30:lAF:logger_h_common|N -280091F40:lI72|H280091F50 -280091F50:lI97|H280091F60 -280091F60:lI110|H280091F70 -280091F70:lI100|H280091F80 -280091F80:lI108|H280091F90 -280091F90:lI101|H280091FA0 -280091FA0:lI114|H280091FB0 -280091FB0:lI32|H280091FC0 -280091FC0:lI126|H280091FD0 -280091FD0:lI112|H280091FE0 -280091FE0:lI32|H280091FF0 -280091FF0:lI111|H280092000 -280092000:lI118|H280092010 -280092010:lI101|H280092020 -280092020:lI114|H280092030 -280092030:lI108|H280092040 -280092040:lI111|H280092050 -280092050:lI97|H280092060 -280092060:lI100|H280092070 -280092070:lI101|H280092080 -280092080:lI100|H280092090 -280092090:lI32|H2800920A0 -2800920A0:lI97|H2800920B0 -2800920B0:lI110|H2800920C0 -2800920C0:lI100|H2800920D0 -2800920D0:lI32|H2800920E0 -2800920E0:lI115|H2800920F0 -2800920F0:lI116|H280092100 -280092100:lI111|H280092110 -280092110:lI112|H280092120 -280092120:lI112|H280092130 -280092130:lI105|H280092140 -280092140:lI110|H280092150 -280092150:lI103|N -280092160:t2:A5:error,A4:busy -280092178:t2:A5:error,AC:handler_busy -280092190:lI72|H2800921A0 -2800921A0:lI97|H2800921B0 -2800921B0:lI110|H2800921C0 -2800921C0:lI100|H2800921D0 -2800921D0:lI108|H2800921E0 -2800921E0:lI101|H2800921F0 -2800921F0:lI114|H280092200 -280092200:lI32|H280092210 -280092210:lI126|H280092220 -280092220:lI112|H280092230 -280092230:lI32|H280092240 -280092240:lI115|H280092250 -280092250:lI119|H280092260 -280092260:lI105|H280092270 -280092270:lI116|H280092280 -280092280:lI99|H280092290 -280092290:lI104|H2800922A0 -2800922A0:lI101|H2800922B0 -2800922B0:lI100|H2800922C0 -2800922C0:lI32|H2800922D0 -2800922D0:lI102|H2800922E0 -2800922E0:lI114|H2800922F0 -2800922F0:lI111|H280092300 -280092300:lI109|H280092310 -280092310:lI32|H280092320 -280092320:lI126|H280092330 -280092330:lI112|H280092340 -280092340:lI32|H280092350 -280092350:lI116|H280092360 -280092360:lI111|H280092370 -280092370:lI32|H280092380 -280092380:lI126|H280092390 -280092390:lI112|H2800923A0 -2800923A0:lI32|H2800923B0 -2800923B0:lI109|H2800923C0 -2800923C0:lI111|H2800923D0 -2800923D0:lI100|H2800923E0 -2800923E0:lI101|N -2800923F0:lI72|H280092400 -280092400:lI97|H280092410 -280092410:lI110|H280092420 -280092420:lI100|H280092430 -280092430:lI108|H280092440 -280092440:lI101|H280092450 -280092450:lI114|H280092460 -280092460:lI32|H280092470 -280092470:lI126|H280092480 -280092480:lI112|H280092490 -280092490:lI32|H2800924A0 -2800924A0:lI102|H2800924B0 -2800924B0:lI108|H2800924C0 -2800924C0:lI117|H2800924D0 -2800924D0:lI115|H2800924E0 -2800924E0:lI104|H2800924F0 -2800924F0:lI101|H280092500 -280092500:lI100|H280092510 -280092510:lI32|H280092520 -280092520:lI126|H280092530 -280092530:lI119|H280092540 -280092540:lI32|H280092550 -280092550:lI108|H280092560 -280092560:lI111|H280092570 -280092570:lI103|H280092580 -280092580:lI32|H280092590 -280092590:lI101|H2800925A0 -2800925A0:lI118|H2800925B0 -2800925B0:lI101|H2800925C0 -2800925C0:lI110|H2800925D0 -2800925D0:lI116|H2800925E0 -2800925E0:lI115|N -2800925F0:lI72|H280092600 -280092600:lI97|H280092610 -280092610:lI110|H280092620 -280092620:lI100|H280092630 -280092630:lI108|H280092640 -280092640:lI101|H280092650 -280092650:lI114|H280092660 -280092660:lI32|H280092670 -280092670:lI126|H280092680 -280092680:lI112|H280092690 -280092690:lI32|H2800926A0 -2800926A0:lI114|H2800926B0 -2800926B0:lI101|H2800926C0 -2800926C0:lI115|H2800926D0 -2800926D0:lI116|H2800926E0 -2800926E0:lI97|H2800926F0 -2800926F0:lI114|H280092700 -280092700:lI116|H280092710 -280092710:lI101|H280092720 -280092720:lI100|N -280092730:t1:A9:formatter -280092740:Mf1:H280092730:H280092760 -280092760:t2:A10:logger_formatter,H280092790 -280092778:t2:AB:single_line,AD:legacy_header -280092790:Mf2:H280092778:A5:false,A4:true -2800927B8:E1F:g3F3BmxvZ2dlcncRZm9ybWF0X290cF9yZXBvcnRhAQ== -2800927E0:t2:A10:logger_formatter,H280092810 -2800927F8:t2:AB:single_line,AD:legacy_header -280092810:Mf2:H2800927F8:A5:false,A4:true -280092838:t3:A4:line,A4:file,A3:mfa -280092858:Mf3:H280092838:I398,H280092888,H2800929B8 -280092888:lI108|H280092898 -280092898:lI111|H2800928A8 -2800928A8:lI103|H2800928B8 -2800928B8:lI103|H2800928C8 -2800928C8:lI101|H2800928D8 -2800928D8:lI114|H2800928E8 -2800928E8:lI95|H2800928F8 -2800928F8:lI104|H280092908 -280092908:lI95|H280092918 -280092918:lI99|H280092928 -280092928:lI111|H280092938 -280092938:lI109|H280092948 -280092948:lI109|H280092958 -280092958:lI111|H280092968 -280092968:lI110|H280092978 -280092978:lI46|H280092988 -280092988:lI101|H280092998 -280092998:lI114|H2800929A8 -2800929A8:lI108|N -2800929B8:t3:AF:logger_h_common,A10:do_log_to_binary,I2 -2800929D8:Yh22:Rk9STUFUVEVSIEVSUk9SOiBiYWQgcmV0dXJuIHZhbHVlCg== -280092A10:t3:A4:line,A4:file,A3:mfa -280092A30:Mf3:H280092A10:I410,H280092A60,H280092B90 -280092A60:lI108|H280092A70 -280092A70:lI111|H280092A80 -280092A80:lI103|H280092A90 -280092A90:lI103|H280092AA0 -280092AA0:lI101|H280092AB0 -280092AB0:lI114|H280092AC0 -280092AC0:lI95|H280092AD0 -280092AD0:lI104|H280092AE0 -280092AE0:lI95|H280092AF0 -280092AF0:lI99|H280092B00 -280092B00:lI111|H280092B10 -280092B10:lI109|H280092B20 -280092B20:lI109|H280092B30 -280092B30:lI111|H280092B40 -280092B40:lI110|H280092B50 -280092B50:lI46|H280092B60 -280092B60:lI101|H280092B70 -280092B70:lI114|H280092B80 -280092B80:lI108|N -280092B90:t3:AF:logger_h_common,AA:try_format,I3 -280092BB0:lI68|H280092BC0 -280092BC0:lI69|H280092BD0 -280092BD0:lI70|H280092BE0 -280092BE0:lI65|H280092BF0 -280092BF0:lI85|H280092C00 -280092C00:lI76|H280092C10 -280092C10:lI84|H280092C20 -280092C20:lI32|H280092C30 -280092C30:lI70|H280092C40 -280092C40:lI79|H280092C50 -280092C50:lI82|H280092C60 -280092C60:lI77|H280092C70 -280092C70:lI65|H280092C80 -280092C80:lI84|H280092C90 -280092C90:lI84|H280092CA0 -280092CA0:lI69|H280092CB0 -280092CB0:lI82|H280092CC0 -280092CC0:lI32|H280092CD0 -280092CD0:lI67|H280092CE0 -280092CE0:lI82|H280092CF0 -280092CF0:lI65|H280092D00 -280092D00:lI83|H280092D10 -280092D10:lI72|H280092D20 -280092D20:lI69|H280092D30 -280092D30:lI68|H280092D40 -280092D40:lI10|N -280092D50:lI70|H280092D60 -280092D60:lI79|H280092D70 -280092D70:lI82|H280092D80 -280092D80:lI77|H280092D90 -280092D90:lI65|H280092DA0 -280092DA0:lI84|H280092DB0 -280092DB0:lI84|H280092DC0 -280092DC0:lI69|H280092DD0 -280092DD0:lI82|H280092DE0 -280092DE0:lI32|H280092DF0 -280092DF0:lI67|H280092E00 -280092E00:lI82|H280092E10 -280092E10:lI65|H280092E20 -280092E20:lI83|H280092E30 -280092E30:lI72|H280092E40 -280092E40:lI58|H280092E50 -280092E50:lI32|H280092E60 -280092E60:lI126|H280092E70 -280092E70:lI116|H280092E80 -280092E80:lI112|N -280092E90:t1:A18:filesync_repeat_interval -280092EA0:Mf1:H280092E90:I5000 -280092EC0:lI108|N -280092ED0:lI114|H280092EC0 -280092EE0:lI101|H280092ED0 -280092EF0:lI46|H280092EE0 -280092F00:lI110|H280092EF0 -280092F10:lI111|H280092F00 -280092F20:lI109|H280092F10 -280092F30:lI109|H280092F20 -280092F40:lI111|H280092F30 -280092F50:lI99|H280092F40 -280092F60:lI95|H280092F50 -280092F70:lI104|H280092F60 -280092F80:lI95|H280092F70 -280092F90:lI114|H280092F80 -280092FA0:lI101|H280092F90 -280092FB0:lI103|H280092FA0 -280092FC0:lI103|H280092FB0 -280092FD0:lI111|H280092FC0 -280092FE0:lI108|H280092FD0 -280092FF0:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -280093028:t1:A4:time -280093038:t3:A4:meta,A3:msg,A5:level -280093058:t1:A18:filesync_repeat_interval -2800B0A58:lI115|H2800B0A68 -2800B0A68:lI116|H2800B0A78 -2800B0A78:lI97|H2800B0A88 -2800B0A88:lI110|H2800B0A98 -2800B0A98:lI100|H2800B0AA8 -2800B0AA8:lI95|H2800B0AB8 -2800B0AB8:lI97|H2800B0AC8 -2800B0AC8:lI108|H2800B0AD8 -2800B0AD8:lI111|H2800B0AE8 -2800B0AE8:lI110|H2800B0AF8 -2800B0AF8:lI101|H2800B0B08 -2800B0B08:lI95|N -2800B0B18:t2:A4:line,I173 -2800B0B30:t2:A6:module,AD:httpc_manager -2800B0B48:lI105|H2800B0B58 -2800B0B58:lI110|H2800B0B68 -2800B0B68:lI115|H2800B0B78 -2800B0B78:lI101|H2800B0B88 -2800B0B88:lI114|H2800B0B98 -2800B0B98:lI116|H2800B0BA8 -2800B0BA8:lI32|H2800B0BB8 -2800B0BB8:lI115|H2800B0BC8 -2800B0BC8:lI101|H2800B0BD8 -2800B0BD8:lI115|H2800B0BE8 -2800B0BE8:lI115|H2800B0BF8 -2800B0BF8:lI105|H2800B0C08 -2800B0C08:lI111|H2800B0C18 -2800B0C18:lI110|N -2800B0C28:t2:A4:line,I188 -2800B0C40:lI108|H2800B0C50 -2800B0C50:lI111|H2800B0C60 -2800B0C60:lI111|H2800B0C70 -2800B0C70:lI107|H2800B0C80 -2800B0C80:lI117|H2800B0C90 -2800B0C90:lI112|H2800B0CA0 -2800B0CA0:lI32|H2800B0CB0 -2800B0CB0:lI115|H2800B0CC0 -2800B0CC0:lI101|H2800B0CD0 -2800B0CD0:lI115|H2800B0CE0 -2800B0CE0:lI115|H2800B0CF0 -2800B0CF0:lI105|H2800B0D00 -2800B0D00:lI111|H2800B0D10 -2800B0D10:lI110|N -2800B0D20:t2:A4:line,I205 -2800B0D38:lI117|H2800B0D48 -2800B0D48:lI112|H2800B0D58 -2800B0D58:lI100|H2800B0D68 -2800B0D68:lI97|H2800B0D78 -2800B0D78:lI116|H2800B0D88 -2800B0D88:lI101|H2800B0D98 -2800B0D98:lI32|H2800B0DA8 -2800B0DA8:lI115|H2800B0DB8 -2800B0DB8:lI101|H2800B0DC8 -2800B0DC8:lI115|H2800B0DD8 -2800B0DD8:lI115|H2800B0DE8 -2800B0DE8:lI105|H2800B0DF8 -2800B0DF8:lI111|H2800B0E08 -2800B0E08:lI110|N -2800B0E18:t2:A4:line,I225 -2800B0E30:lI100|H2800B0E40 -2800B0E40:lI101|H2800B0E50 -2800B0E50:lI108|H2800B0E60 -2800B0E60:lI101|H2800B0E70 -2800B0E70:lI116|H2800B0E80 -2800B0E80:lI101|H2800B0E90 -2800B0E90:lI32|H2800B0EA0 -2800B0EA0:lI115|H2800B0EB0 -2800B0EB0:lI101|H2800B0EC0 -2800B0EC0:lI115|H2800B0ED0 -2800B0ED0:lI115|H2800B0EE0 -2800B0EE0:lI105|H2800B0EF0 -2800B0EF0:lI111|H2800B0F00 -2800B0F00:lI110|N -2800B0F10:t2:A4:line,I243 -2800B0F28:lI119|H2800B0F38 -2800B0F38:lI104|H2800B0F48 -2800B0F48:lI105|H2800B0F58 -2800B0F58:lI99|H2800B0F68 -2800B0F68:lI104|H2800B0F78 -2800B0F78:lI95|H2800B0F88 -2800B0F88:lI115|H2800B0F98 -2800B0F98:lI101|H2800B0FA8 -2800B0FA8:lI115|H2800B0FB8 -2800B0FB8:lI115|H2800B0FC8 -2800B0FC8:lI105|H2800B0FD8 -2800B0FD8:lI111|H2800B0FE8 -2800B0FE8:lI110|H2800B0FF8 -2800B0FF8:lI115|N -2800B1008:t2:A4:line,I276 -2800B1020:lI119|H2800B1030 -2800B1030:lI104|H2800B1040 -2800B1040:lI105|H2800B1050 -2800B1050:lI99|H2800B1060 -2800B1060:lI104|H2800B1070 -2800B1070:lI95|H2800B1080 -2800B1080:lI115|H2800B1090 -2800B1090:lI101|H2800B10A0 -2800B10A0:lI115|H2800B10B0 -2800B10B0:lI115|H2800B10C0 -2800B10C0:lI105|H2800B10D0 -2800B10D0:lI111|H2800B10E0 -2800B10E0:lI110|H2800B10F0 -2800B10F0:lI95|H2800B1100 -2800B1100:lI105|H2800B1110 -2800B1110:lI110|H2800B1120 -2800B1120:lI102|H2800B1130 -2800B1130:lI111|N -2800B1140:t2:A4:line,I406 -2800B1158:lI115|H2800B1168 -2800B1168:lI116|H2800B1178 -2800B1178:lI97|H2800B1188 -2800B1188:lI114|H2800B1198 -2800B1198:lI116|H2800B11A8 -2800B11A8:lI105|H2800B11B8 -2800B11B8:lI110|H2800B11C8 -2800B11C8:lI103|N -2800B11D8:t2:A4:line,I409 -2800B11F0:lI115|H2800B1200 -2800B1200:lI116|H2800B1210 -2800B1210:lI97|H2800B1220 -2800B1220:lI114|H2800B1230 -2800B1230:lI116|H2800B1240 -2800B1240:lI101|H2800B1250 -2800B1250:lI100|N -2800B1260:lI99|H2800B1270 -2800B1270:lI114|H2800B1280 -2800B1280:lI101|H2800B1290 -2800B1290:lI97|H2800B12A0 -2800B12A0:lI116|H2800B12B0 -2800B12B0:lI101|H2800B12C0 -2800B12C0:lI32|H2800B12D0 -2800B12D0:lI115|H2800B12E0 -2800B12E0:lI101|H2800B12F0 -2800B12F0:lI115|H2800B1300 -2800B1300:lI115|H2800B1310 -2800B1310:lI105|H2800B1320 -2800B1320:lI111|H2800B1330 -2800B1330:lI110|H2800B1340 -2800B1340:lI32|H2800B1350 -2800B1350:lI100|H2800B1360 -2800B1360:lI98|N -2800B1370:lH2800B1390|H2800B1380 -2800B1380:lH2800B13A8|N -2800B1390:t2:A6:module,AD:httpc_manager -2800B13A8:t2:A4:line,I420 -2800B13C0:lA6:public|H2800B13D0 -2800B13D0:lA3:set|H2800B13E0 -2800B13E0:lAB:named_table|H2800B13F0 -2800B13F0:lH2800B1400|N -2800B1400:t2:A6:keypos,I2 -2800B1418:lI99|H2800B1428 -2800B1428:lI114|H2800B1438 -2800B1438:lI101|H2800B1448 -2800B1448:lI97|H2800B1458 -2800B1458:lI116|H2800B1468 -2800B1468:lI101|H2800B1478 -2800B1478:lI32|H2800B1488 -2800B1488:lI104|H2800B1498 -2800B1498:lI97|H2800B14A8 -2800B14A8:lI110|H2800B14B8 -2800B14B8:lI100|H2800B14C8 -2800B14C8:lI108|H2800B14D8 -2800B14D8:lI101|H2800B14E8 -2800B14E8:lI114|H2800B14F8 -2800B14F8:lI47|H2800B1508 -2800B1508:lI114|H2800B1518 -2800B1518:lI101|H2800B1528 -2800B1528:lI113|H2800B1538 -2800B1538:lI117|H2800B1548 -2800B1548:lI101|H2800B1558 -2800B1558:lI115|H2800B1568 -2800B1568:lI116|H2800B1578 -2800B1578:lI32|H2800B1588 -2800B1588:lI100|H2800B1598 -2800B1598:lI98|N -2800B15A8:lH2800B15C8|H2800B15B8 -2800B15B8:lH2800B15E0|N -2800B15C8:t2:A6:module,AD:httpc_manager -2800B15E0:t2:A4:line,I426 -2800B15F8:lA9:protected|H2800B1608 -2800B1608:lA3:set|H2800B1618 -2800B1618:lAB:named_table|H2800B1628 -2800B1628:lH2800B1638|N -2800B1638:t2:A6:keypos,I1 -2800B1650:lI99|H2800B1660 -2800B1660:lI114|H2800B1670 -2800B1670:lI101|H2800B1680 -2800B1680:lI97|H2800B1690 -2800B1690:lI116|H2800B16A0 -2800B16A0:lI101|H2800B16B0 -2800B16B0:lI32|H2800B16C0 -2800B16C0:lI99|H2800B16D0 -2800B16D0:lI111|H2800B16E0 -2800B16E0:lI111|H2800B16F0 -2800B16F0:lI107|H2800B1700 -2800B1700:lI105|H2800B1710 -2800B1710:lI101|H2800B1720 -2800B1720:lI32|H2800B1730 -2800B1730:lI100|H2800B1740 -2800B1740:lI98|N -2800B1750:lH2800B1770|H2800B1760 -2800B1760:lH2800B1788|N -2800B1770:t2:A6:module,AD:httpc_manager -2800B1788:t2:A4:line,I431 -2800B17A0:tF:A7:options,H2800B1820,H2800B1838,I0,I2,I5,I120000,I2,A8:disabled,A5:false,A4:inet,A7:default,A7:default,N,A9:undefined -2800B1820:t2:A9:undefined,N -2800B1838:t2:A9:undefined,N -2800B1850:t2:A4:line,I474 -2800B1868:lI119|H2800B1878 -2800B1878:lI104|H2800B1888 -2800B1888:lI105|H2800B1898 -2800B1898:lI99|H2800B18A8 -2800B18A8:lI104|H2800B18B8 -2800B18B8:lI32|H2800B18C8 -2800B18C8:lI99|H2800B18D8 -2800B18D8:lI111|H2800B18E8 -2800B18E8:lI111|H2800B18F8 -2800B18F8:lI107|H2800B1908 -2800B1908:lI105|H2800B1918 -2800B1918:lI101|H2800B1928 -2800B1928:lI115|N -2800B1938:t2:A4:line,I454 -2800B1950:lI114|H2800B1960 -2800B1960:lI101|H2800B1970 -2800B1970:lI113|H2800B1980 -2800B1980:lI117|H2800B1990 -2800B1990:lI101|H2800B19A0 -2800B19A0:lI115|H2800B19B0 -2800B19B0:lI116|N -2800B19C0:t2:A4:line,I485 -2800B19D8:lI103|H2800B19E8 -2800B19E8:lI101|H2800B19F8 -2800B19F8:lI116|H2800B1A08 -2800B1A08:lI32|H2800B1A18 -2800B1A18:lI111|H2800B1A28 -2800B1A28:lI112|H2800B1A38 -2800B1A38:lI116|H2800B1A48 -2800B1A48:lI105|H2800B1A58 -2800B1A58:lI111|H2800B1A68 -2800B1A68:lI110|H2800B1A78 -2800B1A78:lI115|N -2800B1A88:lH2800B1AA8|H2800B1A98 -2800B1A98:lH2800B1AC0|N -2800B1AA8:t2:A6:module,AD:httpc_manager -2800B1AC0:t2:A4:line,I468 -2800B1AD8:lI114|H2800B1AE8 -2800B1AE8:lI101|H2800B1AF8 -2800B1AF8:lI115|H2800B1B08 -2800B1B08:lI101|H2800B1B18 -2800B1B18:lI116|H2800B1B28 -2800B1B28:lI32|H2800B1B38 -2800B1B38:lI99|H2800B1B48 -2800B1B48:lI111|H2800B1B58 -2800B1B58:lI111|H2800B1B68 -2800B1B68:lI107|H2800B1B78 -2800B1B78:lI105|H2800B1B88 -2800B1B88:lI101|H2800B1B98 -2800B1B98:lI115|N -2800B1BA8:lH2800B1BC8|H2800B1BB8 -2800B1BB8:lH2800B1BE0|N -2800B1BC8:t2:A6:module,AD:httpc_manager -2800B1BE0:t2:A4:line,I463 -2800B1BF8:lI105|H2800B1C08 -2800B1C08:lI110|H2800B1C18 -2800B1C18:lI102|H2800B1C28 -2800B1C28:lI111|N -2800B1C38:lH2800B1C58|H2800B1C48 -2800B1C48:lH2800B1C70|N -2800B1C58:t2:A6:module,AD:httpc_manager -2800B1C70:t2:A4:line,I491 -2800B1C88:lI114|H2800B1C98 -2800B1C98:lI101|H2800B1CA8 -2800B1CA8:lI99|H2800B1CB8 -2800B1CB8:lI101|H2800B1CC8 -2800B1CC8:lI105|H2800B1CD8 -2800B1CD8:lI118|H2800B1CE8 -2800B1CE8:lI101|H2800B1CF8 -2800B1CF8:lI100|H2800B1D08 -2800B1D08:lI32|H2800B1D18 -2800B1D18:lI117|H2800B1D28 -2800B1D28:lI110|H2800B1D38 -2800B1D38:lI107|H2800B1D48 -2800B1D48:lI110|H2800B1D58 -2800B1D58:lI111|H2800B1D68 -2800B1D68:lI119|H2800B1D78 -2800B1D78:lI110|H2800B1D88 -2800B1D88:lI32|H2800B1D98 -2800B1D98:lI114|H2800B1DA8 -2800B1DA8:lI101|H2800B1DB8 -2800B1DB8:lI113|H2800B1DC8 -2800B1DC8:lI117|H2800B1DD8 -2800B1DD8:lI101|H2800B1DE8 -2800B1DE8:lI115|H2800B1DF8 -2800B1DF8:lI116|H2800B1E08 -2800B1E08:lI126|H2800B1E18 -2800B1E18:lI110|H2800B1E28 -2800B1E28:lI32|H2800B1E38 -2800B1E38:lI32|H2800B1E48 -2800B1E48:lI32|H2800B1E58 -2800B1E58:lI82|H2800B1E68 -2800B1E68:lI101|H2800B1E78 -2800B1E78:lI113|H2800B1E88 -2800B1E88:lI58|H2800B1E98 -2800B1E98:lI32|H2800B1EA8 -2800B1EA8:lI32|H2800B1EB8 -2800B1EB8:lI126|H2800B1EC8 -2800B1EC8:lI112|H2800B1ED8 -2800B1ED8:lI126|H2800B1EE8 -2800B1EE8:lI110|H2800B1EF8 -2800B1EF8:lI32|H2800B1F08 -2800B1F08:lI32|H2800B1F18 -2800B1F18:lI32|H2800B1F28 -2800B1F28:lI70|H2800B1F38 -2800B1F38:lI114|H2800B1F48 -2800B1F48:lI111|H2800B1F58 -2800B1F58:lI109|H2800B1F68 -2800B1F68:lI58|H2800B1F78 -2800B1F78:lI32|H2800B1F88 -2800B1F88:lI126|H2800B1F98 -2800B1F98:lI112|N -2800B1FA8:t2:A5:error,AD:API_violation -2800B1FC0:t2:A4:line,I542 -2800B1FD8:lI115|H2800B1FE8 -2800B1FE8:lI101|H2800B1FF8 -2800B1FF8:lI116|H2800B2008 -2800B2008:lI32|H2800B2018 -2800B2018:lI111|H2800B2028 -2800B2028:lI112|H2800B2038 -2800B2038:lI116|H2800B2048 -2800B2048:lI105|H2800B2058 -2800B2058:lI111|H2800B2068 -2800B2068:lI110|H2800B2078 -2800B2078:lI115|N -2800B2088:t2:A4:line,I537 -2800B20A0:lI114|H2800B20B0 -2800B20B0:lI101|H2800B20C0 -2800B20C0:lI113|H2800B20D0 -2800B20D0:lI117|H2800B20E0 -2800B20E0:lI101|H2800B20F0 -2800B20F0:lI115|H2800B2100 -2800B2100:lI116|H2800B2110 -2800B2110:lI32|H2800B2120 -2800B2120:lI100|H2800B2130 -2800B2130:lI111|H2800B2140 -2800B2140:lI110|H2800B2150 -2800B2150:lI101|N -2800B2160:lI114|H2800B2170 -2800B2170:lI101|H2800B2180 -2800B2180:lI99|H2800B2190 -2800B2190:lI101|H2800B21A0 -2800B21A0:lI105|H2800B21B0 -2800B21B0:lI118|H2800B21C0 -2800B21C0:lI101|H2800B21D0 -2800B21D0:lI100|H2800B21E0 -2800B21E0:lI32|H2800B21F0 -2800B21F0:lI117|H2800B2200 -2800B2200:lI110|H2800B2210 -2800B2210:lI107|H2800B2220 -2800B2220:lI110|H2800B2230 -2800B2230:lI111|H2800B2240 -2800B2240:lI119|H2800B2250 -2800B2250:lI110|H2800B2260 -2800B2260:lI32|H2800B2270 -2800B2270:lI109|H2800B2280 -2800B2280:lI101|H2800B2290 -2800B2290:lI115|H2800B22A0 -2800B22A0:lI115|H2800B22B0 -2800B22B0:lI97|H2800B22C0 -2800B22C0:lI103|H2800B22D0 -2800B22D0:lI101|H2800B22E0 -2800B22E0:lI126|H2800B22F0 -2800B22F0:lI110|H2800B2300 -2800B2300:lI32|H2800B2310 -2800B2310:lI32|H2800B2320 -2800B2320:lI32|H2800B2330 -2800B2330:lI77|H2800B2340 -2800B2340:lI115|H2800B2350 -2800B2350:lI103|H2800B2360 -2800B2360:lI58|H2800B2370 -2800B2370:lI32|H2800B2380 -2800B2380:lI126|H2800B2390 -2800B2390:lI112|N -2800B23A0:lI85|H2800B23B0 -2800B23B0:lI110|H2800B23C0 -2800B23C0:lI107|H2800B23D0 -2800B23D0:lI110|H2800B23E0 -2800B23E0:lI111|H2800B23F0 -2800B23F0:lI119|H2800B2400 -2800B2400:lI110|H2800B2410 -2800B2410:lI32|H2800B2420 -2800B2420:lI109|H2800B2430 -2800B2430:lI101|H2800B2440 -2800B2440:lI115|H2800B2450 -2800B2450:lI115|H2800B2460 -2800B2460:lI97|H2800B2470 -2800B2470:lI103|H2800B2480 -2800B2480:lI101|H2800B2490 -2800B2490:lI32|H2800B24A0 -2800B24A0:lI105|H2800B24B0 -2800B24B0:lI110|H2800B24C0 -2800B24C0:lI32|H2800B24D0 -2800B24D0:lI104|H2800B24E0 -2800B24E0:lI116|H2800B24F0 -2800B24F0:lI116|H2800B2500 -2800B2500:lI112|H2800B2510 -2800B2510:lI99|H2800B2520 -2800B2520:lI95|H2800B2530 -2800B2530:lI109|H2800B2540 -2800B2540:lI97|H2800B2550 -2800B2550:lI110|H2800B2560 -2800B2560:lI97|H2800B2570 -2800B2570:lI103|H2800B2580 -2800B2580:lI101|H2800B2590 -2800B2590:lI114|H2800B25A0 -2800B25A0:lI58|H2800B25B0 -2800B25B0:lI104|H2800B25C0 -2800B25C0:lI97|H2800B25D0 -2800B25D0:lI110|H2800B25E0 -2800B25E0:lI100|H2800B25F0 -2800B25F0:lI108|H2800B2600 -2800B2600:lI101|H2800B2610 -2800B2610:lI95|H2800B2620 -2800B2620:lI105|H2800B2630 -2800B2630:lI110|H2800B2640 -2800B2640:lI102|H2800B2650 -2800B2650:lI111|H2800B2660 -2800B2660:lI32|H2800B2670 -2800B2670:lI126|H2800B2680 -2800B2680:lI112|H2800B2690 -2800B2690:lI126|H2800B26A0 -2800B26A0:lI110|N -2800B26B0:lA5:proxy|H2800B26C0 -2800B26C0:lAB:https_proxy|H2800B26D0 -2800B26D0:lA10:pipeline_timeout|H2800B26E0 -2800B26E0:lA13:max_pipeline_length|H2800B26F0 -2800B26F0:lA15:max_keep_alive_length|H2800B2700 -2800B2700:lA12:keep_alive_timeout|H2800B2710 -2800B2710:lAC:max_sessions|H2800B2720 -2800B2720:lA7:cookies|H2800B2730 -2800B2730:lA7:verbose|H2800B2740 -2800B2740:lA8:ipfamily|H2800B2750 -2800B2750:lA2:ip|H2800B2760 -2800B2760:lA4:port|H2800B2770 -2800B2770:lAB:socket_opts|H2800B2780 -2800B2780:lAB:unix_socket|N -2800B2790:t3:A2:$2,A2:$1,A1:_ -2800B27B0:lI72|H2800B27C0 -2800B27C0:lI84|H2800B27D0 -2800B27D0:lI84|H2800B27E0 -2800B27E0:lI80|H2800B27F0 -2800B27F0:lI47|H2800B2800 -2800B2800:lI49|H2800B2810 -2800B2810:lI46|H2800B2820 -2800B2820:lI48|N -2800B2830:lI99|H2800B2840 -2800B2840:lI108|H2800B2850 -2800B2850:lI111|H2800B2860 -2800B2860:lI115|H2800B2870 -2800B2870:lI101|N -2800B2880:t2:A4:line,I817 -2800B2898:lI115|H2800B28A8 -2800B28A8:lI101|H2800B28B8 -2800B28B8:lI108|H2800B28C8 -2800B28C8:lI101|H2800B28D8 -2800B28D8:lI99|H2800B28E8 -2800B28E8:lI116|H2800B28F8 -2800B28F8:lI32|H2800B2908 -2800B2908:lI115|H2800B2918 -2800B2918:lI101|H2800B2928 -2800B2928:lI115|H2800B2938 -2800B2938:lI115|H2800B2948 -2800B2948:lI105|H2800B2958 -2800B2958:lI111|H2800B2968 -2800B2968:lI110|N -2800B2978:t2:A4:line,I838 -2800B2990:lI115|H2800B29A0 -2800B29A0:lI101|H2800B29B0 -2800B29B0:lI108|H2800B29C0 -2800B29C0:lI101|H2800B29D0 -2800B29D0:lI99|H2800B29E0 -2800B29E0:lI116|H2800B29F0 -2800B29F0:lI32|H2800B2A00 -2800B2A00:lI115|H2800B2A10 -2800B2A10:lI101|H2800B2A20 -2800B2A20:lI115|H2800B2A30 -2800B2A30:lI115|H2800B2A40 -2800B2A40:lI105|H2800B2A50 -2800B2A50:lI111|H2800B2A60 -2800B2A60:lI110|H2800B2A70 -2800B2A70:lI32|H2800B2A80 -2800B2A80:lI45|H2800B2A90 -2800B2A90:lI32|H2800B2AA0 -2800B2AA0:lI110|H2800B2AB0 -2800B2AB0:lI111|H2800B2AC0 -2800B2AC0:lI32|H2800B2AD0 -2800B2AD0:lI99|H2800B2AE0 -2800B2AE0:lI97|H2800B2AF0 -2800B2AF0:lI110|H2800B2B00 -2800B2B00:lI100|H2800B2B10 -2800B2B10:lI105|H2800B2B20 -2800B2B20:lI100|H2800B2B30 -2800B2B30:lI97|H2800B2B40 -2800B2B40:lI116|H2800B2B50 -2800B2B50:lI101|N -2800B2B60:lH2800B2B80|H2800B2B70 -2800B2B70:lH2800B2B98|N -2800B2B80:t2:A6:module,AD:httpc_manager -2800B2B98:t2:A4:line,I853 -2800B2BB0:t2:A4:line,I862 -2800B2BC8:lI115|H2800B2BD8 -2800B2BD8:lI101|H2800B2BE8 -2800B2BE8:lI108|H2800B2BF8 -2800B2BF8:lI101|H2800B2C08 -2800B2C08:lI99|H2800B2C18 -2800B2C18:lI116|H2800B2C28 -2800B2C28:lI32|H2800B2C38 -2800B2C38:lI115|H2800B2C48 -2800B2C48:lI101|H2800B2C58 -2800B2C58:lI115|H2800B2C68 -2800B2C68:lI115|H2800B2C78 -2800B2C78:lI105|H2800B2C88 -2800B2C88:lI111|H2800B2C98 -2800B2C98:lI110|H2800B2CA8 -2800B2CA8:lI32|H2800B2CB8 -2800B2CB8:lI45|H2800B2CC8 -2800B2CC8:lI32|H2800B2CD8 -2800B2CD8:lI102|H2800B2CE8 -2800B2CE8:lI111|H2800B2CF8 -2800B2CF8:lI117|H2800B2D08 -2800B2D08:lI110|H2800B2D18 -2800B2D18:lI100|H2800B2D28 -2800B2D28:lI32|H2800B2D38 -2800B2D38:lI111|H2800B2D48 -2800B2D48:lI110|H2800B2D58 -2800B2D58:lI101|N -2800B2D68:t2:A5:error,A6:closed -2800B2D80:t2:H2800B2D98,N -2800B2D98:lI99|H2800B2DA8 -2800B2DA8:lI111|H2800B2DB8 -2800B2DB8:lI111|H2800B2DC8 -2800B2DC8:lI107|H2800B2DD8 -2800B2DD8:lI105|H2800B2DE8 -2800B2DE8:lI101|N -2800B2DF8:lI95|H2800B2E08 -2800B2E08:lI95|H2800B2E18 -2800B2E18:lI115|H2800B2E28 -2800B2E28:lI101|H2800B2E38 -2800B2E38:lI115|H2800B2E48 -2800B2E48:lI115|H2800B2E58 -2800B2E58:lI105|H2800B2E68 -2800B2E68:lI111|H2800B2E78 -2800B2E78:lI110|H2800B2E88 -2800B2E88:lI95|H2800B2E98 -2800B2E98:lI100|H2800B2EA8 -2800B2EA8:lI98|N -2800B2EB8:lI95|H2800B2EC8 -2800B2EC8:lI95|H2800B2ED8 -2800B2ED8:lI99|H2800B2EE8 -2800B2EE8:lI111|H2800B2EF8 -2800B2EF8:lI111|H2800B2F08 -2800B2F08:lI107|H2800B2F18 -2800B2F18:lI105|H2800B2F28 -2800B2F28:lI101|H2800B2F38 -2800B2F38:lI95|H2800B2F48 -2800B2F48:lI100|H2800B2F58 -2800B2F58:lI98|N -2800B2F68:lI95|H2800B2F78 -2800B2F78:lI95|H2800B2F88 -2800B2F88:lI115|H2800B2F98 -2800B2F98:lI101|H2800B2FA8 -2800B2FA8:lI115|H2800B2FB8 -2800B2FB8:lI115|H2800B2FC8 -2800B2FC8:lI105|H2800B2FD8 -2800B2FD8:lI111|H2800B2FE8 -2800B2FE8:lI110|H2800B2FF8 -2800B2FF8:lI95|H2800B3008 -2800B3008:lI99|H2800B3018 -2800B3018:lI111|H2800B3028 -2800B3028:lI111|H2800B3038 -2800B3038:lI107|H2800B3048 -2800B3048:lI105|H2800B3058 -2800B3058:lI101|H2800B3068 -2800B3068:lI95|H2800B3078 -2800B3078:lI100|H2800B3088 -2800B3088:lI98|N -2800B3098:lI95|H2800B30A8 -2800B30A8:lI95|H2800B30B8 -2800B30B8:lI104|H2800B30C8 -2800B30C8:lI97|H2800B30D8 -2800B30D8:lI110|H2800B30E8 -2800B30E8:lI100|H2800B30F8 -2800B30F8:lI108|H2800B3108 -2800B3108:lI101|H2800B3118 -2800B3118:lI114|H2800B3128 -2800B3128:lI95|H2800B3138 -2800B3138:lI100|H2800B3148 -2800B3148:lI98|N -2800B3158:lI115|N -2800B3168:lA4:call|N -2800B3178:lH2800B3188|N -2800B3188:t3:A1:_,N,H2800B31A8 -2800B31A8:lH2800B31B8|N -2800B31B8:t1:AC:return_trace -2800B31C8:lI126|H2800B31D8 -2800B31D8:lI110|N -2800B31E8:lI72|H2800B31F8 -2800B31F8:lI84|H2800B3208 -2800B3208:lI84|H2800B3218 -2800B3218:lI80|H2800B3228 -2800B3228:lI67|H2800B3238 -2800B3238:lI45|H2800B3248 -2800B3248:lI77|H2800B3258 -2800B3258:lI65|H2800B3268 -2800B3268:lI78|H2800B3278 -2800B3278:lI65|H2800B3288 -2800B3288:lI71|H2800B3298 -2800B3298:lI69|H2800B32A8 -2800B32A8:lI82|H2800B32B8 -2800B32B8:lI60|H2800B32C8 -2800B32C8:lI126|H2800B32D8 -2800B32D8:lI112|H2800B32E8 -2800B32E8:lI62|H2800B32F8 -2800B32F8:lI32|N -2800B3308:lI108|N -2800B3318:lI114|H2800B3308 -2800B3328:lI101|H2800B3318 -2800B3338:lI46|H2800B3328 -2800B3348:lI114|H2800B3338 -2800B3358:lI101|H2800B3348 -2800B3368:lI103|H2800B3358 -2800B3378:lI97|H2800B3368 -2800B3388:lI110|H2800B3378 -2800B3398:lI97|H2800B3388 -2800B33A8:lI109|H2800B3398 -2800B33B8:lI95|H2800B33A8 -2800B33C8:lI99|H2800B33B8 -2800B33D8:lI112|H2800B33C8 -2800B33E8:lI116|H2800B33D8 -2800B33F8:lI116|H2800B33E8 -2800B3408:lI104|H2800B33F8 -2800B3418:E51:g3AAAABPAav5MfhExLjVj7CSaHK/DswAAAAAAAAAAHcNaHR0cGNfbWFuYWdlcmEAYgVfyY9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -2800B3440:E51:g3AAAABPAav5MfhExLjVj7CSaHK/DswAAAABAAAAAHcNaHR0cGNfbWFuYWdlcmEBYgVfyY9Ydw1ub25vZGVAbm9ob3N0AAAAAAAAAAAAAAAA -2800B6F58:t2:A5:local,A11:httpc_handler_sup -2800B6F70:lAD:httpc_handler|N -2800B6F80:t3:A12:simple_one_for_one,I0,I3600 -2800B6FA0:lI108|N -2800B6FB0:lI114|H2800B6FA0 -2800B6FC0:lI101|H2800B6FB0 -2800B6FD0:lI46|H2800B6FC0 -2800B6FE0:lI112|H2800B6FD0 -2800B6FF0:lI117|H2800B6FE0 -2800B7000:lI115|H2800B6FF0 -2800B7010:lI95|H2800B7000 -2800B7020:lI114|H2800B7010 -2800B7030:lI101|H2800B7020 -2800B7040:lI108|H2800B7030 -2800B7050:lI100|H2800B7040 -2800B7060:lI110|H2800B7050 -2800B7070:lI97|H2800B7060 -2800B7080:lI104|H2800B7070 -2800B7090:lI95|H2800B7080 -2800B70A0:lI99|H2800B7090 -2800B70B0:lI112|H2800B70A0 -2800B70C0:lI116|H2800B70B0 -2800B70D0:lI116|H2800B70C0 -2800B70E0:lI104|H2800B70D0 -2800BDB80:t2:A5:local,A12:tls_connection_sup -2800BDB98:t2:A5:local,A17:tls_dist_connection_sup -2800BDBB0:t2:A2:ok,H2800BDBC8 -2800BDBC8:t2:H2800BDC00,H2800BDC30 -2800BDBE0:t3:A8:strategy,A6:period,A9:intensity -2800BDC00:Mf3:H2800BDBE0:A12:simple_one_for_one,I3600,I0 -2800BDC30:lH2800BDC68|N -2800BDC40:t4:A2:id,A7:restart,A5:start,A4:type -2800BDC68:Mf4:H2800BDC40:A9:undefined,A9:temporary,H2800BDCA0,AA:supervisor -2800BDCA0:t3:A16:tls_dyn_connection_sup,AA:start_link,N -2800BDCC0:lI108|N -2800BDCD0:lI114|H2800BDCC0 -2800BDCE0:lI101|H2800BDCD0 -2800BDCF0:lI46|H2800BDCE0 -2800BDD00:lI112|H2800BDCF0 -2800BDD10:lI117|H2800BDD00 -2800BDD20:lI115|H2800BDD10 -2800BDD30:lI95|H2800BDD20 -2800BDD40:lI110|H2800BDD30 -2800BDD50:lI111|H2800BDD40 -2800BDD60:lI105|H2800BDD50 -2800BDD70:lI116|H2800BDD60 -2800BDD80:lI99|H2800BDD70 -2800BDD90:lI101|H2800BDD80 -2800BDDA0:lI110|H2800BDD90 -2800BDDB0:lI110|H2800BDDA0 -2800BDDC0:lI111|H2800BDDB0 -2800BDDD0:lI99|H2800BDDC0 -2800BDDE0:lI95|H2800BDDD0 -2800BDDF0:lI115|H2800BDDE0 -2800BDE00:lI108|H2800BDDF0 -2800BDE10:lI116|H2800BDE00 -2800BE298:t2:A5:local,A16:ssl_listen_tracker_sup -2800BE2B0:t2:A5:local,A1B:ssl_listen_tracker_sup_dist -2800BE2C8:t2:A2:ok,H2800BE2E0 -2800BE2E0:t2:H2800BE318,H2800BE348 -2800BE2F8:t3:A8:strategy,A6:period,A9:intensity -2800BE318:Mf3:H2800BE2F8:A12:simple_one_for_one,I3600,I0 -2800BE348:lH2800BE390|N -2800BE358:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800BE390:Mf6:H2800BE358:A9:undefined,A9:temporary,I4000,H2800BE3E8,A6:worker,H2800BE3D8 -2800BE3D8:lAA:tls_socket|N -2800BE3E8:t3:AA:tls_socket,AA:start_link,N -2800BE408:lI108|N -2800BE418:lI114|H2800BE408 -2800BE428:lI101|H2800BE418 -2800BE438:lI46|H2800BE428 -2800BE448:lI112|H2800BE438 -2800BE458:lI117|H2800BE448 -2800BE468:lI115|H2800BE458 -2800BE478:lI95|H2800BE468 -2800BE488:lI114|H2800BE478 -2800BE498:lI101|H2800BE488 -2800BE4A8:lI107|H2800BE498 -2800BE4B8:lI99|H2800BE4A8 -2800BE4C8:lI97|H2800BE4B8 -2800BE4D8:lI114|H2800BE4C8 -2800BE4E8:lI116|H2800BE4D8 -2800BE4F8:lI95|H2800BE4E8 -2800BE508:lI110|H2800BE4F8 -2800BE518:lI101|H2800BE508 -2800BE528:lI116|H2800BE518 -2800BE538:lI115|H2800BE528 -2800BE548:lI105|H2800BE538 -2800BE558:lI108|H2800BE548 -2800BE568:lI95|H2800BE558 -2800BE578:lI108|H2800BE568 -2800BE588:lI115|H2800BE578 -2800BE598:lI115|H2800BE588 -2800BE5C0:t2:A5:local,A1D:tls_server_session_ticket_sup -2800BE5D8:t2:A5:local,A22:tls_server_session_ticket_sup_dist -2800BE5F0:t2:A2:ok,H2800BE608 -2800BE608:t2:H2800BE640,H2800BE670 -2800BE620:t3:A8:strategy,A6:period,A9:intensity -2800BE640:Mf3:H2800BE620:A12:simple_one_for_one,I3600,I0 -2800BE670:lH2800BE6B8|N -2800BE680:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800BE6B8:Mf6:H2800BE680:A9:undefined,A9:transient,I4000,H2800BE710,A6:worker,H2800BE700 -2800BE700:lA19:tls_server_session_ticket|N -2800BE710:t3:A19:tls_server_session_ticket,AA:start_link,N -2800BE730:lI108|N -2800BE740:lI114|H2800BE730 -2800BE750:lI101|H2800BE740 -2800BE760:lI46|H2800BE750 -2800BE770:lI112|H2800BE760 -2800BE780:lI117|H2800BE770 -2800BE790:lI115|H2800BE780 -2800BE7A0:lI95|H2800BE790 -2800BE7B0:lI116|H2800BE7A0 -2800BE7C0:lI101|H2800BE7B0 -2800BE7D0:lI107|H2800BE7C0 -2800BE7E0:lI99|H2800BE7D0 -2800BE7F0:lI105|H2800BE7E0 -2800BE800:lI116|H2800BE7F0 -2800BE810:lI95|H2800BE800 -2800BE820:lI110|H2800BE810 -2800BE830:lI111|H2800BE820 -2800BE840:lI105|H2800BE830 -2800BE850:lI115|H2800BE840 -2800BE860:lI115|H2800BE850 -2800BE870:lI101|H2800BE860 -2800BE880:lI115|H2800BE870 -2800BE890:lI95|H2800BE880 -2800BE8A0:lI114|H2800BE890 -2800BE8B0:lI101|H2800BE8A0 -2800BE8C0:lI118|H2800BE8B0 -2800BE8D0:lI114|H2800BE8C0 -2800BE8E0:lI101|H2800BE8D0 -2800BE8F0:lI115|H2800BE8E0 -2800BE900:lI95|H2800BE8F0 -2800BE910:lI115|H2800BE900 -2800BE920:lI108|H2800BE910 -2800BE930:lI116|H2800BE920 -2800BE958:t2:A5:local,A1C:ssl_server_session_cache_sup -2800BE970:t2:A2:ok,H2800BE988 -2800BE988:t2:H2800BE9C0,H2800BE9F0 -2800BE9A0:t3:A8:strategy,A6:period,A9:intensity -2800BE9C0:Mf3:H2800BE9A0:A12:simple_one_for_one,I3600,I3 -2800BE9F0:lH2800BEA38|N -2800BEA00:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800BEA38:Mf6:H2800BEA00:A9:undefined,A9:transient,I4000,H2800BEA90,A6:worker,H2800BEA80 -2800BEA80:lA18:ssl_server_session_cache|N -2800BEA90:t3:A18:ssl_server_session_cache,AA:start_link,N -2800BEAB0:lI108|N -2800BEAC0:lI114|H2800BEAB0 -2800BEAD0:lI101|H2800BEAC0 -2800BEAE0:lI46|H2800BEAD0 -2800BEAF0:lI112|H2800BEAE0 -2800BEB00:lI117|H2800BEAF0 -2800BEB10:lI115|H2800BEB00 -2800BEB20:lI95|H2800BEB10 -2800BEB30:lI101|H2800BEB20 -2800BEB40:lI104|H2800BEB30 -2800BEB50:lI99|H2800BEB40 -2800BEB60:lI97|H2800BEB50 -2800BEB70:lI99|H2800BEB60 -2800BEB80:lI95|H2800BEB70 -2800BEB90:lI110|H2800BEB80 -2800BEBA0:lI111|H2800BEB90 -2800BEBB0:lI105|H2800BEBA0 -2800BEBC0:lI115|H2800BEBB0 -2800BEBD0:lI115|H2800BEBC0 -2800BEBE0:lI101|H2800BEBD0 -2800BEBF0:lI115|H2800BEBE0 -2800BEC00:lI95|H2800BEBF0 -2800BEC10:lI114|H2800BEC00 -2800BEC20:lI101|H2800BEC10 -2800BEC30:lI118|H2800BEC20 -2800BEC40:lI114|H2800BEC30 -2800BEC50:lI101|H2800BEC40 -2800BEC60:lI115|H2800BEC50 -2800BEC70:lI95|H2800BEC60 -2800BEC80:lI108|H2800BEC70 -2800BEC90:lI115|H2800BEC80 -2800BECA0:lI115|H2800BEC90 -2800BECC8:t2:A5:local,A24:ssl_upgrade_server_session_cache_sup -2800BECE0:t2:A5:local,A29:ssl_upgrade_server_session_cache_sup_dist -2800BECF8:t2:A2:ok,H2800BED10 -2800BED10:t2:H2800BED48,H2800BED78 -2800BED28:t3:A8:strategy,A6:period,A9:intensity -2800BED48:Mf3:H2800BED28:A12:simple_one_for_one,I3600,I3 -2800BED78:lH2800BEDC0|N -2800BED88:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800BEDC0:Mf6:H2800BED88:A9:undefined,A9:transient,I4000,H2800BEE18,A6:worker,H2800BEE08 -2800BEE08:lA18:ssl_server_session_cache|N -2800BEE18:t3:A18:ssl_server_session_cache,AA:start_link,N -2800BEE38:lI108|N -2800BEE48:lI114|H2800BEE38 -2800BEE58:lI101|H2800BEE48 -2800BEE68:lI46|H2800BEE58 -2800BEE78:lI112|H2800BEE68 -2800BEE88:lI117|H2800BEE78 -2800BEE98:lI115|H2800BEE88 -2800BEEA8:lI95|H2800BEE98 -2800BEEB8:lI101|H2800BEEA8 -2800BEEC8:lI104|H2800BEEB8 -2800BEED8:lI99|H2800BEEC8 -2800BEEE8:lI97|H2800BEED8 -2800BEEF8:lI99|H2800BEEE8 -2800BEF08:lI95|H2800BEEF8 -2800BEF18:lI110|H2800BEF08 -2800BEF28:lI111|H2800BEF18 -2800BEF38:lI105|H2800BEF28 -2800BEF48:lI115|H2800BEF38 -2800BEF58:lI115|H2800BEF48 -2800BEF68:lI101|H2800BEF58 -2800BEF78:lI115|H2800BEF68 -2800BEF88:lI95|H2800BEF78 -2800BEF98:lI114|H2800BEF88 -2800BEFA8:lI101|H2800BEF98 -2800BEFB8:lI118|H2800BEFA8 -2800BEFC8:lI114|H2800BEFB8 -2800BEFD8:lI101|H2800BEFC8 -2800BEFE8:lI115|H2800BEFD8 -2800BEFF8:lI95|H2800BEFE8 -2800BF008:lI101|H2800BEFF8 -2800BF018:lI100|H2800BF008 -2800BF028:lI97|H2800BF018 -2800BF038:lI114|H2800BF028 -2800BF048:lI103|H2800BF038 -2800BF058:lI112|H2800BF048 -2800BF068:lI117|H2800BF058 -2800BF078:lI95|H2800BF068 -2800BF088:lI108|H2800BF078 -2800BF098:lI115|H2800BF088 -2800BF0A8:lI115|H2800BF098 -2800BF370:t2:A5:local,A13:dtls_connection_sup -2800BF388:t2:A5:local,A18:dtls_connection_sup_dist -2800BF3A0:t2:A2:ok,H2800BF3B8 -2800BF3B8:t2:H2800BF3F0,H2800BF420 -2800BF3D0:t3:A8:strategy,A6:period,A9:intensity -2800BF3F0:Mf3:H2800BF3D0:A12:simple_one_for_one,I3600,I0 -2800BF420:lH2800BF468|N -2800BF430:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800BF468:Mf6:H2800BF430:A9:undefined,A9:temporary,I4000,H2800BF4D0,A6:worker,H2800BF4B0 -2800BF4B0:lAE:ssl_gen_statem|H2800BF4C0 -2800BF4C0:lAF:dtls_connection|N -2800BF4D0:t3:AE:ssl_gen_statem,AA:start_link,N -2800BF4F0:lI108|N -2800BF500:lI114|H2800BF4F0 -2800BF510:lI101|H2800BF500 -2800BF520:lI46|H2800BF510 -2800BF530:lI112|H2800BF520 -2800BF540:lI117|H2800BF530 -2800BF550:lI115|H2800BF540 -2800BF560:lI95|H2800BF550 -2800BF570:lI110|H2800BF560 -2800BF580:lI111|H2800BF570 -2800BF590:lI105|H2800BF580 -2800BF5A0:lI116|H2800BF590 -2800BF5B0:lI99|H2800BF5A0 -2800BF5C0:lI101|H2800BF5B0 -2800BF5D0:lI110|H2800BF5C0 -2800BF5E0:lI110|H2800BF5D0 -2800BF5F0:lI111|H2800BF5E0 -2800BF600:lI99|H2800BF5F0 -2800BF610:lI95|H2800BF600 -2800BF620:lI115|H2800BF610 -2800BF630:lI108|H2800BF620 -2800BF640:lI116|H2800BF630 -2800BF650:lI100|H2800BF640 -2800BF988:t2:A5:local,A11:dtls_listener_sup -2800BF9A0:t2:A5:error,A11:already_listening -2800BF9B8:lAB:named_table|H2800BF9C8 -2800BF9C8:lA6:public|H2800BF9D8 -2800BF9D8:lA3:set|N -2800BF9E8:t2:A2:ok,H2800BFA00 -2800BFA00:t2:H2800BFA38,H2800BFA68 -2800BFA18:t3:A8:strategy,A6:period,A9:intensity -2800BFA38:Mf3:H2800BFA18:A12:simple_one_for_one,I3600,I0 -2800BFA68:lH2800BFAB0|N -2800BFA78:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800BFAB0:Mf6:H2800BFA78:A9:undefined,A9:temporary,I4000,H2800BFB08,A6:worker,H2800BFAF8 -2800BFAF8:lA11:dtls_packet_demux|N -2800BFB08:t3:A11:dtls_packet_demux,AA:start_link,N -2800BFB28:lI108|N -2800BFB38:lI114|H2800BFB28 -2800BFB48:lI101|H2800BFB38 -2800BFB58:lI46|H2800BFB48 -2800BFB68:lI112|H2800BFB58 -2800BFB78:lI117|H2800BFB68 -2800BFB88:lI115|H2800BFB78 -2800BFB98:lI95|H2800BFB88 -2800BFBA8:lI114|H2800BFB98 -2800BFBB8:lI101|H2800BFBA8 -2800BFBC8:lI110|H2800BFBB8 -2800BFBD8:lI101|H2800BFBC8 -2800BFBE8:lI116|H2800BFBD8 -2800BFBF8:lI115|H2800BFBE8 -2800BFC08:lI105|H2800BFBF8 -2800BFC18:lI108|H2800BFC08 -2800BFC28:lI95|H2800BFC18 -2800BFC38:lI115|H2800BFC28 -2800BFC48:lI108|H2800BFC38 -2800BFC58:lI116|H2800BFC48 -2800BFC68:lI100|H2800BFC58 -2800BFC90:t2:A5:local,A1D:dtls_server_session_cache_sup -2800BFCA8:t2:A2:ok,H2800BFCC0 -2800BFCC0:t2:H2800BFCF8,H2800BFD28 -2800BFCD8:t3:A8:strategy,A6:period,A9:intensity -2800BFCF8:Mf3:H2800BFCD8:A12:simple_one_for_one,I3600,I0 -2800BFD28:lH2800BFD70|N -2800BFD38:t6:A2:id,A7:restart,A8:shutdown,A5:start,A4:type,A7:modules -2800BFD70:Mf6:H2800BFD38:A9:undefined,A9:temporary,I4000,H2800BFDC8,A6:worker,H2800BFDB8 -2800BFDB8:lA18:ssl_server_session_cache|N -2800BFDC8:t3:A18:ssl_server_session_cache,AA:start_link,N -2800BFDE8:lI108|N -2800BFDF8:lI114|H2800BFDE8 -2800BFE08:lI101|H2800BFDF8 -2800BFE18:lI46|H2800BFE08 -2800BFE28:lI112|H2800BFE18 -2800BFE38:lI117|H2800BFE28 -2800BFE48:lI115|H2800BFE38 -2800BFE58:lI95|H2800BFE48 -2800BFE68:lI101|H2800BFE58 -2800BFE78:lI104|H2800BFE68 -2800BFE88:lI99|H2800BFE78 -2800BFE98:lI97|H2800BFE88 -2800BFEA8:lI99|H2800BFE98 -2800BFEB8:lI95|H2800BFEA8 -2800BFEC8:lI110|H2800BFEB8 -2800BFED8:lI111|H2800BFEC8 -2800BFEE8:lI105|H2800BFED8 -2800BFEF8:lI115|H2800BFEE8 -2800BFF08:lI115|H2800BFEF8 -2800BFF18:lI101|H2800BFF08 -2800BFF28:lI115|H2800BFF18 -2800BFF38:lI95|H2800BFF28 -2800BFF48:lI114|H2800BFF38 -2800BFF58:lI101|H2800BFF48 -2800BFF68:lI118|H2800BFF58 -2800BFF78:lI114|H2800BFF68 -2800BFF88:lI101|H2800BFF78 -2800BFF98:lI115|H2800BFF88 -2800BFFA8:lI95|H2800BFF98 -2800BFFB8:lI115|H2800BFFA8 -2800BFFC8:lI108|H2800BFFB8 -2800BFFD8:lI116|H2800BFFC8 -2800BFFE8:lI100|H2800BFFD8 -2800CCFF0:E30:g3F3EmdsZWFtX290cF9leHRlcm5hbHcWY29udmVydF9zeXN0ZW1fbWVzc2FnZWEC -2800CD018:Yh27:QWN0b3IgZGlzY2FyZGluZyB1bmV4cGVjdGVkIG1lc3NhZ2U6IH5z -2800CD050:t2:A5:error,AC:init_timeout -2800CD068:lI108|N -2800CD078:lI114|H2800CD068 -2800CD088:lI101|H2800CD078 -2800CD098:lI46|H2800CD088 -2800CD0A8:lI114|H2800CD098 -2800CD0B8:lI111|H2800CD0A8 -2800CD0C8:lI116|H2800CD0B8 -2800CD0D8:lI99|H2800CD0C8 -2800CD0E8:lI97|H2800CD0D8 -2800CD0F8:lI64|H2800CD0E8 -2800CD108:lI112|H2800CD0F8 -2800CD118:lI116|H2800CD108 -2800CD128:lI111|H2800CD118 -2800CD138:lI64|H2800CD128 -2800CD148:lI109|H2800CD138 -2800CD158:lI97|H2800CD148 -2800CD168:lI101|H2800CD158 -2800CD178:lI108|H2800CD168 -2800CD188:lI103|H2800CD178 -2800CD198:lI108|N -2800CD1A8:lI114|H2800CD198 -2800CD1B8:lI101|H2800CD1A8 -2800CD1C8:lI46|H2800CD1B8 -2800CD1D8:lI114|H2800CD1C8 -2800CD1E8:lI111|H2800CD1D8 -2800CD1F8:lI116|H2800CD1E8 -2800CD208:lI99|H2800CD1F8 -2800CD218:lI97|H2800CD208 -2800CD228:lI64|H2800CD218 -2800CD238:lI112|H2800CD228 -2800CD248:lI116|H2800CD238 -2800CD258:lI111|H2800CD248 -2800CD268:lI64|H2800CD258 -2800CD278:lI109|H2800CD268 -2800CD288:lI97|H2800CD278 -2800CD298:lI101|H2800CD288 -2800CD2A8:lI108|H2800CD298 -2800CD2B8:lI103|H2800CD2A8 -2800CD2C8:lI47|H2800CD2B8 -2800CD2D8:lI115|H2800CD2C8 -2800CD2E8:lI116|H2800CD2D8 -2800CD2F8:lI99|H2800CD2E8 -2800CD308:lI97|H2800CD2F8 -2800CD318:lI102|H2800CD308 -2800CD328:lI101|H2800CD318 -2800CD338:lI116|H2800CD328 -2800CD348:lI114|H2800CD338 -2800CD358:lI97|H2800CD348 -2800CD368:lI95|H2800CD358 -2800CD378:lI109|H2800CD368 -2800CD388:lI97|H2800CD378 -2800CD398:lI101|H2800CD388 -2800CD3A8:lI108|H2800CD398 -2800CD3B8:lI103|H2800CD3A8 -2800CD3C8:lI95|H2800CD3B8 -2800CD3D8:lI47|H2800CD3C8 -2800CD3E8:lI112|H2800CD3D8 -2800CD3F8:lI116|H2800CD3E8 -2800CD408:lI111|H2800CD3F8 -2800CD418:lI95|H2800CD408 -2800CD428:lI109|H2800CD418 -2800CD438:lI97|H2800CD428 -2800CD448:lI101|H2800CD438 -2800CD458:lI108|H2800CD448 -2800CD468:lI103|H2800CD458 -2800CD478:lI47|H2800CD468 -2800CD488:lI103|H2800CD478 -2800CD498:lI110|H2800CD488 -2800CD4A8:lI97|H2800CD498 -2800CD4B8:lI108|H2800CD4A8 -2800CD4C8:lI114|H2800CD4B8 -2800CD4D8:lI101|H2800CD4C8 -2800CD4E8:lI47|H2800CD4D8 -2800CD4F8:lI118|H2800CD4E8 -2800CD508:lI101|H2800CD4F8 -2800CD518:lI100|H2800CD508 -2800CD528:lI47|H2800CD518 -2800CD538:lI100|H2800CD528 -2800CD548:lI108|H2800CD538 -2800CD558:lI105|H2800CD548 -2800CD568:lI117|H2800CD558 -2800CD578:lI98|H2800CD568 -2800CD588:lI47|H2800CD578 -2800CD598:lI51|H2800CD588 -2800CD5A8:lI50|H2800CD598 -2800CD5B8:lI48|H2800CD5A8 -2800CD5C8:lI50|H2800CD5B8 -2800CD5D8:lI99|H2800CD5C8 -2800CD5E8:lI111|H2800CD5D8 -2800CD5F8:lI97|H2800CD5E8 -2800CD608:lI47|H2800CD5F8 -2800CD618:lI101|H2800CD608 -2800CD628:lI100|H2800CD618 -2800CD638:lI111|H2800CD628 -2800CD648:lI67|H2800CD638 -2800CD658:lI102|H2800CD648 -2800CD668:lI79|H2800CD658 -2800CD678:lI116|H2800CD668 -2800CD688:lI110|H2800CD678 -2800CD698:lI101|H2800CD688 -2800CD6A8:lI118|H2800CD698 -2800CD6B8:lI100|H2800CD6A8 -2800CD6C8:lI65|H2800CD6B8 -2800CD6D8:lI47|H2800CD6C8 -2800CD6E8:lI101|H2800CD6D8 -2800CD6F8:lI100|H2800CD6E8 -2800CD708:lI111|H2800CD6F8 -2800CD718:lI67|H2800CD708 -2800CD728:lI32|H2800CD718 -2800CD738:lI83|H2800CD728 -2800CD748:lI86|H2800CD738 -2800CD758:lI47|H2800CD748 -2800CD768:lI110|H2800CD758 -2800CD778:lI111|H2800CD768 -2800CD788:lI115|H2800CD778 -2800CD798:lI108|H2800CD788 -2800CD7A8:lI114|H2800CD798 -2800CD7B8:lI97|H2800CD7A8 -2800CD7C8:lI99|H2800CD7B8 -2800CD7D8:lI115|H2800CD7C8 -2800CD7E8:lI97|H2800CD7D8 -2800CD7F8:lI108|H2800CD7E8 -2800CD808:lI111|H2800CD7F8 -2800CD818:lI104|H2800CD808 -2800CD828:lI99|H2800CD818 -2800CD838:lI105|H2800CD828 -2800CD848:lI110|H2800CD838 -2800CD858:lI47|H2800CD848 -2800CD868:lI115|H2800CD858 -2800CD878:lI114|H2800CD868 -2800CD888:lI101|H2800CD878 -2800CD898:lI115|H2800CD888 -2800CD8A8:lI85|H2800CD898 -2800CD8B8:lI47|H2800CD8A8 -2800CD8C8:E53:g3AAAABRAaydgc7BzWhFu0HOQjKx7YoAAAAAAAAAAHcPZ2xlYW1Ab3RwQGFjdG9yYQBiBWTsDlh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800CD8F0:E53:g3AAAABRAaydgc7BzWhFu0HOQjKx7YoAAAABAAAAAHcPZ2xlYW1Ab3RwQGFjdG9yYQFiBWTsDlh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800CD918:E53:g3AAAABRAaydgc7BzWhFu0HOQjKx7YoAAAACAAAAAHcPZ2xlYW1Ab3RwQGFjdG9yYQJiBWTsDlh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800CD940:E53:g3AAAABRAaydgc7BzWhFu0HOQjKx7YoAAAAFAAAAAHcPZ2xlYW1Ab3RwQGFjdG9yYQViBWTsDlh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -2800CD968:E53:g3AAAABRAaydgc7BzWhFu0HOQjKx7YoAAAAGAAAAAHcPZ2xlYW1Ab3RwQGFjdG9yYQZiBWTsDlh3DW5vbm9kZUBub2hvc3QAAAAAAAAAAAAAAAA= -280093080:t2:H280093098,A5:async -280093098:t2:AA:logger_olp,A14:logger_std_h_default -28008F548:t2:AC:logger_proxy,H28008F560 -28008F560:t3:AC:logger_proxy,P<0.72.0>,H28008F580 -28008F580:t2:AA:logger_olp,AC:logger_proxy -2800930C8:t2:H2800930E0,I10 -2800930E0:t2:AD:logger_config,H2800930F8 -2800930F8:t2:A10:$handler_config$,A7:default -28001C1F8:t2:H28001C210,H28001C228 -28001C210:t2:AB:prim_socket,A7:options -28001C228:MhC2:10:H28001C2B8,H28001C2F8,H28001C338,H28001C380,H28001C3E0,H28001C410,H28001C460,H28001C4B0,H28001C4F8,H28001C550,H28001C598,H28001C5F0,H28001C658,H28001C6B8,H28001C710,H28001C740 -28001C2B8:Mn7:H28001C790,H28001C7A0,H28001C7B0,H28001C7C0,H28001C7D0,H28001C7E0,H28001C7F8 -28001C2F8:Mn7:H28001C808,H28001C830,H28001C840,H28001C850,H28001C860,H28001C878,H28001C888 -28001C338:Mn8:H28001C8A0,H28001C8B0,H28001C8D8,H28001C900,H28001C910,H28001C938,H28001C950,H28001C960 -28001C380:MnB:H28001C988,H28001C998,H28001C9A8,H28001C9C0,H28001C9E0,H28001CA08,H28001CA30,H28001CA48,H28001CA70,H28001CA80,H28001CA90 -28001C3E0:Mn5:H28001CAB8,H28001CAC8,H28001CAD8,H28001CB00,H28001CB20 -28001C410:Mn9:H28001CB38,H28001CB48,H28001CB58,H28001CB68,H28001CB90,H28001CBA8,H28001CBD0,H28001CBF8,H28001CC08 -28001C460:Mn9:H28001CC18,H28001CC30,H28001CC58,H28001CC70,H28001CC88,H28001CC98,H28001CCA8,H28001CCC0,H28001CCD0 -28001C4B0:Mn8:H28001CCF8,H28001CD08,H28001CD18,H28001CD28,H28001CD40,H28001CD50,H28001CD60,H28001CD78 -28001C4F8:MnA:H28001CD88,H28001CDA0,H28001CDC8,H28001CDD8,H28001CDE8,H28001CE00,H28001CE18,H28001CE28,H28001CE38,H28001CE60 -28001C550:Mn8:H28001CE88,H28001CEB0,H28001CED8,H28001CEF0,H28001CF18,H28001CF30,H28001CF40,H28001CF50 -28001C598:MnA:H28001CF60,H28001CF78,H28001CFA0,H28001CFB8,H28001CFD8,H28001D000,H28001D010,H28001D020,H28001D038,H28001D048 -28001C5F0:MnC:H28001D058,H28001D080,H28001D090,H28001D0A8,H28001D0C0,H28001D0E8,H28001D110,H28001D120,H28001D130,H28001D140,H28001D150,H28001D160 -28001C658:MnB:H28001D170,H28001D180,H28001D190,H28001D1A0,H28001D1B0,H28001D1C0,H28001D1E8,H28001D1F8,H28001D208,H28001D218,H28001D228 -28001C6B8:MnA:H28001D238,H28001D248,H28001D268,H28001D278,H28001D298,H28001D2A8,H28001D2B8,H28001D2D0,H28001D2E8,H28001D308 -28001C710:Mn5:H28001D318,H28001D330,H28001D348,H28001D370,H28001D388 -28001C740:Mn9:H28001D398,H28001D3A8,H28001D3B8,H28001D3E0,H28001D3F0,H28001D400,H28001D410,H28001D420,H28001D430 -28001C790:lH28001D440|A9:undefined -28001C7A0:lH28001D458|A9:undefined -28001C7B0:lH28001D470|A9:undefined -28001C7C0:lH28001D488|A9:undefined -28001C7D0:lH28001D4A0|A9:undefined -28001C7E0:Mn2:H28001D4B8,H28001D4C8 -28001C7F8:lH28001D4D8|A9:undefined -28001C808:lH28001D4F0|H28001C818 -28001C818:t2:A6:socket,I1024 -28001C830:lH28001D508|A9:undefined -28001C840:lH28001D520|A9:undefined -28001C850:lH28001D538|A9:undefined -28001C860:Mn2:H28001D550,H28001D560 -28001C878:lH28001D588|A9:undefined -28001C888:Mn2:H28001D5A0,H28001D5C8 -28001C8A0:lH28001D5F0|A9:undefined -28001C8B0:lH28001D608|H28001C8C0 -28001C8C0:t2:I0,I4 -28001C8D8:Mn4:H28001D620,H28001D648,H28001D658,H28001D668 -28001C900:lH28001D678|A9:undefined -28001C910:lH28001D690|H28001C920 -28001C920:t2:I0,I26 -28001C938:Mn2:H28001D6A8,H28001D6B8 -28001C950:lH28001D6C8|A9:undefined -28001C960:lH28001D6E0|H28001C970 -28001C970:t2:A6:socket,I4099 -28001C988:lH28001D6F8|A9:undefined -28001C998:lH28001D710|A9:undefined -28001C9A8:Mn2:H28001D728,H28001D738 -28001C9C0:Mn3:H28001D748,H28001D770,H28001D780 -28001C9E0:lH28001D790|H28001C9F0 -28001C9F0:t2:I0,I72 -28001CA08:lH28001D7A8|H28001CA18 -28001CA18:t2:I41,I36 -28001CA30:Mn2:H28001D7C0,H28001D7D0 -28001CA48:lH28001D7F8|H28001CA58 -28001CA58:t2:I41,I27 -28001CA70:lH28001D810|A9:undefined -28001CA80:lH28001D828|A9:undefined -28001CA90:lH28001D840|H28001CAA0 -28001CAA0:t2:I0,I70 -28001CAB8:lH28001D858|A9:undefined -28001CAC8:lH28001D870|A9:undefined -28001CAD8:lH28001D888|H28001CAE8 -28001CAE8:t2:I6,I2 -28001CB00:Mn3:H28001D8A0,H28001D8B0,H28001D8D8 -28001CB20:Mn2:H28001D8E8,H28001D8F8 -28001CB38:Mn1:H28001D908 -28001CB48:lH28001D920|A9:undefined -28001CB58:lH28001D938|A9:undefined -28001CB68:lH28001D950|H28001CB78 -28001CB78:t2:I0,I73 -28001CB90:Mn2:H28001D968,H28001D978 -28001CBA8:lH28001D9A0|H28001CBB8 -28001CBB8:t2:A6:socket,I256 -28001CBD0:lH28001D9B8|H28001CBE0 -28001CBE0:t2:I41,I10 -28001CBF8:lH28001D9D0|A9:undefined -28001CC08:lH28001D9E8|A9:undefined -28001CC18:Mn2:H28001DA00,H28001DA10 -28001CC30:lH28001DA20|H28001CC40 -28001CC40:t2:I0,I3 -28001CC58:Mn2:H28001DA38,H28001DA48 -28001CC70:Mn2:H28001DA58,H28001DA68 -28001CC88:lH28001DA78|A9:undefined -28001CC98:lH28001DA90|A9:undefined -28001CCA8:Mn2:H28001DAA8,H28001DAB8 -28001CCC0:lH28001DAC8|A9:undefined -28001CCD0:Mn4:H28001DAE0,H28001DAF0,H28001DB00,H28001DB10 -28001CCF8:lH28001DB20|A9:undefined -28001CD08:lH28001DB38|H28001CA58 -28001CD18:lH28001DB50|A9:undefined -28001CD28:Mn2:H28001DB68,H28001DB90 -28001CD40:lH28001DBA0|H28001CAA0 -28001CD50:lH28001DBB8|H28001CA18 -28001CD60:Mn2:H28001DBD0,H28001DBF8 -28001CD78:lH28001DC08|A9:undefined -28001CD88:Mn2:H28001DC20,H28001DC30 -28001CDA0:lH28001DC40|H28001CDB0 -28001CDB0:t2:A6:socket,I8 -28001CDC8:Mn1:H28001DC58 -28001CDD8:lH28001DC70|A9:undefined -28001CDE8:Mn2:H28001DC88,H28001DC98 -28001CE00:Mn2:H28001DCA8,H28001DCB8 -28001CE18:lH28001DCC8|A9:undefined -28001CE28:lH28001DCE0|A9:undefined -28001CE38:lH28001DCF8|H28001CE48 -28001CE48:t2:I0,I27 -28001CE60:lH28001DD10|H28001CE70 -28001CE70:t2:I0,I8 -28001CE88:Mn4:H28001DD28,H28001DD38,H28001DD48,H28001DD70 -28001CEB0:lH28001DD98|H28001CEC0 -28001CEC0:t2:I0,I9 -28001CED8:Mn2:H28001DDB0,H28001DDC0 -28001CEF0:lH28001DDE8|H28001CF00 -28001CF00:t2:I0,I24 -28001CF18:Mn2:H28001DE00,H28001DE10 -28001CF30:lH28001DE20|A9:undefined -28001CF40:lH28001DE38|H28001CB78 -28001CF50:lH28001DE50|A9:undefined -28001CF60:Mn2:H28001DE68,H28001DE78 -28001CF78:lH28001DE88|H28001CF88 -28001CF88:t2:A6:socket,I1 -28001CFA0:Mn2:H28001DEA0,H28001DEB0 -28001CFB8:Mn3:H28001DEC0,H28001DED8,H28001DEE8 -28001CFD8:lH28001DEF8|H28001CFE8 -28001CFE8:t2:I6,I1 -28001D000:lH28001DF10|A9:undefined -28001D010:lH28001DF28|A9:undefined -28001D020:Mn2:H28001DF40,H28001DF50 -28001D038:lH28001DF60|A9:undefined -28001D048:lH28001DF78|A9:undefined -28001D058:lH28001DF90|H28001D068 -28001D068:t2:I0,I13 -28001D080:lH28001DFA8|A9:undefined -28001D090:Mn2:H28001DFC0,H28001DFD0 -28001D0A8:Mn2:H28001DFF8,H28001E008 -28001D0C0:lH28001E018|H28001D0D0 -28001D0D0:t2:I0,I10 -28001D0E8:lH28001E030|H28001D0F8 -28001D0F8:t2:A6:socket,I16 -28001D110:lH28001E048|A9:undefined -28001D120:lH28001E060|A9:undefined -28001D130:lH28001E078|A9:undefined -28001D140:lH28001E090|A9:undefined -28001D150:lH28001E0A8|A9:undefined -28001D160:lH28001E0C0|A9:undefined -28001D170:lH28001E0D8|A9:undefined -28001D180:Mn1:H28001E0F0 -28001D190:lH28001E108|A9:undefined -28001D1A0:lH28001E120|A9:undefined -28001D1B0:lH28001E138|H28001D0D0 -28001D1C0:lH28001E150|H28001D1D0 -28001D1D0:t2:A6:socket,I2 -28001D1E8:lH28001E168|A9:undefined -28001D1F8:lH28001E180|A9:undefined -28001D208:lH28001E198|A9:undefined -28001D218:Mn1:H28001E1B0 -28001D228:lH28001E1C8|A9:undefined -28001D238:lH28001E1E0|A9:undefined -28001D248:Mn3:H28001E1F8,H28001E208,H28001E218 -28001D268:lH28001E228|A9:undefined -28001D278:Mn3:H28001E240,H28001E268,H28001E278 -28001D298:lH28001E288|A9:undefined -28001D2A8:lH28001E2A0|H28001CE70 -28001D2B8:Mn2:H28001E2B8,H28001E2C8 -28001D2D0:Mn2:H28001E2D8,H28001E2E8 -28001D2E8:Mn3:H28001E2F8,H28001E320,H28001E330 -28001D308:lH28001E340|A9:undefined -28001D318:Mn2:H28001E358,H28001E368 -28001D330:Mn2:H28001E378,H28001E388 -28001D348:lH28001E398|H28001D358 -28001D358:t2:A6:socket,I4104 -28001D370:Mn2:H28001E3B0,H28001E3C0 -28001D388:lH28001E3D0|A9:undefined -28001D398:lH28001E3E8|A9:undefined -28001D3A8:lH28001E400|A9:undefined -28001D3B8:lH28001E418|H28001D3C8 -28001D3C8:t2:A6:socket,I32 -28001D3E0:lH28001E430|A9:undefined -28001D3F0:lH28001E448|A9:undefined -28001D400:lH28001E460|A9:undefined -28001D410:lH28001E478|A9:undefined -28001D420:lH28001E490|A9:undefined -28001D430:lH28001E4A8|A9:undefined -28001D440:t2:A3:tcp,A8:keepidle -28001D458:t2:A3:TCP,A5:noopt -28001D470:t2:A4:ipv6,AA:pktoptions -28001D488:t2:A4:IPV6,AF:drop_membership -28001D4A0:t2:A3:tcp,AC:user_timeout -28001D4B8:lH28001E4C0|A9:undefined -28001D4C8:lH28001E4D8|A9:undefined -28001D4D8:t2:A4:IPV6,AB:use_min_mtu -28001D4F0:t2:A6:socket,A9:timestamp -28001D508:t2:A2:IP,AD:multicast_all -28001D520:t2:A3:TCP,A6:syncnt -28001D538:t2:A4:ipv6,AF:drop_membership -28001D550:lH28001E4F0|A9:undefined -28001D560:lH28001E508|H28001D570 -28001D570:t2:I0,I2 -28001D588:t2:A3:TCP,A7:keepcnt -28001D5A0:lH28001E520|H28001D5B0 -28001D5B0:t2:I0,I20 -28001D5C8:lH28001E538|H28001D5D8 -28001D5D8:t2:A6:socket,I512 -28001D5F0:t2:A2:IP,A8:dontfrag -28001D608:t2:A2:IP,A3:ttl -28001D620:lH28001E550|H28001D630 -28001D630:t2:I0,I12 -28001D648:lH28001E568|A9:undefined -28001D658:lH28001E580|H28001CBE0 -28001D668:lH28001E598|H28001C920 -28001D678:t2:A4:ipv6,AB:use_min_mtu -28001D690:t2:A2:IP,A7:pktinfo -28001D6A8:lH28001E5B0|A9:undefined -28001D6B8:lH28001E5C8|A9:undefined -28001D6C8:t2:A4:IPV6,A9:portrange -28001D6E0:t2:A6:socket,A8:sndlowat -28001D6F8:t2:A3:TCP,A8:keepidle -28001D710:t2:A2:ip,A3:mtu -28001D728:lH28001E5E0|A9:undefined -28001D738:lH28001E5F8|A9:undefined -28001D748:lH28001E610|H28001D758 -28001D758:t2:A6:socket,I4100 -28001D770:lH28001E628|A9:undefined -28001D780:lH28001E640|A9:undefined -28001D790:t2:A2:IP,AC:block_source -28001D7A8:t2:A4:IPV6,A6:tclass -28001D7C0:lH28001E658|A9:undefined -28001D7D0:lH28001E670|H28001D7E0 -28001D7E0:t2:A6:socket,I4098 -28001D7F8:t2:A4:ipv6,A6:v6only -28001D810:t2:A2:ip,A8:nodefrag -28001D828:t2:A3:tcp,A7:keepcnt -28001D840:t2:A2:ip,A15:add_source_membership -28001D858:t2:A4:ipv6,AB:leave_group -28001D870:t2:A2:ip,A6:minttl -28001D888:t2:A3:TCP,A6:maxseg -28001D8A0:lH28001E688|A9:undefined -28001D8B0:lH28001E6A0|H28001D8C0 -28001D8C0:t2:I41,I4 -28001D8D8:lH28001E6B8|A9:undefined -28001D8E8:lH28001E6D0|A9:undefined -28001D8F8:lH28001E6E8|H28001CE48 -28001D908:Mn2:H28001E700,H28001E710 -28001D920:t2:A6:socket,AB:sndbufforce -28001D938:t2:A4:IPV6,A5:faith -28001D950:t2:A2:ip,AE:unblock_source -28001D968:lH28001E720|A9:undefined -28001D978:lH28001E738|H28001D988 -28001D988:t2:I41,I35 -28001D9A0:t2:A6:socket,A9:oobinline -28001D9B8:t2:A4:ipv6,AE:multicast_hops -28001D9D0:t2:A6:socket,A8:passcred -28001D9E8:t2:A3:TCP,AA:congestion -28001DA00:lH28001E750|A9:undefined -28001DA10:lH28001E768|H28001C8C0 -28001DA20:t2:A2:ip,A3:tos -28001DA38:lH28001E780|A9:undefined -28001DA48:lH28001E798|A9:undefined -28001DA58:lH28001E7B0|A9:undefined -28001DA68:lH28001E7C8|A9:undefined -28001DA78:t2:A6:socket,A6:setfib -28001DA90:t2:A6:socket,A8:protocol -28001DAA8:lH28001E7E0|A9:undefined -28001DAB8:lH28001E7F8|H28001CFE8 -28001DAC8:t2:A6:socket,A8:rxq_ovfl -28001DAE0:lH28001E810|A9:undefined -28001DAF0:lH28001E828|A9:undefined -28001DB00:lH28001E840|A9:undefined -28001DB10:lH28001E858|A9:undefined -28001DB20:t2:A6:socket,AB:rcvbufforce -28001DB38:t2:A4:IPV6,A6:v6only -28001DB50:t2:A4:ipv6,AB:recvpktinfo -28001DB68:lH28001E870|H28001DB78 -28001DB78:t2:A6:socket,I4 -28001DB90:lH28001E888|H28001D630 -28001DBA0:t2:A2:IP,A15:add_source_membership -28001DBB8:t2:A4:ipv6,A6:tclass -28001DBD0:lH28001E8A0|H28001DBE0 -28001DBE0:t2:I0,I7 -28001DBF8:lH28001E8B8|A9:undefined -28001DC08:t2:A4:ipv6,A7:recverr -28001DC20:lH28001E8D0|H28001CC40 -28001DC30:lH28001E8E8|A9:undefined -28001DC40:t2:A6:socket,A9:keepalive -28001DC58:Mn2:H28001E900,H28001E910 -28001DC70:t2:A6:socket,AC:bindtodevice -28001DC88:lH28001E920|H28001DBE0 -28001DC98:lH28001E938|A9:undefined -28001DCA8:lH28001E950|A9:undefined -28001DCB8:lH28001E968|A9:undefined -28001DCC8:t2:A4:IPV6,A8:flowinfo -28001DCE0:t2:A4:IPV6,A8:hoplimit -28001DCF8:t2:A2:IP,A7:recvtos -28001DD10:t2:A2:IP,A7:retopts -28001DD28:lH28001E980|A9:undefined -28001DD38:lH28001E998|A9:undefined -28001DD48:lH28001E9B0|H28001DD58 -28001DD58:t2:I41,I11 -28001DD70:lH28001E9C8|H28001DD80 -28001DD80:t2:I0,I11 -28001DD98:t2:A2:IP,AC:multicast_if -28001DDB0:lH28001E9E0|H28001CAE8 -28001DDC0:lH28001E9F8|H28001DDD0 -28001DDD0:t2:I0,I71 -28001DDE8:t2:A2:ip,A7:recvttl -28001DE00:lH28001EA10|H28001D8C0 -28001DE10:lH28001EA28|H28001CF00 -28001DE20:t2:A4:ipv6,A8:checksum -28001DE38:t2:A2:IP,AE:unblock_source -28001DE50:t2:A4:IPV6,AC:mtu_discover -28001DE68:lH28001EA40|A9:undefined -28001DE78:lH28001EA58|A9:undefined -28001DE88:t2:A6:socket,A5:debug -28001DEA0:lH28001EA70|H28001D570 -28001DEB0:lH28001EA88|A9:undefined -28001DEC0:Mn2:H28001EAA0,H28001EAB0 -28001DED8:lH28001EAC0|A9:undefined -28001DEE8:lH28001EAD8|A9:undefined -28001DEF8:t2:A3:TCP,A7:nodelay -28001DF10:t2:A4:IPV6,AC:ipcomp_level -28001DF28:t2:A3:tcp,A4:cork -28001DF40:lH28001EAF0|A9:undefined -28001DF50:lH28001EB08|H28001DD80 -28001DF60:t2:A2:IP,A8:freebind -28001DF78:t2:A4:IPV6,AA:join_group -28001DF90:t2:A2:ip,AF:drop_membership -28001DFA8:t2:A3:tcp,A5:noopt -28001DFC0:lH28001EB20|H28001CEC0 -28001DFD0:lH28001EB38|H28001DFE0 -28001DFE0:t2:I41,I9 -28001DFF8:lH28001EB50|A9:undefined -28001E008:lH28001EB68|A9:undefined -28001E018:t2:A2:ip,AD:multicast_ttl -28001E030:t2:A6:socket,A9:dontroute -28001E048:t2:A4:ipv6,AC:ipcomp_level -28001E060:t2:A2:ip,AA:pktoptions -28001E078:t2:A4:IPV6,AC:recvhoplimit -28001E090:t2:A4:IPV6,AE:add_membership -28001E0A8:t2:A2:ip,AC:router_alert -28001E0C0:t2:A3:udp,A4:cork -28001E0D8:t2:A2:ip,A7:options -28001E0F0:Mn2:H28001EB80,H28001EBA8 -28001E108:t2:A4:IPV6,A7:authhdr -28001E120:t2:A2:IP,A8:msfilter -28001E138:t2:A2:IP,AD:multicast_ttl -28001E150:t2:A6:socket,AA:acceptconn -28001E168:t2:A4:ipv6,AA:join_group -28001E180:t2:A4:ipv6,AC:mtu_discover -28001E198:t2:A4:ipv6,AC:recvhoplimit -28001E1B0:Mn2:H28001EBB8,H28001EBC8 -28001E1C8:t2:A6:socket,A8:sndtimeo -28001E1E0:t2:A4:ipv6,A7:authhdr -28001E1F8:lH28001EBD8|A9:undefined -28001E208:lH28001EBF0|A9:undefined -28001E218:lH28001EC08|A9:undefined -28001E228:t2:A2:ip,A8:msfilter -28001E240:lH28001EC20|H28001E250 -28001E250:t2:I0,I5 -28001E268:lH28001EC38|A9:undefined -28001E278:lH28001EC50|H28001D988 -28001E288:t2:A3:tcp,A9:keepintvl -28001E2A0:t2:A2:ip,A7:retopts -28001E2B8:lH28001EC68|A9:undefined -28001E2C8:lH28001EC80|A9:undefined -28001E2D8:lH28001EC98|A9:undefined -28001E2E8:lH28001ECB0|A9:undefined -28001E2F8:lH28001ECC8|H28001E308 -28001E308:t2:A6:socket,I128 -28001E320:lH28001ECE0|H28001C9F0 -28001E330:lH28001ECF8|H28001D068 -28001E340:t2:A4:IPV6,AA:auth_level -28001E358:lH28001ED10|A9:undefined -28001E368:lH28001ED28|A9:undefined -28001E378:lH28001ED40|H28001DD58 -28001E388:lH28001ED58|A9:undefined -28001E398:t2:A6:socket,A4:type -28001E3B0:lH28001ED70|A9:undefined -28001E3C0:lH28001ED88|A9:undefined -28001E3D0:t2:A3:TCP,A9:keepintvl -28001E3E8:t2:A2:IP,AC:router_alert -28001E400:t2:A2:IP,A3:mtu -28001E418:t2:A6:socket,A9:broadcast -28001E430:t2:A6:socket,A4:mark -28001E448:t2:A4:ipv6,A5:rthdr -28001E460:t2:A2:IP,AB:sendsrcaddr -28001E478:t2:A4:ipv6,A9:portrange -28001E490:t2:A6:socket,A6:domain -28001E4A8:t2:A2:ip,AB:transparent -28001E4C0:t2:A4:ipv6,AE:add_membership -28001E4D8:t2:A3:TCP,A4:cork -28001E4F0:t2:A4:ipv6,A5:faith -28001E508:t2:A2:ip,A7:hdrincl -28001E520:t2:A2:IP,A6:recvif -28001E538:t2:A6:socket,A9:reuseport -28001E550:t2:A2:ip,AE:add_membership -28001E568:t2:A6:socket,A8:priority -28001E580:t2:A4:IPV6,AE:multicast_hops -28001E598:t2:A2:ip,A7:pktinfo -28001E5B0:t2:A2:ip,AB:sendsrcaddr -28001E5C8:t2:A4:IPV6,AC:router_alert -28001E5E0:t2:A2:IP,A6:minttl -28001E5F8:t2:A4:IPV6,A8:checksum -28001E610:t2:A6:socket,A8:rcvlowat -28001E628:t2:A3:tcp,A4:info -28001E640:t2:A3:tcp,A6:md5sig -28001E658:t2:A4:ipv6,A7:hopopts -28001E670:t2:A6:socket,A6:rcvbuf -28001E688:t2:A4:IPV6,A3:mtu -28001E6A0:t2:A4:IPV6,AC:unicast_hops -28001E6B8:t2:A4:ipv6,A8:hoplimit -28001E6D0:t2:A2:IP,AF:recvorigdstaddr -28001E6E8:t2:A2:ip,A7:recvtos -28001E700:lH28001EDA0|A9:undefined -28001E710:lH28001EDB8|A9:undefined -28001E720:t2:A2:ip,AD:multicast_all -28001E738:t2:A4:ipv6,AA:recvtclass -28001E750:t2:A2:ip,A8:freebind -28001E768:t2:A2:ip,A3:ttl -28001E780:t2:A2:IP,A7:options -28001E798:t2:A4:IPV6,A5:rthdr -28001E7B0:t2:A4:ipv6,A8:addrform -28001E7C8:t2:A6:socket,A8:rcvtimeo -28001E7E0:t2:A2:ip,AF:recvorigdstaddr -28001E7F8:t2:A3:tcp,A7:nodelay -28001E810:t2:A3:TCP,A6:nopush -28001E828:t2:A6:socket,A9:busy_poll -28001E840:t2:A2:IP,AA:pktoptions -28001E858:t2:A4:IPV6,AF:esp_trans_level -28001E870:t2:A6:socket,A9:reuseaddr -28001E888:t2:A2:IP,AE:add_membership -28001E8A0:t2:A2:ip,AB:recvdstaddr -28001E8B8:t2:A2:ip,A8:dontfrag -28001E8D0:t2:A2:IP,A3:tos -28001E8E8:t2:A4:ipv6,AF:esp_trans_level -28001E900:lH28001EDD0|H28001E250 -28001E910:lH28001EDE8|A9:undefined -28001E920:t2:A2:IP,AB:recvdstaddr -28001E938:t2:A2:IP,A7:recverr -28001E950:t2:A2:IP,A8:nodefrag -28001E968:t2:A3:UDP,A4:cork -28001E980:t2:A4:IPV6,A7:hopopts -28001E998:t2:A4:IPV6,AB:recvpktinfo -28001E9B0:t2:A4:IPV6,AE:multicast_loop -28001E9C8:t2:A2:IP,AE:multicast_loop -28001E9E0:t2:A3:tcp,A6:maxseg -28001E9F8:t2:A2:IP,A16:drop_source_membership -28001EA10:t2:A4:ipv6,AC:unicast_hops -28001EA28:t2:A2:IP,A7:recvttl -28001EA40:t2:A4:IPV6,A8:addrform -28001EA58:t2:A4:IPV6,A7:dstopts -28001EA70:t2:A2:IP,A7:hdrincl -28001EA88:t2:A3:tcp,A6:syncnt -28001EAA0:lH28001EE00|H28001DFE0 -28001EAB0:lH28001EE18|H28001DDD0 -28001EAC0:t2:A4:ipv6,A8:flowinfo -28001EAD8:t2:A2:ip,AC:mtu_discover -28001EAF0:t2:A6:socket,A8:peek_off -28001EB08:t2:A2:ip,AE:multicast_loop -28001EB20:t2:A2:ip,AC:multicast_if -28001EB38:t2:A4:ipv6,AC:multicast_if -28001EB50:t2:A4:ipv6,AA:auth_level -28001EB68:t2:A4:IPV6,A11:esp_network_level -28001EB80:lH28001EE30|H28001EB90 -28001EB90:t2:A6:socket,I4097 -28001EBA8:lH28001EE48|H28001D5B0 -28001EBB8:lH28001EE60|A9:undefined -28001EBC8:lH28001EE78|A9:undefined -28001EBD8:t2:A6:socket,A8:peercred -28001EBF0:t2:A3:TCP,AC:user_timeout -28001EC08:t2:A4:ipv6,A7:dstopts -28001EC20:t2:A2:IP,A8:recvopts -28001EC38:t2:A4:IPV6,A7:recverr -28001EC50:t2:A4:IPV6,AA:recvtclass -28001EC68:t2:A2:IP,AC:mtu_discover -28001EC80:t2:A3:tcp,A6:nopush -28001EC98:t2:A2:ip,A7:recverr -28001ECB0:t2:A3:TCP,A4:info -28001ECC8:t2:A6:socket,A6:linger -28001ECE0:t2:A2:ip,AC:block_source -28001ECF8:t2:A2:IP,AF:drop_membership -28001ED10:t2:A2:IP,AB:transparent -28001ED28:t2:A4:IPV6,AB:leave_group -28001ED40:t2:A4:ipv6,AE:multicast_loop -28001ED58:t2:A3:tcp,AA:congestion -28001ED70:t2:A4:IPV6,AA:pktoptions -28001ED88:t2:A4:ipv6,A11:esp_network_level -28001EDA0:t2:A4:ipv6,AC:router_alert -28001EDB8:t2:A3:TCP,A6:md5sig -28001EDD0:t2:A2:ip,A8:recvopts -28001EDE8:t2:A4:ipv6,A3:mtu -28001EE00:t2:A4:IPV6,AC:multicast_if -28001EE18:t2:A2:ip,A16:drop_source_membership -28001EE30:t2:A6:socket,A6:sndbuf -28001EE48:t2:A2:ip,A6:recvif -28001EE60:t2:A6:socket,A5:error -28001EE78:t2:A6:socket,AC:acceptfilter -280093128:t2:H280093140,A9:undefined -280093140:t2:AD:logger_config,H280093158 -280093158:t2:A10:$handler_config$,A6:simple -28007FBD8:t2:AC:global_group,H28007FBF0 -28007FBF0:t9:A5:gconf,A9:undefined,AD:nonode@nohost,N,A6:normal,N,A3:all,N,A7:no_conf -280017DC0:t2:H280017DD8,H280017DF0 -280017DD8:t2:AB:prim_socket,A9:protocols -280017DF0:Mh1A6:10:H280017E80,H280017EF0,H280017F68,H280017FD0,H280018040,H2800180A8,H280018120,H280018188,H2800181D8,H280018248,H2800182C0,H280018330,H2800183A0,H280018418,H280018480,H2800184F0 -280017E80:MnD:H280018568,H280018588,H2800185A0,H2800185D0,H2800185F0,H280018608,H280018620,H280018638,H280018648,H280018658,H280018668,H280018680,H2800186A0 -280017EF0:MnE:H2800186B8,H2800186D0,H2800186E8,H280018710,H280018720,H280018750,H280018760,H280018778,H280018798,H2800187A8,H2800187B8,H2800187D8,H2800187F0,H280018800 -280017F68:MnC:H280018810,H280018820,H280018840,H280018868,H280018880,H280018890,H2800188A8,H2800188C0,H2800188E0,H2800188F8,H280018920,H280018930 -280017FD0:MnD:H280018948,H280018958,H280018978,H280018998,H2800189B0,H2800189D0,H2800189E8,H2800189F8,H280018A10,H280018A30,H280018A40,H280018A50,H280018A70 -280018040:MnC:H280018A88,H280018AA0,H280018AB8,H280018AD8,H280018AE8,H280018AF8,H280018B18,H280018B30,H280018B40,H280018B70,H280018BA0,H280018BB8 -2800180A8:MnE:H280018BE0,H280018BF8,H280018C20,H280018C48,H280018C70,H280018C80,H280018C90,H280018CA8,H280018CB8,H280018CD0,H280018CE8,H280018D10,H280018D30,H280018D48 -280018120:MnC:H280018D68,H280018D88,H280018DA8,H280018DB8,H280018DD8,H280018DE8,H280018DF8,H280018E08,H280018E20,H280018E38,H280018E68,H280018E80 -280018188:Mn9:H280018EB0,H280018EC0,H280018ED8,H280018EF0,H280018F00,H280018F10,H280018F30,H280018F48,H280018F60 -2800181D8:MnD:H280018F88,H280018F98,H280018FA8,H280018FC0,H280018FE0,H280019008,H280019038,H280019048,H280019060,H280019078,H280019088,H280019098,H2800190A8 -280018248:MnE:H2800190B8,H2800190D8,H2800190E8,H2800190F8,H280019108,H280019128,H280019138,H280019150,H280019160,H280019178,H280019198,H2800191A8,H2800191B8,H2800191D0 -2800182C0:MnD:H2800191E0,H2800191F8,H280019220,H280019250,H280019268,H280019290,H2800192A8,H2800192C8,H2800192D8,H2800192E8,H2800192F8,H280019310,H280019328 -280018330:MnD:H280019338,H280019350,H280019380,H280019390,H2800193C0,H2800193E0,H2800193F8,H280019418,H280019428,H280019448,H280019468,H280019480,H280019498 -2800183A0:MnE:H2800194C8,H2800194E0,H280019500,H280019518,H280019530,H280019548,H280019558,H280019578,H2800195A8,H2800195E8,H280019600,H280019618,H280019630,H280019650 -280018418:MnC:H280019660,H280019678,H280019688,H2800196B8,H2800196D0,H2800196E0,H2800196F8,H280019710,H280019730,H280019750,H280019760,H280019770 -280018480:MnD:H280019780,H280019798,H2800197A8,H2800197C8,H2800197E8,H280019818,H280019830,H280019860,H280019870,H280019880,H2800198B0,H2800198E0,H280019910 -2800184F0:MnE:H280019930,H280019950,H280019968,H280019980,H280019990,H2800199A8,H2800199C0,H2800199D0,H2800199F8,H280019A10,H280019A30,H280019A50,H280019A60,H280019A80 -280018568:Mn3:H280019A90,H280019AA0,H280019AD0 -280018588:Mn2:H280019AE0,H280019AF0 -2800185A0:lI50|H2800185B0 -2800185B0:lA3:esp|H2800185C0 -2800185C0:lA3:ESP|N -2800185D0:Mn3:H280019B00,H280019B30,H280019B40 -2800185F0:Mn2:H280019B50,H280019B80 -280018608:Mn2:H280019BB0,H280019BC0 -280018620:Mn2:H280019BD0,H280019BE0 -280018638:lA3:mux|I18 -280018648:lA3:pvp|I75 -280018658:lA3:rvd|I66 -280018668:Mn2:H280019BF0,H280019C20 -280018680:Mn3:H280019C30,H280019C40,H280019C50 -2800186A0:Mn2:H280019C80,H280019C90 -2800186B8:Mn2:H280019CA0,H280019CB0 -2800186D0:Mn2:H280019CC0,H280019CF0 -2800186E8:Mn4:H280019D00,H280019D10,H280019D20,H280019D30 -280018710:lA5:manet|I138 -280018720:lI64|H280018730 -280018730:lA9:sat-expak|H280018740 -280018740:lA9:SAT-EXPAK|N -280018750:lA6:MOBILE|I55 -280018760:Mn2:H280019D60,H280019D70 -280018778:Mn3:H280019DA0,H280019DB0,H280019DC0 -280018798:lA4:IGMP|I2 -2800187A8:lAB:SECURE-VMTP|I82 -2800187B8:Mn3:H280019DD0,H280019E00,H280019E10 -2800187D8:Mn2:H280019E40,H280019E50 -2800187F0:lA2:ah|I51 -280018800:lAA:br-sat-mon|I76 -280018810:lA4:IDPR|I35 -280018820:Mn3:H280019E60,H280019E70,H280019EA0 -280018840:Mn4:H280019EB0,H280019EC0,H280019EF0,H280019F00 -280018868:Mn2:H280019F30,H280019F40 -280018880:Mn1:H280019F50 -280018890:Mn2:H280019F68,H280019F78 -2800188A8:Mn2:H280019FA8,H280019FB8 -2800188C0:Mn3:H280019FE8,H28001A018,H28001A028 -2800188E0:Mn2:H28001A058,H28001A088 -2800188F8:Mn4:H28001A098,H28001A0A8,H28001A0B8,H28001A0C8 -280018920:lA3:hmp|I20 -280018930:Mn2:H28001A0E0,H28001A110 -280018948:Mn1:H28001A140 -280018958:Mn3:H28001A150,H28001A180,H28001A190 -280018978:Mn3:H28001A1C0,H28001A1D0,H28001A200 -280018998:Mn2:H28001A230,H28001A240 -2800189B0:Mn3:H28001A250,H28001A280,H28001A290 -2800189D0:Mn2:H28001A2A0,H28001A2B8 -2800189E8:lA3:TCF|I87 -2800189F8:Mn2:H28001A2C8,H28001A2F8 -280018A10:Mn3:H28001A328,H28001A338,H28001A348 -280018A30:lA3:xtp|I36 -280018A40:lA5:ENCAP|I98 -280018A50:Mn3:H28001A360,H28001A370,H28001A388 -280018A70:Mn2:H28001A3B8,H28001A3C8 -280018A88:Mn2:H28001A3D8,H28001A408 -280018AA0:Mn2:H28001A438,H28001A468 -280018AB8:Mn3:H28001A498,H28001A4A8,H28001A4D8 -280018AD8:lA3:BNA|I49 -280018AE8:lA3:TCP|I6 -280018AF8:Mn3:H28001A4E8,H28001A518,H28001A528 -280018B18:Mn2:H28001A538,H28001A548 -280018B30:lA7:MFE-NSP|I31 -280018B40:lI106|H280018B50 -280018B50:lA3:qnx|H280018B60 -280018B60:lA3:QNX|N -280018B70:lI9|H280018B80 -280018B80:lA3:igp|H280018B90 -280018B90:lA3:IGP|N -280018BA0:Mn2:H28001A558,H28001A588 -280018BB8:Mn4:H28001A598,H28001A5A8,H28001A5D8,H28001A5E8 -280018BE0:Mn2:H28001A5F8,H28001A628 -280018BF8:Mn4:H28001A638,H28001A648,H28001A658,H28001A668 -280018C20:Mn4:H28001A678,H28001A688,H28001A6B8,H28001A6C8 -280018C48:Mn4:H28001A6D8,H28001A6E8,H28001A6F8,H28001A728 -280018C70:lA4:vmtp|I81 -280018C80:lA9:idpr-cmtp|I38 -280018C90:Mn2:H28001A738,H28001A768 -280018CA8:lA7:iso-tp4|I29 -280018CB8:Mn2:H28001A798,H28001A7A8 -280018CD0:Mn2:H28001A7B8,H28001A7C8 -280018CE8:Mn4:H28001A7F8,H28001A808,H28001A820,H28001A830 -280018D10:Mn3:H28001A860,H28001A870,H28001A8A0 -280018D30:Mn2:H28001A8D0,H28001A8E0 -280018D48:Mn3:H28001A910,H28001A920,H28001A930 -280018D68:Mn3:H28001A940,H28001A958,H28001A970 -280018D88:Mn3:H28001A980,H28001A990,H28001A9A0 -280018DA8:lA3:UTI|I120 -280018DB8:Mn3:H28001A9B8,H28001A9C8,H28001A9F8 -280018DD8:lAB:compaq-peer|I110 -280018DE8:lA9:IPV6-ICMP|I58 -280018DF8:lA5:chaos|I16 -280018E08:Mn2:H28001AA08,H28001AA38 -280018E20:Mn2:H28001AA48,H28001AA78 -280018E38:lI142|H280018E48 -280018E48:lA4:rohc|H280018E58 -280018E58:lA4:ROHC|N -280018E68:Mn2:H28001AAA8,H28001AAD8 -280018E80:lI56|H280018E90 -280018E90:lA4:tlsp|H280018EA0 -280018EA0:lA4:TLSP|N -280018EB0:lA3:tcp|I6 -280018EC0:Mn2:H28001AB08,H28001AB18 -280018ED8:Mn2:H28001AB28,H28001AB38 -280018EF0:lAB:Compaq-Peer|I110 -280018F00:lAF:Mobility-Header|I135 -280018F10:Mn3:H28001AB48,H28001AB58,H28001AB68 -280018F30:Mn2:H28001AB78,H28001AB88 -280018F48:Mn2:H28001AB98,H28001ABA8 -280018F60:Mn4:H28001ABB8,H28001ABE8,H28001AC00,H28001AC30 -280018F88:Mn1:H28001AC40 -280018F98:lA4:IRTP|I28 -280018FA8:Mn2:H28001AC58,H28001AC68 -280018FC0:Mn3:H28001AC78,H28001AC88,H28001AC98 -280018FE0:Mn4:H28001ACA8,H28001ACD8,H28001ACE8,H28001ACF8 -280019008:lI45|H280019018 -280019018:lA4:idrp|H280019028 -280019028:lA4:IDRP|N -280019038:lA4:ROHC|I142 -280019048:Mn2:H28001AD08,H28001AD18 -280019060:Mn2:H28001AD48,H28001AD58 -280019078:Mn1:H28001AD70 -280019088:lA3:RVD|I66 -280019098:lA7:mfe-nsp|I31 -2800190A8:lA4:PNNI|I102 -2800190B8:Mn3:H28001AD88,H28001AD98,H28001ADA8 -2800190D8:lA4:tlsp|I56 -2800190E8:lA3:CBT|I7 -2800190F8:Mn1:H28001ADB8 -280019108:Mn3:H28001ADD0,H28001ADE0,H28001AE10 -280019128:lA3:DGP|I86 -280019138:Mn2:H28001AE20,H28001AE30 -280019150:lA6:ipcomp|I108 -280019160:Mn2:H28001AE60,H28001AE70 -280019178:Mn3:H28001AE88,H28001AE98,H28001AEC8 -280019198:lA4:sdrp|I42 -2800191A8:Mn1:H28001AEF8 -2800191B8:Mn2:H28001AF10,H28001AF20 -2800191D0:lA3:mtp|I92 -2800191E0:Mn2:H28001AF50,H28001AF80 -2800191F8:Mn4:H28001AF90,H28001AFC0,H28001AFD8,H28001B008 -280019220:lI2|H280019230 -280019230:lA4:igmp|H280019240 -280019240:lA4:IGMP|N -280019250:Mn2:H28001B018,H28001B030 -280019268:Mn4:H28001B048,H28001B078,H28001B0A8,H28001B0B8 -280019290:Mn2:H28001B0E8,H28001B0F8 -2800192A8:Mn3:H28001B108,H28001B118,H28001B128 -2800192C8:lA6:I-NLSP|I52 -2800192D8:lA4:VISA|I70 -2800192E8:lA4:larp|I91 -2800192F8:Mn2:H28001B140,H28001B170 -280019310:Mn2:H28001B1A0,H28001B1B0 -280019328:lA4:IPV6|I41 -280019338:Mn2:H28001B1E0,H28001B210 -280019350:lI32|H280019360 -280019360:lA9:merit-inp|H280019370 -280019370:lA9:MERIT-INP|N -280019380:lA4:idrp|I45 -280019390:Mn5:H28001B220,H28001B230,H28001B240,H28001B250,H28001B260 -2800193C0:Mn3:H28001B270,H28001B280,H28001B2B0 -2800193E0:Mn2:H28001B2F0,H28001B320 -2800193F8:Mn3:H28001B330,H28001B340,H28001B370 -280019418:lA7:bbn-rcc|I10 -280019428:Mn3:H28001B380,H28001B390,H28001B3C0 -280019448:Mn3:H28001B3F0,H28001B400,H28001B430 -280019468:Mn2:H28001B440,H28001B450 -280019480:Mn2:H28001B460,H28001B490 -280019498:lI30|H2800194A8 -2800194A8:lA6:netblt|H2800194B8 -2800194B8:lA6:NETBLT|N -2800194C8:Mn2:H28001B4A0,H28001B4D0 -2800194E0:Mn3:H28001B500,H28001B510,H28001B540 -280019500:Mn2:H28001B550,H28001B560 -280019518:Mn2:H28001B570,H28001B580 -280019530:Mn2:H28001B5B0,H28001B5C0 -280019548:lA9:MERIT-INP|I32 -280019558:Mn3:H28001B5D0,H28001B5E0,H28001B610 -280019578:lI6|H280019588 -280019588:lA3:tcp|H280019598 -280019598:lA3:TCP|N -2800195A8:lI112|H2800195B8 -2800195B8:lA4:carp|H2800195C8 -2800195C8:lA4:vrrp|H2800195D8 -2800195D8:lA4:CARP|N -2800195E8:Mn2:H28001B620,H28001B650 -280019600:Mn2:H28001B680,H28001B6B0 -280019618:Mn2:H28001B6C0,H28001B6D0 -280019630:Mn3:H28001B6E0,H28001B710,H28001B720 -280019650:lA5:EMCON|I14 -280019660:Mn2:H28001B750,H28001B760 -280019678:lA6:leaf-1|I25 -280019688:lI116|H280019698 -280019698:lA3:ddx|H2800196A8 -2800196A8:lA3:DDX|N -2800196B8:Mn2:H28001B770,H28001B7A0 -2800196D0:lA3:QNX|I106 -2800196E0:Mn2:H28001B7B0,H28001B7E0 -2800196F8:Mn2:H28001B7F0,H28001B820 -280019710:Mn3:H28001B830,H28001B840,H28001B850 -280019730:Mn3:H28001B860,H28001B890,H28001B8C0 -280019750:lA7:OSPFIGP|I89 -280019760:lA4:skip|I57 -280019770:Mn1:H28001B8D0 -280019780:Mn2:H28001B8E8,H28001B8F8 -280019798:lA3:smp|I121 -2800197A8:Mn3:H28001B908,H28001B938,H28001B968 -2800197C8:Mn3:H28001B978,H28001B990,H28001B9A8 -2800197E8:lI52|H2800197F8 -2800197F8:lA6:i-nlsp|H280019808 -280019808:lA6:I-NLSP|N -280019818:Mn2:H28001B9B8,H28001B9E8 -280019830:lI49|H280019840 -280019840:lA3:bna|H280019850 -280019850:lA3:BNA|N -280019860:lA3:ddx|I116 -280019870:lAA:BR-SAT-MON|I76 -280019880:lI38|H280019890 -280019890:lA9:idpr-cmtp|H2800198A0 -2800198A0:lA9:IDPR-CMTP|N -2800198B0:lI134|H2800198C0 -2800198C0:lAF:rsvp-e2e-ignore|H2800198D0 -2800198D0:lAF:RSVP-E2E-IGNORE|N -2800198E0:lI118|H2800198F0 -2800198F0:lA3:stp|H280019900 -280019900:lA3:STP|N -280019910:Mn3:H28001B9F8,H28001BA08,H28001BA18 -280019930:Mn3:H28001BA48,H28001BA58,H28001BA88 -280019950:Mn2:H28001BAB8,H28001BAC8 -280019968:Mn2:H28001BAF8,H28001BB08 -280019980:lA5:VINES|I83 -280019990:Mn2:H28001BB18,H28001BB48 -2800199A8:Mn2:H28001BB58,H28001BB88 -2800199C0:lA5:swipe|I53 -2800199D0:Mn4:H28001BBB8,H28001BBE8,H28001BBF8,H28001BC28 -2800199F8:Mn2:H28001BC58,H28001BC68 -280019A10:Mn3:H28001BC78,H28001BC88,H28001BC98 -280019A30:Mn3:H28001BCA8,H28001BCB8,H28001BCC8 -280019A50:lA5:ax.25|I93 -280019A60:Mn3:H28001BCD8,H28001BCE8,H28001BCF8 -280019A80:lAA:ipv6-nonxt|I59 -280019A90:lA3:pup|I12 -280019AA0:lI65|H280019AB0 -280019AB0:lA9:kryptolan|H280019AC0 -280019AC0:lA9:KRYPTOLAN|N -280019AD0:lA5:crudp|I127 -280019AE0:lA3:MUX|I18 -280019AF0:lA4:GMTP|I100 -280019B00:lI36|H280019B10 -280019B10:lA3:xtp|H280019B20 -280019B20:lA3:XTP|N -280019B30:lA4:crtp|I126 -280019B40:lA3:gre|I47 -280019B50:lI137|H280019B60 -280019B60:lAA:mpls-in-ip|H280019B70 -280019B70:lAA:MPLS-IN-IP|N -280019B80:lI4|H280019B90 -280019B90:lA7:ipencap|H280019BA0 -280019BA0:lA8:IP-ENCAP|N -280019BB0:lA7:xns-idp|I22 -280019BC0:lA3:ddp|I37 -280019BD0:lA9:IPV6-OPTS|I60 -280019BE0:lA5:AX.25|I93 -280019BF0:lI126|H280019C00 -280019C00:lA4:crtp|H280019C10 -280019C10:lA4:CRTP|N -280019C20:lA4:pnni|I102 -280019C30:lA7:ipencap|I4 -280019C40:lA4:gmtp|I100 -280019C50:lI136|H280019C60 -280019C60:lA7:udplite|H280019C70 -280019C70:lA7:UDPLite|N -280019C80:lAA:nsfnet-igp|I85 -280019C90:lA3:egp|I8 -280019CA0:lA3:SPS|I130 -280019CB0:lA5:CRUDP|I127 -280019CC0:lI25|H280019CD0 -280019CD0:lA6:leaf-1|H280019CE0 -280019CE0:lA6:LEAF-1|N -280019CF0:lA3:udp|I17 -280019D00:lA2:IL|I40 -280019D10:lA4:RSVP|I46 -280019D20:lA4:MICP|I95 -280019D30:lI39|H280019D40 -280019D40:lA4:tp++|H280019D50 -280019D50:lA4:TP++|N -280019D60:lA3:PGM|I113 -280019D70:lI109|H280019D80 -280019D80:lA3:snp|H280019D90 -280019D90:lA3:SNP|N -280019DA0:lA4:cftp|I62 -280019DB0:lA7:trunk-1|I23 -280019DC0:lA3:stp|I118 -280019DD0:lI95|H280019DE0 -280019DE0:lA4:micp|H280019DF0 -280019DF0:lA4:MICP|N -280019E00:lA4:irtp|I28 -280019E10:lI101|H280019E20 -280019E20:lA4:ifmp|H280019E30 -280019E30:lA4:IFMP|N -280019E40:lA3:uti|I120 -280019E50:lA4:SCTP|I132 -280019E60:lA4:fire|I125 -280019E70:lI130|H280019E80 -280019E80:lA3:sps|H280019E90 -280019E90:lA3:SPS|N -280019EA0:lA4:IPLT|I129 -280019EB0:lA9:ipv6-frag|I44 -280019EC0:lI131|H280019ED0 -280019ED0:lA4:pipe|H280019EE0 -280019EE0:lA4:PIPE|N -280019EF0:lA6:LEAF-1|I25 -280019F00:lI62|H280019F10 -280019F10:lA4:cftp|H280019F20 -280019F20:lA4:CFTP|N -280019F30:lA4:rsvp|I46 -280019F40:lA4:IDRP|I45 -280019F50:Mn2:H28001BD08,H28001BD38 -280019F68:lA2:ip|I0 -280019F78:lI141|H280019F88 -280019F88:lA4:wesp|H280019F98 -280019F98:lA4:WESP|N -280019FA8:lA4:IPIP|I94 -280019FB8:lI132|H280019FC8 -280019FC8:lA4:sctp|H280019FD8 -280019FD8:lA4:SCTP|N -280019FE8:lI43|H280019FF8 -280019FF8:lAA:ipv6-route|H28001A008 -28001A008:lAA:IPV6-ROUTE|N -28001A018:lA6:mobile|I55 -28001A028:lI105|H28001A038 -28001A038:lA4:scps|H28001A048 -28001A048:lA4:SCPS|N -28001A058:lI59|H28001A068 -28001A068:lAA:ipv6-nonxt|H28001A078 -28001A078:lAA:IPV6-NONXT|N -28001A088:lA3:A/N|I107 -28001A098:lA3:igp|I9 -28001A0A8:lA4:CFTP|I62 -28001A0B8:lA7:trunk-2|I24 -28001A0C8:Mn2:H28001BD48,H28001BD78 -28001A0E0:lI87|H28001A0F0 -28001A0F0:lA3:tcf|H28001A100 -28001A100:lA3:TCF|N -28001A110:lI51|H28001A120 -28001A120:lA2:ah|H28001A130 -28001A130:lA2:AH|N -28001A140:Mn1:H28001BDA8 -28001A150:lI110|H28001A160 -28001A160:lAB:compaq-peer|H28001A170 -28001A170:lAB:Compaq-Peer|N -28001A180:lA4:CARP|I112 -28001A190:lI1|H28001A1A0 -28001A1A0:lA4:icmp|H28001A1B0 -28001A1B0:lA4:ICMP|N -28001A1C0:lA3:HMP|I20 -28001A1D0:lI107|H28001A1E0 -28001A1E0:lA3:a/n|H28001A1F0 -28001A1F0:lA3:A/N|N -28001A200:lI128|H28001A210 -28001A210:lA8:sscopmce|H28001A220 -28001A220:lA8:SSCOPMCE|N -28001A230:lA6:scc-sp|I96 -28001A240:lA8:SSCOPMCE|I128 -28001A250:lI70|H28001A260 -28001A260:lA4:visa|H28001A270 -28001A270:lA4:VISA|N -28001A280:lA4:icmp|I1 -28001A290:lA6:iso-ip|I80 -28001A2A0:Mn2:H28001BDC0,H28001BDF0 -28001A2B8:lA3:XTP|I36 -28001A2C8:lI46|H28001A2D8 -28001A2D8:lA4:rsvp|H28001A2E8 -28001A2E8:lA4:RSVP|N -28001A2F8:lI77|H28001A308 -28001A308:lA6:sun-nd|H28001A318 -28001A318:lA6:SUN-ND|N -28001A328:lA3:snp|I109 -28001A338:lA4:NARP|I54 -28001A348:Mn2:H28001BE00,H28001BE30 -28001A360:lA4:iplt|I129 -28001A370:Mn2:H28001BE60,H28001BE70 -28001A388:lI10|H28001A398 -28001A398:lA7:bbn-rcc|H28001A3A8 -28001A3A8:lAB:BBN-RCC-MON|N -28001A3B8:lA9:kryptolan|I65 -28001A3C8:lA6:leaf-2|I26 -28001A3D8:lI124|H28001A3E8 -28001A3E8:lA4:isis|H28001A3F8 -28001A3F8:lA4:ISIS|N -28001A408:lI48|H28001A418 -28001A418:lA3:dsr|H28001A428 -28001A428:lA3:DSR|N -28001A438:lI103|H28001A448 -28001A448:lA3:pim|H28001A458 -28001A458:lA3:PIM|N -28001A468:lI7|H28001A478 -28001A478:lA3:cbt|H28001A488 -28001A488:lA3:CBT|N -28001A498:lA4:VMTP|I81 -28001A4A8:lI138|H28001A4B8 -28001A4B8:lA5:manet|H28001A4C8 -28001A4C8:lA5:MANET|N -28001A4D8:lA4:WESP|I141 -28001A4E8:lI71|H28001A4F8 -28001A4F8:lA4:ipcv|H28001A508 -28001A508:lA4:IPCV|N -28001A518:lA3:ggp|I3 -28001A528:lA4:tp++|I39 -28001A538:lA3:rdp|I27 -28001A548:lA3:IGP|I9 -28001A558:lI258|H28001A568 -28001A568:lA6:divert|H28001A578 -28001A578:lA6:DIVERT|N -28001A588:lA3:PTP|I123 -28001A598:lA6:wb-mon|I78 -28001A5A8:lI11|H28001A5B8 -28001A5B8:lA3:nvp|H28001A5C8 -28001A5C8:lA6:NVP-II|N -28001A5D8:lA5:argus|I13 -28001A5E8:lA4:xnet|I15 -28001A5F8:lI12|H28001A608 -28001A608:lA3:pup|H28001A618 -28001A618:lA3:PUP|N -28001A628:lA4:ifmp|I101 -28001A638:lA3:3pc|I34 -28001A648:lA6:DIVERT|I258 -28001A658:lA3:PUP|I12 -28001A668:lAF:mobility-header|I135 -28001A678:lA4:idpr|I35 -28001A688:lI28|H28001A698 -28001A698:lA4:irtp|H28001A6A8 -28001A6A8:lA4:IRTP|N -28001A6B8:lAB:secure-vmtp|I82 -28001A6C8:lA3:prm|I21 -28001A6D8:lA3:EGP|I8 -28001A6E8:lA3:cbt|I7 -28001A6F8:lI47|H28001A708 -28001A708:lA3:gre|H28001A718 -28001A718:lA3:GRE|N -28001A728:lAA:sprite-rpc|I90 -28001A738:lI89|H28001A748 -28001A748:lA4:ospf|H28001A758 -28001A758:lA7:OSPFIGP|N -28001A768:lI24|H28001A778 -28001A778:lA7:trunk-2|H28001A788 -28001A788:lA7:TRUNK-2|N -28001A798:lA2:IP|I0 -28001A7A8:lA4:ICMP|I1 -28001A7B8:lA5:MANET|I138 -28001A7C8:lI13|H28001A7D8 -28001A7D8:lA5:argus|H28001A7E8 -28001A7E8:lA5:ARGUS|N -28001A7F8:lA6:pfsync|I240 -28001A808:Mn2:H28001BE80,H28001BE90 -28001A820:lA6:SUN-ND|I77 -28001A830:lI94|H28001A840 -28001A840:lA4:ipip|H28001A850 -28001A850:lA4:IPIP|N -28001A860:lA3:tcf|I87 -28001A870:lI3|H28001A880 -28001A880:lA3:ggp|H28001A890 -28001A890:lA3:GGP|N -28001A8A0:lI18|H28001A8B0 -28001A8B0:lA3:mux|H28001A8C0 -28001A8C0:lA3:MUX|N -28001A8D0:lA4:l2tp|I115 -28001A8E0:lI113|H28001A8F0 -28001A8F0:lA3:pgm|H28001A900 -28001A900:lA3:PGM|N -28001A910:lA3:SMP|I121 -28001A920:lA8:wb-expak|I79 -28001A930:lA7:SAT-MON|I69 -28001A940:Mn2:H28001BEA0,H28001BEB0 -28001A958:Mn2:H28001BEC0,H28001BED0 -28001A970:lA9:KRYPTOLAN|I65 -28001A980:lA7:udplite|I136 -28001A990:lA3:DDP|I37 -28001A9A0:Mn2:H28001BEE0,H28001BEF0 -28001A9B8:lA3:TTP|I84 -28001A9C8:lI29|H28001A9D8 -28001A9D8:lA7:iso-tp4|H28001A9E8 -28001A9E8:lA7:ISO-TP4|N -28001A9F8:lA2:AH|I51 -28001AA08:lI72|H28001AA18 -28001AA18:lA4:cpnx|H28001AA28 -28001AA28:lA4:CPNX|N -28001AA38:lA4:LARP|I91 -28001AA48:lI53|H28001AA58 -28001AA58:lA5:swipe|H28001AA68 -28001AA68:lA5:SWIPE|N -28001AA78:lI135|H28001AA88 -28001AA88:lAF:mobility-header|H28001AA98 -28001AA98:lAF:Mobility-Header|N -28001AAA8:lI69|H28001AAB8 -28001AAB8:lA7:sat-mon|H28001AAC8 -28001AAC8:lA7:SAT-MON|N -28001AAD8:lI120|H28001AAE8 -28001AAE8:lA3:uti|H28001AAF8 -28001AAF8:lA3:UTI|N -28001AB08:lAA:IPV6-ROUTE|I43 -28001AB18:lA4:carp|I112 -28001AB28:lA7:UDPLite|I136 -28001AB38:lA4:ARIS|I104 -28001AB48:lAA:MPLS-IN-IP|I137 -28001AB58:lA7:XNS-IDP|I22 -28001AB68:lA3:sps|I130 -28001AB78:lA7:TRUNK-1|I23 -28001AB88:lA4:IATP|I117 -28001AB98:lA4:igmp|I2 -28001ABA8:lA3:ptp|I123 -28001ABB8:lI42|H28001ABC8 -28001ABC8:lA4:sdrp|H28001ABD8 -28001ABD8:lA4:SDRP|N -28001ABE8:Mn2:H28001BF00,H28001BF10 -28001AC00:lI76|H28001AC10 -28001AC10:lAA:br-sat-mon|H28001AC20 -28001AC20:lAA:BR-SAT-MON|N -28001AC30:lAA:IPV6-NONXT|I59 -28001AC40:Mn2:H28001BF20,H28001BF30 -28001AC58:lA4:L2TP|I115 -28001AC68:lA3:WSN|I74 -28001AC78:lA3:GRE|I47 -28001AC88:lA4:vrrp|I112 -28001AC98:lA6:divert|I258 -28001ACA8:lI98|H28001ACB8 -28001ACB8:lA5:encap|H28001ACC8 -28001ACC8:lA5:ENCAP|N -28001ACD8:lA6:i-nlsp|I52 -28001ACE8:lA4:sctp|I132 -28001ACF8:lA5:encap|I98 -28001AD08:lA4:visa|I70 -28001AD18:lI26|H28001AD28 -28001AD28:lA6:leaf-2|H28001AD38 -28001AD38:lA6:LEAF-2|N -28001AD48:lA4:pipe|I131 -28001AD58:Mn2:H28001BF60,H28001BF70 -28001AD70:Mn2:H28001BF80,H28001BF90 -28001AD88:lA2:SM|I122 -28001AD98:lA5:eigrp|I88 -28001ADA8:lAF:rsvp-e2e-ignore|I134 -28001ADB8:Mn2:H28001BFA0,H28001BFB0 -28001ADD0:lA3:GGP|I3 -28001ADE0:lI108|H28001ADF0 -28001ADF0:lA6:ipcomp|H28001AE00 -28001AE00:lA6:IPComp|N -28001AE10:lA4:micp|I95 -28001AE20:lA4:FIRE|I125 -28001AE30:lI133|H28001AE40 -28001AE40:lA2:fc|H28001AE50 -28001AE50:lA2:FC|N -28001AE60:lA3:ST2|I5 -28001AE70:Mn2:H28001BFC0,H28001BFF0 -28001AE88:lA6:NVP-II|I11 -28001AE98:lI44|H28001AEA8 -28001AEA8:lA9:ipv6-frag|H28001AEB8 -28001AEB8:lA9:IPV6-FRAG|N -28001AEC8:lI19|H28001AED8 -28001AED8:lA3:dcn|H28001AEE8 -28001AEE8:lA8:DCN-MEAS|N -28001AEF8:Mn2:H28001C000,H28001C010 -28001AF10:lA3:3PC|I34 -28001AF20:lI79|H28001AF30 -28001AF30:lA8:wb-expak|H28001AF40 -28001AF40:lA8:WB-EXPAK|N -28001AF50:lI0|H28001AF60 -28001AF60:lA2:ip|H28001AF70 -28001AF70:lA2:IP|N -28001AF80:lA9:sat-expak|I64 -28001AF90:lI100|H28001AFA0 -28001AFA0:lA4:gmtp|H28001AFB0 -28001AFB0:lA4:GMTP|N -28001AFC0:Mn2:H28001C040,H28001C070 -28001AFD8:lI139|H28001AFE8 -28001AFE8:lA3:hip|H28001AFF8 -28001AFF8:lA3:HIP|N -28001B008:lA4:rohc|I142 -28001B018:Mn2:H28001C080,H28001C090 -28001B030:Mn2:H28001C0A0,H28001C0B0 -28001B048:lI104|H28001B058 -28001B058:lA4:aris|H28001B068 -28001B068:lA4:ARIS|N -28001B078:lI60|H28001B088 -28001B088:lA9:ipv6-opts|H28001B098 -28001B098:lA9:IPV6-OPTS|N -28001B0A8:lA3:pgm|I113 -28001B0B8:lI33|H28001B0C8 -28001B0C8:lA4:dccp|H28001B0D8 -28001B0D8:lA4:DCCP|N -28001B0E8:lA5:emcon|I14 -28001B0F8:lA3:MTP|I92 -28001B108:lA4:ipv6|I41 -28001B118:lA8:WB-EXPAK|I79 -28001B128:Mn2:H28001C0E0,H28001C0F0 -28001B140:lI88|H28001B150 -28001B150:lA5:eigrp|H28001B160 -28001B160:lA5:EIGRP|N -28001B170:lI96|H28001B180 -28001B180:lA6:scc-sp|H28001B190 -28001B190:lA6:SCC-SP|N -28001B1A0:lA4:iatp|I117 -28001B1B0:lI21|H28001B1C0 -28001B1C0:lA3:prm|H28001B1D0 -28001B1D0:lA3:PRM|N -28001B1E0:lI73|H28001B1F0 -28001B1F0:lA4:cphb|H28001B200 -28001B200:lA4:CPHB|N -28001B210:lA4:PIPE|I131 -28001B220:lA5:CHAOS|I16 -28001B230:lA9:ipv6-opts|I60 -28001B240:lA7:ETHERIP|I97 -28001B250:lA7:etherip|I97 -28001B260:lA3:ttp|I84 -28001B270:lA5:vines|I83 -28001B280:lI121|H28001B290 -28001B290:lA3:smp|H28001B2A0 -28001B2A0:lA3:SMP|N -28001B2B0:lI58|H28001B2C0 -28001B2C0:lA9:ipv6-icmp|H28001B2D0 -28001B2D0:lA5:icmp6|H28001B2E0 -28001B2E0:lA9:IPV6-ICMP|N -28001B2F0:lI117|H28001B300 -28001B300:lA4:iatp|H28001B310 -28001B310:lA4:IATP|N -28001B320:lA4:SCPS|I105 -28001B330:lAB:BBN-RCC-MON|I10 -28001B340:lI20|H28001B350 -28001B350:lA3:hmp|H28001B360 -28001B360:lA3:HMP|N -28001B370:lA4:ISIS|I124 -28001B380:lA3:HIP|I139 -28001B390:lI17|H28001B3A0 -28001B3A0:lA3:udp|H28001B3B0 -28001B3B0:lA3:UDP|N -28001B3C0:lI82|H28001B3D0 -28001B3D0:lAB:secure-vmtp|H28001B3E0 -28001B3E0:lAB:SECURE-VMTP|N -28001B3F0:lA5:SHIM6|I140 -28001B400:lI74|H28001B410 -28001B410:lA3:wsn|H28001B420 -28001B420:lA3:WSN|N -28001B430:lA4:IPCV|I71 -28001B440:lA9:IPX-in-IP|I111 -28001B450:lA4:scps|I105 -28001B460:lI119|H28001B470 -28001B470:lA3:srp|H28001B480 -28001B480:lA3:SRP|N -28001B490:lA6:SCC-SP|I96 -28001B4A0:lI140|H28001B4B0 -28001B4B0:lA5:shim6|H28001B4C0 -28001B4C0:lA5:SHIM6|N -28001B4D0:lI90|H28001B4E0 -28001B4E0:lAA:sprite-rpc|H28001B4F0 -28001B4F0:lAA:Sprite-RPC|N -28001B500:lA3:dsr|I48 -28001B510:lI14|H28001B520 -28001B520:lA5:emcon|H28001B530 -28001B530:lA5:EMCON|N -28001B540:lA4:wesp|I141 -28001B550:lA6:NETBLT|I30 -28001B560:lA7:ISO-TP4|I29 -28001B570:lA3:esp|I50 -28001B580:lI5|H28001B590 -28001B590:lA3:st2|H28001B5A0 -28001B5A0:lA3:ST2|N -28001B5B0:lA3:srp|I119 -28001B5C0:lA5:EIGRP|I88 -28001B5D0:lA4:TP++|I39 -28001B5E0:lI67|H28001B5F0 -28001B5F0:lA4:ippc|H28001B600 -28001B600:lA4:IPPC|N -28001B610:lA9:ipx-in-ip|I111 -28001B620:lI102|H28001B630 -28001B630:lA4:pnni|H28001B640 -28001B640:lA4:PNNI|N -28001B650:lI55|H28001B660 -28001B660:lA6:mobile|H28001B670 -28001B670:lA6:MOBILE|N -28001B680:lI97|H28001B690 -28001B690:lA7:etherip|H28001B6A0 -28001B6A0:lA7:ETHERIP|N -28001B6B0:lA3:dcn|I19 -28001B6C0:lA4:CPHB|I73 -28001B6D0:lA2:il|I40 -28001B6E0:lI123|H28001B6F0 -28001B6F0:lA3:ptp|H28001B700 -28001B700:lA3:PTP|N -28001B710:lAA:Sprite-RPC|I90 -28001B720:lI125|H28001B730 -28001B730:lA4:fire|H28001B740 -28001B740:lA4:FIRE|N -28001B750:lA8:DCN-MEAS|I19 -28001B760:lAA:mpls-in-ip|I137 -28001B770:lI66|H28001B780 -28001B780:lA3:rvd|H28001B790 -28001B790:lA3:RVD|N -28001B7A0:lA4:CRTP|I126 -28001B7B0:lI91|H28001B7C0 -28001B7C0:lA4:larp|H28001B7D0 -28001B7D0:lA4:LARP|N -28001B7E0:lA7:sat-mon|I69 -28001B7F0:lI129|H28001B800 -28001B800:lA4:iplt|H28001B810 -28001B810:lA4:IPLT|N -28001B820:lA3:UDP|I17 -28001B830:lA2:sm|I122 -28001B840:lA5:SWIPE|I53 -28001B850:lA4:IPPC|I67 -28001B860:lI80|H28001B870 -28001B870:lA6:iso-ip|H28001B880 -28001B880:lA6:ISO-IP|N -28001B890:lI75|H28001B8A0 -28001B8A0:lA3:pvp|H28001B8B0 -28001B8B0:lA3:PVP|N -28001B8C0:lA3:STP|I118 -28001B8D0:Mn2:H28001C100,H28001C130 -28001B8E8:lA6:IPComp|I108 -28001B8F8:lA3:nvp|I11 -28001B908:lI41|H28001B918 -28001B918:lA4:ipv6|H28001B928 -28001B928:lA4:IPV6|N -28001B938:lI37|H28001B948 -28001B948:lA3:ddp|H28001B958 -28001B958:lA3:DDP|N -28001B968:lA4:CPNX|I72 -28001B978:Mn2:H28001C140,H28001C150 -28001B990:Mn2:H28001C180,H28001C190 -28001B9A8:lA4:ipip|I94 -28001B9B8:lI27|H28001B9C8 -28001B9C8:lA3:rdp|H28001B9D8 -28001B9D8:lA3:RDP|N -28001B9E8:lA3:PIM|I103 -28001B9F8:lA4:isis|I124 -28001BA08:lA5:icmp6|I58 -28001BA18:lI240|H28001BA28 -28001BA28:lA6:pfsync|H28001BA38 -28001BA38:lA6:PFSYNC|N -28001BA48:lA3:DSR|I48 -28001BA58:lI83|H28001BA68 -28001BA68:lA5:vines|H28001BA78 -28001BA78:lA5:VINES|N -28001BA88:lI34|H28001BA98 -28001BA98:lA3:3pc|H28001BAA8 -28001BAA8:lA3:3PC|N -28001BAB8:lA2:FC|I133 -28001BAC8:lI86|H28001BAD8 -28001BAD8:lA3:dgp|H28001BAE8 -28001BAE8:lA3:DGP|N -28001BAF8:lA4:narp|I54 -28001BB08:lA6:netblt|I30 -28001BB18:lI16|H28001BB28 -28001BB28:lA5:chaos|H28001BB38 -28001BB38:lA5:CHAOS|N -28001BB48:lA4:SDRP|I42 -28001BB58:lI31|H28001BB68 -28001BB68:lA7:mfe-nsp|H28001BB78 -28001BB78:lA7:MFE-NSP|N -28001BB88:lI15|H28001BB98 -28001BB98:lA4:xnet|H28001BBA8 -28001BBA8:lA4:XNET|N -28001BBB8:lI78|H28001BBC8 -28001BBC8:lA6:wb-mon|H28001BBD8 -28001BBD8:lA6:WB-MON|N -28001BBE8:lA3:PVP|I75 -28001BBF8:lI93|H28001BC08 -28001BC08:lA5:ax.25|H28001BC18 -28001BC18:lA5:AX.25|N -28001BC28:lI122|H28001BC38 -28001BC38:lA2:sm|H28001BC48 -28001BC48:lA2:SM|N -28001BC58:lA4:ipcv|I71 -28001BC68:lAA:NSFNET-IGP|I85 -28001BC78:lA5:ARGUS|I13 -28001BC88:lA4:IFMP|I101 -28001BC98:lA3:wsn|I74 -28001BCA8:lA3:a/n|I107 -28001BCB8:lA9:IPV6-FRAG|I44 -28001BCC8:lA4:aris|I104 -28001BCD8:lA3:DDX|I116 -28001BCE8:lA3:RDP|I27 -28001BCF8:lA3:bna|I49 -28001BD08:lI54|H28001BD18 -28001BD18:lA4:narp|H28001BD28 -28001BD28:lA4:NARP|N -28001BD38:lA4:ospf|I89 -28001BD48:lI85|H28001BD58 -28001BD58:lAA:nsfnet-igp|H28001BD68 -28001BD68:lAA:NSFNET-IGP|N -28001BD78:lI40|H28001BD88 -28001BD88:lA2:il|H28001BD98 -28001BD98:lA2:IL|N -28001BDA8:Mn2:H28001C1A0,H28001C1B0 -28001BDC0:lI127|H28001BDD0 -28001BDD0:lA5:crudp|H28001BDE0 -28001BDE0:lA5:CRUDP|N -28001BDF0:lA3:pim|I103 -28001BE00:lI92|H28001BE10 -28001BE10:lA3:mtp|H28001BE20 -28001BE20:lA3:MTP|N -28001BE30:lI23|H28001BE40 -28001BE40:lA7:trunk-1|H28001BE50 -28001BE50:lA7:TRUNK-1|N -28001BE60:lAA:ipv6-route|I43 -28001BE70:lA7:TRUNK-2|I24 -28001BE80:lA6:sun-nd|I77 -28001BE90:lA4:dccp|I33 -28001BEA0:lA3:SNP|I109 -28001BEB0:lA3:ESP|I50 -28001BEC0:lA3:hip|I139 -28001BED0:lA9:SAT-EXPAK|I64 -28001BEE0:lA6:ISO-IP|I80 -28001BEF0:lA4:cphb|I73 -28001BF00:lA3:SRP|I119 -28001BF10:lAF:RSVP-E2E-IGNORE|I134 -28001BF20:lA6:WB-MON|I78 -28001BF30:lI111|H28001BF40 -28001BF40:lA9:ipx-in-ip|H28001BF50 -28001BF50:lA9:IPX-in-IP|N -28001BF60:lA8:IP-ENCAP|I4 -28001BF70:lA8:sscopmce|I128 -28001BF80:lA3:st2|I5 -28001BF90:lA4:ippc|I67 -28001BFA0:lA4:TLSP|I56 -28001BFB0:lA9:IDPR-CMTP|I38 -28001BFC0:lI22|H28001BFD0 -28001BFD0:lA7:xns-idp|H28001BFE0 -28001BFE0:lA7:XNS-IDP|N -28001BFF0:lA4:SKIP|I57 -28001C000:lA4:cpnx|I72 -28001C010:lI84|H28001C020 -28001C020:lA3:ttp|H28001C030 -28001C030:lA3:TTP|N -28001C040:lI35|H28001C050 -28001C050:lA4:idpr|H28001C060 -28001C060:lA4:IDPR|N -28001C070:lA5:shim6|I140 -28001C080:lA9:ipv6-icmp|I58 -28001C090:lA4:DCCP|I33 -28001C0A0:lA6:LEAF-2|I26 -28001C0B0:lI57|H28001C0C0 -28001C0C0:lA4:skip|H28001C0D0 -28001C0D0:lA4:SKIP|N -28001C0E0:lA6:PFSYNC|I240 -28001C0F0:lA3:PRM|I21 -28001C100:lI81|H28001C110 -28001C110:lA4:vmtp|H28001C120 -28001C120:lA4:VMTP|N -28001C130:lA3:qnx|I106 -28001C140:lA9:merit-inp|I32 -28001C150:lI115|H28001C160 -28001C160:lA4:l2tp|H28001C170 -28001C170:lA4:L2TP|N -28001C180:lA3:dgp|I86 -28001C190:lA4:XNET|I15 -28001C1A0:lA2:fc|I133 -28001C1B0:lI8|H28001C1C0 -28001C1C0:lA3:egp|H28001C1D0 -28001C1D0:lA3:EGP|N -2800BB848:t2:H2800BB860,I23 -2800BB860:t2:AD:logger_config,AA:ssl_logger -28001F238:t2:H28001F250,H28001F268 -28001F250:t2:AB:prim_socket,A9:msg_flags -28001F268:MfB:H28001F2D8:I0,I16,I4,I0,I0,I32,I8,I0,I524288,I1,I2 -28001F2D8:tB:A4:more,A5:trunc,A9:dontroute,AC:cmsg_cloexec,A7:confirm,A6:ctrunc,A3:eor,A8:errqueue,A8:nosignal,A3:oob,A4:peek -280068258:t2:H280068270,H280068288 -280068270:t2:AC:erl_features,AD:feature_specs -280068288:Mf1:H2800682A8:H2800682B8 -2800682A8:t1:AA:maybe_expr -2800682B8:Mf6:H280068300:H280068AD8,AC:experimental,A9:extension,H2800688B8,H280068348,I25 -280068300:t6:A5:short,A6:status,A4:type,AB:description,A8:keywords,AC:experimental -280068338:lA4:else|N -280068348:lA5:maybe|H280068338 -280068358:lI46|N -280068368:lI103|H280068358 -280068378:lI110|H280068368 -280068388:lI105|H280068378 -280068398:lI108|H280068388 -2800683A8:lI100|H280068398 -2800683B8:lI110|H2800683A8 -2800683C8:lI97|H2800683B8 -2800683D8:lI104|H2800683C8 -2800683E8:lI32|H2800683D8 -2800683F8:lI114|H2800683E8 -280068408:lI111|H2800683F8 -280068418:lI114|H280068408 -280068428:lI114|H280068418 -280068438:lI101|H280068428 -280068448:lI32|H280068438 -280068458:lI100|H280068448 -280068468:lI101|H280068458 -280068478:lI115|H280068468 -280068488:lI97|H280068478 -280068498:lI98|H280068488 -2800684A8:lI32|H280068498 -2800684B8:lI101|H2800684A8 -2800684C8:lI117|H2800684B8 -2800684D8:lI108|H2800684C8 -2800684E8:lI97|H2800684D8 -2800684F8:lI86|H2800684E8 -280068508:lI32|H2800684F8 -280068518:lI45|H280068508 -280068528:lI45|H280068518 -280068538:lI32|H280068528 -280068548:lI57|H280068538 -280068558:lI52|H280068548 -280068568:lI80|H280068558 -280068578:lI69|H280068568 -280068588:lI69|H280068578 -280068598:lI32|H280068588 -2800685A8:lI110|H280068598 -2800685B8:lI105|H2800685A8 -2800685C8:lI32|H2800685B8 -2800685D8:lI100|H2800685C8 -2800685E8:lI101|H2800685D8 -2800685F8:lI115|H2800685E8 -280068608:lI111|H2800685F8 -280068618:lI112|H280068608 -280068628:lI111|H280068618 -280068638:lI114|H280068628 -280068648:lI112|H280068638 -280068658:lI32|H280068648 -280068668:lI110|H280068658 -280068678:lI111|H280068668 -280068688:lI105|H280068678 -280068698:lI115|H280068688 -2800686A8:lI115|H280068698 -2800686B8:lI101|H2800686A8 -2800686C8:lI114|H2800686B8 -2800686D8:lI112|H2800686C8 -2800686E8:lI120|H2800686D8 -2800686F8:lI101|H2800686E8 -280068708:lI32|H2800686F8 -280068718:lI101|H280068708 -280068728:lI98|H280068718 -280068738:lI121|H280068728 -280068748:lI97|H280068738 -280068758:lI109|H280068748 -280068768:lI32|H280068758 -280068778:lI101|H280068768 -280068788:lI104|H280068778 -280068798:lI116|H280068788 -2800687A8:lI32|H280068798 -2800687B8:lI102|H2800687A8 -2800687C8:lI111|H2800687B8 -2800687D8:lI32|H2800687C8 -2800687E8:lI110|H2800687D8 -2800687F8:lI111|H2800687E8 -280068808:lI105|H2800687F8 -280068818:lI116|H280068808 -280068828:lI97|H280068818 -280068838:lI116|H280068828 -280068848:lI110|H280068838 -280068858:lI101|H280068848 -280068868:lI109|H280068858 -280068878:lI101|H280068868 -280068888:lI108|H280068878 -280068898:lI112|H280068888 -2800688A8:lI109|H280068898 -2800688B8:lI73|H2800688A8 -2800688C8:lI41|N -2800688D8:lI57|H2800688C8 -2800688E8:lI52|H2800688D8 -2800688F8:lI80|H2800688E8 -280068908:lI69|H2800688F8 -280068918:lI69|H280068908 -280068928:lI40|H280068918 -280068938:lI32|H280068928 -280068948:lI103|H280068938 -280068958:lI110|H280068948 -280068968:lI105|H280068958 -280068978:lI108|H280068968 -280068988:lI100|H280068978 -280068998:lI110|H280068988 -2800689A8:lI97|H280068998 -2800689B8:lI104|H2800689A8 -2800689C8:lI32|H2800689B8 -2800689D8:lI114|H2800689C8 -2800689E8:lI111|H2800689D8 -2800689F8:lI114|H2800689E8 -280068A08:lI114|H2800689F8 -280068A18:lI101|H280068A08 -280068A28:lI32|H280068A18 -280068A38:lI100|H280068A28 -280068A48:lI101|H280068A38 -280068A58:lI115|H280068A48 -280068A68:lI97|H280068A58 -280068A78:lI98|H280068A68 -280068A88:lI32|H280068A78 -280068A98:lI101|H280068A88 -280068AA8:lI117|H280068A98 -280068AB8:lI108|H280068AA8 -280068AC8:lI97|H280068AB8 -280068AD8:lI86|H280068AC8 -280068B48:t2:H280068B60,N -280068B60:t2:AC:erl_features,A8:keywords -28001EEA8:t2:H28001EEC0,H28001EED8 -28001EEC0:t2:AB:prim_socket,AE:ioctl_requests -28001EED8:MfC:H28001EF50:I2149607696,I3223349537,I3223349539,I3222038820,I3223349538,I3223349521,I3223349555,I3223349541,I2149607692,I2149607699,I2149607694,I2149607732 -28001EF50:tC:A8:sifflags,A7:gifaddr,AA:gifbrdaddr,A7:gifconf,AA:gifdstaddr,A8:gifflags,A6:gifmtu,AA:gifnetmask,A7:sifaddr,AA:sifbrdaddr,AA:sifdstaddr,A6:sifmtu -2800BB7E8:t2:H2800BB800,I7 -2800BB800:t2:AD:logger_config,H2800BB818 -2800BB818:t2:A10:$handler_config$,AB:ssl_handler -2800BB7A0:t2:H2800BB7B8,A5:async -2800BB7B8:t2:AA:logger_olp,A18:logger_std_h_ssl_handler -2800711B0:t2:A12:rex_nodes_observer,H2800711C8 -2800711C8:E23:g1oAA3cNbm9ub2RlQG5vaG9zdAAAAAAAALAE+vYAAd/g02c= -28001EFD0:t2:H28001EFE8,H28001F000 -28001EFE8:t2:AB:prim_socket,AB:ioctl_flags -28001F000:Mf20:H28001F118:I0,I64,I4,I2,I8,I1,I32768,I0,I512,I0,I0,I0,I0,I0,I0,I0,I4096,I8192,I16384,I0,I0,I128,I32,I1024,I16,I0,I0,I256,I0,I2048,I0,I0 -28001F118:t20:A7:monitor,A7:running,A5:debug,A9:broadcast,A8:loopback,A2:up,A9:multicast,A7:nogroup,A8:allmulti,A9:automedia,AA:cantconfig,A7:dormant,A5:dying,A7:dynamic,A4:echo,AA:knowsepoch,A5:link0,A5:link1,A5:link2,A8:lower_up,A6:master,A5:noarp,AA:notrailers,A7:oactive,AB:pointopoint,A7:portsel,A8:ppromisc,A7:promisc,A8:renaming,A7:simplex,A5:slave,A9:staticarp -28005B250:t2:H28005B268,I5 -28005B268:t2:AD:logger_config,A10:$primary_config$ -28006A4A0:t2:H28006A4B8,I5 -28006A4B8:t2:AD:logger_config,A11:supervisor_bridge -28008F5B0:t2:H28008F5C8,A5:async -28008F5C8:t2:AA:logger_olp,AC:logger_proxy -280068BD8:t2:H280068BF0,I5 -280068BF0:t2:AD:logger_config,AA:supervisor -280068B90:t2:H280068BA8,A4:true -280068BA8:t2:AC:erl_features,A9:init_done -280068B00:t2:H280068B18,N -280068B18:t2:AC:erl_features,A10:enabled_features -28005B298:t2:H28005B2B0,I5 -28005B2B0:t2:AD:logger_config,A16:application_controller -=binary:1309301C0 -9C:XlsbwptdW1tcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcZFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxkXSsoPzo7Wy1hLXpBLVpcZFwvIyYuOj0/JUB+X10qKSopPwcpfCg/Oig/OlxkezEsNH0oPzo7XGR7MCw0fSkqKT9bXGRBLVBSLVRaY2YtbnEtdXk9Pjx+XSkp -=binary:130931BD0 -15E:RVJDUF4BAAAQCAAAAQAAAP//////////AAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMBGhtuAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAABuAAAAAAgDAIgAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAABigwCNgwCHkoMALpKDACcdO24AAAAAaOD/p////4f+//9HAAAAAAAAAAAAAAAAAAAAAGR5ACd3AFBuAAAAAAAA/wP+//8H/v//BwAAAAAAAAAAAAAAAAAAAABrkoMAJx07bgAAAABo4P+n////h/7//0cAAAAAAAAAAAAAAAAAAAAAYnkAJ3gAfh0HeACHdwBDgwA9koMAFQdbAAMHkoMACR07WwAEB3kACXgAFW4AAAAAAAD/c/7/HQTIfz5CAAAAAAAAAAAAAAAAAAAAAHgAPXgA0HgBGgA= -=atoms -glee_unit_assert_match -glee_unit_assert_equal -glee_unit_assert_not_equal -expected -'-erlang_error_to_unified/3-fun-0-' -'-format_reason/4-fun-0-' -'-format_reason/4-fun-1-' -'-format_reason/4-fun-2-' -'-format_reason/4-fun-3-' -'-format_reason/4-fun-4-' -'-format_reason/4-fun-5-' -module_and_test_run -'-create_test_report/1-fun-0-' -'-create_test_report/1-fun-1-' -'-create_test_report/1-fun-2-' -'-create_test_report/1-fun-3-' -'-create_test_report/1-fun-4-' -'-create_test_report/1-fun-5-' -'-create_test_report/1-fun-6-' -align_table -'showtime@internal@reports@table' -ignored_style -failed_style -passed_style -function_style -error_style -align_left_overflow -stacktrace_style -align_right -align_left -content -styled_content -format_reason -got_highlight -expected_highlight -'showtime@internal@reports@compare' -not_style -'showtime@internal@reports@styles' -gleam_error_to_unified -unified_error -erlang_error_to_unified -'-part1/1-fun-2-' -'-find_best_joker_substitution/1-fun-0-' -'-find_best_joker_substitution/1-fun-1-' -'-part2/1-fun-0-' -'-part2/1-fun-2-' -get_input -get_part -find_best_joker_substitution -compare_hands -compare_top_card -classify_hand -card_counts -hand -parse_hand -card_rank -two_pair -three_of_a_kind -one_pair -high_card -full_house -four_of_a_kind -five_of_a_kind -hand_rank -be_false_meta -be_false -be_true_meta -be_true -fail_meta -be_error_meta -be_error -be_ok_meta -be_ok -not_equal_meta -equal_meta -evaluate -'-run_test/4-fun-0-' -'-run_test/4-fun-1-' -reason_line -expression -'-run_test/4-fun-2-' -trace_module -'-run_test/4-fun-3-' -'-map_extra_info_list/1-fun-0-' -num -arg_list -map_arity -map_extra_info_list -erlang_exception -trace_list -erlang_error -generic_exception -gleam_assert -not_eq -assert_equal -assert_match -assert_not_equal -assertNotEqual -assertMatch -assertEqual -test_function_return -test -capture_done -stop_output_capture -capture_output -start_output_capture -'-run_test_suite/4-fun-0-' -showtime_ffi -run_test -example -part1 -'-part1_test/0-fun-0-' -part2 -'-part2_test/0-fun-0-' -part2_test -'showtime@tests@should' -part1_test -'-optional/1-fun-0-' -'-any/1-fun-0-' -'-decode1/2-fun-0-' -'-push_path/2-fun-0-' -'-result/2-fun-3-' -'-result/2-fun-2-' -'-result/2-fun-1-' -'-result/2-fun-0-' -'-result/2-fun-4-' -'-result/2-fun-5-' -'-list/1-fun-0-' -'-list/1-fun-1-' -'-list/1-fun-2-' -'-map_errors/2-fun-0-' -'-decode_string/1-fun-0-' -'-decode_string/1-fun-1-' -'-field/2-fun-0-' -'-field/2-fun-1-' -'-field/2-fun-2-' -'-optional_field/2-fun-0-' -'-optional_field/2-fun-1-' -'-optional_field/2-fun-2-' -'-element/2-fun-0-' -'-element/2-fun-1-' -'-element/2-fun-2-' -'-element/2-fun-3-' -'-tuple_errors/2-fun-0-' -'-tuple2/2-fun-0-' -'-tuple2/2-fun-1-' -'-tuple3/3-fun-0-' -'-tuple3/3-fun-1-' -'-tuple4/4-fun-0-' -'-tuple4/4-fun-1-' -'-tuple5/5-fun-0-' -'-tuple5/5-fun-1-' -'-tuple6/6-fun-0-' -'-tuple6/6-fun-1-' -'-dict/2-fun-4-' -'-dict/2-fun-2-' -'-dict/2-fun-1-' -'-dict/2-fun-3-' -'-dict/2-fun-5-' -'-dict/2-fun-0-' -'-dict/2-fun-6-' -'-dict/2-fun-7-' -'-decode2/3-fun-0-' -'-decode3/4-fun-0-' -'-decode4/5-fun-0-' -'-decode5/6-fun-0-' -'-decode6/7-fun-0-' -'-decode7/8-fun-0-' -'-decode8/9-fun-0-' -'-decode9/10-fun-0-' -decode9 -decode8 -decode7 -decode6 -decode5 -decode4 -decode3 -decode2 -tuple6 -tuple5 -tuple4 -tuple3 -tuple2 -tuple_errors -optional_field -decode_string -map_errors -push_path -decode1 -all_errors -at_least_decode_tuple_error -optional -shallow_list -put_expected -bit_string -bit_array -'-do_wildcard/3-lc$^0/1-0-' -'-do_wildcard_4/3-lc$^1/1-1-' -'-do_wildcard_4/3-lc$^0/1-0-' -'-compile_alt/2-lc$^0/1-0-' -'-keep_dir_search_rules/1-lc$^0/1-0-' -'-keep_suffix_search_rules/1-lc$^0/1-0-' -'-add_local_search/1-fun-0-' -climb -safe_relative_path_1 -find_regular_file -try_dir_rule -try_dir_rules -add_local_search -try_suffix_rules -find_file -asn1_source_search_rules -c_source_search_rules -erl_source_search_rules -basic_source_search_rules -default_search_rules -source_search_rules -get_search_rules -keep_suffix_search_rules -keep_dir_search_rules -eval_list_dir -eval_read_link_info -eval_read_file_info -do_exists -wrap_escapes -convert_escapes -compile_alt -compile_range -compile_charset1 -compile_charset -missing_delimiter -escaped -compile_part_to_sep -compile_part -compile_join -compile_wildcard_3 -is_literal_pattern -compile_wildcard_2 -cwd -compiled_wildcard -compile_wildcard -do_list_dir -do_alt -do_star -do_double_star -prepare_base -will_always_match -star -question -alt -match_part -do_wildcard_4 -double_star -do_wildcard_3 -do_wildcard_2 -do_wildcard_1 -do_wildcard -do_file_size -do_last_modified -do_fold_files2 -do_fold_files1 -do_fold_files -do_is_regular -do_is_file -do_is_dir -file_size -last_modified -fold_files -is_regular -badpattern -'-do_all/2-fun-0-' -'-do_values/2-fun-0-' -do_values -to_result -is_none -is_some -do_all -panic -not_utf8 -'-do_copy_directory/2-fun-1-' -'-do_copy_directory/2-fun-0-' -'-do_copy_directory/2-fun-2-' -'-do_copy_directory/2-fun-3-' -'-get_files/1-fun-0-' -'-get_files/1-fun-3-' -'-get_files/1-fun-5-' -'-copy_directory/2-fun-0-' -'-rename_directory/2-fun-0-' -rename_file -copy_file -rename_directory -copy_directory -create_dir_all -create_directory_all -get_files -do_copy_directory -create_file -create_directory -append_bits -write_bits -read_bits -cast_error -'gleam@bit_array' -do_read -do_write -simplifile_erl -do_append -start_test -completed_test_run -ongoing_test_run -end_test -'-collect_modules_in_folder/3-fun-0-' -'-collect_modules_in_folder/3-fun-1-' -test_module -'-collect_modules_in_folder/3-fun-2-' -'-collect_modules_in_folder/3-fun-3-' -'-collect_modules_in_folder/3-fun-4-' -'-collect_modules_in_folder/3-fun-5-' -'-collect_test_functions/1-fun-0-' -'-collect_test_functions/1-fun-1-' -'-collect_test_functions/1-fun-2-' -test_function -'-collect_test_functions/1-fun-3-' -test_suite -unsafe_coerce -read_directory -collect_modules_in_folder -get_module_prefix -end_test_suite -start_test_suite -'-start/5-fun-0-' -'-start/5-fun-1-' -'-start/5-fun-2-' -'-debug_cmd/2-lc$^0/1-0-' -'-get_log/1-lc$^0/1-0-' -'-nlog_new/2-fun-0-' -nlog_get -nlog_put -nlog_new -print_log -get_debug2 -remove_debug -install_debug -stat -no_statistics -start_time -current_time -messages_in -messages_out -get_stat -init_stat -do_change_code -unknown_debug -debug_cmd -do_replace_state -callback_failed -do_get_state -suspend_loop_hib -terminating -send_system_msg -install -no_debug -log_to_file -replace_state -failed_to_connect -local_node_is_not_alive -atom_not_loaded -'-list_directory/1-lc$^0/1-0-' -'-get_all_env/0-fun-0-' -'-map_selector/2-fun-0-' -'-map_selector/2-fun-1-' -process_down -selector -free_bsd -windows_nt -os_family -recursive_delete -delete_directory -list_directory -make_directory -delete_file -append_file -posix_result -link_info -exdev -etxtbsy -estale -esrch -espipe -erofs -erange -epipe -eperm -eopnotsupp -enotblk -enosys -enostr -enosr -enospc -enomem -enolink -enolck -enodev -enobufs -enfile -emultihop -emlink -eloop -eisdir -eio -eintr -eftype -efbig -eexist -edquot -edeadlock -edeadlk -ebadmsg -eacces -no_access -file_info_result -unknown_application -errored -thrown -classify -atom_from_dynamic -atom_from_string -call_timeout -exit_message -'-selecting_trapped_exits/2-fun-0-' -'-selecting/3-fun-0-' -'-receive/2-fun-0-' -'-selecting_record2/3-fun-0-' -'-selecting_record3/3-fun-0-' -'-selecting_record4/3-fun-0-' -'-selecting_record5/3-fun-0-' -'-selecting_record6/3-fun-0-' -'-selecting_record7/3-fun-0-' -'-selecting_record8/3-fun-0-' -'-try_call/3-fun-0-' -callee_down -'-try_call/3-fun-1-' -process_named -named -unregister_process -register_process -trap_exits -send_abnormal_exit -send_exit -timer_not_found -try_call -demonitor_process -process_monitor -sleep_forever -anything -selecting_record8 -selecting_record7 -selecting_record6 -selecting_record5 -selecting_record4 -selecting_record2 -insert_selector_handler -selecting_trapped_exits -flush_messages -select_forever -subject -init_timeout -convert_system_message -gleam_otp_external -'-receive_message/1-fun-0-' -'-init_selector/2-fun-0-' -'-init_selector/2-fun-1-' -'-start_spec/1-fun-0-' -'-start_spec/1-fun-1-' -'-start_spec/1-fun-2-' -init_failed -init_crashed -selecting_process_down -monitor_process -to_erlang_start_result -abnormal -failed -subject_owner -ready -initialise_actor -map_selector -init_selector -status_info -from -'gleam@dynamic' -process_status_info -merge_selector -selecting_anything -receive_message -selecting_record3 -selecting_system_messages -exit_process -with_selector -create_test_report -'showtime@internal@reports@formatter' -'showtime@internal@common@common_event_handler' -'-start/0-fun-1-' -'-start/0-fun-2-' -event_handler_message -'-start/0-fun-3-' -selecting -new_selector -new_subject -'gleam@erlang@process' -'gleam@otp@actor' -is_equal -prepend_builder -'-pretty_print_cause/1-fun-0-' -line_print -pretty_print_cause -not_assigned -surrogate -spacing_combining -enclosing -non_spacing -decimal -letter -connector -dash -punctuation -currency -paragraph -space -separator -noBreak -fraction -vertical -small -medial -isolated -wide -narrow -font -square -circle -'-inlined-class/1-' -'-canonical_order_2/2-lc$^0/1-0-' -is_wide_cp -subcat_letter -zs -zp -zl -so -sk -sc -ps -po -pi -pf -pe -pd -pc -mn -me -lu -lo -ll -cs -co -cn -cf -cc -cat_translate -unicode_table -case_table -nolist -compose_pair -gc_h_lv_lvt -gc_h_T -gc_h_V -gc_h_L -gc_regional -is_ext_pict -gc_ext_pict_zwj -gc_ext_pict -zwj -is_extend -gc_extend2 -gc_extend -is_control -gc_prepend -gc_1 -cp_no_binl -binary_found -cp_no_bin -cpl_1_cont3 -cpl_1_cont2 -cpl_1_cont -cpl_cont3 -cpl_cont2 -cpl_cont -cpl -is_whitespace -compose_compat_many -compose_compat -compose_compat_0 -compose_many -decompose_compat_1 -decompose_compat -canonical_order_2 -canonical_order_1 -canonical_order -decompose_1 -decompose -lookup_category -spec_version -lower -get_case -compat -ccc -'-inlined-rev/1-' -'-inlined-append/2-' -'-titlecase/1-lbc$^0/2-0-' -'-to_lower/1-lc$^0/1-0-' -'-to_upper/1-lc$^0/1-0-' -'-join/2-lc$^0/1-0-' -to_upper_char -to_lower_char -sub_string -centre -r_pad -l_pad -strip_right -strip_left -s_word -sub_word -w_count -words -copies -tokens_multiple_2 -tokens_multiple_1 -tokens_single_2 -tokens_single_1 -substr2 -substr1 -cspan -span -l_prefix -rstr -str -rchr -bin_search_str_2 -bin_search_str_1 -bin_search_str -bin_search_inv_n -bin_search_inv_1 -bin_search_inv -bin_search_loop -bin_pattern -search_cp -search_pattern -bin_search -cp_prefix_1 -cp_prefix -add_non_empty -find_r -find_l -lexeme_skip -nth_lexeme_m -lexeme_pick -lexemes_m -prefix_1 -take_tc -take_t -take_lc -take_l -trim_t -trim_ts -trim_l -trim_ls -casefold_bin -casefold_list -lowercase_bin -lowercase_list -uppercase_bin -uppercase_list -slice_bin -slice_list -slice_trail -slice_lb -slice_l -slice_l0 -reverse_b -reverse_1 -equal_norm_nocase -equal_norm -equal_nocase -equal_1 -length_b -length_1 -cp -next_codepoint -nth_lexeme -to_number -to_integer -casefold -titlecase -whitespace -split_string -not_a_utf8_string -'-decode_option/2-fun-0-' -'-compile_regex/2-lc$^0/1-0-' -'-regex_matches/2-fun-0-' -'-regex_scan/2-fun-0-' -'-parse_query/1-fun-0-' -'-inspect/1-fun-4-' -'-inspect/1-lc$^1/1-1-' -'-inspect/1-lc$^0/1-0-' -base16_decode -inspect_maybe_utf8_string -append_segment -inspect_bit_array -improper -inspect_list -inspect_maybe_gleam_atom -proper -println_error -maps_get_or -maps_get_optional -check_utf8 -is_hex_digit -percent_ok -percent_decode -percent_encode -dissect_query -wrap_list -base_decode64 -regex_scan -regex_matches -regex_submatches -regex_split -regex_check -compile_error -compile_regex -bit_array_int_from_u32 -bit_array_int_to_u32 -bit_array_slice -bit_array_concat -string_invalid_utf8 -string_pad -decode_result -decode_option -decode_tuple6 -decode_tuple5 -decode_tuple4 -decode_tuple3 -decode_tuple2 -decode_tuple -tuple_get -size_of_tuple -decode_field -decode_list -decode_bool -decode_float -decode_int -decode_bit_array -decode_map -classify_dynamic -decode_error -decode_error_msg -iodata_append -capitalise -to_option -utf_codepoint_to_int -utf_codepoint -utf_codepoint_list_to_string -from_utf_codepoints -to_utf_codepoints -do_to_utf_codepoints -do_to_utf_codepoints_impl -do_to_graphemes -string_pop_grapheme -pop_grapheme -trim_right -do_trim_right -trim_left -do_trim_left -do_trim -pad_left -padding -do_join -'gleam@iterator' -do_split_once -string_ends_with -ends_with -string_starts_with -contains_string -drop_right -crop_string -crop -less_than -from_string -do_reverse -'-compose/2-fun-0-' -'-curry2/1-fun-0-' -'-curry2/1-fun-1-' -'-curry3/1-fun-0-' -'-curry3/1-fun-1-' -'-curry3/1-fun-2-' -'-curry4/1-fun-0-' -'-curry4/1-fun-1-' -'-curry4/1-fun-2-' -'-curry4/1-fun-3-' -'-curry5/1-fun-0-' -'-curry5/1-fun-1-' -'-curry5/1-fun-2-' -'-curry5/1-fun-3-' -'-curry5/1-fun-4-' -'-curry6/1-fun-0-' -'-curry6/1-fun-1-' -'-curry6/1-fun-2-' -'-curry6/1-fun-3-' -'-curry6/1-fun-4-' -'-curry6/1-fun-5-' -'-flip/1-fun-0-' -'-constant/1-fun-0-' -apply3 -apply2 -apply1 -tap -identity -flip -curry6 -curry5 -curry4 -curry3 -curry2 -compose -'-nil_error/1-fun-0-' -'-all/1-fun-0-' -'-values/1-fun-0-' -try_recover -lazy_or -nil_error -unwrap_both -unwrap_error -is_error -loosely_equals -loosely_compare -ceiling -float_to_string -parse_float -invalid_base -bitwise_shift_right -bitwise_shift_left -bitwise_exclusive_or -bitwise_or -bitwise_not -bitwise_and -floor_divide -modulo -remainder -undigits -do_undigits -digits -do_digits -do_product -do_sum -negate -is_odd -is_even -clamp -square_root -to_base36 -to_base8 -to_base2 -to_base_string -int_from_base_string -base_parse -parse_int -absolute_value -'-hex_string_to_int/1-fun-0-' -power -'-hex_string_to_int/1-fun-1-' -'-hex_string_to_int/1-fun-2-' -'-rgba_to_hsla/4-fun-0-' -'-rgba_to_hsla/4-fun-1-' -'-from_rgb255/3-fun-0-' -'-from_rgb255/3-fun-2-' -'-from_rgb255/3-fun-4-' -'-from_rgb/3-fun-0-' -'-from_rgb/3-fun-1-' -'-from_rgb/3-fun-2-' -'-from_rgba/4-fun-0-' -'-from_rgba/4-fun-1-' -'-from_rgba/4-fun-2-' -'-from_rgba/4-fun-3-' -'-from_hsla/4-fun-0-' -'-from_hsla/4-fun-1-' -'-from_hsla/4-fun-2-' -'-from_hsla/4-fun-3-' -'-from_rgb_hex_string/1-fun-0-' -'-from_rgba_hex_string/1-fun-0-' -'-to_css_rgba_string/1-fun-0-' -multiply -'-to_css_rgba_string/1-fun-1-' -to_rgb_hex_string -to_base16 -to_rgba_hex_string -to_rgba_hex -to_css_rgba_string -to_hsla -rgba -hsla -to_rgba -from_rgba_hex_string -from_rgba_hex -from_rgb_hex_string -from_rgb_hex -from_hsl -from_hsla -from_rgba -from_rgb -to_float -then -divide -rgba_to_hsla -hsla_to_rgba -hex_string_to_int -hue_to_rgb -valid_colour_value -'-do_add/3-fun-1-' -'-flags/2-fun-0-' -'-global_flags/2-fun-0-' -command_input -'-execute_root/4-fun-0-' -'-usage_help/3-fun-0-' -'-cmd_help/4-fun-0-' -'-cmd_help/4-fun-1-' -'-cmd_help/4-fun-2-' -'-cmd_help/4-fun-4-' -'-execute/2-fun-0-' -starts_with -'-execute/2-fun-1-' -add_command_from_stub -constant -'gleam@function' -pretty_print -println -'gleam@io' -run_and_handle -execute -do_execute -lazy_unwrap -cmd_help -append_builder -from_strings -'gleam@string_builder' -unwrap -usage_help -to_rgb_hex -italic -underline -bold -'gleam_community@ansi' -heading_style -subcommands_help -subcommand_help -wrap_with_space -help_flag -sanitize_path -is_not_empty -pretty_help -from_rgb255 -'gleam_community@colour' -execute_root -global_flags -global_flag_tuple -global_flag -flag_tuple -command_node -empty_command -with_name -without_pretty_help -with_config -do_fold -from_result -'gleam@option' -map_values -has_key -'-from_list/1-fun-0-' -'-fold/3-fun-0-' -'-filter/2-fun-0-' -order -is_ok -'-one_of/1-fun-0-' -'-one_of/1-fun-1-' -'-none_of/1-fun-0-' -'-none_of/1-fun-1-' -'-each/1-fun-0-' -none_of -'gleam@set' -'-string/0-fun-1-' -'-string/0-fun-0-' -'-string_list/0-fun-1-' -'-string_list/0-fun-0-' -'-attempt/2-fun-0-' -'-wrap_with_constraint/2-fun-0-' -'-construct_value/3-fun-0-' -'-compute_flag/2-fun-12-' -'-compute_flag/2-fun-13-' -'-compute_flag/2-fun-10-' -'-compute_flag/2-fun-11-' -'-compute_flag/2-fun-8-' -'-compute_flag/2-fun-9-' -'-compute_flag/2-fun-6-' -'-compute_flag/2-fun-7-' -'-compute_flag/2-fun-4-' -'-compute_flag/2-fun-5-' -'-compute_flag/2-fun-2-' -'-compute_flag/2-fun-3-' -'-compute_flag/2-fun-0-' -'-compute_flag/2-fun-1-' -'-int/0-fun-1-' -'-int/0-fun-0-' -'-int_list/0-fun-1-' -'-int_list/0-fun-0-' -'-float/0-fun-1-' -'-float/0-fun-0-' -'-float_list/0-fun-1-' -'-float_list/0-fun-0-' -'-bool/0-fun-1-' -'-bool/0-fun-0-' -'-update_flag_value/2-fun-1-' -'-update_flag_value/2-fun-0-' -map_error -'-update_flag_value/2-fun-2-' -'-attempt_toggle_flag/2-fun-2-' -get_floats -get_floats_value -get_float -get_float_value -get_strings_value -get_string_value -get_bool_value -get_ints -get_ints_value -get_int -get_int_value -split_once -drop_left -update_flags -attempt_toggle_flag -update_flag_value -replace_error -flags_help -flag_help -flag_type_help -float_list -undefined_flag_err -no_value_flag_err -layer -layer_invalid_flag -li -b -compute_flag -construct_value -flag_not_provided_error -access_type_error -'gleam@map' -build_map -wrap_with_constraint -attempt -flag_builder -length_mismatch -'-update_group/1-fun-0-' -'-map_fold/3-fun-0-' -'-unique/1-fun-0-' -'-key_find/2-fun-0-' -'-key_filter/2-fun-0-' -'-key_pop/2-fun-0-' -'-permutations/1-fun-0-' -'-permutations/1-fun-1-' -'-permutations/1-fun-2-' -'-last/1-fun-0-' -'-combinations/2-fun-0-' -'-combinations/2-fun-1-' -'-do_combination_pairs/1-fun-0-' -'-transpose/1-fun-0-' -'-transpose/1-fun-1-' -'-do_shuffle_by_pair_indexes/1-fun-0-' -'gleam@float' -'-shuffle/1-fun-0-' -shuffle -do_shuffle_by_pair_indexes -do_shuffle_pair_unwrap -interleave -transpose -combination_pairs -do_combination_pairs -combinations -do_scan -reduce -sized_chunk -do_sized_chunk -do_chunk -take_while -do_take_while -drop_while -window_by_2 -window -do_window -permutations -do_partition -try_each -each -key_set -key_pop -pop_map -do_pop_map -pop -do_pop -key_filter -key_find -split_while -do_split_while -do_split -repeat -do_repeat -compare -'gleam@int' -tail_recursive_range -merge_sort -merge_down -merge_up -intersperse -do_intersperse -do_unzip -strict_zip -do_zip -find_map -fold_until -try_fold -index_fold -do_index_fold -fold_right -map_second -'gleam@pair' -map_fold -'gleam@dict' -flat_map -do_concat -reverse_and_prepend -prepend -do_take -try_map -do_try_map -index_map -do_index_map -map2 -do_map2 -do_map -filter_map -do_filter_map -do_filter -update_group -rest -contains -'-binary_to_term/1-fun-0-' -'-unsafe_binary_to_term/1-fun-0-' -priv_directory -make_reference -unsafe_binary_to_term -rescue -erlang_timestamp -gleam_erlang_ffi -collect_test_functions -run_test_suite -'showtime@internal@erlang@runner' -some -'-mk_runner/2-fun-0-' -'gleam@string' -'-mk_runner/2-fun-1-' -mixed -'-mk_runner/2-fun-2-' -'-start_with_args/2-fun-0-' -end_test_run -'gleam@list' -collect_modules -'showtime@internal@erlang@discover' -start_test_run -'showtime@internal@erlang@module_handler' -'showtime@internal@erlang@event_handler' -'-main/0-fun-0-' -start_arguments -'gleam@erlang' -with_pretty_help -default_pretty_help -one_of -'glint@flag@constraint' -string_list -start_with_args -let_assert -gleam_error -get_string -'gleam@result' -get_strings -'glint@flag' -mk_runner -showtime -already_listening -register_listener -lookup_listener -dtls_listeners_spec -dtls_connection_sup_dist -dtls_connection_child_spec -ssl_upgrade_server_session_cache_sup_dist -ssl_unknown_listener -tls_server_session_ticket_sup_dist -sup_name -ssl_listen_tracker_sup_dist -tracker_name -ssl_upgrade_server_session_child_spec -ssl_server_session_child_spec -tls_server_session_child_spec -listen_options_tracker_child_spec -tls_dist_connection_sup -start_child_dist -server_instance_child_spec -tls_connection_child_spec -dtls_sup_child_spec -tls_sup_child_spec -update_data_lock -collect_invalid_tickets -remove_ticket -obfuscate_ticket_age -ticket_data -psk_identity -verify_ticket_sni -last_elem -get_max_early_data -iterate_tickets -do_find_ticket -inital_state -remove_invalid_tickets -update_ticket -unlock_tickets -store_ticket -remove_tickets -lock_tickets -get_tickets -find_ticket -client_ssl_otp_session_cache -cache_name -'-init_certs_keys/3-fun-0-' -'-prio_ecdsa/1-lc$^0/1-0-' -namedCurves -'-prio_ecdsa/1-fun-1-' -privat_key -'-prio_rsa_pss/1-fun-0-' -'-prio_rsa/1-fun-0-' -'-prio_dsa/1-fun-0-' -'-init_private_key/3-lc$^0/1-0-' -'-dh_file/2-lc$^0/1-0-' -session_cb_opts -session_cache_client_max -session_cache_server_max -max_session_cache_size -client_session_cb_init_args -server_session_cb_init_args -dhfile -dh_file -asn1_NOVALUE -modp2048_generator -modp2048_prime -'DHParameter' -dh -init_diffie_hellman -'EcpkParameters' -asn1_OPENTYPE -'PrivateKeyInfo_privateKeyAlgorithm' -'PrivateKeyInfo' -pem_entry_decode -password -keyfile -invalid_key_id -key_id -init_private_key -init_certificate_file -certfile -init_certificates -cacertfile -crl_cache -init_cacerts -init_manager_name -internal_active_n -get_internal_active_n -server_session_ticket_max_early_data -get_max_early_data_size -server_session_ticket_store_size -get_ticket_store_size -server_session_ticket_lifetime -get_ticket_lifetime -prio_dsa -prio_rsa -pkix_hash_type -'HashAlgorithm' -prio_params_1 -prio_rsa_pss -using_curve -ecc_curves -prio_ecdsa -prio_eddsa -prioritize_groups -dss -engine -rsa_pss_pss -'RSASSA-PSS-params' -ecdsa -eddsa -namedCurve -'ECPrivateKey' -dsa -'DSAPrivateKey' -rsa -'RSAPrivateKey' -group_pairs -private_key -certs -key -init_cert_key_pair -certs_keys -init_certs_keys -dh_params -cert_key_alts -erl_dist -load_mitigation -no_longer_defined -exists_equivalent -register_unique_session -do_register_session -client_register_session -client_register_unique_session -session_validation -init_session_validator -start_session_validator -valid_session -validate_session -session_cache -pem_cache -fileref_db_handle -crl_db_info -cert_db_ref -cert_db_handle -validate_sessions -lifetime -pre_1_3_session_opts -client -delete_crls -insert_crls -invalidate_session -unique -register_session -clean_cert_db -cache_pem_file -connection_init -ssl_manager_dist -'-remove_cert_entries/2-inlined-0-' -'-refresh_trusted_certs/2-inlined-0-' -'-remove/1-fun-0-' -'-lookup_trusted_cert/4-lc$^0/1-0-' -'-refresh_trusted_certs/2-fun-0-' -'-extract_trusted_certs/1-lc$^0/1-0-' -'-lookup/2-fun-0-' -'-lookup/2-lc$^1/1-1-' -'-add_certs_from_der/3-fun-0-' -'-add_certs_from_der/3-lc$^1/1-0-' -'-certs_from_der/1-lc$^1/1-1-' -'-certs_from_der/1-lc$^0/1-0-' -'-add_certs_from_pem/3-fun-0-' -not_encrypted -'Certificate' -'-add_certs_from_pem/3-lc$^1/1-0-' -'-add_crls/3-lc$^0/1-1-' -'-add_crls/3-lc$^1/1-0-' -'-remove_crls/2-lc$^0/1-1-' -'-remove_crls/2-lc$^1/1-0-' -'-remove_cert_entries/2-fun-0-' -remove_cert_entries -insert_cert_entries -insert_delete_lists -update_certs -'TBSCertList' -der_decode -'CertificateList' -crl_issuer -rm_crls -remove_crls -add_crls -new_trusted_cert_entry -pkix_decode_cert -decoded -pkix_normalize_name -'OTPTBSCertificate' -'OTPCertificate' -cert -decode_cert -add_cert -add_certs_from_pem -certs_from_der -add_certs_from_der -remove_certs -init_ref_db -db_size -not_cached -ref_count -select_certentries_by_ref -remove_trusted_certs -decode_pem_file -pem_decode -der_otp -extract_trusted_certs -refresh -file_to_certificats -refresh_trusted_certs -der -add_trusted_certs -extracted -lookup_trusted_cert -ssl_otp_crl_issuer_mapping -ssl_otp_crl_cache -ssl_otp_ca_ref_file_mapping -ssl_otp_ca_file_ref -ssl_otp_cacertificate_db -ssl_manager_type -bypass_pem_cache -bypass_cache -ssl_pem_cache_clean -pem_check_interval -pem_cache_validate -init_pem_cache_validator -start_pem_cache_validator -refresh_trusted_db -clear_pem_cache -create_pem_cache -invalidate_pem -unconditionally_clear_pem_cache -cache_pem -start_link_dist -ssl_pem_cache_dist -client_session_ticket_lifetime -client_session_ticket_store_size -ticket_store_spec -session_and_cert_manager_child_spec -pem_cache_child_spec -session_lifetime -session_cb_init_args -session_cb -manager_opts -ssl_admin_child_spec -logger_h_common_logger_std_h_ssl_handler_restarting -logger_std_h_ssl_handler -asn1_certificates -verify_data -request_update -exchange_keys -certificate_list -certificate_request_context -status_type -hashsign_algorithm -algorithm -protocol_version -certificate_authorities -hashsign_algorithms -certificate_types -hashsign -params_bin -ticket -ticket_nonce -ticket_age_add -ticket_lifetime -compression_method -cipher_suite -server_version -compression_methods -client_version -'-parse_cipher_suites/1-lc$^0/1-0-' -format_uknown_cipher_suite -number_to_hex -prepend_eighths_hex -prepend_hex -prepend_row -prepend_first_row -update_row -calculate_padding -end_row -row_prefix -leading -convert_to_hex -msg_type -tls_record_version -header_prefix_tls_record -format_tls_record -header_prefix -server_hello_selected_version -get_server_version -client_hello_versions -get_client_version -suite_map_to_str -suite_bin_to_map -format_cipher -parse_cipher_suites -server_hello_done -hello_request -end_of_early_data -server_key_exchange -key_update -encrypted_extensions -client_key_exchange -certificate -hello_verify_request -certificate_verify_1_3 -certificate_verify -certificate_status -certificate_request_1_3 -certificate_1_3 -certificate_request -server_key_params -new_session_ticket -server_hello -client_hello -parse_handshake -format_handshake -build_tls_record -own_alert_format -alert_format -role -statename -own -alerter -direction -handshake -outbound -inbound -stop_logger -filter_non_ssl -ssl_handler -start_logger -asn1db -asn1_ns -asn1rt_nif -'PKCS-FRAME' -'OTP-PUB-KEY' -pubkey_os_cacerts -pubkey_ocsp -pubkey_crl -pubkey_cert_records -pubkey_cert -pubkey_ssh -pubkey_pbe -pubkey_pem -rand_cache_size -fips_mode -crypto_ec_curves -ssl_connection_sup -ssl_admin_sup -ssl_sup -ssl_app -ssl_trace -ssl_logger -ssl_crl_hash_dir -ssl_crl_cache_api -ssl_crl_cache -ssl_crl -ssl_certificate -ssl_pkix_db -ssl_pem_cache -ssl_manager -ssl_upgrade_server_session_cache_sup -ssl_server_session_cache_sup -ssl_server_session_cache_db -ssl_server_session_cache -ssl_client_session_cache_db -ssl_session -tls_dist_server_sup -tls_dist_sup -ssl_dist_admin_sup -ssl_dist_connection_sup -ssl_dist_sup -inet6_tls_dist -inet_tls_dist -tls_client_ticket_store -tls_bloom_filter -ssl_listen_tracker_sup -ssl_alert -ssl_srp_primes -ssl_cipher_format -ssl_cipher -ssl_record -ssl_handshake -ssl_gen_statem -ssl_config -tls_dtls_connection -ssl_session_cache_api -dtls_server_session_cache_sup -dtls_server_sup -dtls_sup -dtls_listener_sup -dtls_packet_demux -dtls_gen_connection -dtls_connection_sup -dtls_v1 -dtls_socket -dtls_record -dtls_handshake -dtls_connection -ssl_dh_groups -tls_dyn_connection_sup -tls_sup -tls_server_session_ticket -tls_server_session_ticket_sup -tls_server_sup -tls_sender -tls_gen_connection -tls_connection_sup -tls_v1 -tls_socket -tls_record_1_3 -tls_record -tls_handshake_1_3 -tls_handshake -tls_gen_connection_1_3 -tls_server_connection_1_3 -tls_client_connection_1_3 -tls_connection -bad_descriptor -get_fd -ip_comm -socket_type -listen_loop -listen_init -listen_owner -start_listen -socket_start_failed -mk_tuple_list -httpd_child_spec_nolisten -httpd_child_spec_listen -bind_address -could_not_consult_proplist_file -validate_properties -proplist_file -httpd_config -valid_options -accept_timeout -'-lookup_cookies/3-fun-0-' -'-parse_set_cookies/2-lc$^0/1-0-' -'-parse_set_cookies/2-lc$^1/1-1-' -'-parse_set_cookie_attributes/1-lc$^0/1-0-' -'-accept_cookies/3-fun-0-' -image_of -path_sort -valid_cookies -is_cookie_expired -cookie_expires -accept_domain -accept_path -accept_cookie -accept_cookies -skip_right_most_slash -path_default -domain_default -datetime_to_gregorian_seconds -convert_netscapecookie_date -cookie_attributes -parse_set_cookie_attribute -parse_set_cookie_attributes -substr -parse_set_cookie -parse_set_cookies -chr -is_set_cookie_valid -add_domain -cookie_to_string -cookies_to_string -merge_domain_parts -lookup_domain_cookies -is_hostname -lookup_cookies -session_cookies -headers -request_path -request_host -http_cookie -maybe_dets_close -failed_open_file -cookie_db -httpc_manager__cookie_db -httpc_manager__session_cookie_db -httpc_manager__handler_db -httpc_manager__session_db -do_print_trace -print_trace -do_print_inets_trace -print_inets_trace -format_timestamp -closed_file -handle_trace -hopefully_traced -error_to_exit -ctp -change_pattern -bad_level -make_pattern -set_level -stop_trace -valid_trace_service -do_enable -trace_port -enable2 -invalid_service -'API_violation' -'-which_sessions2/1-lc$^0/1-0-' -'-which_sessions2/1-lc$^1/1-1-' -'-which_sessions2/1-lc$^2/1-2-' -'-code_change/3-fun-1-' -'-code_change/3-fun-0-' -'-get_manager_info/1-lc$^0/1-0-' -'-get_handler_info/1-lc$^0/1-0-' -'-get_handler_info/1-lc$^1/1-1-' -'-select_session/2-lc$^0/1-0-' -tp -tpl -handle_verbose -get_unix_socket_opts -get_socket_opts -get_verbose -get_port -get_ipfamily -get_cookies -get_max_sessions -get_keep_alive_timeout -get_max_keep_alive_length -get_max_pipeline_length -get_pipeline_timeout -get_https_proxy -get_proxy -scheme_default_port -unexpected -maybe_error -uri_parse -make_db_name -handler_db_name -session_cookie_db_name -cookie_db_name -session_db_name -do_store_cookies -handle_cookies -generate_request_id -is_inets_manager -pipeline_or_keep_alive -no_session -no_connection -host_port -candidates -is_idempotent -select_session -start_handler -convert_options -get_handler_info -sort_handlers2 -sort_handlers -sessions -get_manager_info -update_session_table -upgrade_from_pre_5_8_1 -downgrade_to_pre_5_8_1 -close_db -request_id -option_items -url -open_db -do_init -pipeline -keep_alive -session_type -which_session_info -non_session -bad_session -good_session -which_sessions_order -which_sessions2 -session_is -delete_session -pos -update_session -session_id -lookup_session -session -insert_session -request_done -redirect_request -retry_or_redirect_request -retry_request -no_such_service -invalid_field -invalid_value -headers_error -http_request_h -streaming_error -field -no_scheme -return_map -service_not_available -verify_peer -inets_not_started -invalid_method -invalid_request -patch -post -'-services/0-lc$^0/1-0-' -'-service_info/1-lc$^0/1-0-' -to_lower -'-handle_request/9-lc$^0/1-0-' -eof_body -'-mk_chunkify_fun/1-fun-0-' -'-http_options/3-fun-0-' -to_upper -'-http_options_default/0-fun-0-' -'-http_options_default/0-fun-1-' -essl -'-http_options_default/0-fun-2-' -'-http_options_default/0-fun-3-' -'-http_options_default/0-fun-4-' -'-http_options_default/0-fun-5-' -'-boolfun/0-fun-0-' -'-request_options_defaults/0-fun-0-' -'-request_options_defaults/0-fun-1-' -'-request_options_defaults/0-fun-2-' -'-request_options_defaults/0-fun-3-' -'-request_options/3-fun-0-' -bad_body_generator -check_body_gen -child_name -child_name2info -header_parse -validate_headers -header_record -validate_unix_socket -validate_verbose -validate_socket_opts -validate_port -validate_ip -validate_ipfamily -inet6fb4 -validate_ipv6 -validate_cookies -validate_max_pipeline_length -validate_pipeline_timeout -validate_max_keep_alive_length -validate_keep_alive_timeout -validate_max_sessions -validate_https_proxy -validate_proxy -not_an_option -pipeline_timeout -max_sessions -max_pipeline_length -max_keep_alive_length -keep_alive_timeout -https_proxy -ipfamily -validate_ipfamily_unix_socket -bad_options_combo -request_options_sanity_check -request_options -request_options_defaults -boolfun -autoredirect -proxy_auth -url_encode -connect_timeout -http_options_default -value_lazy -http_options -headers_as_is -body_format -maybe_format_body -full_result -return_answer -saved_to_file -handle_answer -mk_chunkify_fun -ensure_chunked_encoding -bad_scheme -scheme_to_atom -add_question_mark -bad_body -normalize_host -maybe_add_brackets -userinfo -ipv6_host_with_brackets -unix_socket -socket_opts -receiver -chunkify -normalize_and_parse_url -service_info -stand_alone -start_standalone -stream_next -reset_cookies -which_sessions -report_event -which_cookies -cookie_header -default_port -cookies -recompose -parse_failed -store_cookies -cacerts -cacerts_get -customize_hostname_check -pkix_verify_hostname_match_fun -ssl_verify_host_options -set_option -cancel_request -check_request -do_request -profile_name -no_profile -stop_child -data_dir -child_specs -only_session_cookies -'-children/0-lc$^0/1-0-' -'-children/0-lc$^1/1-1-' -default_profile -is_httpc -is_httpd -httpd_child_spec -httpc_child_spec -children -get_services -runtime_dependencies -mod_trace -mod_security_server -mod_security -mod_responsecontrol -mod_range -mod_log -mod_head -mod_get -mod_esi -mod_disk_log -mod_dir -mod_cgi -mod_auth_server -mod_auth_plain -mod_auth_mnesia -mod_auth_dets -mod_auth -mod_alias -mod_actions -httpd_sup -httpd_socket -httpd_script_env -httpd_response -httpd_request_handler -httpd_request -httpd_misc_sup -httpd_manager -httpd_logger -httpd_log -httpd_instance_sup -httpd_file -httpd_example -httpd_esi -httpd_custom_api -httpd_custom -httpd_connection_sup -httpd_cgi -httpd_acceptor_sup -httpd_acceptor -http_util -http_transport -http_chunk -httpc_cookie -httpc_sup -httpc_response -httpc_request -httpc_profile_sup -httpc_manager -httpc_handler_sup -httpc_handler -httpc -inets_lib -inets_trace -inets_service -inets_app -inets_sup -inets -gleam_community_colour -tom -snag -glint -gleam_otp -gleam_httpc -gleam_http -gleam_community_ansi -gap -'day7@solve' -'day7@day7_test' -simplifile -gleeunit -gleam_stdlib -gleam_erlang -adglent -'-open/1-fun-0-' -'-fake_reader/1-fun-0-' -'-reader/2-fun-0-' -'-com_enc_end/1-lc$^0/1-0-' -'-keep_ftr_keywords/0-fun-0-' -'-keep_ftr_keywords/0-fun-1-' -'-predef_macros/2-lc$^0/1-0-' -'-predef_macros/2-lc$^1/1-1-' -'-ftr_macro/1-fun-0-' -'-ftr_macro/1-fun-1-' -'-wait_request/1-lc$^0/1-0-' -'-eval_if/2-fun-0-' -'-interpret_file_attr/3-fun-0-' -interpret_file_attr -interpret_file_attribute -line1 -start_loc -add_line -expand_var1 -expand_var -wait_epp_reply -epp_reply -var_or_atom -find_mismatch -coalesce_strings -stringify -stringify1 -token_src -comma -classify_token_1 -classify_token -update_fun_name_1 -update_fun_name -expand_arg -expand_macro -macro_arg -count_args -store_arg -macro_args -bind_args -'FUNCTION_NAME' -'FUNCTION_ARITY' -get_macro_uses -check_uses -expand_macro1 -expand_macros -check_macro_arg -macro_expansion -macro_pars_end -macro_pars_cont -macro_pars -skip_elif -skip_else -skip_toks -scan_file1 -scan_endif -scan_elif -to_conses -defined -rewrite_expr -assert_guard_expr -eval_if -scan_if -scan_else -is_macro_defined -scan_ifndef -scan_ifdef -lib -scan_include_lib1 -scan_include_lib -expand_lib_dir -scan_include1 -scan_include -scan_undef -macro_ref -macro_uses -scan_define_cont -scan_define_2 -scan_define_1 -scan_define -update_features -scan_feature -scan_err_warn -'BASE_MODULE_STRING' -'BASE_MODULE' -scan_extends -'MODULE_STRING' -'MODULE' -scan_module_1 -extends -scan_module -leave_prefix -in_prefix -include_lib -ifndef -ifdef -endif -elif -define -scan_toks -leave_file -enter_file_reply -enter_file2 -enter_file -wait_req_skip -wait_req_scan -close_file -epp_request -wait_request -user_predef -ftr_macro -'FILE' -'LINE' -'MACHINE' -'OTP_RELEASE' -'FEATURE_AVAILABLE' -'FEATURE_ENABLED' -predef_macros -keep_ftr_keywords -source_name -init_server -not_typed -normalize_typed_record_fields -com_encoding -com_enc_end -com_enc -com_space -com_sep -com_oding -com_c -com -com_nl -read_encoding_from_file -fake_reader -in_comment_only -read_encoding -encoding_to_string -features -get_features -premature_end -missing_parenthesis -missing_comma -ftr_after_prefix -elif_after_else -cannot_parse -redefine_predef -redefine -mismatch -illegal_function_usage -illegal_function -duplicated_argument -arg_error -'NYI' -circular -macro_defs -includes -macros -print_stack_frame -stack_filter -print_error -main -aoc2023 -'X' -'-predefined_functions/1-lc$^0/1-0-' -'-predefined_functions/1-lc$^1/1-1-' -'-predefined_functions/1-lc$^2/1-2-' -'-predefined_functions/1-lc$^3/1-3-' -'-get_optional_callbacks/1-lc$^0/1-0-' -'-module_predef_func_beh_info/2-lc$^0/1-0-' -module_predef_funcs_mod_info -make_list -module_predef_func_beh_info -get_optional_callbacks -predefined_functions -add_predefined_functions -pos_integer -nonempty_string -nonempty_maybe_improper_list -nonempty_improper_list -nonempty_bitstring -nonempty_binary -non_neg_integer -neg_integer -maybe_improper_list -iolist -identifier -byte -bitsize -send_op -list_op -comp_op -bool_op -new_type_test -stream_state -retired_ecb_cipher_aliases -retired_ctr_cipher_aliases -retired_cfb_cipher_aliases -retired_cbc_cipher_aliases -hmac_state -user_info -uri -query -fragment -default_scheme_port_number -node_cookie -cookie -local_time_to_universal_time -rehash -is_module_native -literal_value -is_literal_list -is_literal -get_anno -stream_init -stream_encrypt -stream_decrypt -rand_uniform -poly1305 -next_iv -hmac_update -hmac_init -hmac_final_n -hmac_final -hmac -crypto_dyn_iv_update -crypto_dyn_iv_init -cmac -block_encrypt -block_decrypt -stop_clear -lclose -inc_wrap_file -accessible_logs -modify_line -get_attributes -get_attribute -token_info -set_attribute -attributes_info -hash -get_stacktrace -safe_relative_path -find_src -stop_service -start_service -scheme_defaults -parse_query -make_integer -is_directory -custom_clean -check_enum -integer_to_hexlist -hexlist_to_integer -ssh_hostkey_fingerprint -ssh_encode -ssh_decode -safe_multi_server_call -ssl_accept -negotiated_next_protocol -connection_info -cipher_suites -get_debug -enableYearChange -wxCalendarCtrl -public_key -os_mon_mib -httpd_util -httpd_conf -httpd -http_uri -ftp -erts_alloc_config -dbg -ct_slave -asn1ct -intersection1 -aoc2023_test -is_settable -anno_info -simplify -reset_simplify -set_anno -set_record -set_line -is_string -is_filename -is_anno2 -is_anno1 -new_location -'aoc2023@@main' -'-inlined-new_column/2-' -'-inlined-incr_column/2-' -'-options/1-fun-1-' -'-remove_digit_separators/2-lc$^0/1-0-' -let -cond -f_reserved_word -nl_tabs -spcs -nl_spcs -scan_error -tok3 -tok2 -scan_check1 -scan_check -comment -scan_comment -scan_comment_fun -skip_comment -skip_comment_fun -float_end -scan_exponent -scan_exponent_sign -scan_fraction -scan_based_int -remove_digit_separators -with_underscore -scan_number -caret_char_code -escape_char -scan_hex_end -scan_hex -scan_escape -scan_string1 -scan_string_col -scan_string_no_col -scan_string0 -scan_qatom -char_error -scan_string -scan_char -scan_white_space -scan_white_space_fun -skip_white_space -skip_white_space_fun -scan_tabs -scan_tabs_fun -scan_spcs -scan_spcs_fun -newline_end -scan_nl_white_space -scan_nl_white_space_fun -scan_nl_tabs -scan_nl_tabs_fun -scan_nl_spcs -scan_nl_spcs_fun -scan_newline -scan_dot -scan_name -scan_variable -scan_variable_fun -scan_atom -scan_atom_fun -not_character -'&' -'@' -'\\' -'^' -'`' -'~' -white_space -no_underscore -scan1 -string1 -tokens1 -expand_opt -reserved_word_fun -ssa_checks -compiler_internal -text_fun -return_white_spaces -return_comments -string_thing -category -erl_scan_continuation -no_col -illegal -'-open_1/3-fun-0-' -match_binary -match_writable -match_delayed -compressed_one -match_compressed -add_unless_matched -add_implicit_modes -open_layer -open_1 -reverse_pairs -append_list -fetch_keys -no_source -'-c/2-fun-0-' -'-c/5-fun-0-' -'-format_docs/1-fun-0-' -'-lc/1-fun-0-' -'-lc_batch/1-lc$^0/1-0-' -'-i/1-fun-0-' -'-all_procs/0-fun-0-' -'-m/0-fun-0-' -'-lm/0-lc$^0/1-0-' -'-nregs/0-fun-0-' -'-all_regs/0-lc$^0/1-0-' -'-print_node_regs/1-fun-0-' -'-print_node_regs/1-fun-1-' -appcall -parsetools -yecc -y -tools -xref -xm -seconds_to_daystime -get_uptime -uptime -max_length -ls_print -ls -pwd -portformat -portline -procformat -procline -portinfo -pwhereis -pids_and_ports -print_node_regs -all_regs -regs -nregs -split_print_exports -print_exports -get_compile_info -get_compile_options -print_md5 -print_object_file -bi -f_p_e -lm -mm -mformat -bt -all_procs -iformat -mfa_string -'more (y/n)? (y) ' -paged_output -less -ni -l -nc -d -split_def -'@o' -'@i' -'@d' -lc_batch -output_generated -purge_and_load -src_suffix -from_opt -from_core -from_asm -is_from_opt -is_outdir_opt -ensure_outdir -ensure_from -report_warnings -compile_and_load -safe_recompile -find_beam_1 -find_beam -source -find_source -old_options -format_docs -render_callback -hcb -render_type -ht -unknown_format -render -outdir -help -logger_h_common_logger_std_h_default_restarting -logger_std_h_default -handler_busy -cancel_repeated_filesync -set_repeated_filesync -check_common_config -string_to_binary -formatter_crashed -try_format -formatter_error -caught -do_log_to_binary -log_to_binary -log_handler_info -restart_impossible -rep_sync_tref -repeated_filesync -last_op -handler_state -ctrl_sync_count -olp -file_ctrl_process_not_started -'-fix_modes/1-lc$^0/1-0-' -'-fix_modes/1-fun-1-' -'-file_ctrl_start/2-fun-0-' -error_notify -maybe_notify_error -decompress_data -decompress_file -compress_data -compress_file -rot_file_name -rotate_files -rotate_file -maybe_rotate_file -maybe_update_compress -maybe_remove_archives -curr_size -rotation -update_rotation -sync_dev -write_to_dev -could_not_create_dir_for_file -could_not_reopen_file -ensure_open -ensure_file -maybe_ensure_file -file_ctrl_loop -open_failed -dev -file_ctrl_init -file_ctrl_call -file_ctrl_filesync -file_write -file_ctrl_stop -file_ctrl_start -delayed_write_close -close_log_file -write_res -sync_res -last_check -inode -handler_name -open_log_file -write_failed -config_changed -delayed_write -fix_modes -no_repeat -filesync_repeat_interval -fix_file_opts -merge_default_config -normalize_config -modes -max_no_files -max_no_bytes -file_check -compress_on_rotate -check_h_config -file_ctrl_pid -filesync -'-format/2-fun-0-' -'-check_template/1-fun-0-' -check_timezone -check_offset -check_template -check_limit -invalid_formatter_template -do_check_config -offset_to_utc -utc_log -get_utc_config -utc_to_offset -get_offset -get_depth -get_max_size -default_template -add_default_template -add_default_config -month -error_logger_notice_header -add_legacy_title -maybe_add_legacy_header -timestamp_to_datetimemicro -system_time_to_rfc3339 -time_designator -format_time -get_first -get_last -chardata_to_list -limit_depth -reformat -chars_limit_to_opts -format_msg -linearize_template -template -resource -cleanup -pong -ping -'-wait_nodes/2-fun-0-' -sync_nodes_optional -get_sync_optional_nodes -sync_nodes_mandatory -get_sync_mandatory_nodes -sync_nodes_timeout -get_sync_timeout -get_sync_data -check_up -mandatory_nodes_down -wait_nodes -sync_nodes -'__not_used' -dist_ac_took_control -go -'-start_interval_loop/5-fun-0-' -remove_timer -schedule_interval_timer -interval_loop -start_interval_loop -maybe_req -req -hms -hours -minutes -now_diff -tc -interval -send_interval -apply_repeatedly -apply_interval -kill_after -send_local -apply_once -instant -logger_proxy_logger_proxy_restarting -cond_lowercase -flat_trunc -prefixed_integer -unprefixed_integer -string_field -limit_field -limit_cdata_to_chars -cdata_to_chars -final -limit_iolist_to_chars -iolist_to_chars -float_data -signbit -abs_float_f -float_f -fwrite_f -float_exp -float_man -abs_float_e -float_e -fwrite_e -column -base -uniconv -control_limited -control_small -decr_pc -build_limited -not_small -build_small -w -count_small -collect_cc -field_value -field_width -modifiers -collect_cseq -collect -print_maps_order -print_strings -print_encoding -print_pad_char -print_precision -print_field_width -control_char -pad_char -precision -strings -width -wrap -quiet -'-to_drop/0-lc$^0/1-0-' -show -show_custom_provider_faulty_add_return -'$#erlang-history-custom-return' -show_custom_provider_faulty_load_return -'$#erlang-history-custom-crash' -show_custom_provider_crash -'$#erlang-history-size' -show_size_warning -'$#erlang-history-unexpected-close' -show_unexpected_close_warning -'$#erlang-history-unexpected-return' -show_unexpected_warning -'$#erlang-history-invalid-file' -show_invalid_file_warning -'$#erlang-history-invalid-chunk-warn' -show_invalid_chunk_warning -'$#erlang-history-rename-warn' -show_rename_warning -shell_history_drop -to_drop -shell_history_path -find_path -'$#erlang-history-disable' -disable_history -'$#erlang-history-upgrade' -upgrade_version -'$#erlang-history-resize-result' -new_size_too_small -change_size -'$#erlang-history-resize-attempt' -resize_log -'$#erlang-history-report-repairs' -report_repairs -shell_history_file_bytes -find_wrap_values -disk_log_info -'$#erlang-history-invalid-header' -not_a_log_file -invalid_index_file -'$#erlang-history-file-error' -'$#erlang-history-arg-mismatch' -handle_open_error -maybe_drop_header -maybe_resize_log -read_full_log -ensure_dir -ensure_path -log_options -open_log_no_size -open_log -init_running -is_user -shell_history -history_status -open_new_log -repair_log -wait_for_kernel_safe_sup -no_such_log -need_repair -name_already_open -invalid_header -repair -arg_mismatch -badbytes -recovered -'$#group_history' -'-write/2-fun-0-' -chars_length -test_limit_bitstring -test_limit_map_assoc -test_limit_map_body -test_limit_map -test_limit_tuple -test_limit_tail -test_limit -limit_bitstring -limit_map_assoc -limit_map_body -limit_map -limit_tuple -limit_tail -limit -binrev -collect_line_list -collect_line_bin -collect_chars_list -collect_chars1 -count_and_find_utf8 -printable_latin1_list -deep_unicode_char_list -deep_latin1_char_list -write_char_as_latin1 -write_latin1_char -write_unicode_char -string_char -write_string1 -unicode_as_latin1 -write_string_as_latin1 -write_latin1_string -write_unicode_string -unicode_as_unicode -name_char -name_chars -reserved_word -quote_atom -write_possibly_quoted_atom -tsub -write_binary_body -write_binary -write_map_assoc -write_map_body -write_map -write_ref -write_port -write_tuple -write_tail -fwrite_g -write1 -intermediate -maps_order -add_modifier -do_format_prompt -indentation -test_modules_loaded -build_text -unscan -unscan_format -scan -'-edit_line1/2-lc$^0/1-0-' -'-over_word/3-lc$^0/1-0-' -'-chars_before/1-lc$^0/1-0-' -'-current_line/1-fun-0-' -cp_len -gc_len -current_chars -length_after -length_before -chars_before -multi_line_prompt -erase_inp -over_paren_auto -over_paren -word_char -over_non_word -over_word2 -over_word1 -until_quote -over_word -skip_up -skip_down -do_op -insert_search -kill_line -transpose_char -backward_kill_word -yank -auto_blink -beginning_of_expression -backward_line -backward_word -forward_line -forward_word -forward_char -kill_word -backward_char -end_of_line -beginning_of_line -transpose_word -yank_pop -clear_line -forward_delete_char -backward_delete_char -key_map -ctlu -prefix_arg -redraw -end_of_expression -tab_expand_full -tab_expand -search_meta_left_sq_bracket -search_meta -new_line_finish -new_line -meta_o -meta_meta -meta_csi -ctlx -csi -edit -kill_buffer -'-normalize_expand_fun/2-fun-0-' -'-get_line1/5-lc$^3/1-0-' -'-get_line1/5-lc$^4/1-1-' -format_prompt -prompt_bytes -edit_password -get_password1 -get_password_line -search_down_stack -search_up_stack -save_line_buffer -pad_stack -get_all_lines -get_lines -save_line -down_stack -up_stack -stack -new_stack -get_line_timeout -remainder_after_nl -get_chars_echo_off1 -get_chars_echo_off -get_line_echo_off1 -get_line_echo_off -more_data -redraw_line -search_result -search_found -search_cancel -number_matches -format_matches -search_quit -expand_full -search_quit_prompt -edit_line1 -to_graphemes -meta_left_sq_bracket -prompt -erase_line -get_line1 -interrupted -get_chars_n_loop -current_line -get_chars_loop -get_chars_line -get_chars_n -get_password_chars -terminal -normalize_expand_fun -send_drv_reqs -send_drv -collect_chars -get_tty_geometry -exit_shell -driver_id -start_shell1 -whereis_shell -unicode_state -read_mode -line_buffer -convert_binaries -bc_req -default_output -default_input -execute_request -parse_erl_form -scan_erl_form -scan_erl_exprs -fread -conv_reason -get_password -sig -ebadf -canon -'-handle_request/2-lc$^0/1-0-' -'-handle_request/2-lc$^1/1-1-' -'-in_view/1-lc$^0/1-0-' -'-in_view/1-lc$^1/1-1-' -'-in_view/1-lc$^3/1-2-' -'-in_view/1-lc$^2/1-3-' -'-cols_multiline/4-lc$^0/1-0-' -'-npwcwidthstring/1-lc$^0/1-0-' -'-characters_to_output/1-fun-0-' -'-characters_to_buffer/1-fun-0-' -'-binary_to_latin1/1-lc$^0/1-0-' -tty_read_signal -tgoto_nif -tgetstr_nif -tgetflag_nif -tgetnum_nif -tgetent_nif -tgoto -tgetstr -tgetflag -tgetnum -tgetent -wcswidth -sizeof_wchar -wcwidth -isprint -tty_window_size -tty_encoding -tty_select -setlocale -tty_set -tty_init -tty_create -encode -char_to_latin1 -binary_to_latin1 -is_usascii -to_latin1 -ansi_sgr -ansi -insert_buf -characters_to_buffer -characters_to_output -xnfix -is_wide -not_printable -npwcwidth -next_grapheme -npwcwidthstring -update_geometry -cols -cols_multiline -split_cols_multiline -cols_after_cursor -in_view -right -left -move_cursor -split_cols -last_or_empty -unhandled_request -both -redraw_prompt_pre_deleted -writer_loop -user_drv_writer -reader_loop -user_drv_reader -winch -cont -reader_stop -reader -writer -init_term -standard_io_encoding -primitive -state_name -should_not_have_arrived_here_but_instead_in -'-inlined-loop_state_enter/9-' -'-format_log_single/2-fun-0-' -'-list_timeouts/1-lc$^0/1-0-' -list_timeouts -limit_client_info -terminate_sys_debug -bad_reply_action_from_state_function -do_reply_then_terminate -reply_then_terminate -bad_return_from_callback_mode -state_enter -callback_mode_result -get_callback_mode -parse_timeout_opts_abs -loop_done -loop_timeouts_update -loop_timeouts_cancel -loop_timeouts_register -loop_timeouts_start -loop_timeouts -loop_next_events -loop_state_change -loop_keep_state -loop_state_transition -loop_actions_next_event_bad -loop_actions_next_event -loop_actions_reply -bad_action_from_state_function -state_timeout -pop_callback_module -bad_state_enter_action_from_state_function -push_callback_module -change_callback_module -loop_actions_list -loop_actions -bad_return_from_state_function -repeat_state_and_data -repeat_state -bad_state_enter_return_from_state_function -stop_and_reply -loop_state_callback_result -handle_event_function -loop_state_callback -loop_event -loop_receive_result -t0q -loop_receive -loop_hibernate -wakeup_from_hibernate -event_string -insert_timeout -consume -sys_debug -timeouts -postponed -bad_return_from_init -init_result -params -replies -dirty_timeout -clean_timeout -postpone -'-gr_list/1-inlined-0-' -'-init_local_shell/2-fun-0-' -'-group_opts/1-fun-1-' -'-group_opts/1-fun-0-' -'-gr_list/1-fun-0-' -gr_list -gr_cur_index -gr_cur_pid -gr_del_pid -gr_set_num -gr_set_cur -gr_add_cur -gr_get_info -gr -gr_get_num -gr_new_group -gr_new -handle_req -mktemp -disable_reader -is_file -delete_line -delete_after_cursor -beep -move -move_rel -move_line -delete_chars -insert_over -expand_with_trim -put_expand_no_trim -put_expand -insert_chars_over -insert_chars -putc_raw -putc -redraw_prompt -move_combo -expand_below -below -shell_expand_location -expand_fun -group_opts -list_commands -unknown_group -j -r -h -'?' -switch_cmd -blink -edit_line -jcl -shell_esc -more_chars -activate -new_prompt -ctrl_c -contains_ctrl_g_or_ctrl_c -put_chars_sync -die -enable_reader -chomp -window_size -tty_geometry -get_unicode_state -get_terminal_state -interrupt -switch_loop -ctrl_g -editor_data -editor -handle_signal -open_editor -keep_state -set_unicode_state -keep_state_and_data -reinit -next_state -init_shell -init_local_shell -shell_slogan -init_remote_shell -init_noshell -exit_on_remote_shell_error -handles -init_standard_error -old -next_event -isatty -stdin -state_functions -callback_mode -'tty_sl -c -e' -current_group -whereis_group -start_shell -remsh -initial_shell -oldshell -nouser -noinput -get_user -wait_for_user_p -start_user -relay1 -start_relay -'-inlined-result/4-' -'-receive_response/3-anonymous-0-' -'-reqids_to_list/1-fun-0-' -mcall_map_replies -mcall_abandon -mcall_result -mcall_receive_replies -local_call -mcall_send_requests -mcall_send_request -mcall_local_call -expired -time_left -call_abandon -trim_stack_aux -use_all -nonexisting -call_result -multicast_send_requests -'no global_groups definiton' -illegal_function_call -global_group_not_runnig -not_boolean -'-handle_call/3-inlined-1-' -'-init/1-fun-1-' -'-initial_group_setup/3-fun-0-' -'-initial_group_setup/3-fun-1-' -'-schedule_conf_changed_checks/3-fun-0-' -'-make_group_conf/2-lc$^0/1-0-' -'-disconnect_nodes/2-fun-0-' -'-force_nodedown/2-fun-0-' -force_nodedown -disconnect_nodes -check_exit_ggc -check_exit_where -check_exit_send -not_found_ignored -check_exit_reg -check_exit -safesend_nc -not_own_group -safesend -send_monitor -delete_all -global_group_check_dispatcher -lookup_group_conf -alive_state_change_group_conf -make_group_conf -new_group_conf -fetch_new_group_conf -grp_tuple -'node defined twice' -no_name -config_scan -removing_node_state_of_member_node -node_state -conf_changed_check -handle_erpc_response -schedule_conf_changed_checks -log_sync_error -nodeup_conf_check -continue_handle_info -find_name -registered_names_res -find_name_res -send_res -config_ok -illegal_message -own_group_name -own_group_nodes -synced_nodes -no_contact -other_groups -monitoring -conf_check -gconf -names -names_test -whereis_test -test3844zty -not_agreed -sync_error -agreed -no_conf -'invalid global_groups definition' -initial_group_setup -global_group_check -whereis_name_test -send_test -registered_names_test -ng_add_check -own_nodes -do_start_link -no_epmd -net_sup_dynamic -'-intersect_with/3-fun-0-' -'-merge_with/3-fun-0-' -'-iterator/2-fun-1-' -'-iterator/2-fun-0-' -try_next -is_iterator_valid_1 -is_iterator_valid -error_type_merge_intersect -error_type_two_maps -groups_from_list_2 -groups_from_list_1 -groups_from_list -with_1 -reversed -ordered -filter_1 -to_list_internal -to_list_from_iterator -merge_with_1 -intersect_with_iterate -intersect_with_small_map_first -intersect_with -intersect_combiner_v2 -intersect_combiner_v1 -intersect -'-inlined-get_52/1-' -'-inlined-exsss_next/1-' -'-inlined-exsp_next/1-' -'-inlined-exs1024_next/1-' -'-inlined-exrop_next/1-' -'-exs1024_jump/6-fun-0-' -float2str -make_float -bc64 -normal_fi -format_jumpconst58_value -format_jumcons58_matches -format_jumpconst58 -xorzip_sr -polyjump -splitmix64_next -seed64 -seed58 -seed_nz -seed64_nz -seed58_nz -hash58 -mwc59_seed -mwc59_float -mwc59_value -mwc59_value32 -mwc59 -zero_seed -non_integer_seed -too_many_seed_integers -dummy_seed -dummy_next -dummy_uniform -exrop_jump -exrop_uniform -exrop_next -exrop_seed -exro928_jump_2pow20 -exro928_jump_2pow512 -exro928_jump -exro928ss_uniform -exro928_next_state -exro928_next -exro928ss_next -exro928_seed -exs1024_jump -exs1024_next -exs1024_calc -exs1024_gen1024 -exs1024_seed -exsp_jump -exsplus_jump -exsss_uniform -exsp_uniform -exsss_next -exsp_next -exsss_seed -exsplus_seed -exs64_next -exs64_seed -exsp -exs64 -exs1024s -exs1024 -exrop -exro928ss -dummy -mk_alg -seed_get -seed_put -normal_s -jump -bytes_r -bytes_s -uniform_real_s -uniform_real -uniform_n -uniform_s -exsss -default_seed -seed_s -export_seed_s -rand_seed -export_seed -weak_low_bits -uniform_range -invalid_key -bad_node -ok_pending -nok_pending -already_pending -publish_type -'-merge_opts/2-inlined-0-' -'-monitor_nodes/2-fun-0-' -invalid_option -'-terminate/2-fun-1-' -'-restart_distr/1-fun-0-' -'-split_node/1-fun-0-' -'-setopts_new_1/3-fun-0-' -'-setopts_new_1/3-fun-1-' -'-merge_opts/2-fun-0-' -opts_node -merge_opts -dist_nodelay -inet_dist_listen_options -inet_dist_connect_options -setopts_new_1 -setopts_on_listen -send_owner_request -setopts_new -handle_async_response -return_call -getnode -nformat -fetch -fmt_address -display_info -print_info -restart_ticker -all_atoms -reply_waiting1 -reply_waiting -multi_receive -multi_info -get_nodes_info -get_node_info -net_setuptime -connecttime -set_node -proto_error -register_error -duplicate_name -start_protos_listen -wrap_creation -next_creation -strong_rand_bytes -create_creation -sync_cookie -start_protos_no_listen -start_protos -hidden_argument -dist_listen_argument -epmd_module -childspecs -proto_dist -protocol_childspecs -valid_name_head -validate_hostname -create_hostpart -hostname_not_allowed -create_name -init_node -get_proto_mod -unsupported_address_type -select_mod -setup_check -net_address -setup -spawn_func -bye -aux_ticker1 -aux_ticker -start_aux_ticker -ticker_loop -get_nodes_up_normal -disconnect_ctrlr -do_disconnect -mk_monitor_nodes_error -unknown_options -bad_option_value -check_options -option_value_mismatch -check_opt -restart_distr_do -restart_distr -delete_connection -up_nodedown -up_pending_nodedown -pending_nodedown -delete_ctrlr -delete_owner -get_conn -restarter_exit -ticker_exit -pending_own_exit -dist_ctrlr_exit -conn_own_exit -accept_exit -listen_exit -do_handle_exit -generate_node_name -ensure_node_name -transition_period_end -aux_tick -wait_pending -is_pending -inconsistency -remarked -remark -accept_pending_nok -accept_pending -inserted -registered_send -badcookie -unsupported_protocol -controller -accept_connection -name_type -static -ongoing_change_to -is_auth -change_initiated -tick_change -shorter -longer -not_implemented -no_link -up_pending -do_explicit_connect -dist_auto_connect -do_auto_connect_2 -barred_connection -do_auto_connect_1 -tick -sys_dist -ticker -clean_halt -dist_listen -make_init_opts -nodistribution -name_domain -retry_request_maybe -passive_connect_monitor -hidden_connect_node -connect_node -publish -publish_on_node -ticktime_res -ticktime -get_net_ticktime -new_ticktime -set_net_ticktime -verbose -nodes_info -node_info -nodename -allowed -kernel_apply -'$4' -'-make_node_vsn_list/2-inlined-0-' -'-do_ops/5-inlined-5-' -'-do_ops/5-inlined-2-' -'-delete_lock/2-inlined-0-' -'-register_name/3-fun-0-' -'-check_dupname/2-lc$^0/1-0-' -'-unregister_name/1-fun-0-' -'-re_register_name/3-fun-0-' -'-register_name_external/3-fun-0-' -'-handle_info/2-fun-0-' -'-handle_info/2-fun-1-' -'-delete_node_resources/2-fun-0-' -'-check_replies/3-lc$^0/1-0-' -'-resolved/5-fun-0-' -'-resolved/5-fun-1-' -'-resolved/5-fun-2-' -'-resolved/5-fun-3-' -'-resolved/5-fun-4-' -'-resolved/5-fun-5-' -'-start_resolver/2-fun-0-' -'-do_ops/5-lc$^1/1-1-' -'-do_ops/5-lc$^0/1-0-' -'-do_ops/5-fun-2-' -'-do_ops/5-lc$^3/1-3-' -'-do_ops/5-lc$^4/1-4-' -'-do_ops/5-fun-5-' -'-do_ops/5-lc$^6/1-6-' -'-do_ops/5-fun-7-' -'-sync_others/1-fun-0-' -'-sync_others/1-fun-1-' -'-del_name/2-lc$^1/1-1-' -'-del_name/2-lc$^0/1-0-' -'-init_the_locker_fun/1-fun-0-' -'-exclude_known/2-lc$^0/1-0-' -'-delete_lock/2-fun-0-' -'-pid_locks/1-fun-0-' -'-pid_locks/1-lc$^1/1-1-' -'-gns_volatile_multicast/5-fun-0-' -'-node_list/1-fun-0-' -'-make_node_vsn_list/2-fun-0-' -'-mk_known_list/2-fun-0-' -'-mk_known_list/2-fun-1-' -'-add_to_known/2-fun-0-' -'-send_again/1-fun-0-' -'-start_sync/2-fun-0-' -'-sync_init/2-fun-0-' -'-sync_loop/2-fun-0-' -'-start_the_registrar/0-fun-0-' -allow_tuple_fun -unexpected_message -loop_the_registrar -start_the_registrar -get_own_nodes_with_errors -get_own_nodes -check_sync_nodes -synced -sync_loop -sync_init -start_sync -new_node_name -change_our_node_name -send_again -exsplus -random_sleep -get_names -remove_lost_connection_info -save_lost_connection_info -get_lost_connection_info -mk_known_list -make_node_vsn_list -node_list -node_vsn -is_node_potentially_known -gns_volatile_multicast -gns_volatile_send -inform_connection_loss -removing -handle_nodedown -new_resolver -no_longer_a_pid -handle_nodeup -ref_is_locking -pid_locks -delete_lock -pid_is_locking -unlink_pid -dounlink_ext -dolink_ext -notify_all_name -global_name_conflict -random_notify_name -random_exit_name -minmax -resolve_it -exchange_names -reset_node_state -send_cancel_connect_message -send_cancel_connect -kill_resolver -cancel_locker -split_node -is_node_local -add_node -remove_node2 -remove_node -find_node_tag2 -find_node_tag -the_boss -delete_global_lock -call_fun -wait_cancel_lock -lock_is_set_wait_cancel -lock_is_set_true_received -exclude_known -random_element -update_locker_known -locker_failed -locker_succeeded -lock_rejected -locker_trace -delete_nonode -lock_nodes_safely -locker_lock_id -send_lock_set -select_node -get_locker -get_state_reply -remove_from_known -do_trace -no_fun -him -the_locker_message_wait_cancel -the_locker_message -loop_the_locker -init_the_locker_fun -start_the_locker -delete_global_name -delete_global_name2 -delete_global_name_keep_pid -del_name -extra_info -lock_still_set -insert_global_name -sync_other -global_connect_retries -sync_others -do_ops -rem_lock -remove_lock -handle_del_lock -is_lock_set -is_global_lock_set -ins_lock -insert_lock -can_set_lock -handle_set_lock -ins_name_ext -ins_name -resend_pre_connect -resolver -start_resolver -do_whereis -cancel_resolved_locker -ops -added -add_to_known -lock -resolve -wait_lock -lock_id -restart_connect -pre_connect -his_the_locker -locker -prot_vsn -check_replies -local_lock_check -set_lock_on_nodes -lock_on_known_nodes -set_lock_known -send_high_level_trace -wait_high_level_trace -delete_node_resources -delete_node_resource_info -save_node_resource_info -nodes_changed -high_level_trace -extra_nodedown -registrar_died -locker_died -not_connected -group_configured -trace_message -group_nodeup -group_nodedown -cancel_connect -init_connect_ack -ignore_node -remove_connection -async_disconnect -participant -lost_connection -in_sync -async_del_name -async_del_lock -lock_is_set -init_connect -sync_tag_his -exit_resolver -lock_set -exchange_ops -new_nodes -save_ops -sync_tag_my -resolved -high_level_trace_stop -high_level_trace_start -high_level_trace_get -get_synced -get_protocol_version -get_names_ext -get_known -trans_all_known -register_ext -creation_extension -uniform -seed -conf -invalid_parameter_value -connect_all -no_trace -global_node_resources -global_lost_connections -global_pid_ids -global_names_ext -global_locks -aborted -trans -del_lock -set_lock -unregister_name_external -register_name_external -global_names -registered_names -re_register_name -global_multi_name_action -global_pid_names -check_dupname -registrar -execute_cast -'-handle_cast/2-fun-0-' -'-proxy_user/0-fun-0-' -'-start_nodes_observer/0-fun-0-' -rex_nodes_observer -'-start_nodes_observer/0-fun-1-' -'-do_srv_call/3-fun-0-' -'-eval_everywhere/4-fun-0-' -'-parallel_eval/1-lc$^0/1-0-' -'-cnode_call_group_leader_start/1-fun-0-' -cnode_call_group_leader_start -cnode_call_group_leader_state -cnode_call_group_leader_init -rex_stdout -cnode_call_group_leader_put_chars -cnode_call_group_leader_multi_request -cnode_call_group_leader_request -cnode_call_group_leader_loop -pinfo -build_args -pmap -map_nodes -parallel_eval -no_response -response -nb_yield -async_call -rec_nodes -multi_server_call -rpcmulticallify -multicall -send_nodes -eval_everywhere -rpc_check -rpc_check_t -do_srv_call -signal -exception -rpcify_exception -nodes_observer_loop -start_nodes_observer -proxy_user_flush -proxy_user_loop -rex_proxy_user -proxy_user -set_group_leader -trim_stack -is_arg_error -execute_call -features_reply -features_request -nonexisting_name -sbcast -send_stdout_to_caller -block_call -nodes_observer -'-services/2-fun-0-' -'-rpc/2-fun-0-' -'-hosts/2-fun-0-' -'-resolv/2-fun-0-' -'-host_conf_linux/2-fun-0-' -'-host_conf_freebsd/2-fun-0-' -'-host_conf_bsdos/2-fun-0-' -'-nsswitch_conf/2-fun-0-' -'-protocols/2-fun-0-' -'-netmasks/2-fun-0-' -'-networks/2-fun-0-' -split_mid_comma -split_comma -split_end -split_mid -dig_to_hex -dig_to_dec -separate -ntoa_done -hex_to_int -dec16 -hex -ipv6_addr_done -ipv6_addr_scope -ipv6_addr -ipv4_field -ipv4strict_addr -strip0 -is_dom2 -is_dom_ldh -is_dom1 -port_proto -parse_cs -parse_fd -networks -netmasks -delete_options -noname -services -eafnosupport -'-setopts/2-lc$^0/1-0-' -'-getopts/2-lc$^0/1-0-' -'-getifaddrs/1-fun-0-' -'-getifaddrs/0-fun-0-' -'-getiflist/1-fun-0-' -'-getiflist/0-fun-0-' -'-ifget/2-fun-0-' -'-ifget/2-fun-1-' -'-ifset/2-fun-0-' -'-ifset/2-fun-1-' -'-getif/0-fun-0-' -'-getif/1-fun-0-' -'-getif/1-fun-1-' -'-gethostname/0-fun-0-' -'-bindx/3-lc$^1/1-1-' -'-ii/3-fun-0-' -'-ii/3-lc$^1/1-0-' -'-ii/3-fun-2-' -'-info_lines/3-lc$^0/1-0-' -'-i_line/3-lc$^0/1-0-' -'-h_line/1-lc$^0/1-0-' -'-port_list/1-fun-0-' -ensure_sockaddr -lock_socket -udp_sync_input -tcp_sync_input -tcp_controlling_process -tcp_close -exbadseq -exbadport -port_list -sctp_sockets -udp_sockets -tcp_sockets -fmt_port -enotconn -fmt_addr -fmt_status3 -fmt_status2 -fmt_compat_status_merge -fmt_compat_status -fmt_status -which_packet_type -sent -local_address -foreign_address -upper -hh_field -h_field -h_line -i_line -info_lines -smax -ii -change_bindx_0_port -set_bindx_port -open_setopts -open_opts -open_fd -gethostbyaddr_tm_native -gethostbyaddr_self -gethostbyname_string -gethostbyname_self -gethostbyname_tm_native -formerr -wins -getaddrs_tm -binary2filename -filename2binary -add_opt -sctp_opt_ifaddr -sctp_opt -sctp_opts -sctp_options -gen_udp_module -udp_module_1 -udp_add -udp_opt -gen_tcp_module -tcp_module_1 -list_add -backlog -list_opt -listen_opts -inet_default_listen_options -listen_options -con_add -ifaddr -con_opt -connect_opts -inet_default_connect_options -connect_options -stats -ipv4_mapped_ipv6_address -strict_address -parse_strict_address -ipv6strict_address -parse_ipv6strict_address -ipv4strict_address -parse_ipv4strict_address -ipv6_address -parse_ipv6_address -parse_ipv4_address -getaddrs -getaddr_tm -getll -is_ip_address -is_ipv6_address -is_ipv4_address -pi_replace -states -socket_to_list -gethostbyaddr_tm -nostring -gethostbyname_tm -popf -pushf -withsocket -getif -udp_closed -optuniquify -udp_controlling_process -udp_close -open_bind -udp_opts -translate_ip -getaddr -getserv -bad_encoding -on -'-init/0-inlined-0-' -'-set_hostname/1-fun-0-' -'-load_hosts/2-fun-0-' -'-win32_load1/3-fun-0-' -'-win32_load1/3-fun-1-' -scan_inetrc -parse_inetrc_skip_line -parse_inetrc -inet_warnings -try_get_rc -inetrc -read_inetrc -valid_type -extract_cfg_files1 -extract_cfg_files -read_rc -win32_get_strings -split_line -win32_split_line -win32_load1 -change_key -nt -win32_load_from_registry -load_hosts -load_resolv -set_search_dom -inet_dns_when_nis -add_dns_lookup -host_conf_bsdos -host_conf_freebsd -host_conf_linux -nsswitch_conf -sunos -netbsd -freebsd -'bsd/os' -do_load_resolv -nonames -shortnames -sname -erl_dist_mode -gethostbyname -'-add_hosts/1-fun-0-' -'-res_cache_answer/1-lc$^0/1-0-' -'-res_filter_rrs/2-lc$^0/1-0-' -'-res_lookup_fun/1-lc$^0/1-0-' -'-res_lookup_fun/1-fun-1-' -'-handle_call/3-lc$^2/1-0-' -chars -'-do_add_host/5-lc$^0/1-0-' -'-do_add_host/5-fun-1-' -'-do_add_host/5-lc$^3/1-1-' -'-do_add_host/5-lc$^2/1-2-' -'-do_del_host/3-lc$^0/1-0-' -'-add_ip_bynms/5-fun-0-' -'-del_ip_bynms/4-fun-0-' -'-load_hosts_list/3-lc$^0/1-0-' -'-load_hosts_list/3-lc$^1/1-1-' -'-rc_opt_req/1-lc$^0/1-0-' -'-do_add_rrs/4-lc$^1/1-1-' -'-do_add_rrs/4-lc$^0/1-0-' -'-lookup_cache_data/2-lc$^0/1-0-' -'-match_rr/6-lc$^0/1-0-' -'-match_rr/6-lc$^1/1-1-' -'-lists_subtract/2-fun-0-' -handle_take_socket_type -handle_put_socket_type -lists_nth -lists_keydelete -lists_subtract -lists_delete -delete_oldest -alloc_entry -delete_expired -stop_timer -init_timer -stripdot_1 -stripdot -eq_domains -rfc_4343_lc -tolower -match_rr -lookup_cache_data -times -do_add_rrs -is_reqname -is_res_set -set_socks_methods -rc_reqname -clear_search -clear_ns -replace_search -replace_ns -rc_opt_req -handle_calls -handle_rc_list -ets_clean_map_keys -load_hosts_list_byname -load_hosts_list_byaddr -load_hosts_list -inet_family -del_ip_bynms -add_ip_bynms -do_del_host -do_add_host -handle_update_file -handle_set_file -refresh_timeout -set_resolv_conf_tm -set_hosts_file_tm -load_hosts_file -res_hosts_file_info -res_resolv_conf_info -listreplace -reset_db -inet_sockets -inet_hosts_file_byname -inet_hosts_byname -inet_cache -inet_backend -take_socket_type -put_socket_type -lookup_socket -unregister_socket -nxdomain -ent_gethostbyaddr -res_gethostbyaddr -ptr -gethostbyaddr -cname -resolve_cnames -res_lookup_fun -res_filter_rrs -hostent -aaaa -make_hostent -dns_rec -res_hostent_by_domain -hostent_by_domain -get_searchlist -getbysearch -dots -getbyname -add_rrs -res_cache_answer -del_rr -dns_rr -add_rr -db_get -res_update -res_hosts_file_tm -res_update_hosts -res_resolv_conf_tm -res_update_conf -hostname -noproxy -methods -socks_option -res_check_search -res_check_ns -res_check_list -res_check_option_absfile -visible_string -res_check_option -res_dnssec_ok -res_recurse -resolv_conf_name -nameserver -hosts_file_name -alt_nameserver -res_optname -res_set -res_id -next_id -res_option -get_rc_hosts -get_rc_ns -get_rc_noproxy -res_alt_ns -cache_refresh_interval -res_res_dnssec_ok -res_domain -res_edns -inet_hosts_byaddr -res_hosts_file -res_inet6 -res_lookup -res_ns -res_resolv_conf -res_retry -res_search -res_servfail_retry_timeout -res_timeout -res_udp_payload_size -res_usevc -socks5_server -socks5_port -socks5_noproxy -socks5_methods -cache_size -cache_refresh -get_rc -valid_lookup -dns -nis -nisplus -yp -translate_lookup -add_rc_list -add_rc_bin -add_rc -sctp_module -set_sctp_module -udp_module -set_udp_module -tcp_module -set_tcp_module -set_cache_refresh -set_cache_size -del_socks_noproxy -add_socks_noproxy -del_socks_methods -add_socks_methods -set_socks_port -set_socks_server -inet_hosts_file_byaddr -get_hosts_file -hosts_file -set_hosts_file -resolv_conf -set_resolv_conf -dnssec_ok -set_dnssec_ok -udp_payload_size -set_udp_payload_size -edns -set_edns -usevc -set_usevc -set_inet6 -servfail_retry_timeout -set_servfail_retry_timeout -retry -set_retry -set_timeout -recurse -set_recurse -set_lookup -set_domain -set_hostname -del_search -ins_search -add_search -del_alt_ns -ins_alt_ns -alt_nameservers -add_alt_ns -del_ns -ins -ins_ns -nameservers -listop -add_ns -clear_hosts -del_host -add_host -add_hosts -resolv -add_resolv -badcall -format_child_log_error_single -format_child_log_progress_single -terminate_pid -no_stderror -standard_error_sup -'-start_port/1-fun-0-' -'-do_setopts/1-fun-0-' -'-wrap_characters_to_binary/3-lc$^0/1-0-' -wrap_characters_to_binary -send_port -put_port -io_requests -rows -columns -get_geometry -do_io_request -get_fd_geometry -onlcr -server -start_port -beam_flatten -beam_ssa_recv -beam_types -beam_listing -v3_core -beam_ssa_lint -core_scan -sys_messages -beam_ssa_check -beam_ssa_codegen -beam_ssa_dead -beam_a -beam_call_types -sys_core_prepare -beam_validator -beam_bounds -beam_digraph -beam_ssa_type -beam_ssa_bc_size -core_lint -beam_block -core_pp -beam_ssa_bsm -beam_ssa_throw -beam_ssa_alias -beam_kernel_to_ssa -beam_dict -sys_pre_attributes -core_lib -cerl_trees -sys_core_fold -beam_ssa_opt -v3_kernel -sys_core_fold_lists -beam_ssa_private_append -erl_bifs -beam_ssa_pre_codegen -beam_ssa_share -beam_ssa_bool -rec_env -beam_clean -beam_ssa -sys_core_alias -cerl_clauses -cerl_inline -sys_core_bsm -sys_core_inline -cerl -beam_utils -beam_opcodes -beam_jump -v3_kernel_pp -beam_ssa_pp -beam_trim -core_parse -beam_disasm -beam_z -beam_asm -rejected_ftr -permanent_ftr -until -while -experimental_ftr_2 -ifn -experimental_ftr_1 -unless -approved_ftr_2 -approved_ftr_1 -init_done -maybe_expr -'-init_features/0-inlined-3-' -'-init_features/0-inlined-2-' -'-configurable/0-lc$^0/1-0-' -'-long/1-lc$^0/1-0-' -'-long/1-lc$^1/1-1-' -'-history/2-fun-0-' -'-history/2-fun-1-' -'-nqTeX/1-fun-0-' -'-keyword_fun/2-fun-0-' -'-add_feature_fun/2-fun-0-' -'-remove_feature_fun/2-fun-0-' -'-feature_error/1-fun-0-' -'-feature_error/1-fun-1-' -'-format_error/1-F/1-0-' -'-init_features/0-fun-0-' -'enable-feature' -'disable-feature' -'-init_features/0-fun-1-' -'-init_features/0-fun-2-' -'-init_features/0-fun-3-' -'-init_features/0-fun-4-' -'-init_features/0-fun-5-' -'-collect_features/1-lc$^0/1-0-' -test_features -add_ftr -feature -collect_features -features_in -set_keywords -enabled_features -ensure_init -init_specs -init_features -incorrect_features -feature_error -configurable_features -remove_features_fun -add_features_fun -remove_feature_fun -add_feature_fun -invalid_features -not_configurable -enable -disable -keyword_fun -invalid_feature -adjust -nqTeX -rejected -experimental -approved -history -long -is_configurable -is_valid -feature_specs -'-characters_to_binary_int/3-fun-0-' -'-i_trans/1-fun-0-' -'-i_trans_chk/1-fun-0-' -'-o_trans/1-fun-7-' -'-o_trans/1-fun-8-' -'-o_trans/1-fun-3-' -'-o_trans/1-fun-4-' -'-o_trans/1-fun-1-' -'-o_trans/1-fun-2-' -'-o_trans/1-fun-0-' -'-o_trans/1-fun-9-' -'-o_trans/1-fun-10-' -'-o_trans/1-fun-5-' -'-o_trans/1-fun-6-' -error_type -do_i_utf32_little -do_i_utf32_big -do_i_utf16_little -do_i_utf16_big -do_i_utf8 -do_i_utf32_little_chk -do_i_utf32_big_chk -do_i_utf16_little_chk -do_i_utf16_big_chk -do_i_utf8_chk -do_o_binary2 -do_o_binary -o_trans -i_trans_chk -i_trans -ml_map -fake_stacktrace -do_characters_to_list -prepend_row_to_acc -acc_to_binary -characters_to_nfkc_binary -nfkc -characters_to_nfkc_list -characters_to_nfc_binary -nfc -characters_to_nfkd_binary -nfkd -characters_to_nfkd_list -characters_to_nfd_binary -nfd -characters_to_nfd_list -encoding_to_bom -bom_to_encoding -no_conversion_needed -'-getenv/0-lc$^0/1-0-' -flush_exit -flush_until_down -validate3 -validate2 -validate1 -mk_cmd -get_option -max_size -do_cmd -cmd -extensions -reverse_element -split_path -can_be_full_name -verify_executable -find_executable1 -iterator_1_from -iterator_1 -take_1 -take_any -from_orddict -enter -update_1 -get_1 -is_defined_1 -lookup_1 -fold_1 -is_set -is_subset_2 -is_subset_1 -is_subset -difference_2 -difference_1 -difference -is_disjoint_1 -is_disjoint -intersection_list -intersection_2 -intersection_1 -union_list -balance_revlist_1 -balance_revlist -push -union_2 -union_1 -mk_set -iterator_from -to_list_1 -largest_1 -largest -take_largest1 -take_largest -smallest_1 -smallest -take_smallest1 -take_smallest -delete_1 -delete_any -del_element -from_ordset -balance_list_1 -balance_list -balance -key_exists -insert_1 -is_member_1 -singleton -nonono -'-encode_hex1/2-lbc$^0/2-0-' -'-decode_hex1/1-lbc$^0/2-0-' -decode_hex2 -decode_hex1 -decode_hex -encode_hex2 -encode_hex1 -lowercase -uppercase -encode_hex -insert_replaced -get_opts_replace -splitat -do_insert -do_replace -bin_to_list -no_debug_info -'-md5/1-lc$^0/1-0-' -'-diff_directories/2-fun-0-' -'-beam_files/1-lc$^0/1-0-' -'-strip_fils/2-lc$^0/1-0-' -'-read_all_but_useless_chunks/1-lc$^0/1-0-' -'-read_all_chunks/1-lc$^0/1-0-' -'-scan_beam/4-lc$^0/1-0-' -'-attributes/2-fun-0-' -'-attributes/2-lc$^1/1-0-' -'-anno_from_forms/1-lc$^0/1-0-' -'-try_load_crypto_fun/1-fun-0-' -'-try_load_crypto_fun/1-fun-1-' -alt_lookup_key -try_load_crypto_fun -f_p_s -crypto_key_fun_from_file_1 -crypto_key_fun_from_file -call_crypto_server_1 -beam_lib__crypto_key_server -call_crypto_server -get_crypto_key -start_crypto -restore_typed_record_fields -anno_from_forms -abstract_v2 -abstract_v1 -old_anno_from_term -crypto_one_time -crypto -des_ede3_cbc -decrypt_chunk -mandatory_chunks -md5_chunks -significant_chunks -assert_directory -maybe_uncompress -beam_filename -read_all -bb -extract_atom -extract_atoms -ensure_atoms -symbol -symbols1 -symbols -locals -labeled_locals -labeled_exports -indexed_imports -imports -chunk_name_to_id -compile_info -chunk_to_data -erlang_v1 -debug_info_v1 -atom_chunk -abst_chunk -chunks_to_data -del_chunk -get_data -get_atom_data -scan_beam2 -scan_beam1 -scan_beam -atoms -check_chunks -beam_symbols -allow_missing_chunks -read_chunk_data -read_all_chunks -filter_funtab_1 -filter_funtab -filter_significant_chunks -read_significant_chunks -is_useless_chunk -read_all_but_useless_chunks -build_chunks -strip_file -strip_fils -strip_rel -cmp_lists -cmp_files -wildcard -beam_files -compare_files -restriction -image -symmetric_partition -compare_dirs -diff_only -diff_directories -read_info -build_module -des3_cbc -make_crypto_key -clear_crypto_key_fun -crypto_key_fun -exists -different_chunks -not_a_directory -not_a_beam_file -chunks_different -unknown_chunk -modules_different -missing_backend -key_missing_or_invalid -invalid_chunk -invalid_beam_file -chunk_too_big -strip_release -strip_files -strip -diff_dirs -cmp_dirs -cmp -all_chunks -ignored -cannot_detach_with_standard_io -'-init/1-fun-0-' -'-verify_args/1-lc$^0/1-0-' -'-verify_args/1-lc$^1/1-1-' -'-encode_port_data/1-lbc$^0/2-0-' -'-maybe_listen/1-lc$^0/1-0-' -'-maybe_listen/1-lc$^1/1-1-' -ntoa -'-command_line/2-lc$^0/1-0-' -'-parse_args/1-lc$^0/1-0-' -'-start_peer_channel_handler/0-fun-3-' -'-start_peer_channel_handler/0-lc$^5/1-2-' -'-start_peer_channel_handler/0-fun-4-' -parse_address -'-start_peer_channel_handler/0-lc$^0/1-0-' -'-start_peer_channel_handler/0-fun-1-' -'-start_peer_channel_handler/0-lc$^2/1-1-' -'-handle_peer_alternative/3-fun-0-' -'-do_call/4-fun-0-' -handle_port_alternative -handle_peer_alternative -io_server_loop -loop_connect -tcp_init -io_server -origin_link -relay -peer_detached -start_peer_channel_handler -peer_channel_terminated -loop_supervision -peer_supervision_connect_timeout -peer_sup_connect_channel -peer_channel_connect_timeout -peer_sup_state -channel_connect -peer_supervision -start_orphan_supervision -init_supervision -start_supervision -notify_started -default_erts -unquote -parse_args -maybe_otp_test_suite -find_executable -encode_to_string -command_line -longnames -name_arg -prefer_localhost -maybe_listen -boot_complete -handle_port_binary -decode_port_data -encode_port_data -peer_to_origin -origin_to_peer -forward_request -handle_alternative_data -peer_down -maybe_stop -node_name -boot_failed -wait_boot -make_notify_ref -invalid_arg -not_alive -detached -char_list -exec -verify_args -force_disconnect_node -wait_disconnected -deadline -register_socket -get_node -cover -booting -peer_state -connection -post_process_args -get_state -random_name -'-compact/1-lc$^0/1-0-' -'-substitute_aliases/2-lc$^0/1-0-' -'-substitute_negations/2-lc$^0/1-0-' -'-expand/2-lc$^0/1-0-' -'-split/2-lc$^0/1-0-' -'-split/2-lc$^1/1-1-' -'-to_map/1-fun-0-' -from_map -to_map -negations -aliases -apply_stages -key_uniq_1 -key_uniq -expand_3 -expand_2 -expand_1 -expand_0 -expand -substitute_negations_1 -substitute_aliases_1 -substitute_aliases -get_bool -append_values -get_all_values -lookup_all -property -lait -liat -daeh -snoc -tail -delete_with_rear -delete_with_front -delete_with_r -delete_with -delete_rear -delete_front -delete_r -filtermap_r -filter_r -filter_f -split_r1_to_f2 -split_f1_to_r2 -drop_r -peek_r -get_r -out_r -in_r -is_empty -is_queue -'-set_restart_flag/1-fun-0-' -reply_return -noreply_return -'$no_default_return' -try_callback_call -maybe_notify_mode_change -set_mode -overload_levels_ok -flush_load -kill_if_choked -limit_burst -check_load -reset_restart_flag -set_restart_flag -overload_kill_qlen -overload_kill_mem_size -overload_kill_enable -burst_limit_window_time -burst_limit_max_count -do_check_opts -invalid_olp_levels -invalid_olp_config -check_opts -do_load -apply_after -overload_kill_restart_after -reset_state -mode_ref -last_qlen -last_load_ts -cb_state -burst_win_ts -burst_msg_count -olp_ref -result -restart_failed -get_opts -'$olp_load' -log_failed -try_log -flushed -drop -mode_change -overloaded -handle_load -get_ref -system_logger -sync_mode_qlen -flush_qlen -drop_mode_qlen -burst_limit_enable -get_default_opts -child_spec -no_state -get_pid -'-limit_report/2-lc$^0/1-0-' -'-format_log_multi/2-fun-0-' -'-format_log_state/2-lc$^0/1-0-' -format_log_state -format_client_log -format_client_log_single -format_server_log_single -limit_client_report -dead -client_stacktrace -client_info -catch_result -handle_common_reply -try_terminate -try_handle_call -try_handle_cast -try_handle_info -handle_continue -try_handle_continue -try_dispatch -do_send -create_callback_cache -callback_cache -mc_cancel_timer -mc_recv_tmo -mc_recv -mc_send -multi_call -do_abcast -abcast -'$gen_cast' -cast_msg -do_cast -'$gen_call' -'-inlined-level_to_int/1-' -'-set/3-lc$^0/1-0-' -'-set_module_level/2-lc$^0/1-0-' -'-unset_module_level/1-lc$^0/1-1-' -'-unset_module_level/1-lc$^1/1-0-' -'-get_module_level/0-lc$^0/1-0-' -'$handler_config$' -'$primary_config$' -'$proxy_config$' -table_key -int_to_level -less_or_equal_level -on_match -filter_remote_gl -filter_progress -filter_level -filter_domain -neq -lteq -gteq -not_equal -equal -simple_handler_process_dead -handler_process_name_already_exists -'-adding_handler/1-fun-0-' -'-replay_buffer/1-F/1-0-' -'-do_log/2-fun-0-' -'-display/1-lc$^0/1-0-' -'-display_report/1-fun-0-' -'-display_report/1-fun-1-' -display_report -display_date -display_log -drop_msg -replay_buffer -dropped -buffer_size -update_buffer -rich -no_log_file -allready_have_logfile -'-tty/1-fun-0-' -error_logger_format_depth -error_logger_tty_true -error_logger_tty_false -logfile -which_report_handlers -delete_report_handler -add_report_handler -scan_format -report_to_format -maybe_add_domain -get_report_cb -std_warning -fix_warning_type -fix_warning_tag -maybe_map_warnings -register_handler -stop_error -report_problem -send_shutdown -check_callback -check_system -get_heart_cmd -send_heart_cmd -send_heart_beat -do_cycle_port_program -check_schedulers -validate_options -no_reboot_shutdown -port_terminated -bad_cmd -bad_options -wait_ack -bad_heart_flag -check_start_heart -get_heart_timeouts -port_problem -start_portprogram -wait -cycle -get_options -set_options -clear_callback -get_callback -set_callback -clear_cmd -get_cmd -set_cmd -no_heart -wait_for_init_ack -bad_name -bad_directory -'-try_finish_module_2/5-inlined-0-' -'-start_link/1-fun-0-' -'-init/3-fun-0-' -'-init/3-lc$^1/1-0-' -'-get_user_lib_dirs_1/1-lc$^0/1-0-' -'-handle_call/3-lc$^1/1-1-' -'-handle_call/3-lc$^0/1-0-' -'-choose_bundles/1-lc$^0/1-0-' -'-choose_bundles/1-lc$^1/1-1-' -'-vsn_to_num/1-lc$^0/1-0-' -'-is_numstr/1-fun-0-' -'-cache_path/1-lc$^0/1-0-' -'-exclude/2-lc$^0/1-0-' -'-set_path/5-lc$^0/1-0-' -'-try_archive_subdirs/3-fun-0-' -'-stick_dir/3-fun-1-' -'-stick_dir/3-fun-0-' -'-try_finish_module/6-fun-1-' -'-try_finish_module/6-fun-0-' -on_load_failure -'-try_finish_module_2/5-fun-0-' -'-finish_loading/3-fun-3-' -'-finish_loading/3-fun-2-' -'-finish_loading/3-fun-1-' -'-finish_loading/3-fun-0-' -'-finish_loading_ensure/2-lc$^0/1-0-' -pending_on_load -'-abort_if_pending_on_load/2-lc$^0/1-0-' -sticky_directory -'-abort_if_sticky/2-lc$^0/1-0-' -'-do_finish_loading/2-lc$^0/1-0-' -'-do_finish_loading/2-lc$^1/1-2-' -'-do_finish_loading/2-lc$^2/1-1-' -'-handle_on_load/5-fun-0-' -'-finish_on_load/3-lc$^0/1-0-' -'-finish_on_load_report/2-fun-0-' -finish_on_load_report -finish_on_load_2 -finish_on_load_1 -finish_on_load -handle_pending_on_load_1 -handle_pending_on_load -handle_on_load -do_finish_loading -abort_if_sticky -abort_if_pending_on_load -finish_loading_ensure -with_cache -mod_to_bin -try_finish_module_2 -try_finish_module_1 -try_finish_module -get_mods -sticky -'bad request to code' -priv -do_dir -lookup_name -delete_name_dir -delete_name -replace_name -del_ebin_1 -del_ebin -check_pars -replace_path1 -insert_old_shadowed -del_path1 -try_archive_subdirs -archive_subdirs -do_insert_name -insert_name -insert_dir -init_namedb -code_names -create_namedb -maybe_update -do_add -do_check_path -check_path -split_base -discard_after_hyphen -get_name_from_splitted -get_name -get_arg -add_pa_pz -merge_path1 -merge_path -strip_path -exclude_pa_pz -cache_boot_paths -do_cache_path -cache_path -'-zip/3-lc$^0/1-1-' -'-zip/3-lc$^1/1-0-' -add_loader_path -try_ebin_dirs -'-zip3/4-lc$^0/1-2-' -'-zip3/4-lc$^1/1-1-' -'-zip3/4-lc$^2/1-0-' -choose -'-zipwith/4-lc$^0/1-1-' -'-zipwith/4-lc$^1/1-0-' -split2 -'-zipwith3/5-lc$^0/1-2-' -split1 -'-zipwith3/5-lc$^1/1-1-' -'-zipwith3/5-lc$^2/1-0-' -'-filter/2-lc$^0/1-0-' -is_numstr -is_vsn -vsn_to_num -create_bundle -uniq_2 -choose_bundles -uniq_1 -rufmerge2_2 -rufmerge2_1 -ufmerge2_2 -ufmerge2_1 -rufmergel -ufmergel -ufsplit_2 -ufsplit_1_1 -ufsplit_1 -rfmerge2_2 -rfmerge2_1 -fmerge2_2 -unknown_system_msg -fmerge2_1 -change_code -rfmergel -fmergel -fsplit_2_1 -fsplit_2 -fsplit_1_1 -do_sys_cmd -suspend_loop -fsplit_1 -gen_reply -rukeymerge2_2 -rukeymerge2_1 -ukeymerge2_2 -code_call -split_paths -get_user_lib_dirs_1 -get_user_lib_dirs -ukeymerge2_1 -rukeymerge3_21_3 -rukeymerge3_12_3 -rukeymerge3_2 -rukeymerge3_1 -ukeymerge3_21_3 -ukeymerge3_12_3 -ukeymerge3_2 -ukeymerge3_1 -rukeymergel -ukeymergel -ukeysplit_2 -ukeysplit_1_1 -ukeysplit_1 -rkeymerge2_2 -rkeymerge2_1 -keymerge2_2 -keymerge2_1 -rkeymerge3_21_3 -rkeymerge3_12_3 -rkeymerge3_2 -rkeymerge3_1 -keymerge3_21_3 -keymerge3_12_3 -keymerge3_2 -keymerge3_1 -rkeymergel -keymergel -keysplit_2_1 -keysplit_2 -keysplit_1_1 -keysplit_1 -rumerge2_2 -rumerge2_1 -umerge2_2 -umerge2_1 -rumerge3_21_3 -rumerge3_12_3 -rumerge3_2 -rumerge3_1 -umerge3_21_3 -umerge3_12_3 -umerge3_2 -umerge3_1 -rumergel -umergel -usplit_2_1 -desc -usplit_2 -usplit_1_1 -asc -usplit_1 -rmerge2_2 -rmerge2_1 -merge2_2 -merge2_1 -rmerge3_21_3 -rmerge3_12_3 -rmerge3_2 -rmerge3_1 -merge3_21_3 -merge3_12_3 -merge3_2 -merge3_1 -rmergel -mergel -split_2_1 -split_2 -split_1_1 -split_1 -join_prepend -splitwith_1 -search_1 -dropwhile_1 -takewhile_1 -mapfoldr_1 -mapfoldr -mapfoldl_1 -foreach_1 -filtermap_1 -filtermap -partition_1 -foldr_1 -foldl_1 -flatmap_1 -map_1 -any_1 -all_1 -rumerge3 -umerge3 -rumerge_1 -rumerge -umerge_1 -usort_1 -rmerge_1 -merge_1 -enumerate_1 -enumerate -keymap -rukeymerge_1 -rukeymerge -ukeymerge_1 -ukeymerge -ukeysort_1 -ukeysort -rkeymerge_1 -rkeymerge -keymerge_1 -keymerge -keysort_1 -keystore2 -keyreplace3 -keydelete3 -flatlength -thing_to_list -rmerge -rmerge3 -merge3 -sort_1 -zipwith3 -zipwith -unzip3 -zip3 -pad -sublist_2 -sublist -sum -seq_loop -seq -droplast -suffix -prefix -nthtail_1 -nth_1 -module_not_found -'-format_status/2-inlined-0-' -'-do_unlink/2-fun-0-' -parent_terminated -'-terminate_supervised/4-fun-0-' -'-system_code_change/4-fun-0-' -'-system_get_state/1-lc$^0/1-0-' -'-system_replace_state/2-lc$^0/1-0-' -'-report_error/5-fun-0-' -'-report_error/5-fun-1-' -'-report_error/5-fun-2-' -'-the_handlers/1-lc$^0/1-0-' -'-get_modules/1-lc$^0/1-0-' -'-format_status/2-fun-0-' -items -get_log -stop_handlers -the_handlers -'function not exported' -'module could not be loaded' -fix_reason -no_handle_info -last_message -report_error -gen_event_EXIT -report_terminate -server_call_update -server_call -new_handler -do_swap -server_update -server_notify -swapped -split_and_terminate -s_s_h -server_swap_handler -server_delete_handler -server_add_sup_handler -server_add_handler -print_event -system_replace_state -system_get_state -system_code_change -system_terminate -system_continue -terminate_supervised -do_unlink -terminate_server -handle_event -handle_debug -handle_system_msg -decode_msg -fetch_msg -wake_hib -call1 -which_handlers -swap_sup_handler -swap_handler -delete_handler -sync_notify -add_sup_handler -nolink -'no callback module' -'-terminate/2-lc$^0/1-0-' -'-kill_children/1-fun-0-' -exit_after -set_timer -kill_all_procs_1 -kill_all_procs -kill_children -terminate_child_i -get_child_i -prep_stop -loop_it -start_supervisor -start_the_app -start_it_new -start_it_old -bad_keys -relay_to_group_leader -terminate_loop -main_loop -init_loop -legacy_header -'-get_handler_config/0-lc$^0/1-0-' -'-get_module_level/1-lc$^0/1-0-' -'-print_filters/3-lc$^0/1-0-' -'-print_handlers/2-lc$^0/1-0-' -'-print_custom/3-lc$^0/1-0-' -'-print_module_levels/2-lc$^0/1-0-' -'-reconfigure/0-lc$^0/1-0-' -'-internal_init_logger/0-lc$^0/1-0-' -'-internal_init_logger/0-lc$^1/1-1-' -'-add_handlers/2-fun-0-' -'-get_primary_filters/1-lc$^0/1-0-' -'-get_primary_filters/1-fun-1-' -'-get_proxy_opts/1-lc$^0/1-0-' -proc_meta -log_remote -deatomize -tid -do_log_allowed -log_fun_allowed -do_log -get_logger_env -get_default_handler_filters -standard_io -init_default_config -multiple_proxies -get_proxy_opts -multiple_filters -get_primary_filters -get_primary_filter_default -logger_default_metadata -logger_metadata -get_primary_metadata -get_logger_level -tty -get_logger_type -module_level -check_logger_config -setup_handler -bad_proxy_config -init_kernel_handlers -bad_config -reconfigure -print_module_levels -print_custom -print_handlers -print_filters -i_modules -i_proxy -i_handlers -i_primary -module_levels -get_config -unset_process_metadata -get_process_metadata -update_process_metadata -'$logger_metadata$' -set_process_metadata -lt -gt -level_to_int -eq -compare_levels -get_module_level -unset_application_level -set_application_level -get_proxy_config -get_handler_ids -filter_config -get_handler_config -get_primary_config -update_proxy_config -update_handler_config -update_primary_config -set_proxy_config -set_handler_config -set_primary_config -remove_handler_filter -remove_primary_filter -add_handler_filter -add_primary_filter -printable_unicode_list -string_p1 -string_p -format_term_list -format_otp_report -distribution_not_changed -kernel_safe_sup -global_groups -is_gg_changed -global_groups_added -global_groups_removed -global_groups_changed -do_global_groups_change -is_dist_changed -distribution_changed -do_distribution_change -start_compile_server -start_pg -start_disk_log -boot_server_slaves -get_boot_args -start_boot_server -start_dist_ac -start_distribution -supervision_child_spec -add_handlers -internal_init_logger -'-build_typed_attribute/2-fun-0-' -'-build_typed_attribute/2-fun-1-' -'-attribute_farity_list/1-lc$^0/1-0-' -'-attribute_farity_map/1-lc$^0/1-0-' -'-check_clauses/3-lc$^0/1-0-' -'-first_anno/1-fun-0-' -'-last_anno/1-fun-0-' -'-enc_func/1-fun-2-' -'-enc_func/1-fun-1-' -'-enc_func/1-fun-0-' -'-abstract/3-lc$^0/1-0-' -'-abstract_map_fields/3-lc$^0/1-0-' -'-map_anno/2-fun-0-' -'-fold_anno/3-fun-0-' -'-new_anno/1-fun-0-' -'-anno_to_term/1-fun-0-' -from_term -'-anno_from_term/1-fun-0-' -yeccgoto_typed_record_fields -yeccgoto_typed_exprs -yeccgoto_typed_expr -yeccgoto_typed_attr_val -yeccgoto_type_spec -yeccgoto_type_sigs -yeccgoto_type_sig -yeccgoto_type_guards -yeccgoto_type_guard -yeccgoto_type -yeccgoto_tuple -yeccgoto_try_opt_stacktrace -yeccgoto_try_expr -yeccgoto_try_clauses -yeccgoto_try_clause -yeccgoto_try_catch -yeccgoto_top_types -yeccgoto_top_type -yeccgoto_tail -yeccgoto_strings -yeccgoto_ssa_check_when_clauses -yeccgoto_ssa_check_when_clause -yeccgoto_ssa_check_pats -yeccgoto_ssa_check_pat -yeccgoto_ssa_check_map_key_tuple_elements -yeccgoto_ssa_check_map_key_list -yeccgoto_ssa_check_map_key_elements -yeccgoto_ssa_check_map_key_element -yeccgoto_ssa_check_map_key -yeccgoto_ssa_check_list_lit_ls -yeccgoto_ssa_check_list_lit -yeccgoto_ssa_check_fun_ref -yeccgoto_ssa_check_exprs -yeccgoto_ssa_check_expr -yeccgoto_ssa_check_clause_args_ls -yeccgoto_ssa_check_clause_args -yeccgoto_ssa_check_binary_lit_rest -yeccgoto_ssa_check_binary_lit_bytes_ls -yeccgoto_ssa_check_binary_lit -yeccgoto_ssa_check_args -yeccgoto_ssa_check_anno_clauses -yeccgoto_ssa_check_anno_clause -yeccgoto_ssa_check_anno -yeccgoto_spec_fun -yeccgoto_record_tuple -yeccgoto_record_pat_expr -yeccgoto_record_fields -yeccgoto_record_field -yeccgoto_record_expr -yeccgoto_receive_expr -yeccgoto_prefix_op -yeccgoto_pat_exprs -yeccgoto_pat_expr_max -yeccgoto_pat_expr -yeccgoto_pat_argument_list -yeccgoto_opt_bit_type_list -yeccgoto_opt_bit_size_expr -yeccgoto_mult_op -yeccgoto_maybe_match_exprs -yeccgoto_maybe_match -yeccgoto_maybe_expr -yeccgoto_map_tuple -yeccgoto_map_pat_expr -yeccgoto_map_pair_types -yeccgoto_map_pair_type -yeccgoto_map_key -yeccgoto_map_fields -yeccgoto_map_field_exact -yeccgoto_map_field_assoc -yeccgoto_map_field -yeccgoto_map_expr -yeccgoto_map_comprehension -yeccgoto_list_op -yeccgoto_list_comprehension -yeccgoto_list -yeccgoto_lc_exprs -yeccgoto_lc_expr -yeccgoto_integer_or_var -yeccgoto_if_expr -yeccgoto_if_clauses -yeccgoto_if_clause -yeccgoto_guard -yeccgoto_function_clauses -yeccgoto_function_clause -yeccgoto_function_call -yeccgoto_function -yeccgoto_fun_type -yeccgoto_fun_expr -yeccgoto_fun_clauses -yeccgoto_fun_clause -yeccgoto_form -yeccgoto_field_types -yeccgoto_field_type -yeccgoto_exprs -yeccgoto_expr_remote -yeccgoto_expr_max -yeccgoto_expr -yeccgoto_cr_clauses -yeccgoto_cr_clause -yeccgoto_comp_op -yeccgoto_clause_guard -yeccgoto_clause_body_exprs -yeccgoto_clause_body -yeccgoto_clause_args -yeccgoto_case_expr -yeccgoto_bit_type_list -yeccgoto_bit_type -yeccgoto_bit_size_expr -yeccgoto_bit_expr -yeccgoto_binary_type -yeccgoto_binary_comprehension -yeccgoto_binary -yeccgoto_bin_unit_type -yeccgoto_bin_elements -yeccgoto_bin_element -yeccgoto_bin_base_type -yeccgoto_attribute -yeccgoto_attr_val -yeccgoto_atomic -yeccgoto_atom_or_var -yeccgoto_argument_list -yeccgoto_add_op -yeccpars2_680 -yeccpars2_679 -yeccpars2_678 -yeccpars2_677 -yeccpars2_676 -yeccpars2_674 -yeccpars2_673 -yeccpars2_672 -yeccpars2_671 -yeccpars2_670 -yeccpars2_668 -yeccpars2_667 -yeccpars2_664 -yeccpars2_663 -yeccpars2_662 -yeccpars2_660 -yeccpars2_659 -yeccpars2_658 -yeccpars2_656 -yeccpars2_655 -yeccpars2_654 -yeccpars2_652 -yeccpars2_651 -yeccpars2_650 -yeccpars2_649 -yeccpars2_648 -yeccpars2_647 -yeccpars2_646 -yeccpars2_644 -yeccpars2_642 -yeccpars2_641 -yeccpars2_639 -yeccpars2_637 -yeccpars2_636 -yeccpars2_635 -yeccpars2_634 -yeccpars2_633 -yeccpars2_632 -yeccpars2_630 -yeccpars2_628 -yeccpars2_627 -yeccpars2_625 -yeccpars2_624 -yeccpars2_623 -yeccpars2_622 -yeccpars2_621 -yeccpars2_619 -yeccpars2_618 -yeccpars2_617 -yeccpars2_616 -yeccpars2_615 -yeccpars2_614 -yeccpars2_613 -yeccpars2_610 -yeccpars2_609 -yeccpars2_607 -yeccpars2_606 -yeccpars2_605 -yeccpars2_604 -yeccpars2_603 -yeccpars2_602 -yeccpars2_601 -yeccpars2_600 -yeccpars2_599 -yeccpars2_597 -yeccpars2_595 -yeccpars2_594 -yeccpars2_593 -yeccpars2_592 -yeccpars2_591 -yeccpars2_590 -yeccpars2_589 -yeccpars2_588 -yeccpars2_587 -yeccpars2_586 -yeccpars2_585 -yeccpars2_584 -yeccpars2_580 -yeccpars2_579 -yeccpars2_577 -yeccpars2_576 -yeccpars2_575 -yeccpars2_574 -yeccpars2_573 -yeccpars2_572 -yeccpars2_571 -nonempty_list -yeccpars2_570 -yeccpars2_569 -yeccpars2_568 -yeccpars2_567 -yeccpars2_566 -yeccpars2_565 -yeccpars2_564 -yeccpars2_563 -yeccpars2_562 -yeccpars2_561 -yeccpars2_560 -yeccpars2_559 -yeccpars2_558 -yeccpars2_557 -yeccpars2_556 -yeccpars2_555 -yeccpars2_554 -yeccpars2_553 -yeccpars2_552 -yeccpars2_551 -yeccpars2_550 -yeccpars2_548 -yeccpars2_547 -yeccpars2_546 -yeccpars2_545 -yeccpars2_544 -yeccpars2_543 -yeccpars2_542 -yeccpars2_541 -yeccpars2_540 -yeccpars2_539 -yeccpars2_538 -yeccpars2_537 -yeccpars2_536 -yeccpars2_535 -yeccpars2_534 -yeccpars2_533 -yeccpars2_532 -yeccpars2_531 -yeccpars2_530 -yeccpars2_529 -yeccpars2_cont_528 -yeccpars2_528 -yeccpars2_527 -yeccpars2_526 -yeccpars2_525 -yeccpars2_523 -yeccpars2_522 -yeccpars2_521 -yeccpars2_520 -yeccpars2_519 -yeccpars2_518 -yeccpars2_516 -yeccpars2_515 -yeccpars2_514 -yeccpars2_512 -yeccpars2_511 -yeccpars2_510 -yeccpars2_508 -yeccpars2_507 -yeccpars2_506 -yeccpars2_505 -yeccpars2_504 -yeccpars2_503 -yeccpars2_502 -yeccpars2_500 -yeccpars2_499 -yeccpars2_498 -yeccpars2_497 -yeccpars2_496 -yeccpars2_495 -yeccpars2_494 -yeccpars2_493 -yeccpars2_492 -yeccpars2_491 -yeccpars2_490 -yeccpars2_489 -yeccpars2_488 -yeccpars2_487 -yeccpars2_486 -yeccpars2_485 -yeccpars2_484 -yeccpars2_483 -yeccpars2_481 -yeccpars2_480 -yeccpars2_479 -yeccpars2_477 -yeccpars2_476 -yeccpars2_474 -yeccpars2_473 -yeccpars2_472 -yeccpars2_471 -yeccpars2_470 -yeccpars2_468 -yeccpars2_466 -yeccpars2_465 -yeccpars2_464 -yeccpars2_463 -yeccpars2_462 -yeccpars2_461 -yeccpars2_460 -yeccpars2_459 -yeccpars2_458 -yeccpars2_457 -yeccpars2_456 -yeccpars2_454 -yeccpars2_453 -yeccpars2_452 -yeccpars2_451 -yeccpars2_450 -yeccpars2_449 -yeccpars2_448 -yeccpars2_447 -yeccpars2_446 -yeccpars2_445 -yeccpars2_444 -yeccpars2_443 -yeccpars2_442 -yeccpars2_441 -yeccpars2_439 -yeccpars2_437 -yeccpars2_436 -yeccpars2_435 -yeccpars2_434 -yeccpars2_433 -yeccpars2_432 -yeccpars2_431 -yeccpars2_430 -yeccpars2_429 -yeccpars2_427 -yeccpars2_426 -yeccpars2_425 -yeccpars2_424 -yeccpars2_423 -yeccpars2_422 -yeccpars2_420 -yeccpars2_419 -yeccpars2_417 -yeccpars2_416 -yeccpars2_415 -yeccpars2_413 -yeccpars2_412 -yeccpars2_411 -yeccpars2_410 -yeccpars2_409 -yeccpars2_408 -yeccpars2_407 -yeccpars2_406 -yeccpars2_405 -yeccpars2_404 -yeccpars2_403 -yeccpars2_402 -yeccpars2_400 -yeccpars2_398 -yeccpars2_397 -yeccpars2_395 -yeccpars2_393 -'<=' -yeccpars2_391 -yeccpars2_390 -yeccpars2_389 -yeccpars2_388 -yeccpars2_387 -yeccpars2_386 -yeccpars2_383 -yeccpars2_381 -yeccpars2_380 -yeccpars2_379 -yeccpars2_378 -yeccpars2_377 -yeccpars2_376 -yeccpars2_375 -yeccpars2_373 -yeccpars2_372 -yeccpars2_371 -yeccpars2_369 -yeccpars2_367 -yeccpars2_366 -yeccpars2_365 -yeccpars2_364 -yeccpars2_363 -yeccpars2_362 -yeccpars2_361 -yeccpars2_360 -yeccpars2_359 -yeccpars2_358 -yeccpars2_357 -yeccpars2_356 -yeccpars2_355 -yeccpars2_353 -yeccpars2_352 -yeccpars2_351 -yeccpars2_350 -yeccpars2_349 -yeccpars2_348 -yeccpars2_347 -yeccpars2_346 -yeccpars2_345 -yeccpars2_343 -yeccpars2_341 -yeccpars2_340 -yeccpars2_339 -yeccpars2_338 -yeccpars2_337 -yeccpars2_335 -yeccpars2_333 -yeccpars2_332 -yeccpars2_329 -yeccpars2_328 -yeccpars2_327 -yeccpars2_326 -yeccpars2_325 -yeccpars2_323 -yeccpars2_321 -yeccpars2_320 -yeccpars2_cont_319 -yeccpars2_319 -yeccpars2_317 -yeccpars2_316 -yeccpars2_315 -yeccpars2_314 -yeccpars2_313 -yeccpars2_312 -yeccpars2_310 -yeccpars2_308 -yeccpars2_306 -yeccpars2_304 -yeccpars2_303 -yeccpars2_301 -yeccpars2_299 -yeccpars2_298 -yeccpars2_297 -yeccpars2_296 -yeccpars2_295 -yeccpars2_294 -yeccpars2_292 -yeccpars2_287 -yeccpars2_286 -yeccpars2_284 -yeccpars2_283 -yeccpars2_282 -yeccpars2_281 -yeccpars2_280 -yeccpars2_279 -yeccpars2_278 -'||' -end -'?=' -'<-' -':=' -yeccpars2_277 -yeccpars2_276 -yeccpars2_275 -pass -yeccpars2_274 -yeccpars2_273 -yeccpars2_271 -yeccpars2_270 -yeccpars2_269 -yeccpars2_268 -yeccpars2_267 -yeccpars2_266 -yeccpars2_265 -yeccpars2_264 -yeccpars2_263 -yeccpars2_262 -yeccpars2_261 -yeccpars2_260 -yeccpars2_259 -yeccpars2_257 -yeccpars2_256 -yeccpars2_255 -yeccpars2_253 -yeccpars2_251 -yeccpars2_250 -yeccpars2_249 -yeccpars2_248 -yeccpars2_246 -yeccpars2_245 -yeccpars2_244 -yeccpars2_243 -yeccpars2_242 -yeccpars2_241 -yeccpars2_240 -yeccpars2_239 -yeccpars2_238 -yeccpars2_237 -yeccpars2_235 -yeccpars2_233 -yeccpars2_232 -yeccpars2_231 -yeccpars2_230 -yeccpars2_229 -yeccpars2_228 -yeccpars2_227 -yeccpars2_224 -yeccpars2_223 -yeccpars2_222 -yeccpars2_221 -yeccpars2_220 -yeccpars2_219 -yeccpars2_218 -yeccpars2_217 -yeccpars2_216 -yeccpars2_215 -yeccpars2_214 -yeccpars2_213 -yeccpars2_212 -yeccpars2_211 -yeccpars2_210 -yeccpars2_209 -yeccpars2_208 -yeccpars2_207 -yeccpars2_206 -yeccpars2_205 -yeccpars2_cont_204 -yeccpars2_204 -yeccpars2_203 -yeccpars2_202 -yeccpars2_201 -yeccpars2_200 -yeccpars2_199 -yeccpars2_198 -yeccpars2_197 -yeccpars2_196 -yeccpars2_195 -yeccpars2_194 -yeccpars2_193 -yeccpars2_192 -yeccpars2_191 -yeccpars2_190 -yeccpars2_189 -yeccpars2_188 -yeccpars2_187 -yeccpars2_186 -yeccpars2_185 -yeccpars2_184 -yeccpars2_183 -float_epsilon -yeccpars2_182 -yeccpars2_181 -yeccpars2_180 -local_fun -yeccpars2_179 -external_fun -yeccpars2_178 -yeccpars2_177 -yeccpars2_176 -yeccpars2_175 -yeccpars2_174 -yeccpars2_173 -yeccpars2_172 -yeccpars2_171 -yeccpars2_170 -yeccpars2_169 -yeccpars2_168 -yeccpars2_167 -yeccpars2_166 -yeccpars2_165 -yeccpars2_164 -yeccpars2_163 -yeccpars2_162 -yeccpars2_161 -yeccpars2_160 -yeccpars2_159 -yeccpars2_158 -yeccpars2_157 -yeccpars2_156 -yeccpars2_155 -yeccpars2_154 -yeccpars2_153 -yeccpars2_152 -yeccpars2_151 -yeccpars2_150 -yeccpars2_149 -yeccpars2_cont_148 -yeccpars2_148 -yeccpars2_147 -yeccpars2_146 -yeccpars2_145 -yeccpars2_144 -yeccpars2_143 -yeccpars2_142 -yeccpars2_141 -yeccpars2_140 -yeccpars2_139 -yeccpars2_138 -yeccpars2_137 -yeccpars2_136 -'...' -yeccpars2_135 -yeccpars2_134 -yeccpars2_133 -yeccpars2_132 -yeccpars2_131 -yeccpars2_130 -'%ssa%' -yeccpars2_128 -yeccpars2_127 -yeccpars2_126 -yeccpars2_125 -yeccpars2_124 -yeccpars2_123 -yeccpars2_122 -yeccpars2_121 -yeccpars2_119 -yeccpars2_118 -yeccpars2_117 -yeccpars2_115 -yeccpars2_113 -yeccpars2_112 -yeccpars2_111 -yeccpars2_110 -yeccpars2_109 -yeccpars2_108 -yeccpars2_107 -yeccpars2_105 -yeccpars2_104 -yeccpars2_103 -yeccpars2_102 -yeccpars2_101 -yeccpars2_100 -yeccpars2_99 -yeccpars2_97 -yeccpars2_96 -yeccpars2_95 -yeccpars2_94 -yeccpars2_93 -yeccpars2_92 -yeccpars2_91 -yeccpars2_90 -yeccpars2_87 -yeccpars2_83 -yeccpars2_82 -yeccpars2_80 -yeccpars2_79 -yeccpars2_78 -yeccpars2_76 -yeccpars2_74 -of -yeccpars2_73 -yeccpars2_72 -yeccpars2_71 -after -yeccpars2_69 -yeccpars2_66 -yeccpars2_59 -yeccpars2_58 -yeccpars2_57 -yeccpars2_56 -yeccpars2_55 -yeccpars2_54 -yeccpars2_53 -yeccpars2_52 -yeccpars2_51 -yeccpars2_50 -yeccpars2_49 -yeccpars2_48 -yeccpars2_47 -yeccpars2_46 -yeccpars2_45 -yeccpars2_44 -yeccpars2_43 -yeccpars2_42 -yeccpars2_41 -yeccpars2_40 -yeccpars2_39 -yeccpars2_38 -yeccpars2_37 -yeccpars2_36 -yeccpars2_35 -yeccpars2_34 -yeccpars2_33 -yeccpars2_32 -yeccpars2_31 -yeccpars2_30 -yeccpars2_29 -yeccpars2_28 -begin -yeccpars2_cont_27 -'>>' -yeccpars2_27 -yeccpars2_26 -yeccpars2_25 -yeccpars2_24 -yeccpars2_22 -yeccpars2_21 -yeccpars2_20 -yeccpars2_19 -yeccpars2_18 -yeccpars2_17 -yeccpars2_16 -yeccpars2_15 -yeccpars2_14 -yeccpars2_13 -yeccpars2_12 -yeccpars2_11 -yeccpars2_cont_10 -'<<' -yeccpars2_10 -when -yeccpars2_9 -yeccpars2_8 -yeccpars2_7 -yeccpars2_6 -yeccpars2_5 -yeccpars2_4 -yeccpars2_3 -';' -yeccpars2_2 -yeccpars2_1 -yeccpars2_0 -missing_state_in_action_table -yeccpars2 -write_char -write_string -reserved_symbol -yecctoken2string1 -yecctoken2string -yecctoken_location -yecctoken_to_string -yeccerror -yecctoken_end_location -yecc_end -'$end' -no_func -yeccpars1 -state_is_unknown -missing_in_goto_table -yecc_error_type -yecc_bug -yeccpars0 -return_error -deep_char_list -no_location -parse_and_scan -parse -check_expr -add_anno_check -build_ssa_check_label -modify_anno1 -anno_from_term -new_anno -mapfold_anno -fold_anno -type_preop_prec -'::' -'..' -type_inop_prec -max_prec -func_prec -preop_prec -'=' -inop_prec -tokens_tuple -'|' -',' -tokens_tail -']' -'}' -'{' -'[' -'=>' -abstract_byte -abstract_map_fields -abstract_tuple_list -not_string -abstract_list -enc_func -abstract -loc_lte -find_anno -set_location -end_location -last_anno -first_location -ret_abstr_err -ret_err -build_try -check_clauses -build_fun -build_function -typed -record_fields -record_tuple -farity_list -error_bad_decl -attribute_farity_map -attribute_farity_list -attribute_farity -var_list -build_attribute -abstract2 -type_tag -build_bin_type -build_gen_type -lift_unions -build_constraint -is_subtype -build_compat_constraint -find_arity_from_specs -build_type_spec -typed_record -build_typed_attribute -'(' -')' -'->' -parse_form -std_info -open_file -'$3' -'-add_env/2-inlined-0-' -'-start/1-fun-0-' -'-get_all_env/1-fun-0-' -keystore -'-handle_call/3-lc$^3/1-0-' -'-terminate/2-fun-0-' -'-load/2-fun-0-' -'-unload/2-fun-0-' -'-check_start_cond/4-fun-0-' -'-start_appl/3-fun-0-' -'-prim_parse/2-fun-0-' -'-do_change_apps/3-fun-0-' -'-do_change_apps/3-fun-1-' -'-get_cmd_env/1-fun-0-' -'-add_env/2-fun-0-' -'-do_config_diff/3-fun-0-' -'-conf_param_to_conf/1-fun-0-' -'-config_param_to_list/1-lc$^0/1-0-' -'-check_conf/0-fun-1-' -'-read_fd_until_end_and_close/3-Read/4-0-' -'-read_fd_until_end_and_close/3-fun-1-' -'-read_fd_until_end_and_close/3-GetResult/0-1-' -'-reply_to_requester/3-fun-0-' -default_encoding -read_encoding_from_binary -file_binary_to_list -test_make_apps -test_do_change_appl -test_change_apps -update_permissions -reply_to_requester -info_exited -started_at -info_started -config_error -strip_comment -only_ws -reader_ref -read_fd_until_end_and_close -parse_file -scan_file -read_from_file_descriptor -load_file_descriptor -check_conf_sys -check_conf -config_param_to_list -invalid_file_desc -characters_to_nfc_list -configfd -conf_param_to_conf -do_config_diff -application_not_found -module_not_defined -do_config_change -do_prep_config_change -check_user -del_env -add_env -get_env_key -merge_app_env -change_app_env -merge_env -get_env_i -handle_make_term_error -make_term -conv -get_cmd_env -get_opt -do_change_appl -is_loaded_app -do_change_apps -invalid_name -badstartspec -invalid_options -make_appl_i -parse_term -prim_parse -prim_consult -make_appl -bad_application -get_restart_type -nd -keyreplaceadd -ksd -keysearchdelete -stop_appl -start_appl -init_starter -spawn_starter -check_start_cond -do_load_application -maybe_load_application -'-separate_error_info/1-fun-0-' -'-format_link_reports/4-lc$^0/1-0-' -'-format_exception/5-fun-0-' -'-pp_fun/2-fun-0-' -nl -modifier -chars_limit_opt -part_separator -report_separator -format_tag -pp_fun -write_atom -write_atom_as_latin1 -format_exception -format_rep -format_report -format_link_report -format_link_reports -splitwith -separate_error_info -format_own_report -do_format -badrpc -proc_info -get_my_name -translate_process_info -get_process_info -no_trap -adjacents -visit -max_neighbours -neighbours -get_initial_call -make_neighbour_report -neighbour -make_neighbour_reports1 -linked_info -get_dictionary -clean_dict -cleaned_dict -get_cleaned_dictionary -receive_messages -get_process_messages -get_messages -ancestors -get_ancestors -my_info_1 -my_info -crash_report -trans_init -raw_init_call -raw_initial_call -translate_initial_call -make_dummy_args -await_DOWN -kill_flush_EXIT -flush_EXIT -sync_start_monitor -nack -sync_start -exit_reason -exit_p -init_p_do_apply -wake_up -spawn_mon -init_p -get_loaded -del_cntrl -ac_application_run -notify_cntrl_started -cntrl -shutdown_func -application_terminated -keyreplace -ac_application_not_run -stop_it -not_running -failover -ac_start_application_reply -ac_load_application_reply -ac_change_application_req -application_start_failure -handle_application_started -application_started -loading -start_p_false -zf -ac_load_application_req -not_started -ac_application_stopped -ac_application_unloaded -permissions -ac_start_application_req -persistent -check_distributed -distributed -check_para_value -check_para -check_conf_data -'load error' -enter_loop -'$initial_call' -appl_data -appl -start_phases -'$2' -'$1' -config_change -prep_config_change -change_application_data -control_application -ac_tab -bad_environment_value -ack -':' -badexpr -binary_comprehension -bitlevel_binaries -'-merge_bindings/4-inlined-0-' -'-match_fun/2-inlined-0-' -'-expr/6-RF/20-22-' -'-expr/6-RF/19-21-' -'-expr/6-RF/18-20-' -'-expr/6-RF/17-19-' -'-expr/6-RF/16-18-' -'-expr/6-RF/15-17-' -'-expr/6-RF/14-16-' -'-expr/6-RF/13-15-' -'-expr/6-RF/12-14-' -'-expr/6-RF/11-13-' -'-expr/6-RF/10-12-' -'-expr/6-RF/9-11-' -'-expr/6-RF/8-10-' -'-expr/6-RF/7-9-' -'-expr/6-RF/6-8-' -'-expr/6-RF/5-7-' -'-expr/6-RF/4-6-' -'-expr/6-RF/3-5-' -'-expr/6-RF/2-4-' -'-expr/6-RF/1-3-' -'-expr/6-RF/0-2-' -'-expr/6-fun-0-' -'-expr/6-fun-44-' -'-expr/6-fun-45-' -'-expr/6-fun-22-' -'-expr/6-fun-21-' -'-expr/6-fun-20-' -'-expr/6-fun-19-' -'-expr/6-fun-18-' -'-expr/6-fun-17-' -'-expr/6-fun-16-' -'-expr/6-fun-15-' -'-expr/6-fun-14-' -'-expr/6-fun-13-' -'-expr/6-fun-12-' -'-expr/6-fun-11-' -'-expr/6-fun-10-' -'-expr/6-fun-9-' -'-expr/6-fun-8-' -'-expr/6-fun-7-' -'-expr/6-fun-6-' -'-expr/6-fun-5-' -'-expr/6-fun-4-' -'-expr/6-fun-3-' -'-expr/6-fun-2-' -'-expr/6-fun-1-' -is_anno -'-find_maxline/1-fun-0-' -'-fun_used_bindings/4-fun-0-' -'-local_func/8-fun-0-' -'-eval_lc1/7-fun-1-' -'-eval_lc1/7-fun-0-' -'-eval_bc1/7-fun-1-' -'-eval_bc1/7-fun-0-' -'-eval_mc1/7-fun-1-' -'-eval_mc1/7-fun-0-' -'-eval_generator/7-fun-0-' -'-eval_b_generate/8-fun-0-' -'-eval_b_generate/8-fun-1-' -'-receive_clauses/8-fun-0-' -'-match1/5-fun-0-' -'-match1/5-fun-1-' -'-match_fun/2-fun-0-' -'-add_bindings/2-fun-0-' -'-merge_bindings/4-fun-0-' -'-merge_bindings/4-fun-1-' -'-to_terms/1-lc$^0/1-0-' -'-token_fixup/1-lc$^0/1-0-' -'-reset_token_anno/1-lc$^0/1-0-' -'-reset_expr_anno/1-lc$^0/1-0-' -'-reset_anno/0-fun-0-' -'-normalise/1-fun-1-' -'-normalise/1-fun-0-' -'-ev_expr/1-lc$^0/1-0-' -anno -all_white -eval_str -ev_expr -eval_expr -is_constant_expr -normalise_list -normalise -extended_parse_term -validate_tag -fixup_mfa -fixup_tag -fixup_text -fixup_ast -reset_anno -reset_expr_anno -reset_token_anno -string_fixup -expr_fixup -'Ref' -'Port' -'Fun' -'.' -'#' -unscannable -set_text -token_fixup -tokens_fixup -extended_parse_exprs -anno_to_term -to_term -to_terms -filter_bindings -merge_bindings -add_bindings -del_binding -add_binding -binding -bindings -match_list -match_map -match_tuple -match_fun -match_bits -match1 -string_to_conses -reference -number -expr_guard_test -guard_expr -guard0 -guard1 -match_clause -receive_clauses -case_clauses -illegal_stacktrace_variable -check_stacktrace_vars -if_clauses -eval_op -eval_named_fun -'-inside-an-interpreted-fun-' -eval_fun -ret_expr -map_assoc -map_exact -eval_map_fields -is_generator -eval_filter -eval_m_generate -bin_gen -eval_b_generate -eval_generate -eval_generator -eval_mc1 -eval_mc -eval_bc1 -eval_bc -eval_lc1 -eval_lc -no_env -do_apply -local_func2 -local_func -unhide_calls -f -m -hide_calls -fun_used_bindings -'$erl_eval_max_line' -find_maxline -apply_error -expr_grp -unbound -not_ok -transform_from_evaluator -k -v -else_clause -argument_limit -undef_record -named_fun_data -check_command -failure -success -maybe_match_exprs -empty_fun_used_vars -process_exited -critical -alert -emergency -got_unexpected_message -no_domain -super -remote_gl -'-handle_call/3-inlined-0-' -'-set_module_level/2-fun-0-' -'-unset_module_level/1-fun-0-' -'-handle_call/3-fun-7-' -'-handle_call/3-fun-6-' -removing_handler -'-handle_call/3-fun-3-' -'-handle_call/3-fun-5-' -'-handle_call/3-fun-4-' -handler_not_added -invalid_handler -function_not_exported -'-call_h_async/4-fun-0-' -internal_log_event -add_default_metadata -diffs -logger_process_exited -call_h_reply -call_h_async -changing_config -call_h -illegal_config_change -diff_maps -check_config_change -invalid_formatter -callback_crashed -check_formatter -invalid_filter_default -check_filter_default -invalid_filters -invalid_filter -check_filters -invalid_level -check_level -check_mod -invalid_id -check_id -invalid_primary_config -metadata -check_config -get_type -sanity_check_1 -invalid_config -sanity_check -default_config -keytake -do_remove_filter -do_add_filter -attempting_syncronous_call_to_self -async_req_reply -formatter -already_exist -exist -set_opts -adding_handler -simple -create -proxy -get_default_config -'$logger_cb_process' -invalid_formatter_config -update_formatter_config -update_config -change_config -set_config -unset_module_level -not_a_list_of_modules -set_module_level -add_filter -add_handler -'-do_start/4-fun-0-' -'-maybe_add_read_ahead/2-fun-0-' -cbv -cafu -count_and_find -read_size -cast_binary -cat -do_setopts -check_valid_opts -unfold -substitute_negations -err_func -continuation_location -tokens -invalid_unicode_error -get_chars_apply -get_chars_notempty -get_chars_empty -convert_enc -collect_line -io_request_loop -requests -get_until -std_reply -io_reply -server_loop -maybe_add_read_ahead -valid_enc -expand_encoding -parse_options -invalid_unicode -info_report -bad_combination -shutdown_error -start_error -reached_max_restart_intensity -title -supervisor_report -report_cb -sasl -child_terminated -already_present -n_objects -read_only -'-terminate_dynamic_children/1-inlined-0-' -'-find_child_by_pid/2-inlined-0-' -failed_to_start_child -'-start_children/2-fun-0-' -'-handle_call/3-fun-2-' -'-handle_call/3-fun-0-' -'-handle_call/3-fun-1-' -'-do_auto_shutdown/2-fun-0-' -'-terminate_children/2-fun-0-' -'-terminate_dynamic_children/1-fun-0-' -'-terminate_dynamic_children/1-fun-1-' -'-wait_dynamic_children/5-fun-0-' -'-find_child_by_pid/2-fun-0-' -the -'-set_pid/3-fun-0-' -invalid_module -a -'-validMods/1-fun-0-' -'-add_restart/3-fun-0-' -'-dyn_fold/3-fun-0-' -parse_transform -transformed -be -should -dyn_init -real -dyn_args -dyn_exists -called -dyn_map -transform_error -dyn_fold -mapsets -dyn_store -dyn_erase -dyn_size -single -p -format_child_log_single -format_log_multi -format_log_single -limit_child_report -limit_term -errorContext -limit_report -single_line -encoding -depth -unlimited -chars_limit -get_format_depth -format_log -report_progress -nb_children -mfargs -restart_type -child_type -extract_child -takewhile -add_restart -child_to_spec -invalid_modules -validMods -invalid_shutdown -validShutdown -invalid_significant -validSignificant -invalid_restart_type -validRestartType -invalid_mfa -validFunc -validId -invalid_child_type -validChildType -missing_id -missing_start -'-table/2-inlined-0-' -do_check_childspec -invalid_child_spec -'-file2tab/2-inlined-1-' -'-file2tab/2-inlined-0-' -significant -check_childspec -log_terms -'-tab2file/3-fun-1-' -duplicate_child_name -check_startspec -blog_terms -supname -invalid_auto_shutdown -'-tab2file/3-fun-0-' -'-file2tab/2-fun-1-' -validAutoShutdown -invalid_period -'-file2tab/2-fun-0-' -'-table/2-fun-2-' -validPeriod -invalid_intensity -'-table/2-fun-1-' -'-table/2-fun-0-' -validIntensity -'-table/2-fun-3-' -invalid_strategy -validStrategy -'-table/2-fun-4-' -'-table/2-fun-5-' -do_check_flags -check_flags -'-table/2-fun-6-' -'-table/2-fun-7-' -auto_shutdown -intensity -'-table/2-fun-8-' -'-table/2-lc$^10/1-2-' -period -'-table/2-lc$^9/1-1-' -strategy -'-table/2-fun-11-' -set_flags -init_state -'-qlc_next/2-fun-0-' -'-qlc_prev/2-fun-0-' -children_any1 -children_any -'-qlc_select/1-fun-0-' -'-hform/6-lc$^0/1-0-' -children_fold -children_to_list -re_match -print_re_num -children_map -re_display -remove_child -update_with -re_search -slice -set_pid -get_dynamic_child -do_display_item -find_child_by_pid -do_display_items -do_display -find_dynamic_child -print_number -find_child_and_args -find_child -split_ids -split_child -trailing -del_child -nonl -do_save_child -save_child -line_string -wait_dynamic_children -choice -terminate_dynamic_children -'(c)ontinue (q)uit (p)Digits (k)ill /Regexp -->' -'-basenameb/2-lc$^0/1-0-' -'-unix_splitb/1-lc$^0/1-0-' -'EOT (q)uit (p)Digits (k)ill /Regexp -->' -unlink_flush -'-win32_splitb/1-lc$^3/1-4-' -eot -display_items -'-win32_splitb/1-lc$^1/1-3-' -brutal_kill -'-win32_splitb/1-lc$^0/1-2-' -'-win32_splitb/1-lc$^2/1-1-' -pad_right -do_terminate -terminate_children -'-win32_splitb/1-lc$^4/1-0-' -hform -'-basedir/3-lc$^0/1-0-' -cast -restart_multiple_children -is_reg -try_again -rest_for_one -prinfo2 -prinfo -one_for_one -one_for_all -validate_bin -tabs -mem -i -fail -do_auto_shutdown -listify -validate_char -validate_list -default_option -keydelete -validate -traverse -basedir_os_type -qlc_select -qlc_prev -basedir_join_home -handle_start_child -qlc_next -noappdata -basedir_windows_appdata -basedir_windows -num_of_objects -update_chsp -basedir_darwin -lexemes -is_unique_objects -update_childspec1 -is_sorted_key -table_info -update_childspec -pre_fun -bad_flags -user_data -user_config -invalid_type -post_fun -info_fun -basedir_linux -basedir_from_os -format_fun -key_equality -lookup_fun -author -basedir_name_from_opts -try_again_restart -basedir_os_from_opts -last_prev -first_next -site_data -site_config -count_child -specs -windows -tabfile_info -supervisors -linux -user_log -cannot_create_table -create_tab -user_cache -basedir -load_table -workers -worker -filename_string_to_binary -scan_for_endinfo -md5_and_convert -do_flatten -restarting -major_version -filetab_options -major_os_type -separators -do_start_child_i -child -replace -do_start_child -win32_nativename -nativename -start_children -win32_split -get_header_data -chunk -wrap_chunk -unix_split -bad_start_spec -bchunk -wrap_bchunk -init_dynamic -win32_splitb -start_spec -fix_driveletter -verify_header_mandatory -unix_splitb -rootname2 -maybe_remove_dirsep -join1b -init_children -supervisor_data -simple_one_for_one -count_mandatory -join1 -verify -parse_f2t_opts -bad_size -invalid_object_count -checksum_error -dirjoin1 -dirjoin -fstrip -do_read_and_verify -get_callback_module -check_childspecs2 -read_error -unsupported_file_version -never -any_significant -all_significant -repaired -file2tab -check_childspecs1 -skip_prefix -object_count -md5sum -basename1 -parse_ft_info_options -check_childspecs -count_children -malformed_option -unknown_option -which_children -get_childspec -basenameb -parse_ft_options -terminate_child -delete_child -restart_child -win_basenameb -absname_join -start_child -md5terms -ft_options_to_list -dump_file -eaccess -extended_info -badtab -tab2file -tab2list -match_delete -init_table_sub -end_of_input -init_table_continue -init_table -test_ms -from_ets -to_dets -to_ets -from_dets -do_foldr -transform_from_shell -fun_data -fun2ms -repair_continuation -match_spec_run -select_delete -delete_all_objects -receive_all -only_loaded -'-inlined-behaviour_info/1-' -'-ensure_all_started/3-lc$^0/1-0-' -'-wait_all_enqueued/3-lc$^0/1-0-' -get_appl_name -start_type -get_child -get_master -get_supervisor -get_application_module -get_application -get_pid_all_key -get_all_key -get_pid_key -get_key -get_pid_all_env -get_all_env -get_pid_env -get_env -unset_env -set_env -loaded_applications -which_applications -stop_application -distributed_application -permit_only_loaded_application -permit_application -permit -takeover_application -takeover -start_boot_application -ensure_started -wait_all_enqueued -deadlock -wait_one_enqueued -start_application_request -enqueue_dag_leaves -concurrent_dag_start -start_application -enqueue_or_start_app -is_running -enqueue_or_start -concurrent -temporary -ensure_all_started -unload_application -load_application -load1 -fields -overlapping_contract -no_missing_return -missing_return -no_extra_return -extra_return -no_underspecs -underspecs -overspecs -specdiffs -no_missing_calls -race_conditions -error_handling -unmatched_returns -no_undefined_callbacks -no_behaviours -no_unknown -no_contracts -no_fail_call -no_opaque -no_fun_app -no_improper_lists -no_unused -no_return -func -item -'-removed_fa/4-inlined-0-' -'-pattern_map/4-inlined-0-' -'-pattern_list/4-inlined-0-' -'-pattern_fields/6-inlined-0-' -'-is_gexpr/2-inlined-0-' -'-import/3-inlined-0-' -'-icrt_export/5-inlined-3-' -'-icrt_export/5-inlined-2-' -'-icrt_export/5-inlined-1-' -'-icrt_export/5-inlined-0-' -'-gexpr_list/3-inlined-0-' -'-func_location_warning/3-inlined-0-' -'-func_location_error/3-inlined-0-' -'-fun_clauses1/3-inlined-0-' -'-expr_list/3-inlined-0-' -'-export_type/3-inlined-0-' -'-export/3-inlined-0-' -'-depr_fa/4-inlined-0-' -'-def_fields/3-inlined-0-' -'-check_unused_types_1/2-inlined-1-' -'-check_undefined_types/1-inlined-2-' -'-check_type_2/3-inlined-1-' -'-check_specs_without_function/1-inlined-0-' -'-check_local_opaque_types/1-inlined-0-' -'-check_fields/6-inlined-0-' -'-check_dialyzer_attribute/2-inlined-6-' -'-bool_option/4-fun-0-' -'-value_option/3-fun-0-' -'-value_option/7-fun-0-' -'-format_mfa/1-lc$^0/1-0-' -'-exprs_opt/3-fun-0-' -'-used_vars/2-fun-0-' -'-compiler_options/1-lc$^0/1-0-' -'-start/2-lc$^0/1-0-' -'-start/2-lc$^1/1-1-' -'-pack_errors/1-fun-0-' -'-pack_errors/1-fun-1-' -'-pack_errors/1-fun-2-' -'-pack_warnings/1-lc$^2/1-1-' -'-pack_warnings/1-lc$^1/1-0-' -'-pack_warnings/1-lc$^0/1-2-' -'-includes_qlc_hrl/2-lc$^0/1-0-' -'-set_file/2-lc$^0/1-0-' -'-anno_set_file/2-fun-0-' -'-bif_clashes/2-lc$^0/1-0-' -'-not_deprecated/2-lc$^2/1-2-' -'-not_deprecated/2-lc$^1/1-1-' -'-not_deprecated/2-lc$^0/1-0-' -'-not_deprecated/2-lc$^4/1-4-' -'-not_deprecated/2-lc$^3/1-3-' -'-not_deprecated/2-lc$^5/1-5-' -'-not_deprecated/2-fun-6-' -'-not_removed/2-lc$^2/1-2-' -'-not_removed/2-lc$^1/1-1-' -'-not_removed/2-lc$^0/1-0-' -'-not_removed/2-lc$^4/1-4-' -'-not_removed/2-lc$^3/1-3-' -'-not_removed/2-fun-5-' -'-disallowed_compile_flags/2-lc$^1/1-1-' -'-disallowed_compile_flags/2-lc$^0/1-0-' -'-disallowed_compile_flags/2-lc$^3/1-3-' -'-disallowed_compile_flags/2-lc$^2/1-2-' -bad_filter -'-behaviour_check/2-lc$^0/1-0-' -'-behaviour_check/2-fun-1-' -'-behaviour_check/2-lc$^2/1-1-' -'-behaviour_missing_callbacks/2-fun-0-' -no_elements -'-behaviour_conflicting/2-fun-0-' -'-check_deprecated/2-lc$^2/1-2-' -'-check_deprecated/2-lc$^1/1-1-' -'-check_deprecated/2-lc$^0/1-0-' -'-check_deprecated/2-fun-3-' -'-depr_fa/4-fun-0-' -'-check_removed/2-lc$^2/1-2-' -'-check_removed/2-lc$^1/1-1-' -'-check_removed/2-lc$^0/1-0-' -'-check_removed/2-fun-3-' -'-removed_fa/4-fun-0-' -'-check_imports/2-lc$^1/1-1-' -'-check_imports/2-lc$^0/1-0-' -'-check_imports/2-lc$^3/1-3-' -'-check_imports/2-lc$^2/1-2-' -'-check_unused_functions/2-lc$^0/1-0-' -'-check_unused_functions/2-lc$^2/1-2-' -'-check_unused_functions/2-lc$^1/1-1-' -'-check_undefined_functions/1-fun-0-' -'-check_undefined_types/1-lc$^0/1-0-' -'-check_undefined_types/1-fun-1-' -'-check_undefined_types/1-fun-2-' -'-check_option_functions/4-lc$^2/1-2-' -'-check_option_functions/4-lc$^1/1-1-' -'-check_option_functions/4-lc$^0/1-0-' -'-check_option_functions/4-lc$^3/1-3-' -'-check_option_functions/4-lc$^4/1-4-' -'-check_nifs/2-lc$^1/1-1-' -'-check_nifs/2-lc$^0/1-0-' -'-check_nifs/2-lc$^2/1-2-' -'-nowarn_function/2-lc$^1/1-1-' -'-nowarn_function/2-lc$^0/1-0-' -'-func_location_warning/3-fun-0-' -'-func_location_error/3-fun-0-' -'-check_untyped_records/2-fun-0-' -'-check_untyped_records/2-lc$^1/1-0-' -'-check_untyped_records/2-fun-2-' -'-check_unused_records/2-lc$^0/1-0-' -'-check_unused_records/2-lc$^3/1-3-' -'-check_unused_records/2-lc$^2/1-2-' -'-check_unused_records/2-lc$^1/1-1-' -'-check_unused_records/2-fun-4-' -'-check_unused_records/2-fun-5-' -'-check_unused_records/2-lc$^6/1-5-' -'-check_unused_records/2-fun-7-' -'-check_callback_information/1-fun-0-' -'-check_callback_information/1-fun-1-' -'-export/3-fun-0-' -'-export_type/3-fun-0-' -'-import/3-fun-0-' -'-check_imports/3-fun-0-' -store -'-add_imports/3-fun-0-' -'-clauses/2-fun-0-' -'-pattern/4-fun-0-' -'-pattern_list/4-fun-0-' -map_key -'-pattern_map/4-fun-0-' -'-pattern_bin/4-fun-0-' -'-good_string_size_type/2-fun-0-' -'-expr_bin/4-fun-0-' -'-gexpr/3-fun-3-' -'-gexpr/3-fun-4-' -'-gexpr/3-fun-2-' -'-gexpr_list/3-fun-0-' -'-is_guard_test/1-fun-0-' -'-is_guard_test/2-fun-0-' -'-is_guard_test/3-fun-0-' -'-is_guard_test/3-fun-1-' -'-is_guard_expr/1-fun-0-' -'-is_gexpr/2-fun-0-' -'-is_gexpr_list/2-fun-0-' -'-is_gexpr_fields/4-fun-0-' -'-expr/3-fun-5-' -'-expr/3-fun-4-' -'-expr/3-fun-3-' -'-expr/3-fun-2-' -'-expr_list/3-fun-0-' -'-record_def/4-lc$^0/1-0-' -'-def_fields/3-fun-0-' -'-normalise_fields/1-fun-0-' -'-check_fields/6-fun-0-' -'-pattern_fields/6-fun-0-' -'-pattern_fields/6-fun-1-' -'-init_fields/3-lc$^0/1-0-' -'-type_def/6-fun-0-' -'-warn_redefined_builtin_type/3-lc$^1/1-1-' -'-warn_redefined_builtin_type/3-lc$^0/1-0-' -'-check_type/2-fun-0-' -'-check_type_2/3-fun-5-' -'-check_type_2/3-fun-1-' -'-check_type_2/3-fun-2-' -'-check_type_2/3-fun-3-' -merge_with -'-check_type_2/3-fun-4-' -'-check_type_2/3-fun-0-' -'-check_record_types/5-fun-0-' -'-remove_non_visible/1-lc$^0/1-0-' -'-any_control_characters/1-fun-0-' -constraint -'-check_specs/4-lc$^0/1-0-' -'-check_specs_without_function/1-fun-0-' -'-add_missing_spec_warnings/3-lc$^0/1-0-' -'-add_missing_spec_warnings/3-lc$^2/1-2-' -'-add_missing_spec_warnings/3-lc$^1/1-1-' -'-add_missing_spec_warnings/3-fun-3-' -'-check_unused_types_1/2-lc$^0/1-0-' -'-check_unused_types_1/2-fun-1-' -'-reached_types/1-lc$^1/1-1-' -'-reached_types/1-lc$^0/1-0-' -'-reached_types/1-lc$^2/1-2-' -'-initially_reached_types/1-lc$^0/1-0-' -'-check_local_opaque_types/1-fun-0-' -'-check_dialyzer_attribute/2-lc$^4/1-2-' -'-check_dialyzer_attribute/2-lc$^1/1-4-' -'-check_dialyzer_attribute/2-lc$^0/1-3-' -'-check_dialyzer_attribute/2-lc$^3/1-1-' -'-check_dialyzer_attribute/2-lc$^2/1-0-' -'-check_dialyzer_attribute/2-fun-5-' -'-check_dialyzer_attribute/2-fun-6-' -'-check_dialyzer_attribute/2-fun-7-' -'-icrt_clauses/3-fun-0-' -'-catch_clauses/3-fun-0-' -'-icrt_export/5-fun-0-' -'-icrt_export/5-fun-1-' -'-icrt_export/5-fun-2-' -'-icrt_export/5-fun-3-' -'-icrt_export/5-fun-4-' -'-is_guard_test2_info/1-fun-0-' -'-fun_clauses/3-lc$^0/1-0-' -'-fun_clauses1/3-fun-0-' -'-shadow_vars/4-fun-0-' -'-unused_vars/3-fun-0-' -'-warn_unused_vars/3-fun-0-' -'-warn_unused_vars/3-fun-1-' -'-warn_unused_vars/3-fun-2-' -'-vtupdate/2-fun-0-' -'-vtunsafe/3-lc$^0/1-0-' -'-vtmerge/2-fun-0-' -'-vtmerge/1-fun-0-' -'-vtmerge_pat/3-fun-0-' -matched -'-vtmerge_pat/3-fun-1-' -'-vtnew/2-fun-0-' -'-vtold/2-fun-0-' -'-vt_no_unsafe/1-lc$^0/1-0-' -'-vt_no_unused/1-lc$^0/1-0-' -'-copy_expr/2-fun-0-' -'-feature_keywords/0-fun-0-' -keywords -'-feature_keywords/0-fun-1-' -'-canonicalize_string/1-fun-0-' -'-local_functions/1-lc$^0/1-0-' -'-auto_import_suppressed/1-lc$^0/1-0-' -'-auto_import_suppressed/1-lc$^1/1-1-' -maps_prepend -no_guard_bif_clash -bif_clash_specifically_disabled -is_autoimport_suppressed -no_auto_import -auto_import_suppressed -is_imported_from_erlang -is_imported_function -is_local_function -local_functions -control_type -is_modifier -intersection -check_modifiers_1 -check_modifiers -extract_modifiers -extract_sequence_digits -extract_sequence -extract_sequences -check_format_string -args_length -args_list -arguments -check_format_4 -check_format_3 -no_argument_list -check_format_2a -warn -check_format_2 -foldr -canonicalize_string -check_format_1 -fwrite -is_format_function -format_function -text -configurable -feature_keywords -test_overriden_by_local -old_type_test -obsolete_type -add_removed_warning -obsolete -q -check_qlc_hrl -is_inline_opt -check_nif_inline -check_load_nif -check_remote_function -has_wildcard_field -check_record_info_call -copy_expr -vt_no_unused -vt_no_unsafe -vtold -vtsubtract -vtnew -merge_used -merge_state -merge_annos -vtmerge_pat -vtmerge -vtunsafe -vtupdate -check_old_unused_vars -check_unused_vars -do_expr_var -expr_var -pat_binsize_var -warn_underscore_match_pat_1 -warn_underscore_match_pat -pat_var -fun_clause -fun_clauses1 -fun_clauses -bitstring -bits -bytes -handle_bitstring_gen_pat -comprehension_pattern -handle_generator -is_guard_test2_info -m_generate -generate -b_generate -lc_quals -comprehension_expr -handle_comprehension -dropwhile -icrt_export -stacktrace -taint_stack_var -catch_clause -catch_clauses -icrt_clause -icrt_clauses -try_clauses -is_module_dialyzer_option -is_function_dialyzer_option -check_dialyzer_attribute -check_local_opaque_types -initially_reached_types -reachable -family_to_digraph -rel2fam -reached_types -check_unused_types_1 -check_unused_types -add_missing_spec_warnings -exported -check_functions_without_spec -check_specs_without_function -set_generated -nowarn -bounded_fun -check_specs -any_control_characters -remove_non_visible -latin1_char_list -check_module_name -is_fa -is_fa_list -optional_cbs -callback_decl -spec_decl -obsolete_builtin_type -is_obsolete_builtin_type -is_type -is_default_type -used_type -field_type -check_record_types -seen_multiple -seen_once_union -seen_once -remote_type -ann_type -range -user_type -typed_record_field -check_type_2 -check_type_1 -check_type -no_auto_import_types -typeinfo -type_def -find_field -exist_field -update_fields -ginit_fields -init_fields -pattern_fields -pattern_field -check_field -check_fields -used_record -check_record -exist_record -normalise_fields -def_fields -product -record_def -is_valid_call -warn_invalid_call -is_valid_record -warn_invalid_record -map_fields -check_assoc_fields -record_expr -expr_list -if -fun -catch -old_bif -record_info -else -'named fun' -unused -first_anno -named_fun -mc -maybe_match -maybe -lc -case -bc -try -ssa_check_when -expr -is_gexpr_fields -map_field_exact -map_field_assoc -is_map_fields -is_gexpr_list -comp -arith -op_type -is_gexpr_op -is_gexpr -is_guard_expr -is_guard_test2 -is_guard_test -gexpr_list -bif -guard_bif -record_field -gexpr -type_test -guard_test2 -guard_test -guard_tests -elemtype_check -bittype -bit_size_check -set_bit_type -bit_type -expr_bin -is_bit_size_illegal -pat_bit_size -pat_bit_expr -good_string_size_type -pattern_element_1 -bin_element -pattern_element -pattern_bin -pattern_map -arith_op -is_pattern_expr_1 -partial_eval -is_pattern_expr -check_multi_field_init -pattern_list -var -tuple -bin -record_index -char -cons -op -pattern -head -clause -clauses -function_check_max_args -define_function -call_function -check_on_load -imported -add_imports -is_member -check_callback_information -check_unused_records -check_untyped_records -func_location_error -func_location_warning -nowarn_function -check_nifs -check_option_functions -check_bif_clashes -check_undefined_types -drestriction -from_external -check_undefined_functions -add_element -reached_functions -initially_reached -union -check_unused_functions -inline -check_inlines -check_imports -ignore_predefined_funcs -removed_desc -otp_doc_vsn -generated -removed_fa -removed_cat -check_removed -deprecated_desc -next_version -next_major_release -eventually -deprecated_flag -depr_fa -depr_cat -check_deprecated -behaviour_add_conflict -behaviour_add_conflicts -to_external -family_specification -relation_to_family -converse -family_to_relation -relation -behaviour_conflicting -behaviour_missing_callbacks -callbacks -behaviour_callbacks -all_behaviour_callbacks -behaviour_check -check_behaviour -post_traversal_check -disallowed_compile_flags -not_removed -not_deprecated -bif_clashes -dialyzer -function_state -optional_callbacks -opaque -import -export_type -export -callback -behaviour -behavior -attribute_state -start_state -form -map_anno -anno_set_file -set_file -set_form_file -eval_file_attr -eval_file_attribute -includes_qlc_hrl -pre_scan -forms -location -loc -add_lint_warning -add_warning -add_lint_error -bin_seg_size -add_error -pack_warnings -mapfoldl -pack_errors -return_status -is_warn_enabled -guard -usage -nowarn_format -warn_format -is_element -unused_vars -underscore_match -export_vars -shadow_vars -bif_clash -deprecated_function -'-all_available/2-lc$^0/1-0-' -missing_spec_all -keyword_warning -rootname -'-all_available/2-fun-1-' -redefined_builtin_type -'-all_available/2-F/2-1-' -warn_singleton_typevar -nowarn_singleton_typevar -on_load_not_allowed -'-prepare_loading_3/1-lc$^0/1-0-' -warn_redefined_builtin_type -nowarn_redefined_builtin_type -'-partition_on_load/1-fun-0-' -warn_keywords -nowarn_keywords -'-load_mods/1-fun-0-' -'-load_bins/1-fun-0-' -warn_nif_inline -nowarn_nif_inline -'-do_par_fun/2-lc$^0/1-0-' -'-do_par_fun/2-fun-1-' -warn_removed -nowarn_removed -warn_missing_spec_all -'-do_par_fun_each/3-fun-0-' -nowarn_missing_spec_all -warn_missing_spec -nowarn_missing_spec -warn_untyped_record -nowarn_untyped_record -warn_obsolete_guard -nowarn_obsolete_guard -'-load_code_server_prerequisites/0-lc$^0/1-0-' -warn_deprecated_type -nowarn_deprecated_type -eep48 -debug_info -warn_deprecated_function -nowarn_deprecated_function -'-get_doc/2-fun-0-' -warn_unused_record -'-get_type_docs_from_ast/1-fun-0-' -nowarn_unused_record -warn_bif_clash -'-get_function_docs_from_ast/1-fun-0-' -nowarn_bif_clash -warn_unused_type -spec -'-get_function_docs_from_ast/2-fun-0-' -nowarn_unused_type -warn_unused_function -'-set_primary_archive/4-lc$^0/1-0-' -'-module_status/0-lc$^0/1-0-' -nowarn_unused_function -'-module_status/1-lc$^0/1-0-' -warn_unused_import -nowarn_unused_import -'-modified_modules/0-lc$^0/1-0-' -warn_shadow_vars -nowarn_shadow_vars -warn_export_vars -path_files -modified_modules -do_beam_file_md5 -nowarn_export_vars -beam_file_md5 -warn_export_all -module_changed_on_disk -nowarn_export_all -modified -warn_underscore_match -nowarn_underscore_match -cover_compiled -module_status -warn_unused_vars -nowarn_unused_vars -warning_report -compiler_options -lint -cache_warning -used_vars -code_path_cache -maybe_warn_for_cache -exprs_opt -nthtail -has_ext -filter2 -pseudolocals -get_line -format_where -decorate -build -format_mna -format_mf -search -clash -format_mfa -gen_type_paren_1 -gen_type_paren -get_function_docs_from_ast -signature -utf_bittype_size_or_unit -unsized_binary_not_at_end -unsized_binary_in_bin_gen_pattern -undefined_module -flatmap -get_type_docs_from_ast -typed_literal_string -spec_wrong_arity -no_abstract_code -docs_v1 -redefine_module -raw_abstract_v1 -pmod_unsupported -abstract_code -get_doc_chunk_from_ast -'-del_dir_r/1-fun-0-' -old_abstract_code -'-socket_send/1-fun-0-' -dirname -non_latin1_module_unsupported -'-gen_tcp_send/1-fun-0-' -non_integer_bitsize -missing_chunk -file_reply -no_load_nif -nif_inline -chunks -get_doc_chunk -is_dir -multiple_on_loads -invalid_record -file_request -invalid_call -check_args -erts -illegal_record_info -check_and_call -sources -get_doc -illegal_pattern -illegal_map_key -illegal_map_construction -non_existing -where_is_file -illegal_guard_expr -illegal_expr -which -macro_log -character -illegal_bitsize -'-call/4-fun-0-' -'-send_request/3-fun-0-' -export_all -mode_list -'-receive_response/3-fun-0-' -make_binary -empty_module_name -disallowed_nowarn_bif_clash -'-stop/3-fun-0-' -start_get_mode -file_name_1 -ctrl_chars_in_module_name -do_s -compiler -callback_wrong_arity -'$status' -format_status -blank_module_name -file_name -format_status_header -bittype_unit -do_stick_dirs -fname_join -bad_multi_field_init -wildcard_in_update -nostick -debug_options -path_open_first -maybe_stick_dirs -variable_in_record_def -hibernate_after -spawn_opts -could_not_find_registered_name -load_code_server_prerequisites -unused_var -unused_type -name_to_pid -process_was_not_started_by_proc_lib -unused_record -eval_stream2 -parse_erl_exprs -unused_import -'$ancestors' -get_parent -process_not_registered_globally -eval_stream -good -unused_function -set_encoding -process_not_registered -untyped_record -bad -process_not_registered_via -undefined_type -do_par_recv -consult_stream -sendfile_send -get_proc_name -do_par_fun_each -undefined_record -sendfile_fallback_int -do_par_fun -undefined_on_load -undefined_nif -unregister_name -undefined_callback -sendfile_fallback -do_par -undefined_bittype -undefined_behaviour_callbacks -gen_tcp_send -load_bins -load_mods -register_name -socket_send -undefined_behaviour -verify_prepared -unbound_var -whereis_name -type_syntax -partition -partition_on_load -too_many_arguments -prepare_check_uniq_1 -where -stacktrace_guard -'$inet' -stacktrace_bound -prepare_check_uniq -via -get_value -spec_fun_undefined -singleton_typevar -prepare_loading_3 -chunk_size -redefine_type -prepare_loading_2 -do_for_proc -redefine_spec -change_time -change_group -redefine_record -do_prepare_loading -to_list -partition_load -reqids_to_list -change_owner -redefine_optional_callback -redefine_old_bif_import -change_mode -'$prepared$' -reqids_add -redefine_import -redefine_function -atomic_load -reqids_size -reqids_new -redefine_callback -prepare_ensure -path_open -redefine_builtin_type -ensure_modules_loaded_2 -path_script -redefine_bif_import -flush_responses -usort -obsolete_guard_overridden -path_eval -ensure_modules_loaded_1 -obsolete_guard -collection_result -not_exported_opaque -ensure_modules_loaded -replace_path -missing_spec -missing_qlc_hrl -no_reply -del_paths -del_path -path_consult -consult -add_pathsa -check_response -match_underscore_var_pat -match_underscore_var -add_pathsz -receive_response -no_request -add_paths -invalid_removed -ipread_s32bu_p32bu_2 -wait_response -invalid_deprecated -ipread_s32bu_p32bu_int -add_patha -illegal_guard_local_call -'@wait_response_recv_opt' -do_send_request -add_pathz -illegal_bitsize_local_call -ill_defined_optional_callbacks -ill_defined_behaviour_callbacks -add_path -send_request -copy_opened_int -duplicated_export_type -copy_int -duplicated_export -define_import -call_to_redefined_old_bif -call_to_redefined_bif -nocache -pwrite_int -behaviour_info -is_sticky -put_chars -bad_removed -unstick_mod -calling_self -bad_on_load_arity -stick_mod -pread_int -do_call -unstick_dir -bad_on_load -stick_dir -bad_nowarn_unused_function -init_it2 -init_fail -priv_dir -bad_nowarn_bif_clash -bad_module -compiler_dir -dir -get_chars -bad_inline -monitor_return -lib_dir -start_monitor -bad_export_type -bad_dialyzer_option -root_dir -init_it -bad_dialyzer_attribute -bad_deprecated -ram -extension -umerge -bad_callback -raw_write_file_info -raw_read_file_info -bad_bitsize -do_spawn -do_write_file -attribute -unsafe_var -undefined_field -undefined_behaviour_func -get_mode -all_available -shadowed_var -renamed_type -removed_type -get_object_code -del_dir_r -redefine_field -is_loaded -int_list -future_feature -modp -field_name_is_variable -exported_var -removed -load_binary -deprecated_type -'$handle_undefined_function' -call_undefined_function_handler -deprecated_builtin_type -bittype_mismatch -stub_function -concat -basename -load_abs -sync_ensure_on_load -conflicting_behaviours -value_option -pid2name -terminated -undefined_script -bool_option -load_file -try_decompress -module_md5_1 -module_md5 -get_chunk_1 -get_chunk -raise_undef_exception -mfa -remove_handler_failed -filter_stacktrace -filter -removed_failing_filter -remove_filter -handle_filter_failed -bad_return_value -do_apply_filters -filter_default -apply_filters -handler -log_event -internal_log -removed_failing_handler -do_internal_log -allow -remove_handler -without -call_handlers -handlers -filters -log_allowed -'-do_start_slave/3-fun-1-' -'-do_start_slave/3-fun-0-' -relay_loop -already_started -relay_start -do_start_slave -no_master -do_start -code_change -handle_info -handle_cast -noreply -stopped -handle_call -format_error -erlangrc -start_boot -applications_loaded -pool_master -take_over_monitor -rsh_starter -timer_server -stdlib -load -init_kernel_started -mod -maxP -maxT -shell_docs_ansi -prevent_overlapping_partitions -net_ticktime -net_tickintensity -logger_sasl_compatible -notice -logger_level -included_applications -optional_applications -applications -ddll_server -os_server -rex -net_sup -kernel_sup -fixtable_server -file_server_2 -boot_server -modules -vsn -start_link -modules_loaded -win32reg -uri_string -unicode_util -sys -supervisor_bridge -sofs -shell_docs -shell_default -shell -sets -rand -queue -qlc_pt -qlc -proplists -pool -peer -otp_internal -ordsets -orddict -ms_transform -log_mf_h -io_lib_pretty -io_lib_fread -io_lib_format -gen_statem -gen_fsm -gb_trees -gb_sets -filelib -file_sorter -eval_bits -escript -error_logger_tty_h -error_logger_file_h -erl_tar -erl_pp -erl_posix_msg -erl_internal -erl_features -erl_expand_records -erl_error -erl_compile -erl_bits -erl_abstract_code -epp -edlin_type_suggestion -edlin_expand -edlin_context -edlin -digraph_utils -digraph -dict -dets_v9 -dets_utils -dets_sup -dets_server -dets -calendar -c -beam_lib -base64 -array -argparse -wrap_log_reader -user_sup -user_drv -rpc -raw_file_io_list -raw_file_io_inflate -raw_file_io_delayed -raw_file_io_deflate -raw_file_io_compressed -raw_file_io -ram_file -pg2 -pg -net_adm -logger_sup -logger_std_h -logger_proxy -logger_olp -logger_handler_watcher -logger_h_common -logger_formatter -logger_disk_log_h -local_udp -local_tcp -kernel_config -inet_udp -inet_tcp_dist -inet_tcp -inet_sctp -inet_res -inet_parse -inet_hosts -inet_gethost_native -inet_epmd_socket -inet_epmd_dist -inet_dns -inet_db -inet_config -inet6_udp -inet6_tcp_dist -inet6_tcp -inet6_sctp -group_history -group -global_search -global_group -gen_udp_socket -gen_udp -gen_tcp_socket -gen_tcp -gen_sctp -erpc -erl_signal_handler -erl_reply -erl_epmd -erl_distribution -erl_compile_server -erl_boot_server -dist_util -dist_ac -disk_log_sup -disk_log_server -disk_log_1 -disk_log -application_starter -supervisor -proc_lib -logger_simple_h -logger_config -logger_backend -logger_filters -gen_server -gen_event -gen -file_io_server -file_server -erl_lint -code_server -application_master -application_controller -application -preloaded -noshell -home -progname -net -no_uniconde_traslation -no_function -no_data -not_enough_memory -invalid_parameter -invalid_flags -invalid_data -insufficient_buffer -esystem -esocktype -eservice -eoverflow -enxio -enoname -enodata -enametoolong -emem -efault -efamily -efail -ebadflags -eaddrfamily -can_not_complete -address_not_associated -zone_indices -wwanpp2 -wwanpp -well_known -valid_lifetime -unreachable -unicast_addrs -unchanged -transient -testing -tentative -suffix_origin -speed -software_loopback -service -router_advertisement -register_adapter_suffix -receive_only -reasm_size -prefix_origin -prefixes -preferred_lifetime -preferred -ppp -phys_addr -out_qlen -out_errors -out_discards -out_nucast_pkts -out_ucast_pkts -out_octets -oper_status -operational -on_link_prefix_length -numericserv -numerichost -no_multicast -not_present -non_operational -nofqdn -netbios_over_tcpip_enabled -name_info -namereqd -multicast_addrs -mask -manual -lower_layer_down -link_layer_address -lease_lifetime -last_change -iso88025_tokenring -ipv6_other_stateful_config -ipv6_managed_address_config_supported -ipv6_index -ipv6_enabled -ipv4_enabled -in_unknown_protos -in_errors -in_discards -in_nucast_pkts -in_ucast_pkts -in_octets -internal_oper_status -ieee80216_wman -ieee80211 -idn -friendly_name -fddi -ethernet_csmacd -duplicate -dns_suffix -dns_server_addrs -dns_eligible -disconnected -ddns_enabled -dhcp_v4_enabled -dhcp -description -deprecated -dad_state -bcast_addr -anycast_addrs -admin_status -address_info -divert -'DIVERT' -pfsync -'PFSYNC' -rohc -'ROHC' -wesp -'WESP' -shim6 -'SHIM6' -hip -'HIP' -manet -'MANET' -'mpls-in-ip' -'MPLS-IN-IP' -udplite -'UDPLite' -'mobility-header' -'Mobility-Header' -'rsvp-e2e-ignore' -'RSVP-E2E-IGNORE' -fc -'FC' -'SCTP' -pipe -'PIPE' -sps -'SPS' -iplt -'IPLT' -sscopmce -'SSCOPMCE' -crudp -'CRUDP' -crtp -'CRTP' -fire -'FIRE' -isis -'ISIS' -ptp -'PTP' -sm -'SM' -smp -'SMP' -uti -'UTI' -srp -'SRP' -stp -'STP' -iatp -'IATP' -ddx -'DDX' -l2tp -'L2TP' -pgm -'PGM' -carp -vrrp -'CARP' -'ipx-in-ip' -'IPX-in-IP' -'compaq-peer' -'Compaq-Peer' -snp -'SNP' -ipcomp -'IPComp' -'a/n' -'A/N' -qnx -'QNX' -scps -'SCPS' -aris -'ARIS' -pim -'PIM' -pnni -'PNNI' -ifmp -'IFMP' -gmtp -'GMTP' -encap -'ENCAP' -etherip -'ETHERIP' -'scc-sp' -'SCC-SP' -micp -'MICP' -'IPIP' -'ax.25' -'AX.25' -mtp -'MTP' -larp -'LARP' -'sprite-rpc' -'Sprite-RPC' -ospf -'OSPFIGP' -eigrp -'EIGRP' -tcf -'TCF' -dgp -'DGP' -'nsfnet-igp' -'NSFNET-IGP' -ttp -'TTP' -vines -'VINES' -'secure-vmtp' -'SECURE-VMTP' -vmtp -'VMTP' -'iso-ip' -'ISO-IP' -'wb-expak' -'WB-EXPAK' -'wb-mon' -'WB-MON' -'sun-nd' -'SUN-ND' -'br-sat-mon' -'BR-SAT-MON' -pvp -'PVP' -wsn -'WSN' -cphb -'CPHB' -cpnx -'CPNX' -ipcv -'IPCV' -visa -'VISA' -'sat-mon' -'SAT-MON' -ippc -'IPPC' -rvd -'RVD' -kryptolan -'KRYPTOLAN' -'sat-expak' -'SAT-EXPAK' -cftp -'CFTP' -'ipv6-opts' -'IPV6-OPTS' -'ipv6-nonxt' -'IPV6-NONXT' -'ipv6-icmp' -'IPV6-ICMP' -'SKIP' -tlsp -'TLSP' -mobile -'MOBILE' -narp -'NARP' -swipe -'SWIPE' -'i-nlsp' -'I-NLSP' -ah -'AH' -esp -'ESP' -bna -'BNA' -dsr -'DSR' -gre -'GRE' -rsvp -'RSVP' -idrp -'IDRP' -'ipv6-frag' -'IPV6-FRAG' -'ipv6-route' -'IPV6-ROUTE' -sdrp -'SDRP' -'IPV6' -il -'IL' -'tp++' -'TP++' -'idpr-cmtp' -'IDPR-CMTP' -ddp -'DDP' -xtp -'XTP' -idpr -'IDPR' -'3pc' -'3PC' -dccp -'DCCP' -'merit-inp' -'MERIT-INP' -'mfe-nsp' -'MFE-NSP' -netblt -'NETBLT' -'iso-tp4' -'ISO-TP4' -irtp -'IRTP' -rdp -'RDP' -'leaf-2' -'LEAF-2' -'leaf-1' -'LEAF-1' -'trunk-2' -'TRUNK-2' -'trunk-1' -'TRUNK-1' -'xns-idp' -'XNS-IDP' -prm -'PRM' -hmp -'HMP' -dcn -'DCN-MEAS' -mux -'MUX' -'UDP' -'CHAOS' -xnet -'XNET' -emcon -'EMCON' -argus -'ARGUS' -'PUP' -nvp -'NVP-II' -'bbn-rcc' -'BBN-RCC-MON' -igp -'IGP' -'EGP' -cbt -'CBT' -'TCP' -st2 -'ST2' -ipencap -'IP-ENCAP' -ggp -'GGP' -'IGMP' -'ICMP' -'IP' -sockets -select_write -select_read -eagain -create_accept_socket -zero -write_waits -write_tries -write_pkg -write_fails -write_byte -v6only -void -use_min_mtu -use_ext_recvinfo -user_timeout -usec -update_connect_context -update_accept_context -unknown -unicast_hops -unblock_source -txqlen -tunnel6 -tunnel -transparent -throughput -syncnt -staticarp -spec_dst -sndtimeo -sndlowat -sndbufforce -slen -slave -simplex -set_peer_primary_addr -setfib -sendsrcaddr -sendfile_waits -sendfile_tries -sendfile_pkg_max -sendfile_pkg -sendfile_max -sendfile_fails -sendfile_byte -select_sent -select_failed -sec -rxq_ovfl -rtoinfo -rthdr -router_alert -rights -retopts -reset_streams -renaming -reliability -recvpktinfo -recvorigdstaddr -recvopts -recvif -recvhoplimit -recverr -recvdstaddr -read_tries -read_pkg -read_fails -read_byte -rdm -rcvtimeo -rcvlowat -rcvbufforce -pup -pronet -promisc -primary_addr -ppromisc -portsel -portrange -pointopoint -pkttype -pktinfo -peercred -peer_auth_chunks -peer_addr_params -peek -passcred -partial_delivery_point -outgoing -otherhost -origdstaddr -oobinline -oob -oactive -num_unknown_cmds -num_unexpected_writes -num_unexpected_reads -num_unexpected_connects -num_unexpected_accepts -num_threads -num_general_errors -not_bound -notrailers -nosignal -noopt -nodefrag -noarp -nlen -netrom -multicast_hops -multicast_all -mtu_discover -msfilter -minttl -mincost -metricom -mem_start -mem_end -md5sig -maxseg -maxburst -master -mark -lower_up -lowdelay -local_auth_chunks -localtlk -link2 -link1 -link0 -leave_group -knowsepoch -kernel -keepintvl -keepidle -keepcnt -join_group -i_want_mapped_v4_addr -irq -ipv6 -ipip -ipcomp_level -ip -integer_range -initmsg -infiniband -implink -igmp -ifindex -ieee1394 -ieee802 -icmp6 -icmp -host -hopopts -hoplimit -hmac_ident -hdrincl -hatype -get_peer_addr_info -get_overlapped_result -frelay -freebind -fragment_interleave -fastroute -faith -explicit_eor -events -eui64 -esp_trans_level -esp_network_level -errqueue -eor -egp -eether -echo -dynamic -dying -dup -dstopts -drop_source_membership -dormant -dontfrag -dma -dlci -disable_fragments -delayed_ack_time -default_send_params -data_size -ctrunc -credentials -cork -context -congestion -confirm -completion_status -cmsg_cloexec -checksum -chaos -cantconfig -cancelled -busy_poll -block_source -bindtodevice -base_addr -bad_data -ax25 -automedia -autoclose -auth_level -auth_key -auth_delete_key -auth_chunk -auth_asconf -auth_active_key -authhdr -atm -associnfo -arcnet -appletlk -already -allmulti -alen -add_source_membership -add_socket -addrform -adaption_layer -acc_waits -acc_tries -acc_fails -acc_success -acceptfilter -acceptconn -zerocopy -wstates -write_pkg_max -want -txtime -txstatus -time_exceeded -sourceaddr -socket_level -slist -siftxqlen -sifnetmask -sifmtu -sifdstaddr -sifbrdaddr -sifaddr -send_failure -sender_dry -selected -rstates -remote -reject_route -read_waits -read_pkg_max -probe -port_unreach -policy_fail -pkt_toobig -peer_rwnd -peer_error -partial_delivery -otp_socket_option -origin -onoff -offender -num_writers -num_tstreams -num_tseqpkgs -num_tdgrams -num_sockets -num_readers -num_pudp -num_ptcp -num_psctp -num_pip -number_peer_destinations -num_outstreams -num_dlocal -num_dinet6 -num_dinet -num_cnt_bits -num_acceptors -null -not_neighbour -noroute -nogroup -net_unreach -net_unknown -multiaddr -missing -asocmaxrxt -max_instreams -max_init_timeo -max_attempts -local_rwnd -listening -io_num_threads -io_backend -iov_max -interface -initial -include -in6_sockaddr -in4_sockaddr -how -host_unreach -host_unknown -giftxqlen -gifnetmask -gifname -gifmtu -gifmap -gifindex -gifhwaddr -gifflags -gifdstaddr -gifconf -gifbrdaddr -gifaddr -frag_needed -exclude -eei -dtor -dont -do -dest_unreach -data_io -ctype -counter_wrap -cookie_life -closing -bufsz -boolean -authentication -assoc_id -association -adm_prohibited -address -addr_unreach -adaptation_layer -symlink -device -no_reuse -dont_need -will_need -random -skip_type_check -gc_buffer -out_of_memory -acquired -lock_order_violation -trace_ts -gc_zlib -unknown_error -version_error -buf_error -mem_error -stream_error -stream_end -already_initialized -not_initialized -sub_get -handle_sys_task -handle_incoming_signals -done -erts_dirty_process_signal_handler -send_copy_req -send_copy_reqs -check_send_copy_req -switch_area -not_handled_message -working -idle -msg_loop -nif_not_loaded -ets_info_binary_iter -ets_info_binary_error -sched_wall_time -kernel_refc -find_lac -code_purger -literal_area_collector -set_code_and_literal_cleaner_prio -'@flush_monitor_messages_refopt' -mc_refill -is_map_iter -mc_iterator -get_cpc_opts -mseg_alloc -gcopt -allow_gc -'-inlined-error_with_inherited_info/3-' -ensure_tracer_module_loaded -gc_info -schedulers -receive_allocator -insert_info -instance -insert_instance -mk_res_list -get_alloc_info -process_table -module_table -module_refs -loaded_code -fun_table -external_alloc -export_table -export_list -ets_misc -atom_table -atom_space -aa_mem_data -receive_emd -fix_alloc -au_mem_data -sbcs -mbcs_pool -mbcs -au_mem_current -au_mem_blocks_1 -blocks -au_mem_blocks -acc_blocks_size -ets_alloc -eheap_alloc -binary_alloc -au_mem_acc -au_mem_fix -fix_types -fix_proc -proc -msg_ref -ll_ptimer -hl_ptimer -bif_timer -accessor_bif_timer -get_fix_proc -get_memval -memory_1 -rvrs -processor_node -cput_i2e_tag -cput_i2e_tag_map -cput_i2e -cput_e2i -logical -thread -processor -core -cput_e2i_clvl -internal_cpu_topology -get_cookie -auth -set_cookie -passive_cnct -send_nosuspend -fun_info_1 -disconnect -disconnect_node -crasher -new_stacktrace -prepare_loading_1 -is_alive -garbage_collect_message_area -get_gc_opts -stderr -bad_option -radix -digits_per_small -trim_zeroes -get_sign -combine_pairs -combine -segmentize_1 -segmentize -big_binary_to_int -clean -'no server found' -ebusy -std_error -error_report -file_error -invalid_current_directory -'-prim_read_file_info/3-inlined-0-' -'-prim_list_dir/2-inlined-0-' -'-prim_get_file/2-inlined-0-' -'-open_archive/4-inlined-0-' -'-foldl_archive/3-inlined-0-' -'-start/0-fun-0-' -'-efile_get_mods_par/3-fun-0-' -'-efile_gm_spawn_1/5-fun-0-' -'-prim_get_file/2-fun-0-' -'-prim_list_dir/2-fun-0-' -'-prim_read_file_info/3-fun-0-' -'-open_archive/4-fun-0-' -'-ensure_virtual_dirs/6-fun-0-' -'-ensure_virtual_dirs/6-fun-1-' -'-foldl_archive/3-fun-0-' -'-load_prim_archive/3-fun-0-' -load_prim_archive -real_path -normalize -win32_pathtype -unix_pathtype -pathtype -absname_vr -volumerelative -relative -absolute -ipv4_addr -ipv4_address -ipv4_list -is_prefix -archive_split -no_match -string_match -archive -no_split -name_split -path_join -path_split -to_strs -keyins -keysort -deep_member -send_all -win32 -is_basename -clear_cache -cache_new -foldl_archive -ensure_virtual_dirs -open_archive -cache -apply_archive -prim_get_cwd -archive_read_file_info -prim_read_file_info -archive_list_dir -prim_list_dir -archive_get_file -prim_get_file -primary -prim_set_primary_archive -do_prim_purge_cache -prim_purge_cache -loader_debug -prim_init -port_error -ll_close -ll_open_set_bind -ll_udp_open -ll_tcp_connect -udp_options -tcp_timeout -tcp_options -inet_stop_port -inet_get_cwd -inet_read_link_info -inet_read_file_info -inet_list_dir -inet_send_and_rcv -inet_get_file_from_port1 -inet_get_file_from_port -inet_timeout_handler -inet_exit_port -find_collect -find_loop -connect_master -find_master -bad_return -gm_process -gm_arch_get -gm_get_mods -efile_gm_get_1 -efile_gm_get -efile_gm_spawn_1 -efile_gm_spawn -efile_gm_recv -efile_any_archives -efile_get_mods_par -handle_get_modules -efile_timeout_handler -efile_get_cwd -efile_read_file_info -efile_list_dir -efile_set_primary_archive -emfile -efile_get_file_from_port3 -'prim_load port died' -port_died -efile_get_file_from_port2 -efile_get_file_from_port -handle_timeout -handle_exit -handle_stop -handle_get_cwd -handle_read_link_info -handle_read_file_info -handle_list_dir -handle_purge_archive_cache -handle_set_primary_archive -handle_get_file -bad_state -report -enotdir -enoent -check_file_result -purge_archive_cache -set_primary_archive -get_path -init_ack -noport -efile -start_efile -hosts -start_inet -loader -prim_state -'-filter_fun/0-fun-0-' -'-include_acc/3-fun-0-' -'-get_cd_loop/11-fun-0-' -'-get_cd_loop/11-fun-1-' -'-get_cd_loop/11-fun-2-' -pwrite_binary -pwrite_iolist -skipper -skip_iolist -splitter -split_iolist -local_file_header -local_file_header_from_bin -bad_cd_file_header -cd_file_header -cd_file_header_from_bin -dos_date_time_to_datetime -add_extra_info -cd_file_header_to_file_info -eocd -eocd_and_comment_from_bin -regular -binary_io -set_file_info -prim_file_io -find_eocd_header -seek -bad_eocd -get_end_of_central_dir -get_filename_from_b2 -bad_central_directory -get_file_header -get_cd_loop -get_central_dir -offset_over_z_data_descriptor -unsupported_compression -get_z_all -bad_local_file_header -bad_local_file_offset -get_z_file -get_zip_input -lists_foldl -include_acc -illegal_filter -primzip_file -do_foldl -foldl -primzip -do_open -filter_fun_throw -filter_fun -prim_zip -skip_unicast -skip_multicast -skip_friendly_name -skip_dns_server -skip_anycast -include_wins_info -include_tunnel_bindingorder -include_prefix -include_gateways -include_all_interfaces -include_all_compartments -'-getaddrinfo/2-lc$^0/1-0-' -nif_if_names -nif_if_index2name -nif_if_name2index -nif_get_ip_address_table -nif_get_interface_info -nif_get_if_entry -nif_get_adapters_addresses -nif_getifaddrs -nif_getaddrinfo -nif_getnameinfo -nif_gethostname -if_names -if_index2name -if_name2index -get_ip_address_table -get_if_entry -get_interface_info -no_skips_no_includes -no_skips_all_includes -all_skips_no_includes -all_skips_all_includes -get_adapters_addresses -getaddrinfo -getnameinfo -peek_off -'-supports/2-inlined-0-' -'-init/0-fun-0-' -'-init/0-fun-1-' -'-init/0-fun-2-' -'-init/0-fun-3-' -'-init/0-fun-4-' -'-supports/1-fun-4-' -'-supports/1-fun-3-' -'-supports/1-fun-2-' -'-supports/1-fun-1-' -'-supports/1-fun-0-' -'-supports/2-fun-0-' -'-is_supported/2-fun-4-' -'-is_supported/2-fun-3-' -'-is_supported/2-fun-2-' -'-is_supported/2-fun-1-' -'-is_supported/2-fun-0-' -'-bind/3-lc$^0/1-0-' -'-enc_ioctl_flags/2-fun-0-' -'-merge_sockaddr/2-fun-0-' -'-enc_msg/1-fun-0-' -'-enc_cmsgs/2-lc$^0/1-0-' -level -'-dec_cmsgs/2-lc$^0/1-0-' -nif_cancel -nif_ioctl -nif_peername -nif_sockname -nif_getopt -nif_setopt -nif_shutdown -nif_finalize_close -nif_close -nif_recvmsg -nif_recvfrom -nif_recv -nif_sendfile -nif_sendmsg -nif_sendto -nif_send -nif_accept -nif_listen -nif_connect -nif_bind -nif_open -nif_supports -nif_command -nif_info -p_get -p_put -ioctl_flag -invalid_ioctl_flag -invalid_socket_option -sndctrlbuf -rcvctrlbuf -rcvbuf -iow -controlling_process -otp -enc_sockopt -dec_cmsgs -enc_cmsgs -enc_msg -msg_flag -enc_msg_flags -enc_path -merge_sockaddr -enc_sockaddr -enc_protocol -enc_ioctl_flags -enc_ioctl_request -cancel -sifflags -ioctl_request -ioctl -value_spec -getopt_native -getopt_result -socket_option -setopt_common -setopt_native -finalize_close -recvmsg -improper_list -element_not_binary -invalid_iov -rest_iov -msg -with -ctrl -sendmsg_invalid -iov -sendmsg_result -completion -nth -domain -get_is_supported -p_get_is_supported -is_supported -is_supported_option -fold -supports -protocol -options_table -protocols_table -put_supports_table -msg_flags -ioctl_flags -ioctl_requests -options -protocols -socket_debug -debug_filename -use_registry -registry -unknown_monitor -unknown_socket -'-loop/1-fun-0-' -'-do_which_sockets/2-lc$^0/1-0-' -whoami -user_size -user_which_monitors -user_update -user_take -user_lookup -user_delete -sock_which_monitors -sock_update -sock_take -sock_lookup -mon_size -mon_update -mon_take -mon_lookup -mon_delete -do_cancel_monitor_socket -nosock -mon -msocket -do_monitor_socket -do_which_sockets -sock_size -socket -mk_down_msg -error_msg -mk_log_msg -log_msg -handle_unexpected_msg -handle_monitored_by2 -handle_monitored_by -handle_user_down_cleanup -handle_user_down -bad_request -send_down -handle_send_down -user_sock_delete_update -handle_delete_socket -handle_add_socket -sendfile_deferred_close -'$socket' -which_monitors -number_of_monitors -cancel_monitor -which_sockets -number_of -socket_registry -enqueue_nif -enqueue_input_1 -enqueue_input -bad_memlevel -arg_mem -bad_windowbits -arg_bitsz -bad_eos_behavior -arg_eos_behavior -bad_compression_method -arg_method -bad_compression_strategy -rle -huffman_only -filtered -arg_strategy -bad_compression_level -best_speed -best_compression -arg_level -bad_flush_mode -full -arg_flush -getStash_nif -setStash_nif -clearStash_nif -empty -restore_progress -save_progress -append_iolist -dequeue_next_chunk -dequeue_all_chunks_1 -dequeue_all_chunks -gunzip -gzip -unzip -zip -data_error -uncompress -finish -compress -crc32_nif -getBufSize_nif -getBufSize -setBufSize_nif -setBufSize -inflateEnd_nif -inflateEnd -safeInflate -need_dictionary -finished -yield_inflateChunk -inflateChunk -inflate_opts -inflate_nif -exception_on_need_dict -inflate -inflateReset_nif -inflateReset -inflateGetDictionary_nif -not_supported -inflateGetDictionary -inflateSetDictionary_nif -inflateSetDictionary -inflateInit_nif -cut -inflateInit -deflateEnd_nif -deflateEnd -deflate_nif -zlib_opts -deflate_opts -deflateParams_nif -deflate -deflateParams -deflateReset_nif -deflateReset -deflateSetDictionary_nif -deflateSetDictionary -deflateInit_nif -deflated -deflateInit -set_controller_nif -set_controlling_process -to_posix_seconds -from_posix_seconds -is_path_translatable -decode_path -encode_path -proplist_get_value -reverse_list -altname_nif -get_cwd_nif -set_cwd_nif -get_device_cwd_nif -del_dir_nif -del_file_nif -make_dir_nif -rename_nif -make_soft_link_nif -make_hard_link_nif -read_info_nif -read_link_nif -list_dir_nif -altname -make_symlink -make_link -del_dir -make_dir -set_cwd -get_dcwd -file_info_convert_ctime -file_info_convert_mtime -universal -file_info_convert_atime -throw_on_error -set_time_nif -set_time -set_permissions_nif -set_permissions -set_owner_nif -set_owner -write_file_info_1 -write_file_info -posix -adjust_times -read_handle_info_1 -read_handle_info -read_info_1 -read_link_info -no_translation -gl -list_dir_convert -list_dir_1 -list_dir_all -list_dir -translate_raw_name -read_link_1 -read_link_all -read_link -write_file -read_file_nif -read_file -read_handle_info_nif -delayed_close_nif -get_handle_nif -truncate_nif -allocate_nif -advise_nif -sync_nif -seek_nif -pwrite_nif -pread_nif -write_nif -read_nif -close_nif -file_desc_to_ref_nif -open_nif -read_ahead -fill_fd_option_map -build_fd_data -not_on_controlling_process -get_fd_data -reset_write_position -get_handle -ipread_s32bu_p32bu_nif -ipread_s32bu_p32bu -internal_get_nif_resource -sequential -pwrite_list -pwrite_plain -pwrite -pread_list -pread -position_1 -bof -cur -datasync -sync -allocate -advise -truncate -write_1 -read_line_1 -read_line -read_1 -r_ahead_size -r_buffer -make_fd -file_desc_to_ref -copy_opened -file_descriptor -helper_loop -bound -connecting -accepting -multicast -no_pointtopoint -no_broadcast -down -up -term -ssl -sctp_setadaptation -sctp_assocparams -addr_over -unordered -sctp_assoc_value -sctp_event_subscribe -sackdelay_disable -sackdelay_enable -pmtud_disable -pmtud_enable -hb_demand -hb_disable -hb_enable -sctp_paddrparams -sctp_prim -sctp_setpeerprim -sctp_paddrinfo -eprotonosupport -'-bindx/3-lc$^0/1-0-' -'-type_value_2/2-fun-1-' -'-type_value_2/2-fun-0-' -'-enc_value_2/2-lc$^0/1-1-' -'-enc_value_2/2-lc$^1/1-0-' -ctl_cmd -get_ip6 -get_ip4 -get_ip -get_addr -get_addrs -ip6_loopback -ip6_any -ip6_to_bytes -ip4_loopback -ip4_any -ip4_to_bytes -utf8_to_characters -tree -ktree_keys -ktree_update -ktree_insert -ktree_get -is_defined -ktree_is_defined -ktree_empty -len -rev -build_iflist -build_ifaddrs_opts -build_ifaddrs -encode_ifname -enc_time -dec_status -dec_stats -decode_stats -send_oct -send_max -send_cnt -send_avg -recv_oct -recv_max -recv_dvi -recv_cnt -recv_avg -enc_stats -encode_stats -subs_empty_out_q -dec_subs -decode_subs -enc_subs -encode_subs -encode_ifopt_val -encode_ifopts -decode_ifopts -dec_ifopt -enc_ifopt -mtu -dstaddr -broadaddr -type_ifopt -merge_fields -merge_options -need_template -multi -dec -dec_opt_val -decode_opt_val -enc_opts -encode_opts -once -enc_opt_val -encode_opt_val -enum_name -enum_val -enum_names -enum_vals -borlist -dec_value_tuple -decode -dec_value -flowinfo -scope_id -enc_value_2 -enc_value_tuple -enc_value_1 -enc_value_default -enc_value -family -loopback -uint8 -uint24 -uint16 -sockaddr -sctp_assoc_id -linkaddr -ether -bool8 -binary_or_uint -enum -bitenumlist -type_value_2 -type_value_record -type_value_tuple -type_value_1 -type_value_default -record -type_value -membership -int -uint -mif -opts -type_opt_1 -type_opt -dec_opt -sndbuf -show_econnreset -send_timeout_close -send_timeout -sctp_status -sctp_set_peer_primary_addr -sctp_rtoinfo -sctp_primary_addr -sctp_peer_addr_params -sctp_nodelay -sctp_maxseg -sctp_initmsg -sctp_i_want_mapped_v4_addr -sctp_get_peer_addr_info -sctp_events -sctp_disable_fragments -sctp_delayed_ack_time -sctp_autoclose -sctp_associnfo -sctp_adaptation_layer -reuseport_lb -reuseport -reuseaddr -recvttl -recvtos -recvtclass -recbuf -read_packets -pktoptions -nopush -nodelay -netns -multicast_ttl -multicast_loop -multicast_if -low_watermark -low_msgq_watermark -keepalive -ipv6_v6only -high_watermark -high_msgq_watermark -header -exit_on_close -exclusiveaddruse -drop_membership -dontroute -deliver -delay_send -buffer -bind_to_device -add_membership -enc_opt -is_sockopt_val -attach -detach -unrecv -getservbyport1 -getservbyport -getservbyname1 -getservbyname -gethostname -getstatus -getprotocol -gettype -getindex -ignorefd -getfd -getstat -subscribe -ifset -ifget -getiflist -netmask -broadcast -pointtopoint -getifaddrs_ifget -hwaddr -hwaddr_last -comp_ifaddrs_3 -comp_ifaddrs_2 -comp_ifaddrs_flags -comp_ifaddrs -enotsup -getifaddrs -chgopts -chgopt -getopts -getopt -setopt -socknames -setsockname -sockname -sctp_assoc_change -peernames -setpeername -peername -recvfrom0 -recvfrom -async_recv -recv0 -recv -sendfile_1 -sendfile_maybe_uncork -sendfile_maybe_cork -sctp_default_send_param -sctp_sndrcvinfo -sendmsg -uint32 -do_sendto -sendto -peeloff -listen -async_accept -accept_opts -accept0 -accept -connectx0 -addr_list -connectx -async_connect0 -async_connect -connect0 -bindx_check_addrs -bindx -addr -do_bind -bind -send_pend -close_pend_loop -close_port -linger -shutdown_1 -read_write -drv2protocol -sctp -protocol2drv -seqpacket -dgram -enc_type -inet6 -enc_family -bool -fdopen -prim_inet -arg_reg_alloc -prim_eval -peek_head -copying_read -unlock -try_lock -find_byte_index -wipe -write -read_iovec -read -shutdown_timeout -not_allowed -starting -'-to_string/2-lc$^1/1-1-' -'-to_string/2-lc$^0/1-0-' -'-notify/1-fun-0-' -'-get_pids/2-lc$^0/1-0-' -'-do_boot/2-fun-0-' -'-eval_script/2-fun-1-' -'-eval_script/2-fun-2-' -'-eval_script/2-fun-0-' -'-load_modules/2-lc$^0/1-0-' -'-load_modules/2-lc$^1/1-2-' -'-load_modules/2-lc$^2/1-3-' -'-load_modules/2-lc$^3/1-4-' -'-load_modules/2-lc$^4/1-1-' -prepared -'-prepare_loading_fun/0-fun-0-' -'-patch_path/2-lc$^0/1-0-' -'-patch_dir/2-lc$^0/1-1-' -'-patch_dir/2-lc$^1/1-0-' -'-shutdown_timer/1-fun-0-' -'-run_on_load_handlers/2-fun-0-' -'-run_on_load_handler/2-fun-0-' -standard_error -format -io_lib -'-debug_profile_format_mfas/1-fun-0-' -'-collect_loaded_mfas/0-lc$^1/1-0-' -'-collect_loaded_mfas/0-lc$^0/1-1-' -bad_generator -'-collect_loaded_mfas/2-lc$^0/1-0-' -collect_mfa -collect_mfas -all_loaded -collect_loaded_mfas -sort -debug_profile_format_mfas -snifs -debug_profile_mfas -debug_profile_stop -debug_profile_start -on_load_function_failed -on_load_handler_returned_ok -spawn_monitor -run_on_load_handler -running_on_load_handler -on_load_loop -on_load_handler_init -start_on_load_handler_process -run_on_load -run_on_load_handlers -archive_extension -objfile_extension -set_argument -get_argument1 -to_strings -get_flag_args -get_flag_list -get_flag -update_flag -get_args -flag -check -start_extra_arg -start_arg2 -start_arg -eval_arg -end_args -arg -parse_boot_args -timer -flush_timout -shutdown_time -shutdown_timer -load_module -do_load_module -explain_add_head -otp_release -nofile -explain_ensure_loaded_error -exprs -new_bindings -erl_eval -parse_exprs -erl_parse -erl_anno -dot -erl_scan -start_it -start_em -start_in_kernel -funny_splitwith -funny_split -directory -file_info -read_file_info -patch_dir -patch_path -extract_var -add_var -fix_path -make_path -prepare_loading_fun -load_rest -load_failed -get_modules -load_modules -'unexpected command in bootfile' -kernel_load_completed -primLoad -preLoaded -kernelProcess -eval_script -get_cwd -script -'bootfile format error' -'cannot get bootfile' -not_found -get_boot -pz -pa -path_flags -bootfile -invalid_boot_var_argument -boot_var -get_boot_vars_1 -get_boot_vars -no_or_multiple_bindir_variables -bindir -check_bindir -no_or_multiple_root_variables -root -get_root -es -init__boot__on_load_handler -init_debug_flag -init_debug -path -do_boot -add_to_kernel -set_path -start_prim_loader -kernel_pid -terminate -del -sub -do_unload -logger_server -unload -kill_all_ports -kill_em -get_pids -kill_all_pids -resend -shutdown_loop -shutdown_kernel_pid -get_kernelpid -get_logger -heart -get_heart -prepare_shutdown -global_name_server -global_prepare_shutdown -shutdown_pids -stop_heart -clear_system -do_restart -do_stop -stopping -set_flag -config -stdout -io_request -user -do_handle_msg -new_state -handle_msg -loop -new_kernelpid -garb_boot_loop -foreach -get_file -erl_prim_loader -do_ensure_loaded -progress -boot_loop -crash -halt_string -things_to_string -flatten -join -printable_list -to_string -state -relaxed -strict -code_path_choice -map -b2s -b2a -s -eval -prepare_run_args -profile_boot -stop_1 -is_bytelist -reboot -interactive -embedded -mode -request -wait_until_started -notify_when_started -make_permanent -ensure_loaded -fetch_loaded -get_status -bs2ss -bs2as -set_script_name -absname -filename -get_script_name -script_name -script_id -get_argument -get_plain_arguments -get_arguments -set_configfd -get_configfd -done_in_microseconds -debug -'-start/2-fun-0-' -'-restart/0-fun-0-' -if_loaded -fatal -boot -continue -died -test_progress -do_test_hard_purge -continued -started -do_test_soft_purge -do_test_purge -cpc_make_requests -cpc_request -cpc_sched_kill -cpc_sched_kill_waiting -cpc_list_rm -cpc_handle_down -cpc_reverse -cpc_result -cpc_receive -cpc_kill -cpc_static -check_proc_code -do_finish_after_on_load -do_soft_purge -do_purge -check_requests -soft_purge -purge -change_prio -test_purge -handle_request -wait_for_request -sleep -other -gc -check_io -aux -prim_net -prim_socket -zlib -prim_buffer -prim_tty -'TRACE' -'DELETE' -'PUT' -'POST' -'HEAD' -'GET' -'OPTIONS' -'Proxy-Connection' -'Keep-Alive' -'Cookie' -'X-Forwarded-For' -'Set-Cookie2' -'Set-Cookie' -'Accept-Ranges' -'Last-Modified' -'Expires' -'Etag' -'Content-Type' -'Content-Range' -'Content-Md5' -'Content-Location' -'Content-Length' -'Content-Language' -'Content-Encoding' -'Content-Base' -'Allow' -'Www-Authenticate' -'Warning' -'Vary' -'Server' -'Retry-After' -'Public' -'Proxy-Authenticate' -'Location' -'Age' -'User-Agent' -'Referer' -'Range' -'Proxy-Authorization' -'Max-Forwards' -'If-Unmodified-Since' -'If-Range' -'If-None-Match' -'If-Match' -'If-Modified-Since' -'Host' -'From' -'Authorization' -'Accept-Language' -'Accept-Encoding' -'Accept-Charset' -'Accept' -'Via' -'Upgrade' -'Transfer-Encoding' -'Pragma' -'Date' -'Connection' -'Cache-Control' -process_low -process_normal -process_high -process_max -characters_to_list_trap_4 -characters_to_list_trap_3 -characters_to_list_trap_2 -characters_to_list_trap_1 -characters_to_utf8_trap -md5_trap -ram_file_drv -udp_inet -tcp_inet -sendfile -ttl -tclass -tos -empty_out_q -udp_error -udp_passive -tcp_error -tcp_closed -tcp_passive -inet_reply -inet_async -udp -tcp -unspec -inet -spawn_forker -vanilla -delete_trap -select_trap -replace_trap -count_trap -select_delete_trap -darwin -unix -erts_beamasm -list_to_integer -binary_to_integer -from_keys -unalias -beamfile_module_md5 -beamfile_chunk -prepare_loading -get_creation -abort_pending_connection -ets_raw_next -ets_raw_first -ets_lookup_binary_info -spawn_system_process -counters_info -counters_put -counters_add -counters_get -counters_new -compare_exchange -exchange -add_get -add -atomics -atomics_new -erase_persistent_terms -persistent_term -internal_select_delete -internal_delete_all -is_map_key -map_get -gather_carrier_info -gather_alloc_histograms -map_next -new_connection -get_dflags -iolist_to_iovec -set_signal -fmod -ceil -floor -has_prepared_code_on_load -copy_shared -size_shared -split -purge_module -check_dirty_process_code -is_process_executing_dirty -map_info -fun_info_mfa -take -cmp_term -values -update -remove -merge -keys -is_key -from_list -find -maps -map_size -is_map -inspect -printable_range -binary_to_float -float_to_binary -integer_to_binary -delete_element -insert_element -finish_loading -dt_append_vm_tag_data -dt_prepend_vm_tag_data -dt_restore_tag -dt_spread_tag -dt_get_tag_data -dt_get_tag -dt_put_tag -posixtime_to_universaltime -universaltime_to_posixtime -check_old_code -native_name_encoding -file -is_translatable -internal_normalize_utf8 -internal_native2name -internal_name2native -prim_file -nif_error -decode_unsigned -encode_unsigned -referenced_byte_size -list_to_bin -part -at -longest_common_suffix -longest_common_prefix -matches -compile_pattern -binary_part -finish_after_on_load -call_on_load_function -load_nif -setopts -give_away -dflag_unicode_io -binary_to_existing_atom -binary_to_atom -atom_to_binary -bin_is_7bit -characters_to_list -characters_to_binary -decode_packet -update_element -bitstring_to_list -list_to_bitstring -bit_size -byte_size -tuple_size -is_bitstring -list_to_existing_atom -iolist_to_binary -iolist_size -make_fun -string -is_boolean -get_module_info -warning_map -hibernate -lcnt_clear -lcnt_collect -lcnt_control -dirty -interpreter_size -instructions -dist_ext_to_term -set_internal_state -get_internal_state -flat_size -same -disassemble -keyfind -keysearch -keymember -reverse -lists -internal_run -run -format_error_int -loaded_drivers -try_unload -try_load -erl_ddll -perf_counter -getpid -unsetenv -putenv -getenv -os -match_spec_run_r -match_spec_compile -select_replace -select_reverse -select_count -select -update_counter -slot -safe_fixtable -rename -insert_new -insert -prev -next -member -match_object -last -lookup_element -lookup -is_compiled_ms -delete_object -delete -internal_request_all -match_spec_test -is_record -is_function -is_binary -is_reference -is_port -is_pid -is_number -is_integer -is_float -is_tuple -is_list -is_atom -subtract -append -'!' -is_builtin -raise -is_process_alive -fun_to_list -port_to_list -ref_to_list -system_profile -system_monitor -system_info -system_flag -append_element -make_tuple -read_timer -cancel_timer -send_after -start_timer -pow -atan2 -sqrt -log10 -log2 -log -exp -erfc -erf -atanh -atan -asinh -asin -acosh -acos -tanh -tan -sinh -sin -cosh -cos -math -bump_reductions -resume_process -suspend_process -seq_trace_print -seq_trace_info -seq_trace -trace_delivered -trace_info -trace_pattern -port_get_data -port_set_data -send_copy_request -release_area_switch -erts_literal_area_collector -spawn_request_abandon -no_aux_work_threads -dist_spawn_request -ets_super_user -create_dist_channel -dirty_process_handle_signals -system_check -is_system_process -perf_counter_unit -time_unit -map_hashmap_children -term_type -map_to_tuple_keys -check_process_code -request_system_task -port_connect -port_close -port_control -port_command -port_call -port_info -dist_ctrl_set_opt -dist_ctrl_get_opt -dist_ctrl_get_data_notification -dist_ctrl_get_data -dist_ctrl_input_handler -dist_get_stat -setnode -spawn_opt -whereis -unlink -universaltime_to_localtime -universaltime -tuple_to_list -trunc -tl -time -term_to_iovec -term_to_binary -statistics -split_binary -spawn_link -spawn -setelement -self -round -registered -put -process_info -process_flag -pre_loaded -pid_to_list -open_port -system_time -monotonic_time -now -nodes -monitor_node -function_exported -module_loaded -md5_final -md5_update -md5_init -unique_integer -make_ref -localtime_to_universaltime -localtime -list_to_tuple -list_to_ref -list_to_port -list_to_pid -list_to_float -list_to_binary -list_to_atom -link -length -integer_to_list -hd -phash2 -phash -halt -get_keys -get -fun_info -float_to_list -float -external_size -exit_signal -erase -element -display_string -display -delete_module -date -crc32_combine -crc32 -binary_to_term -binary_to_list -atom_to_list -adler32_combine -adler32 -abs -debug_hash_fixed_number_of_locks -auto -nifs -yield -yes -x86 -xor -write_concurrency -wordsize -warning_msg -warning -wall_clock -waiting -wait_release_literal_area_switch -visible -version -value -unsafe -unload_cancelled -unloaded_only -unloaded -unless_suspending -unit -uniq -unblock_normal -unblock -utf32 -utf16 -utf8 -used -use_stdio -urun -unregister -unicode -ungreedy -undef -explicit_unalias -ucp -ucompile -type -try_clause -trim_all -trim -trap_exit -tracer -trace_status -trace_control_word -traced -trace -tpkt -total_run_queue_lengths_all -total_run_queue_lengths -total_heap_size -total_active_tasks_all -total_active_tasks -total -timestamp -'*' -timeout_value -time_offset -threads -thread_pool_size -this -term_to_binary_trap -tag -table_type -table -system_architecture -system_version -system_limit -system_flag_scheduler_wall_time -system -suspending -suspended -suspend -sunrm -success_only -strict_monotonic_timestamp -strict_monotonic -stream -stop -stderr_to_stdout -status -start -stack_size -ssl_tls -spawned -spawn_service -spawn_request_yield -spawn_request -spawn_reply -spawn_init -spawn_driver -spawn_executable -skip -size -silent -sigquit -sigtstp -sigsegv -sigint -sigstop -sigalrm -sigabrt -sigchld -sigill -sigusr2 -sigusr1 -sigterm -signed -sighup -shutdown -short -set_tcw_fake -set_tcw -set_seq_token -set_on_spawn -set_on_link -set_on_first_spawn -set_on_first_link -set_cpu_topology -set -serial -sequential_trace_token -sequential_tracer -sensitive -send_to_non_existing_process -send -seconds -second -scope -scientific -scheme -schedulers_online -scheduler_wall_time_all -scheduler_wall_time -scheduler_id -scheduler -sbct -save_calls -safe -runtime -running_procs -running_ports -running -runnable_procs -runnable_ports -runnable -run_queue_lengths_all -run_queue_lengths -run_queue -run_process -reuse -return_trace -return_to_trace -return_to -return_from -resume -restart -reset_seq_trace -reset -report_errors -reply_tag -reply_demonitor -reply -rem -reload -registered_name -register -refc -reductions -recent_size -receive -reason -ready_output -ready_input -ready_error -read_concurrency -re_run_trap -re_pattern -re -raw -queue_size -public -ptab_list_continue -protection -protected -profile -proc_sig -procs -process_dump -process_limit -process_display -process_count -processes_used -processes -process -private_append -private -priority -print -prepare_on_load -prepare -position -positive -port_op -port_limit -port_count -ports -port -pid -permanent -pending_reload -pending_purge_lambda -pending_process -pending_driver -pending -pause -'++' -'+' -parent -parallelism -packet_size -packet -owner -overlapped_io -outstanding_system_requests_limit -output -out_exiting -out_exited -out -os_version -os_type -os_pid -orelse -ordered_set -or -opt -open_error -open -on_load -on_heap -old_heap_size -old_heap_block_size -ok -offset -off_heap -nouse_stdio -notsup -notify -notempty_atstart -notempty -noteol -notbol -notalive -not_purged -not_owner -not_pending -not_loaded_by_this_process -not_loaded -not_a_list -not -not_suspended -no_start_optimize -no_network -no_integer -no_float -no_fail -nosuspend -normal_exit -noproc -noeol -nodeup -nodedown_reason -nodedown -node_type -node -noconnection -noconnect -no_auto_capture -nomatch -newline -new_uniq -new_ports -new_processes -new_index -new -never_utf -net_kernel_terminated -net_kernel -'/=' -'=/=' -need_gc -native_addresses -native -namelist -named_table -name -nanosecond -nano_seconds -multiline -multi_scheduling -more -monotonic_timestamp -monotonic -monitors -monitor_nodes -monitor -monitored_by -module_info -module -'--' -'-' -minor_version -minor -min_bin_vheap_size -min_heap_size -min -millisecond -milli_seconds -microstate_accounting -microsecond -micro_seconds -meta_match_spec -meta -merge_trap -messages -message_queue_len -message_queue_data -message -memory_types -memory_internal -memory -md5 -mbuf_size -max_heap_size -maximum -max -match_spec_result -match_spec -match_limit_recursion -match_limit -match -major -magic_ref -machine -'<' -low -long_schedule -long_gc -logger -local -load_failure -load_cancelled -loaded -little -list_to_binary_continue -list -links -linked_in_driver -line_length -line_delimiter -line -lf -'=<' -ldflags -latin1 -last_calls -large_heap -label -known -kill_ports -killed -kill -keypos -iovec -iodata -io -iterator -is_seq_trace -is_constant -invalid -instruction_counts -internal_error -internal -integer -input -initial_call -init -inherit -info_trap -info_msg -info -index -inconsistent -incomplete -include_shared_binaries -inactive -in_exiting -in -ignore -if_clause -id -httph_bin -http_bin -http_error -http_eoh -http_header -http_request -http_response -https -httph -http -high -hide -hidden -heir -heart_port -heap_type -heap_sizes -heap_size -heap_block_size -have_dt_utag -handle -group_leader -grun -'>' -global -getting_unlinked -getting_linked -gather_system_check_result -gather_sched_wall_time_result -gather_microstate_accounting_result -gather_io_bytes -gather_gc_info_result -get_tcw -get_tail -get_size -get_seq_token -get_internal_state_blocked -get_all_trap -generational -'>=' -gc_minor_start -gc_minor_end -gc_max_heap_size -gc_major_start -gc_major_end -garbage_collection_info -garbage_collection -garbage_collecting -garbage_collect -function_clause -functions -function -fullsweep_after -free -format_cpu_topology -format_bs_fail -force -flush_monitor_messages -flush -flags -firstline -first -fd -fcgi -extra -external -extended -exports -exiting -existing_ports -existing_processes -existing -exited -exit_status -exclusive -exception_trace -exception_from -exact_reductions -'ETS-TRANSFER' -ets_info_binary -ets -erts_internal -erts_dflags -erts_debug -erts_code_purger -error_only -error_logger -error_info -error_handler -erl_signal_server -erlang -erl_tracer -erl_stdlib_errors -erl_kernel_errors -erl_init -erl_erts_errors -'==' -'=:=' -eol -eof -ensure_exactly -ensure_at_least -env -endian -enabled -enable_trace -emulator -emu_type -emu_flavor -einval -dynamic_node_name -dupnames -duplicated -duplicate_bag -dsend_continue_trap -driver_options -driver -dotall -dollar_endonly -'$_' -'$$' -dmonitor_node -div -'/' -dist_spawn_init -dist_data -dist_ctrlr -dist_ctrl_put_data -dist_cmd -dist -discard -disabled -disable_trace -dirty_nif_finalizer -dirty_nif_exception -dirty_io -dirty_execution -dirty_cpu_schedulers_online -dirty_cpu -dirty_bif_trap -dirty_bif_result -dirty_bif_exception -dictionary -deterministic -demonitor -delay_trap -default -decimals -decentralized_counters -debug_flags -data -current_stacktrace -current_location -current_function -creation -crlf -cr -cpu_timestamp -cpu -count -counters -copy_literals -copy -control -continue_exit -context_switches -const -connection_id -connection_closed -connected -connect -convert_time_unit -config_h -compressed -complete -compile -compat_rel -compact -commandv -command -code -closed -close -clock_service -clear -check_gc -characters_to_list_int -characters_to_binary_int -'CHANGE' -cflags -cdr -cd -cause -catchlevel -caseless -case_clause -capture -caller_line -caller -call_trace_return -call_time -call_memory -call_error_handler -call_count -busy_port -busy_limits_msgq -busy_limits_port -busy_dist_port -busy -build_type -build_flavor -bsr_unicode -bsr_anycrlf -bsr -bsl -breakpoint -break_ignored -bxor -bor -bnot -bm -blocked_normal -blocked -block_normal -block -binary_to_term_trap -binary_to_list_continue -binary_longest_suffix_trap -binary_longest_prefix_trap -binary_find_trap -binary_copy_trap -binary -bif_return_trap -bif_handle_signals_return -big -band -bag -bad_map_iterator -badtype -badopt -badsig -badrecord -badmatch -badmap -badkey -badfun -badfile -badarity -badarith -badarg -backtrace_depth -backtrace -awaiting_unload -awaiting_load -await_sched_wall_time_modifications -await_result -await_proc_exit -await_port_send_result -await_microstate_accounting_modifications -await_exit -auto_connect -attributes -atom_used -atom -asynchronous -async_dist -async -asn1 -arity -arg0 -args -apply -anycrlf -any -andthen -andalso -and -anchored -amd64 -already_loaded -already_exists -allow_passive_connect -alloc_util_allocators -allocator_sizes -allocator -allocated_areas -allocated -alloc_sizes -alloc_info -all_names -all_but_first -all -alive -alias -active_tasks_all -active_tasks -active -access -ac -absoluteURI -abs_path -abort -abandoned -'EXIT' -'UP' -'DOWN' -none -no -nil -undefined_lambda -undefined_function -nocatch -undefined -exit -error -throw -return -call -normal -timeout -infinity -'' -'$end_of_table' -'nonode@nohost' -'_' -true -false -=end diff --git a/aoc2023/src/day1/input.txt b/aoc2023/src/day1/input.txt deleted file mode 100644 index 6efe96c..0000000 --- a/aoc2023/src/day1/input.txt +++ /dev/null @@ -1,1000 +0,0 @@ -9dlvndqbddghpxc -rtkrbtthree8sixfoureight6 -fdxrqmfxdkstpmcj7lmphgsmqqnmjrtwo3tcbc -onetjcsmgk57nvmkvcvkdtqtsksgpchsfsjzkkmb -six8threepvlxttc85two -8five9ttqst2one2vz -hbrmhsnjeight64dgdnvdbspk7ninetzbvjczqrj -fourtwofivesix5 -3gksfourqf48 -7one1tnqxfvhmjvjzfive -sevenmcjs3lmlmxmcgptwobjggfive6four -seven8five3 -5sfknxsn5sevenfour446 -bxc5two67seven2 -jcsfivefive89seven85 -nine296 -seven5twoeight -1eighttwo8jfnhmfivefivezdsxqxqsjkone -foureight48sbkkvc17zbksgvcbb -lnzgspccsn4cxqqdbkj -qlxrxkpeight48xbgqnlkpkoneseven -z7onetwonec -7cns -pnpfninefive79twoone7 -2hrqpjjjbn -4gmlttgdzrhxbxnnine -4sixfiveone76jctmjsxdh5jrkv -3kvjmhpmglrdgmdnine -four63sevensevenone -jmz1eight4threej1 -four21zxksf9jxdvjmtn337 -msnronenine43three1threefrv -rjfhd6eight4 -78blgveightfiveone7bnsfnrmxsmtwonemrb -sixseven6four6 -mdjphcm9 -xsjmgdgqtwolg1nine45eight -five2six85npdqxgrshdjs4 -jbbnine2ttrktc2hxpxfdxgf -fngvqsgmjfmfslrmone2vtpsstpkhr2jmmxk -f683glvfsdvnsghvrzcdmxnx81 -lqblzgj322kqfsjrbxgcgsct -threeldfnrbstbxqdpxpkbztbp84eight -sevensevenmthprqg9six -qldknljthdjthreeklttd6six -7eightcdqxcftbgbfbnvqfive -gxjzhvkbcjhscdxhjdqxnhsevenxrdrjbcl5fvlvlxjjvb -9sixqnine9jk9six -zjtdbzr6njdgflrmpshxn -rktpknvmjknb7threefourhdxhcdtgtkvone -276lzxhone3two2 -82fivelppqzjq -lchslxtwohslsztgps5pdssctclhdkqtwo -2five8three9dnine8 -68jpnqldjgfnpcmvbxnszhz2252 -q32 -2sixtwo87 -hlmdvlrqlrjdshone3five -fivetwo7 -xsdcktrone29 -eightfour9eighttwoxvhdth9lndg4 -two8jgddjhcj67eight -8nrkrcrqhr21stqtvqn -tvbonepzrrklninexmpxrlkcpgg9qgrkcjt -6two5qjmoneclfhzhkxbntmvmdrc -prhmt4xvlg -3mghfgrhzkj5 -lq2lnrcj1pnlh -sixqhfqrmf8fivenkkcqpgf85lone -tlrlcbhdvd5 -three8seven -thfns325threefpvlntfvrf -twoblkldr2mmrsxpqxcms39seven6 -2mpcvttntg31mkznplfkbcgccsix -2sbs -828jnvjnbgrs1 -fhcglnxzss23bxfnpczvthree2 -7fhghprqvrbx1nxml2one32 -5fivethree7qrsixmcdveight6 -five4seven -1cfcfdzfjphsevenmdvnzh -qhmnleightbhbcntwojjfxpvlxt2spponenine -fivelskzvzsix5xtqkfl1 -2jfgpmdncvpjmqcgvnzpqlstzgfdvfxrlscjkzczsf -rzzplmzsfivetxbhcqnzdq4 -mvrvfour9eightseventhree -7smrdqkrh8qlzc -mpf2fivefivefivepgm -1sixpkrdjlszgdnccnllfsevenksdkvqbxbpbblthqpzqf -six91dxxdhrxcbmqpqm -sevenfour8nine7 -one2hnfvh -55jmqkqgvsgqcrzvmzqhone8twopsrtgmqrj -xnfjxqlrsjmgk68kvpptczxhkxcvrpgctddjklrmhzjgtcjh -seveng6two -1threexrzqcrknhc3 -58qtpqqz58888cmhs -pxvbhmczrvpnjnsrcdrnrjvzzpjnbgbxdseven6 -34two565 -four4six -sqtxsjsix54 -four3xrxmrkn4nrcsmljqrninethreeone -3six4bqddfivejnfrhnqqsgqhj -gtbtrtzp8seveneight3seven4xzdnfrvzgn -vggfdfvlrgvqqvjhkmxfsfbdpqfivexs16 -onegkvdhrfninerndk46nine -5fiveeighthnrlzln -threeqctjkpxjx39six89two2 -99ninecbzck -nxqlhpgnine6pvrrpfjpssix6seven -1dbrzjkckthm5sixsix -fivefmfqcsj19nhnzg -five91eightninecn -7ljnl71eight7mzhzfht -84sevenzrqvkxszdhg66 -jskktpm5mphd1 -boneightfournq6ndnqpdbm97five -5twonine -scqpkxrjtwo8foureight11 -3eight7brgqfivezpgclhfj -zkfrsdgbmczlrzchvfql78ftsdqk8vmqccbn -oneseven3kgdkjzkmq94 -sgtwo59kdmhbndzd -threeone37 -mqxvrhmrpqnltvt9lrpplmttkhdvtln9 -onecxqvr48six2 -pjnx2eight7five -two189one6gbqvllzb35 -psvxjhscstjfkbpxhbbb4zvdjbcdxqrqzqlzp -n18hmhzrqjrpcxztwo -6two46zblgrbmjcqbnxqcnbf -7kxsjdqcmxrvmdtscvxgrnhrmrfour -onedzeight8qfive2 -seven9bkjone2sixqnztq21 -fiveninesixfkzlsn8fivembfjnx4threetwonexb -5zmxtcmzqqdthreetczccnxhkxrbntmfoursixjhhrsdxthree -1four2xpkfgcn -88trnvjtqsmseight8 -pbbpbfgsrst5five -jvgvdseven2two -962sixoneonectfgpknl8nine -rkbnzz1l42eightflb4 -twoxfll2fourbjfjgxfbtk -35fourtwo -lq56ninefour1three -77ztlmqxcxrj745 -nnvqrthreedt2eight6hvrlnpbts -6five6225sixfnzzbh -nine1three -8xgdsdfgcfourlhn -2three3ninelckpddbmdrfournine -89zmvxnlrj7658kjdjchq -pfhbgpb66twogpn7twobpvrbmmrvp -8hgqmztnmhkcr6xrxrbhj -6fivemnfcvvx8 -3mxpvgzq9ninebmlktwo -thzhbsl49seventhree1bdxcrgjq -rlcfour3ffkxxrhb -rkj2eightfive -xqncfnhkcqxqjgbsjhnrgm6 -ninefour52ninefourtworhsix -lpzcmxt97mlkjhlcone -two4qkmqgrpltkrdsctpnsqmbtptklprx6ncfpseven -61shxgxdqqqzngnnzeightkhmgrxprb2sixjx -9eightfour3one6seven -eight4sixqjxdjnzmkfflpfmkf -3bfc71 -14sevenfivezzmt8cpptl -1sgrzdqdndsevenninembzvfive -lxftrbfcqfoneeightrsdxlnp1x2jsgn2 -vlfcjfourmtxbcngpjvkcctvbgkgpvvqpsg1 -116five132seven -eightpvfsfbfzjcdcvh8kbrcz357 -99two -four6six -fzzklmnxvfrhd62xmftbrhgsslrlqv -5six55zbdlgc -62nineone8qcglr1 -sddddseven55fourlpqzbgzfive5 -eighteight17 -nine98 -three9qqxgfpjfkeight81nine2 -twotwosevenvkzzhrpgninecqvf9 -lkhf5onexsrtwo -8hfzvnzrd -9threeninethreeseven -onedpgjzsixxs4cg5jlvzcsbd -fgmfive97 -4fivefourckthree -nine1fivefour -7qlchtvd -tmtmtnxdpsvfour4621four6 -5qfvzh7seven -fourfivebqnpzbg8three -34kd9four5seven8three -kcqcxzmnkdt5twojdggp -4lvbfdpzjsdthreeldvkcbqrspktwo -2nine93foursixnine5 -8tbpjgmxltwojlpbnsvqhsjfcjcfvcrjqppdb5seven -8twodcpglrxcq23sixfour -3sixvczzqsfive -1three45jh54tbdvkj -pdrzqxdtcnbrnine8zvffmrtwo11 -3eight54sksqfxhzcdfour -7hsllsjtxtwo9jhjlhthreekdfssninetcjjrm -9sgmnine1kjmhjthree -nineseven9five -ggdcphlstwoonethreeffgmrseven2xsbsf2 -75ssbccflrrf4lpmptcqjcmfbpklqc -5six2threedvvlxdxsixvxxghpddn8pbnr -tlbjnlxfxvnine4grhj71hnf6 -964eighteight4eight6t -5qbmnsone1fourseventwo -oneseven1five9two -5fdpl37vklxpth672 -4czvrnxtlfiveseven74 -qdgqbsd5fourfive -ddrqjnkbq87six2fourmtghdtvtl7 -zdldjnfxms692rbdfgvtsevenxzfjpnsf -nsqtkbbfhn8threesix3fivefoursix6 -sfxjzhpqqslfourmpph44threetwo -onefive3seven21 -9eight1sevenfive7nine -7twonrthgr73vzb -18onefourhxxm -3xvboneightlb -3ftqct9 -8five55 -4eightmzrlfjqqddffgmfl -74mhzvktwolgpvrvnphc -sixnine694ninetwo -bzpnktvcqleight2 -5oneeight1five2dszthreedncqzmhc -eightfrbmcblrghgmpkrdnh7fournzbvtrzvhchsix -threethreeoneone6kbghfst -4fiveonexfchmclqhqfive -1t3nine -57jclthreefourbtdgsggzh -qpc9fhddthreefive -9eightnine7cgpbbnine8 -88twoxbzjp6fmqlznzgpgdqmmnpmkvctm -threelb9four168qpchgnfn -4onekrlmslkd7five -4jfxtsseven -zsthvnxpf7 -656three -453seven -zxmr55hgnvtjbbqhfsxssjxzshcbkvsbzg1 -pbkffqzrbvxvqjfgkpmp5 -ninesix677lpqpgmc -sixgmb67fzdhnnfk7 -jlgjbltbtwotwoeight9sixninevlngvvj -xdxqdhps9sevenzmzdlnvsix3oneightj -ninetwokpzvvqlgtcfx2 -dqmjchlbj7sevenfive -61eight9kjmxclvdrdmvnthree -8nine6three -3ndpknone -seven4one -8dxljzpk8twoxfmhbqnmqeightdhxvpgxcnine5 -6five3seven -rzgfivenxhpr6gxqflrskhjhvoneonegzbclk -jrvjhkfv7sqnsz86five5skvvmspvjd3 -sevensix3c6llkmsmmssf3 -sevendf73eight74 -7bqbbvmq2krkbhlsh -3dqq55eightcptwo -2bjgfrgrtgnfour -44xznjjvlhzclsix -seven6rtzponeseven -6ghvvkhrzvjzpxlbkonejlmrhq -zgsxthree6 -3crzdvbnhtsgldjvbpsixbjmlxsv3vrzjtv -xcpnbsevengpffknsv84sixsixseven -four898xkqnhspbqmtcs -5twonine -six2ltwosix -cnine22sixeightwost -6lx63two -fbqoneight3five -rbtwone2eight8 -9fivezrsdfkdlqone1nthjvdlmxhqvj -pmmfp8seven -1qmttlsjpxjbsrzmbtlxqzfzvrs968 -fgdonexgvvnine5jsm -rbgmbtwo9fsntcthreesix76 -fbrsxxshseven3gtv -mkxfour66one9n -eightnine1fivecsixlqds2 -lhxnxhfnmlmhxkcxndmnine1kfpb5eight -6eight13rseven6 -hxcfone64ninesevenbgsnrqppqmnnineeightwof -threebjpbtpzgx5mnthreensixoneightz -bpdvfqlzthree2vvcmvzllqfbgjgp -two926sixeightdsvdmnxthreetnqvktdbn -bhntwonefourninejjcmlfphzpseven95 -prqoneightseven1nbcxnqjfourfivecmj2 -stwone1oneninevcrfzpfourfivetwo -ztkknhjr9six8 -twomlvrzm934seveneight -ntnn1bqgbxf13rqdqtcrbpeighttwo -seven58ninemdqonecrkbdblone -foursixthree1oneeightone62 -8385dhgcqjtrsixtwo8 -blpzxstwosevenqbdhkb8sfggkbdhx5rzftqsf -mqbeightwoninefourlgcj9 -njvpkpvjpmvmbsrdgdvx7frrgvnfrmmrfrhqdtwothree8 -rtwonesxxone8tnine -2xqgrqmone73five -5ggzdxvptwonineeightdj -svqhzhzbsmhljxeight7hljd -one81kmnmpmfkseven -9ninefourbvbpljb3nineqxnkgzgj -sixfour7nvdfhnd -24twoseven52 -425vqnhmrpxthreenine3bkjpvs -8fzqqspdp6 -427five9zhbxpbr -1qjnxxkgqhp -eightxzthreelrbgfbvmrpmtgvrfgqmjlshbqv5 -onetwo4 -three194bfivevknbqxv -1mjhplcvheightlnvn7two -rmptjk5seventhreeonesevenkdxfkvdz -threesix8kpmrvgkpsix -fjfbx6eight3fourninesp -six3nhonebtdzppnxkr -xgtltdtwoninesix62szphpcmtv6 -fiveeight9seventhreesevengndgdfv -ninetwosmcbfkvf5hvksvfbr3ssbntlk2 -qjrdlmone7tqrzlvfourvfbvtkjxfpkffdpjnine -sevenfqnsnqt89five5 -16sevenxtdrtmdzrxhneightwot -8ttreight4eight -three9nine3832four -fivesncggngss8qzfvj -twotwo7sgtcgrmdnr545 -6xk7threejmgnqnsevenmczscqxqxfour -twosix4eight -kxm15two844eight -twoeight5sevenfour -five56three -threekdjgcdd6one -clchjoneeightrqgk8bdsdmzm -twog546two6x -5nine4bmhbtbksxreightoneightkg -gjfkbsr1gvtvlnbzqrlfour -one48vpone -eightbcklnvtgvthreeninefivetmgtbjrqnn3 -nkclzcvbbq8nineznbtkntgndnine1xrg -lqpfhmrlmg32xtddcfffdbxbjckvlzghpldfgvhfhdhr -fourpkcppxtmqz5 -dvb6sixvhdrzzjk -btwokhl99nine -73rkgbsqgz7koneonemlhrbtxc -eighthlqqt4onenine -eight61oneightx -ninebbtcjjlqkthreenfvbcc4three946 -ninepqtlffxvclgn7fqdhqbpmkkseveneighttwo -bqzpfxntnkhhfkv98fhrqslfs9four -4ktprrljbthreethreethree3blmddptfour -5fourone -9zhvgleightseven5nbcmscqms2two -6czngsp895 -2threekrxmtfrr2ppfrzqkqgfoureightlf -six8eight6seventxgl -1one9 -3qpmrtzsvgkjxsevengzdkjkbbdltlrjkznbbkmpb -sclxoneeightfoursfbfm4rbxssmgngfxrvcv -fhctmnpxdrfivemndlr3sdp -twoseven9sixlp -962 -tsnsndjtrp27cbtsjdlkrqmtctxvxvnx -5mnine -7fgt6 -three1ninertghhbhbcnjdsknine -two8ninefxcqmxdhtnmcmjvtds6fivebnm -7phdp -2hnszbksg -4ninedcnjbcxnrmoneeight1 -hnsszlsx7414two4 -gmkrn9gcgmffrvbfivethreefive2seven -2bknqdqmrxpfftptwo2vmqffgmzr -dsvf3nv14zklptjnhv -54nchsnpknkx -oneone15 -onefvmxnzp575sixpxnpndqf -6vqrzsbbxg3735 -twojbldk2hfqqzgone5 -onesixlzznvc8nineseven359 -6vjbr7 -nineone32nmkszsthreefpscxcqtwofour -fv1zpqrxvdlzqmeighthhbbbzt -cskvllzszxzk9 -7ninebrlggdzqk7ninelvddrtt1 -2fpttpbq6b7ninefour3five -bsslmmmhfxc6 -lfjkdzdm9eightkbdhrkpcnzcftlggh -rnineninelmbhfour88onevfzhcmneightwofp -one59ktxrdrhc8six9 -86nxnfzzsixgmxxglvfivezmkdvmhjfzone -9threefourfourrbxqpqbtbzxstwo -3pvgtcxrfvthree39bjfivenxvbjone -sixkmngfour3bfive -6threehntsjhjpmqhl345 -fourjcnd49fivexqfbj -ksmszhfive7rrphsxxhgm -zqtdztkhveightninepnctbcgqsb6 -ninemlvzfcljfkeight1tppxrqtdzp2 -twotwoeightnine5frzk3 -lfvqtzbsix3 -four3bsgft28 -sixgksnkrmsix2rbjmfmnfzfiveeight -vrtffvbtcmszfdc2sevenhvpfour8 -twopvgzmthree3 -xqffprzsrjqkcbsevenczlbc5 -4ninefournmvninetwommnrctqjhg -27four -fheightwod4 -38zkgvdpgjzqfivenlr7mdxd -ninexxvninesevenfivedpzfgpbv5 -xjzgznvfsevensixthree3rgfqhkxbfp5vfrjcdncfkjk -2kcbprjfhns68 -bndqgcmnine4qbzfgxmlffive -ffctnxgtwobldqhsix8djfmdnpgmt -fourseven91ninesevenpksgt3 -rninesznvtbq5zqmthzrcntskdthree7 -8eight7 -1hnlnp79 -1three3 -414ninevqrccrf6lmzqmsjc6 -15mpeightxmhxlxjmn -ktdblrmqqxmktvqfour87 -1four121three56 -ldfdgfqkr22nxtsrsntlsevenxxrcclrhtl6five -eightfourthree8pvlkkbmbrfnfr6 -8sixninefiveqcmjhpx -2seveneight85lskjhn7 -31c3 -hpgmpmjmnk4twothree -cqsxgbj23six11 -threesxzmgtvhhheight99xsix -6jlpt6rnsprllqhgbvhtqtjvft217 -22onesevenfour4sevenseven -sbnjszzkdleight6three -3twofourdmrsqqtnzgng1two -ldcvxqbsfqpgql9ngsbhfrmszhgvznnnjhnm5 -1oneseven28seven -nsvhqtfivemjgcdqpbtwo1nine2 -six8dj -zdoneight67fivesevencqlr -xlzrkgjrhmszmkzlkkmrxjdnzrtlzssfpcxkbxvp6jghldhvr9 -8sevenbzbnnx -vzrmcfvc9shkxfblfkf -9twoshzmktntwo5nqp -3fourvpdfs3eightword -three24onesixgdzgkspgsjprjgn7eight -4tz2sixsixqbqfsr4twonine -twoq2eight -rccxnvtqnhdlgzqfzcnrmqtjqonesix732 -seightwo8ninekndqrdtbfp -cgnmrkcjvbgfmpbpjckhfrzrtnine2sevenfivesxhqk -fourxsncktrjtpnine6ccbgpl -1sixone5vkzxnhgdlbsevendtwo -9jbnineppf7 -5foursixlrn5vdgdbvnfhg -fivecrtwo8zbqrvjgpfivenine2 -ktvdhgvone6dbrvj5sqbr5 -bljtwonesixthree7dzdfrgqrkstwo4xvfmtsbpqjgxsgqcpc -sixgg5 -vmrbqdqdrqtwo2onez -onehlgrgndk9ninefsntwo1rnclttm -4tqzjbhdhkm1 -nine1kffxzcrn189 -sbrxr9ninemqb8 -six528mslnf -sdvthree7dfivenine918 -3kvzqqkonepmghblzvljnineone47twonesdf -four9sevenfourjhmjjslqgd8 -3fkfmgqf6fourbldjfvbhr -eighttxpddhsnzrkplzqc1ninezpvqgnhxzftwo -56lsxmkfpghsqptvhmmmzhcmfdeightsix -one72kdfdrtwothree8 -7kpgjhpnthree7 -37j2mtwo -seven4mjponefivesdgncqm2gkklsqvthfeight -mgckktt9six4eightwol -4grzfdm499ninetbt -tzmbtv84b -xvzltd75dhpjckmpdrkgglskqrhd5 -cgnbhmdlj24 -7fivetpbtmone -fivelpmbxvhktzkkonexsxktlzthgbgqkgcj94 -5sixhggcbrft -43five7122tqlkhssczsr -eight1seven3 -fourtwo134fourmzpxspr9 -snxjqnf8ctcnvjknghxpkpbrt2 -4qj2xtwoghknine -1zjfivegtwotqgndnineg -fjmmznxkrml7fiveninelfvkqtrg6 -8xjlqgqj395nineninefive -dx47sixtwothdphj -fivesevenxgsfb235cvgmspdgg6 -fivettfzvfg78dmzzdzcrt -fpnvxp1 -seven24 -1three8oneeight -7xglzsqrtb8fhgthmgdcdtwo -seven8gdtfgd4fivepdq -twosix1qtttvvstmqbrhh -ptwomnjhlzjjkztwo4kdkgxv -89zkvrhmrhdbmfourzdpss -bfdsvnxflgqxgpzkmrptlvmvlkchjxrt67 -9mmhxsevennvvdngznine17twofive -lszmqdmxz87mqbv51 -546sevenninencccndnr4 -nineeightsqgrpkrqlmzrlxm6hxchcjspnx -8twoccdnbfive -1ks98 -twothree6 -twoxsixtqdpp6dcclzgfvkv1 -16one7scvsgvmcdsixjtzszzrxdzzgv -bjxzdsixkvqgjfzbbjnrtn212jplvrj4 -zb2three5cngqfczc1 -5fnine99zxvfourjgmn -one634rteightfoureight1 -76gvcdfourgtbzdlltzsjnxqg -ltmdrkqqnfour9eightpckdvbhlkvxlpdtp -6two5kgncpnzkdsgnpspb -three8vjninekbbnnfrdstprcmklrgpkfpmbs -ckvvqjqzbpfhf52fivefivefour -7ngxpdqptksix -ftp2eight -8lnmpbqldqstwo -threetwo153644 -914 -plxjdxghsix17 -sevenonesevennine4three2seven -7bvdgpghzhpeight512vxbnfqjctb -xqptzkfive4xqbjzpqfkfspqv5kgqbdtfive -bmltkhjsckhrc7two8nzdpkjjpnfive -nnhppfvlhcmnmrjxhrbtzdflseventwojfprxmfn7 -fournfdtjtsbthree54fpzsq -ninenineone5two -8694twomgxxzfxr6 -sixeight75seventhreerpchfour8 -llv5 -skxcbfffgc6sixone -3lhjbzbsg4lsfgpkmcz7vjxzbrshbseven -4onecjlkpqdljd3five5 -eighttwo2mvdtvqpnonetvphxsk8 -15195one -kdx9nine6qrnqrjxq59 -twolhjmbh4fivetwo6pdzbnzt -pbvfour7 -tgxrsbk2 -hfournineone58sixthree9 -hmftwonesix5dhthkcnzqseventhreenineeightnine -9jmmjclsnsdhhj -hljjvctthreefourxsdlvsgtqj1335seven -172 -2gbfpjff -five5sevengvddnphnine -sixeightfourssptsqlhzxonetfg2hkmrcpfzcz -94csjjgl42three -4bkxxv6 -pgdgoneqmhxfpnfqkrbkjeightbmjjlrnsc5 -nineninetwo55fvsxspzt -32jqffghbqvfmjtjone78 -93eightfour6eight9eight1 -768jrdmfxgxpntx8nhpljjdx -eight33zpvpggklseven4lcqsixthree -fourgrmone4 -bcknine9qsevenrjhjeight -5onevqm -578mmqhhljtwo39mfnpmfqthree -fivecmts43eightfdphfivejsx -8vkqvl -8oneone27fourseventwo -jfsixfivethree3cmjtvkzhqkcksmljxxzbjd -three6sixpdvtrnrtffltrs -threeltvvfkcdqjtwo89two8j -5sixeightfivesixjjmknrgd1qpsbpjrffjl -eightrmgfkckxxxsvfclhtgcjthree3 -rnfbp8eightjv35eight -2rrssqrfkvmq -dcmghdmg6threetzsdx -qzhfivefivejvbtncm2 -gcspvjnsevenqhmkngfivesix15jtpk -bkmlmh5six1sixone2hgtlsix -8rmjshdhm681vc -sixtx32 -7fourtwo6 -xgrcxeightsevenzgmcllfjqn7 -553fivethreefour8nine -one4mxbmct -three6ninetwofour -1bbbxqhhlmj651eightkfdqdgvh9three -4414 -mnxsixone92 -61six8 -eight8mrcpfive1 -crsvmfivezbkzkqsix7mxjdgtsqbfvdbnlqtfiveoneightgj -4dmzznftdbqj -seven25 -fhlhpvphqvh8one1ffkq -mboneighteightonefive1ninenineninetwonine -82fiveonexc5 -97qbhvbqnmxtlpczsx -nhgzzjkx5 -hgxlrk9 -8twonine9fivetdxmjqppxr -onethree99sevenfourkzvd2 -sdqjfvbndzcthree1ftoneightkm -5rcllqcxt -threejdntvhsixsckfpndjzkeightsix3nlgpsvsfhk -94fctwoxmczbkz -4eight35tbqjxglldsevenxmthmmlhsix -three125 -3njtlmxtbr4541ninedz7 -9ptzpzqrjmxlrmbfbpn9ss4sqcprfmcqg -8dpmkdtvjxzjbddn7pvkxzskddrhcsjvthree7 -xxshbfcmf3cfdkeight -six9ninefour472 -fourrvxfmjzd4five -1fivesix -twonine3six9 -nine8onethreethree -foureighttwotwo7onethree -9prtlnjptoneninefiveninefive -cljqxpthqzdxpmmbvpjljjxhlhsql8kztpthreesevenoneights -9sixtwonetfh -kscmxpcqlthrmthcdhplpnqlq2 -fiveqjfvkmnineeightninefourtwo1 -one5sixeightfxkshmninethreeeight -4nine4 -27 -ggtz73sixkgsjrtcxkb1 -qvxsgvrpbxqcgpb2fzmcvknkr99seven -6eight8ksgdlxj638fivetcgb -mmvc3fourrvbztjchbmqtxtgfrrqphninefive1 -3qzbzxsevenfivegrvtbckqcj -eighttwokzpgl2hrvqlhkthreenine4 -8twoeighteightxtsbrseven -nine5mghp7vpnvtpx2c -hkxkmx5qnpjhtdfjfsix2xqqplvm5gmvjm -69cgvzhvgjvl8 -threeblzj6three -3bxpmnfbtpk5hcgqkbkqblznxgsdvklmtmqjxsxdcgqvmsprxrrnfchfbnd -1fbrrcjgzzllmcbdrgmrcfsevenh -58onezbp -1bqfkmkk46cctvmstvhvrtwoone -mmeightwo9sbjvleightdsevenseven -9gdsqgflkvonetwo -3lgpmxdgjtzx3two5foursixeightwomb -dbkbeightfive9eighthxngnrbmp -2cpkxggtrdsrh -zsgcdcrlhlqdpone9eight17sixbbtzpmdf -5rskkplgsbl9qqzfrzh67four4 -nine856threezgbhrzjcfour -kqnnine87lflxddvtfb9lfjdknvgl8 -fsgtwo8zxvnfour7xxfnmqpzhzone4 -ddd9sixnsrpqmvvjh2xghxhm -836 -nxglt36ljcbvgc16hxcbtqjz -nine19fourhnvh7fgqklf11 -jkvsphrpmhbnfl2nhcflhsbks4 -7nine2dsgkmrzlrzptfpk672 -6vtmztrjdrbk -4vgsshzzsrtwo -ninexfjcxdcnxs7seventhree2 -hsvvqcqp97twommjjlclbtdjbxkveightwos -threedlcvvseven3 -366xqfbhzfmqknine7 -jzrqqfouronehhrmkg4one5 -8xcbccrp141kmcsrdlgcdzpcb1nine -59rdrphcgk -fivetwoqmlk22eightfive -qnsphtvfourtwojljxnvgrkk3slv6four -13dfbnfnpsevennqtjthreethree6 -4dtncvsix34oneeighthpfouroneightv -xdhqninefive88nine -6hnnl8nineonehm7four -sevenfournine8five2six -vnczlzjqdtmdgsgxch94one3knlxjvqtrjlsx2 -twoeight14kkzrsqmgkhjb -jhqrzxrhskngj9ninenjcnbdtjhjtdh -2grrlxnlvthreernfghspmc -two8hjbsevenfive5threenpgtnkftp -d8sixfive1five7 -sixthree9 -sixspqf2gptcsrvlln9 -seven8nine -nqeightwo7svvjqs75qgp3hpvn -qrsixxffsdvvrf74five3 -5threeskqgcgprrjmcxksixtwo969 -bdbtlvlseven13fh -2two1eightfour7jqdd -three8ninefournffzbnbhkpjqh32 -sixqzmhnjttdnine41sevenpcxqkvr -fivenine2fourseven2 -sixjjhrjbmvvngqd3three7ninekpneight -11lttrkpcljbbrmponeightbb -frxgkvgrjtsix84 -76eightonesix8fivenlfhkfgp -fourpqlrklpnfljvpfkdklkgrjp1ninevfour -1six75tr1 -cjdvxhmjvstninejccxrqhb1qkpmnzx8xfpp -8sixfourone6pzlnczvlsmmp -eightrkl37jqlvjjsbrtqsix6 -onesmrjvmrtlppm69857seven -4rgsktnbone8sjxjzbrplnmfvkknpxqv -tfteightwonsdffone8sixxdpeightseven -639one2two -smk55 -6cjbckhbtmkcgrvmp3 -rdnf9 -1jjkdspeighthteight37 -1gh3dcmhx4sixnphphhbpninevbqhs -vpstbqtdmbvk9jstvtgzrdl -91seventwo -7sdpflkxfzfivethreenine -gvgcrpphhbzghtbcv6 -vvnine5ddgzroneone -5four6684one -dmspptjjtwocr2one -sixftzx6fdsfv -5six8twotccbsdnpxg32tsix -mfkdbdfournktdmgqnt4vqkzbzonekdqhbcmfgfiveone -nine2476 -8rxd2eightninefourmd -eight1hqfcqs4cpvpsqjfhptwo6six -5z -bqcj948nine6xmgnxmxnn -two1lzdv65bhllvrc -sevenvjkl3ninespltvdszvnfvzpcvrctphvp49 -4mzjxftf5eight -fivehbrxcbgjhhxpzfn5lllsknk7six -6n5ttwo166 -fqdfhc3 -6cph -lzqqvnlkjv3sevenbdssvckmdm -bbdpgpfsevenvzsix87 -754sznxkfb4npmjbv4one -twothree984dsxsninefour -kmpjgh71jhfrjgrpbd2d7 -27tgptfvcjnk2 -onefive497cdcktxcjfivezdrdhczbp -79176threeseven1 -csseven1rmlbcpct -1lzlz4tsngmgh -zvxshddzg2eightpxkzfnvdfzeightseven -ninesixnine93seven8 -1twofiveeightmfour -six3cmbbbxbqr74flchvgjbr45 -7nine31two9dvsghkrjj -five5four -seveneightthreefourseventrgxdqclq2 -5dfgddsevenldmzckmvxjmk92fourdcpfgcrpd -ninekbhrflzmgp3lqgxgszmzvndr47zcllcfg -sqsixonefivekfvbfh66p -bssrkdrrgsftlqjdz19 -bqcbhfive6 -jt3fivemdrnrvngsb1seven5 -svdninesbj11eight -2phltdc -1469sevenvksvlthqskfkx9 -7fcfivefourdbbvtnjbrc -6seven4 -lrmfqtjkzfive69eight8 -zmngmr9ninenineninesh -qrxvdxgtfour7one6 -eightmjpkgdtrp52shpcrtb -54k7fournine -7fdbshl6874 -jfjvrhccqrc1fourcrg96 -1sevenncqhkgtzmtncmxhflmfsxfsmsmqh -79fourjmxfdbqnrsr -sjthree6tcbp3x -qvrzmdzfnpkkdcvone2lttcbzhhddbnlnhxgsblhtlvdcpnzjvvqszrthree -ninedfxcz63two515 -48sevenvgznbsxzhfgzq19 -dxjbtzvtfn3five3 -five1gxfcfppffg74 -78ncrnhmv766nine -two7qmgeightjhddgnineone -jhttksbpbhzmgglfour7 -bloneight3ckvpkxtwozzxr1onethree -mhmppdtvfonecrjzlktlnkpzdbqtvtwo4 -179tjchxninethreesix -dpcfnsftnjbhlpcjrc8pbnnhtlrjzmmjk -ninebn16one2crfour -mfivesix8nine1zgpqpr -eight44fourfivegfive -2qhsltnzsfivervftmdm1hthcml -sjoneightvrxctb9sixhkhmfivejm -7threehdctsfqflggzkhpn -seightfourkhpkprrcl6six -fourkdff7 -57seven3four1r1gcjtckvn -gmfdzgv7fivesix4nvlq3 -thp7 -xd5plhtvtgxmgkmhlr5nine -7fourdf -pnkjgdctpm2221four8pvnhxdtrvs -hngtq27nineninesixeight -2fivejpfbsqtx1fourseven -19jpjsbljgz -ninethree5twoeighttwoqponefive -gklmbcj5mstwo8 -phbeightwo31jjzltcqzhklm26 -jtslpzsxh43 -drk7 -5dxcsvgqkmz -jnrgv9 -nsttntwo6 -6qbfrlcfmmnqpmbbtqgdsjqndqfive -2mgdjlpdsixfive6 -sevenfivesix6 -3nrfvb13onebsrclqnflppzchtp21 -dmpgdvfive7 -lpvqjzhvjoneghqxnvsixjxflzqj4 -onegqzxvnnfnlcffour2 -nsglbskbzd2drjzqhnq -nine8seven -rfspthhjbh92rseven1 -nine2ctjnb -gzkgvtxjt8twoonefour -tplxnlr8bfjklthree -jqrxrtdvmj8fournmj -6gxvglbcqkdsdcsl -pzjk9ccbmkzmtsf -qdzpknfhbsixczkrqbpfour76sevensbvltnjccjllng -six1zrhqxzfivetwo -xjhmfkvjgxtbgszmpd54jbsscgrninethree -cndbtlq22 -fouronesevenzrrv7mhsvjtwokqbfvvrs5 -twoonefive59phkxdbndgch5seven -8twoninethreeckdkd5 -9four6jfxnfgjvcrszrpsrkhh -993psn4qdldmfnqsix4 -42tzxknj -vvzpl8six -8vpchdjxczsvjjqljnmpdeightone2seven -fivenine51sixcdb -dfkkvsone5kjzvqqc -8seven8pxtrdrkqcqhdklgsixzxtjmtblzzcc -ddvzsqnxd9xscsix4rvpsix -75nsvxf9one88 -38ninetmmqx2 -sxjqgrdthree2vhpgrcdtqeight -63kthndjc -qgbdkfm56two6fourthree5 -five79 -jpb2seven7one7 -four5sbgbpzkjjkjhsvgksgjvfrsbpbdzgd2 -xlxpsixninextzlpbn6 -jzbvzlflf8twoeight -4vjtr6eightninenjtvt -3twonine3vmrgkjzkpfoursixtbcktpn -six1fourbfhxlntrqfxxztmj4 -jrbhfourfour6jspsxkn2eight5four -pcvjmdlnf15cfghpszt9 -4lxktgpvvq1sevenone9 -twosixhllhbxkbd2three -veightwo3eightvrhseven89onelxvhqxkhm -2sixfkdpcjcgcbgfzlbgblj -457jtmdfdjcnine -three64 -pqgjfseven4sevenoneslgeight -91vcptwo1twonineone -seven63fourzjpdmk1 -8fivetwofrbtm6f9five -sevenchrtbctkgpnine65fourbhpqnchhlz6 -rkdqrbtdbj9bt41hklvlrbrcpx -1three1gmdeighteightqbgsevenhljbpzbdtt -srkbbkfcznine6nine6 -8kmzbjzsxtgr9drtbdl -24six412smjfxscst -9cktpshfdr5djvrngchrh176 -2mjknvteightmvsdgt8seventhree3mzfk -vhldtk27two -6three2ninepqnine -2fourzbtqnclrtpsix2six94 -six6five -one2eightppzmczmgsixnine -15qljk7vchkfcfhkhmbjlkcfour -99four -dhrgkkbrnczkdt3n -89211sevenhnbjbrxtk -663rrbpnrknine911nine -2ntffsix9 -4mdpcrvqfoursixqeight -jbjjqkfive3jqnqhvkmtbddrdqxseven -2gvrgdsxptwovfkpgdlmlhz34 -rqfrx82 -tworzlxeight66eight1five -md1jgknfftttjbjz -tctqctkone37cmpbslgpzh3 -3sixsixfpxg -seven6bld42brzxr -6two4seven9zpgb5 -nine13 -d68 -3lxvsgksbbtwo52eight3three8 -bpltlnlzc8 -seven2five1threedmkg -hpkvhlkhknhjpq9tgpmnndgtlqjx1vkdkvtqhtwodrbr -fourfivesxgpxhdvts7four5 -7frgrjkkrb1 -2threettvptwobjhmxvpsvmljtvnpkpsvr -9fivelxtcbbn9xgtwohmmhnfhcknc -fourqztfvd6gkhxnstjjxnbl69hzkghsjrd -pspgqcjfcqdgq6xsgxrls -threesix6lrfkmvjdfivetwo9 -kdjgpj54 -oneeightsevenfive1 -one4onefournine64 -45hhcpntsthreezl9hjdnnine -17ninenineninegczplbj81 -31threetwosevencphdv -5eightvsrzjmdbtqhhqtjfjrhllhbgzgzjzvdhddstxpp4 -pgghlbtsevenqxxjbnd14onetwo -3ljgmcxnqgxcrfourfourtworjtwo -eightseventhree59 -3nhsccljtzszftnqtfour5 -threefourthreeone3five -3pzgzjv7tz -qxgntksdr45tvnxfcjdnn -5seven9threejdzrzdfcpgbnhrrmfkkskg2two -38bjnlcjbeightfivefourqvtbvjsb9nine -nmxqtzlpfngzlsnl9 -9eight8five3two1gsknxznbf9 -518jkqmprjlqcpdthreefive16 -6lzjznblrj3three -f7blbxznlvgk -37jtlrvlzhzronehn -kpckhlcsbeight6 -8dfptmfourtwoeightfoursixonefive -ninecdrxlgdkm7nineseventwotbbcgninekbxssd -rrhkgmnsbxbhb2ccnncrbstjfbmnlbxsxbkr -cflrvjtdsevenfivefive3sevensixeightseven -41ninenrznrcpdqhxfglb -gffivesixtqbbmzllvbnjnk2fivesix -eight311seven -52mpqbgktxhs359btkzqdfzvtrzmltxt -onegxnk2rvnmdcmqvqvgkml34 -gfzeightwoeightrbvknvpt7 -1ct2 -zctqtxtgseven66zhslvvdninetwo -54sixbfn8mxfkthf5 -9974seven9dclxbmfive -onefour6mjtssrxjjsleight2foureight -818sixsmmzsvbpl9two -rjqnpzlp83qxlj -sxqztv22 -8tsvhfszvj -one5mninefour68 -three7threeone -sevencnq2jdjvmlh5mqnnnrsqgppkfxjfjsevendrq -8zmxbvgschsqxbk5lltxpseventhreevrhsvdkk -seven2ngbqlxkjl27eighttjprz -ccfskxtnqpqninevczrltkg18hmgjmqt -npgtv4nine5lnqvglvdrxvqmc -kvg4zrtpxnknbone -threeeight1tsdcthree5zxrshttlsmseven9 -35448284 -6fiveqplkfftsj -pldmrjhzhfiverlgntcckbqzjgth4gfddcrz -6fivesix2 -eightksz6m6pneightnvpvvx -1fourbqxtmbvzsfnrxqmvlbfzvdthree -two43sixthree5one -cqf2 -twoltseven8three64 -6fourprlhcc -fgqoneightsevenqthreebksixgdqt93dm -xjczd3sixseven5 -kfzgshnxqnptrckbrt2 -fourrrdcl624 -kvhfqspcpsxndjqlonesixthree24kdmqvone -8eightfivetwo -onesevenseven5fourlrkkqtfkrmdlsmd -jffvtzkbjnkdtvfsfthree431lrpgmtv -bbvsptrzbone4tfnpgrfourvsix -4seventhreekmxsz335eight -eightbrcv5 -two2eightbppsplzgcfournine5seven -fourthree5kcdhqzeighteightkbzszgv8nine -rgxrddnnbv7rkt -8ffmvpcsvfoureightqpnzzjksgchnine9jlgjqb -two9tfvjqsgqsixnine -bzn4two -sqlfeighteight6hjddxzcone2 -3fivekmfnqlctddfivelcthnine -twodn8 -one5six913lbrcc -foureightmppchbgz8lqbzqbjztwo7cksqxns -zvhzgfpkhkone93nine \ No newline at end of file diff --git a/aoc2023/src/day10/input.txt b/aoc2023/src/day10/input.txt deleted file mode 100644 index 230e945..0000000 --- a/aoc2023/src/day10/input.txt +++ /dev/null @@ -1,140 +0,0 @@ -.F-7F-..|-F-|F---7J7FLF-7F|FJ-LJ.7--F7-|77.|7J.FFLF7-FJ7.J-7-|.J.7.F7L7..FF.|F--F--|J-FFJFL7F7-LJFF-.7F|7.FF|7FF7FL7L--F--77-7F7.7.-F-J.JFLF -FF-.F|-FLJJ.77F|F|-J77|---.7JLJLFJF-|7.F-7-F7.FFJLJ|.LF7-.|L7.J7LJ.L7FLFF7J|.F|.LJ-|.|.L7F.LFJ.||||FF|FLL--|L-J7--J|J7L||FJ-JLJL-JJ.L7J-L|7J -.|.FF7-LJ|.FJF-77|FJ|||-L|-L-FJ7F-|-LF-L7|FJL7J-F7FFF7FJ.J-.LJ.F|J7.LJ.|L.||L7JF|.7J7.7.|L-FJ7LL-JJ7FJ7.LL7J7LFJFLF--F|JF|-|.-JJJ7L7-||7F--- -FF-F7JF|FFF..L-|-|JF-JF7LJ7.F7--JLJ..LFFJ||F-J|F777L|-7J-7|7|7.FJ-77..LL--7|7F7F|-J|77.FL-7FL-JJ|7JL-L-|7F|7JJLF77L|-7|.FJ-L7|J.LL-FF7F-77|J -F|...FFJLLJFFLJ|JJJ|.LL77-L7LJJ.|L|-|-FL7LJL7JF7JL|.|7||.LF|-|FJJF|F7FJ.FJ|LF||F7.-FFJ-LJ|FJ.L---J.|L.L77-JJ|7|||--L7|J-.F7|.F7F7|FJ|F|J-F.. ---F-L|J..L.F77.L7--JL.L|L7F|J..FJFF-J7|FL-7FJF77JF7J..JJ-FJL-JF|.FFJLJLFF-F-F||||7L|LFFJF-7.7FL|.LL7|FFJL7JFF7F|L|-JJJ|.FL-L777L-.7L7FF7.|7| -F7J.|.L|7.J7|FL.|.|.L|7|J--7-7-L.F|J|F77|FJL-JL7-||L77LLF-J-|-F..FL7.F-LJ7FF7||||F77JLJLL.J7.L-JFF.LJL7-|L|FL-FJF77|.FF-LJ.||J.FF7|FLLJL7.FJ -FJ|F|FFLJ7L-L77L|-FF.|LJF7-L-77.7-|-FJL7FJF7F-7L7||7L|...|-LLL|7FF.LFFF.LF7|LJLJLJ|-7|.|7..J----F77.JF-JL--7JLFJFLJF-7J.L77FF.L-J|LJJ.F|JFJ| -J.L--77|.|7|L|7|J7|.FF|7||7-|||7|-J|L-7LJFJLJFL-J|L-7|-F-7.F7JFFF-7--7-F-J|L-7F7F-JFJL-FJ--J7FJ.J||J|F|7LFJ||-L--7-7JJ.F-7-7.FJ.L|J|||J.F7J7 -|F.F|.7-|JLF7|.J7-77JF7F777.LJ|7L..F|FL-7L7F7F7.FJF-J-7|J|-||J.FJFJ7F7JL-7L77||LJF-7..F|J.|.F.F7FFF.-F77.7F-F77-F77L|77..L-7-.L-7L-LLLJLLJL7 -F7FL77|FLFL|LF7|J-|FFJLJL---77LF7LF7F7F-JFJ|LJL7L7L7JJFJ-JFF--7L7|FFJ|7-LL7|FJL7FJFJ7-F7..F7F-J|F7J7J||J--7L|L7FJL77F-|F7|FF-7-|J|L|7|-JJ|FL -F-JJL--|7|.L7-J|LLF7L--7F---J-||F||LJ||F-JFJF--JFJFJ77F77F7L7FJFJL7L7|F7F7||L7FJL7L7F7||J7||L7FJ|L7F7||77||-L7|L-7L-7JLJL7JJJ.|J||||FJ7--FF7 -F7..7JLL7FL.|-JJJL|L77|||77||7F-7FJF7LJL-7|FJF7FJFJJF7LF-JL-J|FJF-JFJLJ||LJ|J||F7|FJ|LJ|.L|L-J|L|FJ|||L7LFF-7||F7|F-J77LF7JJL|7.|JJ-.F-.|.FJ -7---F7|.FJJF7777.|L7L7FJ|F7-F7|FJL-JL-7F-J||L||L7L--J|7L----7||FJ|FJF--JL-7L-JLJ|||7L-7L7.|F--JFJ|FJ||FJ-FL7||LJLJL-7L7L||JFFF77|JJ.LJ7FL-|J -|F-7F--7FF7|J|FL.F|L7|L7||L7|||L7F7F7FJL7L||FJL7|F7F7|F----7||||F-JFJF-7F7L--7F-J|L7F7L7|FJL7F7|FJL7LJL77LFJLJF7F7F-JF77||7F7||7LL.-LJFFJF7| -J7F-J7.F|J7JFJLJ7LF7||FJ||FJ||L7||||||F7|FJLJF-J||LJLJL---7LJLJ|L7FJJL7||L---JL-7L7||L-JLJF7||LJL7FJF--J77|F--JLJ|||FJL7||FJ||L7.FFJ.-J--L-7 -.L|JF77LJF-.JF-JLFJ|||L7|||FJ|FJ||LJ|||LJL7F-JF7|L7-FJ|F77|F7F-JFJL-7FJ|L-----7FJFJLJF7F-7|LJ|F--JL7L-7F7FJL---7|LJFJF7||||FJ|FJ.|7FL..|7|L| ---L-F.J|.--J-J7F7L7LJL-JLJ||FJL7|L-7LJL7F7||LFJ|L7|F7|FJL7|||L7||F--JL7L-7F7F-JL7L-7FJLJFJ|F-JL-7F-JF-J||L7F--7L--7L7||LJLJL-J|F--777F-7-FFJ -||L7-7JF7L-JF|F7F-JF7F-7F7LJL7||L7|L--7||LJ|FJFJJ|||L7L7FJLJ|FJFJL7JF7|F-J||L7F7L--J|F7|L-JL-7F-JL-7|FFJL-JL-7L---JFLJL7F-----J|F-J7--FLJLL7 -.LJL.LJL|-L-F7||L7FJLJF||L--7L7|FJF7F7|LJF-J|FJ|FJ|L7L7|L7F7||FJF-JFJLJL-7|L7LJL---7LJL--77F-JL7J.FJL7L--7F7FJ-F-7F7F7FJ|F7F7F-JL7L|-7J.--LL -7JFJ77FF|-JL|||L7LJF7F7||F--JFJ||F||||L-7L7FJ|F7L7|L|FJ|FJ|||LJFJ|FJF----JL7L7F-7F7|F----JFJF--JJFJF-JF7FJ|LJF7|FJ||||L7||LJ||F--J7L-.||.F-J -|LJ-L-J7JJJ.||L7L--JLJ|||L--7|FJ|FJ|||F7|FJL7||L7|L7|L7||FJ|L-7|F7L7|F-7F7FJFJL7LJLJL----7L7L7F7FJFJF7||L7L7L||||FJ||L7|LJF-J|L-7F-7|FFJLJ|| -|F-FLL7|...FJ|7L---7F-JLJF--J||FJL7LJ||LJ|F7|||FJL7||FJ|LJFJF7|LJL7|||FJ||L7L-7L7F7F7F---JL|FJ|||FJFJ|||JL7L7||||L7LJFJ|F-JF7|F-J|FJ----.F-- -7JFL77J.-F-L7|F7F7FJ|F-77L--7LJ|F-JF-JL-7||||LJ|F-J||L7L-7L-J|L-7FJ|LJL7||FJF7L7LJLJ||JF7F7|L7|LJL7|FJ||F-JFJ|||L7|F7L-JL--JLJL--J|JJ|7J.J|| -F-|F|F-7L|-FJLJLJLJFJ|FJF7F7|F-JL-7|JF77|||||F-JL-7||FJF7|F--JJFJL7L7F-J|||FJ|FJJF--JL-JLJ|L7|L-7FJ|L7||L-7L7|||FJLJL7F--7F7F7F---J77L-.--7J -|--J-J7LFF-L------7|7|L7||||||F7LFJL7||FJLJ||L-7F7||||J|||L7F--JF-JFJ|F-J|||FLJF7L7F--7F--JFJ|F-JL7|FJ||F7L7||LJL7LF7|L-7||LJ|L----777L7LFJ. -.FLJLLF-F-7F---7F7|L7L7||||||LJL7L-7|||L--7||F-J|LJLJ|FJ||FJL--7|F7|FJL7FJ|L-7L||7LJF-JL-7FJFJ|F7FJ|L-JLJ|FJLJF7FJFJLJF-JLJF-JF7F--J-|JF-L-J -|-J.-7.LL7|L--7LJ||FJ.|LJLJ|L--7L--JLJL7F7|LJL7FL---7||FJ|L-7F-JLJLJL7FJ|L|F-JFJ|F-7|F7F-JL7|.||LJFL--7F7|L7F7|LJJL-7FJ7F7FL--J|L---7JF|FJLJ -F7---F-F7||F7FJF7LJL-7L---7|FF7L----7F7LJLJF7FJF7LF-JLJ|7|F-JL-7F----JL7L-J|F7L7|L7|LJ|L-7FJL7||F-7F7J|||L-J|LJF7.F-JL--JL7F--7|F7F-J-JL-.L| -L7.|.|.|LJLJ|L-J|F7F7L---7||FJ|F-7F7LJL7F-7|||FJL7L-7F-JFJL-7F7||F7|F7FJF--J||FJ|FJ|F-JF-J|F-J||L7LJL7LJL7F7L-7|L7L-7F7F7FJ|F-JLJLJLL|7L7|F7 -LJ7L-7FL7F-7|F--J|LJ|F--7LJ|L7|L7||L7LFJL7LJLJL-7|F-JL7LL7F-J|LJLJL7|LJFJ.F7||L7|L7|L-7L-7||F7||FJF--J|F7LJ|F-J|FJF7||LJLJ.||F7F7F7-F-7-L-JJ ---77L-F-J|FJLJF7FJF-J|F-JF7L7||FJLJFJFJF7L7F7F-7||L-7FJF7||FFJF7F--J|F7L7FJ|||FJ|FJ|F7|F-J|||LJ|L7|F7F7||F7|L7FJ|FJ||L-7F-7|LJLJ|||.|FJF|FJ| -J|.F--|F7|L--7|LJFL--JL--JL7|||L7F7L7L7|L-J||L7|||F7||FJ|||FJFJLJF7-LJ|FJL7|||L7|L7||||L-7||L-7L7||||||||||L7||FJL7||F-J|FJ|F--7LJL-JL-77..F -LF-.LFLJ||F-7LJLF7JF7F7F---JLJL7LJ|FJFJL7F7||FJ||LJ|||L7|||L7|F7FJ|F7FJ|F7|LJL7|L7|||||F-J||F7|FJ|||LJ||LJL-J|||F7||||F7|L-JL7-|F-7F7F-JJ-FJ -.F-7-7.LLJL7|||FJL-JLJ|L------7|7FJL7L-7|||||L7||F-J||J||||-|||||FJ|||FJ||L--7||FJ||||||F7|||||||||L-7|L-7F-7LJLJLJLJLJLJF7F7L7|L7||||-J..77 -FLF|7LFJ-|F|L7FJF7F7F7|7F7F7JFJL7L-7L-7||||||FJLJ|F7|L7|||L-J|||||FJ|||FJL7F7|LJ|FJ|||||||||||||FJL7FJ|F-JL7L7F-7F--7F7F7|LJL-J|FJLJLJ.L77JF -F7FL|.||.LFJFJL-JLJLJ|L-JLJL7L-7L-7L-7||||LJ|L7F-J|LJFJ||L-7FJ||||L7|||L-7LJ||FFJ|7LJ|||||||||||L7J|L7LJF--JF||FJ|F7LJLJ||F7F7FJL-7.J.L.|L77 -LF.LJ-|-F-L7|F7F7JF7J|F7F-7FJF7L7FJF-JLJ||-FJFJ|F7|F-JFJ|F7|L7||||FJ|||F-JF-JL7L7|F7-||||||||LJ|FJFJFJF7L---7||L7LJL--7FJLJ|||L---JJ-JLFF|L- -FF7.F.|.F7J||||||FJL-J|LJFJL-JL-JL7L---7LJFJFJFLJ||L7FJFJ|||FJ||||L7|||L-7|F7FJFJLJL7||||LJ|L-7|L7L7L7|L----JLJJL-----JL7F7LJL7F-7JL-J.FJJ-J -FL|-JJ7F||FJLJLJ|L-7F7L7FJF----7F7L----JF-JFJF7F-J|L|L7L7|LJL7|LJL7||||F7|LJ|L7|F-7FJ||||F-JF-J|FJ||FJ|F---------------7|||F-7LJFJF-J|.F|FF| -FJLFJ|F-JLJF---7|F-J|L7|L7|F7F7LJL-----7|F7|FJ|L-7L7|FJ|||F--JL-7FJ|||||LJF-JFJ||F|L7||||L7FJF-J|F-JL7||F--------------JLJLJF|F7L77F-7JJ|-LF -L.L|F-L7F-7|F--JLJF-JLLJLLJ|LJL--7JF---JLJLJL7L--JFJ|L-7||L-7F7FJL7|||LJF-JF7L7|L7|FJLJ||F|L7L-7|L7F-JLJL--------------7F-7F-J||FJJL-J|7|7F| -.F--|LFLJ-||L-7F-7|F7F7FF--JF7F-7L-JF7LF7JF-7L---7|FJF7|||F-J|||JFJ||L-7L-7||FJ|FJLJF-7||FJFJF-JL7LJ7F7|FF7F7F-7F7F----J|FJL--JLJ|LJ7.7FLJ-7 -LLL-J7L7L-LJF-J|FJ||LJL7|F--JLJFJF--JL7|L7|FJF---J|L-JLJLJ|F7||L7L7|L7FJF-J|||7|L---JFJ||L7L7|F-7|F--JL7FJLJ|L7LJ|L-----JL7-|77F-7-JFF-7-F7- -|L|-JL|7|L|.L--JL7|L7F7|LJF---7L7L7F--J|FJ|L7L---7|F7F---7LJ||L7L7|L7|||L-7|||FJF---7|.LJ-|FJ|L7||L---7|L--7L-JF7L-------7L-7F7L7L7JLL-J--JJ -7|F7|FJ77-F------J|LLJ|L--JF-7|J|FJL---JL-JFJFF7FJLJLJF7FJLFJ|F|FJL7||L7F-J|||L7L--7LJF7F-JL7L-JLJF---JL--7L---JL-------7L--J|||L7L7FLL|7LFJ -7-FJLJ.F77L7F7F-7FJF--JF--7|FJL-J|F--7F---7L--J||F7F7FJ|L-7|FJFJL7FJ|L7|L7FJLJJL7F7L--J|L-7FJF7F7FJF--7F-7L---7F7F-7F-7FJF7F7||7FJFJ-.F-L7|7 -L|||.|-LL-|LJ||FJ|FL---JF-J||F7F7|L-7|L--7|F7F7|||||LJ-L7FJLJ-L7FJL7|FJ||||LF7F-J||F7F7|F-JL7|||LJFJFFJL7L-7F7LJ|L7||JLJFJLJLJL-JFJF|-L|FJJJ -77|7-J-|FFL7FJ|L7L7|F---JF7|LJ||||F-J|F-7|||LJLJ|||L7JF7||F----J|F7LJL7|FJL7|LJF7|||||||L---J||L-7|F7L7FJF-J||F7L-JLJF7FJF-7F7F--JLJ|FFF-L|J -LF7|F-7F-JFFL-JJ|FJFJF7F7|LJF-J|LJL-7|L7|||L---7||L7L7||LJL-7F-7LJL7F-J|L7FJ|F7|||||||||JF7LFJL7FLJ|L7LJFJF7|LJ|F7F7FJLJFJ.LJLJF77JL-7-F7.|. -.LL-JJ.FJ7LLL-|LLJ-L-JLJ||F7L-7|F---JL-JLJ|F7F7||L7L7LJL--7FJ|-L7F-JL-7L7LJ7||LJ||||||||FJL7|F-JF-7L7|F7L-JLJF-J|LJLJF--JF7F7F7|L7.||JLL7-L7 -JF|J.L7|.7-LLF-7F7FF7F--J||L-7LJL--7LF7F7JLJLJLJL-J-|F----JL7|F-JL---7L7L--7||F-J|||LJLJL-7|||F7L7|FJ||L--7F-JF-JF---JF7FJ||||||FJ7|JFF7-J.7 -.LJJFLLL---|-L7LJ|FJ|L--7||F7L-----JFJLJL------7F7F7LJF---7FJ||F7F7F7L7L7F7||||F7|LJF-----JLJLJL-J|L7|L--7LJF7L7FJF-7-|||FJ|||||L7F7-|--J-F- -|J.F|-JJJLF77FL-7|L7|F--J|LJL-7F7F-7|F--7F7F7F7LJLJL--JF--J|FJ|||||||FJF||LJ||||||F-JF----7F--7F-7L-JL7F7L--JL-JL7|FJFJLJL-JLJLJFJ||FL.|.-7L -|7FJLF7L|F.L|7F7|L7|||F--JF---J||L7LJL77LJLJLJL7F-7F---JF7FJ|FJ||||||L7FJL7FJ|||LJL7FJF--7||F-J|LL---7||L---7F7F7LJL7L7F7F---7F7L-JL7J7FF7|J -JJ-LF|-77.FF7FJ|L7LJ|LJF-7L-7F7|L-JF-7L-------7|L7||F7F7||L-JL7|||LJ|FJL7FJ|FJLJJF-J|FJF7LJ|L-7|F----JLJF--7LJLJ|F--JFJ|LJF7-LJL----J7L-FJ7J -|-L-J.L|LJF||L7L7L-7L7FJFJF7LJ||F--JLL--------JL-J|LJLJLJL-7|L|||L77||JFJL7LJF---JF-JL7|L7FJF-J||F-7F7F-JF7L---7|L-7FJFJFFJ|F------7|F.|JLJ7 -L.LL7J-JFFFJ|-L7|F7L7|L7|FJL-7LJL--7L|F7F7JF--7F7FL7F-7F--7L-7LJL7L7||7L7FJ|-L7F-7L7F-J|FJL7L-7|LJ-LJ||F-JL----JL-7LJFJ-FJFJ|F--7F7|-J7F--J- -|-F-||7F--JFJF-JLJL7||F||L--7L7F7F7L7FJ||L7|F-J||F7LJJLJF7L--JF7||FJ||7FJL-7.LLJJL7|L--J|F-JF-J|F7F7FJ|L-7F------7|F7L-7|FJFJL7J||LJ|7FJ|.LJ -.JJ7LFLL7F7|JL--7F7LJL-JL-7-L7LJLJL-J|FJ|FJ|L--JLJL7F7F-JL----J|FJL7LJ-L7F-J7.LL-JLJF---JL7.L--J|LJ|L-JF7||F7F---JLJL7FJ||||F7L7|L7LL-J.JF|J -|--7|.L.LJ|L-7F7LJL---7F7FJF7L-------JL-JL-JF------J||L7F------JL-7|J|LL|L-7-|F--FF-JF--7FJF---7L-7|F7FJLJ||LJF7F---7LJFJL-J||FJL7|||||F.FFF -F.||-|7.F7L-7LJL7F7F7|LJ||-|L---7F7F7F7F---7L7F7F7LFJL-JL-----7J|.||L|7L|F7|-JJJ.LL--JF7LJLL--7L-7|||||F--JL7FJLJF--JF-JF-7FJLJJFJ|J77-7FL7J -LJ-FFJJ.||F7L--7LJ|||F--JL7L7F-7LJLJ|||L-7LL-J|LJL7|F--7F-----J-L7LJ7-|JLJ||.LJ|F|LFF7||F77F-7L-7||LJLJ|F--7LJF-7L---JF7L7|L--7-L7|-FL---L-J -7F-J|7.FJLJL-7FJF7LJLJF7F7L7LJFJF7F7LJ|F7L----JF-7LJL-7|L------7LFJ|.-JJLLLJ7L-7-F--JLJLJL-JFJF7|LJF--7|L-7|F7L7L-----J|FJL7F7L7.LJ7-7J|F|.L -.|L|F-7L----7|L-JL7F7FJLJL7L7FL7|LJL-7|||F7F-7FJFJF-7FJL--7F---JFL7-7.F--|-JJFL.LL--7F-----7L-JLJF-JFFJ|F-JLJ|FJ|F-7F7-LJF7LJL7L77J|J7-77|.| -L.|J|FJFF---J|F--7LJ|L7LF7L7|F7LJF7F7||||||L7|L7L7L7|L---7LJF--7F7J7FFJ7F7|J.|.|JLF7LJ7F7F7L7F7F7|F-7L-JL---7LJF7L7LJL--7|L--7|FJ-.F-JJFJF-J -|.7|L7JFJF7F7LJF7L--JFJFJL-J|||F-JLJLJ||||L7||FJFJFJ|F7F-JF7L-7LJ|J7FF-J7|L--L77F-JL---JLJL-J|LJLJL7L7F-----JJFJL-JF-7F7LJF--JLJL|7|.FF--J-| -J.LLJF7L-JLJL-7|L7F7FJFJF--7LJLJF--7F7LJLJ7LJ|L7L-J.LJ|L-7|L7FJF-J-7LJ-JL|L--77FL7F7F---7F7F7|F-7F7L7|L-----7FJF7F7|7LJL-7L---77F7LL-F7J7.F7 -L.|L-|L7F7JF--J|FJ||L7L7|F-JF7F-JF7LJL77F77F7L-JF--7F7L--JL7LJFJ||-L-J7.F-.|--7FFJ||L7F-J|||||L7LJL-J||F----J|FJLJLJF---7L----JF-7JLJLJ.FFLJ -JF|FLL7|||FJF-7|L7||FJLLJ|F7|||F-JL---JFJL-JL7F-JF7|||F77JF|F7L-77-F7L-FF.FF7.--|FJL-JL7FJ||||FL--7F7L-JF7F7||L----7|F--JF--7-F7-L-.7--7J7JJ -LL|FF7||||L7|FJL7|||L7F7FLJ||||L7F---7.|F----JL7FJ|||LJL7FFJ|L--J7-|J7LL-.LJ--..LJF----J|F||||F---J|L--7|LJL-JF----J|L---JF-JFJL77LFJ-||J|J7 -|LLFJLJLJL-J|L7FJ||L7||L---J||L7||F--JFJL----7FJL7LJL7F7L7L7L7F7F7J.FFFJL-JJ|LJ-L|L-7F7FJFJ|LJL----J-F7LJF----JF--7||F----J.FJF7L-7J.FF|-L-J -|7.L-7F--7F-JFJL7LJ-LJL-7F--J|FJLJL---JF7F7F-J|F-JF-7||L-J-L7||LJ|J-FJ|7F|..F7JJLLF-J|LJ7L-JF----7F7FJL--JF----JF7L-JL---7-FJFJ|F-J|LJ7LJJ.L -.FLLL||F-JL-7L-7L-7F-7F7LJF--J|F7F-----JLJLJF-JL-7L7|||LF7F-JLJF-JFF7JLL7|F-7J|||LL--JF-7F7.L-7F7LJLJF-7F-JF--7FJ|F7F7F-7L-JFJJLJ.|7|||.F-7| -F-.L.LJL7F7FJF-JF7|L7LJL7FJF--J|||F------7F7|F--7L-JLJL7|LJF7F-J|7L||F7JL77.LLF--J|LFLL7|||F-7LJL----JLLJF-JF7LJFJ|LJLJ|L-7FJ7.F7FF-F7|F-F|J -L|.|7|FFJ|||JL7FJ||-L--7|L-J.F7||LJF7F7F-J|||L-7L7F7F-7LJF7||L--77J|LJ|-F7F-FFLJ|-F-7F-JLJLJFJF7F7F---7F-JF-J|F7L-JF7F---7|L-7FJ|FF7|L7-7FJ7 -.|.-7-F|FJ|L77LJJ||F---JL----JLJL--JLJLJF7|||F-J.LJLJ7|F-JLJ|F-7L77L-7|.LLJF-77JFFL7|L-7F7F7L-JLJ|L--7|L--JF-J|L-7.|LJF7FJL--JL7L-JLJFJF7.J7 -L7.|-F-J|FJFJJ-LLLJL7F7F7F---------7F-7FJLJLJL---7F7F7LJF--7||FJFJF--JL7L|7|FJF7FF-JL-7LJLJL----7|LF7||F---JF7|F-JFJF-JLJF7|F7||F----JF|JF7| -.J-.L|F7||FJJ|7-|.J|LJLJLJF-----7F-JL7||F7F7F7F-7LJLJL--JF-J||L7|7L-7F-J-FFJ|FJL7L---7|7F7F77F--JL-JLJLJF7F7||||F7L7|F7LFJL7|L7||F-----77LL| --J.JJLJLJLJ7.|FFJ7-F------JF---7|L---JLJ|LJLJ|L7|F-----7FJF7LJLLJ-LFJL7J-FL7LJF-JF---JL-JLJ|FJF7F-7F----JLJLJLJLJ|FJLJL7L7FJ|FJ|||F-7F-J7.JJ -LFL7L||JL|.FJJ7J.7.L-------JF--JL------7L---7L7||L----7LJFJL7F7-|LFJF7L7F7FJF7|F-JF-------7|L-JLJFJ|F-----7F-7F--J|F--7L-JL-JL-JLJL7LJ|L--|. -F-L7.LJ7LJL|JL7FFJ7LLF7LF---JF7F7F----7L----JJLJL7F7F7L--JF-J||F-7L-J|FJ|||FJLJL--JF------JL----7L-JL----7LJFJL--7|L-7|F7F7F7F7F--7L7L7-LFL- -|.||.FF7.F-L-F7F7F-F-J|FJF--7|LJLJF--7L---7F-7LF7LJ||L7F--JF-J||FJF7FJL7|||L---7F7LL7F-7F7F---7FJFF-7F7F7L-7L7F-7LJF-J|||||||||L-7L-J.L7J.|7 -FJF|JF|JFL-J-|||L7-L-7LJFJF7LJF7F7L-7L----J|FJFJL7F|L7|L--7|F7||L-JLJF7LJLJF7F-J||7LLJFJ|||F-7||F7L7||LJL--JFJL7L--JF7LJLJLJ||L7FJF7J7||FF.- -|L-||-J7JL7LL|LJFJF77L7FJFJL--JLJL--JF7F---JL-JF7L7|FJL7F7|LJ||L-----JL7F--JLJ|FJL7J.FJFJLJL7LJLJL-JLJF7F--7|F7L----JL7F7F7JLJFJ|F||-J|-7J-J -FFLJ77.77-JJJ|F7L7||F7||FJF7F--------JLJF------JL-JLJF7LJ|L7FJ|F7F7F7F7||F---7FJF-JF7L-JF--7L7F7F7F-7FJLJF7||||F---7F7LJ||L--7L-JFJL7.|.J||| -L-77L-7|-J..-LJL7|||||LJL-JLJF----7F7F7FJF----77F--7L|L-7|FJL7||||LJ||LJLJF7FJL7|FL|L--7L-7|FJ|||||LLJFF-JLJLJ|L7F7|||F7LJF--JF--JF-J.|..FL7 -|L---|J.L.77-FF7|||LJ|FF7F-7FL7F-7LJ|||L-JF--7L7|F7|FJF-J||F7|||LJF-JL-7F-JLJF-JL7-L--7L--JLJFJLJLJF7F7L---7F7L-J||LJ|||F7L---JF-7L7F7--7.L| -F-J--JJ-L|L|-FJLJ|L-7|FJ||FJF7LJFJF7LJL-7FJF-JFJ||LJL7|F7LJ||||L7FJFF--JL-7F7L7F-JF-7-L7F---7|F7F7FJLJL77F-J|L7F-JL-7LJ||L7F7F-J|L-J||JL-7.| -J|.FJJL.LJ-J.L--7L--J|L7|||FJL77L-JL---7LJ7|F7L-JL7LFJLJL-7||||FJ|F7L-7F--J||FJL-7L7|F7LJF7FJ||LJLJF7F7L-JF7L7||F---JF7||7LJ|L------J|77L|-- -LF7FF7-7FF7L-J.LL7F-7L7|||||F7L-------7L--7LJL-7F-JFJF7F--J||||L7LJ|F7|L7F7|||F--JFJLJL7FJ|L-JL7F-7|||L7F-JL-JLJL---7||LJF7|L7F------JJ-F--7 -.L-7L7-L-||7|F7F-J|7L7LJLJ|LJL-7F7F7F7L7F7L77F-JL7FJFJLJF7FJ||L-JF-J|||FJ|||||L--7L---7|L7|F7F7LJFJ|LJ7LJF--7F------J||F-JL-7|L----7F|J-JFF| -FFLJJ|L|-F-7-||L7FJF7L---7L7F7LLJLJLJL7LJL7L7L-7FJL7L7F7|LJFJL-7FJ7FJLJ|||||||F-7|LF7FJL7|||||L7|L-JF----JF7|L-------JLJF-7FJ|F-7F7L-777L-FJ -F--J-L-F-JFJ-|L7|L7|L----JFJ||F7.F7F-7L--7L-JF7||F-JFJ|||F-JF-7|L-7L--7L7|LJ||L7LJFJ|L7FJ||||L7|F7F7L-----J|L7F7F-7F-7F7L7|L7|L7LJL7FJ.L-L-F -|-L|||F|F7L7.L7|L-JL-7F7F7L-JLJL-JLJL|F--JF7L||LJL7FJJ|LJ|F7|FJ|F-JF7-L7|L7FJL7L7FJFJ-||FJLJ||||||||F7FF---J-LJLJF|L7||L7||FJL7L-7L||LJ7F7J| -|.|L-7FLJ|FJF-J|F7LF7LJLJL---7F7F---7LJF7FJ|FJL7F-J|F7L-7||||L7|L-7|L-7|L7||FFJFJL7||FJLJF--JFJLJ||||L-JF--------7L-JLJ7|||L-7|F-J.LJ--F||LL -|-FJLF---JL-JF-J||FJ||F7F---7LJLJ7F-JF7||L7|L7FJL-7LJL-7|LJLJFJ|F-J|F-JL7||L7L7L7FJL7L7F-JF77L7F-J||L---JF-------JF-7F-7LJL--JLJJ.FJ-F-JLF-J -|-L.FL-7F-7F7L7L||L7|FJ|L7F7||F7F7L-7|LJL-JL7|L7F7L7F7FJ|F---JF|L7J||F7FJ||FJ-L7|L7FJFJL-7|L7FJL7FJ|F----JF7F7F7F7L7LJFJFF7F7F7|F----7JJLLJ. -|7|FF-L||JLJL7|FJ|FJ||FJFJ||L-JLJL7FJ|F-----J|FJ||FJ|LJFJL7F7F-JFJFJ||||FJ||F7FJ|FJL-JF--J|FJL7FJL7|L-----JLJ||LJL-JF7L--JLJLJL-7JJ-F|...JLF -J-7-|JFLJF7F7||L7|L7||L7L-JL-----7|L-J|F---7FJL7|LJFJF7|F-J||L-7L-JFJ|||L7||||L7||F--7L-7FJL--J|F7||F-7F7F7F-J|F----JL----7F----J-|.J-|..||. -J.L-LJ-LFJLJLJL7||FJ||FJF7F7F-7F7|L-7FJ|F--JL-7|L-7|-|||L7FJL7||F--JFJLJFJ|LJ|FJ|LJF7|F-JL--7F7|||||L7LJLJLJF7|L-77F77F7F7LJ-F7-F77FL7J-LJ-- -LF.|LJ|LL-----7|||L7|||FJLJ|L7LJLJF7LJ-|L-7F--JL-7|L-JLJFJL-7L-JL7F7|F--JF|F-JL7|F7|||L--7F7|||||LJ|7L7F-77FJLJF7L-JL-JLJL---JL7||JFJ|-|-|.J -F|--.JJLLF----JLJL-JLJ|L--7|-L7F-7|L7F7L7FJL--7F7LJF----JF-7L--7FJ|||L-77FJL-77||||||L7F-J||LJ|LJF-JF7LJFJFJF7FJ|F7F----7F7F7F7||L7LF7F||F-| -LJFL-|L7.L--7F-7F7F7F7|F7FJ|F7LJ-LJFJ|L7|L7F--J|L--JF---7L7|F7FJL7|LJF-JFJF--JFJ||||L7|L7FJ|F7L-7|F7|L7FL-JFJLJLLJLJJF-7LJLJLJ|LJFJ-.J7LL7L- -|.|J-7-J-F--J|FJ|LJLJ||||L7LJL-7F7FJ7L7||FJL--7|F7F7|F--J-||||L7FJL7FJF7L7|JF7L7||||FJ|FJL7|||F7|||||FJF7F7L7F--7F7F7|FJFF---7L-7||L-FL--|7J -LFJ.||..FL---JL7|F---JLJ||L---7||LJF7FJ||L-7F7|LJ||||L7F7FJ||L7|L7FJL7|L7|L7|L7||||||FJ|F7||||||||||||FJ||L7LJF-J|||LJL--JF--J-LLJJ7FFJ-FF-7 -FJFFF-F77LF---7LJL----7FJF7F--JLJF-JLJ-|L-7|||L7FJ|LJFJ|||FJL7||FJ|F-JL7|L7|L7LJ||LJ||F||||||LJ|||||||L7LJFJF7L--J||F-----J.F77F7|LF7F-7LJ|| -LF|7-L|L-7L--7L7F7F---JL-JLJF-7F7L-7F--JF-J|||FJL7L7FJFJ|||F-J||L7|L7F-J|FJ|FJF7||F-JL7LJ|||L7FJ|||||L7L-7L7||S7F7LJL-------JL-J|FFF-JFJ|-7| -LJJ|J|L7FJ-F7L7||||F7F7F---7|FJ||F7|L7F7L-7|||L7||FJL-J-LJ|L-7||FJ|FJ|F-JL7|L-J|||L7F-J|FJ|L7|L7|||||.L7FJFJ||||||F7F-7F--------JF7L7FJJ||LL -F|L|LF-JL--J|7||||LJLJLJF--J||FJ|||L7||L7FJ|||FJFJL----7F-JF-JLJL7||FJL-7FJ|F7FJ|L7||JF-JFJFJL7|||||L7.|L7L7|||||LJ|L7|L---------JL-J|--.||| --|JJFJF--7F7L-JLJL------JF7FJ||FJ||FJ||||L7|||L7L-7F7F7|L-7L--7F7LJ|L7F7LJFJ||L7L7||L7L7FJ7|F7|||||L7L7L7L7|||||L7FJFJL----------7F7FJFF7J77 -LJ.LL-JF-J||F7F-7F------7|LJFJ|L7|||||L7|FJ|||FJF-J|LJ||F7|F-7LJ|F-JFJ||F7|FJ|FJFJ|L7L7|L-7LJ|||||L7L7|FJFJ|||||FJL7L-----------7LJ|L--7J.77 -FF|7LF7L7FJLJ||FJ|F-----JL77L7|FJ|||FJFJ|L7||||FJF7L-7LJ|LJL7|F7||F7L-JLJ||L7|L7L-JFL7||F7L-7|||||FJFJ|L7|FJ|||LJF-JF-------7F-7L-7|F--JL|L- -FL|JFJL7LJ-F-J|L-JL7F7F7F7|F-J|L-J|||FJF|FJLJ||L7||F7|F7L-7FJLJ||LJL7F7F-JL-JL7L7FF--J|LJL7FJ||||||FL7L7||L7|||F7L-7L------7|L7L-7|LJ7-J7|.| -LFL7L-7L---JF7|F7F-J|||||LJL-7|F--J||L-7||F--J|FJ|LJLJ|L--JL--7|L7F-J|||F--7F7|FJFJF7FJLF7||FJ|||||F-JFJLJ-|||LJ|F-JF7F----JL7L7-LJJ.F-J|JF- -FJ|L|LL7F7F7||||LJF7|||||F---J|L--7|L7FJ|||F-7|L7L-7F-JF7F7F7FJ|FJL7FJ|LJF7LJ|LJ7|FJ|L-7||||L7|LJ|||F7L-7F-J||F-J|F7||L-----7L-J-JJ|-7|J|J|J -J7|LFJFJ|LJLJ||L7FJLJ||LJL-7F7L--7|L7|L7||||-|L7L7FJL-7|||||LJFJ|-FJL7L7FJ|F7L--7LJFJF7LJ||L7||F-J|LJL7FJL-7|LJF-J|||L7F7F-7L---7J.L7||7|-77 -FJJF77L7|F---J|FJL7F7||F---J||F7FJ|FJ|FJLJLJFJFJFJL7FFJ||||L-7L7L7|F7|FJL7|||F--JF7|FJL7FJ|FJLJL-7L-7FJL-7FJL-7L-7|||FJ||L7L----J77-J7|L|J.7 -F-FJL|-||L7F-7|L--J|LJ||F7F7|LJLJ-||JLJF7FF7|FJ||F7L7L7|||L7FJFJFJ||||L7FJLJ|L-7FJLJL-7|L7|L7F---JF-J|F7FJ|F7FJ|FJ||||FJL7L--7F77J|FFFJ7|7.| -L7JL|L-LJ7||FJ|F---JF7||||||L--7F7|L--7|L-JLJL-7LJ|FJFJ|LJL|L7L7L7||||FJL--7|F-JL-7F7FJL-J|FJL-7F7L-7LJLJFJ||L7FJFJ||LJ|-L7F7LJL7-F|--LJJLF- --|||.LLL7F||L-JL--7FJ||LJLJL7F7LJ||F7FJL7F-7F-7L-7LJFJFJJF-JFJ|L-JLJ|||F-7FJ|L7FF-J||L---7||LF-J||F7L7F7-|FJL-JL7L7|L--7F-J|L7F-J-|LJ.LJ7.|| -LL7L-J|-7-LJ|-F---J|FJL--7F-J||F7||||L7FJ|.||FJF-JF-JFJF-JF7L----7F-J||L7|L7L7L7L7FJL7F7FJLJFJF7|||L7LJL7|L--7F-JFJL-7FJL-7|FJ|JJ.L-7|J.7-F| -.|LFL7JF-JL|7FL----JL7F--JL7FJLJ||LJ|FJL7|FJ||FJF-JF7L7L-7||F7F7FJL-7|L-J|FJFJFJFJ|F-J|||F7J|FJ|||L7L7F-JL7F7|L-7|F7L||J7FLJ|FJ--|7LFJ.J|FJJ -FF77-J7FJFL7-L.F-----J|F7F-JL7F7|L7FJ|7FJ|L7||L7L7FJL7|F-J|||||||F--J|-F7LJFJFJJ|FJ|F7||LJL7LJFJ|L7|FJL-7FJ||L7FJLJL7||FL|.LLJJ-J|F7L|FJ7JL7 -|JFJ-F7JFFF7.LLL--7F-7|||L7F7LJ||FJL7L7L7|FJ|L7|FJ|F-J||F7|||LJ||L7F7L7|L-7L7L-7||FJ||||F-7L-7|FJLLJ|F--JL7||FJ|F7F7|||JJL7|L-|-77L77|7-F7.| -7-L7.FFJL-|L-FLLJ|||-LJ|L-J|L7FJLJFLL7|LLJL7|FJ|L7||F7||||||L-7||FJ|L7LJF7L7|F7||||FJ||LJ7|F-JLJ-LF-JL777||||L7||||LJLJJ7-LLJF7LJL|J7LF-|7.7 -|.JJF|J.L-JJF-7..FLJ77FJF7FJL|L--777.|L7JL-LJL7L7LJLJ||LJ|||F-J||L7||L7FJ|FJ||||LJ||FJL7-FJL-7.L--L7F-JJ-FJ|L7|||LJJL|.LF7.F|J|7J.J7|JL-F-JJ -|7|F7J-F--7-JL|--|JJF-JFJ||F-JF--J||-|FJ.J7J.FL-JF-7FJL-7|||L-7||FLJF-JL7|||||||F7||L7FJFJF-7L7-7LL||LF|||FJ-LJ|L7JFF7J.LJ-|7-F-.7J7..F7LF77 -LJ|.LJF-7.J7.|||F|-FL-7L7||L-7L-7JFLFLJJ7F|7F|FF7L7LJF7FJLJ|F7|LJF--JF7FJLJFJ||LJ|||-||FJFJ-|FJ.|77LJ7-F-LJL-.LL-JFJ.|JL.|7LJ.JL-LJ|F.F7JL7J -L7|7.FL.F7LF-LJJJ|..L-L-J|L7FJF-JF77.L|JFJ.FF--J|FJF7||L--7LJ|L7LL-7FJ|L--7L7||F-JLJJLJL7||L||7.LF-JFLLF7.LLJ-7L7LJ-L7-7F-77|FJ.LJ7|.7||F-F. -F7J|-LLJF-7L-||7F7-7F-JFLL-JL7L--J|7|-|LFLJ-L--7LJFJ||L--7L-7|FJF--J|FJF7FJJ|||L77-LFL-LLJJ-LJJ77.FL|.F77F||LL7LJ7J|F|JL--J-F7--7FJ.L|F-7FJ7 -FL7|L|.F7JF-.LFL|LJFL|-FJJ|LLL7F-7L-7|LF77||LL-|F7|FJL7F7|F-J||F|F-7||FJ||JL||L7L7J7|L.L|7.L||LFFJ7-777||LJF7|LJF--7---F|7L7LJ7|LJ-F.LL7J7L| -L.F|-L--F-|JFF7F|--7.L--..J.LFJL7L-7|7FJJL|-7J.LJ||L7FJ|LJ|F-JL7LJFJ|||FJ|JFLJJ|FJ-J7FF---|F77.FJFL.LF-LJ-LFJL-7-7FF7J7|L-.LJLF--|.-.|JL7F7L -.-J|||FFJ-JFFJ.LJLL-JFL|LFJ7J|F7L7LLJFJJJ-|.7.-7FJ|FJ|-L7FJL7F7L-7|FJ|||FJ.7||LLJJJJ|L7LLJL-JJ.JFJ7J.L|7J.FL|.7J.F7LJ.JL777.|F.LFLJJF-7F|LLJ -7F-L|-7L|JLF|7JF|.F|.L7FJJ.FFLJ|FJFJ.LJ.7|F-J-JFL7|L7L7L||F-J|L7FJ||-||LJJ..77|-J-.-FLJ7F-7F|7||7-L.FJLJF7J.J.LJ|L|7J-|F.F-FLJ||.|J.7.F-L.|| -||7JL-JJL7.F.-.FLF-|-7L7J||-|J-LJ-L-F.|FJ-|-|LLJ.LJJL-J-LJ|F-JFJ|F|||LJ-LJ--JLF-FF7L|J|7|F|LFJL7|F|-|-F-JJ..|.|..FL-.L-.FF--7L|-F7.L|.-J7LL7 -7.77.FL-JJFFJ7.77JLL.F7L7FF7-7.LJ.FF77F-J||.||.F|J7F||JFJLLJ-LL7L7LJ-L.FJ77.|.JLLL-JJF--|F|-L-FF7LJ.|||LLF-77-L7--7LFF-7.|L7|-----7.J-FF7|-| -.LLLF|F77F-JLF7-J-|LF.F-F|J|L7-JJ-J-J-7-7-7|JJ-|7-J-LF7L|-J|7|FL-JLJJ|7FJF7LJ.L-7.L7-L|FJJJ-|7|L|-J-J-77LL.F-7-|7LF.7JL-F7|-|LJ..F|7-F7LF7FF -FJ|L7JLJ-L...L|J..J7L7|FJL7--7|..||||FL--7L7.L-||.JJFJJ|F-LJ7|JJ||LF7L7JJ|L|.|.LFJLL7.-|JJ|FF-|||FL-JFJ|F7-|-J--|7LFJ77F|JL7L7LF-|FJ7J|.|FJ- -J.FJ|LLJLL-|-.LL-L-|LJ-LL-L-JLL-.-JJL7-7J|LJJ7.-|JJ--L-J.FLJ-|L7--.-J-L--JLLFJL-FJ.|J.LJJLLLJ-J-L7-LL7JL-|JLJ-LLLJ-LJ|JFF7J..-7J-LJ..7.FFJJJ \ No newline at end of file diff --git a/aoc2023/src/day11/input.txt b/aoc2023/src/day11/input.txt deleted file mode 100644 index c86cc92..0000000 --- a/aoc2023/src/day11/input.txt +++ /dev/null @@ -1,140 +0,0 @@ -..............#..........................#.....................#.....#...................#..................................#............... -.............................#.........................................................................................#..........#......... -#......................#.................................................#.....................#...........#................................ -......#..............................#........................................#............................................................. -................................#...........#.........#.............................................................#.....#..........#...... -..................#...................................................#...................#................................................. -............................#............................................................................................................... -........#.....#...............................................................................#...............#............................. -#...................................#.....#.........................................#.....................................................#. -..........................................................................#........................#..............#........#........#....... -.....#.....#.............#.......................#.......................................................................................... -..............................#.............................#....................#......#................................................... -............................................................................................................................................ -.......................................#....................................#........................................#...................... -.......#................................................#..............#............................#....................................... -................#.................................................#.........................................#............................... -.....................#.........................#.....................................#...................................................... -...............................................................................................#..................................#......... -.#......................................................................................................................#................... -........#................................................................................................................................... -...............................#...........#.............#...............................#...........#...................................#.. -.............#.....#.............................................#.....#......................................#............................. -............................................................................................................................................ -.......................#...........#.................#..............................#....................................#.................. -...............................................................................#.....................................................#...... -..#......#.............................#............................#..................................#........................#........... -.............................#..........................#......#...........#................................................................ -....................#.........................#..................................................#.......................................... -......#............................................................................................................#........................ -...........................................................................................................#................#............... -#..............#...................#.............................................#........................................................#. -.........................................#.........................................................#........................................ -.....................#............................................#.....................#................................................... -.................................................#......#................................................................................... -.........................................................................................................#..............#.......#........... -...............................#..................................................................................#...................#..... -..........................#.........................#...........#..............#..........#..................#.............................. -..........................................#.............................#................................................................... -............#......#................................................................................#....................................... -................................................................................................................#.....#....................# -...#.........................#................#...............................................................................#............. -......................#..................................#.............................#...................#................................ -.......................................................................#.....#.................#............................................ -.......#..................#.........................#....................................................................................#.. -..........................................................................................#....................#............................ -........................................#........................#.....................................................#.................... -...................#.....................................................#.......#.............................................#............ -..............................#.................#........................................................................................... -..#..................................................#......#................#.............................................#.........#.....# -...........#..................................................................................#.....................#....................... -.....................................................................................................#...........................#.......... -................#......................#........................................................................#........................... -............................................................................................................................................ -.......#..............#............#............................#......#................#.....................................#............. -............................................#........#.........................................#............................................ -..............................#..............................................................................#.......................#...... -............................................................................................................................................ -....................#............................................................#..............................................#........... -......................................#..............................................................#...................................#.. -..........#.....................#.......................................#..............#.................................................... -............................................................................................................................................ -....#.....................#..................#......#.......#.................#...........................................#................. -....................................#.........................................................#....................#.............#.......... -....................................................................................................#....................................... -.................................................................#........................................#................................. -..................#...................................................................................................#..................... -.........................................................................#......................#........................................... -#......................................................#...........................#............................#.........#................. -...........................#............#..........................................................................................#........ -..................................................................#......................#.................................................. -................#................................#...........................#.............................................................. -........#.....................................................................................................................#............. -...................................#........................................................................................................ -.......................#.....#................................................................................#............................. -.#...........#...........................................#.................#....................#........................................... -..........................................................................................#............#................#................... -..........................#..........#...................................................................................................... -.....#...............................................................................#.....................#.....................#.......... -............................................................................................................................................ -..........#............#................................#.....................#..................................#.......................... -...............#...................#.........................#....................................#..................................#...... -............................................................................................................................................ -...........................................................................................................................................# -...#.....................................................................................................#.................................. -......................#.............................#..........................#..............................#............................. -..........................................#...................#..........#..........................#...............#....................... -..............................#.....................................................................................................#....... -.........................................................#................................#................................................. -...............................................#............................................................................................ -..........#...........................#..............#..........................#.........................#...................#............. -#.....................................................................................#..................................................... -.....#............................................................#..........................#.................#............................ -...........................#.......#..............#.................................................................#....................... -.......................................................................................................#.................................... -........#..........#.....................#..................#......................#......................................#...............#. -.............#.........................................................#.................................................................... -................................................................#........................................................................... -.....#.................#.................................................................#......................#.....#..........#.......... -................................#......#.............#.........................................#.....#...................................... -...........................................................................#.........................................................#...... -..........#................#................................................................................................................ -.................................................#..............................#..........................................#................ -.....................................................................................#.................#.........#.......................... -.......................................................................#....................................#............................#.. -...............#......#....................................#................................................................................ -.........#...............................#..........#..........................................................................#............ -...............................................................#.................#.........#.....#......................#................... -............................#.....#......................................................................................................... -......#..........................................#.......#...........................................................................#...... -..............#...................................................#........................................#......#......................... -.............................................................................#.............................................................. -.....................................#................................#................................................#.................... -..........#..................#..............................#.............................#................................................. -....#.....................................................................#......#............................................#............. -......................#.................................#..............................................#.................................... -.............#.............................................................................................................................. -..........................................#......#...............................................#..........#............................... -.........................#......#.......................................................#...............................................#... -...........................................................#.................................#...................#.......................... -...#...............#..................#..............#....................#...........................................#..................... -.....................................................................#...........#..........................................#......#........ -..............................#...............#.................................................#......#.................................... -........#.....#............................................................................................................................. -#........................................................#.............................#.......................................#.......#.... -....................#..................................................#.................................................................... -..........................................#......................#.......................................................................... -.........................#...........................#.............................................#............#.........#................. -.....................................................................................................................#..............#....... -..........#...................................#............................................................#..................#............. -.....#..........#...................#........................................#.............................................................. -.....................................................................#.........................#.......#.................................... -......................#......#.............................................................................................................. -.#......#................................................................................................................................... -.................................#....................................................#...........#......................#...............#.. -.................#..................................#.........#.........#...........................................................#....... -..............................................#..................................#.......................................................... -...........................#..........................................................................#.........#........................... -..........................................#................................................................................................. -.....................................#...........#..................#.........................................................#............. -..................#....................................#.............................#...........#........#.............#................... \ No newline at end of file diff --git a/aoc2023/src/day13/input.txt b/aoc2023/src/day13/input.txt deleted file mode 100644 index 3113249..0000000 --- a/aoc2023/src/day13/input.txt +++ /dev/null @@ -1,1379 +0,0 @@ -##..#..#......# -.........#..#.. -.####.#.######. -#....#.###..### -..##..#.#.##.#. -######...#..#.. -#.##.#.#.#..#.# -#....#..######. -.#..#...#.##.#. -#....#....##... -.#..#.#..####.. -......#.######. -##..##.#.####.# - -.#...##.. -..##.#.## -.#.###... -###..#.## -##.#.#### -..#.#..## -.###...## -.#...#.## -#####.#.. -...#..### -###.##.## -####...## -####..### -###.##.## -...#..### - -#####...####.#. -##..###..#..#.# -...#.###.....#. -...#.###.....#. -##..###..#..#.# -#####...####.#. -##....####..... -#..##.....#..#. -#..##.....#..#. -##....####..... -#####...######. -##..###..#..#.# -...#.###.....#. - -#..##...# -#..#..### -#..#..### -#..##...# -.##..#.#. -.....###. -#..#.##.# -...#..### -.##.#..## -.##.#.#.# -#####.#.. - -######.#.#.#... -.#..#.#.##...#. -...#....#.#.#.. -#.##.#.#.....#. -.......##.#.### -#######.##.#..# -......##...##.. -#.##.#....#.#.. -#.##.#....#.#.. - -#...#..##.. -.##..###### -....###..## -.#..#..##.. -.####.####. -###.##....# -.#..##...## -###.#..##.. -#.#.#...... -.####...... -....#.####. -..##..#..#. -..#.#.####. -..#.#.####. -..##..#..#. - -#...#.#.##.#.#... -###.#..#..#..#.## -#...##.####.##... -#.....#.##.#..... -...#####..#####.. -##..#.######.#..# -###.##.#..#.##.## -...#..#.##.#..#.. -....#........#... -#..##.#.##.#.##.. -#................ - -...##.###.# -...##.###.# -##..#....#. -##.....#.## -#.##..#.#.# -..##...#.#. -...#####..# - -.##.##.#.##.. -#..#.#.#..... -####.###..#.# -####.####.### -#..#.#####.## -#..#.#....### -#..#.#....### -#..#.#####.## -####.####.### -####..##..#.# -#..#.#.#..... -.##.##.#.##.. -.....##.#.#.. -####..#.#.##. -#####.#...### -#####.#...#.. -#..#...####.# - -#..#.#...#...##.. -...#...#..#..##.. -#..####.#.#.####. -..#####..#.##..## -..#...####.##...# -.#.#########....# -.#.#########....# - -#..#...#.#.#...#. -#.####...###.#.#. -#.....##...##.#.# -##.##....#....#.. -#.....##....#.... -..##.##.#...#..#. -..##.##.#...#..#. -#.....##....#.... -##.##....#....#.. -#.....##...##.#.# -#.####...###.#.#. -#..#...#.###...#. -......#.#..##.... -......#.#..##.... -#..#...#.###...#. -#.####...###.#.#. -#.....##...##.#.# - -....#.. -#.##... -#.###.. -#...##. -.##..## -.##..## -#...##. -#.###.. -#.##... - -##.##.#.. -..#..#..# -...#####. -..#....## -##.##.##. -##.##.##. -..#...### -...#####. -..#..#..# - -...####.....##### -.#......#.####..# -.#########.##.... -####..#####.##### -..######..#...##. -#.##..##.#....##. -....##....##..... -#........#.#..... -....##.....#..... -...#..#.......##. -#.######.##...... -.##....##.###.##. -...####...#..#..# - -.#...###..###...# -##..##.#....##..# -.#.#.########.#.# -.######.##.###### -.##.#...##...#.## -.#...########...# -.#.#...#..#...#.# -#..#....##....#.. -#..####.##.####.. -#.##..##..##..##. -..#...#.##.#...#. -#..#..........#.. -#..#..........#.. - -....#..###....# -#..#..#..#....# -#..##.....####. -.##..#..#..##.. -####.###..####. -###.#.##.#.##.# -.##..#..##....# -#####.###..##.. -####..#...#..#. -#..#....#..##.. -#..####..##..## -......#.##.##.# -.##...######### -.........#.##.# -.##..######..## -#..####..#....# -.##.####..#..#. - -#..#.##...#.##. -###.##.##.#...# -##.########.#.# -.#.#.##.#...### -.#.#....####... -.#.#....####... -.#.#.##.#...### -##.########.#.# -###.#..##.#...# -#..#.##...#.##. -#..#.##...#.##. - -.##..####..##.. -####..##..##### -.#.#.####.#.#.. -..##..##..##... -#....#####...## -####.#..#.##### -##..........### -#.#.#....#.#.## -#...##..##...## -.##.##..##.##.. -..##..##..##... -....#.##.#..... -###.######.#### - -########..#.##.#. -######..######.## -#.##.#.#.###.###. -#....#.#.####.### -#....##..#..###.. -......##.##..###. -..##..#..#.###..# -..##..#.#.##...#. -##..######..##..# -##..######...#..# -..##..#.#.##...#. -..##..#..#.###..# -......##.##..###. -#....##..#..###.. -#....#.#.####.### -#.##.#.#.###.###. -######..######.## - -#.####..##..# -#.#.#........ -.#.###...#..# -#...#..##.... -...#.#.###..# -#..####.#.... -#####.#..#..# -.##..####.... -.....#...#..# -##.#...#.#### -.....###..... -###..##.#.... -.#..##.#.#### -#...#..#..##. -##...#....... -.#...#....... -#...#..#..##. - -...#..##. -..#.#.#.# -######.## -#####.### -..####... -######..# -######..# -..####... -#####.### -######.## -..#.#.#.# -...#..##. -#..###.## -####..##. -...#.#..# -...###.#. -..##.##.# - -.####.....#.# -........#.### -##..##...##.# -..##...####.. -..##...####.. -##..##...##.# -........#.### -.####.....#.# -######.##.#.. -.#..#.####.#. -##..####.##.# -#.##.##..#... -##..########. -##..##.##.#.# -.####....#.#. -.....#.#.#.#. -.#..#....#.## - -#..########..## -#............## -#.##########.## -.#.#.####.#.#.. -##.#......#.### -.#.###..#.#.#.. -###.######.#### -#.##.####.##.## -##.##....##.### -#.#.#.##.#.#.## -#.##......##.## - -.#......#..####.# -#.#.#####.#.###.. -##..##.#..#...##. -.##.#..###...#..# -.##.#..###...#..# -##..##.#..#...##. -#.#.#####.#.###.. -.#......#..####.# -#..##.#.##..#.#.. -#..##.#.##..#.#.. -.#.....##..####.# -#.#.#####.#.###.. -##..##.#..#...##. - -.#....#......#. -..#.##.######.# -...#.#..#..#..# -##..#.###..#.#. -##............. -##..#.########. -..#.##..####..# -..#.##..####..# -##..#.########. -##............. -##..#.###..#.#. - -####.## -###..## -#.##### -##..#.. -#...... -####.## -#.#.... -..###.. -..##### -#.#.... -####.## -#...... -##..#.. -#.##### -###..## -####.## -#####.. - -###.##..... -##.##..#..# -##.##.....# -###.##..... -#####...#.. -..######### -########.## -##.###...## -..#..#..#.# -..##...##.. -...####.#.# - -#.##...#....# -##....##....# -##..##..#..#. -##..##..#..#. -##.....#....# -#.##...#....# -.##.....####. -#####..#.##.# -#.####.#.##.# -.#.##.#.#..#. -#...#.#..##.. -###..##.####. -.#####....... - -#..##.# -#.###.. -#.###.. -#..##.# -.##.##. -...#... -#..###. -#..##.. -#..#..# -#..#..# -#..##.. -#..###. -.#.#... - -.###.## -.##.### -##..... -##..#.. -.##.### -.###.## -#...### - -..##..#.##. -.#..#.....# -.#..#.##.#. -######.#### -..##....... -..##....... -######.#### -.#..#.##.#. -.#..#.....# -..##..#.##. -#........#. -########..# -##..##..##. - -..######.....#... -...........##.##. -.#.####.#....#### -.#..##..#.####..# -####..#####...... -###########.#.##. -.#..##..#..###..# -###.##.###...#### -#..####..##.##### - -###.#####..##.. -...........##.. -.#.##...#..##.. -.#...##.##....# -.....#.###.##.# -..#####..#....# -##..###..##..## -####.##...#..#. -.#.##..##.#..#. -.####...##.##.# -...#.##..###### -..#..##..###### -..#..###..####. -..#..###..####. -..#..##..###### -.#.#.##..###### -.####...##.##.# - -..##.##..#..... -..##.##..#..... -.##...##.##...# -.....##..##.##. -#####.####..##. -.#......#.##..# -....##..###.##. - -#..#### -##.##.. -..#.#.. -..#.#.# -..#...# -.....#. -.#.#... -.#.#... -.....#. -..#...# -..#.#.# - -#.###.# -#####.# -.##..#. -.##..#. -#####.# -#.###.# -...#### -.#.##.# -......# - -#.##..##.####.# -..######..##..# -###....###..### -...####...##... -#........####.. -###.######..### -##.####.##..##. -##..##..######. -.#......#.##.#. -#.#....#.####.# -##......######. -..#....#..##..# -###.##.######## -.#......#.##.#. -.#......#....#. - -.##........#. -...#.##.##..# -.#..###..#### -...#.....#### -.#....##..### -#..#...#.#... -#.#...#.##.#. -#.#...#.##.#. -#..#...#.#... -##....##..### -...#.....#### -.#..###..#### -...#.##.##..# -.##........#. -.##........#. -...#.##.##..# -.#..###..#### - -....##....### -.########.... -##.#..#..#### -#...##...##.. -#........#.## -###.##.####.. -..##..##..### -..#....#..... -#..####..#### -##.####.##.## -##..##..##.## - -########.#.#.##.# -###..####.##....# -##....##...##..## -#......#.######## -#.####.##.##.##.# -#......##.#.#.... -#......##....##.. -.######.##....... -##....####.#.##.# -#..##..#.###....# -...##...#....##.. -.######....###### -##.##.##.#...##.. -#..##..#.#.##..## -.#....#.##...##.. - -###.#...####...#. -#..#.##..##..##.# -.##...##....##... -#####......#...## -#####......#...## -.##...##....##... -#..#.##..##..##.# - -####..#.##.#. -.#..##.####.# -#..#.#.####.# -#..#.#.####.# -.#..##.####.# -####..#.##.#. -.###.#.####.# -##....#...... -####.#..##..# -##..#...##... -...##.#....#. -##.########## -###.####..### - -#..######..#... -.###....###..## -.#.####.#.#..## -.###.##.###..## -..###..###..### -.#...##...#..## -###.#..#.###... -#.#.#..#.#.##.. -#..######..##.. -...#.##.#...### -..#......#..... - -......##.#. -##.#..#.... -##.#..#.... -......##.#. -#.#.#.##.#. -..#.#.###.# -#####..##.. -##.###.#..# -..#.##...#. - -##......###.### -##......###.### -#.##..##.##..#. -.##....##.###.# -..........#.#.# -..######...#..# -##.####.##...#. -..#....#..##..# -.###..###..##.# -.#......#.##.#. -.#......#.##..# -.#.####.#..#..# -###.##.######.. -##..##..#.#.... -.##.##.##...##. - -.#....#.#..#. -...##....##.. -##.##.##....# -#.#..#.#.##.# -.######..##.. -###..####..## -##.##.###..## -..#..#..#..#. -.#.####.#..#. -.#....#...... -#..##..##..## -.#....#..##.. -###..###....# - -##.##.##.###....# -.######.####....# -#......##.##.#..# -..#..#..##.##..## -.#....#..#.#.##.# -#..##..#..####### -..#..#...##.#..#. -...##.....####### -#.####.#.#.##..## -##....#######..## -.######..##.#..#. -.##..##..#..#..#. -###..####...#..#. -.#.##.#..#.#....# -.######.#.###..## -.........####..## -##.##.##......... - -....##.##.#.#..## -####.##.###.####. -#..##..#.####..## -.##....##.#.##.## -#..#...#.#.##.... -.##......##..#.## -#..#.##...#.#.#.. - -....##.## -....##.## -....#.... -..###.#.. -##.#.#### -....#.#.. -..#...... -###....#. -#...#.#.# - -.....##...###.#.# -.##.#.##.....#... -.##.#.##.....#... -.....##...###.#.# -#.######...###... -..#.#....#.##.#.# -##########.#..#.# -..#..#....###..#. -...##.#.##..###.. -#####.#.......##. -..#..#.#.#...##.# -..#..#.#.#...##.# -#####.#...#...##. -...##.#.##..###.. -..#..#....###..#. - -.#.##.#.....#.... -#.#..#.#.#.##.#.# -###..####......## -#.####.#..#..#..# -..#..#..###..###. -..####.....##.... -##....####....### - -##..#.##......# -..#.##.#.##.### -#..#......#.### -.##.##.#.....#. -#.#..##.##.##.# -#.#..##.##.##.# -.##.##.#.....#. -#..#......#.### -#.#.##.#.##.### -##..#.##......# -#....###.##.#.. -#....###.##.#.. -##..#.##......# -#.#.##.#.##.### -#..#......#.### - -..##.#...#.## -.#.##.#..#... -#..##..##..## -#......###... -...........## -.#.##.#.###.. -#.#..#.###... -.#.##.#.##.## -##....##.#### -.#.##.#....## -##.##.##..#.. -#.####.#.#### -#.####.#.#.## -.#....#.##.## -..#..#..##.## -#..##..##.... -#......#.#.## - -..#..###..... -.##.#.#...#.# -..######.#.#. -...#####.#.#. -.##.#.#...#.# -..#..###..... -#..#######... -.#..#.#...... -..####.#..#.. -...#..##.#### -.####.......# -#...#.##..#.# -...####.##.## -...####.##.## -#...#.##..#.# - -...###. -.#..### -.#..### -...###. -..#.#.. -.###..# -..#.#.# -.#.#.#. -.###..# -.###..# -.#.#.#. -#.#.#.# -.###..# -..#.#.. -...###. - -..######..... -##########..# -...####...... -#.######.#..# -#..#..#..#..# -#.##.###.#..# -##..##..##..# -##.####.##..# -##.####.##### -#.#.##.#.#..# -.#..##..#.##. -#...##...#### -..######..... -##.####.##..# -..........##. - -##.##.###.#...... -#..##..#.#..####. -#......###.#....# -#########.##....# -...##.....####### -#..##..#..#...... -#......####.#..#. -#..##..#..#...... -.##..##.#..#.##.# -..#..#...#.##..## -...##....#####.## -##########.#....# -##.##.#####..##.. -#.####.######..## -###..#######.##.# -#......#..#.#..#. -..#..#......####. - -.#..##.##..###. -.#.###.##..###. -#...#...#####.. -...##.####...## -....#.#####.#.# -##.#..#.###.#.. -.#.##.####..##. -##.#...##.##.#. -....######.#### -....#.#.##..### -..##...#......# -#####...####.## -#####...####.## -..##...#......# -....#.#.##..### -....######.#### -##.#...##.##.#. - -#..##.### -.##.....# -.##.##..# -###..#### -#####.#.# -......#.# -#..##.#.. -#..##.#.. -......#.# -#####.#.# -###..#### -.##.##..# -.##.....# -#..##.### -#..###### - -..#.#.#..#.#. -..#.#.#..#.#. -#...#.#..#.#. -.###.#..#..#. -.#.#..#.#.#.. -#.....#...### -##.##.#####.. -##.##.#####.. -#.....#...### -.#.##.#.#.#.. -.###.#..#..#. - -####...#.#. -####...#.#. -#..#..#..## -.....#..### -#..#.#..### -.........#. -.....###.## -######.#... -#..##.###.# -.........#. -..#..#.#.#. -#######.##. -####.#..#.# - -#..###. -#..###. -.....## -##.#... -#.#.#.. -.###.#. -#.##.## -##..##. -..###.# -...###. -.#.###. - -############...## -##..####..##.#... -##..####..##.##.. -.####..####..#.## -..##....##..##.#. -.####..####.#..#. -..............##. -#..........#.##.# -##############.#. -.#..#..#..#.#.#.# -............#.#.# -..##....##..###.. -#....##....#.###. -##############.## -.#..#..#..#.#...# - -.##......#.#### -....###..###.## -.....######.... -....#..##.##... -######....#.### -#..###.##....#. -########.#.###. -#..#####.#..### -.##..#...####.. -.##....##..#### -#...##.##.###.. -.##...#..###### -#..#.#.#.#.#... -.##...#..#....# -.##...#..#....# - -##.#.##.#.### -.#.##..##.#.# -#.#..##..#.#. -###.#..#####. -#.#.#..#.#.#. -##.######.### -#.##....##.#. -#.##....##.#. -##.######.### - -###..#####.## -###..#####.## -.....###..### -...##..###... -##.#.##.##.## -..##.....#.## -#.###........ -#...##...##.# -#.####.##.#.. -#.#..###.#### -.#.#.#####... -#.##.##.##... -####...####.. -#####....#### -.#.##.##.#... -.##.##..##... -.#.#...##.#.. - -.###..### -.#.#....# -.#..##..# -.#......# -...#..#.. -##..##..# -####..### -##.#..#.# -#.##..##. -#.##..##. -##.#..#.# -####..### -##..##..# - -###...#.... -...##.#.#.# -..######### -..##....#.# -..#######.# -..#....##.. -..#....###. -..#######.# -..##....#.# - -####......#...### -#.#..#..##..#..#. -##.##..####..##.# -..###...##...###. -.######....###### -..#####....#####. -#.###...##...###. -.#......##......# -...#..######..#.. -...#..######..#.. -.#......##......# - -...#..#.### -##.####.... -...##..#### -###...#.... -..#..#...## -##..#.##... -...##...##. -.......#### -####..###.# -.....#.#..# -##....#.... -#######.### -##.####.### - -#.#..#... -..##..#.. -..##..#.. -#.#..#... -.####.... -##..#.### -...##.... -...#...## -..#..#### -.#.##...# -....#.... - -..#####.....##. -#.##..#....##.. -........####..# -......#.###..## -....###....##.# -....###....##.# -......#.###..## -........####..# -#.##..#....##.. -..#####.....##. -.##.#..#.#.#.## -.##.#....#.#.## -..#####.....##. - -.#.#.#.## -.#.###.## -.##...#.. -##.##.##. -##.#..#.. -..#..#.#. -##.#.#.## -##.#.#.## -..#..#.#. - -..#.##### -##...#..# -##.###..# -######..# -##...#..# -..#.##### -.#.#..... -#.....##. -...#.#### -####.#### -##....... -#..#.#..# -...##.##. -#.#.##..# -###...... -....##### -..##..##. - -...##...# -...###### -...##.... -###..#.## -##.#.#.## -.#...#.#. -..#.#.### -.....##.. -###.#.... -##.#.#.#. -##.#.#.#. - -....#.....#.. -#..##.#....#. -##........... -..##.##...##. -.###..#..###. -##.########.# -##..###....## -###.##..#.##. -###.##..#.##. -##..###....## -##.########.# -.###.....###. -..##.##...##. -##........... -#..##.#....#. -....#.....#.. -....#.....#.. - -..##.#.#. -#####.#.. -#...####. -##.###... -##....#.# -##.#.#... -...#####. -##..#...# -.....###. -###..##.# -###.#.### -###.#.### -###..##.# - -..#.### -.....#. -..#...# -..#..## -####.## -###.#.# -###.#.. -####.## -..#..## -..#...# -.....#. - -.###.#.#.##.#.. -#.####..##..#.# -#.####..##..#.# -.###.#.#.#..#.. -....#...#..##.# -..####.##.#...# -##..#.#..#..##. -###..#...#..... -###..#...#..... - -#...#.....##. -#.###.#..#### -..###.######. -.#..####..##. -.#..####..##. -..###.######. -#.###.#..#### -#.........##. -.##.##.###... -#.##..#####.. -##..######..# -###.#...#.... -.#.#.######## -###......###. -....######.#. -.###.##.##.#. -.###.##.##.#. - -#..#..#....#..# -..###.#.##.#.## -##.###......### -##...########.. -.....#......... -#...###....###. -#...###....###. - -.#..#....#..#.. -#....#..#####.. -.####.###..##.. -#....#####.##.. -..##.......#.## -.......#.##..## -##..###..###... -.###....#.#.#.. -.#..#...##..... -#....#..##.#### -##..###.####.## -..##..#...#.#.. -.........#..### - -.####.. -#...#.# -..##..# -#..###. -#..###. -#.##..# -#...#.# -.####.. -..##.## -..##... -#....#. -#.#..#. -#.#..#. - -#####...#..## -#.###...#..## -.#####.#.#... -.##.##..##### -....##.###... -..#.#.###.### -.##....##..## -##..#.###.### -##...###.#... -.#.##.#.#..## -.#.#...#.#### -#....#...#... -...##..##..## - -.....#.#..... -....##....... -#..#.#.##.... -#####.##..... -#....####.##. -#..####...##. -#..###.#..##. -....##..##### -#####.###.... -....#.###.... -####.#...#..# -#######...... -....#.##.#### -.##....#.#..# -....###.##..# - -##.####......##.# -....#.###.#...##. -....#.###.#...##. -##.####......##.# -.##..#.##...#.### -.#.#.#...#...#... -#.##.#..##.#.#.#. -#.##.#.###.#.#.#. -.#.#.#...#...#... - -#####..####..#### -...###..##..###.. -..##..........##. -##.#..##..##..#.# -##....#.##.#....# -##.#.#..###.#.#.# -..#.###....###.#. -..##..........##. -..###...##...###. -....#.##..##.#... -.....#......#.... - -.####..#..#..## -..##...#..#.... -......###...### -......##.##..#. -#....#.#.#.#... -######.###...## -.####.#.#..##.# -.......#.#..#.. -.......#.#..#.. -.####.#.#..##.# -######.###...## -#....#.#.#.#... -......##.##.##. - -#.#..##.#.#.. -.#..##..#..## -.#..##..#..## -#.#..##.#.#.. -..#..#...#.#. -.#...#.#.###. -#.#####.#.##. -#...#...#.#.. -#...#...#.#.. -#.#####.#.##. -.#...#.#.###. -..#..#...#.#. -#.#..##.#.##. - -#..##......##..#. -#..##......##..#. -.#.#.#.##.#.#.#.# -#..#.######.#..## -.#..##.##.##..#.# -#...#..##..#...#. -#.############.#. -#..##.#..#.##..## -#..###....###..## -##.#...##..##.### -.##.##....##.##.. - -..###.#.##.#.###. -.##.##..##..##.## -.##.##..##..##.## -..###.#.##.#.###. -.##..#.####.#..## -###.##..##..##.## -###.#.#.##.#.#.## -.#..............# -#...###.##.###.#. -###...#....#...## -.##..#..##..#..## -..#..##....##..#. -..#.#.######.#.#. -###..##.##.##..## -..#..#.#..#.#..#. - -###.##.## -##..##..# -#.######. -#.######. -##..##..# -###.##.## -.###..### -#.#....#. -..#.##.## - -....#.##..# -......#.##. -#.####.#..# -#.####.#..# -......#.##. -....#.##..# -.#.##.#..#. -.##..##.... -#....##.##. - -.##...##.#. -.#.##...##. -#..#####.## -#..#####.## -.#.##...##. -.##...##.#. -.#..###...# -###.##.##.# -#...##.#.## -#...##.#.## -.##.##.##.# -.#..###...# -.##...##.#. - -.##...##. -.##...##. -##..###.# -##.#.#..# -.....#... -#..#.##.# -........# -..##.###. -..##.###. -........# -#..#.##.# -.#...#... -##.#.#..# -##..###.# -.##...##. - -####..#..##.##.## -....#.##......... -....#...#.######. -.....##..##....## -.....####........ -####..#...##..##. -....###.##.#..#.# -#####.....##..##. -.##.....#...##... -.##.##.#..######. -#..#####..#.##.#. -#..######.##..##. -..#.#.#.#.######. -.##...#..##.##.## -####..####.####.# - -#...#.# -#..#.## -##..### -##..##. -#..#.## -#...#.# -.#....# -#..##.# -...#.#. -###...# -##..### -.#####. -.#####. -##..### -###...# - -##.##..##.##.#..# -.##..##..#..##..# -#############...# -....#..#........# -#..##..##..#.##.. -#..#....#..###### -#....##....###.## -###.####.#####..# -.#..####..#.#.### -##..#..#..###..#. -..##.##.##...##.# -.##..##..##.....# -...............#. -...............#. -.##..##..##.....# -..##.##.##...##.# -##..#..#..###..#. - -#.####### -##.#...## -#..##..## -#..#.##.. -##.##..## -###.##### -###.##### -##.##..## -#..#.##.. -#..##..## -##.#...## -#.####### -..#.#.#.. -#...#.##. -.#.#..#.. -.#.##..## -#.#..#### - -.......#.#...#### -....#..#....#.##. -..##...#...###### -##.#....#.##.#### -##..##...#####..# -.##...#####.##### -.####..##.#...##. -#..#..#####..#..# -#..#..#####..#..# -.####..##.#...##. -.##...#####.##### -##..###..#####..# -##.#....#.##.#### -..##...#...###### -....#..#....#.##. \ No newline at end of file diff --git a/aoc2023/src/day15/input.txt b/aoc2023/src/day15/input.txt deleted file mode 100644 index 86b345f..0000000 --- a/aoc2023/src/day15/input.txt +++ /dev/null @@ -1 +0,0 @@ -fnln-,bkxf-,spfc=9,ds-,trzx-,dtck-,xs-,bg=4,fgmpc=5,xmxf=1,cl=9,md-,ct=2,ftz=5,xhd-,vkqx-,hxd=6,mlcn=6,ctdbt=6,txpsv-,nkx=3,jfz-,fzm=3,rvcd=4,nfgp=3,jjd=7,nzq=6,zv=5,lh-,nfgp-,gcbtgm=7,zj=6,sxlh=3,vsj=8,cjb-,tslfp=5,vc-,kpn=7,qpm=5,jgmnxd-,xp-,kmm-,xb=4,tv-,bmnlf=7,cb-,vbmk=5,dvz-,ssd=6,sb-,mldgtn-,mtx-,kz-,nzq-,dnkf-,sn-,js-,bpq-,vc-,fzm=9,xqv-,gqsr=2,jzxp=5,bc-,lxg=5,sv-,gflrmd=9,ncjb-,fm=9,lln=1,ql=9,tj=2,pbmldc-,fkzq=7,vkh=3,tn=4,fdl-,frgf=1,vf-,fpg=4,xzt-,jf-,pjfk=5,rvcd-,rv=6,zrs-,qnd=1,vqzhc-,xrb=8,lvx-,dfz-,xstdx=6,sf=4,hsb=3,sqjgc-,xtl=7,zthrd=8,mldgtn-,rc-,kpz-,tpnmp=6,bzj=7,gmrrx-,bszd-,mjz-,bzj=8,ztk=9,dtv-,qgm=4,ssd=3,xc=8,hvglb-,xf-,qhvz-,vqc-,ktj=1,ppq-,zxt-,rnsbt-,qpx-,nj-,vhl-,rknz-,zngsp-,vhl-,fjh-,vrzjf=7,gkn=6,tfd=4,bgg=1,fgmpc=9,lpd-,pbmldc=4,jm=2,vlv=4,shn-,vps=8,ljsvc-,rfdrk=3,vkqx=7,gftx=9,nzq-,cq=1,ckb=6,zsx-,qpf-,cggz-,bzj=9,lfg=6,tfd-,xdfz=8,ghbr-,dsdm=8,nj=4,jf-,fnln=7,fzm=7,fkzq=7,xcq=8,fkzq-,dm-,bfz=2,lqf=4,sfp-,kpqvtc=2,fkzq-,vth-,zn-,xhs-,vsj-,psfnx=4,xbx=1,xgk=9,snpgsm-,psg=3,shn=6,qxkrd-,pxvxlh-,xbx-,gt-,ksn-,dzn=7,gp=7,mp=8,jtz=3,ph=2,jxj=8,pg=5,txkh=6,drls=6,zthrd=9,gqsr-,dtv-,mktlhp=9,bszd=5,snpgsm=5,qz=6,sh=6,lqt-,mktlhp-,mgt-,mvmqfm=5,bc-,lpd=6,zn=3,nhsvv=3,vdf-,znjg-,phsl=7,tnb=4,qlf=9,txpsv-,pxvxlh=6,lqfv=7,lffv=5,djmlb=7,pxn-,hdxvhr=8,vbz=1,vqc=1,xrb-,bj=1,bzpv=5,tdl-,xc=2,cnr-,ss=6,mf=2,sv=2,mp-,zpc-,rqg-,xtsd-,hlg=6,xdfz=9,nl-,kfp-,cr-,qxkrd-,vpxv=9,mtx=1,drls=9,jzxp-,xqfrg-,js=3,ql=8,xp-,kpz=8,zj=9,jxj-,gf-,gcbtgm-,cmpc=4,tr=4,px=6,pvv=9,tpnmp-,jhhqj=5,mmn=3,qpf=5,vnk=9,cnn-,xgr-,mmsz=4,lvs-,cv=3,cq-,bfz=8,ct=7,kr=6,gk-,zdtz=1,vqzhc=3,xzt-,vqt=4,dphx-,kmr-,fkzq-,lk=8,dvz=6,ghbr=6,hm=6,zm-,sn-,jgmnxd-,vkz-,ps-,vpxv-,gpg=4,bmnlf=9,pjfk=3,ndmt=7,zk-,zthrd=5,fgmpc=8,rgh=7,bx-,ctp=2,nl=7,rtj=6,grlkl=9,zf=8,lg=4,zngsp-,rsn=5,drls=9,lxmkfx=7,sbt-,bx-,lln-,dm=6,fnv-,qpf-,tq-,qv=9,cfnbp-,pxvxlh-,tr-,nh-,clg-,xjpbxm-,zs-,trzx=8,bgh-,cmbv=1,vq=6,lcr=9,scbjp-,sjb=2,gmrrx=6,mg=5,znjg=4,zn=9,grlkl=7,xmxf-,smtd-,vkh-,spsx=9,qpf-,bgg-,smtd-,ntg=6,qpf-,vtp-,nlcrm=8,cvc-,frgf=8,blfx-,vbz-,tcs-,bqpp-,fjh=5,rtj=5,vr=6,kjrc=1,nzq-,qpf-,vqc-,kmr-,hj=8,fnh-,scbpb-,gxg=9,kf=6,xhs-,zdl=9,sscn=9,dzt-,rl=9,gr=6,tv-,jmthd=9,gn-,bzj=4,pv=9,pcnzf-,jxj-,sxlh-,lxg=3,rpn-,vr=9,rl-,tslfp=5,pgd=2,xmxf-,mjz=9,drls-,hrbj=7,rr-,lxg-,grlkl=3,jsv=1,sr=6,dv-,scbjp=1,pkg-,mgt=9,hsb=3,ccs-,xdfz-,cqq-,nbtq=2,ljsvc-,rpn=8,msbfzl=5,kz=7,cnr=4,hz-,ctf-,tgqp=9,tfd-,sqd=7,rb-,qf-,srp-,fkzq-,pfjml=6,rnsbt-,dmp-,zngsp-,cfnbp-,kpqvtc-,gftx-,lvs-,zpc-,kpz=2,pxvxlh-,spm-,rt-,ftz-,lvs=2,zsx=2,sjb=4,lxmkfx=7,bqpp-,hb=7,xzl-,ckb=7,hsb-,cvc-,ksn=7,mktlhp=5,jhl=6,snpgsm-,mm-,xstdx=2,rm-,rqx-,ld=4,zv=6,fx-,sbx=2,blfx=8,fmkjj-,km-,cmbv=8,vz=9,lg=4,fpg=4,kpfr-,dmp=4,xxj-,jhl=2,km-,vx-,sh=8,xqv=3,kfp=3,zdm=3,tdl-,ddxn-,gzrz=9,xqv=8,kqh=2,rlrlql-,lpd=1,vr=1,ggm-,dkz=3,jx=2,trzx-,sjb-,rh=8,dbsf=4,jhhqj=8,jzxp-,bkxf-,thnmq=7,mktlhp-,jtz=7,sh-,plt-,rfdrk-,hj=4,dk-,zjvd=9,jsv-,vkn-,jc-,zk-,mmsz-,lcr-,dkz-,px-,pcnzf-,jtz-,pzd-,kqh-,ts-,znb-,dzn-,qgm-,drls=9,bmnlf=3,thnmq-,bpq-,zxt=9,lg=6,rknz=8,bzj-,vsh-,lq-,rm-,ql-,cs=1,dzt-,hfrdk=4,kmm=9,lhks=9,jsv=5,zxt=9,kc=4,rm=8,hvglb-,bzpv-,drs=1,tgqp-,trg=4,dp-,zmlr-,pvv-,lfg=2,rqg-,nh=5,mkj=5,cct=1,lxmkfx-,txpx=2,vps=5,dzn=3,dph-,kv=1,vth=6,gftx-,lztd=3,hb=8,qpx=2,fjg-,plp-,vnhfc=3,zv-,xt=1,bgkjq-,pbk=9,hj-,sv-,kpz=5,fnh-,zpc=3,zj=8,pxvxlh-,qgm=6,gct=5,tdl=5,xtl=2,lg=7,trzx=9,hvglb=3,ss=6,vpxv-,gh-,js=1,jf=1,rqx-,pg-,nqcj-,zzx-,mf-,zlcmgc=3,lxg=8,rpgj-,vhl=6,phsl=8,dtck-,rxv=2,qpf=7,nh-,ccs-,mf=3,xrm=4,pljg=1,rnsbt=5,nnn=2,snpgsm=5,qxkrd=5,xgk-,trg-,phsl-,bzj=5,ckb=4,cqbvs=5,xgk=8,ck=7,dbffb-,tj=2,dm-,fjg-,zdm=8,jc=9,rqg=3,qhvz-,cmpc-,dzn=4,xrb=2,kfp=2,vbz-,xhs-,dnkf=3,chpn-,sl-,kftx=5,rsn=5,ps=9,jm-,pbk-,vq-,qpf=4,rfdrk-,rsn=9,nqcj=7,vsh=7,npm=7,qxkrd-,hpl=1,rnsbt-,pxn-,zsx-,lpd=5,fgmpc-,vkqx-,vth-,pm-,mgt=5,cct=3,bb-,hzlzn=2,gkn-,mjz-,kx=8,qcnnzx-,kmr=7,lfl-,jhhqj-,lqfv-,gkn=5,pfjml-,lhks=4,bzj-,tnp-,nj=1,xhs-,rtj=9,rlrlql-,qcm=3,mph-,fx-,jm-,xtl-,xdfz-,msbfzl-,ckb=7,hj-,cqr=5,scbpb=2,tslfp=1,kmm-,cv=4,zpc-,qfb-,rlrlql-,trzx-,sf-,ccs-,fsz=2,dv=8,thncf=4,bmnlf-,qgm=8,plvd-,dm-,pjfk=4,gr=6,qv=7,khx=3,vs=7,dtck=9,xbx-,xstdx=8,km=6,hgp-,kf-,xf=1,vnhfc=6,xgr=1,pbk-,sl=2,jmthd=8,sbt=6,mkj=8,vnk=3,bgkjq=8,bg=2,xbx=6,mmsz-,rnxt=1,shn-,ss=3,kpqvtc-,dfz-,qxj=9,mktlhp=4,jzxp=1,hm-,vx-,bzj=1,vnhfc-,vrc=7,bgkjq=8,gp-,vq-,lh-,tnfx=4,ntg-,dd=5,znb-,vtp=4,vgln-,hz=1,lk=1,mktlhp-,vz=3,vpk-,bbsk=4,qlf=1,hgp=5,xjpbxm-,qcm=8,tz=4,lqf=2,bz=3,jfjbj=9,lfl=6,cqq=8,xzt=4,xb-,rlrlql=9,cqbvs=8,dzt-,blfx=9,rqx=5,xfn=6,px=3,chpn=7,js-,lg-,ctf=1,qcnnzx-,hsb-,xnmq=1,hpl=1,pg-,gr-,fkzq=2,rfdrk=7,tnp-,gbsp-,nq=4,vttk=1,lrpx=5,xrm=3,crb-,nglvx=5,md=2,px=6,pljg-,sjb=3,kpjqgm=9,xrm=6,slzd=6,xc-,sxlh=6,mtx-,xc-,nbtq-,plvd=2,hb-,znfd=7,ghbr=1,gkn=3,gct-,cqq-,znb=5,jsv-,txpsv=6,dk-,dbh=7,lmlx=6,lcr-,bfz=4,xhs-,cjb-,tkpb-,dkms=4,sh-,fkzq=3,kqh=8,dv=9,lrpx-,vnhfc-,bqpp-,pcnzf-,km=1,ssmflk-,pnp-,rsn-,cqbvs=5,fr-,kfp-,npm-,vbz-,jm=9,pgd-,trzx=6,hsb=6,qrn=3,lln=8,zl=6,qpf=8,djmlb=6,zj-,qhvz=1,kz-,bzpv-,bq=8,frgf=7,blfx-,tnp=9,lqf=3,zrs=5,lc=2,scb=6,dzfqlb=3,kmqjt=1,trg=1,fzm-,bgg-,gzrz-,sv-,qz-,zlcmgc=4,qcm=1,xhd=7,zmlr-,fnv-,xdfz=9,fx-,xfn=7,zdm-,fr=7,tfd=1,njvd=4,vnk=2,xbx=8,xp=3,zbgdxg-,lxmkfx-,pbmldc-,znfd-,znb-,xh=5,ccf-,lxmkfx-,tgqp=6,ng=6,kz=9,hlg=2,mmsz=9,vdf=1,vkh=9,cvc-,sfp=7,ckb=6,gxg=9,cggz=2,clg=8,zn=6,ctf=6,zdtz=1,ddxn=6,nhsvv-,plvd-,sbx-,ncjb-,lc-,pvv-,vpxv=3,mhh-,qgm=6,vbmk=8,rb-,gxx=7,pt-,qpx-,gcbtgm-,xf=4,xfn=1,tv-,mmn-,zrs=6,zm=7,pxvxlh=5,xc-,dbsf-,scbpb=3,smtd-,fsz-,znjg=3,rfdrk-,ccs=9,mgt=5,mjjk-,vsh-,sv=8,cgp-,gf=1,pg=5,mph-,ctp=3,vblpd=7,gbsp-,gf=3,nbtq-,vjsg-,jsv-,lqfv-,np=4,xh-,tq-,xs-,vk-,hb-,mmn-,vbz-,kpjqgm=5,dkz-,rzjkqp-,tvm=3,dz-,kftx-,khn-,nj=2,cnn=3,cl-,sf-,vc-,zmlr=3,lxmkfx=3,blfx=9,vbmk=6,tpnmp-,sqjgc=5,rz=2,bszd=6,kkc=9,dnkf-,lmlx=7,ddxn-,bhfh-,gflrmd-,xb-,mmn=2,jfjbj=1,zm-,sqd=4,kl-,dfz=4,ktj=5,lxmkfx=2,qxkrd-,dp=6,hl-,lqfv-,kx-,vbz=5,qf-,sv-,kpqvtc-,vhx-,ps=1,fr-,vbmk-,bnhz-,tj-,rlrlql=2,np=4,vs-,vbmk-,pmz=3,pbk-,zxt-,ck-,xf=2,jtsdd=7,ng=1,gn-,qfb=5,mf=4,xb-,rc=7,jjd-,xv=6,gzrz-,cqq=5,dzt-,scb-,plvd-,vqbp-,mvmqfm=3,pr=1,nj-,pvv=8,xtsd-,gbsp-,hnf-,fdfc=3,zzd-,kftx-,pbk=3,lrpx-,hbmt=4,mktlhp=2,ld=4,sf=4,rxv=1,kkcd=9,dph=7,ssmflk-,vnhfc=1,hrbj-,ljsvc=6,rt-,xf=5,tq-,npm=1,kkcd-,spm=7,ljsvc=4,lpd-,nh-,cnr-,xmxf-,cxq=6,mjz-,hpl-,lh-,grlkl=7,pv=9,pqf=1,zsx=7,vbz-,vgln-,dvz-,zl=6,js-,rqx=8,hdxvhr-,pkg-,tzjln=1,nhsvv=7,ggm=5,zz-,kmm-,zngsp=5,gqsr-,cnn=8,vrc=3,zxt-,txpx-,jmthd=9,gbsp-,gn-,zrq-,ss=5,xjpbxm-,ssmflk-,sr-,kl-,gp=9,mhh=7,bpqv-,mvmqfm=6,vr-,kmqjt=4,xnmq-,hvglb=5,qpf-,xb=5,jgmnxd-,sfp-,sscn=8,pcnzf=4,rr=7,gqsr=4,xs-,ql-,pxn=6,jf-,ckb=6,ps=7,bzpv-,qcm=5,gf-,vk=8,hlg-,kjrc=4,dnkf-,kjrc-,qgm=7,pt-,mmn-,dphx-,dsg=8,brp=5,lq=6,kpqvtc=8,xhs=1,tz=1,rm-,qht-,jhl=3,mr=1,tj=4,pnp-,zngsp-,lcr=5,fr=9,vgln-,bz=1,nfgp-,xzt=1,xzbz-,cqzt-,vblpd=9,mg=6,dd-,xtl-,mf=7,qln-,qxj-,mgpp=7,cb=7,zf-,pkbv=2,fgmpc=4,lc-,dmp-,zxt=1,db-,hrbj-,vnk-,smtd=1,cjb-,dtt-,zlcmgc=1,kkcd=9,xh=3,sqjgc-,td=9,npm-,cqbvs-,hj-,sf=2,zf-,mph=7,zcjvl=4,dkms-,rgh=6,zzx=4,hm=4,tz-,vr-,vf-,cqq-,bgh=1,sn-,vbz-,sxlh=3,xtl-,lqt-,kd-,mg-,vf-,lg=5,fnh-,gbsp-,ksn-,mlcn-,vqzhc=8,gzrz=6,lcr=3,qxj=1,hpl-,dphx=5,js-,fm=5,vgslz-,vf=5,ns=2,qcm-,ds-,pr-,vqfz-,hl-,mnphn-,ctp-,qht-,dv-,kd=1,lrpx=9,bpq=1,qgm=9,ckb=6,zf-,vps=5,gbkt=3,zk=4,lztd-,tpnmp=9,rr=9,rpgj=5,dbffb-,mvmqfm-,fzm=8,bpq=9,lxmkfx-,sf-,br-,jxj=1,snpgsm=2,bj-,fsz-,vjsg-,gxx=4,hbmt=1,gflrmd-,rtj-,zl-,snpgsm=7,ppq-,vrzjf-,dv-,njvd-,sxlh=1,xgr-,tv=8,kmqjt=2,cfnbp-,xxj=1,zngsp=5,cqr=1,jc=9,gr-,qxkrd-,xzbz=9,xnmq=1,zcjvl=1,vjsg=4,fx=2,srp=2,kpfr-,bbsk-,xqfrg-,tvm=1,pqf-,fdl-,ss=5,bnlpjk=6,dphx=6,vbz=4,grlkl=7,gxx=1,lrpx=3,drls-,dph=8,vs=4,sbt=3,jpc=5,pbmldc=8,ddxn-,br=3,qln-,rvcd-,dmp=5,dhh=5,fjh-,sn=6,txpx=2,ctdbt=1,rzjkqp=7,bzpv-,gt=6,sb=8,qht=9,kpz=2,hvglb=8,mr=3,fq=5,jm=5,rzjkqp-,ndmt=6,bzj-,lg-,ks=1,npm-,vqbp=4,lcr-,km=9,tv=6,thncf=6,bxx-,vq-,rpn=6,dz=2,tcs-,mr-,kd-,spfc=8,npm=7,hrbj=1,cggz-,jjd=7,drs=6,vr-,rfdrk=4,kc-,pkbv-,zmlr=1,lqt-,hsb=1,xb=5,pljg=5,bq-,gxx=5,vrzjf=9,xhs-,xk-,vdf-,lg=6,xrb-,vc-,pbmldc=5,js=5,ld=4,sbt=4,gftx-,kpz-,khx=1,mr=9,lztd=7,xqv=8,cb-,sbx=6,qpf-,vgln-,xcq=9,jf=4,zs=2,cv-,vqc-,vgln=3,bmnlf-,nsxz-,vttk-,jx=1,tnfx=9,zv-,fdfc-,rc-,lhks=4,zlcmgc-,grfxxs-,hrbj=4,vqt=8,ts=5,hd-,tq=8,bg-,mf-,pcnzf-,sh-,trzx-,xb=4,rc=8,bzj-,pkg=8,hlg=5,qcnnzx-,ck-,mjz-,vth-,mgt-,cct=1,bkxf=8,rpn=1,mg-,fjg=3,vlv-,zngsp=8,ksn-,hnf-,dbh=7,pxn=5,hsb=8,mq-,jsv=7,ccf=1,ts=8,kz-,xgr=5,xbx=5,sqd-,fpg=8,lvs=5,smtd-,zs=3,dsdm-,nrc-,jtz=8,jxj=3,sv=3,mlcn=9,psfnx-,kpqvtc=9,rsn=4,zdl-,lztd=4,vnk=2,dmp-,sscn-,zj-,dd-,zdl-,smtd-,tj=3,ggm=6,ff=2,zzd-,pfjml=7,chpn-,mjjk=4,spm=7,sfp=6,xbx-,dbffb-,sh=9,hnf-,pmz-,rzjkqp-,hb=8,bj-,hgp-,txkh-,znjg=2,vqfz-,vgln=2,zzd-,crb-,vqt=3,ssmflk-,bqpp=4,xt-,dbffb-,bhfh-,hsb-,rvcd-,sbt-,txpx-,jtz-,cb-,dp-,mvmqfm=3,ddxn-,msbfzl-,xgk-,jpc=5,phsl-,dbffb-,zcjvl=4,tvm-,pv=2,sfp-,nnn-,jmthd=2,qcnnzx=3,xnmq-,tgqp-,fzm=3,jpc=2,cnn-,jhhqj-,mvmqfm-,rtj-,km-,lk=6,slzd-,chpn-,xb-,tpnmp=9,vkz-,lqt-,vf-,gbsp-,cmpc-,xc-,pkg=5,tz-,dzt-,mvmqfm-,dvz-,lhks-,npd=6,lfg=7,bgh-,vqbp=5,grlkl-,lvx=4,mgpp=1,znb=6,zf=4,lfl-,cr=2,dbffb=3,jzxp=2,mhh=2,gftx=7,lfg-,gkn-,xb=5,djmlb-,qln=8,zmlr-,dkz=6,grlkl-,rt-,zcjvl-,vblpd-,lztd-,lfg=2,gxg=6,bj=8,zs=9,ssd-,lcr-,tqx-,ncjb-,kmr-,trg=4,kmm-,cjk-,tq=7,qqp-,scbpb=1,rc-,xzt=1,ftz-,sjb=2,rknz=4,gbsp=4,qrn=3,dhh-,mph=1,pjfk-,grfxxs-,xfn=3,bq=6,kd=3,vjzt-,vgln-,rv-,lcr-,blfx=4,gzrz-,kmm-,hj=8,pvv-,khn-,jfz-,gr-,gr-,dhh=9,ps=3,vblpd=9,sqd=3,hz=7,mp-,lxg=1,bnlpjk=3,jjd-,txpx=7,fx=9,nkx-,bg-,rvcd=4,sr=6,qz=3,vdf=9,ld-,nsxz=1,zdtz-,dzn-,hb-,vjzt-,nfgp-,cmbv=6,pljg-,sqd=1,ssd-,fzm-,qv=8,tn-,cct=8,cnn=2,vkh-,zl=8,xcq-,ppq-,scb=5,pbk=6,jmrz-,xgr-,kpjqgm-,nglvx=5,qht-,fnln-,cl-,kkc=9,kpfr-,xtl=9,dsg-,xrb-,zdm-,mmn=5,tz-,gh-,vkn-,vkqx-,gkn-,qxkrd=7,rt=7,rh=3,bc-,nzq-,mtx=8,jc-,kfp-,dkms-,thnmq-,jhhqj=6,vhx=2,lqfv-,kc-,vqzhc-,bzj-,fmkjj=5,ql-,fdfc-,kftx-,ktj-,bgh=2,cqzt-,rtj=2,vkh=2,dfz=6,xstdx=9,npd-,hf=8,jhhqj=1,snpgsm-,xrb-,hm=5,bx=1,ql=2,djmlb=7,xcq=6,xbx=4,kl=9,dk-,sh=7,ctf-,sqjgc-,thnmq=7,lhks=9,xdfz-,tk-,pt-,vgslz=7,dtv=5,sbt=9,kv=1,drs=3,db=8,lqf=6,xhd-,qln-,ckb=2,kpn-,qvlzn-,fb-,xcq=3,vqc=2,ct=4,dtck=5,vgslz=9,shn-,rv-,cr=3,tpnmp=1,cct-,zj=8,bnhz=4,psfnx-,nnn=8,kl=8,ps=5,ng=6,cnr-,snpgsm-,dnkf=9,znb-,bgkjq=1,pjfk-,pl=9,dtt-,sqd-,hgp=7,gs-,qrn=8,dvz=4,kftx=7,ggqq-,cl-,cr=9,jsv-,vjzt-,pxvxlh-,kqh=1,tqx-,lvx=9,mf-,rpn=2,bpq=4,km=4,vnk=6,cqzt=9,bxx=8,tn-,pgd=8,dp=7,thncf=8,zdtz-,vgslz=5,cnr=7,nkx-,hdxvhr=6,tj=6,xnmq-,qf=4,lq-,vnk=7,rpn=4,zd=8,rxv-,lln-,sbt=6,mhh-,rz=5,dtt=9,gxx=7,pnp=2,lqt-,xdfz=7,lhks-,gflrmd=8,kpqvtc=3,tj-,pvv-,xcq-,xfn-,kpjqgm-,kc=6,zngsp=1,vpxv-,xfn=1,qqp-,tj=2,xrb-,zsx=4,lfl-,vqc-,nq=9,lrpx=7,rpn-,phsl=7,chpn-,vq=6,dd-,ff=1,lztd-,lq-,vx-,lg=3,jmthd=7,vnhfc-,jgmnxd=6,fpg=3,xs-,ggqq-,msbfzl=7,znjg-,xt=8,xzt=9,ff=3,mmn-,dmp=7,hrbj-,vth-,dkz-,nsxz-,bnhz-,bq=2,hm-,dm=7,trzx-,xmxf=1,npm=7,qqp-,fnv-,bzpv-,hnf-,ztk=4,hz-,bx-,srp=4,sqd-,zk=5,gbsp-,fsz-,vlv=6,hpl=5,jgmnxd-,rtj=9,lh-,qhvz-,vkn-,blfx=6,sc-,rqx-,tslfp=6,zdm-,fsz-,mm=5,lc=5,ghm=6,ktj-,kl=6,dph=6,ztk-,cb=2,kz-,psfnx-,mq=4,vqc-,dph=9,zj-,js-,znb-,vqbp=9,dx=2,dtck-,gt-,br=6,zrq-,bqpp=5,ckb=6,ng=9,zdm-,jc-,lvs-,ql=9,zf-,sc=2,dph=9,bz-,vbz-,khn=6,kmr-,drs=7,kx-,vlv-,pljg=6,vpxv=6,fsz=5,vqbp-,tcs=5,qz=9,xp=2,xp=7,kx-,ssd-,bz-,vs=5,mgpp=8,rnsbt=1,hdxvhr=4,rz=9,nq-,ktj-,pv-,cmpc=5,psfnx-,pqf=9,tv=4,jpc-,jfjbj-,vps=6,bszd-,jx-,xhs=2,cfnbp-,cb=6,nfgp=8,mg-,fjh-,mtx-,vrc-,cr-,njvd-,lffv-,qqp=4,cr-,js-,jx-,pgd=9,qg-,vsj-,bnhz-,sjb=1,nglvx-,fkzq=9,qhvz-,nlcrm-,kmm=2,jzxp=2,zrs-,mtx=9,hnf-,lk=5,nq=2,rpgj=1,tkpb=7,zzx=7,pnp-,rgh=1,qhvz-,zpc=1,pmz-,nhsvv=5,zqr=6,cggz-,lhks=3,bpq-,tfd=7,jm=4,kpjqgm=9,qxj=8,pv=8,pmz=2,jf=2,gxx-,jf-,mktlhp=1,lrpx=2,lqf-,scbjp=3,fdl=7,khn-,ddxn=7,dzn=6,chpn=5,vpxv-,kl=8,sqd-,vnk=9,vbz-,cqzt=9,lc=4,nhsvv=7,ph-,bz-,xzt=7,cqr=8,spfc=3,vsh=9,bbsk-,khn=1,bl-,lffv=3,pl=8,zdl=7,qg=2,vkz-,qht=9,xhd-,blfx=5,vbmk=5,npd-,zv-,bpqv=2,tvm=6,xqv-,zv=8,dbffb-,trg-,cqbvs=2,vqbp=4,kpfr-,ql-,cggz-,kpfr-,sbt-,plp=2,fsz=3,ct=1,zcjvl=6,rpgj-,nfgp-,zqr=4,zn-,mq-,ps=8,rtj=4,kpqvtc-,ndmt=3,plvd-,xv-,rt-,fb-,psg=8,sxlh-,nhsvv=4,pkbv-,vrzjf=7,dzn=7,mmn-,jfjbj-,vnkmzj=6,dp-,rh-,cv-,dzn-,lg-,rpgj=1,dph-,ctdbt=3,cfnbp-,gxx=8,hj=3,xnmq=4,lc=5,bb=9,zdl-,zzd=9,hzlzn=9,dz=9,rz=9,bzj-,xb=4,lrpx-,vlv-,dph=1,cqbvs-,ghm-,pcnzf=2,vr-,cct-,mph=2,nsxz-,ssd=2,hfrdk-,psfnx=9,rc-,pbk-,znb-,zmlr=1,dk-,dkz=3,rqg=3,mv-,zv=9,sscn-,bszd=1,xhs-,dzt-,mgpp=3,dnkf=6,tnfx=9,drs-,spfc=3,dbsf-,sr-,lfg-,bg=2,gbkt=7,jxj-,tv-,fjh=9,fdfc=5,gs-,vbz=1,dbsf=9,zdtz=6,fgmpc=2,njvd-,hfrdk-,sh=8,scbjp-,zn-,msbfzl-,px-,spfc=6,vdf=2,vc-,vlv=2,cqq-,vhx=1,hl=3,vkqx-,fx=7,gct-,vrc-,hpl=8,zm=1,ktj-,xmxf-,rqg=7,zm=8,cqq-,zlcmgc-,kkcd-,dtt-,jmrz-,gf-,xzl-,pcnzf-,tslfp-,pxn=2,ccs=5,lmlx-,cct-,vgln=4,xt=3,gxg-,vq-,dz-,vqc-,bgh=6,zbgdxg-,ctdbt-,mg=6,fb=1,xbx=1,xv=2,lvs-,kd=9,slzd=2,xb=3,mvmqfm-,kv-,jfz-,jc=8,mgpp-,shn-,kpn-,scb=9,txpx=5,zf-,vhx-,rnxt-,pxn-,mg-,gftx=6,fsz-,xnmq-,bz=4,nfgp-,gkn=7,bnhz-,qpm=1,vhl=5,pm=1,spm-,xfn=8,xf=9,vqbp-,trg=1,pkg-,lrpx=4,mf=7,rpn=7,vqbp-,vdf=8,zz=5,tslfp-,dz=1,fjg-,cb-,zqr=3,clg-,js=2,xjpbxm-,fnln=4,pgd=7,hzlzn=6,qrn=4,khn-,psfnx=7,grfxxs=8,lvx=4,spm-,zl=6,grfxxs-,trg=1,lmlx=2,rsn-,rb-,cnn-,zdl=1,mmn=8,rr-,scbjp-,zk=2,xrm-,lc-,pkbv-,ss-,qhvz-,fq-,bnlpjk-,kkc=8,fpg=7,tgqp-,jzxp=8,rm=2,plvd-,lfg=5,jmrz=9,vk=7,spsx=2,spfc=5,plp-,cfnbp=6,jzxp-,fjh=3,xjpbxm=4,br-,nrc-,sn=3,rc-,lfl-,plt-,np=5,bgg-,xf=4,vlv-,vrc=5,cct=5,vps-,xzl=9,nnn-,pvv=9,dmp-,sf-,hm-,vtp=7,cqr=7,kv-,rnsbt-,qcm-,dvz=1,dbffb-,dbh=4,bzj=9,ctdbt-,tnp-,ksn-,dmp-,qz-,lxg=6,dtck=9,lvx-,bfz=6,xgk=7,qpm-,ggqq=2,grfxxs=3,msbfzl=1,xqfrg-,nlcrm=5,hzlzn-,rfdrk-,xhs=8,xnmq-,pbk=9,jsv=9,zk=8,dtck-,jtz=2,nhsvv=6,ddxn-,ks-,tcs=1,jsv-,xb=1,ff=1,scbjp-,mjz=7,pbmldc-,tcs-,xhs-,plt=8,zs-,xbx=6,bxx-,qcnnzx-,dkz-,dvz=2,rh=4,mhh=7,djmlb=7,bnlpjk=8,jgmnxd=9,pzd-,lffv=2,xqfrg-,cb-,tzjln-,bfz=1,fnh=8,xf-,cqbvs-,lqfv-,ld-,jtz-,nj=8,cjk-,dsdm=9,thnmq=2,ck=8,bpqv=4,rgh-,mf-,sqjgc=8,rzjkqp-,dvmm=8,zthrd=2,mtx-,cqzt=6,gct-,spfc=7,trzx-,hlg-,rqx-,lffv=5,vf-,bqpp-,nhsvv=8,kpfr=2,dfz-,cnn-,gkn-,hb=2,vnk-,px=2,hxd-,zthrd-,xv-,jzxp-,vkn=7,cxq-,ccf-,xfn-,lxmkfx=5,pljg-,lqfv=5,rfdrk=9,khn=5,cnr-,vr=9,kd-,ssd=5,mmsz=7,fnh-,mf=8,lvs=3,vgslz-,pfjml=7,dtck=8,dph-,gk=4,ntg-,lpd=2,fnv=1,mnphn-,xzbz=1,zd=8,gf=1,tr-,lpd=9,vjzt-,ss=7,qnd-,db=2,vz-,lxg-,khn=3,vkqx-,fjg-,zrs-,tnp-,rc=9,fdfc=4,tqx=1,scbjp-,nbtq=6,kmqjt-,jc=9,txpx-,pr-,vps-,zv-,vnhfc-,jmthd-,blfx=1,vqt=4,spfc-,tzjln-,cfnbp-,zf-,ndmt=4,xqfrg=2,cmbv=4,mtx-,ktj=5,nh=1,mm=6,xv=5,ng-,bfz=2,zj-,pt=6,njvd-,qcnnzx-,qgm=8,fjh-,zqr=9,tn-,zz-,mvmqfm=9,gt=3,vgslz=4,px-,fnh=7,njvd=8,jtsdd=2,rzjkqp-,np-,ph=5,zqr=6,cb=6,sxlh-,pfjml=2,dmp-,lxmkfx=2,kpqvtc=4,mvmqfm=1,rknz=8,zcjvl-,tq=1,nnn-,vc-,zdl-,ndmt-,dtt-,mf=4,qcnnzx-,zzx-,pkg=6,xfn-,rnsbt=8,rgh-,vp=2,vpk=1,zz=2,mkj-,mr-,lln-,dm-,cfnbp-,sbx=9,dsdm=1,kpqvtc-,zzx-,bqpp=9,lqf-,cqr-,mlcn-,spm=1,dhh=6,js=4,pg=1,vbmk=3,vqc-,ftz=4,zxt-,zz-,xtl=6,pr=9,cnr=8,rqx=4,bszd=3,rl=6,phl=4,dvmm=2,drs-,bnhz=4,cggz=7,nhsvv-,cnr-,bgg=4,tr=1,pjfk=8,fq-,kmm=2,jjd=9,dbsf-,sxlh-,xzt-,mjjk-,pfjml=8,lmlx-,xtsd-,ftz-,nq-,kd=3,tk=2,vth-,nrc=4,vqbp-,grfxxs=1,ssmflk-,mmsz=6,lh-,td=2,vc-,qht=1,ccs=3,fpg-,ff-,ppq=2,cl-,ff=9,gk=1,zzd-,mv-,pqf-,vq-,vtp=1,thncf-,gt=7,ksn-,bnhz=8,xmxf-,ktj-,cnr-,ctdbt-,cggz-,vps=8,ff=1,jhhqj-,hd-,dphx=3,zk-,bg-,pkg-,gh-,nl=4,dtv=1,ph=5,xk=4,sbt-,sjb=4,tslfp-,kftx-,gxg-,mjz=9,bzpv-,dvmm-,zlcmgc-,mvmqfm-,jmrz-,sf=3,zz=4,vsh-,kfp=9,cggz=4,pm=4,nlcrm-,pg=9,xhd-,spsx=9,xmxf=8,bbsk-,pr-,qhvz-,vqfz=7,dp=5,ndmt-,nlcrm-,mgt=8,gflrmd-,vkn-,jsv-,qrn=7,gk-,rc=9,qvlzn=2,xtsd-,xzl=8,vdf-,fb-,mr-,vrc=2,qpx-,bmnlf-,scbjp-,vpk=5,vjsg=3,rvcd=7,tk=2,xstdx=9,tcs-,zqr-,kpfr-,rz-,vgln-,dvmm-,lqfv=8,bszd=3,nglvx=9,lq=5,dnkf-,sfp=3,pxn-,blfx=6,zzd-,sbx-,dfz-,fq=2,qqp-,rtj-,sb-,nbtq=2,bb-,zpc=6,tfd-,zl-,scb=4,nfgp-,kftx-,zn=8,rh=3,fzm-,qvlzn=3,ctp-,qrn-,ztk-,pmz-,rh-,vpxv-,lvx-,cq-,jmrz=8,sqd=2,kftx-,ppq=7,dvz=3,vblpd-,jgmnxd-,gxx=6,vnk=5,ntg-,sjb=3,dkms=3,bgh-,zsx-,xrm=8,pkbv=7,vttk=7,lxg=5,jm=9,vqbp-,kfp-,hzlzn=5,hl=4,trg=9,lq=7,ksn-,mmsz=5,px=2,lcr=4,td-,hfrdk-,rnsbt-,qln=3,dvmm=6,gftx=6,ppq-,xbx=8,pvv=8,xcq-,tzjln-,tdl=8,vf=9,sxlh=9,bgh=5,bqpp-,zxt-,xs=5,kmm-,ps=5,ctdbt-,hd=4,md=7,xzl=5,jfz-,tzjln=9,gpg=5,lmlx=2,phsl=2,jx=3,lfl=4,kpfr-,db=9,fdl-,rm=3,bqpp=7,mp-,xv-,bpq-,pg=1,nlcrm-,xk-,mq-,lk=7,hrbj=1,hj=1,ss=8,hnf-,xqfrg-,tnfx=9,znb=8,kl-,lqf-,dsdm-,khn-,cct=4,bzj-,spsx-,lc=6,jfz=4,plp-,fb=1,bgkjq=2,pvv-,br-,cfnbp=5,sqjgc-,sv=5,mmsz-,dd-,lrpx=5,mgt-,hdxvhr=1,dsg=6,zz-,gkn-,fjg=7,px=4,lfg=7,jfjbj-,ghbr=4,ftz=1,lffv-,pjfk-,spfc-,mlcn-,vth-,qxkrd-,ctdbt-,qpx=5,gqsr-,sscn=7,ghbr-,vqbp=8,bgg-,zf=2,qxj=8,bpqv=6,hlg-,tn-,lfl-,bzj-,tk=4,ql-,gxx=6,gqsr-,mtx=1,rqg=7,zzx-,lcr-,bx=7,nl-,msbfzl-,bhfh-,sxlh=7,nsxz=8,bgg-,pfjml=4,pv-,qv-,kx=4,dp=5,gxg-,qpx=9,mjz=5,zxt-,tv=4,kx-,xtsd=7,txpx=4,hdxvhr=7,pzd=2,vqc=4,xjpbxm=3,dm-,rvcd-,ps-,hbmt=9,nsxz=5,cct-,xhs=3,cqr-,fm=3,pzd=5,qxkrd-,rz=8,pgd-,txpx-,xk-,hnf=7,hlg-,lcr-,nqcj=9,pgd-,spm=3,zk=5,jxj=9,vth-,srp-,sbx-,cs=1,vpk-,srp=7,sqjgc=7,ks=1,dvmm-,zqr=6,gbkt=5,rl=1,phl-,mg=9,rm=2,dsdm-,rz=2,pgd-,gf-,bxx-,nq=3,vtp=6,sbt=9,kpqvtc-,qcm-,td-,bnhz=3,rknz=6,mjjk=6,qf=9,thncf=5,bb-,vjsg-,cnn=6,jxj=6,vkn-,gbsp=3,kpfr=1,lqfv=6,kv-,gt=1,fq=4,kl=4,rtj-,vth-,pfjml-,hbmt-,vr=1,xmxf-,sc=1,cgp-,jx=1,chpn-,xcq-,vttk-,vpk=1,mnphn-,mtx-,gxx=1,cgp=2,qvlzn=4,sr-,ct-,rh=3,rzjkqp=2,ld=9,pljg=6,vlv-,rgh-,spfc-,jm=8,fkzq=4,xmxf-,gp-,chpn=8,xtl-,cggz-,xnmq=3,rnxt=1,znb-,nfgp-,ts-,bqpp-,fnln=3,pljg=5,hz-,kfp=4,cq-,bgkjq=9,vs-,zngsp=7,jsv=3,dbsf-,kx=4,ph-,xb-,dsg=6,sn-,jmrz=4,dzt=7,mnphn-,vk-,kkc-,kpn-,vblpd=6,vqbp-,dmp=6,hsb=1,zlcmgc-,vbmk-,dp-,tk=3,drs=8,pl=4,sbx-,jhl=9,rknz=5,qcm-,mp=8,vqfz=9,ctdbt-,qp=2,vsh=8,nkx=8,qxkrd=6,bpqv=9,cxq=3,nbtq=1,sxlh=4,fnv=5,vnkmzj-,gpg-,nh=8,zd=1,rzjkqp=6,qpx-,bzj=2,fkzq-,lxg-,bb-,lffv-,xs=3,rzjkqp-,bpqv-,bz=3,zn=5,br-,zthrd=5,kc=2,ss=2,kf-,bb-,bz=6,hb-,dtck=4,sxlh=9,mmsz-,znb-,mhh=3,nhsvv-,ntg=1,bqpp=2,thncf-,tnfx=8,nglvx=1,bzj=3,gcbtgm-,cmbv-,ctp-,pg-,zpc-,rpn=1,gn-,ncjb=8,kmr=3,tz-,bnhz-,dvz=2,mvmqfm=5,jc-,plt=6,cl=8,vc-,qgm=2,ss=5,jc-,cggz=4,chpn-,qln-,nh=8,pljg-,km-,pgd=7,tqx-,xhd=2,gmrrx=3,bhfh=6,bx=3,msbfzl=2,rm=6,qcnnzx=9,xgk=6,gct=4,kpjqgm-,jx-,tgqp=4,sv=2,xf-,ks=9,pzd=6,zrs=3,md-,thnmq-,zzd-,xnmq=3,rc=2,kmm=9,rz-,jc-,rsn-,dphx-,bqpp=7,vs=2,kkc-,sqd-,tdl=9,zbgdxg-,qgm-,gmrrx=7,cb=4,bx-,lvx=8,slzd=1,fzm=5,cs-,xs=5,xxj-,xhd-,qcm=2,xxj=6,vz=8,cqzt=2,fdfc-,vx=6,rpn-,gxx-,nhsvv=6,mktlhp-,vjzt=4,lztd=7,zs=7,mv=2,nlcrm-,tkpb=9,sxlh-,pv-,qxj-,xcq=8,xgk-,scbpb=3,dk=9,mjjk=3,lztd-,njvd=8,znjg=5,lxmkfx=5,snpgsm-,ph-,pr=1,rpgj=4,nzq=2,kc=2,rsn-,dzfqlb=6,gf-,qcm=1,tcs-,mm=2,fjh=6,vp=6,sl-,kfp=4,tslfp=9,hl=1,fzm-,lmlx=2,bnhz-,sfp-,pcnzf-,gct-,jc-,xk-,zpc=2,jxj=6,tzjln-,bqpp=5,pjfk-,cct=5,qgm=8,sxlh=7,lhks-,mmn-,rpn-,vp-,qnd=9,mjz=2,td-,gct=6,sfp-,cb-,tnb-,zf-,chpn-,pkg-,gs-,mmn=2,mnphn=9,pxvxlh-,fm-,vdf=2,vnhfc-,njvd=1,npd-,cl-,vhx-,kz-,hl=8,bpqv=7,ks-,pl=6,txkh-,mjz-,bl=1,cqzt-,bbsk=7,ghm=3,tpj=4,tv=2,qf=7,tpj=7,ztk-,mq=2,jtz-,vkn=4,cs-,xdfz-,ccf-,lxg=9,ctdbt=1,trzx-,bnhz=6,gf-,kjrc-,vr=1,msbfzl=2,vblpd=6,qxj=7,cjk-,nj=4,cjk-,sjb-,ng=4,rnsbt=4,rtj-,frgf-,tqx-,sbx=9,kmqjt=8,rfdrk=8,ctdbt=5,mldgtn=8,rfdrk=7,pnp-,phsl=3,vc-,hz-,rzjkqp=9,njvd-,qqp=7,pjfk=1,sscn=2,pkbv-,lfl-,vp=5,kr=4,ccf-,plp=8,lpd=5,mph-,rh=6,zl-,lc=2,jhhqj=5,xf=6,snpgsm-,lq-,sxlh=6,vsj-,trg=1,cl=1,vjsg-,gp-,tn-,mlcn=8,gmrrx=5,qfb-,fx-,tzjln-,tfd=2,bg-,bkxf-,qpm=3,npd-,ssmflk-,fpg-,rknz-,zngsp=1,nlcrm=4,pt-,vkz-,mq=7,mldgtn=2,gr=7,fr-,xzt-,mkj-,jmrz=5,lxmkfx-,pxvxlh=3,vbz-,nq-,sbt=8,rtj=8,ktj=3,bpq-,mq-,lqf=9,vp=7,vz=1,bb-,ndmt=4,vdf=7,mr-,fnh-,rzjkqp=7,sxlh-,bszd=1,vgslz=5,zd=2,tpnmp=6,fr=2,bgg-,lk=1,qpf-,bpq-,xt-,ps=7,pxvxlh=1,fkzq=7,mgpp-,cqzt=6,bbsk-,clg=7,ztk-,bl-,vjzt=4,tk-,plvd-,jsv-,zd=7,dm-,gxg=8,lxg=2,bgkjq-,np=4,frgf-,lh-,ssmflk-,bc-,vjsg=9,rfdrk-,jx-,pbk=7,npm=5,kjrc-,jfz=8,bz-,bfz=3,ld=6,hj=4,msbfzl=4,clg=2,vhx-,vq=1,hb=4,mmsz-,sbx-,xnmq-,cqbvs=8,hgp=5,qlf-,nfgp-,ztk=8,vnkmzj-,cmbv=9,jjd-,rz-,bl-,jfjbj=7,hxd-,tfd=6,sh-,frgf-,ctp-,sjb=7,vsh=6,br=7,vz=9,px-,lrpx-,fzm=3,tslfp=9,znfd=5,bpqv=2,mktlhp=2,hm=9,znfd-,xgk-,xdfz=7,gxx=8,vpxv=3,qfb-,qnd=1,gpg=1,txpx=4,zmlr=4,zk-,plt=5,dx-,qfb-,vqbp=2,hzlzn=3,bfz-,mgpp-,xf=1,fgmpc-,rl=9,fjg-,qpf-,tslfp-,qvlzn=3,gbsp-,scbjp=1,mktlhp-,jhl-,fdl-,jmrz=1,rc=8,dmp-,clg=2,xtl-,cqbvs-,qfb=9,lpd-,kmr=3,xh-,lh=4,spfc-,cnr=1,lqfv-,scb=7,kd-,rqx-,tpnmp=5,pjfk-,qz-,gf=7,tz=9,kjrc=5,td-,bl=3,dmp-,ccs=9,rzjkqp=5,npm-,kpn-,pljg=6,dsg-,bg-,mhh-,mvmqfm=4,xzl-,plp=7,tk=6,zn=7,njvd=6,lqfv=7,rzjkqp-,kmqjt=5,cv-,mf=7,gxx=3,pxvxlh=4,nbtq-,vqzhc=7,bpqv=2,sl=6,ccf=5,slzd-,ssmflk-,sf=3,vhx=8,mmsz-,chpn-,fzm=2,xtsd-,tvm=1,zk=9,hm=2,cv=1,lq=2,dzfqlb-,kmm-,rxv=5,txpsv-,nrc=7,ps-,gflrmd-,tv=6,gs=6,znfd-,kc=3,zzx=8,vc-,tvm-,rtj-,kqh-,dsg=9,fx=3,hm-,rsn-,lpd=1,zjvd-,nq=6,hgp=3,vqbp=5,jzxp=5,pxn-,js=4,zthrd=3,nj=3,znb-,ncjb-,kc-,kmr=6,lcr-,vs-,kpfr=3,jgmnxd=9,bhfh-,rv=4,ks=3,hf=9,bgg=4,fsz-,hf-,np-,zzd=8,pgd=6,kmqjt-,znb-,fb-,qlf-,zj=1,pvv-,nzq-,ng-,lmlx-,zdm=4,hvglb=9,nhsvv-,kjrc=4,hvglb=1,ctp-,qlf-,lfg-,jhhqj-,txpsv-,bxx=3,ppq=2,vhx=7,scb-,lq-,sscn=9,pljg-,gxg=2,cv=7,zm=6,hdxvhr=4,hpl-,mkj=5,zl=7,zcjvl-,xp=3,bszd-,lxmkfx=5,rgh=7,lztd-,xv=1,cjb-,rqx-,gflrmd=5,lqfv=1,fdfc=4,vblpd=6,tslfp=5,rnsbt-,tpnmp-,cmbv=6,cq=5,gk=2,zdtz=8,lhks=2,gr=2,cxq-,xzbz=7,bpqv-,cmbv=3,cqq-,bgg=2,znb=3,vkn=7,gxx-,pv-,vf=7,gbsp-,qp=6,grfxxs=2,vqc=6,lh-,msbfzl-,dfz-,fgmpc-,kmqjt=3,qrn-,pfjml-,pm-,qpf-,qg=8,vlv=4,cq=6,lq=1,tnfx=2,cgp-,lq-,vgln=7,bgh=3,ggm-,jtsdd=1,xk=2,rqx=5,zv-,mhh=2,bpq=6,fdfc=6,lmlx=7,hdxvhr=5,jgmnxd-,lvx-,vrzjf-,dtck=5,ph-,rqg=5,gf=9,nqcj-,vqzhc-,bj-,fjg-,qln-,jpc-,vnk=1,sbt-,qf=8,qrn=8,gpg-,nglvx-,dbsf-,hz=1,jfjbj-,hbmt=1,sqd=1,cl=7,bzj-,jtz-,vblpd=7,znfd=1,gpg-,drs=3,gn=7,mvmqfm-,cr=3,tpj-,ck=3,qp-,zrs-,tpj-,gcbtgm-,zv=8,lfg=8,jxj-,ftz-,zz-,fdfc-,plvd=9,spm-,fkzq-,xcq-,sqd=4,dph-,rsn=9,vjzt-,xt-,dsdm=4,qlf=3,qht=2,js-,sv-,slzd=9,spsx-,zk=1,rv-,jxj-,scb-,db-,ff=2,cq=9,nh-,fzm=1,cs-,rzjkqp=4,vx-,qp-,spm=9,tnb-,bgg-,phsl=2,lg=5,gmrrx=3,pfjml=1,psfnx-,dbsf=3,jmrz-,lztd-,vrzjf-,vkqx=8,mv-,sqd-,hrbj=8,tgqp-,sbt=6,lhks=2,vp-,mv=6,snpgsm=9,xf=3,tnb-,hl=5,vqbp=7,zd=1,fm-,hbmt=7,scb=1,txpsv=3,jf=6,rc=3,vs=7,qpx=1,sf=3,zbgdxg-,xv=7,xv-,hgp=3,nfgp-,qht=8,vblpd-,ql=9,kmr-,rtj=2,lpd-,rfdrk-,rxv=5,sbx-,rfdrk-,pgd=8,kpjqgm-,vjsg-,cgp-,fnln-,dvz=3,pbk-,mvmqfm-,lmlx-,ndmt=2,trzx=7,tnfx-,xgr-,zlcmgc=5,plvd=8,gs=5,sv=2,dk=9,vnkmzj-,vkn=3,xbx=9,kl-,psfnx=8,ppq-,vq=3,xzl-,mldgtn-,plvd=7,gcbtgm=1,sscn-,drs-,bnhz=2,lhks-,sf-,pbk-,sxlh=3,vkn=2,vqfz=9,gct=1,cmbv-,qgm=5,lg=6,tnp=6,jsv=7,mmn-,xnmq=3,vx-,fkzq=1,vqbp-,gbsp-,txpx=9,jtz-,hdxvhr=8,xk=4,xxj=3,vrc-,fjh-,pxn-,gbsp=8,hl=5,jm-,zn-,chpn-,nbtq=7,kqh-,chpn-,nnn-,hfrdk-,mp-,bgh-,ns-,vsj=3,fgmpc=1,kd-,dtck-,nh=4,frgf=3,cq-,pt-,vttk-,px-,smtd=7,ctf=8,zn=4,kl-,jjd=4,bzj=7,cnn-,mtx-,pzd=1,ssmflk=4,jgmnxd-,ccf=4,jmthd-,vnhfc=7,srp-,qxj=7,chpn-,nh=2,kkcd-,dm-,mmsz=4,fnln-,lq=6,kkc=1,bq-,nl=3,mmn-,jfz-,zf=4,sl=3,sqd=7,dtt=3,ql-,jmthd-,ndmt-,vqc=2,jjd=2,jpc=4,vrc=9,kpn-,gs-,mjz-,ftz=7,bq=5,cv-,xv=2,mktlhp=9,cmbv-,mtx=6,ggqq=7,fq-,rknz=3,xxj-,zngsp=3,rsn=5,xrb=3,vrc-,fb-,phsl-,plp-,pl=9,cr-,vpxv-,lk=4,khx-,rpgj=2,kd=7,md-,dvz-,rl-,dkz=9,fsz=8,vq-,pm-,xf=7,tv-,tk-,dz-,qqp-,bg=7,xb-,nfgp=9,ng=7,kfp=2,mp-,vbz-,lxg=5,xqv=1,npd-,pvv-,xzl-,slzd-,dmp-,jzxp-,dphx-,txpsv=7,mldgtn-,ql=2,xgk-,mv=7,rl=7,kjrc=6,rl-,jfz-,ctdbt-,tdl-,fq=6,lcr=6,hzlzn-,qpx-,nbtq-,td-,mr=8,zngsp=4,vps-,ssmflk-,djmlb=9,pxn=7,cqq-,nlcrm-,rt-,vgln=9,gn=2,nsxz-,cfnbp=2,xrb=8,ts-,bfz-,lh=1 \ No newline at end of file diff --git a/aoc2023/src/day16/input.txt b/aoc2023/src/day16/input.txt deleted file mode 100644 index 1778ec0..0000000 --- a/aoc2023/src/day16/input.txt +++ /dev/null @@ -1,110 +0,0 @@ -\..../.....-...|........\.|...........-..........-......|....././..........\..|............................... -.../..|.......-............\...........-\|...............\.....|......-...........................-./.......|. -......../.-.-....\...\-.......................................|..........-.......\.....-.........|......|..... -....\........./..............|.............-..|.|.\.|.-......\........./..................|..........\........ -...|/.|..........................-........................|............|-..|...../\................./.../..... -...|.|.......\...................|/..........\\....|....................-..................|.................. -..................\-|..........|.\......|........\.....\...........................-..............\.....\..... -........./.-./..............................-..........|......|................/.............-......./...|./.. -....-...\..........-......\...............-/.....................\.........-\.........|..........|.....|...... -./............\......./..-......................../.|.-.|........................./.|......|...\.......-.-.... -...........././.............|..........-....../..............-.....\.-......-.............................-..\ -......................\.|.\..................-./.....\....|......................|..\...|..................... -...|.-...|.............../..//....-\...-.-...........|......-....\.|-.............\....-.|.............\...... -......|.....\-....\.............|../..|......\....--................/....|..../|../.....-........../.......... -.............|.........-.../.|....................\........................................................... -....\...\.-..-.....|.|...........-........./..../..........-.-....|....-..............-....|........|....../.. -..........|..............\..|........../..........................|.....|\.-...........-......\....../........ -...../.......|..../........-........|./\..\..\.\././.\.............--.......-..................\./......-..... -....................//...-..........-.............|................/............./.\....../...........-....... -.\-...|-/.......-........-...-...............\../...........................\/.....\...........\........|..... -.............................\-......|......\../......-..........|...........|.........-.....\..|......-...... -./................/........-.......|..\..../|............................|...........|.-.|.................... -.\.....|...............-\............|.................|...././.-...\..........|...........-...|...-.....\.... -.......-..../.........\|.....................|....../..|/./|..........|.......|-.......\\./......-............ -.....................\|......../-.............\...|...........................\.....\.\....................... -...|\.././...................|..................-.../\.-............\.-.........../............../.....\...... -.......\..................\..|../...........................\....\....\..../...\..\\./.-....................|. -...............|./...\..........|...|....\........./......\...\.............\.\-......|......-...-........|..| -.........-...........................-...-............\...\.\.................................-....|./........ -.-.|............-.....................-.................\..../......\....\....\....................|.......-.. -.....\.|......|..../................|......|.....-...\|../................./...................//............. -.|.........\..../......-........-............--...................../........|.......\.....\..........-....... -../.....|.|............-.................|\.....|....||...-..-....|/......................|.|-..-..........||. -...-............|.-.............-.....................\.|.............\.\............\...|........|...../.\... -\...........................\.|................................................/.|......-.......\........../.. -...................|....|.......|.-.............-..-\...-...............................|..................../ -/...../.....\............../...........|..|./...-.../...............................\........../|.........\... -..-.......|.........../.......|......../.......\.............../..........-|.................................. -...\.\........\............|......................\........|...\.............................................. -../..........--........|....-..............\..\.............\...................-........./...../..-.......... -..................|.................../\..-..|..................\....././..|......-.................../....... --...\.............\..-..-.................../...|.|.........|../|./............/...../............../......... -.|\............................-....................|......./..............................|..-|...|.\........ --........../...-....-.......................|...\........|.......\................../......................... -........................................................././.|..|.........\................/|........\........ --.....\.........................|...........|..||..|......................................\...\....../.......| -....\...|........\.........................//...........|........-.........\..........\-.....\................ -....|........|.........../........../....\........|......-../..............|...............|.........../...... -......\................-...........|.................\...../........|................-........................ -...............|......|...\............\............/.../.......-.-../............................\......|.... -............-........-..../.......................\..-./.....\...................................-\.....|..... -...|...../......\...........\......\...\......./...........-../..|......................../...|............... -...........................-...../....-.....//................../..........-.......|.................|..-..... -................-...\.............\.../.../.\../...|.........-.\...../.................\.............../\...\. -.....-..................../......................................-...-............/...........|...-..........| -.........-..........\.\................-..\............................|...................-........./........ -...............-....../.....\...|.........\.../\.......-......|............\-.................|...-..........\ -.....\/......../../|......\......|.....--............|....../........-.../....-...-........................... -..../....\....|.............../..|........./............-.........................................../......... -.........../.................|....-..........................................................................\ -...-.....-./....................\..../.\\.................-.....-....|..\.....-....|.......................... -.....-..\..........|....|...........|.|....................................\.......-.../.../-.-........-.../.. -............../......./...-.......-..|.......-|..........\..............-.-....|..............\............... --........../.........|.......................\....-........../.........\.................../.............-.... -.......-....\.....\..................\..../-.//.....-\..........|........................../....|.....\....... -..-./............./|..|........|...\\.........\...|......|.....\.........../.\......................\........\ -...../|.......\............../....................|.............-...........|......|....../.........../....-.. -.............-...-...|..\-.........................................|.......-.........|.........\.............. -......|......|............/.........................|.............\.............../....................|..-... -../../|\......|..//....../......................................................./-...................../..... -.....-........-................-.............|.-./..............|...-...../......................../..../..... -...........\......|.............|....|.|.........../........|....................\.\......./..\.\..|.......... -.\................/....................-..............................|...........\....\.......-....../.../... -...............|................-.....................................-..................\...............\.... -..........|\..................../............................./...............-.....-....-..|................\ -.................\.\...........................................-../......\.....-...............|...\.......... -..|....\............................................./.........|...-\.........-...\..|..........\............. -..................................|...........-....-./-.\.-..................-............................./.. -....................................\-.....\\...../..................-............-........../........-....\.. -...........\......./...../|\..../-....|........|.|-.....-....|.....||.....|...........\..........\....|.-..... -...\..........\./..............-........................././..........\././...-...........-............-...../ -\........\.....-..............................\................../.............-........................\..\.. -.........../.\...............-.\...-.....\............\....\......--.....\...................................\ -............\...............\.........\\....\....|......\.......-.................|...|....\.....\...\........ -.....|.....-............../............-............../.............../...................-......\...........- -..........................-...|......\.....\.......\........-................./..........-......../.../...-/.. -../........|....\........|..../...........|...-..|..........\............\..../........-................|.\... -..........-............./........................................-.......\.|/......./.................\.../.-. -......................\.........................../.../...../../.......|...................|............|..... -..............\..........-/........|/................................\...........................-............ -........\....\....../.......|.-........\........-..\.................................|.....\-................. -........\......|.\.................-..-.../.............\..................|.../.-.............-/............. -.|/.............-.\.........................|...|./........-...........\../...............\./.......-......\.. -..................-....|.....................-........|/.................\.........../..-.............../..\.. -......-......-.........../......................-......./...../.../.|........\.../....../............\.....|.. -...|../..................-.................\.....................\............-...........|.....|.|.........-| -..............................-...........|..-/.................|................................../.......... -.../......../.............-./.............|...../......./...|...........\..............-..........-....|..-./. -/..\...|...........|...........................|/................../......./......................\.....\..... -..|.........-........|..|......-...................\.........|...........................-.................... -../...-.....-.............../...|\...\.......|.................|.\.........-...................-\.........-./. -../..............................|.......|..............\...\......................\..........|............... -............/....|../....../.............-............................./......./.................\............ -/.....\...../.........../.............../...-.../\.....|.....|............|....|..........\.....\..../........ -....\....-/.........................|............-...........\........\...\.....\\................\........-/. -.....................-..-\...............././...........................\....-./......|..............\..-..... -................./........|.......-.-....................\.-.||...-.......\./.|./.....|...-.../......./....... -........-..-...../.......\.........................\.....././.\.../..|...../.................................. -.............|...............--.........../.|\/.....\.........................|..|.....................-...... -..........-...|.......\/...................|....../.-...-...|....................\..../.-...../..../..-....... \ No newline at end of file diff --git a/aoc2023/src/day17/input.txt b/aoc2023/src/day17/input.txt deleted file mode 100644 index 04d0721..0000000 --- a/aoc2023/src/day17/input.txt +++ /dev/null @@ -1,141 +0,0 @@ -111143231245512453233532231135242346643223434366453543664553534426223663625563233556655232522464453223446255523366641115221525545241115541324 -431121345255453245532513346436354562424226665435625542452543534236556535432235356366222264336444256255334564563564226352335454152333342425531 -211555234333213145543413562433332533444634432342622623343343455746676435745474465524463464332524462636562533446346254251543254415111115352424 -341511535443122253134546264233423566232562433526456565542774357646735536654673474477533643232255236632236625425666662645545552141115242422515 -341111243411143233254353542425566625642433362644332467546476655667755374563574564666444577323426235362444224643634223545235541134121215423153 -531254335432123321511666236453536252626542365563233477476436375343677375447543535337476464737335222455333555262365434346341345121543421555545 -352535514521514111243342542545234362225656644366655563365373766737565463557476566764463743673533232534423432654354532444434614515232111523231 -534444213321253145553225546453244552566243427573456456543553566474735356663557433377547454546773337365265654362565366242546625513555231514252 -323313551435534512622225362562263434433225636635664736767633535463645434646666633445555455344676663776363645426625355443264235342154354541551 -313344353445542136265245463656643456254675743474744556363764667356336334435764645543447755363434777747562523535253545462232443334115422245343 -411545355323353632256366354543644422255357345374367446347554465766367637555443653555375756736537575763375343236242446526465226534224412555332 -533131433141412662643523326542423234474465776365555735754776645376734774677646654667473753373634447774446536352326333564334433362123135411531 -512414542555163643526524526245525623733466554345447435364657576457576376563367444354735757756765547755635545232536536433564236626315454145425 -222144425355524633235543562342566454344764575745367646565574575636547773457356646456657637437547666745757773472565443652346664466335313555551 -425225555322663532264234233335563664747574765576347743444637647676737567333767356736363333744734647436646746476523664454633653546545122514442 -433432345135556643645433433353363575647663645376464776466577573557373364773353335555374554433464633534445576673653325425446624523422432115313 -331554441535436542646663554246654555367643355653745635636355676647567487764456667645455574637564434547453345476356634245324255236624234322155 -412551332642256525656556644673435575337544534765547457535765745875846744677848864748453556456475334367766655534547433255523464263563352324545 -443534155643554356242335334673736746664536333346353556577644664845484655676855576588488476647745635435535753465654355645265546422335564424541 -325113645335432555665355233555675344354467477467666744857886746774544874557756677867665777554343734443655754353756656432453432656526442431243 -435351452355523445664565747636637443475667333666457866648755647865645478687666547687547448455776553463657435344656637472443446523245236631254 -412143553424345325232454645555356743366537373758877467577647678654487674848784877787468644447756553677573465574353736576542332442522366564144 -431363252452364445356544557475337767655336557686768756474568654665465464884556855744876886546758447344734334637754557774553226363256242242651 -554256445333463534225356746736736743336763377746888675584476754588545785578747858657577787754874858864355637365443444365474546636352256656323 -425454462356554263636434334444466455765534574648745458464655777887654744458644875776467657545757755464375636667554445537457232633344456335351 -322453463334656455234546433475533746373377467777858787845857478676767845586566768464584884875677444488543533447537536376643424666645653654426 -432326546526255522353556547373665657473456445577748547665675868677547547785865454645454554774845748574876563377757437467553465624365666252336 -553526552222562635473565556657553364657548886884887656456865855666787554686645654858555566768654648745854464677634735446546732553642463664265 -664326265443345443746744735336634755665574447844755544578487644586454874856778477455686458576478578547554484667445666574665353445232224622335 -236532234245355276756476464355554554458887564887776455877644448447886868476548867546888764476866776558545547574453545467364757744326636223642 -632462455662552665443463346747745775658756746854568758745668675885889865596789855788675844755468675857556885843566367733464537666322366344223 -266666434363243576375767356665666877464755765578746575486748669688797696588866786698768646566485868545858886667435664777734463342523665555235 -443556525665656734577633335664448556655454678484454777545656666779696855688567966656964658877444685858567566545447466467443774467266252546652 -624455255224344733376335533753476658646544876564465586875955788776686876776867985856986576866568765548476654745754674775433435367623356456444 -262555462622446474437456377453868684444668468464476655987967866795876695585957798678969855857886488747765845586764675544766563666356435634332 -665624325625734563547365736536784556858567746767459867695988595777767769865658796865788965789678867667866557578674565534645577447432435556524 -333523334637534573776476636576557488766777764446687995988678876956786678875775556987997957898658565656667557575548444354657655335367544525324 -456466363423657475573575435664578688587455448765669969578697785989658879886787878568857799889578874487556756544556443334633446546536443652664 -222244452574756367757776634686545577855644575756668896567598879867997957659885755779787658957586658876446588645487856454536434636745444545545 -232636356457556536556365668745444488466474574987976697975796699686796855588666956768955895958675868455454458767755755376733663633374544556332 -332332622576377345736534646747554866678866788995569677878555787567775875779596796566579977885676656586446765845854744577365444454343372523366 -555664262474645377674577674647867577478684688557896658796655557657577765775656667969779597586797679965585456677454664556665646757366673426233 -356255527734373436547644678865777848585857997655679875687575776559878678858588867877856678657789789868858554664844468646634734744447367636636 -552366365773455644547347758554786677468775568778877797978995878598699565857955898857969565997667878757554646688678786867367546447363537255433 -234653475644663446373734847876648467867886788586887579567587799999866977967976866766799575567556897979657666685654448547664746376435346465542 -252443375445565446367565867885578575654575966679888956889877897698678786876967769856955595897679599865976488848485865647735437666446344436434 -243525237374773653566366744564464668675869676798668978579668697966669789967787689668989669967785588576658588654658478886653675446657763525423 -562444777554463656777574486488654468576556956965987679867969676669986697889777667866868559769957958968686745774765777755575354754635335676536 -264352744565456657667484888447847467598998779789689696779679766996889786776689888878996777588978666887977978585445584446655336663435446574336 -463534645476375645554684778858555786676885996565697889699888899766678879678998899799887896956567777585869788585685647484757343657653773563665 -432465634665435774545666885858845649887698657968779889688769778768696698686869888977969768555995578977568967465456666555784577674443567347654 -242537757554573534676885677655767659695959757675998797988778888678799667799866896879686987675557878578887699478448447774787663353534367754553 -524667356567664767788788786864867869567798856688887886998887976986998886686668767699776989677585877675977659745685675557555653563563733554246 -532356647776353655754665854564646466686577777586598677698878676969777768866697689778788897669979897577868888984565784456765466355374543736764 -353546744764545745656756586777658658697565657989587766697669768667797768668968778798869989666758756995866965667844757477467833575363475573665 -442363475553366336665585574875754767958869656955766897687769989798869789778887686787686676968967586798766967684684745655757855634753733757752 -663437377653673574868444644474888676596699778559668686678686966786679878697997667998668668679678775566688577957447548475848855753337766577654 -245676667643445744476584585486889868856958677757876786686678679686978889886998888999768868796876597559998755655765588557465675655453656434644 -623664534334746636755767677464487956975558566697767697896988988986888777988897867888887969667768658555778858798767857588765444464637377577456 -524435763477353755875846887578787556979997766576796978767969777889977779899788987687978888689776897659786666856748548645756774746364367376634 -252436533765577358467857485675499965699779976868778779896779686779787987877779796678799678678799677596566778799678664684774444556767456547463 -425573537536465645667877564778768875796687778666777866678866888788777997889889889698977679979667875765578958585784474754466784455733343567735 -464333643643774675646874764777889966956967776676876886799688979878878778878789889986887997868689965998667998898957544586884784556635746634644 -467634766367575447675444786885857898689798675679979967666789787898898779879998789996988787997866879557586768558865648756677648655653544434374 -343746456733555668756758766647798687656987598967767769799669777877779899879877997887788976797777786786686766555655656558576555537543536634463 -263736676335556377774776475777798578965889979797877679967769989798889889987997789799998866789986877778878665966865757677884784553474773577764 -436645433455747776854766587748677575858967897999889678767678779989877889979988889997876876767987687678559995869785556756658784533445456534364 -457333367374443446568888867558968899899755558786887989669778779799789777789789877797786878778769899759866986568874778856465478635343345547556 -653357365735437544784775777648977566996787598779866797796688878798979898888979997778969666688778767767968675685577484857666844654735677553374 -454465553543537354546566487886759755777886869789896779676678877997997979878787978898769888779699678677788756997994554564684577435566665665735 -645535635654537444576458775888989557678676898899899898879778777789998888888977799999876678677779969957869757677687688584466575575557463464574 -633446673336665785786556488457569967799656676688968667697989989999998988788999877898996869789799978989768599766594875486774675764367566653437 -365763544374353687774557856867888579757898686969676796986689878797978997979877977999799987889766778769957988885866744454548487444537747767446 -333636755475457746774775664885768689998686877878978686686998999898899898989888977798768997778786769665986876885655876855777745646444453543776 -257347366566556755557468747484878859559855958778679799887889887788997889779777777788977698668899997569799999896694654866676457747663766657374 -554664657744433558785576687586858965859676988969678669886988889998798779998998788898786688897788767697957657558568566856664764845635356777743 -437633353637643445485457545565887558959759869766978967769977997997797798898879888977777798877668879696986885979575658888674584733534445447645 -336773576566535576644748576564988895569965579877899669988897888788798979797979977997979687769689677585858655985875545766888476856753753775643 -447375436754766447678756554674875656886886797769889788989967878998987877797878888989798769897678795698885689978868887845785867854575334643545 -533774774334356485744844667888778799675896759697877967979877898888989779897787899796896869887878898896679879895846474568577556875467653377434 -526636647656677568754477458676456866878885686668989676699978797889989979777797888789689887999898765668796877998956878884644777453766767665573 -345776437655574577556784475666467865969688769689967879888899898787979977987989787869968767788798958965676985977558887786764565334636477577473 -462757555367744435776477675765555899756777555889787899796876786789979777799889999696968778897788975596967795797586768684467474533464663474556 -345335634367663334474446748788558686895898855886668998998877799988977999887787778696789977998687999799569767555576845465465587544735477547753 -352747473367547538454567786546446657585759898569988897798777688798687998988998969877688876686969789765886558558776665847888845556554375745442 -525653575563555774887556547555749798556987599756797867867689696667867966889689666776786689697968958698665787755764558846666855575573747534345 -326455665753733645448778877747875897567979969887898786977796667699978788696867677769979676996787658598765877957588784457484655764635365737434 -532467433765464655746576865775654596585859789697688867896988996977778898788669689878989769996769668658678679877544854467444775477564333674625 -335554544454457654447885484444866987787685589987766897996999779767969767678887676699997786677685669976768778997556877487444743767346766557456 -266536345774333444487446686656585797768599588595599776878699669999678767879886989896988777767965756768698777544665754856565457554453756356643 -342464363736646775655856546787754867795697769679858888796987869768899868797687697688878796789895765557688688985446585777584467466735366644363 -523237467646754656468466848574555667758689797896579777988779889977689668778896667696797676667785685755986597446645664545687753465567453354335 -323327756536477335755748475656576547887995887876985968976869696887779786776968996997867687879755599699567657755468776866885345435457655334225 -465352366554666376467456666544455546795667757799755996999978667976979767898877678768888758985566989859967794845764466677657453363336553674426 -555533553546357444765675856588657557878975766698966577867797677999988677666767968786787775798789997676876774564485686564547464355336356456634 -653433475335664753473446858774765764677666859687678977599767969767797969796977878998788799568865956576659644565846455864883376645435553556424 -565624333374353367374378478655648748848595599966858998869589999997986786677787987969558898667876766679797576857877576788664777573454645755524 -243444333564746346366668646545674655784777777596558976769676598668789667999889879766877787867797657978894768877458688756477776644647454654652 -323463545665546577475645558786854468657757569879597766865559566996799678799877666898856695986577997898647684875678677855454775654547364424426 -444345546665673463753634768476874774848587769865579789687878579978877559996587865859858789976885557859466565567686888557474764574774566345235 -463425647566774574744333678886747686865457799567576858589676667856577976986668978996686799577977886677544648876855645547444577633464636553523 -525644666573444644576675468484675575784565795957567577578956797786787796869877557895769667588675596744747766568788564546563666667763666225253 -434232334334645346434743378448585848667846577675678568857556598869978967698795766555887989895656586784848574867846777433673543643643345636354 -536245546237555656364544635858554588856888685777969769765876857989857999778897756695765797865577585676877858667674464376646773636576723344236 -563432433237543453765335674454676568784657684785679757868567556875775895977656667977959855575979944776757767668868556665477773367647645655455 -345662256237647446335653655474847777777457855878575955988896666669879768598869889768857697696556455457585858777745474363376763373677455666452 -236454255236363665663365567376855855468585857577666775857999657659868999786755866568579898667756458558654648847578447446356744353365436332433 -236656544552467767567677567448876458465585754786588555756756796978557899579678886778787886777445766574578586476464377437556375345344545245426 -662325463226374566436333654547585676688868454444785599797776865969998677956976597586658865956686866776584577484553367473533563564746536336443 -645354345344537355546665737533754846786764888785557644675696956878965869566966978688779976776866567854756646786873676654337473445524622236626 -233264254235366666736346437575764477565768544667785545578799879958588586787879788669995878745846576785646778646655574347764645533625345535563 -432433242246235746473543477553563665775475774755874587665558965695658699586897695998868747444878848474546545784334377573356763473236426645266 -243532622522636755753437535657447776765475565645845684687588454765579856966696756574665577485786546848546585774336373636476643336442355233566 -424366665443243666567346434354557355888674468846456668847655454648844584447647747545884765768788475648857654773677576566637647654653266642645 -355566553355543667644766357475663334576684855756856557474768868686854785488845464657775755684775878866867574456477457355345767654443322524456 -252226355555353432774774553656764464764766745687577646548754448444648855656476668476765857676478568588685475446655746336375532535436262246655 -124465325536222534633336746764356663557877585584548488677874547445477547864878867577864565556567445544564676546443567455743324244266455364265 -444646453636346242245546654333667346776464746865665867844474866746647865554675844644775465548557754474556375345735665646364353323526625624235 -412366252635624522466346354375765373635554864778855885678875757885648677787758444554675487467557768856743453437365564667776246434655322223525 -155662534242554334526573346673376775437747347484686774778445745547688488858484846876546748684767564753677657367475756735363326425522532252354 -111522322233565252443476336555573575463347454766857665787786477486485455577564475876657687767758584655535533636353747434645522266562523335624 -542422536235454325532645676434563747567556555574458874646877684645545674855674568675844866465685676443356746355677555555666633655263646665442 -211224626424363426643222663657775566775366634363464577678645547647756688757557454788857466767766573445336567467663545634344363446256343542532 -524353365435226556556322567464746534674443466757337368478575456847447776487687768855745786663475737763753364433366577364223462546556234245115 -351231443465264363362336352643774674346454366777533445747664448478677857785488484766644654674764373357565474433475733244565424353322356533151 -554223355636366655362352555655373675564737667663367637476378475656775876558465484467733734736556746773634646373557532336625245362343245314352 -415315224565323443623244633253477545773643635677437734464354663476745457476448456747555563574755374344343366743744432254533234544233652442452 -155321252324634365262226535534446766435373535475553354733776334766573455373756333733573667436757467643766753335642442322554323423224452212311 -554231145244425252354633334356244765663464645674467736446536735636374435547767747353673645457676564473344375654424643234566252323463342424331 -145124531215355646265623243325355765435544464565637674665536435365374465373674364755336673456445565567547775765322264364462642335223541214445 -245544533254142563235523522653435334444477535443567574737475663654776577746444777346766467745333753447653577332363336365532325543231234334451 -251214311244114545554462446423624626676363375354453335776637374775465676343453547674544736356577777464764476336235452444566243644313151353524 -251353112524455635524245344436546325534376365643536356555677555675344355745373347466346575334347466467665642344265334364324562252124525455152 -454211332313421263343625436544345634543275377555633667545444553367537367674333374344744754673653556564665546434666555266442463652431455221541 -115242354251513424524244565345324542344352356476443353667354646467467637463545337377445445357757536673532523352342633456335464421222514545231 -234551552324343221533222663526446236435634463664377555475474346673535434445744753657775466665644563245222634266653436345463353354354144115325 -325412113545232114263462446356336532466543425623356673677337363765363633556375433575757664356773345344465345555625252465465324322523535532422 -533444522324551243515564322652262342524325235554667764445446656633535736363765574763563335776423624463325533625243355442245443123534323312511 -334123531454531311142443565534562563644542436563665634765457377675756443636777543663643633363324553544365344443234345365224343523341515544422 -425513541335541443232314324425223643632666545263242622235765443475754557635364446664563322663626426463256624543536634556155552222222255121512 -443141524454451431355221565364643463663664635262463364522342652467643777543675336434624463452333536354565653344664465611411152424331223125543 \ No newline at end of file diff --git a/aoc2023/src/day18/input.txt b/aoc2023/src/day18/input.txt deleted file mode 100644 index 0e3c331..0000000 --- a/aoc2023/src/day18/input.txt +++ /dev/null @@ -1,676 +0,0 @@ -L 7 (#1dc5f0) -U 6 (#4497e3) -L 3 (#3b21c0) -U 3 (#3d8523) -L 9 (#58e7b2) -U 8 (#35d213) -L 10 (#329390) -D 3 (#1302b3) -R 7 (#07f802) -D 8 (#38fbd3) -L 7 (#6d0e72) -D 6 (#2c2493) -L 5 (#38b7d0) -U 6 (#2ab7b3) -L 2 (#0ce560) -U 6 (#2ab7b1) -L 2 (#2f6940) -U 2 (#2a5a83) -L 3 (#477150) -D 11 (#0baea3) -L 4 (#3899c0) -D 3 (#34a803) -L 5 (#55c0d0) -U 9 (#328483) -L 2 (#460290) -U 5 (#48cfd3) -L 4 (#1e3150) -U 5 (#3b7ea3) -L 7 (#2c0a10) -U 11 (#51d803) -L 4 (#39fe80) -U 3 (#51d801) -R 10 (#2938e0) -U 2 (#1c17f3) -R 4 (#0df9a0) -U 3 (#579691) -L 8 (#354a50) -U 4 (#3d0131) -L 6 (#1029b0) -U 7 (#0c19b3) -L 3 (#5f48c0) -U 2 (#0c19b1) -L 4 (#15ff10) -D 9 (#0f08b1) -L 5 (#1c8160) -U 9 (#573b71) -L 6 (#2d58e0) -U 3 (#479121) -L 4 (#1c7bb0) -U 8 (#34d583) -L 10 (#416f10) -D 5 (#34d581) -L 7 (#59af90) -U 5 (#24a821) -L 9 (#196ca2) -U 6 (#1f89d3) -L 4 (#6b4812) -U 2 (#1f89d1) -L 6 (#32e5a2) -U 8 (#5eb4c1) -R 7 (#5bffe0) -U 10 (#3f8051) -R 8 (#29ac30) -U 4 (#495a21) -R 7 (#3b4e10) -U 2 (#52d3a1) -R 7 (#1e27d0) -U 4 (#09ad83) -R 8 (#385530) -U 4 (#218943) -R 3 (#0d8de0) -U 3 (#218941) -R 3 (#3ac220) -U 12 (#09ad81) -R 3 (#08aa80) -U 5 (#33c7b3) -R 2 (#37a350) -U 3 (#6808c3) -R 11 (#355310) -U 3 (#6808c1) -R 3 (#14fbe0) -U 6 (#47b293) -R 6 (#28ab80) -U 3 (#37d873) -R 4 (#607702) -U 2 (#3d77a3) -R 4 (#18a432) -U 3 (#26ee23) -R 10 (#0ba7e0) -U 3 (#0b2863) -R 7 (#604a60) -U 7 (#477053) -R 2 (#0a1210) -U 4 (#2f7e63) -R 9 (#0316e0) -D 5 (#1372d3) -R 10 (#382a30) -D 3 (#2da293) -R 3 (#100920) -D 7 (#5267e3) -R 2 (#66c240) -D 4 (#1c94a3) -L 5 (#2d7770) -U 5 (#2c0061) -L 7 (#4181c2) -D 5 (#1f97c1) -L 3 (#4181c0) -D 4 (#2b79b1) -R 9 (#1bcaf0) -D 4 (#04de93) -R 2 (#010a22) -D 4 (#599823) -R 3 (#010a20) -U 6 (#189b23) -R 4 (#38f770) -U 9 (#452e51) -R 3 (#2551f0) -U 6 (#333c81) -R 6 (#0554d0) -U 5 (#411e13) -L 4 (#487840) -U 10 (#411e11) -R 4 (#2c69e0) -U 7 (#13c311) -L 6 (#164330) -U 4 (#7449a1) -R 10 (#467570) -U 5 (#47fcc1) -R 2 (#13e090) -U 5 (#2e45a3) -R 4 (#0f97a0) -U 9 (#129b03) -R 3 (#46c520) -D 9 (#11dcf3) -R 4 (#0d0e42) -D 4 (#05ca31) -R 4 (#56d742) -D 2 (#05ca33) -R 6 (#1e5ae2) -D 3 (#56bbb3) -R 9 (#1ce6b2) -D 5 (#039d83) -R 2 (#3f1c90) -D 4 (#198063) -L 11 (#3cf8a0) -D 7 (#198061) -L 3 (#2311e0) -D 4 (#401ab3) -L 7 (#46c522) -D 5 (#2d4703) -R 6 (#0f97a2) -D 7 (#053643) -R 6 (#603110) -D 12 (#2ab333) -R 2 (#25d970) -D 3 (#1956d3) -R 5 (#528eb0) -D 2 (#3a55e3) -R 5 (#1aa8d0) -U 5 (#29e981) -L 5 (#133d80) -U 8 (#559581) -R 5 (#133d82) -U 4 (#298e61) -R 3 (#0ed762) -D 5 (#481221) -R 4 (#0ed760) -D 9 (#3a5a61) -R 4 (#265580) -D 3 (#241031) -R 3 (#2bacb0) -D 10 (#4e8481) -R 4 (#4f2bc0) -D 10 (#47fcc3) -L 3 (#15d6f0) -D 9 (#6a0e71) -L 5 (#3cc390) -D 4 (#2fa353) -L 4 (#272140) -U 5 (#029653) -L 3 (#428820) -U 8 (#23f923) -L 4 (#036c82) -D 4 (#3315f3) -L 7 (#663ce2) -D 2 (#09be53) -L 8 (#075c00) -D 5 (#552f63) -L 5 (#662630) -D 2 (#3e3fb1) -L 9 (#543310) -D 5 (#2b6db3) -R 8 (#06d960) -D 2 (#2b6db1) -R 3 (#570160) -D 6 (#441a91) -R 6 (#2f24e2) -D 11 (#2ca451) -R 7 (#5700c0) -D 5 (#36e6f1) -R 3 (#5700c2) -D 8 (#374141) -R 5 (#2b1072) -U 11 (#489e23) -R 5 (#456682) -D 4 (#522e63) -R 3 (#127202) -D 7 (#65dc21) -R 8 (#489d40) -D 3 (#686b21) -L 4 (#107ca2) -D 7 (#2271a3) -R 4 (#148da2) -D 3 (#34bf71) -R 2 (#70b522) -D 9 (#34bf73) -R 8 (#49a172) -D 6 (#2271a1) -R 3 (#138232) -U 4 (#3e4511) -R 4 (#0bb2b0) -U 8 (#2958d1) -R 5 (#1df330) -U 3 (#23af43) -L 5 (#4bbaa0) -U 7 (#23af41) -L 4 (#125270) -U 9 (#41ec91) -R 2 (#222ff0) -U 5 (#2936d1) -R 8 (#2e2310) -D 5 (#2e05a1) -R 3 (#0ae0c0) -D 11 (#074021) -R 7 (#52f6e0) -U 2 (#074023) -R 3 (#590720) -U 6 (#469f01) -R 3 (#34f792) -U 7 (#002dd1) -R 4 (#409522) -D 3 (#002dd3) -R 6 (#149f72) -D 5 (#1cc8f1) -R 5 (#095222) -D 7 (#3eab71) -R 3 (#236082) -D 11 (#3b3d71) -R 2 (#6e2530) -D 3 (#0887f1) -L 6 (#1795d0) -U 7 (#21f2d3) -L 6 (#194240) -D 7 (#2e0d03) -L 3 (#605a50) -D 4 (#257243) -L 8 (#0a5380) -D 7 (#2b70c3) -L 4 (#428fd0) -D 8 (#5b1513) -L 6 (#1bf3f0) -D 3 (#341241) -L 3 (#1f7ea0) -D 8 (#2eda01) -R 6 (#527980) -D 7 (#62ec43) -R 10 (#156e00) -D 5 (#53ce33) -R 4 (#3a5f20) -D 3 (#2f3bb3) -R 6 (#5dacd0) -U 4 (#47f0e1) -R 6 (#538c70) -U 4 (#32a283) -R 8 (#27c140) -D 9 (#198283) -R 6 (#1b5ba0) -U 9 (#15de53) -R 4 (#037d60) -U 7 (#373ac3) -R 7 (#282640) -U 7 (#33c993) -R 6 (#2f6bc0) -U 4 (#236a23) -R 5 (#4977b0) -D 4 (#076301) -R 6 (#56dc60) -U 3 (#30afb1) -R 2 (#720272) -U 8 (#2b0fc1) -R 7 (#19ac60) -U 7 (#07ff61) -R 3 (#585610) -U 2 (#4969b1) -R 7 (#56dc62) -U 5 (#029821) -R 9 (#60a4e0) -U 8 (#1688a3) -L 4 (#19a5b0) -U 3 (#20db03) -L 7 (#1a7950) -U 6 (#1ab903) -L 8 (#463660) -U 2 (#449963) -L 3 (#11ec80) -D 4 (#206da3) -L 8 (#1057b0) -D 6 (#17ffa1) -L 8 (#6cda70) -D 4 (#26df51) -L 3 (#001d70) -U 9 (#3e42f1) -L 5 (#55e962) -U 5 (#138341) -L 6 (#0c3e52) -U 9 (#4ae8f1) -R 8 (#0ad032) -U 7 (#14e3b1) -R 4 (#5a3b70) -D 7 (#1dad81) -R 11 (#3d8e92) -U 6 (#441b61) -L 6 (#20de92) -U 10 (#55efb1) -L 6 (#1d72c2) -U 10 (#1469a1) -L 6 (#21f4b0) -U 4 (#49b921) -L 2 (#560f10) -U 10 (#49b923) -L 3 (#03dc20) -D 6 (#249e01) -L 7 (#6859d0) -D 4 (#0947e1) -L 3 (#5d3fd2) -D 11 (#2c3801) -L 6 (#26cab2) -D 4 (#1f5b51) -R 13 (#0fcc92) -D 3 (#638131) -L 7 (#404362) -D 2 (#6cc863) -L 6 (#1d8d62) -D 4 (#161423) -L 6 (#595612) -U 7 (#09d071) -L 4 (#10a5d0) -U 4 (#633011) -L 8 (#3cddf0) -U 3 (#3a8471) -L 7 (#407050) -U 7 (#00b9a1) -L 3 (#2537e0) -U 2 (#00b9a3) -L 5 (#3a9220) -U 5 (#212a31) -L 7 (#572a62) -U 5 (#0b0ea3) -L 4 (#52f702) -U 6 (#0b0ea1) -R 6 (#077262) -U 9 (#116db1) -R 7 (#688352) -U 8 (#37c5e3) -R 7 (#23b522) -U 3 (#37c5e1) -R 6 (#4a4aa2) -U 9 (#57bf21) -R 4 (#60ae60) -U 3 (#06dc81) -R 3 (#47d900) -D 4 (#587561) -R 6 (#2940e0) -D 8 (#1268d1) -R 5 (#0ec482) -D 6 (#38b6c1) -R 6 (#59c532) -D 8 (#2e4421) -R 6 (#0b8022) -U 5 (#410a61) -R 2 (#7409d0) -U 6 (#28e351) -R 8 (#15d2e0) -D 4 (#12ab01) -R 5 (#100f80) -D 6 (#44c953) -R 4 (#33eef0) -U 6 (#23c7d3) -R 5 (#4696e0) -U 4 (#222123) -R 9 (#26d070) -U 9 (#4cec13) -R 2 (#560af2) -U 6 (#5099a3) -L 11 (#4b4b52) -U 4 (#10b4e3) -L 8 (#40e6b0) -U 6 (#1c6173) -L 5 (#2e31e0) -D 6 (#3d8c01) -L 7 (#1cc6f0) -U 9 (#083731) -L 4 (#463da0) -U 8 (#1cb711) -R 8 (#0b4110) -U 8 (#2252b3) -R 10 (#60b900) -U 7 (#2252b1) -R 8 (#0ce680) -U 5 (#467f81) -R 9 (#0ad0b2) -U 2 (#359203) -R 9 (#67bc02) -U 9 (#359201) -R 4 (#0653e2) -D 3 (#281ca1) -R 9 (#1b8ee0) -D 6 (#0b3861) -L 8 (#336f02) -D 3 (#3201f1) -L 4 (#4a85a2) -D 7 (#111eb1) -L 9 (#1c9c90) -D 7 (#145011) -L 11 (#083be0) -D 2 (#516321) -L 6 (#083be2) -D 9 (#20bb21) -R 5 (#3d8030) -D 6 (#404031) -R 8 (#642420) -U 4 (#56cf61) -R 7 (#55c610) -D 4 (#20d1e1) -R 9 (#1b5e10) -D 9 (#1e85d1) -R 9 (#361f10) -D 3 (#3d69f1) -R 9 (#16da12) -D 6 (#2d6471) -R 5 (#5d9642) -D 3 (#4656f1) -R 6 (#44b540) -D 8 (#2b6131) -R 7 (#2ce630) -D 7 (#2b6133) -R 3 (#61b2a0) -D 4 (#4c2661) -R 4 (#3b7372) -D 8 (#01ed73) -R 5 (#4c3962) -D 3 (#01ed71) -R 4 (#4ba142) -U 9 (#4377f1) -R 3 (#1deb32) -U 6 (#3f3323) -R 3 (#22b722) -U 7 (#37bc13) -R 3 (#1918d2) -U 4 (#13c8b3) -R 5 (#1918d0) -D 12 (#3e4d83) -R 3 (#22b720) -D 5 (#0cefe3) -R 5 (#2bf9f2) -D 9 (#3122d3) -R 8 (#41a3e2) -D 10 (#3122d1) -R 8 (#0b6e02) -U 7 (#266641) -L 4 (#5a1cc2) -U 5 (#060d11) -R 4 (#32ff32) -U 7 (#446c91) -R 5 (#319c82) -D 3 (#446c93) -R 7 (#1bf562) -D 2 (#44af13) -R 6 (#6f3132) -D 6 (#312433) -L 5 (#489da0) -D 5 (#53a343) -L 8 (#489da2) -D 3 (#5a6673) -R 7 (#0f0f92) -D 6 (#01b8b3) -L 3 (#3c6b12) -D 5 (#725613) -L 10 (#114b12) -D 4 (#14ace3) -L 8 (#30d292) -D 9 (#1ebac3) -L 6 (#3c4292) -D 7 (#39e2a3) -L 2 (#1f3882) -D 4 (#658381) -L 3 (#0b0252) -D 8 (#699e71) -L 10 (#2b4ae2) -D 2 (#1ac903) -L 5 (#60cef2) -D 4 (#515ea3) -L 5 (#4d3790) -D 6 (#354183) -L 4 (#398170) -U 3 (#7163a3) -L 10 (#398172) -U 7 (#0608f3) -L 8 (#4d3792) -D 4 (#06c7a3) -L 7 (#5819c2) -D 5 (#17c3f1) -L 3 (#0c8892) -D 5 (#67f951) -R 6 (#3ff470) -D 12 (#397601) -R 6 (#3ff472) -D 4 (#4f6451) -L 9 (#665a22) -D 2 (#1705c1) -L 3 (#14df92) -D 7 (#4b40a1) -L 4 (#1fa1f2) -D 5 (#3b7231) -L 10 (#063e12) -D 7 (#2a8fb1) -L 4 (#6b71e2) -U 4 (#218101) -L 4 (#2e2f52) -U 4 (#221411) -L 5 (#200732) -U 5 (#0ac7e1) -L 9 (#50af62) -D 9 (#4b7c81) -L 3 (#50af60) -D 4 (#2b9d31) -L 13 (#4766d2) -D 5 (#25ef21) -R 3 (#119862) -D 2 (#517a31) -R 4 (#3e6072) -D 10 (#21cfa1) -R 6 (#4437f2) -U 12 (#30f031) -R 4 (#036652) -D 7 (#453c91) -R 5 (#05ea22) -D 10 (#2da1e1) -R 2 (#4da5a2) -D 2 (#2da1e3) -R 6 (#2bffc2) -D 9 (#453c93) -R 9 (#4ed2d2) -D 3 (#141b71) -R 9 (#3ecad2) -D 5 (#234873) -L 11 (#3c4982) -D 3 (#2ed113) -L 7 (#3c4980) -D 7 (#4a6553) -L 8 (#49bf02) -D 8 (#337011) -L 9 (#2eb772) -D 3 (#690ec1) -L 2 (#25f0a2) -D 7 (#62eeb3) -L 6 (#1ae012) -D 7 (#34e643) -R 6 (#382a72) -D 7 (#281183) -L 11 (#271932) -D 4 (#470d23) -L 9 (#4ca812) -D 4 (#6f1ea1) -L 7 (#4702f2) -D 8 (#34e641) -L 4 (#155c42) -D 10 (#62eeb1) -L 7 (#3a2422) -D 4 (#3f7ca3) -L 9 (#39b860) -U 4 (#5cf1c3) -L 13 (#39b862) -U 4 (#4751f3) -L 4 (#322dd2) -U 4 (#539531) -L 5 (#4171a2) -U 5 (#539533) -R 9 (#075042) -D 5 (#1e57d3) -R 7 (#5cc952) -U 5 (#0ac0d3) -R 6 (#1af522) -U 9 (#374273) -L 4 (#2992f2) -U 2 (#299893) -L 4 (#267bc2) -U 10 (#47af63) -L 3 (#282402) -U 4 (#06a063) -L 5 (#5cce72) -U 9 (#47fba3) -L 3 (#1168e2) -U 10 (#3b1071) -L 4 (#178c22) -U 3 (#42b971) -L 5 (#178c20) -U 8 (#1dca41) -R 9 (#442912) -U 8 (#5b9241) -L 3 (#1da682) -U 7 (#31ff23) -L 10 (#3cd732) -U 5 (#33bab3) -L 5 (#159fb2) -U 4 (#2e5d93) -L 7 (#5f9702) -U 4 (#5566e3) -L 4 (#0ba292) -U 8 (#07f963) -L 3 (#410a02) -U 3 (#6ace93) -L 5 (#0913a2) -U 2 (#21a553) -L 10 (#3d71a2) -D 6 (#25ff63) -L 5 (#5285b2) -D 8 (#3cfc73) -L 3 (#13aba2) -D 7 (#24a793) -L 4 (#29e4c2) -D 12 (#1dc4b3) -L 5 (#3cb102) -D 8 (#5b8433) -L 5 (#3cb100) -D 7 (#22d9f3) -L 7 (#6db9c2) -D 6 (#4cd683) -L 6 (#083f42) -U 11 (#09bbc3) -L 5 (#609002) -D 7 (#12b603) -L 7 (#041be2) -D 8 (#4f3823) -L 5 (#5a3412) -U 7 (#14de13) -L 6 (#036ee2) -U 5 (#442823) -L 7 (#6c5502) -U 3 (#2edcc3) -L 9 (#3b6b72) -U 8 (#321e73) -R 7 (#48e5a2) -U 6 (#2fbec3) -L 12 (#44ed12) -U 6 (#0c1893) -R 12 (#61a8e0) -U 4 (#073043) -R 4 (#0d47c0) -D 6 (#469b63) -R 2 (#047ae0) -D 10 (#39b7d3) -R 3 (#2492d0) -U 8 (#2026f3) -R 3 (#73fb40) -U 2 (#201333) -R 3 (#372f72) -U 2 (#2c6143) -R 10 (#615ea2) -U 4 (#355653) -R 7 (#3876d2) -U 9 (#080463) -L 8 (#3af4b2) -U 10 (#6840e3) -L 3 (#5472d2) -U 9 (#005683) \ No newline at end of file diff --git a/aoc2023/src/day19/input.txt b/aoc2023/src/day19/input.txt deleted file mode 100644 index 8fb7e78..0000000 --- a/aoc2023/src/day19/input.txt +++ /dev/null @@ -1,766 +0,0 @@ -xhs{m>3771:A,a>2552:R,A} -smp{a<3732:R,m>1999:R,x<925:R,R} -zkk{m<2240:R,a>3345:R,R} -nqz{x<2056:R,a<3165:R,m>1748:A,vx} -mm{x>486:A,m>3523:R,A} -bg{s>3338:A,kgm} -qf{x>537:gqx,bqz} -lv{s<2341:sc,s>2505:rtm,xqj} -bv{a>2574:rvm,ncd} -ssz{a<729:A,m<3390:ld,m<3772:A,R} -gm{a>3900:A,m>2508:R,x>744:R,A} -ts{m<642:R,m<843:gmm,s<325:gf,A} -rtm{x<2920:A,m>3132:R,R} -qgz{x>2082:hvx,a<1490:A,s<3742:R,kks} -kpf{m<2390:cm,ft} -ghn{a>2066:A,s<3291:R,a>2028:A,R} -mkx{s<975:R,s<1112:A,m>756:A,R} -tg{x<3668:A,x<3835:A,ftz} -chj{x>733:R,a>3064:R,qs} -ndl{x>2773:R,x<2370:R,R} -dsq{s>838:A,s>496:A,m<2191:R,R} -jl{m>1219:A,R} -chh{x<973:R,A} -fxv{x<2543:R,m>3368:A,s<3567:R,R} -qvl{m>1648:A,R} -fpb{a>1367:R,x>2441:R,a<1220:A,R} -tph{a<2677:tss,R} -cnc{s>1274:A,a<3947:R,A} -cz{m>2865:R,a<3514:rm,s>687:xsr,A} -zzq{x>76:A,A} -vp{x<162:A,R} -bth{x<1859:zmq,a>2455:hq,mb} -rm{x<1253:A,R} -ndq{s<390:R,x<2982:A,m>3468:R,R} -vdh{x>2464:bx,m>3276:fj,ffs} -bjc{a>3069:R,R} -sqk{m>3029:R,s>130:R,sln} -xl{x<2157:A,R} -xrs{s>3440:qgz,a<1479:qsv,xt} -dnt{x<538:qc,m<1343:jqh,x>645:fm,jvb} -pms{a>2603:R,A} -lf{x>390:A,s>1617:A,A} -dvm{s>1052:R,R} -mnc{x>2703:R,A} -rxt{a<595:A,R} -pb{s<3737:ngp,x>3125:A,dbk} -zr{a<2605:R,x<422:R,A} -pd{s>1915:xhs,zpl} -vm{a>2377:R,R} -in{x<1629:dv,nfq} -xdt{s<1791:fpb,chl} -gg{s<393:fd,x<2091:dg,tz} -xsr{s>1167:R,m>2006:A,a<3531:A,R} -qs{x<719:R,x>726:R,s>2919:A,R} -kgm{m>2140:R,s<3253:R,m>1246:A,A} -gvv{s<3124:flg,m>3004:jxl,x>2411:vf,hfg} -nv{m<3088:A,a>1588:R,x>3499:A,R} -lx{s<3277:R,a>2880:R,A} -cls{m>3314:gt,kpv} -ct{a>3320:R,a>3189:A,s<2328:R,R} -bqz{m<1572:rjv,x<437:R,s>1572:mzn,td} -qm{a<1975:A,s>623:R,A} -zx{m<3520:R,s>1981:R,a<2633:A,R} -hbk{a<1441:A,x<2151:R,x>2450:A,A} -zp{a>2928:A,R} -njc{x>225:R,a>3543:A,a>3524:A,A} -dt{s<467:R,a>3868:R,x<1448:A,R} -qlj{a<1744:A,s>1375:A,R} -ln{x<546:dk,x<1088:jm,s>996:sdr,grf} -zxc{x>1220:R,a<1570:R,a<1721:R,A} -hqv{x<1168:A,a<3325:cs,zkk} -cfx{m<1777:R,A} -tb{a>3324:A,a<3310:R,R} -fx{a>2975:R,x>2219:R,A} -rnm{m<3699:A,a>1555:R,R} -zpl{a>2213:R,m<3703:A,R} -zvm{s<3648:R,x>2112:R,s>3879:A,A} -gkt{x>1247:A,m>2344:A,m<1950:R,R} -qfz{x<37:A,A} -dq{a<2482:A,A} -gpj{m>2417:A,m>1980:A,tq} -khx{s>3504:R,a>633:A,s<3211:R,A} -kh{m>629:A,A} -zg{a<2645:mg,s<259:sqk,x<2942:gg,md} -sxj{m<1304:xlx,lh} -lh{m<1742:bb,x<2813:rh,m>2090:qhd,bv} -jxg{a>3806:A,R} -sg{a<3432:nn,m<1550:pp,m<3113:ps,js} -pck{m<1755:dmv,s>3255:hb,s>2954:lfz,ns} -xqj{x>2860:A,A} -hm{a<3006:R,A} -bbv{a>3355:rf,s<1113:hqv,m>1976:qzk,zxk} -rpd{s<3371:R,A} -jzc{s>1320:A,s>1117:R,s>948:R,R} -mjp{m<3107:db,x<3329:lsq,x>3386:jgq,R} -chl{x>3157:A,m>2688:zq,tf} -ffq{x<2660:hbk,s<2231:cvs,A} -pv{x>662:bc,m>2737:fn,scz} -rf{x>1195:A,x<1012:R,hp} -mg{s<320:mnc,ndq} -md{s<368:ks,a<2900:A,a>2968:A,hxd} -rb{s<976:R,A} -cvv{s<1568:R,s>2041:A,a>2529:R,R} -hvx{s>3628:A,m>1706:R,m>1033:R,R} -fhg{m>3499:R,a>2802:nm,R} -cm{a>793:gnt,s<342:vg,dl} -mzt{m<1547:R,A} -cf{s>3282:A,R} -vr{m>1574:zzp,cfl} -vbd{x<446:R,m<2633:R,A} -mdz{a>2230:A,A} -dck{s<2674:R,m>1804:A,m>1642:A,A} -dk{x>356:A,R} -sxr{m>1197:vq,qzn} -sl{a>3532:R,A} -rhf{x<592:A,m<3490:A,A} -hp{a<3393:A,a<3436:R,x<1078:A,R} -sln{m>2771:A,R} -hq{m>3351:A,x>1966:A,m<2756:R,R} -bm{m<2254:R,hpt} -vt{m<3667:R,x<1031:A,A} -dv{a<2349:npz,a>3297:tck,x<703:gq,lm} -ddj{m<1813:mfd,A} -fln{s>2720:A,R} -xft{a<198:A,a<267:R,m>3094:A,A} -xdr{s<2440:R,m<1370:jcs,a<1346:rrl,R} -hxc{s>3518:A,a>1208:R,x>3051:R,R} -bc{a>3542:zb,s>1446:sr,a<3492:pjm,cz} -lfz{a>3921:A,m>2651:A,s>3077:qj,A} -qmk{m>2209:A,R} -bt{m>3699:R,x<2709:R,m>3441:A,A} -cfn{x<203:R,x<238:R,x>260:R,R} -hbb{m>3171:R,R} -xz{a<1217:A,m<3348:R,R} -tz{a<2930:A,A} -cvj{x>3663:A,R} -kb{x<812:A,x<882:R,m>1354:R,R} -fgc{a<3044:A,m<3797:A,a>3181:R,A} -gz{a>2501:R,x>662:R,A} -gs{m>2349:pbh,xc} -cxt{m<648:A,R} -qr{s>3439:A,s<3200:A,s>3359:R,R} -mvk{x<310:A,A} -rfx{a<3471:pb,jrp} -df{a>2425:R,a>2173:A,m<2169:A,A} -lkv{x<1956:R,m>2601:jvg,zvm} -fgv{a>3335:R,a>2798:hck,pqd} -tn{a>3644:R,m>3271:R,R} -vhl{m>3441:pd,lt} -lg{x>214:xjz,jmz} -dkl{m>979:R,x>271:R,a<2808:A,R} -pdp{s>2793:R,A} -jjf{a>3211:R,A} -tv{s<2116:sx,xsq} -gnt{m>1411:R,x<2631:A,x>3267:A,R} -lnj{a>2864:R,A} -jd{x<275:cfn,s>860:jzc,mvk} -zzd{x<1338:A,a<3957:R,A} -xlx{m<789:jqs,dpd} -hql{s<2258:cb,x>815:knq,x>758:vlq,chj} -qsv{m<2600:A,cg} -bb{a>2571:rth,m>1465:A,x<3017:R,cp} -dz{a>2559:gs,qf} -ps{s>3207:R,gkt} -mf{x<611:R,A} -gp{m>2489:zdd,x>227:R,gnc} -hv{a<3335:R,a<3515:A,R} -klr{x<295:A,m>520:R,m>218:A,A} -zq{x>2372:A,R} -zf{a>1674:R,cn} -lm{x<1313:hgj,txn} -npz{s>1686:rt,kt} -qdh{a<2898:R,x>2218:R,A} -pz{x<2285:A,A} -hdf{m<2720:A,A} -bmc{x>3617:rcl,hsb} -zh{s<1038:A,a>2811:R,R} -zfz{x>2711:R,A} -sgr{a>3615:R,m>1350:jjj,a<3585:A,A} -qvk{s>2967:R,m>3342:A,A} -pqd{s<99:A,s<208:A,x<2116:R,R} -tbd{x>3755:A,a>441:R,A} -nn{x>1301:fln,pdp} -hxd{m>3170:R,m<2811:R,x<3367:R,R} -fk{x>3114:nsg,dmq} -vzf{x>2720:ms,s>481:mhr,s<294:fgv,nqz} -lnn{s<2149:R,x>3515:tbd,a<342:xft,zcz} -tss{s>3258:A,A} -sh{a>1883:qm,m>3431:A,chx} -qj{a<3876:A,x>836:R,R} -vl{s<2783:R,m<1099:R,x<1473:A,A} -bkt{a>3162:A,s>3117:A,x>215:A,A} -jh{x>101:R,s<1379:A,s<1659:R,R} -zcp{s<611:ff,qkd} -cr{s>772:kr,m<1018:lxl,vzf} -ms{s>407:zt,x>3417:R,chq} -jm{s<1028:A,R} -bn{m<3021:vzz,m<3604:qvk,x<271:fgc,R} -ngl{s>3536:sbr,s>3350:qdh,A} -zsf{m>1545:A,x>1434:R,a<3918:R,A} -ggp{s>585:R,R} -kr{m<1070:vfc,zp} -kks{a>1629:R,a<1563:R,a<1592:A,R} -btt{a>801:A,R} -jsj{s>3393:A,x<3185:R,A} -zgx{m<855:xl,A} -gt{x<259:R,A} -gqx{x<621:A,a<2443:hx,gz} -gnk{a<2992:R,R} -vc{m>2396:xx,cl} -hhp{m>1027:sgr,ph} -chr{x<2230:R,x<2596:R,R} -qkd{x>797:A,x<297:A,s<793:R,A} -zsv{x>3189:A,s>3280:pz,x<2182:A,jxg} -bmz{x>286:A,R} -rcl{s<3551:R,a>1235:R,A} -sxl{a<1497:R,x>1555:A,R} -xmv{x<2697:shm,m<2582:bl,st} -fd{a<2818:R,R} -jgq{x<3411:R,R} -zj{a<2947:A,R} -mgb{x>2219:A,s>580:A,R} -jjs{m>2508:pj,smp} -mfd{s>3169:R,x>3872:R,R} -kpn{a<3544:R,a>3555:R,R} -lq{m>3447:A,A} -bfq{s>1868:A,qpt} -hlc{m>3423:rnm,a<1561:A,nv} -zn{x<915:A,m<570:A,a>3454:A,A} -zmq{a>2577:A,s<2162:R,a<2036:R,R} -sqz{s<1195:A,R} -jsd{m<1634:vs,R} -dmq{m<1655:A,A} -nhl{a<2744:A,A} -mkm{s<482:A,s>608:A,R} -rc{m>234:A,x>2208:R,m>97:R,A} -zz{a>3346:vlc,a<2753:qqc,s>276:fx,rc} -js{a>3452:R,m<3619:A,R} -tj{a>1494:R,m<658:R,R} -qhd{s<2443:mdz,znr} -shv{m<2846:A,x>2878:A,A} -ttn{a>3182:R,a>3140:R,x<475:R,R} -ngp{x>3141:A,A} -pcn{x<1006:R,s>520:A,A} -ngq{m<1256:R,s>1251:R,a>658:R,R} -fkd{a<3655:dd,a<3774:cfx,s>2066:qmk,fk} -qzk{a>3335:R,R} -dx{m<2588:zcp,a<2083:sh,x<601:rrd,fh} -qc{x<432:zh,s>956:R,A} -fm{s<642:R,m>2905:lq,dcp} -rr{s>2991:xmv,ths} -dcp{a>2785:A,s<1372:R,x>674:R,A} -bf{s<3336:A,a<1863:A,R} -glx{x>2156:R,nq} -rxv{s<984:A,R} -plp{s>2690:A,a>3040:R,x<1194:A,R} -zdd{x<411:A,s<2583:A,s<3374:R,R} -sbp{x>2442:R,m>802:A,a<1990:A,A} -rzc{m>1519:R,a>2789:A,R} -hgj{x>992:kbh,a>2782:hql,mdb} -gc{m>3015:A,a<3333:A,x<1181:R,A} -xh{a>3215:A,x<3863:qtm,lnj} -jdx{a>296:hz,s>2019:A,a<185:R,R} -ftz{a<2615:A,A} -sr{a>3503:A,m<3116:R,vt} -bz{m<1363:A,a<3918:R,x>347:A,A} -lxl{m>375:ts,x>2633:ssr,zz} -rpl{a<3086:zg,km} -rcc{a<3086:lx,x<186:A,x<206:jjf,bkt} -xjz{s>2664:dkl,m>1134:rzc,a<2824:klr,R} -kf{m>2364:jp,clb} -chs{s>2600:qd,R} -td{a>2469:A,a>2389:A,x>480:A,R} -st{m<3511:R,x<3456:R,s>3602:cvj,rpd} -hmq{a>2111:A,x>1851:R,A} -xc{x<505:zr,pl} -th{x<582:pm,lk} -sn{m<2549:R,s>2203:R,dlr} -chx{m>3054:A,a<1763:R,A} -kk{m>3497:A,a<1434:A,R} -xj{a>2832:lkb,s<3601:A,s>3811:rbp,rfg} -ncd{a<2175:R,R} -dmv{x>1035:A,m<796:R,x>598:jl,bz} -zdz{s>3645:R,x>2044:R,a<2560:R,xv} -bj{x>1208:R,x<1157:R,m>1150:A,R} -sbr{m<3368:R,R} -kx{x<3147:vdh,jvl} -kv{m>3555:bmz,x>265:sl,A} -qd{x>1553:A,a>2834:A,s<3385:A,R} -cxs{s>1563:cxt,x>2102:A,bs} -lt{s<1846:A,x<3520:R,x>3795:R,nkk} -sv{m>3685:R,a>2243:R,R} -ft{a<963:rxt,x>2779:A,x<2244:A,lzv} -rl{a<1094:rr,s>2736:bbb,s>1976:rhb,fr} -jn{x<583:ttn,s<1225:A,A} -jxl{a<2453:rxj,a>2766:ngl,zfp} -cvs{m>285:R,A} -jqh{a<2775:dvm,gbn} -dg{a<2815:A,R} -jvl{x>3689:xh,x<3456:mjp,znq} -gnc{x<140:R,x<171:A,R} -fkh{a<3335:R,A} -vrm{m>937:A,m<448:R,R} -scz{m<2202:qk,gp} -gvq{s<123:A,m<3059:A,a<3441:A,A} -mdb{m>1624:gpj,hf} -xsc{x<1257:bbn,x<1486:A,sxl} -dp{m<1786:A,a<3541:R,A} -sf{m>773:xdr,ffq} -dlr{x<2407:R,s>1899:R,x<2587:R,R} -rk{x>2534:A,A} -rn{s<2830:A,hbb} -jvg{s>3506:A,m>2651:A,m>2621:A,R} -hfg{m>2738:zdz,a>2232:lkv,fvs} -lzv{s<480:A,A} -tqf{m>2290:ssz,xb} -vmf{m<1433:qhx,m>2129:jcz,a<970:xk,dck} -gv{m>563:R,x>1087:bd,m<346:R,vz} -fvs{s>3483:A,a<1973:bf,x>1995:ghn,hmq} -tqk{m<963:R,a>2859:R,A} -rx{x<977:nnk,bqr} -rvm{x>3305:A,m<1917:R,R} -clb{x>1123:R,chh} -pm{s>967:A,vbd} -zcz{a<501:R,R} -fsz{a>2745:R,R} -nfq{s<1487:jbm,a>1745:jjb,rl} -hdh{m>3509:A,s<1411:R,m<3227:A,A} -dgv{m>2115:A,A} -ccf{x>582:sxr,s>2966:qr,s<2421:btt,vmf} -kbh{x<1100:hgk,m>2034:smc,bj} -dd{m<2080:ct,s>2201:rk,hv} -ff{s>381:R,x<841:R,R} -gtx{s<890:A,m<3503:A,x>2000:A,R} -bx{m<3245:R,m>3522:zfz,x<2768:tc,R} -cbz{s<800:kpf,vr} -hjj{a<1141:R,s<3290:R,A} -nnk{s<496:vls,a<1328:nt,m<2251:R,gtr} -mhr{m>1624:R,m<1228:R,m>1458:ggp,mgb} -grb{s>2354:A,s>824:R,s<393:R,A} -vzz{m>2291:R,m<1985:A,A} -dc{s<2446:A,s>2870:A,s>2640:A,R} -cb{s>956:kb,A} -bkv{s<917:bm,jn} -cmn{a<1575:A,s>2325:A,s<2132:pzh,A} -vq{x>1200:R,m<1709:A,A} -xx{s<2987:R,s>3641:A,m<3099:gnk,A} -skj{x<2732:pgx,x>2863:pqn,a>2109:R,A} -qk{x<433:R,x<540:grb,s>2612:dp,mf} -nb{a<3379:dgv,x>433:xqb,mzt} -skd{s>85:R,a>3825:R,s>57:bsr,vj} -bsr{a<3615:R,A} -bqr{m<2638:A,kk} -gmm{s<271:R,R} -ssr{m>170:mkm,A} -xr{x>1412:R,R} -dpd{s>2570:rz,a<2463:ndl,m<1077:tqk,fsz} -cg{x>2240:R,s>3092:A,s<2882:R,A} -zt{s>605:R,m<1978:R,x<3468:A,A} -gbn{a>2840:A,x>606:R,A} -sk{s>627:A,R} -xv{s<3310:A,x<1827:R,R} -jvb{m>2641:rhf,x<598:dsq,x>615:R,nr} -dbk{a<3270:R,s<3854:A,R} -ld{x>1033:A,s<1042:A,A} -hz{s>2156:A,R} -hgm{a>3479:zsv,a>3293:jsd,bg} -sd{s<1388:R,m<220:A,a<3336:A,R} -ks{x<3304:R,A} -cp{x<3510:A,s>2786:A,R} -mc{x<138:tx,m<1731:lg,nd} -grf{a<3910:dt,zzd} -tm{m>2653:A,R} -znm{x>3272:R,tj} -qtm{a<2683:A,m<3283:R,A} -cpj{x>523:A,m>2682:A,m<2527:R,A} -vx{x>2368:A,A} -kp{x>444:R,x<233:R,A} -vlq{a>3107:tm,s>3354:A,m<2037:R,R} -mzn{m>2863:R,A} -zb{s>1752:R,x>1070:zgf,sk} -pqn{m<2758:A,R} -lsq{m<3507:A,s<957:R,R} -krr{a<3740:R,R} -czn{a>3163:R,m<1999:R,a<3012:A,R} -nkk{s<2070:R,R} -nrt{s<1315:A,x<2219:R,A} -ds{a<1180:hjj,m<1480:hxc,pf} -xb{x<928:R,s<680:dpt,ngq} -mj{a<2118:R,R} -kpv{x>329:A,A} -dpt{x<1220:R,R} -vls{a<1332:A,a>1469:A,R} -cs{x>1439:R,s>709:A,R} -tl{a>1243:jsj,ds} -xbt{x>1513:A,fz} -hpt{m<2917:R,m<3336:R,R} -fr{m<1904:hdc,xdt} -dsl{x<891:R,a<3061:A,A} -ph{m>522:A,A} -tck{a>3652:zdg,a<3466:vvc,m<1552:gl,pv} -lk{x>628:A,x<605:R,x>614:R,A} -nj{s>2734:A,R} -khd{a>2723:hm,x<1375:lxg,a<2580:A,zx} -vvc{x<813:nb,s<1759:bbv,a<3401:kf,sg} -fh{m<3059:R,sv} -rt{m<2548:ccf,bqs} -dtv{s>2651:njc,kpn} -db{s>1037:R,s>793:A,x<3290:A,A} -rfg{x>2488:R,A} -rxj{a>2073:fxv,A} -zgf{a<3590:R,R} -lxg{a<2574:R,m>3113:A,a>2644:R,A} -pp{x<1117:zn,a<3445:A,R} -hk{a<3058:A,R} -cps{x>673:gv,a<3514:lf,dtv} -bl{m<1269:A,s>3432:A,s>3277:A,cml} -rhb{m<2194:sf,zjt} -rth{s<2408:R,m>1515:A,R} -vs{x>2539:A,A} -znq{m>3125:R,A} -hzc{m>1851:mv,x>716:qg,jx} -tzb{m>3238:tg,xxd} -jxd{a<2457:A,A} -cn{s<3324:A,A} -qqc{x<2085:R,m<164:A,m>259:A,R} -rbp{m>2847:A,m<2787:A,R} -jjj{x>876:A,a<3595:A,R} -smc{s<1533:R,a>2843:plp,x<1198:R,pms} -ckf{s>1717:A,s<1570:R,R} -kl{a<2275:A,A} -fl{s>2371:tzb,vhl} -rz{a<2450:R,s>3365:A,R} -rjv{s<1810:A,m>758:A,s>2893:R,R} -hx{x<671:A,a>2389:R,x>691:R,R} -jp{s<2734:gc,s>3506:A,R} -bnt{m>837:A,m>433:R,m>254:R,R} -hgk{a<2704:A,a>3062:A,nxg} -txn{m>2615:ktj,tv} -pgx{a>1994:R,x>2611:R,A} -xxd{m>2723:A,s<2919:zvg,m>2567:R,vm} -gtr{s>886:A,a<1457:R,R} -jcz{s>2754:R,a>1065:R,a<523:A,A} -chq{x<3072:A,x<3293:R,R} -clz{s<3150:fkd,s>3490:rfx,hgm} -hck{x>2194:R,s>122:A,A} -vd{m>1534:jjs,a>3770:kmt,cj} -qzn{x>1103:R,s<2513:A,A} -pj{m>3377:A,A} -tc{a>3418:R,R} -kt{a<1141:tqf,s>1093:hzc,a<1584:rx,dx} -gf{a<3431:A,A} -jx{s<1412:vrm,s>1565:A,dm} -vrl{x>386:xz,R} -mz{a<2492:A,A} -mkg{s>1805:vc,a>3085:bkv,a<2882:dnt,th} -ns{a>3913:R,bdr} -kq{s<2373:A,bt} -jcs{s>2567:R,s<2521:A,R} -jbm{a<2334:cbz,m<2533:cr,s<516:rpl,kx} -pjm{m<2956:A,pcn} -nt{a>1236:A,m<2027:A,R} -rbf{s<846:R,m>2754:hdh,x<73:qfz,jh} -hf{s<2598:cvv,A} -cl{s>3154:hk,a<2910:dc,m>1368:czn,ccj} -rh{s>2442:jxd,s<2047:ckf,s>2249:df,A} -vj{s<31:R,a<3675:R,a<3727:R,A} -qhx{a<1403:R,s<2780:A,R} -hsb{s<3410:R,a<1336:A,A} -vfc{x<2652:kh,s>1086:bjc,m>636:R,A} -cd{s<1248:R,a>2984:R,A} -nhf{a<3351:bk,gvq} -jmz{x>176:R,a>2694:bnt,a>2565:R,vp} -cfl{a>1330:sbp,s<1255:mkx,m<858:R,pqm} -lkb{a<2993:R,m<2845:R,A} -jjb{a>3094:clz,m<2393:sxj,x<3056:gvv,fl} -rrd{a<2231:A,m>3181:kl,x>325:R,dkj} -fj{m>3651:R,gtx} -hdc{x>2461:znm,s>1764:bfq,s>1606:zgx,cxs} -kmt{x<1020:xjj,s<2087:xr,A} -cj{m<730:txd,x>819:A,kp} -xqb{s<1587:rb,a<3436:R,vpg} -xq{a<3606:R,x<329:R,R} -tq{s<2112:A,s<3362:R,A} -zzp{x>2975:sqz,m<2520:R,R} -pqm{m<1122:A,s<1390:R,a>875:R,A} -jq{x<3451:R,cf} -xjj{s>2372:R,x<668:A,s>1023:R,R} -tfq{s>3172:R,m>1532:R,A} -bqs{x>919:xsc,vrl} -thp{a<2602:R,m<2928:R,x<247:A,A} -dkj{x>141:A,m<2971:R,A} -pzx{x>2642:A,a<3478:A,R} -ths{x<2809:sn,a>725:qvl,m<1362:jdx,lnn} -qg{a>1868:mj,m>836:A,zxc} -tx{s>1835:tph,m<2098:px,rbf} -vf{a<2428:skj,m<2736:pg,x>2633:shv,xj} -km{s>209:zqs,a>3504:skd,x<2757:glx,nhf} -kj{s<3287:nj,thp} -cml{m<1837:A,s<3096:R,a>494:A,R} -rlc{m>474:R,m>251:A,x>2484:A,A} -txd{s>2156:R,A} -gl{a>3563:hhp,cps} -ccj{m>569:A,s<2508:A,R} -pf{m>3126:A,x>3194:R,R} -pbh{m>3239:mm,cpj} -zjt{a>1394:cmn,lv} -drm{a>1592:A,R} -bdr{a<3869:R,m>2643:A,x>1082:A,A} -jqs{s>2614:rlc,dq} -mv{x<623:R,qlj} -nr{m<2107:R,R} -zdg{a<3847:vd,s>2594:pck,ln} -xk{s<2671:A,m>1780:R,A} -px{s<685:zzq,s<1444:A,a<2772:R,A} -znr{m>2244:R,a>2352:A,x<3509:A,R} -bk{s>79:R,x<3271:R,A} -ktj{x<1421:khd,m<3145:xbt,x>1493:chs,zj} -hb{s>3741:R,s>3440:A,gm} -ffs{s<1003:A,m>2845:cd,x>2032:nrt,hdf} -dl{x<3044:R,m>1590:A,m<588:A,A} -vg{m<1260:A,s<201:A,a>302:A,A} -zfp{s>3617:chr,R} -qpt{x<2038:R,s<1806:R,x>2275:R,R} -jrp{m<1617:krr,s<3809:A,A} -zqs{s>394:pzx,tn} -knq{x>908:R,x<872:R,dsl} -bbb{x<2800:xrs,a>1484:jpt,x>3526:vrp,tl} -fz{s<1941:R,R} -nm{a>2984:A,m>3291:A,A} -rrl{s>2543:A,a>1195:A,a>1143:R,R} -jpt{a>1614:zf,m<2537:jq,hlc} -mb{s>2480:A,a>2039:R,A} -flg{x<2119:bth,m<3180:mz,a>2238:fhg,kq} -qlg{a>3593:R,A} -nd{s<1985:jd,a<2754:kj,x<224:rcc,bn} -nsg{x>3601:R,R} -pg{a>2794:A,m>2531:A,tk} -vpg{a<3448:A,x>601:A,m>2200:A,R} -qq{a<3599:qlg,xq} -mjq{m>906:A,R} -tk{s<3534:R,A} -tf{x<2430:A,m<2307:A,x<2765:R,A} -bd{m>361:R,a>3529:A,R} -xsq{a>2809:vl,a<2624:tfq,m<1412:mjq,nhl} -bs{m<1209:R,x<1880:A,A} -fn{a<3588:kv,a<3614:qq,s<1821:cls,rn} -xt{m<2535:A,drm} -pzh{x>3042:R,x>2454:A,R} -sx{x<1429:bvs,rxv} -vz{x<933:R,A} -nq{m<3063:R,A} -dm{m>867:R,A} -sdr{s>1536:zsf,cnc} -bvs{x<1372:A,x<1409:R,m>1611:A,R} -zxk{m>1166:tb,m>571:fkh,sd} -nxg{x>1061:R,x<1037:R,x>1045:R,R} -gq{x<350:mc,a<2674:dz,mkg} -vrp{x<3760:bmc,ddj} -bbn{x>1096:A,m<3379:A,s>2981:R,A} -sc{s>2125:R,A} -vlc{s<330:R,x>2068:R,R} -pl{s>2521:R,x<590:R,R} -shm{m<1775:R,a<392:R,khx} -zvg{s>2600:A,R} - -{x=864,m=2222,a=195,s=384} -{x=901,m=448,a=737,s=1768} -{x=2926,m=108,a=66,s=710} -{x=447,m=2075,a=739,s=2} -{x=597,m=681,a=975,s=28} -{x=2159,m=1819,a=2019,s=618} -{x=384,m=15,a=1695,s=142} -{x=76,m=739,a=729,s=42} -{x=1070,m=3064,a=2917,s=2856} -{x=1584,m=1118,a=1134,s=1906} -{x=23,m=7,a=309,s=260} -{x=987,m=52,a=513,s=2353} -{x=2128,m=133,a=1707,s=2272} -{x=1721,m=9,a=10,s=2757} -{x=56,m=1928,a=2447,s=651} -{x=358,m=1514,a=208,s=2003} -{x=991,m=160,a=1850,s=29} -{x=135,m=900,a=257,s=1885} -{x=1594,m=1262,a=292,s=773} -{x=958,m=762,a=1835,s=129} -{x=204,m=851,a=781,s=51} -{x=393,m=77,a=65,s=1317} -{x=102,m=2858,a=694,s=133} -{x=1558,m=357,a=508,s=289} -{x=185,m=111,a=305,s=2389} -{x=877,m=2013,a=2980,s=2509} -{x=2494,m=1224,a=54,s=939} -{x=336,m=1421,a=2434,s=2183} -{x=375,m=713,a=2313,s=459} -{x=2899,m=54,a=334,s=1951} -{x=452,m=585,a=16,s=531} -{x=220,m=566,a=192,s=346} -{x=1556,m=1173,a=7,s=611} -{x=793,m=1179,a=549,s=16} -{x=2730,m=545,a=888,s=2861} -{x=8,m=136,a=1607,s=40} -{x=641,m=2099,a=2295,s=745} -{x=2342,m=100,a=1010,s=1306} -{x=3432,m=432,a=658,s=645} -{x=121,m=1563,a=1172,s=1807} -{x=60,m=1124,a=859,s=595} -{x=39,m=2653,a=1212,s=295} -{x=1810,m=2143,a=250,s=899} -{x=1049,m=1680,a=2472,s=66} -{x=1305,m=645,a=1311,s=18} -{x=32,m=1575,a=933,s=88} -{x=2066,m=2204,a=2147,s=48} -{x=806,m=263,a=862,s=406} -{x=1218,m=142,a=2380,s=2080} -{x=199,m=1608,a=815,s=504} -{x=1355,m=844,a=312,s=186} -{x=409,m=1271,a=2737,s=620} -{x=652,m=409,a=315,s=1051} -{x=2044,m=149,a=2045,s=3394} -{x=1787,m=496,a=142,s=313} -{x=70,m=78,a=953,s=872} -{x=1072,m=1733,a=541,s=115} -{x=254,m=302,a=1483,s=1537} -{x=239,m=1242,a=929,s=15} -{x=517,m=932,a=1899,s=844} -{x=2926,m=364,a=595,s=1294} -{x=1358,m=68,a=34,s=1728} -{x=2065,m=312,a=3623,s=181} -{x=414,m=451,a=876,s=80} -{x=1689,m=843,a=139,s=245} -{x=1136,m=289,a=2256,s=2537} -{x=99,m=1094,a=980,s=382} -{x=1610,m=751,a=456,s=143} -{x=717,m=113,a=530,s=502} -{x=2050,m=1025,a=431,s=48} -{x=3411,m=87,a=306,s=2865} -{x=1894,m=19,a=46,s=3399} -{x=574,m=1848,a=599,s=1924} -{x=3,m=1021,a=26,s=1166} -{x=776,m=1882,a=1946,s=453} -{x=1170,m=381,a=957,s=601} -{x=1703,m=200,a=298,s=1246} -{x=117,m=43,a=286,s=1131} -{x=2642,m=18,a=552,s=8} -{x=333,m=458,a=518,s=1260} -{x=2391,m=794,a=1032,s=1156} -{x=1439,m=629,a=1737,s=268} -{x=70,m=465,a=603,s=1399} -{x=312,m=648,a=875,s=785} -{x=3106,m=348,a=45,s=198} -{x=2991,m=18,a=1424,s=436} -{x=397,m=1490,a=520,s=53} -{x=553,m=232,a=2916,s=781} -{x=1404,m=738,a=925,s=513} -{x=757,m=619,a=442,s=43} -{x=1747,m=924,a=11,s=430} -{x=3644,m=201,a=693,s=33} -{x=336,m=141,a=1473,s=2008} -{x=1723,m=1595,a=91,s=282} -{x=768,m=426,a=895,s=573} -{x=312,m=604,a=12,s=361} -{x=2900,m=23,a=748,s=578} -{x=1100,m=116,a=2804,s=2407} -{x=121,m=94,a=937,s=514} -{x=61,m=2592,a=1518,s=855} -{x=356,m=64,a=1167,s=732} -{x=1538,m=702,a=444,s=524} -{x=1071,m=230,a=1273,s=954} -{x=1538,m=1389,a=963,s=681} -{x=3560,m=407,a=606,s=1015} -{x=276,m=534,a=14,s=2920} -{x=122,m=1529,a=3159,s=302} -{x=764,m=529,a=1535,s=1743} -{x=1015,m=491,a=1323,s=1241} -{x=831,m=1667,a=2553,s=146} -{x=841,m=203,a=2621,s=696} -{x=1586,m=403,a=1308,s=1892} -{x=2119,m=47,a=446,s=124} -{x=2321,m=2184,a=309,s=735} -{x=44,m=99,a=2037,s=1730} -{x=917,m=192,a=31,s=1104} -{x=1135,m=2330,a=2073,s=1651} -{x=1149,m=907,a=51,s=79} -{x=299,m=330,a=2588,s=1829} -{x=203,m=1847,a=205,s=696} -{x=418,m=498,a=1030,s=307} -{x=1560,m=1398,a=54,s=723} -{x=1232,m=39,a=216,s=648} -{x=1449,m=527,a=2553,s=39} -{x=2579,m=154,a=208,s=1099} -{x=213,m=1557,a=2636,s=202} -{x=1787,m=1475,a=1407,s=1761} -{x=1057,m=33,a=29,s=1488} -{x=46,m=2348,a=2573,s=1457} -{x=2080,m=352,a=247,s=97} -{x=166,m=10,a=938,s=1203} -{x=375,m=3545,a=21,s=2507} -{x=1525,m=1748,a=63,s=511} -{x=4,m=712,a=1182,s=2085} -{x=460,m=996,a=1,s=2354} -{x=538,m=1452,a=1066,s=2980} -{x=328,m=488,a=2291,s=1542} -{x=787,m=2124,a=649,s=281} -{x=890,m=17,a=1812,s=99} -{x=950,m=308,a=67,s=87} -{x=792,m=500,a=64,s=546} -{x=194,m=524,a=849,s=1060} -{x=24,m=492,a=1727,s=1628} -{x=3080,m=427,a=11,s=300} -{x=910,m=2320,a=2178,s=225} -{x=100,m=586,a=2247,s=1402} -{x=1277,m=400,a=1053,s=11} -{x=442,m=450,a=1063,s=1664} -{x=1360,m=658,a=1705,s=306} -{x=60,m=1215,a=1012,s=2971} -{x=37,m=973,a=1351,s=2900} -{x=755,m=1798,a=41,s=1999} -{x=456,m=565,a=13,s=18} -{x=1068,m=108,a=1261,s=216} -{x=179,m=559,a=1871,s=1357} -{x=760,m=1634,a=1753,s=502} -{x=33,m=466,a=1114,s=112} -{x=443,m=1297,a=280,s=1777} -{x=2608,m=1971,a=651,s=2930} -{x=244,m=1227,a=1578,s=15} -{x=1063,m=635,a=2276,s=331} -{x=321,m=1326,a=2474,s=359} -{x=1412,m=186,a=2378,s=750} -{x=1007,m=463,a=211,s=520} -{x=2193,m=158,a=1966,s=952} -{x=1047,m=348,a=37,s=88} -{x=3034,m=1692,a=248,s=1957} -{x=508,m=1601,a=213,s=712} -{x=640,m=386,a=1410,s=2062} -{x=683,m=855,a=503,s=3485} -{x=574,m=28,a=978,s=287} -{x=4,m=1189,a=20,s=330} -{x=1716,m=1734,a=166,s=547} -{x=903,m=1023,a=220,s=2002} -{x=2105,m=2151,a=753,s=216} -{x=357,m=1260,a=242,s=32} -{x=382,m=1261,a=3644,s=2198} -{x=451,m=1290,a=1901,s=446} -{x=510,m=391,a=1064,s=1313} -{x=1279,m=40,a=1825,s=946} -{x=21,m=1879,a=1728,s=429} -{x=50,m=183,a=1799,s=895} -{x=2200,m=2092,a=827,s=1450} -{x=230,m=1800,a=1178,s=1276} -{x=747,m=1987,a=838,s=1589} -{x=2113,m=613,a=727,s=26} -{x=34,m=305,a=1750,s=1402} -{x=394,m=3102,a=229,s=339} -{x=247,m=1734,a=102,s=847} -{x=819,m=1651,a=3293,s=1663} -{x=459,m=2156,a=175,s=296} -{x=1194,m=2195,a=324,s=297} -{x=510,m=47,a=9,s=1406} -{x=478,m=18,a=114,s=643} -{x=278,m=2041,a=185,s=237} -{x=2208,m=263,a=252,s=70} -{x=22,m=956,a=1030,s=240} -{x=164,m=466,a=3598,s=1158} -{x=2901,m=267,a=108,s=455} -{x=569,m=1421,a=1176,s=1237} \ No newline at end of file diff --git a/aoc2023/src/day2/input.txt b/aoc2023/src/day2/input.txt deleted file mode 100644 index 34a6672..0000000 --- a/aoc2023/src/day2/input.txt +++ /dev/null @@ -1,100 +0,0 @@ -Game 1: 1 green, 4 blue; 1 blue, 2 green, 1 red; 1 red, 1 green, 2 blue; 1 green, 1 red; 1 green; 1 green, 1 blue, 1 red -Game 2: 2 blue, 2 red, 6 green; 1 red, 6 green, 7 blue; 10 green, 8 blue, 1 red; 2 green, 18 blue, 2 red; 14 blue, 3 green, 1 red; 8 green, 1 red, 9 blue -Game 3: 6 green, 5 blue, 9 red; 4 blue, 1 green, 13 red; 9 green, 14 red, 1 blue -Game 4: 14 green, 3 blue, 16 red; 20 red; 4 green, 2 red, 1 blue; 10 blue, 11 green, 18 red; 3 red, 3 blue, 6 green; 2 green, 18 red, 9 blue -Game 5: 5 green, 4 blue; 1 red, 3 blue, 2 green; 4 green, 2 red, 15 blue; 11 blue, 8 green, 4 red; 4 red, 3 green; 4 red, 3 green, 7 blue -Game 6: 6 blue, 10 green; 2 red, 6 green, 2 blue; 4 red, 4 blue, 1 green; 2 blue, 7 green, 2 red -Game 7: 14 green, 3 red, 2 blue; 5 blue, 3 green, 2 red; 1 green, 3 blue -Game 8: 7 red; 3 blue, 9 red, 1 green; 5 green, 5 blue, 7 red; 1 red, 2 blue -Game 9: 3 green, 4 blue, 1 red; 3 blue, 12 green, 18 red; 7 green, 9 red, 8 blue; 2 blue, 10 red, 12 green; 4 blue, 1 red, 1 green; 4 blue, 6 green, 6 red -Game 10: 2 blue, 4 green, 2 red; 7 green, 4 red; 5 red, 8 green -Game 11: 1 blue, 10 green, 15 red; 1 blue, 2 green, 2 red; 5 green, 10 blue, 8 red; 13 red, 7 blue; 1 red, 9 green, 4 blue; 9 blue, 9 red, 8 green -Game 12: 1 green, 10 red, 3 blue; 14 red, 1 green, 4 blue; 6 red, 3 green, 12 blue; 13 blue, 1 green, 18 red; 4 green, 14 red, 7 blue -Game 13: 1 red, 3 green; 2 green, 1 red, 5 blue; 1 blue; 1 green, 7 blue, 1 red; 1 red, 2 green, 7 blue -Game 14: 7 blue, 9 red, 1 green; 8 red, 2 blue; 11 red, 18 blue, 4 green; 2 blue, 3 green, 1 red; 1 green, 8 red, 9 blue; 2 blue, 8 red, 1 green -Game 15: 8 blue, 3 green, 15 red; 13 red, 10 blue; 2 red -Game 16: 1 green, 1 red; 1 blue, 2 green, 2 red; 1 blue, 4 red, 1 green; 3 green; 2 blue, 3 green, 4 red -Game 17: 1 green, 3 red, 14 blue; 1 red, 2 blue, 2 green; 3 red -Game 18: 1 red, 2 green, 8 blue; 2 blue, 14 red; 4 blue, 2 red, 2 green; 6 red -Game 19: 2 red, 11 blue, 18 green; 3 red, 6 green, 3 blue; 7 green, 1 red, 10 blue -Game 20: 10 red, 1 blue, 4 green; 4 green, 3 blue; 10 green, 13 red, 4 blue; 2 red, 7 green; 4 red, 3 blue, 5 green; 13 red, 1 green, 4 blue -Game 21: 20 red, 4 green, 5 blue; 10 red, 11 green, 4 blue; 1 red, 8 blue, 14 green; 11 green, 8 blue, 15 red; 8 blue, 2 green, 13 red -Game 22: 2 red, 11 blue, 4 green; 1 blue, 3 red, 6 green; 6 green, 1 red, 1 blue; 4 green, 7 blue, 3 red; 11 blue, 6 green, 4 red -Game 23: 6 green, 3 red, 1 blue; 17 green, 11 red; 1 red, 2 blue, 13 green; 13 green, 19 red -Game 24: 1 blue; 12 red, 1 blue; 1 red; 12 red, 1 green, 1 blue; 11 red, 1 blue; 12 red, 1 green -Game 25: 12 blue, 6 red, 3 green; 8 green, 14 blue; 11 green, 5 blue, 6 red; 4 red, 12 blue, 8 green -Game 26: 15 red, 13 green, 9 blue; 9 blue, 8 green, 7 red; 2 green, 6 red, 3 blue; 1 blue, 7 red, 3 green; 13 blue, 4 green, 18 red -Game 27: 9 blue, 5 red; 15 red, 12 blue, 3 green; 12 red, 12 blue, 1 green -Game 28: 18 red, 4 green; 4 green, 6 red; 1 blue, 6 green, 19 red; 9 green, 17 red; 4 green, 5 blue, 18 red -Game 29: 7 green, 6 red, 6 blue; 6 blue, 19 red, 4 green; 4 green, 4 blue, 13 red; 5 blue, 15 red, 10 green; 2 green, 6 blue, 5 red; 8 red, 10 green, 6 blue -Game 30: 1 green, 13 red, 12 blue; 1 red, 2 blue; 11 blue, 1 red, 1 green -Game 31: 8 green, 18 blue, 17 red; 4 red, 8 green, 6 blue; 9 blue, 7 green; 3 green, 1 blue, 12 red; 5 red, 10 blue, 11 green -Game 32: 17 red, 17 green, 7 blue; 18 red, 16 green; 1 blue -Game 33: 16 blue, 3 red; 9 blue, 1 red, 2 green; 3 green, 7 blue; 1 green, 4 red; 3 green, 1 red, 8 blue; 5 blue -Game 34: 5 blue, 8 red, 1 green; 9 red, 10 blue, 7 green; 1 green, 14 blue; 8 blue, 4 red, 10 green; 15 blue, 8 green, 7 red; 2 red, 6 green, 3 blue -Game 35: 13 red, 9 blue; 7 blue, 16 red, 10 green; 4 red, 6 blue; 3 blue, 12 green, 7 red; 8 blue, 6 red; 10 blue, 3 green, 2 red -Game 36: 1 blue, 9 red, 2 green; 11 red, 3 blue, 2 green; 2 green, 6 red; 8 green, 11 red, 3 blue; 4 green, 7 blue, 11 red; 9 green, 8 red, 2 blue -Game 37: 8 green, 3 blue, 4 red; 14 blue, 10 green, 3 red; 19 green, 2 blue, 7 red -Game 38: 2 green, 3 red, 3 blue; 3 green, 9 red; 13 blue, 8 red; 6 red, 5 green, 13 blue -Game 39: 8 red, 5 blue; 4 green, 5 blue, 3 red; 18 red, 2 green, 6 blue; 2 green, 5 blue, 17 red; 1 green, 2 red; 5 green, 6 blue -Game 40: 12 red, 4 blue, 1 green; 11 green, 20 blue, 4 red; 10 blue, 4 red -Game 41: 2 green, 2 blue; 2 red, 2 green; 2 green, 2 blue, 10 red -Game 42: 6 green, 3 blue; 2 red, 2 green, 1 blue; 3 blue, 5 green, 6 red; 6 red; 1 blue, 6 green, 12 red -Game 43: 1 blue, 4 green; 1 blue; 2 blue, 8 red, 2 green; 2 blue, 1 red, 4 green; 1 blue, 4 red, 4 green; 4 green, 7 red -Game 44: 8 green, 9 red; 1 red, 2 blue, 13 green; 4 blue, 8 green, 17 red; 13 red, 13 green; 1 red, 9 green; 19 red, 3 green, 3 blue -Game 45: 10 blue, 2 red, 1 green; 6 green, 5 red, 8 blue; 3 blue, 1 red; 4 green, 10 blue, 4 red -Game 46: 3 red, 8 blue; 6 blue, 7 green, 6 red; 6 green, 1 blue, 7 red; 8 red, 1 green, 5 blue; 9 red, 12 blue, 10 green; 7 green, 5 red, 1 blue -Game 47: 5 red; 2 blue, 2 green, 5 red; 3 green, 7 red; 14 red, 3 green, 2 blue -Game 48: 7 blue, 12 green, 2 red; 11 green, 10 blue, 1 red; 1 red, 13 blue, 2 green; 14 green, 2 red, 9 blue; 2 red, 12 green, 3 blue; 2 red, 7 blue -Game 49: 4 green, 5 blue; 9 blue; 10 blue, 5 green, 2 red; 10 blue, 2 red, 2 green; 1 red, 1 green, 4 blue; 2 blue -Game 50: 2 red, 2 blue, 7 green; 7 red, 9 green, 3 blue; 5 red, 10 green -Game 51: 15 red, 9 blue, 4 green; 5 red, 2 blue, 15 green; 4 blue, 3 green, 20 red; 12 green, 1 red, 10 blue; 10 green, 5 blue, 13 red; 9 red, 10 green, 11 blue -Game 52: 3 blue, 12 green, 1 red; 6 green; 1 red, 8 green; 1 blue, 1 green, 1 red -Game 53: 10 green, 7 red, 12 blue; 9 blue, 6 green, 2 red; 8 green, 5 blue, 5 red; 7 blue, 16 green, 11 red; 6 red, 8 blue, 13 green -Game 54: 10 green, 6 blue, 3 red; 6 green, 2 red, 8 blue; 9 blue, 11 green, 2 red; 10 green, 1 blue, 3 red -Game 55: 4 blue, 1 red; 3 red, 7 blue; 12 red, 4 green, 8 blue; 3 green, 5 blue, 1 red; 13 blue, 12 red, 1 green -Game 56: 12 blue, 15 green; 1 green, 7 red, 11 blue; 5 green, 9 blue, 1 red; 8 red, 5 green, 6 blue -Game 57: 4 green, 11 blue, 18 red; 14 blue, 14 red, 16 green; 7 red, 15 green, 3 blue; 18 red, 20 green, 8 blue; 12 blue, 9 red, 16 green -Game 58: 10 blue, 9 green, 8 red; 13 green, 6 blue, 8 red; 8 green, 4 red; 4 blue, 1 red, 18 green; 7 red, 10 green, 10 blue; 15 blue, 10 green, 3 red -Game 59: 17 green, 2 blue, 2 red; 2 blue, 1 red, 8 green; 14 green, 1 red, 1 blue; 15 green, 3 blue, 2 red; 2 blue, 8 green, 1 red; 1 blue, 1 red, 8 green -Game 60: 1 green, 1 blue, 1 red; 4 blue, 3 red, 2 green; 13 green; 2 blue, 2 red, 8 green; 4 red, 12 green, 4 blue; 4 green, 4 blue, 4 red -Game 61: 3 blue, 7 red; 5 blue, 8 red, 1 green; 1 blue, 8 red; 10 blue, 2 red, 1 green; 1 green, 5 blue, 2 red -Game 62: 10 red, 2 green; 8 blue, 7 red, 2 green; 4 green, 2 blue, 10 red -Game 63: 1 green, 3 blue, 5 red; 6 green, 5 blue, 2 red; 3 blue, 7 red -Game 64: 6 red, 20 blue; 4 red, 3 blue, 2 green; 3 green, 19 blue, 6 red; 2 green, 6 blue, 3 red; 13 blue, 5 green, 5 red -Game 65: 6 red, 9 blue, 20 green; 6 red, 16 green, 4 blue; 12 red, 6 green, 5 blue -Game 66: 2 blue, 5 red, 4 green; 13 blue, 2 green; 1 green, 6 blue -Game 67: 4 green, 5 blue, 2 red; 1 red, 14 blue, 6 green; 1 green, 14 red, 5 blue; 18 red, 16 blue; 15 blue, 8 red, 18 green; 1 green, 18 red, 6 blue -Game 68: 1 blue, 9 red, 7 green; 7 red, 1 blue, 6 green; 5 green, 1 blue, 8 red -Game 69: 12 green, 3 blue, 4 red; 9 green, 8 red, 7 blue; 4 blue, 5 red, 10 green; 4 red, 5 green, 7 blue; 9 green, 4 red, 2 blue; 3 green, 13 blue, 1 red -Game 70: 9 red, 1 green, 8 blue; 11 green, 13 blue, 12 red; 3 blue, 5 green, 8 red; 1 red, 14 blue -Game 71: 10 blue; 2 green, 8 blue, 9 red; 5 red, 1 blue -Game 72: 3 green, 5 blue, 5 red; 1 blue, 1 red, 2 green; 4 red, 4 blue, 1 green; 5 blue, 4 red, 1 green; 6 blue, 3 green, 5 red; 5 blue, 1 red, 4 green -Game 73: 3 red, 1 green, 1 blue; 7 green, 2 red, 1 blue; 2 green, 1 blue, 3 red; 1 red, 4 green, 1 blue; 3 red, 5 green -Game 74: 5 blue, 1 red, 4 green; 3 red, 2 green; 4 red, 6 blue; 2 red, 2 blue; 1 green, 4 red, 8 blue; 5 blue, 4 red -Game 75: 3 red, 5 blue, 3 green; 9 green, 6 blue, 7 red; 2 green, 3 red, 12 blue; 14 green, 4 blue, 10 red -Game 76: 1 blue, 7 red, 1 green; 6 red, 1 blue, 2 green; 4 red, 2 green; 3 red, 1 blue; 16 red, 1 green -Game 77: 3 red, 10 blue, 1 green; 4 red, 7 blue, 3 green; 7 blue, 6 green, 7 red; 5 green, 15 blue, 7 red; 12 green, 5 red -Game 78: 6 red, 10 blue, 15 green; 6 green, 11 red, 4 blue; 6 blue, 8 red; 4 blue, 7 red, 2 green; 11 green, 7 red, 11 blue; 3 blue, 14 green, 6 red -Game 79: 14 red, 6 green, 4 blue; 13 red, 6 blue; 6 red, 13 green, 4 blue -Game 80: 8 red, 2 blue, 8 green; 6 red, 10 green, 4 blue; 3 red, 9 green; 2 green, 8 blue, 7 red; 7 blue, 3 red, 11 green; 1 red, 12 green, 8 blue -Game 81: 9 red, 4 blue, 11 green; 1 blue, 4 red, 2 green; 5 red; 3 blue, 2 red, 2 green; 14 red, 12 green -Game 82: 5 green; 2 blue; 2 red; 1 blue, 2 red, 11 green; 8 green, 2 red, 1 blue -Game 83: 3 green, 7 red, 6 blue; 7 red, 7 green, 11 blue; 7 blue, 13 green, 7 red; 12 blue, 10 red, 2 green; 1 green, 11 red, 7 blue; 12 blue, 9 red, 9 green -Game 84: 5 blue, 1 green; 16 green, 4 blue, 8 red; 7 red, 5 blue, 16 green -Game 85: 9 green, 20 blue, 7 red; 19 blue, 14 red, 2 green; 10 green, 2 red, 10 blue -Game 86: 1 green, 3 red, 5 blue; 9 red, 2 blue, 6 green; 8 green, 14 red, 3 blue; 18 green, 2 blue, 7 red; 2 blue, 10 red, 14 green; 17 green, 4 blue, 12 red -Game 87: 4 green, 8 red, 13 blue; 7 red, 13 blue, 4 green; 1 green, 8 blue -Game 88: 9 blue, 11 red; 5 green, 7 blue, 12 red; 10 red, 2 green, 1 blue; 2 blue, 5 red, 5 green; 7 red, 6 green, 9 blue; 1 green, 10 red, 5 blue -Game 89: 7 red, 2 green, 1 blue; 1 blue, 2 green; 6 red, 1 green; 7 red, 1 blue; 3 green, 3 red -Game 90: 8 blue, 2 red, 3 green; 9 green, 4 blue, 3 red; 7 green, 11 blue, 2 red; 13 green, 12 blue, 8 red; 10 blue, 2 green; 5 green, 1 red, 9 blue -Game 91: 2 red, 2 green, 4 blue; 5 blue, 2 red, 16 green; 11 green; 3 blue, 2 red, 8 green; 4 green, 3 blue -Game 92: 8 red, 12 blue, 3 green; 11 red, 10 blue, 6 green; 14 red, 8 green, 14 blue -Game 93: 3 green, 2 red, 3 blue; 3 green, 3 red, 1 blue; 2 blue, 16 red, 3 green; 2 green; 5 green, 2 blue, 2 red -Game 94: 5 red, 2 green; 9 red, 3 blue; 2 green, 2 blue, 5 red; 3 blue, 8 red, 2 green; 8 red, 1 blue, 1 green -Game 95: 3 blue, 4 green, 7 red; 7 red, 1 green, 15 blue; 6 blue, 2 green, 7 red -Game 96: 2 blue, 1 red, 6 green; 7 blue, 8 green; 1 red, 7 green; 2 green, 14 blue, 1 red; 3 blue, 1 red, 7 green; 4 blue, 11 green -Game 97: 2 red, 9 blue, 8 green; 3 green, 5 blue; 6 green, 1 red, 9 blue; 2 red, 13 green, 1 blue; 2 green, 2 red, 2 blue -Game 98: 2 blue, 1 green, 1 red; 4 blue, 5 red, 1 green; 4 blue, 3 red, 2 green -Game 99: 17 red, 2 blue, 4 green; 4 green, 8 red, 6 blue; 5 red -Game 100: 6 red, 4 green; 3 red, 2 blue, 9 green; 1 blue, 5 green, 14 red; 1 blue, 2 red, 2 green; 9 red, 1 blue, 14 green; 2 blue, 11 green, 8 red \ No newline at end of file diff --git a/aoc2023/src/day20/input.txt b/aoc2023/src/day20/input.txt deleted file mode 100644 index 6949a60..0000000 --- a/aoc2023/src/day20/input.txt +++ /dev/null @@ -1,58 +0,0 @@ -%hb -> mj -%mx -> mt, xz -%xh -> qc -%tg -> cq -%kp -> xz, nj -%mj -> jj, lv -%cq -> jm -%mt -> sj, xz -&jj -> hb, lz, rk, xv, vj, vh, lv -%rm -> bz, xq -%hx -> bz -%xv -> lz -%xx -> kp, xz -%pt -> vx -&xz -> bq, gr, sj, rv, zf -%vx -> gf, cv -%xb -> xz, bq -%xk -> gf, rd -%lv -> zk -&rk -> gh -%kn -> gf, tz -&gh -> rx -%sj -> vp -%jm -> vm, bz -%rr -> rv, xz -%tz -> rz -%gg -> kn -&cd -> gh -%qc -> kh, bz -%kb -> gf -%vp -> xz, xx -%fb -> bz, tg -%rd -> cp -%qn -> vh, jj -%xr -> jj -%tp -> rm, bz -%cp -> gg -&bz -> qx, cq, xh, fb, tg -%qq -> pt, gf -%xq -> bz, hx -%gx -> jj, qv -%bq -> rr -%cv -> gf, kb -%zk -> jj, xv -&zf -> gh -&qx -> gh -%vh -> gx -%qv -> xr, jj -%lz -> qn -broadcaster -> fb, xk, gr, vj -%nj -> xz -%gr -> xz, xb -%kh -> tp, bz -%vm -> bz, xh -%rz -> qq, gf -&gf -> tz, cd, rd, xk, pt, cp, gg -%rv -> mx -%vj -> hb, jj \ No newline at end of file diff --git a/aoc2023/src/day3/input.txt b/aoc2023/src/day3/input.txt deleted file mode 100644 index 1903642..0000000 --- a/aoc2023/src/day3/input.txt +++ /dev/null @@ -1,140 +0,0 @@ -............830..743.......59..955.......663..........................................367...........895....899...............826...220...... -.......284.....*............*.....$...+.....*...377..................*.......419.............488...*.......*...................*..-....939.. -....%.........976..679.461.7..........350..33.........$.380...$...151.897..........295..#......*....105.....418.............481........&.... -...992.....#......=...../........701................508...*..578........................259...331.................795..945........79........ -.........868........................*.............................17*..........348................441*852........*.....-...........@.....922 -....................*200............311..63................452.......323.#778.*....674....................680......696...372.....*.......... -.......266.......209......589.....=......*...365.........7.*...233.............755....*......644...272........697..*....*.....682..225...... -..836..........................949....607..........&....*..899...*....679.527.........331..........$....788../.....43....89................. -........367.....328.&......%...............680...69..717.......60.......*.*............................*..........................728...264. -........*.........*..119.253.......................................626....129...274............97...679.......752........*.......*....*.*... -........360......471........../.........573-.702.............866...@...........*......772....../........259....*.........430....136.742.543. -.........................../.852...............*...775...............643....455....../...........832....*.....41..535....................... -.............-..........340.................103....*..........$...51*..................74................438......%...776...+.23*..663...... -.15.......806...............990.....................427....924............530.........=..............................*....968.....=....480.. -......#..............@914...*..............*........................%......*................................/.....406.................*..... -....201.........79........592............70.894.....247..513+....367..$299.698......199................-.....223....../.........563....783.. -......................448........489................*.................................*....440...889...715..........351.....39.............. -.138....../766...........*.......................152.........................377....599.......*...*...........................@............. -....%.820.......10*43.670..$87....100*244..@706..........668..319#...........................831.736....@............./..693.....321%....... -......=...930#..................@...................493....*............152......569.................=.914....764.....9.-................... -378$...............&.....854..505.........%........&.....124......12........117.....*591..979..76..133..........+............/..........883. -...............602.141.....*...............770.....................*.........*................../.........874.@....../684....778............ -...........................954.....*397.........................394...........614..307*74..457..............+.514.......................327. -........335*25.....-....31..........................................$...719.................*........6..214................878.............. -...............86*.269....*...480........................*....140..947....*..&.......................*......972..............*..364*274..... -501-.......805..........285...*..................6....335.167...*........18...332.............741...127......+.............246.............. -......616.......752*276.....470.848..599.........*............779..=................539...961..$.........204.......-..201*.....%............ -.491.....*..521.........*94.......*.-.....&...163........285/......51..99*......474..*...-.......945.....&......839.......140...201.....$... -....$.795..*........539.........500.......662.............................421....*...459..../.......*407.............../................471. -...........110.......*...............252.............................%..........730......551..509.............824...230....569....48=....... -......150...................................+..70.565=.&320.........983....155................=.....54.......%............*....@......../... -...............972..146...........49.433..137..............................*....%..................@....................436.451..........328 -568-...@.552%....-.-................*.................957................93......74...........*........156.566../....#...........285........ -.....565..............693....443......................*....394.@58...362...................383.583.............542.38............./..890.... -...*.................*........*........&.223...........506.............=..................................300...............477........&.... -..612..459..........462....663......125....................720..............355.....253...............904......................*............ -........$................................622..............=................*...........*30.........#.$........................284........383 -............&.999....&.......................%........240....295*681.846....53.....806......793..646....626./76..737....479.........558.@... -.........892..#.......885.....804..587*....340.........*..............%............*.........*..........*................%............/..... -660..635...........-............./.....213........$....512.....551.............*....910........................@............................ -........*..........361..270*.....................328..............*.........853........................*.....985...965............232...948. -..501@......................213...412$.....375..................631..916.......................254...284.........#....*..252........*....... -...................695............................872*876..622..........-.........*..575...851*..................910.395..*....*717.248..... -.....91.........80....*..390...........497....496............*.......@.........297..*................&....873.............946.8.........647. -.......*.424.......108.....=.............*..................686....418.............131........600.96.327...=...561...321............343*.... -....731....*..............................938..........256..............909.......................................*......................... -.........811...=....................680...........167...*...601.....................892..#.......142*.......151..108............201......... -................653........879....@.*.........%...*...699..*..............726............695.870.....526.$................*8............234. -....54....311..............=...320..619.......495.375.......926....914.........654..............*........236...$.......444.....@613......... -...*........*......450*............................................*...786.625.......804.850.....674..........305........................... -..593.512....517.......155.....646*239....286......+...........96..264....*......471.*......*.........314*901..............879.............. -..........................................=.....419....820......&..................+.......163....148........................*....586....... -.....331.....................637....126.................*..147............650...............................................315....*........ -.......%......................$....../.................392....@...943..34...*......752.............................161..30.........970.521.. -.........984.412#.......-.569...@................464....................*.275..&.....#.126*506....................*.......=.168-............ -.724..................570....*.914.388.........%..$.........274.......263.......130..............102.....2....21+.268....................226 -..........776=...6........759.......*..283..309.....682......$..........................................%........................446........ -....%284.........-....#...........119....*......622...@....+............/.......929..178...........141/............../650...628.+........... -....................440........88.........335...*.......804............968..976*....+...................$.421..431..................*....... -.....880@.......871.....30......................249...........134....*................*...............95....-...*.....856...353...94.....963 -...............*....97..&.......989./.........*.....522+..$.....*.226.436.905......347.396.707...511..........342.....-.....*...........*... -........936*....299.........217.&...478....931.457........62.391............&...............*..../...884*....................370........483. -....965.....992.............*......................................371*771.............37..382...........990...391.......852................ -.......*........985.......753.&..........561.204.......................................*......................*...........@..........+935... -......677.....................164.883...............325........951.....847....%......433....*944.50...753..344.............................. -.829.......583........429............*34......243...*.........*.............329.%........421...........*..........803..746............675... -...*..................*....512............999.......102......398.................640................401....310.............164...452..*..... -269........9........705....*........782....%.......................615.734....-..............289...........*.....................=....661... -........37.#..............14.......*........../.......586.............*........623.......129........324.....601...%.....@................... -...165................#.........861............463.......*.......361*..............356........175.....*.........906.897..716....118..#...... -.....*.............728....417.........+...395#.........443...........829.....390-....................399...............*..........+..813.... -....176..253...846......$...........719..........132............897...............334......................20...........51.....%............ -..............*....*..278................958........*.......=.................183*.......427.......766.......*..914.282......674............ -....&......344...249.....................*.....445.770.....67.....301................295*.........*....715.390...*...../...............424.. -.....541......................160.580...........#................=...........*677..............394.......*........327....739...179.360..*... -..........=................%.....*................-954......%.............406......765..................930.....*.........../.....*.....370. -....%.....979.379..........415...............318..........284....440../............-....133.........157......579.550................747..... -.240..........*.....................@...........*642............*.....84.....%.331................2*...................582...=........*..... -......=.....246....167...............704.............763........999.......781...*.....-109............126..801............*.484....632..542. -....%..488.........@..........................$954....*../.....................779..........232................510.....149.................. -...27..........984.........*....485.....937........982..234..............225..................*..........122.............................16. -...........473.#..........558..*.............410-...........93............#..655....846....829.....760......=...................=....+...... -.....=390..*...................624........#.................+..473..............#......=...........+...577#......$...481.......651.869.806.. -747.......543.259.../717............&...346.......948..........$...........472.............230+......=.........206......*................... -................*........+.224/...798.........311...*..896*220...............&.+..................825....../............378...370........... -...............485.641.674.....................*......................618.......389........................565..&674...........*............ -..........475.................=.162............461.441...................*..........652......&....508..856...........364....464............. -...............154...452#...693....*................*.......391.........979....344..&.......814..............501.......=.................... -...............*................425....25#...........788............879...........*.....29....................&....................850...794 -393.............523...507*683..............174@..........-.............=...369....439....-.......*305.891..........952............*......... -..........+...............................................535..911.........................*....1.........441.....-.........88...906........ -..........997...17.............779..............960...................209........545......513................*...........98...........+608.. -.....................63.968...*.........340.......*...858..339...........%.-767...+...173........47.........906............*210............. -.............&..575..*....@.788.........*.........178.....*.......949.................+...........*.............-.....399.............@..... -..........571....%....984............414...............$.912.....*......302.............594.240..724....341..645.......*.......=..848.642... -....282@...........*......=......189.....138...227*.906.........70......*..................*.............=..........957...657.81../......... -..........*...$.813.179.901.592.....*....................................7....127.............$692...............$..........*.........*..... -.......207..91..............*.....784...872..756.........&..322..............*.........*19.........749.......548..624.694..858...512..598... -.................+.........352...........*.....*.934..126...*.....351..........40...616.......153.....*661............*...........*......... -...823........829...346...........821...826.304...%.......115.......*..........*...............*.............../...622...523.......606...... -...*...............*.............*...................186...........813....716@.372....16..300...489..108.....770.......................697.. -..........919...782.......912................@.........*.%485............................*..........*...............208.220....853.......... -...308......*............*......269.........539.......2.............853.......941.660.532........246.......980..357*....+.....*......./..... -..../......32.164.......15.479.=.............................=...............*....*......................#....*......+......-.855.....415... -.......305..../.....649....*......633...925...634............121............355....578.......14*....422..543.297....429..142................ -..960..+..............*.....536......*..@....-.......51..-.........592#..........+..............9..*........................................ -.....*......515......434............908..........189......430..................332...722..-.........450..#.........................139...... -..259......*.............................39..33.....$..................................*...159..443.....925.............743....414.&...=437. -......58..475...........227%.......217..../...*................../...............&....506..........................63..*.......*............ -.......=......-..............993....%.........166........605....293........977+..498......%.....834...455...........*.....%....981.991...... -...........636..728...*.......*.......494...............................................205........*.@...........528....226.........#....785 -664.9..............$..9...494.272...............725*....775...$....854..........226.243..........832....637*73................165........... -...*...340+.............@...*.......548.............405....*...768..*..............*.......81.........................10.787.$.......918.... -.......................145...265....+..........110........45.........90..299.....$........&.....696...475.-452..290....*...*..........@..... -......+....246.108.305...................894....=............121.588......*....69...................................236..97......348........ -.......709........*...........-...........-..........411...=...*.......135........................738..383.....634*..........429.@.......... -...........%........%217......119.....................@..47.........+.......923..............606...*.......960..............-............... -....835.....744...................546.......215.............512.....950.......%...444......&...$.833......./.........813.......400..%...48.. -........362.......898..#.......................*.732........*.............965....&.........584..................521..#...........-.995...... -....64.*.........*.....265........781..376...320.#........998...450.......%............................$...............................304.. -....-...966...875..981........742*.......*...........*276.........*...............541.....219.279..357..164...551..%717...............%..... -...................*...786.$..........*...163.....915...........960...%...509.135*...........*................-...........%.539............. -....666..699......179..+...612..=734..545...........................88.....&.......392...46..........483=..&.......548.135.....*.413.#620... -...$....*....948..........................530.656....%..484....*..................*......./...741..........444......*.......150...*......... -......................524...928..........=........858....=..562.571........117@.195..896......*......662.......148.388.............320...... -...166..48.../....-............#...159.......487.....................260...............#...713.........*.347................................ -......*.......657..837.....273.......%........*...155.................*........225..................228.....*370..../.......724.....764..... -......654.679.................@.........-....918...................681..461.............................776......737.................+...... -...........*....859......881#............625......$...........888.........+...57...............887.$.......*............................#911 -...46*....72...&...................................102.............651........*......*530.......-..667....850..829*.869%........298......... -......925..........892.352*........6.41....................+...160.$.....*.72..878..1.....................................738......*926..32. -...............279.........721......*..............694....799..&......878....*................219....+...482..368$...........*../........... -......604........*....................583*506........-...........740..........347............*....576......*................498..478.974.... -..486.-....................626..................320........&....../.................*979.=....863........497........111..............%...... -...................................538..78...*.....*......7...455.......223......939......673..........=......559-....*...834............58. -.......644....&.......#..669+.1.......*.....782.....865......*....779..#..............110...../....937..312...........489................... -.......*....571.....69........*.......169...................919....*.....808.................335...*.............................24*896..... -.......233................590.553..............198=..450.........661.......*.....................15...-....................-575............. -...........919*.....................................*.......234.........492..%...........300...........301........./866..........*.......... -...............470.....440.874...116....240........299......................27......409.......................................639.136....... \ No newline at end of file diff --git a/aoc2023/src/day4/input.txt b/aoc2023/src/day4/input.txt deleted file mode 100644 index 0391b6a..0000000 --- a/aoc2023/src/day4/input.txt +++ /dev/null @@ -1,203 +0,0 @@ -Card 1: 8 86 59 90 68 52 55 24 37 69 | 10 55 8 86 6 62 69 68 59 37 91 90 24 22 78 61 58 89 52 96 95 94 13 36 81 -Card 2: 6 42 98 5 17 31 13 36 63 61 | 99 88 14 20 63 5 56 33 6 21 92 13 17 7 31 93 30 74 98 15 11 36 61 42 47 -Card 3: 16 58 72 77 1 67 33 82 68 7 | 16 37 15 75 78 1 49 82 22 45 83 58 77 79 50 88 98 67 33 72 42 29 35 7 68 -Card 4: 75 35 37 6 29 54 64 57 82 4 | 8 33 27 85 84 54 75 37 4 57 70 29 64 94 17 6 38 41 82 81 71 35 47 51 19 -Card 5: 23 85 52 77 81 50 28 59 87 82 | 70 65 12 35 9 41 62 31 47 66 58 15 76 46 68 67 55 86 17 38 18 1 75 79 13 -Card 6: 77 64 13 36 68 88 16 75 25 95 | 25 64 55 58 75 66 23 16 27 68 69 88 13 9 39 42 29 65 83 97 32 89 53 96 94 -Card 7: 31 12 76 29 48 96 41 49 21 37 | 94 81 65 82 15 33 53 91 88 37 46 29 3 80 95 67 11 27 31 30 49 89 78 41 90 -Card 8: 20 5 52 31 46 25 88 95 39 83 | 36 62 48 39 69 3 81 11 61 95 43 85 34 46 5 8 13 45 10 17 2 88 70 52 89 -Card 9: 8 85 89 55 77 9 40 5 57 37 | 56 84 62 42 49 50 51 35 75 25 13 74 68 1 99 48 41 94 45 66 17 69 23 29 67 -Card 10: 74 1 7 89 97 82 75 9 11 42 | 94 71 41 30 50 58 23 81 35 6 97 57 67 85 98 10 87 43 96 77 31 8 54 72 65 -Card 11: 38 29 6 5 4 84 34 1 94 23 | 89 48 51 84 49 33 50 65 79 53 12 8 5 1 35 69 83 57 11 42 67 26 9 6 55 -Card 12: 35 83 44 75 36 65 85 87 60 72 | 8 3 91 33 59 29 56 26 21 60 80 88 25 5 51 47 46 44 41 31 62 79 76 89 55 -Card 13: 8 56 97 66 32 70 25 76 18 20 | 15 50 91 65 3 67 98 81 9 44 18 92 13 64 96 47 87 46 7 33 66 71 82 88 90 -Card 14: 37 52 63 28 19 89 44 76 98 24 | 70 13 59 31 17 84 90 6 62 19 74 36 94 1 15 12 29 95 47 92 23 67 60 58 53 -Card 15: 71 70 25 51 95 86 66 37 27 53 | 14 20 30 17 59 96 11 68 46 13 75 44 40 62 32 7 81 91 73 64 93 83 35 80 49 -Card 16: 97 4 63 22 75 73 5 52 34 26 | 33 98 64 47 90 94 28 35 43 30 73 51 7 27 10 40 97 37 34 32 22 71 63 21 80 -Card 17: 15 18 29 55 14 25 69 4 59 75 | 66 4 82 23 94 22 26 16 55 69 75 20 76 25 29 59 15 18 70 2 28 39 95 14 40 -Card 18: 26 40 70 42 37 68 25 76 56 97 | 33 97 28 13 24 50 66 53 67 84 26 68 42 56 92 40 65 76 25 32 70 93 85 37 94 -Card 19: 56 61 7 53 48 88 77 73 27 79 | 50 81 29 15 46 19 33 89 54 85 58 73 68 34 84 2 40 27 44 94 88 62 14 1 56 -Card 20: 34 89 62 72 6 30 16 53 78 2 | 2 78 73 89 85 40 47 30 34 8 60 23 72 26 62 96 6 91 29 16 57 46 59 53 94 -Card 21: 65 18 22 53 8 31 32 84 39 9 | 75 16 70 3 14 61 34 9 38 71 8 49 53 52 81 18 45 82 41 44 32 63 65 51 69 -Card 22: 44 80 76 71 36 1 50 87 23 27 | 1 76 83 67 87 68 25 80 8 23 57 29 52 4 50 64 24 44 77 45 27 32 36 73 71 -Card 23: 68 90 10 43 73 63 85 47 11 96 | 9 29 53 84 4 6 25 82 11 21 73 83 20 95 66 27 80 26 70 33 85 47 17 74 98 -Card 24: 51 68 2 69 39 86 55 70 6 54 | 72 17 14 26 91 52 96 86 66 64 51 2 92 53 36 39 89 42 40 68 55 37 6 54 7 -Card 25: 74 92 43 35 29 93 39 53 10 54 | 86 35 10 18 92 43 56 25 44 53 93 39 29 54 11 12 55 61 83 41 21 69 81 4 74 -Card 26: 80 19 99 93 76 67 70 60 39 9 | 98 2 26 95 21 49 44 9 31 58 83 46 14 99 4 78 12 56 89 71 66 29 47 64 96 -Card 27: 92 52 5 46 49 62 74 72 44 87 | 37 93 24 29 5 88 72 81 62 50 69 33 52 19 23 8 84 1 70 87 95 96 61 63 49 -Card 28: 79 80 98 59 54 45 91 16 11 4 | 80 10 98 45 78 91 1 65 12 11 4 82 88 79 54 55 8 99 59 67 68 16 25 3 70 -Card 29: 52 30 9 13 44 71 48 63 65 27 | 90 31 17 80 44 39 85 93 58 65 8 63 16 35 40 1 73 68 52 6 97 99 13 10 61 -Card 30: 12 19 35 9 82 20 72 61 50 67 | 11 84 77 14 46 29 62 28 81 98 43 12 15 72 35 99 19 97 75 1 20 7 82 60 52 -Card 31: 21 58 93 11 50 25 88 77 64 29 | 42 1 31 30 99 69 54 32 88 24 95 15 55 56 14 45 19 33 87 34 7 93 79 23 74 -Card 32: 39 87 70 22 46 95 69 3 58 80 | 85 95 24 45 84 22 37 12 33 43 93 96 27 56 70 67 91 58 10 68 69 40 97 82 13 -Card 33: 91 42 78 76 77 27 22 98 94 70 | 80 17 63 21 37 52 46 44 2 7 73 86 49 40 23 4 92 60 43 76 29 22 24 69 42 -Card 34: 11 50 70 95 32 81 26 57 7 76 | 83 64 65 46 87 56 28 98 90 11 96 40 99 3 16 12 61 19 97 76 51 92 93 34 15 -Card 35: 80 28 55 51 98 5 92 54 73 78 | 78 66 10 38 36 51 1 83 94 33 42 17 62 56 59 21 86 25 46 48 63 12 45 31 65 -Card 36: 63 76 16 74 10 14 50 73 81 35 | 3 68 1 76 62 53 67 97 13 85 28 65 32 72 34 98 57 20 71 17 64 48 8 56 44 -Card 37: 37 1 38 62 56 27 17 8 21 98 | 78 31 14 23 18 62 4 2 97 88 59 34 57 46 81 16 36 58 86 35 72 61 7 80 28 -Card 38: 56 30 92 44 33 11 16 45 72 60 | 74 86 59 87 22 81 46 32 52 21 78 10 57 1 13 85 49 75 95 29 8 38 77 54 50 -Card 39: 66 83 99 18 79 70 57 25 86 55 | 8 41 50 87 77 7 78 84 53 35 43 26 13 29 30 69 91 65 32 59 31 45 56 15 48 -Card 40: 64 46 22 83 33 38 95 75 69 89 | 82 65 45 68 75 33 69 49 22 95 89 74 53 46 38 25 83 64 8 59 81 16 94 27 60 -Card 41: 90 26 49 5 76 98 92 64 19 32 | 47 35 49 45 13 67 73 55 4 64 79 63 89 57 5 75 85 91 25 88 74 70 28 68 86 -Card 42: 45 52 92 43 76 96 4 86 53 62 | 96 53 55 18 95 44 25 45 47 66 62 2 52 60 10 3 1 37 87 92 98 70 9 86 23 -Card 43: 9 64 57 76 21 30 38 98 85 1 | 11 22 92 81 58 59 48 75 2 32 15 84 27 56 86 99 98 66 54 96 20 37 67 12 29 -Card 44: 11 41 84 1 76 6 64 8 31 44 | 11 1 33 58 55 6 84 44 70 20 64 41 90 98 72 42 8 38 4 39 76 17 18 69 31 -Card 45: 88 12 95 1 24 71 70 49 79 8 | 86 57 43 12 90 78 70 76 24 95 39 8 1 13 47 71 49 75 15 32 2 77 58 79 21 -Card 46: 84 91 96 41 17 76 9 36 81 1 | 82 5 99 19 43 20 86 69 37 44 95 41 55 65 96 70 24 47 77 15 31 36 2 79 22 -Card 47: 48 80 18 4 40 11 90 17 27 68 | 33 40 15 99 48 12 25 27 44 17 50 94 68 63 11 29 80 4 18 42 32 90 19 2 91 -Card 48: 44 30 51 97 22 57 87 17 53 11 | 35 17 81 22 11 30 75 80 74 54 79 16 78 97 89 87 51 37 43 72 53 57 27 94 23 -Card 49: 31 2 7 13 9 33 95 41 57 34 | 25 90 77 13 1 95 18 17 34 92 10 33 80 2 82 66 91 73 70 86 21 7 42 47 19 -Card 50: 16 44 77 76 23 81 47 29 62 22 | 35 27 83 47 88 76 98 64 31 86 48 42 95 67 25 44 17 51 18 26 12 1 90 99 62 -Card 51: 55 68 41 17 28 83 64 62 22 13 | 24 6 23 22 64 7 83 74 44 34 28 68 13 32 26 50 62 17 12 41 97 55 16 1 9 -Card 52: 96 79 43 83 37 25 86 24 66 34 | 79 18 6 2 64 62 86 48 65 34 29 68 9 87 76 71 3 69 61 41 40 35 37 55 32 -Card 53: 46 1 10 43 47 17 62 52 58 75 | 58 14 52 71 31 75 55 50 8 99 63 23 4 13 10 62 16 17 82 43 56 46 76 83 65 -Card 54: 75 33 27 30 87 32 68 89 44 17 | 73 28 31 97 27 9 57 14 15 20 39 82 38 36 43 58 75 4 44 30 33 80 16 48 17 -Card 55: 70 11 9 44 14 32 83 10 99 71 | 65 48 21 75 83 71 92 2 34 22 11 14 39 31 63 25 88 15 80 76 96 90 52 70 99 -Card 56: 17 38 6 13 3 67 87 64 37 68 | 41 7 53 11 5 62 93 28 65 8 56 32 1 69 47 18 82 40 20 12 80 37 89 43 2 -Card 57: 64 29 46 22 61 56 32 20 97 72 | 31 14 29 44 74 22 1 56 4 52 58 45 50 78 67 11 97 72 16 20 27 57 61 83 85 -Card 58: 62 85 13 46 79 37 99 81 91 8 | 98 17 85 23 33 94 35 2 47 20 3 11 36 96 43 46 25 60 59 10 22 55 87 58 28 -Card 59: 58 36 55 31 69 91 21 51 56 10 | 19 49 73 6 34 27 40 65 11 55 44 67 37 97 14 85 84 89 72 29 64 15 70 68 94 -Card 60: 46 40 95 45 75 74 7 38 10 81 | 32 38 4 61 78 5 39 99 86 33 2 98 83 42 11 75 27 73 81 9 54 37 40 12 80 -Card 61: 40 29 73 56 91 44 24 77 1 5 | 87 52 80 45 70 48 47 44 69 17 16 6 82 66 37 42 39 3 10 15 97 13 40 99 62 -Card 62: 54 55 29 80 70 50 97 89 33 68 | 21 3 76 73 6 42 2 91 19 18 72 92 94 11 77 32 52 8 81 48 35 16 27 12 84 -Card 63: 19 45 77 86 6 33 83 91 52 36 | 18 68 60 58 84 29 9 67 21 99 24 80 69 96 25 85 46 50 95 27 61 4 90 63 88 -Card 64: 88 23 57 8 93 17 20 42 54 51 | 12 78 82 80 85 43 73 44 84 89 15 36 30 10 25 29 7 99 61 60 86 14 26 28 83 -Card 65: 92 13 3 54 4 95 28 72 8 15 | 15 60 66 33 82 95 94 69 71 59 54 99 40 31 83 17 13 80 28 72 4 92 45 87 46 -Card 66: 1 42 10 66 94 21 46 95 73 32 | 64 99 3 86 69 71 95 78 60 28 5 19 35 85 67 7 32 16 39 66 89 42 31 43 58 -Card 67: 87 50 23 52 5 22 88 82 59 72 | 26 59 48 90 82 55 50 37 87 35 2 52 72 11 40 23 54 88 19 33 5 97 86 22 30 -Card 68: 21 89 80 14 73 61 9 7 68 48 | 18 89 38 26 32 21 79 15 14 86 44 55 95 41 80 7 9 29 73 1 13 48 68 28 61 -Card 69: 9 82 65 50 57 40 96 36 83 60 | 96 17 88 60 40 74 33 19 41 23 82 89 92 72 50 83 4 7 56 34 9 36 52 57 65 -Card 70: 40 63 61 64 3 21 52 11 66 53 | 82 42 13 30 44 72 74 83 45 70 38 33 80 8 64 48 49 73 19 51 85 47 90 84 92 -Card 71: 92 24 98 94 89 41 1 93 28 32 | 28 61 92 13 53 89 43 23 32 66 81 93 94 38 90 36 24 68 1 91 98 41 29 67 64 -Card 72: 29 61 68 1 78 69 33 45 39 18 | 81 12 36 28 73 75 18 35 42 33 95 68 3 79 39 8 24 82 87 45 11 91 23 51 1 -Card 73: 15 33 51 46 80 95 67 71 97 16 | 23 7 93 94 55 33 5 84 28 32 15 59 98 6 46 17 86 43 39 81 36 42 63 71 82 -Card 74: 95 9 16 72 30 20 41 97 45 90 | 30 72 49 66 36 9 82 98 95 16 48 57 46 86 47 90 20 85 54 74 73 4 22 60 32 -Card 75: 82 55 49 44 75 57 19 59 38 4 | 21 78 35 6 93 75 28 41 83 72 55 22 64 89 70 47 23 29 20 99 48 53 27 65 13 -Card 76: 19 31 41 50 27 43 74 21 51 44 | 24 79 71 16 49 37 60 14 8 33 52 40 98 6 34 62 56 4 10 30 39 48 99 67 22 -Card 77: 39 23 28 96 98 50 40 34 79 74 | 85 68 79 33 48 23 56 10 89 38 50 71 17 28 6 74 53 4 98 26 8 22 39 31 66 -Card 78: 80 31 82 32 70 17 68 44 22 97 | 72 6 95 57 13 94 37 44 70 46 32 69 22 56 40 15 77 88 17 82 31 47 71 18 68 -Card 79: 37 53 75 59 72 43 65 74 81 26 | 37 23 11 48 45 86 74 2 59 58 92 12 65 78 16 97 57 76 67 26 18 41 43 54 49 -Card 80: 63 41 23 39 40 10 26 93 24 73 | 30 19 74 40 49 90 22 65 78 10 24 93 73 41 51 7 61 15 29 39 63 16 64 23 37 -Card 81: 88 68 74 9 97 46 11 87 39 10 | 40 3 14 85 64 43 42 97 90 9 39 13 29 72 47 10 48 4 68 96 99 25 98 65 57 -Card 82: 81 48 21 57 65 39 12 66 95 33 | 16 33 79 85 92 52 50 34 15 22 9 45 74 17 24 63 28 72 84 62 58 77 41 64 83 -Card 83: 45 33 86 43 63 96 25 88 53 15 | 73 93 79 18 2 26 21 65 28 57 52 88 1 80 33 38 76 3 56 35 6 23 34 24 13 -Card 84: 31 74 96 40 36 99 91 92 63 10 | 78 38 59 27 84 34 31 72 19 91 12 45 57 92 32 44 70 50 10 24 87 33 49 65 61 -Card 85: 24 20 39 42 78 57 12 64 40 44 | 68 34 77 20 21 12 35 23 97 3 50 65 42 18 84 41 43 69 94 37 76 57 31 45 79 -Card 86: 51 48 14 80 3 72 92 15 35 43 | 50 69 18 76 63 30 58 19 65 16 70 55 54 12 87 62 60 68 93 83 1 44 26 98 27 -Card 87: 11 4 31 73 5 81 2 32 29 51 | 3 47 9 18 16 19 66 36 23 70 91 64 69 87 51 84 43 65 35 42 63 72 82 54 93 -Card 88: 94 10 52 17 78 45 99 66 8 81 | 11 31 71 59 41 88 67 30 47 98 33 21 37 15 53 20 36 58 57 91 39 28 49 70 86 -Card 89: 28 68 50 39 98 57 78 71 11 48 | 95 67 79 86 53 17 66 60 77 6 44 54 19 31 74 80 63 99 47 12 91 21 70 8 10 -Card 90: 36 90 94 26 59 84 63 38 48 39 | 69 56 39 88 89 97 26 38 83 55 87 13 33 68 95 94 18 48 36 44 59 84 63 90 66 -Card 91: 89 3 61 68 53 85 66 81 11 78 | 29 10 81 58 22 47 19 3 36 98 61 85 89 78 39 17 50 53 11 66 68 24 4 86 25 -Card 92: 57 5 56 91 64 38 89 47 55 74 | 73 51 48 19 57 98 64 9 74 65 53 47 54 72 69 38 56 1 21 6 91 40 55 5 89 -Card 93: 6 86 18 53 9 82 70 81 89 26 | 21 69 75 10 8 86 89 70 47 23 78 96 98 53 6 9 2 81 31 56 39 55 18 1 42 -Card 94: 86 78 79 57 3 2 5 69 30 53 | 80 2 53 90 3 30 48 79 5 78 19 35 62 59 97 56 13 12 70 86 10 69 51 55 57 -Card 95: 64 51 15 84 25 94 88 80 20 33 | 1 90 50 47 32 15 20 51 84 65 64 55 39 94 19 66 40 25 88 43 80 34 29 3 92 -Card 96: 83 88 94 87 79 45 49 91 99 33 | 91 53 72 37 87 40 26 88 33 49 89 99 24 59 94 52 75 83 79 71 62 50 92 28 6 -Card 97: 51 91 36 6 68 9 97 78 39 80 | 18 97 68 34 91 61 78 3 23 84 8 16 36 96 65 99 59 80 58 90 14 32 1 41 74 -Card 98: 92 41 9 7 52 86 83 40 8 63 | 47 17 14 35 34 22 19 52 79 7 81 92 1 82 93 73 25 58 60 39 59 27 3 16 41 -Card 99: 72 47 22 4 62 58 31 91 34 50 | 49 65 94 71 82 25 24 9 64 62 50 60 14 84 16 93 1 46 8 19 47 44 21 10 11 -Card 100: 96 18 53 37 54 98 30 84 58 45 | 30 59 89 23 8 35 85 6 36 54 37 17 92 79 27 39 4 61 11 80 19 58 72 51 47 -Card 101: 67 26 23 99 78 60 55 82 83 11 | 60 22 91 21 18 29 67 62 34 93 56 59 49 52 38 79 28 11 17 77 76 20 2 99 92 -Card 102: 28 94 4 54 77 42 17 44 59 48 | 24 13 61 6 5 83 50 77 76 37 90 71 79 47 8 98 41 75 59 70 89 16 30 17 45 -Card 103: 65 69 32 77 64 99 24 71 73 90 | 20 26 72 17 16 46 86 2 28 13 88 45 5 70 95 55 33 65 49 68 50 58 85 83 22 -Card 104: 78 17 88 26 65 79 8 18 47 25 | 31 86 76 30 84 44 62 97 81 42 14 72 25 32 82 5 54 69 98 52 68 13 92 3 58 -Card 105: 72 63 74 24 23 67 34 26 50 73 | 11 70 76 89 84 92 79 33 82 44 71 48 35 8 59 14 93 15 29 18 55 3 38 77 28 -Card 106: 36 40 51 81 60 96 34 49 85 89 | 72 15 7 40 60 97 68 52 36 55 87 96 85 89 49 61 78 34 37 27 76 5 51 81 12 -Card 107: 56 6 20 66 35 45 14 19 62 52 | 15 27 93 17 77 19 35 43 80 72 47 88 8 70 71 92 83 82 10 97 25 90 44 69 87 -Card 108: 33 44 49 78 10 26 20 65 77 13 | 33 54 2 24 17 20 26 7 93 5 3 77 81 46 92 78 49 65 32 51 44 95 13 29 10 -Card 109: 51 25 49 60 83 75 46 43 50 41 | 96 12 53 50 78 92 60 15 76 6 5 34 41 23 25 70 20 75 86 73 30 39 32 48 95 -Card 110: 13 22 99 91 47 53 35 34 37 77 | 79 35 1 13 88 57 76 89 81 15 53 56 99 34 6 68 77 32 91 47 87 37 4 24 16 -Card 111: 17 21 92 30 95 1 52 5 27 46 | 86 24 6 51 99 68 16 34 19 76 31 10 56 63 58 97 87 26 40 73 8 54 69 18 90 -Card 112: 52 83 38 39 95 12 57 14 46 85 | 12 95 85 14 89 50 52 17 92 18 38 34 55 83 16 66 19 88 4 20 46 57 77 39 11 -Card 113: 6 25 93 3 52 46 2 13 70 7 | 67 46 40 2 3 77 35 50 57 52 55 75 53 72 97 89 34 84 15 31 23 7 58 25 21 -Card 114: 24 53 25 12 17 82 14 50 3 74 | 91 83 57 50 96 68 52 11 56 44 89 95 15 13 54 20 76 48 30 88 53 55 93 65 47 -Card 115: 95 81 49 37 80 70 7 60 75 99 | 29 74 98 94 49 59 60 86 75 93 72 56 87 82 76 32 33 4 46 70 27 83 1 35 2 -Card 116: 80 67 54 68 98 47 12 56 77 60 | 45 81 47 78 29 39 56 42 80 54 68 90 37 2 16 96 5 38 14 59 7 30 6 67 20 -Card 117: 6 59 84 35 1 53 28 77 94 24 | 97 62 40 54 93 44 90 63 26 64 91 75 6 4 22 82 80 2 69 12 77 21 53 49 10 -Card 118: 86 30 39 49 32 29 27 68 97 50 | 2 48 36 99 83 4 38 5 47 77 66 1 20 10 14 15 63 78 89 91 85 80 41 28 54 -Card 119: 87 78 77 15 85 99 2 35 45 11 | 58 51 62 42 63 90 37 22 8 83 34 31 67 35 72 17 91 7 88 49 13 39 59 4 18 -Card 120: 80 21 33 94 26 68 73 35 83 3 | 67 9 94 49 27 50 40 30 60 90 86 91 98 69 6 15 36 71 38 31 17 33 41 70 84 -Card 121: 81 17 27 59 99 69 49 14 83 91 | 20 77 55 73 87 36 25 56 54 58 45 68 80 18 3 15 65 31 96 40 75 30 92 42 23 -Card 122: 22 44 29 27 77 20 86 34 5 99 | 63 19 97 74 4 39 7 52 87 31 81 45 23 18 53 47 50 73 80 2 70 94 26 66 14 -Card 123: 39 40 61 53 56 60 96 5 68 25 | 97 98 6 79 81 32 51 26 59 13 10 2 3 77 88 80 63 90 52 12 87 29 49 18 76 -Card 124: 78 19 92 75 56 95 2 16 43 44 | 95 2 56 4 92 66 53 88 21 16 43 78 17 44 85 48 12 19 52 40 69 75 59 82 26 -Card 125: 14 43 38 9 8 62 17 28 12 11 | 80 19 38 43 11 34 29 9 32 12 62 28 77 72 17 69 33 96 94 78 67 8 93 90 4 -Card 126: 60 95 93 99 11 49 20 75 37 54 | 54 42 19 49 92 95 11 34 74 93 60 52 99 5 7 75 20 12 68 98 43 50 36 37 56 -Card 127: 73 24 71 80 58 62 17 41 61 43 | 68 43 79 58 87 67 6 62 20 41 93 71 27 88 23 17 24 42 52 13 61 80 81 84 73 -Card 128: 99 10 91 58 70 47 80 30 96 57 | 46 57 3 72 4 87 70 10 59 7 96 48 28 97 91 58 47 76 36 80 8 23 19 30 99 -Card 129: 50 3 78 8 80 11 57 52 94 47 | 63 60 38 92 50 65 91 88 53 17 96 42 66 28 1 25 75 76 73 87 90 36 82 24 68 -Card 130: 38 42 33 70 61 58 73 88 74 29 | 83 92 77 58 56 74 55 93 38 46 29 28 37 68 33 73 91 61 12 64 25 88 42 31 70 -Card 131: 92 46 42 96 12 14 95 84 57 78 | 11 6 82 41 73 55 8 93 76 98 99 86 31 21 78 29 32 70 62 23 95 15 9 77 52 -Card 132: 40 97 45 2 19 99 29 98 37 20 | 5 56 36 21 33 83 32 98 66 20 16 37 97 93 40 78 43 77 99 29 87 96 2 30 39 -Card 133: 97 81 10 23 75 6 53 27 35 47 | 37 93 8 92 68 65 15 85 25 67 61 56 5 42 88 18 76 87 60 46 59 94 86 57 91 -Card 134: 96 66 54 61 10 85 98 40 13 41 | 90 58 9 38 28 24 57 52 5 81 80 62 34 54 79 49 2 95 1 18 41 65 82 32 42 -Card 135: 54 79 66 83 45 35 10 27 41 94 | 67 42 4 89 51 95 1 63 90 40 65 23 98 7 86 9 97 3 11 61 92 69 77 80 2 -Card 136: 37 86 74 45 70 95 33 28 82 32 | 67 13 62 8 63 41 78 40 24 91 11 48 7 85 59 81 44 37 45 90 66 70 35 33 94 -Card 137: 75 89 5 18 91 57 37 63 85 40 | 27 34 9 51 76 41 69 86 95 81 36 82 1 38 10 99 7 47 21 77 8 30 19 71 60 -Card 138: 9 67 82 54 5 98 7 6 40 96 | 13 83 90 88 44 17 82 24 47 84 23 85 62 45 72 91 58 46 38 32 25 79 70 59 33 -Card 139: 1 6 65 80 35 91 63 22 60 50 | 79 84 81 92 75 36 88 90 86 16 53 17 44 43 15 94 73 51 14 42 33 98 74 57 4 -Card 140: 24 43 8 76 91 79 42 68 81 70 | 65 36 56 57 16 69 38 86 85 37 22 9 98 33 45 25 95 28 52 2 27 6 14 46 55 -Card 141: 62 32 78 2 21 45 75 48 91 85 | 38 42 3 20 21 56 48 75 86 45 40 91 33 73 25 85 16 78 2 24 72 26 32 61 62 -Card 142: 90 10 32 43 65 91 24 22 34 62 | 91 26 72 81 7 11 32 10 90 33 34 87 35 24 29 3 59 62 2 65 22 43 57 74 79 -Card 143: 16 52 66 56 50 57 77 71 73 40 | 71 43 80 59 36 39 77 40 11 4 64 16 85 52 49 73 56 57 10 9 86 46 66 6 50 -Card 144: 61 56 14 66 2 73 39 8 33 97 | 26 8 47 67 16 18 37 39 14 9 61 33 97 2 66 56 73 4 75 11 62 68 49 44 34 -Card 145: 75 65 92 85 73 18 70 95 49 22 | 25 8 49 2 16 13 97 33 93 66 75 85 73 71 65 18 22 53 92 38 44 50 62 70 95 -Card 146: 78 62 86 83 26 23 80 2 77 87 | 23 96 38 63 83 22 20 86 77 21 67 66 75 5 36 47 26 61 80 87 82 16 78 46 2 -Card 147: 84 36 18 42 50 12 64 61 99 91 | 18 75 61 76 74 12 1 41 28 91 64 24 55 36 27 3 84 99 42 50 95 83 31 7 22 -Card 148: 61 91 60 18 68 50 73 29 23 87 | 18 76 33 5 27 97 31 37 21 38 56 91 60 87 23 55 58 61 50 45 14 29 72 68 73 -Card 149: 46 97 81 18 85 95 91 43 72 87 | 32 23 1 49 66 96 24 16 42 22 81 51 72 8 20 37 44 71 45 25 90 88 5 94 74 -Card 150: 17 99 20 36 33 78 9 87 81 84 | 37 8 79 65 31 99 45 36 81 90 73 11 49 46 87 84 3 33 19 12 57 9 20 48 17 -Card 151: 35 46 49 80 66 75 99 77 8 53 | 75 24 5 67 4 53 49 61 19 23 26 97 93 77 46 66 35 40 99 39 30 80 76 25 8 -Card 152: 11 80 39 1 30 36 16 85 33 66 | 26 66 60 2 94 16 81 48 80 43 85 96 51 68 33 63 88 54 6 36 37 59 5 1 47 -Card 153: 49 86 25 83 96 8 93 88 24 57 | 66 60 51 33 57 95 49 79 63 2 93 58 65 70 55 76 87 27 1 46 11 52 80 84 54 -Card 154: 38 41 75 30 91 6 14 66 47 57 | 34 56 11 70 71 60 22 81 41 74 39 67 79 98 87 42 62 3 32 57 55 46 33 16 51 -Card 155: 25 31 45 21 68 57 73 20 71 32 | 20 18 98 53 60 7 38 10 12 19 77 64 79 74 17 33 83 88 28 16 32 21 89 69 65 -Card 156: 19 35 39 37 84 50 62 95 96 56 | 89 24 92 67 4 47 54 59 72 84 3 5 76 96 23 1 58 86 32 21 78 88 68 44 48 -Card 157: 24 68 39 72 23 93 81 51 45 25 | 96 33 76 99 5 70 93 18 24 68 6 64 49 92 45 80 15 77 4 57 25 13 44 28 2 -Card 158: 51 18 46 75 2 80 20 72 17 29 | 97 55 47 23 20 4 39 24 64 11 31 16 90 29 93 72 18 45 27 46 61 70 80 68 67 -Card 159: 34 10 70 56 51 9 99 32 15 74 | 13 31 44 56 63 20 99 81 40 78 84 90 50 52 85 19 41 10 45 71 22 28 26 8 14 -Card 160: 69 49 13 23 36 64 24 18 57 7 | 54 62 96 36 7 10 28 64 1 85 3 63 73 21 27 37 49 47 75 34 97 30 77 32 9 -Card 161: 35 16 44 25 42 62 95 77 89 34 | 29 26 11 78 97 23 28 36 10 96 54 81 17 22 80 27 77 44 41 34 20 51 76 24 75 -Card 162: 60 17 28 76 67 12 41 15 53 70 | 41 19 35 64 65 15 37 22 80 66 55 40 45 81 17 98 85 74 57 4 16 91 49 5 68 -Card 163: 57 3 82 45 28 70 50 17 85 48 | 68 87 47 62 58 31 88 92 98 90 46 29 5 85 93 24 95 99 39 75 55 33 65 49 14 -Card 164: 33 81 13 87 53 48 79 70 17 91 | 92 57 21 4 36 27 62 1 46 80 31 72 5 94 58 99 75 67 83 25 51 9 26 52 63 -Card 165: 55 70 45 36 72 59 81 16 69 98 | 60 7 43 54 66 78 83 23 25 94 48 67 26 56 53 58 2 4 27 31 34 39 49 85 74 -Card 166: 94 64 48 15 36 35 79 23 77 33 | 78 80 25 5 18 34 92 69 84 86 26 13 89 65 29 3 7 39 71 31 42 21 51 48 55 -Card 167: 13 34 54 2 20 16 89 79 88 9 | 47 75 25 82 72 76 51 37 95 22 71 55 54 74 9 33 97 83 27 2 79 28 17 91 24 -Card 168: 33 82 70 88 7 46 96 67 26 89 | 73 8 22 1 59 45 92 24 43 41 15 64 3 58 83 63 57 82 20 18 91 13 77 60 19 -Card 169: 91 4 32 45 55 98 80 52 9 33 | 20 45 37 28 69 61 60 81 12 33 51 74 15 97 50 86 72 99 2 41 70 58 19 40 39 -Card 170: 45 72 63 87 70 33 89 41 4 18 | 25 9 19 49 26 63 11 73 54 64 70 37 45 82 30 1 90 24 87 42 4 40 91 71 18 -Card 171: 74 99 84 26 66 10 95 8 75 68 | 34 62 37 97 57 65 75 74 6 67 68 96 4 1 95 55 52 82 13 47 63 48 94 26 77 -Card 172: 62 99 47 83 94 8 51 70 9 76 | 94 99 83 26 57 76 18 67 22 80 61 34 8 39 65 78 13 81 70 51 62 93 9 3 33 -Card 173: 42 99 9 18 48 61 36 83 13 84 | 7 69 44 61 35 54 27 3 60 55 99 84 32 48 18 19 72 42 89 65 4 92 79 75 13 -Card 174: 48 34 46 43 53 51 72 35 19 3 | 72 43 57 51 14 34 2 36 53 25 94 81 87 61 19 35 23 4 99 26 48 46 7 90 86 -Card 175: 46 59 27 28 82 13 99 35 18 6 | 36 90 70 87 64 31 42 71 50 27 76 45 99 32 21 20 9 88 23 93 17 46 80 85 59 -Card 176: 92 44 3 29 10 7 66 4 57 21 | 36 68 61 87 65 1 53 95 60 2 34 47 75 42 82 8 83 79 54 74 93 26 69 22 32 -Card 177: 89 23 17 80 22 65 98 11 94 3 | 91 28 37 99 63 60 42 87 23 98 71 39 82 93 57 68 62 13 75 77 22 26 53 48 90 -Card 178: 11 75 56 47 64 88 91 66 59 12 | 41 97 40 26 42 67 23 28 31 99 85 30 11 94 81 55 74 89 52 64 65 69 3 38 43 -Card 179: 31 97 46 27 96 57 45 30 64 82 | 36 42 81 54 85 31 1 29 8 84 28 50 64 76 10 67 77 39 21 4 75 78 99 47 12 -Card 180: 10 32 84 45 87 16 82 14 95 8 | 21 8 41 66 56 42 77 83 90 9 55 61 19 38 23 50 28 62 99 58 33 11 84 39 98 -Card 181: 90 54 11 49 95 88 15 75 18 2 | 30 5 68 41 71 52 56 10 50 60 81 51 27 94 42 55 6 87 78 66 72 96 36 12 62 -Card 182: 73 1 91 2 99 75 30 29 48 89 | 46 51 34 7 18 57 64 9 23 68 16 19 85 70 66 72 5 87 12 4 25 97 10 89 60 -Card 183: 16 20 31 39 75 36 78 33 88 69 | 57 17 8 70 79 37 6 48 51 85 30 45 98 26 3 83 29 58 87 54 61 35 74 43 66 -Card 184: 69 50 38 49 9 96 75 82 80 14 | 23 99 30 83 78 9 50 40 14 74 75 8 37 69 82 42 26 49 96 1 38 58 80 84 7 -Card 185: 44 66 49 89 36 28 30 85 32 68 | 44 28 66 72 33 65 31 67 36 30 99 89 12 25 32 76 68 85 48 90 78 92 13 49 82 -Card 186: 46 48 6 52 24 19 51 76 11 47 | 93 63 78 33 31 86 68 10 74 70 3 83 36 4 54 79 8 77 38 57 97 27 22 29 53 -Card 187: 49 12 70 83 40 68 15 78 88 95 | 72 31 40 69 37 65 71 35 9 44 49 95 89 68 50 41 20 58 16 60 90 22 28 96 10 -Card 188: 86 47 96 63 55 29 91 31 59 23 | 55 77 30 23 91 75 86 47 29 31 78 67 4 92 96 26 63 37 80 54 1 11 32 15 98 -Card 189: 40 97 46 63 66 58 54 35 33 59 | 75 17 57 71 55 62 43 96 85 98 83 37 40 23 65 94 93 25 72 78 46 47 28 33 56 -Card 190: 94 41 57 47 6 24 65 59 44 20 | 95 86 26 77 87 47 18 27 16 85 57 61 66 37 35 38 23 42 50 60 98 71 62 8 25 -Card 191: 57 32 39 19 48 77 27 96 10 61 | 68 82 86 70 75 35 11 24 69 56 45 95 67 44 25 36 90 47 74 39 27 55 66 87 12 -Card 192: 50 94 12 32 88 76 95 23 46 49 | 60 9 6 37 42 50 96 15 95 66 34 94 91 4 33 29 14 92 16 80 98 64 12 57 36 -Card 193: 32 25 53 7 71 31 80 42 92 63 | 84 78 28 90 27 24 5 67 63 75 81 12 31 55 46 60 89 98 37 16 86 23 72 43 22 -Card 194: 79 47 88 9 97 76 62 23 72 84 | 77 78 67 65 91 79 64 38 41 26 89 16 10 71 86 82 47 75 61 11 34 66 7 3 70 -Card 195: 22 47 95 56 66 98 44 73 50 30 | 92 33 28 65 16 60 8 45 56 2 47 84 25 55 58 17 35 88 38 95 81 63 43 57 98 -Card 196: 76 23 10 43 9 32 46 62 84 79 | 22 4 49 42 23 55 13 35 90 9 24 52 65 26 95 94 18 37 47 79 56 59 54 86 48 -Card 197: 65 44 24 84 49 62 6 54 42 20 | 25 72 90 58 77 60 59 73 11 39 91 19 21 28 62 8 41 66 87 56 64 52 80 82 24 -Card 198: 63 44 64 86 78 25 92 90 99 70 | 62 29 51 81 21 6 75 58 54 90 18 10 59 98 97 41 4 52 53 64 80 28 92 11 9 -Card 199: 7 15 47 28 44 22 74 76 40 56 | 78 24 95 38 25 36 77 46 89 45 18 42 3 75 62 90 52 81 83 85 80 26 4 23 71 -Card 200: 85 88 3 44 54 19 9 71 29 53 | 72 42 56 55 33 68 65 86 58 3 57 83 12 31 96 9 13 62 70 80 17 29 41 27 6 -Card 201: 10 51 69 82 56 40 94 9 90 78 | 57 92 89 1 99 87 5 73 80 28 2 6 67 70 33 18 17 78 16 95 69 44 38 24 55 -Card 202: 44 47 79 75 24 50 86 80 62 87 | 66 91 36 15 28 81 57 69 30 14 10 20 27 18 77 46 95 72 39 23 38 34 60 37 26 -Card 203: 59 31 79 81 4 21 24 54 48 62 | 37 90 25 51 70 77 18 17 97 52 40 75 43 3 91 50 87 67 42 15 14 63 6 13 5 \ No newline at end of file diff --git a/aoc2023/src/day6/input.txt b/aoc2023/src/day6/input.txt deleted file mode 100644 index 1026e3a..0000000 --- a/aoc2023/src/day6/input.txt +++ /dev/null @@ -1,2 +0,0 @@ -Time: 41 66 72 66 -Distance: 244 1047 1228 1040 \ No newline at end of file diff --git a/aoc2023/src/day7/input.txt b/aoc2023/src/day7/input.txt deleted file mode 100644 index b1d1932..0000000 --- a/aoc2023/src/day7/input.txt +++ /dev/null @@ -1,1000 +0,0 @@ -3Q373 470 -K53JT 351 -A9JK9 856 -2T333 515 -867T4 541 -58K22 253 -5JA6J 994 -K4A4K 865 -94377 519 -92J2Q 901 -J7676 389 -2KK36 938 -JQ2KK 987 -Q7A82 509 -TTTA5 243 -72J27 502 -AKKKA 387 -23222 674 -55335 161 -AA655 73 -QKKQA 686 -5J2T5 680 -666AT 385 -ATA3A 761 -TTT8J 364 -98A2T 282 -59A44 260 -6T9QJ 130 -T7TKQ 721 -9274T 656 -T9AJ4 182 -A2222 259 -TQKJ7 67 -4J844 560 -AAATA 636 -9J36J 546 -QJQQQ 119 -249TT 295 -877J7 221 -4KA23 116 -929Q2 929 -99JQQ 445 -Q9QJ8 432 -4Q7TJ 963 -4J2J8 783 -5J657 257 -88788 183 -KKK7K 909 -KK396 637 -J45AT 117 -84448 806 -A2698 820 -A9AA5 320 -A3934 19 -Q45Q5 392 -78686 254 -A55A5 701 -98A4K 655 -5AJ88 95 -AK3KK 55 -773KK 33 -J9J9J 356 -2KAKK 563 -655K5 287 -55T56 475 -54444 308 -5J5QA 811 -QKA76 792 -2K288 42 -JTKA2 694 -88668 889 -8TQ64 212 -23QQ2 261 -8K8K5 365 -JKKAA 234 -3J894 880 -667Q2 817 -888T4 599 -T5Q83 315 -3QK29 670 -JK4KK 322 -75T8T 144 -AAA7K 291 -7T333 495 -A49K4 448 -JJ3J3 251 -5999J 278 -38438 890 -6K3Q9 122 -TTT99 93 -94775 240 -K8QJ3 369 -59674 107 -267J4 355 -QTQTQ 187 -46J44 961 -Q7AK2 580 -69969 609 -876A5 474 -A3866 642 -Q3QQA 526 -JAA88 425 -35Q9K 986 -QQTQJ 550 -54535 357 -2J222 639 -QK5J7 743 -222Q2 191 -T4T44 855 -QTQQ2 338 -JA7A2 300 -AAAJ2 508 -4J455 23 -A77AA 339 -5KK25 899 -252J2 737 -7QJ76 888 -K46QK 795 -A4T3J 640 -8A8K8 176 -AA5AA 41 -J2Q24 958 -58855 632 -333J3 610 -74474 807 -K3AAA 78 -JJ222 765 -44224 688 -76733 361 -5845K 181 -TT4T2 974 -23J33 102 -QQJ6Q 34 -Q9AQQ 150 -22747 717 -KAA5A 121 -7AA7J 286 -J786T 780 -3K8TT 32 -A6KAA 25 -9A362 166 -A29Q2 499 -6688K 57 -KKQKA 947 -999JJ 975 -6A666 927 -TTT3K 658 -JQQ7T 467 -8A247 934 -7JK8J 712 -KK39K 612 -6666Q 17 -77Q37 868 -A66AJ 169 -KKKKJ 535 -7Q7JJ 591 -K9848 646 -46888 931 -A86A8 326 -743TA 527 -QKK67 977 -KKJ6K 471 -AAJ7A 571 -55292 330 -3A222 390 -6453J 109 -JKKKA 403 -4J9T5 21 -K7A5K 486 -6TT34 793 -3479Q 60 -44624 443 -6KK3K 164 -4447J 112 -QQ27Q 452 -JAK65 522 -Q5Q5Q 354 -J5Q6A 540 -68999 711 -3QJ4Q 155 -A6AAA 314 -222KK 767 -55T9A 373 -T5T57 913 -TTTTA 794 -8J258 190 -3Q87J 489 -AAQAQ 950 -Q4JJ4 588 -6T64T 9 -636K5 228 -AA222 248 -7KJ35 616 -26646 507 -44A4J 829 -23323 904 -TA265 135 -JJQT9 136 -KATJ8 644 -J2862 713 -4JQ28 152 -Q3K2T 56 -6Q232 812 -9A622 885 -KJKKJ 773 -3859T 374 -99333 101 -TKTTK 205 -3333A 35 -5A4AQ 548 -T4944 967 -43353 813 -423JK 869 -T99T7 219 -3AAAA 394 -T65Q6 740 -J9243 352 -6656J 496 -444K4 574 -Q8T6K 98 -AQ55K 917 -7QQJ7 605 -TJ5TT 615 -68JQ5 852 -7A3J2 745 -369AK 217 -57755 343 -A8844 61 -Q76QQ 698 -36333 774 -237Q7 12 -KT694 283 -88286 154 -4T552 990 -Q9J54 759 -K6697 350 -A3A33 937 -AA9AA 246 -QQ7KK 748 -TT4A6 380 -4J992 845 -A66AA 573 -5QQ2Q 28 -86J37 214 -2A443 362 -Q9QKK 654 -44434 964 -77773 74 -44355 235 -9QK75 863 -3AJ33 766 -T2TJT 53 -44494 860 -883A9 309 -QQ59Q 360 -A88A8 584 -A83A4 395 -7J9TA 299 -55955 833 -QJK35 188 -4656A 514 -8KTQ4 554 -56J47 985 -J272J 184 -9J999 671 -72295 31 -53555 264 -4A537 750 -7A4JJ 875 -QK834 463 -88KKA 570 -QQ9JK 906 -6Q646 858 -53336 359 -QJ8QJ 587 -424TJ 607 -KTKK6 285 -Q5AQQ 84 -899A8 542 -K8TKK 250 -4JA4A 705 -6J75J 896 -888K8 312 -5583J 660 -6T335 614 -Q757T 945 -3AKKA 629 -KK946 825 -3393Q 406 -7J288 367 -49999 907 -99729 837 -66265 384 -K47JQ 263 -2AJ4K 566 -TTKKA 186 -8J877 418 -56844 666 -JTTTT 531 -6TJ94 26 -JQ5J5 344 -7J772 85 -33747 510 -KJA2A 729 -333TQ 578 -JQAT4 955 -75766 834 -QQ6QQ 980 -32K33 306 -TTTJ6 231 -2QTTT 213 -999AQ 608 -33353 202 -Q8Q8Q 756 -KK555 490 -746K8 691 -98A75 853 -JQ858 816 -KK9KK 536 -9T999 933 -TA8A8 39 -8558J 919 -J8KQK 15 -73Q2K 503 -2K2KJ 585 -JK9K5 903 -TJ7T7 545 -J723T 453 -KT895 583 -TTTKT 123 -39535 393 -K4K88 893 -43KK6 821 -6AA8J 504 -972TA 597 -7J736 592 -536A8 63 -J23Q3 402 -83K9Q 405 -28337 396 -9T558 776 -7AA78 946 -QTT24 441 -26QT3 401 -AJQAQ 953 -6T6AJ 304 -JK5KK 162 -2JJ2J 484 -73773 6 -8J864 630 -78782 557 -6TJ52 424 -487JQ 830 -8J698 82 -AJAAA 866 -228J8 204 -622J4 823 -6J2QJ 79 -22K22 232 -A86A6 444 -83K8Q 965 -JK586 944 -JA848 465 -8888A 45 -2T28T 803 -73J73 450 -27272 857 -7A777 544 -A998J 679 -46466 458 -KJ233 192 -4453J 378 -TQQJT 451 -A3K5J 512 -888Q6 968 -6AA66 841 -QQ222 883 -3K5A3 233 -JA4AA 379 -62288 778 -44456 51 -4A644 862 -55647 981 -A77A7 327 -KQ3A3 687 -QQ7Q7 976 -T4A2T 293 -46226 628 -Q59Q5 348 -36AJ2 984 -54433 532 -JJQ24 831 -7455J 381 -78845 218 -72AQ5 276 -52T22 618 -99399 68 -36AA3 118 -69669 839 -33Q5J 785 -TJ766 626 -T28J4 556 -T883Q 142 -73928 932 -TJ884 494 -AJ36Q 485 -9Q999 324 -T725Q 267 -22622 88 -92364 685 -97792 789 -J673K 620 -99943 625 -77JJ7 921 -8828Q 572 -7777J 353 -TAAJT 926 -99T29 787 -AQ4J4 520 -9J559 5 -J3T94 706 -K9KK9 918 -KK252 439 -79925 97 -TT47T 497 -848T4 126 -6TTT6 426 -K8825 925 -888J8 62 -K5K85 972 -AAKKA 449 -J5555 663 -89J99 27 -4Q444 922 -A9A99 397 -5A555 163 -8J3K8 662 -29989 645 -95222 751 -Q4Q4Q 193 -555K5 982 -74AJ8 735 -KKQ6K 668 -7676Q 916 -A28T7 784 -K57KK 388 -A4J4J 115 -2K442 229 -33TT3 956 -TT6TA 741 -TT782 131 -TJ5JQ 238 -TQ7T7 415 -29KQQ 598 -A8AAT 676 -46A28 650 -6698K 696 -6J969 158 -6694A 271 -QTQ5T 498 -Q2QQQ 613 -2A7QJ 210 -6T466 683 -QJ575 799 -Q63Q3 822 -Q9J28 848 -TTTT7 7 -KA9AA 854 -K2JJT 859 -28228 179 -K29KJ 429 -JJ8JJ 222 -A99A5 457 -QQTTT 983 -43KK2 134 -984JJ 1 -97J97 892 -2AAA8 689 -9Q77J 819 -98TJK 517 -56KA5 71 -7J66J 294 -55855 335 -TTT8T 596 -33663 407 -7J774 911 -3JQ55 564 -QQQ7Q 329 -85668 120 -KK333 301 -Q3553 867 -7K557 988 -Q8488 400 -96J99 643 -29224 714 -T8ATA 346 -99J93 462 -K83J3 697 -3KQJ4 653 -5KJQ2 824 -4JJ3A 897 -56248 727 -JJ666 702 -355T5 245 -45KAK 553 -88AAA 236 -K55J5 581 -AJJ49 65 -A8Q3J 197 -AAAKQ 529 -55976 707 -77776 930 -A9995 227 -K7J7K 912 -29K99 244 -4Q464 80 -22972 195 -666JQ 189 -26278 241 -79288 601 -5454A 427 -JTAKQ 138 -88833 549 -84J54 215 -AATAK 114 -58959 145 -8ATTJ 431 -QJ26K 265 -A3JA3 81 -T8T4J 242 -4T3A3 37 -44777 871 -JQ542 561 -A97Q9 693 -A76T4 412 -28T4A 481 -T485A 861 -78286 303 -K6776 52 -T8TKQ 754 -KJ938 957 -Q444Q 840 -25A89 455 -58588 673 -K8858 634 -K8KJ8 170 -K6KKK 851 -53353 140 -2T2K6 593 -QQAQA 48 -TT6J6 305 -922J2 920 -AA22K 22 -J555Q 725 -TTAAT 781 -2244J 171 -A95K7 436 -2J299 651 -78AAA 321 -2KKK2 690 -2J565 649 -77J5K 77 -T999T 762 -J4445 879 -J888Q 873 -J884J 1000 -98898 413 -29299 442 -QKQ3Q 678 -A652A 993 -55272 898 -KA5K5 664 -8KJAQ 147 -Q56QJ 734 -K77J3 739 -J7677 661 -T5569 206 -2AA2J 757 -TJTJT 342 -T2TTT 682 -88J82 363 -9KK78 700 -AT4T4 730 -86968 736 -99995 207 -7A3J4 172 -8KK87 991 -TKKJJ 16 -J7532 165 -J9888 996 -9AJTA 92 -43T78 310 -93J77 317 -J4424 805 -43J86 703 -952TJ 127 -54363 146 -8T2J7 435 -88848 832 -TAAAQ 791 -8228T 256 -699QT 815 -KQQQK 30 -T82J3 49 -36222 4 -AK288 86 -6792A 194 -2Q22T 667 -J3545 270 -9QJK4 280 -QQ22Q 371 -K9247 446 -A422A 943 -765K3 469 -9J5A6 874 -4A4QA 775 -8Q8Q8 124 -T8Q62 850 -8Q8Q5 747 -6KT88 738 -82888 722 -3TQQQ 349 -2J3TT 539 -7TQ59 72 -8998T 733 -JQJT3 414 -82428 589 -92856 423 -89833 54 -79T4A 523 -95839 979 -TJJT5 936 -33839 29 -37433 511 -TKJ2T 681 -JT973 633 -Q8Q8J 971 -Q5555 440 -K8886 24 -Q75A4 43 -3AQ33 298 -T446T 719 -577J5 753 -KJTKT 167 -52528 8 -25222 641 -QJ2T8 621 -A8JQJ 316 -7T7A7 772 -KQQTQ 141 -83734 758 -6Q66Q 434 -QJ6Q2 638 -AAA7A 196 -57555 203 -4QJQ4 216 -82J5Q 763 -A73A3 940 -46AJQ 559 -T4936 103 -89Q29 262 -7872T 466 -A5J58 274 -AAAQA 290 -37399 844 -A759Q 328 -TJ9TT 273 -77887 268 -64A2J 978 -6T76Q 110 -QQ467 742 -9J7Q5 422 -4K6Q3 91 -336K3 826 -6K63Q 382 -23552 105 -243AA 505 -Q887J 764 -2J92A 749 -68A3Q 416 -7T8T8 199 -225J5 404 -24774 153 -T7T77 870 -3J393 347 -Q5Q8J 128 -7Q777 796 -QKKKK 617 -86686 108 -44KT4 75 -56858 622 -5AJK4 960 -3245Q 311 -36536 370 -6644Q 11 -JKAAA 104 -T2426 579 -J3399 83 -33933 602 -A299J 777 -26J22 224 -8666J 594 -J3J38 669 -3AJ84 239 -52Q8T 877 -QJQQK 779 -QJ6T8 797 -43339 399 -9AJ74 476 -T499Q 13 -2TAKA 928 -T3K78 809 -2923K 201 -J8858 798 -T8888 818 -98399 168 -8T266 555 -23A57 652 -3KKK3 113 -22T22 460 -AJJAA 106 -7QKA8 464 -QQ8TQ 368 -99A99 341 -62Q5A 223 -J9T47 568 -Q7388 894 -69662 744 -96J2T 323 -2A779 89 -Q2874 269 -77797 948 -5359A 864 -AJ9K4 482 -Q3Q44 567 -JT958 665 -A38J3 438 -J4666 296 -428J5 501 -38K8K 410 -6T979 709 -3533T 284 -2285A 910 -933T6 882 -K6666 786 -56Q32 992 -5J752 198 -AJJQJ 600 -KK5KK 3 -38T94 180 -67QTJ 69 -J6636 200 -229J8 493 -QJTQ3 247 -5KQ5K 149 -654AT 528 -T84T4 878 -Q23QQ 905 -QQQ74 325 -4JTQQ 408 -T4T78 340 -3T5T5 551 -3J3J3 391 -88844 631 -TTT9T 810 -57775 935 -A777J 604 -4555T 2 -A5J8T 942 -22AJJ 506 -22323 997 -A3323 624 -84442 516 -2T992 76 -J7T76 828 -J8552 995 -KTKK3 886 -33853 782 -53233 129 -44J4J 372 -KQQT2 480 -K5649 576 -3J63K 760 -2J666 827 -6JT68 318 -45Q64 849 -49884 801 -9KTTK 902 -66737 952 -5Q8J4 708 -57Q92 724 -627J7 331 -K22J6 473 -4T444 923 -J4444 552 -78J8J 491 -4K328 477 -4AA3A 808 -7A34Q 437 -AQ888 428 -8TA99 768 -AA9A9 143 -9K5AT 211 -77722 40 -TQTTT 941 -Q2A4K 492 -236T9 677 -J8686 746 -J585K 64 -TJKQT 582 -T3TTJ 157 -22266 38 -KT5TK 692 -QJQQJ 908 -4K623 279 -7JJJ7 173 -64A66 524 -J7AJ8 417 -K43Q3 769 -T662T 148 -54J2J 488 -K6485 44 -J6666 970 -J26J9 209 -8337Q 334 -A27A4 319 -A7T78 132 -K777A 842 -KKK4K 249 -99K9K 430 -8745K 151 -Q2QTJ 433 -QKQ76 525 -25Q2Q 533 -5QK6J 800 -77T77 558 -5K323 939 -33KK4 590 -K8A52 111 -ATQJ6 569 -ATK89 50 -4433A 836 -3KKKQ 891 -46TK4 538 -5249Q 447 -2462K 675 -8JT6T 336 -466J7 459 -7K7KK 838 -544Q4 959 -58773 483 -823J5 999 -2TKA5 752 -AKJ58 386 -7T833 99 -KQ88Q 659 -KJ3A4 790 -K9595 307 -3K3J4 534 -3838T 220 -32522 720 -366Q3 500 -J8868 989 -T7KTK 376 -JQQQA 14 -42555 409 -5T5T5 648 -4KK4Q 383 -K7777 884 -736A3 543 -343Q3 366 -TJ856 237 -JJ555 46 -K5QQQ 275 -QAQQ7 672 -8KTJQ 731 -QQQ3Q 47 -J257Q 575 -6Q3QQ 87 -QKK43 924 -TTATJ 998 -K44K5 771 -37895 881 -48823 521 -KKK74 456 -99J79 139 -J4542 635 -AJ96K 954 -K8937 411 -5J355 895 -96967 185 -333T3 562 -TAJ77 755 -J38A8 487 -AAT79 313 -A6Q73 398 -386JA 10 -J35Q8 623 -27758 969 -3K3KJ 966 -7928Q 627 -AAA4A 59 -2AA52 478 -848J8 133 -55225 843 -TTQT9 619 -3Q79K 255 -27AK8 58 -TKTKK 272 -KTTAT 333 -55666 802 -47748 454 -Q3T56 699 -63T3T 302 -8754Q 723 -4J86T 358 -8TTQ9 226 -5523J 125 -88588 606 -58AAA 208 -TK273 137 -4Q7KQ 160 -29292 577 -Q333Q 611 -22TT2 716 -A55AA 258 -64822 468 -22228 847 -2242T 788 -JA26Q 472 -8JAAA 174 -K5Q8A 175 -Q5AT4 732 -J4434 530 -76666 337 -9998Q 547 -9T2J9 100 -3Q982 90 -7727Q 281 -92944 973 -K2597 814 -K444K 36 -26KJ6 292 -34K38 962 -5A378 225 -636J9 375 -TTTT4 420 -A66TA 461 -69QK5 345 -76293 479 -66966 804 -A3383 297 -T82TT 657 -2QJJQ 156 -K2JK3 94 -K6K66 252 -K58QJ 876 -6J979 513 -92647 718 -QQ9Q9 586 -862Q5 20 -5465K 915 -KQ44Q 595 -T66T6 288 -TJT7T 710 -5JT8K 159 -KJTK3 603 -KKJTQ 949 -67776 914 -J4323 177 -22229 704 -96999 178 -8AJKA 70 -69T69 419 -65556 770 -87738 537 -547J4 835 -44766 421 -3355J 684 -2K266 647 -5TTT5 266 -3T3TT 332 -88JJ8 96 -QQ5K3 887 -K7JKK 377 -J8Q2Q 66 -2KKJ6 230 -TTKQT 277 -22Q92 18 -JTTTK 695 -J993Q 846 -88898 728 -88T87 715 -Q74J4 872 -4T999 951 -T997Q 289 -92QA9 726 -AJ394 900 -TT2T2 518 -JJJJJ 565 \ No newline at end of file diff --git a/aoc2023/src/day8/input.txt b/aoc2023/src/day8/input.txt deleted file mode 100644 index e27fbc1..0000000 --- a/aoc2023/src/day8/input.txt +++ /dev/null @@ -1,740 +0,0 @@ -LRLRLLRLRLRRLRLRLRRLRLRLLRRLRRLRLRLRLLRRRLRRRLLRRLRLRLRRRLRRLRRRLRLRLRRLRLLRLRLRRLRRRLRLRRLRRRLLRLRLRRRLRRRLRLRRRLRLRRRLLRRLLLRRRLLRRRLRRRLRRRLRLRLRLLRLRRLRLRLLLRRLRRLRRLRLRRLRRLLRRLRLRRRLRLRLLRRRLRRRLRRRLLLRRRLRLRLRRLRRRLRRRLRLRRRLRRLRRRLRLRRLLRRRLRRRLLLRRLRLRLRRLRRRLRRLRRLRLRRRR - -GXT = (MQM, CHN) -MBK = (RCK, RCK) -HBS = (QHS, RXC) -SXK = (FDB, FKP) -NJB = (BSB, KJM) -SPD = (FNL, RSH) -FJF = (NFH, XJN) -GHV = (LSV, BTS) -QDT = (HXV, PDX) -MDH = (XDK, DKN) -AAA = (FKL, CFC) -GRB = (VDP, LMM) -CXK = (DVB, CRJ) -FDB = (FTD, CNK) -LQT = (BJV, SMQ) -TSK = (NQD, VSG) -VLF = (NDS, CTV) -PGP = (DKC, CKL) -PVJ = (FDB, FKP) -VSV = (NFP, QHX) -KXN = (XJN, NFH) -KMQ = (VBH, XXH) -QXR = (RMD, TLT) -DLN = (TPD, KBG) -BHK = (GRP, RXF) -TSX = (HQP, SHK) -PTV = (VSG, NQD) -QVN = (XBH, DHC) -DDM = (TCB, XRQ) -NKD = (CDR, BJM) -JNR = (FMC, SQN) -VPQ = (JGC, VCJ) -HPB = (STQ, DDM) -HRT = (JNR, BGH) -CNQ = (HQV, PJQ) -PMG = (LRB, XXP) -RKV = (XGN, VCG) -KVQ = (KHS, SLV) -MDM = (VDX, NSF) -VHT = (PGP, GJS) -BPD = (NBF, VNH) -JCQ = (JCB, XVR) -CFJ = (PQP, CBJ) -DSX = (BXN, VDS) -MGH = (PFV, NLQ) -MPK = (FND, BJX) -QFR = (HFC, CNG) -PHS = (VNH, NBF) -KTT = (MTG, SQM) -JBK = (CSR, VXV) -BKL = (DLB, SHQ) -GQH = (PCH, LDZ) -XVJ = (CQM, SLF) -VBN = (FFF, PDL) -KQH = (SLT, XLG) -SSN = (PQH, LFT) -MQM = (SBH, TTC) -SCR = (HGH, QGS) -XTZ = (XKM, JTJ) -ZZZ = (CFC, FKL) -PRA = (GRB, MDB) -VTV = (LXQ, HKP) -PPX = (SQM, MTG) -PVA = (MRJ, CVH) -BJH = (VTR, RKG) -KPH = (RFD, NJP) -HXG = (NVJ, HNG) -LRX = (DCX, MGH) -NFD = (PFR, FVQ) -TDG = (TDH, ZZZ) -XKM = (XDG, VHT) -CKT = (LDC, VPF) -QQR = (BFQ, FXC) -RGJ = (KTV, GFR) -XDK = (MVC, SPX) -TLT = (MBK, DGL) -CDR = (JBG, KPH) -LTH = (DFN, BHK) -PVV = (BFQ, FXC) -FCK = (FRJ, KVG) -FXB = (MDH, VSJ) -DHD = (LDJ, RNH) -HHR = (HSK, CJD) -LSV = (LNP, NMD) -JSX = (DPF, SNN) -SBH = (XKD, GTX) -BHJ = (JSX, TMN) -CQX = (XPG, RLB) -XRQ = (FJK, NCF) -GMF = (JBX, DRV) -KBD = (HCC, TND) -KGT = (NLK, FRX) -RKM = (RTM, FMQ) -GNM = (GML, NLB) -SXP = (RKG, VTR) -PMS = (XBH, DHC) -PQH = (PJD, CXK) -XXH = (BMB, JGJ) -RHL = (QHS, RXC) -DFS = (JVK, VBN) -QCS = (XGN, VCG) -MJJ = (DDM, STQ) -SPV = (PXX, RRT) -FRJ = (SNX, MPQ) -FKC = (CBF, RKM) -SRG = (QFH, LGP) -VVQ = (BJV, SMQ) -BQC = (DSP, TXQ) -SHQ = (NKR, RGJ) -KCS = (QGS, HGH) -MTV = (BXN, VDS) -CNC = (HPB, MJJ) -SNF = (XXP, LRB) -KTP = (QRX, KML) -GSC = (HSK, CJD) -QRX = (CRB, TXL) -MDB = (VDP, LMM) -PFV = (CLM, CTN) -RRB = (HHR, GSC) -DDQ = (PXX, RRT) -TJB = (LSX, XNR) -BSP = (TXC, LKB) -MMV = (DKK, NFD) -DCB = (XKP, TNJ) -QKV = (CTT, SFM) -XDG = (PGP, GJS) -JMJ = (JLK, NJB) -VBJ = (HJV, JFD) -QHM = (CLJ, QGP) -STR = (HXG, RFC) -DPF = (VNQ, DQQ) -RXF = (NHV, GBX) -FXC = (JLX, LBS) -XVR = (MVT, QHD) -KNM = (BJD, QCK) -GTX = (MSB, FNP) -XCS = (PTN, NRH) -CGS = (FRX, NLK) -RCK = (CQM, CQM) -CDS = (PRR, GCJ) -BXN = (KQC, MSV) -PTN = (VST, QHJ) -TPD = (HJF, TSS) -RNH = (TTK, DBN) -TSM = (TPD, KBG) -KTG = (GPT, BMD) -PJP = (XBR, TCM) -QPF = (KJF, NJX) -HKP = (PLS, PGK) -KBG = (HJF, TSS) -SQK = (LSD, KNM) -XKD = (MSB, FNP) -QQP = (LFB, LTK) -MDX = (KTJ, FXF) -JLK = (KJM, BSB) -FBR = (PMG, SNF) -GSJ = (TDH, TDH) -DQQ = (FKK, KRF) -CTV = (CQD, RQX) -MNT = (RLG, XXQ) -GFL = (FGJ, KMD) -BJK = (VQX, JCQ) -SPN = (NKS, CNQ) -LNL = (XLM, XLC) -HKF = (HKJ, NNC) -FTD = (CCX, MSS) -RPV = (MDQ, DGS) -DCX = (NLQ, PFV) -JGB = (DVT, DRH) -CGM = (CHN, MQM) -JNQ = (PPX, KTT) -BJM = (JBG, KPH) -NFP = (SPD, XCT) -TPL = (LSD, KNM) -XTV = (CTJ, HPX) -LKB = (PDF, SLK) -QVK = (KMQ, MGF) -QVP = (VCX, JNQ) -NSR = (TJB, NBB) -XLA = (DLB, SHQ) -QLP = (HBS, RHL) -BGH = (FMC, SQN) -BJX = (LRX, PNM) -MVC = (BPD, PHS) -DXQ = (TMN, JSX) -PBK = (QKV, CTH) -GBJ = (RNH, LDJ) -BMB = (HJS, TJT) -SHT = (MFQ, LCT) -HSK = (CGS, KGT) -DRH = (PKN, PBN) -PQF = (XKP, TNJ) -RPX = (HCT, HQT) -FPH = (VQL, NPJ) -GLC = (PMS, QVN) -VDP = (SXK, PVJ) -JFD = (QBD, DGT) -LQL = (NPT, GVS) -TPQ = (NHL, MTD) -KRF = (HVT, MPK) -JQG = (QDT, PCK) -PJQ = (KVH, LBV) -VBB = (XXQ, RLG) -PSH = (SQV, TLB) -VXH = (VCX, JNQ) -VQD = (NBB, TJB) -JVD = (GDJ, JGQ) -SDR = (FTF, NQL) -NQQ = (TFM, CMC) -FNL = (LTV, CSX) -FVS = (NSF, VDX) -VTJ = (VXH, QVP) -KQC = (LGG, LGG) -SCS = (MTV, DSX) -QPS = (HMV, QQP) -CQM = (JDD, JDD) -FJX = (VBB, MNT) -GBQ = (BXV, LFR) -HGH = (SQK, TPL) -SLT = (FXB, NGN) -PBD = (HDC, FCX) -CKL = (MQS, NND) -LSX = (MBF, SPN) -HNG = (JQG, GKD) -MFQ = (PSH, TGK) -SNX = (GCS, KSF) -FMQ = (DXT, DFS) -TXC = (SLK, PDF) -VST = (SSN, LSR) -BFB = (VSV, SVC) -VNX = (TMF, QFS) -VPK = (VBB, MNT) -NVR = (XPG, RLB) -FLS = (FSL, CKH) -FKP = (FTD, CNK) -MGF = (XXH, VBH) -LNM = (NFD, DKK) -FNP = (VTT, MVG) -HDC = (PXP, GVH) -KVL = (LCT, MFQ) -XGP = (RHG, RTK) -JCT = (NJB, JLK) -XSL = (SVC, VSV) -SRS = (HPD, XBL) -FSL = (JMG, TFD) -CXB = (KQV, QGK) -QRP = (CGF, CQF) -PRG = (MDX, KPL) -VLL = (MRB, MHN) -VNQ = (KRF, FKK) -NPJ = (VPK, FJX) -MHN = (SRG, TTL) -KFN = (DFN, BHK) -FVQ = (LJM, TJV) -GKD = (QDT, PCK) -GVS = (FCK, NGC) -MBF = (CNQ, NKS) -SMQ = (KSV, KMF) -CRJ = (GSJ, TDG) -LHT = (BTL, KMB) -KJM = (KJC, BGC) -TTC = (GTX, XKD) -QFT = (PRM, KXS) -SDS = (JMP, TSR) -BLX = (PQF, DCB) -PXX = (LJT, QFK) -SQV = (FCB, HXF) -RQX = (DBJ, VTV) -THV = (GJL, MND) -SLK = (XBP, CXB) -LVS = (CTJ, HPX) -TSS = (CGL, JST) -MTG = (RKT, GTJ) -FFF = (GBQ, VTM) -XMV = (KVL, SHT) -FDJ = (MLG, MLG) -HPD = (MQK, FLS) -TLB = (HXF, FCB) -BGC = (SCR, KCS) -FBM = (PBD, MFK) -TJP = (JSS, GHV) -TXL = (NQC, RXH) -TKM = (GLQ, TKP) -RNS = (BJK, PHJ) -RRT = (LJT, QFK) -DHC = (XVF, STR) -RXM = (KVL, SHT) -JBX = (GBJ, DHD) -TBR = (HJV, JFD) -MFK = (HDC, FCX) -TFD = (QXN, QSK) -HMV = (LFB, LTK) -RMD = (MBK, DGL) -RJP = (CTX, TPQ) -CBF = (FMQ, RTM) -XXG = (JDH, TJP) -PDX = (XGQ, BSP) -XBL = (MQK, FLS) -GMT = (PCB, GTK) -DGT = (GNH, KVQ) -CHN = (TTC, SBH) -NKS = (HQV, PJQ) -HJC = (DXQ, BHJ) -CSR = (TSX, HSM) -XTK = (BJM, CDR) -DRT = (MPB, PSV) -HQT = (CRM, XTZ) -HNM = (SXJ, GMF) -NLQ = (CLM, CTN) -LTK = (PGS, SCS) -DNR = (DRT, QLK) -QVR = (DLN, TSM) -VLD = (GSP, CKT) -LFT = (PJD, CXK) -KVG = (SNX, MPQ) -FBS = (JSN, KFT) -GTK = (XHH, LCL) -KJZ = (MDB, GRB) -QGK = (PKK, VFK) -VDS = (KQC, MSV) -KHS = (TRF, JVD) -BHH = (MLG, RPX) -JVL = (CQF, CGF) -RGQ = (CQJ, KTG) -VTM = (LFR, BXV) -GML = (VFF, VLD) -CTJ = (FKC, PDT) -BJV = (KSV, KSV) -SPX = (BPD, PHS) -CTX = (NHL, MTD) -LRB = (HHP, CDS) -XHH = (MKX, KQH) -FDL = (QFT, MNG) -CCX = (HKF, VPS) -GPT = (VHX, QPF) -VFK = (VJX, QPS) -QFH = (LHP, CKD) -KMD = (QFR, XVX) -MSB = (VTT, MVG) -TRF = (JGQ, GDJ) -PHJ = (VQX, JCQ) -DBN = (NRQ, GBN) -JPM = (PMG, SNF) -TND = (HQB, XXT) -FJK = (XHV, FBS) -PNM = (DCX, MGH) -QFK = (RKR, QVK) -VNV = (NRC, XXN) -QXN = (PSG, CFJ) -NND = (HJC, MPN) -DQM = (TJP, JDH) -PGK = (XQK, PRG) -HMK = (BJK, PHJ) -DLB = (RGJ, NKR) -PXP = (XTK, NKD) -LGG = (CNP, CNP) -HKJ = (VQD, NSR) -TMN = (SNN, DPF) -FRX = (FBR, JPM) -PTA = (JTJ, XKM) -NRH = (VST, QHJ) -BQD = (KTP, GFF) -VTT = (KFN, LTH) -GMV = (VCJ, JGC) -XLG = (FXB, NGN) -JDH = (GHV, JSS) -TJT = (JCT, JMJ) -HCT = (CRM, CRM) -BGR = (JMP, TSR) -CKH = (JMG, TFD) -DHX = (QGP, CLJ) -BQN = (TBN, BTQ) -RSH = (CSX, LTV) -SXJ = (DRV, JBX) -MRB = (SRG, TTL) -GTG = (SPV, DDQ) -VQL = (VPK, FJX) -RXC = (GXT, CGM) -MSV = (LGG, HLF) -PSV = (GBL, RRB) -LRV = (XTV, LVS) -MVR = (NQL, FTF) -JDD = (GRB, MDB) -TKG = (LHT, VLM) -NHL = (MMV, LNM) -XBR = (DHX, QHM) -DNK = (TXQ, DSP) -GBX = (SDS, BGR) -PDT = (CBF, RKM) -PGH = (FGJ, KMD) -GTR = (RPT, CXM) -GBP = (LNB, DNR) -DKC = (MQS, NND) -HSM = (SHK, HQP) -VVV = (GLQ, TKP) -TTJ = (DNK, BQC) -CJD = (CGS, KGT) -VSG = (RMJ, BQN) -XGQ = (TXC, LKB) -CNP = (PCH, PCH) -JPT = (NDS, CTV) -MVT = (GBP, RLR) -HJF = (CGL, JST) -KGB = (GML, NLB) -MPN = (DXQ, BHJ) -KFT = (DTS, DJP) -QCK = (RLF, QVR) -MJR = (MJD, RPS) -LBV = (FPH, RFH) -JMG = (QSK, QXN) -LDJ = (DBN, TTK) -XBP = (KQV, QGK) -RTM = (DFS, DXT) -VBH = (BMB, JGJ) -LHP = (MMH, BPV) -PMR = (MDQ, DGS) -NNR = (JDF, NVP) -GJL = (JDT, QLP) -JST = (SBL, LNL) -KML = (TXL, CRB) -FBA = (KQG, JSC) -KSF = (TLH, JBK) -VFF = (CKT, GSP) -PSG = (PQP, CBJ) -LDZ = (JSC, KQG) -DKN = (MVC, SPX) -DRV = (DHD, GBJ) -MJB = (HNM, LKH) -MNG = (KXS, PRM) -SNN = (VNQ, DQQ) -GNH = (KHS, SLV) -BJF = (HPD, XBL) -LGP = (LHP, CKD) -XVZ = (CVH, MRJ) -GRP = (NHV, GBX) -NGC = (FRJ, KVG) -BJD = (QVR, RLF) -FKL = (LRV, DSH) -KSV = (VHK, VHK) -XQK = (KPL, MDX) -NRC = (DMT, GLC) -VNH = (LQT, VVQ) -CGL = (SBL, SBL) -GVH = (NKD, XTK) -DBJ = (LXQ, HKP) -KVC = (PMX, XPR) -NJP = (VXG, TTJ) -VXG = (BQC, DNK) -CLJ = (JVL, QRP) -RFH = (VQL, NPJ) -GFR = (KGB, GNM) -KQV = (VFK, PKK) -SQM = (GTJ, RKT) -MQS = (MPN, HJC) -BXV = (RJP, CLN) -VSJ = (DKN, XDK) -SHK = (XMV, RXM) -GSP = (LDC, VPF) -MSS = (VPS, HKF) -SFM = (NVR, CQX) -FMC = (BJF, SRS) -DXS = (RMD, TLT) -QHS = (CGM, GXT) -DJP = (FDL, JHP) -MPT = (PQF, DCB) -LXQ = (PLS, PGK) -RFD = (TTJ, VXG) -JGJ = (HJS, TJT) -XGN = (KVT, LQL) -NBB = (LSX, XNR) -CKD = (MMH, BPV) -CTT = (CQX, NVR) -CBJ = (RRG, KBD) -CNG = (THV, QBK) -BMD = (QPF, VHX) -XLC = (BKL, SCZ) -KQG = (CPT, VLL) -KTJ = (KVC, VBM) -JBG = (NJP, RFD) -KVT = (NPT, GVS) -QGP = (JVL, QRP) -HFC = (THV, QBK) -JDT = (HBS, RHL) -MNF = (NRS, XVZ) -GKR = (GTK, PCB) -NVP = (NQQ, RRQ) -MPQ = (GCS, KSF) -PLS = (PRG, XQK) -JDF = (NQQ, RRQ) -CQD = (DBJ, VTV) -LNP = (TPK, SCP) -HQP = (XMV, RXM) -RJM = (MJD, RPS) -MQK = (FSL, CKH) -KXS = (HBJ, HMP) -CSX = (QCS, RKV) -VCG = (LQL, KVT) -NVJ = (JQG, GKD) -NLB = (VLD, VFF) -CQN = (NVP, JDF) -PDL = (VTM, GBQ) -SJM = (JNR, BGH) -VTR = (HMK, RNS) -QGS = (SQK, TPL) -NFH = (XRH, DKD) -TXQ = (GFL, PGH) -GCJ = (XSL, BFB) -RKT = (CQN, NNR) -BFQ = (LBS, JLX) -PKN = (FGD, TKG) -XKP = (FDJ, BHH) -QHX = (SPD, XCT) -NKR = (GFR, KTV) -GLQ = (FBM, KLD) -PRR = (XSL, BFB) -XLT = (HPB, MJJ) -HRD = (QVP, VXH) -SNL = (VSF, GTG) -TBN = (XCS, LJX) -RPS = (NFM, VNX) -MKX = (XLG, SLT) -NQC = (MPT, BLX) -DKK = (FVQ, PFR) -LCT = (TGK, PSH) -XHV = (JSN, KFT) -PRM = (HMP, HBJ) -NQL = (BQD, TTN) -HQV = (KVH, LBV) -RKG = (HMK, RNS) -LCL = (KQH, MKX) -LMM = (PVJ, SXK) -NCF = (XHV, FBS) -NRS = (MRJ, CVH) -RTK = (RJM, MJR) -RFC = (NVJ, HNG) -XXQ = (SXP, BJH) -RPT = (NMV, VNV) -QBR = (CTH, QKV) -FXF = (VBM, KVC) -CRB = (NQC, RXH) -NQD = (BQN, RMJ) -RKR = (KMQ, MGF) -DSP = (GFL, PGH) -DSH = (XTV, LVS) -DMT = (QVN, PMS) -VPS = (NNC, HKJ) -JSC = (CPT, VLL) -XKS = (DVT, DRH) -TTV = (LKH, HNM) -MJD = (VNX, NFM) -SCZ = (SHQ, DLB) -XVX = (CNG, HFC) -KTV = (KGB, GNM) -QHJ = (LSR, SSN) -CQJ = (GPT, BMD) -NMD = (TPK, SCP) -DVB = (GSJ, GSJ) -JMP = (MQP, RGQ) -BSB = (BGC, KJC) -CPT = (MRB, MHN) -PQP = (RRG, KBD) -RLG = (BJH, SXP) -VQX = (XVR, JCB) -XJN = (XRH, DKD) -JHP = (QFT, MNG) -KMB = (HRT, SJM) -QSK = (PSG, CFJ) -DKD = (VLF, JPT) -NHV = (BGR, SDS) -HXV = (XGQ, BSP) -XXN = (DMT, GLC) -VLM = (KMB, BTL) -RLR = (DNR, LNB) -PCH = (KQG, JSC) -XRH = (VLF, JPT) -SBL = (XLM, XLM) -CRM = (JTJ, XKM) -JSS = (BTS, LSV) -CXM = (NMV, VNV) -MLG = (HCT, HCT) -JXH = (MVR, SDR) -XBH = (XVF, STR) -DXT = (VBN, JVK) -JSN = (DTS, DJP) -KLD = (MFK, PBD) -KVH = (RFH, FPH) -NJX = (GMV, VPQ) -NRQ = (GKR, GMT) -HXF = (DXS, QXR) -DGS = (SNL, BVF) -LJT = (RKR, QVK) -JLX = (XGP, TKS) -FCX = (PXP, GVH) -VDX = (VBJ, TBR) -VSF = (SPV, DDQ) -VCX = (KTT, PPX) -MMH = (MDM, FVS) -MPB = (GBL, RRB) -RLF = (TSM, DLN) -RMJ = (BTQ, TBN) -VJX = (QQP, HMV) -XVF = (RFC, HXG) -CTN = (VVV, TKM) -QHD = (GBP, RLR) -JGC = (JXH, QCQ) -KPL = (FXF, KTJ) -NGN = (MDH, VSJ) -XPG = (MJB, TTV) -MQP = (KTG, CQJ) -JCB = (QHD, MVT) -MNM = (RPT, CXM) -RXH = (BLX, MPT) -HHP = (GCJ, PRR) -SLV = (JVD, TRF) -HVT = (BJX, FND) -MTD = (MMV, LNM) -TTL = (QFH, LGP) -LTV = (QCS, RKV) -VXV = (TSX, HSM) -TCM = (QHM, DHX) -NBF = (LQT, VVQ) -BTQ = (LJX, XCS) -TKP = (KLD, FBM) -LDC = (HSD, PJP) -VHK = (NRS, NRS) -NFM = (TMF, QFS) -GTJ = (NNR, CQN) -LSD = (QCK, BJD) -HJV = (QBD, DGT) -QBK = (MND, GJL) -XNR = (MBF, SPN) -HQB = (KXN, FJF) -TNJ = (FDJ, BHH) -TGK = (SQV, TLB) -KMF = (VHK, MNF) -JVK = (PDL, FFF) -NSF = (VBJ, TBR) -SCP = (QQR, PVV) -XXP = (HHP, CDS) -VHX = (NJX, KJF) -VCJ = (JXH, QCQ) -KJC = (KCS, SCR) -XXT = (FJF, KXN) -NNC = (VQD, NSR) -VBM = (XPR, PMX) -JTJ = (XDG, VHT) -CNK = (CCX, MSS) -FTF = (TTN, BQD) -LKH = (SXJ, GMF) -TLH = (CSR, VXV) -GFF = (KML, QRX) -LFR = (CLN, RJP) -DTS = (FDL, JHP) -TTN = (KTP, GFF) -BTL = (HRT, SJM) -HJS = (JCT, JMJ) -HBJ = (JVR, GSF) -SLF = (JDD, KJZ) -CVH = (CNC, XLT) -JGQ = (JGB, XKS) -FGJ = (QFR, XVX) -STQ = (XRQ, TCB) -GCS = (JBK, TLH) -FKK = (HVT, MPK) -LJM = (DQM, XXG) -BTS = (NMD, LNP) -SVC = (NFP, QHX) -VPF = (PJP, HSD) -NPT = (NGC, FCK) -TTK = (GBN, NRQ) -XCT = (FNL, RSH) -RRG = (TND, HCC) -HMP = (GSF, JVR) -TJV = (XXG, DQM) -CTH = (CTT, SFM) -TPK = (QQR, PVV) -LSR = (PQH, LFT) -XLM = (BKL, BKL) -FGD = (VLM, LHT) -GSF = (VTJ, HRD) -PBN = (FGD, TKG) -NMV = (NRC, XXN) -CLN = (TPQ, CTX) -TMF = (TSK, PTV) -HPX = (FKC, PDT) -GBN = (GMT, GKR) -PCK = (PDX, HXV) -TCB = (NCF, FJK) -LJX = (NRH, PTN) -QBD = (KVQ, GNH) -CMC = (QBR, PBK) -GBL = (HHR, GSC) -SQN = (BJF, SRS) -FCB = (QXR, DXS) -GDJ = (XKS, JGB) -PCB = (LCL, XHH) -BPV = (MDM, FVS) -PJD = (DVB, DVB) -RHG = (MJR, RJM) -DVT = (PKN, PBN) -TFM = (QBR, PBK) -HCC = (HQB, XXT) -PGS = (DSX, MTV) -TSR = (MQP, RGQ) -KJF = (GMV, VPQ) -GJS = (DKC, CKL) -LNB = (QLK, DRT) -PKK = (QPS, VJX) -TKS = (RHG, RTK) -QFS = (TSK, PTV) -DGL = (RCK, XVJ) -XPR = (MNM, GTR) -TDH = (FKL, CFC) -PDF = (XBP, CXB) -DFN = (RXF, GRP) -JVR = (HRD, VTJ) -LBS = (TKS, XGP) -QCQ = (MVR, SDR) -MND = (JDT, QLP) -PFR = (LJM, TJV) -QLK = (MPB, PSV) -CFC = (LRV, DSH) -PMX = (GTR, MNM) -CGF = (PMR, RPV) -MVG = (LTH, KFN) -NLK = (FBR, JPM) -LFB = (SCS, PGS) -BVF = (VSF, GTG) -MDQ = (BVF, SNL) -CQF = (PMR, RPV) -FND = (LRX, PNM) -MRJ = (CNC, XLT) -HSD = (XBR, TCM) -HLF = (CNP, GQH) -RRQ = (CMC, TFM) -CLM = (TKM, VVV) -RLB = (TTV, MJB) -NDS = (RQX, CQD) \ No newline at end of file diff --git a/aoc2023/src/day9/input.txt b/aoc2023/src/day9/input.txt deleted file mode 100644 index 6e0678f..0000000 --- a/aoc2023/src/day9/input.txt +++ /dev/null @@ -1,200 +0,0 @@ -16 22 27 23 4 -16 23 267 1025 2943 7407 17445 39670 88339 193607 417868 887273 1851158 3792224 7628687 15083115 -12 27 53 97 184 369 757 1550 3165 6502 13489 28103 58181 118520 236055 458342 867210 1600341 2884757 5087813 8793398 -3 9 23 45 75 113 159 213 275 345 423 509 603 705 815 933 1059 1193 1335 1485 1643 -14 21 42 87 173 334 631 1162 2072 3563 5904 9441 14607 21932 32053 45724 63826 87377 117542 155643 203169 -6 13 20 27 34 41 48 55 62 69 76 83 90 97 104 111 118 125 132 139 146 -18 28 38 48 58 68 78 88 98 108 118 128 138 148 158 168 178 188 198 208 218 -21 33 40 47 73 158 375 850 1793 3543 6630 11857 20405 33964 54893 86412 132829 199805 294660 426723 607729 -5 11 28 62 114 176 227 229 123 -175 -778 -1832 -3520 -6066 -9739 -14857 -21791 -30969 -42880 -58078 -77186 -24 40 75 158 329 650 1234 2297 4245 7835 14509 27104 51294 98315 189749 365429 696074 1303683 2396426 4333544 7754453 -18 23 29 46 96 212 448 922 1929 4181 9250 20305 43249 88396 172934 324721 588708 1038939 1802431 3107544 5380614 -23 48 93 172 303 512 850 1439 2577 4950 10022 20709 42513 85461 167621 322006 611043 1157808 2213227 4297234 8485467 --5 1 16 41 89 207 507 1216 2767 5970 12327 24602 47877 91653 174402 333999 651945 1308548 2704118 5713694 12198267 -6 29 72 158 337 698 1389 2653 4895 8818 15726 28221 51759 97922 190866 379323 758008 1504863 2945432 5665084 10707897 -9 12 14 16 18 23 61 248 912 2857 7918 20117 47998 109127 238298 501654 1019615 2002014 3798866 6969266 12368366 -17 22 22 7 -38 -133 -303 -578 -993 -1588 -2408 -3503 -4928 -6743 -9013 -11808 -15203 -19278 -24118 -29813 -36458 --2 4 18 55 139 307 619 1172 2109 3609 5862 9109 14010 22956 43541 96348 230584 553042 1278506 2813195 5887325 -8 15 28 69 174 408 898 1887 3825 7548 14661 28355 55092 107964 213209 422581 836414 1645965 3210142 6193077 11808762 -16 42 93 189 363 674 1225 2187 3843 6689 11662 20608 37156 68227 126480 234080 428266 769300 1351491 2318111 3881153 -22 28 29 28 44 131 412 1147 2869 6647 14589 30812 63325 127656 253684 498111 966448 1850438 3489669 6469940 11775962 -10 22 64 147 279 478 797 1361 2416 4390 7966 14167 24453 40830 65971 103349 157382 233590 338764 481147 670627 -26 44 80 147 257 416 626 905 1352 2314 4756 10993 26015 59722 130486 270571 534070 1008160 1828632 3200823 5427261 -10 13 25 59 130 257 465 787 1266 1957 2929 4267 6074 8473 11609 15651 20794 27261 35305 45211 57298 -22 34 53 80 110 130 129 142 361 1361 4516 12738 31795 72709 156208 321132 640567 1253344 2426426 4679304 9031095 --3 3 14 32 60 112 238 564 1347 3045 6402 12548 23114 40362 67330 107992 167433 252039 369702 530040 744632 -9 6 1 -6 -15 -26 -39 -54 -71 -90 -111 -134 -159 -186 -215 -246 -279 -314 -351 -390 -431 -8 19 30 41 52 63 74 85 96 107 118 129 140 151 162 173 184 195 206 217 228 -12 28 56 112 219 400 680 1122 1935 3705 7813 17117 36988 76803 152011 286901 518214 899754 1508166 2450062 3870689 -4 18 45 100 211 419 778 1355 2230 3496 5259 7638 10765 14785 19856 26149 33848 43150 54265 67416 82839 -14 27 62 122 200 276 326 367 589 1672 5468 16376 44007 108213 248366 540095 1124752 2259977 4404234 8354542 15465362 -10 22 40 63 103 210 507 1241 2865 6190 12701 25249 49587 97767 195548 398210 823495 1718635 3594121 7486884 15473014 -14 34 81 182 390 802 1584 3006 5499 9763 16982 29248 50393 87661 155200 281530 525422 1008672 1981041 3943806 7877282 -12 6 3 23 101 286 644 1284 2444 4698 9375 19317 40145 82250 163780 314954 584100 1045886 1812291 3046947 4983573 -13 21 32 52 86 138 211 307 427 571 738 926 1132 1352 1581 1813 2041 2257 2452 2616 2738 -17 35 58 79 89 86 96 217 705 2144 5802 14399 33741 76089 166928 358407 755996 1571412 3227213 6560698 13212768 -17 31 59 122 252 488 875 1475 2402 3896 6454 11039 19391 34467 61040 106490 181823 302957 492317 780784 1210046 -11 13 19 31 63 168 488 1351 3457 8223 18396 39097 79555 156016 296889 552619 1016132 1867206 3470206 6587672 12837496 -16 29 54 116 265 600 1300 2668 5219 9890 18523 34882 66641 129080 251748 490245 946750 1805263 3391104 6269484 11405501 -14 27 57 121 242 458 839 1513 2706 4807 8477 14831 25734 44266 75427 127171 211878 348395 564801 902077 1418890 -7 20 34 49 65 82 100 119 139 160 182 205 229 254 280 307 335 364 394 425 457 -1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 -11 27 54 101 191 376 755 1502 2915 5494 10051 17860 30889 52245 87140 144991 243747 418245 735396 1320359 2399651 -2 8 29 83 199 423 835 1581 2927 5359 9789 17981 33374 62532 117469 219074 401880 720802 1262037 2164843 3671777 -6 24 54 96 150 216 294 384 486 600 726 864 1014 1176 1350 1536 1734 1944 2166 2400 2646 -10 19 51 124 260 486 847 1434 2430 4183 7326 12972 22998 40360 69185 113940 176032 244249 271543 122978 -535002 --2 -4 -14 -20 14 157 520 1272 2677 5175 9538 17144 30453 53895 95688 171741 313968 587314 1122914 2179488 4251816 -10 2 -8 -10 16 111 367 983 2360 5278 11264 23369 47724 96431 192545 378084 726118 1357970 2466328 4344512 7421136 -9 22 62 142 278 503 886 1552 2699 4608 7642 12230 18832 27881 39698 54376 71629 90602 109638 125998 135530 --2 -1 13 46 97 157 212 250 272 307 431 790 1627 3313 6382 11570 19858 32519 51169 77822 114949 -18 43 87 167 324 645 1288 2508 4685 8358 14272 23448 37289 57738 87507 130399 191748 279005 402501 576421 820026 --8 -3 21 87 247 597 1292 2561 4722 8197 13527 21387 32601 48157 69222 97157 133532 180141 239017 312447 402987 -1 15 44 102 209 386 650 1009 1457 1969 2496 2960 3249 3212 2654 1331 -1055 -4861 -10508 -18486 -29359 -5 1 -2 6 59 235 682 1661 3639 7499 14980 29518 57729 111857 213604 399865 731009 1302477 2260610 3823774 6310015 -1 9 37 102 234 477 887 1529 2484 3904 6221 10771 21422 48445 117084 285457 680175 1564375 3463249 7388968 15233734 --3 -3 -1 11 59 207 588 1446 3189 6453 12177 21689 36803 59927 94182 143532 212925 308445 437475 608871 833147 -10 8 4 -1 1 26 99 259 588 1312 3062 7435 18059 42442 94973 201543 406366 781704 1441336 2558759 4391269 -10 15 18 27 59 146 351 801 1756 3756 7920 16506 33869 67961 132485 249722 453870 794437 1338782 2172261 3393567 -7 15 41 104 240 511 1006 1830 3083 4847 7237 10652 16512 29023 58918 130730 296023 656207 1400169 2864048 5623160 --8 -4 15 66 176 382 731 1280 2096 3256 4847 6966 9720 13226 17611 23012 29576 37460 46831 57866 70752 -11 15 15 11 3 -9 -25 -45 -69 -97 -129 -165 -205 -249 -297 -349 -405 -465 -529 -597 -669 --1 2 8 24 76 213 509 1071 2071 3838 7075 13309 25742 50751 100388 196360 376127 701946 1273914 2248326 3862968 -11 12 10 -4 -30 -41 52 467 1667 4541 10659 22594 44276 81300 141049 232411 364763 545762 777320 1048944 1327390 -9 11 12 20 63 215 648 1733 4223 9564 20404 41417 80649 151761 277849 498056 879093 1535245 2662704 4597458 7910851 -21 22 23 43 114 293 701 1602 3535 7522 15407 30447 58395 109537 202601 372448 685608 1272236 2392115 4569768 8866201 -17 27 37 47 57 67 77 87 97 107 117 127 137 147 157 167 177 187 197 207 217 -18 42 72 103 130 150 170 224 408 956 2402 5903 13836 30828 65432 132724 258166 483158 872788 1526383 2591566 -23 30 36 41 45 48 50 51 51 50 48 45 41 36 30 23 15 6 -4 -15 -27 -14 31 52 83 148 308 690 1526 3202 6317 11752 20749 35000 56746 88886 135096 199958 289099 409340 568855 777340 -4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 -14 26 44 76 143 283 574 1197 2563 5538 11840 24799 50942 103413 209274 424645 865170 1765883 3597017 7286172 14643193 -12 27 49 69 87 136 330 950 2594 6451 14824 32143 66919 135472 268945 526276 1017696 1946291 3679643 6870089 12651367 -11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 -10 35 74 146 282 527 958 1744 3300 6630 14020 30337 65320 137420 279964 550689 1046022 1921877 3423206 5925084 9988734 -20 29 40 59 108 247 607 1436 3177 6629 13289 26035 50387 96675 183550 343396 630338 1131693 1983878 3393971 5668318 -8 24 59 134 284 569 1103 2113 4045 7744 14750 27772 51427 93361 165904 288451 490806 817776 1335357 2138914 3363822 -11 25 55 105 179 281 415 585 795 1049 1351 1705 2115 2585 3119 3721 4395 5145 5975 6889 7891 -19 37 74 159 334 661 1245 2294 4257 8117 15987 32302 66195 136227 279739 571067 1156243 2317357 4588524 8958785 17217096 --2 9 41 103 219 443 870 1652 3057 5656 10790 21562 44740 94217 197246 406018 820326 1634301 3236137 6423499 12866391 -5 -1 -8 -9 10 70 199 432 811 1385 2210 3349 4872 6856 9385 12550 16449 21187 26876 33635 41590 -19 32 45 58 71 84 97 110 123 136 149 162 175 188 201 214 227 240 253 266 279 -22 37 55 71 94 167 396 1005 2447 5608 12151 25096 49895 96676 185249 356351 696284 1389007 2822275 5796409 11921644 -22 47 92 163 266 410 610 889 1282 1854 2764 4460 8230 17669 42342 106334 266942 653145 1540604 3491025 7600370 -23 38 73 146 277 488 805 1274 2012 3332 6035 12106 26379 60395 140880 327309 746281 1655398 3556625 7389446 14848405 -10 34 81 160 274 417 573 715 811 876 1179 2852 9421 30324 88549 236536 588096 1380274 3089189 6639788 13773628 -17 32 52 70 76 73 108 318 991 2642 6104 12634 24034 42787 72208 116610 181485 273700 401708 575774 808216 --4 7 32 78 155 279 498 962 2061 4658 10451 22528 46285 91178 174513 330071 627521 1214340 2401733 4831449 9782898 --1 1 -1 -2 13 71 214 503 1023 1889 3253 5312 8317 12583 18500 26545 37295 51441 69803 93346 123197 -14 25 55 119 234 420 706 1143 1844 3111 5790 12143 27772 65506 152698 344108 743534 1538777 3056905 5851463 10843458 --7 -7 2 25 72 160 317 595 1112 2172 4561 10190 23357 53033 116746 246846 500187 972563 1819588 3286119 5746790 -24 51 91 144 210 289 381 486 604 735 879 1036 1206 1389 1585 1794 2016 2251 2499 2760 3034 --6 -8 -7 -4 9 70 282 871 2293 5443 12063 25532 52395 105321 208785 409850 798384 1544682 2969297 5672672 10775633 -18 38 74 128 197 273 343 389 388 312 128 -202 -721 -1477 -2523 -3917 -5722 -8006 -10842 -14308 -18487 -14 14 6 -15 -54 -116 -206 -329 -490 -694 -946 -1251 -1614 -2040 -2534 -3101 -3746 -4474 -5290 -6199 -7206 -0 4 22 78 215 499 1023 1911 3322 5454 8548 12892 18825 26741 37093 50397 67236 88264 114210 145882 184171 -15 19 27 58 141 316 650 1285 2551 5196 10802 22466 45823 90469 171801 313223 548567 924441 1502037 2357706 3581329 -28 49 76 114 185 353 769 1757 3977 8715 18361 37142 72176 134903 242928 422277 710018 1157133 1831442 2820274 4232451 -2 -5 0 35 133 356 819 1728 3430 6476 11736 20729 36639 67155 131593 277209 613962 1384465 3098432 6781691 14423617 --2 7 41 121 269 517 931 1662 3062 5945 12131 25493 53858 112344 229132 455405 882418 1670639 3098937 5646285 10124879 -15 19 18 9 -6 -15 9 113 369 879 1780 3249 5508 8829 13539 20025 28739 40203 55014 73849 97470 -9 14 33 89 229 533 1128 2215 4117 7356 12767 21657 36017 58795 94238 148311 229201 347914 518973 761225 1098765 -8 23 51 104 202 386 739 1423 2763 5438 10883 22095 45241 92932 191019 392729 807586 1658885 3393971 6888230 13809204 -6 3 10 41 110 231 418 685 1046 1515 2106 2833 3710 4751 5970 7381 8998 10835 12906 15225 17806 -12 12 16 37 101 264 650 1525 3438 7497 15913 33051 67399 135147 266525 516779 984800 1844138 3393654 6138665 10918457 -9 30 68 138 276 551 1072 2001 3595 6307 10985 19236 34096 61304 111765 206261 384197 719228 1346090 2504950 4612204 -23 38 66 121 224 409 731 1285 2251 3984 7170 13069 23864 43131 76439 132081 221927 362378 575386 889489 1340792 -16 28 40 52 64 76 88 100 112 124 136 148 160 172 184 196 208 220 232 244 256 -17 30 61 119 219 397 747 1501 3179 6842 14487 29629 58121 109269 197305 343287 577501 942446 1496489 2318283 3512047 --1 5 14 37 100 253 588 1271 2598 5105 9816 18826 36619 72851 147828 302628 616809 1237973 2429186 4642459 8629254 -16 36 76 164 342 666 1206 2046 3284 5032 7416 10576 14666 19854 26322 34266 43896 55436 69124 85212 103966 --5 -3 12 63 182 411 809 1475 2612 4686 8786 17372 35707 74388 153464 308525 598601 1114243 1980956 3346921 5332708 -14 26 38 50 62 74 86 98 110 122 134 146 158 170 182 194 206 218 230 242 254 -2 -4 -19 -52 -115 -221 -369 -502 -417 401 3053 9640 23844 51688 102447 189584 331368 550394 870413 1307468 1850007 -21 43 82 139 220 346 563 952 1639 2805 4696 7633 12022 18364 27265 39446 55753 77167 104814 139975 184096 --8 -16 -17 2 54 155 326 590 966 1484 2301 4109 9224 24092 64560 166325 404748 930980 2035275 4253332 8536722 --2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 -12 33 69 137 269 529 1047 2087 4183 8402 16827 33411 65487 126554 241758 459276 874624 1682767 3288727 6538653 13194051 -5 11 36 85 167 311 593 1176 2363 4661 8852 16065 27841 46181 73565 112928 167577 241031 336764 457829 606339 -5 0 6 43 134 309 628 1231 2423 4814 9565 18848 36718 70725 134771 253948 472385 865492 1558424 2753105 4766758 -20 31 42 53 64 75 86 97 108 119 130 141 152 163 174 185 196 207 218 229 240 -17 34 57 94 167 331 710 1554 3321 6788 13195 24426 43231 73493 120544 191534 295857 445638 656285 947110 1342023 -19 22 16 1 -16 -13 61 313 960 2430 5532 11711 23385 44323 79959 137439 225057 350542 517400 718181 923118 -12 20 36 60 92 132 180 236 300 372 452 540 636 740 852 972 1100 1236 1380 1532 1692 -15 28 66 154 345 743 1533 3025 5728 10495 18847 33738 61349 115157 224805 454707 941713 1968938 4106276 8470690 17196453 -26 54 104 181 285 412 556 719 953 1484 3011 7356 18816 46948 112339 258637 577588 1260474 2701490 5699779 11842279 --5 0 13 48 130 307 671 1382 2697 5034 9163 16738 31609 62754 130392 278202 597329 1273687 2682530 5580428 11497888 -8 23 49 86 133 194 288 465 841 1695 3749 8922 22170 55570 136666 324373 737550 1603839 3339673 6676646 12854891 -7 18 29 40 51 62 73 84 95 106 117 128 139 150 161 172 183 194 205 216 227 -10 24 44 69 95 111 110 139 432 1714 5858 17254 45544 110822 253017 547981 1133786 2251864 4308844 7966159 14265585 --5 -2 6 18 42 106 277 693 1613 3490 7072 13536 24660 43038 72343 117643 185775 285782 429418 631726 911694 -25 49 82 120 164 225 336 574 1090 2143 4134 7640 13481 22991 39079 69707 137760 306259 738049 1829516 4498299 -28 39 59 115 256 569 1203 2401 4540 8179 14115 23447 37648 58645 88907 131541 190396 270175 376555 516315 697472 -11 22 42 82 162 312 578 1053 1983 4058 9103 21549 51304 118974 264819 563384 1146435 2237670 4203680 7626820 13407030 -13 32 67 140 285 548 987 1672 2685 4120 6083 8692 12077 16380 21755 28368 36397 46032 57475 70940 86653 -16 33 54 83 134 242 480 986 2021 4120 8486 17955 39204 87515 196569 437797 957362 2044827 4257394 8639335 17100774 -9 16 28 45 77 154 347 816 1911 4366 9654 20646 42906 87373 176023 353702 712286 1438821 2909549 5870876 11783816 -8 6 12 48 156 403 877 1669 2836 4346 6024 7554 8652 9615 12577 23971 58912 148486 351260 770724 1580844 -10 34 83 183 372 704 1257 2145 3534 5662 8863 13595 20472 30300 44117 63237 89298 124314 170731 231487 310076 -8 20 36 53 68 78 80 71 48 8 -52 -135 -244 -382 -552 -757 -1000 -1284 -1612 -1987 -2412 -8 24 64 148 311 624 1225 2369 4520 8531 15994 29900 55846 104185 193758 358183 656084 1187050 2115368 3703412 6355581 -5 15 30 49 71 95 120 145 169 191 210 225 235 239 236 225 205 175 134 81 15 -20 50 100 187 348 653 1224 2260 4071 7142 12288 21029 36419 64717 118496 222024 419946 790371 1463632 2649684 4685450 -19 31 52 89 164 327 670 1344 2599 4900 9234 17847 35889 74868 159497 340530 717567 1477557 2956756 5736005 10781030 -18 39 72 138 278 564 1112 2106 3859 6958 12565 22975 42565 79305 147043 268821 481528 842249 1436726 2390408 3882632 -4 10 15 19 22 24 25 25 24 22 19 15 10 4 -3 -11 -20 -30 -41 -53 -66 -17 26 56 136 308 628 1180 2113 3711 6506 11444 20114 35050 60116 100984 165715 265453 415242 634976 950492 1394816 -25 37 60 118 244 489 953 1860 3725 7710 16362 35110 75232 159574 333227 682794 1369993 2688371 5156120 9663710 17702660 -4 8 33 90 191 348 577 927 1566 2968 6257 13776 29961 62612 124665 236581 429480 749160 1261153 2056982 3261795 -13 25 58 131 276 546 1035 1922 3551 6559 12064 21925 39086 68016 115257 190092 305345 478325 731926 1095895 1608280 -8 7 17 55 139 281 476 687 826 731 139 -1345 -4283 -9443 -17842 -30793 -49956 -77393 -115627 -167705 -237265 -5 22 61 137 265 460 737 1111 1597 2210 2965 3877 4961 6232 7705 9395 11317 13486 15917 18625 21625 -15 14 17 28 53 111 267 709 1908 4922 11933 27153 58340 119414 235217 450591 848077 1582290 2945281 5487158 10231495 -2 9 28 68 137 258 498 1015 2135 4478 9159 18097 34472 63377 112719 194430 326056 532799 850094 1326810 2029171 -22 34 46 53 55 67 142 416 1181 3001 6930 15013 31533 66065 140600 305315 671836 1480416 3230374 6924401 14511151 -18 34 63 125 258 526 1027 1901 3338 5586 8959 13845 20714 30126 42739 59317 80738 108002 142239 184717 236850 -27 52 102 187 321 526 843 1369 2346 4335 8515 17154 34306 66795 125554 227394 397285 671238 1099884 1752853 2724063 -23 38 55 78 115 182 314 595 1239 2789 6549 15431 35510 78803 168285 347274 697739 1377040 2692175 5248108 10237257 -25 38 63 120 243 496 1004 2001 3903 7429 13817 25215 45369 80781 142570 249338 431421 736992 1240579 2054666 3345159 -28 41 54 67 80 93 106 119 132 145 158 171 184 197 210 223 236 249 262 275 288 --6 0 15 44 101 212 418 778 1372 2304 3705 5736 8591 12500 17732 24598 33454 44704 58803 76260 97641 -4 28 65 121 220 415 796 1496 2709 4761 8325 14968 28410 57238 120465 258450 553719 1170131 2426846 4940384 9902961 -6 7 15 36 76 141 237 370 546 771 1051 1392 1800 2281 2841 3486 4222 5055 5991 7036 8196 -24 33 45 62 77 83 95 191 590 1804 4931 12217 28162 61797 131542 275661 574402 1195504 2484736 5141196 10551151 -23 41 68 104 149 203 266 338 419 509 608 716 833 959 1094 1238 1391 1553 1724 1904 2093 -22 42 68 105 161 238 323 380 347 146 -277 -830 -906 1697 13721 53857 170028 477110 1234650 2999191 6910095 --9 -1 22 61 119 200 304 418 503 477 194 -581 -2201 -5170 -10180 -18152 -30281 -48085 -73458 -108727 -156713 -11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 -7 13 33 88 211 463 966 1970 3984 8020 16029 31654 61492 117150 218504 398730 711877 1243999 2129161 3571988 5878841 -26 54 107 191 316 512 855 1506 2775 5254 10135 19972 40418 83980 177798 379260 806629 1698071 3523848 7197074 14465457 -7 6 4 13 65 221 583 1306 2603 4745 8094 13284 21806 37503 69932 141398 301131 653436 1413420 3017283 6339755 -8 13 26 47 76 113 158 211 272 341 418 503 596 697 806 923 1048 1181 1322 1471 1628 -14 19 31 61 140 340 804 1785 3694 7157 13081 22729 37804 60542 93814 141237 207294 297463 418355 577861 785308 -18 25 41 74 132 223 355 536 774 1077 1453 1910 2456 3099 3847 4708 5690 6801 8049 9442 10988 -13 39 87 171 318 573 1009 1765 3152 5886 11539 23368 47825 97318 195247 385056 746111 1420737 2658839 4889321 8831144 -10 8 14 34 74 141 255 482 1006 2285 5397 12804 30003 69026 155797 345601 755687 1633870 3501675 7448656 15726061 -6 11 25 69 172 364 663 1064 1547 2130 3002 4780 8943 18505 38998 79845 156212 291437 520143 892151 1477318 -27 50 84 135 218 372 697 1431 3090 6700 14160 28802 56287 106157 194788 351446 631221 1142968 2109356 3994435 7771240 -9 31 66 114 175 249 336 436 549 675 814 966 1131 1309 1500 1704 1921 2151 2394 2650 2919 -8 7 7 8 10 22 98 426 1513 4538 11998 28875 64756 137733 281650 559617 1089152 2088679 3962843 7457584 13938920 --5 -7 -9 -11 -2 54 247 779 2078 5020 11348 24426 50527 100927 195162 365902 666005 1178435 2029861 3408899 5590116 -10 16 34 74 147 274 521 1081 2432 5608 12628 27136 55313 107130 198019 351047 599686 991280 1591318 2488630 3801631 -9 8 21 66 172 391 830 1721 3552 7290 14748 29193 56376 106318 196477 357514 644161 1156577 2084086 3797672 7049008 -14 40 88 183 380 785 1580 3064 5738 10495 19048 34867 65134 124613 242953 477946 938949 1827706 3509661 6640837 12400447 -15 25 39 64 129 294 653 1337 2538 4600 8260 15178 28989 57277 115164 231711 461221 903259 1738853 3298396 6194405 -9 6 6 11 31 107 353 1029 2669 6320 14014 29709 61115 123102 243845 475664 914050 1731530 3239870 6009120 11104366 -26 37 48 75 147 313 670 1432 3073 6602 14068 29452 60189 119691 231437 435496 798808 1431239 2510444 4320037 7307627 -3 -1 -10 -24 -43 -67 -96 -130 -169 -213 -262 -316 -375 -439 -508 -582 -661 -745 -834 -928 -1027 -18 43 89 169 300 508 853 1501 2897 6147 13824 31625 71718 159389 345977 733436 1519704 3080095 6109095 11860445 22542764 -17 38 63 88 109 122 123 108 73 14 -73 -192 -347 -542 -781 -1068 -1407 -1802 -2257 -2776 -3363 -3 2 10 40 110 248 497 920 1605 2670 4268 6592 9880 14420 20555 28688 39287 52890 70110 91640 118258 -21 37 57 85 131 212 354 601 1040 1854 3418 6456 12280 23135 42677 76614 133543 226019 371895 595975 932025 -14 28 56 121 265 567 1177 2386 4774 9508 18898 37365 73056 140538 265518 493797 909482 1673256 3102528 5835085 11151679 -13 31 73 156 302 533 869 1334 1975 2899 4333 6712 10800 17849 29801 49538 81185 130471 205153 315508 474898 --1 -10 -9 16 78 189 360 601 921 1328 1829 2430 3136 3951 4878 5919 7075 8346 9731 11228 12834 -1 10 33 77 148 252 400 620 988 1712 3344 7262 16674 38591 87590 192932 412066 856321 1739510 3468242 6804651 -2 19 60 137 265 461 749 1184 1908 3251 5909 11312 22519 46478 99470 219319 490975 1097216 2415107 5194716 10885594 -7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -13 24 44 89 197 451 1016 2204 4587 9194 17866 33915 63351 117117 215018 392358 710721 1274860 2258304 3941069 6763777 -1 -4 1 26 80 183 394 857 1858 3876 7615 14048 24625 42043 72406 130287 249223 501620 1034021 2126310 4286814 -7 20 36 46 41 20 1 35 223 736 1838 3912 7489 13280 22211 35461 54503 81148 117592 166466 230889 -16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 --1 3 12 46 137 336 738 1542 3172 6494 13173 26223 50812 95393 173241 304485 518733 858397 1382834 2173428 3339747 \ No newline at end of file -- cgit v1.2.3