Subject Several questions about Firebird ODS
Author vklimov45
Recently I did some database rescue, but after that decided to make simple IBSurgeonViewer like utility to view data structure (how data structured, where it defined and how to bind everything together). And I got several questions-problems (based on FB 2.5 sources):

1. dtype_varying defined in fields.h with length, including 2 bytes with length? From tests it seems exact data length 253 if there defined 255.
2. I got relations defs from relations.h for RDB$RELATIONS, but it fails to extract properly from ODS 11 table (it seems there additional 4 bytes something somewhere after first 3 blobs), but there is no ods11 defs (or at least I was unable to find, if exists - where?) in sources. Is there really additional field (where to search) or something different in ODS 11 with extraction?
3. Some tables (at least 1) in ods 10 DB have no nullbits mask, and another have this mask shifted at some point (first several fields have proper relation to mask and near and mask bits related to fields as [f_no - 1]). Isn't size of this mask exactly 4 bytes per every 32 fields? If not - is it somewhere stored?
4. I can't find in sources how to understand relation 8 (RDB$FORMATS) blobs by RDB$DESCRIPTOR data. How to decode those bytes? Is it related to some file in sources? Is this structure where rhd_format related?

Thanks.