From e9c06e2e87d2a1424c1666b6aed0b5cef9729ad2 Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Wed, 26 Aug 2026 03:43:31 +0000 Subject: [PATCH 1/4] tools: an ISL call-site dumper that carries the operands and the neighbours `isl.py --calls` scans on the encoding, so it can see that a call happened but not what it was called with -- the arguments live in the `local[]` staging of the preceding instructions, not in the call. Naming a built-in needs those, and it needs the calls either side, because the fixed idioms are what identify a primitive (`116 -> 101 -> 100 -> 124 -> 93` is a phase teardown, and that is how 101 was named). So this walks each stage's whole code region linearly, tracking both staging forms, and prints stage/offset/id/operands plus the neighbouring call ids. The linear walk is safe rather than assumed: it lands on every call site the independent encoding scan finds, 2846/2846 in Stage 02. `--craft` cross-tabs the operand against the squadron's craft type through `unitgroup.py --all`, which is the test that separated built-in 15's classes. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE --- tools/re-capture/isl_builtin_sites.py | 171 ++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 tools/re-capture/isl_builtin_sites.py diff --git a/tools/re-capture/isl_builtin_sites.py b/tools/re-capture/isl_builtin_sites.py new file mode 100644 index 0000000..f5e0002 --- /dev/null +++ b/tools/re-capture/isl_builtin_sites.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python3 +"""Every call site of one or more ISL built-ins, across all `StageNN.ssb`. + +Pure static work โ€” reads the extracted scripts, runs no emulator. + + python3 tools/re-capture/isl_builtin_sites.py 26,28,29 --ssb + python3 tools/re-capture/isl_builtin_sites.py 101 --ctx 3 --ssb + python3 tools/re-capture/isl_builtin_sites.py 28 --craft + +Why this exists rather than `isl.py --calls`: naming a built-in needs the +OPERANDS and the NEIGHBOURS, not just a histogram of ids. `isl.py --calls` +scans on the encoding and so cannot see the `local[]` staging that carries a +call's arguments, and `isl.py dis` has to be re-synchronised by hand for each +site. + +The walk here is a straight linear decode of the whole code region, from the +header's code offset (`+0x08`) to the symbol-table-1 offset (`+0x0C`, which is +where the code ends). That is safe: **measured on all 28 stages, the linear walk +lands on every call site the independent encoding scan finds** (Stage02: +2846/2846), so no call is skipped and no false instruction boundary is invented. + +Columns are tab-separated: + + stage offset builtin slot8 slot4-name slot4-raw symtype before after + +`slot4` is the unit operand (a symbol-table-2 index; see isl.py for why the unit +sits at slot 4 and slot 0 is a tag word) and `slot8` is the second operand, +which is a bare double for the built-ins this was written for. `before`/`after` +are the ids of the neighbouring calls, which is what makes a fixed idiom โ€” +`116 -> 101 -> 100 -> 124 -> 93` โ€” visible. + +With `--craft ` (the output of `unitgroup.py --all`) it also cross-tabs +value against the squadron's craft type, which is the test that separated +built-in 15's classes and separates these three. +""" +import argparse +import collections +import glob +import os +import re +import struct +import sys + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import isl # noqa: E402 + + +def walk(b): + """Yield `(offset, builtin_id, staged)` for every call in the code region. + + `staged` is the `local[]` slot -> value map as it stood when the call + executed, i.e. the call's arguments. Both staging forms matter: + `local[i] = special[0]` after an immediate, and the far commoner + `local[i] = immediate` written straight in. + """ + code_base = struct.unpack_from('>I', b, 0x08)[0] + code_end = struct.unpack_from('>I', b, 0x0C)[0] + off, staged, pending = code_base, {}, None + while off + 4 <= code_end: + w = struct.unpack_from('>I', b, off)[0] + op, ln = w & 0xFF, (w >> 8) & 0xFF + k1, k0 = (w >> 24) & 0xFF, (w >> 16) & 0xFF + if ln == 0 or ln % 4: + break + words = [struct.unpack_from('>I', b, off + i)[0] + for i in range(4, max(ln, 4), 4) if off + i + 4 <= len(b)] + if op in (0, 1) and len(words) >= 2: + if k0 == 2 and k1 == 1: + pending = _imm(op, words) + elif k0 == 3 and k1 == 2 and pending is not None: + staged[words[0]] = pending + elif k0 == 3 and k1 == 1: + staged[words[0]] = _imm(op, words) + if op == 19 and words: + yield off, words[0], dict(staged) + staged = {} + off += ln + + +def _imm(op, words): + """An `op 1` immediate is a DOUBLE carried as two words, not a float.""" + if op == 1: + lo = words[2] if len(words) > 2 else 0 + return struct.unpack('>d', struct.pack('>II', words[1], lo))[0] + return words[1] + + +def _fmt(v): + if v is None: + return '-' + return ('%g' % v) if isinstance(v, float) else '0x%X' % v + + +def load_craft(path): + """{stage: {squadron: [craft, ...]}} from `unitgroup.py --all` output.""" + out, stage, squad = collections.defaultdict(dict), None, None + for line in open(path): + m = re.match(r'^(S\d\d):', line) + if m: + stage = m.group(1) + continue + m = re.match(r'^ (\S+)\s+\S+\s+Count=', line) + if m: + squad = m.group(1) + out[stage][squad] = [] + continue + m = re.match(r'^ unit=(\S+)', line) + if m and squad: + out[stage][squad].append(m.group(1)) + return out + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('ids', help='comma-separated built-in ids') + ap.add_argument('--ssb', default='.', help='directory holding StageNN.ssb') + ap.add_argument('--ctx', type=int, default=2, help='neighbour calls to show') + ap.add_argument('--craft', help='unitgroup.py --all output, for the cross-tab') + a = ap.parse_args() + + ids = {int(x) for x in a.ids.split(',')} + craft = load_craft(a.craft) if a.craft else None + vals = collections.defaultdict(collections.Counter) + units = collections.defaultdict(collections.Counter) + cross = collections.defaultdict(lambda: collections.defaultdict(collections.Counter)) + unresolved = collections.Counter() + + for path in sorted(glob.glob(os.path.join(a.ssb, 'Stage*.ssb'))): + stage = os.path.basename(path)[:-4] + b = isl.load(path) + sym2 = isl.symbols(b, 2) + calls = list(walk(b)) + for i, (off, bid, staged) in enumerate(calls): + if bid not in ids: + continue + uidx = staged.get(4) + typ, name = sym2.get(uidx, (None, '?')) if isinstance(uidx, int) \ + else (None, '?') + val = _fmt(staged.get(8)) + print('%s\t0x%06X\t%d\t%s\t%s\t%s\ttype%s\t[%s]\t[%s]' % ( + stage, off, bid, val, name, + ('0x%X' % uidx) if isinstance(uidx, int) else uidx, typ, + ','.join(str(calls[j][1]) for j in range(max(0, i - a.ctx), i)), + ','.join(str(calls[j][1]) + for j in range(i + 1, min(len(calls), i + 1 + a.ctx))))) + vals[bid][val] += 1 + units[bid][name] += 1 + if craft is not None: + cs = craft.get('S' + stage[-2:], {}).get(name) + if cs: + for c in set(cs): + cross[bid][c][val] += 1 + else: + unresolved[bid] += 1 + + for bid in sorted(ids): + n = sum(vals[bid].values()) + print('\n# builtin %d: %d sites, %d distinct values' % (bid, n, len(vals[bid]))) + print('# values: ' + ', '.join('%s x%d' % kv for kv in vals[bid].most_common())) + print('# units: %d distinct, top: %s' % ( + len(units[bid]), ', '.join('%s x%d' % kv for kv in units[bid].most_common(10)))) + if craft is not None: + print('# craft cross-tab (%d unresolved):' % unresolved[bid]) + for c in sorted(cross[bid], key=lambda c: -sum(cross[bid][c].values())): + print('# %-42s %4d %s' % ( + c, sum(cross[bid][c].values()), + ', '.join('%sx%d' % kv for kv in cross[bid][c].most_common()))) + + +if __name__ == '__main__': + main() From 1ba16da9a4f0eb8e9743f4ffa8d5f38e46ad010e Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Wed, 26 Aug 2026 03:43:31 +0000 Subject: [PATCH 2/4] re(data): every call site of built-ins 26, 28, 29 and 101, with craft types 804 rows across all 28 stages, each joined to its squadron's craft through `UnitGroup_S.tbl` -- 671/671 of the three unit-taking built-ins resolve, none unknown. Regenerable from the committed tool. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE --- docs/re/data/isl-builtins-26-28-29-sites.txt | 909 +++++++++++++++++++ 1 file changed, 909 insertions(+) create mode 100644 docs/re/data/isl-builtins-26-28-29-sites.txt diff --git a/docs/re/data/isl-builtins-26-28-29-sites.txt b/docs/re/data/isl-builtins-26-28-29-sites.txt new file mode 100644 index 0000000..f551e0f --- /dev/null +++ b/docs/re/data/isl-builtins-26-28-29-sites.txt @@ -0,0 +1,909 @@ +# Every call site of ISL built-ins 26, 28, 29 and 101 across all 28 stage scripts. +# +# Regenerate with: +# python3 tools/re-capture/isl_builtin_sites.py 26,28,29,101 \ +# --ssb --craft +# +# Columns: stage offset builtin slot8 slot4-name slot4-raw symtype before after +# slot8 is the double operand; the handler multiplies it by 0.01 before sending it. +# +Stage01 0x0009C8 29 0 TCN001 0x1B type2 [35,118,12] [12,29,15] +Stage01 0x000A44 29 0 TCN002 0x1E type2 [12,29,12] [15,12,30] +Stage01 0x001A5C 29 100 TCN001 0x1B type2 [127,123,8] [35,11,58] +Stage01 0x0028A8 101 - ? None typeNone [11,95,116] [100,124,93] +Stage01 0x002CF8 101 - ? None typeNone [20,20,116] [100,124,93] +Stage01 0x003210 101 - ? None typeNone [11,9,116] [100,124,93] +Stage01 0x007370 28 10 TCN002 0x1E type2 [1,1,1] [29,30,64] +Stage01 0x0073B0 29 0 TCN002 0x1E type2 [1,1,28] [30,64,64] +Stage01 0x00EDAC 29 0 TCN001 0x1B type2 [35,118,12] [12,15,29] +Stage01 0x00EE80 29 0 TCN002 0x1E type2 [29,12,15] [12,15,29] +Stage01 0x00EF54 29 0 TCN003 0x20 type2 [29,12,15] [12,15,30] +Stage01 0x00F094 28 100 ADT201 0x3 type2 [12,15,30] [12,15,30] +Stage01 0x00F1D4 28 100 ADT202 0x6 type2 [12,15,30] [12,3,15] +Stage01 0x00F348 28 100 ADS221 0x7 type2 [12,3,15] [12,3,15] +Stage01 0x00F4BC 28 200 ADS222 0xB type2 [12,3,15] [12,15,28] +Stage01 0x00F590 28 100 ADS223 0xE type2 [28,12,15] [12,15,12] +Stage01 0x0100B0 29 100 TCN001 0x1B type2 [127,123,8] [35,103,1] +Stage01 0x010398 28 10 TCN002 0x1E type2 [1,1,1] [29,30,11] +Stage01 0x0103D8 29 0 TCN002 0x1E type2 [1,1,28] [30,11,58] +Stage01 0x01060C 28 100 ADT203 0xA type2 [15,30,47] [103,69,63] +Stage01 0x0108B4 28 100 ADT204 0xD type2 [58,15,30] [47,1,1] +Stage01 0x010B40 28 100 ADS224 0x11 type2 [58,3,15] [1,11,58] +Stage01 0x010CE8 28 100 ADS225 0x13 type2 [58,3,15] [1,11,58] +Stage01 0x010DF0 28 100 ADT205 0x10 type2 [11,58,15] [30,47,20] +Stage01 0x01115C 28 200 ADS227 0x17 type2 [57,3,15] [58,15,28] +Stage01 0x011230 28 100 ADS226 0x15 type2 [28,58,15] [48,92,1] +Stage01 0x0115CC 28 100 ADS228 0x19 type2 [58,3,15] [1,11,58] +Stage01 0x011774 28 100 ADS229 0x1A type2 [58,3,15] [1,11,95] +Stage01 0x01184C 101 - ? None typeNone [11,95,116] [100,124,93] +Stage01 0x011D58 101 - ? None typeNone [20,20,116] [100,124,93] +Stage01 0x0127AC 101 - ? None typeNone [11,9,116] [100,124,93] +Stage02 0x000E6C 29 0 TCN001 0x4B type2 [35,118,12] [12,15,12] +Stage02 0x002D14 26 0 TCN131 0x57 type2 [14,77,11] [11,116,127] +Stage02 0x002E0C 29 100 TCN001 0x4B type2 [127,123,8] [35,103,30] +Stage02 0x003220 29 0 TCN002 0x4E type2 [1,1,1] [11,58,15] +Stage02 0x004DA8 101 - ? None typeNone [11,95,116] [100,124,93] +Stage02 0x005274 101 - ? None typeNone [11,20,116] [100,124,93] +Stage02 0x0059BC 101 - ? None typeNone [20,20,116] [100,124,93] +Stage02 0x0060A8 101 - ? None typeNone [11,9,116] [100,124,93] +Stage02 0x01586C 29 0 TCN001 0x4B type2 [35,118,12] [12,15,12] +Stage02 0x018544 29 100 TCN001 0x4B type2 [123,123,8] [35,103,30] +Stage02 0x0186DC 29 0 TCN002 0x4E type2 [1,1,1] [11,58,3] +Stage02 0x019204 101 - ? None typeNone [11,95,116] [100,124,93] +Stage02 0x0196D0 101 - ? None typeNone [11,20,116] [100,124,93] +Stage02 0x01A21C 101 - ? None typeNone [20,20,116] [100,124,93] +Stage02 0x01E114 26 0 ADN207 0x2A type2 [79,7,70] [26,11,47] +Stage02 0x01E154 26 0 TCN208 0x68 type2 [7,70,26] [11,47,7] +Stage02 0x01E2C4 26 0 ADN207 0x2A type2 [47,7,70] [26,11,47] +Stage02 0x01E304 26 0 TCN208 0x68 type2 [7,70,26] [11,47,20] +Stage02 0x01E58C 26 0 ADN207 0x2A type2 [80,7,70] [26,11,47] +Stage02 0x01E5CC 26 0 TCN208 0x68 type2 [7,70,26] [11,47,20] +Stage02 0x01E854 26 0 ADN207 0x2A type2 [80,7,70] [26,11,47] +Stage02 0x01E894 26 0 TCN208 0x68 type2 [7,70,26] [11,47,18] +Stage02 0x025B14 29 0 TCN001 0x4B type2 [35,118,12] [12,15,12] +Stage02 0x025FCC 26 60 TCN324 0x67 type2 [15,12,15] [12,15,26] +Stage02 0x0260A0 26 80 TCN325 0x6A type2 [26,12,15] [12,15,26] +Stage02 0x026174 26 60 TCN326 0x6D type2 [26,12,15] [12,15,12] +Stage02 0x0262DC 26 80 TCN328 0x74 type2 [15,12,15] [12,15,12] +Stage02 0x026AD8 26 80 ADN322 0x1F type2 [15,12,15] [12,15,26] +Stage02 0x026BAC 26 60 ADN323 0x25 type2 [26,12,15] [12,15,26] +Stage02 0x026C80 26 80 ADN324 0x2C type2 [26,12,15] [12,15,26] +Stage02 0x026D54 26 30 ADN325 0x32 type2 [26,12,15] [12,15,26] +Stage02 0x026E28 26 80 ADN326 0x38 type2 [26,12,15] [12,15,26] +Stage02 0x026EFC 26 30 ADN327 0x3D type2 [26,12,15] [12,15,26] +Stage02 0x026FD0 26 60 ADN328 0x42 type2 [26,12,15] [12,15,26] +Stage02 0x0270A4 26 80 ADN329 0x45 type2 [26,12,15] [12,15,12] +Stage02 0x02720C 26 80 ADN331 0x20 type2 [15,12,15] [12,15,26] +Stage02 0x0272E0 26 60 ADN332 0x26 type2 [26,12,15] [47,47,47] +Stage02 0x028B5C 29 100 TCN001 0x4B type2 [123,123,8] [35,103,30] +Stage02 0x028E14 29 0 TCN002 0x4E type2 [1,1,1] [11,26,26] +Stage02 0x028E64 26 0 ADN313 0x1E type2 [1,29,11] [26,11,57] +Stage02 0x028EA4 26 0 TCN334 0x6B type2 [29,11,26] [11,57,30] +Stage02 0x02907C 29 100 ADT301 0x31 type2 [30,15,19] [57,30,15] +Stage02 0x029244 29 100 ADT302 0x37 type2 [30,15,19] [48,47,47] +Stage02 0x029B84 29 100 ADT303 0x3C type2 [30,15,19] [1,64,70] +Stage02 0x029ED0 29 100 ADT304 0x41 type2 [30,15,19] [57,30,15] +Stage02 0x02A098 29 100 ADT305 0x44 type2 [30,15,19] [58,15,48] +Stage02 0x02AAE8 29 100 ADT306 0x47 type2 [30,15,19] [57,30,15] +Stage02 0x02ACB0 29 100 ADT307 0x48 type2 [30,15,19] [57,30,15] +Stage02 0x02AE78 29 100 ADT308 0x49 type2 [30,15,19] [58,15,48] +Stage02 0x02B530 101 - ? None typeNone [11,95,116] [100,124,93] +Stage02 0x02B9FC 101 - ? None typeNone [11,20,116] [100,124,93] +Stage02 0x02C000 101 - ? None typeNone [6,11,116] [100,124,93] +Stage02 0x02C524 101 - ? None typeNone [20,20,116] [100,124,93] +Stage02 0x02D018 101 - ? None typeNone [11,9,116] [100,124,93] +Stage02 0x02D2DC 28 150 TCN004 0x56 type2 [20,105,115] [11,26,64] +Stage02 0x02D350 26 0 ADT301 0x31 type2 [115,28,11] [64,90,11] +Stage02 0x02D4D4 26 0 ADT302 0x37 type2 [64,90,11] [64,90,11] +Stage02 0x02D658 26 0 ADT303 0x3C type2 [64,90,11] [64,90,11] +Stage02 0x02D7DC 26 0 ADT304 0x41 type2 [64,90,11] [64,90,11] +Stage02 0x02D960 26 0 ADT305 0x44 type2 [64,90,11] [64,90,11] +Stage02 0x02DAF0 26 0 ADT306 0x47 type2 [64,90,11] [64,90,11] +Stage02 0x02DC74 26 0 ADT307 0x48 type2 [64,90,11] [64,90,11] +Stage02 0x02DDF8 26 0 ADT308 0x49 type2 [64,90,11] [64,90,11] +Stage03 0x0009F0 29 0 TCN001 0x21 type2 [35,118,12] [12,15,12] +Stage03 0x002514 26 0 TCN132 0x30 type2 [14,77,11] [11,116,127] +Stage03 0x00260C 29 100 TCN001 0x21 type2 [127,123,8] [35,103,1] +Stage03 0x002810 29 0 TCN002 0x24 type2 [30,91,47] [11,58,19] +Stage03 0x0034E8 101 - ? None typeNone [11,95,116] [100,124,93] +Stage03 0x0039B4 101 - ? None typeNone [11,20,116] [100,124,93] +Stage03 0x00424C 101 - ? None typeNone [20,20,116] [100,124,93] +Stage03 0x004720 101 - ? None typeNone [11,9,116] [100,124,93] +Stage03 0x00ABB4 29 0 TCN001 0x21 type2 [35,118,12] [12,15,12] +Stage03 0x00B0CC 29 0 TCT207 0x42 type2 [15,19,30] [12,15,19] +Stage03 0x00C720 29 100 TCN001 0x21 type2 [116,123,8] [35,11,58] +Stage03 0x00DD7C 101 - ? None typeNone [11,95,116] [100,124,93] +Stage03 0x00E248 101 - ? None typeNone [11,20,116] [100,124,93] +Stage03 0x00E84C 101 - ? None typeNone [6,11,116] [100,124,93] +Stage03 0x00EFF8 101 - ? None typeNone [20,20,116] [100,124,93] +Stage03 0x00F844 29 0 TCT207 0x42 type2 [64,19,11] [5,11,20] +Stage03 0x00FA58 29 0 TCT208 0x44 type2 [19,19,11] [5,11,20] +Stage03 0x00FC6C 29 0 TCT209 0x46 type2 [19,19,11] [5,11,20] +Stage03 0x00FE34 29 100 TCT207 0x42 type2 [11,20,20] [11,20,20] +Stage03 0x00FF50 29 100 TCT207 0x42 type2 [11,20,20] [11,20,105] +Stage03 0x01584C 29 0 TCN001 0x21 type2 [35,118,12] [12,15,12] +Stage03 0x0164CC 28 500 ADN301 0x4 type2 [117,12,15] [48,48,48] +Stage03 0x016FF8 29 100 TCN001 0x21 type2 [116,123,8] [35,11,58] +Stage03 0x01713C 28 500 ADN304 0xB type2 [58,15,91] [58,15,30] +Stage03 0x01727C 28 1000 ADT302 0x19 type2 [58,15,30] [91,103,4] +Stage03 0x017C6C 28 500 ADN306 0x11 type2 [11,58,15] [91,69,47] +Stage03 0x0182F4 28 500 ADN308 0x18 type2 [11,58,15] [91,69,47] +Stage03 0x018A4C 28 2000 ADT303 0x1D type2 [15,30,91] [69,47,69] +Stage03 0x0191FC 101 - ? None typeNone [11,95,116] [100,124,93] +Stage03 0x0196C8 101 - ? None typeNone [11,20,116] [100,124,93] +Stage03 0x019CCC 101 - ? None typeNone [6,11,116] [100,124,93] +Stage03 0x019ED4 101 - ? None typeNone [6,11,116] [100,124,93] +Stage03 0x01A744 101 - ? None typeNone [11,9,116] [100,124,93] +Stage03 0x01BC10 28 2000 ADT303 0x1D type2 [15,30,91] [69,47,69] +Stage03 0x01C358 28 150 TCN309 0x41 type2 [9,115,69] [64,11,64] +Stage04 0x000A38 29 0 TCN001 0x15 type2 [35,118,12] [12,15,12] +Stage04 0x002228 29 100 TCN001 0x15 type2 [127,123,8] [35,11,69] +Stage04 0x0026D0 101 - ? None typeNone [11,95,116] [100,124,93] +Stage04 0x002BCC 101 - ? None typeNone [11,20,116] [100,124,93] +Stage04 0x003390 101 - ? None typeNone [20,20,116] [100,124,93] +Stage04 0x003834 101 - ? None typeNone [11,9,116] [100,124,93] +Stage04 0x005ED0 29 0 TCN001 0x15 type2 [35,118,12] [12,15,12] +Stage04 0x006260 28 500 ADN201 0x0 type2 [15,12,15] [12,30,15] +Stage04 0x0063A0 28 1000 ADT202 0x9 type2 [12,30,15] [12,15,12] +Stage04 0x0074CC 29 100 TCN001 0x15 type2 [127,8,123] [35,11,58] +Stage04 0x007674 28 500 ADN206 0x4 type2 [58,15,3] [92,91,64] +Stage04 0x007990 28 500 ADN207 0x6 type2 [58,3,15] [47,1,11] +Stage04 0x007B8C 28 500 ADN208 0x8 type2 [58,15,3] [92,91,64] +Stage04 0x007FAC 28 2000 ADT203 0xD type2 [30,47,30] [64,64,8] +Stage04 0x008324 28 500 ADN209 0xC type2 [58,15,3] [92,91,1] +Stage04 0x0084AC 101 - ? None typeNone [11,95,116] [100,124,93] +Stage04 0x0089A8 101 - ? None typeNone [11,20,116] [100,124,93] +Stage04 0x009030 101 - ? None typeNone [11,20,116] [100,124,93] +Stage04 0x0099DC 101 - ? None typeNone [11,9,116] [100,124,93] +Stage04 0x009D40 28 150 TCN205 0x25 type2 [9,115,69] [64,11,20] +Stage04 0x00A004 28 2000 ADT203 0xD type2 [15,30,47] [64,64,64] +Stage05 0x000898 29 0 TCN001 0x13 type2 [35,118,12] [15,12,15] +Stage05 0x00181C 29 100 TCN001 0x13 type2 [8,127,123] [35,119,11] +Stage05 0x002E6C 101 - ? None typeNone [20,9,116] [100,93,124] +Stage05 0x003BAC 101 - ? None typeNone [20,20,116] [100,93,124] +Stage05 0x003F28 28 150 TCN003 0x19 type2 [9,115,70] [70,48,11] +Stage05 0x007F00 29 0 TCN001 0x13 type2 [35,118,12] [15,12,15] +Stage05 0x0081C0 26 80 TCN004 0x1E type2 [12,15,30] [12,15,30] +Stage05 0x008300 28 150 ADT201 0x4 type2 [12,15,30] [12,19,15] +Stage05 0x0084C8 28 150 ADT202 0x6 type2 [19,15,30] [12,3,15] +Stage05 0x008FF8 29 100 TCN001 0x13 type2 [8,127,123] [35,119,11] +Stage05 0x009734 101 - ? None typeNone [20,9,116] [100,93,124] +Stage05 0x00A228 101 - ? None typeNone [20,20,116] [100,93,124] +Stage05 0x00B1A0 28 150 TCN001 0x13 type2 [64,9,115] [28,28,64] +Stage05 0x00B1E0 28 150 TCN002 0x16 type2 [9,115,28] [28,64,64] +Stage05 0x00B220 28 150 TCN003 0x19 type2 [115,28,28] [64,64,11] +Stage06 0x000924 29 0 TCN001 0x26 type2 [118,12,15] [12,15,12] +Stage06 0x001460 29 100 TCN001 0x26 type2 [8,127,123] [35,119,11] +Stage06 0x00330C 101 - ? None typeNone [11,95,116] [100,93,124] +Stage06 0x003810 101 - ? None typeNone [11,20,116] [100,93,124] +Stage06 0x003E94 101 - ? None typeNone [11,9,116] [100,93,124] +Stage06 0x0040D4 101 - ? None typeNone [6,11,116] [100,93,124] +Stage06 0x009B50 29 0 TCN001 0x26 type2 [118,12,15] [12,15,12] +Stage06 0x00BEC4 29 100 TCN001 0x26 type2 [8,127,123] [35,119,11] +Stage06 0x00C168 101 - ? None typeNone [11,95,116] [100,93,124] +Stage06 0x00C66C 101 - ? None typeNone [11,20,116] [100,93,124] +Stage06 0x00CCF0 101 - ? None typeNone [11,9,116] [100,93,124] +Stage06 0x00D274 101 - ? None typeNone [20,20,116] [100,93,124] +Stage06 0x0119AC 29 0 TCN001 0x26 type2 [118,12,15] [12,15,29] +Stage06 0x011A80 29 0 TCN002 0x29 type2 [29,12,15] [28,12,15] +Stage06 0x011AC0 28 50 TCN002 0x29 type2 [12,15,29] [12,15,12] +Stage06 0x011EFC 26 50 TCN306 0x3D type2 [12,15,3] [12,15,3] +Stage06 0x013A7C 29 100 TCN001 0x26 type2 [8,127,123] [35,119,11] +Stage06 0x013B60 101 - ? None typeNone [11,95,116] [100,93,124] +Stage06 0x01405C 101 - ? None typeNone [11,20,116] [100,93,124] +Stage06 0x014724 101 - ? None typeNone [20,20,116] [100,93,124] +Stage06 0x014F64 101 - ? None typeNone [11,9,116] [100,93,124] +Stage06 0x01845C 26 0 TCN350 0x3A type2 [64,11,64] [1,1,1] +Stage06 0x01A7B0 26 80 TCN002 0x29 type2 [69,11,9] [64,64,1] +Stage06 0x01AAA0 26 50 TCN002 0x29 type2 [69,11,9] [11,64,1] +Stage06 0x01ACEC 26 30 TCN002 0x29 type2 [69,11,9] [11,64,11] +Stage07 0x000D3C 29 0 TCN001 0x1C type2 [12,12,12] [15,15,15] +Stage07 0x0026A4 29 100 TCN001 0x1C type2 [8,127,123] [35,119,11] +Stage07 0x002788 101 - ? None typeNone [11,95,116] [100,93,124] +Stage07 0x002BD0 101 - ? None typeNone [11,20,116] [100,93,124] +Stage07 0x00324C 101 - ? None typeNone [11,20,116] [100,93,124] +Stage07 0x0034D4 101 - ? None typeNone [11,9,116] [100,93,124] +Stage07 0x003714 101 - ? None typeNone [6,11,116] [100,93,124] +Stage07 0x00AB0C 29 0 TCN001 0x1C type2 [12,12,12] [15,15,15] +Stage07 0x00CCD4 29 100 TCN001 0x1C type2 [116,8,123] [35,119,11] +Stage07 0x00CDB8 101 - ? None typeNone [11,95,116] [100,93,124] +Stage07 0x00D200 101 - ? None typeNone [11,20,116] [100,93,124] +Stage07 0x00D87C 101 - ? None typeNone [11,20,116] [100,93,124] +Stage07 0x00E4A8 101 - ? None typeNone [20,69,116] [100,93,124] +Stage07 0x00ED78 101 - ? None typeNone [11,9,116] [100,93,124] +Stage08 0x001F44 29 0 TCN001 0x1E type2 [15,12,15] [15,15,15] +Stage08 0x0021C4 28 0.1 TCN104 0x30 type2 [92,15,30] [15,28,15] +Stage08 0x00225C 28 0.1 TCN105 0x35 type2 [30,28,15] [15,28,15] +Stage08 0x0022F4 28 0.1 TCN106 0x36 type2 [15,28,15] [15,30,28] +Stage08 0x0023F8 28 0.1 TCN012 0x29 type2 [28,15,30] [15,28,15] +Stage08 0x002490 28 0.1 TCN113 0x31 type2 [30,28,15] [15,92,30] +Stage08 0x003350 26 0 ADN126 0xF type2 [4,14,77] [11,26,11] +Stage08 0x0033A0 26 0 ADN126b 0x3D type2 [77,26,11] [11,26,11] +Stage08 0x0033F0 26 0 ADN126c 0x3F type2 [11,26,11] [11,116,8] +Stage08 0x0034E8 29 100 TCN001 0x1E type2 [8,127,123] [35,119,11] +Stage08 0x0036D0 101 - ? None typeNone [20,9,116] [100,93,124] +Stage08 0x004294 101 - ? None typeNone [6,11,116] [100,93,124] +Stage08 0x006C54 28 1000 ADS151a 0x45 type2 [15,47,30] [29,58,15] +Stage08 0x006C94 29 40 ADS151a 0x45 type2 [47,30,28] [58,15,47] +Stage08 0x006E28 28 1000 ADS151b 0x4B type2 [15,47,30] [29,64,8] +Stage08 0x006E68 29 40 ADS151b 0x4B type2 [47,30,28] [64,8,1] +Stage08 0x00BD3C 28 150 TCN001 0x1E type2 [105,9,115] [28,28,64] +Stage08 0x00BD7C 28 150 TCN002 0x21 type2 [9,115,28] [28,64,11] +Stage08 0x00BDBC 28 150 TCN003 0x24 type2 [115,28,28] [64,11,20] +Stage08 0x00D918 29 0 TCN001 0x1E type2 [12,12,12] [15,15,15] +Stage08 0x00E190 29 0 ADT201 0x11 type2 [15,92,15] [117,15,92] +Stage08 0x00EE0C 29 100 TCN001 0x1E type2 [8,127,123] [35,119,11] +Stage08 0x00EFF4 101 - ? None typeNone [20,9,116] [100,93,124] +Stage08 0x00FD4C 101 - ? None typeNone [20,20,116] [100,93,124] +Stage09 0x000974 29 0 TCN001 0x28 type2 [35,118,12] [12,15,12] +Stage09 0x002958 29 100 TCN001 0x28 type2 [127,123,8] [35,11,58] +Stage09 0x003610 101 - ? None typeNone [11,95,116] [100,124,93] +Stage09 0x003A20 101 - ? None typeNone [11,20,116] [100,124,93] +Stage09 0x003C68 101 - ? None typeNone [11,20,116] [100,124,93] +Stage09 0x00426C 101 - ? None typeNone [6,11,116] [100,124,93] +Stage09 0x004A44 101 - ? None typeNone [11,9,116] [100,124,93] +Stage09 0x00851C 29 0 TCN001 0x28 type2 [35,118,12] [12,15,12] +Stage09 0x009E64 29 100 TCN001 0x28 type2 [116,123,8] [35,11,58] +Stage09 0x00A1C0 28 1000 ADS251a 0x44 type2 [12,15,30] [29,12,15] +Stage09 0x00A200 29 40 ADS251a 0x44 type2 [15,30,28] [12,15,30] +Stage09 0x00A340 28 1000 ADS251b 0x46 type2 [12,15,30] [29,47,47] +Stage09 0x00A380 29 40 ADS251b 0x46 type2 [15,30,28] [47,47,1] +Stage09 0x00A6D0 101 - ? None typeNone [11,95,116] [100,124,93] +Stage09 0x00AAE0 101 - ? None typeNone [11,20,116] [100,124,93] +Stage09 0x00ACE8 101 - ? None typeNone [6,11,116] [100,124,93] +Stage09 0x00B2D0 101 - ? None typeNone [7,9,116] [100,124,93] +Stage09 0x00C38C 28 150 TCN001 0x28 type2 [115,9,115] [28,11,64] +Stage09 0x00C3CC 28 150 TCN002 0x2B type2 [9,115,28] [11,64,64] +Stage09 0x00FDC4 29 0 TCN001 0x28 type2 [114,114,12] [12,15,12] +Stage09 0x010684 28 500 ADT301 0x14 type2 [15,12,15] [12,15,12] +Stage09 0x011790 29 100 TCN001 0x28 type2 [116,123,8] [35,11,58] +Stage09 0x011E84 101 - ? None typeNone [11,95,116] [100,124,93] +Stage09 0x012294 101 - ? None typeNone [11,20,116] [100,124,93] +Stage09 0x012B60 101 - ? None typeNone [69,69,116] [100,124,93] +Stage09 0x0131AC 101 - ? None typeNone [11,9,116] [100,124,93] +Stage09 0x017BE4 28 500 ADT302 0x18 type2 [3,15,47] [64,1,1] +Stage10 0x0006DC 29 0 TCN001 0xE type2 [118,75,12] [12,3,15] +Stage10 0x000910 28 2000 ADT001 0x2 type2 [15,30,47] [12,15,47] +Stage10 0x000A38 28 500 ADS002 0x1 type2 [12,15,47] [12,15,47] +Stage10 0x000B60 28 500 ADS003 0x5 type2 [12,15,47] [1,1,1] +Stage10 0x000F38 29 100 TCN001 0xE type2 [8,127,123] [35,119,11] +Stage10 0x00101C 101 - ? None typeNone [11,95,116] [100,93,124] +Stage10 0x0013A8 101 - ? None typeNone [11,9,116] [100,93,124] +Stage10 0x001620 101 - ? None typeNone [11,20,116] [100,93,124] +Stage10 0x002394 28 500 ADS004 0x7 type2 [64,128,47] [1,11,20] +Stage10 0x002BA0 28 500 ADS005 0x9 type2 [64,128,47] [1,11,20] +Stage10 0x0033AC 28 500 ADS006 0xA type2 [64,128,47] [1,11,20] +Stage10 0x003BB8 28 500 ADS007 0xB type2 [64,128,47] [1,11,20] +Stage10 0x0043C4 28 500 ADS008 0xC type2 [64,128,47] [1,11,20] +Stage10 0x004BD0 28 500 ADS009 0xD type2 [64,128,47] [1,11,20] +Stage10 0x0053DC 28 500 ADS010 0x0 type2 [64,128,47] [1,11,20] +Stage10 0x005BE8 28 500 ADS011 0x4 type2 [64,128,47] [1,11,20] +Stage10 0x006554 28 500 ADS013 0x8 type2 [64,128,47] [1,11,20] +Stage11 0x000744 29 0 TCN001 0x18 type2 [35,118,12] [12,15,12] +Stage11 0x001610 29 100 TCN001 0x18 type2 [8,127,123] [35,11,58] +Stage11 0x0017D8 28 1000 ADS151a 0x27 type2 [15,47,30] [29,58,15] +Stage11 0x001818 29 40 ADS151a 0x27 type2 [47,30,28] [58,15,47] +Stage11 0x0019AC 28 1000 ADS151b 0x29 type2 [15,47,30] [29,1,1] +Stage11 0x0019EC 29 40 ADS151b 0x29 type2 [47,30,28] [1,1,1] +Stage11 0x001B0C 101 - ? None typeNone [11,95,116] [100,124,93] +Stage11 0x001F54 101 - ? None typeNone [11,20,116] [100,124,93] +Stage11 0x0025D8 101 - ? None typeNone [11,9,116] [100,124,93] +Stage11 0x002818 101 - ? None typeNone [6,11,116] [100,124,93] +Stage11 0x00B070 29 0 TCN001 0x18 type2 [35,118,12] [12,15,12] +Stage11 0x00BFB8 29 100 TCN001 0x18 type2 [8,127,123] [35,1,1] +Stage11 0x00C0D8 101 - ? None typeNone [11,95,116] [100,124,93] +Stage11 0x00C520 101 - ? None typeNone [11,20,116] [100,124,93] +Stage11 0x00CBA4 101 - ? None typeNone [11,9,116] [100,124,93] +Stage11 0x00CDE4 101 - ? None typeNone [6,11,116] [100,124,93] +Stage12 0x0012D0 29 0 TCN001 0x20 type2 [12,12,12] [75,8,11] +Stage12 0x001564 29 100 TCN001 0x20 type2 [8,127,123] [35,119,1] +Stage12 0x0033CC 101 - ? None typeNone [20,9,116] [100,93,124] +Stage12 0x00403C 101 - ? None typeNone [6,11,116] [100,93,124] +Stage13 0x0012C4 29 0 TCN001 0x16 type2 [12,12,12] [15,15,15] +Stage13 0x001D74 26 50 TCN013 0x25 type2 [3,15,1] [3,15,1] +Stage13 0x0027DC 28 150 ADN004 0x8 type2 [47,92,3] [15,3,28] +Stage13 0x002914 28 150 ADN005 0xB type2 [28,15,3] [15,47,28] +Stage13 0x002A00 28 150 ADN012 0x6 type2 [28,15,47] [15,47,47] +Stage13 0x0031BC 29 100 TCN001 0x16 type2 [116,8,123] [35,119,11] +Stage13 0x003348 101 - ? None typeNone [20,20,116] [100,93,124] +Stage13 0x004EC4 101 - ? None typeNone [20,69,116] [100,93,124] +Stage13 0x0098A0 28 150 ADN002 0x3 type2 [20,9,57] [15,47,47] +Stage13 0x00A68C 28 500 ADS051a 0x34 type2 [64,11,58] [15,47,92] +Stage13 0x00A894 28 500 ADS051b 0x36 type2 [92,30,58] [15,47,92] +Stage13 0x00AA9C 28 500 ADS051c 0x37 type2 [92,30,58] [15,47,92] +Stage13 0x00BA00 28 150 ADN015 0xE type2 [64,11,57] [15,92,64] +Stage13 0x00BE08 28 150 ADN017 0x12 type2 [64,11,57] [15,47,92] +Stage14 0x001230 29 0 TCN001 0x18 type2 [12,12,12] [15,15,92] +Stage14 0x001394 26 80 TCN003 0x24 type2 [15,15,92] [25,15,30] +Stage14 0x001548 28 500 ADT102 0x3 type2 [15,30,15] [30,47,92] +Stage14 0x001714 28 500 ADT103 0x6 type2 [47,92,15] [30,47,92] +Stage14 0x0018E0 28 500 ADT104 0x8 type2 [47,92,15] [30,47,92] +Stage14 0x00242C 29 100 TCN001 0x18 type2 [8,127,123] [35,119,11] +Stage14 0x002510 101 - ? None typeNone [11,95,116] [100,93,124] +Stage14 0x002960 101 - ? None typeNone [11,9,116] [100,93,124] +Stage14 0x002D84 101 - ? None typeNone [20,20,116] [100,93,124] +Stage14 0x003784 28 500 ADT105 0xA type2 [64,58,15] [30,47,47] +Stage14 0x003E90 28 500 ADT108 0x10 type2 [64,58,15] [30,47,1] +Stage14 0x004548 28 500 ADT114 0xB type2 [64,58,15] [30,47,47] +Stage14 0x007334 29 0 TCN201 0x29 type2 [12,12,12] [15,30,47] +Stage14 0x00748C 28 500 ADT201 0x5 type2 [15,30,47] [15,15,15] +Stage14 0x007F18 29 100 TCN201 0x29 type2 [8,127,123] [35,119,11] +Stage14 0x007FFC 101 - ? None typeNone [11,95,116] [100,93,124] +Stage14 0x0083C4 101 - ? None typeNone [11,9,116] [100,93,124] +Stage14 0x008644 101 - ? None typeNone [11,20,116] [100,93,124] +Stage15 0x0014F8 29 0 TCN001 0x3A type2 [12,12,12] [15,15,15] +Stage15 0x002390 29 0 TCN008 0x59 type2 [15,47,30] [1,15,48] +Stage15 0x002C68 28 150 ADN101 0x1 type2 [15,48,92] [15,28,15] +Stage15 0x002D00 28 150 ADN102 0x2 type2 [92,28,15] [15,3,1] +Stage15 0x002FC8 28 150 ADN103 0x5 type2 [15,48,92] [15,3,15] +Stage15 0x0032C0 28 150 ADN104 0xB type2 [48,47,92] [15,3,15] +Stage15 0x003564 28 150 ADN106 0x18 type2 [15,48,92] [15,28,15] +Stage15 0x0035FC 28 150 ADN109 0x2C type2 [92,28,15] [15,15,47] +Stage15 0x003F50 29 100 TCN001 0x3A type2 [116,8,123] [35,119,11] +Stage15 0x0040DC 101 - ? None typeNone [20,20,116] [100,93,124] +Stage15 0x00563C 101 - ? None typeNone [20,69,116] [100,93,124] +Stage15 0x00DE90 29 0 TCN001 0x3A type2 [12,12,12] [15,15,15] +Stage15 0x00E970 29 0 TCN008 0x59 type2 [47,92,30] [15,48,92] +Stage15 0x00F198 28 150 ADT201 0x28 type2 [47,92,30] [15,1,30] +Stage15 0x00F2C0 28 150 ADT202 0x30 type2 [15,1,30] [15,1,28] +Stage15 0x00F37C 28 150 ADN203 0xF type2 [28,15,1] [15,28,15] +Stage15 0x00F414 28 150 ADN204 0x15 type2 [1,28,15] [15,28,15] +Stage15 0x00F4AC 28 150 ADN205 0x1C type2 [15,28,15] [15,28,15] +Stage15 0x00F544 28 150 ADN206 0x21 type2 [15,28,15] [15,28,15] +Stage15 0x00F5DC 28 150 ADN207 0x27 type2 [15,28,15] [15,28,15] +Stage15 0x00F674 28 150 ADN208 0x2F type2 [15,28,15] [15,28,15] +Stage15 0x00F70C 28 150 ADN209 0x36 type2 [15,28,15] [15,15,28] +Stage15 0x00F7FC 28 500 ADN210 0x4 type2 [28,15,15] [47,92,1] +Stage15 0x00F980 28 500 ADN211 0x9 type2 [92,1,15] [47,92,1] +Stage15 0x00FB04 28 500 ADN212 0x10 type2 [92,1,15] [47,47,92] +Stage15 0x00FCDC 28 500 ADN213 0x16 type2 [92,1,15] [47,47,92] +Stage15 0x00FEB4 28 500 ADN214 0x1D type2 [92,1,15] [47,47,92] +Stage15 0x0102DC 29 100 TCN001 0x3A type2 [8,127,123] [35,119,11] +Stage15 0x0104C4 101 - ? None typeNone [20,9,116] [100,93,124] +Stage15 0x0110CC 101 - ? None typeNone [20,20,116] [100,93,124] +Stage15 0x013368 28 500 ADN215 0x22 type2 [20,58,15] [47,92,1] +Stage15 0x01358C 28 500 ADN216 0x2A type2 [20,58,15] [47,92,11] +Stage15 0x01378C 28 500 ADN217 0x32 type2 [20,58,15] [47,47,92] +Stage15 0x0139E0 28 500 ADN218 0x37 type2 [20,58,15] [47,47,92] +Stage15 0x013C34 28 500 ADN219 0x39 type2 [20,58,15] [47,47,92] +Stage15 0x013E88 28 500 ADN220 0xA type2 [20,58,15] [47,92,11] +Stage15 0x014088 28 500 ADN221 0x11 type2 [20,58,15] [47,92,11] +Stage15 0x014924 28 150 ADN222 0x17 type2 [64,11,57] [15,64,64] +Stage15 0x014D28 28 500 ADN223 0x1E type2 [11,58,15] [47,47,92] +Stage15 0x015170 28 150 ADN224 0x23 type2 [64,11,57] [15,64,64] +Stage15 0x01553C 28 500 ADN225 0x2B type2 [11,58,15] [47,92,64] +Stage15 0x0158E8 28 500 ADN226 0x33 type2 [11,58,15] [47,92,58] +Stage15 0x015A84 28 500 ADN227 0x38 type2 [92,58,15] [47,92,64] +Stage16 0x0004F4 29 100 TCN001 0x1 type2 [8,127,123] [35,119,11] +Stage16 0x0005D8 101 - ? None typeNone [11,95,116] [100,93,124] +Stage16 0x000A28 101 - ? None typeNone [11,9,116] [100,93,124] +Stage16 0x000E4C 101 - ? None typeNone [140,140,116] [100,93,124] +Stage18 0x000488 28 0 TCN001 0xB type2 [35,8,12] [52,1,11] +Stage18 0x0009D4 26 0 ADT101 0x0 type2 [1,11,18] [13,0,97] +Stage18 0x000D2C 26 0 ADT102 0x2 type2 [1,11,18] [13,0,11] +Stage18 0x000E30 26 0 ADT103 0x4 type2 [0,11,18] [13,0,11] +Stage18 0x000F34 26 0 ADT104 0x5 type2 [0,11,18] [13,0,11] +Stage18 0x0013E4 26 0 ADT105 0x6 type2 [1,11,18] [13,0,11] +Stage18 0x0014E8 26 0 ADT106 0x7 type2 [0,11,18] [13,0,11] +Stage18 0x0015EC 26 0 ADT107 0x8 type2 [0,11,18] [13,0,11] +Stage18 0x001AB0 26 0 ADT108 0x9 type2 [1,11,18] [13,0,97] +Stage18 0x001E2C 28 100 TCN001 0xB type2 [4,1,11] [12,3,15] +Stage18 0x0029FC 26 100 TCN001 0xB type2 [6,11,20] [] +Stage19 0x0003D4 28 0 TCN001 0x7 type2 [35,8,12] [52,1,11] +Stage19 0x000CD4 28 100 TCN001 0x7 type2 [11,104,4] [1,11,69] +Stage19 0x000F0C 26 0 ADS101 0x0 type2 [16,0,12] [26,84,4] +Stage19 0x000F4C 26 0 ADS102 0x1 type2 [0,12,26] [84,4,97] +Stage19 0x001010 28 0 TCN001 0x7 type2 [4,97,4] [12,3,15] +Stage19 0x0012F8 26 0 ADS104 0x2 type2 [4,16,0] [84,4,97] +Stage19 0x001394 28 100 TCN001 0x7 type2 [84,4,97] [12,3,15] +Stage19 0x0019F4 26 100 TCN001 0x7 type2 [6,11,20] [] +Stage20 0x0026C0 26 100 TCN001 0xB type2 [6,11,20] [] +Stage21 0x0002A8 28 0 TCN001 0x2 type2 [35,8,12] [26,52,1] +Stage21 0x0002E8 26 40 TCN001 0x2 type2 [8,12,28] [52,1,12] +Stage21 0x000B58 28 100 TCN001 0x2 type2 [0,84,4] [97,4,12] +Stage21 0x0012F4 26 100 TCN001 0x2 type2 [6,11,20] [] +Stage22 0x00098C 26 0 ADT101 0x0 type2 [1,11,18] [0,11,69] +Stage22 0x000AD0 26 0 ADT102 0x2 type2 [69,11,18] [0,11,69] +Stage22 0x001384 26 0 ADS103 0x1 type2 [11,69,0] [97,1,11] +Stage22 0x001470 26 0 ADT104 0x3 type2 [1,11,18] [0,11,69] +Stage22 0x001868 26 0 ADT106 0x5 type2 [1,11,18] [0,11,69] +Stage22 0x001F1C 26 0 ADT107 0x6 type2 [1,11,18] [0,11,69] +Stage22 0x002130 26 100 TCN001 0x7 type2 [6,11,20] [] +Stage23 0x0002A8 28 0 TCN001 0x3 type2 [35,8,12] [52,1,11] +Stage23 0x000898 26 0 ADS105 0x2 type2 [4,16,0] [84,4,97] +Stage23 0x000B98 28 100 TCN001 0x3 type2 [11,104,4] [1,11,69] +Stage23 0x0012AC 26 100 TCN001 0x3 type2 [6,11,20] [] +Stage24 0x001274 29 0 ADT108 0x1E type2 [12,30,117] [12,12,12] +Stage24 0x001EE8 29 100 TCN001 0x2C type2 [127,123,8] [35,119,1] +Stage24 0x0029B0 29 100 ADT108 0x1E type2 [15,47,64] [20,64,11] +Stage24 0x0045F8 29 100 ADT109 0x22 type2 [15,48,47] [64,1,7] +Stage24 0x004A44 29 0 ADT109 0x22 type2 [58,30,117] [64,7,58] +Stage24 0x0051B8 29 100 ADT103 0x8 type2 [30,15,47] [64,64,1] +Stage24 0x0056B8 29 0 ADT103 0x8 type2 [58,30,117] [64,20,4] +Stage24 0x007094 101 - ? None typeNone [20,20,116] [100,124,93] +Stage24 0x007304 101 - ? None typeNone [11,95,116] [100,124,93] +Stage24 0x007710 101 - ? None typeNone [11,20,116] [100,124,93] +Stage24 0x007DBC 101 - ? None typeNone [11,9,116] [100,124,93] +Stage25 0x001790 28 100 ADN355 0x21 type2 [15,12,15] [12,15,28] +Stage25 0x001864 28 100 ADN350 0xF type2 [28,12,15] [12,15,28] +Stage25 0x001938 28 100 ADN351 0x13 type2 [28,12,15] [12,15,28] +Stage25 0x001A0C 28 100 ADN352 0x17 type2 [28,12,15] [12,15,28] +Stage25 0x001AE0 28 100 ADN353 0x1B type2 [28,12,15] [12,15,28] +Stage25 0x001BB4 28 100 ADN354 0x1E type2 [28,12,15] [12,15,28] +Stage25 0x001C88 28 200 ADN310 0x1 type2 [28,12,15] [12,15,117] +Stage25 0x004218 29 100 TCN001 0x27 type2 [127,123,8] [35,119,1] +Stage25 0x00440C 28 300 ADN312 0x5 type2 [11,57,16] [1,11,57] +Stage25 0x0044F8 28 300 ADN313 0x9 type2 [11,57,16] [1,11,58] +Stage25 0x004600 28 600 ADN314 0xD type2 [11,58,15] [47,47,1] +Stage25 0x004964 28 600 ADN315 0x11 type2 [11,58,15] [47,47,1] +Stage25 0x005348 28 100 ADN350 0xF type2 [143,57,15] [145,47,47] +Stage25 0x005814 28 200 ADN356 0x23 type2 [5,57,15] [145,47,47] +Stage25 0x005BAC 28 200 ADN356 0x23 type2 [143,57,15] [145,47,47] +Stage25 0x00709C 28 100 ADN351 0x13 type2 [143,57,15] [145,47,47] +Stage25 0x0074C8 28 200 ADN357 0x24 type2 [5,57,15] [145,47,47] +Stage25 0x007860 28 200 ADN357 0x24 type2 [143,57,15] [145,47,47] +Stage25 0x0088E8 28 100 ADN352 0x17 type2 [143,57,15] [145,47,47] +Stage25 0x008D14 28 200 ADN358 0x25 type2 [5,57,15] [145,47,47] +Stage25 0x0090AC 28 200 ADN358 0x25 type2 [143,57,15] [145,47,47] +Stage25 0x00A59C 28 100 ADN353 0x1B type2 [143,57,15] [145,47,47] +Stage25 0x00A9C8 28 200 ADN359 0x26 type2 [5,57,15] [145,47,47] +Stage25 0x00AD60 28 200 ADN359 0x26 type2 [143,57,15] [145,47,47] +Stage25 0x00BC70 28 100 ADN354 0x1E type2 [143,57,15] [145,47,47] +Stage25 0x00C09C 28 200 ADN360 0x14 type2 [5,57,15] [145,47,47] +Stage25 0x00C434 28 200 ADN360 0x14 type2 [143,57,15] [145,47,47] +Stage25 0x00D924 28 100 ADN355 0x21 type2 [143,57,15] [145,47,47] +Stage25 0x00DD50 28 200 ADN361 0x18 type2 [5,57,15] [145,47,47] +Stage25 0x00E0E8 28 200 ADN361 0x18 type2 [143,57,15] [145,47,47] +Stage25 0x00ECD4 28 200 ADN310 0x1 type2 [143,57,15] [19,64,20] +Stage25 0x00F390 28 300 ADN311 0x2 type2 [5,57,15] [19,1,64] +Stage25 0x00F704 28 300 ADN311 0x2 type2 [143,57,15] [19,64,8] +Stage25 0x010EFC 28 300 ADN312 0x5 type2 [9,143,57] [16,64,69] +Stage25 0x0111A8 26 0 ADN320 0x3 type2 [69,20,18] [69,8,69] +Stage25 0x011450 28 300 ADN320 0x3 type2 [9,128,15] [47,47,1] +Stage25 0x011C0C 28 300 ADN320 0x3 type2 [143,128,15] [47,47,1] +Stage25 0x011FFC 28 300 ADN320 0x3 type2 [143,128,15] [47,47,1] +Stage25 0x012240 26 0 ADN321 0x7 type2 [69,20,18] [69,8,69] +Stage25 0x0124E8 28 300 ADN321 0x7 type2 [9,128,15] [47,47,1] +Stage25 0x012CA4 28 300 ADN321 0x7 type2 [143,128,15] [47,47,1] +Stage25 0x013094 28 300 ADN321 0x7 type2 [143,128,15] [47,47,1] +Stage25 0x0134C0 28 300 ADN328 0x20 type2 [9,128,15] [47,1,69] +Stage25 0x013BE8 28 300 ADN328 0x20 type2 [143,128,15] [47,1,69] +Stage25 0x0142CC 28 300 ADN313 0x9 type2 [9,143,57] [16,64,69] +Stage25 0x0146F4 28 300 ADN325 0x16 type2 [9,128,15] [47,1,69] +Stage25 0x014E1C 28 300 ADN325 0x16 type2 [143,128,15] [47,1,18] +Stage25 0x0151F4 28 300 ADN329 0x22 type2 [9,128,15] [47,1,69] +Stage25 0x01591C 28 300 ADN329 0x22 type2 [143,128,15] [47,1,69] +Stage25 0x016058 28 600 ADN314 0xD type2 [143,57,15] [47,47,145] +Stage25 0x016B84 28 600 ADN315 0x11 type2 [143,57,15] [47,47,145] +Stage25 0x017094 101 - ? None typeNone [64,95,116] [100,124,93] +Stage25 0x01748C 101 - ? None typeNone [11,20,116] [100,124,93] +Stage25 0x017AE8 101 - ? None typeNone [11,9,116] [100,124,93] +Stage26 0x000EF0 29 0 TCN001 0x16 type2 [118,146,12] [15,12,15] +Stage26 0x001614 29 50 TCT012 0x28 type2 [15,3,30] [12,15,3] +Stage26 0x0017F4 29 50 TCT013 0x2A type2 [15,3,30] [12,15,3] +Stage26 0x0019D4 29 50 TCT014 0x2C type2 [15,3,30] [12,15,3] +Stage26 0x001BB4 29 50 TCT015 0x2E type2 [15,3,30] [12,15,3] +Stage26 0x001D94 29 50 TCT016 0x30 type2 [15,3,30] [12,15,3] +Stage26 0x001F74 29 50 TCT017 0x32 type2 [15,3,30] [12,15,3] +Stage26 0x002154 29 50 TCT018 0x34 type2 [15,3,30] [12,15,3] +Stage26 0x002334 29 50 TCT019 0x36 type2 [15,3,30] [12,15,3] +Stage26 0x003928 29 100 TCN001 0x16 type2 [127,123,8] [35,11,95] +Stage26 0x003A00 101 - ? None typeNone [11,95,116] [100,124,93] +Stage26 0x003E10 101 - ? None typeNone [11,20,116] [100,124,93] +Stage26 0x004414 101 - ? None typeNone [6,11,116] [100,124,93] +Stage26 0x004664 101 - ? None typeNone [11,9,116] [100,124,93] +Stage26 0x008DD0 29 20 ADN128 0x14 type2 [47,11,57] [15,3,46] +Stage26 0x00AD0C 26 0 ADN128 0x14 type2 [18,5,5] [26,4,64] +Stage26 0x00AD4C 26 0 TCT012 0x28 type2 [5,5,26] [4,64,11] +Stage26 0x00AF4C 26 0 ADN128 0x14 type2 [18,5,5] [26,4,64] +Stage26 0x00AF8C 26 0 TCT013 0x2A type2 [5,5,26] [4,64,11] +Stage26 0x00B18C 26 0 ADN128 0x14 type2 [18,5,5] [26,4,64] +Stage26 0x00B1CC 26 0 TCT014 0x2C type2 [5,5,26] [4,64,11] +Stage26 0x00B3CC 26 0 ADN128 0x14 type2 [18,5,5] [26,4,64] +Stage26 0x00B40C 26 0 TCT015 0x2E type2 [5,5,26] [4,64,11] +Stage26 0x00B60C 26 0 ADN128 0x14 type2 [18,5,5] [26,4,64] +Stage26 0x00B64C 26 0 TCT016 0x30 type2 [5,5,26] [4,64,11] +Stage26 0x00B84C 26 0 ADN128 0x14 type2 [18,5,5] [26,4,64] +Stage26 0x00B88C 26 0 TCT017 0x32 type2 [5,5,26] [4,64,11] +Stage26 0x00BA8C 26 0 ADN128 0x14 type2 [18,5,5] [26,4,64] +Stage26 0x00BACC 26 0 TCT018 0x34 type2 [5,5,26] [4,64,11] +Stage26 0x00BCCC 26 0 ADN128 0x14 type2 [18,5,5] [26,4,64] +Stage26 0x00BD0C 26 0 TCT019 0x36 type2 [5,5,26] [4,64,11] +Stage27 0x000AAC 29 0 TCN001 0x12 type2 [118,146,12] [15,12,15] +Stage27 0x002088 29 100 TCN001 0x12 type2 [127,123,8] [35,11,95] +Stage27 0x002160 101 - ? None typeNone [11,95,116] [100,124,93] +Stage27 0x002570 101 - ? None typeNone [11,20,116] [100,124,93] +Stage27 0x002BBC 101 - ? None typeNone [11,9,116] [100,124,93] +Stage27 0x00339C 101 - ? None typeNone [20,20,116] [100,124,93] +Stage28 0x00101C 29 0 TCN001 0x13 type2 [118,146,12] [15,12,30] +Stage28 0x0020EC 29 100 TCN001 0x13 type2 [127,123,8] [35,11,95] +Stage28 0x0021C4 101 - ? None typeNone [11,95,116] [100,124,93] +Stage28 0x00256C 101 - ? None typeNone [20,20,116] [100,124,93] +Stage28 0x002958 101 - ? None typeNone [11,9,116] [100,124,93] +Stage28 0x002E4C 29 0 ADT102 0x2 type2 [12,12,12] [29,29,136] +Stage28 0x002E8C 29 0 ADT103 0x4 type2 [12,12,29] [29,136,13] +Stage28 0x002ECC 29 0 ADT104 0x6 type2 [12,29,29] [136,13,1] +Stage28 0x003BE8 29 0 ADT107 0xB type2 [12,12,12] [29,29,136] +Stage28 0x003C28 29 0 ADT108 0xC type2 [12,12,29] [29,136,13] +Stage28 0x003C68 29 0 ADT109 0xD type2 [12,29,29] [136,13,64] +Stage28 0x004848 29 0 ADT113 0x7 type2 [12,12,12] [29,29,136] +Stage28 0x004888 29 0 ADT114 0x8 type2 [12,12,29] [29,136,13] +Stage28 0x0048C8 29 0 ADT115 0xA type2 [12,29,29] [136,13,1] +Stage28 0x0050F8 26 0 ADT102 0x2 type2 [11,70,18] [13,70,136] +Stage28 0x005330 26 0 ADT103 0x4 type2 [11,70,18] [13,70,11] +Stage28 0x005520 26 0 ADT104 0x6 type2 [11,70,18] [13,11,70] +Stage28 0x005638 26 0 ADT107 0xB type2 [11,70,18] [13,70,136] +Stage28 0x005870 26 0 ADT108 0xC type2 [11,70,18] [13,70,11] +Stage28 0x005A60 26 0 ADT109 0xD type2 [11,70,18] [13,11,70] +Stage28 0x005B78 26 0 ADT113 0x7 type2 [11,70,18] [13,70,136] +Stage28 0x005DB0 26 0 ADT114 0x8 type2 [11,70,18] [13,70,11] +Stage28 0x005FA0 26 0 ADT115 0xA type2 [11,70,18] [13,11,64] +Stage29 0x0083A0 29 100 TCN001 0x11 type2 [12,12,12] [15,29,15] +Stage29 0x008438 29 100 TCN002 0x14 type2 [12,29,15] [15,29,15] +Stage29 0x0084D0 29 50 TCN003 0x18 type2 [15,29,15] [15,92,15] +Stage29 0x008740 29 75 TCN004 0x1F type2 [15,30,3] [15,3,29] +Stage29 0x008878 29 50 TCN005 0x21 type2 [29,15,3] [15,30,19] +Stage29 0x008AA4 29 75 TCT006 0x2C type2 [30,19,3] [15,3,3] +Stage29 0x008C7C 29 50 TCN007 0x25 type2 [15,3,3] [15,3,3] +Stage29 0x008E54 29 50 TCN110 0x17 type2 [15,3,3] [15,3,3] +Stage29 0x00902C 29 50 TCN111 0x1D type2 [15,3,3] [15,3,3] +Stage29 0x009204 29 50 TCN113 0x22 type2 [15,3,3] [15,30,29] +Stage29 0x009308 29 0 TCN008 0x26 type2 [29,15,30] [92,15,48] +Stage29 0x0094B4 29 50 TCN009 0x29 type2 [92,15,48] [15,92,29] +Stage29 0x0095C0 29 50 TCN114 0x24 type2 [29,15,92] [1,15,92] +Stage29 0x0096F0 29 50 TCN116 0x28 type2 [1,15,92] [1,15,48] +Stage29 0x00984C 29 50 TCN119 0x2B type2 [1,15,48] [1,1,75] +Stage29 0x00CCF0 29 100 TCN001 0x11 type2 [127,123,8] [35,119,11] +Stage29 0x010580 101 - ? None typeNone [69,95,116] [100,93,124] +Stage29 0x0109A8 101 - ? None typeNone [11,20,116] [100,124,93] +Stage29 0x011004 101 - ? None typeNone [11,20,116] [100,124,93] +Stage29 0x01128C 101 - ? None typeNone [11,9,116] [100,93,124] +Stage29 0x01158C 101 - ? None typeNone [6,11,116] [100,93,124] +Stage29 0x011D74 29 50 TCN120 0x1E type2 [128,15,92] [11,20,11] +Stage29 0x011FD0 29 50 TCN121 0x20 type2 [128,15,92] [11,69,57] +Stage29 0x012D0C 28 200 ADN101ea1 0x0 type2 [145,128,15] [145,47,47] +Stage29 0x013294 28 200 ADN101ea2 0x1 type2 [1,128,15] [29,145,47] +Stage29 0x0132D4 29 50 ADN101ea2 0x1 type2 [128,15,28] [145,47,47] +Stage29 0x01381C 28 200 ADN102ea1 0x2 type2 [145,128,15] [145,47,47] +Stage29 0x013DA4 28 200 ADN102ea2 0x3 type2 [1,128,15] [29,145,47] +Stage29 0x013DE4 29 50 ADN102ea2 0x3 type2 [128,15,28] [145,47,47] +Stage29 0x01432C 28 200 ADN103ea1 0x4 type2 [145,128,15] [145,47,47] +Stage29 0x0148B4 28 200 ADN103ea2 0x6 type2 [1,128,15] [29,145,47] +Stage29 0x0148F4 29 50 ADN103ea2 0x6 type2 [128,15,28] [145,47,47] +Stage29 0x014E3C 28 200 ADN104ea1 0x7 type2 [145,128,15] [145,47,47] +Stage29 0x0153C4 28 200 ADN104ea2 0xA type2 [1,128,15] [29,145,47] +Stage29 0x015404 29 50 ADN104ea2 0xA type2 [128,15,28] [145,47,47] +Stage29 0x01594C 28 200 ADN121ea1 0x5 type2 [145,128,15] [145,47,47] +Stage29 0x015EB0 28 200 ADN121ea2 0x8 type2 [92,128,15] [29,145,47] +Stage29 0x015EF0 29 50 ADN121ea2 0x8 type2 [128,15,28] [145,47,47] +Stage29 0x016338 28 200 ADN122ea1 0x9 type2 [145,128,15] [145,47,47] +Stage29 0x01689C 28 200 ADN122ea2 0xB type2 [92,128,15] [29,145,47] +Stage29 0x0168DC 29 50 ADN122ea2 0xB type2 [128,15,28] [145,47,47] +Stage29 0x016D24 28 200 ADN123ea1 0xC type2 [145,128,15] [145,47,47] +Stage29 0x017288 28 200 ADN123ea2 0xD type2 [92,128,15] [29,145,47] +Stage29 0x0172C8 29 50 ADN123ea2 0xD type2 [128,15,28] [145,47,47] +Stage29 0x017710 28 200 ADN124ea1 0xE type2 [145,128,15] [145,47,47] +Stage29 0x017C74 28 200 ADN124ea2 0xF type2 [92,128,15] [29,145,47] +Stage29 0x017CB4 29 50 ADN124ea2 0xF type2 [128,15,28] [145,47,47] +Stage29 0x01C5FC 28 200 ADN101b 0x2F type2 [64,57,15] [1,4,57] +Stage29 0x01C71C 28 120 ADN101a 0x2E type2 [4,57,15] [1,4,57] +Stage29 0x01C83C 28 120 ADN102a 0x30 type2 [4,57,15] [1,4,57] +Stage29 0x01C95C 28 200 ADN102b 0x33 type2 [4,57,15] [1,4,57] +Stage29 0x01CA7C 28 120 ADN103a 0x34 type2 [4,57,15] [1,4,57] +Stage29 0x01CB9C 28 200 ADN103b 0x39 type2 [4,57,15] [1,4,57] +Stage29 0x01CCBC 28 120 ADN104a 0x3A type2 [4,57,15] [1,4,57] +Stage29 0x01CDDC 28 300 ADN101e 0x40 type2 [4,57,15] [1,4,57] +Stage29 0x01CEFC 28 300 ADN102e 0x4B type2 [4,57,15] [1,4,57] +Stage29 0x01D01C 28 300 ADN103e 0x54 type2 [4,57,15] [1,4,57] +Stage29 0x01D13C 28 300 ADN104e 0x5C type2 [4,57,15] [1,4,57] +Stage29 0x01D25C 28 120 ADN105a 0x43 type2 [4,57,15] [1,4,57] +Stage29 0x01D37C 28 120 ADN106a 0x4D type2 [4,57,15] [1,4,57] +Stage29 0x01D49C 28 120 ADN107a 0x56 type2 [4,57,15] [1,4,57] +Stage29 0x01D5C4 28 200 ADN101c 0x32 type2 [4,57,15] [1,4,57] +Stage29 0x01D6E4 28 300 ADN101e 0x40 type2 [4,57,15] [1,4,57] +Stage29 0x01D804 28 120 ADN101a 0x2E type2 [4,57,15] [1,4,57] +Stage29 0x01D924 28 200 ADN101b 0x2F type2 [4,57,15] [1,4,57] +Stage29 0x01DA44 28 120 ADN102a 0x30 type2 [4,57,15] [1,4,57] +Stage29 0x01DB64 28 200 ADN102b 0x33 type2 [4,57,15] [1,4,57] +Stage29 0x01DC84 28 120 ADN103a 0x34 type2 [4,57,15] [1,4,57] +Stage29 0x01DDA4 28 200 ADN103b 0x39 type2 [4,57,15] [1,4,57] +Stage29 0x01DEC4 28 120 ADN104a 0x3A type2 [4,57,15] [1,4,57] +Stage29 0x01DFE4 28 120 ADN105a 0x43 type2 [4,57,15] [1,4,57] +Stage29 0x01E104 28 200 ADN102c 0x38 type2 [4,57,15] [1,4,57] +Stage29 0x01E224 28 300 ADN102e 0x4B type2 [4,57,15] [1,4,57] +Stage29 0x01E344 28 120 ADN106a 0x4D type2 [4,57,15] [1,4,57] +Stage29 0x01E464 28 200 ADN104b 0x42 type2 [4,57,15] [1,4,57] +Stage29 0x01E58C 28 200 ADN101c 0x32 type2 [4,57,15] [1,4,57] +Stage29 0x01E6AC 28 200 ADN102c 0x38 type2 [4,57,15] [1,4,57] +Stage29 0x01E7CC 28 120 ADN101a 0x2E type2 [4,57,15] [1,4,57] +Stage29 0x01E8EC 28 300 ADN101e 0x40 type2 [4,57,15] [1,4,57] +Stage29 0x01EA0C 28 120 ADN102a 0x30 type2 [4,57,15] [1,4,57] +Stage29 0x01EB2C 28 120 ADN103a 0x34 type2 [4,57,15] [1,4,57] +Stage29 0x01EC4C 28 120 ADN104a 0x3A type2 [4,57,15] [1,4,57] +Stage29 0x01ED6C 28 300 ADN102e 0x4B type2 [4,57,15] [1,4,57] +Stage29 0x01EE8C 28 200 ADN101b 0x2F type2 [4,57,15] [1,4,57] +Stage29 0x01EFAC 28 200 ADN102b 0x33 type2 [4,57,15] [1,4,57] +Stage29 0x01F0CC 28 120 ADN105a 0x43 type2 [4,57,15] [1,4,57] +Stage29 0x01F1EC 28 200 ADN103b 0x39 type2 [4,57,15] [1,4,57] +Stage29 0x01F30C 28 300 ADN103e 0x54 type2 [4,57,15] [1,4,57] +Stage29 0x01F42C 28 300 ADN104e 0x5C type2 [4,57,15] [1,57,15] +Stage29 0x01F52C 28 200 ADN101c 0x32 type2 [1,57,15] [1,4,57] +Stage29 0x01F64C 28 200 ADN101b 0x2F type2 [4,57,15] [1,4,57] +Stage29 0x01F76C 28 120 ADN101a 0x2E type2 [4,57,15] [1,4,57] +Stage29 0x01F88C 28 120 ADN102a 0x30 type2 [4,57,15] [1,4,57] +Stage29 0x01F9AC 28 300 ADN101e 0x40 type2 [4,57,15] [1,4,57] +Stage29 0x01FACC 28 200 ADN102b 0x33 type2 [4,57,15] [1,4,57] +Stage29 0x01FBEC 28 120 ADN103a 0x34 type2 [4,57,15] [1,4,57] +Stage29 0x01FD0C 28 120 ADN104a 0x3A type2 [4,57,15] [1,4,57] +Stage29 0x01FE2C 28 300 ADN102e 0x4B type2 [4,57,15] [1,4,57] +Stage29 0x01FF4C 28 200 ADN103b 0x39 type2 [4,57,15] [1,4,57] +Stage29 0x02006C 28 300 ADN101d 0x37 type2 [4,57,15] [1,4,57] +Stage29 0x02018C 28 200 ADN102c 0x38 type2 [4,57,15] [1,4,57] +Stage29 0x0202AC 28 300 ADN103e 0x54 type2 [4,57,15] [1,4,57] +Stage29 0x0203CC 28 300 ADN104e 0x5C type2 [4,57,15] [1,4,57] +Stage29 0x0204F4 28 300 ADN101d 0x37 type2 [4,57,15] [1,4,57] +Stage29 0x020614 28 200 ADN101c 0x32 type2 [4,57,15] [1,4,57] +Stage29 0x020734 28 200 ADN101b 0x2F type2 [4,57,15] [1,4,57] +Stage29 0x020854 28 200 ADN102c 0x38 type2 [4,57,15] [1,4,57] +Stage29 0x020974 28 120 ADN101a 0x2E type2 [4,57,15] [1,4,57] +Stage29 0x020A94 28 200 ADN102b 0x33 type2 [4,57,15] [1,4,57] +Stage29 0x020BB4 28 300 ADN101e 0x40 type2 [4,57,15] [1,4,57] +Stage29 0x020CD4 28 300 ADN102e 0x4B type2 [4,57,15] [1,4,57] +Stage29 0x020DF4 28 200 ADN103b 0x39 type2 [4,57,15] [1,4,57] +Stage29 0x020F14 28 120 ADN102a 0x30 type2 [4,57,15] [1,4,57] +Stage29 0x021034 28 120 ADN103a 0x34 type2 [4,57,15] [1,4,57] +Stage29 0x021154 28 120 ADN104a 0x3A type2 [4,57,15] [1,4,57] +Stage29 0x021274 28 300 ADN103e 0x54 type2 [4,57,15] [1,4,57] +Stage29 0x021394 28 300 ADN104e 0x5C type2 [4,57,15] [1,4,57] +Stage29 0x0214BC 28 200 ADN101b 0x2F type2 [4,57,15] [1,4,57] +Stage29 0x0215DC 28 300 ADN101e 0x40 type2 [4,57,15] [1,4,57] +Stage29 0x0216FC 28 120 ADN101a 0x2E type2 [4,57,15] [1,4,57] +Stage29 0x02181C 28 300 ADN102e 0x4B type2 [4,57,15] [1,4,57] +Stage29 0x02193C 28 120 ADN102a 0x30 type2 [4,57,15] [1,4,57] +Stage29 0x021A5C 28 300 ADN103e 0x54 type2 [4,57,15] [1,4,57] +Stage29 0x021B7C 28 120 ADN103a 0x34 type2 [4,57,15] [1,4,57] +Stage29 0x021C9C 28 120 ADN104a 0x3A type2 [4,57,15] [1,4,57] +Stage29 0x021DBC 28 120 ADN105a 0x43 type2 [4,57,15] [1,4,57] +Stage29 0x021EDC 28 120 ADN106a 0x4D type2 [4,57,15] [1,4,57] +Stage29 0x021FFC 28 200 ADN101c 0x32 type2 [4,57,15] [1,57,15] +Stage29 0x0220F4 28 200 ADN102b 0x33 type2 [1,57,15] [1,4,57] +Stage29 0x022214 28 200 ADN102c 0x38 type2 [4,57,15] [1,4,57] +Stage29 0x022334 28 300 ADN104e 0x5C type2 [4,57,15] [1,57,15] +Stage29 0x022434 28 300 ADN101e 0x40 type2 [1,57,15] [1,4,57] +Stage29 0x022554 28 200 ADN101b 0x2F type2 [4,57,15] [1,4,57] +Stage29 0x022674 28 300 ADN102e 0x4B type2 [4,57,15] [1,4,57] +Stage29 0x022794 28 120 ADN101a 0x2E type2 [4,57,15] [1,4,57] +Stage29 0x0228B4 28 200 ADN101c 0x32 type2 [4,57,15] [1,4,57] +Stage29 0x0229D4 28 300 ADN101d 0x37 type2 [4,57,15] [1,4,57] +Stage29 0x022AF4 28 120 ADN102a 0x30 type2 [4,57,15] [1,4,57] +Stage29 0x022C14 28 120 ADN103a 0x34 type2 [4,57,15] [1,4,57] +Stage29 0x022D34 28 120 ADN104a 0x3A type2 [4,57,15] [1,4,57] +Stage29 0x022E54 28 200 ADN102b 0x33 type2 [4,57,15] [1,4,57] +Stage29 0x022F74 28 300 ADN103e 0x54 type2 [4,57,15] [1,4,57] +Stage29 0x023094 28 120 ADN105a 0x43 type2 [4,57,15] [1,4,57] +Stage29 0x0231B4 28 200 ADN102c 0x38 type2 [4,57,15] [1,4,57] +Stage29 0x0232D4 28 120 ADN106a 0x4D type2 [4,57,15] [1,4,11] +Stage29 0x023764 28 200 ADN141a 0x3E type2 [16,16,16] [145,47,47] +Stage29 0x023EFC 28 200 ADN141b 0x48 type2 [16,16,16] [29,145,47] +Stage29 0x023F3C 29 50 ADN141b 0x48 type2 [16,16,28] [145,47,47] +Stage29 0x024420 28 200 ADN142a 0x49 type2 [16,16,16] [145,47,47] +Stage29 0x024BB8 28 200 ADN142b 0x52 type2 [16,16,16] [29,145,47] +Stage29 0x024BF8 29 50 ADN142b 0x52 type2 [16,16,28] [145,47,47] +Stage29 0x02517C 28 200 ADN143a 0x53 type2 [16,16,16] [145,47,47] +Stage29 0x025914 28 200 ADN143b 0x5A type2 [16,16,16] [29,145,47] +Stage29 0x025954 29 50 ADN143b 0x5A type2 [16,16,28] [145,47,47] +Stage29 0x025F78 28 200 ADN144a 0x5B type2 [16,16,16] [145,47,47] +Stage29 0x026710 28 200 ADN144b 0x61 type2 [16,16,16] [29,145,47] +Stage29 0x026750 29 50 ADN144b 0x61 type2 [16,16,28] [145,47,47] +Stage29 0x026CD4 28 200 ADN145a 0x62 type2 [16,16,16] [145,47,47] +Stage29 0x02746C 28 200 ADN145b 0x65 type2 [16,16,16] [29,145,47] +Stage29 0x0274AC 29 50 ADN145b 0x65 type2 [16,16,28] [145,47,47] +Stage29 0x02783C 28 200 ADN121b 0x35 type2 [64,57,15] [1,4,57] +Stage29 0x02795C 28 120 ADN121a 0x31 type2 [4,57,15] [1,4,57] +Stage29 0x027A7C 28 120 ADN122a 0x36 type2 [4,57,15] [1,4,57] +Stage29 0x027B9C 28 200 ADN122b 0x3C type2 [4,57,15] [1,4,57] +Stage29 0x027CBC 28 120 ADN123a 0x3D type2 [4,57,15] [1,4,57] +Stage29 0x027DDC 28 200 ADN123b 0x46 type2 [4,57,15] [1,4,57] +Stage29 0x027EFC 28 120 ADN124a 0x47 type2 [4,57,15] [1,4,57] +Stage29 0x02801C 28 300 ADN121e 0x4E type2 [4,57,15] [1,4,57] +Stage29 0x02813C 28 300 ADN122e 0x57 type2 [4,57,15] [1,4,57] +Stage29 0x02825C 28 300 ADN123e 0x5E type2 [4,57,15] [1,4,57] +Stage29 0x02837C 28 300 ADN124e 0x63 type2 [4,57,15] [1,4,57] +Stage29 0x02849C 28 120 ADN125a 0x51 type2 [4,57,15] [1,4,57] +Stage29 0x0285BC 28 120 ADN126a 0x59 type2 [4,57,15] [1,4,57] +Stage29 0x0286DC 28 120 ADN127a 0x60 type2 [4,57,15] [1,4,64] +Stage29 0x0288A4 28 200 ADN121c 0x3B type2 [64,57,15] [1,4,57] +Stage29 0x0289C4 28 300 ADN121e 0x4E type2 [4,57,15] [1,4,57] +Stage29 0x028AE4 28 120 ADN121a 0x31 type2 [4,57,15] [1,4,57] +Stage29 0x028C04 28 200 ADN121b 0x35 type2 [4,57,15] [1,4,57] +Stage29 0x028D24 28 120 ADN122a 0x36 type2 [4,57,15] [1,4,57] +Stage29 0x028E44 28 200 ADN122b 0x3C type2 [4,57,15] [1,4,57] +Stage29 0x028F64 28 120 ADN123a 0x3D type2 [4,57,15] [1,4,57] +Stage29 0x029084 28 200 ADN123b 0x46 type2 [4,57,15] [1,4,57] +Stage29 0x0291A4 28 120 ADN124a 0x47 type2 [4,57,15] [1,4,57] +Stage29 0x0292C4 28 120 ADN125a 0x51 type2 [4,57,15] [1,4,57] +Stage29 0x0293E4 28 200 ADN122c 0x45 type2 [4,57,15] [1,4,57] +Stage29 0x029504 28 300 ADN122e 0x57 type2 [4,57,15] [1,4,57] +Stage29 0x029624 28 120 ADN126a 0x59 type2 [4,57,15] [1,4,57] +Stage29 0x029744 28 200 ADN124b 0x50 type2 [4,57,15] [1,4,64] +Stage29 0x0299AC 28 200 ADN121c 0x3B type2 [64,57,15] [1,4,57] +Stage29 0x029ACC 28 200 ADN122c 0x45 type2 [4,57,15] [1,4,57] +Stage29 0x029BEC 28 120 ADN121a 0x31 type2 [4,57,15] [1,4,57] +Stage29 0x029D0C 28 300 ADN121e 0x4E type2 [4,57,15] [1,4,57] +Stage29 0x029E2C 28 120 ADN122a 0x36 type2 [4,57,15] [1,4,57] +Stage29 0x029F4C 28 120 ADN123a 0x3D type2 [4,57,15] [1,4,57] +Stage29 0x02A06C 28 120 ADN124a 0x47 type2 [4,57,15] [1,4,57] +Stage29 0x02A18C 28 300 ADN122e 0x57 type2 [4,57,15] [1,4,57] +Stage29 0x02A2AC 28 200 ADN121b 0x35 type2 [4,57,15] [1,4,57] +Stage29 0x02A3CC 28 200 ADN122b 0x3C type2 [4,57,15] [1,4,57] +Stage29 0x02A4EC 28 120 ADN125a 0x51 type2 [4,57,15] [1,4,57] +Stage29 0x02A60C 28 200 ADN123b 0x46 type2 [4,57,15] [1,4,57] +Stage29 0x02A72C 28 300 ADN123e 0x5E type2 [4,57,15] [1,4,57] +Stage29 0x02A84C 28 300 ADN124e 0x63 type2 [4,57,15] [1,64,64] +Stage29 0x02AA8C 28 200 ADN121c 0x3B type2 [64,57,15] [1,4,57] +Stage29 0x02ABAC 28 200 ADN121b 0x35 type2 [4,57,15] [1,4,57] +Stage29 0x02ACCC 28 120 ADN121a 0x31 type2 [4,57,15] [1,4,57] +Stage29 0x02ADEC 28 120 ADN122a 0x36 type2 [4,57,15] [1,4,57] +Stage29 0x02AF0C 28 300 ADN121e 0x4E type2 [4,57,15] [1,4,57] +Stage29 0x02B02C 28 200 ADN122b 0x3C type2 [4,57,15] [1,4,57] +Stage29 0x02B14C 28 120 ADN123a 0x3D type2 [4,57,15] [1,4,57] +Stage29 0x02B26C 28 120 ADN124a 0x47 type2 [4,57,15] [1,4,57] +Stage29 0x02B38C 28 300 ADN122e 0x57 type2 [4,57,15] [1,4,57] +Stage29 0x02B4AC 28 200 ADN123b 0x46 type2 [4,57,15] [1,4,57] +Stage29 0x02B5CC 28 300 ADN121d 0x44 type2 [4,57,15] [1,4,57] +Stage29 0x02B6EC 28 200 ADN122c 0x45 type2 [4,57,15] [1,4,57] +Stage29 0x02B80C 28 300 ADN123e 0x5E type2 [4,57,15] [1,4,57] +Stage29 0x02B92C 28 300 ADN124e 0x63 type2 [4,57,15] [1,4,64] +Stage29 0x02BB94 28 300 ADN121d 0x44 type2 [64,57,15] [1,4,57] +Stage29 0x02BCB4 28 200 ADN121c 0x3B type2 [4,57,15] [1,4,57] +Stage29 0x02BDD4 28 200 ADN121b 0x35 type2 [4,57,15] [1,4,57] +Stage29 0x02BEF4 28 200 ADN122c 0x45 type2 [4,57,15] [1,4,57] +Stage29 0x02C014 28 120 ADN121a 0x31 type2 [4,57,15] [1,4,57] +Stage29 0x02C134 28 200 ADN122b 0x3C type2 [4,57,15] [1,4,57] +Stage29 0x02C254 28 300 ADN121e 0x4E type2 [4,57,15] [1,4,57] +Stage29 0x02C374 28 300 ADN122e 0x57 type2 [4,57,15] [1,4,57] +Stage29 0x02C494 28 200 ADN123b 0x46 type2 [4,57,15] [1,4,57] +Stage29 0x02C5B4 28 120 ADN122a 0x36 type2 [4,57,15] [1,4,57] +Stage29 0x02C6D4 28 120 ADN123a 0x3D type2 [4,57,15] [1,4,57] +Stage29 0x02C7F4 28 120 ADN124a 0x47 type2 [4,57,15] [1,4,57] +Stage29 0x02C914 28 300 ADN123e 0x5E type2 [4,57,15] [1,4,57] +Stage29 0x02CA34 28 300 ADN124e 0x63 type2 [4,57,15] [1,4,64] +Stage29 0x02CC9C 28 200 ADN121b 0x35 type2 [64,57,15] [1,4,57] +Stage29 0x02CDBC 28 300 ADN121e 0x4E type2 [4,57,15] [1,4,57] +Stage29 0x02CEDC 28 120 ADN121a 0x31 type2 [4,57,15] [1,4,57] +Stage29 0x02CFFC 28 300 ADN122e 0x57 type2 [4,57,15] [1,4,57] +Stage29 0x02D11C 28 120 ADN122a 0x36 type2 [4,57,15] [1,4,57] +Stage29 0x02D23C 28 300 ADN123e 0x5E type2 [4,57,15] [1,4,57] +Stage29 0x02D35C 28 120 ADN123a 0x3D type2 [4,57,15] [1,4,57] +Stage29 0x02D47C 28 120 ADN124a 0x47 type2 [4,57,15] [1,4,57] +Stage29 0x02D59C 28 120 ADN125a 0x51 type2 [4,57,15] [1,4,57] +Stage29 0x02D6BC 28 120 ADN126a 0x59 type2 [4,57,15] [1,4,57] +Stage29 0x02D7DC 28 200 ADN121c 0x3B type2 [4,57,15] [1,4,57] +Stage29 0x02D8FC 28 200 ADN122b 0x3C type2 [4,57,15] [1,4,57] +Stage29 0x02DA1C 28 200 ADN122c 0x45 type2 [4,57,15] [1,4,57] +Stage29 0x02DB3C 28 300 ADN124e 0x63 type2 [4,57,15] [1,64,64] +Stage29 0x02DD7C 28 300 ADN121e 0x4E type2 [64,57,15] [1,4,57] +Stage29 0x02DE9C 28 200 ADN121b 0x35 type2 [4,57,15] [1,4,57] +Stage29 0x02DFBC 28 300 ADN122e 0x57 type2 [4,57,15] [1,4,57] +Stage29 0x02E0DC 28 120 ADN121a 0x31 type2 [4,57,15] [1,4,57] +Stage29 0x02E1FC 28 200 ADN121c 0x3B type2 [4,57,15] [1,4,57] +Stage29 0x02E31C 28 300 ADN121d 0x44 type2 [4,57,15] [1,4,57] +Stage29 0x02E43C 28 120 ADN122a 0x36 type2 [4,57,15] [1,4,57] +Stage29 0x02E55C 28 120 ADN123a 0x3D type2 [4,57,15] [1,4,57] +Stage29 0x02E67C 28 120 ADN124a 0x47 type2 [4,57,15] [1,4,57] +Stage29 0x02E79C 28 200 ADN122b 0x3C type2 [4,57,15] [1,4,57] +Stage29 0x02E8BC 28 300 ADN123e 0x5E type2 [4,57,15] [1,4,57] +Stage29 0x02E9DC 28 120 ADN125a 0x51 type2 [4,57,15] [1,4,57] +Stage29 0x02EAFC 28 200 ADN122c 0x45 type2 [4,57,15] [1,4,57] +Stage29 0x02EC1C 28 120 ADN126a 0x59 type2 [4,57,15] [1,4,64] +Stage29 0x02F1EC 28 200 ADN146a 0x66 type2 [16,16,16] [145,47,47] +Stage29 0x02F960 28 200 ADN146b 0x67 type2 [16,16,16] [29,145,47] +Stage29 0x02F9A0 29 50 ADN146b 0x67 type2 [16,16,28] [145,47,47] +Stage29 0x02FF24 28 200 ADN147a 0x68 type2 [16,16,16] [145,47,47] +Stage29 0x030698 28 200 ADN147b 0x69 type2 [16,16,16] [29,145,47] +Stage29 0x0306D8 29 50 ADN147b 0x69 type2 [16,16,28] [145,47,47] +Stage29 0x030C5C 28 200 ADN148a 0x6A type2 [16,16,16] [145,47,47] +Stage29 0x0313D0 28 200 ADN148b 0x6B type2 [16,16,16] [29,145,47] +Stage29 0x031410 29 50 ADN148b 0x6B type2 [16,16,28] [145,47,47] +Stage29 0x031994 28 200 ADN149a 0x6C type2 [16,16,16] [145,47,47] +Stage29 0x032108 28 200 ADN149b 0x6D type2 [16,16,16] [29,145,47] +Stage29 0x032148 29 50 ADN149b 0x6D type2 [16,16,28] [145,47,47] +Stage29 0x0326CC 28 200 ADN150a 0x3F type2 [16,16,16] [145,47,47] +Stage29 0x032E40 28 200 ADN150b 0x4A type2 [16,16,16] [29,145,47] +Stage29 0x032E80 29 50 ADN150b 0x4A type2 [16,16,28] [145,47,47] + +# builtin 26: 97 sites, 7 distinct values +# values: 0 x69, 80 x10, 100 x6, 60 x5, 30 x3, 50 x3, 40 x1 +# units: 66 distinct, top: ADN128 x8, TCN001 x7, ADN207 x4, TCN208 x4, TCN002 x3, ADT102 x3, ADT104 x3, ADT107 x3, ADT101 x2, ADT103 x2 +# craft cross-tab (0 unresolved): +# UN_e201_ADAN_ISCMissile 17 0x17 +# UN_n001_TTRL_Box 16 0x16 +# UN_f202_TCAF_Cargo 9 0x9 +# UN_e106_ADAN_Destroyer 8 0x4, 80x2, 30x1, 60x1 +# UN_f106_TCAF_Destroyer 8 0x4, 60x2, 80x1, 50x1 +# UN_f001_TCAF_DeltaSaber_T_Player_Ttrl1 6 100x5, 40x1 +# UN_f105_TCAF_Cruiser 5 0x3, 80x1, 50x1 +# UN_e015_ADAN_Puppy_2 5 0x5 +# UN_e015_ADAN_Puppy 5 0x5 +# UN_e108_ADAN_ASFrigate 4 80x2, 60x1, 30x1 +# UN_f001_TCAF_DeltaSaber_T 3 80x1, 50x1, 30x1 +# UN_mn500_ADAN_FloatingMine 3 0x3 +# UN_e105_ADAN_Cruiser 2 80x1, 60x1 +# UN_e011_ADAN_Attacker_B 2 0x2 +# UN_f101_TCAF_Acropolis 1 80x1 +# UN_f002_TCAF_DeltaSaber_W 1 80x1 +# UN_n001_TTRL_Box_move 1 0x1 +# UN_f001_TCAF_DeltaSaber_T_Player_Ttrl2 1 100x1 +# UN_f001_TCAF_DeltaSaber_T_Ttrl 1 100x1 + +# builtin 28: 410 sites, 13 distinct values +# values: 200 x116, 120 x76, 300 x74, 500 x48, 150 x37, 100 x29, 1000 x8, 2000 x5, 0.1 x5, 0 x5, 600 x4, 10 x2, 50 x1 +# units: 190 distinct, top: TCN001 x13, ADN101b x7, ADN101a x7, ADN102a x7, ADN102b x7, ADN103a x7, ADN104a x7, ADN101e x7, ADN102e x7, ADN121b x7 +# craft cross-tab (0 unresolved): +# UN_e106_ADAN_Destroyer 105 120x76, 150x15, 100x12, 200x2 +# UN_e104_ADAN_Carrier 55 300x54, 150x1 +# UN_e105_ADAN_CruiserEX 52 200x52 +# UN_e102_ADAN_BattleshipEX 26 200x26 +# UN_e001_ADAN_Elan 24 200x18, 300x6 +# UN_e010_ADAN_Attacker_S 21 200x18, 100x3 +# UN_e004_ADAN_ElanPlus_N 19 500x19 +# UN_e009_ADAN_Phantom 16 500x16 +# UN_f001_TCAF_DeltaSaber_T_Player_Ttrl1 10 0x5, 100x5 +# UN_e007_ADAN_Turret 9 100x9 +# UN_e002_ADAN_Elan_N 9 500x9 +# UN_e105_ADAN_Cruiser 8 150x8 +# UN_e101_ADAN_SDBattleshipEX 8 300x8 +# UN_f001_TCAF_DeltaSaber_T 7 150x4, 10x2, 50x1 +# UN_e011_ADAN_Attacker_B 6 300x6 +# UN_f002_TCAF_DeltaSaber_W 5 150x5 +# UN_e003_ADAN_ElanPlus_Margras 4 2000x4 +# UN_e108_ADAN_ASFrigateEX 4 600x4 +# UN_f106_TCAF_Destroyer_Inv 3 0.1x2, 150x1 +# UN_e001_ADAN_Elan_GR_Violeta 3 1000x3 +# UN_e001_ADAN_Elan_GR 3 1000x3 +# UN_e101_ADAN_SDBattleship 3 150x3 +# UN_f101_TCAF_Acropolis 2 150x1, 0.1x1 +# UN_e013_ADAN_ElanPlus_Taskent 2 1000x2 +# UN_f002_TCAF_DeltaSaber_W_Player 2 150x2 +# UN_e011_ADAN_Attacker_B_HF 2 500x2 +# UN_e102_ADAN_Battleship 2 150x2 +# UN_f106_TCAF_Destroyer 1 150x1 +# UN_f001_TCAF_DeltaSaber_T_Player 1 150x1 +# UN_f105_TCAF_Cruiser 1 0.1x1 +# UN_f102_TCAF_LightCarrier_Inv 1 0.1x1 +# UN_e005_ADAN_ElanTypeQ_Margras 1 2000x1 +# UN_e108_ADAN_ASFrigate 1 150x1 +# UN_e011_ADAN_Attacker_B_HF_Wayne 1 500x1 +# UN_e006_ADAN_Vindicator_Margras 1 500x1 + +# builtin 29: 164 sites, 6 distinct values +# values: 0 x64, 100 x53, 50 x38, 40 x6, 75 x2, 20 x1 +# units: 70 distinct, top: TCN001 x71, TCN002 x10, TCT207 x4, TCN008 x3, ADT108 x3, ADT109 x3, ADT103 x3, TCN003 x2, ADS151a x2, ADS151b x2 +# craft cross-tab (0 unresolved): +# UN_f002_TCAF_DeltaSaber_W_Player 41 100x23, 0x18 +# UN_f001_TCAF_DeltaSaber_T 40 0x25, 100x15 +# UN_f002_TCAF_DeltaSaber_W 38 100x21, 0x16, 50x1 +# UN_f001_TCAF_DeltaSaber_T_Player 30 0x15, 100x15 +# UN_e010_ADAN_Attacker_S 18 50x18 +# UN_f202_TCAF_Cargo 14 50x8, 0x4, 100x2 +# UN_e201_ADAN_ISCMissile 9 100x8, 20x1 +# UN_n001_TTRL_Box 9 0x9 +# UN_e104_ADAN_Carrier 6 0x3, 100x3 +# UN_f003_TCAF_ArrowHead 5 50x5 +# UN_e001_ADAN_Elan_GR_Violeta 3 40x3 +# UN_e001_ADAN_Elan_GR 3 40x3 +# UN_e006_ADAN_Vindicator_MargrasF 3 0x3 +# UN_f004_TCAF_DeltaSaber_A_Player 2 0x1, 100x1 +# UN_f001_TCAF_DeltaSaber_T_EX5_el 2 0x1, 100x1 +# UN_f106_TCAF_Destroyer 2 50x2 +# UN_f105_TCAF_Cruiser 2 50x2 +# UN_be005_ADAN_SpaceFortress 1 0x1 +# UN_f101_TCAF_Acropolis 1 75x1 +# UN_f104_TCAF_Battleship 1 75x1 +# UN_f102_TCAF_LightCarrier 1 50x1 +# UN_e004_ADAN_ElanPlus_NF 1 50x1 + +# builtin 101: 133 sites, 1 distinct values +# values: - x133 +# units: 1 distinct, top: ? x133 +# craft cross-tab (133 unresolved): From fa3818c58c99f443dacbd08431ab7a7afc246180 Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Wed, 26 Aug 2026 03:43:56 +0000 Subject: [PATCH 3/4] =?UTF-8?q?re:=20ISL=20built-ins=2026=20/=2029=20/=201?= =?UTF-8?q?01=20named=20end=20to=20end;=2028's=20field=20pinned,=20label?= =?UTF-8?q?=20=F0=9F=9F=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The three unnamed built-ins are one family, and the chain from the dispatch table to the field write is now followed for all of them: builtin -> ScriptPhase vtable slot -> interpreter command word 0xABBA -> command-table thunk -> opcode handler -> unit message 0xED08nnDE -> the GROUP pump sub_8232C4C0, which rebroadcasts to each child as 0xED09nnDE -> the entity base handler sub_82398CC0, which writes the field. 26 -> [unit+532] = min(max(def.HP * pct, 0), def.HP) = set_unit_hp_pct 29 -> [unit+676] = pct, a multiplier on damage TAKEN = set_unit_damage_taken_pct 28 -> [unit+672] = pct, default 1.0 = ๐ŸŸก damage DEALT 101 -> the same message as 29 with a hard-wired 0.0, broadcast to every unit = all_units_invulnerable `damage_unit` is WITHDRAWN for 26. The handler sets an absolute value rather than subtracting one, and 100 heals to full -- which no damage primitive does. It is pinned three ways: [unit+496] is the unit definition (the constructor sub_82393868 fills it from the same std::map::find built-in 15 uses), [def+84] is HP in unit_definition_layout.txt and the constructor seeds [unit+532] from it, and crossing zero loads [def+584] = Delay and raises a flag, i.e. the destruction sequence. So 0 destroys, with the datasheet's own death delay. 29 is the strongest of the three: [unit+676] has three independent readers (sub_8237B020, sub_823800A8, sub_82398CC0) and every one multiplies a damage amount immediately before it reduces [unit+532]. 28 is deliberately left ๐ŸŸก. The write and the 1.0 default are certain, but the field has exactly ONE reader in the whole image -- the craft update's projectile spawn, where it ends up as a multiplicative term in the damage message. That is the mirror of 29 and it is tidy, which is exactly the shape that produced the wrong names this file has already had to withdraw. What is not established is that it reaches every weapon; the sibling damage sender sub_82388FF8 has no +672 term at all. Three usage tests, all measured over the 28 stages: * operand ceilings -- 26 is 97/97 inside [0,100] and 29 is 164/164, while 28 (identical signature, identical x0.01 conversion) reaches 2000; * the craft cross-tab -- 26 splits cleanly into disposable props at 0, warships at 30-80 and the tutorial player craft at 100; 29 lands on the player, the tutorial boxes and the escorted TCAF hulls; 28 orders boss > ace > elite > line > prop; * the setup idiom -- activate_unit, then 15/29/28 as a speed/toughness/ firepower trio, with 26 added wherever a unit must arrive pre-damaged. Refutations attempted are recorded, including the two that turned into confirmations (Stage 28 makes each tutorial box invulnerable with 29 and then removes it with 26) and the offset-search trap that produced three false readers, because projectiles have their own fields at 672 and 676. Also corrected: the state guards. 26 rejects states 3 and 4; 28 and 29 reject 1, 3 and 4. This file said otherwise for both. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE --- docs/re/INDEX.md | 1 + docs/re/structures/isl-builtins.md | 290 +++++++++++++++++++++++++---- 2 files changed, 254 insertions(+), 37 deletions(-) diff --git a/docs/re/INDEX.md b/docs/re/INDEX.md index 2c3356d..e43d3c6 100644 --- a/docs/re/INDEX.md +++ b/docs/re/INDEX.md @@ -97,6 +97,7 @@ files, which is how the same ground got covered twice. | [`structures/sound-pak-contents.md`](structures/sound-pak-contents.md) | Census of `sound.pak`, and the limit of the leading-region rule | โœ… CONFIRMED, 5 135/5 135 names hash into the TOC and 9 517/9 519 entries accounted for; โš ๏ธ leading-region rule holds for 1 571/4 382 eng and 0/5 100 jpn | | [`structures/sound-cue-table.md`](structures/sound-cue-table.md) | The cue index in `tables.pak` โ€” message id -> cue -> sound id -> `.slb` bank | โœ… CONFIRMED, 1 326/1 338 script message ids bind to a bank; SOUNDS and FILES agree on the same 12 absentees, 0 orphan files | | [`structures/cutscene-message-table.md`](structures/cutscene-message-table.md) | Cutscene dialogue โ€” speaker, portrait, on-screen seconds, audio cue per page | โœ… CONFIRMED, field count = 9ยทPageCount+2 for all 7 PageCounts, 1 252/1 252 caption keys match, 138 ids close both ways | +| [`structures/isl-builtins.md`](structures/isl-builtins.md) | The 147 ISL built-ins โ€” dispatch table, calling convention, and which one does what | โœ… for the table/ABI and ~135 handlers; โœ… 26 `set_unit_hp_pct`, 29 `set_unit_damage_taken_pct`, 101 `all_units_invulnerable`; ๐ŸŸก 28 | | [`structures/isl-message-dialogue-link.md`](structures/isl-message-dialogue-link.md) | Mission scripts as dialogue โ€” built-in 64 -> message id -> caption text | โœ… CONFIRMED total, 2 683/2 683 call sites across all 28 stages resolve, no residue | | [`structures/mission-objective-counter.md`](structures/mission-objective-counter.md) | `REMAINING OB` โ€” the mission's own objective counter, in RAM | โœ… CONFIRMED for one Stage 02 run: a big-endian u32 whose value | | [`structures/movie-subtitles.md`](structures/movie-subtitles.md) | Movie subtitles & the movie โ†” mission โ†” text chain | โ€” | diff --git a/docs/re/structures/isl-builtins.md b/docs/re/structures/isl-builtins.md index 8f1f9fc..9684afd 100644 --- a/docs/re/structures/isl-builtins.md +++ b/docs/re/structures/isl-builtins.md @@ -3,6 +3,9 @@ Status: โœ… table encoding, calling convention and the `ScriptPhase` state layout; โœ… ~135 of 147 handlers characterised from the disassembly; ๐ŸŸก three resolved only partially; โ” the interpreter-command table is only partly recovered. +โœ… built-ins **26 / 29 / 101** are now named end to end (HP %, damage-taken %, +broadcast invulnerability); ๐ŸŸก **28** writes the matching damage-**dealt** field +but its one consumer is a single weapon path โ€” see below. Companion to [isl-bytecode](isl-bytecode.md) (the instruction encoding) and [mission-phase-advance](../mission-phase-advance.md) (why phases hinge on these). @@ -167,56 +170,269 @@ words**: a descriptor offset and the message id. That fixes the id format as `0xED08 nn DE`, and the ids already known from other work fit it: opcode 514 โ†’ `00DE`, 803 โ†’ `07DE`, 999 โ†’ `0FDE`. -๐ŸŸก The pump's arm for `0xED0802DE` does **not** apply an effect โ€” it walks the +โœ… **The pump's arm for `0xED0802DE` applies no effect itself** โ€” it walks the unit's child list at `[unit+320]`/`[unit+324]` and **rebroadcasts** to each child -as `0xED0902DE`. So `0xED08โ€ฆ` is the to-unit family and `0xED09โ€ฆ` the to-child -one, and the terminal effect is one link further on. โŒ Not followed; 26/28/29 -remain unnamed. +as `0xED0902DE`. So `0xED08โ€ฆ` is the to-group family and `0xED09โ€ฆ` the +to-individual one. That link is now followed all the way to the effect โ€” see +below. -### ๐ŸŸก Built-ins 26 / 28 / 29 are one family โ€” and `damage_unit` looks mis-named +### โœ… Built-ins 26 / 28 / 29 RESOLVED โ€” HP, damage dealt, damage taken -Method-diffing put the structure beyond doubt but did not reach the semantics. +The chain was followed end to end for all three, from the dispatch table to the +field write. Nothing here is inferred from shape; every hop was read. -| built-in | vtable slot | method | opcode | sites | -|---|---|---|---|---| -| 26 `damage_unit` | 76 | `sub_8226ACD0` (67) | **800** | 97 | -| **28** | 84 | `sub_82268F98` (69) | **801** | 410 | -| **29** | 88 | `sub_822690B0` (69) | **802** | 164 | -| 101 | 276 | `sub_822691C8` (78) | 802 (broadcast) | 133 | +| built-in | vtable slot | method | opcode | cmd word | interp thunk | opcode handler | to-group msg | to-child msg | arm | writes | +|---|---|---|---|---|---|---|---|---|---|---| +| **26** | 76 | `sub_8226ACD0` | 800 | `0xAB0320BA` | `0x822FF118` | `sub_823008C8` | `0xED0802DE` | `0xED0902DE` | `0x82398E8C` | `[unit+532]` = **HP** | +| **28** | 84 | `sub_82268F98` | 801 | `0xAB0321BA` | `0x822FF120` | `sub_823009B8` | `0xED0803DE` | `0xED0903DE` | `0x8239926C` | `[unit+672]` | +| **29** | 88 | `sub_822690B0` | 802 | `0xAB0322BA` | `0x822FF128` | `sub_82300AA8` | `0xED0804DE` | `0xED0904DE` | `0x823994C0` | `[unit+676]` | -**28 and 29 differ in two words only** โ€” the opcode (`0x21BA` vs `0x22BA`) and a -descriptor pointer 8 bytes apart. Otherwise instruction-identical. All three take -`(unit, double)`. +The cmd word decodes as `0xAB` `opcode:16` `0xBA`, which is the same encoding +already recorded for 256 (`0xAB0100BA`), 513 (`0xAB0201BA`) and 996 +(`0xAB03E4BA`) โ€” `0x320/0x321/0x322` = 800/801/802. -26 differs from both by one guard: it rejects only state 3, while **28 and 29 -reject states 1 and 3** (2 = active, 1/3/4 = gone/dead/invalid). +Two links that the previous attempt did not have: -#### The operand distributions separate them +* the **to-group pump is `sub_8232C4C0`** (vtable `0x820AF1FC` slot 6), whose + arms at `0x8232C824` / `0x8232CB48` / `0x8232CC40` each walk the child list and + re-post with the `0xED09โ€ฆ` id, copying the float from `[msg+36]` unchanged; +* the **to-individual handler is `sub_82398CC0`** (vtable `0x820B192C` slot 6), + the entity base class. Its `0xED0902DE` arm is reached by a `sub.`/`cmplwi 0x8200` + pair rather than a `lis`+`ori` compare, which is why a constant scan for + `0xED0902DE` finds only the *sender*. That is worth remembering: **a + subtract-based compare hides the constant from any scan that pairs + `lis` with `ori`.** -| built-in | n | distinct | range | most common | -|---|---|---|---|---| -| 26 | 97 | 7 | **[0, 100]** | **0 ร—69**, 80 ร—10, 100 ร—6 | -| 28 | 410 | 13 | **[0, 2000]** | 200 ร—116, 120 ร—76, 300 ร—74 | -| 29 | 164 | 6 | **[0, 100]** | **0 ร—64**, 100 ร—53, 50 ร—38 | +#### โœ… 26 is `set_unit_hp_pct` โ€” NOT `damage_unit` -26 and 29 are percentage-shaped; 28 is an absolute quantity an order of magnitude -larger. +`sub_8226ACD0` multiplies the double operand by the constant at `0x820C5688`, +which is **0.01** โ€” so the operand is a percentage and the message carries a +fraction. `0x82398E8C` then does, in its own terms: -#### ๐ŸŸก `damage_unit` (26) is doubtful +``` +new = min( max(def.HP * frac, 0.0), def.HP ) ; def = [unit+496] +[unit+532] = new +if new < FLT_EPSILON and old > 0: ; crossed to zero + [unit+688] = 0.0 ; [unit+1340] = 1 ; [unit+692] = def.Delay +``` -**69 of its 97 calls pass 0.** Dealing zero damage is a no-op, so 71 % of the -call sites would do nothing. *Setting* a percentage-valued property to 0 is a -perfectly natural thing to do 69 times, and 29 has the same shape (0 ร—64 of 164). -The existing name predates this session and is not withdrawn, but it should not -be relied on. +Three independent facts pin the field: -#### โŒ Where this stopped +* `[unit+496]` is the **unit definition** โ€” the entity constructor + `sub_82393868` sets it from `sub_82348830` (the per-member definition + `std::map::find` already identified for built-in 15) at `0x82393BE4`; +* `[def+84]` is **`HP`** in + `crates/sylpheed-formats/data/unit_definition_layout.txt`, and the same + constructor immediately does `[unit+532] = [def+84]` at `0x82393BF0` โ€” so + `+532` *is* current HP, seeded from the datasheet maximum; +* the crossing branch loads **`[def+584]` = `Delay`** into `[unit+692]` and sets + a flag โ€” the destruction sequence. So a percentage of **0 destroys the unit**, + with the definition's own death delay. -The three commands' descriptors sit at `0x820A8D10` / `+8` / `+16`. Following -them lands on data pointing into `0x8210E5xx`, which is **below the disassembly -DB's range** (it starts at `0x82150000`) and contains no code โ€” so that route -does not reach an execute method. Reaching opcodes 800โ€“802's semantics needs the -interpreter's command table, not the command objects. +So the operand is *percent of maximum HP*, the write is absolute (a **set**, not +a subtract), and `damage_unit` is withdrawn: 100 heals to full, which no +"damage" primitive does. + +#### โœ… 29 is `set_unit_damage_taken_pct` โ€” `[unit+676]` scales incoming damage + +`[unit+672]` and `[unit+676]` are **both initialised to 1.0** by the entity +constructor (`0x8239395C`/`0x82393964`, from the float at `0x8208583C`), so both +are multipliers whose neutral value is 1.0 and which built-ins 28/29 set to +`operand/100`. + +`[unit+676]` has **three independent readers**, and every one of them multiplies +a damage amount immediately before it is subtracted from `[unit+532]`: + +| reader | what it computes | +|---|---| +| `0x8237B20C` in `sub_8237B020` (craft subclass `0x820B0A3C` slot 6, the `0xED0200DE` damage arm) | `dmg = [msg+36] ร— def.ResistanceToPlayer ร— [unit+676]` | +| `0x823803A4` in `sub_823800A8` (another subclass's damage arm) | the same product | +| `0x82399FFC` in `sub_82398CC0` (the base class's continuous-damage arm) | `dmg = def.HP ร— globalRate ร— t ร— [unit+676]`, then `[unit+532] -= dmg` | + +`def+128` is `ResistanceToPlayer` in the layout file, which is the second +corroboration that the object is the entity and the quantity is damage. + +#### ๐ŸŸก 28 sets `[unit+672]`, and its one consumer scales damage DEALT + +The write is certain and the field's default (1.0) is certain. The **label** is +one link weaker than 29's, and this is the honest state: + +`[unit+672]` is read in **exactly one place** in the image โ€” +`0x8237A44C`, inside `sub_823785A0`, which is vtable `0x820B0A3C` **slot 1**, +i.e. the craft subclass's per-frame update. There it is copied into a 240-byte +projectile spawn record at `+100`; `sub_8238F4D0` turns that record into a +projectile with `[proj+300] = [rec+100]`; and `sub_8238FE10` builds the +`0xED0200DE` damage message with **`[msg+36] = [proj+300] ร— charge ร— globalScale`** +โ€” the same `[msg+36]` that the readers above multiply by the *target's* `+676`. + +So the two fields are the two ends of one damage product: **`+672` on the +shooter, `+676` on the target.** That is a tidy story and it is exactly the +shape that has produced wrong names in this file before, so it is ๐ŸŸก and not โœ…. + +โ” **What is not established**: that `+672` reaches *every* weapon. The one read +site is on a charged-shot path (`[unit+2244]` is a charge accumulator compared +against thresholds, `[unit+2268]` the resulting power), and the other damage +sender in the same family, `sub_82388FF8`, computes +`dmg = ammo.base ร— [proj+268] ร— k` with **no `+672` term at all**. Either the +craft update funnels all firing through this one spawn, or `+672` scales only +some weapons. Not settled. + +#### โœ… The operand-range test discriminates the three + +All three built-ins have the identical signature `(unit, double)` and the +identical `ร— 0.01` conversion, so an operand ceiling is a real measurement rather +than a coincidence: + +| built-in | n | distinct | min | max | inside [0, 100] | +|---|---|---|---|---|---| +| 26 | 97 | 7 | 0 | **100** | **97 / 97** | +| 29 | 164 | 6 | 0 | **100** | **164 / 164** | +| 28 | 410 | 13 | 0.1 | **2000** | 42 / 410 | + +26 and 29 respect a hard 100 ceiling โ€” they are percentages of something with a +natural maximum (HP; and "no more damage than normal"). 28 does not: it is a +free multiplier that reaches 20ร—. ๐ŸŸก Note that 29 therefore **only ever makes a +unit tougher**, never more fragile. + +#### โœ… The craft cross-tab โ€” the same test that settled built-in 15 + +Joining every call site to its squadron's craft through `UnitGroup_S.tbl` +resolves **671 of 671** sites (26 + 28 + 29), none unknown. Full dump in +[`data/isl-builtins-26-28-29-sites.txt`](../data/isl-builtins-26-28-29-sites.txt). + +**26** splits into three groups with nothing in between: + +| group | craft (sites) | values | +|---|---|---| +| disposable objects | `e201_ISCMissile` 17, `n001_TTRL_Box` 16, `f202_Cargo` 9, `e015_Puppy(_2)` 10, `mn500_FloatingMine` 3, `e011_Attacker_B` 2 | **0, and only 0** | +| warships | `e106_Destroyer` 8, `f106_Destroyer` 8, `f105_Cruiser` 5, `e108_ASFrigate` 4, `e105_Cruiser` 2, `f101_Acropolis` 1 | 30 / 50 / 60 / 80 | +| the player's craft in a tutorial | `..._Player_Ttrl1/2`, `..._T_Ttrl` (8) | **100** ร—7, 40 ร—1 | + +Scripted removal of props, pre-damaged capital-ship spawns, and healing the +player to full at the start of a tutorial section โ€” one field, three uses, and +no other reading covers all three. + +**29** is dominated by the ships the mission must protect: + +| craft (sites) | values | +|---|---| +| player + wingman `DeltaSaber` variants (`_T`, `_W`, `_A`, `_Player`) 113 | **0** and **100**, alternating | +| `n001_TTRL_Box` 9 | **0** only | +| escorted TCAF hulls โ€” `f202_Cargo` 14, `f106_Destroyer` 2, `f105_Cruiser` 2, `f104_Battleship` 1, `f102_LightCarrier` 1, `f101_Acropolis` 1 | 50 / 75 | +| named ADAN aces โ€” `e001_Elan_GR`, `_GR_Violeta` 6; `e010_Attacker_S` 18 | 40 / 50 | + +**28** stratifies by combat class and is applied almost only to ADAN craft: + +| class | craft (sites) | value | +|---|---|---| +| named bosses | `e003_ElanPlus_Margras` 4, `e005_ElanTypeQ_Margras` 1 | **2000** | +| named aces | `e001_Elan_GR(_Violeta)` 6, `e013_ElanPlus_Taskent` 2 | **1000** | +| elite fighters | `e004_ElanPlus_N` 19, `e009_Phantom` 16, `e002_Elan_N` 9, `e011_Attacker_B_HF` 3 | **500โ€“600** | +| line fighters | `e001_Elan` 24, `e010_Attacker_S` 21, `e011_Attacker_B` 6 | 200โ€“300 | +| capital hulls | `e106_Destroyer` 105, `e104_Carrier` 55, `e105_CruiserEX` 52, `e102_BattleshipEX` 26 | 100โ€“300 | +| background props | `f106_Destroyer_Inv`, `f102_LightCarrier_Inv`, `f101_Acropolis`, `f105_Cruiser` (5) | **0.1** | + +A monotone boss > ace > elite > line > prop ordering is what a firepower knob +looks like. ๐ŸŸก It is also what several other knobs would look like, which is why +the name stays PROBABLE and rests on the disassembly link above rather than on +this table. + +#### โœ… The idiom that ties all three together + +The per-unit setup block that follows every deployment reads, e.g. Stage 06 +phase 3 at `0x0119AC` (from +[`data/isl-builtins-26-28-29-sites.txt`](../data/isl-builtins-26-28-29-sites.txt)): + +``` +activate_unit(TCN001) set_group_speed(TCN001, 400) 29(TCN001, 0) +activate_unit(TCN002) set_group_speed(TCN002, 400) 29(TCN002, 0) 28(TCN002, 50) +activate_unit(TCN003) set_group_speed(TCN003, 400) +... 26(TCN306, 50) +``` + +`15 / 29 / 28` is a **speed / toughness / firepower trio**, each a percentage +override of the craft's datasheet, applied immediately after `activate_unit`; +`26` joins it wherever a unit should arrive pre-damaged. + +And the scripted-drama use is unambiguous. Stage 06 makes the wingman flight +TCN002 invulnerable at phase start (`29(TCN002, 0)`), then walks its HP down as +the voice lines fire: + +``` +0x01A7B0 26(TCN002, 80) -> request_script_message(MSG_VOICE_D_065) +0x01AAA0 26(TCN002, 50) -> request_script_message(MSG_VOICE_D_069) +0x01ACEC 26(TCN002, 30) +``` + +You would only combine those two built-ins that way if they meant exactly "this +unit cannot be hurt by combat" and "set this unit's HP to N %". + +#### โœ… Refutation attempts, and what they found + +Recorded because two of them turned into confirmations. + +* **"26 kills a unit the mission still needs."** Over all 28 stages there are + 200 (stage, unit) pairs where a predicate on `u` follows a `26(u, 0)` in file + order. Every one inspected is a `unit_alive` / `unit_state` / `hp_pct_test` + **poll waiting for that death** โ€” which is what a scripted kill implies, not a + contradiction. Not a counterexample, but the count is recorded rather than + hidden. +* **"29 makes a unit invulnerable that the player is required to destroy."** + The nine `n001_TTRL_Box` targets in Stage 28 do get `29(box, 0)`. They are + then destroyed by **`26(box, 0)`** later in the same file โ€” nine boxes, nine + pairs, invulnerability first (offsets 0x2E4Cโ€“0x48C8) and the scripted removal + second (0x50F8โ€“0x5FA0). The tutorial target cannot be shot down; the script + removes it when the lesson ends. The counterexample became a confirmation. +* **"28 is applied to something with no weapons."** Of the 35 craft classes it + touches, none is an unarmed prop โ€” no asteroid, box, cargo or mine ever + receives 28, while 26 and 29 both do. The only near-miss is the four + `โ€ฆ_Inv` / background hulls at 0.1, i.e. deliberately harmless. +* **"`+672`/`+676` have another consumer that contradicts damage."** Searched + every `lfs`/`stfs`/`addi`/`lfsx` reference to offsets 672 and 676 across the + whole `.text`, then filtered by base register. **No further entity-side reader + of either exists.** โš ๏ธ The search also produced the trap this file keeps + warning about: `sub_8238E0F0` writes `676(r3)` and `sub_82389558` reads + `672(r31)`, but in both `r3`/`r31` is a **projectile**, which has its own + fields at those offsets. Three of the five "extra readers" the raw offset + search returned were that mistake. +* **What I could not refute and could not confirm**: that `+672` reaches every + weapon (see the โ” above). + +#### โœ… Bonus: built-in 101 is `all_units_invulnerable` + +`sub_822691C8` is 29's **broadcast** twin โ€” same descriptor `0x820A8D20`, same +opcode 802 โ€” but it takes **no operand**: the float it sends is the constant at +`0x8209FD28`, which is **0.0**, and it loops over the phase's whole unit array +posting `0xED0804DE` to each live entry. + +The usage confirms it. All **133** sites sit in one fixed phase-teardown idiom, +with no exceptions: + +``` +builtin116(0) -> builtin101 -> reset_phase_threads -> timer_stop -> clear_flag(-1) -> builtin118 +``` + +133/133 preceded by 116 and 133/133 followed by 100. Freezing all damage is +exactly the first step of tearing a phase down, and no other reading of "post +0.0 to every unit" fits a teardown. + +#### โŒ Two corrections to this file's earlier entries + +* **The state guards were mis-stated.** Read directly: **26 rejects states 3 and + 4**; **28 and 29 reject 1, 3 and 4**. This file said 26 rejects "only state 3" + and 28/29 "states 1 and 3". So 26 alone will still act on a state-1 unit. +* **"28 is an absolute quantity, 26 and 29 are percentage-shaped"** was half + right for the wrong reason. All three are percentages of *something*; only 26 + and 29 are percentages of a thing with a ceiling. + +#### ๐Ÿ—’๏ธ The route that failed, kept + +The three commands' descriptors at `0x820A8D10` / `+8` / `+16` are **vtables**, +not data: slot 0 of each is `0x82301C20` and slot 1 points into `0x8210E5xx`, +below the disassembly DB's range. Chasing them still leads nowhere. The route +that works is the one this file already recommended โ€” the **interpreter command +table** โ†’ `0x822FF118/120/128` โ†’ the three opcode handlers โ€” and from there the +**unit-message pump**, which is the part that was missing. ### โœ… Built-in 108 is `deploy_squadron_ex` โ€” `deploy_squadron` plus a `1 << n` selector From 3b67a451c29c6a25af560ecc776de12a44ca0391 Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Wed, 26 Aug 2026 03:43:56 +0000 Subject: [PATCH 4/4] tools(isl): apply the three new built-in names, with 28 flagged as probable 26 damage_unit -> set_unit_hp_pct, 29 -> set_unit_damage_taken_pct, 101 -> all_units_invulnerable, and 28 -> set_unit_damage_dealt_pct with an inline note that its label rests on a single consumer. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE --- tools/re-capture/isl.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/re-capture/isl.py b/tools/re-capture/isl.py index 0b5e642..61aeb93 100755 --- a/tools/re-capture/isl.py +++ b/tools/re-capture/isl.py @@ -83,7 +83,11 @@ BUILTIN = { 13: 'play_se', 14: 'play_bgm', 15: 'set_group_speed', 17: 'wait_frames', 18: 'dist_lt', 20: 'hp_pct_test', 24: 'squad_survival_pct', - 26: 'damage_unit', 30: 'objective_marker', 31: 'objective_marker_at_route', + 26: 'set_unit_hp_pct', + # 28's field and default (1.0) are certain; the LABEL rests on a single + # consumer, so it is PROBABLE, not confirmed. See isl-builtins.md. + 28: 'set_unit_damage_dealt_pct', 29: 'set_unit_damage_taken_pct', + 30: 'objective_marker', 31: 'objective_marker_at_route', 33: 'global_counter0', 34: 'global_counter1', 36: 'screen_fade', 39: 'MARK_LAST_PHASE', 40: 'mark_not_last', 43: 'play_voice', 45: 'play_voice_vol', 46: 'squadron_trace', 47: 'squadron_attack', @@ -101,7 +105,7 @@ BUILTIN = { 81: 'banner_objective_update', 82: 'banner_mission_failed', 135: 'banner_mission_restart', 93: 'clear_flag', 94: 'is_engaged', 95: 'unit_hp_pct', 100: 'reset_phase_threads', - 102: 'prompt_yes_no', 108: 'deploy_squadron_ex', + 101: 'all_units_invulnerable', 102: 'prompt_yes_no', 108: 'deploy_squadron_ex', 109: 'set_unit_flags', 115: 'named_event', 120: 'wait_cmds_drained', 123: 'timer_resume', 124: 'timer_stop', 125: 'timer_reset', 126: 'timer_elapsed', 127: 'timer_set',