diff options
52 files changed, 2977 insertions, 1649 deletions
@@ -1311,6 +1311,10 @@ ./tools/testfiles/tvlstr.ddl ./tools/testfiles/tattr2.h5 ./tools/testfiles/tall-2A.ddl +./tools/testfiles/tboot.ddl +./tools/testfiles/tcontents.ddl +./tools/testfiles/tfilters.h5 + # Expected output from h5ls tests ./tools/testfiles/help-1.ls diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index ed7b713..550527b 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -18,10 +18,20 @@ #include "H5private.h" #include "h5tools.h" #include "h5tools_utils.h" +#include "h5trav.h" + /* module-scoped variables */ static const char *progname = "h5dump"; +/* 3 private values: can't be set, but can be read. + Note: these are defined in H5Zprivate, they are + duplicated here. + */ +#define H5_SZIP_LSB_OPTION_MASK 8 +#define H5_SZIP_MSB_OPTION_MASK 16 +#define H5_SZIP_RAW_OPTION_MASK 128 + static int d_status = EXIT_SUCCESS; static int unamedtype = 0; /* shared data type with no name */ static size_t prefix_len = 1024; @@ -32,13 +42,17 @@ static const char *driver = NULL; /* The driver to open the file with. */ static const dump_header *dump_header_format; /* things to display or which are set via command line parameters */ -static int display_all = TRUE; -static int display_bb = FALSE; -static int display_oid = FALSE; -static int display_data = TRUE; +static int display_all = TRUE; +static int display_oid = FALSE; +static int display_data = TRUE; static int display_attr_data = TRUE; -static int display_char = FALSE; /*print 1-byte numbers as ASCII? */ -static int usingdasho = FALSE; +static int display_char = FALSE; /*print 1-byte numbers as ASCII? */ +static int usingdasho = FALSE; +static int display_bb = FALSE; /*superblock */ +static int display_dcpl = FALSE; /*dcpl */ +static int display_fi = FALSE; /*file index */ +static int display_ai = TRUE; /*array index */ + /** ** Added for XML ** @@ -65,6 +79,7 @@ typedef struct ref_path_table_entry { /** end XML **/ /* internal functions */ +static hid_t h5_fileaccess(void); static void dump_oid(hid_t oid); static void print_enum(hid_t type); static herr_t dump_all(hid_t group, const char *name, void *op_data); @@ -145,6 +160,8 @@ static h5dump_t dataformat = { "%s", /*dset_blockformat_pre */ "%s", /*dset_ptformat_pre */ "%s", /*dset_ptformat */ + 1 /*array indices */ + }; /** @@ -227,6 +244,7 @@ static h5dump_t xml_dataformat = { "%s", /*dset_blockformat_pre */ "%s", /*dset_ptformat_pre */ "%s", /*dset_ptformat */ + 0 /*array indices */ }; /** XML **/ @@ -235,7 +253,7 @@ static const dump_header standardformat = { "standardformat", /*name */ "HDF5", /*fileebgin */ "", /*fileend */ - BOOT_BLOCK, /*bootblockbegin */ + SUPER_BLOCK, /*bootblockbegin */ "", /*bootblockend */ GROUPNAME, /*groupbegin */ "", /*groupend */ @@ -334,11 +352,13 @@ struct handler_t { /* binary: not implemented yet */ static const char *s_opts = "hbBHirVa:c:d:f:g:k:l:t:w:xD:uX:o:s:S:A"; #else -static const char *s_opts = "hBHirVa:c:d:f:g:k:l:t:w:xD:uX:o:s:S:A"; +static const char *s_opts = "hnpBHirVa:c:d:f:g:k:l:t:w:xD:uX:o:s:S:A"; #endif /* 0 */ static struct long_options l_opts[] = { { "help", no_arg, 'h' }, { "hel", no_arg, 'h' }, + { "contents", no_arg, 'n' }, + { "properties", no_arg, 'p' }, #if 0 /* binary: not implemented yet */ { "binary", no_arg, 'b' }, @@ -470,7 +490,11 @@ static void dump_dataset(hid_t, const char *, struct subset_t *); static void dump_dataspace(hid_t space); static void dump_datatype(hid_t type); static herr_t dump_attr(hid_t, const char *, void *); -static void dump_data(hid_t, int, struct subset_t *); +static void dump_data(hid_t, int, struct subset_t *, int); +static void dump_dcpl(hid_t dcpl, hid_t type_id, hid_t obj_id); +static void dump_comment(hid_t obj_id); +static void dump_fcpl(hid_t fid); +static void dump_list(hid_t fid); /* XML format: same interface, alternative output */ @@ -480,7 +504,7 @@ static void xml_dump_dataset(hid_t, const char *, struct subset_t *) static void xml_dump_dataspace(hid_t space); static void xml_dump_datatype(hid_t type); static herr_t xml_dump_attr(hid_t, const char *, void *); -static void xml_dump_data(hid_t, int, struct subset_t *); +static void xml_dump_data(hid_t, int, struct subset_t *, int); /** ** Added for XML ** @@ -495,7 +519,7 @@ typedef struct dump_functions_t { void (*dump_dataspace_function) (hid_t); void (*dump_datatype_function) (hid_t); herr_t (*dump_attribute_function) (hid_t, const char *, void *); - void (*dump_data_function) (hid_t, int, struct subset_t *); + void (*dump_data_function) (hid_t, int, struct subset_t *, int); } dump_functions; /* Standard DDL output */ @@ -570,6 +594,7 @@ usage(const char *prog) fprintf(stdout, "usage: %s [OPTIONS] file\n", prog); fprintf(stdout, " OPTIONS\n"); fprintf(stdout, " -h, --help Print a usage message and exit\n"); + fprintf(stdout, " -n, --contents Print a list of the file contents and exit\n"); fprintf(stdout, " -B, --bootblock Print the content of the boot block\n"); fprintf(stdout, " -H, --header Print the header only; no data is displayed\n"); fprintf(stdout, " -A Print the header and value of attributes; data of datasets is not displayed\n"); @@ -578,6 +603,7 @@ usage(const char *prog) fprintf(stdout, " -V, --version Print version number and exit\n"); fprintf(stdout, " -a P, --attribute=P Print the specified attribute\n"); fprintf(stdout, " -d P, --dataset=P Print the specified dataset\n"); + fprintf(stdout, " -p, --properties Print dataset filters, storage layout and fill value\n"); fprintf(stdout, " -f D, --filedriver=D Specify which driver to open the file with\n"); fprintf(stdout, " -g P, --group=P Print the specified group and all members\n"); fprintf(stdout, " -l P, --soft-link=P Print the value(s) of the specified soft link\n"); @@ -955,25 +981,7 @@ print_datatype(hid_t type,unsigned in_group) } /* end else */ } -/*------------------------------------------------------------------------- - * Function: dump_bb - * - * Purpose: Dump the boot block - * - * Return: void - * - * Programmer: Ruey-Hsia Li - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static void -dump_bb(void) -{ - printf("%s %s boot block not yet implemented %s\n", - BOOT_BLOCK, BEGIN, END); -} + /*------------------------------------------------------------------------- * Function: dump_datatype @@ -1125,7 +1133,7 @@ dump_attr(hid_t attr, const char *attr_name, void UNUSED * op_data) dump_oid(attr_id); if (display_data || display_attr_data) - dump_data(attr_id, ATTRIBUTE_DATA, NULL); + dump_data(attr_id, ATTRIBUTE_DATA, NULL, 0); H5Tclose(type); H5Sclose(space); @@ -1235,7 +1243,7 @@ dump_selected_attr(hid_t loc_id, const char *name) dump_oid(attr_id); if (display_data || display_attr_data) - dump_data(attr_id, ATTRIBUTE_DATA, NULL); + dump_data(attr_id, ATTRIBUTE_DATA, NULL, 0); H5Tclose(type); H5Sclose(space); @@ -1599,7 +1607,7 @@ dump_group(hid_t gid, const char *name) { H5G_stat_t statbuf; hid_t dset, type; - char type_name[1024], *tmp, comment[50]; + char type_name[1024], *tmp; int i, xtype = H5G_UNKNOWN; /* dump all */ tmp = malloc(strlen(prefix) + strlen(name) + 2); @@ -1610,15 +1618,9 @@ dump_group(hid_t gid, const char *name) indent += COL; if (display_oid) - dump_oid(gid); - - comment[0] = '\0'; - H5Gget_comment(gid, ".", sizeof(comment), comment); + dump_oid(gid); - if (comment[0]) { - indentation(indent); - printf("COMMENT \"%s\"\n", comment); - } + dump_comment(gid); if (!strcmp(name, "/") && unamedtype) /* dump unamed type in root group */ @@ -1626,7 +1628,7 @@ dump_group(hid_t gid, const char *name) if (!type_table->objs[i].recorded) { dset = H5Dopen(gid, type_table->objs[i].objname); type = H5Dget_type(dset); - sprintf(type_name, "#"H5_PRINTF_HADDR_FMT, type_table->objs[i].objno); + sprintf(type_name, "#"H5_PRINTF_HADDR_FMT, type_table->objs[i].objno); dump_named_datatype(type, type_name); H5Tclose(type); H5Dclose(dset); @@ -1679,18 +1681,24 @@ dump_group(hid_t gid, const char *name) static void dump_dataset(hid_t did, const char *name, struct subset_t *sset) { - hid_t type, space; + hid_t type, space, dcpl_id; indentation(indent); begin_obj(dump_header_format->datasetbegin, name, dump_header_format->datasetblockbegin); type = H5Dget_type(did); space = H5Dget_space(did); + dcpl_id = H5Dget_create_plist(did); + + dump_comment(did); dump_datatype(type); dump_dataspace(space); if (display_oid) - dump_oid(did); + dump_oid(did); + + if (display_dcpl) + dump_dcpl(dcpl_id, type, did); if (display_data) switch (H5Tget_class(type)) { @@ -1709,7 +1717,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset) case H5T_ENUM: case H5T_VLEN: case H5T_ARRAY: - dump_data(did, DATASET_DATA, sset); + dump_data(did, DATASET_DATA, sset, display_ai); break; default: @@ -1721,6 +1729,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset) indent -= COL; H5Tclose(type); H5Sclose(space); + H5Pclose(dcpl_id); indentation(indent); end_obj(dump_header_format->datasetend, dump_header_format->datasetblockend); @@ -1872,7 +1881,7 @@ dump_subsetting_header(struct subset_t *sset, int dims) *------------------------------------------------------------------------- */ static void -dump_data(hid_t obj_id, int obj_data, struct subset_t *sset) +dump_data(hid_t obj_id, int obj_data, struct subset_t *sset, int pindex) { h5dump_t *outputformat = &dataformat; int status = -1; @@ -1943,6 +1952,21 @@ dump_data(hid_t obj_id, int obj_data, struct subset_t *sset) outputformat = &string_dataformat; } + + /* print the matrix indices */ + outputformat->pindex=pindex; + if (outputformat->pindex) + { + outputformat->idx_fmt = "(%s)"; + outputformat->idx_n_fmt = "%lu"; + outputformat->idx_sep = ","; + outputformat->line_pre = " %s "; + outputformat->line_1st = " %s "; + outputformat->line_cont = " %s "; + depth=0; + } + + status = h5tools_dump_dset(stdout, outputformat, obj_id, -1, sset, depth); H5Tclose(f_type); } else { @@ -2014,6 +2038,529 @@ dump_oid(hid_t oid) printf("%s %s %d %s\n", OBJID, BEGIN, oid, END); } + +/*------------------------------------------------------------------------- + * Function: dump_comment + * + * Purpose: prints the comment for the the object name + * + * Return: void + * + * Programmer: pvn + * + * Modifications: + * + *------------------------------------------------------------------------- + */ + +static void dump_comment(hid_t obj_id) +{ + char comment[50]; + + comment[0] = '\0'; + H5Gget_comment(obj_id, ".", sizeof(comment), comment); + + if (comment[0]) { + indentation(indent); + printf("COMMENT \"%s\"\n", comment); + } +} + + +/*------------------------------------------------------------------------- + * Function: dump_fill_value + * + * Purpose: prints the fill value + * + * Return: void + * + * Programmer: pvn + * + * Modifications: + * + *------------------------------------------------------------------------- + */ + +static void dump_fill_value(hid_t dcpl,hid_t type_id, hid_t obj_id) +{ + h5tools_context_t ctx; /*print context */ + size_t size; + void *buf=NULL; + hsize_t nelmts=1; + h5dump_t *outputformat = &dataformat; + + memset(&ctx, 0, sizeof(ctx)); + ctx.indent_level=2; + size = H5Tget_size(type_id); + buf = malloc(size); + + H5Pget_fill_value(dcpl, type_id, buf); + + h5tools_dump_simple_data(stdout, outputformat, obj_id, &ctx, + START_OF_DATA | END_OF_DATA, nelmts, type_id, buf); + + if (buf) + free (buf); + +} + + +/*------------------------------------------------------------------------- + * Function: dump_dcpl + * + * Purpose: prints several dataset create property list properties + * + * Return: void + * + * Programmer: pvn + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static void +dump_dcpl(hid_t dcpl_id,hid_t type_id, hid_t obj_id) +{ + int nfilters; /* number of filters */ + unsigned filt_flags; /* filter flags */ + H5Z_filter_t filtn; /* filter identification number */ + unsigned cd_values[20]; /* filter client data values */ + size_t cd_nelmts; /* filter client number of values */ + char f_name[256]; /* filter name */ + unsigned szip_options_mask; + unsigned szip_pixels_per_block; + hsize_t chsize[64]; /* chunk size in elements */ + int rank; /* rank */ + char name[256]; /* external file name */ + off_t offset; /* offset of external file */ + hsize_t size; /* size of external file */ + H5D_fill_value_t fvstatus; + H5D_alloc_time_t at; + H5D_fill_time_t ft; + hsize_t storage_size; + haddr_t ioffset; + int i, next; + unsigned j; + + storage_size=H5Dget_storage_size(obj_id); + ioffset=H5Dget_offset(obj_id); + next=H5Pget_external_count(dcpl_id); + + +/*------------------------------------------------------------------------- + * STORAGE_LAYOUT + *------------------------------------------------------------------------- + */ + indentation(indent + COL); + printf("%s ", STORAGE_LAYOUT); + + if (H5D_CHUNKED == H5Pget_layout(dcpl_id)) + { + printf("%s %s\n", CHUNKED, BEGIN); + /*start indent */ + indent += COL; + indentation(indent + COL); + printf("SIZE %d ", (int)storage_size); + rank = H5Pget_chunk(dcpl_id,NELMTS(chsize),chsize); + printf("%s %d", dump_header_format->dataspacedimbegin, (int)chsize[0]); + for ( i=1; i<rank; i++) + printf(", %d", (int)chsize[i]); + printf(" %s\n", dump_header_format->dataspacedimend); + /*end indent */ + indent -= COL; + indentation(indent + COL); + printf("%s\n",END); + } + else if (H5D_COMPACT == H5Pget_layout(dcpl_id)) + { + printf("%s %s\n", COMPACT, BEGIN); + /*start indent */ + indent += COL; + indentation(indent + COL); + printf("SIZE %d\n", (int)storage_size); + /*end indent */ + indent -= COL; + indentation(indent + COL); + printf("%s\n",END); + } + else if (H5D_CONTIGUOUS == H5Pget_layout(dcpl_id)) + { + /*------------------------------------------------------------------------- + * EXTERNAL_FILE + *------------------------------------------------------------------------- + */ + if (next) + { + printf("%s %s %s\n", CONTIGUOUS, EXTERNAL, BEGIN); + /*start indent */ + indent += COL; + + for ( i=0; i<next; i++) { + H5Pget_external(dcpl_id,(unsigned)i,sizeof(name),name,&offset,&size); + indentation(indent + COL); + printf("FILENAME %s SIZE %d OFFSET %d\n",name,(int)size,(int)offset); + } + /*end indent */ + indent -= COL; + indentation(indent + COL); + printf("%s\n",END); + } + + else + { + printf("%s %s\n", CONTIGUOUS, BEGIN); + /*start indent */ + indent += COL; + indentation(indent + COL); + printf("SIZE %d OFFSET %d\n", (int)storage_size, (int)ioffset); + /*end indent */ + indent -= COL; + indentation(indent + COL); + printf("%s\n",END); + } + } + + + + +/*------------------------------------------------------------------------- + * FILTERS + *------------------------------------------------------------------------- + */ + nfilters = H5Pget_nfilters(dcpl_id); + if (nfilters) + { + + indentation(indent + COL); + printf("%s %s\n", FILTERS, BEGIN); + indent += COL; + + + for (i=0; i<nfilters; i++) + { + cd_nelmts = NELMTS(cd_values); + filtn = H5Pget_filter(dcpl_id, + (unsigned)i, + &filt_flags, + &cd_nelmts, + cd_values, + sizeof(f_name), + f_name); + + switch (filtn) + { + case H5Z_FILTER_DEFLATE: + indentation(indent + COL); + printf("%s %s %s %d %s\n", DEFLATE, BEGIN, DEFLATE_LEVEL, cd_values[0], END); + break; + case H5Z_FILTER_SHUFFLE: + indentation(indent + COL); + printf("%s\n", SHUFFLE); + break; + case H5Z_FILTER_FLETCHER32: + indentation(indent + COL); + printf("%s\n", FLETCHER32); + break; + case H5Z_FILTER_SZIP: + { + szip_options_mask=cd_values[0];; + szip_pixels_per_block=cd_values[1]; + + indentation(indent + COL); + printf("%s %s\n",SZIP, BEGIN); + + /*start indent */ + + indent += COL; + indentation(indent + COL); + printf("PIXELS_PER_BLOCK %d\n", szip_pixels_per_block); + + indentation(indent + COL); + if (szip_options_mask & H5_SZIP_CHIP_OPTION_MASK) + printf("MODE %s\n", "HARDWARE"); + else if (szip_options_mask & H5_SZIP_ALLOW_K13_OPTION_MASK) + printf("MODE %s\n", "K13"); + + indentation(indent + COL); + if (szip_options_mask & H5_SZIP_EC_OPTION_MASK) + printf("CODING %s\n", "ENTROPY"); + else if (szip_options_mask & H5_SZIP_NN_OPTION_MASK) + printf("CODING %s\n", "NEAREST NEIGHBOUR"); + + indentation(indent + COL); + if (szip_options_mask & H5_SZIP_LSB_OPTION_MASK) + printf("BYTE_ORDER %s\n", "LSB"); + else if (szip_options_mask & H5_SZIP_MSB_OPTION_MASK) + printf("BYTE_ORDER %s\n", "MSB"); + + indentation(indent + COL); + if (szip_options_mask & H5_SZIP_RAW_OPTION_MASK) + printf("HEADER %s\n", "RAW"); + + /*end indent */ + + indent -= COL; + indentation(indent + COL); + printf("%s\n",END); + } + break; + default: + indentation(indent + COL); + printf("%s %d %s", UNKNOWN_FILTER, filtn, cd_nelmts? "" : "\n" ); + if (cd_nelmts) { + printf("%s %s ","PARAMS", BEGIN); + for (j=0; j<cd_nelmts; j++) { + printf("%d ", cd_values[j]); + } + printf("%s\n", END); + } + break; + }/*switch*/ + } /*i*/ + + indent -= COL; + indentation(indent + COL); + printf("%s\n",END); + }/*nfilters*/ + +/*------------------------------------------------------------------------- + * FILLVALUE + *------------------------------------------------------------------------- + */ + + indentation(indent + COL); + printf("%s %s\n", FILLVALUE, BEGIN); + + /*start indent */ + indent += COL; + + indentation(indent + COL); + printf("FILL_TIME "); + + H5Pget_fill_time(dcpl_id, &ft); + switch ( ft ) + { + default: + break; + case H5D_FILL_TIME_ALLOC: + printf("%s", "ALLOC\n"); + break; + case H5D_FILL_TIME_NEVER: + printf("%s", "NEVER\n"); + break; + case H5D_FILL_TIME_IFSET: + printf("%s", "IFSET\n"); + break; + } + + indentation(indent + COL); + printf("%s", "ALLOC_TIME "); + H5Pget_alloc_time(dcpl_id, &at); + + switch (at) + { + case H5D_ALLOC_TIME_EARLY: + printf("%s", "EARLY\n"); + break; + case H5D_ALLOC_TIME_INCR: + printf("%s", "INCR\n"); + break; + case H5D_ALLOC_TIME_LATE: + printf("%s", "LATE\n"); + break; + } + + indentation(indent + COL); + printf("%s ", "VALUE "); + + H5Pfill_value_defined(dcpl_id, &fvstatus); + + if (fvstatus == H5D_FILL_VALUE_UNDEFINED) + { + printf("%s\n", "UNDEFINED"); + } + else + { + dump_fill_value(dcpl_id,type_id,obj_id); + } + + /* end indent */ + indent -= COL; + indentation(indent + COL); + printf("\n"); + indentation(indent + COL); + printf("%s\n",END); + +} + +/*------------------------------------------------------------------------- + * Function: dump_fcpl + * + * Purpose: prints file creation property list information + * + * Return: void + * + * Programmer: pvn + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static void +dump_fcpl(hid_t fid) +{ + hid_t fcpl; /* file creation property list ID */ + hid_t fapl; /* file access property list ID */ + hsize_t userblock; /* userblock size retrieved from FCPL */ + size_t off_size; /* size of offsets in the file */ + size_t len_size; /* size of lengths in the file */ +#ifdef H5_WANT_H5_V1_6_COMPAT + int super; /* superblock version # */ + int freelist; /* free list version # */ + int stab; /* symbol table entry version # */ + int shhdr; /* shared object header version # */ +#else + unsigned super; /* superblock version # */ + unsigned freelist; /* free list version # */ + unsigned stab; /* symbol table entry version # */ + unsigned shhdr; /* shared object header version # */ +#endif + herr_t ret; /* generic return value */ + hid_t fdriver; /* file driver */ + char dname[15]; /* buffer to store driver name */ + unsigned sym_lk; /* symbol table B-tree leaf 'K' value */ +#ifdef H5_WANT_H5_V1_6_COMPAT + int sym_ik; /* symbol table B-tree initial 'K' value */ + int istore_ik; /* indexed storage B-tree initial 'K' value */ +#else + unsigned sym_ik; /* symbol table B-tree initial 'K' value */ + unsigned istore_ik; /* indexed storage B-tree initial 'K' value */ +#endif + + + + fcpl=H5Fget_create_plist(fid); + ret=H5Pget_version(fcpl, &super, &freelist, &stab, &shhdr); + ret=H5Pget_userblock(fcpl,&userblock); + ret=H5Pget_sizes(fcpl,&off_size,&len_size); + ret=H5Pget_sym_k(fcpl,&sym_ik,&sym_lk); + ret=H5Pget_istore_k(fcpl,&istore_ik); + ret=H5Pclose(fcpl); + fapl = h5_fileaccess(); + fdriver = H5Pget_driver(fapl); + H5Pclose(fapl); + + + printf("%s %s\n",SUPER_BLOCK, BEGIN); + indentation(indent + COL); + printf("%s %d\n","SUPERBLOCK_VERSION", super); + indentation(indent + COL); + printf("%s %d\n","FREELIST_VERSION", freelist); + indentation(indent + COL); + printf("%s %d\n","SYMBOLTABLE_VERSION", stab); + indentation(indent + COL); + printf("%s %d\n","OBJECTHEADER_VERSION", (int)shhdr); + indentation(indent + COL); + printf("%s %d\n","USERBLOCK_VERSION", userblock); + indentation(indent + COL); + printf("%s %d\n","OFFSET_SIZE", off_size); + indentation(indent + COL); + printf("%s %d\n","LENGTH_SIZE", len_size); + indentation(indent + COL); + printf("%s %d\n","BTREE_RANK", sym_ik); + indentation(indent + COL); + printf("%s %d\n","BTREE_LEAF", sym_lk); + + if (H5FD_CORE==fdriver) + { + strcpy(dname,"H5FD_CORE"); + } +#if 0 + else if (H5FD_DPSS==fdriver) + { + strcpy(dname,"H5FD_DPSS"); + } +#endif + else if (H5FD_FAMILY==fdriver) + { + strcpy(dname,"H5FD_FAMILY"); + } + else if (H5FD_GASS==fdriver) + { + strcpy(dname,"H5FD_GASS"); + } + else if (H5FD_LOG==fdriver) + { + strcpy(dname,"H5FD_LOG"); + } + else if (H5FD_MPIO==fdriver) + { + strcpy(dname,"H5FD_MPIO"); + } + else if (H5FD_MULTI==fdriver) + { + strcpy(dname,"H5FD_MULTI"); + } + else if (H5FD_SEC2==fdriver) + { + strcpy(dname,"H5FD_SEC2"); + } + else if (H5FD_STDIO==fdriver) + { + strcpy(dname,"H5FD_STDIO"); + } +#ifdef H5_HAVE_STREAM + else if (H5FD_STREAM==fdriver) + { + strcpy(dname,"H5FD_STREAM"); + } +#endif + + indentation(indent + COL); + printf("%s %s\n","FILE_DRIVER", dname); + indentation(indent + COL); + printf("%s %d\n","ISTORE_K", istore_ik); + + printf("%s\n",END); +} + +/*------------------------------------------------------------------------- + * Function: dump_list + * + * Purpose: prints all objects + * + * Return: void + * + * Programmer: pvn + * + * Modifications: + * + *------------------------------------------------------------------------- + */ + +static void dump_list(hid_t fid) +{ + int nobjects; + trav_info_t *info=NULL; + + /* get the number of objects in the files */ + nobjects = h5trav_getinfo(fid, NULL); + + /* get the list of objects in the files */ + info = (trav_info_t*) malloc( nobjects * sizeof(trav_info_t)); + if (info==NULL) + return; + + h5trav_getinfo(fid, info); + printf("%s %s\n",FILE_CONTENTS, BEGIN); + h5trav_printinfo(nobjects,info); + printf(" %s\n",END); + h5trav_freeinfo(info,nobjects); +} + + + + /*------------------------------------------------------------------------- * Function: set_output_file * @@ -2507,6 +3054,13 @@ parse_start: display_bb = TRUE; last_was_dset = FALSE; break; + case 'n': + display_fi = TRUE; + last_was_dset = FALSE; + break; + case 'p': + display_dcpl = TRUE; + break; case 'H': display_data = FALSE; display_attr_data = FALSE; @@ -2876,20 +3430,22 @@ main(int argc, const char *argv[]) info.dset_table = dset_table; info.status = d_status; + + thefile = fid; + /* find all objects that might be targets of a refernce */ + if ((gid = H5Gopen(fid, "/")) < 0) { + error_msg(progname, "unable to open root group\n"); + d_status = EXIT_FAILURE; + goto done; + } + ref_path_table_put(gid, "/"); + H5Giterate(fid, "/", NULL, fill_ref_path_table, NULL); + H5Gclose(gid); + + if (doxml) { /* initialize XML */ - thefile = fid; - /* find all objects that might be targets of a refernce */ - if ((gid = H5Gopen(fid, "/")) < 0) { - error_msg(progname, "unable to open root group\n"); - d_status = EXIT_FAILURE; - goto done; - } - - ref_path_table_put(gid, "/"); - H5Giterate(fid, "/", NULL, fill_ref_path_table, NULL); - H5Gclose(gid); /* reset prefix! */ strcpy(prefix, ""); @@ -2958,8 +3514,19 @@ main(int argc, const char *argv[]) } } - if (display_bb) - dump_bb(); + if (!doxml) + { + if (display_fi) + { + dump_list(fid); + end_obj(dump_header_format->fileend,dump_header_format->fileblockend); + goto done; + } + + if (display_bb) + dump_fcpl(fid); + } + if (display_all) { if ((gid = H5Gopen(fid, "/")) < 0) { @@ -4199,7 +4766,7 @@ xml_dump_dataspace(hid_t space) *------------------------------------------------------------------------- */ static void -xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset) +xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNUSED pindex) { h5dump_t *outputformat = &xml_dataformat; int status = -1; @@ -4337,7 +4904,7 @@ xml_dump_attr(hid_t attr, const char *attr_name, void UNUSED * op_data) case H5T_OPAQUE: case H5T_ENUM: case H5T_ARRAY: - dump_function_table->dump_data_function(attr_id, ATTRIBUTE_DATA, NULL); + dump_function_table->dump_data_function(attr_id, ATTRIBUTE_DATA, NULL, 0); break; case H5T_TIME: @@ -4357,7 +4924,7 @@ xml_dump_attr(hid_t attr, const char *attr_name, void UNUSED * op_data) case H5T_COMPOUND: indentation(indent); printf("<!-- Note: format of compound data not specified -->\n"); - dump_function_table->dump_data_function(attr_id, ATTRIBUTE_DATA, NULL); + dump_function_table->dump_data_function(attr_id, ATTRIBUTE_DATA, NULL, 0); break; case H5T_REFERENCE: @@ -4380,7 +4947,7 @@ xml_dump_attr(hid_t attr, const char *attr_name, void UNUSED * op_data) case H5T_VLEN: printf("<!-- Note: format of VL data not specified -->\n"); - dump_function_table->dump_data_function(attr_id, ATTRIBUTE_DATA, NULL); + dump_function_table->dump_data_function(attr_id, ATTRIBUTE_DATA, NULL, 0); break; default: indentation(indent); @@ -5024,13 +5591,7 @@ check_filters(hid_t dcpl) indentation(indent + COL); printf("<%sShuffle />",xmlnsprefix); } else if (filter == H5Z_FILTER_SZIP) { -/* 3 private values: can't be set, but can be read. - Note: these are defined in H5Zprivate, they are - duplicated here. - */ -#define H5_SZIP_LSB_OPTION_MASK 8 -#define H5_SZIP_MSB_OPTION_MASK 16 -#define H5_SZIP_RAW_OPTION_MASK 128 + indentation(indent + COL); printf("<%sSZIP ",xmlnsprefix); if (cd_nelmts < 2) { @@ -5392,7 +5953,7 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset) case H5T_OPAQUE: case H5T_ENUM: case H5T_ARRAY: - dump_function_table->dump_data_function(did, DATASET_DATA, NULL); + dump_function_table->dump_data_function(did, DATASET_DATA, NULL, 0); break; case H5T_TIME: @@ -5411,7 +5972,7 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset) case H5T_COMPOUND: indentation(indent); printf("<!-- Note: format of compound data not specified -->\n"); - dump_function_table->dump_data_function(did, DATASET_DATA, NULL); + dump_function_table->dump_data_function(did, DATASET_DATA, NULL, 0); break; case H5T_REFERENCE: @@ -5434,7 +5995,7 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset) case H5T_VLEN: printf("<!-- Note: format of VL data not specified -->\n"); - dump_function_table->dump_data_function(did, DATASET_DATA, NULL); + dump_function_table->dump_data_function(did, DATASET_DATA, NULL, 0); break; default: indentation(indent); @@ -5576,3 +6137,111 @@ xml_print_enum(hid_t type) free(value); H5Tclose(super); } + + +/*------------------------------------------------------------------------- + * Function: h5_fileaccess + * + * Purpose: Returns a file access template which is the default template + * but with a file driver set according to the constant or + * environment variable HDF5_DRIVER + * + * Return: Success: A file access property list + * + * Failure: -1 + * + * Programmer: Robb Matzke + * Thursday, November 19, 1998 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static hid_t +h5_fileaccess(void) +{ + static const char *multi_letters = "msbrglo"; + + const char *val = NULL; + const char *name; + char s[1024]; + hid_t fapl = -1; + + /* First use the environment variable, then the constant */ + val = HDgetenv("HDF5_DRIVER"); +#ifdef HDF5_DRIVER + if (!val) val = HDF5_DRIVER; +#endif + + if ((fapl=H5Pcreate(H5P_FILE_ACCESS))<0) return -1; + if (!val || !*val) return fapl; /*use default*/ + + HDstrncpy(s, val, sizeof s); + s[sizeof(s)-1] = '\0'; + if (NULL==(name=HDstrtok(s, " \t\n\r"))) return fapl; + + if (!HDstrcmp(name, "sec2")) { + /* Unix read() and write() system calls */ + if (H5Pset_fapl_sec2(fapl)<0) return -1; + } else if (!HDstrcmp(name, "stdio")) { + /* Standard C fread() and fwrite() system calls */ + if (H5Pset_fapl_stdio(fapl)<0) return -1; + } else if (!HDstrcmp(name, "core")) { + /* In-core temporary file with 1MB increment */ + if (H5Pset_fapl_core(fapl, 1024*1024, FALSE)<0) return -1; + } else if (!HDstrcmp(name, "split")) { + /* Split meta data and raw data each using default driver */ + if (H5Pset_fapl_split(fapl, + "-m.h5", H5P_DEFAULT, + "-r.h5", H5P_DEFAULT)<0) + return -1; + } else if (!HDstrcmp(name, "multi")) { + /* Multi-file driver, general case of the split driver */ + H5FD_mem_t memb_map[H5FD_MEM_NTYPES]; + hid_t memb_fapl[H5FD_MEM_NTYPES]; + const char *memb_name[H5FD_MEM_NTYPES]; + char sv[H5FD_MEM_NTYPES][1024]; + haddr_t memb_addr[H5FD_MEM_NTYPES]; + H5FD_mem_t mt; + + HDmemset(memb_map, 0, sizeof memb_map); + HDmemset(memb_fapl, 0, sizeof memb_fapl); + HDmemset(memb_name, 0, sizeof memb_name); + HDmemset(memb_addr, 0, sizeof memb_addr); + + assert(HDstrlen(multi_letters)==H5FD_MEM_NTYPES); + for (mt=H5FD_MEM_DEFAULT; mt<H5FD_MEM_NTYPES; H5_INC_ENUM(H5FD_mem_t,mt)) { + memb_fapl[mt] = H5P_DEFAULT; + sprintf(sv[mt], "%%s-%c.h5", multi_letters[mt]); + memb_name[mt] = sv[mt]; + memb_addr[mt] = MAX(mt-1,0)*(HADDR_MAX/10); + } + + if (H5Pset_fapl_multi(fapl, memb_map, memb_fapl, memb_name, + memb_addr, FALSE)<0) { + return -1; + } + } else if (!HDstrcmp(name, "family")) { + hsize_t fam_size = 100*1024*1024; /*100 MB*/ + + /* Family of files, each 1MB and using the default driver */ + if ((val=HDstrtok(NULL, " \t\n\r"))) + fam_size = (hsize_t)(HDstrtod(val, NULL) * 1024*1024); + if (H5Pset_fapl_family(fapl, fam_size, H5P_DEFAULT)<0) + return -1; + } else if (!HDstrcmp(name, "log")) { + long log_flags = H5FD_LOG_LOC_IO; + + /* Log file access */ + if ((val = HDstrtok(NULL, " \t\n\r"))) + log_flags = HDstrtol(val, NULL, 0); + + if (H5Pset_fapl_log(fapl, NULL, (unsigned)log_flags, 0) < 0) + return -1; + } else { + /* Unknown driver */ + return -1; + } + + return fapl; +} diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c index b3c55a6..9231b64 100644 --- a/tools/h5dump/h5dumpgentest.c +++ b/tools/h5dump/h5dumpgentest.c @@ -68,15 +68,44 @@ #define FILE40 "tattr2.h5" #define FILE41 "tcompound_complex.h5" #define FILE42 "tnamed_dtype_attr.h5" -#define FILE43 "tvldtypes5.h5" +#define FILE43 "tvldtypes5.h5" +#define FILE44 "tfilters.h5" -/* prototypes */ -static int write_attr(hid_t loc_id, int rank, hsize_t *dims, const char *attr_name, +/*------------------------------------------------------------------------- + * prototypes + *------------------------------------------------------------------------- + */ + +/* utility functions */ +static int +write_attr(hid_t loc_id, int rank, hsize_t *dims, const char *attr_name, hid_t type_id, void *buf); -static int write_dset( hid_t loc_id, int rank, hsize_t *dims, const char *dset_name, +static int +write_dset( hid_t loc_id, int rank, hsize_t *dims, const char *dset_name, hid_t type_id, void *buf ); +/* a filter operation callback function */ +static size_t +myfilter(unsigned int UNUSED flags, size_t UNUSED cd_nelmts, + const unsigned int UNUSED *cd_values, size_t nbytes, + size_t UNUSED *buf_size, void UNUSED **buf); + +/* a "set local" callback */ +static herr_t +set_local_myfilter(hid_t dcpl_id, hid_t type_id, hid_t UNUSED space_id); + +#define MYFILTER_ID 405 + +/* This message derives from H5Z */ +const H5Z_class_t H5Z_MYFILTER[1] = {{ + MYFILTER_ID, /* Filter id number */ + "myfilter", /* Filter name for debugging */ + NULL, /* The "can apply" callback */ + set_local_myfilter, /* The "set local" callback */ + myfilter, /* The actual filter function */ +}}; + #define LENSTR 50 @@ -89,6 +118,12 @@ static int write_dset( hid_t loc_id, int rank, hsize_t *dims, const char *dset_n #define SPACE1_RANK 1 #define SPACE1_DIM1 4 +#define DIM1 20 +#define DIM2 10 +#define CDIM1 DIM1/2 +#define CDIM2 DIM2/2 +#define RANK 2 + /* Element selection information */ #define POINT1_NPOINTS 10 @@ -4331,6 +4366,499 @@ static void gent_named_dtype_attr(void) /*------------------------------------------------------------------------- + * Function: make_dset + * + * Purpose: utility function to create and write a dataset in LOC_ID + * + *------------------------------------------------------------------------- + */ +static +int make_dset(hid_t loc_id, + const char *name, + hid_t sid, + hid_t dcpl, + void *buf) +{ + hid_t dsid; + + /* create the dataset */ + if((dsid = H5Dcreate (loc_id,name,H5T_NATIVE_INT,sid,dcpl))<0) + return -1; + + /* write */ + if(H5Dwrite(dsid,H5T_NATIVE_INT,H5S_ALL,H5S_ALL,H5P_DEFAULT,buf)<0) + goto out; + + /* close */ + if(H5Dclose(dsid)<0) + return -1; + + return 0; + out: + H5E_BEGIN_TRY { + H5Dclose(dsid); + } H5E_END_TRY; + return -1; +} + + + +/*------------------------------------------------------------------------- + * Function: make_external + * + * Purpose: make a dataset with external storage + * + *------------------------------------------------------------------------- + */ +static void +make_external(hid_t fid) +{ + hid_t dcpl; /*dataset creation property list */ + hid_t sid; /*dataspace ID */ + hid_t dsid; /*dataset ID */ + hsize_t cur_size[1]; /*data space current size */ + hsize_t max_size[1]; /*data space maximum size */ + hsize_t size; /*bytes reserved for data in the external file*/ + int ret; + + cur_size[0] = max_size[0] = 100; + size = (max_size[0]*sizeof(int)/2); + + dcpl=H5Pcreate(H5P_DATASET_CREATE); + ret=H5Pset_external(dcpl,"ext1.bin",(off_t)0,size); + assert(ret>=0); + + ret=H5Pset_external(dcpl,"ext2.bin",(off_t)0,size); + assert(ret>=0); + + sid=H5Screate_simple(1, cur_size, max_size); + assert(ret>=0); + + dsid=H5Dcreate(fid, "external", H5T_NATIVE_INT, sid, dcpl); + assert(ret>=0); + + H5Dclose(dsid); + assert(ret>=0); + + H5Sclose(sid); + assert(ret>=0); + + H5Pclose(dcpl); + assert(ret>=0); +} + +/*------------------------------------------------------------------------- + * Function: gent_filters + * + * Purpose: make several datasets with filters, external dataset + * fill value + * + *------------------------------------------------------------------------- + */ +static void gent_filters(void) +{ + hid_t fid; /* file id */ + hid_t dcpl; /* dataset creation property list */ + hid_t sid; /* dataspace ID */ + hid_t sid1; /* dataspace ID */ + hid_t tid; /* datatype ID */ + hid_t did; /* dataset ID */ +#if defined (H5_HAVE_FILTER_SZIP) + unsigned szip_options_mask=H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK; + unsigned szip_pixels_per_block=4; +#endif + hsize_t dims1[RANK]={DIM1,DIM2}; + hsize_t chunk_dims[RANK]={CDIM1,CDIM2}; + int buf1[DIM1][DIM2]; + hsize_t dims2[1]={2}; + hvl_t buf2[2]; + hsize_t dims3[1]={1}; + char buf3[]={"string\n new"}; + hsize_t dims4[1]={6}; + char buf4[6]={"abcdef"}; + hobj_ref_t buf5[2]; + int i, j, n, ret, fillval, val; + + typedef enum + { + E_RED, + E_GREEN + } e_t; + + + for (i=n=0; i<DIM1; i++){ + for (j=0; j<DIM2; j++){ + buf1[i][j]=n++; + } + } + + /* create a file */ + fid = H5Fcreate(FILE44, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + assert(fid>=0); + + /* create a space */ + sid = H5Screate_simple(SPACE2_RANK, dims1, NULL); + + /* create a dataset creation property list; the same DCPL is used for all dsets */ + dcpl = H5Pcreate(H5P_DATASET_CREATE); + +/*------------------------------------------------------------------------- + * create a compact and contiguous storage layout dataset + * add a comment to the datasets + *------------------------------------------------------------------------- + */ + ret=H5Pset_layout(dcpl, H5D_COMPACT); + assert(ret>=0); + + ret=make_dset(fid,"compact",sid,dcpl,buf1); + assert(ret>=0); + + ret=H5Gset_comment(fid,"compact", "This is a dataset with compact storage"); + assert(ret>=0); + + ret=H5Pset_layout(dcpl, H5D_CONTIGUOUS); + assert(ret>=0); + + ret=make_dset(fid,"contiguous",sid,dcpl,buf1); + assert(ret>=0); + + ret=H5Gset_comment(fid,"contiguous", "This is a dataset with contiguous storage"); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * make several dataset with filters + *------------------------------------------------------------------------- + */ + + /* set up chunk */ + ret=H5Pset_chunk(dcpl, SPACE2_RANK, chunk_dims); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * SZIP + *------------------------------------------------------------------------- + */ +#if defined (H5_HAVE_FILTER_SZIP) + /* remove the filters from the dcpl */ + ret=H5Premove_filter(dcpl,H5Z_FILTER_ALL); + assert(ret>=0); + + /* set szip data */ + ret=H5Pset_szip (dcpl,szip_options_mask,szip_pixels_per_block); + assert(ret>=0); + + ret=make_dset(fid,"szip",sid,dcpl,buf1); + assert(ret>=0); +#endif + +/*------------------------------------------------------------------------- + * GZIP + *------------------------------------------------------------------------- + */ +#if defined (H5_HAVE_FILTER_DEFLATE) + /* remove the filters from the dcpl */ + ret=H5Premove_filter(dcpl,H5Z_FILTER_ALL); + assert(ret>=0); + + /* set deflate data */ + ret=H5Pset_deflate(dcpl, 9); + assert(ret>=0); + + ret=make_dset(fid,"deflate",sid,dcpl,buf1); + assert(ret>=0); +#endif + + +/*------------------------------------------------------------------------- + * shuffle + *------------------------------------------------------------------------- + */ +#if defined (H5_HAVE_FILTER_SHUFFLE) + /* remove the filters from the dcpl */ + ret=H5Premove_filter(dcpl,H5Z_FILTER_ALL); + assert(ret>=0); + + /* set the shuffle filter */ + ret=H5Pset_shuffle(dcpl); + assert(ret>=0); + + ret=make_dset(fid,"shuffle",sid,dcpl,buf1); + assert(ret>=0); +#endif + + +/*------------------------------------------------------------------------- + * checksum + *------------------------------------------------------------------------- + */ +#if defined (H5_HAVE_FILTER_FLETCHER32) + /* remove the filters from the dcpl */ + ret=H5Premove_filter(dcpl,H5Z_FILTER_ALL); + assert(ret>=0); + + /* set the checksum filter */ + ret=H5Pset_fletcher32(dcpl); + assert(ret>=0); + + ret=make_dset(fid,"fletcher32",sid,dcpl,buf1); + assert(ret>=0); +#endif + +/*------------------------------------------------------------------------- + * all filters + *------------------------------------------------------------------------- + */ + /* remove the filters from the dcpl */ + ret=H5Premove_filter(dcpl,H5Z_FILTER_ALL); + assert(ret>=0); + +#if defined (H5_HAVE_FILTER_SHUFFLE) + /* set the shuffle filter */ + ret=H5Pset_shuffle(dcpl); + assert(ret>=0); +#endif + +#if defined (H5_HAVE_FILTER_SZIP) + szip_options_mask=H5_SZIP_CHIP_OPTION_MASK | H5_SZIP_EC_OPTION_MASK; + /* set szip data */ + ret=H5Pset_szip (dcpl,szip_options_mask,szip_pixels_per_block); + assert(ret>=0); +#endif + +#if defined (H5_HAVE_FILTER_DEFLATE) + /* set deflate data */ + ret=H5Pset_deflate(dcpl, 5); + assert(ret>=0); +#endif + +#if defined (H5_HAVE_FILTER_FLETCHER32) + /* set the checksum filter */ + ret=H5Pset_fletcher32(dcpl); + assert(ret>=0); +#endif + + ret=make_dset(fid,"all",sid,dcpl,buf1); + assert(ret>=0); + + +/*------------------------------------------------------------------------- + * user defined filter + *------------------------------------------------------------------------- + */ + /* remove the filters from the dcpl */ + ret=H5Premove_filter(dcpl,H5Z_FILTER_ALL); + assert(ret>=0); + +#ifdef H5_WANT_H5_V1_4_COMPAT + ret=H5Zregister (MYFILTER_ID, "myfilter", myfilter); +#else + ret=H5Zregister (H5Z_MYFILTER); +#endif + assert(ret>=0); + + H5Pset_filter (dcpl, MYFILTER_ID, 0, 0, NULL); + assert(ret>=0); + + ret=make_dset(fid,"myfilter",sid,dcpl,buf1); + assert(ret>=0); + + /* remove the filters from the dcpl */ + ret=H5Premove_filter(dcpl,H5Z_FILTER_ALL); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * make an external dataset + *------------------------------------------------------------------------- + */ + make_external(fid); + +/*------------------------------------------------------------------------- + * make datasets with fill value combinations + *------------------------------------------------------------------------- + */ + + fillval = -99; + + ret=H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_EARLY); + assert(ret>=0); + + ret=H5Pset_fill_time(dcpl, H5D_FILL_TIME_ALLOC); + assert(ret>=0); + + ret=H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fillval); + assert(ret>=0); + + ret=make_dset(fid,"fill early",sid,dcpl,buf1); + assert(ret>=0); + + ret=H5Pset_fill_time(dcpl, H5D_FILL_TIME_NEVER); + assert(ret>=0); + + ret=make_dset(fid,"fill never",sid,dcpl,buf1); + assert(ret>=0); + + ret=H5Pset_fill_time(dcpl, H5D_FILL_TIME_IFSET); + assert(ret>=0); + + ret=make_dset(fid,"fill ifset",sid,dcpl,buf1); + assert(ret>=0); + + +/*------------------------------------------------------------------------- + * commit a H5G_TYPE type with a comment + *------------------------------------------------------------------------- + */ + tid=H5Tcopy(H5T_STD_B8LE); + ret=H5Tcommit(fid, "my type", tid); + assert(ret>=0); + + ret=H5Gset_comment(fid,"my type", "This is a commited datatype"); + assert(ret>=0); + + ret=H5Tclose(tid); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * enum type with nonprintable characters in the name + *------------------------------------------------------------------------- + */ + tid = H5Tcreate(H5T_ENUM, sizeof(e_t)); + H5Tenum_insert(tid, "RED 3 \\n", (val = 0, &val)); + write_dset(fid,2,dims1,"enum",tid,0); + ret=H5Tclose(tid); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * vlen + *------------------------------------------------------------------------- + */ + + buf2[0].len = 1; + buf2[0].p = malloc( 1 * sizeof(int)); + ((int *)buf2[0].p)[0]=1; + buf2[1].len = 2; + buf2[1].p = malloc( 2 * sizeof(int)); + ((int *)buf2[1].p)[0]=2; + ((int *)buf2[1].p)[1]=3; + + sid1=H5Screate_simple(1,dims2,NULL); + tid=H5Tvlen_create(H5T_NATIVE_INT); + did=H5Dcreate(fid,"vlen",tid,sid1,H5P_DEFAULT); + ret=H5Dwrite(did,tid,H5S_ALL,H5S_ALL,H5P_DEFAULT,buf2); + assert(ret>=0); + ret=H5Tcommit(fid,"myvlen",tid); + assert(ret>=0); + ret=H5Dvlen_reclaim(tid,sid1,H5P_DEFAULT,buf2); + assert(ret>=0); + ret=H5Dclose(did); + assert(ret>=0); + ret=H5Tclose(tid); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * bitfield + *------------------------------------------------------------------------- + */ + tid = H5Tcopy(H5T_STD_B8LE); + write_dset(fid,1,dims3,"bitfield",tid,buf3); + ret=H5Tclose(tid); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * string + *------------------------------------------------------------------------- + */ + + tid=H5Tcopy(H5T_C_S1); + ret=H5Tset_size(tid, sizeof(buf3)); + assert(ret>=0); + write_dset(fid,1,dims3,"string",tid,buf3); + ret=H5Tclose(tid); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * char array + *------------------------------------------------------------------------- + */ + write_dset(fid,1,dims4,"char",H5T_NATIVE_CHAR,buf4); + + +/*------------------------------------------------------------------------- + * reference + *------------------------------------------------------------------------- + */ + ret=H5Rcreate(&buf5[0],fid,"char",H5R_OBJECT,-1); + assert(ret>=0); + ret=H5Rcreate(&buf5[1],fid,"string",H5R_OBJECT,-1); + assert(ret>=0); + write_dset(fid,1,dims2,"reference",H5T_STD_REF_OBJ,buf5); + + + +/*------------------------------------------------------------------------- + * close + *------------------------------------------------------------------------- + */ + + ret=H5Sclose(sid1); + assert(ret>=0); + + ret=H5Sclose(sid); + assert(ret>=0); + + ret=H5Pclose(dcpl); + assert(ret>=0); + + ret=H5Fclose(fid); + assert(ret>=0); +} + +/*------------------------------------------------------------------------- + * Function: myfilter + * + * Purpose: filter operation callback function; the filter does nothing + * + *------------------------------------------------------------------------- + */ +static size_t +myfilter(unsigned int UNUSED flags, size_t UNUSED cd_nelmts, + const unsigned int UNUSED *cd_values, size_t nbytes, + size_t UNUSED *buf_size, void UNUSED **buf) +{ + return nbytes; +} + + +/*------------------------------------------------------------------------- + * Function: set_local_myfilter + * + * Purpose: filter operation "set local" callback + * + *------------------------------------------------------------------------- + */ + +static herr_t +set_local_myfilter(hid_t dcpl_id, hid_t UNUSED type_id, hid_t UNUSED space_id) +{ + unsigned flags; /* Filter flags */ + size_t cd_nelmts=0; /* Number of filter parameters */ + unsigned cd_values[2]={5,6}; /* Filter parameters */ + + /* Get the filter's current parameters */ + if(H5Pget_filter_by_id(dcpl_id,MYFILTER_ID,&flags,&cd_nelmts,cd_values,0,NULL)<0) + return(FAIL); + + cd_nelmts=2; + + /* Modify the filter's parameters for this dataset */ + if(H5Pmodify_filter(dcpl_id,MYFILTER_ID,flags, cd_nelmts,cd_values)<0) + return(FAIL); + + return(SUCCEED); +} + + +/*------------------------------------------------------------------------- * Function: main * *------------------------------------------------------------------------- @@ -4396,6 +4924,8 @@ int main(void) gent_compound_complex(); gent_named_dtype_attr(); + + gent_filters(); return 0; } diff --git a/tools/h5dump/testh5dump.sh b/tools/h5dump/testh5dump.sh index 598c32c..fc63188 100755 --- a/tools/h5dump/testh5dump.sh +++ b/tools/h5dump/testh5dump.sh @@ -62,8 +62,13 @@ TOOLTEST() { $RUNSERIAL $DUMPER_BIN $@ ) >$actual 2>$actual_err cat $actual_err >> $actual - - if $CMP $expect $actual; then + + + if [ ! -f $expect ]; then + # Create the expect file if it doesn't yet exist. + echo " CREATED" + cp $actual $expect + elif $CMP $expect $actual; then echo " PASSED" else echo "*FAILED*" @@ -92,7 +97,7 @@ TOOLTEST tgroup-2.ddl --group=/g2 --group / -g /y tgroup.h5 # test for displaying simple space datasets TOOLTEST tdset-1.ddl tdset.h5 # test for displaying selected datasets -TOOLTEST tdset-2.ddl -H -d dset1 -d /dset2 -d dset3 --dataset=dset4 tdset.h5 +TOOLTEST tdset-2.ddl -H -d dset1 -d /dset2 --dataset=dset3 tdset.h5 # test for displaying attributes TOOLTEST tattr-1.ddl tattr.h5 @@ -120,7 +125,7 @@ TOOLTEST tcomp-1.ddl tcompound.h5 # test for named data types TOOLTEST tcomp-2.ddl -t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5 # test for unamed type -TOOLTEST tcomp-3.ddl -t /#6632 -g /group2 tcompound.h5 +TOOLTEST tcomp-3.ddl -t /#6632:0 -g /group2 tcompound.h5 # test complicated compound datatype TOOLTEST tcomp-4.ddl tcompound_complex.h5 @@ -191,6 +196,13 @@ TOOLTEST tchar1.ddl -r tchar.h5 # Missing file name TOOLTEST tnofilename.ddl +# test for super block +TOOLTEST tboot.ddl -H -B -d compact tfilters.h5 + +# test for file contents +TOOLTEST tcontents.ddl -n tfilters.h5 + + if test $nerrors -eq 0 ; then echo "All $DUMPER tests passed." fi diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c index d34a4a2..a7e6ce4 100644 --- a/tools/lib/h5diff_attr.c +++ b/tools/lib/h5diff_attr.c @@ -65,7 +65,6 @@ int diff_attr(hid_t loc1_id, char name2[255]; int n1, n2, i, j, nfound; H5S_class_t space_type1, space_type2; - H5T_class_t tclass1, tclass2; int ret=0; if ((n1 = H5Aget_num_attrs(loc1_id))<0) diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index 6941c43..5906909 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -43,8 +43,7 @@ #define ALIGN(A,Z) ((((A) + (Z) - 1) / (Z)) * (Z)) -#define START_OF_DATA 0x0001 -#define END_OF_DATA 0x0002 + /* global variables */ int indent; @@ -500,7 +499,7 @@ h5tools_simple_prefix(FILE *stream, const h5dump_t *info, * handled correctly. *------------------------------------------------------------------------- */ -static void +void h5tools_dump_simple_data(FILE *stream, const h5dump_t *info, hid_t container, h5tools_context_t *ctx/*in,out*/, unsigned flags, hsize_t nelmts, hid_t type, void *_mem) diff --git a/tools/lib/h5tools.h b/tools/lib/h5tools.h index ce4b6f6..545db02 100644 --- a/tools/lib/h5tools.h +++ b/tools/lib/h5tools.h @@ -26,6 +26,8 @@ #define ESCAPE_HTML 1 #define OPT(X,S) ((X) ? (X) : (S)) #define OPTIONAL_LINE_BREAK "\001" /* Special strings embedded in the output */ +#define START_OF_DATA 0x0001 +#define END_OF_DATA 0x0002 /* * Information about how to format output. @@ -313,6 +315,9 @@ typedef struct h5dump_t { const char *dset_ptformat_pre; const char *dset_ptformat; + /*print array indices in output matrix */ + int pindex; + } h5dump_t; typedef struct dump_header{ @@ -437,7 +442,7 @@ extern FILE *rawdatastream; /*output stream for raw data */ /* taken from h5dump.h*/ #define ATTRIBUTE "ATTRIBUTE" #define BLOCK "BLOCK" -#define BOOT_BLOCK "BOOT_BLOCK" +#define SUPER_BLOCK "SUPER_BLOCK" #define COMPRESSION "COMPRESSION" #define CONCATENATOR "//" #define COMPLEX "COMPLEX" @@ -466,6 +471,22 @@ extern FILE *rawdatastream; /*output stream for raw data */ #define STRPAD "STRPAD" #define SUBSET "SUBSET" +#define FILTERS "FILTERS" +#define DEFLATE "COMPRESSION DEFLATE" +#define DEFLATE_LEVEL "LEVEL" +#define SHUFFLE "PREPROCESSING SHUFFLE" +#define FLETCHER32 "CHECKSUM FLETCHER32" +#define SZIP "COMPRESSION SZIP" +#define UNKNOWN_FILTER "UNKNOWN_FILTER" +#define STORAGE_LAYOUT "STORAGE_LAYOUT" +#define CONTIGUOUS "CONTIGUOUS" +#define COMPACT "COMPACT" +#define CHUNKED "CHUNKED" +#define EXTERNAL_FILE "EXTERNAL_FILE" +#define FILLVALUE "FILLVALUE" +#define FILE_CONTENTS "FILE_CONTENTS" + + #define BEGIN "{" #define END "}" @@ -480,6 +501,10 @@ extern int h5tools_dump_dset(FILE *stream, const h5dump_t *info, hid_t dset extern int h5tools_dump_mem(FILE *stream, const h5dump_t *info, hid_t obj_id, hid_t type, hid_t space, void *mem, int indentlevel); +extern void h5tools_dump_simple_data(FILE *stream, const h5dump_t *info, hid_t container, + h5tools_context_t *ctx/*in,out*/, unsigned flags, + hsize_t nelmts, hid_t type, void *_mem); + extern int h5tools_canreadf(const char* name, hid_t dcpl_id); diff --git a/tools/testfiles/tall-1.ddl b/tools/testfiles/tall-1.ddl index 44f1d27..779f1d9 100644 --- a/tools/testfiles/tall-1.ddl +++ b/tools/testfiles/tall-1.ddl @@ -24,31 +24,33 @@ GROUP "/" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 10, 10 ) / ( 10, 10 ) } DATA { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, - 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, - 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, - 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, - 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, - 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, - 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, - 0, 9, 18, 27, 36, 45, 54, 63, 72, 81 + (0,0) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + (1,0) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + (2,0) 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, + (3,0) 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, + (4,0) 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, + (5,0) 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, + (6,0) 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, + (7,0) 0, 7, 14, 21, 28, 35, 42, 49, 56, 63, + (8,0) 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, + (9,0) 0, 9, 18, 27, 36, 45, 54, 63, 72, 81 } ATTRIBUTE "attr1" { DATATYPE H5T_STD_I8BE DATASPACE SIMPLE { ( 27 ) / ( 27 ) } DATA { - 49, 115, 116, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, - 32, 111, 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0 + (0) 49, 115, 116, 32, 97, 116, 116, 114, 105, 98, 117, + (11) 116, 101, 32, 111, 102, 32, 100, 115, 101, 116, + (21) 49, 46, 49, 46, 49, 0 } } ATTRIBUTE "attr2" { DATATYPE H5T_STD_I8BE DATASPACE SIMPLE { ( 27 ) / ( 27 ) } DATA { - 50, 110, 100, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, - 32, 111, 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0 + (0) 50, 110, 100, 32, 97, 116, 116, 114, 105, 98, 117, + (11) 116, 101, 32, 111, 102, 32, 100, 115, 101, 116, + (21) 49, 46, 49, 46, 49, 0 } } } @@ -56,8 +58,7 @@ GROUP "/" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 20 ) / ( 20 ) } DATA { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19 + (0) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 } } } @@ -74,16 +75,16 @@ GROUP "/" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9 + (0) 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9 } } DATASET "dset2.2" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 3, 5 ) / ( 3, 5 ) } DATA { - 0, 0.1, 0.2, 0.3, 0.4, - 0, 0.2, 0.4, 0.6, 0.8, - 0, 0.3, 0.6, 0.9, 1.2 + (0,0) 0, 0.1, 0.2, 0.3, 0.4, + (1,0) 0, 0.2, 0.4, 0.6, 0.8, + (2,0) 0, 0.3, 0.6, 0.9, 1.2 } } } diff --git a/tools/testfiles/tall-3.ddl b/tools/testfiles/tall-3.ddl index 0605e9c..bb0429b 100644 --- a/tools/testfiles/tall-3.ddl +++ b/tools/testfiles/tall-3.ddl @@ -6,7 +6,7 @@ DATASET "/g2/dset2.1" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9 + (0) 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9 } } SOFTLINK "/g1/g1.2/g1.2.1/slink" { diff --git a/tools/testfiles/tall-4s.ddl b/tools/testfiles/tall-4s.ddl index 945e55c..4b5223a 100644 --- a/tools/testfiles/tall-4s.ddl +++ b/tools/testfiles/tall-4s.ddl @@ -11,23 +11,25 @@ DATASET "/g1/g1.1/dset1.1.1" { COUNT ( 3, 2 ); BLOCK ( 1, 1 ); DATA { - 1, 3, 5, 4, 12, 20 + (0,0) 1, 3, 5, 4, 12, 20 } } ATTRIBUTE "attr1" { DATATYPE H5T_STD_I8BE DATASPACE SIMPLE { ( 27 ) / ( 27 ) } DATA { - 49, 115, 116, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 111, - 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0 + (0) 49, 115, 116, 32, 97, 116, 116, 114, 105, 98, 117, 116, + (12) 101, 32, 111, 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, + (25) 49, 0 } } ATTRIBUTE "attr2" { DATATYPE H5T_STD_I8BE DATASPACE SIMPLE { ( 27 ) / ( 27 ) } DATA { - 50, 110, 100, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 111, - 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0 + (0) 50, 110, 100, 32, 97, 116, 116, 114, 105, 98, 117, 116, + (12) 101, 32, 111, 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, + (25) 49, 0 } } } diff --git a/tools/testfiles/tall-5s.ddl b/tools/testfiles/tall-5s.ddl index 55cb449..1072d70 100644 --- a/tools/testfiles/tall-5s.ddl +++ b/tools/testfiles/tall-5s.ddl @@ -11,7 +11,7 @@ DATASET "/g1/g1.1/dset1.1.2" { COUNT ( 10 ); BLOCK ( 1 ); DATA { - 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 + (0) 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 } } } diff --git a/tools/testfiles/tarray1.ddl b/tools/testfiles/tarray1.ddl index fc35578..5db33cf 100644 --- a/tools/testfiles/tarray1.ddl +++ b/tools/testfiles/tarray1.ddl @@ -7,8 +7,8 @@ GROUP "/" { DATATYPE H5T_ARRAY { [4] H5T_STD_I32LE } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - [ 0, 1, 2, 3 ], [ 10, 11, 12, 13 ], [ 20, 21, 22, 23 ], - [ 30, 31, 32, 33 ] + (0) [ 0, 1, 2, 3 ], [ 10, 11, 12, 13 ], [ 20, 21, 22, 23 ], + (3) [ 30, 31, 32, 33 ] } } } diff --git a/tools/testfiles/tarray2.ddl b/tools/testfiles/tarray2.ddl index a2b8027..167d480 100644 --- a/tools/testfiles/tarray2.ddl +++ b/tools/testfiles/tarray2.ddl @@ -7,54 +7,54 @@ GROUP "/" { DATATYPE H5T_ARRAY { [3][4][5] H5T_STD_I32LE } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - [ 0, 1, 2, 3, 4, - 10, 11, 12, 13, 14, - 20, 21, 22, 23, 24, - 30, 31, 32, 33, 34, - 100, 101, 102, 103, 104, - 110, 111, 112, 113, 114, - 120, 121, 122, 123, 124, - 130, 131, 132, 133, 134, - 200, 201, 202, 203, 204, - 210, 211, 212, 213, 214, - 220, 221, 222, 223, 224, - 230, 231, 232, 233, 234 ], - [ 1000, 1001, 1002, 1003, 1004, - 1010, 1011, 1012, 1013, 1014, - 1020, 1021, 1022, 1023, 1024, - 1030, 1031, 1032, 1033, 1034, - 1100, 1101, 1102, 1103, 1104, - 1110, 1111, 1112, 1113, 1114, - 1120, 1121, 1122, 1123, 1124, - 1130, 1131, 1132, 1133, 1134, - 1200, 1201, 1202, 1203, 1204, - 1210, 1211, 1212, 1213, 1214, - 1220, 1221, 1222, 1223, 1224, - 1230, 1231, 1232, 1233, 1234 ], - [ 2000, 2001, 2002, 2003, 2004, - 2010, 2011, 2012, 2013, 2014, - 2020, 2021, 2022, 2023, 2024, - 2030, 2031, 2032, 2033, 2034, - 2100, 2101, 2102, 2103, 2104, - 2110, 2111, 2112, 2113, 2114, - 2120, 2121, 2122, 2123, 2124, - 2130, 2131, 2132, 2133, 2134, - 2200, 2201, 2202, 2203, 2204, - 2210, 2211, 2212, 2213, 2214, - 2220, 2221, 2222, 2223, 2224, - 2230, 2231, 2232, 2233, 2234 ], - [ 3000, 3001, 3002, 3003, 3004, - 3010, 3011, 3012, 3013, 3014, - 3020, 3021, 3022, 3023, 3024, - 3030, 3031, 3032, 3033, 3034, - 3100, 3101, 3102, 3103, 3104, - 3110, 3111, 3112, 3113, 3114, - 3120, 3121, 3122, 3123, 3124, - 3130, 3131, 3132, 3133, 3134, - 3200, 3201, 3202, 3203, 3204, - 3210, 3211, 3212, 3213, 3214, - 3220, 3221, 3222, 3223, 3224, - 3230, 3231, 3232, 3233, 3234 ] + (0) [ 0, 1, 2, 3, 4, + %s 10, 11, 12, 13, 14, + %s 20, 21, 22, 23, 24, + %s 30, 31, 32, 33, 34, + %s 100, 101, 102, 103, 104, + %s 110, 111, 112, 113, 114, + %s 120, 121, 122, 123, 124, + %s 130, 131, 132, 133, 134, + %s 200, 201, 202, 203, 204, + %s 210, 211, 212, 213, 214, + %s 220, 221, 222, 223, 224, + %s 230, 231, 232, 233, 234 ], + (1) [ 1000, 1001, 1002, 1003, 1004, + %s 1010, 1011, 1012, 1013, 1014, + %s 1020, 1021, 1022, 1023, 1024, + %s 1030, 1031, 1032, 1033, 1034, + %s 1100, 1101, 1102, 1103, 1104, + %s 1110, 1111, 1112, 1113, 1114, + %s 1120, 1121, 1122, 1123, 1124, + %s 1130, 1131, 1132, 1133, 1134, + %s 1200, 1201, 1202, 1203, 1204, + %s 1210, 1211, 1212, 1213, 1214, + %s 1220, 1221, 1222, 1223, 1224, + %s 1230, 1231, 1232, 1233, 1234 ], + (2) [ 2000, 2001, 2002, 2003, 2004, + %s 2010, 2011, 2012, 2013, 2014, + %s 2020, 2021, 2022, 2023, 2024, + %s 2030, 2031, 2032, 2033, 2034, + %s 2100, 2101, 2102, 2103, 2104, + %s 2110, 2111, 2112, 2113, 2114, + %s 2120, 2121, 2122, 2123, 2124, + %s 2130, 2131, 2132, 2133, 2134, + %s 2200, 2201, 2202, 2203, 2204, + %s 2210, 2211, 2212, 2213, 2214, + %s 2220, 2221, 2222, 2223, 2224, + %s 2230, 2231, 2232, 2233, 2234 ], + (3) [ 3000, 3001, 3002, 3003, 3004, + %s 3010, 3011, 3012, 3013, 3014, + %s 3020, 3021, 3022, 3023, 3024, + %s 3030, 3031, 3032, 3033, 3034, + %s 3100, 3101, 3102, 3103, 3104, + %s 3110, 3111, 3112, 3113, 3114, + %s 3120, 3121, 3122, 3123, 3124, + %s 3130, 3131, 3132, 3133, 3134, + %s 3200, 3201, 3202, 3203, 3204, + %s 3210, 3211, 3212, 3213, 3214, + %s 3220, 3221, 3222, 3223, 3224, + %s 3230, 3231, 3232, 3233, 3234 ] } } } diff --git a/tools/testfiles/tarray3.ddl b/tools/testfiles/tarray3.ddl index 034294a..24a9809 100644 --- a/tools/testfiles/tarray3.ddl +++ b/tools/testfiles/tarray3.ddl @@ -7,90 +7,90 @@ GROUP "/" { DATATYPE H5T_ARRAY { [4] H5T_ARRAY { [6][3] H5T_STD_I32LE } } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - [ [ 0, 1, 2, - 10, 11, 12, - 20, 21, 22, - 30, 31, 32, - 40, 41, 42, - 50, 51, 52 ], [ 100, 101, 102, - 110, 111, 112, - 120, 121, 122, - 130, 131, 132, - 140, 141, 142, - 150, 151, 152 ], [ 200, 201, 202, - 210, 211, 212, - 220, 221, 222, - 230, 231, 232, - 240, 241, 242, - 250, 251, 252 ], [ 300, 301, 302, - 310, 311, 312, - 320, 321, 322, - 330, 331, 332, - 340, 341, 342, - 350, 351, 352 ] ], - [ [ 1000, 1001, 1002, - 1010, 1011, 1012, - 1020, 1021, 1022, - 1030, 1031, 1032, - 1040, 1041, 1042, - 1050, 1051, 1052 ], [ 1100, 1101, 1102, - 1110, 1111, 1112, - 1120, 1121, 1122, - 1130, 1131, 1132, - 1140, 1141, 1142, - 1150, 1151, 1152 ], [ 1200, 1201, 1202, - 1210, 1211, 1212, - 1220, 1221, 1222, - 1230, 1231, 1232, - 1240, 1241, 1242, - 1250, 1251, 1252 ], [ 1300, 1301, 1302, - 1310, 1311, 1312, - 1320, 1321, 1322, - 1330, 1331, 1332, - 1340, 1341, 1342, - 1350, 1351, 1352 ] ], - [ [ 2000, 2001, 2002, - 2010, 2011, 2012, - 2020, 2021, 2022, - 2030, 2031, 2032, - 2040, 2041, 2042, - 2050, 2051, 2052 ], [ 2100, 2101, 2102, - 2110, 2111, 2112, - 2120, 2121, 2122, - 2130, 2131, 2132, - 2140, 2141, 2142, - 2150, 2151, 2152 ], [ 2200, 2201, 2202, - 2210, 2211, 2212, - 2220, 2221, 2222, - 2230, 2231, 2232, - 2240, 2241, 2242, - 2250, 2251, 2252 ], [ 2300, 2301, 2302, - 2310, 2311, 2312, - 2320, 2321, 2322, - 2330, 2331, 2332, - 2340, 2341, 2342, - 2350, 2351, 2352 ] ], - [ [ 3000, 3001, 3002, - 3010, 3011, 3012, - 3020, 3021, 3022, - 3030, 3031, 3032, - 3040, 3041, 3042, - 3050, 3051, 3052 ], [ 3100, 3101, 3102, - 3110, 3111, 3112, - 3120, 3121, 3122, - 3130, 3131, 3132, - 3140, 3141, 3142, - 3150, 3151, 3152 ], [ 3200, 3201, 3202, - 3210, 3211, 3212, - 3220, 3221, 3222, - 3230, 3231, 3232, - 3240, 3241, 3242, - 3250, 3251, 3252 ], [ 3300, 3301, 3302, - 3310, 3311, 3312, - 3320, 3321, 3322, - 3330, 3331, 3332, - 3340, 3341, 3342, - 3350, 3351, 3352 ] ] + (0) [ [ 0, 1, 2, + %s 10, 11, 12, + %s 20, 21, 22, + %s 30, 31, 32, + %s 40, 41, 42, + %s 50, 51, 52 ], [ 100, 101, 102, + %s 110, 111, 112, + %s 120, 121, 122, + %s 130, 131, 132, + %s 140, 141, 142, + %s 150, 151, 152 ], [ 200, 201, 202, + %s 210, 211, 212, + %s 220, 221, 222, + %s 230, 231, 232, + %s 240, 241, 242, + %s 250, 251, 252 ], [ 300, 301, 302, + %s 310, 311, 312, + %s 320, 321, 322, + %s 330, 331, 332, + %s 340, 341, 342, + %s 350, 351, 352 ] ], + (1) [ [ 1000, 1001, 1002, + %s 1010, 1011, 1012, + %s 1020, 1021, 1022, + %s 1030, 1031, 1032, + %s 1040, 1041, 1042, + %s 1050, 1051, 1052 ], [ 1100, 1101, 1102, + %s 1110, 1111, 1112, + %s 1120, 1121, 1122, + %s 1130, 1131, 1132, + %s 1140, 1141, 1142, + %s 1150, 1151, 1152 ], [ 1200, 1201, 1202, + %s 1210, 1211, 1212, + %s 1220, 1221, 1222, + %s 1230, 1231, 1232, + %s 1240, 1241, 1242, + %s 1250, 1251, 1252 ], [ 1300, 1301, 1302, + %s 1310, 1311, 1312, + %s 1320, 1321, 1322, + %s 1330, 1331, 1332, + %s 1340, 1341, 1342, + %s 1350, 1351, 1352 ] ], + (2) [ [ 2000, 2001, 2002, + %s 2010, 2011, 2012, + %s 2020, 2021, 2022, + %s 2030, 2031, 2032, + %s 2040, 2041, 2042, + %s 2050, 2051, 2052 ], [ 2100, 2101, 2102, + %s 2110, 2111, 2112, + %s 2120, 2121, 2122, + %s 2130, 2131, 2132, + %s 2140, 2141, 2142, + %s 2150, 2151, 2152 ], [ 2200, 2201, 2202, + %s 2210, 2211, 2212, + %s 2220, 2221, 2222, + %s 2230, 2231, 2232, + %s 2240, 2241, 2242, + %s 2250, 2251, 2252 ], [ 2300, 2301, 2302, + %s 2310, 2311, 2312, + %s 2320, 2321, 2322, + %s 2330, 2331, 2332, + %s 2340, 2341, 2342, + %s 2350, 2351, 2352 ] ], + (3) [ [ 3000, 3001, 3002, + %s 3010, 3011, 3012, + %s 3020, 3021, 3022, + %s 3030, 3031, 3032, + %s 3040, 3041, 3042, + %s 3050, 3051, 3052 ], [ 3100, 3101, 3102, + %s 3110, 3111, 3112, + %s 3120, 3121, 3122, + %s 3130, 3131, 3132, + %s 3140, 3141, 3142, + %s 3150, 3151, 3152 ], [ 3200, 3201, 3202, + %s 3210, 3211, 3212, + %s 3220, 3221, 3222, + %s 3230, 3231, 3232, + %s 3240, 3241, 3242, + %s 3250, 3251, 3252 ], [ 3300, 3301, 3302, + %s 3310, 3311, 3312, + %s 3320, 3321, 3322, + %s 3330, 3331, 3332, + %s 3340, 3341, 3342, + %s 3350, 3351, 3352 ] ] } } } diff --git a/tools/testfiles/tarray4.ddl b/tools/testfiles/tarray4.ddl index 24e405b..44c2a42 100644 --- a/tools/testfiles/tarray4.ddl +++ b/tools/testfiles/tarray4.ddl @@ -10,7 +10,7 @@ GROUP "/" { } } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - [ { + (0) [ { 0, 0 }, { @@ -23,7 +23,7 @@ GROUP "/" { 3, 3 } ], - [ { + (1) [ { 10, 2.5 }, { @@ -36,7 +36,7 @@ GROUP "/" { 13, 5.5 } ], - [ { + (2) [ { 20, 5 }, { @@ -49,7 +49,7 @@ GROUP "/" { 23, 8 } ], - [ { + (3) [ { 30, 7.5 }, { diff --git a/tools/testfiles/tarray5.ddl b/tools/testfiles/tarray5.ddl index ff35d21..976cf64 100644 --- a/tools/testfiles/tarray5.ddl +++ b/tools/testfiles/tarray5.ddl @@ -10,7 +10,7 @@ GROUP "/" { } } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - [ { + (0) [ { 0, [ 0, 1, 2, 3 ] }, { @@ -23,7 +23,7 @@ GROUP "/" { 3, [ 7.5, 8.5, 9.5, 10.5 ] } ], - [ { + (1) [ { 10, [ 10, 11, 12, 13 ] }, { @@ -36,7 +36,7 @@ GROUP "/" { 13, [ 17.5, 18.5, 19.5, 20.5 ] } ], - [ { + (2) [ { 20, [ 20, 21, 22, 23 ] }, { @@ -49,7 +49,7 @@ GROUP "/" { 23, [ 27.5, 28.5, 29.5, 30.5 ] } ], - [ { + (3) [ { 30, [ 30, 31, 32, 33 ] }, { diff --git a/tools/testfiles/tarray6.ddl b/tools/testfiles/tarray6.ddl index 761d8cd..c18a000 100644 --- a/tools/testfiles/tarray6.ddl +++ b/tools/testfiles/tarray6.ddl @@ -7,10 +7,10 @@ GROUP "/" { DATATYPE H5T_ARRAY { [4] H5T_VLEN { H5T_STD_U32LE} } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - [ (0), (10, 11), (20, 21, 22), (30, 31, 32, 33) ], - [ (100, 101), (110, 111, 112), (120, 121, 122, 123), (130, 131, 132, 133, 134) ], - [ (200, 201, 202), (210, 211, 212, 213), (220, 221, 222, 223, 224), (230, 231, 232, 233, 234, 235) ], - [ (300, 301, 302, 303), (310, 311, 312, 313, 314), (320, 321, 322, 323, 324, 325), (330, 331, 332, 333, 334, 335, 336) ] + (0) [ (0), (10, 11), (20, 21, 22), (30, 31, 32, 33) ], + (1) [ (100, 101), (110, 111, 112), (120, 121, 122, 123), (130, 131, 132, 133, 134) ], + (2) [ (200, 201, 202), (210, 211, 212, 213), (220, 221, 222, 223, 224), (230, 231, 232, 233, 234, 235) ], + (3) [ (300, 301, 302, 303), (310, 311, 312, 313, 314), (320, 321, 322, 323, 324, 325), (330, 331, 332, 333, 334, 335, 336) ] } } } diff --git a/tools/testfiles/tarray7.ddl b/tools/testfiles/tarray7.ddl index c5bfb2d..a303d5b 100644 --- a/tools/testfiles/tarray7.ddl +++ b/tools/testfiles/tarray7.ddl @@ -7,10 +7,10 @@ GROUP "/" { DATATYPE H5T_ARRAY { [4] H5T_VLEN { H5T_ARRAY { [4] H5T_STD_U32LE }} } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - [ ([ 0, 1, 2, 3 ]), ([ 100, 101, 102, 103 ], [ 110, 111, 112, 113 ]), ([ 200, 201, 202, 203 ], [ 210, 211, 212, 213 ], [ 220, 221, 222, 223 ]), ([ 300, 301, 302, 303 ], [ 310, 311, 312, 313 ], [ 320, 321, 322, 323 ], [ 330, 331, 332, 333 ]) ], - [ ([ 1000, 1001, 1002, 1003 ], [ 1010, 1011, 1012, 1013 ]), ([ 1100, 1101, 1102, 1103 ], [ 1110, 1111, 1112, 1113 ], [ 1120, 1121, 1122, 1123 ]), ([ 1200, 1201, 1202, 1203 ], [ 1210, 1211, 1212, 1213 ], [ 1220, 1221, 1222, 1223 ], [ 1230, 1231, 1232, 1233 ]), ([ 1300, 1301, 1302, 1303 ], [ 1310, 1311, 1312, 1313 ], [ 1320, 1321, 1322, 1323 ], [ 1330, 1331, 1332, 1333 ], [ 1340, 1341, 1342, 1343 ]) ], - [ ([ 2000, 2001, 2002, 2003 ], [ 2010, 2011, 2012, 2013 ], [ 2020, 2021, 2022, 2023 ]), ([ 2100, 2101, 2102, 2103 ], [ 2110, 2111, 2112, 2113 ], [ 2120, 2121, 2122, 2123 ], [ 2130, 2131, 2132, 2133 ]), ([ 2200, 2201, 2202, 2203 ], [ 2210, 2211, 2212, 2213 ], [ 2220, 2221, 2222, 2223 ], [ 2230, 2231, 2232, 2233 ], [ 2240, 2241, 2242, 2243 ]), ([ 2300, 2301, 2302, 2303 ], [ 2310, 2311, 2312, 2313 ], [ 2320, 2321, 2322, 2323 ], [ 2330, 2331, 2332, 2333 ], [ 2340, 2341, 2342, 2343 ], [ 2350, 2351, 2352, 2353 ]) ], - [ ([ 3000, 3001, 3002, 3003 ], [ 3010, 3011, 3012, 3013 ], [ 3020, 3021, 3022, 3023 ], [ 3030, 3031, 3032, 3033 ]), ([ 3100, 3101, 3102, 3103 ], [ 3110, 3111, 3112, 3113 ], [ 3120, 3121, 3122, 3123 ], [ 3130, 3131, 3132, 3133 ], [ 3140, 3141, 3142, 3143 ]), ([ 3200, 3201, 3202, 3203 ], [ 3210, 3211, 3212, 3213 ], [ 3220, 3221, 3222, 3223 ], [ 3230, 3231, 3232, 3233 ], [ 3240, 3241, 3242, 3243 ], [ 3250, 3251, 3252, 3253 ]), ([ 3300, 3301, 3302, 3303 ], [ 3310, 3311, 3312, 3313 ], [ 3320, 3321, 3322, 3323 ], [ 3330, 3331, 3332, 3333 ], [ 3340, 3341, 3342, 3343 ], [ 3350, 3351, 3352, 3353 ], [ 3360, 3361, 3362, 3363 ]) ] + (0) [ ([ 0, 1, 2, 3 ]), ([ 100, 101, 102, 103 ], [ 110, 111, 112, 113 ]), ([ 200, 201, 202, 203 ], [ 210, 211, 212, 213 ], [ 220, 221, 222, 223 ]), ([ 300, 301, 302, 303 ], [ 310, 311, 312, 313 ], [ 320, 321, 322, 323 ], [ 330, 331, 332, 333 ]) ], + (1) [ ([ 1000, 1001, 1002, 1003 ], [ 1010, 1011, 1012, 1013 ]), ([ 1100, 1101, 1102, 1103 ], [ 1110, 1111, 1112, 1113 ], [ 1120, 1121, 1122, 1123 ]), ([ 1200, 1201, 1202, 1203 ], [ 1210, 1211, 1212, 1213 ], [ 1220, 1221, 1222, 1223 ], [ 1230, 1231, 1232, 1233 ]), ([ 1300, 1301, 1302, 1303 ], [ 1310, 1311, 1312, 1313 ], [ 1320, 1321, 1322, 1323 ], [ 1330, 1331, 1332, 1333 ], [ 1340, 1341, 1342, 1343 ]) ], + (2) [ ([ 2000, 2001, 2002, 2003 ], [ 2010, 2011, 2012, 2013 ], [ 2020, 2021, 2022, 2023 ]), ([ 2100, 2101, 2102, 2103 ], [ 2110, 2111, 2112, 2113 ], [ 2120, 2121, 2122, 2123 ], [ 2130, 2131, 2132, 2133 ]), ([ 2200, 2201, 2202, 2203 ], [ 2210, 2211, 2212, 2213 ], [ 2220, 2221, 2222, 2223 ], [ 2230, 2231, 2232, 2233 ], [ 2240, 2241, 2242, 2243 ]), ([ 2300, 2301, 2302, 2303 ], [ 2310, 2311, 2312, 2313 ], [ 2320, 2321, 2322, 2323 ], [ 2330, 2331, 2332, 2333 ], [ 2340, 2341, 2342, 2343 ], [ 2350, 2351, 2352, 2353 ]) ], + (3) [ ([ 3000, 3001, 3002, 3003 ], [ 3010, 3011, 3012, 3013 ], [ 3020, 3021, 3022, 3023 ], [ 3030, 3031, 3032, 3033 ]), ([ 3100, 3101, 3102, 3103 ], [ 3110, 3111, 3112, 3113 ], [ 3120, 3121, 3122, 3123 ], [ 3130, 3131, 3132, 3133 ], [ 3140, 3141, 3142, 3143 ]), ([ 3200, 3201, 3202, 3203 ], [ 3210, 3211, 3212, 3213 ], [ 3220, 3221, 3222, 3223 ], [ 3230, 3231, 3232, 3233 ], [ 3240, 3241, 3242, 3243 ], [ 3250, 3251, 3252, 3253 ]), ([ 3300, 3301, 3302, 3303 ], [ 3310, 3311, 3312, 3313 ], [ 3320, 3321, 3322, 3323 ], [ 3330, 3331, 3332, 3333 ], [ 3340, 3341, 3342, 3343 ], [ 3350, 3351, 3352, 3353 ], [ 3360, 3361, 3362, 3363 ]) ] } } } diff --git a/tools/testfiles/tboot.ddl b/tools/testfiles/tboot.ddl new file mode 100644 index 0000000..3ccba78 --- /dev/null +++ b/tools/testfiles/tboot.ddl @@ -0,0 +1,23 @@ +############################# +Expected output for 'h5dump -H -B -d compact tfilters.h5' +############################# +HDF5 "tfilters.h5" { +SUPER_BLOCK { + SUPERBLOCK_VERSION 0 + FREELIST_VERSION 0 + SYMBOLTABLE_VERSION 0 + OBJECTHEADER_VERSION 0 + USERBLOCK_VERSION 0 + OFFSET_SIZE 8 + LENGTH_SIZE 8 + BTREE_RANK 16 + BTREE_LEAF 4 + FILE_DRIVER H5FD_SEC2 + ISTORE_K 32 +} +DATASET "compact" { +COMMENT "This is a dataset with compact storage" + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } +} +} diff --git a/tools/testfiles/tchar1.ddl b/tools/testfiles/tchar1.ddl index cc2d838..5f8311a 100644 --- a/tools/testfiles/tchar1.ddl +++ b/tools/testfiles/tchar1.ddl @@ -7,11 +7,11 @@ GROUP "/" { DATATYPE H5T_STD_I8LE DATASPACE SIMPLE { ( 308 ) / ( 308 ) } DATA { - "Four score and seven years ago our forefathers brought forth on this " - "continent a new nation, conceived in liberty and dedicated to the pro" - "position that all men are created equal. Now we are engaged in a grea" - "t civil war, testing whether that nation or any nation so conceived a" - "nd so dedicated can long endure." + (0) Four score and seven years ago our forefathers brought forth on thi" + (67) s continent a new nation, conceived in liberty and dedicated to th" + (133) e proposition that all men are created equal. Now we are engaged " + (198) in a great civil war, testing whether that nation or any nation s" + (263) o conceived and so dedicated can long endure." } } } diff --git a/tools/testfiles/tcomp-1.ddl b/tools/testfiles/tcomp-1.ddl index b656f23..5cbd67c 100644 --- a/tools/testfiles/tcomp-1.ddl +++ b/tools/testfiles/tcomp-1.ddl @@ -15,27 +15,27 @@ GROUP "/" { } DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - { + (0) { 0, 0, 1 }, - { + (1) { 1, 1, 0.5 }, - { + (2) { 2, 4, 0.333333 }, - { + (3) { 3, 9, 0.25 }, - { + (4) { 4, 16, 0.2 @@ -47,202 +47,202 @@ GROUP "/" { DATATYPE "/type1" DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - { - 0, - 0 - }, - { - 1, - 1.1 - }, - { - 2, - 2.2 - }, - { - 3, - 3.3 - }, - { - 4, - 4.4 - } + (0) { + 0, + 0 + }, + (1) { + 1, + 1.1 + }, + (2) { + 2, + 2.2 + }, + (3) { + 3, + 3.3 + }, + (4) { + 4, + 4.4 + } } } DATASET "dset3" { DATATYPE "/type2" DATASPACE SIMPLE { ( 3, 6 ) / ( 3, 6 ) } DATA { - { - [ 0, 1, 2, 3 ], - [ 1, 2, 3, 4, 5, 6, - 2, 3, 4, 5, 6, 7, - 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10 ] - }, - { - [ 1, 2, 3, 4 ], - [ 2, 3, 4, 5, 6, 7, - 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11 ] - }, - { - [ 2, 3, 4, 5 ], - [ 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12 ] - }, - { - [ 3, 4, 5, 6 ], - [ 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13 ] - }, - { - [ 4, 5, 6, 7 ], - [ 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14 ] - }, - { - [ 5, 6, 7, 8 ], - [ 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14, - 10, 11, 12, 13, 14, 15 ] - }, - { - [ 1, 2, 3, 4 ], - [ 2, 3, 4, 5, 6, 7, - 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11 ] - }, - { - [ 2, 3, 4, 5 ], - [ 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12 ] - }, - { - [ 3, 4, 5, 6 ], - [ 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13 ] - }, - { - [ 4, 5, 6, 7 ], - [ 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14 ] - }, - { - [ 5, 6, 7, 8 ], - [ 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14, - 10, 11, 12, 13, 14, 15 ] - }, - { - [ 6, 7, 8, 9 ], - [ 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14, - 10, 11, 12, 13, 14, 15, - 11, 12, 13, 14, 15, 16 ] - }, - { - [ 2, 3, 4, 5 ], - [ 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12 ] - }, - { - [ 3, 4, 5, 6 ], - [ 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13 ] - }, - { - [ 4, 5, 6, 7 ], - [ 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14 ] - }, - { - [ 5, 6, 7, 8 ], - [ 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14, - 10, 11, 12, 13, 14, 15 ] - }, - { - [ 6, 7, 8, 9 ], - [ 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14, - 10, 11, 12, 13, 14, 15, - 11, 12, 13, 14, 15, 16 ] - }, - { - [ 7, 8, 9, 10 ], - [ 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14, - 10, 11, 12, 13, 14, 15, - 11, 12, 13, 14, 15, 16, - 12, 13, 14, 15, 16, 17 ] - } + (0,0) { + [ 0, 1, 2, 3 ], + [ 1, 2, 3, 4, 5, 6, + %s 2, 3, 4, 5, 6, 7, + %s 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10 ] + }, + (0,1) { + [ 1, 2, 3, 4 ], + [ 2, 3, 4, 5, 6, 7, + %s 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11 ] + }, + (0,2) { + [ 2, 3, 4, 5 ], + [ 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12 ] + }, + (0,3) { + [ 3, 4, 5, 6 ], + [ 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13 ] + }, + (0,4) { + [ 4, 5, 6, 7 ], + [ 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14 ] + }, + (0,5) { + [ 5, 6, 7, 8 ], + [ 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14, + %s 10, 11, 12, 13, 14, 15 ] + }, + (1,0) { + [ 1, 2, 3, 4 ], + [ 2, 3, 4, 5, 6, 7, + %s 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11 ] + }, + (1,1) { + [ 2, 3, 4, 5 ], + [ 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12 ] + }, + (1,2) { + [ 3, 4, 5, 6 ], + [ 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13 ] + }, + (1,3) { + [ 4, 5, 6, 7 ], + [ 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14 ] + }, + (1,4) { + [ 5, 6, 7, 8 ], + [ 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14, + %s 10, 11, 12, 13, 14, 15 ] + }, + (1,5) { + [ 6, 7, 8, 9 ], + [ 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14, + %s 10, 11, 12, 13, 14, 15, + %s 11, 12, 13, 14, 15, 16 ] + }, + (2,0) { + [ 2, 3, 4, 5 ], + [ 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12 ] + }, + (2,1) { + [ 3, 4, 5, 6 ], + [ 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13 ] + }, + (2,2) { + [ 4, 5, 6, 7 ], + [ 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14 ] + }, + (2,3) { + [ 5, 6, 7, 8 ], + [ 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14, + %s 10, 11, 12, 13, 14, 15 ] + }, + (2,4) { + [ 6, 7, 8, 9 ], + [ 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14, + %s 10, 11, 12, 13, 14, 15, + %s 11, 12, 13, 14, 15, 16 ] + }, + (2,5) { + [ 7, 8, 9, 10 ], + [ 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14, + %s 10, 11, 12, 13, 14, 15, + %s 11, 12, 13, 14, 15, 16, + %s 12, 13, 14, 15, 16, 17 ] + } } } DATASET "dset4" { DATATYPE "/group1/type3" DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - { - 0, - 3 - }, - { - 1, - 4 - }, - { - 2, - 5 - }, - { - 3, - 6 - }, - { - 4, - 7 - } + (0) { + 0, + 3 + }, + (1) { + 1, + 4 + }, + (2) { + 2, + 5 + }, + (3) { + 3, + 6 + }, + (4) { + 4, + 7 + } } } DATATYPE "type3" H5T_COMPOUND { @@ -255,26 +255,26 @@ GROUP "/" { DATATYPE "/#6632" DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - { - 0, - 0 - }, - { - 1, - 0.1 - }, - { - 2, - 0.2 - }, - { - 3, - 0.3 - }, - { - 4, - 0.4 - } + (0) { + 0, + 0 + }, + (1) { + 1, + 0.1 + }, + (2) { + 2, + 0.2 + }, + (3) { + 3, + 0.3 + }, + (4) { + 4, + 0.4 + } } } } diff --git a/tools/testfiles/tcomp-3.ddl b/tools/testfiles/tcomp-3.ddl index e0e62b0..bca28ad 100644 --- a/tools/testfiles/tcomp-3.ddl +++ b/tools/testfiles/tcomp-3.ddl @@ -1,33 +1,31 @@ ############################# -Expected output for 'h5dump -t /#6632 -g /group2 tcompound.h5' +Expected output for 'h5dump -t /#6632:0 -g /group2 tcompound.h5' ############################# HDF5 "tcompound.h5" { -DATATYPE "/#6632" H5T_COMPOUND { - H5T_STD_I32BE "int"; - H5T_IEEE_F32BE "float"; -} +DATATYPE "/#6632:0" + GROUP "/group2" { DATASET "dset5" { DATATYPE "/#6632" DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - { + (0) { 0, 0 }, - { + (1) { 1, 0.1 }, - { + (2) { 2, 0.2 }, - { + (3) { 3, 0.3 }, - { + (4) { 4, 0.4 } @@ -35,3 +33,4 @@ GROUP "/group2" { } } } +h5dump error: unable to open datatype "/#6632:0" diff --git a/tools/testfiles/tcomp-4.ddl b/tools/testfiles/tcomp-4.ddl index 0ef9f6c..fe2afb3 100644 --- a/tools/testfiles/tcomp-4.ddl +++ b/tools/testfiles/tcomp-4.ddl @@ -25,80 +25,80 @@ GROUP "/" { } DATASPACE SIMPLE { ( 6 ) / ( 6 ) } DATA { - { + (0) { 0, [ "A fight is a contract that takes two people to honor.", "A combative stance means that you've accepted the contract.", "In which case, you deserve what you get.", " -- Professor Cheng Man-ch'ing" ], "Hello!", [ 0, 1, 2, 3, 4, 5, - 1, 2, 3, 4, 5, 6, - 2, 3, 4, 5, 6, 7, - 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9 ], + %s 1, 2, 3, 4, 5, 6, + %s 2, 3, 4, 5, 6, 7, + %s 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9 ], 0, [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 109 }, - { + (1) { 1, [ "A fight is a contract that takes two people to honor.", "A combative stance means that you've accepted the contract.", "In which case, you deserve what you get.", " -- Professor Cheng Man-ch'ing" ], "Hello!", [ 1, 2, 3, 4, 5, 6, - 2, 3, 4, 5, 6, 7, - 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10 ], + %s 2, 3, 4, 5, 6, 7, + %s 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10 ], 0.96, [ 1024.96, 1024.96, 1024.96, 1024.96, 1024.96, 1024.96, 1024.96, 1024.96, 1024.96, 1024.96 ], 109 }, - { + (2) { 2, [ "A fight is a contract that takes two people to honor.", "A combative stance means that you've accepted the contract.", "In which case, you deserve what you get.", " -- Professor Cheng Man-ch'ing" ], "Hello!", [ 2, 3, 4, 5, 6, 7, - 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11 ], + %s 3, 4, 5, 6, 7, 8, + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11 ], 1.92, [ 2049.93, 2049.93, 2049.93, 2049.93, 2049.93, 2049.93, 2049.93, 2049.93, 2049.93, 2049.93 ], 109 }, - { + (3) { 3, [ "A fight is a contract that takes two people to honor.", "A combative stance means that you've accepted the contract.", "In which case, you deserve what you get.", " -- Professor Cheng Man-ch'ing" ], "Hello!", [ 3, 4, 5, 6, 7, 8, - 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12 ], + %s 4, 5, 6, 7, 8, 9, + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12 ], 2.88, [ 3074.89, 3074.89, 3074.89, 3074.89, 3074.89, 3074.89, 3074.89, 3074.89, 3074.89, 3074.89 ], 109 }, - { + (4) { 4, [ "A fight is a contract that takes two people to honor.", "A combative stance means that you've accepted the contract.", "In which case, you deserve what you get.", " -- Professor Cheng Man-ch'ing" ], "Hello!", [ 4, 5, 6, 7, 8, 9, - 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13 ], + %s 5, 6, 7, 8, 9, 10, + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13 ], 3.84, [ 4099.85, 4099.85, 4099.85, 4099.85, 4099.85, 4099.85, 4099.85, 4099.85, 4099.85, 4099.85 ], 109 }, - { + (5) { 5, [ "A fight is a contract that takes two people to honor.", "A combative stance means that you've accepted the contract.", "In which case, you deserve what you get.", " -- Professor Cheng Man-ch'ing" ], "Hello!", [ 5, 6, 7, 8, 9, 10, - 6, 7, 8, 9, 10, 11, - 7, 8, 9, 10, 11, 12, - 8, 9, 10, 11, 12, 13, - 9, 10, 11, 12, 13, 14 ], + %s 6, 7, 8, 9, 10, 11, + %s 7, 8, 9, 10, 11, 12, + %s 8, 9, 10, 11, 12, 13, + %s 9, 10, 11, 12, 13, 14 ], 4.8, [ 5124.82, 5124.82, 5124.82, 5124.82, 5124.82, 5124.82, 5124.82, 5124.82, 5124.82, 5124.82 ], 109 diff --git a/tools/testfiles/tcontents.ddl b/tools/testfiles/tcontents.ddl new file mode 100644 index 0000000..2d7ad18 --- /dev/null +++ b/tools/testfiles/tcontents.ddl @@ -0,0 +1,26 @@ +############################# +Expected output for 'h5dump -n tfilters.h5' +############################# +HDF5 "tfilters.h5" { +FILE_CONTENTS { + dataset /all + dataset /bitfield + dataset /char + dataset /compact + dataset /contiguous + dataset /deflate + dataset /enum + dataset /external + dataset /fill early + dataset /fill ifset + dataset /fill never + dataset /fletcher32 + datatype /my type + dataset /myfilter + datatype /myvlen + dataset /reference + dataset /shuffle + dataset /string + dataset /vlen + } +} diff --git a/tools/testfiles/tdset-1.ddl b/tools/testfiles/tdset-1.ddl index 68dc8a8..9154436 100644 --- a/tools/testfiles/tdset-1.ddl +++ b/tools/testfiles/tdset-1.ddl @@ -7,119 +7,122 @@ GROUP "/" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 10, 20 ) / ( 10, 20 ) } DATA { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28 + (0,0) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + (0,19) 19, + (1,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + (1,19) 20, + (2,0) 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + (2,18) 20, 21, + (3,0) 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + (3,18) 21, 22, + (4,0) 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + (4,18) 22, 23, + (5,0) 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + (5,18) 23, 24, + (6,0) 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + (6,17) 23, 24, 25, + (7,0) 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + (7,17) 24, 25, 26, + (8,0) 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + (8,17) 25, 26, 27, + (9,0) 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + (9,17) 26, 27, 28 } } DATASET "dset2" { DATATYPE H5T_IEEE_F64BE DATASPACE SIMPLE { ( 30, 20 ) / ( 30, 20 ) } DATA { - 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007, 0.0008, - 0.0009, 0.001, 0.0011, 0.0012, 0.0013, 0.0014, 0.0015, 0.0016, 0.0017, - 0.0018, 0.0019, - 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007, 1.0008, - 1.0009, 1.001, 1.0011, 1.0012, 1.0013, 1.0014, 1.0015, 1.0016, 1.0017, - 1.0018, 1.0019, - 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007, 2.0008, - 2.0009, 2.001, 2.0011, 2.0012, 2.0013, 2.0014, 2.0015, 2.0016, 2.0017, - 2.0018, 2.0019, - 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007, 3.0008, - 3.0009, 3.001, 3.0011, 3.0012, 3.0013, 3.0014, 3.0015, 3.0016, 3.0017, - 3.0018, 3.0019, - 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007, 4.0008, - 4.0009, 4.001, 4.0011, 4.0012, 4.0013, 4.0014, 4.0015, 4.0016, 4.0017, - 4.0018, 4.0019, - 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007, 5.0008, - 5.0009, 5.001, 5.0011, 5.0012, 5.0013, 5.0014, 5.0015, 5.0016, 5.0017, - 5.0018, 5.0019, - 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007, 6.0008, - 6.0009, 6.001, 6.0011, 6.0012, 6.0013, 6.0014, 6.0015, 6.0016, 6.0017, - 6.0018, 6.0019, - 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007, 7.0008, - 7.0009, 7.001, 7.0011, 7.0012, 7.0013, 7.0014, 7.0015, 7.0016, 7.0017, - 7.0018, 7.0019, - 8, 8.0001, 8.0002, 8.0003, 8.0004, 8.0005, 8.0006, 8.0007, 8.0008, - 8.0009, 8.001, 8.0011, 8.0012, 8.0013, 8.0014, 8.0015, 8.0016, 8.0017, - 8.0018, 8.0019, - 9, 9.0001, 9.0002, 9.0003, 9.0004, 9.0005, 9.0006, 9.0007, 9.0008, - 9.0009, 9.001, 9.0011, 9.0012, 9.0013, 9.0014, 9.0015, 9.0016, 9.0017, - 9.0018, 9.0019, - 10, 10.0001, 10.0002, 10.0003, 10.0004, 10.0005, 10.0006, 10.0007, - 10.0008, 10.0009, 10.001, 10.0011, 10.0012, 10.0013, 10.0014, 10.0015, - 10.0016, 10.0017, 10.0018, 10.0019, - 11, 11.0001, 11.0002, 11.0003, 11.0004, 11.0005, 11.0006, 11.0007, - 11.0008, 11.0009, 11.001, 11.0011, 11.0012, 11.0013, 11.0014, 11.0015, - 11.0016, 11.0017, 11.0018, 11.0019, - 12, 12.0001, 12.0002, 12.0003, 12.0004, 12.0005, 12.0006, 12.0007, - 12.0008, 12.0009, 12.001, 12.0011, 12.0012, 12.0013, 12.0014, 12.0015, - 12.0016, 12.0017, 12.0018, 12.0019, - 13, 13.0001, 13.0002, 13.0003, 13.0004, 13.0005, 13.0006, 13.0007, - 13.0008, 13.0009, 13.001, 13.0011, 13.0012, 13.0013, 13.0014, 13.0015, - 13.0016, 13.0017, 13.0018, 13.0019, - 14, 14.0001, 14.0002, 14.0003, 14.0004, 14.0005, 14.0006, 14.0007, - 14.0008, 14.0009, 14.001, 14.0011, 14.0012, 14.0013, 14.0014, 14.0015, - 14.0016, 14.0017, 14.0018, 14.0019, - 15, 15.0001, 15.0002, 15.0003, 15.0004, 15.0005, 15.0006, 15.0007, - 15.0008, 15.0009, 15.001, 15.0011, 15.0012, 15.0013, 15.0014, 15.0015, - 15.0016, 15.0017, 15.0018, 15.0019, - 16, 16.0001, 16.0002, 16.0003, 16.0004, 16.0005, 16.0006, 16.0007, - 16.0008, 16.0009, 16.001, 16.0011, 16.0012, 16.0013, 16.0014, 16.0015, - 16.0016, 16.0017, 16.0018, 16.0019, - 17, 17.0001, 17.0002, 17.0003, 17.0004, 17.0005, 17.0006, 17.0007, - 17.0008, 17.0009, 17.001, 17.0011, 17.0012, 17.0013, 17.0014, 17.0015, - 17.0016, 17.0017, 17.0018, 17.0019, - 18, 18.0001, 18.0002, 18.0003, 18.0004, 18.0005, 18.0006, 18.0007, - 18.0008, 18.0009, 18.001, 18.0011, 18.0012, 18.0013, 18.0014, 18.0015, - 18.0016, 18.0017, 18.0018, 18.0019, - 19, 19.0001, 19.0002, 19.0003, 19.0004, 19.0005, 19.0006, 19.0007, - 19.0008, 19.0009, 19.001, 19.0011, 19.0012, 19.0013, 19.0014, 19.0015, - 19.0016, 19.0017, 19.0018, 19.0019, - 20, 20.0001, 20.0002, 20.0003, 20.0004, 20.0005, 20.0006, 20.0007, - 20.0008, 20.0009, 20.001, 20.0011, 20.0012, 20.0013, 20.0014, 20.0015, - 20.0016, 20.0017, 20.0018, 20.0019, - 21, 21.0001, 21.0002, 21.0003, 21.0004, 21.0005, 21.0006, 21.0007, - 21.0008, 21.0009, 21.001, 21.0011, 21.0012, 21.0013, 21.0014, 21.0015, - 21.0016, 21.0017, 21.0018, 21.0019, - 22, 22.0001, 22.0002, 22.0003, 22.0004, 22.0005, 22.0006, 22.0007, - 22.0008, 22.0009, 22.001, 22.0011, 22.0012, 22.0013, 22.0014, 22.0015, - 22.0016, 22.0017, 22.0018, 22.0019, - 23, 23.0001, 23.0002, 23.0003, 23.0004, 23.0005, 23.0006, 23.0007, - 23.0008, 23.0009, 23.001, 23.0011, 23.0012, 23.0013, 23.0014, 23.0015, - 23.0016, 23.0017, 23.0018, 23.0019, - 24, 24.0001, 24.0002, 24.0003, 24.0004, 24.0005, 24.0006, 24.0007, - 24.0008, 24.0009, 24.001, 24.0011, 24.0012, 24.0013, 24.0014, 24.0015, - 24.0016, 24.0017, 24.0018, 24.0019, - 25, 25.0001, 25.0002, 25.0003, 25.0004, 25.0005, 25.0006, 25.0007, - 25.0008, 25.0009, 25.001, 25.0011, 25.0012, 25.0013, 25.0014, 25.0015, - 25.0016, 25.0017, 25.0018, 25.0019, - 26, 26.0001, 26.0002, 26.0003, 26.0004, 26.0005, 26.0006, 26.0007, - 26.0008, 26.0009, 26.001, 26.0011, 26.0012, 26.0013, 26.0014, 26.0015, - 26.0016, 26.0017, 26.0018, 26.0019, - 27, 27.0001, 27.0002, 27.0003, 27.0004, 27.0005, 27.0006, 27.0007, - 27.0008, 27.0009, 27.001, 27.0011, 27.0012, 27.0013, 27.0014, 27.0015, - 27.0016, 27.0017, 27.0018, 27.0019, - 28, 28.0001, 28.0002, 28.0003, 28.0004, 28.0005, 28.0006, 28.0007, - 28.0008, 28.0009, 28.001, 28.0011, 28.0012, 28.0013, 28.0014, 28.0015, - 28.0016, 28.0017, 28.0018, 28.0019, - 29, 29.0001, 29.0002, 29.0003, 29.0004, 29.0005, 29.0006, 29.0007, - 29.0008, 29.0009, 29.001, 29.0011, 29.0012, 29.0013, 29.0014, 29.0015, - 29.0016, 29.0017, 29.0018, 29.0019 + (0,0) 0, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007, 0.0008, + (0,9) 0.0009, 0.001, 0.0011, 0.0012, 0.0013, 0.0014, 0.0015, 0.0016, + (0,17) 0.0017, 0.0018, 0.0019, + (1,0) 1, 1.0001, 1.0002, 1.0003, 1.0004, 1.0005, 1.0006, 1.0007, 1.0008, + (1,9) 1.0009, 1.001, 1.0011, 1.0012, 1.0013, 1.0014, 1.0015, 1.0016, + (1,17) 1.0017, 1.0018, 1.0019, + (2,0) 2, 2.0001, 2.0002, 2.0003, 2.0004, 2.0005, 2.0006, 2.0007, 2.0008, + (2,9) 2.0009, 2.001, 2.0011, 2.0012, 2.0013, 2.0014, 2.0015, 2.0016, + (2,17) 2.0017, 2.0018, 2.0019, + (3,0) 3, 3.0001, 3.0002, 3.0003, 3.0004, 3.0005, 3.0006, 3.0007, 3.0008, + (3,9) 3.0009, 3.001, 3.0011, 3.0012, 3.0013, 3.0014, 3.0015, 3.0016, + (3,17) 3.0017, 3.0018, 3.0019, + (4,0) 4, 4.0001, 4.0002, 4.0003, 4.0004, 4.0005, 4.0006, 4.0007, 4.0008, + (4,9) 4.0009, 4.001, 4.0011, 4.0012, 4.0013, 4.0014, 4.0015, 4.0016, + (4,17) 4.0017, 4.0018, 4.0019, + (5,0) 5, 5.0001, 5.0002, 5.0003, 5.0004, 5.0005, 5.0006, 5.0007, 5.0008, + (5,9) 5.0009, 5.001, 5.0011, 5.0012, 5.0013, 5.0014, 5.0015, 5.0016, + (5,17) 5.0017, 5.0018, 5.0019, + (6,0) 6, 6.0001, 6.0002, 6.0003, 6.0004, 6.0005, 6.0006, 6.0007, 6.0008, + (6,9) 6.0009, 6.001, 6.0011, 6.0012, 6.0013, 6.0014, 6.0015, 6.0016, + (6,17) 6.0017, 6.0018, 6.0019, + (7,0) 7, 7.0001, 7.0002, 7.0003, 7.0004, 7.0005, 7.0006, 7.0007, 7.0008, + (7,9) 7.0009, 7.001, 7.0011, 7.0012, 7.0013, 7.0014, 7.0015, 7.0016, + (7,17) 7.0017, 7.0018, 7.0019, + (8,0) 8, 8.0001, 8.0002, 8.0003, 8.0004, 8.0005, 8.0006, 8.0007, 8.0008, + (8,9) 8.0009, 8.001, 8.0011, 8.0012, 8.0013, 8.0014, 8.0015, 8.0016, + (8,17) 8.0017, 8.0018, 8.0019, + (9,0) 9, 9.0001, 9.0002, 9.0003, 9.0004, 9.0005, 9.0006, 9.0007, 9.0008, + (9,9) 9.0009, 9.001, 9.0011, 9.0012, 9.0013, 9.0014, 9.0015, 9.0016, + (9,17) 9.0017, 9.0018, 9.0019, + (10,0) 10, 10.0001, 10.0002, 10.0003, 10.0004, 10.0005, 10.0006, + (10,7) 10.0007, 10.0008, 10.0009, 10.001, 10.0011, 10.0012, 10.0013, + (10,14) 10.0014, 10.0015, 10.0016, 10.0017, 10.0018, 10.0019, + (11,0) 11, 11.0001, 11.0002, 11.0003, 11.0004, 11.0005, 11.0006, + (11,7) 11.0007, 11.0008, 11.0009, 11.001, 11.0011, 11.0012, 11.0013, + (11,14) 11.0014, 11.0015, 11.0016, 11.0017, 11.0018, 11.0019, + (12,0) 12, 12.0001, 12.0002, 12.0003, 12.0004, 12.0005, 12.0006, + (12,7) 12.0007, 12.0008, 12.0009, 12.001, 12.0011, 12.0012, 12.0013, + (12,14) 12.0014, 12.0015, 12.0016, 12.0017, 12.0018, 12.0019, + (13,0) 13, 13.0001, 13.0002, 13.0003, 13.0004, 13.0005, 13.0006, + (13,7) 13.0007, 13.0008, 13.0009, 13.001, 13.0011, 13.0012, 13.0013, + (13,14) 13.0014, 13.0015, 13.0016, 13.0017, 13.0018, 13.0019, + (14,0) 14, 14.0001, 14.0002, 14.0003, 14.0004, 14.0005, 14.0006, + (14,7) 14.0007, 14.0008, 14.0009, 14.001, 14.0011, 14.0012, 14.0013, + (14,14) 14.0014, 14.0015, 14.0016, 14.0017, 14.0018, 14.0019, + (15,0) 15, 15.0001, 15.0002, 15.0003, 15.0004, 15.0005, 15.0006, + (15,7) 15.0007, 15.0008, 15.0009, 15.001, 15.0011, 15.0012, 15.0013, + (15,14) 15.0014, 15.0015, 15.0016, 15.0017, 15.0018, 15.0019, + (16,0) 16, 16.0001, 16.0002, 16.0003, 16.0004, 16.0005, 16.0006, + (16,7) 16.0007, 16.0008, 16.0009, 16.001, 16.0011, 16.0012, 16.0013, + (16,14) 16.0014, 16.0015, 16.0016, 16.0017, 16.0018, 16.0019, + (17,0) 17, 17.0001, 17.0002, 17.0003, 17.0004, 17.0005, 17.0006, + (17,7) 17.0007, 17.0008, 17.0009, 17.001, 17.0011, 17.0012, 17.0013, + (17,14) 17.0014, 17.0015, 17.0016, 17.0017, 17.0018, 17.0019, + (18,0) 18, 18.0001, 18.0002, 18.0003, 18.0004, 18.0005, 18.0006, + (18,7) 18.0007, 18.0008, 18.0009, 18.001, 18.0011, 18.0012, 18.0013, + (18,14) 18.0014, 18.0015, 18.0016, 18.0017, 18.0018, 18.0019, + (19,0) 19, 19.0001, 19.0002, 19.0003, 19.0004, 19.0005, 19.0006, + (19,7) 19.0007, 19.0008, 19.0009, 19.001, 19.0011, 19.0012, 19.0013, + (19,14) 19.0014, 19.0015, 19.0016, 19.0017, 19.0018, 19.0019, + (20,0) 20, 20.0001, 20.0002, 20.0003, 20.0004, 20.0005, 20.0006, + (20,7) 20.0007, 20.0008, 20.0009, 20.001, 20.0011, 20.0012, 20.0013, + (20,14) 20.0014, 20.0015, 20.0016, 20.0017, 20.0018, 20.0019, + (21,0) 21, 21.0001, 21.0002, 21.0003, 21.0004, 21.0005, 21.0006, + (21,7) 21.0007, 21.0008, 21.0009, 21.001, 21.0011, 21.0012, 21.0013, + (21,14) 21.0014, 21.0015, 21.0016, 21.0017, 21.0018, 21.0019, + (22,0) 22, 22.0001, 22.0002, 22.0003, 22.0004, 22.0005, 22.0006, + (22,7) 22.0007, 22.0008, 22.0009, 22.001, 22.0011, 22.0012, 22.0013, + (22,14) 22.0014, 22.0015, 22.0016, 22.0017, 22.0018, 22.0019, + (23,0) 23, 23.0001, 23.0002, 23.0003, 23.0004, 23.0005, 23.0006, + (23,7) 23.0007, 23.0008, 23.0009, 23.001, 23.0011, 23.0012, 23.0013, + (23,14) 23.0014, 23.0015, 23.0016, 23.0017, 23.0018, 23.0019, + (24,0) 24, 24.0001, 24.0002, 24.0003, 24.0004, 24.0005, 24.0006, + (24,7) 24.0007, 24.0008, 24.0009, 24.001, 24.0011, 24.0012, 24.0013, + (24,14) 24.0014, 24.0015, 24.0016, 24.0017, 24.0018, 24.0019, + (25,0) 25, 25.0001, 25.0002, 25.0003, 25.0004, 25.0005, 25.0006, + (25,7) 25.0007, 25.0008, 25.0009, 25.001, 25.0011, 25.0012, 25.0013, + (25,14) 25.0014, 25.0015, 25.0016, 25.0017, 25.0018, 25.0019, + (26,0) 26, 26.0001, 26.0002, 26.0003, 26.0004, 26.0005, 26.0006, + (26,7) 26.0007, 26.0008, 26.0009, 26.001, 26.0011, 26.0012, 26.0013, + (26,14) 26.0014, 26.0015, 26.0016, 26.0017, 26.0018, 26.0019, + (27,0) 27, 27.0001, 27.0002, 27.0003, 27.0004, 27.0005, 27.0006, + (27,7) 27.0007, 27.0008, 27.0009, 27.001, 27.0011, 27.0012, 27.0013, + (27,14) 27.0014, 27.0015, 27.0016, 27.0017, 27.0018, 27.0019, + (28,0) 28, 28.0001, 28.0002, 28.0003, 28.0004, 28.0005, 28.0006, + (28,7) 28.0007, 28.0008, 28.0009, 28.001, 28.0011, 28.0012, 28.0013, + (28,14) 28.0014, 28.0015, 28.0016, 28.0017, 28.0018, 28.0019, + (29,0) 29, 29.0001, 29.0002, 29.0003, 29.0004, 29.0005, 29.0006, + (29,7) 29.0007, 29.0008, 29.0009, 29.001, 29.0011, 29.0012, 29.0013, + (29,14) 29.0014, 29.0015, 29.0016, 29.0017, 29.0018, 29.0019 } } DATASET "dset3" { diff --git a/tools/testfiles/tdset-2.ddl b/tools/testfiles/tdset-2.ddl index 0ddcb33..3d75089 100644 --- a/tools/testfiles/tdset-2.ddl +++ b/tools/testfiles/tdset-2.ddl @@ -1,5 +1,5 @@ ############################# -Expected output for 'h5dump -H -d dset1 -d /dset2 -d dset3 --dataset=dset4 tdset.h5' +Expected output for 'h5dump -H -d dset1 -d /dset2 --dataset=dset3 tdset.h5' ############################# HDF5 "tdset.h5" { DATASET "dset1" { @@ -14,7 +14,4 @@ DATASET "dset3" { DATATYPE H5T_STD_I32BE DATASPACE NULL } -DATASET "dset4" { - } } -h5dump error: unable to open dataset "dset4" diff --git a/tools/testfiles/tdset-3s.ddl b/tools/testfiles/tdset-3s.ddl index 00a21b6..eddb946 100644 --- a/tools/testfiles/tdset-3s.ddl +++ b/tools/testfiles/tdset-3s.ddl @@ -11,16 +11,16 @@ DATASET "/dset1" { COUNT ( 9, 19 ); BLOCK ( 1, 1 ); DATA { - 2, 3, 4, 5, 6, 7, 8, 9, 10, 3, 4, 5, 6, 7, 8, 9, 10, 11, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 5, 6, 7, 8, 9, 10, 11, 12, 13, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 7, 8, 9, 10, 11, 12, 13, 14, 15, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 9, 10, 11, 12, 13, 14, 15, 16, 17, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 11, 12, 13, 14, 15, 16, 17, 18, 19, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 13, 14, 15, 16, 17, 18, 19, 20, 21, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 15, 16, 17, 18, 19, 20, 21, 22, 23, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23, 24, 25, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 19, 20, 21, 22, 23, 24, 25, 26, 27, 20, 21, 22, 23, 24, - 25, 26, 27, 28 + (0,0) 2, 3, 4, 5, 6, 7, 8, 9, 10, 3, 4, 5, 6, 7, 8, 9, 10, 11, 4, 5, + (0,2) 6, 7, 8, 9, 10, 11, 12, 5, 6, 7, 8, 9, 10, 11, 12, 13, 6, 7, 8, 9, + (0,4) 10, 11, 12, 13, 14, 7, 8, 9, 10, 11, 12, 13, 14, 15, 8, 9, 10, 11, + (0,4) 12, 13, 14, 15, 16, 9, 10, 11, 12, 13, 14, 15, 16, 17, 10, 11, 12, + (0,3) 13, 14, 15, 16, 17, 18, 11, 12, 13, 14, 15, 16, 17, 18, 19, 12, + (0,1) 13, 14, 15, 16, 17, 18, 19, 20, 13, 14, 15, 16, 17, 18, 19, 20, + (0,8) 21, 14, 15, 16, 17, 18, 19, 20, 21, 22, 15, 16, 17, 18, 19, 20, + (0,6) 21, 22, 23, 16, 17, 18, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, + (0,4) 21, 22, 23, 24, 25, 18, 19, 20, 21, 22, 23, 24, 25, 26, 19, 20, + (0,2) 21, 22, 23, 24, 25, 26, 27, 20, 21, 22, 23, 24, 25, 26, 27, 28 } } } diff --git a/tools/testfiles/tdset2-1s.ddl b/tools/testfiles/tdset2-1s.ddl index c3dcc61..fec7b4f 100644 --- a/tools/testfiles/tdset2-1s.ddl +++ b/tools/testfiles/tdset2-1s.ddl @@ -11,10 +11,10 @@ DATASET "/dset1" { COUNT ( 4, 4 ); BLOCK ( 1, 4 ); DATA { - 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 2, 3, 4, 5, - 2, 3, 4, 5, 2, 3, 4, 5, 2, 3, 4, 5, 4, 5, 6, 7, 4, 5, 6, 7, - 4, 5, 6, 7, 4, 5, 6, 7, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9, - 6, 7, 8, 9 + (0,0) 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 2, 3, 4, 5, + (0,4) 2, 3, 4, 5, 2, 3, 4, 5, 2, 3, 4, 5, 4, 5, 6, 7, 4, 5, 6, 7, + (0,8) 4, 5, 6, 7, 4, 5, 6, 7, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9, + (0,12) 6, 7, 8, 9 } } } diff --git a/tools/testfiles/tempty.ddl b/tools/testfiles/tempty.ddl index 260ca9d..5c338a0 100644 --- a/tools/testfiles/tempty.ddl +++ b/tools/testfiles/tempty.ddl @@ -7,28 +7,28 @@ GROUP "/" { DATATYPE H5T_VLEN { H5T_STD_I32LE} DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - (), (), (), () + (0) (), (), (), () } } DATASET "Dataset2.0" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - 0, 0, 0, 0 + (0) 0, 0, 0, 0 } } DATASET "Dataset3.0" { DATATYPE H5T_IEEE_F32LE DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - 0, 0, 0, 0 + (0) 0, 0, 0, 0 } } DATASET "Dataset4.0" { DATATYPE H5T_ARRAY { [4] H5T_STD_I32LE } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] + (0) [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] } } DATASET "Dataset5.0" { @@ -39,22 +39,22 @@ GROUP "/" { } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - { + (0) { 0, 0, 0 }, - { + (1) { 0, 0, 0 }, - { + (2) { 0, 0, 0 }, - { + (3) { 0, 0, 0 diff --git a/tools/testfiles/tfamily.ddl b/tools/testfiles/tfamily.ddl index 2274cfe..6f80838 100644 --- a/tools/testfiles/tfamily.ddl +++ b/tools/testfiles/tfamily.ddl @@ -7,16 +7,16 @@ GROUP "/" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 10, 15 ) / ( 10, 15 ) } DATA { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 + (0,0) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + (1,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + (2,0) 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + (3,0) 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (4,0) 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + (5,0) 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + (6,0) 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + (7,0) 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + (8,0) 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + (9,0) 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 } } } diff --git a/tools/testfiles/tfilters.h5 b/tools/testfiles/tfilters.h5 Binary files differnew file mode 100644 index 0000000..51a9bef --- /dev/null +++ b/tools/testfiles/tfilters.h5 diff --git a/tools/testfiles/thlink-1.ddl b/tools/testfiles/thlink-1.ddl index 53c9dd6..6603f32 100644 --- a/tools/testfiles/thlink-1.ddl +++ b/tools/testfiles/thlink-1.ddl @@ -7,21 +7,21 @@ GROUP "/" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 0, 1, 2, 3, 4 + (0) 0, 1, 2, 3, 4 } } GROUP "g1" { DATASET "dset2" { - HARDLINK "/dset1" + HARDLINK "/g2/dset1" } GROUP "g1.1" { DATASET "dset3" { - HARDLINK "/dset1" + HARDLINK "/g2/dset1" } } } GROUP "g2" { - HARDLINK "/g1/g1.1" + HARDLINK "/g2/g1/g1.1" } } } diff --git a/tools/testfiles/thlink-2.ddl b/tools/testfiles/thlink-2.ddl index 0470423..1edc0b2 100644 --- a/tools/testfiles/thlink-2.ddl +++ b/tools/testfiles/thlink-2.ddl @@ -6,7 +6,7 @@ DATASET "/g1/dset2" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 0, 1, 2, 3, 4 + (0) 0, 1, 2, 3, 4 } } DATASET "/dset1" { diff --git a/tools/testfiles/thlink-3.ddl b/tools/testfiles/thlink-3.ddl index eaa89f7..c3e8ad8 100644 --- a/tools/testfiles/thlink-3.ddl +++ b/tools/testfiles/thlink-3.ddl @@ -6,7 +6,7 @@ DATASET "/g1/g1.1/dset3" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 0, 1, 2, 3, 4 + (0) 0, 1, 2, 3, 4 } } DATASET "/g1/dset2" { diff --git a/tools/testfiles/thlink-4.ddl b/tools/testfiles/thlink-4.ddl index 01ae7dc..ec063df 100644 --- a/tools/testfiles/thlink-4.ddl +++ b/tools/testfiles/thlink-4.ddl @@ -7,7 +7,7 @@ GROUP "/g1" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 0, 1, 2, 3, 4 + (0) 0, 1, 2, 3, 4 } } GROUP "g1.1" { diff --git a/tools/testfiles/thlink-5.ddl b/tools/testfiles/thlink-5.ddl index be088d2..3ef4176 100644 --- a/tools/testfiles/thlink-5.ddl +++ b/tools/testfiles/thlink-5.ddl @@ -6,7 +6,7 @@ DATASET "/dset1" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 0, 1, 2, 3, 4 + (0) 0, 1, 2, 3, 4 } } GROUP "/g2" { diff --git a/tools/testfiles/tlarge_objname.ddl b/tools/testfiles/tlarge_objname.ddl index 0bbaa09..d3f0fbe 100644 --- a/tools/testfiles/tlarge_objname.ddl +++ b/tools/testfiles/tlarge_objname.ddl @@ -5,104 +5,104 @@ HDF5 "tlarge_objname.h5" { GROUP "/" { GROUP "this_is_a_large_group_name" { GROUP "this_is_a_large_group_name0" { - GROUP "this_is_a_large_group_name1" { - GROUP "this_is_a_large_group_name2" { - GROUP "this_is_a_large_group_name3" { - GROUP "this_is_a_large_group_name4" { - GROUP "this_is_a_large_group_name5" { - GROUP "this_is_a_large_group_name6" { - GROUP "this_is_a_large_group_name7" { - GROUP "this_is_a_large_group_name8" { - GROUP "this_is_a_large_group_name9" { - GROUP "this_is_a_large_group_name10" { - GROUP "this_is_a_large_group_name11" { - GROUP "this_is_a_large_group_name12" { - GROUP "this_is_a_large_group_name13" { - GROUP "this_is_a_large_group_name14" { - GROUP "this_is_a_large_group_name15" { - GROUP "this_is_a_large_group_name16" { - GROUP "this_is_a_large_group_name17" { - GROUP "this_is_a_large_group_name18" { - GROUP "this_is_a_large_group_name19" { - GROUP "this_is_a_large_group_name20" { - GROUP "this_is_a_large_group_name21" { - GROUP "this_is_a_large_group_name22" { - GROUP "this_is_a_large_group_name23" { - GROUP "this_is_a_large_group_name24" { - GROUP "this_is_a_large_group_name25" { - GROUP "this_is_a_large_group_name26" { - GROUP "this_is_a_large_group_name27" { - GROUP "this_is_a_large_group_name28" { - GROUP "this_is_a_large_group_name29" { - GROUP "this_is_a_large_group_name30" { - GROUP "this_is_a_large_group_name31" { - GROUP "this_is_a_large_group_name32" { - GROUP "this_is_a_large_group_name33" { - GROUP "this_is_a_large_group_name34" { - GROUP "this_is_a_large_group_name35" { - GROUP "this_is_a_large_group_name36" { - GROUP "this_is_a_large_group_name37" { - GROUP "this_is_a_large_group_name38" { - GROUP "this_is_a_large_group_name39" { - GROUP "this_is_a_large_group_name40" { - GROUP "this_is_a_large_group_name41" { - GROUP "this_is_a_large_group_name42" { - GROUP "this_is_a_large_group_name43" { - GROUP "this_is_a_large_group_name44" { - GROUP "this_is_a_large_group_name45" { - GROUP "this_is_a_large_group_name46" { - GROUP "this_is_a_large_group_name47" { - GROUP "this_is_a_large_group_name48" { - GROUP "this_is_a_large_group_name49" { - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } + } + GROUP "this_is_a_large_group_name1" { + } + GROUP "this_is_a_large_group_name10" { + } + GROUP "this_is_a_large_group_name11" { + } + GROUP "this_is_a_large_group_name12" { + } + GROUP "this_is_a_large_group_name13" { + } + GROUP "this_is_a_large_group_name14" { + } + GROUP "this_is_a_large_group_name15" { + } + GROUP "this_is_a_large_group_name16" { + } + GROUP "this_is_a_large_group_name17" { + } + GROUP "this_is_a_large_group_name18" { + } + GROUP "this_is_a_large_group_name19" { + } + GROUP "this_is_a_large_group_name2" { + } + GROUP "this_is_a_large_group_name20" { + } + GROUP "this_is_a_large_group_name21" { + } + GROUP "this_is_a_large_group_name22" { + } + GROUP "this_is_a_large_group_name23" { + } + GROUP "this_is_a_large_group_name24" { + } + GROUP "this_is_a_large_group_name25" { + } + GROUP "this_is_a_large_group_name26" { + } + GROUP "this_is_a_large_group_name27" { + } + GROUP "this_is_a_large_group_name28" { + } + GROUP "this_is_a_large_group_name29" { + } + GROUP "this_is_a_large_group_name3" { + } + GROUP "this_is_a_large_group_name30" { + } + GROUP "this_is_a_large_group_name31" { + } + GROUP "this_is_a_large_group_name32" { + } + GROUP "this_is_a_large_group_name33" { + } + GROUP "this_is_a_large_group_name34" { + } + GROUP "this_is_a_large_group_name35" { + } + GROUP "this_is_a_large_group_name36" { + } + GROUP "this_is_a_large_group_name37" { + } + GROUP "this_is_a_large_group_name38" { + } + GROUP "this_is_a_large_group_name39" { + } + GROUP "this_is_a_large_group_name4" { + } + GROUP "this_is_a_large_group_name40" { + } + GROUP "this_is_a_large_group_name41" { + } + GROUP "this_is_a_large_group_name42" { + } + GROUP "this_is_a_large_group_name43" { + } + GROUP "this_is_a_large_group_name44" { + } + GROUP "this_is_a_large_group_name45" { + } + GROUP "this_is_a_large_group_name46" { + } + GROUP "this_is_a_large_group_name47" { + } + GROUP "this_is_a_large_group_name48" { + } + GROUP "this_is_a_large_group_name49" { + } + GROUP "this_is_a_large_group_name5" { + } + GROUP "this_is_a_large_group_name6" { + } + GROUP "this_is_a_large_group_name7" { + } + GROUP "this_is_a_large_group_name8" { + } + GROUP "this_is_a_large_group_name9" { } } } diff --git a/tools/testfiles/tlarge_objname.h5 b/tools/testfiles/tlarge_objname.h5 Binary files differindex b6fc299..0c59387 100644 --- a/tools/testfiles/tlarge_objname.h5 +++ b/tools/testfiles/tlarge_objname.h5 diff --git a/tools/testfiles/tloop-1.ddl b/tools/testfiles/tloop-1.ddl index 8313887..c3d842a 100644 --- a/tools/testfiles/tloop-1.ddl +++ b/tools/testfiles/tloop-1.ddl @@ -6,12 +6,12 @@ GROUP "/" { GROUP "g1" { GROUP "g1.1" { GROUP "g2.1" { - HARDLINK "/g1" + HARDLINK "/g2/g1" } } } GROUP "g2" { - HARDLINK "/g1/g1.1" + HARDLINK "/g2/g1/g1.1" } } } diff --git a/tools/testfiles/tmulti.ddl b/tools/testfiles/tmulti.ddl index dbdcaf1..4a41092 100644 --- a/tools/testfiles/tmulti.ddl +++ b/tools/testfiles/tmulti.ddl @@ -7,16 +7,16 @@ GROUP "/" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 10, 15 ) / ( 10, 15 ) } DATA { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 + (0,0) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + (1,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + (2,0) 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + (3,0) 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (4,0) 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + (5,0) 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + (6,0) 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + (7,0) 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + (8,0) 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + (9,0) 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 } } } diff --git a/tools/testfiles/tnestcomp-1.ddl b/tools/testfiles/tnestcomp-1.ddl index 3857b49..ed3b0e7 100644 --- a/tools/testfiles/tnestcomp-1.ddl +++ b/tools/testfiles/tnestcomp-1.ddl @@ -20,7 +20,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - { + (0) { 0, 0, 1, @@ -29,7 +29,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (1) { 1, 1, 0.5, @@ -38,7 +38,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (2) { 2, 4, 0.333333, @@ -47,7 +47,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (3) { 3, 9, 0.25, @@ -56,7 +56,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (4) { 4, 16, 0.2, @@ -65,7 +65,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (5) { 5, 25, 0.166667, @@ -74,7 +74,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (6) { 6, 36, 0.142857, @@ -83,7 +83,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (7) { 7, 49, 0.125, @@ -92,7 +92,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (8) { 8, 64, 0.111111, @@ -101,7 +101,7 @@ GROUP "/" { [ -100, 100 ] } }, - { + (9) { 9, 81, 0.1, diff --git a/tools/testfiles/tnofilename.ddl b/tools/testfiles/tnofilename.ddl index e4fd1dd..5e9dcaa 100644 --- a/tools/testfiles/tnofilename.ddl +++ b/tools/testfiles/tnofilename.ddl @@ -4,6 +4,7 @@ Expected output for 'h5dump ' usage: h5dump [OPTIONS] file OPTIONS -h, --help Print a usage message and exit + -n, --contents Print a list of the file contents and exit -B, --bootblock Print the content of the boot block -H, --header Print the header only; no data is displayed -A Print the header and value of attributes; data of datasets is not displayed @@ -12,6 +13,7 @@ usage: h5dump [OPTIONS] file -V, --version Print version number and exit -a P, --attribute=P Print the specified attribute -d P, --dataset=P Print the specified dataset + -p, --properties Print dataset filters, storage layout and fill value -f D, --filedriver=D Specify which driver to open the file with -g P, --group=P Print the specified group and all members -l P, --soft-link=P Print the value(s) of the specified soft link diff --git a/tools/testfiles/tsaf.ddl b/tools/testfiles/tsaf.ddl index b308c95..6c20b8f 100644 --- a/tools/testfiles/tsaf.ddl +++ b/tools/testfiles/tsaf.ddl @@ -7,366 +7,402 @@ GROUP "/" { DATATYPE H5T_STD_U8LE DATASPACE SIMPLE { ( 5919 ) / ( H5S_UNLIMITED ) } DATA { - 47, 32, 67, 79, 78, 84, 65, 73, 78, 69, 82, 10, 47, 46, 97, 116, 116, - 114, 105, 98, 117, 116, 101, 115, 32, 67, 79, 78, 84, 65, 73, 78, 69, - 82, 10, 47, 46, 97, 116, 116, 114, 105, 98, 117, 116, 101, 115, 47, - 100, 97, 116, 97, 98, 97, 115, 101, 32, 67, 79, 78, 84, 65, 73, 78, 69, - 82, 10, 47, 46, 97, 116, 116, 114, 105, 98, 117, 116, 101, 115, 47, - 100, 97, 116, 97, 98, 97, 115, 101, 47, 46, 83, 65, 70, 95, 68, 98, 80, - 114, 111, 112, 115, 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, - 117, 99, 116, 32, 83, 65, 70, 95, 68, 98, 80, 114, 111, 112, 115, 123, - 105, 110, 116, 32, 109, 97, 103, 105, 99, 59, 99, 104, 97, 114, 32, 83, - 70, 105, 108, 101, 68, 105, 114, 91, 49, 48, 50, 52, 93, 59, 99, 104, - 97, 114, 32, 73, 109, 112, 111, 114, 116, 70, 105, 108, 101, 91, 49, - 48, 50, 52, 93, 59, 105, 110, 116, 32, 112, 97, 114, 97, 108, 108, 101, - 108, 59, 115, 116, 114, 117, 99, 116, 32, 83, 65, 70, 95, 86, 101, 114, - 115, 105, 111, 110, 73, 110, 102, 111, 123, 105, 110, 116, 32, 118, - 109, 97, 106, 111, 114, 59, 105, 110, 116, 32, 118, 109, 105, 110, 111, - 114, 59, 105, 110, 116, 32, 114, 101, 108, 59, 99, 104, 97, 114, 32, - 97, 110, 110, 111, 116, 91, 49, 48, 93, 59, 125, 115, 97, 102, 97, 112, - 105, 59, 115, 116, 114, 117, 99, 116, 32, 83, 65, 70, 95, 86, 101, 114, - 115, 105, 111, 110, 73, 110, 102, 111, 123, 105, 110, 116, 32, 118, - 109, 97, 106, 111, 114, 59, 105, 110, 116, 32, 118, 109, 105, 110, 111, - 114, 59, 105, 110, 116, 32, 114, 101, 108, 59, 99, 104, 97, 114, 32, - 97, 110, 110, 111, 116, 91, 49, 48, 93, 59, 125, 115, 97, 102, 108, - 105, 98, 59, 115, 116, 114, 117, 99, 116, 32, 83, 65, 70, 95, 86, 101, - 114, 115, 105, 111, 110, 73, 110, 102, 111, 123, 105, 110, 116, 32, - 118, 109, 97, 106, 111, 114, 59, 105, 110, 116, 32, 118, 109, 105, 110, - 111, 114, 59, 105, 110, 116, 32, 114, 101, 108, 59, 99, 104, 97, 114, - 32, 97, 110, 110, 111, 116, 91, 49, 48, 93, 59, 125, 118, 98, 116, 59, - 115, 116, 114, 117, 99, 116, 32, 83, 65, 70, 95, 86, 101, 114, 115, - 105, 111, 110, 73, 110, 102, 111, 123, 105, 110, 116, 32, 118, 109, 97, - 106, 111, 114, 59, 105, 110, 116, 32, 118, 109, 105, 110, 111, 114, 59, - 105, 110, 116, 32, 114, 101, 108, 59, 99, 104, 97, 114, 32, 97, 110, - 110, 111, 116, 91, 49, 48, 93, 59, 125, 100, 115, 108, 59, 115, 116, - 114, 117, 99, 116, 32, 83, 65, 70, 95, 86, 101, 114, 115, 105, 111, - 110, 73, 110, 102, 111, 123, 105, 110, 116, 32, 118, 109, 97, 106, 111, - 114, 59, 105, 110, 116, 32, 118, 109, 105, 110, 111, 114, 59, 105, 110, - 116, 32, 114, 101, 108, 59, 99, 104, 97, 114, 32, 97, 110, 110, 111, - 116, 91, 49, 48, 93, 59, 125, 104, 100, 102, 53, 59, 115, 116, 114, - 117, 99, 116, 32, 83, 65, 70, 95, 86, 101, 114, 115, 105, 111, 110, 73, - 110, 102, 111, 123, 105, 110, 116, 32, 118, 109, 97, 106, 111, 114, 59, - 105, 110, 116, 32, 118, 109, 105, 110, 111, 114, 59, 105, 110, 116, 32, - 114, 101, 108, 59, 99, 104, 97, 114, 32, 97, 110, 110, 111, 116, 91, - 49, 48, 93, 59, 125, 109, 112, 105, 59, 105, 110, 116, 32, 68, 111, 84, - 111, 99, 59, 105, 110, 116, 32, 82, 101, 97, 100, 79, 110, 108, 121, - 59, 105, 110, 116, 32, 67, 108, 111, 98, 98, 101, 114, 59, 105, 110, - 116, 32, 79, 83, 77, 111, 100, 101, 115, 59, 125, 59, 10, 47, 115, 115, - 114, 101, 108, 45, 95, 48, 48, 48, 48, 32, 68, 65, 84, 65, 83, 69, 84, - 32, 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, - 48, 49, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, - 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, 50, 32, 68, 65, 84, 65, - 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, - 95, 48, 48, 48, 51, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, - 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, 52, 32, 68, - 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, 114, - 101, 108, 45, 95, 48, 48, 48, 53, 32, 68, 65, 84, 65, 83, 69, 84, 32, - 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, - 54, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, - 115, 114, 101, 108, 45, 95, 48, 48, 48, 55, 32, 68, 65, 84, 65, 83, 69, - 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, - 48, 48, 56, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, - 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, 57, 32, 68, 65, 84, - 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, 108, - 45, 95, 48, 48, 49, 48, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, - 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, 49, 49, 32, - 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, - 114, 101, 108, 45, 95, 48, 48, 49, 50, 32, 68, 65, 84, 65, 83, 69, 84, - 32, 105, 110, 116, 59, 10, 47, 116, 111, 112, 111, 114, 101, 108, 45, - 95, 48, 48, 49, 55, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, - 59, 10, 47, 116, 111, 112, 111, 114, 101, 108, 45, 95, 48, 48, 49, 56, - 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 116, - 111, 112, 111, 114, 101, 108, 45, 95, 48, 48, 49, 57, 32, 68, 65, 84, - 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 116, 111, 112, 111, 114, - 101, 108, 45, 95, 48, 48, 50, 48, 32, 68, 65, 84, 65, 83, 69, 84, 32, - 105, 110, 116, 59, 10, 47, 102, 105, 101, 108, 100, 45, 99, 111, 111, - 114, 100, 115, 95, 48, 48, 48, 50, 32, 68, 65, 84, 65, 83, 69, 84, 32, - 102, 108, 111, 97, 116, 59, 10, 47, 102, 105, 101, 108, 100, 45, 100, - 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 95, 102, 97, 99, - 116, 111, 114, 115, 95, 48, 48, 48, 51, 32, 68, 65, 84, 65, 83, 69, 84, - 32, 102, 108, 111, 97, 116, 59, 10, 47, 102, 105, 101, 108, 100, 45, - 116, 101, 109, 112, 101, 114, 97, 116, 117, 114, 101, 95, 48, 48, 48, - 52, 32, 68, 65, 84, 65, 83, 69, 84, 32, 102, 108, 111, 97, 116, 59, 10, - 47, 102, 105, 101, 108, 100, 45, 100, 105, 115, 112, 108, 97, 99, 101, - 109, 101, 110, 116, 115, 95, 48, 48, 48, 55, 32, 68, 65, 84, 65, 83, - 69, 84, 32, 102, 108, 111, 97, 116, 59, 10, 47, 102, 105, 101, 108, - 100, 45, 115, 116, 114, 101, 115, 115, 95, 48, 48, 49, 49, 32, 68, 65, - 84, 65, 83, 69, 84, 32, 102, 108, 111, 97, 116, 59, 10, 47, 102, 105, - 101, 108, 100, 45, 116, 101, 109, 112, 101, 114, 97, 116, 117, 114, - 101, 95, 48, 48, 49, 50, 32, 68, 65, 84, 65, 83, 69, 84, 32, 102, 108, - 111, 97, 116, 59, 10, 47, 102, 105, 101, 108, 100, 45, 112, 114, 101, - 115, 115, 117, 114, 101, 95, 48, 48, 49, 51, 32, 68, 65, 84, 65, 83, - 69, 84, 32, 102, 108, 111, 97, 116, 59, 10, 47, 66, 108, 111, 98, 32, - 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, 66, - 108, 111, 98, 123, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, - 102, 105, 108, 101, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, - 115, 101, 116, 32, 100, 97, 116, 97, 115, 101, 116, 95, 105, 100, 59, - 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 111, 102, 102, 115, - 101, 116, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 115, - 116, 114, 105, 100, 101, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, - 116, 32, 99, 111, 117, 110, 116, 59, 68, 83, 76, 95, 79, 102, 102, 115, - 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, 59, 68, 83, 76, 95, 79, - 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, 114, 101, 99, 115, 59, - 125, 59, 10, 47, 73, 110, 100, 101, 120, 83, 112, 101, 99, 32, 68, 65, - 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, 73, 110, 100, - 101, 120, 83, 112, 101, 99, 123, 105, 110, 116, 32, 110, 100, 105, 109, - 115, 59, 105, 110, 116, 32, 111, 114, 105, 103, 105, 110, 115, 91, 56, - 93, 59, 105, 110, 116, 32, 115, 105, 122, 101, 115, 91, 56, 93, 59, - 105, 110, 116, 32, 111, 114, 100, 101, 114, 91, 56, 93, 59, 101, 110, - 117, 109, 32, 73, 110, 100, 101, 120, 84, 121, 112, 101, 123, 86, 66, - 84, 95, 73, 78, 68, 69, 88, 95, 84, 89, 80, 69, 95, 67, 95, 79, 82, 68, - 69, 82, 61, 48, 44, 86, 66, 84, 95, 73, 78, 68, 69, 88, 95, 84, 89, 80, - 69, 95, 70, 95, 79, 82, 68, 69, 82, 61, 49, 44, 86, 66, 84, 95, 73, 78, - 68, 69, 88, 95, 84, 89, 80, 69, 95, 65, 78, 89, 61, 45, 49, 44, 86, 66, - 84, 95, 73, 78, 68, 69, 88, 95, 84, 89, 80, 69, 95, 73, 78, 86, 65, 76, - 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 73, 78, 68, 69, 88, 95, 84, 89, - 80, 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 73, 78, 68, 69, 88, - 95, 84, 89, 80, 69, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, - 105, 110, 100, 101, 120, 95, 116, 121, 112, 101, 59, 68, 83, 76, 95, - 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, 59, - 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, - 114, 101, 99, 115, 59, 125, 59, 10, 47, 67, 97, 116, 32, 68, 65, 84, - 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, 67, 97, 116, 123, - 99, 104, 97, 114, 32, 110, 97, 109, 101, 91, 54, 52, 93, 59, 101, 110, - 117, 109, 32, 82, 111, 108, 101, 123, 86, 66, 84, 95, 82, 79, 76, 69, - 95, 84, 79, 80, 79, 61, 48, 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 66, - 78, 68, 61, 49, 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 80, 82, 79, 67, - 61, 50, 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 68, 79, 77, 78, 61, 51, - 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 66, 76, 79, 67, 75, 61, 52, 44, - 86, 66, 84, 95, 82, 79, 76, 69, 95, 65, 83, 83, 89, 61, 53, 44, 86, 66, - 84, 95, 82, 79, 76, 69, 95, 77, 65, 84, 61, 54, 44, 86, 66, 84, 95, 82, - 79, 76, 69, 95, 88, 80, 82, 79, 68, 61, 55, 44, 86, 66, 84, 95, 82, 79, - 76, 69, 95, 85, 83, 69, 82, 68, 61, 56, 44, 86, 66, 84, 95, 82, 79, 76, - 69, 95, 65, 78, 89, 61, 45, 49, 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, - 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 82, 79, 76, - 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 85, - 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, 114, 111, 108, 101, 59, 105, - 110, 116, 32, 116, 100, 105, 109, 59, 68, 83, 76, 95, 79, 102, 102, - 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, 59, 68, 83, 76, 95, - 79, 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, 114, 101, 99, 115, - 59, 125, 59, 10, 47, 83, 101, 116, 32, 68, 65, 84, 65, 83, 69, 84, 32, - 115, 116, 114, 117, 99, 116, 32, 83, 101, 116, 123, 105, 110, 116, 32, - 117, 115, 101, 114, 95, 105, 100, 59, 99, 104, 97, 114, 32, 110, 97, - 109, 101, 91, 54, 52, 93, 59, 105, 110, 116, 32, 116, 100, 105, 109, - 59, 101, 110, 117, 109, 32, 83, 105, 108, 82, 111, 108, 101, 123, 86, - 66, 84, 95, 83, 82, 79, 76, 69, 95, 84, 73, 77, 69, 61, 48, 44, 86, 66, - 84, 95, 83, 82, 79, 76, 69, 95, 83, 80, 65, 67, 69, 61, 49, 44, 86, 66, - 84, 95, 83, 82, 79, 76, 69, 95, 83, 84, 65, 84, 69, 61, 50, 44, 86, 66, - 84, 95, 83, 82, 79, 76, 69, 95, 80, 65, 82, 65, 77, 61, 51, 44, 86, 66, - 84, 95, 83, 82, 79, 76, 69, 95, 67, 84, 89, 80, 69, 61, 52, 44, 86, 66, - 84, 95, 83, 82, 79, 76, 69, 95, 65, 84, 89, 80, 69, 61, 53, 44, 86, 66, - 84, 95, 83, 82, 79, 76, 69, 95, 85, 83, 69, 82, 68, 61, 54, 44, 86, 66, - 84, 95, 83, 82, 79, 76, 69, 95, 65, 78, 89, 61, 45, 49, 44, 86, 66, 84, - 95, 83, 82, 79, 76, 69, 95, 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, - 86, 66, 84, 95, 83, 82, 79, 76, 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, - 84, 95, 83, 82, 79, 76, 69, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, - 125, 115, 114, 111, 108, 101, 59, 68, 83, 76, 95, 79, 102, 102, 115, - 101, 116, 32, 99, 111, 108, 108, 95, 105, 100, 115, 91, 49, 54, 93, 59, - 105, 110, 116, 32, 105, 115, 95, 116, 111, 112, 59, 105, 110, 116, 32, - 105, 115, 95, 101, 120, 116, 101, 110, 100, 105, 98, 108, 101, 59, 68, - 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 100, 102, 108, 116, 95, - 99, 111, 111, 114, 100, 102, 108, 100, 95, 105, 100, 59, 68, 83, 76, - 95, 79, 102, 102, 115, 101, 116, 32, 98, 110, 100, 95, 115, 101, 116, - 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 98, - 97, 115, 101, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, - 116, 32, 110, 117, 109, 95, 114, 101, 99, 115, 59, 125, 59, 10, 47, 67, - 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 68, 65, 84, 65, 83, 69, - 84, 32, 115, 116, 114, 117, 99, 116, 32, 67, 111, 108, 108, 101, 99, - 116, 105, 111, 110, 123, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, - 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 95, 115, 101, 116, - 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 99, - 97, 116, 95, 105, 100, 59, 101, 110, 117, 109, 32, 67, 101, 108, 108, - 84, 121, 112, 101, 123, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, - 69, 95, 78, 79, 78, 69, 61, 48, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, - 84, 89, 80, 69, 95, 80, 79, 73, 78, 84, 61, 49, 44, 86, 66, 84, 95, 67, - 69, 76, 76, 95, 84, 89, 80, 69, 95, 76, 73, 78, 69, 61, 50, 44, 86, 66, - 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 84, 82, 73, 61, 51, 44, - 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 81, 85, 65, 68, - 61, 52, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 84, - 69, 84, 61, 53, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, - 95, 80, 89, 82, 65, 77, 73, 68, 61, 54, 44, 86, 66, 84, 95, 67, 69, 76, - 76, 95, 84, 89, 80, 69, 95, 80, 82, 73, 83, 77, 61, 55, 44, 86, 66, 84, - 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 72, 69, 88, 61, 56, 44, 86, - 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 77, 73, 88, 69, 68, - 61, 57, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 65, - 82, 66, 61, 49, 48, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, - 69, 95, 49, 66, 65, 76, 76, 61, 49, 49, 44, 86, 66, 84, 95, 67, 69, 76, - 76, 95, 84, 89, 80, 69, 95, 50, 66, 65, 76, 76, 61, 49, 50, 44, 86, 66, - 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 51, 66, 65, 76, 76, 61, - 49, 51, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 49, - 83, 72, 69, 76, 76, 61, 49, 52, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, - 84, 89, 80, 69, 95, 50, 83, 72, 69, 76, 76, 61, 49, 53, 44, 86, 66, 84, - 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 65, 78, 89, 61, 45, 49, 44, - 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 73, 78, 86, 65, - 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, - 80, 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, - 84, 89, 80, 69, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, 99, - 101, 108, 108, 95, 116, 121, 112, 101, 59, 105, 110, 116, 32, 99, 111, - 117, 110, 116, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, - 105, 110, 100, 101, 120, 105, 110, 103, 95, 105, 100, 59, 105, 110, - 116, 32, 105, 115, 95, 100, 101, 99, 111, 109, 112, 59, 68, 83, 76, 95, - 79, 102, 102, 115, 101, 116, 32, 109, 101, 109, 98, 101, 114, 115, 95, - 98, 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, - 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, 59, 68, 83, 76, 95, 79, - 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, 114, 101, 99, 115, 59, - 125, 59, 10, 47, 82, 101, 108, 97, 116, 105, 111, 110, 32, 68, 65, 84, - 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, 82, 101, 108, 97, - 116, 105, 111, 110, 123, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, - 32, 115, 117, 98, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, - 101, 116, 32, 115, 117, 98, 95, 99, 97, 116, 95, 105, 100, 59, 68, 83, - 76, 95, 79, 102, 102, 115, 101, 116, 32, 115, 117, 98, 95, 100, 101, - 99, 111, 109, 112, 95, 99, 97, 116, 95, 105, 100, 59, 68, 83, 76, 95, - 79, 102, 102, 115, 101, 116, 32, 115, 117, 112, 95, 105, 100, 59, 68, - 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 115, 117, 112, 95, 99, 97, - 116, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, - 115, 117, 112, 95, 100, 101, 99, 111, 109, 112, 95, 99, 97, 116, 95, - 105, 100, 59, 101, 110, 117, 109, 32, 82, 101, 108, 75, 105, 110, 100, - 123, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 83, 85, 66, 83, - 69, 84, 61, 48, 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 83, - 85, 80, 83, 69, 84, 61, 49, 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, - 68, 95, 66, 79, 85, 78, 68, 61, 50, 44, 86, 66, 84, 95, 82, 69, 76, 75, - 73, 78, 68, 95, 80, 69, 82, 77, 85, 84, 69, 61, 51, 44, 86, 66, 84, 95, - 82, 69, 76, 75, 73, 78, 68, 95, 78, 69, 73, 71, 72, 66, 79, 82, 61, 52, - 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 67, 79, 80, 89, 61, - 53, 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 69, 81, 85, 65, - 76, 61, 54, 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 65, 78, - 89, 61, 45, 49, 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 73, - 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 82, 69, 76, 75, - 73, 78, 68, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 82, 69, 76, 75, - 73, 78, 68, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, 107, 105, - 110, 100, 59, 101, 110, 117, 109, 32, 82, 101, 108, 82, 101, 112, 123, - 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 73, 68, 69, 78, 84, 73, 84, - 89, 61, 48, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 72, 76, 73, - 83, 84, 61, 49, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 84, 76, - 73, 83, 84, 61, 50, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 84, - 76, 73, 83, 84, 95, 49, 61, 51, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, - 80, 95, 69, 76, 73, 83, 84, 61, 52, 44, 86, 66, 84, 95, 82, 69, 76, 82, - 69, 80, 95, 83, 84, 82, 85, 67, 84, 85, 82, 69, 68, 61, 53, 44, 86, 66, - 84, 95, 82, 69, 76, 82, 69, 80, 95, 85, 78, 83, 84, 82, 85, 67, 84, 85, - 82, 69, 68, 61, 54, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 65, - 82, 66, 73, 84, 82, 65, 82, 89, 95, 82, 61, 55, 44, 86, 66, 84, 95, 82, - 69, 76, 82, 69, 80, 95, 65, 82, 66, 73, 84, 82, 65, 82, 89, 95, 68, 82, - 61, 56, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 65, 78, 89, 61, - 45, 49, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 73, 78, 86, 65, - 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, - 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 85, - 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, 114, 101, 112, 95, 116, 121, - 112, 101, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 100, 95, - 98, 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, - 101, 116, 32, 114, 95, 98, 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, - 95, 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, - 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, - 114, 101, 99, 115, 59, 125, 59, 10, 47, 70, 105, 101, 108, 100, 84, - 109, 112, 108, 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, - 99, 116, 32, 70, 105, 101, 108, 100, 84, 109, 112, 108, 123, 99, 104, - 97, 114, 32, 110, 97, 109, 101, 91, 54, 52, 93, 59, 68, 83, 76, 95, 79, - 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, 115, 112, 97, 99, - 101, 95, 105, 100, 59, 101, 110, 117, 109, 32, 65, 108, 103, 101, 98, - 114, 97, 105, 99, 84, 121, 112, 101, 123, 86, 66, 84, 95, 65, 76, 71, - 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, 67, 79, 78, 83, 84, 65, - 78, 84, 61, 48, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, - 95, 84, 89, 80, 69, 95, 67, 79, 77, 80, 79, 78, 69, 78, 84, 61, 49, 44, - 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, - 95, 83, 67, 65, 76, 65, 82, 61, 50, 44, 86, 66, 84, 95, 65, 76, 71, 69, - 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, 86, 69, 67, 84, 79, 82, 61, - 51, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, - 80, 69, 95, 84, 69, 78, 83, 79, 82, 61, 52, 44, 86, 66, 84, 95, 65, 76, - 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, 83, 89, 77, 95, 84, - 69, 78, 83, 79, 82, 61, 53, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, - 65, 73, 67, 95, 84, 89, 80, 69, 95, 70, 73, 69, 76, 68, 61, 54, 44, 86, - 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, - 83, 84, 65, 84, 69, 61, 55, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, - 65, 73, 67, 95, 84, 89, 80, 69, 95, 84, 85, 80, 76, 69, 61, 56, 44, 86, - 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, - 65, 78, 89, 61, 45, 49, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, - 73, 67, 95, 84, 89, 80, 69, 95, 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, - 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, - 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, - 65, 73, 67, 95, 84, 89, 80, 69, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, - 52, 125, 97, 108, 103, 95, 116, 121, 112, 101, 59, 101, 110, 117, 109, - 32, 66, 97, 115, 105, 115, 84, 121, 112, 101, 123, 86, 66, 84, 95, 66, - 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 85, 78, 73, 84, 89, 61, 48, 44, - 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 67, 65, 82, - 84, 69, 83, 73, 65, 78, 61, 49, 44, 86, 66, 84, 95, 66, 65, 83, 73, 83, - 95, 84, 89, 80, 69, 95, 83, 80, 72, 69, 82, 73, 67, 65, 76, 61, 50, 44, - 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 67, 89, 76, - 73, 78, 68, 82, 73, 67, 65, 76, 61, 51, 44, 86, 66, 84, 95, 66, 65, 83, - 73, 83, 95, 84, 89, 80, 69, 95, 85, 80, 80, 69, 82, 95, 84, 82, 73, 61, - 52, 44, 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 70, - 79, 85, 82, 73, 69, 82, 61, 53, 44, 86, 66, 84, 95, 66, 65, 83, 73, 83, - 95, 84, 89, 80, 69, 95, 86, 65, 82, 73, 65, 66, 76, 69, 61, 54, 44, 86, - 66, 84, 95, 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 65, 78, 89, 61, - 45, 49, 44, 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, - 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 66, 65, 83, - 73, 83, 95, 84, 89, 80, 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, - 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 85, 78, 75, 78, 79, 87, 78, - 61, 45, 52, 125, 98, 97, 115, 105, 115, 59, 68, 83, 76, 95, 79, 102, - 102, 115, 101, 116, 32, 113, 117, 97, 110, 116, 105, 116, 121, 95, 105, - 100, 59, 105, 110, 116, 32, 110, 117, 109, 95, 99, 111, 109, 112, 115, - 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 102, 116, 109, - 112, 108, 95, 105, 100, 115, 95, 98, 108, 111, 98, 95, 105, 100, 59, - 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, - 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, - 117, 109, 95, 114, 101, 99, 115, 59, 125, 59, 10, 47, 70, 105, 101, - 108, 100, 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, - 116, 32, 70, 105, 101, 108, 100, 123, 68, 83, 76, 95, 79, 102, 102, - 115, 101, 116, 32, 102, 116, 109, 112, 108, 95, 105, 100, 59, 99, 104, - 97, 114, 32, 110, 97, 109, 101, 91, 54, 52, 93, 59, 68, 83, 76, 95, 79, - 102, 102, 115, 101, 116, 32, 117, 110, 105, 116, 115, 95, 105, 100, 59, - 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 115, 116, 111, 114, - 97, 103, 101, 95, 100, 101, 99, 111, 109, 112, 95, 99, 97, 116, 95, - 105, 100, 59, 101, 110, 117, 109, 32, 73, 110, 116, 101, 114, 108, 101, - 97, 118, 101, 123, 86, 66, 84, 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, - 69, 95, 67, 79, 77, 80, 79, 78, 69, 78, 84, 61, 48, 44, 86, 66, 84, 95, - 73, 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, 86, 69, 67, 84, 79, 82, 61, - 49, 44, 86, 66, 84, 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, 73, - 78, 68, 69, 80, 69, 78, 68, 69, 78, 84, 61, 50, 44, 86, 66, 84, 95, 73, - 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, 78, 79, 78, 69, 61, 51, 44, 86, - 66, 84, 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, 65, 78, 89, 61, - 45, 49, 44, 86, 66, 84, 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, - 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 73, 78, 84, - 69, 82, 76, 69, 65, 86, 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, - 73, 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, 85, 78, 75, 78, 79, 87, 78, - 61, 45, 52, 125, 99, 111, 109, 112, 95, 105, 110, 116, 108, 118, 59, - 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 105, 110, 100, 101, - 120, 105, 110, 103, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, - 115, 101, 116, 32, 100, 111, 102, 95, 97, 115, 115, 111, 99, 95, 99, - 97, 116, 95, 105, 100, 59, 105, 110, 116, 32, 97, 115, 115, 111, 99, - 95, 114, 97, 116, 105, 111, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, - 116, 32, 101, 118, 97, 108, 95, 100, 101, 99, 111, 109, 112, 95, 99, - 97, 116, 95, 105, 100, 59, 101, 110, 117, 109, 32, 69, 118, 97, 108, - 70, 117, 110, 99, 123, 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, 78, - 67, 95, 67, 79, 78, 83, 84, 65, 78, 84, 61, 48, 44, 86, 66, 84, 95, 69, - 86, 65, 76, 95, 70, 85, 78, 67, 95, 85, 78, 73, 70, 79, 82, 77, 61, 49, - 44, 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, 78, 67, 95, 80, 87, 67, - 79, 78, 83, 84, 61, 50, 44, 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, - 78, 67, 95, 80, 87, 76, 73, 78, 69, 65, 82, 61, 51, 44, 86, 66, 84, 95, - 69, 86, 65, 76, 95, 70, 85, 78, 67, 95, 65, 78, 89, 61, 45, 49, 44, 86, - 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, 78, 67, 95, 73, 78, 86, 65, 76, - 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, 78, - 67, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, - 85, 78, 67, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, 101, 118, - 97, 108, 95, 102, 117, 110, 99, 59, 105, 110, 116, 32, 105, 115, 95, - 104, 111, 109, 111, 103, 101, 110, 101, 111, 117, 115, 59, 105, 110, - 116, 32, 105, 115, 95, 99, 111, 111, 114, 100, 95, 102, 105, 101, 108, - 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 99, 111, 109, - 112, 95, 105, 100, 115, 95, 98, 108, 111, 98, 95, 105, 100, 59, 68, 83, - 76, 95, 79, 102, 102, 115, 101, 116, 32, 99, 111, 109, 112, 95, 111, - 114, 100, 101, 114, 95, 98, 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, - 95, 79, 102, 102, 115, 101, 116, 32, 118, 98, 97, 115, 105, 115, 95, - 98, 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, - 101, 116, 32, 100, 111, 102, 95, 98, 108, 111, 98, 95, 105, 100, 59, - 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, - 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, - 117, 109, 95, 114, 101, 99, 115, 59, 125, 59, 10, 47, 109, 101, 116, - 97, 98, 108, 111, 98, 48, 48, 48, 48, 48, 46, 105, 110, 100, 101, 120, - 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, - 73, 110, 100, 101, 120, 80, 97, 105, 114, 123, 68, 83, 76, 95, 79, 102, - 102, 115, 101, 116, 32, 105, 110, 100, 101, 120, 59, 105, 110, 116, 32, - 108, 101, 110, 103, 116, 104, 59, 125, 59, 10, 47, 109, 101, 116, 97, - 98, 108, 111, 98, 48, 48, 48, 48, 48, 46, 98, 108, 111, 98, 32, 68, 65, - 84, 65, 83, 69, 84, 32, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, - 59, 10 + (0) 47, 32, 67, 79, 78, 84, 65, 73, 78, 69, 82, 10, 47, 46, 97, 116, + (16) 116, 114, 105, 98, 117, 116, 101, 115, 32, 67, 79, 78, 84, 65, 73, + (31) 78, 69, 82, 10, 47, 46, 97, 116, 116, 114, 105, 98, 117, 116, 101, + (46) 115, 47, 100, 97, 116, 97, 98, 97, 115, 101, 32, 67, 79, 78, 84, + (61) 65, 73, 78, 69, 82, 10, 47, 46, 97, 116, 116, 114, 105, 98, 117, + (76) 116, 101, 115, 47, 100, 97, 116, 97, 98, 97, 115, 101, 47, 46, 83, + (91) 65, 70, 95, 68, 98, 80, 114, 111, 112, 115, 32, 68, 65, 84, 65, 83, + (107) 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, 83, 65, 70, 95, 68, + (122) 98, 80, 114, 111, 112, 115, 123, 105, 110, 116, 32, 109, 97, 103, + (136) 105, 99, 59, 99, 104, 97, 114, 32, 83, 70, 105, 108, 101, 68, 105, + (151) 114, 91, 49, 48, 50, 52, 93, 59, 99, 104, 97, 114, 32, 73, 109, + (166) 112, 111, 114, 116, 70, 105, 108, 101, 91, 49, 48, 50, 52, 93, 59, + (181) 105, 110, 116, 32, 112, 97, 114, 97, 108, 108, 101, 108, 59, 115, + (195) 116, 114, 117, 99, 116, 32, 83, 65, 70, 95, 86, 101, 114, 115, + (209) 105, 111, 110, 73, 110, 102, 111, 123, 105, 110, 116, 32, 118, + (222) 109, 97, 106, 111, 114, 59, 105, 110, 116, 32, 118, 109, 105, 110, + (236) 111, 114, 59, 105, 110, 116, 32, 114, 101, 108, 59, 99, 104, 97, + (250) 114, 32, 97, 110, 110, 111, 116, 91, 49, 48, 93, 59, 125, 115, 97, + (265) 102, 97, 112, 105, 59, 115, 116, 114, 117, 99, 116, 32, 83, 65, + (279) 70, 95, 86, 101, 114, 115, 105, 111, 110, 73, 110, 102, 111, 123, + (293) 105, 110, 116, 32, 118, 109, 97, 106, 111, 114, 59, 105, 110, 116, + (307) 32, 118, 109, 105, 110, 111, 114, 59, 105, 110, 116, 32, 114, 101, + (321) 108, 59, 99, 104, 97, 114, 32, 97, 110, 110, 111, 116, 91, 49, 48, + (336) 93, 59, 125, 115, 97, 102, 108, 105, 98, 59, 115, 116, 114, 117, + (350) 99, 116, 32, 83, 65, 70, 95, 86, 101, 114, 115, 105, 111, 110, 73, + (365) 110, 102, 111, 123, 105, 110, 116, 32, 118, 109, 97, 106, 111, + (378) 114, 59, 105, 110, 116, 32, 118, 109, 105, 110, 111, 114, 59, 105, + (392) 110, 116, 32, 114, 101, 108, 59, 99, 104, 97, 114, 32, 97, 110, + (406) 110, 111, 116, 91, 49, 48, 93, 59, 125, 118, 98, 116, 59, 115, + (420) 116, 114, 117, 99, 116, 32, 83, 65, 70, 95, 86, 101, 114, 115, + (434) 105, 111, 110, 73, 110, 102, 111, 123, 105, 110, 116, 32, 118, + (447) 109, 97, 106, 111, 114, 59, 105, 110, 116, 32, 118, 109, 105, 110, + (461) 111, 114, 59, 105, 110, 116, 32, 114, 101, 108, 59, 99, 104, 97, + (475) 114, 32, 97, 110, 110, 111, 116, 91, 49, 48, 93, 59, 125, 100, + (489) 115, 108, 59, 115, 116, 114, 117, 99, 116, 32, 83, 65, 70, 95, 86, + (504) 101, 114, 115, 105, 111, 110, 73, 110, 102, 111, 123, 105, 110, + (517) 116, 32, 118, 109, 97, 106, 111, 114, 59, 105, 110, 116, 32, 118, + (531) 109, 105, 110, 111, 114, 59, 105, 110, 116, 32, 114, 101, 108, 59, + (545) 99, 104, 97, 114, 32, 97, 110, 110, 111, 116, 91, 49, 48, 93, 59, + (560) 125, 104, 100, 102, 53, 59, 115, 116, 114, 117, 99, 116, 32, 83, + (574) 65, 70, 95, 86, 101, 114, 115, 105, 111, 110, 73, 110, 102, 111, + (588) 123, 105, 110, 116, 32, 118, 109, 97, 106, 111, 114, 59, 105, 110, + (602) 116, 32, 118, 109, 105, 110, 111, 114, 59, 105, 110, 116, 32, 114, + (616) 101, 108, 59, 99, 104, 97, 114, 32, 97, 110, 110, 111, 116, 91, + (630) 49, 48, 93, 59, 125, 109, 112, 105, 59, 105, 110, 116, 32, 68, + (644) 111, 84, 111, 99, 59, 105, 110, 116, 32, 82, 101, 97, 100, 79, + (658) 110, 108, 121, 59, 105, 110, 116, 32, 67, 108, 111, 98, 98, 101, + (672) 114, 59, 105, 110, 116, 32, 79, 83, 77, 111, 100, 101, 115, 59, + (686) 125, 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, 48, + (701) 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, + (716) 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, 49, 32, 68, 65, 84, + (731) 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, + (746) 108, 45, 95, 48, 48, 48, 50, 32, 68, 65, 84, 65, 83, 69, 84, 32, + (762) 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, + (776) 48, 48, 51, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, + (792) 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, 52, 32, 68, + (807) 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, + (822) 114, 101, 108, 45, 95, 48, 48, 48, 53, 32, 68, 65, 84, 65, 83, 69, + (838) 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, + (852) 95, 48, 48, 48, 54, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, + (868) 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, 55, + (883) 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, + (898) 115, 115, 114, 101, 108, 45, 95, 48, 48, 48, 56, 32, 68, 65, 84, + (913) 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, + (928) 108, 45, 95, 48, 48, 48, 57, 32, 68, 65, 84, 65, 83, 69, 84, 32, + (944) 105, 110, 116, 59, 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, + (958) 48, 49, 48, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, + (974) 10, 47, 115, 115, 114, 101, 108, 45, 95, 48, 48, 49, 49, 32, 68, + (989) 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, 59, 10, 47, 115, 115, + (1004) 114, 101, 108, 45, 95, 48, 48, 49, 50, 32, 68, 65, 84, 65, 83, + (1019) 69, 84, 32, 105, 110, 116, 59, 10, 47, 116, 111, 112, 111, 114, + (1033) 101, 108, 45, 95, 48, 48, 49, 55, 32, 68, 65, 84, 65, 83, 69, 84, + (1049) 32, 105, 110, 116, 59, 10, 47, 116, 111, 112, 111, 114, 101, 108, + (1063) 45, 95, 48, 48, 49, 56, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, + (1079) 110, 116, 59, 10, 47, 116, 111, 112, 111, 114, 101, 108, 45, 95, + (1093) 48, 48, 49, 57, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, + (1108) 116, 59, 10, 47, 116, 111, 112, 111, 114, 101, 108, 45, 95, 48, + (1122) 48, 50, 48, 32, 68, 65, 84, 65, 83, 69, 84, 32, 105, 110, 116, + (1137) 59, 10, 47, 102, 105, 101, 108, 100, 45, 99, 111, 111, 114, 100, + (1151) 115, 95, 48, 48, 48, 50, 32, 68, 65, 84, 65, 83, 69, 84, 32, 102, + (1167) 108, 111, 97, 116, 59, 10, 47, 102, 105, 101, 108, 100, 45, 100, + (1181) 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 95, 102, + (1194) 97, 99, 116, 111, 114, 115, 95, 48, 48, 48, 51, 32, 68, 65, 84, + (1209) 65, 83, 69, 84, 32, 102, 108, 111, 97, 116, 59, 10, 47, 102, 105, + (1224) 101, 108, 100, 45, 116, 101, 109, 112, 101, 114, 97, 116, 117, + (1237) 114, 101, 95, 48, 48, 48, 52, 32, 68, 65, 84, 65, 83, 69, 84, 32, + (1253) 102, 108, 111, 97, 116, 59, 10, 47, 102, 105, 101, 108, 100, 45, + (1267) 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 115, + (1280) 95, 48, 48, 48, 55, 32, 68, 65, 84, 65, 83, 69, 84, 32, 102, 108, + (1296) 111, 97, 116, 59, 10, 47, 102, 105, 101, 108, 100, 45, 115, 116, + (1310) 114, 101, 115, 115, 95, 48, 48, 49, 49, 32, 68, 65, 84, 65, 83, + (1325) 69, 84, 32, 102, 108, 111, 97, 116, 59, 10, 47, 102, 105, 101, + (1339) 108, 100, 45, 116, 101, 109, 112, 101, 114, 97, 116, 117, 114, + (1352) 101, 95, 48, 48, 49, 50, 32, 68, 65, 84, 65, 83, 69, 84, 32, 102, + (1368) 108, 111, 97, 116, 59, 10, 47, 102, 105, 101, 108, 100, 45, 112, + (1382) 114, 101, 115, 115, 117, 114, 101, 95, 48, 48, 49, 51, 32, 68, + (1396) 65, 84, 65, 83, 69, 84, 32, 102, 108, 111, 97, 116, 59, 10, 47, + (1411) 66, 108, 111, 98, 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, + (1426) 114, 117, 99, 116, 32, 66, 108, 111, 98, 123, 68, 83, 76, 95, 79, + (1441) 102, 102, 115, 101, 116, 32, 102, 105, 108, 101, 95, 105, 100, + (1454) 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 100, 97, + (1468) 116, 97, 115, 101, 116, 95, 105, 100, 59, 68, 83, 76, 95, 79, + (1482) 102, 102, 115, 101, 116, 32, 111, 102, 102, 115, 101, 116, 59, + (1495) 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 115, 116, 114, + (1509) 105, 100, 101, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, + (1523) 32, 99, 111, 117, 110, 116, 59, 68, 83, 76, 95, 79, 102, 102, + (1537) 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, 59, 68, 83, + (1551) 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, 114, + (1565) 101, 99, 115, 59, 125, 59, 10, 47, 73, 110, 100, 101, 120, 83, + (1579) 112, 101, 99, 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, + (1594) 117, 99, 116, 32, 73, 110, 100, 101, 120, 83, 112, 101, 99, 123, + (1608) 105, 110, 116, 32, 110, 100, 105, 109, 115, 59, 105, 110, 116, + (1621) 32, 111, 114, 105, 103, 105, 110, 115, 91, 56, 93, 59, 105, 110, + (1635) 116, 32, 115, 105, 122, 101, 115, 91, 56, 93, 59, 105, 110, 116, + (1649) 32, 111, 114, 100, 101, 114, 91, 56, 93, 59, 101, 110, 117, 109, + (1663) 32, 73, 110, 100, 101, 120, 84, 121, 112, 101, 123, 86, 66, 84, + (1677) 95, 73, 78, 68, 69, 88, 95, 84, 89, 80, 69, 95, 67, 95, 79, 82, + (1693) 68, 69, 82, 61, 48, 44, 86, 66, 84, 95, 73, 78, 68, 69, 88, 95, + (1709) 84, 89, 80, 69, 95, 70, 95, 79, 82, 68, 69, 82, 61, 49, 44, 86, + (1725) 66, 84, 95, 73, 78, 68, 69, 88, 95, 84, 89, 80, 69, 95, 65, 78, + (1741) 89, 61, 45, 49, 44, 86, 66, 84, 95, 73, 78, 68, 69, 88, 95, 84, + (1757) 89, 80, 69, 95, 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, + (1773) 66, 84, 95, 73, 78, 68, 69, 88, 95, 84, 89, 80, 69, 95, 78, 65, + (1789) 61, 45, 51, 44, 86, 66, 84, 95, 73, 78, 68, 69, 88, 95, 84, 89, + (1805) 80, 69, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, 105, + (1820) 110, 100, 101, 120, 95, 116, 121, 112, 101, 59, 68, 83, 76, 95, + (1834) 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, + (1848) 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, + (1862) 109, 95, 114, 101, 99, 115, 59, 125, 59, 10, 47, 67, 97, 116, 32, + (1877) 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, + (1892) 67, 97, 116, 123, 99, 104, 97, 114, 32, 110, 97, 109, 101, 91, + (1906) 54, 52, 93, 59, 101, 110, 117, 109, 32, 82, 111, 108, 101, 123, + (1920) 86, 66, 84, 95, 82, 79, 76, 69, 95, 84, 79, 80, 79, 61, 48, 44, + (1936) 86, 66, 84, 95, 82, 79, 76, 69, 95, 66, 78, 68, 61, 49, 44, 86, + (1952) 66, 84, 95, 82, 79, 76, 69, 95, 80, 82, 79, 67, 61, 50, 44, 86, + (1968) 66, 84, 95, 82, 79, 76, 69, 95, 68, 79, 77, 78, 61, 51, 44, 86, + (1984) 66, 84, 95, 82, 79, 76, 69, 95, 66, 76, 79, 67, 75, 61, 52, 44, + (2000) 86, 66, 84, 95, 82, 79, 76, 69, 95, 65, 83, 83, 89, 61, 53, 44, + (2016) 86, 66, 84, 95, 82, 79, 76, 69, 95, 77, 65, 84, 61, 54, 44, 86, + (2032) 66, 84, 95, 82, 79, 76, 69, 95, 88, 80, 82, 79, 68, 61, 55, 44, + (2048) 86, 66, 84, 95, 82, 79, 76, 69, 95, 85, 83, 69, 82, 68, 61, 56, + (2064) 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 65, 78, 89, 61, 45, 49, + (2080) 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 73, 78, 86, 65, 76, 73, + (2096) 68, 61, 45, 50, 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 78, 65, + (2112) 61, 45, 51, 44, 86, 66, 84, 95, 82, 79, 76, 69, 95, 85, 78, 75, + (2128) 78, 79, 87, 78, 61, 45, 52, 125, 114, 111, 108, 101, 59, 105, + (2142) 110, 116, 32, 116, 100, 105, 109, 59, 68, 83, 76, 95, 79, 102, + (2156) 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, 59, 68, + (2170) 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, + (2184) 114, 101, 99, 115, 59, 125, 59, 10, 47, 83, 101, 116, 32, 68, 65, + (2199) 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, 83, 101, + (2214) 116, 123, 105, 110, 116, 32, 117, 115, 101, 114, 95, 105, 100, + (2227) 59, 99, 104, 97, 114, 32, 110, 97, 109, 101, 91, 54, 52, 93, 59, + (2242) 105, 110, 116, 32, 116, 100, 105, 109, 59, 101, 110, 117, 109, + (2255) 32, 83, 105, 108, 82, 111, 108, 101, 123, 86, 66, 84, 95, 83, 82, + (2270) 79, 76, 69, 95, 84, 73, 77, 69, 61, 48, 44, 86, 66, 84, 95, 83, + (2286) 82, 79, 76, 69, 95, 83, 80, 65, 67, 69, 61, 49, 44, 86, 66, 84, + (2302) 95, 83, 82, 79, 76, 69, 95, 83, 84, 65, 84, 69, 61, 50, 44, 86, + (2318) 66, 84, 95, 83, 82, 79, 76, 69, 95, 80, 65, 82, 65, 77, 61, 51, + (2334) 44, 86, 66, 84, 95, 83, 82, 79, 76, 69, 95, 67, 84, 89, 80, 69, + (2350) 61, 52, 44, 86, 66, 84, 95, 83, 82, 79, 76, 69, 95, 65, 84, 89, + (2366) 80, 69, 61, 53, 44, 86, 66, 84, 95, 83, 82, 79, 76, 69, 95, 85, + (2382) 83, 69, 82, 68, 61, 54, 44, 86, 66, 84, 95, 83, 82, 79, 76, 69, + (2398) 95, 65, 78, 89, 61, 45, 49, 44, 86, 66, 84, 95, 83, 82, 79, 76, + (2414) 69, 95, 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, + (2430) 95, 83, 82, 79, 76, 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, + (2446) 95, 83, 82, 79, 76, 69, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, + (2462) 52, 125, 115, 114, 111, 108, 101, 59, 68, 83, 76, 95, 79, 102, + (2476) 102, 115, 101, 116, 32, 99, 111, 108, 108, 95, 105, 100, 115, 91, + (2490) 49, 54, 93, 59, 105, 110, 116, 32, 105, 115, 95, 116, 111, 112, + (2504) 59, 105, 110, 116, 32, 105, 115, 95, 101, 120, 116, 101, 110, + (2517) 100, 105, 98, 108, 101, 59, 68, 83, 76, 95, 79, 102, 102, 115, + (2531) 101, 116, 32, 100, 102, 108, 116, 95, 99, 111, 111, 114, 100, + (2544) 102, 108, 100, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, + (2558) 115, 101, 116, 32, 98, 110, 100, 95, 115, 101, 116, 95, 105, 100, + (2572) 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, + (2587) 101, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, + (2601) 116, 32, 110, 117, 109, 95, 114, 101, 99, 115, 59, 125, 59, 10, + (2615) 47, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 68, 65, + (2629) 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, 67, 111, + (2644) 108, 108, 101, 99, 116, 105, 111, 110, 123, 68, 83, 76, 95, 79, + (2658) 102, 102, 115, 101, 116, 32, 99, 111, 110, 116, 97, 105, 110, + (2671) 105, 110, 103, 95, 115, 101, 116, 95, 105, 100, 59, 68, 83, 76, + (2685) 95, 79, 102, 102, 115, 101, 116, 32, 99, 97, 116, 95, 105, 100, + (2699) 59, 101, 110, 117, 109, 32, 67, 101, 108, 108, 84, 121, 112, 101, + (2713) 123, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 78, + (2729) 79, 78, 69, 61, 48, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, + (2745) 89, 80, 69, 95, 80, 79, 73, 78, 84, 61, 49, 44, 86, 66, 84, 95, + (2761) 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 76, 73, 78, 69, 61, 50, + (2777) 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 84, + (2793) 82, 73, 61, 51, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, + (2809) 80, 69, 95, 81, 85, 65, 68, 61, 52, 44, 86, 66, 84, 95, 67, 69, + (2825) 76, 76, 95, 84, 89, 80, 69, 95, 84, 69, 84, 61, 53, 44, 86, 66, + (2841) 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 80, 89, 82, 65, + (2857) 77, 73, 68, 61, 54, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, + (2873) 89, 80, 69, 95, 80, 82, 73, 83, 77, 61, 55, 44, 86, 66, 84, 95, + (2889) 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 72, 69, 88, 61, 56, 44, + (2905) 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 77, 73, + (2921) 88, 69, 68, 61, 57, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, + (2937) 89, 80, 69, 95, 65, 82, 66, 61, 49, 48, 44, 86, 66, 84, 95, 67, + (2953) 69, 76, 76, 95, 84, 89, 80, 69, 95, 49, 66, 65, 76, 76, 61, 49, + (2969) 49, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, + (2985) 50, 66, 65, 76, 76, 61, 49, 50, 44, 86, 66, 84, 95, 67, 69, 76, + (3001) 76, 95, 84, 89, 80, 69, 95, 51, 66, 65, 76, 76, 61, 49, 51, 44, + (3017) 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 49, 83, + (3033) 72, 69, 76, 76, 61, 49, 52, 44, 86, 66, 84, 95, 67, 69, 76, 76, + (3049) 95, 84, 89, 80, 69, 95, 50, 83, 72, 69, 76, 76, 61, 49, 53, 44, + (3065) 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 65, 78, + (3081) 89, 61, 45, 49, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, + (3097) 80, 69, 95, 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, + (3113) 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, 78, 65, 61, 45, + (3129) 51, 44, 86, 66, 84, 95, 67, 69, 76, 76, 95, 84, 89, 80, 69, 95, + (3145) 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, 99, 101, 108, 108, + (3160) 95, 116, 121, 112, 101, 59, 105, 110, 116, 32, 99, 111, 117, 110, + (3174) 116, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 105, + (3188) 110, 100, 101, 120, 105, 110, 103, 95, 105, 100, 59, 105, 110, + (3201) 116, 32, 105, 115, 95, 100, 101, 99, 111, 109, 112, 59, 68, 83, + (3215) 76, 95, 79, 102, 102, 115, 101, 116, 32, 109, 101, 109, 98, 101, + (3229) 114, 115, 95, 98, 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, 95, + (3244) 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, + (3258) 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, + (3272) 109, 95, 114, 101, 99, 115, 59, 125, 59, 10, 47, 82, 101, 108, + (3286) 97, 116, 105, 111, 110, 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, + (3301) 116, 114, 117, 99, 116, 32, 82, 101, 108, 97, 116, 105, 111, 110, + (3315) 123, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 115, 117, + (3329) 98, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, + (3343) 116, 32, 115, 117, 98, 95, 99, 97, 116, 95, 105, 100, 59, 68, 83, + (3358) 76, 95, 79, 102, 102, 115, 101, 116, 32, 115, 117, 98, 95, 100, + (3372) 101, 99, 111, 109, 112, 95, 99, 97, 116, 95, 105, 100, 59, 68, + (3386) 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 115, 117, 112, 95, + (3400) 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, + (3414) 115, 117, 112, 95, 99, 97, 116, 95, 105, 100, 59, 68, 83, 76, 95, + (3429) 79, 102, 102, 115, 101, 116, 32, 115, 117, 112, 95, 100, 101, 99, + (3443) 111, 109, 112, 95, 99, 97, 116, 95, 105, 100, 59, 101, 110, 117, + (3457) 109, 32, 82, 101, 108, 75, 105, 110, 100, 123, 86, 66, 84, 95, + (3471) 82, 69, 76, 75, 73, 78, 68, 95, 83, 85, 66, 83, 69, 84, 61, 48, + (3487) 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 83, 85, 80, + (3503) 83, 69, 84, 61, 49, 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, + (3519) 68, 95, 66, 79, 85, 78, 68, 61, 50, 44, 86, 66, 84, 95, 82, 69, + (3535) 76, 75, 73, 78, 68, 95, 80, 69, 82, 77, 85, 84, 69, 61, 51, 44, + (3551) 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 78, 69, 73, 71, + (3567) 72, 66, 79, 82, 61, 52, 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, + (3583) 78, 68, 95, 67, 79, 80, 89, 61, 53, 44, 86, 66, 84, 95, 82, 69, + (3599) 76, 75, 73, 78, 68, 95, 69, 81, 85, 65, 76, 61, 54, 44, 86, 66, + (3615) 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 65, 78, 89, 61, 45, 49, + (3631) 44, 86, 66, 84, 95, 82, 69, 76, 75, 73, 78, 68, 95, 73, 78, 86, + (3647) 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 82, 69, 76, 75, + (3663) 73, 78, 68, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 82, 69, + (3679) 76, 75, 73, 78, 68, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, + (3695) 125, 107, 105, 110, 100, 59, 101, 110, 117, 109, 32, 82, 101, + (3708) 108, 82, 101, 112, 123, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, + (3723) 95, 73, 68, 69, 78, 84, 73, 84, 89, 61, 48, 44, 86, 66, 84, 95, + (3739) 82, 69, 76, 82, 69, 80, 95, 72, 76, 73, 83, 84, 61, 49, 44, 86, + (3755) 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 84, 76, 73, 83, 84, 61, + (3771) 50, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 84, 76, 73, + (3787) 83, 84, 95, 49, 61, 51, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, + (3803) 80, 95, 69, 76, 73, 83, 84, 61, 52, 44, 86, 66, 84, 95, 82, 69, + (3819) 76, 82, 69, 80, 95, 83, 84, 82, 85, 67, 84, 85, 82, 69, 68, 61, + (3835) 53, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 85, 78, 83, + (3851) 84, 82, 85, 67, 84, 85, 82, 69, 68, 61, 54, 44, 86, 66, 84, 95, + (3867) 82, 69, 76, 82, 69, 80, 95, 65, 82, 66, 73, 84, 82, 65, 82, 89, + (3883) 95, 82, 61, 55, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, + (3899) 65, 82, 66, 73, 84, 82, 65, 82, 89, 95, 68, 82, 61, 56, 44, 86, + (3915) 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 65, 78, 89, 61, 45, 49, + (3931) 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, 80, 95, 73, 78, 86, 65, + (3947) 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 82, 69, 76, 82, 69, + (3963) 80, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 82, 69, 76, 82, + (3979) 69, 80, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, 52, 125, 114, + (3994) 101, 112, 95, 116, 121, 112, 101, 59, 68, 83, 76, 95, 79, 102, + (4008) 102, 115, 101, 116, 32, 100, 95, 98, 108, 111, 98, 95, 105, 100, + (4022) 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 114, 95, 98, + (4037) 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, + (4051) 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, 59, 68, 83, + (4065) 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, 114, + (4079) 101, 99, 115, 59, 125, 59, 10, 47, 70, 105, 101, 108, 100, 84, + (4093) 109, 112, 108, 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, + (4108) 117, 99, 116, 32, 70, 105, 101, 108, 100, 84, 109, 112, 108, 123, + (4122) 99, 104, 97, 114, 32, 110, 97, 109, 101, 91, 54, 52, 93, 59, 68, + (4137) 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, + (4151) 95, 115, 112, 97, 99, 101, 95, 105, 100, 59, 101, 110, 117, 109, + (4165) 32, 65, 108, 103, 101, 98, 114, 97, 105, 99, 84, 121, 112, 101, + (4179) 123, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, + (4195) 89, 80, 69, 95, 67, 79, 78, 83, 84, 65, 78, 84, 61, 48, 44, 86, + (4211) 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, + (4227) 69, 95, 67, 79, 77, 80, 79, 78, 69, 78, 84, 61, 49, 44, 86, 66, + (4243) 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, + (4259) 95, 83, 67, 65, 76, 65, 82, 61, 50, 44, 86, 66, 84, 95, 65, 76, + (4275) 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, 86, 69, 67, + (4291) 84, 79, 82, 61, 51, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, + (4307) 65, 73, 67, 95, 84, 89, 80, 69, 95, 84, 69, 78, 83, 79, 82, 61, + (4323) 52, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, + (4339) 84, 89, 80, 69, 95, 83, 89, 77, 95, 84, 69, 78, 83, 79, 82, 61, + (4355) 53, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, + (4371) 84, 89, 80, 69, 95, 70, 73, 69, 76, 68, 61, 54, 44, 86, 66, 84, + (4387) 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, + (4403) 83, 84, 65, 84, 69, 61, 55, 44, 86, 66, 84, 95, 65, 76, 71, 69, + (4419) 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, 84, 85, 80, 76, 69, + (4435) 61, 56, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, + (4451) 95, 84, 89, 80, 69, 95, 65, 78, 89, 61, 45, 49, 44, 86, 66, 84, + (4467) 95, 65, 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, + (4483) 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 65, + (4499) 76, 71, 69, 66, 82, 65, 73, 67, 95, 84, 89, 80, 69, 95, 78, 65, + (4515) 61, 45, 51, 44, 86, 66, 84, 95, 65, 76, 71, 69, 66, 82, 65, 73, + (4531) 67, 95, 84, 89, 80, 69, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, + (4547) 52, 125, 97, 108, 103, 95, 116, 121, 112, 101, 59, 101, 110, 117, + (4561) 109, 32, 66, 97, 115, 105, 115, 84, 121, 112, 101, 123, 86, 66, + (4575) 84, 95, 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 85, 78, 73, + (4591) 84, 89, 61, 48, 44, 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, 84, + (4607) 89, 80, 69, 95, 67, 65, 82, 84, 69, 83, 73, 65, 78, 61, 49, 44, + (4623) 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 83, + (4639) 80, 72, 69, 82, 73, 67, 65, 76, 61, 50, 44, 86, 66, 84, 95, 66, + (4655) 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 67, 89, 76, 73, 78, 68, + (4671) 82, 73, 67, 65, 76, 61, 51, 44, 86, 66, 84, 95, 66, 65, 83, 73, + (4687) 83, 95, 84, 89, 80, 69, 95, 85, 80, 80, 69, 82, 95, 84, 82, 73, + (4703) 61, 52, 44, 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, 84, 89, 80, + (4719) 69, 95, 70, 79, 85, 82, 73, 69, 82, 61, 53, 44, 86, 66, 84, 95, + (4735) 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 86, 65, 82, 73, 65, + (4751) 66, 76, 69, 61, 54, 44, 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, + (4767) 84, 89, 80, 69, 95, 65, 78, 89, 61, 45, 49, 44, 86, 66, 84, 95, + (4783) 66, 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 73, 78, 86, 65, 76, + (4799) 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, 66, 65, 83, 73, 83, 95, + (4815) 84, 89, 80, 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 66, + (4831) 65, 83, 73, 83, 95, 84, 89, 80, 69, 95, 85, 78, 75, 78, 79, 87, + (4847) 78, 61, 45, 52, 125, 98, 97, 115, 105, 115, 59, 68, 83, 76, 95, + (4862) 79, 102, 102, 115, 101, 116, 32, 113, 117, 97, 110, 116, 105, + (4875) 116, 121, 95, 105, 100, 59, 105, 110, 116, 32, 110, 117, 109, 95, + (4889) 99, 111, 109, 112, 115, 59, 68, 83, 76, 95, 79, 102, 102, 115, + (4903) 101, 116, 32, 102, 116, 109, 112, 108, 95, 105, 100, 115, 95, 98, + (4917) 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, + (4931) 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, 59, 68, 83, + (4945) 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, 109, 95, 114, + (4959) 101, 99, 115, 59, 125, 59, 10, 47, 70, 105, 101, 108, 100, 32, + (4973) 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, 116, 32, + (4988) 70, 105, 101, 108, 100, 123, 68, 83, 76, 95, 79, 102, 102, 115, + (5002) 101, 116, 32, 102, 116, 109, 112, 108, 95, 105, 100, 59, 99, 104, + (5016) 97, 114, 32, 110, 97, 109, 101, 91, 54, 52, 93, 59, 68, 83, 76, + (5031) 95, 79, 102, 102, 115, 101, 116, 32, 117, 110, 105, 116, 115, 95, + (5045) 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, + (5059) 115, 116, 111, 114, 97, 103, 101, 95, 100, 101, 99, 111, 109, + (5072) 112, 95, 99, 97, 116, 95, 105, 100, 59, 101, 110, 117, 109, 32, + (5086) 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 123, 86, 66, 84, + (5100) 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, 67, 79, 77, 80, + (5116) 79, 78, 69, 78, 84, 61, 48, 44, 86, 66, 84, 95, 73, 78, 84, 69, + (5132) 82, 76, 69, 65, 86, 69, 95, 86, 69, 67, 84, 79, 82, 61, 49, 44, + (5148) 86, 66, 84, 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, 73, + (5164) 78, 68, 69, 80, 69, 78, 68, 69, 78, 84, 61, 50, 44, 86, 66, 84, + (5180) 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, 69, 95, 78, 79, 78, 69, + (5196) 61, 51, 44, 86, 66, 84, 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, + (5212) 69, 95, 65, 78, 89, 61, 45, 49, 44, 86, 66, 84, 95, 73, 78, 84, + (5228) 69, 82, 76, 69, 65, 86, 69, 95, 73, 78, 86, 65, 76, 73, 68, 61, + (5244) 45, 50, 44, 86, 66, 84, 95, 73, 78, 84, 69, 82, 76, 69, 65, 86, + (5260) 69, 95, 78, 65, 61, 45, 51, 44, 86, 66, 84, 95, 73, 78, 84, 69, + (5276) 82, 76, 69, 65, 86, 69, 95, 85, 78, 75, 78, 79, 87, 78, 61, 45, + (5292) 52, 125, 99, 111, 109, 112, 95, 105, 110, 116, 108, 118, 59, 68, + (5306) 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 105, 110, 100, 101, + (5320) 120, 105, 110, 103, 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, + (5334) 102, 115, 101, 116, 32, 100, 111, 102, 95, 97, 115, 115, 111, 99, + (5348) 95, 99, 97, 116, 95, 105, 100, 59, 105, 110, 116, 32, 97, 115, + (5362) 115, 111, 99, 95, 114, 97, 116, 105, 111, 59, 68, 83, 76, 95, 79, + (5377) 102, 102, 115, 101, 116, 32, 101, 118, 97, 108, 95, 100, 101, 99, + (5391) 111, 109, 112, 95, 99, 97, 116, 95, 105, 100, 59, 101, 110, 117, + (5405) 109, 32, 69, 118, 97, 108, 70, 117, 110, 99, 123, 86, 66, 84, 95, + (5420) 69, 86, 65, 76, 95, 70, 85, 78, 67, 95, 67, 79, 78, 83, 84, 65, + (5436) 78, 84, 61, 48, 44, 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, + (5452) 78, 67, 95, 85, 78, 73, 70, 79, 82, 77, 61, 49, 44, 86, 66, 84, + (5468) 95, 69, 86, 65, 76, 95, 70, 85, 78, 67, 95, 80, 87, 67, 79, 78, + (5484) 83, 84, 61, 50, 44, 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, + (5500) 78, 67, 95, 80, 87, 76, 73, 78, 69, 65, 82, 61, 51, 44, 86, 66, + (5516) 84, 95, 69, 86, 65, 76, 95, 70, 85, 78, 67, 95, 65, 78, 89, 61, + (5532) 45, 49, 44, 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, 78, 67, + (5548) 95, 73, 78, 86, 65, 76, 73, 68, 61, 45, 50, 44, 86, 66, 84, 95, + (5564) 69, 86, 65, 76, 95, 70, 85, 78, 67, 95, 78, 65, 61, 45, 51, 44, + (5580) 86, 66, 84, 95, 69, 86, 65, 76, 95, 70, 85, 78, 67, 95, 85, 78, + (5596) 75, 78, 79, 87, 78, 61, 45, 52, 125, 101, 118, 97, 108, 95, 102, + (5611) 117, 110, 99, 59, 105, 110, 116, 32, 105, 115, 95, 104, 111, 109, + (5625) 111, 103, 101, 110, 101, 111, 117, 115, 59, 105, 110, 116, 32, + (5638) 105, 115, 95, 99, 111, 111, 114, 100, 95, 102, 105, 101, 108, + (5651) 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 99, + (5665) 111, 109, 112, 95, 105, 100, 115, 95, 98, 108, 111, 98, 95, 105, + (5679) 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 99, + (5693) 111, 109, 112, 95, 111, 114, 100, 101, 114, 95, 98, 108, 111, 98, + (5707) 95, 105, 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, + (5721) 32, 118, 98, 97, 115, 105, 115, 95, 98, 108, 111, 98, 95, 105, + (5735) 100, 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 100, + (5749) 111, 102, 95, 98, 108, 111, 98, 95, 105, 100, 59, 68, 83, 76, 95, + (5764) 79, 102, 102, 115, 101, 116, 32, 98, 97, 115, 101, 95, 105, 100, + (5778) 59, 68, 83, 76, 95, 79, 102, 102, 115, 101, 116, 32, 110, 117, + (5792) 109, 95, 114, 101, 99, 115, 59, 125, 59, 10, 47, 109, 101, 116, + (5806) 97, 98, 108, 111, 98, 48, 48, 48, 48, 48, 46, 105, 110, 100, 101, + (5821) 120, 32, 68, 65, 84, 65, 83, 69, 84, 32, 115, 116, 114, 117, 99, + (5836) 116, 32, 73, 110, 100, 101, 120, 80, 97, 105, 114, 123, 68, 83, + (5850) 76, 95, 79, 102, 102, 115, 101, 116, 32, 105, 110, 100, 101, 120, + (5864) 59, 105, 110, 116, 32, 108, 101, 110, 103, 116, 104, 59, 125, 59, + (5878) 10, 47, 109, 101, 116, 97, 98, 108, 111, 98, 48, 48, 48, 48, 48, + (5893) 46, 98, 108, 111, 98, 32, 68, 65, 84, 65, 83, 69, 84, 32, 68, 83, + (5909) 76, 95, 79, 102, 102, 115, 101, 116, 59, 10 } } GROUP ".attributes" { @@ -460,52 +496,52 @@ GROUP "/" { } DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { - { - -604320037, - ".", - "don't import", - 1, - { - 0, - 0, - 0, - "none" - }, - { - 0, - 1, - 0, - "devel" - }, - { - 1, - 3, - 0, - "" - }, - { - 0, - 0, - 0, - "none" - }, - { - 1, - 2, - 1, - "" - }, - { - 1, - 2, - 0, - "" - }, - 1, - 0, - 1, - 0 - } + (0) { + -604320037, + ".", + "don't import", + 1, + { + 0, + 0, + 0, + "none" + }, + { + 0, + 1, + 0, + "devel" + }, + { + 1, + 3, + 0, + "" + }, + { + 0, + 0, + 0, + "none" + }, + { + 1, + 2, + 1, + "" + }, + { + 1, + 2, + 0, + "" + }, + 1, + 0, + 1, + 0 + } } } } @@ -522,7 +558,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 24 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { -1, 1, 0, @@ -531,7 +567,7 @@ GROUP "/" { 0, 1 }, - { + (1) { -1, 2, 0, @@ -540,7 +576,7 @@ GROUP "/" { 1, 1 }, - { + (2) { -1, 3, 0, @@ -549,7 +585,7 @@ GROUP "/" { 2, 1 }, - { + (3) { -1, 4, 0, @@ -558,7 +594,7 @@ GROUP "/" { 3, 1 }, - { + (4) { -1, 5, 0, @@ -567,7 +603,7 @@ GROUP "/" { 4, 1 }, - { + (5) { -1, 6, 0, @@ -576,7 +612,7 @@ GROUP "/" { 5, 1 }, - { + (6) { -1, 7, 0, @@ -585,7 +621,7 @@ GROUP "/" { 6, 1 }, - { + (7) { -1, 8, 0, @@ -594,7 +630,7 @@ GROUP "/" { 7, 1 }, - { + (8) { -1, 9, 0, @@ -603,7 +639,7 @@ GROUP "/" { 8, 1 }, - { + (9) { -1, 10, 0, @@ -612,7 +648,7 @@ GROUP "/" { 9, 1 }, - { + (10) { -1, 11, 0, @@ -621,7 +657,7 @@ GROUP "/" { 10, 1 }, - { + (11) { -1, 12, 0, @@ -630,7 +666,7 @@ GROUP "/" { 11, 1 }, - { + (12) { -1, 13, 0, @@ -639,7 +675,7 @@ GROUP "/" { 12, 1 }, - { + (13) { -1, 14, 0, @@ -648,7 +684,7 @@ GROUP "/" { 13, 1 }, - { + (14) { -1, 15, 0, @@ -657,7 +693,7 @@ GROUP "/" { 14, 1 }, - { + (15) { -1, 16, 0, @@ -666,7 +702,7 @@ GROUP "/" { 15, 1 }, - { + (16) { -1, 17, 0, @@ -675,7 +711,7 @@ GROUP "/" { 16, 1 }, - { + (17) { -1, 18, 0, @@ -684,7 +720,7 @@ GROUP "/" { 17, 1 }, - { + (18) { -1, 19, 0, @@ -693,7 +729,7 @@ GROUP "/" { 18, 1 }, - { + (19) { -1, 20, 0, @@ -702,7 +738,7 @@ GROUP "/" { 19, 1 }, - { + (20) { -1, 21, 0, @@ -711,7 +747,7 @@ GROUP "/" { 20, 1 }, - { + (21) { -1, 22, 0, @@ -720,7 +756,7 @@ GROUP "/" { 21, 1 }, - { + (22) { -1, 23, 0, @@ -729,7 +765,7 @@ GROUP "/" { 22, 1 }, - { + (23) { -1, 24, 0, @@ -770,35 +806,35 @@ GROUP "/" { } DATASPACE SIMPLE { ( 5 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { "nodes", TOPO, 0, 0, 1 }, - { + (1) { "elems", TOPO, 2, 1, 1 }, - { + (2) { "edges", USERD, 1, 2, 1 }, - { + (3) { "blocks", BLOCK, 2, 3, 1 }, - { + (4) { "side_sets", USERD, 1, @@ -843,7 +879,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 24 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { 0, 0, POINT, @@ -854,7 +890,7 @@ GROUP "/" { 0, 1 }, - { + (1) { 0, 1, MIXED, @@ -865,7 +901,7 @@ GROUP "/" { 1, 1 }, - { + (2) { 0, 3, NONE, @@ -876,7 +912,7 @@ GROUP "/" { 2, 1 }, - { + (3) { 0, 4, NONE, @@ -887,7 +923,7 @@ GROUP "/" { 3, 1 }, - { + (4) { 1, 0, POINT, @@ -898,7 +934,7 @@ GROUP "/" { 4, 1 }, - { + (5) { 1, 1, QUAD, @@ -909,7 +945,7 @@ GROUP "/" { 5, 1 }, - { + (6) { 1, 3, NONE, @@ -920,7 +956,7 @@ GROUP "/" { 6, 1 }, - { + (7) { 2, 0, POINT, @@ -931,7 +967,7 @@ GROUP "/" { 7, 1 }, - { + (8) { 2, 1, MIXED, @@ -942,7 +978,7 @@ GROUP "/" { 8, 1 }, - { + (9) { 2, 3, NONE, @@ -953,7 +989,7 @@ GROUP "/" { 9, 1 }, - { + (10) { 3, 0, POINT, @@ -964,7 +1000,7 @@ GROUP "/" { 10, 1 }, - { + (11) { 3, 1, QUAD, @@ -975,7 +1011,7 @@ GROUP "/" { 11, 1 }, - { + (12) { 3, 3, NONE, @@ -986,7 +1022,7 @@ GROUP "/" { 12, 1 }, - { + (13) { 4, 0, POINT, @@ -997,7 +1033,7 @@ GROUP "/" { 13, 1 }, - { + (14) { 4, 2, LINE, @@ -1008,7 +1044,7 @@ GROUP "/" { 14, 1 }, - { + (15) { 5, 0, POINT, @@ -1019,7 +1055,7 @@ GROUP "/" { 15, 1 }, - { + (16) { 5, 2, LINE, @@ -1030,7 +1066,7 @@ GROUP "/" { 16, 1 }, - { + (17) { 6, 0, POINT, @@ -1041,7 +1077,7 @@ GROUP "/" { 17, 1 }, - { + (18) { 7, 0, POINT, @@ -1052,7 +1088,7 @@ GROUP "/" { 18, 1 }, - { + (19) { 7, 1, TRI, @@ -1063,7 +1099,7 @@ GROUP "/" { 19, 1 }, - { + (20) { 7, 3, NONE, @@ -1074,7 +1110,7 @@ GROUP "/" { 20, 1 }, - { + (21) { 8, 0, POINT, @@ -1085,7 +1121,7 @@ GROUP "/" { 21, 1 }, - { + (22) { 8, 1, QUAD, @@ -1096,7 +1132,7 @@ GROUP "/" { 22, 1 }, - { + (23) { 8, 3, NONE, @@ -1157,7 +1193,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 14 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { 1, "X", -7, @@ -1177,7 +1213,7 @@ GROUP "/" { 0, 1 }, - { + (1) { 1, "Y", -7, @@ -1197,7 +1233,7 @@ GROUP "/" { 1, 1 }, - { + (2) { 0, "coords", -7, @@ -1217,7 +1253,7 @@ GROUP "/" { 2, 1 }, - { + (3) { 2, "distribution factors", -5, @@ -1237,7 +1273,7 @@ GROUP "/" { 3, 1 }, - { + (4) { 3, "temperature", -7, @@ -1257,7 +1293,7 @@ GROUP "/" { 4, 1 }, - { + (5) { 1, "dX", -7, @@ -1277,7 +1313,7 @@ GROUP "/" { 5, 1 }, - { + (6) { 1, "dY", -7, @@ -1297,7 +1333,7 @@ GROUP "/" { 6, 1 }, - { + (7) { 0, "displacements", -7, @@ -1317,7 +1353,7 @@ GROUP "/" { 7, 1 }, - { + (8) { 5, "Sx", -7, @@ -1337,7 +1373,7 @@ GROUP "/" { 8, 1 }, - { + (9) { 5, "Sy", -7, @@ -1357,7 +1393,7 @@ GROUP "/" { 9, 1 }, - { + (10) { 5, "Sxy", -7, @@ -1377,7 +1413,7 @@ GROUP "/" { 10, 1 }, - { + (11) { 4, "stress", -7, @@ -1397,7 +1433,7 @@ GROUP "/" { 11, 1 }, - { + (12) { 6, "temperature", -7, @@ -1417,7 +1453,7 @@ GROUP "/" { 12, 1 }, - { + (13) { 7, "pressure", -7, @@ -1486,7 +1522,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 8 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { "coordinate_tmpl", 0, VECTOR, @@ -1497,7 +1533,7 @@ GROUP "/" { 0, 1 }, - { + (1) { "coordinate_tmpl_component", 0, SCALAR, @@ -1508,7 +1544,7 @@ GROUP "/" { 1, 1 }, - { + (2) { "distrib_factors_tmpl", 5, SCALAR, @@ -1519,7 +1555,7 @@ GROUP "/" { 2, 1 }, - { + (3) { "temp_on_ns1_tmpl", 6, SCALAR, @@ -1530,7 +1566,7 @@ GROUP "/" { 3, 1 }, - { + (4) { "stress_on_cell_1_tmpl", 1, SYM_TENSOR, @@ -1541,7 +1577,7 @@ GROUP "/" { 4, 1 }, - { + (5) { "stress_on_cell_1_tmpl_component", 1, SCALAR, @@ -1552,7 +1588,7 @@ GROUP "/" { 5, 1 }, - { + (6) { "temp_on_cell_2_tmpl", 2, SCALAR, @@ -1563,7 +1599,7 @@ GROUP "/" { 6, 1 }, - { + (7) { "pressure_on_ss1", 4, SCALAR, @@ -1602,7 +1638,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 24 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1617,7 +1653,7 @@ GROUP "/" { 0, 1 }, - { + (1) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1632,7 +1668,7 @@ GROUP "/" { 1, 1 }, - { + (2) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1647,7 +1683,7 @@ GROUP "/" { 2, 1 }, - { + (3) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1662,7 +1698,7 @@ GROUP "/" { 3, 1 }, - { + (4) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1677,7 +1713,7 @@ GROUP "/" { 4, 1 }, - { + (5) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1692,7 +1728,7 @@ GROUP "/" { 5, 1 }, - { + (6) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1707,7 +1743,7 @@ GROUP "/" { 6, 1 }, - { + (7) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1722,7 +1758,7 @@ GROUP "/" { 7, 1 }, - { + (8) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1737,7 +1773,7 @@ GROUP "/" { 8, 1 }, - { + (9) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1752,7 +1788,7 @@ GROUP "/" { 9, 1 }, - { + (10) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1767,7 +1803,7 @@ GROUP "/" { 10, 1 }, - { + (11) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1782,7 +1818,7 @@ GROUP "/" { 11, 1 }, - { + (12) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1797,7 +1833,7 @@ GROUP "/" { 12, 1 }, - { + (13) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1812,7 +1848,7 @@ GROUP "/" { 13, 1 }, - { + (14) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1827,7 +1863,7 @@ GROUP "/" { 14, 1 }, - { + (15) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1842,7 +1878,7 @@ GROUP "/" { 15, 1 }, - { + (16) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1857,7 +1893,7 @@ GROUP "/" { 16, 1 }, - { + (17) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1872,7 +1908,7 @@ GROUP "/" { 17, 1 }, - { + (18) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1887,7 +1923,7 @@ GROUP "/" { 18, 1 }, - { + (19) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1902,7 +1938,7 @@ GROUP "/" { 19, 1 }, - { + (20) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1917,7 +1953,7 @@ GROUP "/" { 20, 1 }, - { + (21) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1932,7 +1968,7 @@ GROUP "/" { 21, 1 }, - { + (22) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -1947,7 +1983,7 @@ GROUP "/" { 22, 1 }, - { + (23) { 1, { [ 0, 0, 0, 0, 0, 0, 0, 0 ] @@ -2009,7 +2045,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 21 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { 1, 0, -2, @@ -2023,7 +2059,7 @@ GROUP "/" { 0, 1 }, - { + (1) { 1, 1, -2, @@ -2037,7 +2073,7 @@ GROUP "/" { 1, 1 }, - { + (2) { 2, 0, -2, @@ -2051,7 +2087,7 @@ GROUP "/" { 2, 1 }, - { + (3) { 2, 1, -2, @@ -2065,7 +2101,7 @@ GROUP "/" { 3, 1 }, - { + (4) { 7, 0, -2, @@ -2079,7 +2115,7 @@ GROUP "/" { 4, 1 }, - { + (5) { 7, 1, -2, @@ -2093,7 +2129,7 @@ GROUP "/" { 5, 1 }, - { + (6) { 8, 0, -2, @@ -2107,7 +2143,7 @@ GROUP "/" { 6, 1 }, - { + (7) { 8, 1, -2, @@ -2121,7 +2157,7 @@ GROUP "/" { 7, 1 }, - { + (8) { 3, 0, -2, @@ -2135,7 +2171,7 @@ GROUP "/" { 8, 1 }, - { + (9) { 3, 1, -2, @@ -2149,7 +2185,7 @@ GROUP "/" { 9, 1 }, - { + (10) { 4, 0, -2, @@ -2163,7 +2199,7 @@ GROUP "/" { 10, 1 }, - { + (11) { 5, 0, -2, @@ -2177,7 +2213,7 @@ GROUP "/" { 11, 1 }, - { + (12) { 6, 0, -2, @@ -2191,7 +2227,7 @@ GROUP "/" { 12, 1 }, - { + (13) { 1, 3, -2, @@ -2205,7 +2241,7 @@ GROUP "/" { 13, 1 }, - { + (14) { 7, 3, -2, @@ -2219,7 +2255,7 @@ GROUP "/" { 14, 1 }, - { + (15) { 8, 3, -2, @@ -2233,7 +2269,7 @@ GROUP "/" { 15, 1 }, - { + (16) { 3, 3, -2, @@ -2247,7 +2283,7 @@ GROUP "/" { 16, 1 }, - { + (17) { 1, 1, -2, @@ -2261,7 +2297,7 @@ GROUP "/" { 17, 1 }, - { + (18) { 7, 1, -2, @@ -2275,7 +2311,7 @@ GROUP "/" { 18, 1 }, - { + (19) { 8, 1, -2, @@ -2289,7 +2325,7 @@ GROUP "/" { 19, 1 }, - { + (20) { 3, 1, -2, @@ -2341,7 +2377,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 9 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { 0, "TOP_CELL", 2, @@ -2356,7 +2392,7 @@ GROUP "/" { 0, 1 }, - { + (1) { 0, "CELL_1", 2, @@ -2371,7 +2407,7 @@ GROUP "/" { 1, 1 }, - { + (2) { 0, "CELL_2", 2, @@ -2386,7 +2422,7 @@ GROUP "/" { 2, 1 }, - { + (3) { 0, "CELL_3", 2, @@ -2401,7 +2437,7 @@ GROUP "/" { 3, 1 }, - { + (4) { 0, "SIDE_SET_1", 1, @@ -2416,7 +2452,7 @@ GROUP "/" { 4, 1 }, - { + (5) { 0, "SIDE_SET_2", 1, @@ -2431,7 +2467,7 @@ GROUP "/" { 5, 1 }, - { + (6) { 0, "NODE_SET_1", 0, @@ -2446,7 +2482,7 @@ GROUP "/" { 6, 1 }, - { + (7) { 0, "CELL_2_TRIS", 2, @@ -2461,7 +2497,7 @@ GROUP "/" { 7, 1 }, - { + (8) { 0, "CELL_2_QUADS", 2, @@ -2482,59 +2518,60 @@ GROUP "/" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 36 ) / ( 36 ) } DATA { - 0, 4, 1, 4, 2, 4, 2.5, 4, 0, 3, 1, 3, 2, 3, 2.5, 3, 0, 2, 1, 2, 2, 2, - 2.5, 2, 0, 1, 2, 1, 2.5, 1, 0, 0, 2, 0, 2.5, 0 + (0) 0, 4, 1, 4, 2, 4, 2.5, 4, 0, 3, 1, 3, 2, 3, 2.5, 3, 0, 2, 1, 2, 2, + (21) 2, 2.5, 2, 0, 1, 2, 1, 2.5, 1, 0, 0, 2, 0, 2.5, 0 } } DATASET "field-displacements_0007" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 36 ) / ( 36 ) } DATA { - 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, - 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, - 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25 + (0) 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, + (11) 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, + (22) 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, + (33) 0.25, 0.25, 0.25 } } DATASET "field-distribution_factors_0003" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 4, 3, 2, 1, 0 + (0) 4, 3, 2, 1, 0 } } DATASET "field-pressure_0013" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - 45, 55 + (0) 45, 55 } } DATASET "field-stress_0011" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 12 ) / ( 12 ) } DATA { - 0.5, 0.25, 0.5, 0.5, 0.25, 0.5, 0.5, 0.25, 0.5, 0.5, 0.25, 0.5 + (0) 0.5, 0.25, 0.5, 0.5, 0.25, 0.5, 0.5, 0.25, 0.5, 0.5, 0.25, 0.5 } } DATASET "field-temperature_0004" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 100, 150, 150, 100, 75 + (0) 100, 150, 150, 100, 75 } } DATASET "field-temperature_0012" { DATATYPE H5T_IEEE_F32BE DATASPACE SIMPLE { ( 7 ) / ( 7 ) } DATA { - 75, 95, 120, 80, 115, 85, 110 + (0) 75, 95, 120, 80, 115, 85, 110 } } DATASET "metablob00000.blob" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 19 ) / ( H5S_UNLIMITED ) } DATA { - 1, 7, 8, 3, -2, -2, -2, -2, -2, -2, -2, -2, 0, 1, 5, 6, 8, 9, 10 + (0) 1, 7, 8, 3, -2, -2, -2, -2, -2, -2, -2, -2, 0, 1, 5, 6, 8, 9, 10 } } DATASET "metablob00000.index" { @@ -2544,43 +2581,43 @@ GROUP "/" { } DATASPACE SIMPLE { ( 10 ) / ( H5S_UNLIMITED ) } DATA { - { + (0) { 0, 4 }, - { + (1) { 4, 2 }, - { + (2) { 6, 1 }, - { + (3) { 7, 2 }, - { + (4) { 9, 1 }, - { + (5) { 10, 1 }, - { + (6) { 11, 1 }, - { + (7) { 12, 2 }, - { + (8) { 14, 2 }, - { + (9) { 16, 3 } @@ -2590,119 +2627,119 @@ GROUP "/" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 9 ) / ( 9 ) } DATA { - 1, 2, 3, 5, 6, 7, 9, 10, 11 + (0) 1, 2, 3, 5, 6, 7, 9, 10, 11 } } DATASET "ssrel-_0001" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - 1, 2, 4, 5 + (0) 1, 2, 4, 5 } } DATASET "ssrel-_0002" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 7 ) / ( 7 ) } DATA { - 9, 10, 11, 13, 14, 16, 17 + (0) 9, 10, 11, 13, 14, 16, 17 } } DATASET "ssrel-_0003" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - 7, 8, 9, 11 + (0) 7, 8, 9, 11 } } DATASET "ssrel-_0004" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 9, 10, 11, 13, 14 + (0) 9, 10, 11, 13, 14 } } DATASET "ssrel-_0005" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 3 ) / ( 3 ) } DATA { - 7, 8, 9 + (0) 7, 8, 9 } } DATASET "ssrel-_0006" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - 13, 14, 16, 17 + (0) 13, 14, 16, 17 } } DATASET "ssrel-_0007" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { - 11 + (0) 11 } } DATASET "ssrel-_0008" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - 3, 4, 7, 8, 11, 12, 14, 15, 17, 18 + (0) 3, 4, 7, 8, 11, 12, 14, 15, 17, 18 } } DATASET "ssrel-_0009" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - 3, 6, 10, 12 + (0) 3, 6, 10, 12 } } DATASET "ssrel-_0010" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 3 ) / ( 3 ) } DATA { - 9, 10, 11 + (0) 9, 10, 11 } } DATASET "ssrel-_0011" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 1, 5, 9, 13, 16 + (0) 1, 5, 9, 13, 16 } } DATASET "ssrel-_0012" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { - 4, 8, 12, 15, 18 + (0) 4, 8, 12, 15, 18 } } DATASET "toporel-_0017" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 16 ) / ( 16 ) } DATA { - 1, 2, 6, 5, 2, 3, 7, 6, 5, 6, 10, 9, 6, 7, 11, 10 + (0) 1, 2, 6, 5, 2, 3, 7, 6, 5, 6, 10, 9, 6, 7, 11, 10 } } DATASET "toporel-_0018" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 9 ) / ( 9 ) } DATA { - 9, 10, 13, 10, 14, 13, 10, 11, 14 + (0) 9, 10, 13, 10, 14, 13, 10, 11, 14 } } DATASET "toporel-_0019" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - 13, 14, 17, 16 + (0) 13, 14, 17, 16 } } DATASET "toporel-_0020" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 16 ) / ( 16 ) } DATA { - 3, 4, 8, 7, 7, 8, 12, 11, 11, 12, 15, 14, 14, 15, 18, 17 + (0) 3, 4, 8, 7, 7, 8, 12, 11, 11, 12, 15, 14, 14, 15, 18, 17 } } } diff --git a/tools/testfiles/tsplit_file.ddl b/tools/testfiles/tsplit_file.ddl index f778cfa..eb3b911 100644 --- a/tools/testfiles/tsplit_file.ddl +++ b/tools/testfiles/tsplit_file.ddl @@ -19,16 +19,16 @@ GROUP "/" { DATATYPE H5T_STD_I32BE DATASPACE SIMPLE { ( 10, 15 ) / ( 10, 15 ) } DATA { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 + (0,0) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + (1,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + (2,0) 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + (3,0) 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (4,0) 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + (5,0) 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + (6,0) 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + (7,0) 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + (8,0) 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + (9,0) 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 } } } diff --git a/tools/testfiles/tstr-1.ddl b/tools/testfiles/tstr-1.ddl index ae0ba5a..6413084 100644 --- a/tools/testfiles/tstr-1.ddl +++ b/tools/testfiles/tstr-1.ddl @@ -15,239 +15,239 @@ GROUP "/" { } DATASPACE SIMPLE { ( 3, 6 ) / ( 3, 6 ) } DATA { - { + (0,0) { [ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, - 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, - 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256 ], + %s 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, + %s 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (0,1) { [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, - 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289 ], + %s 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (0,2) { [ 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324 ], + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (0,3) { [ 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361 ], + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (0,4) { [ 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, - 121, 144, 169, 196, 225, 256, 289, 324, 361, 400 ], + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, + %s 121, 144, 169, 196, 225, 256, 289, 324, 361, 400 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (0,5) { [ 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, - 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, - 144, 169, 196, 225, 256, 289, 324, 361, 400, 441 ], + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, + %s 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, + %s 144, 169, 196, 225, 256, 289, 324, 361, 400, 441 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (1,0) { [ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, - 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, - 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256 ], + %s 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, + %s 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (1,1) { [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, - 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289 ], + %s 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (1,2) { [ 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324 ], + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (1,3) { [ 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361 ], + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (1,4) { [ 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, - 121, 144, 169, 196, 225, 256, 289, 324, 361, 400 ], + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, + %s 121, 144, 169, 196, 225, 256, 289, 324, 361, 400 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (1,5) { [ 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, - 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, - 144, 169, 196, 225, 256, 289, 324, 361, 400, 441 ], + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, + %s 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, + %s 144, 169, 196, 225, 256, 289, 324, 361, 400, 441 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (2,0) { [ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, - 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, - 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256 ], + %s 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, + %s 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (2,1) { [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, - 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289 ], + %s 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (2,2) { [ 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, - 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324 ], + %s 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (2,3) { [ 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, - 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361 ], + %s 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (2,4) { [ 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, - 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, - 121, 144, 169, 196, 225, 256, 289, 324, 361, 400 ], + %s 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, + %s 121, 144, 169, 196, 225, 256, 289, 324, 361, 400 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] }, - { + (2,5) { [ 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, - 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, - 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, - 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, - 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, - 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, - 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, - 144, 169, 196, 225, 256, 289, 324, 361, 400, 441 ], + %s 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, + %s 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, + %s 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, + %s 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, + %s 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, + %s 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, + %s 144, 169, 196, 225, 256, 289, 324, 361, 400, 441 ], [ "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", - "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", + %s "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678", "abcdefgh12345678abcdefgh12345678" ] } } } @@ -260,9 +260,9 @@ GROUP "/" { } DATASPACE SIMPLE { ( 3, 4 ) / ( 3, 4 ) } DATA { - "s1", "s2", "s3", "s4", - "s5", "s6", "s7", "s8", - "s9", "s0", "s1", "s2" + (0,0) "s1", "s2", "s3", "s4", + (1,0) "s5", "s6", "s7", "s8", + (2,0) "s9", "s0", "s1", "s2" } } DATASET "string2" { @@ -274,11 +274,11 @@ GROUP "/" { } DATASPACE SIMPLE { ( 20 ) / ( 20 ) } DATA { - "ab cd ef1 ", "ab cd ef2 ", "ab cd ef3 ", "ab cd ef4 ", - "ab cd ef5 ", "ab cd ef6 ", "ab cd ef7 ", "ab cd ef8 ", - "ab cd ef9 ", "ab cd ef0 ", "ab cd ef1 ", "ab cd ef2 ", - "ab cd ef3 ", "ab cd ef4 ", "ab cd ef5 ", "ab cd ef6 ", - "ab cd ef7 ", "ab cd ef8 ", "ab cd ef9 ", "ab cd ef0 " + (0) "ab cd ef1 ", "ab cd ef2 ", "ab cd ef3 ", "ab cd ef4 ", + (4) "ab cd ef5 ", "ab cd ef6 ", "ab cd ef7 ", "ab cd ef8 ", + (8) "ab cd ef9 ", "ab cd ef0 ", "ab cd ef1 ", "ab cd ef2 ", + (12) "ab cd ef3 ", "ab cd ef4 ", "ab cd ef5 ", "ab cd ef6 ", + (16) "ab cd ef7 ", "ab cd ef8 ", "ab cd ef9 ", "ab cd ef0 " } } DATASET "string3" { @@ -290,15 +290,15 @@ GROUP "/" { } DATASPACE SIMPLE { ( 27 ) / ( 27 ) } DATA { - "abcd0\000\000\000", "abcd1\000\000\000", "abcd2\000\000\000", - "abcd3\000\000\000", "abcd4\000\000\000", "abcd5\000\000\000", - "abcd6\000\000\000", "abcd7\000\000\000", "abcd8\000\000\000", - "abcd9\000\000\000", "abcd0\000\000\000", "abcd1\000\000\000", - "abcd2\000\000\000", "abcd3\000\000\000", "abcd4\000\000\000", - "abcd5\000\000\000", "abcd6\000\000\000", "abcd7\000\000\000", - "abcd8\000\000\000", "abcd9\000\000\000", "abcd0\000\000\000", - "abcd1\000\000\000", "abcd2\000\000\000", "abcd3\000\000\000", - "abcd4\000\000\000", "abcd5\000\000\000", "abcd6\000\000\000" + (0) "abcd0\000\000\000", "abcd1\000\000\000", "abcd2\000\000\000", + (3) "abcd3\000\000\000", "abcd4\000\000\000", "abcd5\000\000\000", + (6) "abcd6\000\000\000", "abcd7\000\000\000", "abcd8\000\000\000", + (9) "abcd9\000\000\000", "abcd0\000\000\000", "abcd1\000\000\000", + (12) "abcd2\000\000\000", "abcd3\000\000\000", "abcd4\000\000\000", + (15) "abcd5\000\000\000", "abcd6\000\000\000", "abcd7\000\000\000", + (18) "abcd8\000\000\000", "abcd9\000\000\000", "abcd0\000\000\000", + (21) "abcd1\000\000\000", "abcd2\000\000\000", "abcd3\000\000\000", + (24) "abcd4\000\000\000", "abcd5\000\000\000", "abcd6\000\000\000" } } DATASET "string4" { @@ -310,9 +310,9 @@ GROUP "/" { } DATASPACE SIMPLE { ( 3 ) / ( 3 ) } DATA { - "s1234567890123456789 ", - "s1234567890123456789 ", - "s1234567890123456789 " + (0) "s1234567890123456789 ", + (1) "s1234567890123456789 ", + (2) "s1234567890123456789 " } } } diff --git a/tools/testfiles/tstr-2.ddl b/tools/testfiles/tstr-2.ddl index 5a3c47b..df5aba2 100644 --- a/tools/testfiles/tstr-2.ddl +++ b/tools/testfiles/tstr-2.ddl @@ -13,16 +13,16 @@ GROUP "/" { } DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - "This is row 0 of type H5T_STR_NULLTERM of", - "This is row 1 of type H5T_STR_NULLTERM of", - "This is row 2 of type H5T_STR_NULLTERM of", - "This is row 3 of type H5T_STR_NULLTERM of", - "This is row 4 of type H5T_STR_NULLTERM of", - "This is row 5 of type H5T_STR_NULLTERM of", - "This is row 6 of type H5T_STR_NULLTERM of", - "This is row 7 of type H5T_STR_NULLTERM of", - "This is row 8 of type H5T_STR_NULLTERM of", - "This is row 9 of type H5T_STR_NULLTERM of" + (0) "This is row 0 of type H5T_STR_NULLTERM of", + (1) "This is row 1 of type H5T_STR_NULLTERM of", + (2) "This is row 2 of type H5T_STR_NULLTERM of", + (3) "This is row 3 of type H5T_STR_NULLTERM of", + (4) "This is row 4 of type H5T_STR_NULLTERM of", + (5) "This is row 5 of type H5T_STR_NULLTERM of", + (6) "This is row 6 of type H5T_STR_NULLTERM of", + (7) "This is row 7 of type H5T_STR_NULLTERM of", + (8) "This is row 8 of type H5T_STR_NULLTERM of", + (9) "This is row 9 of type H5T_STR_NULLTERM of" } ATTRIBUTE "attr1" { DATATYPE H5T_STRING { @@ -33,7 +33,7 @@ GROUP "/" { } DATASPACE SIMPLE { ( 3 ) / ( 3 ) } DATA { - "0123456789", "abcdefghij", "ABCDEFGHIJ" + (0) "0123456789", "abcdefghij", "ABCDEFGHIJ" } } } @@ -48,16 +48,16 @@ GROUP "/" { } DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - "This is row 0 of type H5T_STR_NULLTERM of string ", - "This is row 1 of type H5T_STR_NULLTERM of string ", - "This is row 2 of type H5T_STR_NULLTERM of string ", - "This is row 3 of type H5T_STR_NULLTERM of string ", - "This is row 4 of type H5T_STR_NULLTERM of string ", - "This is row 5 of type H5T_STR_NULLTERM of string ", - "This is row 6 of type H5T_STR_NULLTERM of string ", - "This is row 7 of type H5T_STR_NULLTERM of string ", - "This is row 8 of type H5T_STR_NULLTERM of string ", - "This is row 9 of type H5T_STR_NULLTERM of string " + (0) "This is row 0 of type H5T_STR_NULLTERM of string ", + (1) "This is row 1 of type H5T_STR_NULLTERM of string ", + (2) "This is row 2 of type H5T_STR_NULLTERM of string ", + (3) "This is row 3 of type H5T_STR_NULLTERM of string ", + (4) "This is row 4 of type H5T_STR_NULLTERM of string ", + (5) "This is row 5 of type H5T_STR_NULLTERM of string ", + (6) "This is row 6 of type H5T_STR_NULLTERM of string ", + (7) "This is row 7 of type H5T_STR_NULLTERM of string ", + (8) "This is row 8 of type H5T_STR_NULLTERM of string ", + (9) "This is row 9 of type H5T_STR_NULLTERM of string " } } } @@ -71,16 +71,16 @@ GROUP "/" { } DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - "This is row 0 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 1 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 2 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 3 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 4 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 5 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 6 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 7 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 8 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", - "This is row 9 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000" + (0) "This is row 0 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (1) "This is row 1 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (2) "This is row 2 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (3) "This is row 3 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (4) "This is row 4 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (5) "This is row 5 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (6) "This is row 6 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (7) "This is row 7 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (8) "This is row 8 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000", + (9) "This is row 9 of type H5T_STR_NULLPAD of\000\000\000\000\000\000\000\000\000\000" } } } @@ -94,16 +94,16 @@ GROUP "/" { } DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - "This is row 0 of type H5T_STR_NULLPAD of string ar", - "This is row 1 of type H5T_STR_NULLPAD of string ar", - "This is row 2 of type H5T_STR_NULLPAD of string ar", - "This is row 3 of type H5T_STR_NULLPAD of string ar", - "This is row 4 of type H5T_STR_NULLPAD of string ar", - "This is row 5 of type H5T_STR_NULLPAD of string ar", - "This is row 6 of type H5T_STR_NULLPAD of string ar", - "This is row 7 of type H5T_STR_NULLPAD of string ar", - "This is row 8 of type H5T_STR_NULLPAD of string ar", - "This is row 9 of type H5T_STR_NULLPAD of string ar" + (0) "This is row 0 of type H5T_STR_NULLPAD of string ar", + (1) "This is row 1 of type H5T_STR_NULLPAD of string ar", + (2) "This is row 2 of type H5T_STR_NULLPAD of string ar", + (3) "This is row 3 of type H5T_STR_NULLPAD of string ar", + (4) "This is row 4 of type H5T_STR_NULLPAD of string ar", + (5) "This is row 5 of type H5T_STR_NULLPAD of string ar", + (6) "This is row 6 of type H5T_STR_NULLPAD of string ar", + (7) "This is row 7 of type H5T_STR_NULLPAD of string ar", + (8) "This is row 8 of type H5T_STR_NULLPAD of string ar", + (9) "This is row 9 of type H5T_STR_NULLPAD of string ar" } } } @@ -117,16 +117,16 @@ GROUP "/" { } DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - "This is row 0 of type H5T_STR_SPACEPAD of ", - "This is row 1 of type H5T_STR_SPACEPAD of ", - "This is row 2 of type H5T_STR_SPACEPAD of ", - "This is row 3 of type H5T_STR_SPACEPAD of ", - "This is row 4 of type H5T_STR_SPACEPAD of ", - "This is row 5 of type H5T_STR_SPACEPAD of ", - "This is row 6 of type H5T_STR_SPACEPAD of ", - "This is row 7 of type H5T_STR_SPACEPAD of ", - "This is row 8 of type H5T_STR_SPACEPAD of ", - "This is row 9 of type H5T_STR_SPACEPAD of " + (0) "This is row 0 of type H5T_STR_SPACEPAD of ", + (1) "This is row 1 of type H5T_STR_SPACEPAD of ", + (2) "This is row 2 of type H5T_STR_SPACEPAD of ", + (3) "This is row 3 of type H5T_STR_SPACEPAD of ", + (4) "This is row 4 of type H5T_STR_SPACEPAD of ", + (5) "This is row 5 of type H5T_STR_SPACEPAD of ", + (6) "This is row 6 of type H5T_STR_SPACEPAD of ", + (7) "This is row 7 of type H5T_STR_SPACEPAD of ", + (8) "This is row 8 of type H5T_STR_SPACEPAD of ", + (9) "This is row 9 of type H5T_STR_SPACEPAD of " } } } @@ -140,16 +140,16 @@ GROUP "/" { } DATASPACE SIMPLE { ( 10 ) / ( 10 ) } DATA { - "This is row 0 of type H5T_STR_SPACEPAD of string a", - "This is row 1 of type H5T_STR_SPACEPAD of string a", - "This is row 2 of type H5T_STR_SPACEPAD of string a", - "This is row 3 of type H5T_STR_SPACEPAD of string a", - "This is row 4 of type H5T_STR_SPACEPAD of string a", - "This is row 5 of type H5T_STR_SPACEPAD of string a", - "This is row 6 of type H5T_STR_SPACEPAD of string a", - "This is row 7 of type H5T_STR_SPACEPAD of string a", - "This is row 8 of type H5T_STR_SPACEPAD of string a", - "This is row 9 of type H5T_STR_SPACEPAD of string a" + (0) "This is row 0 of type H5T_STR_SPACEPAD of string a", + (1) "This is row 1 of type H5T_STR_SPACEPAD of string a", + (2) "This is row 2 of type H5T_STR_SPACEPAD of string a", + (3) "This is row 3 of type H5T_STR_SPACEPAD of string a", + (4) "This is row 4 of type H5T_STR_SPACEPAD of string a", + (5) "This is row 5 of type H5T_STR_SPACEPAD of string a", + (6) "This is row 6 of type H5T_STR_SPACEPAD of string a", + (7) "This is row 7 of type H5T_STR_SPACEPAD of string a", + (8) "This is row 8 of type H5T_STR_SPACEPAD of string a", + (9) "This is row 9 of type H5T_STR_SPACEPAD of string a" } } } diff --git a/tools/testfiles/tvldtypes1.ddl b/tools/testfiles/tvldtypes1.ddl index cc6c838..def343f 100644 --- a/tools/testfiles/tvldtypes1.ddl +++ b/tools/testfiles/tvldtypes1.ddl @@ -7,21 +7,21 @@ GROUP "/" { DATATYPE H5T_VLEN { H5T_STD_I32LE} DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - (0), (10, 11), (20, 21, 22), (30, 31, 32, 33) + (0) (0), (10, 11), (20, 21, 22), (30, 31, 32, 33) } } DATASET "Dataset2.0" { DATATYPE H5T_VLEN { H5T_IEEE_F32LE} DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - (0), (10, 10.1), (20, 20.1, 20.2), (30, 30.1, 30.2, 30.3) + (0) (0), (10, 10.1), (20, 20.1, 20.2), (30, 30.1, 30.2, 30.3) } } DATASET "Dataset3.0" { DATATYPE H5T_VLEN { H5T_STD_I32LE} DATASPACE SCALAR DATA { - (0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72) + (0) (0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72) } } } diff --git a/tools/testfiles/tvldtypes2.ddl b/tools/testfiles/tvldtypes2.ddl index ed516de..69319a1 100644 --- a/tools/testfiles/tvldtypes2.ddl +++ b/tools/testfiles/tvldtypes2.ddl @@ -7,8 +7,8 @@ GROUP "/" { DATATYPE H5T_VLEN { H5T_VLEN { H5T_STD_U32LE}} DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - ((0)), ((100), (110, 111)), ((200), (210, 211), (220, 221, 222)), - ((300), (310, 311), (320, 321, 322), (330, 331, 332, 333)) + (0) ((0)), ((100), (110, 111)), ((200), (210, 211), (220, 221, 222)), + (3) ((300), (310, 311), (320, 321, 322), (330, 331, 332, 333)) } } } diff --git a/tools/testfiles/tvldtypes3.ddl b/tools/testfiles/tvldtypes3.ddl index ad9579b..3c65a1b 100644 --- a/tools/testfiles/tvldtypes3.ddl +++ b/tools/testfiles/tvldtypes3.ddl @@ -11,22 +11,22 @@ GROUP "/" { } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - { + (0) { 0, 0, (0) }, - { + (1) { 10, 6.66667, (10, 11) }, - { + (2) { 20, 13.3333, (20, 21, 22) }, - { + (3) { 30, 20, (30, 31, 32, 33) diff --git a/tools/testfiles/tvldtypes4.ddl b/tools/testfiles/tvldtypes4.ddl index 73f7037..0804e60 100644 --- a/tools/testfiles/tvldtypes4.ddl +++ b/tools/testfiles/tvldtypes4.ddl @@ -10,18 +10,18 @@ GROUP "/" { }} DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - ({ + (0) ({ 0, 0 }), - ({ + (1) ({ 10, 6.66667 }, { 11, 7 }), - ({ + (2) ({ 20, 13.3333 }, { @@ -31,7 +31,7 @@ GROUP "/" { 22, 14 }), - ({ + (3) ({ 30, 20 }, { diff --git a/tools/testfiles/tvldtypes5.ddl b/tools/testfiles/tvldtypes5.ddl index d199037..b9eb34e 100644 --- a/tools/testfiles/tvldtypes5.ddl +++ b/tools/testfiles/tvldtypes5.ddl @@ -7,7 +7,7 @@ GROUP "/" { DATATYPE H5T_VLEN { H5T_STD_U32LE} DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - (0, 2, 4, 6, 8), (), (0, 2, 4, 6, 8, 10, 12), () + (0) (0, 2, 4, 6, 8), (), (0, 2, 4, 6, 8, 10, 12), () } } } diff --git a/tools/testfiles/tvlstr.ddl b/tools/testfiles/tvlstr.ddl index aa19d89..66da94e 100644 --- a/tools/testfiles/tvlstr.ddl +++ b/tools/testfiles/tvlstr.ddl @@ -19,9 +19,9 @@ GROUP "/" { } DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - "Four score and seven years ago our forefathers brought forth on this continent a new nation,", - "conceived in liberty and dedicated to the proposition that all men are created equal.", - "", NULL + (0) "Four score and seven years ago our forefathers brought forth on this continent a new nation,", + (1) "conceived in liberty and dedicated to the proposition that all men are created equal.", + (2) "", NULL } } DATATYPE "vl_string_type" H5T_STRING { |