1 module libxlsxd.xlsxwrap;
2 
3 
4         import core.stdc.config;
5         import core.stdc.stdarg: va_list;
6         static import core.simd;
7 
8         struct Int128 { long lower; long upper; }
9         struct UInt128 { ulong lower; ulong upper; }
10 
11         struct __locale_data { int dummy; }
12 
13 alias _Bool = bool;
14 struct dpp {
15     static struct Move(T) {
16         T* ptr;
17     }
18 
19     static auto move(T)(ref T value) {
20         return Move!T(&value);
21     }
22     mixin template EnumD(string name, T, string prefix) if(is(T == enum)) {
23         private static string _memberMixinStr(string member) {
24             import std.conv: text;
25             import std.array: replace;
26             return text(` `, member.replace(prefix, ""), ` = `, T.stringof, `.`, member, `,`);
27         }
28         private static string _enumMixinStr() {
29             import std.array: join;
30             string[] ret;
31             ret ~= "enum " ~ name ~ "{";
32             static foreach(member; __traits(allMembers, T)) {
33                 ret ~= _memberMixinStr(member);
34             }
35             ret ~= "}";
36             return ret.join("\n");
37         }
38         mixin(_enumMixinStr());
39     }
40 }
41 
42 extern(C)
43 {
44     int gzvprintf(gzFile, const(char)*, va_list) @nogc nothrow;
45     int deflateResetKeep(z_streamp) @nogc nothrow;
46     int inflateResetKeep(z_streamp) @nogc nothrow;
47     c_ulong inflateCodesUsed(z_streamp) @nogc nothrow;
48     int inflateValidate(z_streamp, int) @nogc nothrow;
49     int inflateUndermine(z_streamp, int) @nogc nothrow;
50     const(z_crc_t)* get_crc_table() @nogc nothrow;
51     int inflateSyncPoint(z_streamp) @nogc nothrow;
52     const(char)* zError(int) @nogc nothrow;
53     uLong crc32_combine(uLong, uLong, off_t) @nogc nothrow;
54     uLong adler32_combine(uLong, uLong, off_t) @nogc nothrow;
55     off_t gzoffset(gzFile) @nogc nothrow;
56     off_t gztell(gzFile) @nogc nothrow;
57     off_t gzseek(gzFile, off_t, int) @nogc nothrow;
58     gzFile gzopen(const(char)*, const(char)*) @nogc nothrow;
59     int gzgetc_(gzFile) @nogc nothrow;
60     int inflateBackInit_(z_streamp, int, ubyte*, const(char)*, int) @nogc nothrow;
61     int inflateInit2_(z_streamp, int, const(char)*, int) @nogc nothrow;
62     int deflateInit2_(z_streamp, int, int, int, int, int, const(char)*, int) @nogc nothrow;
63     int inflateInit_(z_streamp, const(char)*, int) @nogc nothrow;
64     int deflateInit_(z_streamp, int, const(char)*, int) @nogc nothrow;
65     uLong crc32_z(uLong, const(Bytef)*, z_size_t) @nogc nothrow;
66     uLong crc32(uLong, const(Bytef)*, uInt) @nogc nothrow;
67     uLong adler32_z(uLong, const(Bytef)*, z_size_t) @nogc nothrow;
68     uLong adler32(uLong, const(Bytef)*, uInt) @nogc nothrow;
69     void gzclearerr(gzFile) @nogc nothrow;
70     const(char)* gzerror(gzFile, int*) @nogc nothrow;
71     int gzclose_w(gzFile) @nogc nothrow;
72     int gzclose_r(gzFile) @nogc nothrow;
73     int gzclose(gzFile) @nogc nothrow;
74     int gzdirect(gzFile) @nogc nothrow;
75     int gzeof(gzFile) @nogc nothrow;
76     int gzrewind(gzFile) @nogc nothrow;
77     int gzflush(gzFile, int) @nogc nothrow;
78     int gzungetc(int, gzFile) @nogc nothrow;
79     pragma(mangle, "gzgetc") int gzgetc_(gzFile) @nogc nothrow;
80     int gzputc(gzFile, int) @nogc nothrow;
81     char* gzgets(gzFile, char*, int) @nogc nothrow;
82     int gzputs(gzFile, const(char)*) @nogc nothrow;
83     int gzprintf(gzFile, const(char)*, ...) @nogc nothrow;
84     z_size_t gzfwrite(voidpc, z_size_t, z_size_t, gzFile) @nogc nothrow;
85     int gzwrite(gzFile, voidpc, uint) @nogc nothrow;
86     z_size_t gzfread(voidp, z_size_t, z_size_t, gzFile) @nogc nothrow;
87     int gzread(gzFile, voidp, uint) @nogc nothrow;
88     int gzsetparams(gzFile, int, int) @nogc nothrow;
89     int gzbuffer(gzFile, uint) @nogc nothrow;
90     gzFile gzdopen(int, const(char)*) @nogc nothrow;
91     struct gzFile_s
92     {
93         uint have;
94         ubyte* next;
95         off_t pos;
96     }
97     alias gzFile = gzFile_s*;
98     int uncompress2(Bytef*, uLongf*, const(Bytef)*, uLong*) @nogc nothrow;
99     int uncompress(Bytef*, uLongf*, const(Bytef)*, uLong) @nogc nothrow;
100     uLong compressBound(uLong) @nogc nothrow;
101     int compress2(Bytef*, uLongf*, const(Bytef)*, uLong, int) @nogc nothrow;
102     int compress(Bytef*, uLongf*, const(Bytef)*, uLong) @nogc nothrow;
103     uLong zlibCompileFlags() @nogc nothrow;
104     int inflateBackEnd(z_streamp) @nogc nothrow;
105     int inflateBack(z_streamp, in_func, void*, out_func, void*) @nogc nothrow;
106     alias out_func = int function(void*, ubyte*, uint) @nogc nothrow;
107     alias in_func = uint function(void*, ubyte**) @nogc nothrow;
108     int inflateGetHeader(z_streamp, gz_headerp) @nogc nothrow;
109     c_long inflateMark(z_streamp) @nogc nothrow;
110     int inflatePrime(z_streamp, int, int) @nogc nothrow;
111     int inflateReset2(z_streamp, int) @nogc nothrow;
112     int inflateReset(z_streamp) @nogc nothrow;
113     int inflateCopy(z_streamp, z_streamp) @nogc nothrow;
114     int inflateSync(z_streamp) @nogc nothrow;
115     int inflateGetDictionary(z_streamp, Bytef*, uInt*) @nogc nothrow;
116     int inflateSetDictionary(z_streamp, const(Bytef)*, uInt) @nogc nothrow;
117     int deflateSetHeader(z_streamp, gz_headerp) @nogc nothrow;
118     int deflatePrime(z_streamp, int, int) @nogc nothrow;
119     int deflatePending(z_streamp, uint*, int*) @nogc nothrow;
120     uLong deflateBound(z_streamp, uLong) @nogc nothrow;
121     int deflateTune(z_streamp, int, int, int, int) @nogc nothrow;
122     int deflateParams(z_streamp, int, int) @nogc nothrow;
123     int deflateReset(z_streamp) @nogc nothrow;
124     int deflateCopy(z_streamp, z_streamp) @nogc nothrow;
125     int deflateGetDictionary(z_streamp, Bytef*, uInt*) @nogc nothrow;
126     int deflateSetDictionary(z_streamp, const(Bytef)*, uInt) @nogc nothrow;
127     int inflateEnd(z_streamp) @nogc nothrow;
128     int inflate(z_streamp, int) @nogc nothrow;
129     int deflateEnd(z_streamp) @nogc nothrow;
130     int deflate(z_streamp, int) @nogc nothrow;
131     const(char)* zlibVersion() @nogc nothrow;
132     alias gz_headerp = gz_header_s*;
133     struct gz_header_s
134     {
135         int text;
136         uLong time;
137         int xflags;
138         int os;
139         Bytef* extra;
140         uInt extra_len;
141         uInt extra_max;
142         Bytef* name;
143         uInt name_max;
144         Bytef* comment;
145         uInt comm_max;
146         int hcrc;
147         int done;
148     }
149     alias gz_header = gz_header_s;
150     alias z_streamp = z_stream_s*;
151     struct lxw_heading_pair
152     {
153         char* key;
154         char* value;
155         static struct _Anonymous_0
156         {
157             lxw_heading_pair* stqe_next;
158         }
159         _Anonymous_0 list_pointers;
160     }
161     struct lxw_heading_pairs
162     {
163         lxw_heading_pair* stqh_first;
164         lxw_heading_pair** stqh_last;
165     }
166     struct lxw_part_name
167     {
168         char* name;
169         static struct _Anonymous_1
170         {
171             lxw_part_name* stqe_next;
172         }
173         _Anonymous_1 list_pointers;
174     }
175     struct lxw_part_names
176     {
177         lxw_part_name* stqh_first;
178         lxw_part_name** stqh_last;
179     }
180     struct lxw_app
181     {
182         FILE* file;
183         lxw_heading_pairs* heading_pairs;
184         lxw_part_names* part_names;
185         lxw_doc_properties* properties;
186         uint32_t num_heading_pairs;
187         uint32_t num_part_names;
188     }
189     lxw_app* lxw_app_new() @nogc nothrow;
190     void lxw_app_free(lxw_app*) @nogc nothrow;
191     void lxw_app_assemble_xml_file(lxw_app*) @nogc nothrow;
192     void lxw_app_add_part_name(lxw_app*, const(char)*) @nogc nothrow;
193     void lxw_app_add_heading_pair(lxw_app*, const(char)*, const(char)*) @nogc nothrow;
194     struct lxw_chart_series
195     {
196         lxw_series_range* categories;
197         lxw_series_range* values;
198         lxw_chart_title title;
199         lxw_chart_line* line;
200         lxw_chart_fill* fill;
201         lxw_chart_pattern* pattern;
202         lxw_chart_marker* marker;
203         lxw_chart_point* points;
204         uint16_t point_count;
205         uint8_t smooth;
206         uint8_t invert_if_negative;
207         uint8_t has_labels;
208         uint8_t show_labels_value;
209         uint8_t show_labels_category;
210         uint8_t show_labels_name;
211         uint8_t show_labels_leader;
212         uint8_t show_labels_legend;
213         uint8_t show_labels_percent;
214         uint8_t label_position;
215         uint8_t label_separator;
216         uint8_t default_label_position;
217         char* label_num_format;
218         lxw_chart_font* label_font;
219         lxw_series_error_bars* x_error_bars;
220         lxw_series_error_bars* y_error_bars;
221         uint8_t has_trendline;
222         uint8_t has_trendline_forecast;
223         uint8_t has_trendline_equation;
224         uint8_t has_trendline_r_squared;
225         uint8_t has_trendline_intercept;
226         uint8_t trendline_type;
227         uint8_t trendline_value;
228         double trendline_forward;
229         double trendline_backward;
230         uint8_t trendline_value_type;
231         char* trendline_name;
232         lxw_chart_line* trendline_line;
233         double trendline_intercept;
234         static struct _Anonymous_2
235         {
236             lxw_chart_series* stqe_next;
237         }
238         _Anonymous_2 list_pointers;
239     }
240     struct lxw_chart_series_list
241     {
242         lxw_chart_series* stqh_first;
243         lxw_chart_series** stqh_last;
244     }
245     struct lxw_series_data_points
246     {
247         lxw_series_data_point* stqh_first;
248         lxw_series_data_point** stqh_last;
249     }
250     struct lxw_series_data_point
251     {
252         uint8_t is_string;
253         double number;
254         char* string;
255         uint8_t no_data;
256         static struct _Anonymous_3
257         {
258             lxw_series_data_point* stqe_next;
259         }
260         _Anonymous_3 list_pointers;
261     }
262     struct z_stream_s
263     {
264         Bytef* next_in;
265         uInt avail_in;
266         uLong total_in;
267         Bytef* next_out;
268         uInt avail_out;
269         uLong total_out;
270         char* msg;
271         internal_state* state;
272         alloc_func zalloc;
273         free_func zfree;
274         voidpf opaque;
275         int data_type;
276         uLong adler;
277         uLong reserved;
278     }
279     alias z_stream = z_stream_s;
280     enum lxw_chart_type
281     {
282         LXW_CHART_NONE = 0,
283         LXW_CHART_AREA = 1,
284         LXW_CHART_AREA_STACKED = 2,
285         LXW_CHART_AREA_STACKED_PERCENT = 3,
286         LXW_CHART_BAR = 4,
287         LXW_CHART_BAR_STACKED = 5,
288         LXW_CHART_BAR_STACKED_PERCENT = 6,
289         LXW_CHART_COLUMN = 7,
290         LXW_CHART_COLUMN_STACKED = 8,
291         LXW_CHART_COLUMN_STACKED_PERCENT = 9,
292         LXW_CHART_DOUGHNUT = 10,
293         LXW_CHART_LINE = 11,
294         LXW_CHART_PIE = 12,
295         LXW_CHART_SCATTER = 13,
296         LXW_CHART_SCATTER_STRAIGHT = 14,
297         LXW_CHART_SCATTER_STRAIGHT_WITH_MARKERS = 15,
298         LXW_CHART_SCATTER_SMOOTH = 16,
299         LXW_CHART_SCATTER_SMOOTH_WITH_MARKERS = 17,
300         LXW_CHART_RADAR = 18,
301         LXW_CHART_RADAR_WITH_MARKERS = 19,
302         LXW_CHART_RADAR_FILLED = 20,
303     }
304     enum LXW_CHART_NONE = lxw_chart_type.LXW_CHART_NONE;
305     enum LXW_CHART_AREA = lxw_chart_type.LXW_CHART_AREA;
306     enum LXW_CHART_AREA_STACKED = lxw_chart_type.LXW_CHART_AREA_STACKED;
307     enum LXW_CHART_AREA_STACKED_PERCENT = lxw_chart_type.LXW_CHART_AREA_STACKED_PERCENT;
308     enum LXW_CHART_BAR = lxw_chart_type.LXW_CHART_BAR;
309     enum LXW_CHART_BAR_STACKED = lxw_chart_type.LXW_CHART_BAR_STACKED;
310     enum LXW_CHART_BAR_STACKED_PERCENT = lxw_chart_type.LXW_CHART_BAR_STACKED_PERCENT;
311     enum LXW_CHART_COLUMN = lxw_chart_type.LXW_CHART_COLUMN;
312     enum LXW_CHART_COLUMN_STACKED = lxw_chart_type.LXW_CHART_COLUMN_STACKED;
313     enum LXW_CHART_COLUMN_STACKED_PERCENT = lxw_chart_type.LXW_CHART_COLUMN_STACKED_PERCENT;
314     enum LXW_CHART_DOUGHNUT = lxw_chart_type.LXW_CHART_DOUGHNUT;
315     enum LXW_CHART_LINE = lxw_chart_type.LXW_CHART_LINE;
316     enum LXW_CHART_PIE = lxw_chart_type.LXW_CHART_PIE;
317     enum LXW_CHART_SCATTER = lxw_chart_type.LXW_CHART_SCATTER;
318     enum LXW_CHART_SCATTER_STRAIGHT = lxw_chart_type.LXW_CHART_SCATTER_STRAIGHT;
319     enum LXW_CHART_SCATTER_STRAIGHT_WITH_MARKERS = lxw_chart_type.LXW_CHART_SCATTER_STRAIGHT_WITH_MARKERS;
320     enum LXW_CHART_SCATTER_SMOOTH = lxw_chart_type.LXW_CHART_SCATTER_SMOOTH;
321     enum LXW_CHART_SCATTER_SMOOTH_WITH_MARKERS = lxw_chart_type.LXW_CHART_SCATTER_SMOOTH_WITH_MARKERS;
322     enum LXW_CHART_RADAR = lxw_chart_type.LXW_CHART_RADAR;
323     enum LXW_CHART_RADAR_WITH_MARKERS = lxw_chart_type.LXW_CHART_RADAR_WITH_MARKERS;
324     enum LXW_CHART_RADAR_FILLED = lxw_chart_type.LXW_CHART_RADAR_FILLED;
325     enum lxw_chart_legend_position
326     {
327         LXW_CHART_LEGEND_NONE = 0,
328         LXW_CHART_LEGEND_RIGHT = 1,
329         LXW_CHART_LEGEND_LEFT = 2,
330         LXW_CHART_LEGEND_TOP = 3,
331         LXW_CHART_LEGEND_BOTTOM = 4,
332         LXW_CHART_LEGEND_TOP_RIGHT = 5,
333         LXW_CHART_LEGEND_OVERLAY_RIGHT = 6,
334         LXW_CHART_LEGEND_OVERLAY_LEFT = 7,
335         LXW_CHART_LEGEND_OVERLAY_TOP_RIGHT = 8,
336     }
337     enum LXW_CHART_LEGEND_NONE = lxw_chart_legend_position.LXW_CHART_LEGEND_NONE;
338     enum LXW_CHART_LEGEND_RIGHT = lxw_chart_legend_position.LXW_CHART_LEGEND_RIGHT;
339     enum LXW_CHART_LEGEND_LEFT = lxw_chart_legend_position.LXW_CHART_LEGEND_LEFT;
340     enum LXW_CHART_LEGEND_TOP = lxw_chart_legend_position.LXW_CHART_LEGEND_TOP;
341     enum LXW_CHART_LEGEND_BOTTOM = lxw_chart_legend_position.LXW_CHART_LEGEND_BOTTOM;
342     enum LXW_CHART_LEGEND_TOP_RIGHT = lxw_chart_legend_position.LXW_CHART_LEGEND_TOP_RIGHT;
343     enum LXW_CHART_LEGEND_OVERLAY_RIGHT = lxw_chart_legend_position.LXW_CHART_LEGEND_OVERLAY_RIGHT;
344     enum LXW_CHART_LEGEND_OVERLAY_LEFT = lxw_chart_legend_position.LXW_CHART_LEGEND_OVERLAY_LEFT;
345     enum LXW_CHART_LEGEND_OVERLAY_TOP_RIGHT = lxw_chart_legend_position.LXW_CHART_LEGEND_OVERLAY_TOP_RIGHT;
346     enum lxw_chart_line_dash_type
347     {
348         LXW_CHART_LINE_DASH_SOLID = 0,
349         LXW_CHART_LINE_DASH_ROUND_DOT = 1,
350         LXW_CHART_LINE_DASH_SQUARE_DOT = 2,
351         LXW_CHART_LINE_DASH_DASH = 3,
352         LXW_CHART_LINE_DASH_DASH_DOT = 4,
353         LXW_CHART_LINE_DASH_LONG_DASH = 5,
354         LXW_CHART_LINE_DASH_LONG_DASH_DOT = 6,
355         LXW_CHART_LINE_DASH_LONG_DASH_DOT_DOT = 7,
356         LXW_CHART_LINE_DASH_DOT = 8,
357         LXW_CHART_LINE_DASH_SYSTEM_DASH_DOT = 9,
358         LXW_CHART_LINE_DASH_SYSTEM_DASH_DOT_DOT = 10,
359     }
360     enum LXW_CHART_LINE_DASH_SOLID = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_SOLID;
361     enum LXW_CHART_LINE_DASH_ROUND_DOT = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_ROUND_DOT;
362     enum LXW_CHART_LINE_DASH_SQUARE_DOT = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_SQUARE_DOT;
363     enum LXW_CHART_LINE_DASH_DASH = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_DASH;
364     enum LXW_CHART_LINE_DASH_DASH_DOT = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_DASH_DOT;
365     enum LXW_CHART_LINE_DASH_LONG_DASH = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_LONG_DASH;
366     enum LXW_CHART_LINE_DASH_LONG_DASH_DOT = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_LONG_DASH_DOT;
367     enum LXW_CHART_LINE_DASH_LONG_DASH_DOT_DOT = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_LONG_DASH_DOT_DOT;
368     enum LXW_CHART_LINE_DASH_DOT = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_DOT;
369     enum LXW_CHART_LINE_DASH_SYSTEM_DASH_DOT = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_SYSTEM_DASH_DOT;
370     enum LXW_CHART_LINE_DASH_SYSTEM_DASH_DOT_DOT = lxw_chart_line_dash_type.LXW_CHART_LINE_DASH_SYSTEM_DASH_DOT_DOT;
371     enum lxw_chart_marker_type
372     {
373         LXW_CHART_MARKER_AUTOMATIC = 0,
374         LXW_CHART_MARKER_NONE = 1,
375         LXW_CHART_MARKER_SQUARE = 2,
376         LXW_CHART_MARKER_DIAMOND = 3,
377         LXW_CHART_MARKER_TRIANGLE = 4,
378         LXW_CHART_MARKER_X = 5,
379         LXW_CHART_MARKER_STAR = 6,
380         LXW_CHART_MARKER_SHORT_DASH = 7,
381         LXW_CHART_MARKER_LONG_DASH = 8,
382         LXW_CHART_MARKER_CIRCLE = 9,
383         LXW_CHART_MARKER_PLUS = 10,
384     }
385     enum LXW_CHART_MARKER_AUTOMATIC = lxw_chart_marker_type.LXW_CHART_MARKER_AUTOMATIC;
386     enum LXW_CHART_MARKER_NONE = lxw_chart_marker_type.LXW_CHART_MARKER_NONE;
387     enum LXW_CHART_MARKER_SQUARE = lxw_chart_marker_type.LXW_CHART_MARKER_SQUARE;
388     enum LXW_CHART_MARKER_DIAMOND = lxw_chart_marker_type.LXW_CHART_MARKER_DIAMOND;
389     enum LXW_CHART_MARKER_TRIANGLE = lxw_chart_marker_type.LXW_CHART_MARKER_TRIANGLE;
390     enum LXW_CHART_MARKER_X = lxw_chart_marker_type.LXW_CHART_MARKER_X;
391     enum LXW_CHART_MARKER_STAR = lxw_chart_marker_type.LXW_CHART_MARKER_STAR;
392     enum LXW_CHART_MARKER_SHORT_DASH = lxw_chart_marker_type.LXW_CHART_MARKER_SHORT_DASH;
393     enum LXW_CHART_MARKER_LONG_DASH = lxw_chart_marker_type.LXW_CHART_MARKER_LONG_DASH;
394     enum LXW_CHART_MARKER_CIRCLE = lxw_chart_marker_type.LXW_CHART_MARKER_CIRCLE;
395     enum LXW_CHART_MARKER_PLUS = lxw_chart_marker_type.LXW_CHART_MARKER_PLUS;
396     enum lxw_chart_pattern_type
397     {
398         LXW_CHART_PATTERN_NONE = 0,
399         LXW_CHART_PATTERN_PERCENT_5 = 1,
400         LXW_CHART_PATTERN_PERCENT_10 = 2,
401         LXW_CHART_PATTERN_PERCENT_20 = 3,
402         LXW_CHART_PATTERN_PERCENT_25 = 4,
403         LXW_CHART_PATTERN_PERCENT_30 = 5,
404         LXW_CHART_PATTERN_PERCENT_40 = 6,
405         LXW_CHART_PATTERN_PERCENT_50 = 7,
406         LXW_CHART_PATTERN_PERCENT_60 = 8,
407         LXW_CHART_PATTERN_PERCENT_70 = 9,
408         LXW_CHART_PATTERN_PERCENT_75 = 10,
409         LXW_CHART_PATTERN_PERCENT_80 = 11,
410         LXW_CHART_PATTERN_PERCENT_90 = 12,
411         LXW_CHART_PATTERN_LIGHT_DOWNWARD_DIAGONAL = 13,
412         LXW_CHART_PATTERN_LIGHT_UPWARD_DIAGONAL = 14,
413         LXW_CHART_PATTERN_DARK_DOWNWARD_DIAGONAL = 15,
414         LXW_CHART_PATTERN_DARK_UPWARD_DIAGONAL = 16,
415         LXW_CHART_PATTERN_WIDE_DOWNWARD_DIAGONAL = 17,
416         LXW_CHART_PATTERN_WIDE_UPWARD_DIAGONAL = 18,
417         LXW_CHART_PATTERN_LIGHT_VERTICAL = 19,
418         LXW_CHART_PATTERN_LIGHT_HORIZONTAL = 20,
419         LXW_CHART_PATTERN_NARROW_VERTICAL = 21,
420         LXW_CHART_PATTERN_NARROW_HORIZONTAL = 22,
421         LXW_CHART_PATTERN_DARK_VERTICAL = 23,
422         LXW_CHART_PATTERN_DARK_HORIZONTAL = 24,
423         LXW_CHART_PATTERN_DASHED_DOWNWARD_DIAGONAL = 25,
424         LXW_CHART_PATTERN_DASHED_UPWARD_DIAGONAL = 26,
425         LXW_CHART_PATTERN_DASHED_HORIZONTAL = 27,
426         LXW_CHART_PATTERN_DASHED_VERTICAL = 28,
427         LXW_CHART_PATTERN_SMALL_CONFETTI = 29,
428         LXW_CHART_PATTERN_LARGE_CONFETTI = 30,
429         LXW_CHART_PATTERN_ZIGZAG = 31,
430         LXW_CHART_PATTERN_WAVE = 32,
431         LXW_CHART_PATTERN_DIAGONAL_BRICK = 33,
432         LXW_CHART_PATTERN_HORIZONTAL_BRICK = 34,
433         LXW_CHART_PATTERN_WEAVE = 35,
434         LXW_CHART_PATTERN_PLAID = 36,
435         LXW_CHART_PATTERN_DIVOT = 37,
436         LXW_CHART_PATTERN_DOTTED_GRID = 38,
437         LXW_CHART_PATTERN_DOTTED_DIAMOND = 39,
438         LXW_CHART_PATTERN_SHINGLE = 40,
439         LXW_CHART_PATTERN_TRELLIS = 41,
440         LXW_CHART_PATTERN_SPHERE = 42,
441         LXW_CHART_PATTERN_SMALL_GRID = 43,
442         LXW_CHART_PATTERN_LARGE_GRID = 44,
443         LXW_CHART_PATTERN_SMALL_CHECK = 45,
444         LXW_CHART_PATTERN_LARGE_CHECK = 46,
445         LXW_CHART_PATTERN_OUTLINED_DIAMOND = 47,
446         LXW_CHART_PATTERN_SOLID_DIAMOND = 48,
447     }
448     enum LXW_CHART_PATTERN_NONE = lxw_chart_pattern_type.LXW_CHART_PATTERN_NONE;
449     enum LXW_CHART_PATTERN_PERCENT_5 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_5;
450     enum LXW_CHART_PATTERN_PERCENT_10 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_10;
451     enum LXW_CHART_PATTERN_PERCENT_20 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_20;
452     enum LXW_CHART_PATTERN_PERCENT_25 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_25;
453     enum LXW_CHART_PATTERN_PERCENT_30 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_30;
454     enum LXW_CHART_PATTERN_PERCENT_40 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_40;
455     enum LXW_CHART_PATTERN_PERCENT_50 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_50;
456     enum LXW_CHART_PATTERN_PERCENT_60 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_60;
457     enum LXW_CHART_PATTERN_PERCENT_70 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_70;
458     enum LXW_CHART_PATTERN_PERCENT_75 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_75;
459     enum LXW_CHART_PATTERN_PERCENT_80 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_80;
460     enum LXW_CHART_PATTERN_PERCENT_90 = lxw_chart_pattern_type.LXW_CHART_PATTERN_PERCENT_90;
461     enum LXW_CHART_PATTERN_LIGHT_DOWNWARD_DIAGONAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_LIGHT_DOWNWARD_DIAGONAL;
462     enum LXW_CHART_PATTERN_LIGHT_UPWARD_DIAGONAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_LIGHT_UPWARD_DIAGONAL;
463     enum LXW_CHART_PATTERN_DARK_DOWNWARD_DIAGONAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_DARK_DOWNWARD_DIAGONAL;
464     enum LXW_CHART_PATTERN_DARK_UPWARD_DIAGONAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_DARK_UPWARD_DIAGONAL;
465     enum LXW_CHART_PATTERN_WIDE_DOWNWARD_DIAGONAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_WIDE_DOWNWARD_DIAGONAL;
466     enum LXW_CHART_PATTERN_WIDE_UPWARD_DIAGONAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_WIDE_UPWARD_DIAGONAL;
467     enum LXW_CHART_PATTERN_LIGHT_VERTICAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_LIGHT_VERTICAL;
468     enum LXW_CHART_PATTERN_LIGHT_HORIZONTAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_LIGHT_HORIZONTAL;
469     enum LXW_CHART_PATTERN_NARROW_VERTICAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_NARROW_VERTICAL;
470     enum LXW_CHART_PATTERN_NARROW_HORIZONTAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_NARROW_HORIZONTAL;
471     enum LXW_CHART_PATTERN_DARK_VERTICAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_DARK_VERTICAL;
472     enum LXW_CHART_PATTERN_DARK_HORIZONTAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_DARK_HORIZONTAL;
473     enum LXW_CHART_PATTERN_DASHED_DOWNWARD_DIAGONAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_DASHED_DOWNWARD_DIAGONAL;
474     enum LXW_CHART_PATTERN_DASHED_UPWARD_DIAGONAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_DASHED_UPWARD_DIAGONAL;
475     enum LXW_CHART_PATTERN_DASHED_HORIZONTAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_DASHED_HORIZONTAL;
476     enum LXW_CHART_PATTERN_DASHED_VERTICAL = lxw_chart_pattern_type.LXW_CHART_PATTERN_DASHED_VERTICAL;
477     enum LXW_CHART_PATTERN_SMALL_CONFETTI = lxw_chart_pattern_type.LXW_CHART_PATTERN_SMALL_CONFETTI;
478     enum LXW_CHART_PATTERN_LARGE_CONFETTI = lxw_chart_pattern_type.LXW_CHART_PATTERN_LARGE_CONFETTI;
479     enum LXW_CHART_PATTERN_ZIGZAG = lxw_chart_pattern_type.LXW_CHART_PATTERN_ZIGZAG;
480     enum LXW_CHART_PATTERN_WAVE = lxw_chart_pattern_type.LXW_CHART_PATTERN_WAVE;
481     enum LXW_CHART_PATTERN_DIAGONAL_BRICK = lxw_chart_pattern_type.LXW_CHART_PATTERN_DIAGONAL_BRICK;
482     enum LXW_CHART_PATTERN_HORIZONTAL_BRICK = lxw_chart_pattern_type.LXW_CHART_PATTERN_HORIZONTAL_BRICK;
483     enum LXW_CHART_PATTERN_WEAVE = lxw_chart_pattern_type.LXW_CHART_PATTERN_WEAVE;
484     enum LXW_CHART_PATTERN_PLAID = lxw_chart_pattern_type.LXW_CHART_PATTERN_PLAID;
485     enum LXW_CHART_PATTERN_DIVOT = lxw_chart_pattern_type.LXW_CHART_PATTERN_DIVOT;
486     enum LXW_CHART_PATTERN_DOTTED_GRID = lxw_chart_pattern_type.LXW_CHART_PATTERN_DOTTED_GRID;
487     enum LXW_CHART_PATTERN_DOTTED_DIAMOND = lxw_chart_pattern_type.LXW_CHART_PATTERN_DOTTED_DIAMOND;
488     enum LXW_CHART_PATTERN_SHINGLE = lxw_chart_pattern_type.LXW_CHART_PATTERN_SHINGLE;
489     enum LXW_CHART_PATTERN_TRELLIS = lxw_chart_pattern_type.LXW_CHART_PATTERN_TRELLIS;
490     enum LXW_CHART_PATTERN_SPHERE = lxw_chart_pattern_type.LXW_CHART_PATTERN_SPHERE;
491     enum LXW_CHART_PATTERN_SMALL_GRID = lxw_chart_pattern_type.LXW_CHART_PATTERN_SMALL_GRID;
492     enum LXW_CHART_PATTERN_LARGE_GRID = lxw_chart_pattern_type.LXW_CHART_PATTERN_LARGE_GRID;
493     enum LXW_CHART_PATTERN_SMALL_CHECK = lxw_chart_pattern_type.LXW_CHART_PATTERN_SMALL_CHECK;
494     enum LXW_CHART_PATTERN_LARGE_CHECK = lxw_chart_pattern_type.LXW_CHART_PATTERN_LARGE_CHECK;
495     enum LXW_CHART_PATTERN_OUTLINED_DIAMOND = lxw_chart_pattern_type.LXW_CHART_PATTERN_OUTLINED_DIAMOND;
496     enum LXW_CHART_PATTERN_SOLID_DIAMOND = lxw_chart_pattern_type.LXW_CHART_PATTERN_SOLID_DIAMOND;
497     enum lxw_chart_label_position
498     {
499         LXW_CHART_LABEL_POSITION_DEFAULT = 0,
500         LXW_CHART_LABEL_POSITION_CENTER = 1,
501         LXW_CHART_LABEL_POSITION_RIGHT = 2,
502         LXW_CHART_LABEL_POSITION_LEFT = 3,
503         LXW_CHART_LABEL_POSITION_ABOVE = 4,
504         LXW_CHART_LABEL_POSITION_BELOW = 5,
505         LXW_CHART_LABEL_POSITION_INSIDE_BASE = 6,
506         LXW_CHART_LABEL_POSITION_INSIDE_END = 7,
507         LXW_CHART_LABEL_POSITION_OUTSIDE_END = 8,
508         LXW_CHART_LABEL_POSITION_BEST_FIT = 9,
509     }
510     enum LXW_CHART_LABEL_POSITION_DEFAULT = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_DEFAULT;
511     enum LXW_CHART_LABEL_POSITION_CENTER = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_CENTER;
512     enum LXW_CHART_LABEL_POSITION_RIGHT = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_RIGHT;
513     enum LXW_CHART_LABEL_POSITION_LEFT = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_LEFT;
514     enum LXW_CHART_LABEL_POSITION_ABOVE = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_ABOVE;
515     enum LXW_CHART_LABEL_POSITION_BELOW = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_BELOW;
516     enum LXW_CHART_LABEL_POSITION_INSIDE_BASE = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_INSIDE_BASE;
517     enum LXW_CHART_LABEL_POSITION_INSIDE_END = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_INSIDE_END;
518     enum LXW_CHART_LABEL_POSITION_OUTSIDE_END = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_OUTSIDE_END;
519     enum LXW_CHART_LABEL_POSITION_BEST_FIT = lxw_chart_label_position.LXW_CHART_LABEL_POSITION_BEST_FIT;
520     enum lxw_chart_label_separator
521     {
522         LXW_CHART_LABEL_SEPARATOR_COMMA = 0,
523         LXW_CHART_LABEL_SEPARATOR_SEMICOLON = 1,
524         LXW_CHART_LABEL_SEPARATOR_PERIOD = 2,
525         LXW_CHART_LABEL_SEPARATOR_NEWLINE = 3,
526         LXW_CHART_LABEL_SEPARATOR_SPACE = 4,
527     }
528     enum LXW_CHART_LABEL_SEPARATOR_COMMA = lxw_chart_label_separator.LXW_CHART_LABEL_SEPARATOR_COMMA;
529     enum LXW_CHART_LABEL_SEPARATOR_SEMICOLON = lxw_chart_label_separator.LXW_CHART_LABEL_SEPARATOR_SEMICOLON;
530     enum LXW_CHART_LABEL_SEPARATOR_PERIOD = lxw_chart_label_separator.LXW_CHART_LABEL_SEPARATOR_PERIOD;
531     enum LXW_CHART_LABEL_SEPARATOR_NEWLINE = lxw_chart_label_separator.LXW_CHART_LABEL_SEPARATOR_NEWLINE;
532     enum LXW_CHART_LABEL_SEPARATOR_SPACE = lxw_chart_label_separator.LXW_CHART_LABEL_SEPARATOR_SPACE;
533     enum lxw_chart_axis_type
534     {
535         LXW_CHART_AXIS_TYPE_X = 0,
536         LXW_CHART_AXIS_TYPE_Y = 1,
537     }
538     enum LXW_CHART_AXIS_TYPE_X = lxw_chart_axis_type.LXW_CHART_AXIS_TYPE_X;
539     enum LXW_CHART_AXIS_TYPE_Y = lxw_chart_axis_type.LXW_CHART_AXIS_TYPE_Y;
540     enum lxw_chart_subtype
541     {
542         LXW_CHART_SUBTYPE_NONE = 0,
543         LXW_CHART_SUBTYPE_STACKED = 1,
544         LXW_CHART_SUBTYPE_STACKED_PERCENT = 2,
545     }
546     enum LXW_CHART_SUBTYPE_NONE = lxw_chart_subtype.LXW_CHART_SUBTYPE_NONE;
547     enum LXW_CHART_SUBTYPE_STACKED = lxw_chart_subtype.LXW_CHART_SUBTYPE_STACKED;
548     enum LXW_CHART_SUBTYPE_STACKED_PERCENT = lxw_chart_subtype.LXW_CHART_SUBTYPE_STACKED_PERCENT;
549     enum lxw_chart_grouping
550     {
551         LXW_GROUPING_CLUSTERED = 0,
552         LXW_GROUPING_STANDARD = 1,
553         LXW_GROUPING_PERCENTSTACKED = 2,
554         LXW_GROUPING_STACKED = 3,
555     }
556     enum LXW_GROUPING_CLUSTERED = lxw_chart_grouping.LXW_GROUPING_CLUSTERED;
557     enum LXW_GROUPING_STANDARD = lxw_chart_grouping.LXW_GROUPING_STANDARD;
558     enum LXW_GROUPING_PERCENTSTACKED = lxw_chart_grouping.LXW_GROUPING_PERCENTSTACKED;
559     enum LXW_GROUPING_STACKED = lxw_chart_grouping.LXW_GROUPING_STACKED;
560     enum lxw_chart_axis_tick_position
561     {
562         LXW_CHART_AXIS_POSITION_DEFAULT = 0,
563         LXW_CHART_AXIS_POSITION_ON_TICK = 1,
564         LXW_CHART_AXIS_POSITION_BETWEEN = 2,
565     }
566     enum LXW_CHART_AXIS_POSITION_DEFAULT = lxw_chart_axis_tick_position.LXW_CHART_AXIS_POSITION_DEFAULT;
567     enum LXW_CHART_AXIS_POSITION_ON_TICK = lxw_chart_axis_tick_position.LXW_CHART_AXIS_POSITION_ON_TICK;
568     enum LXW_CHART_AXIS_POSITION_BETWEEN = lxw_chart_axis_tick_position.LXW_CHART_AXIS_POSITION_BETWEEN;
569     enum lxw_chart_axis_label_position
570     {
571         LXW_CHART_AXIS_LABEL_POSITION_NEXT_TO = 0,
572         LXW_CHART_AXIS_LABEL_POSITION_HIGH = 1,
573         LXW_CHART_AXIS_LABEL_POSITION_LOW = 2,
574         LXW_CHART_AXIS_LABEL_POSITION_NONE = 3,
575     }
576     enum LXW_CHART_AXIS_LABEL_POSITION_NEXT_TO = lxw_chart_axis_label_position.LXW_CHART_AXIS_LABEL_POSITION_NEXT_TO;
577     enum LXW_CHART_AXIS_LABEL_POSITION_HIGH = lxw_chart_axis_label_position.LXW_CHART_AXIS_LABEL_POSITION_HIGH;
578     enum LXW_CHART_AXIS_LABEL_POSITION_LOW = lxw_chart_axis_label_position.LXW_CHART_AXIS_LABEL_POSITION_LOW;
579     enum LXW_CHART_AXIS_LABEL_POSITION_NONE = lxw_chart_axis_label_position.LXW_CHART_AXIS_LABEL_POSITION_NONE;
580     enum lxw_chart_axis_label_alignment
581     {
582         LXW_CHART_AXIS_LABEL_ALIGN_CENTER = 0,
583         LXW_CHART_AXIS_LABEL_ALIGN_LEFT = 1,
584         LXW_CHART_AXIS_LABEL_ALIGN_RIGHT = 2,
585     }
586     enum LXW_CHART_AXIS_LABEL_ALIGN_CENTER = lxw_chart_axis_label_alignment.LXW_CHART_AXIS_LABEL_ALIGN_CENTER;
587     enum LXW_CHART_AXIS_LABEL_ALIGN_LEFT = lxw_chart_axis_label_alignment.LXW_CHART_AXIS_LABEL_ALIGN_LEFT;
588     enum LXW_CHART_AXIS_LABEL_ALIGN_RIGHT = lxw_chart_axis_label_alignment.LXW_CHART_AXIS_LABEL_ALIGN_RIGHT;
589     enum lxw_chart_axis_display_unit
590     {
591         LXW_CHART_AXIS_UNITS_NONE = 0,
592         LXW_CHART_AXIS_UNITS_HUNDREDS = 1,
593         LXW_CHART_AXIS_UNITS_THOUSANDS = 2,
594         LXW_CHART_AXIS_UNITS_TEN_THOUSANDS = 3,
595         LXW_CHART_AXIS_UNITS_HUNDRED_THOUSANDS = 4,
596         LXW_CHART_AXIS_UNITS_MILLIONS = 5,
597         LXW_CHART_AXIS_UNITS_TEN_MILLIONS = 6,
598         LXW_CHART_AXIS_UNITS_HUNDRED_MILLIONS = 7,
599         LXW_CHART_AXIS_UNITS_BILLIONS = 8,
600         LXW_CHART_AXIS_UNITS_TRILLIONS = 9,
601     }
602     enum LXW_CHART_AXIS_UNITS_NONE = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_NONE;
603     enum LXW_CHART_AXIS_UNITS_HUNDREDS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_HUNDREDS;
604     enum LXW_CHART_AXIS_UNITS_THOUSANDS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_THOUSANDS;
605     enum LXW_CHART_AXIS_UNITS_TEN_THOUSANDS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_TEN_THOUSANDS;
606     enum LXW_CHART_AXIS_UNITS_HUNDRED_THOUSANDS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_HUNDRED_THOUSANDS;
607     enum LXW_CHART_AXIS_UNITS_MILLIONS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_MILLIONS;
608     enum LXW_CHART_AXIS_UNITS_TEN_MILLIONS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_TEN_MILLIONS;
609     enum LXW_CHART_AXIS_UNITS_HUNDRED_MILLIONS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_HUNDRED_MILLIONS;
610     enum LXW_CHART_AXIS_UNITS_BILLIONS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_BILLIONS;
611     enum LXW_CHART_AXIS_UNITS_TRILLIONS = lxw_chart_axis_display_unit.LXW_CHART_AXIS_UNITS_TRILLIONS;
612     alias lxw_chart_tick_mark = lxw_chart_axis_tick_mark;
613     enum lxw_chart_axis_tick_mark
614     {
615         LXW_CHART_AXIS_TICK_MARK_DEFAULT = 0,
616         LXW_CHART_AXIS_TICK_MARK_NONE = 1,
617         LXW_CHART_AXIS_TICK_MARK_INSIDE = 2,
618         LXW_CHART_AXIS_TICK_MARK_OUTSIDE = 3,
619         LXW_CHART_AXIS_TICK_MARK_CROSSING = 4,
620     }
621     enum LXW_CHART_AXIS_TICK_MARK_DEFAULT = lxw_chart_axis_tick_mark.LXW_CHART_AXIS_TICK_MARK_DEFAULT;
622     enum LXW_CHART_AXIS_TICK_MARK_NONE = lxw_chart_axis_tick_mark.LXW_CHART_AXIS_TICK_MARK_NONE;
623     enum LXW_CHART_AXIS_TICK_MARK_INSIDE = lxw_chart_axis_tick_mark.LXW_CHART_AXIS_TICK_MARK_INSIDE;
624     enum LXW_CHART_AXIS_TICK_MARK_OUTSIDE = lxw_chart_axis_tick_mark.LXW_CHART_AXIS_TICK_MARK_OUTSIDE;
625     enum LXW_CHART_AXIS_TICK_MARK_CROSSING = lxw_chart_axis_tick_mark.LXW_CHART_AXIS_TICK_MARK_CROSSING;
626     struct lxw_series_range
627     {
628         char* formula;
629         char* sheetname;
630         lxw_row_t first_row;
631         lxw_row_t last_row;
632         lxw_col_t first_col;
633         lxw_col_t last_col;
634         uint8_t ignore_cache;
635         uint8_t has_string_cache;
636         uint16_t num_data_points;
637         lxw_series_data_points* data_cache;
638     }
639     struct lxw_chart_line
640     {
641         lxw_color_t color;
642         uint8_t none;
643         float width;
644         uint8_t dash_type;
645         uint8_t transparency;
646         uint8_t has_color;
647     }
648     struct lxw_chart_fill
649     {
650         lxw_color_t color;
651         uint8_t none;
652         uint8_t transparency;
653         uint8_t has_color;
654     }
655     struct lxw_chart_pattern
656     {
657         lxw_color_t fg_color;
658         lxw_color_t bg_color;
659         uint8_t type;
660         uint8_t has_fg_color;
661         uint8_t has_bg_color;
662     }
663     struct lxw_chart_font
664     {
665         char* name;
666         double size;
667         uint8_t bold;
668         uint8_t italic;
669         uint8_t underline;
670         int32_t rotation;
671         lxw_color_t color;
672         uint8_t pitch_family;
673         uint8_t charset;
674         int8_t baseline;
675         uint8_t has_color;
676     }
677     struct lxw_chart_marker
678     {
679         uint8_t type;
680         uint8_t size;
681         lxw_chart_line* line;
682         lxw_chart_fill* fill;
683         lxw_chart_pattern* pattern;
684     }
685     struct lxw_chart_legend
686     {
687         lxw_chart_font* font;
688         uint8_t position;
689     }
690     struct lxw_chart_title
691     {
692         char* name;
693         lxw_row_t row;
694         lxw_col_t col;
695         lxw_chart_font* font;
696         uint8_t off;
697         uint8_t is_horizontal;
698         uint8_t ignore_cache;
699         lxw_series_range* range;
700         lxw_series_data_point data_point;
701     }
702     struct lxw_chart_point
703     {
704         lxw_chart_line* line;
705         lxw_chart_fill* fill;
706         lxw_chart_pattern* pattern;
707     }
708     enum lxw_chart_blank
709     {
710         LXW_CHART_BLANKS_AS_GAP = 0,
711         LXW_CHART_BLANKS_AS_ZERO = 1,
712         LXW_CHART_BLANKS_AS_CONNECTED = 2,
713     }
714     enum LXW_CHART_BLANKS_AS_GAP = lxw_chart_blank.LXW_CHART_BLANKS_AS_GAP;
715     enum LXW_CHART_BLANKS_AS_ZERO = lxw_chart_blank.LXW_CHART_BLANKS_AS_ZERO;
716     enum LXW_CHART_BLANKS_AS_CONNECTED = lxw_chart_blank.LXW_CHART_BLANKS_AS_CONNECTED;
717     enum lxw_chart_position
718     {
719         LXW_CHART_AXIS_RIGHT = 0,
720         LXW_CHART_AXIS_LEFT = 1,
721         LXW_CHART_AXIS_TOP = 2,
722         LXW_CHART_AXIS_BOTTOM = 3,
723     }
724     enum LXW_CHART_AXIS_RIGHT = lxw_chart_position.LXW_CHART_AXIS_RIGHT;
725     enum LXW_CHART_AXIS_LEFT = lxw_chart_position.LXW_CHART_AXIS_LEFT;
726     enum LXW_CHART_AXIS_TOP = lxw_chart_position.LXW_CHART_AXIS_TOP;
727     enum LXW_CHART_AXIS_BOTTOM = lxw_chart_position.LXW_CHART_AXIS_BOTTOM;
728     enum lxw_chart_error_bar_type
729     {
730         LXW_CHART_ERROR_BAR_TYPE_STD_ERROR = 0,
731         LXW_CHART_ERROR_BAR_TYPE_FIXED = 1,
732         LXW_CHART_ERROR_BAR_TYPE_PERCENTAGE = 2,
733         LXW_CHART_ERROR_BAR_TYPE_STD_DEV = 3,
734     }
735     enum LXW_CHART_ERROR_BAR_TYPE_STD_ERROR = lxw_chart_error_bar_type.LXW_CHART_ERROR_BAR_TYPE_STD_ERROR;
736     enum LXW_CHART_ERROR_BAR_TYPE_FIXED = lxw_chart_error_bar_type.LXW_CHART_ERROR_BAR_TYPE_FIXED;
737     enum LXW_CHART_ERROR_BAR_TYPE_PERCENTAGE = lxw_chart_error_bar_type.LXW_CHART_ERROR_BAR_TYPE_PERCENTAGE;
738     enum LXW_CHART_ERROR_BAR_TYPE_STD_DEV = lxw_chart_error_bar_type.LXW_CHART_ERROR_BAR_TYPE_STD_DEV;
739     enum lxw_chart_error_bar_direction
740     {
741         LXW_CHART_ERROR_BAR_DIR_BOTH = 0,
742         LXW_CHART_ERROR_BAR_DIR_PLUS = 1,
743         LXW_CHART_ERROR_BAR_DIR_MINUS = 2,
744     }
745     enum LXW_CHART_ERROR_BAR_DIR_BOTH = lxw_chart_error_bar_direction.LXW_CHART_ERROR_BAR_DIR_BOTH;
746     enum LXW_CHART_ERROR_BAR_DIR_PLUS = lxw_chart_error_bar_direction.LXW_CHART_ERROR_BAR_DIR_PLUS;
747     enum LXW_CHART_ERROR_BAR_DIR_MINUS = lxw_chart_error_bar_direction.LXW_CHART_ERROR_BAR_DIR_MINUS;
748     enum lxw_chart_error_bar_axis
749     {
750         LXW_CHART_ERROR_BAR_AXIS_X = 0,
751         LXW_CHART_ERROR_BAR_AXIS_Y = 1,
752     }
753     enum LXW_CHART_ERROR_BAR_AXIS_X = lxw_chart_error_bar_axis.LXW_CHART_ERROR_BAR_AXIS_X;
754     enum LXW_CHART_ERROR_BAR_AXIS_Y = lxw_chart_error_bar_axis.LXW_CHART_ERROR_BAR_AXIS_Y;
755     enum lxw_chart_error_bar_cap
756     {
757         LXW_CHART_ERROR_BAR_END_CAP = 0,
758         LXW_CHART_ERROR_BAR_NO_CAP = 1,
759     }
760     enum LXW_CHART_ERROR_BAR_END_CAP = lxw_chart_error_bar_cap.LXW_CHART_ERROR_BAR_END_CAP;
761     enum LXW_CHART_ERROR_BAR_NO_CAP = lxw_chart_error_bar_cap.LXW_CHART_ERROR_BAR_NO_CAP;
762     struct lxw_series_error_bars
763     {
764         uint8_t type;
765         uint8_t direction;
766         uint8_t endcap;
767         uint8_t has_value;
768         uint8_t is_set;
769         uint8_t is_x;
770         uint8_t chart_group;
771         double value;
772         lxw_chart_line* line;
773     }
774     enum lxw_chart_trendline_type
775     {
776         LXW_CHART_TRENDLINE_TYPE_LINEAR = 0,
777         LXW_CHART_TRENDLINE_TYPE_LOG = 1,
778         LXW_CHART_TRENDLINE_TYPE_POLY = 2,
779         LXW_CHART_TRENDLINE_TYPE_POWER = 3,
780         LXW_CHART_TRENDLINE_TYPE_EXP = 4,
781         LXW_CHART_TRENDLINE_TYPE_AVERAGE = 5,
782     }
783     enum LXW_CHART_TRENDLINE_TYPE_LINEAR = lxw_chart_trendline_type.LXW_CHART_TRENDLINE_TYPE_LINEAR;
784     enum LXW_CHART_TRENDLINE_TYPE_LOG = lxw_chart_trendline_type.LXW_CHART_TRENDLINE_TYPE_LOG;
785     enum LXW_CHART_TRENDLINE_TYPE_POLY = lxw_chart_trendline_type.LXW_CHART_TRENDLINE_TYPE_POLY;
786     enum LXW_CHART_TRENDLINE_TYPE_POWER = lxw_chart_trendline_type.LXW_CHART_TRENDLINE_TYPE_POWER;
787     enum LXW_CHART_TRENDLINE_TYPE_EXP = lxw_chart_trendline_type.LXW_CHART_TRENDLINE_TYPE_EXP;
788     enum LXW_CHART_TRENDLINE_TYPE_AVERAGE = lxw_chart_trendline_type.LXW_CHART_TRENDLINE_TYPE_AVERAGE;
789     struct lxw_chart_gridline
790     {
791         uint8_t visible;
792         lxw_chart_line* line;
793     }
794     struct lxw_chart_axis
795     {
796         lxw_chart_title title;
797         char* num_format;
798         char* default_num_format;
799         uint8_t source_linked;
800         uint8_t major_tick_mark;
801         uint8_t minor_tick_mark;
802         uint8_t is_horizontal;
803         lxw_chart_gridline major_gridlines;
804         lxw_chart_gridline minor_gridlines;
805         lxw_chart_font* num_font;
806         lxw_chart_line* line;
807         lxw_chart_fill* fill;
808         lxw_chart_pattern* pattern;
809         uint8_t is_category;
810         uint8_t is_date;
811         uint8_t is_value;
812         uint8_t axis_position;
813         uint8_t position_axis;
814         uint8_t label_position;
815         uint8_t label_align;
816         uint8_t hidden;
817         uint8_t reverse;
818         uint8_t has_min;
819         double min;
820         uint8_t has_max;
821         double max;
822         uint8_t has_major_unit;
823         double major_unit;
824         uint8_t has_minor_unit;
825         double minor_unit;
826         uint16_t interval_unit;
827         uint16_t interval_tick;
828         uint16_t log_base;
829         uint8_t display_units;
830         uint8_t display_units_visible;
831         uint8_t has_crossing;
832         uint8_t crossing_max;
833         double crossing;
834     }
835     struct lxw_chart
836     {
837         FILE* file;
838         uint8_t type;
839         uint8_t subtype;
840         uint16_t series_index;
841         void function(lxw_chart*) write_chart_type;
842         void function(lxw_chart*) write_plot_area;
843         lxw_chart_axis* x_axis;
844         lxw_chart_axis* y_axis;
845         lxw_chart_title title;
846         uint32_t id;
847         uint32_t axis_id_1;
848         uint32_t axis_id_2;
849         uint32_t axis_id_3;
850         uint32_t axis_id_4;
851         uint8_t in_use;
852         uint8_t chart_group;
853         uint8_t cat_has_num_fmt;
854         uint8_t is_chartsheet;
855         uint8_t has_horiz_cat_axis;
856         uint8_t has_horiz_val_axis;
857         uint8_t style_id;
858         uint16_t rotation;
859         uint16_t hole_size;
860         uint8_t no_title;
861         uint8_t has_overlap;
862         int8_t overlap_y1;
863         int8_t overlap_y2;
864         uint16_t gap_y1;
865         uint16_t gap_y2;
866         uint8_t grouping;
867         uint8_t default_cross_between;
868         lxw_chart_legend legend;
869         int16_t* delete_series;
870         uint16_t delete_series_count;
871         lxw_chart_marker* default_marker;
872         lxw_chart_line* chartarea_line;
873         lxw_chart_fill* chartarea_fill;
874         lxw_chart_pattern* chartarea_pattern;
875         lxw_chart_line* plotarea_line;
876         lxw_chart_fill* plotarea_fill;
877         lxw_chart_pattern* plotarea_pattern;
878         uint8_t has_drop_lines;
879         lxw_chart_line* drop_lines_line;
880         uint8_t has_high_low_lines;
881         lxw_chart_line* high_low_lines_line;
882         lxw_chart_series_list* series_list;
883         uint8_t has_table;
884         uint8_t has_table_vertical;
885         uint8_t has_table_horizontal;
886         uint8_t has_table_outline;
887         uint8_t has_table_legend_keys;
888         lxw_chart_font* table_font;
889         uint8_t show_blanks_as;
890         uint8_t show_hidden_data;
891         uint8_t has_up_down_bars;
892         lxw_chart_line* up_bar_line;
893         lxw_chart_line* down_bar_line;
894         lxw_chart_fill* up_bar_fill;
895         lxw_chart_fill* down_bar_fill;
896         uint8_t default_label_position;
897         uint8_t is_protected;
898         static struct _Anonymous_4
899         {
900             lxw_chart* stqe_next;
901         }
902         _Anonymous_4 ordered_list_pointers;
903         static struct _Anonymous_5
904         {
905             lxw_chart* stqe_next;
906         }
907         _Anonymous_5 list_pointers;
908     }
909     lxw_chart* lxw_chart_new(uint8_t) @nogc nothrow;
910     void lxw_chart_free(lxw_chart*) @nogc nothrow;
911     void lxw_chart_assemble_xml_file(lxw_chart*) @nogc nothrow;
912     lxw_chart_series* chart_add_series(lxw_chart*, const(char)*, const(char)*) @nogc nothrow;
913     void chart_series_set_categories(lxw_chart_series*, const(char)*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t) @nogc nothrow;
914     void chart_series_set_values(lxw_chart_series*, const(char)*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t) @nogc nothrow;
915     void chart_series_set_name(lxw_chart_series*, const(char)*) @nogc nothrow;
916     void chart_series_set_name_range(lxw_chart_series*, const(char)*, lxw_row_t, lxw_col_t) @nogc nothrow;
917     void chart_series_set_line(lxw_chart_series*, lxw_chart_line*) @nogc nothrow;
918     void chart_series_set_fill(lxw_chart_series*, lxw_chart_fill*) @nogc nothrow;
919     void chart_series_set_invert_if_negative(lxw_chart_series*) @nogc nothrow;
920     void chart_series_set_pattern(lxw_chart_series*, lxw_chart_pattern*) @nogc nothrow;
921     void chart_series_set_marker_type(lxw_chart_series*, uint8_t) @nogc nothrow;
922     void chart_series_set_marker_size(lxw_chart_series*, uint8_t) @nogc nothrow;
923     void chart_series_set_marker_line(lxw_chart_series*, lxw_chart_line*) @nogc nothrow;
924     void chart_series_set_marker_fill(lxw_chart_series*, lxw_chart_fill*) @nogc nothrow;
925     void chart_series_set_marker_pattern(lxw_chart_series*, lxw_chart_pattern*) @nogc nothrow;
926     lxw_error chart_series_set_points(lxw_chart_series*, lxw_chart_point**) @nogc nothrow;
927     void chart_series_set_smooth(lxw_chart_series*, uint8_t) @nogc nothrow;
928     void chart_series_set_labels(lxw_chart_series*) @nogc nothrow;
929     void chart_series_set_labels_options(lxw_chart_series*, uint8_t, uint8_t, uint8_t) @nogc nothrow;
930     void chart_series_set_labels_separator(lxw_chart_series*, uint8_t) @nogc nothrow;
931     void chart_series_set_labels_position(lxw_chart_series*, uint8_t) @nogc nothrow;
932     void chart_series_set_labels_leader_line(lxw_chart_series*) @nogc nothrow;
933     void chart_series_set_labels_legend(lxw_chart_series*) @nogc nothrow;
934     void chart_series_set_labels_percentage(lxw_chart_series*) @nogc nothrow;
935     void chart_series_set_labels_num_format(lxw_chart_series*, const(char)*) @nogc nothrow;
936     void chart_series_set_labels_font(lxw_chart_series*, lxw_chart_font*) @nogc nothrow;
937     void chart_series_set_trendline(lxw_chart_series*, uint8_t, uint8_t) @nogc nothrow;
938     void chart_series_set_trendline_forecast(lxw_chart_series*, double, double) @nogc nothrow;
939     void chart_series_set_trendline_equation(lxw_chart_series*) @nogc nothrow;
940     void chart_series_set_trendline_r_squared(lxw_chart_series*) @nogc nothrow;
941     void chart_series_set_trendline_intercept(lxw_chart_series*, double) @nogc nothrow;
942     void chart_series_set_trendline_name(lxw_chart_series*, const(char)*) @nogc nothrow;
943     void chart_series_set_trendline_line(lxw_chart_series*, lxw_chart_line*) @nogc nothrow;
944     lxw_series_error_bars* chart_series_get_error_bars(lxw_chart_series*, lxw_chart_error_bar_axis) @nogc nothrow;
945     void chart_series_set_error_bars(lxw_series_error_bars*, uint8_t, double) @nogc nothrow;
946     void chart_series_set_error_bars_direction(lxw_series_error_bars*, uint8_t) @nogc nothrow;
947     void chart_series_set_error_bars_endcap(lxw_series_error_bars*, uint8_t) @nogc nothrow;
948     void chart_series_set_error_bars_line(lxw_series_error_bars*, lxw_chart_line*) @nogc nothrow;
949     lxw_chart_axis* chart_axis_get(lxw_chart*, lxw_chart_axis_type) @nogc nothrow;
950     void chart_axis_set_name(lxw_chart_axis*, const(char)*) @nogc nothrow;
951     void chart_axis_set_name_range(lxw_chart_axis*, const(char)*, lxw_row_t, lxw_col_t) @nogc nothrow;
952     void chart_axis_set_name_font(lxw_chart_axis*, lxw_chart_font*) @nogc nothrow;
953     void chart_axis_set_num_font(lxw_chart_axis*, lxw_chart_font*) @nogc nothrow;
954     void chart_axis_set_num_format(lxw_chart_axis*, const(char)*) @nogc nothrow;
955     void chart_axis_set_line(lxw_chart_axis*, lxw_chart_line*) @nogc nothrow;
956     void chart_axis_set_fill(lxw_chart_axis*, lxw_chart_fill*) @nogc nothrow;
957     void chart_axis_set_pattern(lxw_chart_axis*, lxw_chart_pattern*) @nogc nothrow;
958     void chart_axis_set_reverse(lxw_chart_axis*) @nogc nothrow;
959     void chart_axis_set_crossing(lxw_chart_axis*, double) @nogc nothrow;
960     void chart_axis_set_crossing_max(lxw_chart_axis*) @nogc nothrow;
961     void chart_axis_off(lxw_chart_axis*) @nogc nothrow;
962     void chart_axis_set_position(lxw_chart_axis*, uint8_t) @nogc nothrow;
963     void chart_axis_set_label_position(lxw_chart_axis*, uint8_t) @nogc nothrow;
964     void chart_axis_set_label_align(lxw_chart_axis*, uint8_t) @nogc nothrow;
965     void chart_axis_set_min(lxw_chart_axis*, double) @nogc nothrow;
966     void chart_axis_set_max(lxw_chart_axis*, double) @nogc nothrow;
967     void chart_axis_set_log_base(lxw_chart_axis*, uint16_t) @nogc nothrow;
968     void chart_axis_set_major_tick_mark(lxw_chart_axis*, uint8_t) @nogc nothrow;
969     void chart_axis_set_minor_tick_mark(lxw_chart_axis*, uint8_t) @nogc nothrow;
970     void chart_axis_set_interval_unit(lxw_chart_axis*, uint16_t) @nogc nothrow;
971     void chart_axis_set_interval_tick(lxw_chart_axis*, uint16_t) @nogc nothrow;
972     void chart_axis_set_major_unit(lxw_chart_axis*, double) @nogc nothrow;
973     void chart_axis_set_minor_unit(lxw_chart_axis*, double) @nogc nothrow;
974     void chart_axis_set_display_units(lxw_chart_axis*, uint8_t) @nogc nothrow;
975     void chart_axis_set_display_units_visible(lxw_chart_axis*, uint8_t) @nogc nothrow;
976     void chart_axis_major_gridlines_set_visible(lxw_chart_axis*, uint8_t) @nogc nothrow;
977     void chart_axis_minor_gridlines_set_visible(lxw_chart_axis*, uint8_t) @nogc nothrow;
978     void chart_axis_major_gridlines_set_line(lxw_chart_axis*, lxw_chart_line*) @nogc nothrow;
979     void chart_axis_minor_gridlines_set_line(lxw_chart_axis*, lxw_chart_line*) @nogc nothrow;
980     void chart_title_set_name(lxw_chart*, const(char)*) @nogc nothrow;
981     void chart_title_set_name_range(lxw_chart*, const(char)*, lxw_row_t, lxw_col_t) @nogc nothrow;
982     void chart_title_set_name_font(lxw_chart*, lxw_chart_font*) @nogc nothrow;
983     void chart_title_off(lxw_chart*) @nogc nothrow;
984     void chart_legend_set_position(lxw_chart*, uint8_t) @nogc nothrow;
985     void chart_legend_set_font(lxw_chart*, lxw_chart_font*) @nogc nothrow;
986     lxw_error chart_legend_delete_series(lxw_chart*, int16_t*) @nogc nothrow;
987     void chart_chartarea_set_line(lxw_chart*, lxw_chart_line*) @nogc nothrow;
988     void chart_chartarea_set_fill(lxw_chart*, lxw_chart_fill*) @nogc nothrow;
989     void chart_chartarea_set_pattern(lxw_chart*, lxw_chart_pattern*) @nogc nothrow;
990     void chart_plotarea_set_line(lxw_chart*, lxw_chart_line*) @nogc nothrow;
991     void chart_plotarea_set_fill(lxw_chart*, lxw_chart_fill*) @nogc nothrow;
992     void chart_plotarea_set_pattern(lxw_chart*, lxw_chart_pattern*) @nogc nothrow;
993     void chart_set_style(lxw_chart*, uint8_t) @nogc nothrow;
994     void chart_set_table(lxw_chart*) @nogc nothrow;
995     void chart_set_table_grid(lxw_chart*, uint8_t, uint8_t, uint8_t, uint8_t) @nogc nothrow;
996     void chart_set_table_font(lxw_chart*, lxw_chart_font*) @nogc nothrow;
997     void chart_set_up_down_bars(lxw_chart*) @nogc nothrow;
998     void chart_set_up_down_bars_format(lxw_chart*, lxw_chart_line*, lxw_chart_fill*, lxw_chart_line*, lxw_chart_fill*) @nogc nothrow;
999     void chart_set_drop_lines(lxw_chart*, lxw_chart_line*) @nogc nothrow;
1000     void chart_set_high_low_lines(lxw_chart*, lxw_chart_line*) @nogc nothrow;
1001     void chart_set_series_overlap(lxw_chart*, int8_t) @nogc nothrow;
1002     void chart_set_series_gap(lxw_chart*, uint16_t) @nogc nothrow;
1003     void chart_show_blanks_as(lxw_chart*, uint8_t) @nogc nothrow;
1004     void chart_show_hidden_data(lxw_chart*) @nogc nothrow;
1005     void chart_set_rotation(lxw_chart*, uint16_t) @nogc nothrow;
1006     void chart_set_hole_size(lxw_chart*, uint8_t) @nogc nothrow;
1007     lxw_error lxw_chart_add_data_cache(lxw_series_range*, uint8_t*, uint16_t, uint8_t, uint8_t) @nogc nothrow;
1008     struct internal_state;
1009     struct lxw_chartsheet
1010     {
1011         FILE* file;
1012         lxw_worksheet* worksheet;
1013         lxw_chart* chart;
1014         lxw_protection protection;
1015         uint8_t is_protected;
1016         char* name;
1017         char* quoted_name;
1018         char* tmpdir;
1019         uint32_t index;
1020         uint8_t active;
1021         uint8_t selected;
1022         uint8_t hidden;
1023         uint16_t* active_sheet;
1024         uint16_t* first_sheet;
1025         uint16_t rel_count;
1026         static struct _Anonymous_6
1027         {
1028             lxw_chartsheet* stqe_next;
1029         }
1030         _Anonymous_6 list_pointers;
1031     }
1032     lxw_error chartsheet_set_chart(lxw_chartsheet*, lxw_chart*) @nogc nothrow;
1033     lxw_error chartsheet_set_chart_opt(lxw_chartsheet*, lxw_chart*, lxw_image_options*) @nogc nothrow;
1034     void chartsheet_activate(lxw_chartsheet*) @nogc nothrow;
1035     void chartsheet_select(lxw_chartsheet*) @nogc nothrow;
1036     void chartsheet_hide(lxw_chartsheet*) @nogc nothrow;
1037     void chartsheet_set_first_sheet(lxw_chartsheet*) @nogc nothrow;
1038     void chartsheet_set_tab_color(lxw_chartsheet*, lxw_color_t) @nogc nothrow;
1039     void chartsheet_protect(lxw_chartsheet*, const(char)*, lxw_protection*) @nogc nothrow;
1040     void chartsheet_set_zoom(lxw_chartsheet*, uint16_t) @nogc nothrow;
1041     void chartsheet_set_landscape(lxw_chartsheet*) @nogc nothrow;
1042     void chartsheet_set_portrait(lxw_chartsheet*) @nogc nothrow;
1043     void chartsheet_set_paper(lxw_chartsheet*, uint8_t) @nogc nothrow;
1044     void chartsheet_set_margins(lxw_chartsheet*, double, double, double, double) @nogc nothrow;
1045     lxw_error chartsheet_set_header(lxw_chartsheet*, const(char)*) @nogc nothrow;
1046     lxw_error chartsheet_set_footer(lxw_chartsheet*, const(char)*) @nogc nothrow;
1047     lxw_error chartsheet_set_header_opt(lxw_chartsheet*, const(char)*, lxw_header_footer_options*) @nogc nothrow;
1048     lxw_error chartsheet_set_footer_opt(lxw_chartsheet*, const(char)*, lxw_header_footer_options*) @nogc nothrow;
1049     lxw_chartsheet* lxw_chartsheet_new() @nogc nothrow;
1050     void lxw_chartsheet_free(lxw_chartsheet*) @nogc nothrow;
1051     void lxw_chartsheet_assemble_xml_file(lxw_chartsheet*) @nogc nothrow;
1052     alias free_func = void function(voidpf, voidpf) @nogc nothrow;
1053     alias lxw_row_t = uint;
1054     alias lxw_col_t = ushort;
1055     enum lxw_boolean
1056     {
1057         LXW_FALSE = 0,
1058         LXW_TRUE = 1,
1059     }
1060     enum LXW_FALSE = lxw_boolean.LXW_FALSE;
1061     enum LXW_TRUE = lxw_boolean.LXW_TRUE;
1062     enum lxw_error
1063     {
1064         LXW_NO_ERROR = 0,
1065         LXW_ERROR_MEMORY_MALLOC_FAILED = 1,
1066         LXW_ERROR_CREATING_XLSX_FILE = 2,
1067         LXW_ERROR_CREATING_TMPFILE = 3,
1068         LXW_ERROR_READING_TMPFILE = 4,
1069         LXW_ERROR_ZIP_FILE_OPERATION = 5,
1070         LXW_ERROR_ZIP_FILE_ADD = 6,
1071         LXW_ERROR_ZIP_CLOSE = 7,
1072         LXW_ERROR_NULL_PARAMETER_IGNORED = 8,
1073         LXW_ERROR_PARAMETER_VALIDATION = 9,
1074         LXW_ERROR_SHEETNAME_LENGTH_EXCEEDED = 10,
1075         LXW_ERROR_INVALID_SHEETNAME_CHARACTER = 11,
1076         LXW_ERROR_SHEETNAME_ALREADY_USED = 12,
1077         LXW_ERROR_32_STRING_LENGTH_EXCEEDED = 13,
1078         LXW_ERROR_128_STRING_LENGTH_EXCEEDED = 14,
1079         LXW_ERROR_255_STRING_LENGTH_EXCEEDED = 15,
1080         LXW_ERROR_MAX_STRING_LENGTH_EXCEEDED = 16,
1081         LXW_ERROR_SHARED_STRING_INDEX_NOT_FOUND = 17,
1082         LXW_ERROR_WORKSHEET_INDEX_OUT_OF_RANGE = 18,
1083         LXW_ERROR_WORKSHEET_MAX_NUMBER_URLS_EXCEEDED = 19,
1084         LXW_ERROR_IMAGE_DIMENSIONS = 20,
1085         LXW_MAX_ERRNO = 21,
1086     }
1087     enum LXW_NO_ERROR = lxw_error.LXW_NO_ERROR;
1088     enum LXW_ERROR_MEMORY_MALLOC_FAILED = lxw_error.LXW_ERROR_MEMORY_MALLOC_FAILED;
1089     enum LXW_ERROR_CREATING_XLSX_FILE = lxw_error.LXW_ERROR_CREATING_XLSX_FILE;
1090     enum LXW_ERROR_CREATING_TMPFILE = lxw_error.LXW_ERROR_CREATING_TMPFILE;
1091     enum LXW_ERROR_READING_TMPFILE = lxw_error.LXW_ERROR_READING_TMPFILE;
1092     enum LXW_ERROR_ZIP_FILE_OPERATION = lxw_error.LXW_ERROR_ZIP_FILE_OPERATION;
1093     enum LXW_ERROR_ZIP_FILE_ADD = lxw_error.LXW_ERROR_ZIP_FILE_ADD;
1094     enum LXW_ERROR_ZIP_CLOSE = lxw_error.LXW_ERROR_ZIP_CLOSE;
1095     enum LXW_ERROR_NULL_PARAMETER_IGNORED = lxw_error.LXW_ERROR_NULL_PARAMETER_IGNORED;
1096     enum LXW_ERROR_PARAMETER_VALIDATION = lxw_error.LXW_ERROR_PARAMETER_VALIDATION;
1097     enum LXW_ERROR_SHEETNAME_LENGTH_EXCEEDED = lxw_error.LXW_ERROR_SHEETNAME_LENGTH_EXCEEDED;
1098     enum LXW_ERROR_INVALID_SHEETNAME_CHARACTER = lxw_error.LXW_ERROR_INVALID_SHEETNAME_CHARACTER;
1099     enum LXW_ERROR_SHEETNAME_ALREADY_USED = lxw_error.LXW_ERROR_SHEETNAME_ALREADY_USED;
1100     enum LXW_ERROR_32_STRING_LENGTH_EXCEEDED = lxw_error.LXW_ERROR_32_STRING_LENGTH_EXCEEDED;
1101     enum LXW_ERROR_128_STRING_LENGTH_EXCEEDED = lxw_error.LXW_ERROR_128_STRING_LENGTH_EXCEEDED;
1102     enum LXW_ERROR_255_STRING_LENGTH_EXCEEDED = lxw_error.LXW_ERROR_255_STRING_LENGTH_EXCEEDED;
1103     enum LXW_ERROR_MAX_STRING_LENGTH_EXCEEDED = lxw_error.LXW_ERROR_MAX_STRING_LENGTH_EXCEEDED;
1104     enum LXW_ERROR_SHARED_STRING_INDEX_NOT_FOUND = lxw_error.LXW_ERROR_SHARED_STRING_INDEX_NOT_FOUND;
1105     enum LXW_ERROR_WORKSHEET_INDEX_OUT_OF_RANGE = lxw_error.LXW_ERROR_WORKSHEET_INDEX_OUT_OF_RANGE;
1106     enum LXW_ERROR_WORKSHEET_MAX_NUMBER_URLS_EXCEEDED = lxw_error.LXW_ERROR_WORKSHEET_MAX_NUMBER_URLS_EXCEEDED;
1107     enum LXW_ERROR_IMAGE_DIMENSIONS = lxw_error.LXW_ERROR_IMAGE_DIMENSIONS;
1108     enum LXW_MAX_ERRNO = lxw_error.LXW_MAX_ERRNO;
1109     struct lxw_datetime
1110     {
1111         int year;
1112         int month;
1113         int day;
1114         int hour;
1115         int min;
1116         double sec;
1117     }
1118     enum lxw_custom_property_types
1119     {
1120         LXW_CUSTOM_NONE = 0,
1121         LXW_CUSTOM_STRING = 1,
1122         LXW_CUSTOM_DOUBLE = 2,
1123         LXW_CUSTOM_INTEGER = 3,
1124         LXW_CUSTOM_BOOLEAN = 4,
1125         LXW_CUSTOM_DATETIME = 5,
1126     }
1127     enum LXW_CUSTOM_NONE = lxw_custom_property_types.LXW_CUSTOM_NONE;
1128     enum LXW_CUSTOM_STRING = lxw_custom_property_types.LXW_CUSTOM_STRING;
1129     enum LXW_CUSTOM_DOUBLE = lxw_custom_property_types.LXW_CUSTOM_DOUBLE;
1130     enum LXW_CUSTOM_INTEGER = lxw_custom_property_types.LXW_CUSTOM_INTEGER;
1131     enum LXW_CUSTOM_BOOLEAN = lxw_custom_property_types.LXW_CUSTOM_BOOLEAN;
1132     enum LXW_CUSTOM_DATETIME = lxw_custom_property_types.LXW_CUSTOM_DATETIME;
1133     alias alloc_func = void* function(voidpf, uInt, uInt) @nogc nothrow;
1134     alias z_crc_t = uint;
1135     alias voidp = void*;
1136     alias voidpf = void*;
1137     alias voidpc = const(void)*;
1138     alias uLongf = c_ulong;
1139     alias uIntf = uint;
1140     alias intf = int;
1141     alias charf = char;
1142     alias Bytef = ubyte;
1143     alias uLong = c_ulong;
1144     alias uInt = uint;
1145     alias Byte = ubyte;
1146     struct lxw_format
1147     {
1148         FILE* file;
1149         lxw_hash_table* xf_format_indices;
1150         uint16_t* num_xf_formats;
1151         int32_t xf_index;
1152         int32_t dxf_index;
1153         char[128] num_format;
1154         char[128] font_name;
1155         char[128] font_scheme;
1156         uint16_t num_format_index;
1157         uint16_t font_index;
1158         uint8_t has_font;
1159         uint8_t has_dxf_font;
1160         double font_size;
1161         uint8_t bold;
1162         uint8_t italic;
1163         lxw_color_t font_color;
1164         uint8_t underline;
1165         uint8_t font_strikeout;
1166         uint8_t font_outline;
1167         uint8_t font_shadow;
1168         uint8_t font_script;
1169         uint8_t font_family;
1170         uint8_t font_charset;
1171         uint8_t font_condense;
1172         uint8_t font_extend;
1173         uint8_t theme;
1174         uint8_t hyperlink;
1175         uint8_t hidden;
1176         uint8_t locked;
1177         uint8_t text_h_align;
1178         uint8_t text_wrap;
1179         uint8_t text_v_align;
1180         uint8_t text_justlast;
1181         int16_t rotation;
1182         lxw_color_t fg_color;
1183         lxw_color_t bg_color;
1184         uint8_t pattern;
1185         uint8_t has_fill;
1186         uint8_t has_dxf_fill;
1187         int32_t fill_index;
1188         int32_t fill_count;
1189         int32_t border_index;
1190         uint8_t has_border;
1191         uint8_t has_dxf_border;
1192         int32_t border_count;
1193         uint8_t bottom;
1194         uint8_t diag_border;
1195         uint8_t diag_type;
1196         uint8_t left;
1197         uint8_t right;
1198         uint8_t top;
1199         lxw_color_t bottom_color;
1200         lxw_color_t diag_color;
1201         lxw_color_t left_color;
1202         lxw_color_t right_color;
1203         lxw_color_t top_color;
1204         uint8_t indent;
1205         uint8_t shrink;
1206         uint8_t merge_range;
1207         uint8_t reading_order;
1208         uint8_t just_distrib;
1209         uint8_t color_indexed;
1210         uint8_t font_only;
1211         static struct _Anonymous_7
1212         {
1213             lxw_format* stqe_next;
1214         }
1215         _Anonymous_7 list_pointers;
1216     }
1217     struct lxw_formats
1218     {
1219         lxw_format* stqh_first;
1220         lxw_format** stqh_last;
1221     }
1222     struct lxw_tuple
1223     {
1224         char* key;
1225         char* value;
1226         static struct _Anonymous_8
1227         {
1228             lxw_tuple* stqe_next;
1229         }
1230         _Anonymous_8 list_pointers;
1231     }
1232     struct lxw_tuples
1233     {
1234         lxw_tuple* stqh_first;
1235         lxw_tuple** stqh_last;
1236     }
1237     struct lxw_custom_property
1238     {
1239         lxw_custom_property_types type;
1240         char* name;
1241         static union _Anonymous_9
1242         {
1243             char* string;
1244             double number;
1245             int32_t integer;
1246             uint8_t boolean;
1247             lxw_datetime datetime;
1248         }
1249         _Anonymous_9 u;
1250         static struct _Anonymous_10
1251         {
1252             lxw_custom_property* stqe_next;
1253         }
1254         _Anonymous_10 list_pointers;
1255     }
1256     struct lxw_custom_properties
1257     {
1258         lxw_custom_property* stqh_first;
1259         lxw_custom_property** stqh_last;
1260     }
1261     alias z_size_t = c_ulong;
1262     struct lxw_content_types
1263     {
1264         FILE* file;
1265         lxw_tuples* default_types;
1266         lxw_tuples* overrides;
1267     }
1268     lxw_content_types* lxw_content_types_new() @nogc nothrow;
1269     void lxw_content_types_free(lxw_content_types*) @nogc nothrow;
1270     void lxw_content_types_assemble_xml_file(lxw_content_types*) @nogc nothrow;
1271     void lxw_ct_add_default(lxw_content_types*, const(char)*, const(char)*) @nogc nothrow;
1272     void lxw_ct_add_override(lxw_content_types*, const(char)*, const(char)*) @nogc nothrow;
1273     void lxw_ct_add_worksheet_name(lxw_content_types*, const(char)*) @nogc nothrow;
1274     void lxw_ct_add_chartsheet_name(lxw_content_types*, const(char)*) @nogc nothrow;
1275     void lxw_ct_add_chart_name(lxw_content_types*, const(char)*) @nogc nothrow;
1276     void lxw_ct_add_drawing_name(lxw_content_types*, const(char)*) @nogc nothrow;
1277     void lxw_ct_add_shared_strings(lxw_content_types*) @nogc nothrow;
1278     void lxw_ct_add_calc_chain(lxw_content_types*) @nogc nothrow;
1279     void lxw_ct_add_custom_properties(lxw_content_types*) @nogc nothrow;
1280     struct lxw_core
1281     {
1282         FILE* file;
1283         lxw_doc_properties* properties;
1284     }
1285     lxw_core* lxw_core_new() @nogc nothrow;
1286     void lxw_core_free(lxw_core*) @nogc nothrow;
1287     void lxw_core_assemble_xml_file(lxw_core*) @nogc nothrow;
1288     struct lxw_custom
1289     {
1290         FILE* file;
1291         lxw_custom_properties* custom_properties;
1292         uint32_t pid;
1293     }
1294     lxw_custom* lxw_custom_new() @nogc nothrow;
1295     void lxw_custom_free(lxw_custom*) @nogc nothrow;
1296     void lxw_custom_assemble_xml_file(lxw_custom*) @nogc nothrow;
1297     struct lxw_drawing_objects
1298     {
1299         lxw_drawing_object* stqh_first;
1300         lxw_drawing_object** stqh_last;
1301     }
1302     struct lxw_drawing_object
1303     {
1304         uint8_t anchor_type;
1305         uint8_t edit_as;
1306         lxw_drawing_coords from;
1307         lxw_drawing_coords to;
1308         uint32_t col_absolute;
1309         uint32_t row_absolute;
1310         uint32_t width;
1311         uint32_t height;
1312         uint8_t shape;
1313         char* description;
1314         char* url;
1315         char* tip;
1316         static struct _Anonymous_11
1317         {
1318             lxw_drawing_object* stqe_next;
1319         }
1320         _Anonymous_11 list_pointers;
1321     }
1322     enum lxw_drawing_types
1323     {
1324         LXW_DRAWING_NONE = 0,
1325         LXW_DRAWING_IMAGE = 1,
1326         LXW_DRAWING_CHART = 2,
1327         LXW_DRAWING_SHAPE = 3,
1328     }
1329     enum LXW_DRAWING_NONE = lxw_drawing_types.LXW_DRAWING_NONE;
1330     enum LXW_DRAWING_IMAGE = lxw_drawing_types.LXW_DRAWING_IMAGE;
1331     enum LXW_DRAWING_CHART = lxw_drawing_types.LXW_DRAWING_CHART;
1332     enum LXW_DRAWING_SHAPE = lxw_drawing_types.LXW_DRAWING_SHAPE;
1333     enum lxw_anchor_types
1334     {
1335         LXW_ANCHOR_TYPE_NONE = 0,
1336         LXW_ANCHOR_TYPE_IMAGE = 1,
1337         LXW_ANCHOR_TYPE_CHART = 2,
1338     }
1339     enum LXW_ANCHOR_TYPE_NONE = lxw_anchor_types.LXW_ANCHOR_TYPE_NONE;
1340     enum LXW_ANCHOR_TYPE_IMAGE = lxw_anchor_types.LXW_ANCHOR_TYPE_IMAGE;
1341     enum LXW_ANCHOR_TYPE_CHART = lxw_anchor_types.LXW_ANCHOR_TYPE_CHART;
1342     enum lxw_anchor_edit_types
1343     {
1344         LXW_ANCHOR_EDIT_AS_NONE = 0,
1345         LXW_ANCHOR_EDIT_AS_RELATIVE = 1,
1346         LXW_ANCHOR_EDIT_AS_ONE_CELL = 2,
1347         LXW_ANCHOR_EDIT_AS_ABSOLUTE = 3,
1348     }
1349     enum LXW_ANCHOR_EDIT_AS_NONE = lxw_anchor_edit_types.LXW_ANCHOR_EDIT_AS_NONE;
1350     enum LXW_ANCHOR_EDIT_AS_RELATIVE = lxw_anchor_edit_types.LXW_ANCHOR_EDIT_AS_RELATIVE;
1351     enum LXW_ANCHOR_EDIT_AS_ONE_CELL = lxw_anchor_edit_types.LXW_ANCHOR_EDIT_AS_ONE_CELL;
1352     enum LXW_ANCHOR_EDIT_AS_ABSOLUTE = lxw_anchor_edit_types.LXW_ANCHOR_EDIT_AS_ABSOLUTE;
1353     enum image_types
1354     {
1355         LXW_IMAGE_UNKNOWN = 0,
1356         LXW_IMAGE_PNG = 1,
1357         LXW_IMAGE_JPEG = 2,
1358         LXW_IMAGE_BMP = 3,
1359     }
1360     enum LXW_IMAGE_UNKNOWN = image_types.LXW_IMAGE_UNKNOWN;
1361     enum LXW_IMAGE_PNG = image_types.LXW_IMAGE_PNG;
1362     enum LXW_IMAGE_JPEG = image_types.LXW_IMAGE_JPEG;
1363     enum LXW_IMAGE_BMP = image_types.LXW_IMAGE_BMP;
1364     struct lxw_drawing_coords
1365     {
1366         uint32_t col;
1367         uint32_t row;
1368         double col_offset;
1369         double row_offset;
1370     }
1371     struct lxw_drawing
1372     {
1373         FILE* file;
1374         uint8_t embedded;
1375         uint8_t orientation;
1376         lxw_drawing_objects* drawing_objects;
1377     }
1378     lxw_drawing* lxw_drawing_new() @nogc nothrow;
1379     void lxw_drawing_free(lxw_drawing*) @nogc nothrow;
1380     void lxw_drawing_assemble_xml_file(lxw_drawing*) @nogc nothrow;
1381     void lxw_free_drawing_object(lxw_drawing_object*) @nogc nothrow;
1382     void lxw_add_drawing_object(lxw_drawing*, lxw_drawing_object*) @nogc nothrow;
1383     alias lxw_color_t = int;
1384     enum lxw_format_underlines
1385     {
1386         LXW_UNDERLINE_SINGLE = 1,
1387         LXW_UNDERLINE_DOUBLE = 2,
1388         LXW_UNDERLINE_SINGLE_ACCOUNTING = 3,
1389         LXW_UNDERLINE_DOUBLE_ACCOUNTING = 4,
1390     }
1391     enum LXW_UNDERLINE_SINGLE = lxw_format_underlines.LXW_UNDERLINE_SINGLE;
1392     enum LXW_UNDERLINE_DOUBLE = lxw_format_underlines.LXW_UNDERLINE_DOUBLE;
1393     enum LXW_UNDERLINE_SINGLE_ACCOUNTING = lxw_format_underlines.LXW_UNDERLINE_SINGLE_ACCOUNTING;
1394     enum LXW_UNDERLINE_DOUBLE_ACCOUNTING = lxw_format_underlines.LXW_UNDERLINE_DOUBLE_ACCOUNTING;
1395     enum lxw_format_scripts
1396     {
1397         LXW_FONT_SUPERSCRIPT = 1,
1398         LXW_FONT_SUBSCRIPT = 2,
1399     }
1400     enum LXW_FONT_SUPERSCRIPT = lxw_format_scripts.LXW_FONT_SUPERSCRIPT;
1401     enum LXW_FONT_SUBSCRIPT = lxw_format_scripts.LXW_FONT_SUBSCRIPT;
1402     enum lxw_format_alignments
1403     {
1404         LXW_ALIGN_NONE = 0,
1405         LXW_ALIGN_LEFT = 1,
1406         LXW_ALIGN_CENTER = 2,
1407         LXW_ALIGN_RIGHT = 3,
1408         LXW_ALIGN_FILL = 4,
1409         LXW_ALIGN_JUSTIFY = 5,
1410         LXW_ALIGN_CENTER_ACROSS = 6,
1411         LXW_ALIGN_DISTRIBUTED = 7,
1412         LXW_ALIGN_VERTICAL_TOP = 8,
1413         LXW_ALIGN_VERTICAL_BOTTOM = 9,
1414         LXW_ALIGN_VERTICAL_CENTER = 10,
1415         LXW_ALIGN_VERTICAL_JUSTIFY = 11,
1416         LXW_ALIGN_VERTICAL_DISTRIBUTED = 12,
1417     }
1418     enum LXW_ALIGN_NONE = lxw_format_alignments.LXW_ALIGN_NONE;
1419     enum LXW_ALIGN_LEFT = lxw_format_alignments.LXW_ALIGN_LEFT;
1420     enum LXW_ALIGN_CENTER = lxw_format_alignments.LXW_ALIGN_CENTER;
1421     enum LXW_ALIGN_RIGHT = lxw_format_alignments.LXW_ALIGN_RIGHT;
1422     enum LXW_ALIGN_FILL = lxw_format_alignments.LXW_ALIGN_FILL;
1423     enum LXW_ALIGN_JUSTIFY = lxw_format_alignments.LXW_ALIGN_JUSTIFY;
1424     enum LXW_ALIGN_CENTER_ACROSS = lxw_format_alignments.LXW_ALIGN_CENTER_ACROSS;
1425     enum LXW_ALIGN_DISTRIBUTED = lxw_format_alignments.LXW_ALIGN_DISTRIBUTED;
1426     enum LXW_ALIGN_VERTICAL_TOP = lxw_format_alignments.LXW_ALIGN_VERTICAL_TOP;
1427     enum LXW_ALIGN_VERTICAL_BOTTOM = lxw_format_alignments.LXW_ALIGN_VERTICAL_BOTTOM;
1428     enum LXW_ALIGN_VERTICAL_CENTER = lxw_format_alignments.LXW_ALIGN_VERTICAL_CENTER;
1429     enum LXW_ALIGN_VERTICAL_JUSTIFY = lxw_format_alignments.LXW_ALIGN_VERTICAL_JUSTIFY;
1430     enum LXW_ALIGN_VERTICAL_DISTRIBUTED = lxw_format_alignments.LXW_ALIGN_VERTICAL_DISTRIBUTED;
1431     enum lxw_format_diagonal_types
1432     {
1433         LXW_DIAGONAL_BORDER_UP = 1,
1434         LXW_DIAGONAL_BORDER_DOWN = 2,
1435         LXW_DIAGONAL_BORDER_UP_DOWN = 3,
1436     }
1437     enum LXW_DIAGONAL_BORDER_UP = lxw_format_diagonal_types.LXW_DIAGONAL_BORDER_UP;
1438     enum LXW_DIAGONAL_BORDER_DOWN = lxw_format_diagonal_types.LXW_DIAGONAL_BORDER_DOWN;
1439     enum LXW_DIAGONAL_BORDER_UP_DOWN = lxw_format_diagonal_types.LXW_DIAGONAL_BORDER_UP_DOWN;
1440     enum lxw_defined_colors
1441     {
1442         LXW_COLOR_BLACK = 16777216,
1443         LXW_COLOR_BLUE = 255,
1444         LXW_COLOR_BROWN = 8388608,
1445         LXW_COLOR_CYAN = 65535,
1446         LXW_COLOR_GRAY = 8421504,
1447         LXW_COLOR_GREEN = 32768,
1448         LXW_COLOR_LIME = 65280,
1449         LXW_COLOR_MAGENTA = 16711935,
1450         LXW_COLOR_NAVY = 128,
1451         LXW_COLOR_ORANGE = 16737792,
1452         LXW_COLOR_PINK = 16711935,
1453         LXW_COLOR_PURPLE = 8388736,
1454         LXW_COLOR_RED = 16711680,
1455         LXW_COLOR_SILVER = 12632256,
1456         LXW_COLOR_WHITE = 16777215,
1457         LXW_COLOR_YELLOW = 16776960,
1458     }
1459     enum LXW_COLOR_BLACK = lxw_defined_colors.LXW_COLOR_BLACK;
1460     enum LXW_COLOR_BLUE = lxw_defined_colors.LXW_COLOR_BLUE;
1461     enum LXW_COLOR_BROWN = lxw_defined_colors.LXW_COLOR_BROWN;
1462     enum LXW_COLOR_CYAN = lxw_defined_colors.LXW_COLOR_CYAN;
1463     enum LXW_COLOR_GRAY = lxw_defined_colors.LXW_COLOR_GRAY;
1464     enum LXW_COLOR_GREEN = lxw_defined_colors.LXW_COLOR_GREEN;
1465     enum LXW_COLOR_LIME = lxw_defined_colors.LXW_COLOR_LIME;
1466     enum LXW_COLOR_MAGENTA = lxw_defined_colors.LXW_COLOR_MAGENTA;
1467     enum LXW_COLOR_NAVY = lxw_defined_colors.LXW_COLOR_NAVY;
1468     enum LXW_COLOR_ORANGE = lxw_defined_colors.LXW_COLOR_ORANGE;
1469     enum LXW_COLOR_PINK = lxw_defined_colors.LXW_COLOR_PINK;
1470     enum LXW_COLOR_PURPLE = lxw_defined_colors.LXW_COLOR_PURPLE;
1471     enum LXW_COLOR_RED = lxw_defined_colors.LXW_COLOR_RED;
1472     enum LXW_COLOR_SILVER = lxw_defined_colors.LXW_COLOR_SILVER;
1473     enum LXW_COLOR_WHITE = lxw_defined_colors.LXW_COLOR_WHITE;
1474     enum LXW_COLOR_YELLOW = lxw_defined_colors.LXW_COLOR_YELLOW;
1475     enum lxw_format_patterns
1476     {
1477         LXW_PATTERN_NONE = 0,
1478         LXW_PATTERN_SOLID = 1,
1479         LXW_PATTERN_MEDIUM_GRAY = 2,
1480         LXW_PATTERN_DARK_GRAY = 3,
1481         LXW_PATTERN_LIGHT_GRAY = 4,
1482         LXW_PATTERN_DARK_HORIZONTAL = 5,
1483         LXW_PATTERN_DARK_VERTICAL = 6,
1484         LXW_PATTERN_DARK_DOWN = 7,
1485         LXW_PATTERN_DARK_UP = 8,
1486         LXW_PATTERN_DARK_GRID = 9,
1487         LXW_PATTERN_DARK_TRELLIS = 10,
1488         LXW_PATTERN_LIGHT_HORIZONTAL = 11,
1489         LXW_PATTERN_LIGHT_VERTICAL = 12,
1490         LXW_PATTERN_LIGHT_DOWN = 13,
1491         LXW_PATTERN_LIGHT_UP = 14,
1492         LXW_PATTERN_LIGHT_GRID = 15,
1493         LXW_PATTERN_LIGHT_TRELLIS = 16,
1494         LXW_PATTERN_GRAY_125 = 17,
1495         LXW_PATTERN_GRAY_0625 = 18,
1496     }
1497     enum LXW_PATTERN_NONE = lxw_format_patterns.LXW_PATTERN_NONE;
1498     enum LXW_PATTERN_SOLID = lxw_format_patterns.LXW_PATTERN_SOLID;
1499     enum LXW_PATTERN_MEDIUM_GRAY = lxw_format_patterns.LXW_PATTERN_MEDIUM_GRAY;
1500     enum LXW_PATTERN_DARK_GRAY = lxw_format_patterns.LXW_PATTERN_DARK_GRAY;
1501     enum LXW_PATTERN_LIGHT_GRAY = lxw_format_patterns.LXW_PATTERN_LIGHT_GRAY;
1502     enum LXW_PATTERN_DARK_HORIZONTAL = lxw_format_patterns.LXW_PATTERN_DARK_HORIZONTAL;
1503     enum LXW_PATTERN_DARK_VERTICAL = lxw_format_patterns.LXW_PATTERN_DARK_VERTICAL;
1504     enum LXW_PATTERN_DARK_DOWN = lxw_format_patterns.LXW_PATTERN_DARK_DOWN;
1505     enum LXW_PATTERN_DARK_UP = lxw_format_patterns.LXW_PATTERN_DARK_UP;
1506     enum LXW_PATTERN_DARK_GRID = lxw_format_patterns.LXW_PATTERN_DARK_GRID;
1507     enum LXW_PATTERN_DARK_TRELLIS = lxw_format_patterns.LXW_PATTERN_DARK_TRELLIS;
1508     enum LXW_PATTERN_LIGHT_HORIZONTAL = lxw_format_patterns.LXW_PATTERN_LIGHT_HORIZONTAL;
1509     enum LXW_PATTERN_LIGHT_VERTICAL = lxw_format_patterns.LXW_PATTERN_LIGHT_VERTICAL;
1510     enum LXW_PATTERN_LIGHT_DOWN = lxw_format_patterns.LXW_PATTERN_LIGHT_DOWN;
1511     enum LXW_PATTERN_LIGHT_UP = lxw_format_patterns.LXW_PATTERN_LIGHT_UP;
1512     enum LXW_PATTERN_LIGHT_GRID = lxw_format_patterns.LXW_PATTERN_LIGHT_GRID;
1513     enum LXW_PATTERN_LIGHT_TRELLIS = lxw_format_patterns.LXW_PATTERN_LIGHT_TRELLIS;
1514     enum LXW_PATTERN_GRAY_125 = lxw_format_patterns.LXW_PATTERN_GRAY_125;
1515     enum LXW_PATTERN_GRAY_0625 = lxw_format_patterns.LXW_PATTERN_GRAY_0625;
1516     enum lxw_format_borders
1517     {
1518         LXW_BORDER_NONE = 0,
1519         LXW_BORDER_THIN = 1,
1520         LXW_BORDER_MEDIUM = 2,
1521         LXW_BORDER_DASHED = 3,
1522         LXW_BORDER_DOTTED = 4,
1523         LXW_BORDER_THICK = 5,
1524         LXW_BORDER_DOUBLE = 6,
1525         LXW_BORDER_HAIR = 7,
1526         LXW_BORDER_MEDIUM_DASHED = 8,
1527         LXW_BORDER_DASH_DOT = 9,
1528         LXW_BORDER_MEDIUM_DASH_DOT = 10,
1529         LXW_BORDER_DASH_DOT_DOT = 11,
1530         LXW_BORDER_MEDIUM_DASH_DOT_DOT = 12,
1531         LXW_BORDER_SLANT_DASH_DOT = 13,
1532     }
1533     enum LXW_BORDER_NONE = lxw_format_borders.LXW_BORDER_NONE;
1534     enum LXW_BORDER_THIN = lxw_format_borders.LXW_BORDER_THIN;
1535     enum LXW_BORDER_MEDIUM = lxw_format_borders.LXW_BORDER_MEDIUM;
1536     enum LXW_BORDER_DASHED = lxw_format_borders.LXW_BORDER_DASHED;
1537     enum LXW_BORDER_DOTTED = lxw_format_borders.LXW_BORDER_DOTTED;
1538     enum LXW_BORDER_THICK = lxw_format_borders.LXW_BORDER_THICK;
1539     enum LXW_BORDER_DOUBLE = lxw_format_borders.LXW_BORDER_DOUBLE;
1540     enum LXW_BORDER_HAIR = lxw_format_borders.LXW_BORDER_HAIR;
1541     enum LXW_BORDER_MEDIUM_DASHED = lxw_format_borders.LXW_BORDER_MEDIUM_DASHED;
1542     enum LXW_BORDER_DASH_DOT = lxw_format_borders.LXW_BORDER_DASH_DOT;
1543     enum LXW_BORDER_MEDIUM_DASH_DOT = lxw_format_borders.LXW_BORDER_MEDIUM_DASH_DOT;
1544     enum LXW_BORDER_DASH_DOT_DOT = lxw_format_borders.LXW_BORDER_DASH_DOT_DOT;
1545     enum LXW_BORDER_MEDIUM_DASH_DOT_DOT = lxw_format_borders.LXW_BORDER_MEDIUM_DASH_DOT_DOT;
1546     enum LXW_BORDER_SLANT_DASH_DOT = lxw_format_borders.LXW_BORDER_SLANT_DASH_DOT;
1547     struct lxw_font
1548     {
1549         char[128] font_name;
1550         double font_size;
1551         uint8_t bold;
1552         uint8_t italic;
1553         uint8_t underline;
1554         uint8_t font_strikeout;
1555         uint8_t font_outline;
1556         uint8_t font_shadow;
1557         uint8_t font_script;
1558         uint8_t font_family;
1559         uint8_t font_charset;
1560         uint8_t font_condense;
1561         uint8_t font_extend;
1562         lxw_color_t font_color;
1563     }
1564     struct lxw_border
1565     {
1566         uint8_t bottom;
1567         uint8_t diag_border;
1568         uint8_t diag_type;
1569         uint8_t left;
1570         uint8_t right;
1571         uint8_t top;
1572         lxw_color_t bottom_color;
1573         lxw_color_t diag_color;
1574         lxw_color_t left_color;
1575         lxw_color_t right_color;
1576         lxw_color_t top_color;
1577     }
1578     struct lxw_fill
1579     {
1580         lxw_color_t fg_color;
1581         lxw_color_t bg_color;
1582         uint8_t pattern;
1583     }
1584     lxw_format* lxw_format_new() @nogc nothrow;
1585     void lxw_format_free(lxw_format*) @nogc nothrow;
1586     int32_t lxw_format_get_xf_index(lxw_format*) @nogc nothrow;
1587     lxw_font* lxw_format_get_font_key(lxw_format*) @nogc nothrow;
1588     lxw_border* lxw_format_get_border_key(lxw_format*) @nogc nothrow;
1589     lxw_fill* lxw_format_get_fill_key(lxw_format*) @nogc nothrow;
1590     lxw_color_t lxw_format_check_color(lxw_color_t) @nogc nothrow;
1591     void format_set_font_name(lxw_format*, const(char)*) @nogc nothrow;
1592     void format_set_font_size(lxw_format*, double) @nogc nothrow;
1593     void format_set_font_color(lxw_format*, lxw_color_t) @nogc nothrow;
1594     void format_set_bold(lxw_format*) @nogc nothrow;
1595     void format_set_italic(lxw_format*) @nogc nothrow;
1596     void format_set_underline(lxw_format*, uint8_t) @nogc nothrow;
1597     void format_set_font_strikeout(lxw_format*) @nogc nothrow;
1598     void format_set_font_script(lxw_format*, uint8_t) @nogc nothrow;
1599     void format_set_num_format(lxw_format*, const(char)*) @nogc nothrow;
1600     void format_set_num_format_index(lxw_format*, uint8_t) @nogc nothrow;
1601     void format_set_unlocked(lxw_format*) @nogc nothrow;
1602     void format_set_hidden(lxw_format*) @nogc nothrow;
1603     void format_set_align(lxw_format*, uint8_t) @nogc nothrow;
1604     void format_set_text_wrap(lxw_format*) @nogc nothrow;
1605     void format_set_rotation(lxw_format*, int16_t) @nogc nothrow;
1606     void format_set_indent(lxw_format*, uint8_t) @nogc nothrow;
1607     void format_set_shrink(lxw_format*) @nogc nothrow;
1608     void format_set_pattern(lxw_format*, uint8_t) @nogc nothrow;
1609     void format_set_bg_color(lxw_format*, lxw_color_t) @nogc nothrow;
1610     void format_set_fg_color(lxw_format*, lxw_color_t) @nogc nothrow;
1611     void format_set_border(lxw_format*, uint8_t) @nogc nothrow;
1612     void format_set_bottom(lxw_format*, uint8_t) @nogc nothrow;
1613     void format_set_top(lxw_format*, uint8_t) @nogc nothrow;
1614     void format_set_left(lxw_format*, uint8_t) @nogc nothrow;
1615     void format_set_right(lxw_format*, uint8_t) @nogc nothrow;
1616     void format_set_border_color(lxw_format*, lxw_color_t) @nogc nothrow;
1617     void format_set_bottom_color(lxw_format*, lxw_color_t) @nogc nothrow;
1618     void format_set_top_color(lxw_format*, lxw_color_t) @nogc nothrow;
1619     void format_set_left_color(lxw_format*, lxw_color_t) @nogc nothrow;
1620     void format_set_right_color(lxw_format*, lxw_color_t) @nogc nothrow;
1621     void format_set_diag_type(lxw_format*, uint8_t) @nogc nothrow;
1622     void format_set_diag_color(lxw_format*, lxw_color_t) @nogc nothrow;
1623     void format_set_diag_border(lxw_format*, uint8_t) @nogc nothrow;
1624     void format_set_font_outline(lxw_format*) @nogc nothrow;
1625     void format_set_font_shadow(lxw_format*) @nogc nothrow;
1626     void format_set_font_family(lxw_format*, uint8_t) @nogc nothrow;
1627     void format_set_font_charset(lxw_format*, uint8_t) @nogc nothrow;
1628     void format_set_font_scheme(lxw_format*, const(char)*) @nogc nothrow;
1629     void format_set_font_condense(lxw_format*) @nogc nothrow;
1630     void format_set_font_extend(lxw_format*) @nogc nothrow;
1631     void format_set_reading_order(lxw_format*, uint8_t) @nogc nothrow;
1632     void format_set_theme(lxw_format*, uint8_t) @nogc nothrow;
1633     alias fsfilcnt_t = c_ulong;
1634     struct lxw_hash_order_list
1635     {
1636         lxw_hash_element* stqh_first;
1637         lxw_hash_element** stqh_last;
1638     }
1639     struct lxw_hash_element
1640     {
1641         void* key;
1642         void* value;
1643         static struct _Anonymous_12
1644         {
1645             lxw_hash_element* stqe_next;
1646         }
1647         _Anonymous_12 lxw_hash_order_pointers;
1648         static struct _Anonymous_13
1649         {
1650             lxw_hash_element* sle_next;
1651         }
1652         _Anonymous_13 lxw_hash_list_pointers;
1653     }
1654     struct lxw_hash_bucket_list
1655     {
1656         lxw_hash_element* slh_first;
1657     }
1658     struct lxw_hash_table
1659     {
1660         uint32_t num_buckets;
1661         uint32_t used_buckets;
1662         uint32_t unique_count;
1663         uint8_t free_key;
1664         uint8_t free_value;
1665         lxw_hash_order_list* order_list;
1666         lxw_hash_bucket_list** buckets;
1667     }
1668     lxw_hash_element* lxw_hash_key_exists(lxw_hash_table*, void*, size_t) @nogc nothrow;
1669     lxw_hash_element* lxw_insert_hash_element(lxw_hash_table*, void*, void*, size_t) @nogc nothrow;
1670     lxw_hash_table* lxw_hash_new(uint32_t, uint8_t, uint8_t) @nogc nothrow;
1671     void lxw_hash_free(lxw_hash_table*) @nogc nothrow;
1672     alias fsblkcnt_t = c_ulong;
1673     alias blkcnt_t = c_long;
1674     alias blksize_t = c_long;
1675     struct lxw_packager
1676     {
1677         FILE* file;
1678         lxw_workbook* workbook;
1679         size_t buffer_size;
1680         zipFile zipfile;
1681         zip_fileinfo zipfile_info;
1682         char* filename;
1683         char* buffer;
1684         char* tmpdir;
1685         uint16_t chart_count;
1686         uint16_t drawing_count;
1687     }
1688     lxw_packager* lxw_packager_new(const(char)*, char*) @nogc nothrow;
1689     void lxw_packager_free(lxw_packager*) @nogc nothrow;
1690     lxw_error lxw_create_package(lxw_packager*) @nogc nothrow;
1691     struct lxw_rel_tuple
1692     {
1693         char* type;
1694         char* target;
1695         char* target_mode;
1696         static struct _Anonymous_14
1697         {
1698             lxw_rel_tuple* stqe_next;
1699         }
1700         _Anonymous_14 list_pointers;
1701     }
1702     struct lxw_relationships
1703     {
1704         FILE* file;
1705         uint32_t rel_id;
1706         lxw_rel_tuples* relationships;
1707     }
1708     lxw_relationships* lxw_relationships_new() @nogc nothrow;
1709     void lxw_free_relationships(lxw_relationships*) @nogc nothrow;
1710     void lxw_relationships_assemble_xml_file(lxw_relationships*) @nogc nothrow;
1711     void lxw_add_document_relationship(lxw_relationships*, const(char)*, const(char)*) @nogc nothrow;
1712     void lxw_add_package_relationship(lxw_relationships*, const(char)*, const(char)*) @nogc nothrow;
1713     void lxw_add_ms_package_relationship(lxw_relationships*, const(char)*, const(char)*) @nogc nothrow;
1714     void lxw_add_worksheet_relationship(lxw_relationships*, const(char)*, const(char)*, const(char)*) @nogc nothrow;
1715     struct sst_element
1716     {
1717         uint32_t index;
1718         char* string;
1719         uint8_t is_rich_string;
1720         static struct _Anonymous_15
1721         {
1722             sst_element* stqe_next;
1723         }
1724         _Anonymous_15 sst_order_pointers;
1725         static struct _Anonymous_16
1726         {
1727             sst_element* rbe_left;
1728             sst_element* rbe_right;
1729             sst_element* rbe_parent;
1730             int rbe_color;
1731         }
1732         _Anonymous_16 sst_tree_pointers;
1733     }
1734     struct sst_rb_tree
1735     {
1736         sst_element* rbh_root;
1737     }
1738     struct sst_order_list
1739     {
1740         sst_element* stqh_first;
1741         sst_element** stqh_last;
1742     }
1743     struct lxw_sst
1744     {
1745         FILE* file;
1746         uint32_t string_count;
1747         uint32_t unique_count;
1748         sst_order_list* order_list;
1749         sst_rb_tree* rb_tree;
1750     }
1751     lxw_sst* lxw_sst_new() @nogc nothrow;
1752     void lxw_sst_free(lxw_sst*) @nogc nothrow;
1753     sst_element* lxw_get_sst_index(lxw_sst*, const(char)*, uint8_t) @nogc nothrow;
1754     void lxw_sst_assemble_xml_file(lxw_sst*) @nogc nothrow;
1755     struct lxw_styles
1756     {
1757         FILE* file;
1758         uint32_t font_count;
1759         uint32_t xf_count;
1760         uint32_t dxf_count;
1761         uint32_t num_format_count;
1762         uint32_t border_count;
1763         uint32_t fill_count;
1764         lxw_formats* xf_formats;
1765         lxw_formats* dxf_formats;
1766     }
1767     lxw_styles* lxw_styles_new() @nogc nothrow;
1768     void lxw_styles_free(lxw_styles*) @nogc nothrow;
1769     void lxw_styles_assemble_xml_file(lxw_styles*) @nogc nothrow;
1770     void lxw_styles_write_string_fragment(lxw_styles*, char*) @nogc nothrow;
1771     void lxw_styles_write_rich_font(lxw_styles*, lxw_format*) @nogc nothrow;
1772     struct lxw_theme
1773     {
1774         FILE* file;
1775     }
1776     lxw_theme* lxw_theme_new() @nogc nothrow;
1777     void lxw_theme_free(lxw_theme*) @nogc nothrow;
1778     void lxw_theme_xml_declaration(lxw_theme*) @nogc nothrow;
1779     void lxw_theme_assemble_xml_file(lxw_theme*) @nogc nothrow;
1780     alias register_t = c_long;
1781     alias u_int64_t = c_ulong;
1782     alias u_int32_t = uint;
1783     alias ZPOS64_T = ulong;
1784     alias u_int16_t = ushort;
1785     alias u_int8_t = ubyte;
1786     alias open_file_func = void* function(voidpf, const(char)*, int) @nogc nothrow;
1787     alias read_file_func = c_ulong function(voidpf, voidpf, void*, uLong) @nogc nothrow;
1788     alias write_file_func = c_ulong function(voidpf, voidpf, const(void)*, uLong) @nogc nothrow;
1789     alias close_file_func = int function(voidpf, voidpf) @nogc nothrow;
1790     alias testerror_file_func = int function(voidpf, voidpf) @nogc nothrow;
1791     alias tell_file_func = c_long function(voidpf, voidpf) @nogc nothrow;
1792     alias seek_file_func = c_long function(voidpf, voidpf, uLong, int) @nogc nothrow;
1793     alias zlib_filefunc_def = zlib_filefunc_def_s;
1794     struct zlib_filefunc_def_s
1795     {
1796         open_file_func zopen_file;
1797         read_file_func zread_file;
1798         write_file_func zwrite_file;
1799         tell_file_func ztell_file;
1800         seek_file_func zseek_file;
1801         close_file_func zclose_file;
1802         testerror_file_func zerror_file;
1803         voidpf opaque;
1804     }
1805     alias tell64_file_func = ulong function(voidpf, voidpf) @nogc nothrow;
1806     alias seek64_file_func = c_long function(voidpf, voidpf, ZPOS64_T, int) @nogc nothrow;
1807     alias open64_file_func = void* function(voidpf, const(void)*, int) @nogc nothrow;
1808     alias zlib_filefunc64_def = zlib_filefunc64_def_s;
1809     struct zlib_filefunc64_def_s
1810     {
1811         open64_file_func zopen64_file;
1812         read_file_func zread_file;
1813         write_file_func zwrite_file;
1814         tell64_file_func ztell64_file;
1815         seek64_file_func zseek64_file;
1816         close_file_func zclose_file;
1817         testerror_file_func zerror_file;
1818         voidpf opaque;
1819     }
1820     void fill_fopen64_filefunc(zlib_filefunc64_def*) @nogc nothrow;
1821     void fill_fopen_filefunc(zlib_filefunc_def*) @nogc nothrow;
1822     alias zlib_filefunc64_32_def = zlib_filefunc64_32_def_s;
1823     struct zlib_filefunc64_32_def_s
1824     {
1825         zlib_filefunc64_def zfile_func64;
1826         open_file_func zopen32_file;
1827         tell_file_func ztell32_file;
1828         seek_file_func zseek32_file;
1829     }
1830     voidpf call_zopen64(const(zlib_filefunc64_32_def)*, const(void)*, int) @nogc nothrow;
1831     c_long call_zseek64(const(zlib_filefunc64_32_def)*, voidpf, ZPOS64_T, int) @nogc nothrow;
1832     ZPOS64_T call_ztell64(const(zlib_filefunc64_32_def)*, voidpf) @nogc nothrow;
1833     void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def*, const(zlib_filefunc_def)*) @nogc nothrow;
1834     alias key_t = int;
1835     alias caddr_t = char*;
1836     alias daddr_t = int;
1837     alias id_t = uint;
1838     alias pid_t = int;
1839     alias uid_t = uint;
1840     alias nlink_t = c_ulong;
1841     alias mode_t = uint;
1842     alias gid_t = uint;
1843     alias dev_t = c_ulong;
1844     alias ino_t = c_ulong;
1845     alias loff_t = c_long;
1846     alias fsid_t = __fsid_t;
1847     alias u_quad_t = c_ulong;
1848     alias quad_t = c_long;
1849     alias u_long = c_ulong;
1850     alias u_int = uint;
1851     alias u_short = ushort;
1852     alias u_char = ubyte;
1853     __dev_t gnu_dev_makedev(uint, uint) @nogc nothrow;
1854     uint gnu_dev_minor(__dev_t) @nogc nothrow;
1855     uint gnu_dev_major(__dev_t) @nogc nothrow;
1856     int pselect(int, fd_set*, fd_set*, fd_set*, const(timespec)*, const(__sigset_t)*) @nogc nothrow;
1857     int select(int, fd_set*, fd_set*, fd_set*, timeval*) @nogc nothrow;
1858     alias fd_mask = c_long;
1859     struct fd_set
1860     {
1861         __fd_mask[16] __fds_bits;
1862     }
1863     alias __fd_mask = c_long;
1864     alias suseconds_t = c_long;
1865     enum _Anonymous_17
1866     {
1867         P_ALL = 0,
1868         P_PID = 1,
1869         P_PGID = 2,
1870     }
1871     enum P_ALL = _Anonymous_17.P_ALL;
1872     enum P_PID = _Anonymous_17.P_PID;
1873     enum P_PGID = _Anonymous_17.P_PGID;
1874     alias idtype_t = _Anonymous_17;
1875     static __uint64_t __uint64_identity(__uint64_t) @nogc nothrow;
1876     static __uint32_t __uint32_identity(__uint32_t) @nogc nothrow;
1877     static __uint16_t __uint16_identity(__uint16_t) @nogc nothrow;
1878     alias timer_t = void*;
1879     alias time_t = c_long;
1880     struct tm
1881     {
1882         int tm_sec;
1883         int tm_min;
1884         int tm_hour;
1885         int tm_mday;
1886         int tm_mon;
1887         int tm_year;
1888         int tm_wday;
1889         int tm_yday;
1890         int tm_isdst;
1891         c_long tm_gmtoff;
1892         const(char)* tm_zone;
1893     }
1894     struct timeval
1895     {
1896         __time_t tv_sec;
1897         __suseconds_t tv_usec;
1898     }
1899     struct timespec
1900     {
1901         __time_t tv_sec;
1902         __syscall_slong_t tv_nsec;
1903     }
1904     struct itimerspec
1905     {
1906         timespec it_interval;
1907         timespec it_value;
1908     }
1909     alias sigset_t = __sigset_t;
1910     alias locale_t = __locale_struct*;
1911     alias clockid_t = int;
1912     alias clock_t = c_long;
1913     alias zipFile = void*;
1914     struct __sigset_t
1915     {
1916         c_ulong[16] __val;
1917     }
1918     struct __mbstate_t
1919     {
1920         int __count;
1921         static union _Anonymous_18
1922         {
1923             uint __wch;
1924             char[4] __wchb;
1925         }
1926         _Anonymous_18 __value;
1927     }
1928     alias tm_zip = tm_zip_s;
1929     struct tm_zip_s
1930     {
1931         uInt tm_sec;
1932         uInt tm_min;
1933         uInt tm_hour;
1934         uInt tm_mday;
1935         uInt tm_mon;
1936         uInt tm_year;
1937     }
1938     struct zip_fileinfo
1939     {
1940         tm_zip tmz_date;
1941         uLong dosDate;
1942         uLong internal_fa;
1943         uLong external_fa;
1944     }
1945     alias zipcharpc = const(char)*;
1946     alias __locale_t = __locale_struct*;
1947     struct __locale_struct
1948     {
1949         __locale_data*[13] __locales;
1950         const(ushort)* __ctype_b;
1951         const(int)* __ctype_tolower;
1952         const(int)* __ctype_toupper;
1953         const(char)*[13] __names;
1954     }
1955     alias __FILE = _IO_FILE;
1956     zipFile zipOpen(const(char)*, int) @nogc nothrow;
1957     zipFile zipOpen64(const(void)*, int) @nogc nothrow;
1958     zipFile zipOpen2(const(char)*, int, zipcharpc*, zlib_filefunc_def*) @nogc nothrow;
1959     zipFile zipOpen2_64(const(void)*, int, zipcharpc*, zlib_filefunc64_def*) @nogc nothrow;
1960     int zipOpenNewFileInZip(zipFile, const(char)*, const(zip_fileinfo)*, const(void)*, uInt, const(void)*, uInt, const(char)*, int, int) @nogc nothrow;
1961     int zipOpenNewFileInZip64(zipFile, const(char)*, const(zip_fileinfo)*, const(void)*, uInt, const(void)*, uInt, const(char)*, int, int, int) @nogc nothrow;
1962     int zipOpenNewFileInZip2(zipFile, const(char)*, const(zip_fileinfo)*, const(void)*, uInt, const(void)*, uInt, const(char)*, int, int, int) @nogc nothrow;
1963     int zipOpenNewFileInZip2_64(zipFile, const(char)*, const(zip_fileinfo)*, const(void)*, uInt, const(void)*, uInt, const(char)*, int, int, int, int) @nogc nothrow;
1964     int zipOpenNewFileInZip3(zipFile, const(char)*, const(zip_fileinfo)*, const(void)*, uInt, const(void)*, uInt, const(char)*, int, int, int, int, int, int, const(char)*, uLong) @nogc nothrow;
1965     int zipOpenNewFileInZip3_64(zipFile, const(char)*, const(zip_fileinfo)*, const(void)*, uInt, const(void)*, uInt, const(char)*, int, int, int, int, int, int, const(char)*, uLong, int) @nogc nothrow;
1966     int zipOpenNewFileInZip4(zipFile, const(char)*, const(zip_fileinfo)*, const(void)*, uInt, const(void)*, uInt, const(char)*, int, int, int, int, int, int, const(char)*, uLong, uLong, uLong) @nogc nothrow;
1967     int zipOpenNewFileInZip4_64(zipFile, const(char)*, const(zip_fileinfo)*, const(void)*, uInt, const(void)*, uInt, const(char)*, int, int, int, int, int, int, const(char)*, uLong, uLong, uLong, int) @nogc nothrow;
1968     int zipWriteInFileInZip(zipFile, const(void)*, uint) @nogc nothrow;
1969     int zipCloseFileInZip(zipFile) @nogc nothrow;
1970     int zipCloseFileInZipRaw(zipFile, uLong, uLong) @nogc nothrow;
1971     int zipCloseFileInZipRaw64(zipFile, ZPOS64_T, uLong) @nogc nothrow;
1972     int zipClose(zipFile, const(char)*) @nogc nothrow;
1973     int zipRemoveExtraInfoBlock(char*, int*, short) @nogc nothrow;
1974     struct _IO_FILE
1975     {
1976         int _flags;
1977         char* _IO_read_ptr;
1978         char* _IO_read_end;
1979         char* _IO_read_base;
1980         char* _IO_write_base;
1981         char* _IO_write_ptr;
1982         char* _IO_write_end;
1983         char* _IO_buf_base;
1984         char* _IO_buf_end;
1985         char* _IO_save_base;
1986         char* _IO_backup_base;
1987         char* _IO_save_end;
1988         _IO_marker* _markers;
1989         _IO_FILE* _chain;
1990         int _fileno;
1991         int _flags2;
1992         __off_t _old_offset;
1993         ushort _cur_column;
1994         byte _vtable_offset;
1995         char[1] _shortbuf;
1996         _IO_lock_t* _lock;
1997         __off64_t _offset;
1998         void* __pad1;
1999         void* __pad2;
2000         void* __pad3;
2001         void* __pad4;
2002         size_t __pad5;
2003         int _mode;
2004         char[20] _unused2;
2005     }
2006     alias FILE = _IO_FILE;
2007     alias __sig_atomic_t = int;
2008     const(char)* lxw_version() @nogc nothrow;
2009     char* lxw_strerror(lxw_error) @nogc nothrow;
2010     char* lxw_quote_sheetname(const(char)*) @nogc nothrow;
2011     void lxw_col_to_name(char*, lxw_col_t, uint8_t) @nogc nothrow;
2012     void lxw_rowcol_to_cell(char*, lxw_row_t, lxw_col_t) @nogc nothrow;
2013     void lxw_rowcol_to_cell_abs(char*, lxw_row_t, lxw_col_t, uint8_t, uint8_t) @nogc nothrow;
2014     void lxw_rowcol_to_range(char*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t) @nogc nothrow;
2015     void lxw_rowcol_to_range_abs(char*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t) @nogc nothrow;
2016     void lxw_rowcol_to_formula_abs(char*, const(char)*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t) @nogc nothrow;
2017     uint32_t lxw_name_to_row(const(char)*) @nogc nothrow;
2018     uint16_t lxw_name_to_col(const(char)*) @nogc nothrow;
2019     uint32_t lxw_name_to_row_2(const(char)*) @nogc nothrow;
2020     uint16_t lxw_name_to_col_2(const(char)*) @nogc nothrow;
2021     double lxw_datetime_to_excel_date(lxw_datetime*, uint8_t) @nogc nothrow;
2022     char* lxw_strdup(const(char)*) @nogc nothrow;
2023     char* lxw_strdup_formula(const(char)*) @nogc nothrow;
2024     size_t lxw_utf8_strlen(const(char)*) @nogc nothrow;
2025     void lxw_str_tolower(char*) @nogc nothrow;
2026     FILE* lxw_tmpfile(char*) @nogc nothrow;
2027     uint16_t lxw_hash_password(const(char)*) @nogc nothrow;
2028     alias __socklen_t = uint;
2029     struct lxw_worksheet_names
2030     {
2031         lxw_worksheet_name* rbh_root;
2032     }
2033     struct lxw_worksheet_name
2034     {
2035         const(char)* name;
2036         lxw_worksheet* worksheet;
2037         static struct _Anonymous_19
2038         {
2039             lxw_worksheet_name* rbe_left;
2040             lxw_worksheet_name* rbe_right;
2041             lxw_worksheet_name* rbe_parent;
2042             int rbe_color;
2043         }
2044         _Anonymous_19 tree_pointers;
2045     }
2046     struct lxw_chartsheet_names
2047     {
2048         lxw_chartsheet_name* rbh_root;
2049     }
2050     struct lxw_chartsheet_name
2051     {
2052         const(char)* name;
2053         lxw_chartsheet* chartsheet;
2054         static struct _Anonymous_20
2055         {
2056             lxw_chartsheet_name* rbe_left;
2057             lxw_chartsheet_name* rbe_right;
2058             lxw_chartsheet_name* rbe_parent;
2059             int rbe_color;
2060         }
2061         _Anonymous_20 tree_pointers;
2062     }
2063     struct lxw_sheets
2064     {
2065         lxw_sheet* stqh_first;
2066         lxw_sheet** stqh_last;
2067     }
2068     struct lxw_sheet
2069     {
2070         uint8_t is_chartsheet;
2071         static union _Anonymous_21
2072         {
2073             lxw_worksheet* worksheet;
2074             lxw_chartsheet* chartsheet;
2075         }
2076         _Anonymous_21 u;
2077         static struct _Anonymous_22
2078         {
2079             lxw_sheet* stqe_next;
2080         }
2081         _Anonymous_22 list_pointers;
2082     }
2083     struct lxw_worksheets
2084     {
2085         lxw_worksheet* stqh_first;
2086         lxw_worksheet** stqh_last;
2087     }
2088     struct lxw_chartsheets
2089     {
2090         lxw_chartsheet* stqh_first;
2091         lxw_chartsheet** stqh_last;
2092     }
2093     struct lxw_charts
2094     {
2095         lxw_chart* stqh_first;
2096         lxw_chart** stqh_last;
2097     }
2098     struct lxw_defined_name
2099     {
2100         int16_t index;
2101         uint8_t hidden;
2102         char[128] name;
2103         char[128] app_name;
2104         char[128] formula;
2105         char[128] normalised_name;
2106         char[128] normalised_sheetname;
2107         static struct _Anonymous_23
2108         {
2109             lxw_defined_name* tqe_next;
2110             lxw_defined_name** tqe_prev;
2111         }
2112         _Anonymous_23 list_pointers;
2113     }
2114     struct lxw_defined_names
2115     {
2116         lxw_defined_name* tqh_first;
2117         lxw_defined_name** tqh_last;
2118     }
2119     alias __intptr_t = c_long;
2120     alias __caddr_t = char*;
2121     struct lxw_doc_properties
2122     {
2123         char* title;
2124         char* subject;
2125         char* author;
2126         char* manager;
2127         char* company;
2128         char* category;
2129         char* keywords;
2130         char* comments;
2131         char* status;
2132         char* hyperlink_base;
2133         time_t created;
2134     }
2135     struct lxw_workbook_options
2136     {
2137         uint8_t constant_memory;
2138         char* tmpdir;
2139     }
2140     struct lxw_workbook
2141     {
2142         FILE* file;
2143         lxw_sheets* sheets;
2144         lxw_worksheets* worksheets;
2145         lxw_chartsheets* chartsheets;
2146         lxw_worksheet_names* worksheet_names;
2147         lxw_chartsheet_names* chartsheet_names;
2148         lxw_charts* charts;
2149         lxw_charts* ordered_charts;
2150         lxw_formats* formats;
2151         lxw_defined_names* defined_names;
2152         lxw_sst* sst;
2153         lxw_doc_properties* properties;
2154         lxw_custom_properties* custom_properties;
2155         char* filename;
2156         lxw_workbook_options options;
2157         uint16_t num_sheets;
2158         uint16_t num_worksheets;
2159         uint16_t num_chartsheets;
2160         uint16_t first_sheet;
2161         uint16_t active_sheet;
2162         uint16_t num_xf_formats;
2163         uint16_t num_format_count;
2164         uint16_t drawing_count;
2165         uint16_t font_count;
2166         uint16_t border_count;
2167         uint16_t fill_count;
2168         uint8_t optimize;
2169         uint8_t has_png;
2170         uint8_t has_jpeg;
2171         uint8_t has_bmp;
2172         lxw_hash_table* used_xf_formats;
2173     }
2174     lxw_workbook* workbook_new(const(char)*) @nogc nothrow;
2175     lxw_workbook* workbook_new_opt(const(char)*, lxw_workbook_options*) @nogc nothrow;
2176     lxw_workbook* new_workbook(const(char)*) @nogc nothrow;
2177     lxw_workbook* new_workbook_opt(const(char)*, lxw_workbook_options*) @nogc nothrow;
2178     lxw_worksheet* workbook_add_worksheet(lxw_workbook*, const(char)*) @nogc nothrow;
2179     lxw_chartsheet* workbook_add_chartsheet(lxw_workbook*, const(char)*) @nogc nothrow;
2180     lxw_format* workbook_add_format(lxw_workbook*) @nogc nothrow;
2181     lxw_chart* workbook_add_chart(lxw_workbook*, uint8_t) @nogc nothrow;
2182     lxw_error workbook_close(lxw_workbook*) @nogc nothrow;
2183     lxw_error workbook_set_properties(lxw_workbook*, lxw_doc_properties*) @nogc nothrow;
2184     lxw_error workbook_set_custom_property_string(lxw_workbook*, const(char)*, const(char)*) @nogc nothrow;
2185     lxw_error workbook_set_custom_property_number(lxw_workbook*, const(char)*, double) @nogc nothrow;
2186     lxw_error workbook_set_custom_property_integer(lxw_workbook*, const(char)*, int32_t) @nogc nothrow;
2187     lxw_error workbook_set_custom_property_boolean(lxw_workbook*, const(char)*, uint8_t) @nogc nothrow;
2188     lxw_error workbook_set_custom_property_datetime(lxw_workbook*, const(char)*, lxw_datetime*) @nogc nothrow;
2189     lxw_error workbook_define_name(lxw_workbook*, const(char)*, const(char)*) @nogc nothrow;
2190     lxw_worksheet* workbook_get_worksheet_by_name(lxw_workbook*, const(char)*) @nogc nothrow;
2191     lxw_chartsheet* workbook_get_chartsheet_by_name(lxw_workbook*, const(char)*) @nogc nothrow;
2192     lxw_error workbook_validate_sheet_name(lxw_workbook*, const(char)*) @nogc nothrow;
2193     void lxw_workbook_free(lxw_workbook*) @nogc nothrow;
2194     void lxw_workbook_assemble_xml_file(lxw_workbook*) @nogc nothrow;
2195     void lxw_workbook_set_default_xf_indices(lxw_workbook*) @nogc nothrow;
2196     alias __loff_t = c_long;
2197     alias __syscall_ulong_t = c_ulong;
2198     alias __syscall_slong_t = c_long;
2199     alias __ssize_t = c_long;
2200     enum lxw_gridlines
2201     {
2202         LXW_HIDE_ALL_GRIDLINES = 0,
2203         LXW_SHOW_SCREEN_GRIDLINES = 1,
2204         LXW_SHOW_PRINT_GRIDLINES = 2,
2205         LXW_SHOW_ALL_GRIDLINES = 3,
2206     }
2207     enum LXW_HIDE_ALL_GRIDLINES = lxw_gridlines.LXW_HIDE_ALL_GRIDLINES;
2208     enum LXW_SHOW_SCREEN_GRIDLINES = lxw_gridlines.LXW_SHOW_SCREEN_GRIDLINES;
2209     enum LXW_SHOW_PRINT_GRIDLINES = lxw_gridlines.LXW_SHOW_PRINT_GRIDLINES;
2210     enum LXW_SHOW_ALL_GRIDLINES = lxw_gridlines.LXW_SHOW_ALL_GRIDLINES;
2211     enum lxw_validation_boolean
2212     {
2213         LXW_VALIDATION_DEFAULT = 0,
2214         LXW_VALIDATION_OFF = 1,
2215         LXW_VALIDATION_ON = 2,
2216     }
2217     enum LXW_VALIDATION_DEFAULT = lxw_validation_boolean.LXW_VALIDATION_DEFAULT;
2218     enum LXW_VALIDATION_OFF = lxw_validation_boolean.LXW_VALIDATION_OFF;
2219     enum LXW_VALIDATION_ON = lxw_validation_boolean.LXW_VALIDATION_ON;
2220     enum lxw_validation_types
2221     {
2222         LXW_VALIDATION_TYPE_NONE = 0,
2223         LXW_VALIDATION_TYPE_INTEGER = 1,
2224         LXW_VALIDATION_TYPE_INTEGER_FORMULA = 2,
2225         LXW_VALIDATION_TYPE_DECIMAL = 3,
2226         LXW_VALIDATION_TYPE_DECIMAL_FORMULA = 4,
2227         LXW_VALIDATION_TYPE_LIST = 5,
2228         LXW_VALIDATION_TYPE_LIST_FORMULA = 6,
2229         LXW_VALIDATION_TYPE_DATE = 7,
2230         LXW_VALIDATION_TYPE_DATE_FORMULA = 8,
2231         LXW_VALIDATION_TYPE_DATE_NUMBER = 9,
2232         LXW_VALIDATION_TYPE_TIME = 10,
2233         LXW_VALIDATION_TYPE_TIME_FORMULA = 11,
2234         LXW_VALIDATION_TYPE_TIME_NUMBER = 12,
2235         LXW_VALIDATION_TYPE_LENGTH = 13,
2236         LXW_VALIDATION_TYPE_LENGTH_FORMULA = 14,
2237         LXW_VALIDATION_TYPE_CUSTOM_FORMULA = 15,
2238         LXW_VALIDATION_TYPE_ANY = 16,
2239     }
2240     enum LXW_VALIDATION_TYPE_NONE = lxw_validation_types.LXW_VALIDATION_TYPE_NONE;
2241     enum LXW_VALIDATION_TYPE_INTEGER = lxw_validation_types.LXW_VALIDATION_TYPE_INTEGER;
2242     enum LXW_VALIDATION_TYPE_INTEGER_FORMULA = lxw_validation_types.LXW_VALIDATION_TYPE_INTEGER_FORMULA;
2243     enum LXW_VALIDATION_TYPE_DECIMAL = lxw_validation_types.LXW_VALIDATION_TYPE_DECIMAL;
2244     enum LXW_VALIDATION_TYPE_DECIMAL_FORMULA = lxw_validation_types.LXW_VALIDATION_TYPE_DECIMAL_FORMULA;
2245     enum LXW_VALIDATION_TYPE_LIST = lxw_validation_types.LXW_VALIDATION_TYPE_LIST;
2246     enum LXW_VALIDATION_TYPE_LIST_FORMULA = lxw_validation_types.LXW_VALIDATION_TYPE_LIST_FORMULA;
2247     enum LXW_VALIDATION_TYPE_DATE = lxw_validation_types.LXW_VALIDATION_TYPE_DATE;
2248     enum LXW_VALIDATION_TYPE_DATE_FORMULA = lxw_validation_types.LXW_VALIDATION_TYPE_DATE_FORMULA;
2249     enum LXW_VALIDATION_TYPE_DATE_NUMBER = lxw_validation_types.LXW_VALIDATION_TYPE_DATE_NUMBER;
2250     enum LXW_VALIDATION_TYPE_TIME = lxw_validation_types.LXW_VALIDATION_TYPE_TIME;
2251     enum LXW_VALIDATION_TYPE_TIME_FORMULA = lxw_validation_types.LXW_VALIDATION_TYPE_TIME_FORMULA;
2252     enum LXW_VALIDATION_TYPE_TIME_NUMBER = lxw_validation_types.LXW_VALIDATION_TYPE_TIME_NUMBER;
2253     enum LXW_VALIDATION_TYPE_LENGTH = lxw_validation_types.LXW_VALIDATION_TYPE_LENGTH;
2254     enum LXW_VALIDATION_TYPE_LENGTH_FORMULA = lxw_validation_types.LXW_VALIDATION_TYPE_LENGTH_FORMULA;
2255     enum LXW_VALIDATION_TYPE_CUSTOM_FORMULA = lxw_validation_types.LXW_VALIDATION_TYPE_CUSTOM_FORMULA;
2256     enum LXW_VALIDATION_TYPE_ANY = lxw_validation_types.LXW_VALIDATION_TYPE_ANY;
2257     enum lxw_validation_criteria
2258     {
2259         LXW_VALIDATION_CRITERIA_NONE = 0,
2260         LXW_VALIDATION_CRITERIA_BETWEEN = 1,
2261         LXW_VALIDATION_CRITERIA_NOT_BETWEEN = 2,
2262         LXW_VALIDATION_CRITERIA_EQUAL_TO = 3,
2263         LXW_VALIDATION_CRITERIA_NOT_EQUAL_TO = 4,
2264         LXW_VALIDATION_CRITERIA_GREATER_THAN = 5,
2265         LXW_VALIDATION_CRITERIA_LESS_THAN = 6,
2266         LXW_VALIDATION_CRITERIA_GREATER_THAN_OR_EQUAL_TO = 7,
2267         LXW_VALIDATION_CRITERIA_LESS_THAN_OR_EQUAL_TO = 8,
2268     }
2269     enum LXW_VALIDATION_CRITERIA_NONE = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_NONE;
2270     enum LXW_VALIDATION_CRITERIA_BETWEEN = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_BETWEEN;
2271     enum LXW_VALIDATION_CRITERIA_NOT_BETWEEN = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_NOT_BETWEEN;
2272     enum LXW_VALIDATION_CRITERIA_EQUAL_TO = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_EQUAL_TO;
2273     enum LXW_VALIDATION_CRITERIA_NOT_EQUAL_TO = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_NOT_EQUAL_TO;
2274     enum LXW_VALIDATION_CRITERIA_GREATER_THAN = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_GREATER_THAN;
2275     enum LXW_VALIDATION_CRITERIA_LESS_THAN = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_LESS_THAN;
2276     enum LXW_VALIDATION_CRITERIA_GREATER_THAN_OR_EQUAL_TO = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_GREATER_THAN_OR_EQUAL_TO;
2277     enum LXW_VALIDATION_CRITERIA_LESS_THAN_OR_EQUAL_TO = lxw_validation_criteria.LXW_VALIDATION_CRITERIA_LESS_THAN_OR_EQUAL_TO;
2278     enum lxw_validation_error_types
2279     {
2280         LXW_VALIDATION_ERROR_TYPE_STOP = 0,
2281         LXW_VALIDATION_ERROR_TYPE_WARNING = 1,
2282         LXW_VALIDATION_ERROR_TYPE_INFORMATION = 2,
2283     }
2284     enum LXW_VALIDATION_ERROR_TYPE_STOP = lxw_validation_error_types.LXW_VALIDATION_ERROR_TYPE_STOP;
2285     enum LXW_VALIDATION_ERROR_TYPE_WARNING = lxw_validation_error_types.LXW_VALIDATION_ERROR_TYPE_WARNING;
2286     enum LXW_VALIDATION_ERROR_TYPE_INFORMATION = lxw_validation_error_types.LXW_VALIDATION_ERROR_TYPE_INFORMATION;
2287     enum cell_types
2288     {
2289         NUMBER_CELL = 1,
2290         STRING_CELL = 2,
2291         INLINE_STRING_CELL = 3,
2292         INLINE_RICH_STRING_CELL = 4,
2293         FORMULA_CELL = 5,
2294         ARRAY_FORMULA_CELL = 6,
2295         BLANK_CELL = 7,
2296         BOOLEAN_CELL = 8,
2297         HYPERLINK_URL = 9,
2298         HYPERLINK_INTERNAL = 10,
2299         HYPERLINK_EXTERNAL = 11,
2300     }
2301     enum NUMBER_CELL = cell_types.NUMBER_CELL;
2302     enum STRING_CELL = cell_types.STRING_CELL;
2303     enum INLINE_STRING_CELL = cell_types.INLINE_STRING_CELL;
2304     enum INLINE_RICH_STRING_CELL = cell_types.INLINE_RICH_STRING_CELL;
2305     enum FORMULA_CELL = cell_types.FORMULA_CELL;
2306     enum ARRAY_FORMULA_CELL = cell_types.ARRAY_FORMULA_CELL;
2307     enum BLANK_CELL = cell_types.BLANK_CELL;
2308     enum BOOLEAN_CELL = cell_types.BOOLEAN_CELL;
2309     enum HYPERLINK_URL = cell_types.HYPERLINK_URL;
2310     enum HYPERLINK_INTERNAL = cell_types.HYPERLINK_INTERNAL;
2311     enum HYPERLINK_EXTERNAL = cell_types.HYPERLINK_EXTERNAL;
2312     enum pane_types
2313     {
2314         NO_PANES = 0,
2315         FREEZE_PANES = 1,
2316         SPLIT_PANES = 2,
2317         FREEZE_SPLIT_PANES = 3,
2318     }
2319     enum NO_PANES = pane_types.NO_PANES;
2320     enum FREEZE_PANES = pane_types.FREEZE_PANES;
2321     enum SPLIT_PANES = pane_types.SPLIT_PANES;
2322     enum FREEZE_SPLIT_PANES = pane_types.FREEZE_SPLIT_PANES;
2323     struct lxw_table_cells
2324     {
2325         lxw_cell* rbh_root;
2326     }
2327     struct lxw_cell
2328     {
2329         lxw_row_t row_num;
2330         lxw_col_t col_num;
2331         cell_types type;
2332         lxw_format* format;
2333         static union _Anonymous_24
2334         {
2335             double number;
2336             int32_t string_id;
2337             char* string;
2338         }
2339         _Anonymous_24 u;
2340         double formula_result;
2341         char* user_data1;
2342         char* user_data2;
2343         char* sst_string;
2344         static struct _Anonymous_25
2345         {
2346             lxw_cell* rbe_left;
2347             lxw_cell* rbe_right;
2348             lxw_cell* rbe_parent;
2349             int rbe_color;
2350         }
2351         _Anonymous_25 tree_pointers;
2352     }
2353     struct lxw_table_rows
2354     {
2355         lxw_row* rbh_root;
2356         lxw_row* cached_row;
2357         lxw_row_t cached_row_num;
2358     }
2359     struct lxw_row
2360     {
2361         lxw_row_t row_num;
2362         double height;
2363         lxw_format* format;
2364         uint8_t hidden;
2365         uint8_t level;
2366         uint8_t collapsed;
2367         uint8_t row_changed;
2368         uint8_t data_changed;
2369         uint8_t height_changed;
2370         lxw_table_cells* cells;
2371         static struct _Anonymous_26
2372         {
2373             lxw_row* rbe_left;
2374             lxw_row* rbe_right;
2375             lxw_row* rbe_parent;
2376             int rbe_color;
2377         }
2378         _Anonymous_26 tree_pointers;
2379     }
2380     alias __fsword_t = c_long;
2381     struct lxw_merged_ranges
2382     {
2383         lxw_merged_range* stqh_first;
2384         lxw_merged_range** stqh_last;
2385     }
2386     struct lxw_merged_range
2387     {
2388         lxw_row_t first_row;
2389         lxw_row_t last_row;
2390         lxw_col_t first_col;
2391         lxw_col_t last_col;
2392         static struct _Anonymous_27
2393         {
2394             lxw_merged_range* stqe_next;
2395         }
2396         _Anonymous_27 list_pointers;
2397     }
2398     struct lxw_selection
2399     {
2400         char[12] pane;
2401         char[28] active_cell;
2402         char[28] sqref;
2403         static struct _Anonymous_28
2404         {
2405             lxw_selection* stqe_next;
2406         }
2407         _Anonymous_28 list_pointers;
2408     }
2409     struct lxw_selections
2410     {
2411         lxw_selection* stqh_first;
2412         lxw_selection** stqh_last;
2413     }
2414     struct lxw_data_validations
2415     {
2416         lxw_data_validation* stqh_first;
2417         lxw_data_validation** stqh_last;
2418     }
2419     struct lxw_data_validation
2420     {
2421         uint8_t validate;
2422         uint8_t criteria;
2423         uint8_t ignore_blank;
2424         uint8_t show_input;
2425         uint8_t show_error;
2426         uint8_t error_type;
2427         uint8_t dropdown;
2428         uint8_t is_between;
2429         double value_number;
2430         char* value_formula;
2431         char** value_list;
2432         lxw_datetime value_datetime;
2433         double minimum_number;
2434         char* minimum_formula;
2435         lxw_datetime minimum_datetime;
2436         double maximum_number;
2437         char* maximum_formula;
2438         lxw_datetime maximum_datetime;
2439         char* input_title;
2440         char* input_message;
2441         char* error_title;
2442         char* error_message;
2443         char[28] sqref;
2444         static struct _Anonymous_29
2445         {
2446             lxw_data_validation* stqe_next;
2447         }
2448         _Anonymous_29 list_pointers;
2449     }
2450     struct lxw_image_data
2451     {
2452         lxw_image_options* stqh_first;
2453         lxw_image_options** stqh_last;
2454     }
2455     struct lxw_image_options
2456     {
2457         int32_t x_offset;
2458         int32_t y_offset;
2459         double x_scale;
2460         double y_scale;
2461         lxw_row_t row;
2462         lxw_col_t col;
2463         char* filename;
2464         char* description;
2465         char* url;
2466         char* tip;
2467         uint8_t anchor;
2468         FILE* stream;
2469         uint8_t image_type;
2470         uint8_t is_image_buffer;
2471         ubyte* image_buffer;
2472         size_t image_buffer_size;
2473         double width;
2474         double height;
2475         char* extension;
2476         double x_dpi;
2477         double y_dpi;
2478         lxw_chart* chart;
2479         static struct _Anonymous_30
2480         {
2481             lxw_image_options* stqe_next;
2482         }
2483         _Anonymous_30 list_pointers;
2484     }
2485     struct lxw_chart_data
2486     {
2487         lxw_image_options* stqh_first;
2488         lxw_image_options** stqh_last;
2489     }
2490     struct lxw_row_col_options
2491     {
2492         uint8_t hidden;
2493         uint8_t level;
2494         uint8_t collapsed;
2495     }
2496     struct lxw_col_options
2497     {
2498         lxw_col_t firstcol;
2499         lxw_col_t lastcol;
2500         double width;
2501         lxw_format* format;
2502         uint8_t hidden;
2503         uint8_t level;
2504         uint8_t collapsed;
2505     }
2506     struct lxw_repeat_rows
2507     {
2508         uint8_t in_use;
2509         lxw_row_t first_row;
2510         lxw_row_t last_row;
2511     }
2512     struct lxw_repeat_cols
2513     {
2514         uint8_t in_use;
2515         lxw_col_t first_col;
2516         lxw_col_t last_col;
2517     }
2518     struct lxw_print_area
2519     {
2520         uint8_t in_use;
2521         lxw_row_t first_row;
2522         lxw_row_t last_row;
2523         lxw_col_t first_col;
2524         lxw_col_t last_col;
2525     }
2526     struct lxw_autofilter
2527     {
2528         uint8_t in_use;
2529         lxw_row_t first_row;
2530         lxw_row_t last_row;
2531         lxw_col_t first_col;
2532         lxw_col_t last_col;
2533     }
2534     struct lxw_panes
2535     {
2536         uint8_t type;
2537         lxw_row_t first_row;
2538         lxw_col_t first_col;
2539         lxw_row_t top_row;
2540         lxw_col_t left_col;
2541         double x_split;
2542         double y_split;
2543     }
2544     struct lxw_header_footer_options
2545     {
2546         double margin;
2547     }
2548     struct lxw_protection
2549     {
2550         uint8_t no_select_locked_cells;
2551         uint8_t no_select_unlocked_cells;
2552         uint8_t format_cells;
2553         uint8_t format_columns;
2554         uint8_t format_rows;
2555         uint8_t insert_columns;
2556         uint8_t insert_rows;
2557         uint8_t insert_hyperlinks;
2558         uint8_t delete_columns;
2559         uint8_t delete_rows;
2560         uint8_t sort;
2561         uint8_t autofilter;
2562         uint8_t pivot_tables;
2563         uint8_t scenarios;
2564         uint8_t objects;
2565         uint8_t no_content;
2566         uint8_t no_objects;
2567         uint8_t no_sheet;
2568         uint8_t is_configured;
2569         char[5] hash;
2570     }
2571     struct lxw_rich_string_tuple
2572     {
2573         lxw_format* format;
2574         char* string;
2575     }
2576     struct lxw_worksheet
2577     {
2578         FILE* file;
2579         FILE* optimize_tmpfile;
2580         lxw_table_rows* table;
2581         lxw_table_rows* hyperlinks;
2582         lxw_cell** array;
2583         lxw_merged_ranges* merged_ranges;
2584         lxw_selections* selections;
2585         lxw_data_validations* data_validations;
2586         lxw_image_data* image_data;
2587         lxw_chart_data* chart_data;
2588         lxw_row_t dim_rowmin;
2589         lxw_row_t dim_rowmax;
2590         lxw_col_t dim_colmin;
2591         lxw_col_t dim_colmax;
2592         lxw_sst* sst;
2593         char* name;
2594         char* quoted_name;
2595         char* tmpdir;
2596         uint32_t index;
2597         uint8_t active;
2598         uint8_t selected;
2599         uint8_t hidden;
2600         uint16_t* active_sheet;
2601         uint16_t* first_sheet;
2602         uint8_t is_chartsheet;
2603         lxw_col_options** col_options;
2604         uint16_t col_options_max;
2605         double* col_sizes;
2606         uint16_t col_sizes_max;
2607         lxw_format** col_formats;
2608         uint16_t col_formats_max;
2609         uint8_t col_size_changed;
2610         uint8_t row_size_changed;
2611         uint8_t optimize;
2612         lxw_row* optimize_row;
2613         uint16_t fit_height;
2614         uint16_t fit_width;
2615         uint16_t horizontal_dpi;
2616         uint16_t hlink_count;
2617         uint16_t page_start;
2618         uint16_t print_scale;
2619         uint16_t rel_count;
2620         uint16_t vertical_dpi;
2621         uint16_t zoom;
2622         uint8_t filter_on;
2623         uint8_t fit_page;
2624         uint8_t hcenter;
2625         uint8_t orientation;
2626         uint8_t outline_changed;
2627         uint8_t outline_on;
2628         uint8_t outline_style;
2629         uint8_t outline_below;
2630         uint8_t outline_right;
2631         uint8_t page_order;
2632         uint8_t page_setup_changed;
2633         uint8_t page_view;
2634         uint8_t paper_size;
2635         uint8_t print_gridlines;
2636         uint8_t print_headers;
2637         uint8_t print_options_changed;
2638         uint8_t right_to_left;
2639         uint8_t screen_gridlines;
2640         uint8_t show_zeros;
2641         uint8_t vba_codename;
2642         uint8_t vcenter;
2643         uint8_t zoom_scale_normal;
2644         uint8_t num_validations;
2645         lxw_color_t tab_color;
2646         double margin_left;
2647         double margin_right;
2648         double margin_top;
2649         double margin_bottom;
2650         double margin_header;
2651         double margin_footer;
2652         double default_row_height;
2653         uint32_t default_row_pixels;
2654         uint32_t default_col_pixels;
2655         uint8_t default_row_zeroed;
2656         uint8_t default_row_set;
2657         uint8_t outline_row_level;
2658         uint8_t outline_col_level;
2659         uint8_t header_footer_changed;
2660         char[255] header;
2661         char[255] footer;
2662         lxw_repeat_rows repeat_rows;
2663         lxw_repeat_cols repeat_cols;
2664         lxw_print_area print_area;
2665         lxw_autofilter autofilter;
2666         uint16_t merged_range_count;
2667         lxw_row_t* hbreaks;
2668         lxw_col_t* vbreaks;
2669         uint16_t hbreaks_count;
2670         uint16_t vbreaks_count;
2671         lxw_rel_tuples* external_hyperlinks;
2672         lxw_rel_tuples* external_drawing_links;
2673         lxw_rel_tuples* drawing_links;
2674         lxw_panes panes;
2675         lxw_protection protection;
2676         lxw_drawing* drawing;
2677         static struct _Anonymous_31
2678         {
2679             lxw_worksheet* stqe_next;
2680         }
2681         _Anonymous_31 list_pointers;
2682     }
2683     struct lxw_rel_tuples
2684     {
2685         lxw_rel_tuple* stqh_first;
2686         lxw_rel_tuple** stqh_last;
2687     }
2688     struct lxw_worksheet_init_data
2689     {
2690         uint32_t index;
2691         uint8_t hidden;
2692         uint8_t optimize;
2693         uint16_t* active_sheet;
2694         uint16_t* first_sheet;
2695         lxw_sst* sst;
2696         char* name;
2697         char* quoted_name;
2698         char* tmpdir;
2699     }
2700     lxw_error worksheet_write_number(lxw_worksheet*, lxw_row_t, lxw_col_t, double, lxw_format*) @nogc nothrow;
2701     lxw_error worksheet_write_string(lxw_worksheet*, lxw_row_t, lxw_col_t, const(char)*, lxw_format*) @nogc nothrow;
2702     lxw_error worksheet_write_formula(lxw_worksheet*, lxw_row_t, lxw_col_t, const(char)*, lxw_format*) @nogc nothrow;
2703     lxw_error worksheet_write_array_formula(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t, const(char)*, lxw_format*) @nogc nothrow;
2704     lxw_error worksheet_write_array_formula_num(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t, const(char)*, lxw_format*, double) @nogc nothrow;
2705     lxw_error worksheet_write_datetime(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_datetime*, lxw_format*) @nogc nothrow;
2706     lxw_error worksheet_write_url_opt(lxw_worksheet*, lxw_row_t, lxw_col_t, const(char)*, lxw_format*, const(char)*, const(char)*) @nogc nothrow;
2707     lxw_error worksheet_write_url(lxw_worksheet*, lxw_row_t, lxw_col_t, const(char)*, lxw_format*) @nogc nothrow;
2708     lxw_error worksheet_write_boolean(lxw_worksheet*, lxw_row_t, lxw_col_t, int, lxw_format*) @nogc nothrow;
2709     lxw_error worksheet_write_blank(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_format*) @nogc nothrow;
2710     lxw_error worksheet_write_formula_num(lxw_worksheet*, lxw_row_t, lxw_col_t, const(char)*, lxw_format*, double) @nogc nothrow;
2711     lxw_error worksheet_write_rich_string(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_rich_string_tuple**, lxw_format*) @nogc nothrow;
2712     lxw_error worksheet_set_row(lxw_worksheet*, lxw_row_t, double, lxw_format*) @nogc nothrow;
2713     lxw_error worksheet_set_row_opt(lxw_worksheet*, lxw_row_t, double, lxw_format*, lxw_row_col_options*) @nogc nothrow;
2714     lxw_error worksheet_set_column(lxw_worksheet*, lxw_col_t, lxw_col_t, double, lxw_format*) @nogc nothrow;
2715     lxw_error worksheet_set_column_opt(lxw_worksheet*, lxw_col_t, lxw_col_t, double, lxw_format*, lxw_row_col_options*) @nogc nothrow;
2716     lxw_error worksheet_insert_image(lxw_worksheet*, lxw_row_t, lxw_col_t, const(char)*) @nogc nothrow;
2717     lxw_error worksheet_insert_image_opt(lxw_worksheet*, lxw_row_t, lxw_col_t, const(char)*, lxw_image_options*) @nogc nothrow;
2718     lxw_error worksheet_insert_image_buffer(lxw_worksheet*, lxw_row_t, lxw_col_t, const(ubyte)*, size_t) @nogc nothrow;
2719     lxw_error worksheet_insert_image_buffer_opt(lxw_worksheet*, lxw_row_t, lxw_col_t, const(ubyte)*, size_t, lxw_image_options*) @nogc nothrow;
2720     lxw_error worksheet_insert_chart(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_chart*) @nogc nothrow;
2721     lxw_error worksheet_insert_chart_opt(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_chart*, lxw_image_options*) @nogc nothrow;
2722     lxw_error worksheet_merge_range(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t, const(char)*, lxw_format*) @nogc nothrow;
2723     lxw_error worksheet_autofilter(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t) @nogc nothrow;
2724     lxw_error worksheet_data_validation_cell(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_data_validation*) @nogc nothrow;
2725     lxw_error worksheet_data_validation_range(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t, lxw_data_validation*) @nogc nothrow;
2726     void worksheet_activate(lxw_worksheet*) @nogc nothrow;
2727     void worksheet_select(lxw_worksheet*) @nogc nothrow;
2728     void worksheet_hide(lxw_worksheet*) @nogc nothrow;
2729     void worksheet_set_first_sheet(lxw_worksheet*) @nogc nothrow;
2730     void worksheet_freeze_panes(lxw_worksheet*, lxw_row_t, lxw_col_t) @nogc nothrow;
2731     void worksheet_split_panes(lxw_worksheet*, double, double) @nogc nothrow;
2732     void worksheet_freeze_panes_opt(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t, uint8_t) @nogc nothrow;
2733     void worksheet_split_panes_opt(lxw_worksheet*, double, double, lxw_row_t, lxw_col_t) @nogc nothrow;
2734     void worksheet_set_selection(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t) @nogc nothrow;
2735     void worksheet_set_landscape(lxw_worksheet*) @nogc nothrow;
2736     void worksheet_set_portrait(lxw_worksheet*) @nogc nothrow;
2737     void worksheet_set_page_view(lxw_worksheet*) @nogc nothrow;
2738     void worksheet_set_paper(lxw_worksheet*, uint8_t) @nogc nothrow;
2739     void worksheet_set_margins(lxw_worksheet*, double, double, double, double) @nogc nothrow;
2740     lxw_error worksheet_set_header(lxw_worksheet*, const(char)*) @nogc nothrow;
2741     lxw_error worksheet_set_footer(lxw_worksheet*, const(char)*) @nogc nothrow;
2742     lxw_error worksheet_set_header_opt(lxw_worksheet*, const(char)*, lxw_header_footer_options*) @nogc nothrow;
2743     lxw_error worksheet_set_footer_opt(lxw_worksheet*, const(char)*, lxw_header_footer_options*) @nogc nothrow;
2744     lxw_error worksheet_set_h_pagebreaks(lxw_worksheet*, lxw_row_t*) @nogc nothrow;
2745     lxw_error worksheet_set_v_pagebreaks(lxw_worksheet*, lxw_col_t*) @nogc nothrow;
2746     void worksheet_print_across(lxw_worksheet*) @nogc nothrow;
2747     void worksheet_set_zoom(lxw_worksheet*, uint16_t) @nogc nothrow;
2748     void worksheet_gridlines(lxw_worksheet*, uint8_t) @nogc nothrow;
2749     void worksheet_center_horizontally(lxw_worksheet*) @nogc nothrow;
2750     void worksheet_center_vertically(lxw_worksheet*) @nogc nothrow;
2751     void worksheet_print_row_col_headers(lxw_worksheet*) @nogc nothrow;
2752     lxw_error worksheet_repeat_rows(lxw_worksheet*, lxw_row_t, lxw_row_t) @nogc nothrow;
2753     lxw_error worksheet_repeat_columns(lxw_worksheet*, lxw_col_t, lxw_col_t) @nogc nothrow;
2754     lxw_error worksheet_print_area(lxw_worksheet*, lxw_row_t, lxw_col_t, lxw_row_t, lxw_col_t) @nogc nothrow;
2755     void worksheet_fit_to_pages(lxw_worksheet*, uint16_t, uint16_t) @nogc nothrow;
2756     void worksheet_set_start_page(lxw_worksheet*, uint16_t) @nogc nothrow;
2757     void worksheet_set_print_scale(lxw_worksheet*, uint16_t) @nogc nothrow;
2758     void worksheet_right_to_left(lxw_worksheet*) @nogc nothrow;
2759     void worksheet_hide_zero(lxw_worksheet*) @nogc nothrow;
2760     void worksheet_set_tab_color(lxw_worksheet*, lxw_color_t) @nogc nothrow;
2761     void worksheet_protect(lxw_worksheet*, const(char)*, lxw_protection*) @nogc nothrow;
2762     void worksheet_outline_settings(lxw_worksheet*, uint8_t, uint8_t, uint8_t, uint8_t) @nogc nothrow;
2763     void worksheet_set_default_row(lxw_worksheet*, double, uint8_t) @nogc nothrow;
2764     lxw_worksheet* lxw_worksheet_new(lxw_worksheet_init_data*) @nogc nothrow;
2765     void lxw_worksheet_free(lxw_worksheet*) @nogc nothrow;
2766     void lxw_worksheet_assemble_xml_file(lxw_worksheet*) @nogc nothrow;
2767     void lxw_worksheet_write_single_row(lxw_worksheet*) @nogc nothrow;
2768     void lxw_worksheet_prepare_image(lxw_worksheet*, uint16_t, uint16_t, lxw_image_options*) @nogc nothrow;
2769     void lxw_worksheet_prepare_chart(lxw_worksheet*, uint16_t, uint16_t, lxw_image_options*, uint8_t) @nogc nothrow;
2770     lxw_row* lxw_worksheet_find_row(lxw_worksheet*, lxw_row_t) @nogc nothrow;
2771     lxw_cell* lxw_worksheet_find_cell(lxw_row*, lxw_col_t) @nogc nothrow;
2772     void lxw_worksheet_write_sheet_views(lxw_worksheet*) @nogc nothrow;
2773     void lxw_worksheet_write_page_margins(lxw_worksheet*) @nogc nothrow;
2774     void lxw_worksheet_write_drawings(lxw_worksheet*) @nogc nothrow;
2775     void lxw_worksheet_write_sheet_protection(lxw_worksheet*, lxw_protection*) @nogc nothrow;
2776     void lxw_worksheet_write_sheet_pr(lxw_worksheet*) @nogc nothrow;
2777     void lxw_worksheet_write_page_setup(lxw_worksheet*) @nogc nothrow;
2778     void lxw_worksheet_write_header_footer(lxw_worksheet*) @nogc nothrow;
2779     alias __fsfilcnt64_t = c_ulong;
2780     struct xml_attribute
2781     {
2782         char[256] key;
2783         char[256] value;
2784         static struct _Anonymous_32
2785         {
2786             xml_attribute* stqe_next;
2787         }
2788         _Anonymous_32 list_entries;
2789     }
2790     struct xml_attribute_list
2791     {
2792         xml_attribute* stqh_first;
2793         xml_attribute** stqh_last;
2794     }
2795     xml_attribute* lxw_new_attribute_str(const(char)*, const(char)*) @nogc nothrow;
2796     xml_attribute* lxw_new_attribute_int(const(char)*, uint32_t) @nogc nothrow;
2797     xml_attribute* lxw_new_attribute_dbl(const(char)*, double) @nogc nothrow;
2798     alias __fsfilcnt_t = c_ulong;
2799     void lxw_xml_declaration(FILE*) @nogc nothrow;
2800     void lxw_xml_start_tag(FILE*, const(char)*, xml_attribute_list*) @nogc nothrow;
2801     void lxw_xml_start_tag_unencoded(FILE*, const(char)*, xml_attribute_list*) @nogc nothrow;
2802     void lxw_xml_end_tag(FILE*, const(char)*) @nogc nothrow;
2803     void lxw_xml_empty_tag(FILE*, const(char)*, xml_attribute_list*) @nogc nothrow;
2804     void lxw_xml_empty_tag_unencoded(FILE*, const(char)*, xml_attribute_list*) @nogc nothrow;
2805     void lxw_xml_data_element(FILE*, const(char)*, const(char)*, xml_attribute_list*) @nogc nothrow;
2806     void lxw_xml_rich_si_element(FILE*, const(char)*) @nogc nothrow;
2807     char* lxw_escape_control_characters(const(char)*) @nogc nothrow;
2808     char* lxw_escape_data(const(char)*) @nogc nothrow;
2809     alias __fsblkcnt64_t = c_ulong;
2810     pragma(mangle, "alloca") void* alloca_(size_t) @nogc nothrow;
2811     alias __fsblkcnt_t = c_ulong;
2812     alias __blkcnt64_t = c_long;
2813     alias __blkcnt_t = c_long;
2814     alias __blksize_t = c_long;
2815     alias __timer_t = void*;
2816     alias __clockid_t = int;
2817     alias __key_t = int;
2818     alias __daddr_t = int;
2819     alias __suseconds_t = c_long;
2820     alias __useconds_t = uint;
2821     alias __time_t = c_long;
2822     alias __id_t = uint;
2823     alias __rlim64_t = c_ulong;
2824     alias __rlim_t = c_ulong;
2825     alias __clock_t = c_long;
2826     struct __fsid_t
2827     {
2828         int[2] __val;
2829     }
2830     alias __pid_t = int;
2831     alias __off64_t = c_long;
2832     alias __off_t = c_long;
2833     alias __nlink_t = c_ulong;
2834     alias __mode_t = uint;
2835     alias __ino64_t = c_ulong;
2836     alias __ino_t = c_ulong;
2837     alias __gid_t = uint;
2838     alias __uid_t = uint;
2839     alias __dev_t = c_ulong;
2840     alias __uintmax_t = c_ulong;
2841     alias __intmax_t = c_long;
2842     alias __u_quad_t = c_ulong;
2843     alias __quad_t = c_long;
2844     alias __uint64_t = c_ulong;
2845     alias __int64_t = c_long;
2846     alias __uint32_t = uint;
2847     alias __int32_t = int;
2848     alias __uint16_t = ushort;
2849     alias __int16_t = short;
2850     alias __uint8_t = ubyte;
2851     alias __int8_t = byte;
2852     alias __u_long = c_ulong;
2853     alias __u_int = uint;
2854     alias __u_short = ushort;
2855     alias __u_char = ubyte;
2856     struct __pthread_cond_s
2857     {
2858         static union _Anonymous_33
2859         {
2860             ulong __wseq;
2861             static struct _Anonymous_34
2862             {
2863                 uint __low;
2864                 uint __high;
2865             }
2866             _Anonymous_34 __wseq32;
2867         }
2868         _Anonymous_33 _anonymous_35;
2869         auto __wseq() @property @nogc pure nothrow { return _anonymous_35.__wseq; }
2870         void __wseq(_T_)(auto ref _T_ val) @property @nogc pure nothrow { _anonymous_35.__wseq = val; }
2871         auto __wseq32() @property @nogc pure nothrow { return _anonymous_35.__wseq32; }
2872         void __wseq32(_T_)(auto ref _T_ val) @property @nogc pure nothrow { _anonymous_35.__wseq32 = val; }
2873         static union _Anonymous_36
2874         {
2875             ulong __g1_start;
2876             static struct _Anonymous_37
2877             {
2878                 uint __low;
2879                 uint __high;
2880             }
2881             _Anonymous_37 __g1_start32;
2882         }
2883         _Anonymous_36 _anonymous_38;
2884         auto __g1_start() @property @nogc pure nothrow { return _anonymous_38.__g1_start; }
2885         void __g1_start(_T_)(auto ref _T_ val) @property @nogc pure nothrow { _anonymous_38.__g1_start = val; }
2886         auto __g1_start32() @property @nogc pure nothrow { return _anonymous_38.__g1_start32; }
2887         void __g1_start32(_T_)(auto ref _T_ val) @property @nogc pure nothrow { _anonymous_38.__g1_start32 = val; }
2888         uint[2] __g_refs;
2889         uint[2] __g_size;
2890         uint __g1_orig_size;
2891         uint __wrefs;
2892         uint[2] __g_signals;
2893     }
2894     struct __pthread_mutex_s
2895     {
2896         int __lock;
2897         uint __count;
2898         int __owner;
2899         uint __nusers;
2900         int __kind;
2901         short __spins;
2902         short __elision;
2903         __pthread_list_t __list;
2904     }
2905     struct __pthread_internal_list
2906     {
2907         __pthread_internal_list* __prev;
2908         __pthread_internal_list* __next;
2909     }
2910     alias __pthread_list_t = __pthread_internal_list;
2911     extern __gshared const(const(char)*)[0] sys_errlist;
2912     extern __gshared int sys_nerr;
2913     alias uint64_t = c_ulong;
2914     alias uint32_t = uint;
2915     alias uint16_t = ushort;
2916     alias uint8_t = ubyte;
2917     alias int64_t = c_long;
2918     struct max_align_t
2919     {
2920         long __clang_max_align_nonce1;
2921         real __clang_max_align_nonce2;
2922     }
2923     alias int32_t = int;
2924     alias int16_t = short;
2925     alias int8_t = byte;
2926     union pthread_barrierattr_t
2927     {
2928         char[4] __size;
2929         int __align;
2930     }
2931     union pthread_barrier_t
2932     {
2933         char[32] __size;
2934         c_long __align;
2935     }
2936     alias pthread_spinlock_t = int;
2937     union pthread_rwlockattr_t
2938     {
2939         char[8] __size;
2940         c_long __align;
2941     }
2942     union pthread_rwlock_t
2943     {
2944         __pthread_rwlock_arch_t __data;
2945         char[56] __size;
2946         c_long __align;
2947     }
2948     union pthread_cond_t
2949     {
2950         __pthread_cond_s __data;
2951         char[48] __size;
2952         long __align;
2953     }
2954     union pthread_mutex_t
2955     {
2956         __pthread_mutex_s __data;
2957         char[40] __size;
2958         c_long __align;
2959     }
2960     union pthread_attr_t
2961     {
2962         char[56] __size;
2963         c_long __align;
2964     }
2965     alias pthread_once_t = int;
2966     alias ptrdiff_t = c_long;
2967     alias pthread_key_t = uint;
2968     alias size_t = c_ulong;
2969     alias wchar_t = int;
2970     union pthread_condattr_t
2971     {
2972         char[4] __size;
2973         int __align;
2974     }
2975     union pthread_mutexattr_t
2976     {
2977         char[4] __size;
2978         int __align;
2979     }
2980     alias pthread_t = c_ulong;
2981     struct __pthread_rwlock_arch_t
2982     {
2983         uint __readers;
2984         uint __writers;
2985         uint __wrphase_futex;
2986         uint __writers_futex;
2987         uint __pad3;
2988         uint __pad4;
2989         int __cur_writer;
2990         int __shared;
2991         byte __rwelision;
2992         ubyte[7] __pad1;
2993         c_ulong __pad2;
2994         uint __flags;
2995     }
2996     enum _Anonymous_39
2997     {
2998         _ISupper = 256,
2999         _ISlower = 512,
3000         _ISalpha = 1024,
3001         _ISdigit = 2048,
3002         _ISxdigit = 4096,
3003         _ISspace = 8192,
3004         _ISprint = 16384,
3005         _ISgraph = 32768,
3006         _ISblank = 1,
3007         _IScntrl = 2,
3008         _ISpunct = 4,
3009         _ISalnum = 8,
3010     }
3011     enum _ISupper = _Anonymous_39._ISupper;
3012     enum _ISlower = _Anonymous_39._ISlower;
3013     enum _ISalpha = _Anonymous_39._ISalpha;
3014     enum _ISdigit = _Anonymous_39._ISdigit;
3015     enum _ISxdigit = _Anonymous_39._ISxdigit;
3016     enum _ISspace = _Anonymous_39._ISspace;
3017     enum _ISprint = _Anonymous_39._ISprint;
3018     enum _ISgraph = _Anonymous_39._ISgraph;
3019     enum _ISblank = _Anonymous_39._ISblank;
3020     enum _IScntrl = _Anonymous_39._IScntrl;
3021     enum _ISpunct = _Anonymous_39._ISpunct;
3022     enum _ISalnum = _Anonymous_39._ISalnum;
3023     const(ushort)** __ctype_b_loc() @nogc nothrow;
3024     const(__int32_t)** __ctype_tolower_loc() @nogc nothrow;
3025     const(__int32_t)** __ctype_toupper_loc() @nogc nothrow;
3026     pragma(mangle, "isalnum") int isalnum_(int) @nogc nothrow;
3027     pragma(mangle, "isalpha") int isalpha_(int) @nogc nothrow;
3028     pragma(mangle, "iscntrl") int iscntrl_(int) @nogc nothrow;
3029     pragma(mangle, "isdigit") int isdigit_(int) @nogc nothrow;
3030     pragma(mangle, "islower") int islower_(int) @nogc nothrow;
3031     pragma(mangle, "isgraph") int isgraph_(int) @nogc nothrow;
3032     pragma(mangle, "isprint") int isprint_(int) @nogc nothrow;
3033     pragma(mangle, "ispunct") int ispunct_(int) @nogc nothrow;
3034     pragma(mangle, "isspace") int isspace_(int) @nogc nothrow;
3035     pragma(mangle, "isupper") int isupper_(int) @nogc nothrow;
3036     pragma(mangle, "isxdigit") int isxdigit_(int) @nogc nothrow;
3037     int tolower(int) @nogc nothrow;
3038     int toupper(int) @nogc nothrow;
3039     pragma(mangle, "isblank") int isblank_(int) @nogc nothrow;
3040     pragma(mangle, "isascii") int isascii_(int) @nogc nothrow;
3041     pragma(mangle, "toascii") int toascii_(int) @nogc nothrow;
3042     pragma(mangle, "_toupper") int _toupper_(int) @nogc nothrow;
3043     pragma(mangle, "_tolower") int _tolower_(int) @nogc nothrow;
3044     void _IO_free_backup_area(_IO_FILE*) @nogc nothrow;
3045     __off64_t _IO_seekpos(_IO_FILE*, __off64_t, int) @nogc nothrow;
3046     pragma(mangle, "isalnum_l") int isalnum_l_(int, locale_t) @nogc nothrow;
3047     pragma(mangle, "isalpha_l") int isalpha_l_(int, locale_t) @nogc nothrow;
3048     pragma(mangle, "iscntrl_l") int iscntrl_l_(int, locale_t) @nogc nothrow;
3049     pragma(mangle, "isdigit_l") int isdigit_l_(int, locale_t) @nogc nothrow;
3050     pragma(mangle, "islower_l") int islower_l_(int, locale_t) @nogc nothrow;
3051     pragma(mangle, "isgraph_l") int isgraph_l_(int, locale_t) @nogc nothrow;
3052     pragma(mangle, "isprint_l") int isprint_l_(int, locale_t) @nogc nothrow;
3053     pragma(mangle, "ispunct_l") int ispunct_l_(int, locale_t) @nogc nothrow;
3054     pragma(mangle, "isspace_l") int isspace_l_(int, locale_t) @nogc nothrow;
3055     pragma(mangle, "isupper_l") int isupper_l_(int, locale_t) @nogc nothrow;
3056     pragma(mangle, "isxdigit_l") int isxdigit_l_(int, locale_t) @nogc nothrow;
3057     pragma(mangle, "isblank_l") int isblank_l_(int, locale_t) @nogc nothrow;
3058     int __tolower_l(int, locale_t) @nogc nothrow;
3059     int tolower_l(int, locale_t) @nogc nothrow;
3060     int __toupper_l(int, locale_t) @nogc nothrow;
3061     int toupper_l(int, locale_t) @nogc nothrow;
3062     __off64_t _IO_seekoff(_IO_FILE*, __off64_t, int, int) @nogc nothrow;
3063     size_t _IO_sgetn(_IO_FILE*, void*, size_t) @nogc nothrow;
3064     __ssize_t _IO_padn(_IO_FILE*, int, __ssize_t) @nogc nothrow;
3065     int _IO_vfprintf(_IO_FILE*, const(char)*, va_list) @nogc nothrow;
3066     int _IO_vfscanf(_IO_FILE*, const(char)*, va_list, int*) @nogc nothrow;
3067     pragma(mangle, "_IO_ftrylockfile") int _IO_ftrylockfile_(_IO_FILE*) @nogc nothrow;
3068     pragma(mangle, "_IO_funlockfile") void _IO_funlockfile_(_IO_FILE*) @nogc nothrow;
3069     pragma(mangle, "_IO_flockfile") void _IO_flockfile_(_IO_FILE*) @nogc nothrow;
3070     int _IO_peekc_locked(_IO_FILE*) @nogc nothrow;
3071     int _IO_ferror(_IO_FILE*) @nogc nothrow;
3072     int _IO_feof(_IO_FILE*) @nogc nothrow;
3073     int _IO_putc(int, _IO_FILE*) @nogc nothrow;
3074     int _IO_getc(_IO_FILE*) @nogc nothrow;
3075     int __overflow(_IO_FILE*, int) @nogc nothrow;
3076     int __uflow(_IO_FILE*) @nogc nothrow;
3077     int __underflow(_IO_FILE*) @nogc nothrow;
3078     alias __io_close_fn = int function(void*) @nogc nothrow;
3079     alias __io_seek_fn = int function(void*, __off64_t*, int) @nogc nothrow;
3080     alias __io_write_fn = c_long function(void*, const(char)*, size_t) @nogc nothrow;
3081     alias __io_read_fn = c_long function(void*, char*, size_t) @nogc nothrow;
3082     struct _IO_FILE_plus;
3083     enum __codecvt_result
3084     {
3085         __codecvt_ok = 0,
3086         __codecvt_partial = 1,
3087         __codecvt_error = 2,
3088         __codecvt_noconv = 3,
3089     }
3090     enum __codecvt_ok = __codecvt_result.__codecvt_ok;
3091     enum __codecvt_partial = __codecvt_result.__codecvt_partial;
3092     enum __codecvt_error = __codecvt_result.__codecvt_error;
3093     enum __codecvt_noconv = __codecvt_result.__codecvt_noconv;
3094     struct _IO_marker
3095     {
3096         _IO_marker* _next;
3097         _IO_FILE* _sbuf;
3098         int _pos;
3099     }
3100     alias _IO_lock_t = void;
3101     struct _IO_jump_t;
3102     int* __errno_location() @nogc nothrow;
3103     int getopt(int, char**, const(char)*) @nogc nothrow;
3104     extern __gshared int optopt;
3105     extern __gshared int opterr;
3106     extern __gshared int optind;
3107     extern __gshared char* optarg;
3108     alias _Float64x = real;
3109     alias _Float32x = double;
3110     alias _Float64 = double;
3111     alias _Float32 = float;
3112     alias int_least8_t = byte;
3113     alias int_least16_t = short;
3114     alias int_least32_t = int;
3115     alias int_least64_t = c_long;
3116     alias uint_least8_t = ubyte;
3117     alias uint_least16_t = ushort;
3118     alias uint_least32_t = uint;
3119     alias uint_least64_t = c_ulong;
3120     alias int_fast8_t = byte;
3121     alias int_fast16_t = c_long;
3122     alias int_fast32_t = c_long;
3123     alias int_fast64_t = c_long;
3124     alias uint_fast8_t = ubyte;
3125     alias uint_fast16_t = c_ulong;
3126     alias uint_fast32_t = c_ulong;
3127     alias uint_fast64_t = c_ulong;
3128     alias intptr_t = c_long;
3129     alias uintptr_t = c_ulong;
3130     alias intmax_t = c_long;
3131     alias uintmax_t = c_ulong;
3132     enum _Anonymous_40
3133     {
3134         _CS_PATH = 0,
3135         _CS_V6_WIDTH_RESTRICTED_ENVS = 1,
3136         _CS_GNU_LIBC_VERSION = 2,
3137         _CS_GNU_LIBPTHREAD_VERSION = 3,
3138         _CS_V5_WIDTH_RESTRICTED_ENVS = 4,
3139         _CS_V7_WIDTH_RESTRICTED_ENVS = 5,
3140         _CS_LFS_CFLAGS = 1000,
3141         _CS_LFS_LDFLAGS = 1001,
3142         _CS_LFS_LIBS = 1002,
3143         _CS_LFS_LINTFLAGS = 1003,
3144         _CS_LFS64_CFLAGS = 1004,
3145         _CS_LFS64_LDFLAGS = 1005,
3146         _CS_LFS64_LIBS = 1006,
3147         _CS_LFS64_LINTFLAGS = 1007,
3148         _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
3149         _CS_XBS5_ILP32_OFF32_LDFLAGS = 1101,
3150         _CS_XBS5_ILP32_OFF32_LIBS = 1102,
3151         _CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103,
3152         _CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104,
3153         _CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105,
3154         _CS_XBS5_ILP32_OFFBIG_LIBS = 1106,
3155         _CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107,
3156         _CS_XBS5_LP64_OFF64_CFLAGS = 1108,
3157         _CS_XBS5_LP64_OFF64_LDFLAGS = 1109,
3158         _CS_XBS5_LP64_OFF64_LIBS = 1110,
3159         _CS_XBS5_LP64_OFF64_LINTFLAGS = 1111,
3160         _CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112,
3161         _CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113,
3162         _CS_XBS5_LPBIG_OFFBIG_LIBS = 1114,
3163         _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115,
3164         _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116,
3165         _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117,
3166         _CS_POSIX_V6_ILP32_OFF32_LIBS = 1118,
3167         _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119,
3168         _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120,
3169         _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121,
3170         _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122,
3171         _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123,
3172         _CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124,
3173         _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125,
3174         _CS_POSIX_V6_LP64_OFF64_LIBS = 1126,
3175         _CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127,
3176         _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128,
3177         _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129,
3178         _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130,
3179         _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131,
3180         _CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132,
3181         _CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133,
3182         _CS_POSIX_V7_ILP32_OFF32_LIBS = 1134,
3183         _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135,
3184         _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136,
3185         _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137,
3186         _CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138,
3187         _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139,
3188         _CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140,
3189         _CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141,
3190         _CS_POSIX_V7_LP64_OFF64_LIBS = 1142,
3191         _CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143,
3192         _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144,
3193         _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145,
3194         _CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146,
3195         _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147,
3196         _CS_V6_ENV = 1148,
3197         _CS_V7_ENV = 1149,
3198     }
3199     enum _CS_PATH = _Anonymous_40._CS_PATH;
3200     enum _CS_V6_WIDTH_RESTRICTED_ENVS = _Anonymous_40._CS_V6_WIDTH_RESTRICTED_ENVS;
3201     enum _CS_GNU_LIBC_VERSION = _Anonymous_40._CS_GNU_LIBC_VERSION;
3202     enum _CS_GNU_LIBPTHREAD_VERSION = _Anonymous_40._CS_GNU_LIBPTHREAD_VERSION;
3203     enum _CS_V5_WIDTH_RESTRICTED_ENVS = _Anonymous_40._CS_V5_WIDTH_RESTRICTED_ENVS;
3204     enum _CS_V7_WIDTH_RESTRICTED_ENVS = _Anonymous_40._CS_V7_WIDTH_RESTRICTED_ENVS;
3205     enum _CS_LFS_CFLAGS = _Anonymous_40._CS_LFS_CFLAGS;
3206     enum _CS_LFS_LDFLAGS = _Anonymous_40._CS_LFS_LDFLAGS;
3207     enum _CS_LFS_LIBS = _Anonymous_40._CS_LFS_LIBS;
3208     enum _CS_LFS_LINTFLAGS = _Anonymous_40._CS_LFS_LINTFLAGS;
3209     enum _CS_LFS64_CFLAGS = _Anonymous_40._CS_LFS64_CFLAGS;
3210     enum _CS_LFS64_LDFLAGS = _Anonymous_40._CS_LFS64_LDFLAGS;
3211     enum _CS_LFS64_LIBS = _Anonymous_40._CS_LFS64_LIBS;
3212     enum _CS_LFS64_LINTFLAGS = _Anonymous_40._CS_LFS64_LINTFLAGS;
3213     enum _CS_XBS5_ILP32_OFF32_CFLAGS = _Anonymous_40._CS_XBS5_ILP32_OFF32_CFLAGS;
3214     enum _CS_XBS5_ILP32_OFF32_LDFLAGS = _Anonymous_40._CS_XBS5_ILP32_OFF32_LDFLAGS;
3215     enum _CS_XBS5_ILP32_OFF32_LIBS = _Anonymous_40._CS_XBS5_ILP32_OFF32_LIBS;
3216     enum _CS_XBS5_ILP32_OFF32_LINTFLAGS = _Anonymous_40._CS_XBS5_ILP32_OFF32_LINTFLAGS;
3217     enum _CS_XBS5_ILP32_OFFBIG_CFLAGS = _Anonymous_40._CS_XBS5_ILP32_OFFBIG_CFLAGS;
3218     enum _CS_XBS5_ILP32_OFFBIG_LDFLAGS = _Anonymous_40._CS_XBS5_ILP32_OFFBIG_LDFLAGS;
3219     enum _CS_XBS5_ILP32_OFFBIG_LIBS = _Anonymous_40._CS_XBS5_ILP32_OFFBIG_LIBS;
3220     enum _CS_XBS5_ILP32_OFFBIG_LINTFLAGS = _Anonymous_40._CS_XBS5_ILP32_OFFBIG_LINTFLAGS;
3221     enum _CS_XBS5_LP64_OFF64_CFLAGS = _Anonymous_40._CS_XBS5_LP64_OFF64_CFLAGS;
3222     enum _CS_XBS5_LP64_OFF64_LDFLAGS = _Anonymous_40._CS_XBS5_LP64_OFF64_LDFLAGS;
3223     enum _CS_XBS5_LP64_OFF64_LIBS = _Anonymous_40._CS_XBS5_LP64_OFF64_LIBS;
3224     enum _CS_XBS5_LP64_OFF64_LINTFLAGS = _Anonymous_40._CS_XBS5_LP64_OFF64_LINTFLAGS;
3225     enum _CS_XBS5_LPBIG_OFFBIG_CFLAGS = _Anonymous_40._CS_XBS5_LPBIG_OFFBIG_CFLAGS;
3226     enum _CS_XBS5_LPBIG_OFFBIG_LDFLAGS = _Anonymous_40._CS_XBS5_LPBIG_OFFBIG_LDFLAGS;
3227     enum _CS_XBS5_LPBIG_OFFBIG_LIBS = _Anonymous_40._CS_XBS5_LPBIG_OFFBIG_LIBS;
3228     enum _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = _Anonymous_40._CS_XBS5_LPBIG_OFFBIG_LINTFLAGS;
3229     enum _CS_POSIX_V6_ILP32_OFF32_CFLAGS = _Anonymous_40._CS_POSIX_V6_ILP32_OFF32_CFLAGS;
3230     enum _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = _Anonymous_40._CS_POSIX_V6_ILP32_OFF32_LDFLAGS;
3231     enum _CS_POSIX_V6_ILP32_OFF32_LIBS = _Anonymous_40._CS_POSIX_V6_ILP32_OFF32_LIBS;
3232     enum _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = _Anonymous_40._CS_POSIX_V6_ILP32_OFF32_LINTFLAGS;
3233     enum _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = _Anonymous_40._CS_POSIX_V6_ILP32_OFFBIG_CFLAGS;
3234     enum _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = _Anonymous_40._CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS;
3235     enum _CS_POSIX_V6_ILP32_OFFBIG_LIBS = _Anonymous_40._CS_POSIX_V6_ILP32_OFFBIG_LIBS;
3236     enum _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = _Anonymous_40._CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS;
3237     enum _CS_POSIX_V6_LP64_OFF64_CFLAGS = _Anonymous_40._CS_POSIX_V6_LP64_OFF64_CFLAGS;
3238     enum _CS_POSIX_V6_LP64_OFF64_LDFLAGS = _Anonymous_40._CS_POSIX_V6_LP64_OFF64_LDFLAGS;
3239     enum _CS_POSIX_V6_LP64_OFF64_LIBS = _Anonymous_40._CS_POSIX_V6_LP64_OFF64_LIBS;
3240     enum _CS_POSIX_V6_LP64_OFF64_LINTFLAGS = _Anonymous_40._CS_POSIX_V6_LP64_OFF64_LINTFLAGS;
3241     enum _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = _Anonymous_40._CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS;
3242     enum _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = _Anonymous_40._CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS;
3243     enum _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = _Anonymous_40._CS_POSIX_V6_LPBIG_OFFBIG_LIBS;
3244     enum _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = _Anonymous_40._CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS;
3245     enum _CS_POSIX_V7_ILP32_OFF32_CFLAGS = _Anonymous_40._CS_POSIX_V7_ILP32_OFF32_CFLAGS;
3246     enum _CS_POSIX_V7_ILP32_OFF32_LDFLAGS = _Anonymous_40._CS_POSIX_V7_ILP32_OFF32_LDFLAGS;
3247     enum _CS_POSIX_V7_ILP32_OFF32_LIBS = _Anonymous_40._CS_POSIX_V7_ILP32_OFF32_LIBS;
3248     enum _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = _Anonymous_40._CS_POSIX_V7_ILP32_OFF32_LINTFLAGS;
3249     enum _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = _Anonymous_40._CS_POSIX_V7_ILP32_OFFBIG_CFLAGS;
3250     enum _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = _Anonymous_40._CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS;
3251     enum _CS_POSIX_V7_ILP32_OFFBIG_LIBS = _Anonymous_40._CS_POSIX_V7_ILP32_OFFBIG_LIBS;
3252     enum _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = _Anonymous_40._CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS;
3253     enum _CS_POSIX_V7_LP64_OFF64_CFLAGS = _Anonymous_40._CS_POSIX_V7_LP64_OFF64_CFLAGS;
3254     enum _CS_POSIX_V7_LP64_OFF64_LDFLAGS = _Anonymous_40._CS_POSIX_V7_LP64_OFF64_LDFLAGS;
3255     enum _CS_POSIX_V7_LP64_OFF64_LIBS = _Anonymous_40._CS_POSIX_V7_LP64_OFF64_LIBS;
3256     enum _CS_POSIX_V7_LP64_OFF64_LINTFLAGS = _Anonymous_40._CS_POSIX_V7_LP64_OFF64_LINTFLAGS;
3257     enum _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = _Anonymous_40._CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS;
3258     enum _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = _Anonymous_40._CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS;
3259     enum _CS_POSIX_V7_LPBIG_OFFBIG_LIBS = _Anonymous_40._CS_POSIX_V7_LPBIG_OFFBIG_LIBS;
3260     enum _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = _Anonymous_40._CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS;
3261     enum _CS_V6_ENV = _Anonymous_40._CS_V6_ENV;
3262     enum _CS_V7_ENV = _Anonymous_40._CS_V7_ENV;
3263     enum _Anonymous_41
3264     {
3265         _SC_ARG_MAX = 0,
3266         _SC_CHILD_MAX = 1,
3267         _SC_CLK_TCK = 2,
3268         _SC_NGROUPS_MAX = 3,
3269         _SC_OPEN_MAX = 4,
3270         _SC_STREAM_MAX = 5,
3271         _SC_TZNAME_MAX = 6,
3272         _SC_JOB_CONTROL = 7,
3273         _SC_SAVED_IDS = 8,
3274         _SC_REALTIME_SIGNALS = 9,
3275         _SC_PRIORITY_SCHEDULING = 10,
3276         _SC_TIMERS = 11,
3277         _SC_ASYNCHRONOUS_IO = 12,
3278         _SC_PRIORITIZED_IO = 13,
3279         _SC_SYNCHRONIZED_IO = 14,
3280         _SC_FSYNC = 15,
3281         _SC_MAPPED_FILES = 16,
3282         _SC_MEMLOCK = 17,
3283         _SC_MEMLOCK_RANGE = 18,
3284         _SC_MEMORY_PROTECTION = 19,
3285         _SC_MESSAGE_PASSING = 20,
3286         _SC_SEMAPHORES = 21,
3287         _SC_SHARED_MEMORY_OBJECTS = 22,
3288         _SC_AIO_LISTIO_MAX = 23,
3289         _SC_AIO_MAX = 24,
3290         _SC_AIO_PRIO_DELTA_MAX = 25,
3291         _SC_DELAYTIMER_MAX = 26,
3292         _SC_MQ_OPEN_MAX = 27,
3293         _SC_MQ_PRIO_MAX = 28,
3294         _SC_VERSION = 29,
3295         _SC_PAGESIZE = 30,
3296         _SC_RTSIG_MAX = 31,
3297         _SC_SEM_NSEMS_MAX = 32,
3298         _SC_SEM_VALUE_MAX = 33,
3299         _SC_SIGQUEUE_MAX = 34,
3300         _SC_TIMER_MAX = 35,
3301         _SC_BC_BASE_MAX = 36,
3302         _SC_BC_DIM_MAX = 37,
3303         _SC_BC_SCALE_MAX = 38,
3304         _SC_BC_STRING_MAX = 39,
3305         _SC_COLL_WEIGHTS_MAX = 40,
3306         _SC_EQUIV_CLASS_MAX = 41,
3307         _SC_EXPR_NEST_MAX = 42,
3308         _SC_LINE_MAX = 43,
3309         _SC_RE_DUP_MAX = 44,
3310         _SC_CHARCLASS_NAME_MAX = 45,
3311         _SC_2_VERSION = 46,
3312         _SC_2_C_BIND = 47,
3313         _SC_2_C_DEV = 48,
3314         _SC_2_FORT_DEV = 49,
3315         _SC_2_FORT_RUN = 50,
3316         _SC_2_SW_DEV = 51,
3317         _SC_2_LOCALEDEF = 52,
3318         _SC_PII = 53,
3319         _SC_PII_XTI = 54,
3320         _SC_PII_SOCKET = 55,
3321         _SC_PII_INTERNET = 56,
3322         _SC_PII_OSI = 57,
3323         _SC_POLL = 58,
3324         _SC_SELECT = 59,
3325         _SC_UIO_MAXIOV = 60,
3326         _SC_IOV_MAX = 60,
3327         _SC_PII_INTERNET_STREAM = 61,
3328         _SC_PII_INTERNET_DGRAM = 62,
3329         _SC_PII_OSI_COTS = 63,
3330         _SC_PII_OSI_CLTS = 64,
3331         _SC_PII_OSI_M = 65,
3332         _SC_T_IOV_MAX = 66,
3333         _SC_THREADS = 67,
3334         _SC_THREAD_SAFE_FUNCTIONS = 68,
3335         _SC_GETGR_R_SIZE_MAX = 69,
3336         _SC_GETPW_R_SIZE_MAX = 70,
3337         _SC_LOGIN_NAME_MAX = 71,
3338         _SC_TTY_NAME_MAX = 72,
3339         _SC_THREAD_DESTRUCTOR_ITERATIONS = 73,
3340         _SC_THREAD_KEYS_MAX = 74,
3341         _SC_THREAD_STACK_MIN = 75,
3342         _SC_THREAD_THREADS_MAX = 76,
3343         _SC_THREAD_ATTR_STACKADDR = 77,
3344         _SC_THREAD_ATTR_STACKSIZE = 78,
3345         _SC_THREAD_PRIORITY_SCHEDULING = 79,
3346         _SC_THREAD_PRIO_INHERIT = 80,
3347         _SC_THREAD_PRIO_PROTECT = 81,
3348         _SC_THREAD_PROCESS_SHARED = 82,
3349         _SC_NPROCESSORS_CONF = 83,
3350         _SC_NPROCESSORS_ONLN = 84,
3351         _SC_PHYS_PAGES = 85,
3352         _SC_AVPHYS_PAGES = 86,
3353         _SC_ATEXIT_MAX = 87,
3354         _SC_PASS_MAX = 88,
3355         _SC_XOPEN_VERSION = 89,
3356         _SC_XOPEN_XCU_VERSION = 90,
3357         _SC_XOPEN_UNIX = 91,
3358         _SC_XOPEN_CRYPT = 92,
3359         _SC_XOPEN_ENH_I18N = 93,
3360         _SC_XOPEN_SHM = 94,
3361         _SC_2_CHAR_TERM = 95,
3362         _SC_2_C_VERSION = 96,
3363         _SC_2_UPE = 97,
3364         _SC_XOPEN_XPG2 = 98,
3365         _SC_XOPEN_XPG3 = 99,
3366         _SC_XOPEN_XPG4 = 100,
3367         _SC_CHAR_BIT = 101,
3368         _SC_CHAR_MAX = 102,
3369         _SC_CHAR_MIN = 103,
3370         _SC_INT_MAX = 104,
3371         _SC_INT_MIN = 105,
3372         _SC_LONG_BIT = 106,
3373         _SC_WORD_BIT = 107,
3374         _SC_MB_LEN_MAX = 108,
3375         _SC_NZERO = 109,
3376         _SC_SSIZE_MAX = 110,
3377         _SC_SCHAR_MAX = 111,
3378         _SC_SCHAR_MIN = 112,
3379         _SC_SHRT_MAX = 113,
3380         _SC_SHRT_MIN = 114,
3381         _SC_UCHAR_MAX = 115,
3382         _SC_UINT_MAX = 116,
3383         _SC_ULONG_MAX = 117,
3384         _SC_USHRT_MAX = 118,
3385         _SC_NL_ARGMAX = 119,
3386         _SC_NL_LANGMAX = 120,
3387         _SC_NL_MSGMAX = 121,
3388         _SC_NL_NMAX = 122,
3389         _SC_NL_SETMAX = 123,
3390         _SC_NL_TEXTMAX = 124,
3391         _SC_XBS5_ILP32_OFF32 = 125,
3392         _SC_XBS5_ILP32_OFFBIG = 126,
3393         _SC_XBS5_LP64_OFF64 = 127,
3394         _SC_XBS5_LPBIG_OFFBIG = 128,
3395         _SC_XOPEN_LEGACY = 129,
3396         _SC_XOPEN_REALTIME = 130,
3397         _SC_XOPEN_REALTIME_THREADS = 131,
3398         _SC_ADVISORY_INFO = 132,
3399         _SC_BARRIERS = 133,
3400         _SC_BASE = 134,
3401         _SC_C_LANG_SUPPORT = 135,
3402         _SC_C_LANG_SUPPORT_R = 136,
3403         _SC_CLOCK_SELECTION = 137,
3404         _SC_CPUTIME = 138,
3405         _SC_THREAD_CPUTIME = 139,
3406         _SC_DEVICE_IO = 140,
3407         _SC_DEVICE_SPECIFIC = 141,
3408         _SC_DEVICE_SPECIFIC_R = 142,
3409         _SC_FD_MGMT = 143,
3410         _SC_FIFO = 144,
3411         _SC_PIPE = 145,
3412         _SC_FILE_ATTRIBUTES = 146,
3413         _SC_FILE_LOCKING = 147,
3414         _SC_FILE_SYSTEM = 148,
3415         _SC_MONOTONIC_CLOCK = 149,
3416         _SC_MULTI_PROCESS = 150,
3417         _SC_SINGLE_PROCESS = 151,
3418         _SC_NETWORKING = 152,
3419         _SC_READER_WRITER_LOCKS = 153,
3420         _SC_SPIN_LOCKS = 154,
3421         _SC_REGEXP = 155,
3422         _SC_REGEX_VERSION = 156,
3423         _SC_SHELL = 157,
3424         _SC_SIGNALS = 158,
3425         _SC_SPAWN = 159,
3426         _SC_SPORADIC_SERVER = 160,
3427         _SC_THREAD_SPORADIC_SERVER = 161,
3428         _SC_SYSTEM_DATABASE = 162,
3429         _SC_SYSTEM_DATABASE_R = 163,
3430         _SC_TIMEOUTS = 164,
3431         _SC_TYPED_MEMORY_OBJECTS = 165,
3432         _SC_USER_GROUPS = 166,
3433         _SC_USER_GROUPS_R = 167,
3434         _SC_2_PBS = 168,
3435         _SC_2_PBS_ACCOUNTING = 169,
3436         _SC_2_PBS_LOCATE = 170,
3437         _SC_2_PBS_MESSAGE = 171,
3438         _SC_2_PBS_TRACK = 172,
3439         _SC_SYMLOOP_MAX = 173,
3440         _SC_STREAMS = 174,
3441         _SC_2_PBS_CHECKPOINT = 175,
3442         _SC_V6_ILP32_OFF32 = 176,
3443         _SC_V6_ILP32_OFFBIG = 177,
3444         _SC_V6_LP64_OFF64 = 178,
3445         _SC_V6_LPBIG_OFFBIG = 179,
3446         _SC_HOST_NAME_MAX = 180,
3447         _SC_TRACE = 181,
3448         _SC_TRACE_EVENT_FILTER = 182,
3449         _SC_TRACE_INHERIT = 183,
3450         _SC_TRACE_LOG = 184,
3451         _SC_LEVEL1_ICACHE_SIZE = 185,
3452         _SC_LEVEL1_ICACHE_ASSOC = 186,
3453         _SC_LEVEL1_ICACHE_LINESIZE = 187,
3454         _SC_LEVEL1_DCACHE_SIZE = 188,
3455         _SC_LEVEL1_DCACHE_ASSOC = 189,
3456         _SC_LEVEL1_DCACHE_LINESIZE = 190,
3457         _SC_LEVEL2_CACHE_SIZE = 191,
3458         _SC_LEVEL2_CACHE_ASSOC = 192,
3459         _SC_LEVEL2_CACHE_LINESIZE = 193,
3460         _SC_LEVEL3_CACHE_SIZE = 194,
3461         _SC_LEVEL3_CACHE_ASSOC = 195,
3462         _SC_LEVEL3_CACHE_LINESIZE = 196,
3463         _SC_LEVEL4_CACHE_SIZE = 197,
3464         _SC_LEVEL4_CACHE_ASSOC = 198,
3465         _SC_LEVEL4_CACHE_LINESIZE = 199,
3466         _SC_IPV6 = 235,
3467         _SC_RAW_SOCKETS = 236,
3468         _SC_V7_ILP32_OFF32 = 237,
3469         _SC_V7_ILP32_OFFBIG = 238,
3470         _SC_V7_LP64_OFF64 = 239,
3471         _SC_V7_LPBIG_OFFBIG = 240,
3472         _SC_SS_REPL_MAX = 241,
3473         _SC_TRACE_EVENT_NAME_MAX = 242,
3474         _SC_TRACE_NAME_MAX = 243,
3475         _SC_TRACE_SYS_MAX = 244,
3476         _SC_TRACE_USER_EVENT_MAX = 245,
3477         _SC_XOPEN_STREAMS = 246,
3478         _SC_THREAD_ROBUST_PRIO_INHERIT = 247,
3479         _SC_THREAD_ROBUST_PRIO_PROTECT = 248,
3480     }
3481     enum _SC_ARG_MAX = _Anonymous_41._SC_ARG_MAX;
3482     enum _SC_CHILD_MAX = _Anonymous_41._SC_CHILD_MAX;
3483     enum _SC_CLK_TCK = _Anonymous_41._SC_CLK_TCK;
3484     enum _SC_NGROUPS_MAX = _Anonymous_41._SC_NGROUPS_MAX;
3485     enum _SC_OPEN_MAX = _Anonymous_41._SC_OPEN_MAX;
3486     enum _SC_STREAM_MAX = _Anonymous_41._SC_STREAM_MAX;
3487     enum _SC_TZNAME_MAX = _Anonymous_41._SC_TZNAME_MAX;
3488     enum _SC_JOB_CONTROL = _Anonymous_41._SC_JOB_CONTROL;
3489     enum _SC_SAVED_IDS = _Anonymous_41._SC_SAVED_IDS;
3490     enum _SC_REALTIME_SIGNALS = _Anonymous_41._SC_REALTIME_SIGNALS;
3491     enum _SC_PRIORITY_SCHEDULING = _Anonymous_41._SC_PRIORITY_SCHEDULING;
3492     enum _SC_TIMERS = _Anonymous_41._SC_TIMERS;
3493     enum _SC_ASYNCHRONOUS_IO = _Anonymous_41._SC_ASYNCHRONOUS_IO;
3494     enum _SC_PRIORITIZED_IO = _Anonymous_41._SC_PRIORITIZED_IO;
3495     enum _SC_SYNCHRONIZED_IO = _Anonymous_41._SC_SYNCHRONIZED_IO;
3496     enum _SC_FSYNC = _Anonymous_41._SC_FSYNC;
3497     enum _SC_MAPPED_FILES = _Anonymous_41._SC_MAPPED_FILES;
3498     enum _SC_MEMLOCK = _Anonymous_41._SC_MEMLOCK;
3499     enum _SC_MEMLOCK_RANGE = _Anonymous_41._SC_MEMLOCK_RANGE;
3500     enum _SC_MEMORY_PROTECTION = _Anonymous_41._SC_MEMORY_PROTECTION;
3501     enum _SC_MESSAGE_PASSING = _Anonymous_41._SC_MESSAGE_PASSING;
3502     enum _SC_SEMAPHORES = _Anonymous_41._SC_SEMAPHORES;
3503     enum _SC_SHARED_MEMORY_OBJECTS = _Anonymous_41._SC_SHARED_MEMORY_OBJECTS;
3504     enum _SC_AIO_LISTIO_MAX = _Anonymous_41._SC_AIO_LISTIO_MAX;
3505     enum _SC_AIO_MAX = _Anonymous_41._SC_AIO_MAX;
3506     enum _SC_AIO_PRIO_DELTA_MAX = _Anonymous_41._SC_AIO_PRIO_DELTA_MAX;
3507     enum _SC_DELAYTIMER_MAX = _Anonymous_41._SC_DELAYTIMER_MAX;
3508     enum _SC_MQ_OPEN_MAX = _Anonymous_41._SC_MQ_OPEN_MAX;
3509     enum _SC_MQ_PRIO_MAX = _Anonymous_41._SC_MQ_PRIO_MAX;
3510     enum _SC_VERSION = _Anonymous_41._SC_VERSION;
3511     enum _SC_PAGESIZE = _Anonymous_41._SC_PAGESIZE;
3512     enum _SC_RTSIG_MAX = _Anonymous_41._SC_RTSIG_MAX;
3513     enum _SC_SEM_NSEMS_MAX = _Anonymous_41._SC_SEM_NSEMS_MAX;
3514     enum _SC_SEM_VALUE_MAX = _Anonymous_41._SC_SEM_VALUE_MAX;
3515     enum _SC_SIGQUEUE_MAX = _Anonymous_41._SC_SIGQUEUE_MAX;
3516     enum _SC_TIMER_MAX = _Anonymous_41._SC_TIMER_MAX;
3517     enum _SC_BC_BASE_MAX = _Anonymous_41._SC_BC_BASE_MAX;
3518     enum _SC_BC_DIM_MAX = _Anonymous_41._SC_BC_DIM_MAX;
3519     enum _SC_BC_SCALE_MAX = _Anonymous_41._SC_BC_SCALE_MAX;
3520     enum _SC_BC_STRING_MAX = _Anonymous_41._SC_BC_STRING_MAX;
3521     enum _SC_COLL_WEIGHTS_MAX = _Anonymous_41._SC_COLL_WEIGHTS_MAX;
3522     enum _SC_EQUIV_CLASS_MAX = _Anonymous_41._SC_EQUIV_CLASS_MAX;
3523     enum _SC_EXPR_NEST_MAX = _Anonymous_41._SC_EXPR_NEST_MAX;
3524     enum _SC_LINE_MAX = _Anonymous_41._SC_LINE_MAX;
3525     enum _SC_RE_DUP_MAX = _Anonymous_41._SC_RE_DUP_MAX;
3526     enum _SC_CHARCLASS_NAME_MAX = _Anonymous_41._SC_CHARCLASS_NAME_MAX;
3527     enum _SC_2_VERSION = _Anonymous_41._SC_2_VERSION;
3528     enum _SC_2_C_BIND = _Anonymous_41._SC_2_C_BIND;
3529     enum _SC_2_C_DEV = _Anonymous_41._SC_2_C_DEV;
3530     enum _SC_2_FORT_DEV = _Anonymous_41._SC_2_FORT_DEV;
3531     enum _SC_2_FORT_RUN = _Anonymous_41._SC_2_FORT_RUN;
3532     enum _SC_2_SW_DEV = _Anonymous_41._SC_2_SW_DEV;
3533     enum _SC_2_LOCALEDEF = _Anonymous_41._SC_2_LOCALEDEF;
3534     enum _SC_PII = _Anonymous_41._SC_PII;
3535     enum _SC_PII_XTI = _Anonymous_41._SC_PII_XTI;
3536     enum _SC_PII_SOCKET = _Anonymous_41._SC_PII_SOCKET;
3537     enum _SC_PII_INTERNET = _Anonymous_41._SC_PII_INTERNET;
3538     enum _SC_PII_OSI = _Anonymous_41._SC_PII_OSI;
3539     enum _SC_POLL = _Anonymous_41._SC_POLL;
3540     enum _SC_SELECT = _Anonymous_41._SC_SELECT;
3541     enum _SC_UIO_MAXIOV = _Anonymous_41._SC_UIO_MAXIOV;
3542     enum _SC_IOV_MAX = _Anonymous_41._SC_IOV_MAX;
3543     enum _SC_PII_INTERNET_STREAM = _Anonymous_41._SC_PII_INTERNET_STREAM;
3544     enum _SC_PII_INTERNET_DGRAM = _Anonymous_41._SC_PII_INTERNET_DGRAM;
3545     enum _SC_PII_OSI_COTS = _Anonymous_41._SC_PII_OSI_COTS;
3546     enum _SC_PII_OSI_CLTS = _Anonymous_41._SC_PII_OSI_CLTS;
3547     enum _SC_PII_OSI_M = _Anonymous_41._SC_PII_OSI_M;
3548     enum _SC_T_IOV_MAX = _Anonymous_41._SC_T_IOV_MAX;
3549     enum _SC_THREADS = _Anonymous_41._SC_THREADS;
3550     enum _SC_THREAD_SAFE_FUNCTIONS = _Anonymous_41._SC_THREAD_SAFE_FUNCTIONS;
3551     enum _SC_GETGR_R_SIZE_MAX = _Anonymous_41._SC_GETGR_R_SIZE_MAX;
3552     enum _SC_GETPW_R_SIZE_MAX = _Anonymous_41._SC_GETPW_R_SIZE_MAX;
3553     enum _SC_LOGIN_NAME_MAX = _Anonymous_41._SC_LOGIN_NAME_MAX;
3554     enum _SC_TTY_NAME_MAX = _Anonymous_41._SC_TTY_NAME_MAX;
3555     enum _SC_THREAD_DESTRUCTOR_ITERATIONS = _Anonymous_41._SC_THREAD_DESTRUCTOR_ITERATIONS;
3556     enum _SC_THREAD_KEYS_MAX = _Anonymous_41._SC_THREAD_KEYS_MAX;
3557     enum _SC_THREAD_STACK_MIN = _Anonymous_41._SC_THREAD_STACK_MIN;
3558     enum _SC_THREAD_THREADS_MAX = _Anonymous_41._SC_THREAD_THREADS_MAX;
3559     enum _SC_THREAD_ATTR_STACKADDR = _Anonymous_41._SC_THREAD_ATTR_STACKADDR;
3560     enum _SC_THREAD_ATTR_STACKSIZE = _Anonymous_41._SC_THREAD_ATTR_STACKSIZE;
3561     enum _SC_THREAD_PRIORITY_SCHEDULING = _Anonymous_41._SC_THREAD_PRIORITY_SCHEDULING;
3562     enum _SC_THREAD_PRIO_INHERIT = _Anonymous_41._SC_THREAD_PRIO_INHERIT;
3563     enum _SC_THREAD_PRIO_PROTECT = _Anonymous_41._SC_THREAD_PRIO_PROTECT;
3564     enum _SC_THREAD_PROCESS_SHARED = _Anonymous_41._SC_THREAD_PROCESS_SHARED;
3565     enum _SC_NPROCESSORS_CONF = _Anonymous_41._SC_NPROCESSORS_CONF;
3566     enum _SC_NPROCESSORS_ONLN = _Anonymous_41._SC_NPROCESSORS_ONLN;
3567     enum _SC_PHYS_PAGES = _Anonymous_41._SC_PHYS_PAGES;
3568     enum _SC_AVPHYS_PAGES = _Anonymous_41._SC_AVPHYS_PAGES;
3569     enum _SC_ATEXIT_MAX = _Anonymous_41._SC_ATEXIT_MAX;
3570     enum _SC_PASS_MAX = _Anonymous_41._SC_PASS_MAX;
3571     enum _SC_XOPEN_VERSION = _Anonymous_41._SC_XOPEN_VERSION;
3572     enum _SC_XOPEN_XCU_VERSION = _Anonymous_41._SC_XOPEN_XCU_VERSION;
3573     enum _SC_XOPEN_UNIX = _Anonymous_41._SC_XOPEN_UNIX;
3574     enum _SC_XOPEN_CRYPT = _Anonymous_41._SC_XOPEN_CRYPT;
3575     enum _SC_XOPEN_ENH_I18N = _Anonymous_41._SC_XOPEN_ENH_I18N;
3576     enum _SC_XOPEN_SHM = _Anonymous_41._SC_XOPEN_SHM;
3577     enum _SC_2_CHAR_TERM = _Anonymous_41._SC_2_CHAR_TERM;
3578     enum _SC_2_C_VERSION = _Anonymous_41._SC_2_C_VERSION;
3579     enum _SC_2_UPE = _Anonymous_41._SC_2_UPE;
3580     enum _SC_XOPEN_XPG2 = _Anonymous_41._SC_XOPEN_XPG2;
3581     enum _SC_XOPEN_XPG3 = _Anonymous_41._SC_XOPEN_XPG3;
3582     enum _SC_XOPEN_XPG4 = _Anonymous_41._SC_XOPEN_XPG4;
3583     enum _SC_CHAR_BIT = _Anonymous_41._SC_CHAR_BIT;
3584     enum _SC_CHAR_MAX = _Anonymous_41._SC_CHAR_MAX;
3585     enum _SC_CHAR_MIN = _Anonymous_41._SC_CHAR_MIN;
3586     enum _SC_INT_MAX = _Anonymous_41._SC_INT_MAX;
3587     enum _SC_INT_MIN = _Anonymous_41._SC_INT_MIN;
3588     enum _SC_LONG_BIT = _Anonymous_41._SC_LONG_BIT;
3589     enum _SC_WORD_BIT = _Anonymous_41._SC_WORD_BIT;
3590     enum _SC_MB_LEN_MAX = _Anonymous_41._SC_MB_LEN_MAX;
3591     enum _SC_NZERO = _Anonymous_41._SC_NZERO;
3592     enum _SC_SSIZE_MAX = _Anonymous_41._SC_SSIZE_MAX;
3593     enum _SC_SCHAR_MAX = _Anonymous_41._SC_SCHAR_MAX;
3594     enum _SC_SCHAR_MIN = _Anonymous_41._SC_SCHAR_MIN;
3595     enum _SC_SHRT_MAX = _Anonymous_41._SC_SHRT_MAX;
3596     enum _SC_SHRT_MIN = _Anonymous_41._SC_SHRT_MIN;
3597     enum _SC_UCHAR_MAX = _Anonymous_41._SC_UCHAR_MAX;
3598     enum _SC_UINT_MAX = _Anonymous_41._SC_UINT_MAX;
3599     enum _SC_ULONG_MAX = _Anonymous_41._SC_ULONG_MAX;
3600     enum _SC_USHRT_MAX = _Anonymous_41._SC_USHRT_MAX;
3601     enum _SC_NL_ARGMAX = _Anonymous_41._SC_NL_ARGMAX;
3602     enum _SC_NL_LANGMAX = _Anonymous_41._SC_NL_LANGMAX;
3603     enum _SC_NL_MSGMAX = _Anonymous_41._SC_NL_MSGMAX;
3604     enum _SC_NL_NMAX = _Anonymous_41._SC_NL_NMAX;
3605     enum _SC_NL_SETMAX = _Anonymous_41._SC_NL_SETMAX;
3606     enum _SC_NL_TEXTMAX = _Anonymous_41._SC_NL_TEXTMAX;
3607     enum _SC_XBS5_ILP32_OFF32 = _Anonymous_41._SC_XBS5_ILP32_OFF32;
3608     enum _SC_XBS5_ILP32_OFFBIG = _Anonymous_41._SC_XBS5_ILP32_OFFBIG;
3609     enum _SC_XBS5_LP64_OFF64 = _Anonymous_41._SC_XBS5_LP64_OFF64;
3610     enum _SC_XBS5_LPBIG_OFFBIG = _Anonymous_41._SC_XBS5_LPBIG_OFFBIG;
3611     enum _SC_XOPEN_LEGACY = _Anonymous_41._SC_XOPEN_LEGACY;
3612     enum _SC_XOPEN_REALTIME = _Anonymous_41._SC_XOPEN_REALTIME;
3613     enum _SC_XOPEN_REALTIME_THREADS = _Anonymous_41._SC_XOPEN_REALTIME_THREADS;
3614     enum _SC_ADVISORY_INFO = _Anonymous_41._SC_ADVISORY_INFO;
3615     enum _SC_BARRIERS = _Anonymous_41._SC_BARRIERS;
3616     enum _SC_BASE = _Anonymous_41._SC_BASE;
3617     enum _SC_C_LANG_SUPPORT = _Anonymous_41._SC_C_LANG_SUPPORT;
3618     enum _SC_C_LANG_SUPPORT_R = _Anonymous_41._SC_C_LANG_SUPPORT_R;
3619     enum _SC_CLOCK_SELECTION = _Anonymous_41._SC_CLOCK_SELECTION;
3620     enum _SC_CPUTIME = _Anonymous_41._SC_CPUTIME;
3621     enum _SC_THREAD_CPUTIME = _Anonymous_41._SC_THREAD_CPUTIME;
3622     enum _SC_DEVICE_IO = _Anonymous_41._SC_DEVICE_IO;
3623     enum _SC_DEVICE_SPECIFIC = _Anonymous_41._SC_DEVICE_SPECIFIC;
3624     enum _SC_DEVICE_SPECIFIC_R = _Anonymous_41._SC_DEVICE_SPECIFIC_R;
3625     enum _SC_FD_MGMT = _Anonymous_41._SC_FD_MGMT;
3626     enum _SC_FIFO = _Anonymous_41._SC_FIFO;
3627     enum _SC_PIPE = _Anonymous_41._SC_PIPE;
3628     enum _SC_FILE_ATTRIBUTES = _Anonymous_41._SC_FILE_ATTRIBUTES;
3629     enum _SC_FILE_LOCKING = _Anonymous_41._SC_FILE_LOCKING;
3630     enum _SC_FILE_SYSTEM = _Anonymous_41._SC_FILE_SYSTEM;
3631     enum _SC_MONOTONIC_CLOCK = _Anonymous_41._SC_MONOTONIC_CLOCK;
3632     enum _SC_MULTI_PROCESS = _Anonymous_41._SC_MULTI_PROCESS;
3633     enum _SC_SINGLE_PROCESS = _Anonymous_41._SC_SINGLE_PROCESS;
3634     enum _SC_NETWORKING = _Anonymous_41._SC_NETWORKING;
3635     enum _SC_READER_WRITER_LOCKS = _Anonymous_41._SC_READER_WRITER_LOCKS;
3636     enum _SC_SPIN_LOCKS = _Anonymous_41._SC_SPIN_LOCKS;
3637     enum _SC_REGEXP = _Anonymous_41._SC_REGEXP;
3638     enum _SC_REGEX_VERSION = _Anonymous_41._SC_REGEX_VERSION;
3639     enum _SC_SHELL = _Anonymous_41._SC_SHELL;
3640     enum _SC_SIGNALS = _Anonymous_41._SC_SIGNALS;
3641     enum _SC_SPAWN = _Anonymous_41._SC_SPAWN;
3642     enum _SC_SPORADIC_SERVER = _Anonymous_41._SC_SPORADIC_SERVER;
3643     enum _SC_THREAD_SPORADIC_SERVER = _Anonymous_41._SC_THREAD_SPORADIC_SERVER;
3644     enum _SC_SYSTEM_DATABASE = _Anonymous_41._SC_SYSTEM_DATABASE;
3645     enum _SC_SYSTEM_DATABASE_R = _Anonymous_41._SC_SYSTEM_DATABASE_R;
3646     enum _SC_TIMEOUTS = _Anonymous_41._SC_TIMEOUTS;
3647     enum _SC_TYPED_MEMORY_OBJECTS = _Anonymous_41._SC_TYPED_MEMORY_OBJECTS;
3648     enum _SC_USER_GROUPS = _Anonymous_41._SC_USER_GROUPS;
3649     enum _SC_USER_GROUPS_R = _Anonymous_41._SC_USER_GROUPS_R;
3650     enum _SC_2_PBS = _Anonymous_41._SC_2_PBS;
3651     enum _SC_2_PBS_ACCOUNTING = _Anonymous_41._SC_2_PBS_ACCOUNTING;
3652     enum _SC_2_PBS_LOCATE = _Anonymous_41._SC_2_PBS_LOCATE;
3653     enum _SC_2_PBS_MESSAGE = _Anonymous_41._SC_2_PBS_MESSAGE;
3654     enum _SC_2_PBS_TRACK = _Anonymous_41._SC_2_PBS_TRACK;
3655     enum _SC_SYMLOOP_MAX = _Anonymous_41._SC_SYMLOOP_MAX;
3656     enum _SC_STREAMS = _Anonymous_41._SC_STREAMS;
3657     enum _SC_2_PBS_CHECKPOINT = _Anonymous_41._SC_2_PBS_CHECKPOINT;
3658     enum _SC_V6_ILP32_OFF32 = _Anonymous_41._SC_V6_ILP32_OFF32;
3659     enum _SC_V6_ILP32_OFFBIG = _Anonymous_41._SC_V6_ILP32_OFFBIG;
3660     enum _SC_V6_LP64_OFF64 = _Anonymous_41._SC_V6_LP64_OFF64;
3661     enum _SC_V6_LPBIG_OFFBIG = _Anonymous_41._SC_V6_LPBIG_OFFBIG;
3662     enum _SC_HOST_NAME_MAX = _Anonymous_41._SC_HOST_NAME_MAX;
3663     enum _SC_TRACE = _Anonymous_41._SC_TRACE;
3664     enum _SC_TRACE_EVENT_FILTER = _Anonymous_41._SC_TRACE_EVENT_FILTER;
3665     enum _SC_TRACE_INHERIT = _Anonymous_41._SC_TRACE_INHERIT;
3666     enum _SC_TRACE_LOG = _Anonymous_41._SC_TRACE_LOG;
3667     enum _SC_LEVEL1_ICACHE_SIZE = _Anonymous_41._SC_LEVEL1_ICACHE_SIZE;
3668     enum _SC_LEVEL1_ICACHE_ASSOC = _Anonymous_41._SC_LEVEL1_ICACHE_ASSOC;
3669     enum _SC_LEVEL1_ICACHE_LINESIZE = _Anonymous_41._SC_LEVEL1_ICACHE_LINESIZE;
3670     enum _SC_LEVEL1_DCACHE_SIZE = _Anonymous_41._SC_LEVEL1_DCACHE_SIZE;
3671     enum _SC_LEVEL1_DCACHE_ASSOC = _Anonymous_41._SC_LEVEL1_DCACHE_ASSOC;
3672     enum _SC_LEVEL1_DCACHE_LINESIZE = _Anonymous_41._SC_LEVEL1_DCACHE_LINESIZE;
3673     enum _SC_LEVEL2_CACHE_SIZE = _Anonymous_41._SC_LEVEL2_CACHE_SIZE;
3674     enum _SC_LEVEL2_CACHE_ASSOC = _Anonymous_41._SC_LEVEL2_CACHE_ASSOC;
3675     enum _SC_LEVEL2_CACHE_LINESIZE = _Anonymous_41._SC_LEVEL2_CACHE_LINESIZE;
3676     enum _SC_LEVEL3_CACHE_SIZE = _Anonymous_41._SC_LEVEL3_CACHE_SIZE;
3677     enum _SC_LEVEL3_CACHE_ASSOC = _Anonymous_41._SC_LEVEL3_CACHE_ASSOC;
3678     enum _SC_LEVEL3_CACHE_LINESIZE = _Anonymous_41._SC_LEVEL3_CACHE_LINESIZE;
3679     enum _SC_LEVEL4_CACHE_SIZE = _Anonymous_41._SC_LEVEL4_CACHE_SIZE;
3680     enum _SC_LEVEL4_CACHE_ASSOC = _Anonymous_41._SC_LEVEL4_CACHE_ASSOC;
3681     enum _SC_LEVEL4_CACHE_LINESIZE = _Anonymous_41._SC_LEVEL4_CACHE_LINESIZE;
3682     enum _SC_IPV6 = _Anonymous_41._SC_IPV6;
3683     enum _SC_RAW_SOCKETS = _Anonymous_41._SC_RAW_SOCKETS;
3684     enum _SC_V7_ILP32_OFF32 = _Anonymous_41._SC_V7_ILP32_OFF32;
3685     enum _SC_V7_ILP32_OFFBIG = _Anonymous_41._SC_V7_ILP32_OFFBIG;
3686     enum _SC_V7_LP64_OFF64 = _Anonymous_41._SC_V7_LP64_OFF64;
3687     enum _SC_V7_LPBIG_OFFBIG = _Anonymous_41._SC_V7_LPBIG_OFFBIG;
3688     enum _SC_SS_REPL_MAX = _Anonymous_41._SC_SS_REPL_MAX;
3689     enum _SC_TRACE_EVENT_NAME_MAX = _Anonymous_41._SC_TRACE_EVENT_NAME_MAX;
3690     enum _SC_TRACE_NAME_MAX = _Anonymous_41._SC_TRACE_NAME_MAX;
3691     enum _SC_TRACE_SYS_MAX = _Anonymous_41._SC_TRACE_SYS_MAX;
3692     enum _SC_TRACE_USER_EVENT_MAX = _Anonymous_41._SC_TRACE_USER_EVENT_MAX;
3693     enum _SC_XOPEN_STREAMS = _Anonymous_41._SC_XOPEN_STREAMS;
3694     enum _SC_THREAD_ROBUST_PRIO_INHERIT = _Anonymous_41._SC_THREAD_ROBUST_PRIO_INHERIT;
3695     enum _SC_THREAD_ROBUST_PRIO_PROTECT = _Anonymous_41._SC_THREAD_ROBUST_PRIO_PROTECT;
3696     enum _Anonymous_42
3697     {
3698         _PC_LINK_MAX = 0,
3699         _PC_MAX_CANON = 1,
3700         _PC_MAX_INPUT = 2,
3701         _PC_NAME_MAX = 3,
3702         _PC_PATH_MAX = 4,
3703         _PC_PIPE_BUF = 5,
3704         _PC_CHOWN_RESTRICTED = 6,
3705         _PC_NO_TRUNC = 7,
3706         _PC_VDISABLE = 8,
3707         _PC_SYNC_IO = 9,
3708         _PC_ASYNC_IO = 10,
3709         _PC_PRIO_IO = 11,
3710         _PC_SOCK_MAXBUF = 12,
3711         _PC_FILESIZEBITS = 13,
3712         _PC_REC_INCR_XFER_SIZE = 14,
3713         _PC_REC_MAX_XFER_SIZE = 15,
3714         _PC_REC_MIN_XFER_SIZE = 16,
3715         _PC_REC_XFER_ALIGN = 17,
3716         _PC_ALLOC_SIZE_MIN = 18,
3717         _PC_SYMLINK_MAX = 19,
3718         _PC_2_SYMLINKS = 20,
3719     }
3720     enum _PC_LINK_MAX = _Anonymous_42._PC_LINK_MAX;
3721     enum _PC_MAX_CANON = _Anonymous_42._PC_MAX_CANON;
3722     enum _PC_MAX_INPUT = _Anonymous_42._PC_MAX_INPUT;
3723     enum _PC_NAME_MAX = _Anonymous_42._PC_NAME_MAX;
3724     enum _PC_PATH_MAX = _Anonymous_42._PC_PATH_MAX;
3725     enum _PC_PIPE_BUF = _Anonymous_42._PC_PIPE_BUF;
3726     enum _PC_CHOWN_RESTRICTED = _Anonymous_42._PC_CHOWN_RESTRICTED;
3727     enum _PC_NO_TRUNC = _Anonymous_42._PC_NO_TRUNC;
3728     enum _PC_VDISABLE = _Anonymous_42._PC_VDISABLE;
3729     enum _PC_SYNC_IO = _Anonymous_42._PC_SYNC_IO;
3730     enum _PC_ASYNC_IO = _Anonymous_42._PC_ASYNC_IO;
3731     enum _PC_PRIO_IO = _Anonymous_42._PC_PRIO_IO;
3732     enum _PC_SOCK_MAXBUF = _Anonymous_42._PC_SOCK_MAXBUF;
3733     enum _PC_FILESIZEBITS = _Anonymous_42._PC_FILESIZEBITS;
3734     enum _PC_REC_INCR_XFER_SIZE = _Anonymous_42._PC_REC_INCR_XFER_SIZE;
3735     enum _PC_REC_MAX_XFER_SIZE = _Anonymous_42._PC_REC_MAX_XFER_SIZE;
3736     enum _PC_REC_MIN_XFER_SIZE = _Anonymous_42._PC_REC_MIN_XFER_SIZE;
3737     enum _PC_REC_XFER_ALIGN = _Anonymous_42._PC_REC_XFER_ALIGN;
3738     enum _PC_ALLOC_SIZE_MIN = _Anonymous_42._PC_ALLOC_SIZE_MIN;
3739     enum _PC_SYMLINK_MAX = _Anonymous_42._PC_SYMLINK_MAX;
3740     enum _PC_2_SYMLINKS = _Anonymous_42._PC_2_SYMLINKS;
3741     struct _G_fpos64_t
3742     {
3743         __off64_t __pos;
3744         __mbstate_t __state;
3745     }
3746     struct _G_fpos_t
3747     {
3748         __off_t __pos;
3749         __mbstate_t __state;
3750     }
3751     alias off_t = c_long;
3752     alias ssize_t = c_long;
3753     alias fpos_t = _G_fpos_t;
3754     int getentropy(void*, size_t) @nogc nothrow;
3755     int fdatasync(int) @nogc nothrow;
3756     extern __gshared _IO_FILE* stdin;
3757     extern __gshared _IO_FILE* stdout;
3758     extern __gshared _IO_FILE* stderr;
3759     int lockf(int, int, __off_t) @nogc nothrow;
3760     int remove(const(char)*) @nogc nothrow;
3761     int rename(const(char)*, const(char)*) @nogc nothrow;
3762     int renameat(int, const(char)*, int, const(char)*) @nogc nothrow;
3763     FILE* tmpfile() @nogc nothrow;
3764     char* tmpnam(char*) @nogc nothrow;
3765     char* tmpnam_r(char*) @nogc nothrow;
3766     char* tempnam(const(char)*, const(char)*) @nogc nothrow;
3767     int fclose(FILE*) @nogc nothrow;
3768     int fflush(FILE*) @nogc nothrow;
3769     int fflush_unlocked(FILE*) @nogc nothrow;
3770     FILE* fopen(const(char)*, const(char)*) @nogc nothrow;
3771     FILE* freopen(const(char)*, const(char)*, FILE*) @nogc nothrow;
3772     FILE* fdopen(int, const(char)*) @nogc nothrow;
3773     FILE* fmemopen(void*, size_t, const(char)*) @nogc nothrow;
3774     FILE* open_memstream(char**, size_t*) @nogc nothrow;
3775     void setbuf(FILE*, char*) @nogc nothrow;
3776     int setvbuf(FILE*, char*, int, size_t) @nogc nothrow;
3777     void setbuffer(FILE*, char*, size_t) @nogc nothrow;
3778     void setlinebuf(FILE*) @nogc nothrow;
3779     int fprintf(FILE*, const(char)*, ...) @nogc nothrow;
3780     int printf(const(char)*, ...) @nogc nothrow;
3781     int sprintf(char*, const(char)*, ...) @nogc nothrow;
3782     int vfprintf(FILE*, const(char)*, va_list) @nogc nothrow;
3783     int vprintf(const(char)*, va_list) @nogc nothrow;
3784     int vsprintf(char*, const(char)*, va_list) @nogc nothrow;
3785     int snprintf(char*, size_t, const(char)*, ...) @nogc nothrow;
3786     int vsnprintf(char*, size_t, const(char)*, va_list) @nogc nothrow;
3787     int vdprintf(int, const(char)*, va_list) @nogc nothrow;
3788     int dprintf(int, const(char)*, ...) @nogc nothrow;
3789     int fscanf(FILE*, const(char)*, ...) @nogc nothrow;
3790     int scanf(const(char)*, ...) @nogc nothrow;
3791     int sscanf(const(char)*, const(char)*, ...) @nogc nothrow;
3792     int vfscanf(FILE*, const(char)*, va_list) @nogc nothrow;
3793     int vscanf(const(char)*, va_list) @nogc nothrow;
3794     int vsscanf(const(char)*, const(char)*, va_list) @nogc nothrow;
3795     int fgetc(FILE*) @nogc nothrow;
3796     pragma(mangle, "getc") int getc_(FILE*) @nogc nothrow;
3797     int getchar() @nogc nothrow;
3798     c_long syscall(c_long, ...) @nogc nothrow;
3799     int getc_unlocked(FILE*) @nogc nothrow;
3800     int getchar_unlocked() @nogc nothrow;
3801     int fgetc_unlocked(FILE*) @nogc nothrow;
3802     int fputc(int, FILE*) @nogc nothrow;
3803     pragma(mangle, "putc") int putc_(int, FILE*) @nogc nothrow;
3804     int putchar(int) @nogc nothrow;
3805     int fputc_unlocked(int, FILE*) @nogc nothrow;
3806     int putc_unlocked(int, FILE*) @nogc nothrow;
3807     int putchar_unlocked(int) @nogc nothrow;
3808     int getw(FILE*) @nogc nothrow;
3809     int putw(int, FILE*) @nogc nothrow;
3810     char* fgets(char*, int, FILE*) @nogc nothrow;
3811     __ssize_t __getdelim(char**, size_t*, int, FILE*) @nogc nothrow;
3812     __ssize_t getdelim(char**, size_t*, int, FILE*) @nogc nothrow;
3813     __ssize_t getline(char**, size_t*, FILE*) @nogc nothrow;
3814     int fputs(const(char)*, FILE*) @nogc nothrow;
3815     int puts(const(char)*) @nogc nothrow;
3816     int ungetc(int, FILE*) @nogc nothrow;
3817     size_t fread(void*, size_t, size_t, FILE*) @nogc nothrow;
3818     size_t fwrite(const(void)*, size_t, size_t, FILE*) @nogc nothrow;
3819     size_t fread_unlocked(void*, size_t, size_t, FILE*) @nogc nothrow;
3820     size_t fwrite_unlocked(const(void)*, size_t, size_t, FILE*) @nogc nothrow;
3821     int fseek(FILE*, c_long, int) @nogc nothrow;
3822     c_long ftell(FILE*) @nogc nothrow;
3823     void rewind(FILE*) @nogc nothrow;
3824     int fseeko(FILE*, __off_t, int) @nogc nothrow;
3825     __off_t ftello(FILE*) @nogc nothrow;
3826     int fgetpos(FILE*, fpos_t*) @nogc nothrow;
3827     int fsetpos(FILE*, const(fpos_t)*) @nogc nothrow;
3828     void clearerr(FILE*) @nogc nothrow;
3829     int feof(FILE*) @nogc nothrow;
3830     int ferror(FILE*) @nogc nothrow;
3831     void clearerr_unlocked(FILE*) @nogc nothrow;
3832     int feof_unlocked(FILE*) @nogc nothrow;
3833     int ferror_unlocked(FILE*) @nogc nothrow;
3834     void perror(const(char)*) @nogc nothrow;
3835     int fileno(FILE*) @nogc nothrow;
3836     int fileno_unlocked(FILE*) @nogc nothrow;
3837     FILE* popen(const(char)*, const(char)*) @nogc nothrow;
3838     int pclose(FILE*) @nogc nothrow;
3839     char* ctermid(char*) @nogc nothrow;
3840     void flockfile(FILE*) @nogc nothrow;
3841     int ftrylockfile(FILE*) @nogc nothrow;
3842     void funlockfile(FILE*) @nogc nothrow;
3843     void* sbrk(intptr_t) @nogc nothrow;
3844     int brk(void*) @nogc nothrow;
3845     int ftruncate(int, __off_t) @nogc nothrow;
3846     struct div_t
3847     {
3848         int quot;
3849         int rem;
3850     }
3851     struct ldiv_t
3852     {
3853         c_long quot;
3854         c_long rem;
3855     }
3856     struct lldiv_t
3857     {
3858         long quot;
3859         long rem;
3860     }
3861     int truncate(const(char)*, __off_t) @nogc nothrow;
3862     size_t __ctype_get_mb_cur_max() @nogc nothrow;
3863     double atof(const(char)*) @nogc nothrow;
3864     int atoi(const(char)*) @nogc nothrow;
3865     c_long atol(const(char)*) @nogc nothrow;
3866     long atoll(const(char)*) @nogc nothrow;
3867     double strtod(const(char)*, char**) @nogc nothrow;
3868     float strtof(const(char)*, char**) @nogc nothrow;
3869     real strtold(const(char)*, char**) @nogc nothrow;
3870     c_long strtol(const(char)*, char**, int) @nogc nothrow;
3871     c_ulong strtoul(const(char)*, char**, int) @nogc nothrow;
3872     long strtoq(const(char)*, char**, int) @nogc nothrow;
3873     ulong strtouq(const(char)*, char**, int) @nogc nothrow;
3874     long strtoll(const(char)*, char**, int) @nogc nothrow;
3875     ulong strtoull(const(char)*, char**, int) @nogc nothrow;
3876     char* l64a(c_long) @nogc nothrow;
3877     c_long a64l(const(char)*) @nogc nothrow;
3878     c_long random() @nogc nothrow;
3879     void srandom(uint) @nogc nothrow;
3880     char* initstate(uint, char*, size_t) @nogc nothrow;
3881     char* setstate(char*) @nogc nothrow;
3882     struct random_data
3883     {
3884         int32_t* fptr;
3885         int32_t* rptr;
3886         int32_t* state;
3887         int rand_type;
3888         int rand_deg;
3889         int rand_sep;
3890         int32_t* end_ptr;
3891     }
3892     int random_r(random_data*, int32_t*) @nogc nothrow;
3893     int srandom_r(uint, random_data*) @nogc nothrow;
3894     int initstate_r(uint, char*, size_t, random_data*) @nogc nothrow;
3895     int setstate_r(char*, random_data*) @nogc nothrow;
3896     int rand() @nogc nothrow;
3897     void srand(uint) @nogc nothrow;
3898     int rand_r(uint*) @nogc nothrow;
3899     double drand48() @nogc nothrow;
3900     double erand48(ushort*) @nogc nothrow;
3901     c_long lrand48() @nogc nothrow;
3902     c_long nrand48(ushort*) @nogc nothrow;
3903     c_long mrand48() @nogc nothrow;
3904     c_long jrand48(ushort*) @nogc nothrow;
3905     void srand48(c_long) @nogc nothrow;
3906     ushort* seed48(ushort*) @nogc nothrow;
3907     void lcong48(ushort*) @nogc nothrow;
3908     struct drand48_data
3909     {
3910         ushort[3] __x;
3911         ushort[3] __old_x;
3912         ushort __c;
3913         ushort __init;
3914         ulong __a;
3915     }
3916     int drand48_r(drand48_data*, double*) @nogc nothrow;
3917     int erand48_r(ushort*, drand48_data*, double*) @nogc nothrow;
3918     int lrand48_r(drand48_data*, c_long*) @nogc nothrow;
3919     int nrand48_r(ushort*, drand48_data*, c_long*) @nogc nothrow;
3920     int mrand48_r(drand48_data*, c_long*) @nogc nothrow;
3921     int jrand48_r(ushort*, drand48_data*, c_long*) @nogc nothrow;
3922     int srand48_r(c_long, drand48_data*) @nogc nothrow;
3923     int seed48_r(ushort*, drand48_data*) @nogc nothrow;
3924     int lcong48_r(ushort*, drand48_data*) @nogc nothrow;
3925     void* malloc(size_t) @nogc nothrow;
3926     void* calloc(size_t, size_t) @nogc nothrow;
3927     void* realloc(void*, size_t) @nogc nothrow;
3928     void free(void*) @nogc nothrow;
3929     void* valloc(size_t) @nogc nothrow;
3930     int posix_memalign(void**, size_t, size_t) @nogc nothrow;
3931     void* aligned_alloc(size_t, size_t) @nogc nothrow;
3932     void abort() @nogc nothrow;
3933     int atexit(void function()) @nogc nothrow;
3934     int at_quick_exit(void function()) @nogc nothrow;
3935     int on_exit(void function(int, void*), void*) @nogc nothrow;
3936     void exit(int) @nogc nothrow;
3937     void quick_exit(int) @nogc nothrow;
3938     void _Exit(int) @nogc nothrow;
3939     char* getenv(const(char)*) @nogc nothrow;
3940     int putenv(char*) @nogc nothrow;
3941     int setenv(const(char)*, const(char)*, int) @nogc nothrow;
3942     int unsetenv(const(char)*) @nogc nothrow;
3943     int clearenv() @nogc nothrow;
3944     char* mktemp(char*) @nogc nothrow;
3945     int mkstemp(char*) @nogc nothrow;
3946     int mkstemps(char*, int) @nogc nothrow;
3947     char* mkdtemp(char*) @nogc nothrow;
3948     int system(const(char)*) @nogc nothrow;
3949     char* realpath(const(char)*, char*) @nogc nothrow;
3950     int getdtablesize() @nogc nothrow;
3951     alias __compar_fn_t = int function(const(void)*, const(void)*) @nogc nothrow;
3952     void* bsearch(const(void)*, const(void)*, size_t, size_t, __compar_fn_t) @nogc nothrow;
3953     void qsort(void*, size_t, size_t, __compar_fn_t) @nogc nothrow;
3954     int abs(int) @nogc nothrow;
3955     c_long labs(c_long) @nogc nothrow;
3956     long llabs(long) @nogc nothrow;
3957     div_t div(int, int) @nogc nothrow;
3958     ldiv_t ldiv(c_long, c_long) @nogc nothrow;
3959     lldiv_t lldiv(long, long) @nogc nothrow;
3960     char* ecvt(double, int, int*, int*) @nogc nothrow;
3961     char* fcvt(double, int, int*, int*) @nogc nothrow;
3962     char* gcvt(double, int, char*) @nogc nothrow;
3963     char* qecvt(real, int, int*, int*) @nogc nothrow;
3964     char* qfcvt(real, int, int*, int*) @nogc nothrow;
3965     char* qgcvt(real, int, char*) @nogc nothrow;
3966     int ecvt_r(double, int, int*, int*, char*, size_t) @nogc nothrow;
3967     int fcvt_r(double, int, int*, int*, char*, size_t) @nogc nothrow;
3968     int qecvt_r(real, int, int*, int*, char*, size_t) @nogc nothrow;
3969     int qfcvt_r(real, int, int*, int*, char*, size_t) @nogc nothrow;
3970     int mblen(const(char)*, size_t) @nogc nothrow;
3971     int mbtowc(wchar_t*, const(char)*, size_t) @nogc nothrow;
3972     int wctomb(char*, wchar_t) @nogc nothrow;
3973     size_t mbstowcs(wchar_t*, const(char)*, size_t) @nogc nothrow;
3974     size_t wcstombs(char*, const(wchar_t)*, size_t) @nogc nothrow;
3975     int rpmatch(const(char)*) @nogc nothrow;
3976     int getsubopt(char**, char**, char**) @nogc nothrow;
3977     int getloadavg(double*, int) @nogc nothrow;
3978     int getpagesize() @nogc nothrow;
3979     void* memcpy(void*, const(void)*, size_t) @nogc nothrow;
3980     void* memmove(void*, const(void)*, size_t) @nogc nothrow;
3981     void* memccpy(void*, const(void)*, int, size_t) @nogc nothrow;
3982     void* memset(void*, int, size_t) @nogc nothrow;
3983     int memcmp(const(void)*, const(void)*, size_t) @nogc nothrow;
3984     void* memchr(const(void)*, int, size_t) @nogc nothrow;
3985     char* strcpy(char*, const(char)*) @nogc nothrow;
3986     char* strncpy(char*, const(char)*, size_t) @nogc nothrow;
3987     char* strcat(char*, const(char)*) @nogc nothrow;
3988     char* strncat(char*, const(char)*, size_t) @nogc nothrow;
3989     int strcmp(const(char)*, const(char)*) @nogc nothrow;
3990     int strncmp(const(char)*, const(char)*, size_t) @nogc nothrow;
3991     int strcoll(const(char)*, const(char)*) @nogc nothrow;
3992     c_ulong strxfrm(char*, const(char)*, size_t) @nogc nothrow;
3993     int strcoll_l(const(char)*, const(char)*, locale_t) @nogc nothrow;
3994     size_t strxfrm_l(char*, const(char)*, size_t, locale_t) @nogc nothrow;
3995     char* strdup(const(char)*) @nogc nothrow;
3996     char* strndup(const(char)*, size_t) @nogc nothrow;
3997     char* strchr(const(char)*, int) @nogc nothrow;
3998     char* strrchr(const(char)*, int) @nogc nothrow;
3999     c_ulong strcspn(const(char)*, const(char)*) @nogc nothrow;
4000     c_ulong strspn(const(char)*, const(char)*) @nogc nothrow;
4001     char* strpbrk(const(char)*, const(char)*) @nogc nothrow;
4002     char* strstr(const(char)*, const(char)*) @nogc nothrow;
4003     char* strtok(char*, const(char)*) @nogc nothrow;
4004     char* __strtok_r(char*, const(char)*, char**) @nogc nothrow;
4005     char* strtok_r(char*, const(char)*, char**) @nogc nothrow;
4006     c_ulong strlen(const(char)*) @nogc nothrow;
4007     size_t strnlen(const(char)*, size_t) @nogc nothrow;
4008     char* strerror(int) @nogc nothrow;
4009     int strerror_r(int, char*, size_t) @nogc nothrow;
4010     char* strerror_l(int, locale_t) @nogc nothrow;
4011     void explicit_bzero(void*, size_t) @nogc nothrow;
4012     char* strsep(char**, const(char)*) @nogc nothrow;
4013     char* strsignal(int) @nogc nothrow;
4014     char* __stpcpy(char*, const(char)*) @nogc nothrow;
4015     char* stpcpy(char*, const(char)*) @nogc nothrow;
4016     char* __stpncpy(char*, const(char)*, size_t) @nogc nothrow;
4017     char* stpncpy(char*, const(char)*, size_t) @nogc nothrow;
4018     void sync() @nogc nothrow;
4019     int bcmp(const(void)*, const(void)*, size_t) @nogc nothrow;
4020     void bcopy(const(void)*, void*, size_t) @nogc nothrow;
4021     void bzero(void*, size_t) @nogc nothrow;
4022     char* index(const(char)*, int) @nogc nothrow;
4023     char* rindex(const(char)*, int) @nogc nothrow;
4024     int ffs(int) @nogc nothrow;
4025     int ffsl(c_long) @nogc nothrow;
4026     int ffsll(long) @nogc nothrow;
4027     int strcasecmp(const(char)*, const(char)*) @nogc nothrow;
4028     int strncasecmp(const(char)*, const(char)*, size_t) @nogc nothrow;
4029     int strcasecmp_l(const(char)*, const(char)*, locale_t) @nogc nothrow;
4030     int strncasecmp_l(const(char)*, const(char)*, size_t, locale_t) @nogc nothrow;
4031     c_long gethostid() @nogc nothrow;
4032     int fsync(int) @nogc nothrow;
4033     struct sigevent;
4034     clock_t clock() @nogc nothrow;
4035     time_t time(time_t*) @nogc nothrow;
4036     double difftime(time_t, time_t) @nogc nothrow;
4037     time_t mktime(tm*) @nogc nothrow;
4038     size_t strftime(char*, size_t, const(char)*, const(tm)*) @nogc nothrow;
4039     size_t strftime_l(char*, size_t, const(char)*, const(tm)*, locale_t) @nogc nothrow;
4040     tm* gmtime(const(time_t)*) @nogc nothrow;
4041     tm* localtime(const(time_t)*) @nogc nothrow;
4042     tm* gmtime_r(const(time_t)*, tm*) @nogc nothrow;
4043     tm* localtime_r(const(time_t)*, tm*) @nogc nothrow;
4044     char* asctime(const(tm)*) @nogc nothrow;
4045     char* ctime(const(time_t)*) @nogc nothrow;
4046     char* asctime_r(const(tm)*, char*) @nogc nothrow;
4047     char* ctime_r(const(time_t)*, char*) @nogc nothrow;
4048     extern __gshared char*[2] __tzname;
4049     extern __gshared int __daylight;
4050     extern __gshared c_long __timezone;
4051     extern __gshared char*[2] tzname;
4052     void tzset() @nogc nothrow;
4053     extern __gshared int daylight;
4054     extern __gshared c_long timezone;
4055     int stime(const(time_t)*) @nogc nothrow;
4056     char* getpass(const(char)*) @nogc nothrow;
4057     time_t timegm(tm*) @nogc nothrow;
4058     time_t timelocal(tm*) @nogc nothrow;
4059     int dysize(int) @nogc nothrow;
4060     int nanosleep(const(timespec)*, timespec*) @nogc nothrow;
4061     int clock_getres(clockid_t, timespec*) @nogc nothrow;
4062     int clock_gettime(clockid_t, timespec*) @nogc nothrow;
4063     int clock_settime(clockid_t, const(timespec)*) @nogc nothrow;
4064     int clock_nanosleep(clockid_t, int, const(timespec)*, timespec*) @nogc nothrow;
4065     int clock_getcpuclockid(pid_t, clockid_t*) @nogc nothrow;
4066     int timer_create(clockid_t, sigevent*, timer_t*) @nogc nothrow;
4067     int timer_delete(timer_t) @nogc nothrow;
4068     int timer_settime(timer_t, int, const(itimerspec)*, itimerspec*) @nogc nothrow;
4069     int timer_gettime(timer_t, itimerspec*) @nogc nothrow;
4070     int timer_getoverrun(timer_t) @nogc nothrow;
4071     int timespec_get(timespec*, int) @nogc nothrow;
4072     int chroot(const(char)*) @nogc nothrow;
4073     int daemon(int, int) @nogc nothrow;
4074     void setusershell() @nogc nothrow;
4075     void endusershell() @nogc nothrow;
4076     char* getusershell() @nogc nothrow;
4077     int acct(const(char)*) @nogc nothrow;
4078     int profil(ushort*, size_t, size_t, uint) @nogc nothrow;
4079     alias useconds_t = uint;
4080     int revoke(const(char)*) @nogc nothrow;
4081     alias socklen_t = uint;
4082     int vhangup() @nogc nothrow;
4083     int access(const(char)*, int) @nogc nothrow;
4084     int faccessat(int, const(char)*, int, int) @nogc nothrow;
4085     int setdomainname(const(char)*, size_t) @nogc nothrow;
4086     __off_t lseek(int, __off_t, int) @nogc nothrow;
4087     int close(int) @nogc nothrow;
4088     ssize_t read(int, void*, size_t) @nogc nothrow;
4089     ssize_t write(int, const(void)*, size_t) @nogc nothrow;
4090     ssize_t pread(int, void*, size_t, __off_t) @nogc nothrow;
4091     ssize_t pwrite(int, const(void)*, size_t, __off_t) @nogc nothrow;
4092     int pipe(int*) @nogc nothrow;
4093     uint alarm(uint) @nogc nothrow;
4094     uint sleep(uint) @nogc nothrow;
4095     __useconds_t ualarm(__useconds_t, __useconds_t) @nogc nothrow;
4096     int usleep(__useconds_t) @nogc nothrow;
4097     int pause() @nogc nothrow;
4098     int chown(const(char)*, __uid_t, __gid_t) @nogc nothrow;
4099     int fchown(int, __uid_t, __gid_t) @nogc nothrow;
4100     int lchown(const(char)*, __uid_t, __gid_t) @nogc nothrow;
4101     int fchownat(int, const(char)*, __uid_t, __gid_t, int) @nogc nothrow;
4102     int chdir(const(char)*) @nogc nothrow;
4103     int fchdir(int) @nogc nothrow;
4104     char* getcwd(char*, size_t) @nogc nothrow;
4105     char* getwd(char*) @nogc nothrow;
4106     int dup(int) @nogc nothrow;
4107     int dup2(int, int) @nogc nothrow;
4108     extern __gshared char** __environ;
4109     int execve(const(char)*, char**, char**) @nogc nothrow;
4110     int fexecve(int, char**, char**) @nogc nothrow;
4111     int execv(const(char)*, char**) @nogc nothrow;
4112     int execle(const(char)*, const(char)*, ...) @nogc nothrow;
4113     int execl(const(char)*, const(char)*, ...) @nogc nothrow;
4114     int execvp(const(char)*, char**) @nogc nothrow;
4115     int execlp(const(char)*, const(char)*, ...) @nogc nothrow;
4116     int nice(int) @nogc nothrow;
4117     void _exit(int) @nogc nothrow;
4118     c_long pathconf(const(char)*, int) @nogc nothrow;
4119     c_long fpathconf(int, int) @nogc nothrow;
4120     c_long sysconf(int) @nogc nothrow;
4121     size_t confstr(int, char*, size_t) @nogc nothrow;
4122     __pid_t getpid() @nogc nothrow;
4123     __pid_t getppid() @nogc nothrow;
4124     __pid_t getpgrp() @nogc nothrow;
4125     __pid_t __getpgid(__pid_t) @nogc nothrow;
4126     __pid_t getpgid(__pid_t) @nogc nothrow;
4127     int setpgid(__pid_t, __pid_t) @nogc nothrow;
4128     int setpgrp() @nogc nothrow;
4129     __pid_t setsid() @nogc nothrow;
4130     __pid_t getsid(__pid_t) @nogc nothrow;
4131     __uid_t getuid() @nogc nothrow;
4132     __uid_t geteuid() @nogc nothrow;
4133     __gid_t getgid() @nogc nothrow;
4134     __gid_t getegid() @nogc nothrow;
4135     int getgroups(int, __gid_t*) @nogc nothrow;
4136     int setuid(__uid_t) @nogc nothrow;
4137     int setreuid(__uid_t, __uid_t) @nogc nothrow;
4138     int seteuid(__uid_t) @nogc nothrow;
4139     int setgid(__gid_t) @nogc nothrow;
4140     int setregid(__gid_t, __gid_t) @nogc nothrow;
4141     int setegid(__gid_t) @nogc nothrow;
4142     __pid_t fork() @nogc nothrow;
4143     int vfork() @nogc nothrow;
4144     char* ttyname(int) @nogc nothrow;
4145     int ttyname_r(int, char*, size_t) @nogc nothrow;
4146     int isatty(int) @nogc nothrow;
4147     int ttyslot() @nogc nothrow;
4148     int link(const(char)*, const(char)*) @nogc nothrow;
4149     int linkat(int, const(char)*, int, const(char)*, int) @nogc nothrow;
4150     int symlink(const(char)*, const(char)*) @nogc nothrow;
4151     ssize_t readlink(const(char)*, char*, size_t) @nogc nothrow;
4152     int symlinkat(const(char)*, int, const(char)*) @nogc nothrow;
4153     ssize_t readlinkat(int, const(char)*, char*, size_t) @nogc nothrow;
4154     int unlink(const(char)*) @nogc nothrow;
4155     int unlinkat(int, const(char)*, int) @nogc nothrow;
4156     int rmdir(const(char)*) @nogc nothrow;
4157     __pid_t tcgetpgrp(int) @nogc nothrow;
4158     int tcsetpgrp(int, __pid_t) @nogc nothrow;
4159     char* getlogin() @nogc nothrow;
4160     int getlogin_r(char*, size_t) @nogc nothrow;
4161     int setlogin(const(char)*) @nogc nothrow;
4162     int gethostname(char*, size_t) @nogc nothrow;
4163     int sethostname(const(char)*, size_t) @nogc nothrow;
4164     int sethostid(c_long) @nogc nothrow;
4165     int getdomainname(char*, size_t) @nogc nothrow;
4166 }