{"success":true,"data":{"ext":"fh40","name":"FH40","description":"FH40 is a legacy vector graphics file format associated with FreeHand 4, originally developed by Altsys and later maintained by Macromedia and Adobe after its acquisition. It was used for creating illustrations, page layouts, logos, and other print-oriented artwork in desktop publishing and design workflows. The format is generally safe, but it is obsolete and may require older software or conversion tools for reliable access in modern systems.","mime":["image/x-freehand"],"risk_level":"Safe","signatures":[{"hex":"41 47 44 32","offset":0,"sources":[{"name":"Apache Tika","url":"https://raw.githubusercontent.com/apache/tika/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml"}]},{"hex":"41 47 44 33","offset":0,"sources":[{"name":"Apache Tika","url":"https://raw.githubusercontent.com/apache/tika/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml"}]},{"hex":"41 47 44 34","offset":0,"sources":[{"name":"Apache Tika","url":"https://raw.githubusercontent.com/apache/tika/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml"}]},{"hex":"46 72 65 65 48 61 6E 64 31 30","offset":0,"sources":[{"name":"Apache Tika","url":"https://raw.githubusercontent.com/apache/tika/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml"}]},{"hex":"46 72 65 65 48 61 6E 64 31 31","offset":0,"sources":[{"name":"Apache Tika","url":"https://raw.githubusercontent.com/apache/tika/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml"}]},{"hex":"46 72 65 65 48 61 6E 64 31 32","offset":0,"sources":[{"name":"Apache Tika","url":"https://raw.githubusercontent.com/apache/tika/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml"}]}],"related":["fh","fh10","fh11","fh12","fh4","fh5"],"usage":{"python":"def is_fh40(file_path: str) -> bool:\n    \"\"\"Check if file is a valid FH40 by magic bytes.\"\"\"\n    signature = bytes([0x41, 0x47, 0x44, 0x32])\n    with open(file_path, \"rb\") as f:\n        return f.read(4) == signature","node":"function isFH40(buffer: Buffer): boolean {\n  const signature = Buffer.from([0x41, 0x47, 0x44, 0x32]);\n  return buffer.subarray(0, 4).equals(signature);\n}","go":"func IsFH40(data []byte) bool {\n    signature := []byte{0x41, 0x47, 0x44, 0x32}\n    if len(data) < 4 {\n        return false\n    }\n    return bytes.Equal(data[:4], signature)\n}"},"category":"Images"}}