Add overlay extraction for multi-expansion asset deduplication

Extracts each expansion's assets as a CRC-compared overlay against a
base manifest, storing only files that differ. Auto-detects overlay mode
when a base manifest already exists. Adds --as-overlay, --full-base
flags and manifest merge for partial extractions.
This commit is contained in:
Kelsi 2026-02-14 03:09:17 -08:00
parent 03013e751a
commit a67dca5787
37 changed files with 139303 additions and 73847 deletions

View file

@ -7,9 +7,6 @@
1,0,6,80190984,0,1960,2,2,1
1,0,7,80190984,0,1960,1,2,1
3,0,0,2010404113,132302,2445512,2,2,2
6,0,0,2010404113,132302,2445512,0,0,0
6,0,1,2,2,2,2,2,2
6,0,2,3,3,3,3,3,3
3,0,1,2010404113,132302,2445512,3,3,3
3,0,2,2010404113,132302,2445512,4,4,4
3,0,3,2010404113,132302,2445512,5,5,5
@ -20,12 +17,31 @@
4,0,3,4,4,4,4,4,4
4,0,4,5,5,5,5,5,5
4,0,5,6,6,2,6,6,2
4,0,6,2010404113,132302,2445512,1,2,1
4,0,7,2010404113,132302,2445512,1,3,1
4,0,8,2010404113,132302,2445512,1,5,1
4,0,9,2010404113,132302,2445512,1,6,1
4,0,10,2010404113,132302,2445512,1,7,1
4,0,11,2010404113,132302,2445512,3,4,3
2,0,0,0,0,0,0,0,0
3,1,0,0,0,0,0,0,0
4,1,0,2010404113,132302,2445512,0,0,0
6,0,0,2010404113,132302,2445512,0,0,0
6,0,1,2,2,2,2,2,2
6,0,2,3,3,3,3,3,3
6,0,3,4,4,4,4,4,4
6,0,4,5,5,5,5,5,5
6,0,5,6,6,6,6,6,6
6,0,6,7,7,7,7,7,7
6,0,7,10,10,10,10,10,10
6,0,8,11,11,11,11,11,11
6,1,0,3435973836,3435973836,3435973836,0,0,0
6,1,1,3435973836,3435973836,3435973836,0,0,2
6,1,2,3435973836,3435973836,3435973836,0,0,3
6,1,3,3435973836,3435973836,3435973836,0,0,4
6,1,4,3435973836,3435973836,3435973836,0,0,5
6,1,5,3435973836,3435973836,3435973836,0,0,6
6,1,6,3435973836,3435973836,3435973836,0,0,7
1,0,8,80190984,0,1960,1,1,1
3,0,5,2010404113,132302,2445512,7,7,7
3,0,6,2010404113,132302,2445512,8,8,8
@ -33,6 +49,16 @@
3,0,8,2010404113,132302,2445512,10,10,10
3,0,9,2010404113,132302,2445512,11,11,11
3,0,10,2010404113,132302,2445512,12,12,12
3,0,11,2010404113,132302,2445512,13,13,13
3,0,12,2010404113,132302,2445512,0,1,0
3,0,13,2010404113,132302,2445512,0,2,0
3,0,14,2010404113,132302,2445512,0,3,0
3,0,15,2010404113,132302,2445512,0,4,0
3,0,16,2010404113,132302,2445512,0,5,0
3,0,17,2010404113,132302,2445512,0,6,0
3,0,18,2010404113,132302,2445512,0,7,0
3,0,19,2010404113,132302,2445512,0,8,0
3,0,20,2010404113,132302,2445512,0,9,0
2,0,1,0,0,0,0,0,0
2,0,2,2010404113,132302,2445512,2,0,0
2,0,3,2010404113,132302,2445512,3,0,0
@ -52,7 +78,6 @@
4,1,7,2010404113,132302,2445512,0,0,0
4,1,8,2010404113,132302,2445512,0,0,0
4,1,9,2010404113,132302,2445512,0,0,0
6,0,6,7,7,7,7,7,7
7,0,0,0,0,0,0,0,0
8,0,2,80190984,0,1960,0,4,0
7,0,1,1,0,0,2,0,0
@ -108,10 +133,6 @@
2,1,4,2010404113,132302,2445512,0,5,0
2,1,5,2010404113,132302,2445512,0,6,0
2,1,6,2010404113,132302,2445512,0,7,0
6,1,0,3435973836,3435973836,3435973836,0,0,0
6,1,1,3435973836,3435973836,3435973836,0,0,2
6,1,2,3435973836,3435973836,3435973836,0,0,3
6,1,3,3435973836,3435973836,3435973836,0,0,4
8,0,1,80190984,0,1960,0,3,0
8,0,3,80190984,0,1960,0,5,0
8,0,4,80190984,0,1960,0,6,0
@ -121,7 +142,6 @@
3,1,3,2010404113,12062076,2489664,0,4,0
3,1,4,2010404113,12062076,2489664,0,5,0
3,1,5,2010404113,12062076,2489664,0,6,0
6,1,4,3435973836,3435973836,3435973836,0,0,5
7,1,1,2010404113,394024,2445512,0,0,2
7,1,6,2010404113,394024,2445512,0,0,7
7,1,2,2010404113,394024,2445512,0,0,3
@ -134,4 +154,54 @@
8,0,8,2010404113,459480,2445528,0,5,0
8,0,9,2010404113,459480,2445528,0,6,0
8,0,10,2010404113,459480,2445528,0,4,0
8,0,11,2010404113,459480,2445528,0,2,0
8,0,12,2010404113,459480,2445528,0,4,0
8,0,13,2010404113,459480,2445528,0,6,0
8,1,5,2010404113,35521606,2490272,0,7,0
8,1,6,2010404113,35521606,2490272,0,2,0
8,1,7,2010404113,35521606,2490272,0,3,0
8,1,8,2010404113,35521606,2490272,0,4,0
8,1,9,2010404113,35521606,2490272,0,5,0
10,1,0,0,0,0,0,0,0
10,0,0,2010429269,2010429317,789212,0,0,0
10,1,2,2010429269,2010429317,10293034,0,3,0
10,1,3,2010429269,2010429317,10293034,0,4,0
10,1,4,2010429269,2010429317,10293034,0,5,0
10,1,5,2010429269,2010429317,10293034,0,6,0
10,1,6,2010429269,2010429317,10293034,0,7,0
10,1,7,2010429269,2010429317,10293034,0,8,0
10,1,8,2010429269,2010429317,10293034,0,9,0
10,1,9,2010429269,2010429317,10293034,0,10,0
10,1,10,2010429269,2010429317,10293034,0,11,0
10,0,1,2010429269,2010429317,789212,2,0,0
10,0,2,2010429269,2010429317,789212,3,0,0
10,0,3,2010429269,2010429317,789212,4,0,0
10,0,4,2010429269,2010429317,789212,5,0,0
10,0,5,2010429269,2010429317,789212,6,0,0
10,0,6,2010429269,2010429317,789212,7,0,0
10,0,7,2010429269,2010429317,789212,8,0,0
10,0,8,2010429269,2010429317,922464,9,0,0
10,0,9,2010429269,2010429317,922464,10,0,0
10,0,10,2010429269,2010429317,922464,11,0,0
10,1,1,2010429269,2010429317,590640,0,2,0
9,0,0,3435973836,3435973836,3435973836,2,0,0
9,0,1,3435973836,3435973836,3435973836,3,0,0
9,0,2,3435973836,3435973836,3435973836,4,0,0
9,0,3,3435973836,3435973836,3435973836,5,0,0
9,0,4,3435973836,3435973836,3435973836,6,0,0
9,1,0,3435973836,3435973836,3435973836,2,0,0
9,1,1,3435973836,3435973836,3435973836,3,0,0
9,1,2,3435973836,3435973836,3435973836,4,0,0
9,1,3,3435973836,3435973836,3435973836,5,0,0
9,1,4,3435973836,3435973836,3435973836,6,0,0
9,0,5,3435973836,3435973836,3435973836,2,2,0
9,0,6,3435973836,3435973836,3435973836,3,2,0
9,0,7,3435973836,3435973836,3435973836,4,2,0
9,0,8,3435973836,3435973836,3435973836,5,2,0
9,0,9,3435973836,3435973836,3435973836,6,2,0
4,0,12,2,2,2,7,4,2
4,0,13,2,2,2,7,3,2
7,0,8,7,0,0,9,0,0
7,0,9,7,0,0,10,0,0
7,0,10,7,0,0,11,0,0
7,0,11,7,0,0,12,0,0

1 # fields=9
7 1,0,6,80190984,0,1960,2,2,1
8 1,0,7,80190984,0,1960,1,2,1
9 3,0,0,2010404113,132302,2445512,2,2,2
6,0,0,2010404113,132302,2445512,0,0,0
6,0,1,2,2,2,2,2,2
6,0,2,3,3,3,3,3,3
10 3,0,1,2010404113,132302,2445512,3,3,3
11 3,0,2,2010404113,132302,2445512,4,4,4
12 3,0,3,2010404113,132302,2445512,5,5,5
17 4,0,3,4,4,4,4,4,4
18 4,0,4,5,5,5,5,5,5
19 4,0,5,6,6,2,6,6,2
20 4,0,6,2010404113,132302,2445512,1,2,1
21 4,0,7,2010404113,132302,2445512,1,3,1
22 4,0,8,2010404113,132302,2445512,1,5,1
23 4,0,9,2010404113,132302,2445512,1,6,1
24 4,0,10,2010404113,132302,2445512,1,7,1
25 4,0,11,2010404113,132302,2445512,3,4,3
26 2,0,0,0,0,0,0,0,0
27 3,1,0,0,0,0,0,0,0
28 4,1,0,2010404113,132302,2445512,0,0,0
29 6,0,0,2010404113,132302,2445512,0,0,0
30 6,0,1,2,2,2,2,2,2
31 6,0,2,3,3,3,3,3,3
32 6,0,3,4,4,4,4,4,4
33 6,0,4,5,5,5,5,5,5
34 6,0,5,6,6,6,6,6,6
35 6,0,6,7,7,7,7,7,7
36 6,0,7,10,10,10,10,10,10
37 6,0,8,11,11,11,11,11,11
38 6,1,0,3435973836,3435973836,3435973836,0,0,0
39 6,1,1,3435973836,3435973836,3435973836,0,0,2
40 6,1,2,3435973836,3435973836,3435973836,0,0,3
41 6,1,3,3435973836,3435973836,3435973836,0,0,4
42 6,1,4,3435973836,3435973836,3435973836,0,0,5
43 6,1,5,3435973836,3435973836,3435973836,0,0,6
44 6,1,6,3435973836,3435973836,3435973836,0,0,7
45 1,0,8,80190984,0,1960,1,1,1
46 3,0,5,2010404113,132302,2445512,7,7,7
47 3,0,6,2010404113,132302,2445512,8,8,8
49 3,0,8,2010404113,132302,2445512,10,10,10
50 3,0,9,2010404113,132302,2445512,11,11,11
51 3,0,10,2010404113,132302,2445512,12,12,12
52 3,0,11,2010404113,132302,2445512,13,13,13
53 3,0,12,2010404113,132302,2445512,0,1,0
54 3,0,13,2010404113,132302,2445512,0,2,0
55 3,0,14,2010404113,132302,2445512,0,3,0
56 3,0,15,2010404113,132302,2445512,0,4,0
57 3,0,16,2010404113,132302,2445512,0,5,0
58 3,0,17,2010404113,132302,2445512,0,6,0
59 3,0,18,2010404113,132302,2445512,0,7,0
60 3,0,19,2010404113,132302,2445512,0,8,0
61 3,0,20,2010404113,132302,2445512,0,9,0
62 2,0,1,0,0,0,0,0,0
63 2,0,2,2010404113,132302,2445512,2,0,0
64 2,0,3,2010404113,132302,2445512,3,0,0
78 4,1,7,2010404113,132302,2445512,0,0,0
79 4,1,8,2010404113,132302,2445512,0,0,0
80 4,1,9,2010404113,132302,2445512,0,0,0
6,0,6,7,7,7,7,7,7
81 7,0,0,0,0,0,0,0,0
82 8,0,2,80190984,0,1960,0,4,0
83 7,0,1,1,0,0,2,0,0
133 2,1,4,2010404113,132302,2445512,0,5,0
134 2,1,5,2010404113,132302,2445512,0,6,0
135 2,1,6,2010404113,132302,2445512,0,7,0
6,1,0,3435973836,3435973836,3435973836,0,0,0
6,1,1,3435973836,3435973836,3435973836,0,0,2
6,1,2,3435973836,3435973836,3435973836,0,0,3
6,1,3,3435973836,3435973836,3435973836,0,0,4
136 8,0,1,80190984,0,1960,0,3,0
137 8,0,3,80190984,0,1960,0,5,0
138 8,0,4,80190984,0,1960,0,6,0
142 3,1,3,2010404113,12062076,2489664,0,4,0
143 3,1,4,2010404113,12062076,2489664,0,5,0
144 3,1,5,2010404113,12062076,2489664,0,6,0
6,1,4,3435973836,3435973836,3435973836,0,0,5
145 7,1,1,2010404113,394024,2445512,0,0,2
146 7,1,6,2010404113,394024,2445512,0,0,7
147 7,1,2,2010404113,394024,2445512,0,0,3
154 8,0,8,2010404113,459480,2445528,0,5,0
155 8,0,9,2010404113,459480,2445528,0,6,0
156 8,0,10,2010404113,459480,2445528,0,4,0
157 8,0,11,2010404113,459480,2445528,0,2,0
158 8,0,12,2010404113,459480,2445528,0,4,0
159 8,0,13,2010404113,459480,2445528,0,6,0
160 8,1,5,2010404113,35521606,2490272,0,7,0
161 8,1,6,2010404113,35521606,2490272,0,2,0
162 8,1,7,2010404113,35521606,2490272,0,3,0
163 8,1,8,2010404113,35521606,2490272,0,4,0
164 8,1,9,2010404113,35521606,2490272,0,5,0
165 10,1,0,0,0,0,0,0,0
166 10,0,0,2010429269,2010429317,789212,0,0,0
167 10,1,2,2010429269,2010429317,10293034,0,3,0
168 10,1,3,2010429269,2010429317,10293034,0,4,0
169 10,1,4,2010429269,2010429317,10293034,0,5,0
170 10,1,5,2010429269,2010429317,10293034,0,6,0
171 10,1,6,2010429269,2010429317,10293034,0,7,0
172 10,1,7,2010429269,2010429317,10293034,0,8,0
173 10,1,8,2010429269,2010429317,10293034,0,9,0
174 10,1,9,2010429269,2010429317,10293034,0,10,0
175 10,1,10,2010429269,2010429317,10293034,0,11,0
176 10,0,1,2010429269,2010429317,789212,2,0,0
177 10,0,2,2010429269,2010429317,789212,3,0,0
178 10,0,3,2010429269,2010429317,789212,4,0,0
179 10,0,4,2010429269,2010429317,789212,5,0,0
180 10,0,5,2010429269,2010429317,789212,6,0,0
181 10,0,6,2010429269,2010429317,789212,7,0,0
182 10,0,7,2010429269,2010429317,789212,8,0,0
183 10,0,8,2010429269,2010429317,922464,9,0,0
184 10,0,9,2010429269,2010429317,922464,10,0,0
185 10,0,10,2010429269,2010429317,922464,11,0,0
186 10,1,1,2010429269,2010429317,590640,0,2,0
187 9,0,0,3435973836,3435973836,3435973836,2,0,0
188 9,0,1,3435973836,3435973836,3435973836,3,0,0
189 9,0,2,3435973836,3435973836,3435973836,4,0,0
190 9,0,3,3435973836,3435973836,3435973836,5,0,0
191 9,0,4,3435973836,3435973836,3435973836,6,0,0
192 9,1,0,3435973836,3435973836,3435973836,2,0,0
193 9,1,1,3435973836,3435973836,3435973836,3,0,0
194 9,1,2,3435973836,3435973836,3435973836,4,0,0
195 9,1,3,3435973836,3435973836,3435973836,5,0,0
196 9,1,4,3435973836,3435973836,3435973836,6,0,0
197 9,0,5,3435973836,3435973836,3435973836,2,2,0
198 9,0,6,3435973836,3435973836,3435973836,3,2,0
199 9,0,7,3435973836,3435973836,3435973836,4,2,0
200 9,0,8,3435973836,3435973836,3435973836,5,2,0
201 9,0,9,3435973836,3435973836,3435973836,6,2,0
202 4,0,12,2,2,2,7,4,2
203 4,0,13,2,2,2,7,3,2
204 7,0,8,7,0,0,9,0,0
205 7,0,9,7,0,0,10,0,0
206 7,0,10,7,0,0,11,0,0
207 7,0,11,7,0,0,12,0,0