From caba809dc9770a21f3b584ce9f3c8433a5768e83 Mon Sep 17 00:00:00 2001 From: commdata2338 <199849969+commdata2338@users.noreply.github.com> Date: Thu, 15 Oct 2026 11:45:35 -0500 Subject: [PATCH] Research: pool PR #2269's 76 private T74 cleanup buffers into a 48-field bank Gives an exact zero-to-zero storage allocation for the 76 private cleanup buffers of PR #2269's two frozen T74 borrow words, which share one 4,500-event cleanup list. Static interval plans use 44 fields forward and 48 in the inverse-transpose orientation, so one common 48-field bank saves 28. Only proved zero operations are omitted (151 forward, 409 inverse-transpose); the rest keep their order and no arithmetic is added. Exact replay over the free group algebra on the 43 warp symbols checks all 661 ordinary entry arrays and returns every pool field to zero. Simultaneous-live counts make 44/48 optimal for distinct-storage interval reuse, and a dual witness with 48 distinct nonzero values makes 48 sharp for direct literal storage. A finite allocation certificate only: native emission, routing, CLEAR accounting and later 78-buffer words are unchecked; no kappa change. Adds research/t74-cleanup-buffer-pooling/ only. Submitted by @commdata2338 with substantial AI assistance (OpenAI Codex research and implementation; packaged with Claude Code). Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01X86sCSXdoDd61SDFfC1PKG --- .../t74-cleanup-buffer-pooling/EXPECTED.json | 14596 ++++++++++++++++ .../t74-cleanup-buffer-pooling/INPUTS.json | 40 + research/t74-cleanup-buffer-pooling/README.md | 183 + .../t74-cleanup-buffer-pooling/SOURCES.json | 18 + research/t74-cleanup-buffer-pooling/TASK.json | 95 + .../t74-cleanup-buffer-pooling/VERIFY.json | 30 + .../t74-cleanup-buffer-pooling/check_dense.py | 153 + .../source/BORROW-WORD-43base.json.gz | Bin 0 -> 69989 bytes .../source/BORROW-WORD-43extra.json.gz | Bin 0 -> 69991 bytes .../t74-cleanup-buffer-pooling/source/NOTICE | 10 + .../source/NOTICE-PR2226.md | 21 + .../source/PR2226-NOTICE.md | 22 + research/t74-cleanup-buffer-pooling/verify.py | 351 + 13 files changed, 15519 insertions(+) create mode 100644 research/t74-cleanup-buffer-pooling/EXPECTED.json create mode 100644 research/t74-cleanup-buffer-pooling/INPUTS.json create mode 100644 research/t74-cleanup-buffer-pooling/README.md create mode 100644 research/t74-cleanup-buffer-pooling/SOURCES.json create mode 100644 research/t74-cleanup-buffer-pooling/TASK.json create mode 100644 research/t74-cleanup-buffer-pooling/VERIFY.json create mode 100644 research/t74-cleanup-buffer-pooling/check_dense.py create mode 100644 research/t74-cleanup-buffer-pooling/source/BORROW-WORD-43base.json.gz create mode 100644 research/t74-cleanup-buffer-pooling/source/BORROW-WORD-43extra.json.gz create mode 100644 research/t74-cleanup-buffer-pooling/source/NOTICE create mode 100644 research/t74-cleanup-buffer-pooling/source/NOTICE-PR2226.md create mode 100644 research/t74-cleanup-buffer-pooling/source/PR2226-NOTICE.md create mode 100644 research/t74-cleanup-buffer-pooling/verify.py diff --git a/research/t74-cleanup-buffer-pooling/EXPECTED.json b/research/t74-cleanup-buffer-pooling/EXPECTED.json new file mode 100644 index 0000000000..4365e8d959 --- /dev/null +++ b/research/t74-cleanup-buffer-pooling/EXPECTED.json @@ -0,0 +1,14596 @@ +{ + "schema_version": 1, + "result": "EXACT_LITERAL_INTERVAL_POOL", + "words": { + "base": [ + { + "orientation": "forward", + "events": 4500, + "entry_columns": 661, + "private_buffers": 76, + "pool_slots": 44, + "interval_count": 81, + "intervals": [ + { + "buffer": 1295, + "start": 2, + "end": 722 + }, + { + "buffer": 1294, + "start": 3, + "end": 723 + }, + { + "buffer": 1293, + "start": 5, + "end": 726 + }, + { + "buffer": 1292, + "start": 6, + "end": 727 + }, + { + "buffer": 1291, + "start": 8, + "end": 730 + }, + { + "buffer": 1290, + "start": 9, + "end": 731 + }, + { + "buffer": 1289, + "start": 11, + "end": 734 + }, + { + "buffer": 1288, + "start": 12, + "end": 735 + }, + { + "buffer": 1271, + "start": 14, + "end": 752 + }, + { + "buffer": 1270, + "start": 17, + "end": 753 + }, + { + "buffer": 1261, + "start": 18, + "end": 763 + }, + { + "buffer": 1260, + "start": 20, + "end": 765 + }, + { + "buffer": 1259, + "start": 23, + "end": 776 + }, + { + "buffer": 1247, + "start": 26, + "end": 800 + }, + { + "buffer": 1236, + "start": 28, + "end": 813 + }, + { + "buffer": 1235, + "start": 31, + "end": 824 + }, + { + "buffer": 1217, + "start": 33, + "end": 855 + }, + { + "buffer": 1216, + "start": 34, + "end": 856 + }, + { + "buffer": 1214, + "start": 35, + "end": 858 + }, + { + "buffer": 1213, + "start": 36, + "end": 860 + }, + { + "buffer": 1212, + "start": 38, + "end": 862 + }, + { + "buffer": 1205, + "start": 40, + "end": 880 + }, + { + "buffer": 1204, + "start": 41, + "end": 881 + }, + { + "buffer": 1202, + "start": 43, + "end": 883 + }, + { + "buffer": 1189, + "start": 47, + "end": 909 + }, + { + "buffer": 1188, + "start": 49, + "end": 911 + }, + { + "buffer": 1159, + "start": 52, + "end": 962 + }, + { + "buffer": 1158, + "start": 54, + "end": 963 + }, + { + "buffer": 1157, + "start": 56, + "end": 964 + }, + { + "buffer": 1156, + "start": 58, + "end": 965 + }, + { + "buffer": 1155, + "start": 60, + "end": 966 + }, + { + "buffer": 1154, + "start": 62, + "end": 967 + }, + { + "buffer": 1153, + "start": 64, + "end": 968 + }, + { + "buffer": 1152, + "start": 66, + "end": 969 + }, + { + "buffer": 1031, + "start": 68, + "end": 4472 + }, + { + "buffer": 1015, + "start": 73, + "end": 4470 + }, + { + "buffer": 1287, + "start": 75, + "end": 736 + }, + { + "buffer": 1286, + "start": 76, + "end": 737 + }, + { + "buffer": 1285, + "start": 77, + "end": 738 + }, + { + "buffer": 1284, + "start": 78, + "end": 739 + }, + { + "buffer": 1279, + "start": 79, + "end": 744 + }, + { + "buffer": 1278, + "start": 80, + "end": 745 + }, + { + "buffer": 1277, + "start": 81, + "end": 746 + }, + { + "buffer": 1276, + "start": 82, + "end": 747 + }, + { + "buffer": 1091, + "start": 766, + "end": 3427 + }, + { + "buffer": 1098, + "start": 769, + "end": 3441 + }, + { + "buffer": 1089, + "start": 771, + "end": 3425 + }, + { + "buffer": 1093, + "start": 774, + "end": 3445 + }, + { + "buffer": 1075, + "start": 790, + "end": 3569 + }, + { + "buffer": 1082, + "start": 793, + "end": 3583 + }, + { + "buffer": 1073, + "start": 795, + "end": 3567 + }, + { + "buffer": 1077, + "start": 798, + "end": 3587 + }, + { + "buffer": 1059, + "start": 814, + "end": 3711 + }, + { + "buffer": 1066, + "start": 817, + "end": 3725 + }, + { + "buffer": 1057, + "start": 819, + "end": 3709 + }, + { + "buffer": 1061, + "start": 822, + "end": 3729 + }, + { + "buffer": 1043, + "start": 838, + "end": 3853 + }, + { + "buffer": 1050, + "start": 841, + "end": 3867 + }, + { + "buffer": 1041, + "start": 843, + "end": 3851 + }, + { + "buffer": 1045, + "start": 846, + "end": 3871 + }, + { + "buffer": 1027, + "start": 863, + "end": 3995 + }, + { + "buffer": 1034, + "start": 866, + "end": 4009 + }, + { + "buffer": 1025, + "start": 868, + "end": 3993 + }, + { + "buffer": 1029, + "start": 871, + "end": 4013 + }, + { + "buffer": 1011, + "start": 888, + "end": 4128 + }, + { + "buffer": 1018, + "start": 891, + "end": 4146 + }, + { + "buffer": 1009, + "start": 893, + "end": 4027 + }, + { + "buffer": 1013, + "start": 896, + "end": 4150 + }, + { + "buffer": 995, + "start": 912, + "end": 4265 + }, + { + "buffer": 1002, + "start": 915, + "end": 4283 + }, + { + "buffer": 993, + "start": 917, + "end": 4164 + }, + { + "buffer": 997, + "start": 920, + "end": 4287 + }, + { + "buffer": 979, + "start": 936, + "end": 4402 + }, + { + "buffer": 986, + "start": 939, + "end": 4420 + }, + { + "buffer": 977, + "start": 941, + "end": 4301 + }, + { + "buffer": 981, + "start": 944, + "end": 4424 + }, + { + "buffer": 1292, + "start": 1046, + "end": 4439 + }, + { + "buffer": 1290, + "start": 1047, + "end": 4438 + }, + { + "buffer": 1009, + "start": 4045, + "end": 4127 + }, + { + "buffer": 993, + "start": 4182, + "end": 4264 + }, + { + "buffer": 977, + "start": 4319, + "end": 4401 + } + ], + "static_plan": [ + { + "buffer": 1295, + "start": 2, + "end": 722, + "slot": 0 + }, + { + "buffer": 1294, + "start": 3, + "end": 723, + "slot": 1 + }, + { + "buffer": 1293, + "start": 5, + "end": 726, + "slot": 2 + }, + { + "buffer": 1292, + "start": 6, + "end": 4439, + "slot": 3 + }, + { + "buffer": 1291, + "start": 8, + "end": 730, + "slot": 4 + }, + { + "buffer": 1290, + "start": 9, + "end": 4438, + "slot": 5 + }, + { + "buffer": 1289, + "start": 11, + "end": 734, + "slot": 6 + }, + { + "buffer": 1288, + "start": 12, + "end": 735, + "slot": 7 + }, + { + "buffer": 1271, + "start": 14, + "end": 752, + "slot": 8 + }, + { + "buffer": 1270, + "start": 17, + "end": 753, + "slot": 9 + }, + { + "buffer": 1261, + "start": 18, + "end": 763, + "slot": 10 + }, + { + "buffer": 1260, + "start": 20, + "end": 765, + "slot": 11 + }, + { + "buffer": 1259, + "start": 23, + "end": 776, + "slot": 12 + }, + { + "buffer": 1247, + "start": 26, + "end": 800, + "slot": 13 + }, + { + "buffer": 1236, + "start": 28, + "end": 813, + "slot": 14 + }, + { + "buffer": 1235, + "start": 31, + "end": 824, + "slot": 15 + }, + { + "buffer": 1217, + "start": 33, + "end": 855, + "slot": 16 + }, + { + "buffer": 1216, + "start": 34, + "end": 856, + "slot": 17 + }, + { + "buffer": 1214, + "start": 35, + "end": 858, + "slot": 18 + }, + { + "buffer": 1213, + "start": 36, + "end": 860, + "slot": 19 + }, + { + "buffer": 1212, + "start": 38, + "end": 862, + "slot": 20 + }, + { + "buffer": 1205, + "start": 40, + "end": 880, + "slot": 21 + }, + { + "buffer": 1204, + "start": 41, + "end": 881, + "slot": 22 + }, + { + "buffer": 1202, + "start": 43, + "end": 883, + "slot": 23 + }, + { + "buffer": 1189, + "start": 47, + "end": 909, + "slot": 24 + }, + { + "buffer": 1188, + "start": 49, + "end": 911, + "slot": 25 + }, + { + "buffer": 1159, + "start": 52, + "end": 962, + "slot": 26 + }, + { + "buffer": 1158, + "start": 54, + "end": 963, + "slot": 27 + }, + { + "buffer": 1157, + "start": 56, + "end": 964, + "slot": 28 + }, + { + "buffer": 1156, + "start": 58, + "end": 965, + "slot": 29 + }, + { + "buffer": 1155, + "start": 60, + "end": 966, + "slot": 30 + }, + { + "buffer": 1154, + "start": 62, + "end": 967, + "slot": 31 + }, + { + "buffer": 1153, + "start": 64, + "end": 968, + "slot": 32 + }, + { + "buffer": 1152, + "start": 66, + "end": 969, + "slot": 33 + }, + { + "buffer": 1031, + "start": 68, + "end": 4472, + "slot": 34 + }, + { + "buffer": 1015, + "start": 73, + "end": 4470, + "slot": 35 + }, + { + "buffer": 1287, + "start": 75, + "end": 736, + "slot": 36 + }, + { + "buffer": 1286, + "start": 76, + "end": 737, + "slot": 37 + }, + { + "buffer": 1285, + "start": 77, + "end": 738, + "slot": 38 + }, + { + "buffer": 1284, + "start": 78, + "end": 739, + "slot": 39 + }, + { + "buffer": 1279, + "start": 79, + "end": 744, + "slot": 40 + }, + { + "buffer": 1278, + "start": 80, + "end": 745, + "slot": 41 + }, + { + "buffer": 1277, + "start": 81, + "end": 746, + "slot": 42 + }, + { + "buffer": 1276, + "start": 82, + "end": 747, + "slot": 43 + }, + { + "buffer": 1091, + "start": 766, + "end": 3427, + "slot": 0 + }, + { + "buffer": 1098, + "start": 769, + "end": 3441, + "slot": 1 + }, + { + "buffer": 1089, + "start": 771, + "end": 3425, + "slot": 2 + }, + { + "buffer": 1093, + "start": 774, + "end": 3445, + "slot": 4 + }, + { + "buffer": 1075, + "start": 790, + "end": 3569, + "slot": 6 + }, + { + "buffer": 1082, + "start": 793, + "end": 3583, + "slot": 7 + }, + { + "buffer": 1073, + "start": 795, + "end": 3567, + "slot": 8 + }, + { + "buffer": 1077, + "start": 798, + "end": 3587, + "slot": 9 + }, + { + "buffer": 1059, + "start": 814, + "end": 3711, + "slot": 10 + }, + { + "buffer": 1066, + "start": 817, + "end": 3725, + "slot": 11 + }, + { + "buffer": 1057, + "start": 819, + "end": 3709, + "slot": 12 + }, + { + "buffer": 1061, + "start": 822, + "end": 3729, + "slot": 13 + }, + { + "buffer": 1043, + "start": 838, + "end": 3853, + "slot": 14 + }, + { + "buffer": 1050, + "start": 841, + "end": 3867, + "slot": 15 + }, + { + "buffer": 1041, + "start": 843, + "end": 3851, + "slot": 36 + }, + { + "buffer": 1045, + "start": 846, + "end": 3871, + "slot": 37 + }, + { + "buffer": 1027, + "start": 863, + "end": 3995, + "slot": 16 + }, + { + "buffer": 1034, + "start": 866, + "end": 4009, + "slot": 17 + }, + { + "buffer": 1025, + "start": 868, + "end": 3993, + "slot": 18 + }, + { + "buffer": 1029, + "start": 871, + "end": 4013, + "slot": 19 + }, + { + "buffer": 1011, + "start": 888, + "end": 4128, + "slot": 20 + }, + { + "buffer": 1018, + "start": 891, + "end": 4146, + "slot": 21 + }, + { + "buffer": 1009, + "start": 893, + "end": 4127, + "slot": 22 + }, + { + "buffer": 1013, + "start": 896, + "end": 4150, + "slot": 23 + }, + { + "buffer": 995, + "start": 912, + "end": 4265, + "slot": 24 + }, + { + "buffer": 1002, + "start": 915, + "end": 4283, + "slot": 25 + }, + { + "buffer": 993, + "start": 917, + "end": 4264, + "slot": 38 + }, + { + "buffer": 997, + "start": 920, + "end": 4287, + "slot": 39 + }, + { + "buffer": 979, + "start": 936, + "end": 4402, + "slot": 40 + }, + { + "buffer": 986, + "start": 939, + "end": 4420, + "slot": 41 + }, + { + "buffer": 977, + "start": 941, + "end": 4401, + "slot": 42 + }, + { + "buffer": 981, + "start": 944, + "end": 4424, + "slot": 43 + } + ], + "allocated_logical_buffers": 76, + "zero_noop_events": [ + 1, + 4, + 7, + 10, + 13, + 16, + 22, + 25, + 30, + 45, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 70, + 72, + 768, + 773, + 792, + 797, + 816, + 821, + 840, + 845, + 865, + 870, + 890, + 895, + 914, + 919, + 938, + 943, + 994, + 995, + 997, + 998, + 999, + 1028, + 1029, + 1030, + 1031, + 1032, + 1035, + 1036, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1048, + 1049, + 3313, + 3314, + 3455, + 3456, + 3597, + 3598, + 3739, + 3740, + 3881, + 3882, + 4023, + 4024, + 4025, + 4029, + 4030, + 4031, + 4032, + 4033, + 4034, + 4160, + 4161, + 4162, + 4166, + 4167, + 4168, + 4169, + 4170, + 4171, + 4297, + 4298, + 4299, + 4303, + 4304, + 4305, + 4306, + 4307, + 4308, + 4440, + 4441, + 4442, + 4443, + 4444, + 4445, + 4446, + 4447, + 4448, + 4449, + 4450, + 4451, + 4452, + 4453, + 4454, + 4455, + 4456, + 4457, + 4458, + 4459, + 4460, + 4461, + 4462, + 4463, + 4464, + 4465, + 4466, + 4467, + 4468, + 4473, + 4474, + 4475, + 4476, + 4477, + 4478, + 4479, + 4480, + 4481, + 4482, + 4483, + 4484, + 4485, + 4486, + 4487, + 4488, + 4489, + 4490, + 4491, + 4492, + 4493, + 4494, + 4495, + 4496, + 4497, + 4498, + 4499, + 4500 + ], + "peak_after_event": 82, + "zero_noop_counts": { + "add": 123, + "scale": 28 + }, + "retained_events": 4349, + "peak_buffers": [ + 1015, + 1031, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1188, + 1189, + 1202, + 1204, + 1205, + 1212, + 1213, + 1214, + 1216, + 1217, + 1235, + 1236, + 1247, + 1259, + 1260, + 1261, + 1270, + 1271, + 1276, + 1277, + 1278, + 1279, + 1284, + 1285, + 1286, + 1287, + 1288, + 1289, + 1290, + 1291, + 1292, + 1293, + 1294, + 1295 + ], + "endpoint_sha256": "6f503c1a8c9695ecc717c6573531dcbf61e35dc2ac7fa0246fb3c7d157f38825", + "peak_rows": [ + [ + 1015, + [ + [ + 499, + [], + "1" + ] + ] + ], + [ + 1031, + [ + [ + 511, + [], + "1" + ] + ] + ], + [ + 1152, + [ + [ + 231, + [], + "1" + ] + ] + ], + [ + 1153, + [ + [ + 226, + [], + "1" + ] + ] + ], + [ + 1154, + [ + [ + 230, + [], + "1" + ] + ] + ], + [ + 1155, + [ + [ + 228, + [], + "1" + ] + ] + ], + [ + 1156, + [ + [ + 232, + [], + "1" + ] + ] + ], + [ + 1157, + [ + [ + 7, + [], + "1" + ] + ] + ], + [ + 1158, + [ + [ + 236, + [], + "1" + ] + ] + ], + [ + 1159, + [ + [ + 238, + [], + "1" + ] + ] + ], + [ + 1188, + [ + [ + 231, + [], + "1" + ], + [ + 299, + [], + "1" + ] + ] + ], + [ + 1189, + [ + [ + 54, + [], + "1" + ], + [ + 226, + [], + "1" + ] + ] + ], + [ + 1202, + [ + [ + 499, + [], + "1" + ] + ] + ], + [ + 1204, + [ + [ + 310, + [], + "1" + ] + ] + ], + [ + 1205, + [ + [ + 308, + [], + "1" + ] + ] + ], + [ + 1212, + [ + [ + 230, + [], + "1" + ], + [ + 331, + [], + "1" + ] + ] + ], + [ + 1213, + [ + [ + 34, + [], + "1" + ], + [ + 228, + [], + "1" + ] + ] + ], + [ + 1214, + [ + [ + 511, + [], + "1" + ] + ] + ], + [ + 1216, + [ + [ + 326, + [], + "1" + ] + ] + ], + [ + 1217, + [ + [ + 324, + [], + "1" + ] + ] + ], + [ + 1235, + [ + [ + 351, + [], + "1" + ], + [ + 436, + [], + "1/2" + ] + ] + ], + [ + 1236, + [ + [ + 232, + [], + "-2" + ], + [ + 363, + [], + "1" + ] + ] + ], + [ + 1247, + [ + [ + 46, + [], + "-1" + ], + [ + 367, + [], + "1" + ] + ] + ], + [ + 1259, + [ + [ + 383, + [], + "1" + ], + [ + 434, + [], + "1/2" + ] + ] + ], + [ + 1260, + [ + [ + 236, + [], + "-2" + ], + [ + 395, + [], + "1" + ] + ] + ], + [ + 1261, + [ + [ + 5, + [], + "1" + ], + [ + 238, + [], + "-2" + ] + ] + ], + [ + 1270, + [ + [ + 69, + [], + "1" + ] + ] + ], + [ + 1271, + [ + [ + 399, + [], + "1" + ], + [ + 446, + [], + "-1" + ] + ] + ], + [ + 1276, + [ + [ + 408, + [], + "1" + ] + ] + ], + [ + 1277, + [ + [ + 105, + [], + "1" + ] + ] + ], + [ + 1278, + [ + [ + 412, + [], + "1" + ] + ] + ], + [ + 1279, + [ + [ + 414, + [], + "1" + ] + ] + ], + [ + 1284, + [ + [ + 424, + [], + "1" + ] + ] + ], + [ + 1285, + [ + [ + 44, + [], + "1" + ] + ] + ], + [ + 1286, + [ + [ + 428, + [], + "1" + ] + ] + ], + [ + 1287, + [ + [ + 430, + [], + "1" + ] + ] + ], + [ + 1288, + [ + [ + 439, + [], + "1" + ] + ] + ], + [ + 1289, + [ + [ + 434, + [], + "1" + ] + ] + ], + [ + 1290, + [ + [ + 438, + [], + "1" + ] + ] + ], + [ + 1291, + [ + [ + 436, + [], + "1" + ] + ] + ], + [ + 1292, + [ + [ + 440, + [], + "1" + ] + ] + ], + [ + 1293, + [ + [ + 46, + [], + "1" + ] + ] + ], + [ + 1294, + [ + [ + 444, + [], + "1" + ] + ] + ], + [ + 1295, + [ + [ + 446, + [], + "1" + ] + ] + ] + ], + "peak_distinct_values": 42, + "peak_equal_value_groups": [ + [ + 1015, + 1202 + ], + [ + 1031, + 1214 + ] + ], + "distinct_value_witness": null, + "controls": [ + "overlap_at_clique", + "early_release", + "dirty_pool_entry", + "closing_add_wrong_sign", + "unallocated_zero_read", + "inverse_warp_sign_changes_endpoint" + ] + }, + { + "orientation": "dual", + "events": 4500, + "entry_columns": 661, + "private_buffers": 76, + "pool_slots": 48, + "interval_count": 65, + "intervals": [ + { + "buffer": 1295, + "start": 1, + "end": 14 + }, + { + "buffer": 1293, + "start": 4, + "end": 26 + }, + { + "buffer": 1291, + "start": 7, + "end": 31 + }, + { + "buffer": 1289, + "start": 10, + "end": 23 + }, + { + "buffer": 1271, + "start": 13, + "end": 995 + }, + { + "buffer": 1270, + "start": 16, + "end": 994 + }, + { + "buffer": 1259, + "start": 22, + "end": 997 + }, + { + "buffer": 1247, + "start": 25, + "end": 998 + }, + { + "buffer": 1235, + "start": 30, + "end": 999 + }, + { + "buffer": 1202, + "start": 44, + "end": 73 + }, + { + "buffer": 1157, + "start": 55, + "end": 810 + }, + { + "buffer": 1031, + "start": 69, + "end": 4491 + }, + { + "buffer": 1015, + "start": 72, + "end": 4477 + }, + { + "buffer": 1287, + "start": 630, + "end": 4468 + }, + { + "buffer": 1286, + "start": 631, + "end": 4452 + }, + { + "buffer": 1279, + "start": 632, + "end": 4443 + }, + { + "buffer": 1278, + "start": 633, + "end": 4446 + }, + { + "buffer": 1285, + "start": 638, + "end": 4449 + }, + { + "buffer": 1284, + "start": 639, + "end": 4465 + }, + { + "buffer": 1277, + "start": 640, + "end": 4441 + }, + { + "buffer": 1276, + "start": 641, + "end": 4462 + }, + { + "buffer": 1205, + "start": 682, + "end": 4483 + }, + { + "buffer": 1204, + "start": 683, + "end": 4480 + }, + { + "buffer": 1214, + "start": 685, + "end": 4486 + }, + { + "buffer": 1217, + "start": 690, + "end": 4456 + }, + { + "buffer": 1216, + "start": 691, + "end": 4459 + }, + { + "buffer": 1202, + "start": 693, + "end": 4500 + }, + { + "buffer": 1270, + "start": 1028, + "end": 1029 + }, + { + "buffer": 1270, + "start": 1030, + "end": 1048 + }, + { + "buffer": 1247, + "start": 1031, + "end": 1032 + }, + { + "buffer": 1235, + "start": 1035, + "end": 1036 + }, + { + "buffer": 1271, + "start": 1039, + "end": 1040 + }, + { + "buffer": 1259, + "start": 1043, + "end": 1044 + }, + { + "buffer": 1089, + "start": 1579, + "end": 3322 + }, + { + "buffer": 1091, + "start": 1593, + "end": 3340 + }, + { + "buffer": 1093, + "start": 1604, + "end": 3366 + }, + { + "buffer": 1098, + "start": 1608, + "end": 3422 + }, + { + "buffer": 1073, + "start": 1733, + "end": 3464 + }, + { + "buffer": 1075, + "start": 1747, + "end": 3482 + }, + { + "buffer": 1077, + "start": 1758, + "end": 3508 + }, + { + "buffer": 1082, + "start": 1762, + "end": 3564 + }, + { + "buffer": 1057, + "start": 1887, + "end": 3606 + }, + { + "buffer": 1059, + "start": 1901, + "end": 3624 + }, + { + "buffer": 1061, + "start": 1912, + "end": 3650 + }, + { + "buffer": 1066, + "start": 1916, + "end": 3706 + }, + { + "buffer": 1041, + "start": 2041, + "end": 3748 + }, + { + "buffer": 1043, + "start": 2055, + "end": 3766 + }, + { + "buffer": 1045, + "start": 2066, + "end": 3792 + }, + { + "buffer": 1050, + "start": 2070, + "end": 3848 + }, + { + "buffer": 1025, + "start": 2195, + "end": 3890 + }, + { + "buffer": 1027, + "start": 2209, + "end": 3908 + }, + { + "buffer": 1029, + "start": 2220, + "end": 3934 + }, + { + "buffer": 1034, + "start": 2224, + "end": 3990 + }, + { + "buffer": 1009, + "start": 2349, + "end": 4034 + }, + { + "buffer": 1011, + "start": 2363, + "end": 4052 + }, + { + "buffer": 1013, + "start": 2374, + "end": 4078 + }, + { + "buffer": 1018, + "start": 2378, + "end": 4133 + }, + { + "buffer": 993, + "start": 2503, + "end": 4171 + }, + { + "buffer": 995, + "start": 2517, + "end": 4189 + }, + { + "buffer": 997, + "start": 2528, + "end": 4215 + }, + { + "buffer": 1002, + "start": 2532, + "end": 4270 + }, + { + "buffer": 977, + "start": 2657, + "end": 4308 + }, + { + "buffer": 979, + "start": 2671, + "end": 4326 + }, + { + "buffer": 981, + "start": 2682, + "end": 4352 + }, + { + "buffer": 986, + "start": 2686, + "end": 4407 + } + ], + "static_plan": [ + { + "buffer": 1295, + "start": 1, + "end": 14, + "slot": 0 + }, + { + "buffer": 1293, + "start": 4, + "end": 26, + "slot": 1 + }, + { + "buffer": 1291, + "start": 7, + "end": 31, + "slot": 2 + }, + { + "buffer": 1289, + "start": 10, + "end": 23, + "slot": 3 + }, + { + "buffer": 1271, + "start": 13, + "end": 1040, + "slot": 4 + }, + { + "buffer": 1270, + "start": 16, + "end": 1048, + "slot": 0 + }, + { + "buffer": 1259, + "start": 22, + "end": 1044, + "slot": 5 + }, + { + "buffer": 1247, + "start": 25, + "end": 1032, + "slot": 3 + }, + { + "buffer": 1235, + "start": 30, + "end": 1036, + "slot": 1 + }, + { + "buffer": 1202, + "start": 44, + "end": 4500, + "slot": 2 + }, + { + "buffer": 1157, + "start": 55, + "end": 810, + "slot": 6 + }, + { + "buffer": 1031, + "start": 69, + "end": 4491, + "slot": 7 + }, + { + "buffer": 1015, + "start": 72, + "end": 4477, + "slot": 8 + }, + { + "buffer": 1287, + "start": 630, + "end": 4468, + "slot": 9 + }, + { + "buffer": 1286, + "start": 631, + "end": 4452, + "slot": 10 + }, + { + "buffer": 1279, + "start": 632, + "end": 4443, + "slot": 11 + }, + { + "buffer": 1278, + "start": 633, + "end": 4446, + "slot": 12 + }, + { + "buffer": 1285, + "start": 638, + "end": 4449, + "slot": 13 + }, + { + "buffer": 1284, + "start": 639, + "end": 4465, + "slot": 14 + }, + { + "buffer": 1277, + "start": 640, + "end": 4441, + "slot": 15 + }, + { + "buffer": 1276, + "start": 641, + "end": 4462, + "slot": 16 + }, + { + "buffer": 1205, + "start": 682, + "end": 4483, + "slot": 17 + }, + { + "buffer": 1204, + "start": 683, + "end": 4480, + "slot": 18 + }, + { + "buffer": 1214, + "start": 685, + "end": 4486, + "slot": 19 + }, + { + "buffer": 1217, + "start": 690, + "end": 4456, + "slot": 20 + }, + { + "buffer": 1216, + "start": 691, + "end": 4459, + "slot": 21 + }, + { + "buffer": 1089, + "start": 1579, + "end": 3322, + "slot": 0 + }, + { + "buffer": 1091, + "start": 1593, + "end": 3340, + "slot": 1 + }, + { + "buffer": 1093, + "start": 1604, + "end": 3366, + "slot": 3 + }, + { + "buffer": 1098, + "start": 1608, + "end": 3422, + "slot": 4 + }, + { + "buffer": 1073, + "start": 1733, + "end": 3464, + "slot": 5 + }, + { + "buffer": 1075, + "start": 1747, + "end": 3482, + "slot": 6 + }, + { + "buffer": 1077, + "start": 1758, + "end": 3508, + "slot": 22 + }, + { + "buffer": 1082, + "start": 1762, + "end": 3564, + "slot": 23 + }, + { + "buffer": 1057, + "start": 1887, + "end": 3606, + "slot": 24 + }, + { + "buffer": 1059, + "start": 1901, + "end": 3624, + "slot": 25 + }, + { + "buffer": 1061, + "start": 1912, + "end": 3650, + "slot": 26 + }, + { + "buffer": 1066, + "start": 1916, + "end": 3706, + "slot": 27 + }, + { + "buffer": 1041, + "start": 2041, + "end": 3748, + "slot": 28 + }, + { + "buffer": 1043, + "start": 2055, + "end": 3766, + "slot": 29 + }, + { + "buffer": 1045, + "start": 2066, + "end": 3792, + "slot": 30 + }, + { + "buffer": 1050, + "start": 2070, + "end": 3848, + "slot": 31 + }, + { + "buffer": 1025, + "start": 2195, + "end": 3890, + "slot": 32 + }, + { + "buffer": 1027, + "start": 2209, + "end": 3908, + "slot": 33 + }, + { + "buffer": 1029, + "start": 2220, + "end": 3934, + "slot": 34 + }, + { + "buffer": 1034, + "start": 2224, + "end": 3990, + "slot": 35 + }, + { + "buffer": 1009, + "start": 2349, + "end": 4034, + "slot": 36 + }, + { + "buffer": 1011, + "start": 2363, + "end": 4052, + "slot": 37 + }, + { + "buffer": 1013, + "start": 2374, + "end": 4078, + "slot": 38 + }, + { + "buffer": 1018, + "start": 2378, + "end": 4133, + "slot": 39 + }, + { + "buffer": 993, + "start": 2503, + "end": 4171, + "slot": 40 + }, + { + "buffer": 995, + "start": 2517, + "end": 4189, + "slot": 41 + }, + { + "buffer": 997, + "start": 2528, + "end": 4215, + "slot": 42 + }, + { + "buffer": 1002, + "start": 2532, + "end": 4270, + "slot": 43 + }, + { + "buffer": 977, + "start": 2657, + "end": 4308, + "slot": 44 + }, + { + "buffer": 979, + "start": 2671, + "end": 4326, + "slot": 45 + }, + { + "buffer": 981, + "start": 2682, + "end": 4352, + "slot": 46 + }, + { + "buffer": 986, + "start": 2686, + "end": 4407, + "slot": 47 + } + ], + "allocated_logical_buffers": 58, + "zero_noop_events": [ + 3, + 6, + 9, + 12, + 18, + 19, + 20, + 21, + 28, + 29, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 43, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 68, + 71, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 721, + 722, + 723, + 725, + 726, + 727, + 729, + 730, + 731, + 733, + 734, + 735, + 762, + 763, + 764, + 765, + 766, + 768, + 769, + 771, + 773, + 774, + 790, + 792, + 793, + 795, + 797, + 798, + 812, + 813, + 814, + 816, + 817, + 819, + 821, + 822, + 838, + 840, + 841, + 843, + 845, + 846, + 859, + 860, + 861, + 862, + 863, + 865, + 866, + 868, + 870, + 871, + 888, + 890, + 891, + 893, + 895, + 896, + 908, + 909, + 910, + 911, + 912, + 914, + 915, + 917, + 919, + 920, + 936, + 938, + 939, + 941, + 943, + 944, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 1045, + 1046, + 1047, + 1049, + 1563, + 1564, + 1571, + 1572, + 1575, + 1576, + 1578, + 1581, + 1590, + 1591, + 1592, + 1598, + 1599, + 1600, + 1601, + 1602, + 1603, + 1607, + 1717, + 1718, + 1725, + 1726, + 1729, + 1730, + 1732, + 1735, + 1744, + 1745, + 1746, + 1752, + 1753, + 1754, + 1755, + 1756, + 1757, + 1761, + 1871, + 1872, + 1879, + 1880, + 1883, + 1884, + 1886, + 1889, + 1898, + 1899, + 1900, + 1906, + 1907, + 1908, + 1909, + 1910, + 1911, + 1915, + 2025, + 2026, + 2033, + 2034, + 2037, + 2038, + 2040, + 2043, + 2052, + 2053, + 2054, + 2060, + 2061, + 2062, + 2063, + 2064, + 2065, + 2069, + 2179, + 2180, + 2187, + 2188, + 2191, + 2192, + 2194, + 2197, + 2206, + 2207, + 2208, + 2214, + 2215, + 2216, + 2217, + 2218, + 2219, + 2223, + 2333, + 2334, + 2341, + 2342, + 2345, + 2346, + 2348, + 2351, + 2360, + 2361, + 2362, + 2368, + 2369, + 2370, + 2371, + 2372, + 2373, + 2377, + 2487, + 2488, + 2495, + 2496, + 2499, + 2500, + 2502, + 2505, + 2514, + 2515, + 2516, + 2522, + 2523, + 2524, + 2525, + 2526, + 2527, + 2531, + 2641, + 2642, + 2649, + 2650, + 2653, + 2654, + 2656, + 2659, + 2668, + 2669, + 2670, + 2676, + 2677, + 2678, + 2679, + 2680, + 2681, + 2685, + 3333, + 3347, + 3349, + 3376, + 3385, + 3399, + 3401, + 3403, + 3416, + 3417, + 3418, + 3425, + 3427, + 3429, + 3431, + 3441, + 3445, + 3475, + 3489, + 3491, + 3518, + 3527, + 3541, + 3543, + 3545, + 3558, + 3559, + 3560, + 3567, + 3569, + 3571, + 3573, + 3583, + 3587, + 3617, + 3631, + 3633, + 3660, + 3669, + 3683, + 3685, + 3687, + 3700, + 3701, + 3702, + 3709, + 3711, + 3713, + 3715, + 3725, + 3729, + 3759, + 3773, + 3775, + 3802, + 3811, + 3825, + 3827, + 3829, + 3842, + 3843, + 3844, + 3851, + 3853, + 3855, + 3857, + 3867, + 3871, + 3901, + 3915, + 3917, + 3944, + 3953, + 3967, + 3969, + 3971, + 3984, + 3985, + 3986, + 3993, + 3995, + 3997, + 3999, + 4009, + 4013, + 4045, + 4059, + 4061, + 4088, + 4096, + 4110, + 4112, + 4114, + 4127, + 4128, + 4129, + 4138, + 4146, + 4150, + 4182, + 4196, + 4198, + 4225, + 4233, + 4247, + 4249, + 4251, + 4264, + 4265, + 4266, + 4275, + 4283, + 4287, + 4319, + 4333, + 4335, + 4362, + 4370, + 4384, + 4386, + 4388, + 4401, + 4402, + 4403, + 4412, + 4420, + 4424, + 4438, + 4439, + 4497 + ], + "peak_after_event": 2686, + "zero_noop_counts": { + "add": 361, + "scale": 48 + }, + "retained_events": 4091, + "peak_buffers": [ + 977, + 979, + 981, + 986, + 993, + 995, + 997, + 1002, + 1009, + 1011, + 1013, + 1015, + 1018, + 1025, + 1027, + 1029, + 1031, + 1034, + 1041, + 1043, + 1045, + 1050, + 1057, + 1059, + 1061, + 1066, + 1073, + 1075, + 1077, + 1082, + 1089, + 1091, + 1093, + 1098, + 1202, + 1204, + 1205, + 1214, + 1216, + 1217, + 1276, + 1277, + 1278, + 1279, + 1284, + 1285, + 1286, + 1287 + ], + "endpoint_sha256": "7a9580e5d6080400a9c419132326da2d179b91e60213dba7a662093709469fca", + "peak_rows": [ + [ + 977, + [ + [ + 9, + [], + "1" + ], + [ + 11, + [], + "1" + ], + [ + 17, + [], + "-1" + ], + [ + 77, + [], + "1" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 103, + [], + "1" + ], + [ + 272, + [], + "1" + ] + ] + ], + [ + 979, + [ + [ + 9, + [], + "-1" + ], + [ + 11, + [], + "1" + ], + [ + 17, + [], + "-1" + ], + [ + 77, + [], + "1" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 103, + [], + "1" + ], + [ + 272, + [], + "-1" + ] + ] + ], + [ + 981, + [ + [ + 9, + [], + "1" + ], + [ + 11, + [], + "-1" + ], + [ + 17, + [], + "-1" + ], + [ + 77, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 103, + [], + "1" + ], + [ + 272, + [], + "1" + ] + ] + ], + [ + 986, + [ + [ + 9, + [], + "-1" + ], + [ + 11, + [], + "-1" + ], + [ + 17, + [], + "1" + ], + [ + 77, + [], + "-1" + ], + [ + 81, + [], + "1" + ], + [ + 92, + [], + "-1" + ], + [ + 103, + [], + "-1" + ], + [ + 272, + [], + "-1" + ] + ] + ], + [ + 993, + [ + [ + 18, + [], + "1" + ], + [ + 19, + [], + "-1/4" + ], + [ + 39, + [], + "-1" + ], + [ + 40, + [], + "-1" + ], + [ + 66, + [], + "1/4" + ], + [ + 79, + [], + "-1/2" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 240, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 285, + [], + "-1/2" + ], + [ + 288, + [], + "1" + ], + [ + 292, + [], + "1" + ], + [ + 317, + [], + "-1/4" + ], + [ + 356, + [], + "-1/2" + ], + [ + 410, + [], + "1" + ], + [ + 467, + [], + "1" + ], + [ + 489, + [], + "1" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "1/4" + ], + [ + 612, + [], + "-1/2" + ], + [ + 635, + [], + "1" + ], + [ + 636, + [], + "1/4" + ], + [ + 658, + [], + "-1/2" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 995, + [ + [ + 18, + [], + "2" + ], + [ + 19, + [], + "-1/4" + ], + [ + 39, + [], + "2" + ], + [ + 79, + [], + "-1/2" + ], + [ + 92, + [], + "2" + ], + [ + 240, + [], + "2" + ], + [ + 285, + [], + "-1/2" + ], + [ + 294, + [], + "1" + ], + [ + 317, + [], + "-1/4" + ], + [ + 358, + [], + "-1/2" + ], + [ + 376, + [], + "1/4" + ], + [ + 417, + [], + "-1/2" + ], + [ + 466, + [], + "1" + ], + [ + 488, + [], + "1" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "1/4" + ], + [ + 610, + [], + "1" + ], + [ + 634, + [], + "1" + ], + [ + 637, + [], + "1/4" + ], + [ + 658, + [], + "-1/2" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 997, + [ + [ + 10, + [], + "-1/2" + ], + [ + 18, + [], + "1" + ], + [ + 39, + [], + "-1" + ], + [ + 40, + [], + "1" + ], + [ + 81, + [], + "1" + ], + [ + 92, + [], + "1" + ], + [ + 240, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 261, + [], + "1/4" + ], + [ + 288, + [], + "1" + ], + [ + 295, + [], + "1" + ], + [ + 302, + [], + "-1/4" + ], + [ + 343, + [], + "-1/2" + ], + [ + 380, + [], + "1/4" + ], + [ + 397, + [], + "-1/2" + ], + [ + 403, + [], + "-1/2" + ], + [ + 442, + [], + "-1/4" + ], + [ + 458, + [], + "1" + ], + [ + 486, + [], + "1" + ], + [ + 493, + [], + "-1/2" + ], + [ + 517, + [], + "1/4" + ], + [ + 602, + [], + "1" + ], + [ + 640, + [], + "1" + ], + [ + 648, + [], + "-1/2" + ], + [ + 692, + [], + "1/4" + ] + ] + ], + [ + 1002, + [ + [ + 18, + [], + "-1" + ], + [ + 39, + [], + "1" + ], + [ + 40, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "-1" + ], + [ + 225, + [], + "-1/4" + ], + [ + 240, + [], + "1" + ], + [ + 256, + [], + "1" + ], + [ + 264, + [], + "1/2" + ], + [ + 288, + [], + "1" + ], + [ + 294, + [], + "1" + ], + [ + 296, + [], + "1/4" + ], + [ + 333, + [], + "1/2" + ], + [ + 358, + [], + "-1/2" + ], + [ + 376, + [], + "1/4" + ], + [ + 417, + [], + "-1/2" + ], + [ + 466, + [], + "1" + ], + [ + 488, + [], + "1" + ], + [ + 490, + [], + "1/2" + ], + [ + 502, + [], + "-1/4" + ], + [ + 610, + [], + "1" + ], + [ + 634, + [], + "1" + ], + [ + 637, + [], + "1/4" + ], + [ + 660, + [], + "1/4" + ], + [ + 682, + [], + "1/2" + ] + ] + ], + [ + 1009, + [ + [ + 11, + [], + "-1" + ], + [ + 24, + [], + "-1/4" + ], + [ + 35, + [], + "-1" + ], + [ + 45, + [], + "1" + ], + [ + 60, + [], + "1/4" + ], + [ + 92, + [], + "1" + ], + [ + 107, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 225, + [], + "-1/4" + ], + [ + 256, + [], + "1" + ], + [ + 260, + [], + "1" + ], + [ + 292, + [], + "1" + ], + [ + 304, + [], + "1" + ], + [ + 308, + [], + "1" + ], + [ + 356, + [], + "-1/2" + ], + [ + 410, + [], + "1" + ], + [ + 426, + [], + "1" + ], + [ + 469, + [], + "-1/2" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "-1/4" + ], + [ + 612, + [], + "-1/2" + ], + [ + 628, + [], + "1/4" + ], + [ + 666, + [], + "-1/2" + ], + [ + 669, + [], + "-1/4" + ], + [ + 682, + [], + "-1/2" + ] + ] + ], + [ + 1011, + [ + [ + 11, + [], + "2" + ], + [ + 24, + [], + "-1/4" + ], + [ + 35, + [], + "2" + ], + [ + 45, + [], + "2" + ], + [ + 92, + [], + "2" + ], + [ + 225, + [], + "-1/4" + ], + [ + 262, + [], + "1" + ], + [ + 294, + [], + "1" + ], + [ + 310, + [], + "1" + ], + [ + 358, + [], + "-1/2" + ], + [ + 360, + [], + "1/4" + ], + [ + 417, + [], + "-1/2" + ], + [ + 433, + [], + "1/4" + ], + [ + 469, + [], + "-1/2" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "-1/4" + ], + [ + 610, + [], + "1" + ], + [ + 626, + [], + "1" + ], + [ + 666, + [], + "-1/2" + ], + [ + 669, + [], + "-1/4" + ], + [ + 682, + [], + "-1/2" + ] + ] + ], + [ + 1013, + [ + [ + 11, + [], + "-1" + ], + [ + 35, + [], + "-1" + ], + [ + 45, + [], + "1" + ], + [ + 92, + [], + "1" + ], + [ + 107, + [], + "1" + ], + [ + 224, + [], + "1" + ], + [ + 227, + [], + "-1/4" + ], + [ + 247, + [], + "1" + ], + [ + 256, + [], + "1" + ], + [ + 279, + [], + "1" + ], + [ + 304, + [], + "1" + ], + [ + 318, + [], + "-1/4" + ], + [ + 345, + [], + "-1/4" + ], + [ + 359, + [], + "-1/2" + ], + [ + 364, + [], + "1/4" + ], + [ + 405, + [], + "-1/2" + ], + [ + 463, + [], + "-1/2" + ], + [ + 481, + [], + "-1/2" + ], + [ + 499, + [], + "1" + ], + [ + 505, + [], + "-1/4" + ], + [ + 600, + [], + "1" + ], + [ + 616, + [], + "1" + ], + [ + 623, + [], + "1/4" + ], + [ + 672, + [], + "-1/2" + ], + [ + 688, + [], + "-1/2" + ] + ] + ], + [ + 1015, + [ + [ + 229, + [], + "-1/4" + ], + [ + 247, + [], + "1" + ], + [ + 279, + [], + "1" + ], + [ + 316, + [], + "-1/4" + ], + [ + 359, + [], + "-1/2" + ], + [ + 364, + [], + "1/4" + ], + [ + 381, + [], + "-1/4" + ], + [ + 405, + [], + "-1/2" + ], + [ + 462, + [], + "-1/2" + ], + [ + 480, + [], + "-1/2" + ], + [ + 499, + [], + "1" + ], + [ + 504, + [], + "-1/4" + ], + [ + 600, + [], + "1" + ], + [ + 616, + [], + "1" + ], + [ + 623, + [], + "1/4" + ], + [ + 673, + [], + "-1/2" + ], + [ + 689, + [], + "-1/2" + ] + ] + ], + [ + 1018, + [ + [ + 11, + [], + "1" + ], + [ + 35, + [], + "1" + ], + [ + 45, + [], + "-1" + ], + [ + 92, + [], + "-1" + ], + [ + 107, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 262, + [], + "1" + ], + [ + 285, + [], + "1/2" + ], + [ + 294, + [], + "1" + ], + [ + 304, + [], + "1" + ], + [ + 310, + [], + "1" + ], + [ + 312, + [], + "1/4" + ], + [ + 358, + [], + "-1/2" + ], + [ + 360, + [], + "1/4" + ], + [ + 417, + [], + "-1/2" + ], + [ + 433, + [], + "1/4" + ], + [ + 468, + [], + "1/2" + ], + [ + 490, + [], + "1/2" + ], + [ + 502, + [], + "1/4" + ], + [ + 610, + [], + "1" + ], + [ + 626, + [], + "1" + ], + [ + 667, + [], + "1/2" + ], + [ + 668, + [], + "1/4" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 1025, + [ + [ + 9, + [], + "1" + ], + [ + 22, + [], + "-1" + ], + [ + 23, + [], + "-1" + ], + [ + 28, + [], + "1/4" + ], + [ + 92, + [], + "1" + ], + [ + 108, + [], + "1" + ], + [ + 109, + [], + "-1/4" + ], + [ + 224, + [], + "-1" + ], + [ + 234, + [], + "-1/4" + ], + [ + 240, + [], + "-1" + ], + [ + 258, + [], + "1" + ], + [ + 276, + [], + "1" + ], + [ + 320, + [], + "1" + ], + [ + 324, + [], + "1" + ], + [ + 340, + [], + "-1/2" + ], + [ + 393, + [], + "-1/4" + ], + [ + 419, + [], + "-1/2" + ], + [ + 471, + [], + "-1/2" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "-1/4" + ], + [ + 609, + [], + "1" + ], + [ + 619, + [], + "1" + ], + [ + 620, + [], + "1/4" + ], + [ + 674, + [], + "-1/2" + ], + [ + 680, + [], + "-1/2" + ] + ] + ], + [ + 1027, + [ + [ + 23, + [], + "2" + ], + [ + 92, + [], + "2" + ], + [ + 108, + [], + "2" + ], + [ + 109, + [], + "-1/4" + ], + [ + 234, + [], + "-1/4" + ], + [ + 240, + [], + "2" + ], + [ + 263, + [], + "1" + ], + [ + 278, + [], + "1" + ], + [ + 326, + [], + "1" + ], + [ + 342, + [], + "-1/2" + ], + [ + 344, + [], + "1/4" + ], + [ + 393, + [], + "-1/4" + ], + [ + 421, + [], + "-1/2" + ], + [ + 471, + [], + "-1/2" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "-1/4" + ], + [ + 608, + [], + "1" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "1/4" + ], + [ + 674, + [], + "-1/2" + ], + [ + 680, + [], + "-1/2" + ] + ] + ], + [ + 1029, + [ + [ + 9, + [], + "1" + ], + [ + 22, + [], + "1" + ], + [ + 23, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 108, + [], + "1" + ], + [ + 224, + [], + "1" + ], + [ + 240, + [], + "-1" + ], + [ + 246, + [], + "1" + ], + [ + 295, + [], + "1" + ], + [ + 320, + [], + "1" + ], + [ + 334, + [], + "-1/4" + ], + [ + 343, + [], + "-1/2" + ], + [ + 348, + [], + "1/4" + ], + [ + 377, + [], + "-1/4" + ], + [ + 403, + [], + "-1/2" + ], + [ + 437, + [], + "1/4" + ], + [ + 461, + [], + "-1/2" + ], + [ + 493, + [], + "-1/2" + ], + [ + 511, + [], + "1" + ], + [ + 517, + [], + "-1/4" + ], + [ + 602, + [], + "1" + ], + [ + 624, + [], + "1" + ], + [ + 664, + [], + "-1/2" + ], + [ + 671, + [], + "-1/4" + ], + [ + 690, + [], + "-1/2" + ] + ] + ], + [ + 1031, + [ + [ + 246, + [], + "1" + ], + [ + 295, + [], + "1" + ], + [ + 332, + [], + "-1/4" + ], + [ + 343, + [], + "-1/2" + ], + [ + 348, + [], + "1/4" + ], + [ + 397, + [], + "-1/2" + ], + [ + 403, + [], + "-1/2" + ], + [ + 437, + [], + "1/4" + ], + [ + 460, + [], + "-1/2" + ], + [ + 492, + [], + "-1/2" + ], + [ + 511, + [], + "1" + ], + [ + 516, + [], + "-1/4" + ], + [ + 602, + [], + "1" + ], + [ + 624, + [], + "1" + ], + [ + 665, + [], + "-1/2" + ], + [ + 670, + [], + "-1/4" + ], + [ + 692, + [], + "-1/4" + ] + ] + ], + [ + 1034, + [ + [ + 9, + [], + "1" + ], + [ + 22, + [], + "-1" + ], + [ + 23, + [], + "1" + ], + [ + 92, + [], + "-1" + ], + [ + 108, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 240, + [], + "1" + ], + [ + 241, + [], + "1/2" + ], + [ + 263, + [], + "1" + ], + [ + 278, + [], + "1" + ], + [ + 281, + [], + "1/4" + ], + [ + 320, + [], + "1" + ], + [ + 326, + [], + "1" + ], + [ + 328, + [], + "1/4" + ], + [ + 342, + [], + "-1/2" + ], + [ + 344, + [], + "1/4" + ], + [ + 421, + [], + "-1/2" + ], + [ + 470, + [], + "1/2" + ], + [ + 478, + [], + "1/2" + ], + [ + 514, + [], + "1/4" + ], + [ + 608, + [], + "1" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "1/4" + ], + [ + 676, + [], + "1/4" + ], + [ + 681, + [], + "1/2" + ] + ] + ], + [ + 1041, + [ + [ + 11, + [], + "-1" + ], + [ + 28, + [], + "-1/4" + ], + [ + 57, + [], + "1" + ], + [ + 58, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 86, + [], + "-1" + ], + [ + 93, + [], + "1" + ], + [ + 109, + [], + "1/4" + ], + [ + 241, + [], + "-1/2" + ], + [ + 256, + [], + "1" + ], + [ + 258, + [], + "1" + ], + [ + 276, + [], + "1" + ], + [ + 281, + [], + "1/4" + ], + [ + 336, + [], + "1" + ], + [ + 340, + [], + "1/2" + ], + [ + 421, + [], + "1/2" + ], + [ + 471, + [], + "-1/2" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "1/4" + ], + [ + 525, + [], + "1" + ], + [ + 527, + [], + "-1/2" + ], + [ + 608, + [], + "1" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "-1/4" + ], + [ + 676, + [], + "1/4" + ], + [ + 681, + [], + "-1/2" + ] + ] + ], + [ + 1043, + [ + [ + 11, + [], + "2" + ], + [ + 28, + [], + "-1/4" + ], + [ + 57, + [], + "2" + ], + [ + 86, + [], + "2" + ], + [ + 93, + [], + "2" + ], + [ + 234, + [], + "1/4" + ], + [ + 258, + [], + "1" + ], + [ + 278, + [], + "1" + ], + [ + 281, + [], + "1/4" + ], + [ + 328, + [], + "1/4" + ], + [ + 342, + [], + "1/2" + ], + [ + 419, + [], + "1/2" + ], + [ + 470, + [], + "-1/2" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "1/4" + ], + [ + 524, + [], + "1" + ], + [ + 527, + [], + "-1/2" + ], + [ + 609, + [], + "1" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "-1/4" + ], + [ + 674, + [], + "-1/2" + ], + [ + 681, + [], + "-1/2" + ] + ] + ], + [ + 1045, + [ + [ + 11, + [], + "-1" + ], + [ + 57, + [], + "1" + ], + [ + 58, + [], + "1" + ], + [ + 81, + [], + "1" + ], + [ + 86, + [], + "-1" + ], + [ + 93, + [], + "1" + ], + [ + 244, + [], + "1" + ], + [ + 256, + [], + "1" + ], + [ + 295, + [], + "1" + ], + [ + 332, + [], + "1/4" + ], + [ + 336, + [], + "1" + ], + [ + 343, + [], + "1/2" + ], + [ + 350, + [], + "-1/4" + ], + [ + 397, + [], + "-1/2" + ], + [ + 401, + [], + "1" + ], + [ + 437, + [], + "-1/4" + ], + [ + 460, + [], + "-1/2" + ], + [ + 493, + [], + "-1/2" + ], + [ + 517, + [], + "1/4" + ], + [ + 522, + [], + "1" + ], + [ + 529, + [], + "-1/2" + ], + [ + 604, + [], + "1/2" + ], + [ + 624, + [], + "1" + ], + [ + 664, + [], + "-1/2" + ], + [ + 671, + [], + "1/4" + ], + [ + 692, + [], + "1/4" + ] + ] + ], + [ + 1050, + [ + [ + 11, + [], + "1" + ], + [ + 57, + [], + "-1" + ], + [ + 58, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 86, + [], + "1" + ], + [ + 93, + [], + "-1" + ], + [ + 234, + [], + "1/4" + ], + [ + 256, + [], + "1" + ], + [ + 263, + [], + "-1" + ], + [ + 278, + [], + "1" + ], + [ + 328, + [], + "1/4" + ], + [ + 336, + [], + "1" + ], + [ + 342, + [], + "1/2" + ], + [ + 344, + [], + "1/4" + ], + [ + 393, + [], + "-1/4" + ], + [ + 419, + [], + "1/2" + ], + [ + 470, + [], + "-1/2" + ], + [ + 478, + [], + "1/2" + ], + [ + 514, + [], + "-1/4" + ], + [ + 524, + [], + "1" + ], + [ + 526, + [], + "1/2" + ], + [ + 609, + [], + "1" + ], + [ + 619, + [], + "-1" + ], + [ + 620, + [], + "1/4" + ], + [ + 674, + [], + "-1/2" + ], + [ + 680, + [], + "1/2" + ] + ] + ], + [ + 1057, + [ + [ + 9, + [], + "1" + ], + [ + 24, + [], + "1/4" + ], + [ + 29, + [], + "-1" + ], + [ + 30, + [], + "-1" + ], + [ + 57, + [], + "1" + ], + [ + 59, + [], + "1" + ], + [ + 60, + [], + "-1/4" + ], + [ + 81, + [], + "-1" + ], + [ + 240, + [], + "-1" + ], + [ + 260, + [], + "1" + ], + [ + 285, + [], + "-1/2" + ], + [ + 292, + [], + "1" + ], + [ + 352, + [], + "1" + ], + [ + 356, + [], + "1/2" + ], + [ + 417, + [], + "1/2" + ], + [ + 433, + [], + "-1/4" + ], + [ + 469, + [], + "-1/2" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "1/4" + ], + [ + 537, + [], + "1" + ], + [ + 539, + [], + "-1/2" + ], + [ + 610, + [], + "1" + ], + [ + 626, + [], + "1" + ], + [ + 667, + [], + "-1/2" + ], + [ + 668, + [], + "1/4" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 1059, + [ + [ + 29, + [], + "2" + ], + [ + 57, + [], + "2" + ], + [ + 59, + [], + "2" + ], + [ + 60, + [], + "-1/4" + ], + [ + 240, + [], + "2" + ], + [ + 260, + [], + "1" + ], + [ + 285, + [], + "-1/2" + ], + [ + 294, + [], + "1" + ], + [ + 312, + [], + "1/4" + ], + [ + 358, + [], + "1/2" + ], + [ + 410, + [], + "1" + ], + [ + 433, + [], + "-1/4" + ], + [ + 468, + [], + "-1/2" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "1/4" + ], + [ + 536, + [], + "1" + ], + [ + 539, + [], + "-1/2" + ], + [ + 612, + [], + "1/2" + ], + [ + 626, + [], + "1" + ], + [ + 666, + [], + "-1/2" + ], + [ + 669, + [], + "1/4" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 1061, + [ + [ + 9, + [], + "1" + ], + [ + 29, + [], + "-1" + ], + [ + 30, + [], + "1" + ], + [ + 57, + [], + "1" + ], + [ + 59, + [], + "1" + ], + [ + 81, + [], + "1" + ], + [ + 227, + [], + "1/4" + ], + [ + 240, + [], + "-1" + ], + [ + 242, + [], + "1" + ], + [ + 279, + [], + "1" + ], + [ + 316, + [], + "1/4" + ], + [ + 352, + [], + "1" + ], + [ + 359, + [], + "1/2" + ], + [ + 366, + [], + "-1/4" + ], + [ + 381, + [], + "1/4" + ], + [ + 462, + [], + "-1/2" + ], + [ + 481, + [], + "-1/2" + ], + [ + 505, + [], + "1/4" + ], + [ + 534, + [], + "1" + ], + [ + 541, + [], + "-1/2" + ], + [ + 601, + [], + "1" + ], + [ + 606, + [], + "1/2" + ], + [ + 616, + [], + "1" + ], + [ + 623, + [], + "-1/4" + ], + [ + 672, + [], + "-1/2" + ], + [ + 689, + [], + "-1/2" + ] + ] + ], + [ + 1066, + [ + [ + 9, + [], + "1" + ], + [ + 29, + [], + "1" + ], + [ + 30, + [], + "-1" + ], + [ + 57, + [], + "-1" + ], + [ + 59, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 225, + [], + "-1/4" + ], + [ + 240, + [], + "1" + ], + [ + 262, + [], + "-1" + ], + [ + 294, + [], + "1" + ], + [ + 312, + [], + "1/4" + ], + [ + 352, + [], + "1" + ], + [ + 358, + [], + "1/2" + ], + [ + 360, + [], + "1/4" + ], + [ + 410, + [], + "1" + ], + [ + 426, + [], + "-1" + ], + [ + 468, + [], + "-1/2" + ], + [ + 490, + [], + "1/2" + ], + [ + 502, + [], + "-1/4" + ], + [ + 536, + [], + "1" + ], + [ + 538, + [], + "1/2" + ], + [ + 612, + [], + "1/2" + ], + [ + 628, + [], + "1/4" + ], + [ + 666, + [], + "-1/2" + ], + [ + 669, + [], + "1/4" + ], + [ + 682, + [], + "1/2" + ] + ] + ], + [ + 1073, + [ + [ + 8, + [], + "1" + ], + [ + 9, + [], + "1" + ], + [ + 11, + [], + "-1" + ], + [ + 19, + [], + "1/4" + ], + [ + 26, + [], + "-1" + ], + [ + 57, + [], + "1" + ], + [ + 66, + [], + "-1/4" + ], + [ + 79, + [], + "-1/2" + ], + [ + 95, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 225, + [], + "-1/4" + ], + [ + 292, + [], + "1" + ], + [ + 333, + [], + "-1/2" + ], + [ + 356, + [], + "1/2" + ], + [ + 368, + [], + "1" + ], + [ + 372, + [], + "1" + ], + [ + 417, + [], + "1/2" + ], + [ + 467, + [], + "1" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "-1/4" + ], + [ + 549, + [], + "1" + ], + [ + 551, + [], + "-1/2" + ], + [ + 610, + [], + "1" + ], + [ + 634, + [], + "1" + ], + [ + 637, + [], + "-1/4" + ], + [ + 660, + [], + "1/4" + ], + [ + 682, + [], + "-1/2" + ] + ] + ], + [ + 1075, + [ + [ + 8, + [], + "2" + ], + [ + 11, + [], + "2" + ], + [ + 26, + [], + "2" + ], + [ + 57, + [], + "2" + ], + [ + 66, + [], + "-1/4" + ], + [ + 225, + [], + "-1/4" + ], + [ + 264, + [], + "-1/2" + ], + [ + 294, + [], + "1" + ], + [ + 296, + [], + "1/4" + ], + [ + 317, + [], + "1/4" + ], + [ + 358, + [], + "1/2" + ], + [ + 374, + [], + "1" + ], + [ + 410, + [], + "1" + ], + [ + 467, + [], + "1" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "-1/4" + ], + [ + 548, + [], + "1" + ], + [ + 551, + [], + "-1/2" + ], + [ + 612, + [], + "1/2" + ], + [ + 634, + [], + "1" + ], + [ + 637, + [], + "-1/4" + ], + [ + 658, + [], + "-1/2" + ], + [ + 682, + [], + "-1/2" + ] + ] + ], + [ + 1077, + [ + [ + 8, + [], + "1" + ], + [ + 9, + [], + "1" + ], + [ + 11, + [], + "-1" + ], + [ + 26, + [], + "-1" + ], + [ + 57, + [], + "1" + ], + [ + 95, + [], + "1" + ], + [ + 224, + [], + "1" + ], + [ + 248, + [], + "-1/2" + ], + [ + 261, + [], + "-1/4" + ], + [ + 295, + [], + "1" + ], + [ + 300, + [], + "1/4" + ], + [ + 343, + [], + "1/2" + ], + [ + 368, + [], + "1" + ], + [ + 375, + [], + "1" + ], + [ + 377, + [], + "-1/4" + ], + [ + 382, + [], + "-1/4" + ], + [ + 401, + [], + "1" + ], + [ + 442, + [], + "1/4" + ], + [ + 459, + [], + "1" + ], + [ + 493, + [], + "-1/2" + ], + [ + 517, + [], + "-1/4" + ], + [ + 546, + [], + "1" + ], + [ + 553, + [], + "-1/2" + ], + [ + 604, + [], + "1/2" + ], + [ + 640, + [], + "1" + ], + [ + 648, + [], + "-1/2" + ], + [ + 690, + [], + "-1/2" + ] + ] + ], + [ + 1082, + [ + [ + 8, + [], + "-1" + ], + [ + 9, + [], + "1" + ], + [ + 11, + [], + "1" + ], + [ + 26, + [], + "1" + ], + [ + 57, + [], + "-1" + ], + [ + 95, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 264, + [], + "-1/2" + ], + [ + 285, + [], + "1/2" + ], + [ + 294, + [], + "1" + ], + [ + 296, + [], + "1/4" + ], + [ + 317, + [], + "1/4" + ], + [ + 358, + [], + "1/2" + ], + [ + 368, + [], + "1" + ], + [ + 374, + [], + "1" + ], + [ + 376, + [], + "1/4" + ], + [ + 410, + [], + "1" + ], + [ + 466, + [], + "-1" + ], + [ + 490, + [], + "1/2" + ], + [ + 502, + [], + "1/4" + ], + [ + 548, + [], + "1" + ], + [ + 550, + [], + "1/2" + ], + [ + 612, + [], + "1/2" + ], + [ + 635, + [], + "-1" + ], + [ + 636, + [], + "1/4" + ], + [ + 658, + [], + "-1/2" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 1089, + [ + [ + 38, + [], + "1/4" + ], + [ + 57, + [], + "1" + ], + [ + 64, + [], + "-1" + ], + [ + 65, + [], + "-1" + ], + [ + 96, + [], + "1" + ], + [ + 97, + [], + "-1/4" + ], + [ + 224, + [], + "-1" + ], + [ + 240, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 266, + [], + "-1/4" + ], + [ + 270, + [], + "-1/2" + ], + [ + 276, + [], + "1" + ], + [ + 340, + [], + "1/2" + ], + [ + 384, + [], + "1" + ], + [ + 388, + [], + "1" + ], + [ + 393, + [], + "-1/4" + ], + [ + 421, + [], + "1/2" + ], + [ + 465, + [], + "1" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "-1/4" + ], + [ + 554, + [], + "-1/2" + ], + [ + 561, + [], + "1" + ], + [ + 563, + [], + "-1/2" + ], + [ + 608, + [], + "1" + ], + [ + 642, + [], + "1" + ], + [ + 652, + [], + "1/4" + ], + [ + 680, + [], + "-1/2" + ] + ] + ], + [ + 1091, + [ + [ + 57, + [], + "2" + ], + [ + 65, + [], + "2" + ], + [ + 73, + [], + "1/4" + ], + [ + 96, + [], + "2" + ], + [ + 97, + [], + "-1/4" + ], + [ + 240, + [], + "2" + ], + [ + 266, + [], + "-1/4" + ], + [ + 268, + [], + "-1/2" + ], + [ + 278, + [], + "1" + ], + [ + 280, + [], + "1/4" + ], + [ + 342, + [], + "1/2" + ], + [ + 390, + [], + "1" + ], + [ + 393, + [], + "-1/4" + ], + [ + 419, + [], + "1/2" + ], + [ + 465, + [], + "1" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "-1/4" + ], + [ + 560, + [], + "1" + ], + [ + 563, + [], + "-1/2" + ], + [ + 609, + [], + "1" + ], + [ + 642, + [], + "1" + ], + [ + 650, + [], + "-1/2" + ], + [ + 680, + [], + "-1/2" + ] + ] + ], + [ + 1093, + [ + [ + 57, + [], + "1" + ], + [ + 64, + [], + "1" + ], + [ + 65, + [], + "-1" + ], + [ + 96, + [], + "1" + ], + [ + 224, + [], + "1" + ], + [ + 240, + [], + "-1" + ], + [ + 245, + [], + "1/4" + ], + [ + 252, + [], + "-1/2" + ], + [ + 256, + [], + "1" + ], + [ + 279, + [], + "1" + ], + [ + 284, + [], + "1/4" + ], + [ + 345, + [], + "-1/4" + ], + [ + 359, + [], + "1/2" + ], + [ + 384, + [], + "1" + ], + [ + 391, + [], + "1" + ], + [ + 398, + [], + "-1/4" + ], + [ + 457, + [], + "1" + ], + [ + 481, + [], + "-1/2" + ], + [ + 505, + [], + "-1/4" + ], + [ + 558, + [], + "1" + ], + [ + 565, + [], + "-1/2" + ], + [ + 601, + [], + "1" + ], + [ + 606, + [], + "1/2" + ], + [ + 632, + [], + "1" + ], + [ + 639, + [], + "-1/4" + ], + [ + 656, + [], + "-1/2" + ], + [ + 688, + [], + "-1/2" + ] + ] + ], + [ + 1098, + [ + [ + 57, + [], + "-1" + ], + [ + 64, + [], + "-1" + ], + [ + 65, + [], + "1" + ], + [ + 73, + [], + "1/4" + ], + [ + 96, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 240, + [], + "1" + ], + [ + 250, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 268, + [], + "-1/2" + ], + [ + 278, + [], + "1" + ], + [ + 280, + [], + "1/4" + ], + [ + 281, + [], + "1/4" + ], + [ + 342, + [], + "1/2" + ], + [ + 384, + [], + "1" + ], + [ + 390, + [], + "1" + ], + [ + 392, + [], + "1/4" + ], + [ + 419, + [], + "1/2" + ], + [ + 464, + [], + "-1" + ], + [ + 478, + [], + "1/2" + ], + [ + 514, + [], + "1/4" + ], + [ + 560, + [], + "1" + ], + [ + 562, + [], + "1/2" + ], + [ + 609, + [], + "1" + ], + [ + 644, + [], + "1/4" + ], + [ + 650, + [], + "-1/2" + ], + [ + 681, + [], + "1/2" + ] + ] + ], + [ + 1202, + [ + [ + 247, + [], + "1" + ], + [ + 364, + [], + "1/4" + ], + [ + 616, + [], + "1" + ], + [ + 623, + [], + "1/4" + ] + ] + ], + [ + 1204, + [ + [ + 262, + [], + "1" + ], + [ + 360, + [], + "1/4" + ], + [ + 433, + [], + "1/4" + ], + [ + 626, + [], + "1" + ] + ] + ], + [ + 1205, + [ + [ + 60, + [], + "1/4" + ], + [ + 260, + [], + "1" + ], + [ + 426, + [], + "1" + ], + [ + 628, + [], + "1/4" + ] + ] + ], + [ + 1214, + [ + [ + 246, + [], + "1" + ], + [ + 348, + [], + "1/4" + ], + [ + 437, + [], + "1/4" + ], + [ + 624, + [], + "1" + ] + ] + ], + [ + 1216, + [ + [ + 263, + [], + "1" + ], + [ + 344, + [], + "1/4" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "1/4" + ] + ] + ], + [ + 1217, + [ + [ + 28, + [], + "1/4" + ], + [ + 258, + [], + "1" + ], + [ + 619, + [], + "1" + ], + [ + 620, + [], + "1/4" + ] + ] + ], + [ + 1276, + [ + [ + 312, + [], + "1/2" + ], + [ + 468, + [], + "1" + ], + [ + 667, + [], + "1" + ], + [ + 668, + [], + "1/2" + ] + ] + ], + [ + 1277, + [ + [ + 24, + [], + "1/2" + ], + [ + 469, + [], + "1" + ], + [ + 666, + [], + "1" + ], + [ + 669, + [], + "1/2" + ] + ] + ], + [ + 1278, + [ + [ + 241, + [], + "1" + ], + [ + 328, + [], + "1/2" + ], + [ + 470, + [], + "1" + ], + [ + 676, + [], + "1/2" + ] + ] + ], + [ + 1279, + [ + [ + 109, + [], + "1/2" + ], + [ + 234, + [], + "1/2" + ], + [ + 471, + [], + "1" + ], + [ + 674, + [], + "1" + ] + ] + ], + [ + 1284, + [ + [ + 332, + [], + "1/2" + ], + [ + 460, + [], + "1" + ], + [ + 665, + [], + "1" + ], + [ + 670, + [], + "1/2" + ] + ] + ], + [ + 1285, + [ + [ + 334, + [], + "1/2" + ], + [ + 461, + [], + "1" + ], + [ + 664, + [], + "1" + ], + [ + 671, + [], + "1/2" + ] + ] + ], + [ + 1286, + [ + [ + 229, + [], + "1/2" + ], + [ + 316, + [], + "1/2" + ], + [ + 462, + [], + "1" + ], + [ + 673, + [], + "1" + ] + ] + ], + [ + 1287, + [ + [ + 227, + [], + "1/2" + ], + [ + 318, + [], + "1/2" + ], + [ + 463, + [], + "1" + ], + [ + 672, + [], + "1" + ] + ] + ] + ], + "peak_distinct_values": 48, + "peak_equal_value_groups": [], + "distinct_value_witness": { + "seed": 0, + "input_rule": "int.from_bytes(SHA256(UTF8('T74-pool/{seed}/{register}'))[:2], 'big') - 32768", + "unused_inputs": 0, + "max_input_abs": 32736, + "buffer_values": [ + [ + 977, + "-66443" + ], + [ + 979, + "15277" + ], + [ + 981, + "-99997" + ], + [ + 986, + "66443" + ], + [ + 993, + "-87491/2" + ], + [ + 995, + "-474879/4" + ], + [ + 997, + "-35913/4" + ], + [ + 1002, + "22855" + ], + [ + 1009, + "-26207/4" + ], + [ + 1011, + "-197065/4" + ], + [ + 1013, + "-193075/4" + ], + [ + 1015, + "-257885/4" + ], + [ + 1018, + "32893/4" + ], + [ + 1025, + "-231577/4" + ], + [ + 1027, + "-278197/4" + ], + [ + 1029, + "-463285/4" + ], + [ + 1031, + "-63744" + ], + [ + 1034, + "89511/2" + ], + [ + 1041, + "64565/4" + ], + [ + 1043, + "309287/4" + ], + [ + 1045, + "-122713/2" + ], + [ + 1050, + "-17479" + ], + [ + 1057, + "150591/4" + ], + [ + 1059, + "-218197/4" + ], + [ + 1061, + "-57671/2" + ], + [ + 1066, + "-549403/4" + ], + [ + 1073, + "17550" + ], + [ + 1075, + "153965/4" + ], + [ + 1077, + "-115307/2" + ], + [ + 1082, + "165043/2" + ], + [ + 1089, + "39693" + ], + [ + 1091, + "64171/2" + ], + [ + 1093, + "169471/4" + ], + [ + 1098, + "-707881/4" + ], + [ + 1202, + "-190673/4" + ], + [ + 1204, + "17437/2" + ], + [ + 1205, + "17079" + ], + [ + 1214, + "-220961/4" + ], + [ + 1216, + "-52681/4" + ], + [ + 1217, + "148565/4" + ], + [ + 1276, + "1391" + ], + [ + 1277, + "5616" + ], + [ + 1278, + "24198" + ], + [ + 1279, + "16530" + ], + [ + 1284, + "-20556" + ], + [ + 1285, + "23907" + ], + [ + 1286, + "-20955/2" + ], + [ + 1287, + "-63499/2" + ] + ] + }, + "controls": [ + "overlap_at_clique", + "early_release", + "dirty_pool_entry", + "closing_add_wrong_sign", + "unallocated_zero_read", + "inverse_warp_sign_changes_endpoint" + ] + } + ], + "extra": [ + { + "orientation": "forward", + "events": 4500, + "entry_columns": 661, + "private_buffers": 76, + "pool_slots": 44, + "interval_count": 81, + "intervals": [ + { + "buffer": 1295, + "start": 2, + "end": 722 + }, + { + "buffer": 1294, + "start": 3, + "end": 723 + }, + { + "buffer": 1293, + "start": 5, + "end": 726 + }, + { + "buffer": 1292, + "start": 6, + "end": 727 + }, + { + "buffer": 1291, + "start": 8, + "end": 730 + }, + { + "buffer": 1290, + "start": 9, + "end": 731 + }, + { + "buffer": 1289, + "start": 11, + "end": 734 + }, + { + "buffer": 1288, + "start": 12, + "end": 735 + }, + { + "buffer": 1271, + "start": 14, + "end": 752 + }, + { + "buffer": 1270, + "start": 17, + "end": 753 + }, + { + "buffer": 1261, + "start": 18, + "end": 763 + }, + { + "buffer": 1260, + "start": 20, + "end": 765 + }, + { + "buffer": 1259, + "start": 23, + "end": 776 + }, + { + "buffer": 1247, + "start": 26, + "end": 800 + }, + { + "buffer": 1236, + "start": 28, + "end": 813 + }, + { + "buffer": 1235, + "start": 31, + "end": 824 + }, + { + "buffer": 1217, + "start": 33, + "end": 855 + }, + { + "buffer": 1216, + "start": 34, + "end": 856 + }, + { + "buffer": 1214, + "start": 35, + "end": 858 + }, + { + "buffer": 1213, + "start": 36, + "end": 860 + }, + { + "buffer": 1212, + "start": 38, + "end": 862 + }, + { + "buffer": 1205, + "start": 40, + "end": 880 + }, + { + "buffer": 1204, + "start": 41, + "end": 881 + }, + { + "buffer": 1202, + "start": 43, + "end": 883 + }, + { + "buffer": 1189, + "start": 47, + "end": 909 + }, + { + "buffer": 1188, + "start": 49, + "end": 911 + }, + { + "buffer": 1159, + "start": 52, + "end": 962 + }, + { + "buffer": 1158, + "start": 54, + "end": 963 + }, + { + "buffer": 1157, + "start": 56, + "end": 964 + }, + { + "buffer": 1156, + "start": 58, + "end": 965 + }, + { + "buffer": 1155, + "start": 60, + "end": 966 + }, + { + "buffer": 1154, + "start": 62, + "end": 967 + }, + { + "buffer": 1153, + "start": 64, + "end": 968 + }, + { + "buffer": 1152, + "start": 66, + "end": 969 + }, + { + "buffer": 1031, + "start": 68, + "end": 4472 + }, + { + "buffer": 1015, + "start": 73, + "end": 4470 + }, + { + "buffer": 1287, + "start": 75, + "end": 736 + }, + { + "buffer": 1286, + "start": 76, + "end": 737 + }, + { + "buffer": 1285, + "start": 77, + "end": 738 + }, + { + "buffer": 1284, + "start": 78, + "end": 739 + }, + { + "buffer": 1279, + "start": 79, + "end": 744 + }, + { + "buffer": 1278, + "start": 80, + "end": 745 + }, + { + "buffer": 1277, + "start": 81, + "end": 746 + }, + { + "buffer": 1276, + "start": 82, + "end": 747 + }, + { + "buffer": 1091, + "start": 766, + "end": 3427 + }, + { + "buffer": 1098, + "start": 769, + "end": 3441 + }, + { + "buffer": 1089, + "start": 771, + "end": 3425 + }, + { + "buffer": 1093, + "start": 774, + "end": 3445 + }, + { + "buffer": 1075, + "start": 790, + "end": 3569 + }, + { + "buffer": 1082, + "start": 793, + "end": 3583 + }, + { + "buffer": 1073, + "start": 795, + "end": 3567 + }, + { + "buffer": 1077, + "start": 798, + "end": 3587 + }, + { + "buffer": 1059, + "start": 814, + "end": 3711 + }, + { + "buffer": 1066, + "start": 817, + "end": 3725 + }, + { + "buffer": 1057, + "start": 819, + "end": 3709 + }, + { + "buffer": 1061, + "start": 822, + "end": 3729 + }, + { + "buffer": 1043, + "start": 838, + "end": 3853 + }, + { + "buffer": 1050, + "start": 841, + "end": 3867 + }, + { + "buffer": 1041, + "start": 843, + "end": 3851 + }, + { + "buffer": 1045, + "start": 846, + "end": 3871 + }, + { + "buffer": 1027, + "start": 863, + "end": 3995 + }, + { + "buffer": 1034, + "start": 866, + "end": 4009 + }, + { + "buffer": 1025, + "start": 868, + "end": 3993 + }, + { + "buffer": 1029, + "start": 871, + "end": 4013 + }, + { + "buffer": 1011, + "start": 888, + "end": 4128 + }, + { + "buffer": 1018, + "start": 891, + "end": 4146 + }, + { + "buffer": 1009, + "start": 893, + "end": 4027 + }, + { + "buffer": 1013, + "start": 896, + "end": 4150 + }, + { + "buffer": 995, + "start": 912, + "end": 4265 + }, + { + "buffer": 1002, + "start": 915, + "end": 4283 + }, + { + "buffer": 993, + "start": 917, + "end": 4164 + }, + { + "buffer": 997, + "start": 920, + "end": 4287 + }, + { + "buffer": 979, + "start": 936, + "end": 4402 + }, + { + "buffer": 986, + "start": 939, + "end": 4420 + }, + { + "buffer": 977, + "start": 941, + "end": 4301 + }, + { + "buffer": 981, + "start": 944, + "end": 4424 + }, + { + "buffer": 1292, + "start": 1046, + "end": 4439 + }, + { + "buffer": 1290, + "start": 1047, + "end": 4438 + }, + { + "buffer": 1009, + "start": 4045, + "end": 4127 + }, + { + "buffer": 993, + "start": 4182, + "end": 4264 + }, + { + "buffer": 977, + "start": 4319, + "end": 4401 + } + ], + "static_plan": [ + { + "buffer": 1295, + "start": 2, + "end": 722, + "slot": 0 + }, + { + "buffer": 1294, + "start": 3, + "end": 723, + "slot": 1 + }, + { + "buffer": 1293, + "start": 5, + "end": 726, + "slot": 2 + }, + { + "buffer": 1292, + "start": 6, + "end": 4439, + "slot": 3 + }, + { + "buffer": 1291, + "start": 8, + "end": 730, + "slot": 4 + }, + { + "buffer": 1290, + "start": 9, + "end": 4438, + "slot": 5 + }, + { + "buffer": 1289, + "start": 11, + "end": 734, + "slot": 6 + }, + { + "buffer": 1288, + "start": 12, + "end": 735, + "slot": 7 + }, + { + "buffer": 1271, + "start": 14, + "end": 752, + "slot": 8 + }, + { + "buffer": 1270, + "start": 17, + "end": 753, + "slot": 9 + }, + { + "buffer": 1261, + "start": 18, + "end": 763, + "slot": 10 + }, + { + "buffer": 1260, + "start": 20, + "end": 765, + "slot": 11 + }, + { + "buffer": 1259, + "start": 23, + "end": 776, + "slot": 12 + }, + { + "buffer": 1247, + "start": 26, + "end": 800, + "slot": 13 + }, + { + "buffer": 1236, + "start": 28, + "end": 813, + "slot": 14 + }, + { + "buffer": 1235, + "start": 31, + "end": 824, + "slot": 15 + }, + { + "buffer": 1217, + "start": 33, + "end": 855, + "slot": 16 + }, + { + "buffer": 1216, + "start": 34, + "end": 856, + "slot": 17 + }, + { + "buffer": 1214, + "start": 35, + "end": 858, + "slot": 18 + }, + { + "buffer": 1213, + "start": 36, + "end": 860, + "slot": 19 + }, + { + "buffer": 1212, + "start": 38, + "end": 862, + "slot": 20 + }, + { + "buffer": 1205, + "start": 40, + "end": 880, + "slot": 21 + }, + { + "buffer": 1204, + "start": 41, + "end": 881, + "slot": 22 + }, + { + "buffer": 1202, + "start": 43, + "end": 883, + "slot": 23 + }, + { + "buffer": 1189, + "start": 47, + "end": 909, + "slot": 24 + }, + { + "buffer": 1188, + "start": 49, + "end": 911, + "slot": 25 + }, + { + "buffer": 1159, + "start": 52, + "end": 962, + "slot": 26 + }, + { + "buffer": 1158, + "start": 54, + "end": 963, + "slot": 27 + }, + { + "buffer": 1157, + "start": 56, + "end": 964, + "slot": 28 + }, + { + "buffer": 1156, + "start": 58, + "end": 965, + "slot": 29 + }, + { + "buffer": 1155, + "start": 60, + "end": 966, + "slot": 30 + }, + { + "buffer": 1154, + "start": 62, + "end": 967, + "slot": 31 + }, + { + "buffer": 1153, + "start": 64, + "end": 968, + "slot": 32 + }, + { + "buffer": 1152, + "start": 66, + "end": 969, + "slot": 33 + }, + { + "buffer": 1031, + "start": 68, + "end": 4472, + "slot": 34 + }, + { + "buffer": 1015, + "start": 73, + "end": 4470, + "slot": 35 + }, + { + "buffer": 1287, + "start": 75, + "end": 736, + "slot": 36 + }, + { + "buffer": 1286, + "start": 76, + "end": 737, + "slot": 37 + }, + { + "buffer": 1285, + "start": 77, + "end": 738, + "slot": 38 + }, + { + "buffer": 1284, + "start": 78, + "end": 739, + "slot": 39 + }, + { + "buffer": 1279, + "start": 79, + "end": 744, + "slot": 40 + }, + { + "buffer": 1278, + "start": 80, + "end": 745, + "slot": 41 + }, + { + "buffer": 1277, + "start": 81, + "end": 746, + "slot": 42 + }, + { + "buffer": 1276, + "start": 82, + "end": 747, + "slot": 43 + }, + { + "buffer": 1091, + "start": 766, + "end": 3427, + "slot": 0 + }, + { + "buffer": 1098, + "start": 769, + "end": 3441, + "slot": 1 + }, + { + "buffer": 1089, + "start": 771, + "end": 3425, + "slot": 2 + }, + { + "buffer": 1093, + "start": 774, + "end": 3445, + "slot": 4 + }, + { + "buffer": 1075, + "start": 790, + "end": 3569, + "slot": 6 + }, + { + "buffer": 1082, + "start": 793, + "end": 3583, + "slot": 7 + }, + { + "buffer": 1073, + "start": 795, + "end": 3567, + "slot": 8 + }, + { + "buffer": 1077, + "start": 798, + "end": 3587, + "slot": 9 + }, + { + "buffer": 1059, + "start": 814, + "end": 3711, + "slot": 10 + }, + { + "buffer": 1066, + "start": 817, + "end": 3725, + "slot": 11 + }, + { + "buffer": 1057, + "start": 819, + "end": 3709, + "slot": 12 + }, + { + "buffer": 1061, + "start": 822, + "end": 3729, + "slot": 13 + }, + { + "buffer": 1043, + "start": 838, + "end": 3853, + "slot": 14 + }, + { + "buffer": 1050, + "start": 841, + "end": 3867, + "slot": 15 + }, + { + "buffer": 1041, + "start": 843, + "end": 3851, + "slot": 36 + }, + { + "buffer": 1045, + "start": 846, + "end": 3871, + "slot": 37 + }, + { + "buffer": 1027, + "start": 863, + "end": 3995, + "slot": 16 + }, + { + "buffer": 1034, + "start": 866, + "end": 4009, + "slot": 17 + }, + { + "buffer": 1025, + "start": 868, + "end": 3993, + "slot": 18 + }, + { + "buffer": 1029, + "start": 871, + "end": 4013, + "slot": 19 + }, + { + "buffer": 1011, + "start": 888, + "end": 4128, + "slot": 20 + }, + { + "buffer": 1018, + "start": 891, + "end": 4146, + "slot": 21 + }, + { + "buffer": 1009, + "start": 893, + "end": 4127, + "slot": 22 + }, + { + "buffer": 1013, + "start": 896, + "end": 4150, + "slot": 23 + }, + { + "buffer": 995, + "start": 912, + "end": 4265, + "slot": 24 + }, + { + "buffer": 1002, + "start": 915, + "end": 4283, + "slot": 25 + }, + { + "buffer": 993, + "start": 917, + "end": 4264, + "slot": 38 + }, + { + "buffer": 997, + "start": 920, + "end": 4287, + "slot": 39 + }, + { + "buffer": 979, + "start": 936, + "end": 4402, + "slot": 40 + }, + { + "buffer": 986, + "start": 939, + "end": 4420, + "slot": 41 + }, + { + "buffer": 977, + "start": 941, + "end": 4401, + "slot": 42 + }, + { + "buffer": 981, + "start": 944, + "end": 4424, + "slot": 43 + } + ], + "allocated_logical_buffers": 76, + "zero_noop_events": [ + 1, + 4, + 7, + 10, + 13, + 16, + 22, + 25, + 30, + 45, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 70, + 72, + 768, + 773, + 792, + 797, + 816, + 821, + 840, + 845, + 865, + 870, + 890, + 895, + 914, + 919, + 938, + 943, + 994, + 995, + 997, + 998, + 999, + 1028, + 1029, + 1030, + 1031, + 1032, + 1035, + 1036, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1048, + 1049, + 3313, + 3314, + 3455, + 3456, + 3597, + 3598, + 3739, + 3740, + 3881, + 3882, + 4023, + 4024, + 4025, + 4029, + 4030, + 4031, + 4032, + 4033, + 4034, + 4160, + 4161, + 4162, + 4166, + 4167, + 4168, + 4169, + 4170, + 4171, + 4297, + 4298, + 4299, + 4303, + 4304, + 4305, + 4306, + 4307, + 4308, + 4440, + 4441, + 4442, + 4443, + 4444, + 4445, + 4446, + 4447, + 4448, + 4449, + 4450, + 4451, + 4452, + 4453, + 4454, + 4455, + 4456, + 4457, + 4458, + 4459, + 4460, + 4461, + 4462, + 4463, + 4464, + 4465, + 4466, + 4467, + 4468, + 4473, + 4474, + 4475, + 4476, + 4477, + 4478, + 4479, + 4480, + 4481, + 4482, + 4483, + 4484, + 4485, + 4486, + 4487, + 4488, + 4489, + 4490, + 4491, + 4492, + 4493, + 4494, + 4495, + 4496, + 4497, + 4498, + 4499, + 4500 + ], + "peak_after_event": 82, + "zero_noop_counts": { + "add": 123, + "scale": 28 + }, + "retained_events": 4349, + "peak_buffers": [ + 1015, + 1031, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1188, + 1189, + 1202, + 1204, + 1205, + 1212, + 1213, + 1214, + 1216, + 1217, + 1235, + 1236, + 1247, + 1259, + 1260, + 1261, + 1270, + 1271, + 1276, + 1277, + 1278, + 1279, + 1284, + 1285, + 1286, + 1287, + 1288, + 1289, + 1290, + 1291, + 1292, + 1293, + 1294, + 1295 + ], + "endpoint_sha256": "6f503c1a8c9695ecc717c6573531dcbf61e35dc2ac7fa0246fb3c7d157f38825", + "peak_rows": [ + [ + 1015, + [ + [ + 499, + [], + "1" + ] + ] + ], + [ + 1031, + [ + [ + 511, + [], + "1" + ] + ] + ], + [ + 1152, + [ + [ + 231, + [], + "1" + ] + ] + ], + [ + 1153, + [ + [ + 226, + [], + "1" + ] + ] + ], + [ + 1154, + [ + [ + 230, + [], + "1" + ] + ] + ], + [ + 1155, + [ + [ + 228, + [], + "1" + ] + ] + ], + [ + 1156, + [ + [ + 232, + [], + "1" + ] + ] + ], + [ + 1157, + [ + [ + 7, + [], + "1" + ] + ] + ], + [ + 1158, + [ + [ + 236, + [], + "1" + ] + ] + ], + [ + 1159, + [ + [ + 238, + [], + "1" + ] + ] + ], + [ + 1188, + [ + [ + 231, + [], + "1" + ], + [ + 299, + [], + "1" + ] + ] + ], + [ + 1189, + [ + [ + 54, + [], + "1" + ], + [ + 226, + [], + "1" + ] + ] + ], + [ + 1202, + [ + [ + 499, + [], + "1" + ] + ] + ], + [ + 1204, + [ + [ + 310, + [], + "1" + ] + ] + ], + [ + 1205, + [ + [ + 308, + [], + "1" + ] + ] + ], + [ + 1212, + [ + [ + 230, + [], + "1" + ], + [ + 331, + [], + "1" + ] + ] + ], + [ + 1213, + [ + [ + 34, + [], + "1" + ], + [ + 228, + [], + "1" + ] + ] + ], + [ + 1214, + [ + [ + 511, + [], + "1" + ] + ] + ], + [ + 1216, + [ + [ + 326, + [], + "1" + ] + ] + ], + [ + 1217, + [ + [ + 324, + [], + "1" + ] + ] + ], + [ + 1235, + [ + [ + 351, + [], + "1" + ], + [ + 436, + [], + "1/2" + ] + ] + ], + [ + 1236, + [ + [ + 232, + [], + "-2" + ], + [ + 363, + [], + "1" + ] + ] + ], + [ + 1247, + [ + [ + 46, + [], + "-1" + ], + [ + 367, + [], + "1" + ] + ] + ], + [ + 1259, + [ + [ + 383, + [], + "1" + ], + [ + 434, + [], + "1/2" + ] + ] + ], + [ + 1260, + [ + [ + 236, + [], + "-2" + ], + [ + 395, + [], + "1" + ] + ] + ], + [ + 1261, + [ + [ + 5, + [], + "1" + ], + [ + 238, + [], + "-2" + ] + ] + ], + [ + 1270, + [ + [ + 69, + [], + "1" + ] + ] + ], + [ + 1271, + [ + [ + 399, + [], + "1" + ], + [ + 446, + [], + "-1" + ] + ] + ], + [ + 1276, + [ + [ + 408, + [], + "1" + ] + ] + ], + [ + 1277, + [ + [ + 105, + [], + "1" + ] + ] + ], + [ + 1278, + [ + [ + 412, + [], + "1" + ] + ] + ], + [ + 1279, + [ + [ + 414, + [], + "1" + ] + ] + ], + [ + 1284, + [ + [ + 424, + [], + "1" + ] + ] + ], + [ + 1285, + [ + [ + 44, + [], + "1" + ] + ] + ], + [ + 1286, + [ + [ + 428, + [], + "1" + ] + ] + ], + [ + 1287, + [ + [ + 430, + [], + "1" + ] + ] + ], + [ + 1288, + [ + [ + 439, + [], + "1" + ] + ] + ], + [ + 1289, + [ + [ + 434, + [], + "1" + ] + ] + ], + [ + 1290, + [ + [ + 438, + [], + "1" + ] + ] + ], + [ + 1291, + [ + [ + 436, + [], + "1" + ] + ] + ], + [ + 1292, + [ + [ + 440, + [], + "1" + ] + ] + ], + [ + 1293, + [ + [ + 46, + [], + "1" + ] + ] + ], + [ + 1294, + [ + [ + 444, + [], + "1" + ] + ] + ], + [ + 1295, + [ + [ + 446, + [], + "1" + ] + ] + ] + ], + "peak_distinct_values": 42, + "peak_equal_value_groups": [ + [ + 1015, + 1202 + ], + [ + 1031, + 1214 + ] + ], + "distinct_value_witness": null, + "controls": [ + "overlap_at_clique", + "early_release", + "dirty_pool_entry", + "closing_add_wrong_sign", + "unallocated_zero_read", + "inverse_warp_sign_changes_endpoint" + ] + }, + { + "orientation": "dual", + "events": 4500, + "entry_columns": 661, + "private_buffers": 76, + "pool_slots": 48, + "interval_count": 65, + "intervals": [ + { + "buffer": 1295, + "start": 1, + "end": 14 + }, + { + "buffer": 1293, + "start": 4, + "end": 26 + }, + { + "buffer": 1291, + "start": 7, + "end": 31 + }, + { + "buffer": 1289, + "start": 10, + "end": 23 + }, + { + "buffer": 1271, + "start": 13, + "end": 995 + }, + { + "buffer": 1270, + "start": 16, + "end": 994 + }, + { + "buffer": 1259, + "start": 22, + "end": 997 + }, + { + "buffer": 1247, + "start": 25, + "end": 998 + }, + { + "buffer": 1235, + "start": 30, + "end": 999 + }, + { + "buffer": 1202, + "start": 44, + "end": 73 + }, + { + "buffer": 1157, + "start": 55, + "end": 810 + }, + { + "buffer": 1031, + "start": 69, + "end": 4491 + }, + { + "buffer": 1015, + "start": 72, + "end": 4477 + }, + { + "buffer": 1287, + "start": 630, + "end": 4468 + }, + { + "buffer": 1286, + "start": 631, + "end": 4452 + }, + { + "buffer": 1279, + "start": 632, + "end": 4443 + }, + { + "buffer": 1278, + "start": 633, + "end": 4446 + }, + { + "buffer": 1285, + "start": 638, + "end": 4449 + }, + { + "buffer": 1284, + "start": 639, + "end": 4465 + }, + { + "buffer": 1277, + "start": 640, + "end": 4441 + }, + { + "buffer": 1276, + "start": 641, + "end": 4462 + }, + { + "buffer": 1205, + "start": 682, + "end": 4483 + }, + { + "buffer": 1204, + "start": 683, + "end": 4480 + }, + { + "buffer": 1214, + "start": 685, + "end": 4486 + }, + { + "buffer": 1217, + "start": 690, + "end": 4456 + }, + { + "buffer": 1216, + "start": 691, + "end": 4459 + }, + { + "buffer": 1202, + "start": 693, + "end": 4500 + }, + { + "buffer": 1270, + "start": 1028, + "end": 1029 + }, + { + "buffer": 1270, + "start": 1030, + "end": 1048 + }, + { + "buffer": 1247, + "start": 1031, + "end": 1032 + }, + { + "buffer": 1235, + "start": 1035, + "end": 1036 + }, + { + "buffer": 1271, + "start": 1039, + "end": 1040 + }, + { + "buffer": 1259, + "start": 1043, + "end": 1044 + }, + { + "buffer": 1089, + "start": 1579, + "end": 3322 + }, + { + "buffer": 1091, + "start": 1593, + "end": 3340 + }, + { + "buffer": 1093, + "start": 1604, + "end": 3366 + }, + { + "buffer": 1098, + "start": 1608, + "end": 3422 + }, + { + "buffer": 1073, + "start": 1733, + "end": 3464 + }, + { + "buffer": 1075, + "start": 1747, + "end": 3482 + }, + { + "buffer": 1077, + "start": 1758, + "end": 3508 + }, + { + "buffer": 1082, + "start": 1762, + "end": 3564 + }, + { + "buffer": 1057, + "start": 1887, + "end": 3606 + }, + { + "buffer": 1059, + "start": 1901, + "end": 3624 + }, + { + "buffer": 1061, + "start": 1912, + "end": 3650 + }, + { + "buffer": 1066, + "start": 1916, + "end": 3706 + }, + { + "buffer": 1041, + "start": 2041, + "end": 3748 + }, + { + "buffer": 1043, + "start": 2055, + "end": 3766 + }, + { + "buffer": 1045, + "start": 2066, + "end": 3792 + }, + { + "buffer": 1050, + "start": 2070, + "end": 3848 + }, + { + "buffer": 1025, + "start": 2195, + "end": 3890 + }, + { + "buffer": 1027, + "start": 2209, + "end": 3908 + }, + { + "buffer": 1029, + "start": 2220, + "end": 3934 + }, + { + "buffer": 1034, + "start": 2224, + "end": 3990 + }, + { + "buffer": 1009, + "start": 2349, + "end": 4034 + }, + { + "buffer": 1011, + "start": 2363, + "end": 4052 + }, + { + "buffer": 1013, + "start": 2374, + "end": 4078 + }, + { + "buffer": 1018, + "start": 2378, + "end": 4133 + }, + { + "buffer": 993, + "start": 2503, + "end": 4171 + }, + { + "buffer": 995, + "start": 2517, + "end": 4189 + }, + { + "buffer": 997, + "start": 2528, + "end": 4215 + }, + { + "buffer": 1002, + "start": 2532, + "end": 4270 + }, + { + "buffer": 977, + "start": 2657, + "end": 4308 + }, + { + "buffer": 979, + "start": 2671, + "end": 4326 + }, + { + "buffer": 981, + "start": 2682, + "end": 4352 + }, + { + "buffer": 986, + "start": 2686, + "end": 4407 + } + ], + "static_plan": [ + { + "buffer": 1295, + "start": 1, + "end": 14, + "slot": 0 + }, + { + "buffer": 1293, + "start": 4, + "end": 26, + "slot": 1 + }, + { + "buffer": 1291, + "start": 7, + "end": 31, + "slot": 2 + }, + { + "buffer": 1289, + "start": 10, + "end": 23, + "slot": 3 + }, + { + "buffer": 1271, + "start": 13, + "end": 1040, + "slot": 4 + }, + { + "buffer": 1270, + "start": 16, + "end": 1048, + "slot": 0 + }, + { + "buffer": 1259, + "start": 22, + "end": 1044, + "slot": 5 + }, + { + "buffer": 1247, + "start": 25, + "end": 1032, + "slot": 3 + }, + { + "buffer": 1235, + "start": 30, + "end": 1036, + "slot": 1 + }, + { + "buffer": 1202, + "start": 44, + "end": 4500, + "slot": 2 + }, + { + "buffer": 1157, + "start": 55, + "end": 810, + "slot": 6 + }, + { + "buffer": 1031, + "start": 69, + "end": 4491, + "slot": 7 + }, + { + "buffer": 1015, + "start": 72, + "end": 4477, + "slot": 8 + }, + { + "buffer": 1287, + "start": 630, + "end": 4468, + "slot": 9 + }, + { + "buffer": 1286, + "start": 631, + "end": 4452, + "slot": 10 + }, + { + "buffer": 1279, + "start": 632, + "end": 4443, + "slot": 11 + }, + { + "buffer": 1278, + "start": 633, + "end": 4446, + "slot": 12 + }, + { + "buffer": 1285, + "start": 638, + "end": 4449, + "slot": 13 + }, + { + "buffer": 1284, + "start": 639, + "end": 4465, + "slot": 14 + }, + { + "buffer": 1277, + "start": 640, + "end": 4441, + "slot": 15 + }, + { + "buffer": 1276, + "start": 641, + "end": 4462, + "slot": 16 + }, + { + "buffer": 1205, + "start": 682, + "end": 4483, + "slot": 17 + }, + { + "buffer": 1204, + "start": 683, + "end": 4480, + "slot": 18 + }, + { + "buffer": 1214, + "start": 685, + "end": 4486, + "slot": 19 + }, + { + "buffer": 1217, + "start": 690, + "end": 4456, + "slot": 20 + }, + { + "buffer": 1216, + "start": 691, + "end": 4459, + "slot": 21 + }, + { + "buffer": 1089, + "start": 1579, + "end": 3322, + "slot": 0 + }, + { + "buffer": 1091, + "start": 1593, + "end": 3340, + "slot": 1 + }, + { + "buffer": 1093, + "start": 1604, + "end": 3366, + "slot": 3 + }, + { + "buffer": 1098, + "start": 1608, + "end": 3422, + "slot": 4 + }, + { + "buffer": 1073, + "start": 1733, + "end": 3464, + "slot": 5 + }, + { + "buffer": 1075, + "start": 1747, + "end": 3482, + "slot": 6 + }, + { + "buffer": 1077, + "start": 1758, + "end": 3508, + "slot": 22 + }, + { + "buffer": 1082, + "start": 1762, + "end": 3564, + "slot": 23 + }, + { + "buffer": 1057, + "start": 1887, + "end": 3606, + "slot": 24 + }, + { + "buffer": 1059, + "start": 1901, + "end": 3624, + "slot": 25 + }, + { + "buffer": 1061, + "start": 1912, + "end": 3650, + "slot": 26 + }, + { + "buffer": 1066, + "start": 1916, + "end": 3706, + "slot": 27 + }, + { + "buffer": 1041, + "start": 2041, + "end": 3748, + "slot": 28 + }, + { + "buffer": 1043, + "start": 2055, + "end": 3766, + "slot": 29 + }, + { + "buffer": 1045, + "start": 2066, + "end": 3792, + "slot": 30 + }, + { + "buffer": 1050, + "start": 2070, + "end": 3848, + "slot": 31 + }, + { + "buffer": 1025, + "start": 2195, + "end": 3890, + "slot": 32 + }, + { + "buffer": 1027, + "start": 2209, + "end": 3908, + "slot": 33 + }, + { + "buffer": 1029, + "start": 2220, + "end": 3934, + "slot": 34 + }, + { + "buffer": 1034, + "start": 2224, + "end": 3990, + "slot": 35 + }, + { + "buffer": 1009, + "start": 2349, + "end": 4034, + "slot": 36 + }, + { + "buffer": 1011, + "start": 2363, + "end": 4052, + "slot": 37 + }, + { + "buffer": 1013, + "start": 2374, + "end": 4078, + "slot": 38 + }, + { + "buffer": 1018, + "start": 2378, + "end": 4133, + "slot": 39 + }, + { + "buffer": 993, + "start": 2503, + "end": 4171, + "slot": 40 + }, + { + "buffer": 995, + "start": 2517, + "end": 4189, + "slot": 41 + }, + { + "buffer": 997, + "start": 2528, + "end": 4215, + "slot": 42 + }, + { + "buffer": 1002, + "start": 2532, + "end": 4270, + "slot": 43 + }, + { + "buffer": 977, + "start": 2657, + "end": 4308, + "slot": 44 + }, + { + "buffer": 979, + "start": 2671, + "end": 4326, + "slot": 45 + }, + { + "buffer": 981, + "start": 2682, + "end": 4352, + "slot": 46 + }, + { + "buffer": 986, + "start": 2686, + "end": 4407, + "slot": 47 + } + ], + "allocated_logical_buffers": 58, + "zero_noop_events": [ + 3, + 6, + 9, + 12, + 18, + 19, + 20, + 21, + 28, + 29, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 43, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 68, + 71, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 721, + 722, + 723, + 725, + 726, + 727, + 729, + 730, + 731, + 733, + 734, + 735, + 762, + 763, + 764, + 765, + 766, + 768, + 769, + 771, + 773, + 774, + 790, + 792, + 793, + 795, + 797, + 798, + 812, + 813, + 814, + 816, + 817, + 819, + 821, + 822, + 838, + 840, + 841, + 843, + 845, + 846, + 859, + 860, + 861, + 862, + 863, + 865, + 866, + 868, + 870, + 871, + 888, + 890, + 891, + 893, + 895, + 896, + 908, + 909, + 910, + 911, + 912, + 914, + 915, + 917, + 919, + 920, + 936, + 938, + 939, + 941, + 943, + 944, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 1045, + 1046, + 1047, + 1049, + 1563, + 1564, + 1571, + 1572, + 1575, + 1576, + 1578, + 1581, + 1590, + 1591, + 1592, + 1598, + 1599, + 1600, + 1601, + 1602, + 1603, + 1607, + 1717, + 1718, + 1725, + 1726, + 1729, + 1730, + 1732, + 1735, + 1744, + 1745, + 1746, + 1752, + 1753, + 1754, + 1755, + 1756, + 1757, + 1761, + 1871, + 1872, + 1879, + 1880, + 1883, + 1884, + 1886, + 1889, + 1898, + 1899, + 1900, + 1906, + 1907, + 1908, + 1909, + 1910, + 1911, + 1915, + 2025, + 2026, + 2033, + 2034, + 2037, + 2038, + 2040, + 2043, + 2052, + 2053, + 2054, + 2060, + 2061, + 2062, + 2063, + 2064, + 2065, + 2069, + 2179, + 2180, + 2187, + 2188, + 2191, + 2192, + 2194, + 2197, + 2206, + 2207, + 2208, + 2214, + 2215, + 2216, + 2217, + 2218, + 2219, + 2223, + 2333, + 2334, + 2341, + 2342, + 2345, + 2346, + 2348, + 2351, + 2360, + 2361, + 2362, + 2368, + 2369, + 2370, + 2371, + 2372, + 2373, + 2377, + 2487, + 2488, + 2495, + 2496, + 2499, + 2500, + 2502, + 2505, + 2514, + 2515, + 2516, + 2522, + 2523, + 2524, + 2525, + 2526, + 2527, + 2531, + 2641, + 2642, + 2649, + 2650, + 2653, + 2654, + 2656, + 2659, + 2668, + 2669, + 2670, + 2676, + 2677, + 2678, + 2679, + 2680, + 2681, + 2685, + 3333, + 3347, + 3349, + 3376, + 3385, + 3399, + 3401, + 3403, + 3416, + 3417, + 3418, + 3425, + 3427, + 3429, + 3431, + 3441, + 3445, + 3475, + 3489, + 3491, + 3518, + 3527, + 3541, + 3543, + 3545, + 3558, + 3559, + 3560, + 3567, + 3569, + 3571, + 3573, + 3583, + 3587, + 3617, + 3631, + 3633, + 3660, + 3669, + 3683, + 3685, + 3687, + 3700, + 3701, + 3702, + 3709, + 3711, + 3713, + 3715, + 3725, + 3729, + 3759, + 3773, + 3775, + 3802, + 3811, + 3825, + 3827, + 3829, + 3842, + 3843, + 3844, + 3851, + 3853, + 3855, + 3857, + 3867, + 3871, + 3901, + 3915, + 3917, + 3944, + 3953, + 3967, + 3969, + 3971, + 3984, + 3985, + 3986, + 3993, + 3995, + 3997, + 3999, + 4009, + 4013, + 4045, + 4059, + 4061, + 4088, + 4096, + 4110, + 4112, + 4114, + 4127, + 4128, + 4129, + 4138, + 4146, + 4150, + 4182, + 4196, + 4198, + 4225, + 4233, + 4247, + 4249, + 4251, + 4264, + 4265, + 4266, + 4275, + 4283, + 4287, + 4319, + 4333, + 4335, + 4362, + 4370, + 4384, + 4386, + 4388, + 4401, + 4402, + 4403, + 4412, + 4420, + 4424, + 4438, + 4439, + 4497 + ], + "peak_after_event": 2686, + "zero_noop_counts": { + "add": 361, + "scale": 48 + }, + "retained_events": 4091, + "peak_buffers": [ + 977, + 979, + 981, + 986, + 993, + 995, + 997, + 1002, + 1009, + 1011, + 1013, + 1015, + 1018, + 1025, + 1027, + 1029, + 1031, + 1034, + 1041, + 1043, + 1045, + 1050, + 1057, + 1059, + 1061, + 1066, + 1073, + 1075, + 1077, + 1082, + 1089, + 1091, + 1093, + 1098, + 1202, + 1204, + 1205, + 1214, + 1216, + 1217, + 1276, + 1277, + 1278, + 1279, + 1284, + 1285, + 1286, + 1287 + ], + "endpoint_sha256": "7a9580e5d6080400a9c419132326da2d179b91e60213dba7a662093709469fca", + "peak_rows": [ + [ + 977, + [ + [ + 9, + [], + "1" + ], + [ + 11, + [], + "1" + ], + [ + 17, + [], + "-1" + ], + [ + 77, + [], + "1" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 103, + [], + "1" + ], + [ + 272, + [], + "1" + ] + ] + ], + [ + 979, + [ + [ + 9, + [], + "-1" + ], + [ + 11, + [], + "1" + ], + [ + 17, + [], + "-1" + ], + [ + 77, + [], + "1" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 103, + [], + "1" + ], + [ + 272, + [], + "-1" + ] + ] + ], + [ + 981, + [ + [ + 9, + [], + "1" + ], + [ + 11, + [], + "-1" + ], + [ + 17, + [], + "-1" + ], + [ + 77, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 103, + [], + "1" + ], + [ + 272, + [], + "1" + ] + ] + ], + [ + 986, + [ + [ + 9, + [], + "-1" + ], + [ + 11, + [], + "-1" + ], + [ + 17, + [], + "1" + ], + [ + 77, + [], + "-1" + ], + [ + 81, + [], + "1" + ], + [ + 92, + [], + "-1" + ], + [ + 103, + [], + "-1" + ], + [ + 272, + [], + "-1" + ] + ] + ], + [ + 993, + [ + [ + 18, + [], + "1" + ], + [ + 19, + [], + "-1/4" + ], + [ + 39, + [], + "-1" + ], + [ + 40, + [], + "-1" + ], + [ + 66, + [], + "1/4" + ], + [ + 79, + [], + "-1/2" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 240, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 285, + [], + "-1/2" + ], + [ + 288, + [], + "1" + ], + [ + 292, + [], + "1" + ], + [ + 317, + [], + "-1/4" + ], + [ + 356, + [], + "-1/2" + ], + [ + 410, + [], + "1" + ], + [ + 467, + [], + "1" + ], + [ + 489, + [], + "1" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "1/4" + ], + [ + 612, + [], + "-1/2" + ], + [ + 635, + [], + "1" + ], + [ + 636, + [], + "1/4" + ], + [ + 658, + [], + "-1/2" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 995, + [ + [ + 18, + [], + "2" + ], + [ + 19, + [], + "-1/4" + ], + [ + 39, + [], + "2" + ], + [ + 79, + [], + "-1/2" + ], + [ + 92, + [], + "2" + ], + [ + 240, + [], + "2" + ], + [ + 285, + [], + "-1/2" + ], + [ + 294, + [], + "1" + ], + [ + 317, + [], + "-1/4" + ], + [ + 358, + [], + "-1/2" + ], + [ + 376, + [], + "1/4" + ], + [ + 417, + [], + "-1/2" + ], + [ + 466, + [], + "1" + ], + [ + 488, + [], + "1" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "1/4" + ], + [ + 610, + [], + "1" + ], + [ + 634, + [], + "1" + ], + [ + 637, + [], + "1/4" + ], + [ + 658, + [], + "-1/2" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 997, + [ + [ + 10, + [], + "-1/2" + ], + [ + 18, + [], + "1" + ], + [ + 39, + [], + "-1" + ], + [ + 40, + [], + "1" + ], + [ + 81, + [], + "1" + ], + [ + 92, + [], + "1" + ], + [ + 240, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 261, + [], + "1/4" + ], + [ + 288, + [], + "1" + ], + [ + 295, + [], + "1" + ], + [ + 302, + [], + "-1/4" + ], + [ + 343, + [], + "-1/2" + ], + [ + 380, + [], + "1/4" + ], + [ + 397, + [], + "-1/2" + ], + [ + 403, + [], + "-1/2" + ], + [ + 442, + [], + "-1/4" + ], + [ + 458, + [], + "1" + ], + [ + 486, + [], + "1" + ], + [ + 493, + [], + "-1/2" + ], + [ + 517, + [], + "1/4" + ], + [ + 602, + [], + "1" + ], + [ + 640, + [], + "1" + ], + [ + 648, + [], + "-1/2" + ], + [ + 692, + [], + "1/4" + ] + ] + ], + [ + 1002, + [ + [ + 18, + [], + "-1" + ], + [ + 39, + [], + "1" + ], + [ + 40, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 92, + [], + "-1" + ], + [ + 225, + [], + "-1/4" + ], + [ + 240, + [], + "1" + ], + [ + 256, + [], + "1" + ], + [ + 264, + [], + "1/2" + ], + [ + 288, + [], + "1" + ], + [ + 294, + [], + "1" + ], + [ + 296, + [], + "1/4" + ], + [ + 333, + [], + "1/2" + ], + [ + 358, + [], + "-1/2" + ], + [ + 376, + [], + "1/4" + ], + [ + 417, + [], + "-1/2" + ], + [ + 466, + [], + "1" + ], + [ + 488, + [], + "1" + ], + [ + 490, + [], + "1/2" + ], + [ + 502, + [], + "-1/4" + ], + [ + 610, + [], + "1" + ], + [ + 634, + [], + "1" + ], + [ + 637, + [], + "1/4" + ], + [ + 660, + [], + "1/4" + ], + [ + 682, + [], + "1/2" + ] + ] + ], + [ + 1009, + [ + [ + 11, + [], + "-1" + ], + [ + 24, + [], + "-1/4" + ], + [ + 35, + [], + "-1" + ], + [ + 45, + [], + "1" + ], + [ + 60, + [], + "1/4" + ], + [ + 92, + [], + "1" + ], + [ + 107, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 225, + [], + "-1/4" + ], + [ + 256, + [], + "1" + ], + [ + 260, + [], + "1" + ], + [ + 292, + [], + "1" + ], + [ + 304, + [], + "1" + ], + [ + 308, + [], + "1" + ], + [ + 356, + [], + "-1/2" + ], + [ + 410, + [], + "1" + ], + [ + 426, + [], + "1" + ], + [ + 469, + [], + "-1/2" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "-1/4" + ], + [ + 612, + [], + "-1/2" + ], + [ + 628, + [], + "1/4" + ], + [ + 666, + [], + "-1/2" + ], + [ + 669, + [], + "-1/4" + ], + [ + 682, + [], + "-1/2" + ] + ] + ], + [ + 1011, + [ + [ + 11, + [], + "2" + ], + [ + 24, + [], + "-1/4" + ], + [ + 35, + [], + "2" + ], + [ + 45, + [], + "2" + ], + [ + 92, + [], + "2" + ], + [ + 225, + [], + "-1/4" + ], + [ + 262, + [], + "1" + ], + [ + 294, + [], + "1" + ], + [ + 310, + [], + "1" + ], + [ + 358, + [], + "-1/2" + ], + [ + 360, + [], + "1/4" + ], + [ + 417, + [], + "-1/2" + ], + [ + 433, + [], + "1/4" + ], + [ + 469, + [], + "-1/2" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "-1/4" + ], + [ + 610, + [], + "1" + ], + [ + 626, + [], + "1" + ], + [ + 666, + [], + "-1/2" + ], + [ + 669, + [], + "-1/4" + ], + [ + 682, + [], + "-1/2" + ] + ] + ], + [ + 1013, + [ + [ + 11, + [], + "-1" + ], + [ + 35, + [], + "-1" + ], + [ + 45, + [], + "1" + ], + [ + 92, + [], + "1" + ], + [ + 107, + [], + "1" + ], + [ + 224, + [], + "1" + ], + [ + 227, + [], + "-1/4" + ], + [ + 247, + [], + "1" + ], + [ + 256, + [], + "1" + ], + [ + 279, + [], + "1" + ], + [ + 304, + [], + "1" + ], + [ + 318, + [], + "-1/4" + ], + [ + 345, + [], + "-1/4" + ], + [ + 359, + [], + "-1/2" + ], + [ + 364, + [], + "1/4" + ], + [ + 405, + [], + "-1/2" + ], + [ + 463, + [], + "-1/2" + ], + [ + 481, + [], + "-1/2" + ], + [ + 499, + [], + "1" + ], + [ + 505, + [], + "-1/4" + ], + [ + 600, + [], + "1" + ], + [ + 616, + [], + "1" + ], + [ + 623, + [], + "1/4" + ], + [ + 672, + [], + "-1/2" + ], + [ + 688, + [], + "-1/2" + ] + ] + ], + [ + 1015, + [ + [ + 229, + [], + "-1/4" + ], + [ + 247, + [], + "1" + ], + [ + 279, + [], + "1" + ], + [ + 316, + [], + "-1/4" + ], + [ + 359, + [], + "-1/2" + ], + [ + 364, + [], + "1/4" + ], + [ + 381, + [], + "-1/4" + ], + [ + 405, + [], + "-1/2" + ], + [ + 462, + [], + "-1/2" + ], + [ + 480, + [], + "-1/2" + ], + [ + 499, + [], + "1" + ], + [ + 504, + [], + "-1/4" + ], + [ + 600, + [], + "1" + ], + [ + 616, + [], + "1" + ], + [ + 623, + [], + "1/4" + ], + [ + 673, + [], + "-1/2" + ], + [ + 689, + [], + "-1/2" + ] + ] + ], + [ + 1018, + [ + [ + 11, + [], + "1" + ], + [ + 35, + [], + "1" + ], + [ + 45, + [], + "-1" + ], + [ + 92, + [], + "-1" + ], + [ + 107, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 262, + [], + "1" + ], + [ + 285, + [], + "1/2" + ], + [ + 294, + [], + "1" + ], + [ + 304, + [], + "1" + ], + [ + 310, + [], + "1" + ], + [ + 312, + [], + "1/4" + ], + [ + 358, + [], + "-1/2" + ], + [ + 360, + [], + "1/4" + ], + [ + 417, + [], + "-1/2" + ], + [ + 433, + [], + "1/4" + ], + [ + 468, + [], + "1/2" + ], + [ + 490, + [], + "1/2" + ], + [ + 502, + [], + "1/4" + ], + [ + 610, + [], + "1" + ], + [ + 626, + [], + "1" + ], + [ + 667, + [], + "1/2" + ], + [ + 668, + [], + "1/4" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 1025, + [ + [ + 9, + [], + "1" + ], + [ + 22, + [], + "-1" + ], + [ + 23, + [], + "-1" + ], + [ + 28, + [], + "1/4" + ], + [ + 92, + [], + "1" + ], + [ + 108, + [], + "1" + ], + [ + 109, + [], + "-1/4" + ], + [ + 224, + [], + "-1" + ], + [ + 234, + [], + "-1/4" + ], + [ + 240, + [], + "-1" + ], + [ + 258, + [], + "1" + ], + [ + 276, + [], + "1" + ], + [ + 320, + [], + "1" + ], + [ + 324, + [], + "1" + ], + [ + 340, + [], + "-1/2" + ], + [ + 393, + [], + "-1/4" + ], + [ + 419, + [], + "-1/2" + ], + [ + 471, + [], + "-1/2" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "-1/4" + ], + [ + 609, + [], + "1" + ], + [ + 619, + [], + "1" + ], + [ + 620, + [], + "1/4" + ], + [ + 674, + [], + "-1/2" + ], + [ + 680, + [], + "-1/2" + ] + ] + ], + [ + 1027, + [ + [ + 23, + [], + "2" + ], + [ + 92, + [], + "2" + ], + [ + 108, + [], + "2" + ], + [ + 109, + [], + "-1/4" + ], + [ + 234, + [], + "-1/4" + ], + [ + 240, + [], + "2" + ], + [ + 263, + [], + "1" + ], + [ + 278, + [], + "1" + ], + [ + 326, + [], + "1" + ], + [ + 342, + [], + "-1/2" + ], + [ + 344, + [], + "1/4" + ], + [ + 393, + [], + "-1/4" + ], + [ + 421, + [], + "-1/2" + ], + [ + 471, + [], + "-1/2" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "-1/4" + ], + [ + 608, + [], + "1" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "1/4" + ], + [ + 674, + [], + "-1/2" + ], + [ + 680, + [], + "-1/2" + ] + ] + ], + [ + 1029, + [ + [ + 9, + [], + "1" + ], + [ + 22, + [], + "1" + ], + [ + 23, + [], + "-1" + ], + [ + 92, + [], + "1" + ], + [ + 108, + [], + "1" + ], + [ + 224, + [], + "1" + ], + [ + 240, + [], + "-1" + ], + [ + 246, + [], + "1" + ], + [ + 295, + [], + "1" + ], + [ + 320, + [], + "1" + ], + [ + 334, + [], + "-1/4" + ], + [ + 343, + [], + "-1/2" + ], + [ + 348, + [], + "1/4" + ], + [ + 377, + [], + "-1/4" + ], + [ + 403, + [], + "-1/2" + ], + [ + 437, + [], + "1/4" + ], + [ + 461, + [], + "-1/2" + ], + [ + 493, + [], + "-1/2" + ], + [ + 511, + [], + "1" + ], + [ + 517, + [], + "-1/4" + ], + [ + 602, + [], + "1" + ], + [ + 624, + [], + "1" + ], + [ + 664, + [], + "-1/2" + ], + [ + 671, + [], + "-1/4" + ], + [ + 690, + [], + "-1/2" + ] + ] + ], + [ + 1031, + [ + [ + 246, + [], + "1" + ], + [ + 295, + [], + "1" + ], + [ + 332, + [], + "-1/4" + ], + [ + 343, + [], + "-1/2" + ], + [ + 348, + [], + "1/4" + ], + [ + 397, + [], + "-1/2" + ], + [ + 403, + [], + "-1/2" + ], + [ + 437, + [], + "1/4" + ], + [ + 460, + [], + "-1/2" + ], + [ + 492, + [], + "-1/2" + ], + [ + 511, + [], + "1" + ], + [ + 516, + [], + "-1/4" + ], + [ + 602, + [], + "1" + ], + [ + 624, + [], + "1" + ], + [ + 665, + [], + "-1/2" + ], + [ + 670, + [], + "-1/4" + ], + [ + 692, + [], + "-1/4" + ] + ] + ], + [ + 1034, + [ + [ + 9, + [], + "1" + ], + [ + 22, + [], + "-1" + ], + [ + 23, + [], + "1" + ], + [ + 92, + [], + "-1" + ], + [ + 108, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 240, + [], + "1" + ], + [ + 241, + [], + "1/2" + ], + [ + 263, + [], + "1" + ], + [ + 278, + [], + "1" + ], + [ + 281, + [], + "1/4" + ], + [ + 320, + [], + "1" + ], + [ + 326, + [], + "1" + ], + [ + 328, + [], + "1/4" + ], + [ + 342, + [], + "-1/2" + ], + [ + 344, + [], + "1/4" + ], + [ + 421, + [], + "-1/2" + ], + [ + 470, + [], + "1/2" + ], + [ + 478, + [], + "1/2" + ], + [ + 514, + [], + "1/4" + ], + [ + 608, + [], + "1" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "1/4" + ], + [ + 676, + [], + "1/4" + ], + [ + 681, + [], + "1/2" + ] + ] + ], + [ + 1041, + [ + [ + 11, + [], + "-1" + ], + [ + 28, + [], + "-1/4" + ], + [ + 57, + [], + "1" + ], + [ + 58, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 86, + [], + "-1" + ], + [ + 93, + [], + "1" + ], + [ + 109, + [], + "1/4" + ], + [ + 241, + [], + "-1/2" + ], + [ + 256, + [], + "1" + ], + [ + 258, + [], + "1" + ], + [ + 276, + [], + "1" + ], + [ + 281, + [], + "1/4" + ], + [ + 336, + [], + "1" + ], + [ + 340, + [], + "1/2" + ], + [ + 421, + [], + "1/2" + ], + [ + 471, + [], + "-1/2" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "1/4" + ], + [ + 525, + [], + "1" + ], + [ + 527, + [], + "-1/2" + ], + [ + 608, + [], + "1" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "-1/4" + ], + [ + 676, + [], + "1/4" + ], + [ + 681, + [], + "-1/2" + ] + ] + ], + [ + 1043, + [ + [ + 11, + [], + "2" + ], + [ + 28, + [], + "-1/4" + ], + [ + 57, + [], + "2" + ], + [ + 86, + [], + "2" + ], + [ + 93, + [], + "2" + ], + [ + 234, + [], + "1/4" + ], + [ + 258, + [], + "1" + ], + [ + 278, + [], + "1" + ], + [ + 281, + [], + "1/4" + ], + [ + 328, + [], + "1/4" + ], + [ + 342, + [], + "1/2" + ], + [ + 419, + [], + "1/2" + ], + [ + 470, + [], + "-1/2" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "1/4" + ], + [ + 524, + [], + "1" + ], + [ + 527, + [], + "-1/2" + ], + [ + 609, + [], + "1" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "-1/4" + ], + [ + 674, + [], + "-1/2" + ], + [ + 681, + [], + "-1/2" + ] + ] + ], + [ + 1045, + [ + [ + 11, + [], + "-1" + ], + [ + 57, + [], + "1" + ], + [ + 58, + [], + "1" + ], + [ + 81, + [], + "1" + ], + [ + 86, + [], + "-1" + ], + [ + 93, + [], + "1" + ], + [ + 244, + [], + "1" + ], + [ + 256, + [], + "1" + ], + [ + 295, + [], + "1" + ], + [ + 332, + [], + "1/4" + ], + [ + 336, + [], + "1" + ], + [ + 343, + [], + "1/2" + ], + [ + 350, + [], + "-1/4" + ], + [ + 397, + [], + "-1/2" + ], + [ + 401, + [], + "1" + ], + [ + 437, + [], + "-1/4" + ], + [ + 460, + [], + "-1/2" + ], + [ + 493, + [], + "-1/2" + ], + [ + 517, + [], + "1/4" + ], + [ + 522, + [], + "1" + ], + [ + 529, + [], + "-1/2" + ], + [ + 604, + [], + "1/2" + ], + [ + 624, + [], + "1" + ], + [ + 664, + [], + "-1/2" + ], + [ + 671, + [], + "1/4" + ], + [ + 692, + [], + "1/4" + ] + ] + ], + [ + 1050, + [ + [ + 11, + [], + "1" + ], + [ + 57, + [], + "-1" + ], + [ + 58, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 86, + [], + "1" + ], + [ + 93, + [], + "-1" + ], + [ + 234, + [], + "1/4" + ], + [ + 256, + [], + "1" + ], + [ + 263, + [], + "-1" + ], + [ + 278, + [], + "1" + ], + [ + 328, + [], + "1/4" + ], + [ + 336, + [], + "1" + ], + [ + 342, + [], + "1/2" + ], + [ + 344, + [], + "1/4" + ], + [ + 393, + [], + "-1/4" + ], + [ + 419, + [], + "1/2" + ], + [ + 470, + [], + "-1/2" + ], + [ + 478, + [], + "1/2" + ], + [ + 514, + [], + "-1/4" + ], + [ + 524, + [], + "1" + ], + [ + 526, + [], + "1/2" + ], + [ + 609, + [], + "1" + ], + [ + 619, + [], + "-1" + ], + [ + 620, + [], + "1/4" + ], + [ + 674, + [], + "-1/2" + ], + [ + 680, + [], + "1/2" + ] + ] + ], + [ + 1057, + [ + [ + 9, + [], + "1" + ], + [ + 24, + [], + "1/4" + ], + [ + 29, + [], + "-1" + ], + [ + 30, + [], + "-1" + ], + [ + 57, + [], + "1" + ], + [ + 59, + [], + "1" + ], + [ + 60, + [], + "-1/4" + ], + [ + 81, + [], + "-1" + ], + [ + 240, + [], + "-1" + ], + [ + 260, + [], + "1" + ], + [ + 285, + [], + "-1/2" + ], + [ + 292, + [], + "1" + ], + [ + 352, + [], + "1" + ], + [ + 356, + [], + "1/2" + ], + [ + 417, + [], + "1/2" + ], + [ + 433, + [], + "-1/4" + ], + [ + 469, + [], + "-1/2" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "1/4" + ], + [ + 537, + [], + "1" + ], + [ + 539, + [], + "-1/2" + ], + [ + 610, + [], + "1" + ], + [ + 626, + [], + "1" + ], + [ + 667, + [], + "-1/2" + ], + [ + 668, + [], + "1/4" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 1059, + [ + [ + 29, + [], + "2" + ], + [ + 57, + [], + "2" + ], + [ + 59, + [], + "2" + ], + [ + 60, + [], + "-1/4" + ], + [ + 240, + [], + "2" + ], + [ + 260, + [], + "1" + ], + [ + 285, + [], + "-1/2" + ], + [ + 294, + [], + "1" + ], + [ + 312, + [], + "1/4" + ], + [ + 358, + [], + "1/2" + ], + [ + 410, + [], + "1" + ], + [ + 433, + [], + "-1/4" + ], + [ + 468, + [], + "-1/2" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "1/4" + ], + [ + 536, + [], + "1" + ], + [ + 539, + [], + "-1/2" + ], + [ + 612, + [], + "1/2" + ], + [ + 626, + [], + "1" + ], + [ + 666, + [], + "-1/2" + ], + [ + 669, + [], + "1/4" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 1061, + [ + [ + 9, + [], + "1" + ], + [ + 29, + [], + "-1" + ], + [ + 30, + [], + "1" + ], + [ + 57, + [], + "1" + ], + [ + 59, + [], + "1" + ], + [ + 81, + [], + "1" + ], + [ + 227, + [], + "1/4" + ], + [ + 240, + [], + "-1" + ], + [ + 242, + [], + "1" + ], + [ + 279, + [], + "1" + ], + [ + 316, + [], + "1/4" + ], + [ + 352, + [], + "1" + ], + [ + 359, + [], + "1/2" + ], + [ + 366, + [], + "-1/4" + ], + [ + 381, + [], + "1/4" + ], + [ + 462, + [], + "-1/2" + ], + [ + 481, + [], + "-1/2" + ], + [ + 505, + [], + "1/4" + ], + [ + 534, + [], + "1" + ], + [ + 541, + [], + "-1/2" + ], + [ + 601, + [], + "1" + ], + [ + 606, + [], + "1/2" + ], + [ + 616, + [], + "1" + ], + [ + 623, + [], + "-1/4" + ], + [ + 672, + [], + "-1/2" + ], + [ + 689, + [], + "-1/2" + ] + ] + ], + [ + 1066, + [ + [ + 9, + [], + "1" + ], + [ + 29, + [], + "1" + ], + [ + 30, + [], + "-1" + ], + [ + 57, + [], + "-1" + ], + [ + 59, + [], + "-1" + ], + [ + 81, + [], + "-1" + ], + [ + 225, + [], + "-1/4" + ], + [ + 240, + [], + "1" + ], + [ + 262, + [], + "-1" + ], + [ + 294, + [], + "1" + ], + [ + 312, + [], + "1/4" + ], + [ + 352, + [], + "1" + ], + [ + 358, + [], + "1/2" + ], + [ + 360, + [], + "1/4" + ], + [ + 410, + [], + "1" + ], + [ + 426, + [], + "-1" + ], + [ + 468, + [], + "-1/2" + ], + [ + 490, + [], + "1/2" + ], + [ + 502, + [], + "-1/4" + ], + [ + 536, + [], + "1" + ], + [ + 538, + [], + "1/2" + ], + [ + 612, + [], + "1/2" + ], + [ + 628, + [], + "1/4" + ], + [ + 666, + [], + "-1/2" + ], + [ + 669, + [], + "1/4" + ], + [ + 682, + [], + "1/2" + ] + ] + ], + [ + 1073, + [ + [ + 8, + [], + "1" + ], + [ + 9, + [], + "1" + ], + [ + 11, + [], + "-1" + ], + [ + 19, + [], + "1/4" + ], + [ + 26, + [], + "-1" + ], + [ + 57, + [], + "1" + ], + [ + 66, + [], + "-1/4" + ], + [ + 79, + [], + "-1/2" + ], + [ + 95, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 225, + [], + "-1/4" + ], + [ + 292, + [], + "1" + ], + [ + 333, + [], + "-1/2" + ], + [ + 356, + [], + "1/2" + ], + [ + 368, + [], + "1" + ], + [ + 372, + [], + "1" + ], + [ + 417, + [], + "1/2" + ], + [ + 467, + [], + "1" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "-1/4" + ], + [ + 549, + [], + "1" + ], + [ + 551, + [], + "-1/2" + ], + [ + 610, + [], + "1" + ], + [ + 634, + [], + "1" + ], + [ + 637, + [], + "-1/4" + ], + [ + 660, + [], + "1/4" + ], + [ + 682, + [], + "-1/2" + ] + ] + ], + [ + 1075, + [ + [ + 8, + [], + "2" + ], + [ + 11, + [], + "2" + ], + [ + 26, + [], + "2" + ], + [ + 57, + [], + "2" + ], + [ + 66, + [], + "-1/4" + ], + [ + 225, + [], + "-1/4" + ], + [ + 264, + [], + "-1/2" + ], + [ + 294, + [], + "1" + ], + [ + 296, + [], + "1/4" + ], + [ + 317, + [], + "1/4" + ], + [ + 358, + [], + "1/2" + ], + [ + 374, + [], + "1" + ], + [ + 410, + [], + "1" + ], + [ + 467, + [], + "1" + ], + [ + 491, + [], + "-1/2" + ], + [ + 503, + [], + "-1/4" + ], + [ + 548, + [], + "1" + ], + [ + 551, + [], + "-1/2" + ], + [ + 612, + [], + "1/2" + ], + [ + 634, + [], + "1" + ], + [ + 637, + [], + "-1/4" + ], + [ + 658, + [], + "-1/2" + ], + [ + 682, + [], + "-1/2" + ] + ] + ], + [ + 1077, + [ + [ + 8, + [], + "1" + ], + [ + 9, + [], + "1" + ], + [ + 11, + [], + "-1" + ], + [ + 26, + [], + "-1" + ], + [ + 57, + [], + "1" + ], + [ + 95, + [], + "1" + ], + [ + 224, + [], + "1" + ], + [ + 248, + [], + "-1/2" + ], + [ + 261, + [], + "-1/4" + ], + [ + 295, + [], + "1" + ], + [ + 300, + [], + "1/4" + ], + [ + 343, + [], + "1/2" + ], + [ + 368, + [], + "1" + ], + [ + 375, + [], + "1" + ], + [ + 377, + [], + "-1/4" + ], + [ + 382, + [], + "-1/4" + ], + [ + 401, + [], + "1" + ], + [ + 442, + [], + "1/4" + ], + [ + 459, + [], + "1" + ], + [ + 493, + [], + "-1/2" + ], + [ + 517, + [], + "-1/4" + ], + [ + 546, + [], + "1" + ], + [ + 553, + [], + "-1/2" + ], + [ + 604, + [], + "1/2" + ], + [ + 640, + [], + "1" + ], + [ + 648, + [], + "-1/2" + ], + [ + 690, + [], + "-1/2" + ] + ] + ], + [ + 1082, + [ + [ + 8, + [], + "-1" + ], + [ + 9, + [], + "1" + ], + [ + 11, + [], + "1" + ], + [ + 26, + [], + "1" + ], + [ + 57, + [], + "-1" + ], + [ + 95, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 264, + [], + "-1/2" + ], + [ + 285, + [], + "1/2" + ], + [ + 294, + [], + "1" + ], + [ + 296, + [], + "1/4" + ], + [ + 317, + [], + "1/4" + ], + [ + 358, + [], + "1/2" + ], + [ + 368, + [], + "1" + ], + [ + 374, + [], + "1" + ], + [ + 376, + [], + "1/4" + ], + [ + 410, + [], + "1" + ], + [ + 466, + [], + "-1" + ], + [ + 490, + [], + "1/2" + ], + [ + 502, + [], + "1/4" + ], + [ + 548, + [], + "1" + ], + [ + 550, + [], + "1/2" + ], + [ + 612, + [], + "1/2" + ], + [ + 635, + [], + "-1" + ], + [ + 636, + [], + "1/4" + ], + [ + 658, + [], + "-1/2" + ], + [ + 684, + [], + "1/4" + ] + ] + ], + [ + 1089, + [ + [ + 38, + [], + "1/4" + ], + [ + 57, + [], + "1" + ], + [ + 64, + [], + "-1" + ], + [ + 65, + [], + "-1" + ], + [ + 96, + [], + "1" + ], + [ + 97, + [], + "-1/4" + ], + [ + 224, + [], + "-1" + ], + [ + 240, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 266, + [], + "-1/4" + ], + [ + 270, + [], + "-1/2" + ], + [ + 276, + [], + "1" + ], + [ + 340, + [], + "1/2" + ], + [ + 384, + [], + "1" + ], + [ + 388, + [], + "1" + ], + [ + 393, + [], + "-1/4" + ], + [ + 421, + [], + "1/2" + ], + [ + 465, + [], + "1" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "-1/4" + ], + [ + 554, + [], + "-1/2" + ], + [ + 561, + [], + "1" + ], + [ + 563, + [], + "-1/2" + ], + [ + 608, + [], + "1" + ], + [ + 642, + [], + "1" + ], + [ + 652, + [], + "1/4" + ], + [ + 680, + [], + "-1/2" + ] + ] + ], + [ + 1091, + [ + [ + 57, + [], + "2" + ], + [ + 65, + [], + "2" + ], + [ + 73, + [], + "1/4" + ], + [ + 96, + [], + "2" + ], + [ + 97, + [], + "-1/4" + ], + [ + 240, + [], + "2" + ], + [ + 266, + [], + "-1/4" + ], + [ + 268, + [], + "-1/2" + ], + [ + 278, + [], + "1" + ], + [ + 280, + [], + "1/4" + ], + [ + 342, + [], + "1/2" + ], + [ + 390, + [], + "1" + ], + [ + 393, + [], + "-1/4" + ], + [ + 419, + [], + "1/2" + ], + [ + 465, + [], + "1" + ], + [ + 479, + [], + "-1/2" + ], + [ + 515, + [], + "-1/4" + ], + [ + 560, + [], + "1" + ], + [ + 563, + [], + "-1/2" + ], + [ + 609, + [], + "1" + ], + [ + 642, + [], + "1" + ], + [ + 650, + [], + "-1/2" + ], + [ + 680, + [], + "-1/2" + ] + ] + ], + [ + 1093, + [ + [ + 57, + [], + "1" + ], + [ + 64, + [], + "1" + ], + [ + 65, + [], + "-1" + ], + [ + 96, + [], + "1" + ], + [ + 224, + [], + "1" + ], + [ + 240, + [], + "-1" + ], + [ + 245, + [], + "1/4" + ], + [ + 252, + [], + "-1/2" + ], + [ + 256, + [], + "1" + ], + [ + 279, + [], + "1" + ], + [ + 284, + [], + "1/4" + ], + [ + 345, + [], + "-1/4" + ], + [ + 359, + [], + "1/2" + ], + [ + 384, + [], + "1" + ], + [ + 391, + [], + "1" + ], + [ + 398, + [], + "-1/4" + ], + [ + 457, + [], + "1" + ], + [ + 481, + [], + "-1/2" + ], + [ + 505, + [], + "-1/4" + ], + [ + 558, + [], + "1" + ], + [ + 565, + [], + "-1/2" + ], + [ + 601, + [], + "1" + ], + [ + 606, + [], + "1/2" + ], + [ + 632, + [], + "1" + ], + [ + 639, + [], + "-1/4" + ], + [ + 656, + [], + "-1/2" + ], + [ + 688, + [], + "-1/2" + ] + ] + ], + [ + 1098, + [ + [ + 57, + [], + "-1" + ], + [ + 64, + [], + "-1" + ], + [ + 65, + [], + "1" + ], + [ + 73, + [], + "1/4" + ], + [ + 96, + [], + "-1" + ], + [ + 224, + [], + "-1" + ], + [ + 240, + [], + "1" + ], + [ + 250, + [], + "-1" + ], + [ + 256, + [], + "1" + ], + [ + 268, + [], + "-1/2" + ], + [ + 278, + [], + "1" + ], + [ + 280, + [], + "1/4" + ], + [ + 281, + [], + "1/4" + ], + [ + 342, + [], + "1/2" + ], + [ + 384, + [], + "1" + ], + [ + 390, + [], + "1" + ], + [ + 392, + [], + "1/4" + ], + [ + 419, + [], + "1/2" + ], + [ + 464, + [], + "-1" + ], + [ + 478, + [], + "1/2" + ], + [ + 514, + [], + "1/4" + ], + [ + 560, + [], + "1" + ], + [ + 562, + [], + "1/2" + ], + [ + 609, + [], + "1" + ], + [ + 644, + [], + "1/4" + ], + [ + 650, + [], + "-1/2" + ], + [ + 681, + [], + "1/2" + ] + ] + ], + [ + 1202, + [ + [ + 247, + [], + "1" + ], + [ + 364, + [], + "1/4" + ], + [ + 616, + [], + "1" + ], + [ + 623, + [], + "1/4" + ] + ] + ], + [ + 1204, + [ + [ + 262, + [], + "1" + ], + [ + 360, + [], + "1/4" + ], + [ + 433, + [], + "1/4" + ], + [ + 626, + [], + "1" + ] + ] + ], + [ + 1205, + [ + [ + 60, + [], + "1/4" + ], + [ + 260, + [], + "1" + ], + [ + 426, + [], + "1" + ], + [ + 628, + [], + "1/4" + ] + ] + ], + [ + 1214, + [ + [ + 246, + [], + "1" + ], + [ + 348, + [], + "1/4" + ], + [ + 437, + [], + "1/4" + ], + [ + 624, + [], + "1" + ] + ] + ], + [ + 1216, + [ + [ + 263, + [], + "1" + ], + [ + 344, + [], + "1/4" + ], + [ + 618, + [], + "1" + ], + [ + 621, + [], + "1/4" + ] + ] + ], + [ + 1217, + [ + [ + 28, + [], + "1/4" + ], + [ + 258, + [], + "1" + ], + [ + 619, + [], + "1" + ], + [ + 620, + [], + "1/4" + ] + ] + ], + [ + 1276, + [ + [ + 312, + [], + "1/2" + ], + [ + 468, + [], + "1" + ], + [ + 667, + [], + "1" + ], + [ + 668, + [], + "1/2" + ] + ] + ], + [ + 1277, + [ + [ + 24, + [], + "1/2" + ], + [ + 469, + [], + "1" + ], + [ + 666, + [], + "1" + ], + [ + 669, + [], + "1/2" + ] + ] + ], + [ + 1278, + [ + [ + 241, + [], + "1" + ], + [ + 328, + [], + "1/2" + ], + [ + 470, + [], + "1" + ], + [ + 676, + [], + "1/2" + ] + ] + ], + [ + 1279, + [ + [ + 109, + [], + "1/2" + ], + [ + 234, + [], + "1/2" + ], + [ + 471, + [], + "1" + ], + [ + 674, + [], + "1" + ] + ] + ], + [ + 1284, + [ + [ + 332, + [], + "1/2" + ], + [ + 460, + [], + "1" + ], + [ + 665, + [], + "1" + ], + [ + 670, + [], + "1/2" + ] + ] + ], + [ + 1285, + [ + [ + 334, + [], + "1/2" + ], + [ + 461, + [], + "1" + ], + [ + 664, + [], + "1" + ], + [ + 671, + [], + "1/2" + ] + ] + ], + [ + 1286, + [ + [ + 229, + [], + "1/2" + ], + [ + 316, + [], + "1/2" + ], + [ + 462, + [], + "1" + ], + [ + 673, + [], + "1" + ] + ] + ], + [ + 1287, + [ + [ + 227, + [], + "1/2" + ], + [ + 318, + [], + "1/2" + ], + [ + 463, + [], + "1" + ], + [ + 672, + [], + "1" + ] + ] + ] + ], + "peak_distinct_values": 48, + "peak_equal_value_groups": [], + "distinct_value_witness": { + "seed": 0, + "input_rule": "int.from_bytes(SHA256(UTF8('T74-pool/{seed}/{register}'))[:2], 'big') - 32768", + "unused_inputs": 0, + "max_input_abs": 32736, + "buffer_values": [ + [ + 977, + "-66443" + ], + [ + 979, + "15277" + ], + [ + 981, + "-99997" + ], + [ + 986, + "66443" + ], + [ + 993, + "-87491/2" + ], + [ + 995, + "-474879/4" + ], + [ + 997, + "-35913/4" + ], + [ + 1002, + "22855" + ], + [ + 1009, + "-26207/4" + ], + [ + 1011, + "-197065/4" + ], + [ + 1013, + "-193075/4" + ], + [ + 1015, + "-257885/4" + ], + [ + 1018, + "32893/4" + ], + [ + 1025, + "-231577/4" + ], + [ + 1027, + "-278197/4" + ], + [ + 1029, + "-463285/4" + ], + [ + 1031, + "-63744" + ], + [ + 1034, + "89511/2" + ], + [ + 1041, + "64565/4" + ], + [ + 1043, + "309287/4" + ], + [ + 1045, + "-122713/2" + ], + [ + 1050, + "-17479" + ], + [ + 1057, + "150591/4" + ], + [ + 1059, + "-218197/4" + ], + [ + 1061, + "-57671/2" + ], + [ + 1066, + "-549403/4" + ], + [ + 1073, + "17550" + ], + [ + 1075, + "153965/4" + ], + [ + 1077, + "-115307/2" + ], + [ + 1082, + "165043/2" + ], + [ + 1089, + "39693" + ], + [ + 1091, + "64171/2" + ], + [ + 1093, + "169471/4" + ], + [ + 1098, + "-707881/4" + ], + [ + 1202, + "-190673/4" + ], + [ + 1204, + "17437/2" + ], + [ + 1205, + "17079" + ], + [ + 1214, + "-220961/4" + ], + [ + 1216, + "-52681/4" + ], + [ + 1217, + "148565/4" + ], + [ + 1276, + "1391" + ], + [ + 1277, + "5616" + ], + [ + 1278, + "24198" + ], + [ + 1279, + "16530" + ], + [ + 1284, + "-20556" + ], + [ + 1285, + "23907" + ], + [ + 1286, + "-20955/2" + ], + [ + 1287, + "-63499/2" + ] + ] + }, + "controls": [ + "overlap_at_clique", + "early_release", + "dirty_pool_entry", + "closing_add_wrong_sign", + "unallocated_zero_read", + "inverse_warp_sign_changes_endpoint" + ] + } + ] + } +} diff --git a/research/t74-cleanup-buffer-pooling/INPUTS.json b/research/t74-cleanup-buffer-pooling/INPUTS.json new file mode 100644 index 0000000000..01c6d3612b --- /dev/null +++ b/research/t74-cleanup-buffer-pooling/INPUTS.json @@ -0,0 +1,40 @@ +{ + "schema_version": 1, + "files": [ + { + "path": "source/BORROW-WORD-43base.json.gz", + "source_path": "research/gmx-t74-borrow43/new/borrow/words/BORROW-WORD-43base.json.gz", + "source_commit": "b479fc5567bc09ab9185bffe89b62594f36d74e5", + "git_blob": "448dd795adba29392a90b34aa3f1b1b796c7e0bd", + "sha256": "9492a5537fb87d9ca98dffcd0230f7625b3789744fa94e2f18acf23d91d998b5" + }, + { + "path": "source/BORROW-WORD-43extra.json.gz", + "source_path": "research/gmx-t74-borrow43/new/borrow/words/BORROW-WORD-43extra.json.gz", + "source_commit": "b479fc5567bc09ab9185bffe89b62594f36d74e5", + "git_blob": "2b51ba96256283bbc5578f99b694c50edd8a0e35", + "sha256": "87d51f5298101d5947f45c43ee02f0ec45d6acbddabb808d0d02db1eaf063734" + }, + { + "path": "source/NOTICE", + "source_path": "research/gmx-t74-borrow43/NOTICE", + "source_commit": "b479fc5567bc09ab9185bffe89b62594f36d74e5", + "git_blob": "46411b80b277d7dcd653a6d1999eaf12975b1103", + "sha256": "a91b93a731f116ae55b3644c88232b4d996e58bb810e2559dec013f9788f5e4b" + }, + { + "path": "source/NOTICE-PR2226.md", + "source_path": "research/gmx-t74-borrow43/new/code/borrow/NOTICE-PR2226.md", + "source_commit": "b479fc5567bc09ab9185bffe89b62594f36d74e5", + "git_blob": "05c74506185550dd47277d6d6aff8e1f4110c97d", + "sha256": "9bd600b2a7aa46da910548d619e362e0540772da5f271b74d8f58de5d153ee0e" + }, + { + "path": "source/PR2226-NOTICE.md", + "source_path": "research/gmx-t74-borrow43/new/code/borrow/vendor/PR2226-NOTICE.md", + "source_commit": "b479fc5567bc09ab9185bffe89b62594f36d74e5", + "git_blob": "5ea70357a04d083dba066fbc5c809a5736d8edd6", + "sha256": "f1d45d886926915531e3a59968abf0a4c974d7038f869848e71bd3a21b834422" + } + ] +} diff --git a/research/t74-cleanup-buffer-pooling/README.md b/research/t74-cleanup-buffer-pooling/README.md new file mode 100644 index 0000000000..2a120441b5 --- /dev/null +++ b/research/t74-cleanup-buffer-pooling/README.md @@ -0,0 +1,183 @@ +# A 48-field private pool for the borrowed T74 cleanup + +**The frozen PR2269 cleanup can use 48 private FULL-frame fields in place of +76 dedicated buffers.** The forward orientation needs 44 slots in the certified +interval schedule; the inverse-transpose orientation needs 48. A shared-capacity +bank therefore saves **28 fields**. No scalar operation is added: 151 and 409 +proved zero operations, respectively, are omitted, and the remaining operations +keep their original order. All 661 ordinary entry arrays are arbitrary. + +This is a finite allocation construction with a scoped proof, author-checked +with an independently represented dense cross-check. It is not an admitted +supplier, a new recursive profile, a new κ, or independent human review. + +## Exact source and result + +The claim is in [Discussion #2609](https://github.com/CrocSwap/integer-mult-bounds/discussions/2609). + +The two `BORROW-WORD-43base/extra.json.gz` files are byte-for-byte copies from +Jeremy Kothe's [PR2269](https://github.com/CrocSwap/integer-mult-bounds/pull/2269), +head `b479fc5567bc09ab9185bffe89b62594f36d74e5`. Their serialized cleanup lists +are identical, although their enclosing words differ. We bind both files and +check both orientations; this is one common cleanup stream, not four different +constructions. [INPUTS.json](INPUTS.json) records original paths, commit, Git +blob IDs and SHA256 hashes. Source notices are retained unchanged. + +[Sagar Thakrar's PR2315](https://github.com/CrocSwap/integer-mult-bounds/pull/2315), +head `4a2f20ea339e30348448096ca789d0efe55df9bb`, reproduced the words and found +that the 76 eagerly allocated buffers had not been charged. Later constructions +charge dedicated banks. This package addresses the distinct storage-reuse +question; it does not repair or endorse the rest of PR2269's record claim. + +| Per enclosing word | Forward | Inverse transpose | +| --- | ---: | ---: | +| Original private buffers | 76 | 76 | +| Buffers ever formally nonzero | 76 | 58 | +| Maximal nonzero intervals | 81 | 65 | +| Optimal interval-pool slots | 44 | 48 | +| First maximum, after cleanup event (one-based) | 82 | 2686 | +| Zero ADDs omitted | 123 | 361 | +| Zero SCALEs omitted | 28 | 48 | +| WARP operations retained | 43 | 43 | +| Original / retained total operations | 4500 / 4349 | 4500 / 4091 | + +[EXPECTED.json](EXPECTED.json) contains every nonzero interval, a **static +per-logical-buffer** slot assignment over the hull of its intervals, the exact +peak rows, the omitted event numbers, and the ordinary endpoint digest. The +static hull coloring already attains the same peak as splitting lifetimes; +no mid-lifetime copying, dynamic allocator, or value-dependent decision is +required. `pooled_replay` in [verify.py](verify.py) executes that allocation. + +## Model and proof + +Let `A = Q[F_43]` be the group algebra of the free group on the 43 invertible +warp symbols. Each of the 661 ordinary registers starts as a separate free +module generator `x_r`; every private buffer starts at zero. A scalar gate +adds a rational multiple of one row to another or scales one row. A warp +left-multiplies every term by its symbol; only adjacent inverse symbols cancel. +This is exact symbolic arithmetic, not numerical sampling. For the second +orientation, ADDs reverse source/destination and negate their coefficient, +SCALEs invert their coefficient, and symbol `j` denotes `K_j^(-T)`. +Applying inverse transpose to each chronological gate preserves gate order. + +A reduced row is zero exactly when all its coefficients vanish. Trace each +buffer's maximal nonzero intervals. A zero source makes an ADD the identity; +a SCALE or WARP applied to a zero buffer is also the identity. Removing exactly +these events is valid for arbitrary ordinary inputs and for **any** invertible +substitution for the warp symbols. Both buffers and ordinary data are checked +as part of the final boundary. No caller-specific reachable-state restriction +is used: the proof checks all independent cleanup-entry arrays. + +For each logical buffer, take the hull from its first nonzero write through +its last zero-return event. Color these inclusive integer intervals by the +usual earliest-available-slot rule. Each assigned field is zero at allocation, +contains the logical value while allocated, and is zero at release. An +induction over events proves that renamed execution equals the original +execution: skipped events are identities, and every retained source and target +is allocated or ordinary. The verifier checks the zero boundary at each +allocation/release and compares every ordinary endpoint coefficient. All pool +fields return to zero. + +The 44 forward and 48 dual simultaneous-live intervals certify lower bounds +for **interval allocation with distinct storage for overlapping lifetimes**; +the displayed colorings attain them. This alone would not exclude equal-value +coalescing. Indeed, at the first forward peak two pairs of buffers carry equal +expressions, so we do not claim a forward minimum under that broader model. + +There is a stronger certificate for the **common 48-field bank**. At dual cut +2686, all 48 private rows are distinct and nonzero, and every row is a plain +rational linear form: all warp symbols have canceled. The receipt gives an +explicit small input witness using SHA256-derived signed 16-bit integers +(seed 0, maximum absolute input 32736). Its 48 outputs are distinct and nonzero; +maximum absolute output is `707881/4`, and denominators divide 4. The witness +therefore survives the actual invertible warp specialization. On this input, +a field storing one literal buffer value cannot store another different +buffer value at the same cut. Thus 48 is also a sharp common capacity for +**direct literal storage**, even allowing equal-value coalescing, when ordinary +registers and the declared event boundaries are retained. + +That lower bound does **not** allow encoding several values into a field, +address packing, borrowing ordinary/cold storage, recomputation, spilling, +changes to precision, or resynthesis/reordering of the cleanup. It is not an +information-theoretic scratch lower bound for arbitrary circuits. + +## Cost and interface boundary + +All original cleanup gates carry the FULL frame; preserved cold helpers are +never touched directly. The checker binds the private namespace to exactly +`704 + cold_helper` and confirms that no earlier section touches those buffers. +The new bank is used only in the same cleanup interval. Logical scalar work +decreases by the zero operations above, and the retained warp count is unchanged. +The construction adds no arithmetic, transport, copy, or recursive call. + +Under a convention that clears each physical private field once at allocation +and once at release, the candidate uses 88 forward or 96 dual CLEARs instead of +152, or 96 for a common 48-field bank. These are conditional invoice counts, +not a checked native emitter patch. Static routing, array allocation, exact +native phase bindings, precision/tape constants, full hosted admission, and +integration with later 78-buffer words remain to be checked. A smaller private +bank by itself does not establish any change in κ. + +## Reproduce + +Python 3.12, standard library only, from the repository root: + +```sh +python3 -I -B scripts/research_package.py --package research/t74-cleanup-buffer-pooling +``` + +Equivalent direct commands: + +```sh +python3 -I -O -B research/t74-cleanup-buffer-pooling/verify.py +python3 -I -B research/t74-cleanup-buffer-pooling/check_dense.py +``` + +Expected final markers are `PASS_T74_CLEANUP_BUFFER_POOLING` and +`PASS_DENSE_POOL_ORACLE cases=8 columns_per_case=1322 primes=65537,1000003 noncommuting=PASS`. +Replay is read-only. `verify.py --write FRESH_PATH` explicitly creates a fresh +receipt and refuses to overwrite an existing path. Default replay recomputes +and compares every stored certificate field, preserving JSON type distinctions. + +The primary has six semantic controls per word/orientation: overlapping +allocation, release before zero, dirty pool entry, a wrong-sign closing ADD, +a re-enabled unallocated zero read, and an inverse-warp sign change that alters +the ordinary endpoint despite scratch cleanup. `check_dense.py` imports neither +the primary nor predecessor code. It separately interprets literal gates using +noncommuting determinant-one 2-by-2 matrices over each of two prime fields, +checks all 1322 scalar basis inputs, every zero/nonzero lifetime, the peak-row +certificate, the pooled boundary and scratch restoration. This finite-field +cross-check supports implementation confidence; the group-algebra derivation +and rational replay establish the exact identities. + +## Open next questions + +- **Native adoption on this pinned word.** Emit the static slot renaming and + skipped identities in the native cleanup, then price allocation and routing. + This would turn the logical pool into an admitted physical saving; the native + stream and whole-call accounting are the missing artifacts. +- **Later borrowed words.** Apply the same independently derived lifetime test + to a named 78-buffer successor, checking its exact cleanup instead of carrying + forward the number 48. Changed kernels and source-partner lifetimes may change + the intervals and peak; no such transfer is established here. +- **Forward equal-value coalescing.** At forward cut 82, `(1015,1202)` and + `(1031,1214)` coincide. Examine their next writes before trying a smaller + forward-only bank. Equal values at one cut do not authorize merging complete + lifetimes, and cannot defeat the dual 48-value witness in the direct-storage + model. + +Structured questions and the changed task scope are in [TASK.json](TASK.json). + +## Credit + +Prepared for commdata2338 (@commdata2338), with substantial OpenAI Codex assistance. + +Jeremy Kothe/PR2269 supplies the frozen T74 words. Sagar Thakrar/PR2315 supplies +the independent accounting finding. Cinna Davis (@1337isnot1337)/PR2226 supplies +the anticipatory dirty-borrowing mechanism, early restoration and private-zero +cleanup. Dugongue/PR2309 supplies dedicated private-stock accounting in the +successor line. Rohan Arun, Marius-Paul Dumitrean, icekylinx and the retained +T74/provider/compiler lineage keep the attribution in `source/` notices. +No predecessor code is imported, executed or copied into the new checkers. +The copied words and notices retain their original Apache-2.0 context. +No independent human review or hosted-CI success is claimed. diff --git a/research/t74-cleanup-buffer-pooling/SOURCES.json b/research/t74-cleanup-buffer-pooling/SOURCES.json new file mode 100644 index 0000000000..392737aa2a --- /dev/null +++ b/research/t74-cleanup-buffer-pooling/SOURCES.json @@ -0,0 +1,18 @@ +{ + "schema_version": 1, + "base_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", + "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "e8870e5917057d59b730eb14721a778639eca050", + "sha256": "d46eb6d5b3e279428753d770653663fbdf1063e55c255ea073d768f344927ef7" + } + ] +} diff --git a/research/t74-cleanup-buffer-pooling/TASK.json b/research/t74-cleanup-buffer-pooling/TASK.json new file mode 100644 index 0000000000..0b253492aa --- /dev/null +++ b/research/t74-cleanup-buffer-pooling/TASK.json @@ -0,0 +1,95 @@ +{ + "schema_version": 1, + "task_id": "complex-new-helper-inventory", + "priority_revision": 4, + "base_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "original_card": { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + }, + "scope_status": "changed", + "actual_scope": "Exact zero-to-zero private-buffer allocation for the two frozen PR2269 cleanup words, with a 48-field common pool and scoped direct-storage lower bound.", + "scope_change_reason": "Take the central private-buffer accounting question identified by PR2315. This finite storage construction does not claim the catalogue construction/ceiling acceptance gate.", + "bottleneck_link": "Dirty borrowing introduces private FULL-frame cleanup fields. Safe interval reuse reduces the physical bank without altering the paid recursive profile; native integration remains open.", + "budget_minutes": 60, + "stop_rule": "Stop after the two pinned cleanup words, both orientations, exact pooled boundary and lower-bound witness, with source and semantic controls. No record search or global admission.", + "outcome": "completed", + "evidence": "EXPECTED.json: 44 forward / 48 dual slots; all 661 ordinary entry columns; six controls in each of four bound cases. check_dense.py independently checks 1322 scalar columns in each of eight cases.", + "author": "commdata2338", + "ai_assistance": "OpenAI Codex (GPT-6 Astra) derived, implemented, checked and wrote the contribution; no independent human review.", + "open_questions": [ + { + "question": "Can the 48-field pool be emitted and admitted natively on these pinned words?", + "why_it_matters": "Turns a logical scratch reduction into a checked physical invoice.", + "first_step": "Translate the static slot map and zero-event omissions into the native cleanup and verify allocation, routing and exact boundary.", + "blocked_by": "No native emitter patch or whole-call accounting replay is supplied." + }, + { + "question": "What pool is valid for a named later 78-buffer successor?", + "why_it_matters": "New source partners and kernels may change the actual private-storage peak.", + "first_step": "Pin that successor and recompute its complete cleanup lifetimes before making a capacity claim.", + "blocked_by": "Later cleanup words are outside this certificate." + }, + { + "question": "Can forward-only equal-value coalescing improve on its 44-slot interval schedule?", + "why_it_matters": "Two pairs agree at the first peak, but later writes may split them.", + "first_step": "Trace the next writes of pairs (1015,1202) and (1031,1214) with a charged split rule.", + "blocked_by": "Equal-value lifetime coalescing and modified circuits are not certified; the dual common-bank floor remains 48." + } + ], + "scope_key": "f3b0895a4f9f1cc62e75/PR2269-private-zero-pool", + "predecessors": [ + { + "pr": 2269, + "head": "b479fc5567bc09ab9185bffe89b62594f36d74e5" + }, + { + "pr": 2315, + "head": "4a2f20ea339e30348448096ca789d0efe55df9bb" + } + ], + "result_kind": "finite construction and scoped proof", + "discussion": "https://github.com/CrocSwap/integer-mult-bounds/discussions/2609", + "refresh_checkpoint": { + "main_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "priority_revision": 4, + "checked_utc": "2026-10-15T16:24:54.125659+00:00", + "decision": "Main and contribution guidance unchanged. Retain PR2269 as the intentional frozen scientific input; no transfer to later cleanup words or selected frontier is claimed." + } +} diff --git a/research/t74-cleanup-buffer-pooling/VERIFY.json b/research/t74-cleanup-buffer-pooling/VERIFY.json new file mode 100644 index 0000000000..77aeaae1ed --- /dev/null +++ b/research/t74-cleanup-buffer-pooling/VERIFY.json @@ -0,0 +1,30 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Exact source-bound free-group-algebra lifetime, pooled endpoint, scoped minimum witness, stored receipt and six semantic controls per case." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/check_dense.py" + ], + "timeout_seconds": 180, + "checks": "Code-disjoint noncommuting dense finite-field all-column cross-check of lifetimes, peak rows and pooled endpoints." + } + ] +} diff --git a/research/t74-cleanup-buffer-pooling/check_dense.py b/research/t74-cleanup-buffer-pooling/check_dense.py new file mode 100644 index 0000000000..934fa0c916 --- /dev/null +++ b/research/t74-cleanup-buffer-pooling/check_dense.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python3 +"""Independent dense finite-field controls for the exact free-algebra certificate. + +No imports from verify.py or a predecessor. This is a cross-check, not the +rational identity proof. All 1,322 input coordinates are distinct columns. +Prepared for commdata2338 with substantial OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import gzip +import hashlib +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parent + + +def need(value, message): + if not value: + raise RuntimeError(message) + + +def matrix(number, modulus, dual, inverse): + # Determinant-one, noncommuting matrices: [[1,a],[b,1+ab]]. + a = number + 1 + b = number * number + 1 + m = (1, a, b, 1 + a*b) + if dual: # K^{-T} + m = (m[3], -m[2], -m[1], m[0]) + if inverse: + m = (m[3], -m[1], -m[2], m[0]) + return tuple(x % modulus for x in m) + + +def run(word, receipt, modulus): + dual = receipt["orientation"] == "dual" + n = 2 * word["report"]["v"] + word["report"]["R"] + ordinary = sorted(set(range(n)) - set(word["removed"])) + scratch = sorted(n + int(r) for r in word["helper_final"]) + width = 2 * len(ordinary) + state = {} + for j, r in enumerate(ordinary): + state[r] = [[int(i == 2*j+k) for i in range(width)] for k in (0, 1)] + for r in scratch: + state[r] = [[0] * width, [0] * width] + original = {r: [x.copy() for x in rows] for r, rows in state.items()} + pool = {r: [x.copy() for x in rows] for r, rows in state.items() if r in ordinary} + for slot in range(receipt["pool_slots"]): + pool[-slot-1] = [[0]*width, [0]*width] + allocation = {x["buffer"]: -x["slot"]-1 for x in receipt["static_plan"]} + skipped = set(receipt["zero_noop_events"]) + active, observed = {}, [] + peak = 0 + column = {r: j for j, r in enumerate(ordinary)} + + def operation(storage, gate, renamed=False): + kind = gate[0] + destination = gate[1] + if kind == "add": + source = gate[2] + q = gate[3] * pow(gate[4], -1, modulus) % modulus + if dual: + destination, source, q = source, destination, -q % modulus + if renamed: + destination = allocation.get(destination, destination) + source = allocation.get(source, source) + rows = storage[destination] + other = storage[source] + storage[destination] = [[(x + q*y) % modulus for x, y in zip(a, b)] + for a, b in zip(rows, other)] + elif kind == "scale": + q = gate[2] * pow(gate[3], -1, modulus) % modulus + if dual: + q = pow(q, -1, modulus) + if renamed: + destination = allocation.get(destination, destination) + storage[destination] = [[q*x % modulus for x in row] for row in storage[destination]] + elif kind == "warp": + if renamed: + destination = allocation.get(destination, destination) + a, b, c, d = matrix(abs(gate[2]), modulus, dual, gate[2] < 0) + x, y = storage[destination] + storage[destination] = [[(a*u+b*v) % modulus for u, v in zip(x, y)], + [(c*u+d*v) % modulus for u, v in zip(x, y)]] + else: + raise RuntimeError("unknown literal opcode") + return destination + + for step, gate in enumerate(word["cleanup"], 1): + destination = gate[2] if dual and gate[0] == "add" else gate[1] + before = any(any(row) for row in original[destination]) + destination = operation(original, gate) + after = any(any(row) for row in original[destination]) + if destination in scratch: + if after and not before: + active[destination] = step + elif before and not after: + observed.append(dict(buffer=destination, start=active.pop(destination), end=step)) + peak = max(peak, len(active)) + if step == receipt["peak_after_event"]: + for r, terms in receipt["peak_rows"]: + expected = [[0]*width, [0]*width] + for source, letters, text in terms: + need(not letters, "claimed peak is not operator-free") + numerator, slash, denominator = text.partition("/") + q = int(numerator) * pow(int(denominator) if slash else 1, -1, modulus) % modulus + expected[0][2*column[source]] = q + expected[1][2*column[source]+1] = q + need(original[r] == expected, "dense peak-row certificate mismatch") + if step not in skipped: + operation(pool, gate, True) + else: + # Independently verify every skipped operator acts on a zero source. + if gate[0] == "add": + r = gate[1] if dual else gate[2] + need(not any(any(row) for row in original[r]), "skipped nonzero ADD") + else: + need(not after, "skipped nonzero SCALE/WARP") + observed.sort(key=lambda x: (x["start"], x["buffer"])) + need(observed == receipt["intervals"], "dense and formal lifetimes differ") + need(peak == receipt["pool_slots"], "dense and formal peaks differ") + need(not active, "dense private exit") + need(all(original[r] == pool[r] for r in ordinary), "dense pooled boundary mismatch") + need(all(not any(any(row) for row in pool[-slot-1]) for slot in range(receipt["pool_slots"])), + "dense pool exit") + # A scalar commutative interpretation could conceal incorrect word order. + k1 = matrix(1, modulus, False, False) + k2 = matrix(2, modulus, False, False) + product12 = (k1[0]*k2[1]+k1[1]*k2[3]) % modulus + product21 = (k2[0]*k1[1]+k2[1]*k1[3]) % modulus + need(product12 != product21, "commuting oracle control") + return width + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--receipt", type=Path, default=ROOT / "EXPECTED.json") + args = parser.parse_args() + receipt = json.loads(args.receipt.read_text()) + inputs = json.loads((ROOT / "INPUTS.json").read_text()) + for item in inputs["files"]: + need(hashlib.sha256((ROOT/item["path"]).read_bytes()).hexdigest() == item["sha256"], "source pin") + cases = 0 + for name in ("base", "extra"): + word = json.loads(gzip.decompress((ROOT/"source"/f"BORROW-WORD-43{name}.json.gz").read_bytes())) + for orientation in receipt["words"][name]: + for modulus in (65537, 1000003): + columns = run(word, orientation, modulus) + cases += 1 + print(f"PASS_DENSE_POOL_ORACLE cases={cases} columns_per_case={columns} primes=65537,1000003 noncommuting=PASS") + + +if __name__ == "__main__": + main() diff --git a/research/t74-cleanup-buffer-pooling/source/BORROW-WORD-43base.json.gz b/research/t74-cleanup-buffer-pooling/source/BORROW-WORD-43base.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..448dd795adba29392a90b34aa3f1b1b796c7e0bd GIT binary patch literal 69989 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

UE(~-rg;O(a$3fF+R<>F9;Lx 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≥_<(L|Gfj;_un{ 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 literal 0 HcmV?d00001 diff --git a/research/t74-cleanup-buffer-pooling/source/BORROW-WORD-43extra.json.gz b/research/t74-cleanup-buffer-pooling/source/BORROW-WORD-43extra.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..2b51ba96256283bbc5578f99b694c50edd8a0e35 GIT binary patch literal 69991 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

BX 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 Kq(AtV!3Y57V peak: + peak, peak_event, peak_buffers = len(active), step, sorted(active) + peak_rows = [[r, [[s, list(w), str(q)] for (s, w), q in sorted(state[r].items())]] + for r in peak_buffers] + check(not active, "nonzero private field at cleanup exit") + check(all(not state[r] for r in buffers), "private exit not zero") + intervals.sort(key=lambda x: (x["start"], x["buffer"])) + return dict(live=live, buffers=buffers, events=events, endpoint=state, + intervals=intervals, peak=peak, peak_event=peak_event, + peak_buffers=peak_buffers, peak_rows=peak_rows, omitted=omitted) + + +def color(intervals): + # Optimal coloring of inclusive integer event intervals. + pending, available, result = [], [], [] + slots = 0 + for item in intervals: + while pending and pending[0][0] < item["start"]: + _, slot = heapq.heappop(pending) + heapq.heappush(available, slot) + if available: + slot = heapq.heappop(available) + else: + slot = slots + slots += 1 + result.append(dict(item, slot=slot)) + heapq.heappush(pending, (item["end"], slot)) + return slots, result + + +def pooled_replay(data, plan, slots, *, dirty_slot=None, retained_zero_step=None): + live, buffers = data["live"], data["buffers"] + pool = [-(i + 1) for i in range(slots)] + state = initial(live, pool) + if dirty_slot is not None: + state[pool[dirty_slot]] = {(10000, ()): Fraction(1)} + private, current = set(buffers), {} + begins, ends = {}, {} + for interval in plan: + begins.setdefault(interval["start"], []).append(interval) + ends.setdefault(interval["end"], []).append(interval) + omitted = set(data["omitted"]) + if retained_zero_step is not None: + omitted.remove(retained_zero_step) + for step, event in enumerate(data["events"], 1): + for interval in begins.get(step, []): + r, slot = interval["buffer"], pool[interval["slot"]] + check(r not in current and slot not in current.values(), "overlapping buffer allocation") + check(not state[slot], "allocation of dirty pool field") + current[r] = slot + if step not in omitted: + op, destination, *args = event + dst = current[destination] if destination in private else destination + if op == "add": + src, q = args + src = current[src] if src in private else src + check(src != dst, "pooled self add") + execute(state, (op, dst, src, q)) + else: + execute(state, (op, dst, *args)) + for interval in ends.get(step, []): + slot = current.pop(interval["buffer"]) + check(not state[slot], "release of nonzero buffer") + check(not current, "unreleased allocation") + check(all(not state[r] for r in pool), "pool not restored") + check(all(state[r] == data["endpoint"][r] for r in live), "pooled endpoint differs") + return row_digest(state, live) + + +def hulls(intervals): + result = {} + for interval in intervals: + r = interval["buffer"] + if r not in result: + result[r] = dict(interval) + else: + result[r]["end"] = interval["end"] + return sorted(result.values(), key=lambda x: (x["start"], x["buffer"])) + + +def negative_controls(word, dual, data, plan, slots): + def rejected(action, label, expected): + try: + action() + except (ValueError, KeyError) as error: + check(expected in str(error), label + ": wrong rejection: " + str(error)) + return label + raise ValueError("control accepted: " + label) + + results = [] + # Two intervals provably alive at the maximum must not share a slot. + at_peak = [i for i, x in enumerate(plan) + if x["start"] <= data["peak_event"] < x["end"]] + bad = copy.deepcopy(plan) + bad[at_peak[1]]["slot"] = bad[at_peak[0]]["slot"] + results.append(rejected(lambda: pooled_replay(data, bad, slots), + "overlap_at_clique", "overlapping buffer allocation")) + # Releasing one event before a true zero return discards live information. + bad = copy.deepcopy(plan) + candidate = next(i for i, x in enumerate(bad) if x["end"] > x["start"]) + bad[candidate]["end"] -= 1 + results.append(rejected(lambda: pooled_replay(data, bad, slots), + "early_release", "release of nonzero buffer")) + results.append(rejected(lambda: pooled_replay(data, plan, slots, dirty_slot=0), + "dirty_pool_entry", "allocation of dirty pool field")) + # A real closing ADD coefficient is necessary, not merely its label/frame. + closing = next(x for x in data["intervals"] + if data["events"][x["end"]-1][0] == "add") + changed = copy.deepcopy(word) + changed["cleanup"][closing["end"]-1][3] *= -1 + results.append(rejected(lambda: trace(changed, dual), + "closing_add_wrong_sign", "nonzero private field at cleanup exit")) + # Re-enable a dropped read when its logical zero buffer is not allocated. + step = next(i for i in data["omitted"] if data["events"][i-1][0] == "add" + and data["events"][i-1][2] in data["buffers"] + and not any(x["buffer"] == data["events"][i-1][2] + and x["start"] <= i <= x["end"] for x in plan)) + source = data["events"][step-1][2] + results.append(rejected(lambda: pooled_replay(data, plan, slots, retained_zero_step=step), + "unallocated_zero_read", str(source))) + # Same scratch-zero outcome is insufficient if the ordinary endpoint moves. + changed = copy.deepcopy(word) + j = next(i for i, g in enumerate(changed["cleanup"]) if g[0] == "warp") + changed["cleanup"][j][2] *= -1 + changed_data = trace(changed, dual) + check(any(changed_data["endpoint"][r] != data["endpoint"][r] for r in data["live"]), + "warp-sign endpoint control did not change the map") + results.append("inverse_warp_sign_changes_endpoint") + return results + + +def distinct_witness(rows): + """Small explicit entry values separating all operator-free peak rows.""" + check(all(not term[1] for _, row in rows for term in row), "peak still has warp symbols") + variables = sorted({term[0] for _, row in rows for term in row}) + for seed in range(100): + values = {r: int.from_bytes(hashlib.sha256(f"T74-pool/{seed}/{r}".encode()).digest()[:2], + "big") - 32768 for r in variables} + outputs = [sum((Fraction(q)*values[r] for r, _, q in row), Fraction(0)) + for _, row in rows] + if all(outputs) and len(set(outputs)) == len(rows): + return dict(seed=seed, + input_rule="int.from_bytes(SHA256(UTF8('T74-pool/{seed}/{register}'))[:2], 'big') - 32768", + unused_inputs=0, max_input_abs=max(abs(x) for x in values.values()), + buffer_values=[[row[0], str(value)] for row, value in zip(rows, outputs)]) + raise ValueError("no small distinct-value witness") + + +def audit(word, dual): + data = trace(word, dual) + split_slots, _ = color(data["intervals"]) + slots, plan = color(hulls(data["intervals"])) + check(slots == data["peak"], "interval clique/color mismatch") + check(split_slots == slots, "splitting changes optimal capacity") + digest = pooled_replay(data, plan, slots) + controls = negative_controls(word, dual, data, plan, slots) + zero_counts = Counter(data["events"][i-1][0] for i in data["omitted"]) + peak_values = [json.dumps(row[1]) for row in data["peak_rows"]] + # Equal-value coalescing is outside interval allocation: do not turn a + # simultaneous-live count into an unrestricted information lower bound. + equal_groups = {} + for row, value in zip(data["peak_rows"], peak_values): + equal_groups.setdefault(value, []).append(row[0]) + witness = distinct_witness(data["peak_rows"]) if dual else None + return dict(orientation="dual" if dual else "forward", events=len(data["events"]), + entry_columns=len(data["live"]), private_buffers=len(data["buffers"]), + pool_slots=slots, interval_count=len(data["intervals"]), intervals=data["intervals"], + static_plan=plan, allocated_logical_buffers=len(plan), + zero_noop_events=data["omitted"], peak_after_event=data["peak_event"], + zero_noop_counts=dict(sorted(zero_counts.items())), + retained_events=len(data["events"])-len(data["omitted"]), + peak_buffers=data["peak_buffers"], endpoint_sha256=digest, + peak_rows=data["peak_rows"], + peak_distinct_values=len(equal_groups), + peak_equal_value_groups=sorted(g for g in equal_groups.values() if len(g)>1), + distinct_value_witness=witness, + controls=controls) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--write", type=Path, help="exclusive output path for the exact receipt") + args = parser.parse_args() + words = load_inputs() + results = {name: [audit(word, dual) for dual in (False, True)] for name, word in words.items()} + receipt = dict(schema_version=1, result="EXACT_LITERAL_INTERVAL_POOL", words=results) + if args.write: + with args.write.open("x") as output: + json.dump(receipt, output, indent=2) + output.write("\n") + else: + expected = json.loads((HERE / "EXPECTED.json").read_text()) + check(json.dumps(expected, sort_keys=True) == json.dumps(receipt, sort_keys=True), + "stored certificate differs (including JSON types)") + for name, orientations in results.items(): + for result in orientations: + print(name, result["orientation"], "pool", result["pool_slots"], + "intervals", result["interval_count"], "zero_noops", len(result["zero_noop_events"]), + "peak", result["peak_after_event"]) + print("PASS_T74_CLEANUP_BUFFER_POOLING") + + +if __name__ == "__main__": + main()