polyfile-weave 0.5.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of polyfile-weave might be problematic. Click here for more details.

Files changed (585) hide show
  1. polyfile/__init__.py +15 -0
  2. polyfile/__main__.py +394 -0
  3. polyfile/arithmetic.py +27 -0
  4. polyfile/ast.py +114 -0
  5. polyfile/debugger.py +1039 -0
  6. polyfile/expressions.py +346 -0
  7. polyfile/fileutils.py +343 -0
  8. polyfile/html.py +135 -0
  9. polyfile/http/__init__.py +1 -0
  10. polyfile/http/defacto.py +37 -0
  11. polyfile/http/deprecated.py +51 -0
  12. polyfile/http/experimental.py +67 -0
  13. polyfile/http/http_11.py +548 -0
  14. polyfile/http/matcher.py +37 -0
  15. polyfile/http/structured_headers.py +48 -0
  16. polyfile/iterators.py +72 -0
  17. polyfile/jpeg.py +24 -0
  18. polyfile/kaitai/__init__.py +0 -0
  19. polyfile/kaitai/compiler.py +156 -0
  20. polyfile/kaitai/parser.py +312 -0
  21. polyfile/kaitai/parsers/__init__.py +0 -0
  22. polyfile/kaitai/parsers/aix_utmp.py +116 -0
  23. polyfile/kaitai/parsers/allegro_dat.py +367 -0
  24. polyfile/kaitai/parsers/andes_firmware.py +64 -0
  25. polyfile/kaitai/parsers/android_bootldr_asus.py +105 -0
  26. polyfile/kaitai/parsers/android_bootldr_huawei.py +181 -0
  27. polyfile/kaitai/parsers/android_bootldr_qcom.py +217 -0
  28. polyfile/kaitai/parsers/android_dto.py +138 -0
  29. polyfile/kaitai/parsers/android_img.py +319 -0
  30. polyfile/kaitai/parsers/android_nanoapp_header.py +83 -0
  31. polyfile/kaitai/parsers/android_opengl_shaders_cache.py +151 -0
  32. polyfile/kaitai/parsers/android_sparse.py +237 -0
  33. polyfile/kaitai/parsers/android_super.py +401 -0
  34. polyfile/kaitai/parsers/apm_partition_table.py +196 -0
  35. polyfile/kaitai/parsers/apple_single_double.py +180 -0
  36. polyfile/kaitai/parsers/asn1_der.py +235 -0
  37. polyfile/kaitai/parsers/au.py +138 -0
  38. polyfile/kaitai/parsers/avantes_roh60.py +112 -0
  39. polyfile/kaitai/parsers/avi.py +296 -0
  40. polyfile/kaitai/parsers/bcd.py +111 -0
  41. polyfile/kaitai/parsers/bitcoin_transaction.py +210 -0
  42. polyfile/kaitai/parsers/blender_blend.py +334 -0
  43. polyfile/kaitai/parsers/bmp.py +780 -0
  44. polyfile/kaitai/parsers/bson.py +411 -0
  45. polyfile/kaitai/parsers/btrfs_stream.py +318 -0
  46. polyfile/kaitai/parsers/bytes_with_io.py +27 -0
  47. polyfile/kaitai/parsers/chrome_pak.py +194 -0
  48. polyfile/kaitai/parsers/code_6502.py +456 -0
  49. polyfile/kaitai/parsers/compressed_resource.py +217 -0
  50. polyfile/kaitai/parsers/cpio_old_le.py +154 -0
  51. polyfile/kaitai/parsers/cramfs.py +344 -0
  52. polyfile/kaitai/parsers/creative_voice_file.py +342 -0
  53. polyfile/kaitai/parsers/dbf.py +274 -0
  54. polyfile/kaitai/parsers/dcmp_0.py +664 -0
  55. polyfile/kaitai/parsers/dcmp_1.py +422 -0
  56. polyfile/kaitai/parsers/dcmp_2.py +312 -0
  57. polyfile/kaitai/parsers/dcmp_variable_length_integer.py +66 -0
  58. polyfile/kaitai/parsers/dex.py +1086 -0
  59. polyfile/kaitai/parsers/dicom.py +4370 -0
  60. polyfile/kaitai/parsers/dime_message.py +201 -0
  61. polyfile/kaitai/parsers/dns_packet.py +569 -0
  62. polyfile/kaitai/parsers/doom_wad.py +654 -0
  63. polyfile/kaitai/parsers/dos_datetime.py +191 -0
  64. polyfile/kaitai/parsers/dos_mz.py +172 -0
  65. polyfile/kaitai/parsers/ds_store.py +513 -0
  66. polyfile/kaitai/parsers/dtb.py +310 -0
  67. polyfile/kaitai/parsers/dune_2_pak.py +126 -0
  68. polyfile/kaitai/parsers/edid.py +472 -0
  69. polyfile/kaitai/parsers/efivar_signature_list.py +331 -0
  70. polyfile/kaitai/parsers/elf.py +2482 -0
  71. polyfile/kaitai/parsers/ethernet_frame.py +114 -0
  72. polyfile/kaitai/parsers/exif.py +723 -0
  73. polyfile/kaitai/parsers/ext2.py +537 -0
  74. polyfile/kaitai/parsers/fallout2_dat.py +187 -0
  75. polyfile/kaitai/parsers/fallout_dat.py +156 -0
  76. polyfile/kaitai/parsers/fasttracker_xm_module.py +558 -0
  77. polyfile/kaitai/parsers/ftl_dat.py +90 -0
  78. polyfile/kaitai/parsers/genmidi_op2.py +161 -0
  79. polyfile/kaitai/parsers/gettext_mo.py +541 -0
  80. polyfile/kaitai/parsers/gif.py +492 -0
  81. polyfile/kaitai/parsers/gimp_brush.py +244 -0
  82. polyfile/kaitai/parsers/glibc_utmp.py +114 -0
  83. polyfile/kaitai/parsers/gltf_binary.py +132 -0
  84. polyfile/kaitai/parsers/google_protobuf.py +151 -0
  85. polyfile/kaitai/parsers/gpt_partition_table.py +175 -0
  86. polyfile/kaitai/parsers/gran_turismo_vol.py +140 -0
  87. polyfile/kaitai/parsers/grub2_font.py +337 -0
  88. polyfile/kaitai/parsers/gzip.py +232 -0
  89. polyfile/kaitai/parsers/hashcat_restore.py +60 -0
  90. polyfile/kaitai/parsers/hccap.py +111 -0
  91. polyfile/kaitai/parsers/hccapx.py +103 -0
  92. polyfile/kaitai/parsers/heaps_pak.py +177 -0
  93. polyfile/kaitai/parsers/heroes_of_might_and_magic_agg.py +116 -0
  94. polyfile/kaitai/parsers/heroes_of_might_and_magic_bmp.py +34 -0
  95. polyfile/kaitai/parsers/icmp_packet.py +136 -0
  96. polyfile/kaitai/parsers/ico.py +129 -0
  97. polyfile/kaitai/parsers/id3v1_1.py +220 -0
  98. polyfile/kaitai/parsers/id3v2_3.py +324 -0
  99. polyfile/kaitai/parsers/id3v2_4.py +423 -0
  100. polyfile/kaitai/parsers/ines.py +282 -0
  101. polyfile/kaitai/parsers/ipv4_packet.py +158 -0
  102. polyfile/kaitai/parsers/ipv6_packet.py +55 -0
  103. polyfile/kaitai/parsers/iso9660.py +544 -0
  104. polyfile/kaitai/parsers/java_class.py +1113 -0
  105. polyfile/kaitai/parsers/jpeg.py +361 -0
  106. polyfile/kaitai/parsers/luks.py +149 -0
  107. polyfile/kaitai/parsers/lzh.py +165 -0
  108. polyfile/kaitai/parsers/mac_os_resource_snd.py +493 -0
  109. polyfile/kaitai/parsers/mach_o.py +3033 -0
  110. polyfile/kaitai/parsers/mach_o_fat.py +92 -0
  111. polyfile/kaitai/parsers/magicavoxel_vox.py +391 -0
  112. polyfile/kaitai/parsers/manifest.json +1 -0
  113. polyfile/kaitai/parsers/mbr_partition_table.py +119 -0
  114. polyfile/kaitai/parsers/mcap.py +1015 -0
  115. polyfile/kaitai/parsers/microsoft_cfb.py +293 -0
  116. polyfile/kaitai/parsers/microsoft_network_monitor_v2.py +309 -0
  117. polyfile/kaitai/parsers/microsoft_pe.py +765 -0
  118. polyfile/kaitai/parsers/mifare_classic.py +706 -0
  119. polyfile/kaitai/parsers/minecraft_nbt.py +449 -0
  120. polyfile/kaitai/parsers/monomakh_sapr_chg.py +69 -0
  121. polyfile/kaitai/parsers/mozilla_mar.py +239 -0
  122. polyfile/kaitai/parsers/mp4.py +333 -0
  123. polyfile/kaitai/parsers/msgpack.py +467 -0
  124. polyfile/kaitai/parsers/nitf.py +1189 -0
  125. polyfile/kaitai/parsers/nt_mdt_pal.py +155 -0
  126. polyfile/kaitai/parsers/ogg.py +118 -0
  127. polyfile/kaitai/parsers/openpgp_message.py +993 -0
  128. polyfile/kaitai/parsers/packet_ppi.py +515 -0
  129. polyfile/kaitai/parsers/pcap.py +344 -0
  130. polyfile/kaitai/parsers/pcf_font.py +506 -0
  131. polyfile/kaitai/parsers/pcx.py +195 -0
  132. polyfile/kaitai/parsers/pcx_dcx.py +79 -0
  133. polyfile/kaitai/parsers/phar_without_stub.py +399 -0
  134. polyfile/kaitai/parsers/php_serialized_value.py +505 -0
  135. polyfile/kaitai/parsers/png.py +721 -0
  136. polyfile/kaitai/parsers/protocol_body.py +260 -0
  137. polyfile/kaitai/parsers/psx_tim.py +104 -0
  138. polyfile/kaitai/parsers/python_pickle.py +718 -0
  139. polyfile/kaitai/parsers/python_pyc_27.py +510 -0
  140. polyfile/kaitai/parsers/quake_mdl.py +441 -0
  141. polyfile/kaitai/parsers/quake_pak.py +112 -0
  142. polyfile/kaitai/parsers/quicktime_mov.py +634 -0
  143. polyfile/kaitai/parsers/rar.py +265 -0
  144. polyfile/kaitai/parsers/regf.py +569 -0
  145. polyfile/kaitai/parsers/renderware_binary_stream.py +877 -0
  146. polyfile/kaitai/parsers/resource_fork.py +611 -0
  147. polyfile/kaitai/parsers/respack.py +57 -0
  148. polyfile/kaitai/parsers/riff.py +409 -0
  149. polyfile/kaitai/parsers/rpm.py +964 -0
  150. polyfile/kaitai/parsers/rtcp_payload.py +579 -0
  151. polyfile/kaitai/parsers/rtp_packet.py +150 -0
  152. polyfile/kaitai/parsers/rtpdump.py +115 -0
  153. polyfile/kaitai/parsers/ruby_marshal.py +423 -0
  154. polyfile/kaitai/parsers/s3m.py +493 -0
  155. polyfile/kaitai/parsers/saints_row_2_vpp_pc.py +254 -0
  156. polyfile/kaitai/parsers/shapefile_index.py +174 -0
  157. polyfile/kaitai/parsers/shapefile_main.py +893 -0
  158. polyfile/kaitai/parsers/some_ip.py +209 -0
  159. polyfile/kaitai/parsers/some_ip_container.py +37 -0
  160. polyfile/kaitai/parsers/some_ip_sd.py +86 -0
  161. polyfile/kaitai/parsers/some_ip_sd_entries.py +160 -0
  162. polyfile/kaitai/parsers/some_ip_sd_options.py +374 -0
  163. polyfile/kaitai/parsers/specpr.py +404 -0
  164. polyfile/kaitai/parsers/sqlite3.py +472 -0
  165. polyfile/kaitai/parsers/ssh_public_key.py +252 -0
  166. polyfile/kaitai/parsers/standard_midi_file.py +390 -0
  167. polyfile/kaitai/parsers/stl.py +111 -0
  168. polyfile/kaitai/parsers/sudoers_ts.py +201 -0
  169. polyfile/kaitai/parsers/swf.py +406 -0
  170. polyfile/kaitai/parsers/systemd_journal.py +361 -0
  171. polyfile/kaitai/parsers/tcp_segment.py +57 -0
  172. polyfile/kaitai/parsers/tga.py +213 -0
  173. polyfile/kaitai/parsers/tls_client_hello.py +293 -0
  174. polyfile/kaitai/parsers/tr_dos_image.py +322 -0
  175. polyfile/kaitai/parsers/tsm.py +198 -0
  176. polyfile/kaitai/parsers/ttf.py +1847 -0
  177. polyfile/kaitai/parsers/udp_datagram.py +42 -0
  178. polyfile/kaitai/parsers/uefi_te.py +236 -0
  179. polyfile/kaitai/parsers/uimage.py +198 -0
  180. polyfile/kaitai/parsers/utf8_string.py +137 -0
  181. polyfile/kaitai/parsers/vfat.py +410 -0
  182. polyfile/kaitai/parsers/vlq_base128_be.py +104 -0
  183. polyfile/kaitai/parsers/vlq_base128_le.py +129 -0
  184. polyfile/kaitai/parsers/vmware_vmdk.py +167 -0
  185. polyfile/kaitai/parsers/vp8_ivf.py +112 -0
  186. polyfile/kaitai/parsers/warcraft_2_pud.py +423 -0
  187. polyfile/kaitai/parsers/wav.py +1014 -0
  188. polyfile/kaitai/parsers/websocket.py +167 -0
  189. polyfile/kaitai/parsers/windows_evt_log.py +304 -0
  190. polyfile/kaitai/parsers/windows_lnk_file.py +467 -0
  191. polyfile/kaitai/parsers/windows_minidump.py +575 -0
  192. polyfile/kaitai/parsers/windows_resource_file.py +243 -0
  193. polyfile/kaitai/parsers/windows_shell_items.py +190 -0
  194. polyfile/kaitai/parsers/windows_systemtime.py +52 -0
  195. polyfile/kaitai/parsers/wmf.py +502 -0
  196. polyfile/kaitai/parsers/xar.py +181 -0
  197. polyfile/kaitai/parsers/xwd.py +189 -0
  198. polyfile/kaitai/parsers/zip.py +685 -0
  199. polyfile/kaitai/parsers/zisofs.py +158 -0
  200. polyfile/kaitai/parsers/zx_spectrum_tap.py +184 -0
  201. polyfile/kaitaimatcher.py +113 -0
  202. polyfile/languagematcher.py +217 -0
  203. polyfile/logger.py +135 -0
  204. polyfile/magic.py +2983 -0
  205. polyfile/magic_defs/COPYING +29 -0
  206. polyfile/magic_defs/__init__.py +0 -0
  207. polyfile/magic_defs/acorn +102 -0
  208. polyfile/magic_defs/adi +13 -0
  209. polyfile/magic_defs/adventure +122 -0
  210. polyfile/magic_defs/aes +29 -0
  211. polyfile/magic_defs/algol68 +35 -0
  212. polyfile/magic_defs/allegro +9 -0
  213. polyfile/magic_defs/alliant +18 -0
  214. polyfile/magic_defs/alpha +32 -0
  215. polyfile/magic_defs/amanda +12 -0
  216. polyfile/magic_defs/amigaos +218 -0
  217. polyfile/magic_defs/android +259 -0
  218. polyfile/magic_defs/animation +1197 -0
  219. polyfile/magic_defs/aout +46 -0
  220. polyfile/magic_defs/apache +28 -0
  221. polyfile/magic_defs/apl +7 -0
  222. polyfile/magic_defs/apple +773 -0
  223. polyfile/magic_defs/application +7 -0
  224. polyfile/magic_defs/applix +13 -0
  225. polyfile/magic_defs/apt +52 -0
  226. polyfile/magic_defs/archive +2586 -0
  227. polyfile/magic_defs/aria +38 -0
  228. polyfile/magic_defs/arm +50 -0
  229. polyfile/magic_defs/asf +132 -0
  230. polyfile/magic_defs/assembler +18 -0
  231. polyfile/magic_defs/asterix +18 -0
  232. polyfile/magic_defs/att3b +41 -0
  233. polyfile/magic_defs/audio +1291 -0
  234. polyfile/magic_defs/avm +33 -0
  235. polyfile/magic_defs/basis +18 -0
  236. polyfile/magic_defs/beetle +7 -0
  237. polyfile/magic_defs/ber +65 -0
  238. polyfile/magic_defs/bflt +14 -0
  239. polyfile/magic_defs/bhl +10 -0
  240. polyfile/magic_defs/bioinformatics +178 -0
  241. polyfile/magic_defs/biosig +154 -0
  242. polyfile/magic_defs/blackberry +8 -0
  243. polyfile/magic_defs/blcr +25 -0
  244. polyfile/magic_defs/blender +50 -0
  245. polyfile/magic_defs/blit +24 -0
  246. polyfile/magic_defs/bm +10 -0
  247. polyfile/magic_defs/bout +11 -0
  248. polyfile/magic_defs/bsdi +33 -0
  249. polyfile/magic_defs/bsi +10 -0
  250. polyfile/magic_defs/btsnoop +13 -0
  251. polyfile/magic_defs/burp +7 -0
  252. polyfile/magic_defs/bytecode +41 -0
  253. polyfile/magic_defs/c-lang +110 -0
  254. polyfile/magic_defs/c64 +531 -0
  255. polyfile/magic_defs/cad +437 -0
  256. polyfile/magic_defs/cafebabe +107 -0
  257. polyfile/magic_defs/cbor +21 -0
  258. polyfile/magic_defs/ccf +14 -0
  259. polyfile/magic_defs/cddb +12 -0
  260. polyfile/magic_defs/chord +15 -0
  261. polyfile/magic_defs/cisco +12 -0
  262. polyfile/magic_defs/citrus +12 -0
  263. polyfile/magic_defs/clarion +27 -0
  264. polyfile/magic_defs/claris +48 -0
  265. polyfile/magic_defs/clipper +65 -0
  266. polyfile/magic_defs/clojure +30 -0
  267. polyfile/magic_defs/coff +98 -0
  268. polyfile/magic_defs/commands +201 -0
  269. polyfile/magic_defs/communications +22 -0
  270. polyfile/magic_defs/compress +461 -0
  271. polyfile/magic_defs/console +1213 -0
  272. polyfile/magic_defs/convex +69 -0
  273. polyfile/magic_defs/coverage +91 -0
  274. polyfile/magic_defs/cracklib +14 -0
  275. polyfile/magic_defs/crypto +31 -0
  276. polyfile/magic_defs/csv +8 -0
  277. polyfile/magic_defs/ctags +6 -0
  278. polyfile/magic_defs/ctf +23 -0
  279. polyfile/magic_defs/cubemap +8 -0
  280. polyfile/magic_defs/cups +56 -0
  281. polyfile/magic_defs/dact +11 -0
  282. polyfile/magic_defs/database +886 -0
  283. polyfile/magic_defs/dataone +47 -0
  284. polyfile/magic_defs/dbpf +15 -0
  285. polyfile/magic_defs/der +146 -0
  286. polyfile/magic_defs/diamond +12 -0
  287. polyfile/magic_defs/dif +33 -0
  288. polyfile/magic_defs/diff +41 -0
  289. polyfile/magic_defs/digital +59 -0
  290. polyfile/magic_defs/dolby +69 -0
  291. polyfile/magic_defs/dsf +25 -0
  292. polyfile/magic_defs/dump +96 -0
  293. polyfile/magic_defs/dwarfs +45 -0
  294. polyfile/magic_defs/dyadic +61 -0
  295. polyfile/magic_defs/ebml +8 -0
  296. polyfile/magic_defs/edid +11 -0
  297. polyfile/magic_defs/editors +43 -0
  298. polyfile/magic_defs/efi +15 -0
  299. polyfile/magic_defs/elf +379 -0
  300. polyfile/magic_defs/encore +22 -0
  301. polyfile/magic_defs/epoc +62 -0
  302. polyfile/magic_defs/erlang +21 -0
  303. polyfile/magic_defs/espressif +57 -0
  304. polyfile/magic_defs/esri +28 -0
  305. polyfile/magic_defs/etf +33 -0
  306. polyfile/magic_defs/fcs +9 -0
  307. polyfile/magic_defs/filesystems +2694 -0
  308. polyfile/magic_defs/finger +16 -0
  309. polyfile/magic_defs/firmware +133 -0
  310. polyfile/magic_defs/flash +62 -0
  311. polyfile/magic_defs/flif +36 -0
  312. polyfile/magic_defs/fonts +449 -0
  313. polyfile/magic_defs/forth +82 -0
  314. polyfile/magic_defs/fortran +9 -0
  315. polyfile/magic_defs/frame +62 -0
  316. polyfile/magic_defs/freebsd +164 -0
  317. polyfile/magic_defs/fsav +128 -0
  318. polyfile/magic_defs/fusecompress +12 -0
  319. polyfile/magic_defs/games +696 -0
  320. polyfile/magic_defs/gcc +17 -0
  321. polyfile/magic_defs/gconv +10 -0
  322. polyfile/magic_defs/gentoo +85 -0
  323. polyfile/magic_defs/geo +166 -0
  324. polyfile/magic_defs/geos +20 -0
  325. polyfile/magic_defs/gimp +77 -0
  326. polyfile/magic_defs/git +13 -0
  327. polyfile/magic_defs/glibc +21 -0
  328. polyfile/magic_defs/gnome +59 -0
  329. polyfile/magic_defs/gnu +173 -0
  330. polyfile/magic_defs/gnumeric +8 -0
  331. polyfile/magic_defs/gpt +240 -0
  332. polyfile/magic_defs/gpu +28 -0
  333. polyfile/magic_defs/grace +21 -0
  334. polyfile/magic_defs/graphviz +12 -0
  335. polyfile/magic_defs/gringotts +48 -0
  336. polyfile/magic_defs/guile +13 -0
  337. polyfile/magic_defs/hardware +12 -0
  338. polyfile/magic_defs/hitachi-sh +30 -0
  339. polyfile/magic_defs/hp +433 -0
  340. polyfile/magic_defs/human68k +26 -0
  341. polyfile/magic_defs/ibm370 +52 -0
  342. polyfile/magic_defs/ibm6000 +35 -0
  343. polyfile/magic_defs/icc +214 -0
  344. polyfile/magic_defs/iff +80 -0
  345. polyfile/magic_defs/images +4210 -0
  346. polyfile/magic_defs/inform +9 -0
  347. polyfile/magic_defs/intel +310 -0
  348. polyfile/magic_defs/interleaf +9 -0
  349. polyfile/magic_defs/island +10 -0
  350. polyfile/magic_defs/ispell +63 -0
  351. polyfile/magic_defs/isz +15 -0
  352. polyfile/magic_defs/java +52 -0
  353. polyfile/magic_defs/javascript +171 -0
  354. polyfile/magic_defs/jpeg +252 -0
  355. polyfile/magic_defs/json +8 -0
  356. polyfile/magic_defs/karma +9 -0
  357. polyfile/magic_defs/kde +11 -0
  358. polyfile/magic_defs/keepass +20 -0
  359. polyfile/magic_defs/kerberos +45 -0
  360. polyfile/magic_defs/kicad +85 -0
  361. polyfile/magic_defs/kml +34 -0
  362. polyfile/magic_defs/lammps +64 -0
  363. polyfile/magic_defs/lecter +6 -0
  364. polyfile/magic_defs/lex +12 -0
  365. polyfile/magic_defs/lif +50 -0
  366. polyfile/magic_defs/linux +557 -0
  367. polyfile/magic_defs/lisp +78 -0
  368. polyfile/magic_defs/llvm +22 -0
  369. polyfile/magic_defs/locoscript +12 -0
  370. polyfile/magic_defs/lua +31 -0
  371. polyfile/magic_defs/luks +126 -0
  372. polyfile/magic_defs/m4 +11 -0
  373. polyfile/magic_defs/mach +303 -0
  374. polyfile/magic_defs/macintosh +505 -0
  375. polyfile/magic_defs/macos +7 -0
  376. polyfile/magic_defs/magic +10 -0
  377. polyfile/magic_defs/magic.mgc +0 -0
  378. polyfile/magic_defs/mail.news +132 -0
  379. polyfile/magic_defs/make +21 -0
  380. polyfile/magic_defs/map +413 -0
  381. polyfile/magic_defs/maple +109 -0
  382. polyfile/magic_defs/marc21 +30 -0
  383. polyfile/magic_defs/mathcad +8 -0
  384. polyfile/magic_defs/mathematica +188 -0
  385. polyfile/magic_defs/matroska +17 -0
  386. polyfile/magic_defs/mcrypt +52 -0
  387. polyfile/magic_defs/measure +44 -0
  388. polyfile/magic_defs/mercurial +13 -0
  389. polyfile/magic_defs/metastore +8 -0
  390. polyfile/magic_defs/meteorological +53 -0
  391. polyfile/magic_defs/microfocus +21 -0
  392. polyfile/magic_defs/mime +9 -0
  393. polyfile/magic_defs/mips +120 -0
  394. polyfile/magic_defs/mirage +8 -0
  395. polyfile/magic_defs/misctools +140 -0
  396. polyfile/magic_defs/mkid +11 -0
  397. polyfile/magic_defs/mlssa +8 -0
  398. polyfile/magic_defs/mmdf +6 -0
  399. polyfile/magic_defs/modem +92 -0
  400. polyfile/magic_defs/modulefile +9 -0
  401. polyfile/magic_defs/motorola +71 -0
  402. polyfile/magic_defs/mozilla +37 -0
  403. polyfile/magic_defs/msdos +2304 -0
  404. polyfile/magic_defs/msooxml +68 -0
  405. polyfile/magic_defs/msvc +222 -0
  406. polyfile/magic_defs/msx +309 -0
  407. polyfile/magic_defs/mup +24 -0
  408. polyfile/magic_defs/music +17 -0
  409. polyfile/magic_defs/nasa +7 -0
  410. polyfile/magic_defs/natinst +24 -0
  411. polyfile/magic_defs/ncr +49 -0
  412. polyfile/magic_defs/neko +12 -0
  413. polyfile/magic_defs/netbsd +251 -0
  414. polyfile/magic_defs/netscape +26 -0
  415. polyfile/magic_defs/netware +11 -0
  416. polyfile/magic_defs/news +13 -0
  417. polyfile/magic_defs/nifty +202 -0
  418. polyfile/magic_defs/nim-lang +29 -0
  419. polyfile/magic_defs/nitpicker +14 -0
  420. polyfile/magic_defs/numpy +9 -0
  421. polyfile/magic_defs/oasis +12 -0
  422. polyfile/magic_defs/ocaml +14 -0
  423. polyfile/magic_defs/octave +6 -0
  424. polyfile/magic_defs/ole2compounddocs +760 -0
  425. polyfile/magic_defs/olf +98 -0
  426. polyfile/magic_defs/openfst +17 -0
  427. polyfile/magic_defs/opentimestamps +16 -0
  428. polyfile/magic_defs/oric +16 -0
  429. polyfile/magic_defs/os2 +186 -0
  430. polyfile/magic_defs/os400 +39 -0
  431. polyfile/magic_defs/os9 +80 -0
  432. polyfile/magic_defs/osf1 +10 -0
  433. polyfile/magic_defs/palm +156 -0
  434. polyfile/magic_defs/parix +13 -0
  435. polyfile/magic_defs/parrot +22 -0
  436. polyfile/magic_defs/pascal +39 -0
  437. polyfile/magic_defs/pbf +11 -0
  438. polyfile/magic_defs/pbm +8 -0
  439. polyfile/magic_defs/pc88 +24 -0
  440. polyfile/magic_defs/pc98 +77 -0
  441. polyfile/magic_defs/pci_ids +116 -0
  442. polyfile/magic_defs/pcjr +8 -0
  443. polyfile/magic_defs/pdf +51 -0
  444. polyfile/magic_defs/pdp +42 -0
  445. polyfile/magic_defs/perl +100 -0
  446. polyfile/magic_defs/pgf +52 -0
  447. polyfile/magic_defs/pgp +581 -0
  448. polyfile/magic_defs/pgp-binary-keys +388 -0
  449. polyfile/magic_defs/pkgadd +7 -0
  450. polyfile/magic_defs/plan9 +25 -0
  451. polyfile/magic_defs/playdate +57 -0
  452. polyfile/magic_defs/plus5 +18 -0
  453. polyfile/magic_defs/pmem +46 -0
  454. polyfile/magic_defs/polyfile_zip +5 -0
  455. polyfile/magic_defs/polyml +23 -0
  456. polyfile/magic_defs/printer +269 -0
  457. polyfile/magic_defs/project +10 -0
  458. polyfile/magic_defs/psdbms +14 -0
  459. polyfile/magic_defs/psl +14 -0
  460. polyfile/magic_defs/pulsar +13 -0
  461. polyfile/magic_defs/puzzle +17 -0
  462. polyfile/magic_defs/pwsafe +14 -0
  463. polyfile/magic_defs/pyramid +12 -0
  464. polyfile/magic_defs/python +305 -0
  465. polyfile/magic_defs/qt +30 -0
  466. polyfile/magic_defs/revision +66 -0
  467. polyfile/magic_defs/riff +840 -0
  468. polyfile/magic_defs/rinex +44 -0
  469. polyfile/magic_defs/ringdove +45 -0
  470. polyfile/magic_defs/rpi +52 -0
  471. polyfile/magic_defs/rpm +45 -0
  472. polyfile/magic_defs/rpmsg +7 -0
  473. polyfile/magic_defs/rst +11 -0
  474. polyfile/magic_defs/rtf +94 -0
  475. polyfile/magic_defs/ruby +55 -0
  476. polyfile/magic_defs/rust +21 -0
  477. polyfile/magic_defs/sc +7 -0
  478. polyfile/magic_defs/sccs +24 -0
  479. polyfile/magic_defs/scientific +144 -0
  480. polyfile/magic_defs/securitycerts +6 -0
  481. polyfile/magic_defs/selinux +24 -0
  482. polyfile/magic_defs/sendmail +37 -0
  483. polyfile/magic_defs/sequent +42 -0
  484. polyfile/magic_defs/sereal +35 -0
  485. polyfile/magic_defs/sgi +144 -0
  486. polyfile/magic_defs/sgml +161 -0
  487. polyfile/magic_defs/sharc +23 -0
  488. polyfile/magic_defs/sinclair +40 -0
  489. polyfile/magic_defs/sisu +18 -0
  490. polyfile/magic_defs/sketch +6 -0
  491. polyfile/magic_defs/smalltalk +25 -0
  492. polyfile/magic_defs/smile +34 -0
  493. polyfile/magic_defs/sniffer +482 -0
  494. polyfile/magic_defs/softquad +40 -0
  495. polyfile/magic_defs/sosi +40 -0
  496. polyfile/magic_defs/spec +21 -0
  497. polyfile/magic_defs/spectrum +184 -0
  498. polyfile/magic_defs/sql +288 -0
  499. polyfile/magic_defs/ssh +39 -0
  500. polyfile/magic_defs/ssl +20 -0
  501. polyfile/magic_defs/statistics +45 -0
  502. polyfile/magic_defs/subtitle +38 -0
  503. polyfile/magic_defs/sun +141 -0
  504. polyfile/magic_defs/svf +5 -0
  505. polyfile/magic_defs/sylk +36 -0
  506. polyfile/magic_defs/symbos +42 -0
  507. polyfile/magic_defs/sysex +429 -0
  508. polyfile/magic_defs/tcl +29 -0
  509. polyfile/magic_defs/teapot +6 -0
  510. polyfile/magic_defs/terminfo +63 -0
  511. polyfile/magic_defs/tex +141 -0
  512. polyfile/magic_defs/tgif +7 -0
  513. polyfile/magic_defs/ti-8x +239 -0
  514. polyfile/magic_defs/timezone +42 -0
  515. polyfile/magic_defs/tplink +95 -0
  516. polyfile/magic_defs/troff +38 -0
  517. polyfile/magic_defs/tuxedo +8 -0
  518. polyfile/magic_defs/typeset +8 -0
  519. polyfile/magic_defs/uf2 +72 -0
  520. polyfile/magic_defs/unicode +15 -0
  521. polyfile/magic_defs/unisig +12 -0
  522. polyfile/magic_defs/unknown +34 -0
  523. polyfile/magic_defs/usd +21 -0
  524. polyfile/magic_defs/uterus +16 -0
  525. polyfile/magic_defs/uuencode +28 -0
  526. polyfile/magic_defs/vacuum-cleaner +54 -0
  527. polyfile/magic_defs/varied.out +46 -0
  528. polyfile/magic_defs/varied.script +21 -0
  529. polyfile/magic_defs/vax +32 -0
  530. polyfile/magic_defs/vicar +17 -0
  531. polyfile/magic_defs/virtual +307 -0
  532. polyfile/magic_defs/virtutech +12 -0
  533. polyfile/magic_defs/visx +32 -0
  534. polyfile/magic_defs/vms +30 -0
  535. polyfile/magic_defs/vmware +6 -0
  536. polyfile/magic_defs/vorbis +155 -0
  537. polyfile/magic_defs/vxl +14 -0
  538. polyfile/magic_defs/warc +16 -0
  539. polyfile/magic_defs/weak +16 -0
  540. polyfile/magic_defs/web +18 -0
  541. polyfile/magic_defs/webassembly +17 -0
  542. polyfile/magic_defs/windows +1811 -0
  543. polyfile/magic_defs/wireless +7 -0
  544. polyfile/magic_defs/wordprocessors +630 -0
  545. polyfile/magic_defs/wsdl +23 -0
  546. polyfile/magic_defs/x68000 +25 -0
  547. polyfile/magic_defs/xdelta +13 -0
  548. polyfile/magic_defs/xenix +106 -0
  549. polyfile/magic_defs/xilinx +58 -0
  550. polyfile/magic_defs/xo65 +37 -0
  551. polyfile/magic_defs/xwindows +43 -0
  552. polyfile/magic_defs/yara +17 -0
  553. polyfile/magic_defs/zfs +96 -0
  554. polyfile/magic_defs/zilog +12 -0
  555. polyfile/magic_defs/zip +126 -0
  556. polyfile/magic_defs/zyxel +17 -0
  557. polyfile/nes.py +144 -0
  558. polyfile/nitf.py +15 -0
  559. polyfile/pdf.py +1264 -0
  560. polyfile/pickles.py +45 -0
  561. polyfile/polyfile.py +409 -0
  562. polyfile/profiling.py +115 -0
  563. polyfile/repl.py +624 -0
  564. polyfile/search.py +310 -0
  565. polyfile/serialization.py +323 -0
  566. polyfile/structmatcher.py +46 -0
  567. polyfile/structs.py +281 -0
  568. polyfile/templates/download.js +162 -0
  569. polyfile/templates/hexdump.css +268 -0
  570. polyfile/templates/hexdump.js +756 -0
  571. polyfile/templates/jquery-3.4.1.min.js +2 -0
  572. polyfile/templates/template.html +119 -0
  573. polyfile/wildcards.py +62 -0
  574. polyfile/zipmatcher.py +183 -0
  575. polyfile_weave-0.5.5.dist-info/METADATA +173 -0
  576. polyfile_weave-0.5.5.dist-info/RECORD +585 -0
  577. polyfile_weave-0.5.5.dist-info/WHEEL +5 -0
  578. polyfile_weave-0.5.5.dist-info/entry_points.txt +2 -0
  579. polyfile_weave-0.5.5.dist-info/licenses/LICENSE +202 -0
  580. polyfile_weave-0.5.5.dist-info/top_level.txt +2 -0
  581. polymerge/__init__.py +1 -0
  582. polymerge/__main__.py +296 -0
  583. polymerge/cfg.py +127 -0
  584. polymerge/polymerge.py +227 -0
  585. polymerge/polytracker.py +190 -0
@@ -0,0 +1,456 @@
1
+ # This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
2
+
3
+ from pkg_resources import parse_version
4
+ import kaitaistruct
5
+ from kaitaistruct import KaitaiStruct, KaitaiStream, BytesIO
6
+ from enum import Enum
7
+ import collections
8
+
9
+
10
+ if parse_version(kaitaistruct.__version__) < parse_version('0.9'):
11
+ raise Exception("Incompatible Kaitai Struct Python API: 0.9 or later is required, but you have %s" % (kaitaistruct.__version__))
12
+
13
+ class Code6502(KaitaiStruct):
14
+ """This spec can be used to disassemble raw stream of 6502 CPU machine
15
+ code into individual operations. Each operation includes an opcode
16
+ and, optionally, an argument. Register arguments are part of the
17
+ `opcode` enum.
18
+ """
19
+
20
+ class Opcode(Enum):
21
+ brk_impl = 0
22
+ ora_x_ind = 1
23
+ ora_zpg = 5
24
+ asl_zpg = 6
25
+ php_impl = 8
26
+ ora_imm = 9
27
+ asl_a = 10
28
+ ora_abs = 13
29
+ asl_abs = 14
30
+ bpl_rel = 16
31
+ ora_ind_y = 17
32
+ ora_zpg_x = 21
33
+ asl_zpg_x = 22
34
+ clc_impl = 24
35
+ ora_abs_y = 25
36
+ ora_abs_x = 29
37
+ asl_abs_x = 30
38
+ jsr_abs = 32
39
+ and_x_ind = 33
40
+ bit_zpg = 36
41
+ and_zpg = 37
42
+ rol_zpg = 38
43
+ plp_impl = 40
44
+ and_imm = 41
45
+ rol_a = 42
46
+ bit_abs = 44
47
+ and_abs = 45
48
+ rol_abs = 46
49
+ bmi_rel = 48
50
+ and_ind_y = 49
51
+ and_zpg_x = 53
52
+ rol_zpg_x = 54
53
+ sec_impl = 56
54
+ and_abs_y = 57
55
+ and_abs_x = 61
56
+ rol_abs_x = 62
57
+ rti_impl = 64
58
+ eor_x_ind = 65
59
+ eor_zpg = 69
60
+ lsr_zpg = 70
61
+ pha_impl = 72
62
+ eor_imm = 73
63
+ lsr_a = 74
64
+ jmp_abs = 76
65
+ eor_abs = 77
66
+ lsr_abs = 78
67
+ bvc_rel = 80
68
+ eor_ind_y = 81
69
+ eor_zpg_x = 85
70
+ lsr_zpg_x = 86
71
+ cli_impl = 88
72
+ eor_abs_y = 89
73
+ eor_abs_x = 93
74
+ lsr_abs_x = 94
75
+ rts_impl = 96
76
+ adc_x_ind = 97
77
+ adc_zpg = 101
78
+ ror_zpg = 102
79
+ pla_impl = 104
80
+ adc_imm = 105
81
+ ror_a = 106
82
+ jmp_ind = 108
83
+ adc_abs = 109
84
+ ror_abs = 110
85
+ bvs_rel = 112
86
+ adc_ind_y = 113
87
+ adc_zpg_x = 117
88
+ ror_zpg_x = 118
89
+ sei_impl = 120
90
+ adc_abs_y = 121
91
+ adc_abs_x = 125
92
+ ror_abs_x = 126
93
+ sta_x_ind = 129
94
+ sty_zpg = 132
95
+ sta_zpg = 133
96
+ stx_zpg = 134
97
+ dey_impl = 136
98
+ txa_impl = 138
99
+ sty_abs = 140
100
+ sta_abs = 141
101
+ stx_abs = 142
102
+ bcc_rel = 144
103
+ sta_ind_y = 145
104
+ sty_zpg_x = 148
105
+ sta_zpg_x = 149
106
+ stx_zpg_y = 150
107
+ tya_impl = 152
108
+ sta_abs_y = 153
109
+ txs_impl = 154
110
+ sta_abs_x = 157
111
+ ldy_imm = 160
112
+ lda_x_ind = 161
113
+ ldx_imm = 162
114
+ ldy_zpg = 164
115
+ lda_zpg = 165
116
+ ldx_zpg = 166
117
+ tay_impl = 168
118
+ lda_imm = 169
119
+ tax_impl = 170
120
+ ldy_abs = 172
121
+ lda_abs = 173
122
+ ldx_abs = 174
123
+ bcs_rel = 176
124
+ lda_ind_y = 177
125
+ ldy_zpg_x = 180
126
+ lda_zpg_x = 181
127
+ ldx_zpg_y = 182
128
+ clv_impl = 184
129
+ lda_abs_y = 185
130
+ tsx_impl = 186
131
+ ldy_abs_x = 188
132
+ lda_abs_x = 189
133
+ ldx_abs_y = 190
134
+ cpy_imm = 192
135
+ cmp_x_ind = 193
136
+ cpy_zpg = 196
137
+ cmp_zpg = 197
138
+ dec_zpg = 198
139
+ iny_impl = 200
140
+ cmp_imm = 201
141
+ dex_impl = 202
142
+ cpy_abs = 204
143
+ cmp_abs = 205
144
+ dec_abs = 206
145
+ bne_rel = 208
146
+ cmp_ind_y = 209
147
+ cmp_zpg_x = 213
148
+ dec_zpg_x = 214
149
+ cld_impl = 216
150
+ cmp_abs_y = 217
151
+ cmp_abs_x = 221
152
+ dec_abs_x = 222
153
+ cpx_imm = 224
154
+ sbc_x_ind = 225
155
+ cpx_zpg = 228
156
+ sbc_zpg = 229
157
+ inc_zpg = 230
158
+ inx_impl = 232
159
+ sbc_imm = 233
160
+ nop_impl = 234
161
+ cpx_abs = 236
162
+ sbc_abs = 237
163
+ inc_abs = 238
164
+ beq_rel = 240
165
+ sbc_ind_y = 241
166
+ sbc_zpg_x = 245
167
+ inc_zpg_x = 246
168
+ sed_impl = 248
169
+ sbc_abs_y = 249
170
+ sbc_abs_x = 253
171
+ inc_abs_x = 254
172
+ SEQ_FIELDS = ["operations"]
173
+ def __init__(self, _io, _parent=None, _root=None):
174
+ self._io = _io
175
+ self._parent = _parent
176
+ self._root = _root if _root else self
177
+ self._debug = collections.defaultdict(dict)
178
+
179
+ def _read(self):
180
+ self._debug['operations']['start'] = self._io.pos()
181
+ self.operations = []
182
+ i = 0
183
+ while not self._io.is_eof():
184
+ if not 'arr' in self._debug['operations']:
185
+ self._debug['operations']['arr'] = []
186
+ self._debug['operations']['arr'].append({'start': self._io.pos()})
187
+ _t_operations = Code6502.Operation(self._io, self, self._root)
188
+ _t_operations._read()
189
+ self.operations.append(_t_operations)
190
+ self._debug['operations']['arr'][len(self.operations) - 1]['end'] = self._io.pos()
191
+ i += 1
192
+
193
+ self._debug['operations']['end'] = self._io.pos()
194
+
195
+ class Operation(KaitaiStruct):
196
+ SEQ_FIELDS = ["code", "args"]
197
+ def __init__(self, _io, _parent=None, _root=None):
198
+ self._io = _io
199
+ self._parent = _parent
200
+ self._root = _root if _root else self
201
+ self._debug = collections.defaultdict(dict)
202
+
203
+ def _read(self):
204
+ self._debug['code']['start'] = self._io.pos()
205
+ self.code = KaitaiStream.resolve_enum(Code6502.Opcode, self._io.read_u1())
206
+ self._debug['code']['end'] = self._io.pos()
207
+ self._debug['args']['start'] = self._io.pos()
208
+ _on = self.code
209
+ if _on == Code6502.Opcode.bcc_rel:
210
+ self.args = self._io.read_s1()
211
+ elif _on == Code6502.Opcode.ora_ind_y:
212
+ self.args = self._io.read_u1()
213
+ elif _on == Code6502.Opcode.lda_ind_y:
214
+ self.args = self._io.read_u1()
215
+ elif _on == Code6502.Opcode.cpx_zpg:
216
+ self.args = self._io.read_u1()
217
+ elif _on == Code6502.Opcode.sta_zpg_x:
218
+ self.args = self._io.read_u1()
219
+ elif _on == Code6502.Opcode.sta_zpg:
220
+ self.args = self._io.read_u1()
221
+ elif _on == Code6502.Opcode.bcs_rel:
222
+ self.args = self._io.read_s1()
223
+ elif _on == Code6502.Opcode.ldy_zpg_x:
224
+ self.args = self._io.read_u1()
225
+ elif _on == Code6502.Opcode.lsr_abs_x:
226
+ self.args = self._io.read_u2le()
227
+ elif _on == Code6502.Opcode.and_abs_x:
228
+ self.args = self._io.read_u2le()
229
+ elif _on == Code6502.Opcode.adc_abs:
230
+ self.args = self._io.read_u2le()
231
+ elif _on == Code6502.Opcode.sta_abs:
232
+ self.args = self._io.read_u2le()
233
+ elif _on == Code6502.Opcode.bne_rel:
234
+ self.args = self._io.read_s1()
235
+ elif _on == Code6502.Opcode.lda_imm:
236
+ self.args = self._io.read_u1()
237
+ elif _on == Code6502.Opcode.adc_imm:
238
+ self.args = self._io.read_u1()
239
+ elif _on == Code6502.Opcode.lsr_abs:
240
+ self.args = self._io.read_u2le()
241
+ elif _on == Code6502.Opcode.adc_abs_x:
242
+ self.args = self._io.read_u2le()
243
+ elif _on == Code6502.Opcode.sta_abs_x:
244
+ self.args = self._io.read_u2le()
245
+ elif _on == Code6502.Opcode.cpx_imm:
246
+ self.args = self._io.read_u1()
247
+ elif _on == Code6502.Opcode.jmp_ind:
248
+ self.args = self._io.read_u2le()
249
+ elif _on == Code6502.Opcode.adc_zpg:
250
+ self.args = self._io.read_u1()
251
+ elif _on == Code6502.Opcode.eor_imm:
252
+ self.args = self._io.read_u1()
253
+ elif _on == Code6502.Opcode.eor_abs_x:
254
+ self.args = self._io.read_u2le()
255
+ elif _on == Code6502.Opcode.sta_x_ind:
256
+ self.args = self._io.read_u1()
257
+ elif _on == Code6502.Opcode.sbc_imm:
258
+ self.args = self._io.read_u1()
259
+ elif _on == Code6502.Opcode.cpy_abs:
260
+ self.args = self._io.read_u2le()
261
+ elif _on == Code6502.Opcode.ldx_abs_y:
262
+ self.args = self._io.read_u2le()
263
+ elif _on == Code6502.Opcode.adc_zpg_x:
264
+ self.args = self._io.read_u1()
265
+ elif _on == Code6502.Opcode.bpl_rel:
266
+ self.args = self._io.read_s1()
267
+ elif _on == Code6502.Opcode.ora_imm:
268
+ self.args = self._io.read_u1()
269
+ elif _on == Code6502.Opcode.ror_abs_x:
270
+ self.args = self._io.read_u2le()
271
+ elif _on == Code6502.Opcode.adc_ind_y:
272
+ self.args = self._io.read_u1()
273
+ elif _on == Code6502.Opcode.eor_ind_y:
274
+ self.args = self._io.read_u1()
275
+ elif _on == Code6502.Opcode.lda_abs:
276
+ self.args = self._io.read_u2le()
277
+ elif _on == Code6502.Opcode.bit_zpg:
278
+ self.args = self._io.read_u1()
279
+ elif _on == Code6502.Opcode.rol_zpg:
280
+ self.args = self._io.read_u1()
281
+ elif _on == Code6502.Opcode.sty_zpg:
282
+ self.args = self._io.read_u1()
283
+ elif _on == Code6502.Opcode.jsr_abs:
284
+ self.args = self._io.read_u2le()
285
+ elif _on == Code6502.Opcode.eor_zpg:
286
+ self.args = self._io.read_u1()
287
+ elif _on == Code6502.Opcode.eor_abs:
288
+ self.args = self._io.read_u2le()
289
+ elif _on == Code6502.Opcode.lda_abs_y:
290
+ self.args = self._io.read_u2le()
291
+ elif _on == Code6502.Opcode.lda_zpg_x:
292
+ self.args = self._io.read_u1()
293
+ elif _on == Code6502.Opcode.bmi_rel:
294
+ self.args = self._io.read_s1()
295
+ elif _on == Code6502.Opcode.sty_zpg_x:
296
+ self.args = self._io.read_u1()
297
+ elif _on == Code6502.Opcode.adc_x_ind:
298
+ self.args = self._io.read_u1()
299
+ elif _on == Code6502.Opcode.rol_abs_x:
300
+ self.args = self._io.read_u2le()
301
+ elif _on == Code6502.Opcode.stx_zpg:
302
+ self.args = self._io.read_u1()
303
+ elif _on == Code6502.Opcode.asl_abs_x:
304
+ self.args = self._io.read_u2le()
305
+ elif _on == Code6502.Opcode.lsr_zpg_x:
306
+ self.args = self._io.read_u1()
307
+ elif _on == Code6502.Opcode.ora_zpg_x:
308
+ self.args = self._io.read_u1()
309
+ elif _on == Code6502.Opcode.adc_abs_y:
310
+ self.args = self._io.read_u2le()
311
+ elif _on == Code6502.Opcode.ldy_abs:
312
+ self.args = self._io.read_u2le()
313
+ elif _on == Code6502.Opcode.cmp_abs_x:
314
+ self.args = self._io.read_u2le()
315
+ elif _on == Code6502.Opcode.lda_abs_x:
316
+ self.args = self._io.read_u2le()
317
+ elif _on == Code6502.Opcode.bvs_rel:
318
+ self.args = self._io.read_s1()
319
+ elif _on == Code6502.Opcode.lda_x_ind:
320
+ self.args = self._io.read_u1()
321
+ elif _on == Code6502.Opcode.cmp_imm:
322
+ self.args = self._io.read_u1()
323
+ elif _on == Code6502.Opcode.inc_zpg_x:
324
+ self.args = self._io.read_u1()
325
+ elif _on == Code6502.Opcode.asl_zpg:
326
+ self.args = self._io.read_u1()
327
+ elif _on == Code6502.Opcode.and_abs_y:
328
+ self.args = self._io.read_u2le()
329
+ elif _on == Code6502.Opcode.ldx_imm:
330
+ self.args = self._io.read_u1()
331
+ elif _on == Code6502.Opcode.and_zpg:
332
+ self.args = self._io.read_u1()
333
+ elif _on == Code6502.Opcode.cpx_abs:
334
+ self.args = self._io.read_u2le()
335
+ elif _on == Code6502.Opcode.dec_zpg:
336
+ self.args = self._io.read_u1()
337
+ elif _on == Code6502.Opcode.ror_zpg_x:
338
+ self.args = self._io.read_u1()
339
+ elif _on == Code6502.Opcode.ldx_zpg:
340
+ self.args = self._io.read_u1()
341
+ elif _on == Code6502.Opcode.dec_zpg_x:
342
+ self.args = self._io.read_u1()
343
+ elif _on == Code6502.Opcode.sbc_zpg:
344
+ self.args = self._io.read_u1()
345
+ elif _on == Code6502.Opcode.cmp_abs:
346
+ self.args = self._io.read_u2le()
347
+ elif _on == Code6502.Opcode.ror_zpg:
348
+ self.args = self._io.read_u1()
349
+ elif _on == Code6502.Opcode.inc_abs:
350
+ self.args = self._io.read_u2le()
351
+ elif _on == Code6502.Opcode.and_x_ind:
352
+ self.args = self._io.read_u1()
353
+ elif _on == Code6502.Opcode.sbc_abs_x:
354
+ self.args = self._io.read_u2le()
355
+ elif _on == Code6502.Opcode.asl_abs:
356
+ self.args = self._io.read_u2le()
357
+ elif _on == Code6502.Opcode.eor_x_ind:
358
+ self.args = self._io.read_u1()
359
+ elif _on == Code6502.Opcode.ora_abs_x:
360
+ self.args = self._io.read_u2le()
361
+ elif _on == Code6502.Opcode.ldy_abs_x:
362
+ self.args = self._io.read_u2le()
363
+ elif _on == Code6502.Opcode.sbc_x_ind:
364
+ self.args = self._io.read_u1()
365
+ elif _on == Code6502.Opcode.asl_zpg_x:
366
+ self.args = self._io.read_u1()
367
+ elif _on == Code6502.Opcode.sbc_abs_y:
368
+ self.args = self._io.read_u2le()
369
+ elif _on == Code6502.Opcode.rol_abs:
370
+ self.args = self._io.read_u2le()
371
+ elif _on == Code6502.Opcode.lsr_zpg:
372
+ self.args = self._io.read_u1()
373
+ elif _on == Code6502.Opcode.stx_zpg_y:
374
+ self.args = self._io.read_u1()
375
+ elif _on == Code6502.Opcode.ora_abs_y:
376
+ self.args = self._io.read_u2le()
377
+ elif _on == Code6502.Opcode.eor_abs_y:
378
+ self.args = self._io.read_u2le()
379
+ elif _on == Code6502.Opcode.bit_abs:
380
+ self.args = self._io.read_u2le()
381
+ elif _on == Code6502.Opcode.ldx_abs:
382
+ self.args = self._io.read_u2le()
383
+ elif _on == Code6502.Opcode.ldy_imm:
384
+ self.args = self._io.read_u1()
385
+ elif _on == Code6502.Opcode.jmp_abs:
386
+ self.args = self._io.read_u2le()
387
+ elif _on == Code6502.Opcode.beq_rel:
388
+ self.args = self._io.read_s1()
389
+ elif _on == Code6502.Opcode.dec_abs_x:
390
+ self.args = self._io.read_u2le()
391
+ elif _on == Code6502.Opcode.and_ind_y:
392
+ self.args = self._io.read_u1()
393
+ elif _on == Code6502.Opcode.and_zpg_x:
394
+ self.args = self._io.read_u1()
395
+ elif _on == Code6502.Opcode.cmp_zpg_x:
396
+ self.args = self._io.read_u1()
397
+ elif _on == Code6502.Opcode.eor_zpg_x:
398
+ self.args = self._io.read_u1()
399
+ elif _on == Code6502.Opcode.sbc_abs:
400
+ self.args = self._io.read_u2le()
401
+ elif _on == Code6502.Opcode.cmp_abs_y:
402
+ self.args = self._io.read_u2le()
403
+ elif _on == Code6502.Opcode.sbc_ind_y:
404
+ self.args = self._io.read_u1()
405
+ elif _on == Code6502.Opcode.cmp_zpg:
406
+ self.args = self._io.read_u1()
407
+ elif _on == Code6502.Opcode.stx_abs:
408
+ self.args = self._io.read_u2le()
409
+ elif _on == Code6502.Opcode.sty_abs:
410
+ self.args = self._io.read_u2le()
411
+ elif _on == Code6502.Opcode.cpy_zpg:
412
+ self.args = self._io.read_u1()
413
+ elif _on == Code6502.Opcode.dec_abs:
414
+ self.args = self._io.read_u2le()
415
+ elif _on == Code6502.Opcode.ror_abs:
416
+ self.args = self._io.read_u2le()
417
+ elif _on == Code6502.Opcode.sta_abs_y:
418
+ self.args = self._io.read_u2le()
419
+ elif _on == Code6502.Opcode.inc_abs_x:
420
+ self.args = self._io.read_u2le()
421
+ elif _on == Code6502.Opcode.lda_zpg:
422
+ self.args = self._io.read_u1()
423
+ elif _on == Code6502.Opcode.cmp_ind_y:
424
+ self.args = self._io.read_u1()
425
+ elif _on == Code6502.Opcode.cpy_imm:
426
+ self.args = self._io.read_u1()
427
+ elif _on == Code6502.Opcode.ldx_zpg_y:
428
+ self.args = self._io.read_u1()
429
+ elif _on == Code6502.Opcode.sbc_zpg_x:
430
+ self.args = self._io.read_u1()
431
+ elif _on == Code6502.Opcode.ora_x_ind:
432
+ self.args = self._io.read_u1()
433
+ elif _on == Code6502.Opcode.rol_zpg_x:
434
+ self.args = self._io.read_u1()
435
+ elif _on == Code6502.Opcode.ora_abs:
436
+ self.args = self._io.read_u2le()
437
+ elif _on == Code6502.Opcode.sta_ind_y:
438
+ self.args = self._io.read_u1()
439
+ elif _on == Code6502.Opcode.and_abs:
440
+ self.args = self._io.read_u2le()
441
+ elif _on == Code6502.Opcode.and_imm:
442
+ self.args = self._io.read_u1()
443
+ elif _on == Code6502.Opcode.cmp_x_ind:
444
+ self.args = self._io.read_u1()
445
+ elif _on == Code6502.Opcode.ldy_zpg:
446
+ self.args = self._io.read_u1()
447
+ elif _on == Code6502.Opcode.inc_zpg:
448
+ self.args = self._io.read_u1()
449
+ elif _on == Code6502.Opcode.bvc_rel:
450
+ self.args = self._io.read_s1()
451
+ elif _on == Code6502.Opcode.ora_zpg:
452
+ self.args = self._io.read_u1()
453
+ self._debug['args']['end'] = self._io.pos()
454
+
455
+
456
+
@@ -0,0 +1,217 @@
1
+ # This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
2
+
3
+ from pkg_resources import parse_version
4
+ import kaitaistruct
5
+ from kaitaistruct import KaitaiStruct, KaitaiStream, BytesIO
6
+ import collections
7
+
8
+
9
+ if parse_version(kaitaistruct.__version__) < parse_version('0.9'):
10
+ raise Exception("Incompatible Kaitai Struct Python API: 0.9 or later is required, but you have %s" % (kaitaistruct.__version__))
11
+
12
+ from polyfile.kaitai.parsers import bytes_with_io
13
+ class CompressedResource(KaitaiStruct):
14
+ """Compressed Macintosh resource data,
15
+ as stored in resources with the "compressed" attribute.
16
+
17
+ Resource decompression is not documented by Apple.
18
+ It is mostly used internally in System 7,
19
+ some of Apple's own applications (such as ResEdit),
20
+ and also by some third-party applications.
21
+ Later versions of Classic Mac OS make less use of resource compression,
22
+ but still support it fully for backwards compatibility.
23
+ Carbon in Mac OS X no longer supports resource compression in any way.
24
+
25
+ The data of all compressed resources starts with a common header,
26
+ followed by the compressed data.
27
+ The data is decompressed using code in a `'dcmp'` resource.
28
+ Some decompressors used by Apple are included in the System file,
29
+ but applications can also include custom decompressors.
30
+ The header of the compressed data indicates the ID of the `'dcmp'` resource used to decompress the data,
31
+ along with some parameters for the decompressor.
32
+
33
+ .. seealso::
34
+ Source - http://www.alysis.us/arctechnology.htm
35
+
36
+
37
+ .. seealso::
38
+ Source - http://preserve.mactech.com/articles/mactech/Vol.09/09.01/ResCompression/index.html
39
+
40
+
41
+ .. seealso::
42
+ Source - https://github.com/dgelessus/python-rsrcfork/tree/f891a6e/src/rsrcfork/compress
43
+ """
44
+ SEQ_FIELDS = ["header", "compressed_data"]
45
+ def __init__(self, _io, _parent=None, _root=None):
46
+ self._io = _io
47
+ self._parent = _parent
48
+ self._root = _root if _root else self
49
+ self._debug = collections.defaultdict(dict)
50
+
51
+ def _read(self):
52
+ self._debug['header']['start'] = self._io.pos()
53
+ self.header = CompressedResource.Header(self._io, self, self._root)
54
+ self.header._read()
55
+ self._debug['header']['end'] = self._io.pos()
56
+ self._debug['compressed_data']['start'] = self._io.pos()
57
+ self.compressed_data = self._io.read_bytes_full()
58
+ self._debug['compressed_data']['end'] = self._io.pos()
59
+
60
+ class Header(KaitaiStruct):
61
+ """Compressed resource data header,
62
+ as stored at the start of all compressed resources.
63
+ """
64
+ SEQ_FIELDS = ["common_part", "type_specific_part_raw_with_io"]
65
+ def __init__(self, _io, _parent=None, _root=None):
66
+ self._io = _io
67
+ self._parent = _parent
68
+ self._root = _root if _root else self
69
+ self._debug = collections.defaultdict(dict)
70
+
71
+ def _read(self):
72
+ self._debug['common_part']['start'] = self._io.pos()
73
+ self.common_part = CompressedResource.Header.CommonPart(self._io, self, self._root)
74
+ self.common_part._read()
75
+ self._debug['common_part']['end'] = self._io.pos()
76
+ self._debug['type_specific_part_raw_with_io']['start'] = self._io.pos()
77
+ self._raw_type_specific_part_raw_with_io = self._io.read_bytes((self.common_part.len_header - 12))
78
+ _io__raw_type_specific_part_raw_with_io = KaitaiStream(BytesIO(self._raw_type_specific_part_raw_with_io))
79
+ self.type_specific_part_raw_with_io = bytes_with_io.BytesWithIo(_io__raw_type_specific_part_raw_with_io)
80
+ self.type_specific_part_raw_with_io._read()
81
+ self._debug['type_specific_part_raw_with_io']['end'] = self._io.pos()
82
+
83
+ class CommonPart(KaitaiStruct):
84
+ """The common part of a compressed resource data header.
85
+ The format of this part is the same for all compressed resources.
86
+ """
87
+ SEQ_FIELDS = ["magic", "len_header", "header_type", "unknown", "len_decompressed"]
88
+ def __init__(self, _io, _parent=None, _root=None):
89
+ self._io = _io
90
+ self._parent = _parent
91
+ self._root = _root if _root else self
92
+ self._debug = collections.defaultdict(dict)
93
+
94
+ def _read(self):
95
+ self._debug['magic']['start'] = self._io.pos()
96
+ self.magic = self._io.read_bytes(4)
97
+ self._debug['magic']['end'] = self._io.pos()
98
+ if not self.magic == b"\xA8\x9F\x65\x72":
99
+ raise kaitaistruct.ValidationNotEqualError(b"\xA8\x9F\x65\x72", self.magic, self._io, u"/types/header/types/common_part/seq/0")
100
+ self._debug['len_header']['start'] = self._io.pos()
101
+ self.len_header = self._io.read_u2be()
102
+ self._debug['len_header']['end'] = self._io.pos()
103
+ if not self.len_header == 18:
104
+ raise kaitaistruct.ValidationNotEqualError(18, self.len_header, self._io, u"/types/header/types/common_part/seq/1")
105
+ self._debug['header_type']['start'] = self._io.pos()
106
+ self.header_type = self._io.read_u1()
107
+ self._debug['header_type']['end'] = self._io.pos()
108
+ self._debug['unknown']['start'] = self._io.pos()
109
+ self.unknown = self._io.read_u1()
110
+ self._debug['unknown']['end'] = self._io.pos()
111
+ if not self.unknown == 1:
112
+ raise kaitaistruct.ValidationNotEqualError(1, self.unknown, self._io, u"/types/header/types/common_part/seq/3")
113
+ self._debug['len_decompressed']['start'] = self._io.pos()
114
+ self.len_decompressed = self._io.read_u4be()
115
+ self._debug['len_decompressed']['end'] = self._io.pos()
116
+
117
+
118
+ class TypeSpecificPartType8(KaitaiStruct):
119
+ """The type-specific part of a compressed resource header with header type `8`.
120
+ """
121
+ SEQ_FIELDS = ["working_buffer_fractional_size", "expansion_buffer_size", "decompressor_id", "reserved"]
122
+ def __init__(self, _io, _parent=None, _root=None):
123
+ self._io = _io
124
+ self._parent = _parent
125
+ self._root = _root if _root else self
126
+ self._debug = collections.defaultdict(dict)
127
+
128
+ def _read(self):
129
+ self._debug['working_buffer_fractional_size']['start'] = self._io.pos()
130
+ self.working_buffer_fractional_size = self._io.read_u1()
131
+ self._debug['working_buffer_fractional_size']['end'] = self._io.pos()
132
+ self._debug['expansion_buffer_size']['start'] = self._io.pos()
133
+ self.expansion_buffer_size = self._io.read_u1()
134
+ self._debug['expansion_buffer_size']['end'] = self._io.pos()
135
+ self._debug['decompressor_id']['start'] = self._io.pos()
136
+ self.decompressor_id = self._io.read_s2be()
137
+ self._debug['decompressor_id']['end'] = self._io.pos()
138
+ self._debug['reserved']['start'] = self._io.pos()
139
+ self.reserved = self._io.read_u2be()
140
+ self._debug['reserved']['end'] = self._io.pos()
141
+ if not self.reserved == 0:
142
+ raise kaitaistruct.ValidationNotEqualError(0, self.reserved, self._io, u"/types/header/types/type_specific_part_type_8/seq/3")
143
+
144
+
145
+ class TypeSpecificPartType9(KaitaiStruct):
146
+ """The type-specific part of a compressed resource header with header type `9`.
147
+ """
148
+ SEQ_FIELDS = ["decompressor_id", "decompressor_specific_parameters_with_io"]
149
+ def __init__(self, _io, _parent=None, _root=None):
150
+ self._io = _io
151
+ self._parent = _parent
152
+ self._root = _root if _root else self
153
+ self._debug = collections.defaultdict(dict)
154
+
155
+ def _read(self):
156
+ self._debug['decompressor_id']['start'] = self._io.pos()
157
+ self.decompressor_id = self._io.read_s2be()
158
+ self._debug['decompressor_id']['end'] = self._io.pos()
159
+ self._debug['decompressor_specific_parameters_with_io']['start'] = self._io.pos()
160
+ self._raw_decompressor_specific_parameters_with_io = self._io.read_bytes(4)
161
+ _io__raw_decompressor_specific_parameters_with_io = KaitaiStream(BytesIO(self._raw_decompressor_specific_parameters_with_io))
162
+ self.decompressor_specific_parameters_with_io = bytes_with_io.BytesWithIo(_io__raw_decompressor_specific_parameters_with_io)
163
+ self.decompressor_specific_parameters_with_io._read()
164
+ self._debug['decompressor_specific_parameters_with_io']['end'] = self._io.pos()
165
+
166
+ @property
167
+ def decompressor_specific_parameters(self):
168
+ """Decompressor-specific parameters.
169
+ The exact structure and meaning of this field is different for each decompressor.
170
+
171
+ This field always has the same length,
172
+ but decompressors don't always use the entirety of the field,
173
+ so depending on the decompressor some parts of this field may be meaningless.
174
+ """
175
+ if hasattr(self, '_m_decompressor_specific_parameters'):
176
+ return self._m_decompressor_specific_parameters if hasattr(self, '_m_decompressor_specific_parameters') else None
177
+
178
+ self._m_decompressor_specific_parameters = self.decompressor_specific_parameters_with_io.data
179
+ return self._m_decompressor_specific_parameters if hasattr(self, '_m_decompressor_specific_parameters') else None
180
+
181
+
182
+ @property
183
+ def type_specific_part_raw(self):
184
+ """The type-specific part of the header,
185
+ as a raw byte array.
186
+ """
187
+ if hasattr(self, '_m_type_specific_part_raw'):
188
+ return self._m_type_specific_part_raw if hasattr(self, '_m_type_specific_part_raw') else None
189
+
190
+ self._m_type_specific_part_raw = self.type_specific_part_raw_with_io.data
191
+ return self._m_type_specific_part_raw if hasattr(self, '_m_type_specific_part_raw') else None
192
+
193
+ @property
194
+ def type_specific_part(self):
195
+ """The type-specific part of the header,
196
+ parsed according to the type from the common part.
197
+ """
198
+ if hasattr(self, '_m_type_specific_part'):
199
+ return self._m_type_specific_part if hasattr(self, '_m_type_specific_part') else None
200
+
201
+ io = self.type_specific_part_raw_with_io._io
202
+ _pos = io.pos()
203
+ io.seek(0)
204
+ self._debug['_m_type_specific_part']['start'] = io.pos()
205
+ _on = self.common_part.header_type
206
+ if _on == 8:
207
+ self._m_type_specific_part = CompressedResource.Header.TypeSpecificPartType8(io, self, self._root)
208
+ self._m_type_specific_part._read()
209
+ elif _on == 9:
210
+ self._m_type_specific_part = CompressedResource.Header.TypeSpecificPartType9(io, self, self._root)
211
+ self._m_type_specific_part._read()
212
+ self._debug['_m_type_specific_part']['end'] = io.pos()
213
+ io.seek(_pos)
214
+ return self._m_type_specific_part if hasattr(self, '_m_type_specific_part') else None
215
+
216
+
217
+