Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Implement function used to seek within data blocks.

This only implements seeking fully for uncompressed RAR files. Seeking is not
implemented for compressed RAR files and for the other formats (ZIP, TAR, etc.).
  • Loading branch information...
commit a5b03cc1c5c7c7af0f289324b799b7103d12f28b 1 parent 66b1a0b
@amejia1 amejia1 authored
Showing with 1,895 additions and 8 deletions.
  1. +9 −0 Makefile.am
  2. +3 −0  libarchive/archive.h
  3. +126 −1 libarchive/archive_read.c
  4. +9 −0 libarchive/archive_read_private.h
  5. +1 −0  libarchive/archive_read_support_format_7zip.c
  6. +1 −0  libarchive/archive_read_support_format_ar.c
  7. +1 −0  libarchive/archive_read_support_format_cab.c
  8. +1 −0  libarchive/archive_read_support_format_cpio.c
  9. +1 −0  libarchive/archive_read_support_format_empty.c
  10. +1 −0  libarchive/archive_read_support_format_iso9660.c
  11. +1 −0  libarchive/archive_read_support_format_lha.c
  12. +1 −1  libarchive/archive_read_support_format_mtree.c
  13. +151 −6 libarchive/archive_read_support_format_rar.c
  14. +1 −0  libarchive/archive_read_support_format_raw.c
  15. +1 −0  libarchive/archive_read_support_format_tar.c
  16. +1 −0  libarchive/archive_read_support_format_xar.c
  17. +2 −0  libarchive/archive_read_support_format_zip.c
  18. +163 −0 libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu
  19. +163 −0 libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu
  20. +163 −0 libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu
  21. +163 −0 libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu
  22. +163 −0 libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu
  23. +117 −0 libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu
  24. +193 −0 libarchive/test/test_read_format_rar.c
  25. +159 −0 libarchive/test/test_splitted_rar_seek_support_aa.uu
  26. +159 −0 libarchive/test/test_splitted_rar_seek_support_ab.uu
  27. +141 −0 libarchive/test/test_splitted_rar_seek_support_ac.uu
View
9 Makefile.am
@@ -492,6 +492,12 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_fuzz.cab.uu \
libarchive/test/test_fuzz.lzh.uu \
libarchive/test/test_pax_filename_encoding.tar.uu \
+ libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu \
+ libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu \
+ libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu \
+ libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu \
+ libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu \
+ libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu \
libarchive/test/test_rar_multivolume_single_file.part1.rar.uu \
libarchive/test/test_rar_multivolume_single_file.part2.rar.uu \
libarchive/test/test_rar_multivolume_single_file.part3.rar.uu \
@@ -612,6 +618,9 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_read_splitted_rar_ab.uu \
libarchive/test/test_read_splitted_rar_ac.uu \
libarchive/test/test_read_splitted_rar_ad.uu \
+ libarchive/test/test_splitted_rar_seek_support_aa.uu \
+ libarchive/test/test_splitted_rar_seek_support_ab.uu \
+ libarchive/test/test_splitted_rar_seek_support_ac.uu \
libarchive/test/CMakeLists.txt \
libarchive/test/README
View
3  libarchive/archive.h
@@ -440,6 +440,9 @@ __LA_DECL __LA_INT64_T archive_read_header_position(struct archive *);
__LA_DECL __LA_SSIZE_T archive_read_data(struct archive *,
void *, size_t);
+/* Seek within the body of an entry. Similar to lseek(2). */
+__LA_DECL __LA_INT64_T archive_seek_data(struct archive *, __LA_INT64_T, int);
+
/*
* A zero-copy version of archive_read_data that also exposes the file offset
* of each returned block. Note that the client has no way to specify
View
127 libarchive/archive_read.c
@@ -399,6 +399,8 @@ archive_read_set_callback_data2(struct archive *_a, void *client_data,
return ARCHIVE_FATAL;
}
a->client.dataset[iindex].data = client_data;
+ a->client.dataset[iindex].begin_position = -1;
+ a->client.dataset[iindex].total_size = -1;
return ARCHIVE_OK;
}
@@ -427,8 +429,14 @@ archive_read_add_callback_data(struct archive *_a, void *client_data,
}
a->client.dataset = (struct archive_read_data_node *)p;
for (i = a->client.nodes - 1; i > iindex && i > 0; i--)
+ {
a->client.dataset[i].data = a->client.dataset[i-1].data;
+ a->client.dataset[i].begin_position = -1;
+ a->client.dataset[i].total_size = -1;
+ }
a->client.dataset[iindex].data = client_data;
+ a->client.dataset[iindex].begin_position = -1;
+ a->client.dataset[iindex].total_size = -1;
return ARCHIVE_OK;
}
@@ -495,6 +503,9 @@ archive_read_open1(struct archive *_a)
filter->code = ARCHIVE_COMPRESSION_NONE;
a->filter = filter;
+ client_switch_proxy(a->filter, 0);
+ a->client.dataset[0].begin_position = 0;
+
/* Build out the input pipeline. */
e = choose_filters(a);
if (e < ARCHIVE_WARN) {
@@ -641,6 +652,7 @@ _archive_read_next_header2(struct archive *_a, struct archive_entry *entry)
a->read_data_output_offset = 0;
a->read_data_remaining = 0;
+ a->data_start_node = a->client.cursor;
/* EOF always wins; otherwise return the worst error. */
return (r2 < r1 || r2 == ARCHIVE_EOF) ? r2 : r1;
}
@@ -838,6 +850,23 @@ archive_read_data_skip(struct archive *_a)
return (r);
}
+int64_t
+archive_seek_data(struct archive *_a, int64_t offset, int whence)
+{
+ struct archive_read *a = (struct archive_read *)_a;
+ archive_check_magic(_a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_DATA,
+ "archive_seek_data_block");
+
+ if (a->format->seek_data == NULL) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
+ "Internal error: "
+ "No format_seek_data_block function registered");
+ return (ARCHIVE_FATAL);
+ }
+
+ return (a->format->seek_data)(a, offset, whence);
+}
+
/*
* Read the next block of entry data from the archive.
* This is a zero-copy interface; the client receives a pointer,
@@ -1049,6 +1078,7 @@ __archive_read_register_format(struct archive_read *a,
int (*read_header)(struct archive_read *, struct archive_entry *),
int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *),
int (*read_data_skip)(struct archive_read *),
+ int64_t (*seek_data)(struct archive_read *, int64_t, int),
int (*cleanup)(struct archive_read *))
{
int i, number_slots;
@@ -1068,6 +1098,7 @@ __archive_read_register_format(struct archive_read *a,
a->formats[i].read_header = read_header;
a->formats[i].read_data = read_data;
a->formats[i].read_data_skip = read_data_skip;
+ a->formats[i].seek_data = seek_data;
a->formats[i].cleanup = cleanup;
a->formats[i].data = format_data;
a->formats[i].name = name;
@@ -1463,12 +1494,106 @@ int64_t
__archive_read_filter_seek(struct archive_read_filter *filter, int64_t offset, int whence)
{
int64_t r;
+ unsigned int cursor;
if (filter->closed || filter->fatal)
return (ARCHIVE_FATAL);
if (filter->seek == NULL)
return (ARCHIVE_FAILED);
- r = filter->seek(filter, offset, whence);
+
+ switch (whence)
+ {
+ case SEEK_CUR:
+ /* Adjust the offset and use SEEK_SET instead */
+ offset += filter->position;
+ case SEEK_SET:
+ cursor = 0;
+ while (1)
+ {
+ if (filter->archive->client.dataset[cursor].begin_position < 0 ||
+ filter->archive->client.dataset[cursor].total_size < 0 ||
+ filter->archive->client.dataset[cursor].begin_position +
+ filter->archive->client.dataset[cursor].total_size - 1 > offset ||
+ cursor + 1 >= filter->archive->client.nodes)
+ break;
+ r = filter->archive->client.dataset[cursor].begin_position +
+ filter->archive->client.dataset[cursor].total_size;
+ filter->archive->client.dataset[++cursor].begin_position = r;
+ }
+ while (1)
+ {
+ if ((r = client_switch_proxy(filter, cursor)) != (ARCHIVE_OK))
+ return r;
+ if ((r = client_seek_proxy(filter, 0, SEEK_END)) < 0)
+ return r;
+ filter->archive->client.dataset[cursor].total_size = r;
+ if (filter->archive->client.dataset[cursor].begin_position +
+ filter->archive->client.dataset[cursor].total_size - 1 > offset ||
+ cursor + 1 >= filter->archive->client.nodes)
+ break;
+ r = filter->archive->client.dataset[cursor].begin_position +
+ filter->archive->client.dataset[cursor].total_size;
+ filter->archive->client.dataset[++cursor].begin_position = r;
+ }
+ offset -= filter->archive->client.dataset[cursor].begin_position;
+ if (offset < 0)
+ offset = 0;
+ else if (offset > filter->archive->client.dataset[cursor].total_size - 1)
+ offset = filter->archive->client.dataset[cursor].total_size - 1;
+ if ((r = client_seek_proxy(filter, offset, SEEK_SET)) < 0)
+ return r;
+ break;
+
+ case SEEK_END:
+ cursor = 0;
+ while (1)
+ {
+ if (filter->archive->client.dataset[cursor].begin_position < 0 ||
+ filter->archive->client.dataset[cursor].total_size < 0 ||
+ cursor + 1 >= filter->archive->client.nodes)
+ break;
+ r = filter->archive->client.dataset[cursor].begin_position +
+ filter->archive->client.dataset[cursor].total_size;
+ filter->archive->client.dataset[++cursor].begin_position = r;
+ }
+ while (1)
+ {
+ if ((r = client_switch_proxy(filter, cursor)) != (ARCHIVE_OK))
+ return r;
+ if ((r = client_seek_proxy(filter, 0, SEEK_END)) < 0)
+ return r;
+ filter->archive->client.dataset[cursor].total_size = r;
+ r = filter->archive->client.dataset[cursor].begin_position +
+ filter->archive->client.dataset[cursor].total_size;
+ if (cursor + 1 >= filter->archive->client.nodes)
+ break;
+ filter->archive->client.dataset[++cursor].begin_position = r;
+ }
+ while (1)
+ {
+ if (r + offset >=
+ filter->archive->client.dataset[cursor].begin_position)
+ break;
+ offset += filter->archive->client.dataset[cursor].total_size;
+ if (cursor == 0)
+ break;
+ cursor--;
+ r = filter->archive->client.dataset[cursor].begin_position +
+ filter->archive->client.dataset[cursor].total_size;
+ }
+ offset = (r + offset) -
+ filter->archive->client.dataset[cursor].begin_position;
+ if ((r = client_switch_proxy(filter, cursor)) != (ARCHIVE_OK))
+ return r;
+ if ((r = client_seek_proxy(filter, offset, SEEK_SET)) < (ARCHIVE_OK))
+ return r;
+ break;
+
+ default:
+ return (ARCHIVE_FATAL);
+ }
+ r += filter->archive->client.dataset[cursor].begin_position;
+
if (r >= 0) {
/*
* Ouch. Clearing the buffer like this hurts, especially
View
9 libarchive/archive_read_private.h
@@ -123,6 +123,8 @@ struct archive_read_filter {
* so should be deferred at least until libarchive 3.0.
*/
struct archive_read_data_node {
+ int64_t begin_position;
+ int64_t total_size;
void *data;
};
struct archive_read_client {
@@ -134,6 +136,7 @@ struct archive_read_client {
archive_switch_callback *switcher;
unsigned int nodes;
unsigned int cursor;
+ int64_t position;
struct archive_read_data_node *dataset;
};
@@ -168,6 +171,10 @@ struct archive_read {
/* File offset of beginning of most recently-read header. */
int64_t header_position;
+ /* Nodes and offsets of compressed data block */
+ unsigned int data_start_node;
+ unsigned int data_end_node;
+
/*
* Format detection is mostly the same as compression
* detection, with one significant difference: The bidders
@@ -185,6 +192,7 @@ struct archive_read {
int (*read_header)(struct archive_read *, struct archive_entry *);
int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *);
int (*read_data_skip)(struct archive_read *);
+ int64_t (*seek_data)(struct archive_read *, int64_t, int);
int (*cleanup)(struct archive_read *);
} formats[16];
struct archive_format_descriptor *format; /* Active format. */
@@ -204,6 +212,7 @@ int __archive_read_register_format(struct archive_read *a,
int (*read_header)(struct archive_read *, struct archive_entry *),
int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *),
int (*read_data_skip)(struct archive_read *),
+ int64_t (*seek_data)(struct archive_read *, int64_t, int),
int (*cleanup)(struct archive_read *));
int __archive_read_get_bidder(struct archive_read *a,
View
1  libarchive/archive_read_support_format_7zip.c
@@ -409,6 +409,7 @@ archive_read_support_format_7zip(struct archive *_a)
archive_read_format_7zip_read_header,
archive_read_format_7zip_read_data,
archive_read_format_7zip_read_data_skip,
+ NULL,
archive_read_format_7zip_cleanup);
if (r != ARCHIVE_OK)
View
1  libarchive/archive_read_support_format_ar.c
@@ -121,6 +121,7 @@ archive_read_support_format_ar(struct archive *_a)
archive_read_format_ar_read_header,
archive_read_format_ar_read_data,
archive_read_format_ar_skip,
+ NULL,
archive_read_format_ar_cleanup);
if (r != ARCHIVE_OK) {
View
1  libarchive/archive_read_support_format_cab.c
@@ -382,6 +382,7 @@ archive_read_support_format_cab(struct archive *_a)
archive_read_format_cab_read_header,
archive_read_format_cab_read_data,
archive_read_format_cab_read_data_skip,
+ NULL,
archive_read_format_cab_cleanup);
if (r != ARCHIVE_OK)
View
1  libarchive/archive_read_support_format_cpio.c
@@ -242,6 +242,7 @@ archive_read_support_format_cpio(struct archive *_a)
archive_read_format_cpio_read_header,
archive_read_format_cpio_read_data,
archive_read_format_cpio_skip,
+ NULL,
archive_read_format_cpio_cleanup);
if (r != ARCHIVE_OK)
View
1  libarchive/archive_read_support_format_empty.c
@@ -53,6 +53,7 @@ archive_read_support_format_empty(struct archive *_a)
archive_read_format_empty_read_header,
archive_read_format_empty_read_data,
NULL,
+ NULL,
NULL);
return (r);
View
1  libarchive/archive_read_support_format_iso9660.c
@@ -475,6 +475,7 @@ archive_read_support_format_iso9660(struct archive *_a)
archive_read_format_iso9660_read_header,
archive_read_format_iso9660_read_data,
archive_read_format_iso9660_read_data_skip,
+ NULL,
archive_read_format_iso9660_cleanup);
if (r != ARCHIVE_OK) {
View
1  libarchive/archive_read_support_format_lha.c
@@ -319,6 +319,7 @@ archive_read_support_format_lha(struct archive *_a)
archive_read_format_lha_read_header,
archive_read_format_lha_read_data,
archive_read_format_lha_read_data_skip,
+ NULL,
archive_read_format_lha_cleanup);
if (r != ARCHIVE_OK)
View
2  libarchive/archive_read_support_format_mtree.c
@@ -202,7 +202,7 @@ archive_read_support_format_mtree(struct archive *_a)
mtree->fd = -1;
r = __archive_read_register_format(a, mtree, "mtree",
- mtree_bid, NULL, read_header, read_data, skip, cleanup);
+ mtree_bid, NULL, read_header, read_data, skip, NULL, cleanup);
if (r != ARCHIVE_OK)
free(mtree);
View
157 libarchive/archive_read_support_format_rar.c
@@ -199,6 +199,12 @@ struct lzss
int64_t position;
};
+struct data_block_offsets
+{
+ int64_t start_offset;
+ int64_t end_offset;
+};
+
struct rar
{
/* Entries from main RAR header */
@@ -217,6 +223,7 @@ struct rar
long mnsec;
mode_t mode;
char *filename;
+ char *filename_save;
size_t filename_allocated;
/* File header optional entries */
@@ -243,6 +250,10 @@ struct rar
char entry_eof;
unsigned long crc_calculated;
int found_first_header;
+ char has_endarc_header;
+ struct data_block_offsets *dbo;
+ unsigned int cursor;
+ unsigned int nodes;
/* LZSS members */
struct huffman_code maincode;
@@ -301,6 +312,8 @@ static int archive_read_format_rar_read_header(struct archive_read *,
static int archive_read_format_rar_read_data(struct archive_read *,
const void **, size_t *, int64_t *);
static int archive_read_format_rar_read_data_skip(struct archive_read *a);
+static int64_t archive_read_format_rar_seek_data(struct archive_read *, int64_t,
+ int);
static int archive_read_format_rar_cleanup(struct archive_read *);
/* Support functions */
@@ -639,6 +652,7 @@ archive_read_support_format_rar(struct archive *_a)
archive_read_format_rar_read_header,
archive_read_format_rar_read_data,
archive_read_format_rar_read_data_skip,
+ archive_read_format_rar_seek_data,
archive_read_format_rar_cleanup);
if (r != ARCHIVE_OK)
@@ -997,6 +1011,93 @@ archive_read_format_rar_read_data_skip(struct archive_read *a)
return (ARCHIVE_OK);
}
+static int64_t
+archive_read_format_rar_seek_data(struct archive_read *a, int64_t offset,
+ int whence)
+{
+ int64_t client_offset, ret;
+ unsigned int i;
+ struct rar *rar = (struct rar *)(a->format->data);
+
+ if (rar->compression_method & COMPRESS_METHOD_STORE)
+ {
+ /* Modify the offset for use with SEEK_SET */
+ switch (whence)
+ {
+ case SEEK_SET:
+ break;
+
+ case SEEK_CUR:
+ offset += rar->offset;
+ break;
+
+ case SEEK_END:
+ offset += rar->unp_size - 1;
+ break;
+ }
+ if (offset < 0)
+ offset = 0;
+ else if (offset > rar->unp_size - 1)
+ offset = rar->unp_size - 1;
+
+ /* Find the appropriate offset in the client */
+ i = 0;
+ client_offset = offset;
+ client_offset += rar->dbo[i].start_offset;
+ while (rar->main_flags & MHD_VOLUME &&
+ client_offset > rar->dbo[i].end_offset)
+ {
+ i++;
+ if (i >= rar->nodes || client_offset <= rar->dbo[i].end_offset)
+ {
+ ret = __archive_read_seek(a, rar->dbo[i-1].end_offset + 1, SEEK_SET);
+ if (ret < (ARCHIVE_OK))
+ return ret;
+ ret = archive_read_format_rar_read_header(a, a->entry);
+ if (ret == (ARCHIVE_EOF))
+ {
+ rar->has_endarc_header = 1;
+ ret = archive_read_format_rar_read_header(a, a->entry);
+ }
+ if (ret != (ARCHIVE_OK))
+ {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
+ "Error during seek of RAR file");
+ return (ARCHIVE_FAILED);
+ }
+ }
+ client_offset += rar->dbo[i].start_offset - rar->dbo[i-1].end_offset - 1;
+ }
+
+ ret = __archive_read_seek(a, client_offset, SEEK_SET);
+ if (ret < (ARCHIVE_OK))
+ return ret;
+ rar->bytes_remaining = rar->dbo[i].end_offset - ret + 1;
+ while (i > 0)
+ {
+ ret -= rar->dbo[i].start_offset - rar->dbo[i-1].end_offset - 1;
+ i--;
+ }
+ ret -= rar->dbo[i].start_offset;
+
+ /* Always restart reading the file after a seek */
+ a->read_data_block = NULL;
+ a->read_data_offset = 0;
+ a->read_data_output_offset = 0;
+ a->read_data_remaining = 0;
+ rar->bytes_unconsumed = 0;
+ rar->offset = 0;
+
+ return ret;
+ }
+ else
+ {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
+ "Seeking of compressed RAR files is unsupported");
+ }
+ return (ARCHIVE_FAILED);
+}
+
static int
archive_read_format_rar_cleanup(struct archive_read *a)
{
@@ -1005,6 +1106,8 @@ archive_read_format_rar_cleanup(struct archive_read *a)
rar = (struct rar *)(a->format->data);
free_codes(a);
free(rar->filename);
+ free(rar->filename_save);
+ free(rar->dbo);
free(rar->unp_buffer);
free(rar->lzss.window);
__archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context, &g_szalloc);
@@ -1144,12 +1247,6 @@ read_header(struct archive_read *a, struct archive_entry *entry,
}
rar->bytes_remaining = rar->packed_size;
- /* Split file in multivolume RAR. No more need to process header. */
- if (rar->file_flags & FHD_SPLIT_BEFORE)
- {
- __archive_read_consume(a, header_size - 7);
- return ret;
- }
/* TODO: RARv3 subblocks contain comments. For now the complete block is
* consumed at the end.
@@ -1297,6 +1394,49 @@ read_header(struct archive_read *a, struct archive_entry *entry,
p += filename_size;
}
+ /* Split file in multivolume RAR. No more need to process header. */
+ if (rar->filename_save &&
+ !memcmp(rar->filename, rar->filename_save, filename_size + 1))
+ {
+ __archive_read_consume(a, header_size - 7);
+ rar->cursor++;
+ if (rar->cursor >= rar->nodes)
+ {
+ rar->nodes++;
+ if ((rar->dbo =
+ realloc(rar->dbo, sizeof(*rar->dbo) * rar->nodes)) == NULL)
+ {
+ archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory.");
+ return (ARCHIVE_FATAL);
+ }
+ rar->dbo[rar->cursor].start_offset = -1;
+ rar->dbo[rar->cursor].end_offset = -1;
+ }
+ if (rar->dbo[rar->cursor].start_offset < 0)
+ {
+ rar->dbo[rar->cursor].start_offset = a->filter->position;
+ rar->dbo[rar->cursor].end_offset = rar->dbo[rar->cursor].start_offset +
+ rar->packed_size - 1;
+ }
+ return ret;
+ }
+
+ rar->filename_save = (char*)realloc(rar->filename_save,
+ filename_size + 1);
+ memcpy(rar->filename_save, rar->filename, filename_size + 1);
+
+ /* Set info for seeking */
+ free(rar->dbo);
+ if ((rar->dbo = calloc(1, sizeof(*rar->dbo))) == NULL)
+ {
+ archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory.");
+ return (ARCHIVE_FATAL);
+ }
+ rar->dbo[0].start_offset = -1;
+ rar->dbo[0].end_offset = -1;
+ rar->cursor = 0;
+ rar->nodes = 1;
+
if (rar->file_flags & FHD_SALT)
{
if (p + 8 > endp) {
@@ -1317,6 +1457,8 @@ read_header(struct archive_read *a, struct archive_entry *entry,
}
__archive_read_consume(a, header_size - 7);
+ rar->dbo[0].start_offset = a->filter->position;
+ rar->dbo[0].end_offset = rar->dbo[0].start_offset + rar->packed_size - 1;
switch(file_header.host_os)
{
@@ -2621,7 +2763,10 @@ rar_read_ahead(struct archive_read *a, size_t min, ssize_t *avail)
{
ret = archive_read_format_rar_read_header(a, a->entry);
if (ret == (ARCHIVE_EOF))
+ {
+ rar->has_endarc_header = 1;
ret = archive_read_format_rar_read_header(a, a->entry);
+ }
if (ret != (ARCHIVE_OK))
return NULL;
return rar_read_ahead(a, min, avail);
View
1  libarchive/archive_read_support_format_raw.c
@@ -77,6 +77,7 @@ archive_read_support_format_raw(struct archive *_a)
archive_read_format_raw_read_header,
archive_read_format_raw_read_data,
archive_read_format_raw_read_data_skip,
+ NULL,
archive_read_format_raw_cleanup);
if (r != ARCHIVE_OK)
free(info);
View
1  libarchive/archive_read_support_format_tar.c
@@ -253,6 +253,7 @@ archive_read_support_format_tar(struct archive *_a)
archive_read_format_tar_read_header,
archive_read_format_tar_read_data,
archive_read_format_tar_skip,
+ NULL,
archive_read_format_tar_cleanup);
if (r != ARCHIVE_OK)
View
1  libarchive/archive_read_support_format_xar.c
@@ -467,6 +467,7 @@ archive_read_support_format_xar(struct archive *_a)
xar_read_header,
xar_read_data,
xar_read_data_skip,
+ NULL,
xar_cleanup);
if (r != ARCHIVE_OK)
free(xar);
View
2  libarchive/archive_read_support_format_zip.c
@@ -173,6 +173,7 @@ archive_read_support_format_zip_streamable(struct archive *_a)
archive_read_format_zip_streamable_read_header,
archive_read_format_zip_read_data,
archive_read_format_zip_read_data_skip,
+ NULL,
archive_read_format_zip_cleanup);
if (r != ARCHIVE_OK)
@@ -206,6 +207,7 @@ archive_read_support_format_zip_seekable(struct archive *_a)
archive_read_format_zip_seekable_read_header,
archive_read_format_zip_read_data,
archive_read_format_zip_read_data_skip,
+ NULL,
archive_read_format_zip_cleanup);
if (r != ARCHIVE_OK)
View
163 libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu
@@ -0,0 +1,163 @@
+begin 644 test_rar_multivolume_multiple_files.part1.rar
+M4F%R(1H'`%IN<Q$!#0````````!9T70BD$0`E!L``(].```#O-PK5[M,-4$4
+M,!H`I($``$QI8F%R8VAI=F5!9&1I;F=497-T,BYH=&ULP,R[3#5!)TTU03PA
+M1$]#5%E012!(5$U,(%!50DQ)0R`B+2\O5S-#+R]$5$0@2%1-3"`T+C`@5')A
+M;G-I=&EO;F%L+R]%3B(^"CQ(5$U,/@H\2$5!1#X*"3Q-151!($A45%`M15%5
+M258](D-/3E1%3E0M5%E012(@0T].5$5.5#TB=&5X="]H=&UL.R!C:&%R<V5T
+M/75T9BTX(CX*"3Q4251,13X\+U1)5$Q%/@H)/$U%5$$@3D%-13TB1T5.15)!
+M5$]2(B!#3TY414Y4/2),:6)R94]F9FEC92`S+C,@("A5;FEX*2(^"@D\3454
+M02!.04U%/2)#4D5!5$5$(B!#3TY414Y4/2(R,#$Q,#8R-CLR,C(S-3$P,"(^
+M"@D\345402!.04U%/2)#2$%.1T5$(B!#3TY414Y4/2(R,#$Q,#8R-CLR,C(U
+M-#4P,"(^"@D\4U193$4@5%E013TB=&5X="]C<W,B/@H)/"$M+0H)"4!P86=E
+M('L@;6%R9VEN.B`P+C<Y:6X@?0H)"5`@>R!M87)G:6XM8F]T=&]M.B`P+C`X
+M:6X@?0H)"4@Q('L@;6%R9VEN+6)O='1O;3H@,"XP.&EN('T*"0E(,2YW97-T
+M97)N('L@9F]N="UF86UI;'DZ("),:6)E<F%T:6]N(%-E<FEF(BP@<V5R:68@
+M?0H)"4@Q+F-J:R![(&9O;G0M9F%M:6QY.B`B0FET<W1R96%M(%9E<F$@4V%N
+M<R(@?0H)"4@Q+F-T;"![(&9O;G0M9F%M:6QY.B`B1G)E95-A;G,B('T*"0E0
+M4D4N8VIK('L@9F]N="UF86UI;'DZ(")":71S=')E86T@5F5R82!386YS(BP@
+M;6]N;W-P86-E('T*"0E(,B![(&UA<F=I;BUB;W1T;VTZ(#`N,#AI;B!]"@D)
+M2#(N8W1L('L@9F]N="UF86UI;'DZ(")&<F5E4V%N<R(@?0H)"514+F-J:R![
+M(&9O;G0M9F%M:6QY.B`B0FET<W1R96%M(%9E<F$@4V%N<R(L(&UO;F]S<&%C
+M92!]"@DM+3X*"3PO4U193$4^"CPO2$5!1#X*/$)/1%D@3$%.1STB96XM55,B
+M($1)4CTB3%12(CX*/$@Q($-,05-3/2)W97-T97)N(CY);G1R;V1U8W1I;VX\
+M+T@Q/@H\4#Y,:6)A<F-H:79E(&ES(&YO=R!A(&9A:7)L>2!C;VUP;&5X('!I
+M96-E(&]F('-O9G1W87)E('1H870@<G5N<R!O;@IA(&YU;6)E<B!O9B!D:69F
+M97)E;G0@<&QA=&9O<FUS+B!!('1H;W)O=6=H('1E<W0@<W5I=&4@:7,@97-S
+M96YT:6%L"F)O=&@@9F]R('9E<FEF>6EN9R!N97<@<&]R=',@86YD(&9O<B!E
+M;G-U<FEN9R!T:&%T(&9U='5R92!C:&%N9V5S"F1O;B=T(&)R96%K(&5X:7-T
+M:6YG(&9U;F-T:6]N86QI='DN(`H\+U`^"CQ0/D%N>2!S:6=N:69I8V%N="!C
+M:&%N9V4@=&\@;&EB87)C:&EV92P@:6YC;'5D:6YG(&UO<W0@8G5G(&9I>&5S
+M+`IS:&]U;&0@8F4@86-C;VUP86YI960@8GD@;F5W('1E<W1S(&]R(&-H86YG
+M97,@=&\@97AI<W1I;F<@=&5S=',N(%1H:7,*87)T:6-L92!E>'!L86EN<R!H
+M;W<@=&AE(&QI8F%R8VAI=F4@=&5S="!S=6ET97,@=V]R:R!A;F0@:&]W('1O
+M"F5X=&5N9"!T:&5M+B`*/"]0/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!
+M344](D)U:6QD:6YG7V%N9%]2=6YN:6YG7W1H95]497-T7U!R;V=R86US(CX\
+M+T$^"D)U:6QD:6YG(&%N9"!2=6YN:6YG('1H92!497-T(%!R;V=R86US/"](
+M,3X*/%`^16%C:"!M86IO<B!C;VUP;VYE;G0M+6QI8F%R8VAI=F4L(&)S9'1A
+M<BP@86YD(&)S9&-P:6\M+6AA<R!A('1E<W0*<')O9W)A;2!T:&%T(&5X97)C
+M:7-E<R!T:&4@9G5N8W1I;VYA;&ET>2!O9B!T:&%T(&-O;7!O;F5N="X@5&AE
+M<V4*=&5S="!P<F]G<F%M<R!A<F4@8V]M<&EL960@:6X@=&AE('-A;64@=V%Y
+M('1H870@=&AE(')E<W0@;V8@=&AE"FQI8F%R8VAI=F4@<W5I=&4@:7,@8V]M
+M<&EL960N(`H\+U`^"CQ0/E1O(')U;B!T:&4@=&5S="!P<F]G<F%M<RP@>6]U
+M(&YE960@=&\@9VEV92!T:&5M('1W;R!P:65C97,@;V8*:6YF;W)M871I;VXZ
+M(`H\+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN
+M(CY4:&4@9G5L;"!P871H('1O('1H92!D:7)E8W1O<GD*"6AO;&1I;F<@=&AE
+M("9Q=6]T.W)E9F5R96YC92!F:6QE<R9Q=6]T.R`*"3PO4#X*"3Q,23X\4#Y4
+M:&4@9G5L;"!P871H('1O('1H92!E>&5C=71A8FQE('!R;V=R86T@8F5I;F<@
+M=&5S=&5D("AN;W0*"6%P<&QI8V%B;&4@=&\@;&EB87)C:&EV95]T97-T('-I
+M;F-E(&QI8F%R8VAI=F4@:7,@8V]M<&EL960@:6YT;R!T:&4*"71E<W0@<')O
+M9W)A;2D@"@D\+U`^"CPO54P^"CQ0/E1H92!R969E<F5N8V4@9FEL97,@87)E
+M(&$@8V]L;&5C=&EO;B!O9B!K;F]W;B!I;G!U=',@=&AA="!A<F4@=7-E9`II
+M;B!T:&4@=&5S="!P<F]C97-S+B!4:&5Y(&%R92!A;&P@<W1O<F5D(&EN('5U
+M96YC;V1E9"!F;W)M870@:6X@9FEL97,*=VET:"!A("9Q=6]T.RYU=29Q=6]T
+M.R!E>'1E;G-I;VXN(%1H92!T97-T('!R;V=R86US(&QO;VL@:6X@82!F97<*
+M<W1A;F1A<F0@;&]C871I;VYS.R!I9B!N;VYE(&]F('1H;W-E('=O<FLL('EO
+M=2=L;"!N965D('1O('-P96-I9GD@=&AE"CQ45"!#3$%34STB=V5S=&5R;B(^
+M+7(\+U14/B!O<'1I;VX@=VET:"!T:&4@9G5L;"!P871H;F%M92!T;R!T:&4*
+M87!P<F]P<FEA=&4@9&ER96-T;W)Y+B`*/"]0/@H\4#Y4:&4@8G-D=&%R7W1E
+M<W0@86YD(&)S9&-P:6]?=&5S="!P<F]G<F%M<R!R=6X@8G-D=&%R(&]R(&)S
+M9&-P:6\*<F5P96%T961L>3L@=&AE>2!N965D('1H92!F=6QL('!A=&@@=&\@
+M=&AE(&%P<')O<')I871E(&5X96-U=&%B;&4N"D%L=&AO=6=H(&)S9'1A<E]T
+M97-T(&%N9"!B<V1C<&EO7W1E<W0@87)E('-P96-I9FEC86QL>2!I;G1E;F1E
+M9"!F;W(*=&5S=&EN9R!B<V1T87(@86YD(&)S9&-P:6\L('1H97D@<VAO=6QD
+M(&)E('5S86)L92!F;W(@=&5S=&EN9R!O=&AE<@IT87(@86YD(&-P:6\@<')O
+M9W)A;7,N($EN(&9A8W0L(')U;FYI;F<@=&AE<V4@=&5S="!P<F]G<F%M<R!A
+M9V%I;G-T"F]T:&5R('1A<B!I;7!L96UE;G1A=&EO;G,@:7,@82!G;V]D('=A
+M>2!T;R!V97)I9GD@=&AA="!T:&4@=&5S=`IP<F]G<F%M<R!T:&5M<V5L=F5S
+M(&%R92!W;W)K:6YG(&-O<G)E8W1L>2X@"CPO4#X*/%`^5VAE;B!R=6XL('1H
+M92!T97-T('!R;V=R86US(&]U='!U="!A('!R;V=R97-S(&UE<W-A9V4@9F]R
+M(&5A8V@*=&5S="P@86X@97)R;W(@;65S<V%G92!F;W(@96%C:"!F86EL960@
+M87-S97)T:6]N+"!A;F0@82!F:6YA;`IS=6UM87)Y.B`*/"]0/@H\4%)%($-,
+M05-3/2)W97-T97)N(CXF;F)S<#M2=6YN:6YG('1E<W1S(&EN.B`O=&UP+V)S
+M9'1A<E]T97-T+C(P,#DM,#(M,3=4,C$N,S`N-#`M,#`P"B9N8G-P.U)E9F5R
+M96YC92!F:6QE<R!W:6QL(&)E(')E860@9G)O;3H@)FYB<W`[("9N8G-P.R]H
+M;VUE+W1I;2]L:6)A<F-H:79E+W1R=6YK+W1A<B]T97-T"B9N8G-P.U)U;FYI
+M;F<@=&5S=',@;VXZ("]H;VUE+W1I;2]L:6)A<F-H:79E+W1R=6YK+V)S9'1A
+M<@HF;F)S<#M%>&5R8VES:6YG.B!B<V1T87(@,BXV+CDP,&$@+2!L:6)A<F-H
+M:79E(#(N-BXY,#!A"B9N8G-P.S`Z('1E<W1?,`HF;F)S<#LQ.B!T97-T7V)A
+M<VEC"B9N8G-P.S(Z('1E<W1?8V]P>0HF;F)S<#L@=&5S=%]C;W!Y+F,Z,3<Q
+M.B!!<W-E<G1I;VX@9F%I;&5D.B!);G1S(&YO="!E<75A;`HF;F)S<#L@)FYB
+M<W`[("9N8G-P.R`P/3`*)FYB<W`[("9N8G-P.R`F;F)S<#L@;'-T870H;F%M
+M93(@*R`S+"`F86UP.W-T,BD]+3$*)FYB<W`[('1E<W1?8V]P>2YC.C$W,3H@
+M1F%I;&5D(#(V-"!T:6UE<PHF;F)S<#LS.B!T97-T7V=E=&1A=&4*)FYB<W`[
+M-#H@=&5S=%]H96QP"B9N8G-P.R`F;F)S<#L@+BXN(&UO<F4@;W5T<'5T(&]M
+M:71T960@+BXN"B9N8G-P.S$@;V8@,3,@=&5S=',@<F5P;W)T960@9F%I;'5R
+M97,*)FYB<W`[(%1O=&%L(&]F(#$P-3`Y-R!A<W-E<G1I;VYS(&-H96-K960N
+M"B9N8G-P.R!4;W1A;"!O9B`R-C0@87-S97)T:6]N<R!F86EL960N"B9N8G-P
+M.R!4;W1A;"!O9B`P(&%S<V5R=&EO;G,@<VMI<'!E9"X\+U!213X\4#X*5&AE
+M(&AE861E<B!L:6YE<R!H97)E(')E8V]R9#H@"CPO4#X*/%5,/@H)/$Q)/CQ0
+M(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/G1H92!D:7)E8W1O<GD@=&AA
+M="!W:6QL(&)E('5S960*"69O<B!S8W)A=&-H(&9I;&5S(&1U<FEN9R!T:&4@
+M=&5S="X@268@82!T97-T(&9A:6QS+"!T:&4@<V-R871C:`H)9FEL97,@=VEL
+M;"!B92!L969T(&)E:&EN9"!I;B!T:&ES(&1I<F5C=&]R>2!F;W(@9G5R=&AE
+M<B!D96)U9V=I;F<N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T
+M=&]M.B`P:6XB/E1H92!D:7)E8W1O<GD@9G)O;2!W:&EC:"!T:&4*"7)E9F5R
+M96YC92!F:6QE<R!W:6QL(&)E(')E860N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%
+M/2)M87)G:6XM8F]T=&]M.B`P:6XB/D9O<B!B<V1T87)?=&5S="!A;F0@8G-D
+M8W!I;U]T97-T+`H)=&AE(&9U;&P@<&%T:"!T;R!T:&4@97AE8W5T86)L92!B
+M96EN9R!E>&5R8VES960N(`H)/"]0/@H)/$Q)/CQ0/D)A<VEC('9E<G-I;VX@
+M:6YF;W)M871I;VX@86)O=70@=&AE('1A<F=E="X@"@D\+U`^"CPO54P^"CQ0
+M/DEN('1H:7,@8V%S92P@=&AE('1R86EL97(@:6YD:6-A=&5S('1H870@;VYE
+M('1E<W0@9F%I;&5D+B!!<R!Y;W4*8V%N('-E92P@=&AE<F4@=V%S(&$@<VEN
+M9VQE(&%S<V5R=&EO;B!I;B!T:&4@8V]D92!T:&%T(&9A:6QE9"`R-C0*=&EM
+M97,N(%1H92!F:7)S="!T:6UE(&ET(&9A:6QE9"P@:70@=V%S(&)E8V%U<V4@
+M86X@/%14($-,05-3/2)W97-T97)N(CYL<W1A="@I/"]45#X*8V%L;"!R971U
+M<FYE9"`M,2!I;G-T96%D(&]F('1H92!Z97)O('1H870@=V%S(&5X<&5C=&5D
+M+B`*/"]0/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D)A<VEC7W1E
+M<W1?=&5R;6EN;VQO9WDB/CPO03Y"87-I8R!T97-T"G1E<FUI;F]L;V=Y/"](
+M,3X*/%`^16%C:"!T97-T('!R;V=R86T@8V]N<VES=',@;V8@82!N=6UB97(@
+M;V8@)G%U;W0[=&5S=',F<75O=#LN($5A8V@*=&5S="!H87,@82!N86UE(&%N
+M9"!I<R!I;7!L96UE;G1E9"!I;B!A($,@<V]U<F-E(&9I;&4@=VET:"!T:&4@
+M<V%M90IN86UE(&%S('1H92!T97-T+B!497-T<R!W;W)K(&)Y('!E<F9O<FUI
+M;F<@<V]M92!S97)I97,@;V8@;W!E<F%T:6]N<PIA;F0@;6%K:6YG("9Q=6]T
+M.V%S<V5R=&EO;G,F<75O=#L@86)O=70@=&AE(')E<W5L=',N($9O<B!E>&%M
+M<&QE+`IM86YY(&]F('1H92!L:6)A<F-H:79E('1E<W1S(&]P96X@86YD(')E
+M860@86X@87)C:&EV92!A;F0@87-S97)T('1H870*<&%R=&EC=6QA<B!O<&5R
+M871I;VYS('-U8V-E961E9"!O<B!F86EL960N("A997,L(&ET(&ES(&]F=&5N
+M"FEM<&]R=&%N="!T;R!V97)I9GD@=&AA="!I;&QE9V%L(')E<75E<W1S(&=E
+M;F5R871E(&%P<')O<')I871E"F5R<F]R<RXI(`H\+U`^"CQ0/DAE<F4@:7,@
+M82!S;VUE=VAA="!E9&ET960@97AC97)P="!F<F]M(#Q45"!#3$%34STB=V5S
+M=&5R;B(^=&5S=%]C;VUP871?>FEP/"]45#XL"G=H:6-H('9E<FEF:65S(&-O
+M;7!A=&EB:6QI='D@=VET:"!V87)I;W5S(%I)4"!F;W)M870@87)C:&EV97,Z
+M(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E<FXB/B9N8G-P.R!$149)3D5?5$53
+M5"AT97-T7V-O;7!A=%]Z:7`I"B9N8G-P.R!["B9N8G-P.R`F;F)S<#L@+RH@
+M+BXN('-E='5P(&]M:71T960@+BXN("HO"B9N8G-P.R`F;F)S<#L@87-S97)T
+M*"AA(#T@87)C:&EV95]R96%D7VYE=R@I*2`A/2!.54Q,*3L*)FYB<W`[("9N
+M8G-P.R!A<W-E<G1%<75A;$EN="A!4D-(259%7T]++`HF;F)S<#L@)FYB<W`[
+M("9N8G-P.R`F;F)S<#L@87)C:&EV95]R96%D7W-U<'!O<G1?8V]M<')E<W-I
+M;VY?86QL*&$I*3L*)FYB<W`[("9N8G-P.R!A<W-E<G1%<75A;$EN="A!4D-(
+M259%7T]++`HF;F)S<#L@)FYB<W`[("9N8G-P.R`F;F)S<#L@87)C:&EV95]R
+M96%D7W-U<'!O<G1?9F]R;6%T7V%L;"AA*2D["B9N8G-P.R`F;F)S<#L@97AT
+M<F%C=%]R969E<F5N8V5?9FEL92AN86UE*3L*)FYB<W`[("9N8G-P.R!A<W-E
+M<G1%<75A;$EN="A!4D-(259%7T]++`HF;F)S<#L@)FYB<W`[("9N8G-P.R`F
+M;F)S<#L@87)C:&EV95]R96%D7V]P96Y?9FEL96YA;64H82P@;F%M92P@,3`R
+M-#`I*3L*)FYB<W`[("9N8G-P.R`F;F)S<#LO*B!296%D(&9I<G-T(&5N=')Y
+M+B`J+PHF;F)S<#L@)FYB<W`[("9N8G-P.V%S<V5R=$5Q=6%L26YT*$%20TA)
+M5D5?3TLL(&%R8VAI=F5?<F5A9%]N97AT7VAE861E<BAA+"`F86UP.V%E*2D[
+M"B9N8G-P.R`F;F)S<#L@)FYB<W`[87-S97)T17%U86Q3=')I;F<H)G%U;W0[
+M345402U)3D8O34%.249%4U0N348F<75O=#LL(&%R8VAI=F5?96YT<GE?<&%T
+M:&YA;64H864I*3L\+U!213X\4#X*5&AE(#Q45"!#3$%34STB=V5S=&5R;B(^
+M87-S97)T6%A86#PO5%0^(&UA8W)O<R!C:&5C:R!T:&%T('1H96ER"F%R9W5M
+M96YT<R!S871I<V9Y(&-E<G1A:6X@8V]N9&ET:6]N<RX@268@=&AE(&%S<V5R
+M=&EO;B!F86EL<RTM9F]R"F5X86UP;&4L(&EF('1H92!N86UE(&]F('1H92!F
+M:7)S="!E;G1R>2!I<R!N;W0*)G%U;W0[345402U)3D8O34%.249%4U0N348F
+M<75O=#LM+71H92!M86-R;R!W:6QL(')E<&]R="!T:&4@<')O8FQE;2X@"CPO
+M4#X*/%`^5&AE<F4@87)E('1W;R!I;7!O<G1A;G0@9&EF9F5R96YC97,@8F5T
+M=V5E;B!T:&4@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G186%@\+U14/@IM
+M86-R;W,@=7-E9"!I;B!T:&5S92!T97-T(&AA<FYE<W-E<R!A;F0@=&AE($E3
+M3R!#('-T86YD87)D(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T/"]45#X*
+M;6%C<F\Z($9I<G-T+"!T:&5S92!A<W-E<G0@;6%C<F]S(&1O;B=T(&5X:70@
+M;VX@9F%I;'5R92X@0GD@9&5F875L="P*=&AE>2!R97!O<G0@=&AE(&9A:6QU
+M<F4@86YD(')E='5R;B!Z97)O("AT:&4@0R!N;W1I;VX@;V8@)G%U;W0[9F%L
+M<V4F<75O=#LI+@I396-O;F0L('1H97-E(&UA8W)O<R!I;F-L=61E('9A<FEA
+M;G1S('1H870@<&5R9F]R;2!A('9A<FEE='D@;V8*<W!E8VEF:6,@=&5S=',N
+M(%1H97-E('-P96-I9FEC('9E<G-I;VYS("AS=6-H(&%S(#Q45"!#3$%34STB
+M=V5S=&5R;B(^87-S97)T17%U86Q);G0\+U14/@IA;F0@/%14($-,05-3/2)W
+M97-T97)N(CYA<W-E<G1%<75A;%-T<FEN9SPO5%0^(&EN('1H92!E>&%M<&QE
+M(&%B;W9E*0IG96YE<F%T92!D971A:6QE9"!L;V<@;65S<V%G97,@;VX@9F%I
+M;'5R92X@26X@<&%R=&EC=6QA<BP@=&AE>2!P<FEN=`IT:&4@=F%L=64@;V8@
+M8F]T:"!A<F=U;65N=',[('1H:7,@9W)E871L>2!S:6UP;&EF:65S(&1I86=N
+M;W-I;F<*9F%I;'5R97,N(`H\+U`^"CQ(,2!#3$%34STB=V5S=&4`9GL/0!0`
+-+CO?G@``````````````
+`
+end
View
163 libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu
@@ -0,0 +1,163 @@
+begin 644 test_rar_multivolume_multiple_files.part2.rar
+M4F%R(1H'`!EZ<Q$`#0````````!,070CD$0`E!L``(].```#H4_AX+M,-4$4
+M,!H`I($``$QI8F%R8VAI=F5!9&1I;F=497-T,BYH=&ULP,R[3#5!)TTU07)N
+M(CX\02!.04U%/2),:69E7V-Y8VQE7V]F7V%?=&5S="(^/"]!/DQI9F4@8WEC
+M;&4@;V8*82!T97-T/"](,3X*/%`^16%C:"!T97-T(')E<VED97,@:6X@82!#
+M('-O=7)C92!F:6QE('=I=&@@=&AE('-A;64@;F%M92!A<R!T:&4*=&5S="X@
+M5&AE('1E<W0@:71S96QF(&ES(&$@9G5N8W1I;VX@=&AA="!T86ME<R!N;R!A
+M<F=U;65N=',N(%1H92!T97-T"FES(&1E8VQA<F5D('5S:6YG('1H92`\5%0@
+M0TQ!4U,](G=E<W1E<FXB/D1%1DE.15]415-4*"D\+U14/B!M86-R;RX*5&AI
+M<R!M86-R;R!S97)V97,@8F]T:"!T;R!E;G-U<F4@=&AA="!T:&4@=&5S="!I
+M<R!D96-L87)E9"!C;W)R96-T;'D*86YD(&%S(&$@;&%B96P@=&AA="!C86X@
+M8F4@=7-E9"!T;R!L;V-A=&4@86QL(&1E9FEN960@=&5S=',N("A/;@I5;FEX
+M+6QI:V4@<&QA=&9O<FUS+"!A('-I;7!L92`\5%0@0TQ!4U,](G=E<W1E<FXB
+M/F=R97`\+U14/B!O<&5R871I;VX*:7,@=7-E9"!T;R!C;VYS=')U8W0@82!F
+M:6QE(&-A;&QE9"`\5%0@0TQ!4U,](G=E<W1E<FXB/FQI<W0N:#PO5%0^"G1H
+M870@:&]L9',@=&AE(&YA;65S(&]F(&%L;"!O9B!T:&4@=&5S=',N(%1H:7,@
+M;6%K97,@:70@=F5R>2!E87-Y('1O"F%D9"!N97<@=&5S=',N*2`*/"]0/@H\
+M4#Y4:&4@=&5S="!H87)N97-S(&1E=&5R;6EN97,@=VAI8V@@=&5S=',@=&\@
+M<G5N+B!)="!G;V5S('1H<F]U9V@*=&AE(&9O;&QO=VEN9R!S=&5P<R!W:&5N
+M979E<B!I="!R=6YS(&$@=&5S=#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%
+M/2)M87)G:6XM8F]T=&]M.B`P:6XB/CQ35%))2T4^0VQO<V5S(&%L;"!F:6QE
+M"@ED97-C<FEP=&]R<R!E>&-E<'0@9F]R('-T9&EN+"!S=&1O=70L(&%N9"!S
+M=&1E<G(N/"]35%))2T4^("A4:&ES"@ES8W)E=W,@=7`@;&EB8R!O;B!S;VUE
+M('!L871F;W)M<R!S;R!H87,@8F5E;B!R96UO=F5D+BD@"@D\+U`^"@D\3$D^
+M/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^0W)E871E<R!A('1E;7!O
+M<F%R>2!D:7)E8W1O<GD*"7=H;W-E(&YA;64@;6%T8VAE<R!T:&4@;F%M92!O
+M9B!T:&4@=&5S="!A;F0@<W=I=&-H97,@:6YT;R!T:&%T"@ED:7)E8W1O<GDN
+M(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E)E
+M<V5T<R!T:&4@8W5R<F5N="!L;V-A;&4N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%
+M/2)M87)G:6XM8F]T=&]M.B`P:6XB/D-A;&QS('1H92!T97-T(&9U;F-T:6]N
+M+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY)
+M9B!T:&5R92!W97)E(&YO(&%S<V5R=&EO;@H)9F%I;'5R97,L(&ET('=I;&P@
+M<F5M;W9E('1H92!T96UP;W)A<GD@9&ER96-T;W)Y+B`H268@/%14($-,05-3
+M/2)W97-T97)N(CXM:SPO5%0^"@EI<R!S<&5C:69I960L('1E;7!O<F%R>2!D
+M:7)E8W1O<GD@87)E(&QE9G0@979E;B!I9B!T:&4@=&5S=`H)<W5C8V5E9',N
+M*2`*"3PO4#X*"3Q,23X\4#X\4U1224M%/DEF('1H97)E(&%R92!A;GD@;W!E
+M;B!F:6QE(&1E<V-R:7!T;W)S(&]T:&5R('1H86X*"7-T9&EN+"!S=&1O=70L
+M(&%N9"!S=&1E<G(L(&ET(')E<&]R=',@86X@97)R;W(N/"]35%))2T4^(%1E
+M<W1S"@ES:&]U;&0@;F5V97(@;&5A=F4@;W!E;B!F:6QE(&1E<V-R:7!T;W)S
+M+B`*"3PO4#X*/"]53#X*/%`^26X@<&%R=&EC=6QA<BP@=&5S=',@8V%N('-A
+M9F5L>2!A<W-U;64@=&AA=#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M
+M87)G:6XM8F]T=&]M.B`P:6XB/E1H92!C=7)R96YT(&1I<F5C=&]R>2!I<R!E
+M;7!T>0H)=VAE;B!T:&4@=&5S="!S=&%R=',N(`H)/"]0/@H)/$Q)/CQ0(%-4
+M64Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D%N>2!F:6QE<R!C<F5A=&5D(&EN
+M('1H92!C=7)R96YT"@ED:7)E8W1O<GD@=VEL;"!B92!R96UO=F5D(&9O<B!Y
+M;W4N(`H)/"]0/@H)/$Q)/CQ0/E1H92!C=7)R96YT(&QO8V%L92!I<R!T:&4@
+M9&5F875L="`F<75O=#M#)G%U;W0[(&QO8V%L92X@"@D\+U`^"CPO54P^"CQ0
+M/E1E<W1S('-H;W5L9#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G
+M:6XM8F]T=&]M.B`P:6XB/E)E;&5A<V4@86QL(&UE;6]R>2X@5&AE('1E<W0*
+M"7-U:71E<R!A<F4@;V-C87-I;VYA;&QY(')U;B!U;F1E<B!A(&UE;6]R>2!D
+M96)U9V=E<B!T;R!D971E8W0@;&5A:W,*"6EN('1H92!L:6)A<F-H:79E(&QI
+M8G)A<GDN(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P
+M:6XB/D-L;W-E(&%L;"!O<&5N960@9FEL97,N(%1H:7,@:&5L<',*"71O(&-A
+M=&-H(&9I;&4@9&5S8W)I<'1O<B!L96%K<R!I;B!L:6)A<F-H:79E+B`*"3PO
+M4#X*"3Q,23X\4#Y.;W0@<F5A9"!O<B!W<FET92!A8G-O;'5T92!P871H<RX@
+M"@D\+U`^"CPO54P^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB4&QA
+M=&9O<FU?=F%R:6%T:6]N(CX\+T$^4&QA=&9O<FT*=F%R:6%T:6]N/"](,3X*
+M/%`^4V]M92!T97-T<R!A<F4@<W!E8VEF:6,@=&\@82!P87)T:6-U;&%R('!L
+M871F;W)M+B!3=6-H('1E<W1S"G-H;W5L9"!U<V4@87!P<F]P<FEA=&4@<&QA
+M=&9O<FTM<W!E8VEF:6,@;6%C<F]S(&%S(&9O;&QO=W,Z(`H\+U`^"CQ04D4@
+M0TQ!4U,](G=E<W1E<FXB/B-I9B!?7U!,051&3U)-"BXN+B!V87)I;W5S(&AE
+M;'!E<B!F=6YC=&EO;G,@+BXN"B-E;F1I9@I$149)3D5?5$535"AF;V]?<&QA
+M=&9O<FTI"GL*(VEF(%]?4$Q!5$9/4DT*)FYB<W`[("9N8G-P.RXN+B!T97-T
+M<R!A<R!U<W5A;"`N+BXN"B-E;'-E"B9N8G-P.R`F;F)S<#MS:VEP<&EN9R@F
+M<75O=#MP;&%T9F]R;2US<&5C:69I8R!T97-T<R9Q=6]T.RD["B-E;F1I9@I]
+M/"]04D4^/%`^"DEN('!A<G1I8W5L87(L(&YO=&4@=&AA="!A;&P@=&5S=',@
+M87)E(&-O;7!I;&5D(&%N9"!R=6X@;VX@86QL"G!L871F;W)M<RX@"CPO4#X*
+M/%`^36]S="!T97-T<R!A<F4@;F]T('!L871F;W)M+7-P96-I9FEC(&%N9"!W
+M:6QL('1H=7,@96YD('5P(')U;FYI;F<*;VX@;6%N>2!D:69F97)E;G0@<&QA
+M=&9O<FUS+B!);B!O<F1E<B!T;R!S:6UP;&EF>2!W<FET:6YG('-U8V@@=&5S
+M=',L"G1R>2!T;R!U<V4@<&QA=&9O<FTM:6YD97!E;F1E;G0@8V]D:6YG.B`*
+M/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^
+M57-E('-T9&EO(#Q45"!#3$%34STB=V5S=&5R;B(^9F]P96XH*3PO5%0^+`H)
+M/%14($-,05-3/2)W97-T97)N(CYF=W)I=&4H*3PO5%0^+"`\5%0@0TQ!4U,]
+M(G=E<W1E<FXB/F9R96%D*"D\+U14/BP*"6%N9"`\5%0@0TQ!4U,](G=E<W1E
+M<FXB/F9C;&]S92@I/"]45#X@=&\@86-C97-S(&9I;&5S('=H96YE=F5R"@EF
+M96%S:6)L92X@"@D\+U`^"@D\3$D^/%`^3&]O:R!T:')O=6=H('1H92`\5%0@
+M0TQ!4U,](G=E<W1E<FXB/G1E<W0N:#PO5%0^(&AE861E<B!T;PH)<V5E(&EF
+M('1H97)E(&%R92!A<W-E<G18>'@H*2!F=6YC=&EO;G,@=&AA="!Y;W4@8V%N
+M('5S92X@5&AE<F4G<R!A"@EL:7-T(&]F('1H92!M;W)E('!O<'5L87(@;VYE
+M<R!B96QO=RP@8G5T(&YE=R!O;F5S(&%R92!O9G1E;B!A9&1E9"X@"@D\+U`^
+M"CPO54P^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB07-S97)T7VUA
+M8W)O<R(^/"]!/D%S<V5R="!M86-R;W,\+T@Q/@H\4#Y4:&4@9F]L;&]W:6YG
+M(&ES(&$@;F5C97-S87)I;'D@:6YC;VUP;&5T92!L:7-T(&]F(&%S<V5R="!F
+M=6YC=&EO;G,*879A:6QA8FQE('1O('1E<W1S.B`*/"]0/@H\54P^"@D\3$D^
+M/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^0F%S:6,@97%U86QI='DZ
+M(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T17%U86Q);G0\+U14/BP*"3Q4
+M5"!#3$%34STB=V5S=&5R;B(^87-S97)T17%U86Q3=')I;F<\+U14/BP@/%14
+M($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A;$UE;3PO5%0^"@D)/"]0/@H)
+M/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D9I;&4@8W)E871I
+M;VXZ(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T36%K949I;&4\+U14/BP*
+M"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T36%K95-Y;6QI;FL\+U14/BP@
+M/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1-86ME2&%R9&QI;FL\+U14/BP*
+M"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T36%K941I<CPO5%0^(`H)/"]0
+M/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D9I;&4@=&5S
+M=',Z(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T27-296<\+U14/BP*"3Q4
+M5"!#3$%34STB=V5S=&5R;B(^87-S97)T27-$:7(\+U14/BP@/%14($-,05-3
+M/2)W97-T97)N(CYA<W-E<G1)<U-Y;6QI;FL\+U14/BP*"3Q45"!#3$%34STB
+M=V5S=&5R;B(^87-S97)T1FEL95-I>F4\+U14/BP@/%14($-,05-3/2)W97-T
+M97)N(CYA<W-E<G1&:6QE3FQI;FMS/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E
+M<FXB/F%S<V5R=$9I;&5-=&EM93PO5%0^(`H)/"]0/@H)/$Q)/CQ0/D9I;&4@
+M8V]N=&5N=',Z(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T1FEL945M<'1Y
+M/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5.;VY%;7!T
+M>3PO5%0^+"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5#;VYT96YT
+M<SPO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1497AT1FEL94-O
+M;G1E;G1S/"]45#X@"@D\+U`^"CPO54P^"CQ(,2!#3$%34STB=V5S=&5R;B(^
+M/$$@3D%-13TB4F5F97)E;F-E7T9I;&5S(CX\+T$^4F5F97)E;F-E($9I;&5S
+M/"](,3X*/%`^36%N>2!T97-T<R!R97%U:7)E(')E861I;F<@82!P<F4M8V]N
+M<W1R=6-T960@<F5F97)E;F-E(&9I;&4N(%-U8V@*9FEL97,@87)E('-T;W)E
+M9"!W:71H('1H92!S;W5R8V4@8V]D92!F;W(@=&AE(&%S<V]C:6%T960@=&5S
+M="!S=6ET92X*4F5F97)E;F-E(&9I;&5S(&%R92!N86UE9"!A8V-O<F1I;F<@
+M=&\@=&AE('1E<W0@86YD(&UU<W0@8F4@=75E;F-O9&5D"G1O(&)E(&-H96-K
+M960@:6YT;R!S;W5R8V4@8V]N=')O;"X@"CPO4#X*/%`^1F]R(&5X86UP;&4L
+M(&EF('EO=2!N965D(&$@<F5F97)E;F-E('1A<B!A<F-H:79E('1O('5S92!W
+M:71H"CQ45"!#3$%34STB=V5S=&5R;B(^=&5S=%]F;V\\+U14/BP@=&AE(&9I
+M;&4@<VAO=6QD(&)E(&YA;65D"CQ45"!#3$%34STB=V5S=&5R;B(^=&5S=%]F
+M;V\N=&%R/"]45#X@86YD('-T;W)E9"!I;B!S;W5R8V4@8V]N=')O;"!A<PH\
+M5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W1?9F]O+G1A<BYU=3PO5%0^+B`*/"]0
+M/@H\4#Y7:71H:6X@=&AE('1E<W0@8V]D92P@>6]U(&-A;B!R96-O=F5R('1H
+M92!R969E<F5N8V4@9FEL92!W:71H.B`*/"]0/@H\4%)%($-,05-3/2)W97-T
+M97)N(B!35%E,13TB;6%R9VEN+6)O='1O;3H@,"XR:6XB/B9N8G-P.R`F;F)S
+M<#L@97AT<F%C=%]R969E<F5N8V5?9FEL92@F<75O=#MT97-T7V9O;RYT87(F
+M<75O=#LI.SPO4%)%/CQ0/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYE>'1R
+M86-T7W)E9F5R96YC95]F:6QE*"D\+U14/B!F=6YC=&EO;B!W:6QL"G5U9&5C
+M;V1E('1H92!R97%U97-T960@9FEL92!A;F0@<'5T('1H92!R97-U;'0@:6X@
+M=&AE(&-U<G)E;G0*9&ER96-T;W)Y+B`*/"]0/@H\4#Y,;V]K(&%T(#Q45"!#
+M3$%34STB=V5S=&5R;B(^=&5S=%]R96%D7V9O<FUA=%]C<&EO7V)I;E]B92YC
+M/"]45#X*9F]R(&$@<VEM<&QE(&5X86UP;&4@;V8@=&AI<R!U<V%G92X@"CPO
+M4#X*/%`^02!F97<@;V8@=&AE(&]L9&5R('1E<W1S('-T;W)E(')E9F5R96YC
+M92!D871A('=I=&AI;B!T:&4@<V]U<F-E"F-O9&4@87,@82!H97@M96YC;V1E
+M9"!A<G)A>2!O9B!C:&%R86-T97)S+B!4:&ES('=A<R!C;VUM;VX@8F5F;W)E
+M"CQ45"!#3$%34STB=V5S=&5R;B(^97AT<F%C=%]R969E<F5N8V5?9FEL92@I
+M/"]45#X@=V%S(&%D9&5D(&%N9"!I<PIN;W0@<F5C;VUM96YD960@9F]R(&YE
+M=R!C;V1E+B`*/"]0/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D1O
+M<U]A;F1?1&]N=',B/CPO03Y$;W,@86YD($1O;G1S/"](,3X*/%5,/@H)/$Q)
+M/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/('5S92!A<W-E<G1S
+M(&QI8F5R86QL>2X@270G<PH)8V]M;6]N('1O(&AA=F4@86X@87-S97)T(&]N
+M(&%L;6]S="!E=F5R>2!L:6YE+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R
+M9VEN+6)O='1O;3H@,&EN(CY$3R!U<V4@87-S97)T17%U86Q);G0L"@EA<W-E
+M<G1%<75A;%-T<FEN9RP@87-S97)T17%U86Q-96T@=&\@=&5S="!E<75A;&ET
+M>2!I;G-T96%D(&]F('!L86EN"@EA<W-E<G0H*3L@=&AE('-P96-I86QI>F5D
+M(&9O<FUS(&=I=F4@82!L;W0@;6]R92!I;F9O<FUA=&EO;B!O;B!A"@EF86EL
+M=7)E+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN
+M(CY$3R!T97-T('EO=7(@=&5S=',[(&5X<&5R:6UE;G0@8GD*"6-H86YG:6YG
+M(&$@<&EE8V4@;V8@8V]D92!A;F0@;6%K92!S=7)E('EO=7(@=&5S="!F86EL
+M<RX@268@>6]U('1H:6YK"@EY;W4G=F4@9F]U;F0@82!B=6<L('=E(')E8V]M
+M;65N9"!W<FET:6YG('1H92!T97-T(&9I<G-T+"!M86ME('-U<F4*"71H92!T
+M97-T(&9A:6QS+"!T:&5N(&9I>&EN9R!T:&4@8G5G+B`*"3PO4#X*"3Q,23X\
+M4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!R=6X@86QL(&]F('1H
+M92!T97-T<R!B969O<F4*"7-U8FUI='1I;F<@82!C:&%N9V4N($1E<&5N9&EN
+M9R!O;B!Y;W5R(&)U:6QD(&5N=FER;VYM96YT+"`\5%0@0TQ!4U,](G=E<W1E
+M<FXB/FUA:V4*"71E<W0\+U14/B!O<B`\5%0@0TQ!4U,](G=E<W1E<FXB/FUA
+M:V4@8VAE8VL\+U14/B!W:6QL('5S=6%L;'D@<G5N"@EA;&P@;V8@=&AE('1E
+M<W1S+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN
+M(CY$3TXG5"!R96QY(&]N(#Q45"!#3$%34STB=V5S=&5R;B(^2$%615\\+U14
+M/@H);6%C<F]S(&9R;VT@8V]N9FEG+F@N("A)9B!T:&4@=&5S=',@=7-E('1H
+M92!S86UE(#Q45"!#3$%34STB=V5S=&5R;B(^2$%615\\+U14/@H);6%C<F]S
+M(&%S('1H92!C;V1E(&)E:6YG('1E<W1E9"!T:&5N(&-O;F9I9W5R871I;VX@
+M<')O8FQE;7,@=VEL;"!B90H)8V]V97)E9"!U<"XI(`H)/"]0/@H)/$Q)/CQ0
+M(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/('5S92!R=6Y#!'L/0!0`
+-+;`9T`$`````````````
+`
+end
View
163 libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu
@@ -0,0 +1,163 @@
+begin 644 test_rar_multivolume_multiple_files.part3.rar
+M4F%R(1H'`!EZ<Q$`#0`````````_$'0AD$0`9Q<``(].```#8Z8%7KM,-4$4
+M,!H`I($``$QI8F%R8VAI=F5!9&1I;F=497-T,BYH=&ULP,R[3#5!)TTU071I
+M;64@=&5S=',@9F]R('!L871F;W)M"@EF96%T=7)E<RX@1F]R(&5X86UP;&4L
+M('1H92!!0TP@=&5S=',@=')Y('1O('-E="!A;B!!0TP@;VX@82!F:6QE(&%N
+M9`H)<F5A9"!I="!B86-K('1O(&1E=&5R;6EN92!I9B!!0TP@<W5P<&]R="!I
+M<R!A=F%I;&%B;&4L('1H96X@=&AE>0H)97AE<F-I<V4@=&AE(&QI8F%R8VAI
+M=F4@04-,(&AA;F1L:6YG+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN
+M+6)O='1O;3H@,&EN(CY$3R!L;V]K(&%T(&5X:7-T:6YG('1E<W1S+B!/9G1E
+M;BP*"6$@8G5G(&-A;B!B92!T97-T960@8GD@861D:6YG(&IU<W0@82!C;W5P
+M;&4@;V8@87-S97)T<R!T;R!A;@H)97AI<W1I;F<@=&5S="!I;G-T96%D(&]F
+M('=R:71I;F<@82!N97<@;VYE+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R
+M9VEN+6)O='1O;3H@,&EN(CY$3R!I;7!R;W9E(&5X:7-T:6YG('1E<W1S+B!)
+M;@H)<&%R=&EC=6QA<BP@:68@>6]U('-E92!A('1E<W0@9F%I;'5R92!T:&%T
+M(&ES(&AA<F0@=&\@=6YD97)S=&%N9"P*"6-O;G-I9&5R(&%D9&EN9R!A(&9A
+M:6QU<F4H*2!M97-S86=E(&]R(&-O;6UE;G1S('-O('1H92!N97AT('!E<G-O
+M;@H)=VEL;"!H879E(&%N(&5A<VEE<B!T:6UE+B`*"3PO4#X*"3Q,23X\4#Y$
+M3R!A<VL@;VX@=&AE(&UA:6QI;F<@;&ES=',@:68@>6]U(&AA=F4@<75E<W1I
+M;VYS+B!3;VUE('1E<W1S"@EA<F4@8F5T=&5R('=R:71T96X@=&AA;B!O=&AE
+M<G,N(`H)/"]0/@H\+U5,/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344]
+M(E-O;65?97AA;7!L97-?;V9?=&5S=',B/CPO03Y3;VUE"F5X86UP;&5S(&]F
+M('1E<W1S/"](,3X*/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2),:6)A
+M<F-H:79E7W)E861?=&5S=',B/CPO03Y,:6)A<F-H:79E"G)E860@=&5S=',\
+M+T@R/@H\4#Y4:&5R92!A<F4@<75I=&4@82!F97<@<F5A9"!T97-T<R!T:&%T
+M('-I;7!L>2!R96%D(&$@<')E+6)U:6QT"FEN<'5T(&9I;&4@86YD('9E<FEF
+M>2!T:&4@<F5S=6QT<RX@5&AE<V4@=7-E(#Q45"!#3$%34STB=V5S=&5R;B(^
+M97AT<F%C=%]R969E<F5N8V5?9FEL92@I/"]45#X*=&\@9&5C;V1E(&$@=75E
+M;F-O9&5D(&EN<'5T(&9I;&4L('1H96X@;W!E;B!T:&%T(&9I;&4@=VET:"!L
+M:6)A<F-H:79E"F%N9"!V97)I9GD@=&AE(')E<W5L=',N($UO<W0@;V8@=&AE
+M<V4@87)E('!R971T>2!S=')A:6=H=&9O<G=A<F0N(`H\+U`^"CQ(,B!#3$%3
+M4STB=V5S=&5R;B(^/$$@3D%-13TB3&EB87)C:&EV95]R96%D+W=R:71E7W1E
+M<W1S(CX\+T$^3&EB87)C:&EV90IR96%D+W=R:71E('1E<W1S/"](,CX*/%`^
+M36]S="!O9B!T:&4@=W)I=&4@=&5S=',@<F5A;&QY(&IU<W0@=F5R:69Y('1H
+M870@;&EB87)C:&EV92!C86X*<F5A9"!W:&%T(&ET('=R:71E<RX@5&AE<V4@
+M9V5N97)A;&QY('5S92!T:&4@;65M;W)Y(&EN=&5R9F%C97,N(%1H97D*9F5E
+M9"!A<F-H:79E(&5N=')I97,@:6YT;R!T:&4@=W)I=&5R('1O(&-R96%T92!A
+M;B!A<F-H:79E(&EN(&UE;6]R>0IA;F0@=&AE;B!O<&5N('1H92!M96UO<GD@
+M86=A:6X@=&\@<F5A9"!T:&4@9&%T82!B86-K(&%N9"!V97)I9GD@=&AA=`II
+M="!I<R!T:&4@<V%M92X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!.
+M04U%/2),:6)A<F-H:79E7W=R:71E7W9A;&ED871O<G,B/CPO03Y,:6)A<F-H
+M:79E"G=R:71E('9A;&ED871O<G,\+T@R/@H\4#Y!(&9E=R!W<FET92!T97-T
+M<R!W<FET92!A;B!A<F-H:79E(&EN=&\@;65M;W)Y(&%N9"!T:&5N(&EN<W!E
+M8W0*=&AE(&%C='5A;"!B>71E<R!T;R!V97)I9GD@=&AA="!T:&4@87)C:&EV
+M92!W87,@8W)E871E9"!C;W)R96-T;'DN"E1H97-E('1E<W1S(&%R92!N:6-E
+M('1O(&AA=F4@8G5T(&%R92!T961I;W5S('1O(&)U:6QD+B`*/"]0/@H\4#Y4
+M:&5R92!A<F4@86QS;R!A(&-O=7!L92!O9B!S=6-H('9A;&ED871O<G,@9F]R
+M(&)S9'1A<B!A;F0@8G-D8W!I;RX*5&AE<V4@87)E('9E<GD@=')I8VMY('-I
+M;F-E('1H92!E>&%C="!D871A(&-O;G1A:6YS('9A;'5E<R!T:&%T('1H90IT
+M97-T(&-A;FYO="!C;VUP;&5T96QY(&-O;G1R;VP@*'-U8V@@87,@=&AE(&-U
+M<G)E;G0@=&EM92!O<@IU<V5R;F%M92DN(`H\+U`^"CQ(,B!#3$%34STB=V5S
+M=&5R;B(^/$$@3D%-13TB1&ES:U]T97-T<R(^/"]!/D1I<VL@=&5S=',\+T@R
+M/@H\4#Y,:6)A<F-H:79E)W,@9&ES:R!)+T\@05!)<RP@87,@=V5L;"!A<R!B
+M<V1T87(@86YD(&)S9&-P:6\L(&YE960@=&\*;W!E<F%T92!B>2!V97)I9GEI
+M;F<@9FEL97,@;VX@9&ES:RX@5&\@;6%K92!T:&ES(&5A<VEE<BP@=&AE('1E
+M<W0*9G)A;65W;W)K(&YO=R!H87,@82!L87)G92!N=6UB97(@;V8@87-S97)T
+M:6]N<R!T;R!V97)I9GD@=&EM97-T86UP<RP*<&5R;6ES<VEO;G,L(&%N9"!O
+M=&AE<B!B87-I8R!F:6QE(&1A=&$N(%1H97-E(&%S<V5R=&EO;G,@=7-E"F%P
+M<')O<')I871E('-Y<W1E;2!C86QL<R!F;W(@96%C:"!P;&%T9F]R;3L@;F5W
+M('1E<W1S('-H;W5L9"!T<GD@=&\*879O:60@=7-I;F<@/%14($-,05-3/2)W
+M97-T97)N(CYS=&%T*"D\+U14/BP@=VAI8V@@:7,@;F]T('5N:69O<FUL>0IA
+M=F%I;&%B;&4N(`H\+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB
+M1G5Z>E]T97-T97(B/CPO03Y&=7IZ('1E<W1E<CPO2#(^"CQ0/E1H92!F=7IZ
+M('1E<W1E<B!I<R!O;F4@;V8@=&AE(&9E=R!T97-T<R!T:&%T(&1O97,@;F]T
+M(&%G9W)E<W-I=F5L>0IU<V4@87-S97)T:6]N<RX@271S('!U<G!O<V4@:7,@
+M=&\@=')Y(&%N9"!C<F%S:"!L:6)A<F-H:79E(&)Y(&9E961I;F<*:70@:6YP
+M=70@=&AA="!I<R!S;&EG:'1L>2!D86UA9V5D+B`H4F5M96UB97(@=&AA="!L
+M:6)A<F-H:79E(&1O97,*:&%V92!S;VUE(&9A:6QS869E(&-O9&4@=&AA="!D
+M96QI8F5R871E;'D@86)O<G1S('1H92!E;G1I<F4@<')O9W)A;0II9B!C97)T
+M86EN(&EN=F%R:6%N=',@87)E('9I;VQA=&5D+BD@"CPO4#X*/%`^4VEN8V4@
+M82!F=7IZ(&9A:6QU<F4@8V%U<V5S(&$@8W)A<V@L(&ET)W,@:6UP;W-S:6)L
+M92!T;R!R97!O<G0@=&AE"F5R<F]R('1O('1H92!C;VYS;VQE+"!S;R!T:&4@
+M9G5Z>B!T97-T97(@:6YS=&5A9"!G96YE<F%T97,@80IR86YD;VUL>2UD86UA
+M9V5D(&9I;&4L('-A=F5S('1H870@9FEL92!T;R!D:7-K+"!T:&5N(')U;G,@
+M=&AE(&9I;&4*=&AR;W5G:"!L:6)A<F-H:79E('1O('1R>2!T;R!P<F]V;VME
+M(&$@8W)A<V@N($EF(&QI8F%R8VAI=F4@8W)A<VAE<PIT:&4@96YT:7)E('1E
+M<W1E<BP@=&AE(&EN<'5T('1H870@8V%U<V5D('1H92!C<F%S:"!W:6QL(&)E
+M(&%V86EL86)L90IO;B!D:7-K(&9O<B!F=7)T:&5R(&%N86QY<VES+B`*/"]0
+M/@H\4#Y!;'1H;W5G:"!I="!I<R!U;G5S=6%L(&9O<B!A('1E<W0@<')O9W)A
+M;2!T;R!U<V4@<F%N9&]M(&EN<'5T+"!T:&4*9G5Z>B!T97-T97(@:&%S('!R
+M;W9E;B!Q=6ET92!U<V5F=6P@870@=6YC;W9E<FEN9R!P;V]R(&5R<F]R"FAA
+M;F1L:6YG+B!5;F9O<G1U;F%T96QY+"!T:&4@;F5E9"!T;R!W<FET92!T:&4@
+M9&%T82!T;R!D:7-K(&)E9F]R90IE86-H('1E<W0@:7,@82!S:6=N:69I8V%N
+M="!P97)F;W)M86YC92!I<W-U92X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N
+M(CX\02!.04U%/2),87)G95]T87)?=&5S=&5R(CX\+T$^3&%R9V4@=&%R('1E
+M<W1E<CPO2#(^"CQ0/E1H92!L87)G92!T87(@=&5S=&5R(&%T=&5M<'1S('1O
+M(&5X97)C:7-E(&)O=6YD87)Y(&-A<V5S('=I=&@@=F5R>0IL87)G92!E;G1R
+M:65S+"!U<"!T;R`Q('1E<F%B>71E+B!/9B!C;W5R<V4L('=R:71I;F<@82`Q
+M('1E<F%B>71E"F5N=')Y('1O(&%N('5N8V]M<')E<W-E9"!A<F-H:79E(&]N
+M(&1I<VL@;W(@;65M;W)Y(&ES('5N86-C97!T86)L92P*8F]T:"!F;W(@<&5R
+M9F]R;6%N8V4@86YD('-P86-E(')E87-O;G,N($5V96X@9WII<"!O<B!B>FEP
+M,@IC;VUP<F5S<VEO;B!W;VXG="!H96QP.R!A;'1H;W5G:"!S;6%L;&5R+"!T
+M:&4@;W5T<'5T(&ES('-T:6QL(&QA<F=E"F%N9"!T:&4@=&EM92!N965D960@
+M=&\@8V]M<')E<W,@<W5C:"!A(&QA<F=E(&%M;W5N="!O9B!D871A(&ES"G!R
+M;VAI8FET:79E+B!3;R!T:&4@;&%R9V4@=&%R('1E<W1E<B!U<V5S(&$@=')I
+M8VLN(`H\+U`^"CQ0/E)E;65M8F5R('1H870@86X@=6YC;VUP<F5S<V5D('1A
+M<B!A<F-H:79E(&-O;G-I<W1S(&]F(&%L=&5R;F%T:6YG"FAE861E<G,@86YD
+M(&)O9&EE<RX@268@=&AE(&)O9&EE<R!C;VYS:7-T(&5N=&ER96QY(&]F('IE
+M<F\@8GET97,L"G1H96X@86QL('1H870G<R!N965D960@=&\@<F5C;VYS=')U
+M8W0@=&AE(&%R8VAI=F4@:7,@=&\@<F5C;W)D('1H90IR96QA=&EV96QY('-M
+M86QL(&AE861E<G,@86YD('-T;W)E(&$@8V]U;G0@;V8@96%C:"!C;VYT:6=U
+M;W5S(&)L;V-K"F]F('IE<F]S+B!4:&ES('-I;7!L92`F<75O=#MR=6XM;&5N
+M9W1H(&5N8V]D:6YG)G%U;W0[(&ES('9E<GD*969F96-T:79E+"!C;VUP<F5S
+M<VEN9R!A('-A;7!L92!A<F-H:79E('=I=&@@82!D;WIE;B!E;G1R:65S(&1O
+M=VX@=&\*:G5S="!A(&9E=R!K:6QO8GET97,L(&5V96X@:68@=&AO<V4@96YT
+M<FEE<R!R86YG92!U<"!T;R`Q5$(N(`H\+U`^"CQ0/D)Y('=R:71I;F<@82!C
+M=7-T;VT@22]/(&QA>65R('1H870@:6UP;&5M96YT<R!S=6-H(&-O;7!R97-S
+M:6]N+"!W90IC86X@=W)I=&4@=F5R>2!L87)G92!E;G1R:65S('1H<F]U9V@@
+M;&EB87)C:&EV92!T:&5N(')E860@=&AE;2!B86-K"F%N9"!V97)I9GD@=&AA
+M="!L:6)A<F-H:79E(&-O<G)E8W1L>2!H86YD;&5S(&%L;"!O9B!T:&4@8F]U
+M;F1A<GD*8V%S97,N(`H\+U`^"CQ0/D]F(&-O=7)S92P@979E;B!S8V%N;FEN
+M9R!O=71P=70@=&\@9&5T97)M:6YE('IE<F\@8FQO8VMS(&-A;B!T86ME"G%U
+M:71E(&$@=VAI;&4L('-O('1H92!L87)G92!T87(@=&5S=&5R(&UA:V5S(&]N
+M92!M;W)E(&]P=&EM:7IA=&EO;CH*3&EB87)C:&EV92!I<R`F<75O=#MM;W-T
+M;'DF<75O=#L@>F5R;RUC;W!Y+B!7:&5N('EO=2!G:79E(&ET(&$@;&%R9V4*
+M8FQO8VL@=&\@=W)I=&4@=&\@86X@96YT<GD@8F]D>2P@:70@=VEL;"!P87-S
+M('!O:6YT97)S('-T<F%I9VAT"G1H<F]U9V@@=&\@=&AE(&]U='!U="!R;W5T
+M:6YE+"!E>&-E<'0@:6X@=&AO<V4@8V%S97,@=VAE<F4@:70@;75S=`IC;W!Y
+M(&1A=&$@=&\@8V]R<F5C=&QY(&)U:6QD(&)L;V-K<RX@5&AE(&QA<F=E('1A
+M<B!T97-T97(@=&%K97,*861V86YT86=E(&]F('1H:7,@=&\@<75I8VML>2!D
+M971E8W0@=VAE;B!A(&)L;V-K(&)E:6YG('=R:71T96X@;W5T(&)Y"G1H92!A
+M<F-H:79E('=R:71E<B!I<R!T:&4@<V%M92!A<R!S;VUE(&]F('1H92!D871A
+M('1H870@=V%S(&=I=F5N(&)Y"G1H92!T97-T(&%S('1H92!E;G1R>2!B;V1Y
+M+"!A;F0@<VEM:6QA<FQY('=H96X@<F5A9&EN9R!T:&4@87)C:&EV90IB86-K
+M+B`*/"]0/@H\4#Y486ME;B!T;V=E=&AE<BP@=&AE<V4@=')I8VMS(&%L;&]W
+M('1H92!L87)G92!T87(@=W)I=&5R('1O('1E<W0*9F]R(&ES<W5E<R!S=6-H
+M(&%S('!R;W!E<B!S=&]R86=E(&]F('9E<GD@;&%R9V4@9FEL92!S:7IE<R`H
+M=&%R(&9I;&5S"G-U<'!O<G0@<V5V97)A;"!D:69F97)E;G0@=V%Y<R!T;R!S
+M=&]R92!F:6QE('-I>F5S('=H:6-H('1R861E(&]F9@IP;W)T86)I;&ET>2!V
+M97)S=7,@<F%N9V4[(&QI8F%R8VAI=F4@=')I97,@=&\@=7-E('1H92!M;W-T
+M('!O<G1A8FQE"F]N92!I="!C86X@9F]R(&5A8V@@96YT<GDI(&%N9"!I;G1E
+M9V5R(&]V97)F;&]W("A7:6YD;W=S(#,R+6)I="`\5%0@0TQ!4U,](G=E<W1E
+M<FXB/F]F9E]T/"]45#X*8G)O:V4@=&AE(&QA<F=E('1A<B!T97-T(&%N9"!L
+M960@;&EB87)C:&EV92!T;R!M86ME(&AE879I97(@=7-E(&]F"CQ45"!#3$%3
+M4STB=V5S=&5R;B(^:6YT-C1?=#PO5%0^(&EN=&5R;F%L;'DI(&EN(&$@=&5S
+M="!T:&%T(')U;G,@:6X*=6YD97(@,2\T('-E8V]N9"X@"CPO4#X*/%`@4U19
+M3$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^/$)2/@H\+U`^"CPO0D]$63X*/"](
+M5$U,/G_2="*00P#J`P``CTX```-FJ^+3\V,A0!0P&0"D@0``3&EB87)C:&EV
+M94%D9&EN9U1E<W0N:'1M;,#,\V,A0+M,-4$\(41/0U194$4@2%1-3"!054),
+M24,@(BTO+U<S0R\O1%1$($A434P@-"XP(%1R86YS:71I;VYA;"\O14XB/@H\
+M2%1-3#X*/$A%040^"@D\345402!(5%10+45154E6/2)#3TY414Y4+5194$4B
+M($-/3E1%3E0](G1E>'0O:'1M;#L@8VAA<G-E=#UU=&8M."(^"@D\5$E43$4^
+M/"]4251,13X*"3Q-151!($Y!344](D=%3D52051/4B(@0T].5$5.5#TB3&EB
+M<F5/9F9I8V4@,RXS("`H56YI>"DB/@H)/$U%5$$@3D%-13TB0U)%051%1"(@
+M0T].5$5.5#TB,C`Q,3`V,C8[,C(R,S4Q,#`B/@H)/$U%5$$@3D%-13TB0TA!
+M3D=%1"(@0T].5$5.5#TB,C`Q,3`V,C8[,C(R-30U,#`B/@H)/%-464Q%(%19
+M4$4](G1E>'0O8W-S(CX*"3PA+2T*"0E`<&%G92![(&UA<F=I;CH@,"XW.6EN
+M('T*"0E0('L@;6%R9VEN+6)O='1O;3H@,"XP.&EN('T*"0E(,2![(&UA<F=I
+M;BUB;W1T;VTZ(#`N,#AI;B!]"@D)2#$N=V5S=&5R;B![(&9O;G0M9F%M:6QY
+M.B`B3&EB97)A=&EO;B!397)I9B(L('-E<FEF('T*"0E(,2YC:FL@>R!F;VYT
+M+69A;6EL>3H@(D)I='-T<F5A;2!697)A(%-A;G,B('T*"0E(,2YC=&P@>R!F
+M;VYT+69A;6EL>3H@(D9R965386YS(B!]"@D)4%)%+F-J:R![(&9O;G0M9F%M
+M:6QY.B`B0FET<W1R96%M(%9E<F$@4V%N<R(L(&UO;F]S<&%C92!]"@D)2#(@
+M>R!M87)G:6XM8F]T=&]M.B`P+C`X:6X@?0H)"4@R+F-T;"![(&9O;G0M9F%M
+M:6QY.B`B1G)E95-A;G,B('T*"0E45"YC:FL@>R!F;VYT+69A;6EL>3H@(D)I
+M='-T<F5A;2!697)A(%-A;G,B+"!M;VYO<W!A8V4@?0H)+2T^"@D\+U-464Q%
+M/@H\+TA%040^"CQ"3T19($Q!3D<](F5N+553(B!$25(](DQ44B(^"CQ(,2!#
+M3$%34STB=V5S=&5R;B(^26YT<F]D=6-T:6]N/"](,3X*/%`^3&EB87)C:&EV
+M92!I<R!N;W<@82!F86ER;'D@8V]M<&QE>"!P:65C92!O9B!S;V9T=V%R92!T
+M:&%T(')U;G,@;VX*82!N=6UB97(@;V8@9&EF9F5R96YT('!L871F;W)M<RX@
+M02!T:&]R;W5G:"!T97-T('-U:71E(&ES(&5S<V5N=&EA;`IB;W3-@7L/0!0`
+-)(88NP(`````````````
+`
+end
View
163 libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu
@@ -0,0 +1,163 @@
+begin 644 test_rar_multivolume_multiple_files.part4.rar
+M4F%R(1H'`!EZ<Q$`#0````````#M^70CD$,`E1L``(].```#VUD;]_-C(4`4
+M,!D`I($``$QI8F%R8VAI=F5!9&1I;F=497-T+FAT;6S`S/-C(4"[3#5!:"!F
+M;W(@=F5R:69Y:6YG(&YE=R!P;W)T<R!A;F0@9F]R(&5N<W5R:6YG('1H870@
+M9G5T=7)E(&-H86YG97,*9&]N)W0@8G)E86L@97AI<W1I;F<@9G5N8W1I;VYA
+M;&ET>2X@"CPO4#X*/%`^06YY('-I9VYI9FEC86YT(&-H86YG92!T;R!L:6)A
+M<F-H:79E+"!I;F-L=61I;F<@;6]S="!B=6<@9FEX97,L"G-H;W5L9"!B92!A
+M8V-O;7!A;FEE9"!B>2!N97<@=&5S=',@;W(@8VAA;F=E<R!T;R!E>&ES=&EN
+M9R!T97-T<RX@5&AI<PIA<G1I8VQE(&5X<&QA:6YS(&AO=R!T:&4@;&EB87)C
+M:&EV92!T97-T('-U:71E<R!W;W)K(&%N9"!H;W<@=&\*97AT96YD('1H96TN
+M(`H\+U`^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB0G5I;&1I;F=?
+M86YD7U)U;FYI;F=?=&AE7U1E<W1?4')O9W)A;7,B/CPO03X*0G5I;&1I;F<@
+M86YD(%)U;FYI;F<@=&AE(%1E<W0@4')O9W)A;7,\+T@Q/@H\4#Y%86-H(&UA
+M:F]R(&-O;7!O;F5N="TM;&EB87)C:&EV92P@8G-D=&%R+"!A;F0@8G-D8W!I
+M;RTM:&%S(&$@=&5S=`IP<F]G<F%M('1H870@97AE<F-I<V5S('1H92!F=6YC
+M=&EO;F%L:71Y(&]F('1H870@8V]M<&]N96YT+B!4:&5S90IT97-T('!R;V=R
+M86US(&%R92!C;VUP:6QE9"!I;B!T:&4@<V%M92!W87D@=&AA="!T:&4@<F5S
+M="!O9B!T:&4*;&EB87)C:&EV92!S=6ET92!I<R!C;VUP:6QE9"X@"CPO4#X*
+M/%`^5&\@<G5N('1H92!T97-T('!R;V=R86US+"!Y;W4@;F5E9"!T;R!G:79E
+M('1H96T@='=O('!I96-E<R!O9@II;F9O<FUA=&EO;CH@"CPO4#X*/%5,/@H)
+M/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E1H92!F=6QL('!A
+M=&@@=&\@=&AE(&1I<F5C=&]R>0H):&]L9&EN9R!T:&4@)G%U;W0[<F5F97)E
+M;F-E(&9I;&5S)G%U;W0[(`H)/"]0/@H)/$Q)/CQ0/E1H92!F=6QL('!A=&@@
+M=&\@=&AE(&5X96-U=&%B;&4@<')O9W)A;2!B96EN9R!T97-T960@*&YO=`H)
+M87!P;&EC86)L92!T;R!L:6)A<F-H:79E7W1E<W0@<VEN8V4@;&EB87)C:&EV
+M92!I<R!C;VUP:6QE9"!I;G1O('1H90H)=&5S="!P<F]G<F%M*2`*"3PO4#X*
+M/"]53#X*/%`^5&AE(')E9F5R96YC92!F:6QE<R!A<F4@82!C;VQL96-T:6]N
+M(&]F(&MN;W=N(&EN<'5T<R!T:&%T(&%R92!U<V5D"FEN('1H92!T97-T('!R
+M;V-E<W,N(%1H97D@87)E(&%L;"!S=&]R960@:6X@=75E;F-O9&5D(&9O<FUA
+M="!I;B!F:6QE<PIW:71H(&$@)G%U;W0[+G5U)G%U;W0[(&5X=&5N<VEO;BX@
+M5&AE('1E<W0@<')O9W)A;7,@;&]O:R!I;B!A(&9E=PIS=&%N9&%R9"!L;V-A
+M=&EO;G,[(&EF(&YO;F4@;V8@=&AO<V4@=V]R:RP@>6]U)VQL(&YE960@=&\@
+M<W!E8VEF>2!T:&4*/%14($-,05-3/2)W97-T97)N(CXM<CPO5%0^(&]P=&EO
+M;B!W:71H('1H92!F=6QL('!A=&AN86UE('1O('1H90IA<'!R;W!R:6%T92!D
+M:7)E8W1O<GDN(`H\+U`^"CQ0/E1H92!B<V1T87)?=&5S="!A;F0@8G-D8W!I
+M;U]T97-T('!R;V=R86US(')U;B!B<V1T87(@;W(@8G-D8W!I;PIR97!E871E
+M9&QY.R!T:&5Y(&YE960@=&AE(&9U;&P@<&%T:"!T;R!T:&4@87!P<F]P<FEA
+M=&4@97AE8W5T86)L92X*06QT:&]U9V@@8G-D=&%R7W1E<W0@86YD(&)S9&-P
+M:6]?=&5S="!A<F4@<W!E8VEF:6-A;&QY(&EN=&5N9&5D(&9O<@IT97-T:6YG
+M(&)S9'1A<B!A;F0@8G-D8W!I;RP@=&AE>2!S:&]U;&0@8F4@=7-A8FQE(&9O
+M<B!T97-T:6YG(&]T:&5R"G1A<B!A;F0@8W!I;R!P<F]G<F%M<RX@26X@9F%C
+M="P@<G5N;FEN9R!T:&5S92!T97-T('!R;V=R86US(&%G86EN<W0*;W1H97(@
+M=&%R(&EM<&QE;65N=&%T:6]N<R!I<R!A(&=O;V0@=V%Y('1O('9E<FEF>2!T
+M:&%T('1H92!T97-T"G!R;V=R86US('1H96US96QV97,@87)E('=O<FMI;F<@
+M8V]R<F5C=&QY+B`*/"]0/@H\4#Y7:&5N(')U;BP@=&AE('1E<W0@<')O9W)A
+M;7,@;W5T<'5T(&$@<')O9W)E<W,@;65S<V%G92!F;W(@96%C:`IT97-T+"!A
+M;B!E<G)O<B!M97-S86=E(&9O<B!E86-H(&9A:6QE9"!A<W-E<G1I;VXL(&%N
+M9"!A(&9I;F%L"G-U;6UA<GDZ(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E<FXB
+M/B9N8G-P.U)U;FYI;F<@=&5S=',@:6XZ("]T;7`O8G-D=&%R7W1E<W0N,C`P
+M.2TP,BTQ-U0R,2XS,"XT,"TP,#`*)FYB<W`[4F5F97)E;F-E(&9I;&5S('=I
+M;&P@8F4@<F5A9"!F<F]M.B`F;F)S<#L@)FYB<W`[+VAO;64O=&EM+VQI8F%R
+M8VAI=F4O=')U;FLO=&%R+W1E<W0*)FYB<W`[4G5N;FEN9R!T97-T<R!O;CH@
+M+VAO;64O=&EM+VQI8F%R8VAI=F4O=')U;FLO8G-D=&%R"B9N8G-P.T5X97)C
+M:7-I;F<Z(&)S9'1A<B`R+C8N.3`P82`M(&QI8F%R8VAI=F4@,BXV+CDP,&$*
+M)FYB<W`[,#H@=&5S=%\P"B9N8G-P.S$Z('1E<W1?8F%S:6,*)FYB<W`[,CH@
+M=&5S=%]C;W!Y"B9N8G-P.R!T97-T7V-O<'DN8SHQ-S$Z($%S<V5R=&EO;B!F
+M86EL960Z($EN=',@;F]T(&5Q=6%L"B9N8G-P.R`F;F)S<#L@)FYB<W`[(#`]
+M,`HF;F)S<#L@)FYB<W`[("9N8G-P.R!L<W1A="AN86UE,B`K(#,L("9A;7`[
+M<W0R*3TM,0HF;F)S<#L@=&5S=%]C;W!Y+F,Z,3<Q.B!&86EL960@,C8T('1I
+M;65S"B9N8G-P.S,Z('1E<W1?9V5T9&%T90HF;F)S<#LT.B!T97-T7VAE;'`*
+M)FYB<W`[("9N8G-P.R`N+BX@;6]R92!O=71P=70@;VUI='1E9"`N+BX*)FYB
+M<W`[,2!O9B`Q,R!T97-T<R!R97!O<G1E9"!F86EL=7)E<PHF;F)S<#L@5&]T
+M86P@;V8@,3`U,#DW(&%S<V5R=&EO;G,@8VAE8VME9"X*)FYB<W`[(%1O=&%L
+M(&]F(#(V-"!A<W-E<G1I;VYS(&9A:6QE9"X*)FYB<W`[(%1O=&%L(&]F(#`@
+M87-S97)T:6]N<R!S:VEP<&5D+CPO4%)%/CQ0/@I4:&4@:&5A9&5R(&QI;F5S
+M(&AE<F4@<F5C;W)D.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I
+M;BUB;W1T;VTZ(#!I;B(^=&AE(&1I<F5C=&]R>2!T:&%T('=I;&P@8F4@=7-E
+M9`H)9F]R('-C<F%T8V@@9FEL97,@9'5R:6YG('1H92!T97-T+B!)9B!A('1E
+M<W0@9F%I;',L('1H92!S8W)A=&-H"@EF:6QE<R!W:6QL(&)E(&QE9G0@8F5H
+M:6YD(&EN('1H:7,@9&ER96-T;W)Y(&9O<B!F=7)T:&5R(&1E8G5G9VEN9RX@
+M"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^5&AE
+M(&1I<F5C=&]R>2!F<F]M('=H:6-H('1H90H)<F5F97)E;F-E(&9I;&5S('=I
+M;&P@8F4@<F5A9"X@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T
+M;VTZ(#!I;B(^1F]R(&)S9'1A<E]T97-T(&%N9"!B<V1C<&EO7W1E<W0L"@ET
+M:&4@9G5L;"!P871H('1O('1H92!E>&5C=71A8FQE(&)E:6YG(&5X97)C:7-E
+M9"X@"@D\+U`^"@D\3$D^/%`^0F%S:6,@=F5R<VEO;B!I;F9O<FUA=&EO;B!A
+M8F]U="!T:&4@=&%R9V5T+B`*"3PO4#X*/"]53#X*/%`^26X@=&AI<R!C87-E
+M+"!T:&4@=')A:6QE<B!I;F1I8V%T97,@=&AA="!O;F4@=&5S="!F86EL960N
+M($%S('EO=0IC86X@<V5E+"!T:&5R92!W87,@82!S:6YG;&4@87-S97)T:6]N
+M(&EN('1H92!C;V1E('1H870@9F%I;&5D(#(V-`IT:6UE<RX@5&AE(&9I<G-T
+M('1I;64@:70@9F%I;&5D+"!I="!W87,@8F5C875S92!A;B`\5%0@0TQ!4U,]
+M(G=E<W1E<FXB/FQS=&%T*"D\+U14/@IC86QL(')E='5R;F5D("TQ(&EN<W1E
+M860@;V8@=&AE('IE<F\@=&AA="!W87,@97AP96-T960N(`H\+U`^"CQ(,2!#
+M3$%34STB=V5S=&5R;B(^/$$@3D%-13TB0F%S:6-?=&5S=%]T97)M:6YO;&]G
+M>2(^/"]!/D)A<VEC('1E<W0*=&5R;6EN;VQO9WD\+T@Q/@H\4#Y%86-H('1E
+M<W0@<')O9W)A;2!C;VYS:7-T<R!O9B!A(&YU;6)E<B!O9B`F<75O=#MT97-T
+M<R9Q=6]T.RX@16%C:`IT97-T(&AA<R!A(&YA;64@86YD(&ES(&EM<&QE;65N
+M=&5D(&EN(&$@0R!S;W5R8V4@9FEL92!W:71H('1H92!S86UE"FYA;64@87,@
+M=&AE('1E<W0N(%1E<W1S('=O<FL@8GD@<&5R9F]R;6EN9R!S;VUE('-E<FEE
+M<R!O9B!O<&5R871I;VYS"F%N9"!M86MI;F<@)G%U;W0[87-S97)T:6]N<R9Q
+M=6]T.R!A8F]U="!T:&4@<F5S=6QT<RX@1F]R(&5X86UP;&4L"FUA;GD@;V8@
+M=&AE(&QI8F%R8VAI=F4@=&5S=',@;W!E;B!A;F0@<F5A9"!A;B!A<F-H:79E
+M(&%N9"!A<W-E<G0@=&AA=`IP87)T:6-U;&%R(&]P97)A=&EO;G,@<W5C8V5E
+M9&5D(&]R(&9A:6QE9"X@*%EE<RP@:70@:7,@;V9T96X*:6UP;W)T86YT('1O
+M('9E<FEF>2!T:&%T(&EL;&5G86P@<F5Q=65S=',@9V5N97)A=&4@87!P<F]P
+M<FEA=&4*97)R;W)S+BD@"CPO4#X*/%`^2&5R92!I<R!A('-O;65W:&%T(&5D
+M:71E9"!E>&-E<G!T(&9R;VT@/%14($-,05-3/2)W97-T97)N(CYT97-T7V-O
+M;7!A=%]Z:7`\+U14/BP*=VAI8V@@=F5R:69I97,@8V]M<&%T:6)I;&ET>2!W
+M:71H('9A<FEO=7,@6DE0(&9O<FUA="!A<F-H:79E<SH@"CPO4#X*/%!212!#
+M3$%34STB=V5S=&5R;B(^)FYB<W`[($1%1DE.15]415-4*'1E<W1?8V]M<&%T
+M7WII<"D*)FYB<W`[('L*)FYB<W`[("9N8G-P.R`O*B`N+BX@<V5T=7`@;VUI
+M='1E9"`N+BX@*B\*)FYB<W`[("9N8G-P.R!A<W-E<G0H*&$@/2!A<F-H:79E
+M7W)E861?;F5W*"DI("$]($Y53$PI.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q
+M=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P
+M.R!A<F-H:79E7W)E861?<W5P<&]R=%]C;VUP<F5S<VEO;E]A;&PH82DI.PHF
+M;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P
+M.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E861?<W5P<&]R=%]F
+M;W)M871?86QL*&$I*3L*)FYB<W`[("9N8G-P.R!E>'1R86-T7W)E9F5R96YC
+M95]F:6QE*&YA;64I.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%2
+M0TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E
+M7W)E861?;W!E;E]F:6QE;F%M92AA+"!N86UE+"`Q,#(T,"DI.PHF;F)S<#L@
+M)FYB<W`[("9N8G-P.R\J(%)E860@9FER<W0@96YT<GDN("HO"B9N8G-P.R`F
+M;F)S<#L@)FYB<W`[87-S97)T17%U86Q);G0H05)#2$E615]/2RP@87)C:&EV
+M95]R96%D7VYE>'1?:&5A9&5R*&$L("9A;7`[864I*3L*)FYB<W`[("9N8G-P
+M.R`F;F)S<#MA<W-E<G1%<75A;%-T<FEN9R@F<75O=#M-151!+4E.1B]-04Y)
+M1D535"Y-1B9Q=6]T.RP@87)C:&EV95]E;G1R>5]P871H;F%M92AA92DI.SPO
+M4%)%/CQ0/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G186%A8/"]4
+M5#X@;6%C<F]S(&-H96-K('1H870@=&AE:7(*87)G=6UE;G1S('-A=&ES9GD@
+M8V5R=&%I;B!C;VYD:71I;VYS+B!)9B!T:&4@87-S97)T:6]N(&9A:6QS+2UF
+M;W(*97AA;7!L92P@:68@=&AE(&YA;64@;V8@=&AE(&9I<G-T(&5N=')Y(&ES
+M(&YO=`HF<75O=#M-151!+4E.1B]-04Y)1D535"Y-1B9Q=6]T.RTM=&AE(&UA
+M8W)O('=I;&P@<F5P;W)T('1H92!P<F]B;&5M+B`*/"]0/@H\4#Y4:&5R92!A
+M<F4@='=O(&EM<&]R=&%N="!D:69F97)E;F-E<R!B971W965N('1H92`\5%0@
+M0TQ!4U,](G=E<W1E<FXB/F%S<V5R=%A86#PO5%0^"FUA8W)O<R!U<V5D(&EN
+M('1H97-E('1E<W0@:&%R;F5S<V5S(&%N9"!T:&4@25-/($,@<W1A;F1A<F0@
+M/%14($-,05-3/2)W97-T97)N(CYA<W-E<G0\+U14/@IM86-R;SH@1FER<W0L
+M('1H97-E(&%S<V5R="!M86-R;W,@9&]N)W0@97AI="!O;B!F86EL=7)E+B!"
+M>2!D969A=6QT+`IT:&5Y(')E<&]R="!T:&4@9F%I;'5R92!A;F0@<F5T=7)N
+M('IE<F\@*'1H92!#(&YO=&EO;B!O9B`F<75O=#MF86QS929Q=6]T.RDN"E-E
+M8V]N9"P@=&AE<V4@;6%C<F]S(&EN8VQU9&4@=F%R:6%N=',@=&AA="!P97)F
+M;W)M(&$@=F%R:65T>2!O9@IS<&5C:69I8R!T97-T<RX@5&AE<V4@<W!E8VEF
+M:6,@=F5R<VEO;G,@*'-U8V@@87,@/%14($-,05-3/2)W97-T97)N(CYA<W-E
+M<G1%<75A;$EN=#PO5%0^"F%N9"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R
+M=$5Q=6%L4W1R:6YG/"]45#X@:6X@=&AE(&5X86UP;&4@86)O=F4I"F=E;F5R
+M871E(&1E=&%I;&5D(&QO9R!M97-S86=E<R!O;B!F86EL=7)E+B!);B!P87)T
+M:6-U;&%R+"!T:&5Y('!R:6YT"G1H92!V86QU92!O9B!B;W1H(&%R9W5M96YT
+M<SL@=&AI<R!G<F5A=&QY('-I;7!L:69I97,@9&EA9VYO<VEN9PIF86EL=7)E
+M<RX@"CPO4#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!.04U%/2),:69E7V-Y
+M8VQE7V]F7V%?=&5S="(^/"]!/DQI9F4@8WEC;&4@;V8*82!T97-T/"](,3X*
+M/%`^16%C:"!T97-T(')E<VED97,@:6X@82!#('-O=7)C92!F:6QE('=I=&@@
+M=&AE('-A;64@;F%M92!A<R!T:&4*=&5S="X@5&AE('1E<W0@:71S96QF(&ES
+M(&$@9G5N8W1I;VX@=&AA="!T86ME<R!N;R!A<F=U;65N=',N(%1H92!T97-T
+M"FES(&1E8VQA<F5D('5S:6YG('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB/D1%
+M1DE.15]415-4*"D\+U14/B!M86-R;RX*5&AI<R!M86-R;R!S97)V97,@8F]T
+M:"!T;R!E;G-U<F4@=&AA="!T:&4@=&5S="!I<R!D96-L87)E9"!C;W)R96-T
+M;'D*86YD(&%S(&$@;&%B96P@=&AA="!C86X@8F4@=7-E9"!T;R!L;V-A=&4@
+M86QL(&1E9FEN960@=&5S=',N("A/;@I5;FEX+6QI:V4@<&QA=&9O<FUS+"!A
+M('-I;7!L92`\5%0@0TQ!4U,](G=E<W1E<FXB/F=R97`\+U14/B!O<&5R871I
+M;VX*:7,@=7-E9"!T;R!C;VYS=')U8W0@82!F:6QE(&-A;&QE9"`\5%0@0TQ!
+M4U,](G=E<W1E<FXB/FQI<W0N:#PO5%0^"G1H870@:&]L9',@=&AE(&YA;65S
+M(&]F(&%L;"!O9B!T:&4@=&5S=',N(%1H:7,@;6%K97,@:70@=F5R>2!E87-Y
+M('1O"F%D9"!N97<@=&5S=',N*2`*/"]0/@H\4#Y4:&4@=&5S="!H87)N97-S
+M(&1E=&5R;6EN97,@=VAI8V@@=&5S=',@=&\@<G5N+B!)="!G;V5S('1H<F]U
+M9V@*=&AE(&9O;&QO=VEN9R!S=&5P<R!W:&5N979E<B!I="!R=6YS(&$@=&5S
+M=#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P
+M:6XB/CQ35%))2T4^0VQO<V5S(&%L;"!F:6QE"@ED97-C<FEP=&]R<R!E>&-E
+M<'0@9F]R('-T9&EN+"!S=&1O=70L(&%N9"!S=&1E<G(N/"]35%))2T4^("A4
+M:&ES"@ES8W)E=W,@=7`@;&EB8R!O;B!S;VUE('!L871F;W)M<R!S;R!H87,@
+M8F5E;B!R96UO=F5D+BD@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB
+M;W1T;VTZ(#!I;B(^0W)E871E<R!A('1E;7!O<F%R>2!D:7)E8W1P6GL/0!0`
+-_]75M@,`````````````
+`
+end
View
163 libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu
@@ -0,0 +1,163 @@
+begin 644 test_rar_multivolume_multiple_files.part5.rar
+M4F%R(1H'`!EZ<Q$`#0````````#+ZG0CD$,`E1L``(].```#8']*W?-C(4`4
+M,!D`I($``$QI8F%R8VAI=F5!9&1I;F=497-T+FAT;6S`S/-C(4"[3#5!;W)Y
+M"@EW:&]S92!N86UE(&UA=&-H97,@=&AE(&YA;64@;V8@=&AE('1E<W0@86YD
+M('-W:71C:&5S(&EN=&\@=&AA=`H)9&ER96-T;W)Y+B`*"3PO4#X*"3Q,23X\
+M4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY297-E=',@=&AE(&-U<G)E
+M;G0@;&]C86QE+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O
+M;3H@,&EN(CY#86QL<R!T:&4@=&5S="!F=6YC=&EO;BX@"@D\+U`^"@D\3$D^
+M/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^268@=&AE<F4@=V5R92!N
+M;R!A<W-E<G1I;VX*"69A:6QU<F5S+"!I="!W:6QL(')E;6]V92!T:&4@=&5M
+M<&]R87)Y(&1I<F5C=&]R>2X@*$EF(#Q45"!#3$%34STB=V5S=&5R;B(^+6L\
+M+U14/@H):7,@<W!E8VEF:65D+"!T96UP;W)A<GD@9&ER96-T;W)Y(&%R92!L
+M969T(&5V96X@:68@=&AE('1E<W0*"7-U8V-E961S+BD@"@D\+U`^"@D\3$D^
+M/%`^/%-44DE+13Y)9B!T:&5R92!A<F4@86YY(&]P96X@9FEL92!D97-C<FEP
+M=&]R<R!O=&AE<B!T:&%N"@ES=&1I;BP@<W1D;W5T+"!A;F0@<W1D97)R+"!I
+M="!R97!O<G1S(&%N(&5R<F]R+CPO4U1224M%/B!497-T<PH)<VAO=6QD(&YE
+M=F5R(&QE879E(&]P96X@9FEL92!D97-C<FEP=&]R<RX@"@D\+U`^"CPO54P^
+M"CQ0/DEN('!A<G1I8W5L87(L('1E<W1S(&-A;B!S869E;'D@87-S=6UE('1H
+M870Z(`H\+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@
+M,&EN(CY4:&4@8W5R<F5N="!D:7)E8W1O<GD@:7,@96UP='D*"7=H96X@=&AE
+M('1E<W0@<W1A<G1S+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O
+M='1O;3H@,&EN(CY!;GD@9FEL97,@8W)E871E9"!I;B!T:&4@8W5R<F5N=`H)
+M9&ER96-T;W)Y('=I;&P@8F4@<F5M;W9E9"!F;W(@>6]U+B`*"3PO4#X*"3Q,
+M23X\4#Y4:&4@8W5R<F5N="!L;V-A;&4@:7,@=&AE(&1E9F%U;'0@)G%U;W0[
+M0R9Q=6]T.R!L;V-A;&4N(`H)/"]0/@H\+U5,/@H\4#Y497-T<R!S:&]U;&0Z
+M(`H\+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN
+M(CY296QE87-E(&%L;"!M96UO<GDN(%1H92!T97-T"@ES=6ET97,@87)E(&]C
+M8V%S:6]N86QL>2!R=6X@=6YD97(@82!M96UO<GD@9&5B=6=G97(@=&\@9&5T
+M96-T(&QE86MS"@EI;B!T:&4@;&EB87)C:&EV92!L:6)R87)Y+B`*"3PO4#X*
+M"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY#;&]S92!A;&P@
+M;W!E;F5D(&9I;&5S+B!4:&ES(&AE;'!S"@ET;R!C871C:"!F:6QE(&1E<V-R
+M:7!T;W(@;&5A:W,@:6X@;&EB87)C:&EV92X@"@D\+U`^"@D\3$D^/%`^3F]T
+M(')E860@;W(@=W)I=&4@86)S;VQU=&4@<&%T:',N(`H)/"]0/@H\+U5,/@H\
+M2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](E!L871F;W)M7W9A<FEA=&EO
+M;B(^/"]!/E!L871F;W)M"G9A<FEA=&EO;CPO2#$^"CQ0/E-O;64@=&5S=',@
+M87)E('-P96-I9FEC('1O(&$@<&%R=&EC=6QA<B!P;&%T9F]R;2X@4W5C:"!T
+M97-T<PIS:&]U;&0@=7-E(&%P<')O<')I871E('!L871F;W)M+7-P96-I9FEC
+M(&UA8W)O<R!A<R!F;VQL;W=S.B`*/"]0/@H\4%)%($-,05-3/2)W97-T97)N
+M(CXC:68@7U]03$%41D]230HN+BX@=F%R:6]U<R!H96QP97(@9G5N8W1I;VYS
+M("XN+@HC96YD:68*1$5&24Y%7U1%4U0H9F]O7W!L871F;W)M*0I["B-I9B!?
+M7U!,051&3U)-"B9N8G-P.R`F;F)S<#LN+BX@=&5S=',@87,@=7-U86P@+BXN
+M+@HC96QS90HF;F)S<#L@)FYB<W`[<VMI<'!I;F<H)G%U;W0[<&QA=&9O<FTM
+M<W!E8VEF:6,@=&5S=',F<75O=#LI.PHC96YD:68*?3PO4%)%/CQ0/@I);B!P
+M87)T:6-U;&%R+"!N;W1E('1H870@86QL('1E<W1S(&%R92!C;VUP:6QE9"!A
+M;F0@<G5N(&]N(&%L;`IP;&%T9F]R;7,N(`H\+U`^"CQ0/DUO<W0@=&5S=',@
+M87)E(&YO="!P;&%T9F]R;2US<&5C:69I8R!A;F0@=VEL;"!T:'5S(&5N9"!U
+M<"!R=6YN:6YG"F]N(&UA;GD@9&EF9F5R96YT('!L871F;W)M<RX@26X@;W)D
+M97(@=&\@<VEM<&QI9GD@=W)I=&EN9R!S=6-H('1E<W1S+`IT<GD@=&\@=7-E
+M('!L871F;W)M+6EN9&5P96YD96YT(&-O9&EN9SH@"CPO4#X*/%5,/@H)/$Q)
+M/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E5S92!S=&1I;R`\5%0@
+M0TQ!4U,](G=E<W1E<FXB/F9O<&5N*"D\+U14/BP*"3Q45"!#3$%34STB=V5S
+M=&5R;B(^9G=R:71E*"D\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYF<F5A
+M9"@I/"]45#XL"@EA;F0@/%14($-,05-3/2)W97-T97)N(CYF8VQO<V4H*3PO
+M5%0^('1O(&%C8V5S<R!F:6QE<R!W:&5N979E<@H)9F5A<VEB;&4N(`H)/"]0
+M/@H)/$Q)/CQ0/DQO;VL@=&AR;W5G:"!T:&4@/%14($-,05-3/2)W97-T97)N
+M(CYT97-T+F@\+U14/B!H96%D97(@=&\*"7-E92!I9B!T:&5R92!A<F4@87-S
+M97)T6'AX*"D@9G5N8W1I;VYS('1H870@>6]U(&-A;B!U<V4N(%1H97)E)W,@
+M80H);&ES="!O9B!T:&4@;6]R92!P;W!U;&%R(&]N97,@8F5L;W<L(&)U="!N
+M97<@;VYE<R!A<F4@;V9T96X@861D960N(`H)/"]0/@H\+U5,/@H\2#$@0TQ!
+M4U,](G=E<W1E<FXB/CQ!($Y!344](D%S<V5R=%]M86-R;W,B/CPO03Y!<W-E
+M<G0@;6%C<F]S/"](,3X*/%`^5&AE(&9O;&QO=VEN9R!I<R!A(&YE8V5S<V%R
+M:6QY(&EN8V]M<&QE=&4@;&ES="!O9B!A<W-E<G0@9G5N8W1I;VYS"F%V86EL
+M86)L92!T;R!T97-T<SH@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G
+M:6XM8F]T=&]M.B`P:6XB/D)A<VEC(&5Q=6%L:71Y.B`\5%0@0TQ!4U,](G=E
+M<W1E<FXB/F%S<V5R=$5Q=6%L26YT/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E
+M<FXB/F%S<V5R=$5Q=6%L4W1R:6YG/"]45#XL(#Q45"!#3$%34STB=V5S=&5R
+M;B(^87-S97)T17%U86Q-96T\+U14/@H)"3PO4#X*"3Q,23X\4"!35%E,13TB
+M;6%R9VEN+6)O='1O;3H@,&EN(CY&:6QE(&-R96%T:6]N.B`\5%0@0TQ!4U,]
+M(G=E<W1E<FXB/F%S<V5R=$UA:V5&:6QE/"]45#XL"@D\5%0@0TQ!4U,](G=E
+M<W1E<FXB/F%S<V5R=$UA:V53>6UL:6YK/"]45#XL(#Q45"!#3$%34STB=V5S
+M=&5R;B(^87-S97)T36%K94AA<F1L:6YK/"]45#XL"@D\5%0@0TQ!4U,](G=E
+M<W1E<FXB/F%S<V5R=$UA:V5$:7(\+U14/B`*"3PO4#X*"3Q,23X\4"!35%E,
+M13TB;6%R9VEN+6)O='1O;3H@,&EN(CY&:6QE('1E<W1S.B`\5%0@0TQ!4U,]
+M(G=E<W1E<FXB/F%S<V5R=$ES4F5G/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E
+M<FXB/F%S<V5R=$ES1&ER/"]45#XL(#Q45"!#3$%34STB=V5S=&5R;B(^87-S
+M97)T27-3>6UL:6YK/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R
+M=$9I;&53:7IE/"]45#XL(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T1FEL
+M94YL:6YK<SPO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1&:6QE
+M371I;64\+U14/B`*"3PO4#X*"3Q,23X\4#Y&:6QE(&-O;G1E;G1S.B`\5%0@
+M0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5%;7!T>3PO5%0^+`H)/%14($-,
+M05-3/2)W97-T97)N(CYA<W-E<G1&:6QE3F]N16UP='D\+U14/BP@/%14($-,
+M05-3/2)W97-T97)N(CYA<W-E<G1&:6QE0V]N=&5N=',\+U14/BP*"3Q45"!#
+M3$%34STB=V5S=&5R;B(^87-S97)T5&5X=$9I;&5#;VYT96YT<SPO5%0^(`H)
+M/"]0/@H\+U5,/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](E)E9F5R
+M96YC95]&:6QE<R(^/"]!/E)E9F5R96YC92!&:6QE<SPO2#$^"CQ0/DUA;GD@
+M=&5S=',@<F5Q=6ER92!R96%D:6YG(&$@<')E+6-O;G-T<G5C=&5D(')E9F5R
+M96YC92!F:6QE+B!3=6-H"F9I;&5S(&%R92!S=&]R960@=VET:"!T:&4@<V]U
+M<F-E(&-O9&4@9F]R('1H92!A<W-O8VEA=&5D('1E<W0@<W5I=&4N"E)E9F5R
+M96YC92!F:6QE<R!A<F4@;F%M960@86-C;W)D:6YG('1O('1H92!T97-T(&%N
+M9"!M=7-T(&)E('5U96YC;V1E9`IT;R!B92!C:&5C:V5D(&EN=&\@<V]U<F-E
+M(&-O;G1R;VPN(`H\+U`^"CQ0/D9O<B!E>&%M<&QE+"!I9B!Y;W4@;F5E9"!A
+M(')E9F5R96YC92!T87(@87)C:&EV92!T;R!U<V4@=VET:`H\5%0@0TQ!4U,]
+M(G=E<W1E<FXB/G1E<W1?9F]O/"]45#XL('1H92!F:6QE('-H;W5L9"!B92!N
+M86UE9`H\5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W1?9F]O+G1A<CPO5%0^(&%N
+M9"!S=&]R960@:6X@<V]U<F-E(&-O;G1R;VP@87,*/%14($-,05-3/2)W97-T
+M97)N(CYT97-T7V9O;RYT87(N=74\+U14/BX@"CPO4#X*/%`^5VET:&EN('1H
+M92!T97-T(&-O9&4L('EO=2!C86X@<F5C;W9E<B!T:&4@<F5F97)E;F-E(&9I
+M;&4@=VET:#H@"CPO4#X*/%!212!#3$%34STB=V5S=&5R;B(@4U193$4](FUA
+M<F=I;BUB;W1T;VTZ(#`N,FEN(CXF;F)S<#L@)FYB<W`[(&5X=')A8W1?<F5F
+M97)E;F-E7V9I;&4H)G%U;W0[=&5S=%]F;V\N=&%R)G%U;W0[*3L\+U!213X\
+M4#X*5&AE(#Q45"!#3$%34STB=V5S=&5R;B(^97AT<F%C=%]R969E<F5N8V5?
+M9FEL92@I/"]45#X@9G5N8W1I;VX@=VEL;`IU=61E8V]D92!T:&4@<F5Q=65S
+M=&5D(&9I;&4@86YD('!U="!T:&4@<F5S=6QT(&EN('1H92!C=7)R96YT"F1I
+M<F5C=&]R>2X@"CPO4#X*/%`^3&]O:R!A="`\5%0@0TQ!4U,](G=E<W1E<FXB
+M/G1E<W1?<F5A9%]F;W)M871?8W!I;U]B:6Y?8F4N8SPO5%0^"F9O<B!A('-I
+M;7!L92!E>&%M<&QE(&]F('1H:7,@=7-A9V4N(`H\+U`^"CQ0/D$@9F5W(&]F
+M('1H92!O;&1E<B!T97-T<R!S=&]R92!R969E<F5N8V4@9&%T82!W:71H:6X@
+M=&AE('-O=7)C90IC;V1E(&%S(&$@:&5X+65N8V]D960@87)R87D@;V8@8VAA
+M<F%C=&5R<RX@5&AI<R!W87,@8V]M;6]N(&)E9F]R90H\5%0@0TQ!4U,](G=E
+M<W1E<FXB/F5X=')A8W1?<F5F97)E;F-E7V9I;&4H*3PO5%0^('=A<R!A9&1E
+M9"!A;F0@:7,*;F]T(')E8V]M;65N9&5D(&9O<B!N97<@8V]D92X@"CPO4#X*
+M/$@Q($-,05-3/2)W97-T97)N(CX\02!.04U%/2)$;W-?86YD7T1O;G1S(CX\
+M+T$^1&]S(&%N9"!$;VYT<SPO2#$^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R
+M9VEN+6)O='1O;3H@,&EN(CY$3R!U<V4@87-S97)T<R!L:6)E<F%L;'DN($ET
+M)W,*"6-O;6UO;B!T;R!H879E(&%N(&%S<V5R="!O;B!A;&UO<W0@979E<GD@
+M;&EN92X@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I
+M;B(^1$\@=7-E(&%S<V5R=$5Q=6%L26YT+`H)87-S97)T17%U86Q3=')I;F<L
+M(&%S<V5R=$5Q=6%L365M('1O('1E<W0@97%U86QI='D@:6YS=&5A9"!O9B!P
+M;&%I;@H)87-S97)T*"D[('1H92!S<&5C:6%L:7IE9"!F;W)M<R!G:79E(&$@
+M;&]T(&UO<F4@:6YF;W)M871I;VX@;VX@80H)9F%I;'5R92X@"@D\+U`^"@D\
+M3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@=&5S="!Y;W5R
+M('1E<W1S.R!E>'!E<FEM96YT(&)Y"@EC:&%N9VEN9R!A('!I96-E(&]F(&-O
+M9&4@86YD(&UA:V4@<W5R92!Y;W5R('1E<W0@9F%I;',N($EF('EO=2!T:&EN
+M:PH)>6]U)W9E(&9O=6YD(&$@8G5G+"!W92!R96-O;6UE;F0@=W)I=&EN9R!T
+M:&4@=&5S="!F:7)S="P@;6%K92!S=7)E"@ET:&4@=&5S="!F86EL<RP@=&AE
+M;B!F:7AI;F<@=&AE(&)U9RX@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I
+M;BUB;W1T;VTZ(#!I;B(^1$\@<G5N(&%L;"!O9B!T:&4@=&5S=',@8F5F;W)E
+M"@ES=6)M:71T:6YG(&$@8VAA;F=E+B!$97!E;F1I;F<@;VX@>6]U<B!B=6EL
+M9"!E;G9I<F]N;65N="P@/%14($-,05-3/2)W97-T97)N(CYM86ME"@ET97-T
+M/"]45#X@;W(@/%14($-,05-3/2)W97-T97)N(CYM86ME(&-H96-K/"]45#X@
+M=VEL;"!U<W5A;&QY(')U;@H)86QL(&]F('1H92!T97-T<RX@"@D\+U`^"@D\
+M3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$].)U0@<F5L>2!O
+M;B`\5%0@0TQ!4U,](G=E<W1E<FXB/DA!5D5?/"]45#X*"6UA8W)O<R!F<F]M
+M(&-O;F9I9RYH+B`H268@=&AE('1E<W1S('5S92!T:&4@<V%M92`\5%0@0TQ!
+M4U,](G=E<W1E<FXB/DA!5D5?/"]45#X*"6UA8W)O<R!A<R!T:&4@8V]D92!B
+M96EN9R!T97-T960@=&AE;B!C;VYF:6=U<F%T:6]N('!R;V)L96US('=I;&P@
+M8F4*"6-O=F5R960@=7`N*2`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN
+M+6)O='1O;3H@,&EN(CY$3R!U<V4@<G5N=&EM92!T97-T<R!F;W(@<&QA=&9O
+M<FT*"69E871U<F5S+B!&;W(@97AA;7!L92P@=&AE($%#3"!T97-T<R!T<GD@
+M=&\@<V5T(&%N($%#3"!O;B!A(&9I;&4@86YD"@ER96%D(&ET(&)A8VL@=&\@
+M9&5T97)M:6YE(&EF($%#3"!S=7!P;W)T(&ES(&%V86EL86)L92P@=&AE;B!T
+M:&5Y"@EE>&5R8VES92!T:&4@;&EB87)C:&EV92!!0TP@:&%N9&QI;F<N(`H)
+M/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/(&QO
+M;VL@870@97AI<W1I;F<@=&5S=',N($]F=&5N+`H)82!B=6<@8V%N(&)E('1E
+M<W1E9"!B>2!A9&1I;F<@:G5S="!A(&-O=7!L92!O9B!A<W-E<G1S('1O(&%N
+M"@EE>&ES=&EN9R!T97-T(&EN<W1E860@;V8@=W)I=&EN9R!A(&YE=R!O;F4N
+M(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/
+M(&EM<')O=F4@97AI<W1I;F<@=&5S=',N($EN"@EP87)T:6-U;&%R+"!I9B!Y
+M;W4@<V5E(&$@=&5S="!F86EL=7)E('1H870@:7,@:&%R9"!T;R!U;F1E<G-T
+M86YD+`H)8V]N<VED97(@861D:6YG(&$@9F%I;'5R92@I(&UE<W-A9V4@;W(@
+M8V]M;65N=',@<V\@=&AE(&YE>'0@<&5R<V]N"@EW:6QL(&AA=F4@86X@96%S
+M:65R('1I;64N(`H)/"]0/@H)/$Q)/CQ0/D1/(&%S:R!O;B!T:&4@;6%I;&EN
+M9R!L:7-T<R!I9B!Y;W4@:&%V92!Q=65S=&EO;G,N(%-O;64@=&5S=',*"6%R
+M92!B971T97(@=W)I='1E;B!T:&%N(&]T:&5R<RX@"@D\+U`^"CPO54P^"CQ(
+M,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB4V]M95]E>&%M<&QE<U]O9E]T
+M97-T<R(^/"]!/E-O;64*97AA;7!L97,@;V8@=&5S=',\+T@Q/@H\2#(@0TQ!
+M4U,](G=E<W1E<FXB/CQ!($Y!344](DQI8F%R8VAI=F5?<F5A9%]T97-T<R(^
+M/"]!/DQI8F%R8VAI=F4*<F5A9"!T97-T<SPO2#(^"CQ0/E1H97)E(&%R92!Q
+M=6ET92!A(&9E=R!R96%D('1E<W1S('1H870@<VEM<&QY(')E860@82!P<F4M
+M8G5I;'0*:6YP=70@9FEL92!A;F0@=F5R:69Y('1H92!R97-U;'2<OWL/0!0`
+-+FN`*`0`````````````
+`
+end
View
117 libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu
@@ -0,0 +1,117 @@
+begin 644 test_rar_multivolume_multiple_files.part6.rar
+M4F%R(1H'`!EZ<Q$`#0````````";:70AD$,`>Q,``(].```#8Z8%7O-C(4`4
+M,!D`I($``$QI8F%R8VAI=F5!9&1I;F=497-T+FAT;6S`S/-C(4"[3#5!<RX@
+M5&AE<V4@=7-E(#Q45"!#3$%34STB=V5S=&5R;B(^97AT<F%C=%]R969E<F5N
+M8V5?9FEL92@I/"]45#X*=&\@9&5C;V1E(&$@=75E;F-O9&5D(&EN<'5T(&9I
+M;&4L('1H96X@;W!E;B!T:&%T(&9I;&4@=VET:"!L:6)A<F-H:79E"F%N9"!V
+M97)I9GD@=&AE(')E<W5L=',N($UO<W0@;V8@=&AE<V4@87)E('!R971T>2!S
+M=')A:6=H=&9O<G=A<F0N(`H\+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@
+M3D%-13TB3&EB87)C:&EV95]R96%D+W=R:71E7W1E<W1S(CX\+T$^3&EB87)C
+M:&EV90IR96%D+W=R:71E('1E<W1S/"](,CX*/%`^36]S="!O9B!T:&4@=W)I
+M=&4@=&5S=',@<F5A;&QY(&IU<W0@=F5R:69Y('1H870@;&EB87)C:&EV92!C
+M86X*<F5A9"!W:&%T(&ET('=R:71E<RX@5&AE<V4@9V5N97)A;&QY('5S92!T
+M:&4@;65M;W)Y(&EN=&5R9F%C97,N(%1H97D*9F5E9"!A<F-H:79E(&5N=')I
+M97,@:6YT;R!T:&4@=W)I=&5R('1O(&-R96%T92!A;B!A<F-H:79E(&EN(&UE
+M;6]R>0IA;F0@=&AE;B!O<&5N('1H92!M96UO<GD@86=A:6X@=&\@<F5A9"!T
+M:&4@9&%T82!B86-K(&%N9"!V97)I9GD@=&AA=`II="!I<R!T:&4@<V%M92X@
+M"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2),:6)A<F-H:79E
+M7W=R:71E7W9A;&ED871O<G,B/CPO03Y,:6)A<F-H:79E"G=R:71E('9A;&ED
+M871O<G,\+T@R/@H\4#Y!(&9E=R!W<FET92!T97-T<R!W<FET92!A;B!A<F-H
+M:79E(&EN=&\@;65M;W)Y(&%N9"!T:&5N(&EN<W!E8W0*=&AE(&%C='5A;"!B
+M>71E<R!T;R!V97)I9GD@=&AA="!T:&4@87)C:&EV92!W87,@8W)E871E9"!C
+M;W)R96-T;'DN"E1H97-E('1E<W1S(&%R92!N:6-E('1O(&AA=F4@8G5T(&%R
+M92!T961I;W5S('1O(&)U:6QD+B`*/"]0/@H\4#Y4:&5R92!A<F4@86QS;R!A
+M(&-O=7!L92!O9B!S=6-H('9A;&ED871O<G,@9F]R(&)S9'1A<B!A;F0@8G-D
+M8W!I;RX*5&AE<V4@87)E('9E<GD@=')I8VMY('-I;F-E('1H92!E>&%C="!D
+M871A(&-O;G1A:6YS('9A;'5E<R!T:&%T('1H90IT97-T(&-A;FYO="!C;VUP
+M;&5T96QY(&-O;G1R;VP@*'-U8V@@87,@=&AE(&-U<G)E;G0@=&EM92!O<@IU
+M<V5R;F%M92DN(`H\+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB
+M1&ES:U]T97-T<R(^/"]!/D1I<VL@=&5S=',\+T@R/@H\4#Y,:6)A<F-H:79E
+M)W,@9&ES:R!)+T\@05!)<RP@87,@=V5L;"!A<R!B<V1T87(@86YD(&)S9&-P
+M:6\L(&YE960@=&\*;W!E<F%T92!B>2!V97)I9GEI;F<@9FEL97,@;VX@9&ES
+M:RX@5&\@;6%K92!T:&ES(&5A<VEE<BP@=&AE('1E<W0*9G)A;65W;W)K(&YO
+M=R!H87,@82!L87)G92!N=6UB97(@;V8@87-S97)T:6]N<R!T;R!V97)I9GD@
+M=&EM97-T86UP<RP*<&5R;6ES<VEO;G,L(&%N9"!O=&AE<B!B87-I8R!F:6QE
+M(&1A=&$N(%1H97-E(&%S<V5R=&EO;G,@=7-E"F%P<')O<')I871E('-Y<W1E
+M;2!C86QL<R!F;W(@96%C:"!P;&%T9F]R;3L@;F5W('1E<W1S('-H;W5L9"!T
+M<GD@=&\*879O:60@=7-I;F<@/%14($-,05-3/2)W97-T97)N(CYS=&%T*"D\
+M+U14/BP@=VAI8V@@:7,@;F]T('5N:69O<FUL>0IA=F%I;&%B;&4N(`H\+U`^
+M"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB1G5Z>E]T97-T97(B/CPO
+M03Y&=7IZ('1E<W1E<CPO2#(^"CQ0/E1H92!F=7IZ('1E<W1E<B!I<R!O;F4@
+M;V8@=&AE(&9E=R!T97-T<R!T:&%T(&1O97,@;F]T(&%G9W)E<W-I=F5L>0IU
+M<V4@87-S97)T:6]N<RX@271S('!U<G!O<V4@:7,@=&\@=')Y(&%N9"!C<F%S
+M:"!L:6)A<F-H:79E(&)Y(&9E961I;F<*:70@:6YP=70@=&AA="!I<R!S;&EG
+M:'1L>2!D86UA9V5D+B`H4F5M96UB97(@=&AA="!L:6)A<F-H:79E(&1O97,*
+M:&%V92!S;VUE(&9A:6QS869E(&-O9&4@=&AA="!D96QI8F5R871E;'D@86)O
+M<G1S('1H92!E;G1I<F4@<')O9W)A;0II9B!C97)T86EN(&EN=F%R:6%N=',@
+M87)E('9I;VQA=&5D+BD@"CPO4#X*/%`^4VEN8V4@82!F=7IZ(&9A:6QU<F4@
+M8V%U<V5S(&$@8W)A<V@L(&ET)W,@:6UP;W-S:6)L92!T;R!R97!O<G0@=&AE
+M"F5R<F]R('1O('1H92!C;VYS;VQE+"!S;R!T:&4@9G5Z>B!T97-T97(@:6YS
+M=&5A9"!G96YE<F%T97,@80IR86YD;VUL>2UD86UA9V5D(&9I;&4L('-A=F5S
+M('1H870@9FEL92!T;R!D:7-K+"!T:&5N(')U;G,@=&AE(&9I;&4*=&AR;W5G
+M:"!L:6)A<F-H:79E('1O('1R>2!T;R!P<F]V;VME(&$@8W)A<V@N($EF(&QI
+M8F%R8VAI=F4@8W)A<VAE<PIT:&4@96YT:7)E('1E<W1E<BP@=&AE(&EN<'5T
+M('1H870@8V%U<V5D('1H92!C<F%S:"!W:6QL(&)E(&%V86EL86)L90IO;B!D
+M:7-K(&9O<B!F=7)T:&5R(&%N86QY<VES+B`*/"]0/@H\4#Y!;'1H;W5G:"!I
+M="!I<R!U;G5S=6%L(&9O<B!A('1E<W0@<')O9W)A;2!T;R!U<V4@<F%N9&]M
+M(&EN<'5T+"!T:&4*9G5Z>B!T97-T97(@:&%S('!R;W9E;B!Q=6ET92!U<V5F
+M=6P@870@=6YC;W9E<FEN9R!P;V]R(&5R<F]R"FAA;F1L:6YG+B!5;F9O<G1U
+M;F%T96QY+"!T:&4@;F5E9"!T;R!W<FET92!T:&4@9&%T82!T;R!D:7-K(&)E
+M9F]R90IE86-H('1E<W0@:7,@82!S:6=N:69I8V%N="!P97)F;W)M86YC92!I
+M<W-U92X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2),87)G
+M95]T87)?=&5S=&5R(CX\+T$^3&%R9V4@=&%R('1E<W1E<CPO2#(^"CQ0/E1H
+M92!L87)G92!T87(@=&5S=&5R(&%T=&5M<'1S('1O(&5X97)C:7-E(&)O=6YD
+M87)Y(&-A<V5S('=I=&@@=F5R>0IL87)G92!E;G1R:65S+"!U<"!T;R`Q('1E
+M<F%B>71E+B!/9B!C;W5R<V4L('=R:71I;F<@82`Q('1E<F%B>71E"F5N=')Y
+M('1O(&%N('5N8V]M<')E<W-E9"!A<F-H:79E(&]N(&1I<VL@;W(@;65M;W)Y
+M(&ES('5N86-C97!T86)L92P*8F]T:"!F;W(@<&5R9F]R;6%N8V4@86YD('-P
+M86-E(')E87-O;G,N($5V96X@9WII<"!O<B!B>FEP,@IC;VUP<F5S<VEO;B!W
+M;VXG="!H96QP.R!A;'1H;W5G:"!S;6%L;&5R+"!T:&4@;W5T<'5T(&ES('-T
+M:6QL(&QA<F=E"F%N9"!T:&4@=&EM92!N965D960@=&\@8V]M<')E<W,@<W5C
+M:"!A(&QA<F=E(&%M;W5N="!O9B!D871A(&ES"G!R;VAI8FET:79E+B!3;R!T
+M:&4@;&%R9V4@=&%R('1E<W1E<B!U<V5S(&$@=')I8VLN(`H\+U`^"CQ0/E)E
+M;65M8F5R('1H870@86X@=6YC;VUP<F5S<V5D('1A<B!A<F-H:79E(&-O;G-I
+M<W1S(&]F(&%L=&5R;F%T:6YG"FAE861E<G,@86YD(&)O9&EE<RX@268@=&AE
+M(&)O9&EE<R!C;VYS:7-T(&5N=&ER96QY(&]F('IE<F\@8GET97,L"G1H96X@
+M86QL('1H870G<R!N965D960@=&\@<F5C;VYS=')U8W0@=&AE(&%R8VAI=F4@
+M:7,@=&\@<F5C;W)D('1H90IR96QA=&EV96QY('-M86QL(&AE861E<G,@86YD
+M('-T;W)E(&$@8V]U;G0@;V8@96%C:"!C;VYT:6=U;W5S(&)L;V-K"F]F('IE
+M<F]S+B!4:&ES('-I;7!L92`F<75O=#MR=6XM;&5N9W1H(&5N8V]D:6YG)G%U
+M;W0[(&ES('9E<GD*969F96-T:79E+"!C;VUP<F5S<VEN9R!A('-A;7!L92!A
+M<F-H:79E('=I=&@@82!D;WIE;B!E;G1R:65S(&1O=VX@=&\*:G5S="!A(&9E
+M=R!K:6QO8GET97,L(&5V96X@:68@=&AO<V4@96YT<FEE<R!R86YG92!U<"!T
+M;R`Q5$(N(`H\+U`^"CQ0/D)Y('=R:71I;F<@82!C=7-T;VT@22]/(&QA>65R
+M('1H870@:6UP;&5M96YT<R!S=6-H(&-O;7!R97-S:6]N+"!W90IC86X@=W)I
+M=&4@=F5R>2!L87)G92!E;G1R:65S('1H<F]U9V@@;&EB87)C:&EV92!T:&5N
+M(')E860@=&AE;2!B86-K"F%N9"!V97)I9GD@=&AA="!L:6)A<F-H:79E(&-O
+M<G)E8W1L>2!H86YD;&5S(&%L;"!O9B!T:&4@8F]U;F1A<GD*8V%S97,N(`H\
+M+U`^"CQ0/D]F(&-O=7)S92P@979E;B!S8V%N;FEN9R!O=71P=70@=&\@9&5T
+M97)M:6YE('IE<F\@8FQO8VMS(&-A;B!T86ME"G%U:71E(&$@=VAI;&4L('-O
+M('1H92!L87)G92!T87(@=&5S=&5R(&UA:V5S(&]N92!M;W)E(&]P=&EM:7IA
+M=&EO;CH*3&EB87)C:&EV92!I<R`F<75O=#MM;W-T;'DF<75O=#L@>F5R;RUC
+M;W!Y+B!7:&5N('EO=2!G:79E(&ET(&$@;&%R9V4*8FQO8VL@=&\@=W)I=&4@
+M=&\@86X@96YT<GD@8F]D>2P@:70@=VEL;"!P87-S('!O:6YT97)S('-T<F%I
+M9VAT"G1H<F]U9V@@=&\@=&AE(&]U='!U="!R;W5T:6YE+"!E>&-E<'0@:6X@
+M=&AO<V4@8V%S97,@=VAE<F4@:70@;75S=`IC;W!Y(&1A=&$@=&\@8V]R<F5C
+M=&QY(&)U:6QD(&)L;V-K<RX@5&AE(&QA<F=E('1A<B!T97-T97(@=&%K97,*
+M861V86YT86=E(&]F('1H:7,@=&\@<75I8VML>2!D971E8W0@=VAE;B!A(&)L
+M;V-K(&)E:6YG('=R:71T96X@;W5T(&)Y"G1H92!A<F-H:79E('=R:71E<B!I
+M<R!T:&4@<V%M92!A<R!S;VUE(&]F('1H92!D871A('1H870@=V%S(&=I=F5N
+M(&)Y"G1H92!T97-T(&%S('1H92!E;G1R>2!B;V1Y+"!A;F0@<VEM:6QA<FQY
+M('=H96X@<F5A9&EN9R!T:&4@87)C:&EV90IB86-K+B`*/"]0/@H\4#Y486ME
+M;B!T;V=E=&AE<BP@=&AE<V4@=')I8VMS(&%L;&]W('1H92!L87)G92!T87(@
+M=W)I=&5R('1O('1E<W0*9F]R(&ES<W5E<R!S=6-H(&%S('!R;W!E<B!S=&]R
+M86=E(&]F('9E<GD@;&%R9V4@9FEL92!S:7IE<R`H=&%R(&9I;&5S"G-U<'!O
+M<G0@<V5V97)A;"!D:69F97)E;G0@=V%Y<R!T;R!S=&]R92!F:6QE('-I>F5S
+M('=H:6-H('1R861E(&]F9@IP;W)T86)I;&ET>2!V97)S=7,@<F%N9V4[(&QI
+M8F%R8VAI=F4@=')I97,@=&\@=7-E('1H92!M;W-T('!O<G1A8FQE"F]N92!I
+M="!C86X@9F]R(&5A8V@@96YT<GDI(&%N9"!I;G1E9V5R(&]V97)F;&]W("A7
+M:6YD;W=S(#,R+6)I="`\5%0@0TQ!4U,](G=E<W1E<FXB/F]F9E]T/"]45#X*
+M8G)O:V4@=&AE(&QA<F=E('1A<B!T97-T(&%N9"!L960@;&EB87)C:&EV92!T
+M;R!M86ME(&AE879I97(@=7-E(&]F"CQ45"!#3$%34STB=V5S=&5R;B(^:6YT
+M-C1?=#PO5%0^(&EN=&5R;F%L;'DI(&EN(&$@=&5S="!T:&%T(')U;G,@:6X*
+M=6YD97(@,2\T('-E8V]N9"X@"CPO4#X*/%`@4U193$4](FUA<F=I;BUB;W1T
+M;VTZ(#!I;B(^/$)2/@H\+U`^"CPO0D]$63X*/"](5$U,/OO\>PY`%`!.[9:E
+)!0``````````
+`
+end
View
193 libarchive/test/test_read_format_rar.c
@@ -1154,3 +1154,196 @@ DEFINE_TEST(test_read_format_rar_multivolume_stored_file_skip)
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
+
+DEFINE_TEST(test_read_format_rar_multivolume_seek_data)
+{
+ const char *reffiles[] =
+ {
+ "test_rar_multivolume_single_file.part1.rar",
+ "test_rar_multivolume_single_file.part2.rar",
+ "test_rar_multivolume_single_file.part3.rar",
+ NULL
+ };
+ char buff[64];
+ int file_size = 20111;
+ const char file_test_txt1[] = "d. \n</P>\n<P STYLE=\"margin-bottom: 0in\">"
+ "<BR>\n</P>\n</BODY>\n</HTML>";
+ const char file_test_txt2[] = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4."
+ "0 Transitional//EN\">\n<";
+ const char file_test_txt3[] = "mplify writing such tests,\ntry to use plat"
+ "form-independent codin";
+ const char file_test_txt4[] = "lString</TT> in the example above)\ngenerat"
+ "e detailed log message";
+ const char file_test_txt5[] = "SS=\"western\">make check</TT> will usually"
+ " run\n\tall of the tests.";
+ struct archive_entry *ae;
+ struct archive *a;
+
+ extract_reference_files(reffiles);
+ assert((a = archive_read_new()) != NULL);
+ assertA(0 == archive_read_support_filter_all(a));
+ assertA(0 == archive_read_support_format_all(a));
+ assertA(0 == archive_read_open_filenames(a, reffiles, 10240));
+
+ /* First header. */
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("LibarchiveAddingTest.html", archive_entry_pathname(ae));
+ assertA((int)archive_entry_mtime(ae));
+ assertA((int)archive_entry_ctime(ae));
+ assertA((int)archive_entry_atime(ae));
+ assertEqualInt(file_size, archive_entry_size(ae));
+ assertEqualInt(33188, archive_entry_mode(ae));
+
+ /* Seek to the end minus 64 bytes */
+ assertA(file_size - (int)sizeof(buff) ==
+ archive_seek_data(a, file_size - sizeof(buff), SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt1, sizeof(file_test_txt1) - 1);
+
+ /* Seek back to the beginning */
+ assertA(0 == archive_seek_data(a, 0, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt2, sizeof(file_test_txt2) - 1);
+
+ /* Seek to the middle of the combined data block */
+ assertA(10054 == archive_seek_data(a, 10054, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt3, sizeof(file_test_txt3) - 1);
+
+ /* Seek to 32 bytes before the end of the first data sub-block */
+ assertA(6860 == archive_seek_data(a, 6860, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt4, sizeof(file_test_txt4) - 1);
+
+ /* Seek to 32 bytes before the end of the second data sub-block */
+ assertA(13752 == archive_seek_data(a, 13752, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt5, sizeof(file_test_txt5) - 1);
+
+ /* Test EOF */
+ assertA(1 == archive_read_next_header(a, &ae));
+ assertEqualInt(1, archive_file_count(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_rar_multivolume_seek_multiple_files)
+{
+ const char *reffiles[] =
+ {
+ "test_rar_multivolume_multiple_files.part1.rar",
+ "test_rar_multivolume_multiple_files.part2.rar",
+ "test_rar_multivolume_multiple_files.part3.rar",
+ "test_rar_multivolume_multiple_files.part4.rar",
+ "test_rar_multivolume_multiple_files.part5.rar",
+ "test_rar_multivolume_multiple_files.part6.rar",
+ NULL
+ };
+ char buff[64];
+ int file_size = 20111;
+ const char file_test_txt1[] = "d. \n</P>\n<P STYLE=\"margin-bottom: 0in\">"
+ "<BR>\n</P>\n</BODY>\n</HTML>";
+ const char file_test_txt2[] = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4."
+ "0 Transitional//EN\">\n<";
+ const char file_test_txt3[] = "mplify writing such tests,\ntry to use plat"
+ "form-independent codin";
+ const char file_test_txt4[] = "\nfailures. \n</P>\n<H1 CLASS=\"western\"><"
+ "A NAME=\"Life_cycle_of_a_te";
+ const char file_test_txt5[] = "LE=\"margin-bottom: 0in\">DO use runtime te"
+ "sts for platform\n\tfeatu";
+ const char file_test_txt6[] = "rough test suite is essential\nboth for ver"
+ "ifying new ports and f";
+ const char file_test_txt7[] = "m: 0in\">Creates a temporary directory\n\tw"
+ "hose name matches the na";
+ const char file_test_txt8[] = "lt\ninput file and verify the results. Thes"
+ "e use <TT CLASS=\"weste";
+ struct archive_entry *ae;
+ struct archive *a;
+
+ extract_reference_files(reffiles);
+ assert((a = archive_read_new()) != NULL);
+ assertA(0 == archive_read_support_filter_all(a));
+ assertA(0 == archive_read_support_format_all(a));
+ assertA(0 == archive_read_open_filenames(a, reffiles, 10240));
+
+ /* First header. */
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("LibarchiveAddingTest2.html", archive_entry_pathname(ae));
+ assertA((int)archive_entry_mtime(ae));
+ assertA((int)archive_entry_ctime(ae));
+ assertA((int)archive_entry_atime(ae));
+ assertEqualInt(file_size, archive_entry_size(ae));
+ assertEqualInt(33188, archive_entry_mode(ae));
+
+ /* Seek to the end minus 64 bytes */
+ assertA(file_size - (int)sizeof(buff) ==
+ archive_seek_data(a, file_size - sizeof(buff), SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt1, sizeof(file_test_txt1) - 1);
+
+ /* Seek back to the beginning */
+ assertA(0 == archive_seek_data(a, 0, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt2, sizeof(file_test_txt2) - 1);
+
+ /* Seek to the middle of the combined data block */
+ assertA(10054 == archive_seek_data(a, 10054, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt3, sizeof(file_test_txt3) - 1);
+
+ /* Seek to 32 bytes before the end of the first data sub-block */
+ assertA(7027 == archive_seek_data(a, 7027, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt4, sizeof(file_test_txt4) - 1);
+
+ /* Seek to 32 bytes before the end of the second data sub-block */
+ assertA(14086 == archive_seek_data(a, 14086, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt5, sizeof(file_test_txt5) - 1);
+
+ /* Second header. */
+ assertA(0 == archive_read_next_header(a, &ae));
+ assertEqualString("LibarchiveAddingTest.html", archive_entry_pathname(ae));
+ assertA((int)archive_entry_mtime(ae));
+ assertA((int)archive_entry_ctime(ae));
+ assertA((int)archive_entry_atime(ae));
+ assertEqualInt(file_size, archive_entry_size(ae));
+ assertEqualInt(33188, archive_entry_mode(ae));
+
+ /* Seek to the end minus 64 bytes */
+ assertA(file_size - (int)sizeof(buff) ==
+ archive_seek_data(a, file_size - sizeof(buff), SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt1, sizeof(file_test_txt1) - 1);
+
+ /* Seek back to the beginning */
+ assertA(0 == archive_seek_data(a, 0, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt2, sizeof(file_test_txt2) - 1);
+
+ /* Seek to the middle of the combined data block */
+ assertA(10054 == archive_seek_data(a, 10054, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt3, sizeof(file_test_txt3) - 1);
+
+ /* Seek to 32 bytes before the end of the first data sub-block */
+ assertA(969 == archive_seek_data(a, 969, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt6, sizeof(file_test_txt4) - 1);
+
+ /* Seek to 32 bytes before the end of the second data sub-block */
+ assertA(8029 == archive_seek_data(a, 8029, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt7, sizeof(file_test_txt5) - 1);
+
+ /* Seek to 32 bytes before the end of the third data sub-block */
+ assertA(15089 == archive_seek_data(a, 15089, SEEK_SET));
+ assertA(sizeof(buff) == archive_read_data(a, buff, sizeof(buff)));
+ assertEqualMem(buff, file_test_txt8, sizeof(file_test_txt5) - 1);
+
+ /* Test EOF */
+ assertA(1 == archive_read_next_header(a, &ae));
+ assertEqualInt(2, archive_file_count(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
View
159 libarchive/test/test_splitted_rar_seek_support_aa.uu
@@ -0,0 +1,159 @@
+begin 644 -
+M4F%R(1H'`,^0<P``#0````````"X!'0@D$,`CTX``(].```#8Z8%7F!.(4`4
+M,!D`I($``$QI8F%R8VAI=F5!9&1I;F=497-T+FAT;6S`S&!.(4!B3B%`/"%$
+M3T-465!%($A434P@4%5"3$E#("(M+R]7,T,O+T141"!(5$U,(#0N,"!4<F%N
+M<VET:6]N86PO+T5.(CX*/$A434P^"CQ(14%$/@H)/$U%5$$@2%144"U%455)
+M5CTB0T].5$5.5"U465!%(B!#3TY414Y4/2)T97AT+VAT;6P[(&-H87)S970]
+M=71F+3@B/@H)/%1)5$Q%/CPO5$E43$4^"@D\345402!.04U%/2)'14Y%4D%4
+M3U(B($-/3E1%3E0](DQI8G)E3V9F:6-E(#,N,R`@*%5N:7@I(CX*"3Q-151!
+M($Y!344](D-214%4140B($-/3E1%3E0](C(P,3$P-C(V.S(R,C,U,3`P(CX*
+M"3Q-151!($Y!344](D-(04Y'140B($-/3E1%3E0](C(P,3$P-C(V.S(R,C4T
+M-3`P(CX*"3Q35%E,12!465!%/2)T97AT+V-S<R(^"@D\(2TM"@D)0'!A9V4@
+M>R!M87)G:6XZ(#`N-SEI;B!]"@D)4"![(&UA<F=I;BUB;W1T;VTZ(#`N,#AI
+M;B!]"@D)2#$@>R!M87)G:6XM8F]T=&]M.B`P+C`X:6X@?0H)"4@Q+G=E<W1E
+M<FX@>R!F;VYT+69A;6EL>3H@(DQI8F5R871I;VX@4V5R:68B+"!S97)I9B!]
+M"@D)2#$N8VIK('L@9F]N="UF86UI;'DZ(")":71S=')E86T@5F5R82!386YS
+M(B!]"@D)2#$N8W1L('L@9F]N="UF86UI;'DZ(")&<F5E4V%N<R(@?0H)"5!2
+M12YC:FL@>R!F;VYT+69A;6EL>3H@(D)I='-T<F5A;2!697)A(%-A;G,B+"!M
+M;VYO<W!A8V4@?0H)"4@R('L@;6%R9VEN+6)O='1O;3H@,"XP.&EN('T*"0E(
+M,BYC=&P@>R!F;VYT+69A;6EL>3H@(D9R965386YS(B!]"@D)5%0N8VIK('L@
+M9F]N="UF86UI;'DZ(")":71S=')E86T@5F5R82!386YS(BP@;6]N;W-P86-E
+M('T*"2TM/@H)/"]35%E,13X*/"](14%$/@H\0D]$62!,04Y'/2)E;BU54R(@
+M1$E2/2),5%(B/@H\2#$@0TQ!4U,](G=E<W1E<FXB/DEN=')O9'5C=&EO;CPO
+M2#$^"CQ0/DQI8F%R8VAI=F4@:7,@;F]W(&$@9F%I<FQY(&-O;7!L97@@<&EE
+M8V4@;V8@<V]F='=A<F4@=&AA="!R=6YS(&]N"F$@;G5M8F5R(&]F(&1I9F9E
+M<F5N="!P;&%T9F]R;7,N($$@=&AO<F]U9V@@=&5S="!S=6ET92!I<R!E<W-E
+M;G1I86P*8F]T:"!F;W(@=F5R:69Y:6YG(&YE=R!P;W)T<R!A;F0@9F]R(&5N
+M<W5R:6YG('1H870@9G5T=7)E(&-H86YG97,*9&]N)W0@8G)E86L@97AI<W1I
+M;F<@9G5N8W1I;VYA;&ET>2X@"CPO4#X*/%`^06YY('-I9VYI9FEC86YT(&-H
+M86YG92!T;R!L:6)A<F-H:79E+"!I;F-L=61I;F<@;6]S="!B=6<@9FEX97,L
+M"G-H;W5L9"!B92!A8V-O;7!A;FEE9"!B>2!N97<@=&5S=',@;W(@8VAA;F=E
+M<R!T;R!E>&ES=&EN9R!T97-T<RX@5&AI<PIA<G1I8VQE(&5X<&QA:6YS(&AO
+M=R!T:&4@;&EB87)C:&EV92!T97-T('-U:71E<R!W;W)K(&%N9"!H;W<@=&\*
+M97AT96YD('1H96TN(`H\+U`^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-
+M13TB0G5I;&1I;F=?86YD7U)U;FYI;F=?=&AE7U1E<W1?4')O9W)A;7,B/CPO
+M03X*0G5I;&1I;F<@86YD(%)U;FYI;F<@=&AE(%1E<W0@4')O9W)A;7,\+T@Q
+M/@H\4#Y%86-H(&UA:F]R(&-O;7!O;F5N="TM;&EB87)C:&EV92P@8G-D=&%R
+M+"!A;F0@8G-D8W!I;RTM:&%S(&$@=&5S=`IP<F]G<F%M('1H870@97AE<F-I
+M<V5S('1H92!F=6YC=&EO;F%L:71Y(&]F('1H870@8V]M<&]N96YT+B!4:&5S
+M90IT97-T('!R;V=R86US(&%R92!C;VUP:6QE9"!I;B!T:&4@<V%M92!W87D@
+M=&AA="!T:&4@<F5S="!O9B!T:&4*;&EB87)C:&EV92!S=6ET92!I<R!C;VUP
+M:6QE9"X@"CPO4#X*/%`^5&\@<G5N('1H92!T97-T('!R;V=R86US+"!Y;W4@
+M;F5E9"!T;R!G:79E('1H96T@='=O('!I96-E<R!O9@II;F9O<FUA=&EO;CH@
+M"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB
+M/E1H92!F=6QL('!A=&@@=&\@=&AE(&1I<F5C=&]R>0H):&]L9&EN9R!T:&4@
+M)G%U;W0[<F5F97)E;F-E(&9I;&5S)G%U;W0[(`H)/"]0/@H)/$Q)/CQ0/E1H
+M92!F=6QL('!A=&@@=&\@=&AE(&5X96-U=&%B;&4@<')O9W)A;2!B96EN9R!T
+M97-T960@*&YO=`H)87!P;&EC86)L92!T;R!L:6)A<F-H:79E7W1E<W0@<VEN
+M8V4@;&EB87)C:&EV92!I<R!C;VUP:6QE9"!I;G1O('1H90H)=&5S="!P<F]G
+M<F%M*2`*"3PO4#X*/"]53#X*/%`^5&AE(')E9F5R96YC92!F:6QE<R!A<F4@
+M82!C;VQL96-T:6]N(&]F(&MN;W=N(&EN<'5T<R!T:&%T(&%R92!U<V5D"FEN
+M('1H92!T97-T('!R;V-E<W,N(%1H97D@87)E(&%L;"!S=&]R960@:6X@=75E
+M;F-O9&5D(&9O<FUA="!I;B!F:6QE<PIW:71H(&$@)G%U;W0[+G5U)G%U;W0[
+M(&5X=&5N<VEO;BX@5&AE('1E<W0@<')O9W)A;7,@;&]O:R!I;B!A(&9E=PIS
+M=&%N9&%R9"!L;V-A=&EO;G,[(&EF(&YO;F4@;V8@=&AO<V4@=V]R:RP@>6]U
+M)VQL(&YE960@=&\@<W!E8VEF>2!T:&4*/%14($-,05-3/2)W97-T97)N(CXM
+M<CPO5%0^(&]P=&EO;B!W:71H('1H92!F=6QL('!A=&AN86UE('1O('1H90IA
+M<'!R;W!R:6%T92!D:7)E8W1O<GDN(`H\+U`^"CQ0/E1H92!B<V1T87)?=&5S
+M="!A;F0@8G-D8W!I;U]T97-T('!R;V=R86US(')U;B!B<V1T87(@;W(@8G-D
+M8W!I;PIR97!E871E9&QY.R!T:&5Y(&YE960@=&AE(&9U;&P@<&%T:"!T;R!T
+M:&4@87!P<F]P<FEA=&4@97AE8W5T86)L92X*06QT:&]U9V@@8G-D=&%R7W1E
+M<W0@86YD(&)S9&-P:6]?=&5S="!A<F4@<W!E8VEF:6-A;&QY(&EN=&5N9&5D
+M(&9O<@IT97-T:6YG(&)S9'1A<B!A;F0@8G-D8W!I;RP@=&AE>2!S:&]U;&0@
+M8F4@=7-A8FQE(&9O<B!T97-T:6YG(&]T:&5R"G1A<B!A;F0@8W!I;R!P<F]G
+M<F%M<RX@26X@9F%C="P@<G5N;FEN9R!T:&5S92!T97-T('!R;V=R86US(&%G
+M86EN<W0*;W1H97(@=&%R(&EM<&QE;65N=&%T:6]N<R!I<R!A(&=O;V0@=V%Y
+M('1O('9E<FEF>2!T:&%T('1H92!T97-T"G!R;V=R86US('1H96US96QV97,@
+M87)E('=O<FMI;F<@8V]R<F5C=&QY+B`*/"]0/@H\4#Y7:&5N(')U;BP@=&AE
+M('1E<W0@<')O9W)A;7,@;W5T<'5T(&$@<')O9W)E<W,@;65S<V%G92!F;W(@
+M96%C:`IT97-T+"!A;B!E<G)O<B!M97-S86=E(&9O<B!E86-H(&9A:6QE9"!A
+M<W-E<G1I;VXL(&%N9"!A(&9I;F%L"G-U;6UA<GDZ(`H\+U`^"CQ04D4@0TQ!
+M4U,](G=E<W1E<FXB/B9N8G-P.U)U;FYI;F<@=&5S=',@:6XZ("]T;7`O8G-D
+M=&%R7W1E<W0N,C`P.2TP,BTQ-U0R,2XS,"XT,"TP,#`*)FYB<W`[4F5F97)E
+M;F-E(&9I;&5S('=I;&P@8F4@<F5A9"!F<F]M.B`F;F)S<#L@)FYB<W`[+VAO
+M;64O=&EM+VQI8F%R8VAI=F4O=')U;FLO=&%R+W1E<W0*)FYB<W`[4G5N;FEN
+M9R!T97-T<R!O;CH@+VAO;64O=&EM+VQI8F%R8VAI=F4O=')U;FLO8G-D=&%R
+M"B9N8G-P.T5X97)C:7-I;F<Z(&)S9'1A<B`R+C8N.3`P82`M(&QI8F%R8VAI
+M=F4@,BXV+CDP,&$*)FYB<W`[,#H@=&5S=%\P"B9N8G-P.S$Z('1E<W1?8F%S
+M:6,*)FYB<W`[,CH@=&5S=%]C;W!Y"B9N8G-P.R!T97-T7V-O<'DN8SHQ-S$Z
+M($%S<V5R=&EO;B!F86EL960Z($EN=',@;F]T(&5Q=6%L"B9N8G-P.R`F;F)S
+M<#L@)FYB<W`[(#`],`HF;F)S<#L@)FYB<W`[("9N8G-P.R!L<W1A="AN86UE
+M,B`K(#,L("9A;7`[<W0R*3TM,0HF;F)S<#L@=&5S=%]C;W!Y+F,Z,3<Q.B!&
+M86EL960@,C8T('1I;65S"B9N8G-P.S,Z('1E<W1?9V5T9&%T90HF;F)S<#LT
+M.B!T97-T7VAE;'`*)FYB<W`[("9N8G-P.R`N+BX@;6]R92!O=71P=70@;VUI
+M='1E9"`N+BX*)FYB<W`[,2!O9B`Q,R!T97-T<R!R97!O<G1E9"!F86EL=7)E
+M<PHF;F)S<#L@5&]T86P@;V8@,3`U,#DW(&%S<V5R=&EO;G,@8VAE8VME9"X*
+M)FYB<W`[(%1O=&%L(&]F(#(V-"!A<W-E<G1I;VYS(&9A:6QE9"X*)FYB<W`[
+M(%1O=&%L(&]F(#`@87-S97)T:6]N<R!S:VEP<&5D+CPO4%)%/CQ0/@I4:&4@
+M:&5A9&5R(&QI;F5S(&AE<F4@<F5C;W)D.B`*/"]0/@H\54P^"@D\3$D^/%`@
+M4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^=&AE(&1I<F5C=&]R>2!T:&%T
+M('=I;&P@8F4@=7-E9`H)9F]R('-C<F%T8V@@9FEL97,@9'5R:6YG('1H92!T
+M97-T+B!)9B!A('1E<W0@9F%I;',L('1H92!S8W)A=&-H"@EF:6QE<R!W:6QL
+M(&)E(&QE9G0@8F5H:6YD(&EN('1H:7,@9&ER96-T;W)Y(&9O<B!F=7)T:&5R
+M(&1E8G5G9VEN9RX@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T
+M;VTZ(#!I;B(^5&AE(&1I<F5C=&]R>2!F<F]M('=H:6-H('1H90H)<F5F97)E
+M;F-E(&9I;&5S('=I;&P@8F4@<F5A9"X@"@D\+U`^"@D\3$D^/%`@4U193$4]
+M(FUA<F=I;BUB;W1T;VTZ(#!I;B(^1F]R(&)S9'1A<E]T97-T(&%N9"!B<V1C
+M<&EO7W1E<W0L"@ET:&4@9G5L;"!P871H('1O('1H92!E>&5C=71A8FQE(&)E
+M:6YG(&5X97)C:7-E9"X@"@D\+U`^"@D\3$D^/%`^0F%S:6,@=F5R<VEO;B!I
+M;F9O<FUA=&EO;B!A8F]U="!T:&4@=&%R9V5T+B`*"3PO4#X*/"]53#X*/%`^
+M26X@=&AI<R!C87-E+"!T:&4@=')A:6QE<B!I;F1I8V%T97,@=&AA="!O;F4@
+M=&5S="!F86EL960N($%S('EO=0IC86X@<V5E+"!T:&5R92!W87,@82!S:6YG
+M;&4@87-S97)T:6]N(&EN('1H92!C;V1E('1H870@9F%I;&5D(#(V-`IT:6UE
+M<RX@5&AE(&9I<G-T('1I;64@:70@9F%I;&5D+"!I="!W87,@8F5C875S92!A
+M;B`\5%0@0TQ!4U,](G=E<W1E<FXB/FQS=&%T*"D\+U14/@IC86QL(')E='5R
+M;F5D("TQ(&EN<W1E860@;V8@=&AE('IE<F\@=&AA="!W87,@97AP96-T960N
+M(`H\+U`^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB0F%S:6-?=&5S
+M=%]T97)M:6YO;&]G>2(^/"]!/D)A<VEC('1E<W0*=&5R;6EN;VQO9WD\+T@Q
+M/@H\4#Y%86-H('1E<W0@<')O9W)A;2!C;VYS:7-T<R!O9B!A(&YU;6)E<B!O
+M9B`F<75O=#MT97-T<R9Q=6]T.RX@16%C:`IT97-T(&AA<R!A(&YA;64@86YD
+M(&ES(&EM<&QE;65N=&5D(&EN(&$@0R!S;W5R8V4@9FEL92!W:71H('1H92!S
+M86UE"FYA;64@87,@=&AE('1E<W0N(%1E<W1S('=O<FL@8GD@<&5R9F]R;6EN
+M9R!S;VUE('-E<FEE<R!O9B!O<&5R871I;VYS"F%N9"!M86MI;F<@)G%U;W0[
+M87-S97)T:6]N<R9Q=6]T.R!A8F]U="!T:&4@<F5S=6QT<RX@1F]R(&5X86UP
+M;&4L"FUA;GD@;V8@=&AE(&QI8F%R8VAI=F4@=&5S=',@;W!E;B!A;F0@<F5A
+M9"!A;B!A<F-H:79E(&%N9"!A<W-E<G0@=&AA=`IP87)T:6-U;&%R(&]P97)A
+M=&EO;G,@<W5C8V5E9&5D(&]R(&9A:6QE9"X@*%EE<RP@:70@:7,@;V9T96X*
+M:6UP;W)T86YT('1O('9E<FEF>2!T:&%T(&EL;&5G86P@<F5Q=65S=',@9V5N
+M97)A=&4@87!P<F]P<FEA=&4*97)R;W)S+BD@"CPO4#X*/%`^2&5R92!I<R!A
+M('-O;65W:&%T(&5D:71E9"!E>&-E<G!T(&9R;VT@/%14($-,05-3/2)W97-T
+M97)N(CYT97-T7V-O;7!A=%]Z:7`\+U14/BP*=VAI8V@@=F5R:69I97,@8V]M
+M<&%T:6)I;&ET>2!W:71H('9A<FEO=7,@6DE0(&9O<FUA="!A<F-H:79E<SH@
+M"CPO4#X*/%!212!#3$%34STB=V5S=&5R;B(^)FYB<W`[($1%1DE.15]415-4
+M*'1E<W1?8V]M<&%T7WII<"D*)FYB<W`[('L*)FYB<W`[("9N8G-P.R`O*B`N
+M+BX@<V5T=7`@;VUI='1E9"`N+BX@*B\*)FYB<W`[("9N8G-P.R!A<W-E<G0H
+M*&$@/2!A<F-H:79E7W)E861?;F5W*"DI("$]($Y53$PI.PHF;F)S<#L@)FYB
+M<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@
+M)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E861?<W5P<&]R=%]C;VUP<F5S<VEO
+M;E]A;&PH82DI.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)
+M5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E
+M861?<W5P<&]R=%]F;W)M871?86QL*&$I*3L*)FYB<W`[("9N8G-P.R!E>'1R
+M86-T7W)E9F5R96YC95]F:6QE*&YA;64I.PHF;F)S<#L@)FYB<W`[(&%S<V5R
+M=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N
+M8G-P.R!A<F-H:79E7W)E861?;W!E;E]F:6QE;F%M92AA+"!N86UE+"`Q,#(T
+M,"DI.PHF;F)S<#L@)FYB<W`[("9N8G-P.R\J(%)E860@9FER<W0@96YT<GDN
+M("HO"B9N8G-P.R`F;F)S<#L@)FYB<W`[87-S97)T17%U86Q);G0H05)#2$E6
+M15]/2RP@87)C:&EV95]R96%D7VYE>'1?:&5A9&5R*&$L("9A;7`[864I*3L*
+M)FYB<W`[("9N8G-P.R`F;F)S<#MA<W-E<G1%<75A;%-T<FEN9R@F<75O=#M-
+M151!+4E.1B]-04Y)1D535"Y-1B9Q=6]T.RP@87)C:&EV95]E;G1R>5]P871H
+M;F%M92AA92DI.SPO4%)%/CQ0/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYA
+M<W-E<G186%A8/"]45#X@;6%C<F]S(&-H96-K('1H870@=&AE:7(*87)G=6UE
+M;G1S('-A=&ES9GD@8V5R=&%I;B!C;VYD:71I;VYS+B!)9B!T:&4@87-S97)T
+M:6]N(&9A:6QS+2UF;W(*97AA;7!L92P@:68@=&AE(&YA;64@;V8@=&AE(&9I
+M<G-T(&5N=')Y(&ES(&YO=`HF<75O=#M-151!+4E.1B]-04Y)1D535"Y-1B9Q
+M=6]T.RTM=&AE(&UA8W)O('=I;&P@<F5P;W)T('1H92!P<F]B;&5M+B`*/"]0
+M/@H\4#Y4:&5R92!A<F4@='=O(&EM<&]R=&%N="!D:69F97)E;F-E<R!B971W
+M965N('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=%A86#PO5%0^"FUA
+M8W)O<R!U<V5D(&EN('1H97-E('1E<W0@:&%R;F5S<V5S(&%N9"!T:&4@25-/
+M($,@<W1A;F1A<F0@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G0\+U14/@IM
+M86-R;SH@1FER<W0L('1H97-E(&%S<V5R="!M86-R;W,@9&]N)W0@97AI="!O
+M;B!F86EL=7)E+B!">2!D969A=6QT+`IT:&5Y(')E<&]R="!T:&4@9F%I;'5R
+M92!A;F0@<F5T=7)N('IE<F\@*'1H92!#(&YO=&EO;B!O9B`F<75O=#MF86QS
+M929Q=6]T.RDN"E-E8V]N9"P@=&AE<V4@;6%C<F]S(&EN8VQU9&4@=F%R:6%N
+M=',@=&AA="!P97)F;W)M(&$@=F%R:65T>2!O9@IS<&5C:69I8R!T97-T<RX@
+M5&AE<V4@<W!E8VEF:6,@=F5R<VEO;G,@*'-U8V@@87,@/%14($-,05-3/2)W
+M97-T97)N(CYA<W-E<G1%<75A;$EN=#PO5%0^"F%N9"`\5%0@0TQ!4U,](G=E
+M<W1E<FXB/F%S<V5R=$5Q=6%L4W1R:6YG/"]45#X@:6X@=&AE(&5X86UP;&4@
+986)O=F4I"F=E;F5R871E(&1E=&%I;&5D(```
+`
+end
View
159 libarchive/test/test_splitted_rar_seek_support_ab.uu
@@ -0,0 +1,159 @@
+begin 644 -
+M;&]G(&UE<W-A9V5S(&]N(&9A:6QU<F4N($EN('!A<G1I8W5L87(L('1H97D@
+M<')I;G0*=&AE('9A;'5E(&]F(&)O=&@@87)G=6UE;G1S.R!T:&ES(&=R96%T
+M;'D@<VEM<&QI9FEE<R!D:6%G;F]S:6YG"F9A:6QU<F5S+B`*/"]0/@H\2#$@
+M0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](DQI9F5?8WEC;&5?;V9?85]T97-T
+M(CX\+T$^3&EF92!C>6-L92!O9@IA('1E<W0\+T@Q/@H\4#Y%86-H('1E<W0@
+M<F5S:61E<R!I;B!A($,@<V]U<F-E(&9I;&4@=VET:"!T:&4@<V%M92!N86UE
+M(&%S('1H90IT97-T+B!4:&4@=&5S="!I='-E;&8@:7,@82!F=6YC=&EO;B!T
+M:&%T('1A:V5S(&YO(&%R9W5M96YT<RX@5&AE('1E<W0*:7,@9&5C;&%R960@
+M=7-I;F<@=&AE(#Q45"!#3$%34STB=V5S=&5R;B(^1$5&24Y%7U1%4U0H*3PO
+M5%0^(&UA8W)O+@I4:&ES(&UA8W)O('-E<G9E<R!B;W1H('1O(&5N<W5R92!T
+M:&%T('1H92!T97-T(&ES(&1E8VQA<F5D(&-O<G)E8W1L>0IA;F0@87,@82!L
+M86)E;"!T:&%T(&-A;B!B92!U<V5D('1O(&QO8V%T92!A;&P@9&5F:6YE9"!T
+M97-T<RX@*$]N"E5N:7@M;&EK92!P;&%T9F]R;7,L(&$@<VEM<&QE(#Q45"!#
+M3$%34STB=V5S=&5R;B(^9W)E<#PO5%0^(&]P97)A=&EO;@II<R!U<V5D('1O
+M(&-O;G-T<G5C="!A(&9I;&4@8V%L;&5D(#Q45"!#3$%34STB=V5S=&5R;B(^
+M;&ES="YH/"]45#X*=&AA="!H;VQD<R!T:&4@;F%M97,@;V8@86QL(&]F('1H
+M92!T97-T<RX@5&AI<R!M86ME<R!I="!V97)Y(&5A<WD@=&\*861D(&YE=R!T
+M97-T<RXI(`H\+U`^"CQ0/E1H92!T97-T(&AA<FYE<W,@9&5T97)M:6YE<R!W
+M:&EC:"!T97-T<R!T;R!R=6XN($ET(&=O97,@=&AR;W5G:`IT:&4@9F]L;&]W
+M:6YG('-T97!S('=H96YE=F5R(&ET(')U;G,@82!T97-T.B`*/"]0/@H\54P^
+M"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^/%-44DE+13Y#
+M;&]S97,@86QL(&9I;&4*"61E<V-R:7!T;W)S(&5X8V5P="!F;W(@<W1D:6XL
+M('-T9&]U="P@86YD('-T9&5R<BX\+U-44DE+13X@*%1H:7,*"7-C<F5W<R!U
+M<"!L:6)C(&]N('-O;64@<&QA=&9O<FUS('-O(&AA<R!B965N(')E;6]V960N
+M*2`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY#
+M<F5A=&5S(&$@=&5M<&]R87)Y(&1I<F5C=&]R>0H)=VAO<V4@;F%M92!M871C
+M:&5S('1H92!N86UE(&]F('1H92!T97-T(&%N9"!S=VET8VAE<R!I;G1O('1H
+M870*"61I<F5C=&]R>2X@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB
+M;W1T;VTZ(#!I;B(^4F5S971S('1H92!C=7)R96YT(&QO8V%L92X@"@D\+U`^
+M"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^0V%L;',@=&AE
+M('1E<W0@9G5N8W1I;VXN(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM
+M8F]T=&]M.B`P:6XB/DEF('1H97)E('=E<F4@;F\@87-S97)T:6]N"@EF86EL
+M=7)E<RP@:70@=VEL;"!R96UO=F4@=&AE('1E;7!O<F%R>2!D:7)E8W1O<GDN
+M("A)9B`\5%0@0TQ!4U,](G=E<W1E<FXB/BUK/"]45#X*"6ES('-P96-I9FEE
+M9"P@=&5M<&]R87)Y(&1I<F5C=&]R>2!A<F4@;&5F="!E=F5N(&EF('1H92!T
+M97-T"@ES=6-C965D<RXI(`H)/"]0/@H)/$Q)/CQ0/CQ35%))2T4^268@=&AE
+M<F4@87)E(&%N>2!O<&5N(&9I;&4@9&5S8W)I<'1O<G,@;W1H97(@=&AA;@H)
+M<W1D:6XL('-T9&]U="P@86YD('-T9&5R<BP@:70@<F5P;W)T<R!A;B!E<G)O
+M<BX\+U-44DE+13X@5&5S=',*"7-H;W5L9"!N979E<B!L96%V92!O<&5N(&9I
+M;&4@9&5S8W)I<'1O<G,N(`H)/"]0/@H\+U5,/@H\4#Y);B!P87)T:6-U;&%R
+M+"!T97-T<R!C86X@<V%F96QY(&%S<W5M92!T:&%T.B`*/"]0/@H\54P^"@D\
+M3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^5&AE(&-U<G)E;G0@
+M9&ER96-T;W)Y(&ES(&5M<'1Y"@EW:&5N('1H92!T97-T('-T87)T<RX@"@D\
+M+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^06YY(&9I
+M;&5S(&-R96%T960@:6X@=&AE(&-U<G)E;G0*"61I<F5C=&]R>2!W:6QL(&)E
+M(')E;6]V960@9F]R('EO=2X@"@D\+U`^"@D\3$D^/%`^5&AE(&-U<G)E;G0@
+M;&]C86QE(&ES('1H92!D969A=6QT("9Q=6]T.T,F<75O=#L@;&]C86QE+B`*
+M"3PO4#X*/"]53#X*/%`^5&5S=',@<VAO=6QD.B`*/"]0/@H\54P^"@D\3$D^
+M/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^4F5L96%S92!A;&P@;65M
+M;W)Y+B!4:&4@=&5S=`H)<W5I=&5S(&%R92!O8V-A<VEO;F%L;'D@<G5N('5N
+M9&5R(&$@;65M;W)Y(&1E8G5G9V5R('1O(&1E=&5C="!L96%K<PH):6X@=&AE
+M(&QI8F%R8VAI=F4@;&EB<F%R>2X@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA
+M<F=I;BUB;W1T;VTZ(#!I;B(^0VQO<V4@86QL(&]P96YE9"!F:6QE<RX@5&AI
+M<R!H96QP<PH)=&\@8V%T8V@@9FEL92!D97-C<FEP=&]R(&QE86MS(&EN(&QI
+M8F%R8VAI=F4N(`H)/"]0/@H)/$Q)/CQ0/DYO="!R96%D(&]R('=R:71E(&%B
+M<V]L=71E('!A=&AS+B`*"3PO4#X*/"]53#X*/$@Q($-,05-3/2)W97-T97)N
+M(CX\02!.04U%/2)0;&%T9F]R;5]V87)I871I;VXB/CPO03Y0;&%T9F]R;0IV
+M87)I871I;VX\+T@Q/@H\4#Y3;VUE('1E<W1S(&%R92!S<&5C:69I8R!T;R!A
+M('!A<G1I8W5L87(@<&QA=&9O<FTN(%-U8V@@=&5S=',*<VAO=6QD('5S92!A
+M<'!R;W!R:6%T92!P;&%T9F]R;2US<&5C:69I8R!M86-R;W,@87,@9F]L;&]W
+M<SH@"CPO4#X*/%!212!#3$%34STB=V5S=&5R;B(^(VEF(%]?4$Q!5$9/4DT*
+M+BXN('9A<FEO=7,@:&5L<&5R(&9U;F-T:6]N<R`N+BX*(V5N9&EF"D1%1DE.
+M15]415-4*&9O;U]P;&%T9F]R;2D*>PHC:68@7U]03$%41D]230HF;F)S<#L@
+M)FYB<W`[+BXN('1E<W1S(&%S('5S=6%L("XN+BX*(V5L<V4*)FYB<W`[("9N
+M8G-P.W-K:7!P:6YG*"9Q=6]T.W!L871F;W)M+7-P96-I9FEC('1E<W1S)G%U
+M;W0[*3L*(V5N9&EF"GT\+U!213X\4#X*26X@<&%R=&EC=6QA<BP@;F]T92!T
+M:&%T(&%L;"!T97-T<R!A<F4@8V]M<&EL960@86YD(')U;B!O;B!A;&P*<&QA
+M=&9O<FUS+B`*/"]0/@H\4#Y-;W-T('1E<W1S(&%R92!N;W0@<&QA=&9O<FTM
+M<W!E8VEF:6,@86YD('=I;&P@=&AU<R!E;F0@=7`@<G5N;FEN9PIO;B!M86YY
+M(&1I9F9E<F5N="!P;&%T9F]R;7,N($EN(&]R9&5R('1O('-I;7!L:69Y('=R
+M:71I;F<@<W5C:"!T97-T<RP*=')Y('1O('5S92!P;&%T9F]R;2UI;F1E<&5N
+M9&5N="!C;V1I;F<Z(`H\+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R9VEN
+M+6)O='1O;3H@,&EN(CY5<V4@<W1D:6\@/%14($-,05-3/2)W97-T97)N(CYF
+M;W!E;B@I/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F9W<FET92@I/"]4
+M5#XL(#Q45"!#3$%34STB=V5S=&5R;B(^9G)E860H*3PO5%0^+`H)86YD(#Q4
+M5"!#3$%34STB=V5S=&5R;B(^9F-L;W-E*"D\+U14/B!T;R!A8V-E<W,@9FEL
+M97,@=VAE;F5V97(*"69E87-I8FQE+B`*"3PO4#X*"3Q,23X\4#Y,;V]K('1H
+M<F]U9V@@=&AE(#Q45"!#3$%34STB=V5S=&5R;B(^=&5S="YH/"]45#X@:&5A
+M9&5R('1O"@ES964@:68@=&AE<F4@87)E(&%S<V5R=%AX>"@I(&9U;F-T:6]N
+M<R!T:&%T('EO=2!C86X@=7-E+B!4:&5R92=S(&$*"6QI<W0@;V8@=&AE(&UO
+M<F4@<&]P=6QA<B!O;F5S(&)E;&]W+"!B=70@;F5W(&]N97,@87)E(&]F=&5N
+M(&%D9&5D+B`*"3PO4#X*/"]53#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!.
+M04U%/2)!<W-E<G1?;6%C<F]S(CX\+T$^07-S97)T(&UA8W)O<SPO2#$^"CQ0
+M/E1H92!F;VQL;W=I;F<@:7,@82!N96-E<W-A<FEL>2!I;F-O;7!L971E(&QI
+M<W0@;V8@87-S97)T(&9U;F-T:6]N<PIA=F%I;&%B;&4@=&\@=&5S=',Z(`H\
+M+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY"
+M87-I8R!E<75A;&ET>3H@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A
+M;$EN=#PO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A;%-T
+M<FEN9SPO5%0^+"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$5Q=6%L365M
+M/"]45#X*"0D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I
+M;B(^1FEL92!C<F5A=&EO;CH@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1-
+M86ME1FEL93PO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1-86ME
+M4WEM;&EN:SPO5%0^+"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$UA:V5(
+M87)D;&EN:SPO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1-86ME
+M1&ER/"]45#X@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ
+M(#!I;B(^1FEL92!T97-T<SH@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1)
+M<U)E9SPO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1)<T1I<CPO
+M5%0^+"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$ES4WEM;&EN:SPO5%0^
+M+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1&:6QE4VEZ93PO5%0^+"`\
+M5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5.;&EN:W,\+U14/BP*"3Q4
+M5"!#3$%34STB=V5S=&5R;B(^87-S97)T1FEL94UT:6UE/"]45#X@"@D\+U`^
+M"@D\3$D^/%`^1FEL92!C;VYT96YT<SH@/%14($-,05-3/2)W97-T97)N(CYA
+M<W-E<G1&:6QE16UP='D\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S
+M97)T1FEL94YO;D5M<'1Y/"]45#XL(#Q45"!#3$%34STB=V5S=&5R;B(^87-S
+M97)T1FEL94-O;G1E;G1S/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S
+M<V5R=%1E>'1&:6QE0V]N=&5N=',\+U14/B`*"3PO4#X*/"]53#X*/$@Q($-,
+M05-3/2)W97-T97)N(CX\02!.04U%/2)2969E<F5N8V5?1FEL97,B/CPO03Y2
+M969E<F5N8V4@1FEL97,\+T@Q/@H\4#Y-86YY('1E<W1S(')E<75I<F4@<F5A
+M9&EN9R!A('!R92UC;VYS=')U8W1E9"!R969E<F5N8V4@9FEL92X@4W5C:`IF
+M:6QE<R!A<F4@<W1O<F5D('=I=&@@=&AE('-O=7)C92!C;V1E(&9O<B!T:&4@
+M87-S;V-I871E9"!T97-T('-U:71E+@I2969E<F5N8V4@9FEL97,@87)E(&YA
+M;65D(&%C8V]R9&EN9R!T;R!T:&4@=&5S="!A;F0@;75S="!B92!U=65N8V]D
+M960*=&\@8F4@8VAE8VME9"!I;G1O('-O=7)C92!C;VYT<F]L+B`*/"]0/@H\
+M4#Y&;W(@97AA;7!L92P@:68@>6]U(&YE960@82!R969E<F5N8V4@=&%R(&%R
+M8VAI=F4@=&\@=7-E('=I=&@*/%14($-,05-3/2)W97-T97)N(CYT97-T7V9O
+M;SPO5%0^+"!T:&4@9FEL92!S:&]U;&0@8F4@;F%M960*/%14($-,05-3/2)W
+M97-T97)N(CYT97-T7V9O;RYT87(\+U14/B!A;F0@<W1O<F5D(&EN('-O=7)C
+M92!C;VYT<F]L(&%S"CQ45"!#3$%34STB=V5S=&5R;B(^=&5S=%]F;V\N=&%R
+M+G5U/"]45#XN(`H\+U`^"CQ0/E=I=&AI;B!T:&4@=&5S="!C;V1E+"!Y;W4@
+M8V%N(')E8V]V97(@=&AE(')E9F5R96YC92!F:6QE('=I=&@Z(`H\+U`^"CQ0
+M4D4@0TQ!4U,](G=E<W1E<FXB(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P+C)I
+M;B(^)FYB<W`[("9N8G-P.R!E>'1R86-T7W)E9F5R96YC95]F:6QE*"9Q=6]T
+M.W1E<W1?9F]O+G1A<B9Q=6]T.RD[/"]04D4^/%`^"E1H92`\5%0@0TQ!4U,]
+M(G=E<W1E<FXB/F5X=')A8W1?<F5F97)E;F-E7V9I;&4H*3PO5%0^(&9U;F-T
+M:6]N('=I;&P*=75D96-O9&4@=&AE(')E<75E<W1E9"!F:6QE(&%N9"!P=70@
+M=&AE(')E<W5L="!I;B!T:&4@8W5R<F5N=`ID:7)E8W1O<GDN(`H\+U`^"CQ0
+M/DQO;VL@870@/%14($-,05-3/2)W97-T97)N(CYT97-T7W)E861?9F]R;6%T
+M7V-P:6]?8FEN7V)E+F,\+U14/@IF;W(@82!S:6UP;&4@97AA;7!L92!O9B!T
+M:&ES('5S86=E+B`*/"]0/@H\4#Y!(&9E=R!O9B!T:&4@;VQD97(@=&5S=',@
+M<W1O<F4@<F5F97)E;F-E(&1A=&$@=VET:&EN('1H92!S;W5R8V4*8V]D92!A
+M<R!A(&AE>"UE;F-O9&5D(&%R<F%Y(&]F(&-H87)A8W1E<G,N(%1H:7,@=V%S
+M(&-O;6UO;B!B969O<F4*/%14($-,05-3/2)W97-T97)N(CYE>'1R86-T7W)E
+M9F5R96YC95]F:6QE*"D\+U14/B!W87,@861D960@86YD(&ES"FYO="!R96-O
+M;6UE;F1E9"!F;W(@;F5W(&-O9&4N(`H\+U`^"CQ(,2!#3$%34STB=V5S=&5R
+M;B(^/$$@3D%-13TB1&]S7V%N9%]$;VYT<R(^/"]!/D1O<R!A;F0@1&]N=',\
+M+T@Q/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^
+M1$\@=7-E(&%S<V5R=',@;&EB97)A;&QY+B!)="=S"@EC;VUM;VX@=&\@:&%V
+M92!A;B!A<W-E<G0@;VX@86QM;W-T(&5V97)Y(&QI;F4N(`H)/"]0/@H)/$Q)
+M/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/('5S92!A<W-E<G1%
+M<75A;$EN="P*"6%S<V5R=$5Q=6%L4W1R:6YG+"!A<W-E<G1%<75A;$UE;2!T
+M;R!T97-T(&5Q=6%L:71Y(&EN<W1E860@;V8@<&QA:6X*"6%S<V5R="@I.R!T
+M:&4@<W!E8VEA;&EZ960@9F]R;7,@9VEV92!A(&QO="!M;W)E(&EN9F]R;6%T
+M:6]N(&]N(&$*"69A:6QU<F4N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G
+M:6XM8F]T=&]M.B`P:6XB/D1/('1E<W0@>6]U<B!T97-T<SL@97AP97)I;65N
+M="!B>0H)8VAA;F=I;F<@82!P:65C92!O9B!C;V1E(&%N9"!M86ME('-U<F4@
+M>6]U<B!T97-T(&9A:6QS+B!)9B!Y;W4@=&AI;FL*"7EO=2=V92!F;W5N9"!A
+M(&)U9RP@=V4@<F5C;VUM96YD('=R:71I;F<@=&AE('1E<W0@9FER<W0L(&UA
+M:V4@<W5R90H)=&AE('1E<W0@9F%I;',L('1H96X@9FEX:6YG('1H92!B=6<N
+M(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/
+M(')U;B!A;&P@;V8@=&AE('1E<W1S(&)E9F]R90H)<W5B;6ET=&EN9R!A(&-H
+M86YG92X@1&5P96YD:6YG(&]N('EO=7(@8G5I;&0@96YV:7)O;FUE;G0L(#Q4
+M5"!#3$%34STB=V5S=&5R;B(^;6%K90H)=&5S=#PO5%0^(&]R(#Q45"!#3$%3
+M4STB=V5S=&5R;B(^;6%K92!C:&5C:SPO5%0^('=I;&P@=7-U86QL>2!R=6X*
+M"6%L;"!O9B!T:&4@=&5S=',N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G
+M:6XM8F]T=&]M.B`P:6XB/D1/3B=4(')E;'D@;VX@/%14($-,05-3/2)W97-T
+997)N(CY(059%7SPO5%0^"@EM86-R;W,@9@``
+`
+end
View
141 libarchive/test/test_splitted_rar_seek_support_ac.uu
@@ -0,0 +1,141 @@
+begin 644 -
+M<F]M(&-O;F9I9RYH+B`H268@=&AE('1E<W1S('5S92!T:&4@<V%M92`\5%0@
+M0TQ!4U,](G=E<W1E<FXB/DA!5D5?/"]45#X*"6UA8W)O<R!A<R!T:&4@8V]D
+M92!B96EN9R!T97-T960@=&AE;B!C;VYF:6=U<F%T:6]N('!R;V)L96US('=I
+M;&P@8F4*"6-O=F5R960@=7`N*2`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R
+M9VEN+6)O='1O;3H@,&EN(CY$3R!U<V4@<G5N=&EM92!T97-T<R!F;W(@<&QA
+M=&9O<FT*"69E871U<F5S+B!&;W(@97AA;7!L92P@=&AE($%#3"!T97-T<R!T
+M<GD@=&\@<V5T(&%N($%#3"!O;B!A(&9I;&4@86YD"@ER96%D(&ET(&)A8VL@
+M=&\@9&5T97)M:6YE(&EF($%#3"!S=7!P;W)T(&ES(&%V86EL86)L92P@=&AE
+M;B!T:&5Y"@EE>&5R8VES92!T:&4@;&EB87)C:&EV92!!0TP@:&%N9&QI;F<N
+M(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/
+M(&QO;VL@870@97AI<W1I;F<@=&5S=',N($]F=&5N+`H)82!B=6<@8V%N(&)E
+M('1E<W1E9"!B>2!A9&1I;F<@:G5S="!A(&-O=7!L92!O9B!A<W-E<G1S('1O
+M(&%N"@EE>&ES=&EN9R!T97-T(&EN<W1E860@;V8@=W)I=&EN9R!A(&YE=R!O
+M;F4N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB
+M/D1/(&EM<')O=F4@97AI<W1I;F<@=&5S=',N($EN"@EP87)T:6-U;&%R+"!I
+M9B!Y;W4@<V5E(&$@=&5S="!F86EL=7)E('1H870@:7,@:&%R9"!T;R!U;F1E
+M<G-T86YD+`H)8V]N<VED97(@861D:6YG(&$@9F%I;'5R92@I(&UE<W-A9V4@
+M;W(@8V]M;65N=',@<V\@=&AE(&YE>'0@<&5R<V]N"@EW:6QL(&AA=F4@86X@
+M96%S:65R('1I;64N(`H)/"]0/@H)/$Q)/CQ0/D1/(&%S:R!O;B!T:&4@;6%I
+M;&EN9R!L:7-T<R!I9B!Y;W4@:&%V92!Q=65S=&EO;G,N(%-O;64@=&5S=',*
+M"6%R92!B971T97(@=W)I='1E;B!T:&%N(&]T:&5R<RX@"@D\+U`^"CPO54P^
+M"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB4V]M95]E>&%M<&QE<U]O
+M9E]T97-T<R(^/"]!/E-O;64*97AA;7!L97,@;V8@=&5S=',\+T@Q/@H\2#(@
+M0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](DQI8F%R8VAI=F5?<F5A9%]T97-T
+M<R(^/"]!/DQI8F%R8VAI=F4*<F5A9"!T97-T<SPO2#(^"CQ0/E1H97)E(&%R
+M92!Q=6ET92!A(&9E=R!R96%D('1E<W1S('1H870@<VEM<&QY(')E860@82!P
+M<F4M8G5I;'0*:6YP=70@9FEL92!A;F0@=F5R:69Y('1H92!R97-U;'1S+B!4
+M:&5S92!U<V4@/%14($-,05-3/2)W97-T97)N(CYE>'1R86-T7W)E9F5R96YC
+M95]F:6QE*"D\+U14/@IT;R!D96-O9&4@82!U=65N8V]D960@:6YP=70@9FEL
+M92P@=&AE;B!O<&5N('1H870@9FEL92!W:71H(&QI8F%R8VAI=F4*86YD('9E
+M<FEF>2!T:&4@<F5S=6QT<RX@36]S="!O9B!T:&5S92!A<F4@<')E='1Y('-T
+M<F%I9VAT9F]R=V%R9"X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!.
+M04U%/2),:6)A<F-H:79E7W)E860O=W)I=&5?=&5S=',B/CPO03Y,:6)A<F-H
+M:79E"G)E860O=W)I=&4@=&5S=',\+T@R/@H\4#Y-;W-T(&]F('1H92!W<FET
+M92!T97-T<R!R96%L;'D@:G5S="!V97)I9GD@=&AA="!L:6)A<F-H:79E(&-A
+M;@IR96%D('=H870@:70@=W)I=&5S+B!4:&5S92!G96YE<F%L;'D@=7-E('1H
+M92!M96UO<GD@:6YT97)F86-E<RX@5&AE>0IF965D(&%R8VAI=F4@96YT<FEE
+M<R!I;G1O('1H92!W<FET97(@=&\@8W)E871E(&%N(&%R8VAI=F4@:6X@;65M
+M;W)Y"F%N9"!T:&5N(&]P96X@=&AE(&UE;6]R>2!A9V%I;B!T;R!R96%D('1H
+M92!D871A(&)A8VL@86YD('9E<FEF>2!T:&%T"FET(&ES('1H92!S86UE+B`*
+M/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](DQI8F%R8VAI=F5?
+M=W)I=&5?=F%L:61A=&]R<R(^/"]!/DQI8F%R8VAI=F4*=W)I=&4@=F%L:61A
+M=&]R<SPO2#(^"CQ0/D$@9F5W('=R:71E('1E<W1S('=R:71E(&%N(&%R8VAI
+M=F4@:6YT;R!M96UO<GD@86YD('1H96X@:6YS<&5C=`IT:&4@86-T=6%L(&)Y
+M=&5S('1O('9E<FEF>2!T:&%T('1H92!A<F-H:79E('=A<R!C<F5A=&5D(&-O
+M<G)E8W1L>2X*5&AE<V4@=&5S=',@87)E(&YI8V4@=&\@:&%V92!B=70@87)E
+M('1E9&EO=7,@=&\@8G5I;&0N(`H\+U`^"CQ0/E1H97)E(&%R92!A;'-O(&$@
+M8V]U<&QE(&]F('-U8V@@=F%L:61A=&]R<R!F;W(@8G-D=&%R(&%N9"!B<V1C
+M<&EO+@I4:&5S92!A<F4@=F5R>2!T<FEC:WD@<VEN8V4@=&AE(&5X86-T(&1A
+M=&$@8V]N=&%I;G,@=F%L=65S('1H870@=&AE"G1E<W0@8V%N;F]T(&-O;7!L
+M971E;'D@8V]N=')O;"`H<W5C:"!A<R!T:&4@8W5R<F5N="!T:6UE(&]R"G5S
+M97)N86UE*2X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2)$
+M:7-K7W1E<W1S(CX\+T$^1&ES:R!T97-T<SPO2#(^"CQ0/DQI8F%R8VAI=F4G
+M<R!D:7-K($DO3R!!4$ES+"!A<R!W96QL(&%S(&)S9'1A<B!A;F0@8G-D8W!I
+M;RP@;F5E9"!T;PIO<&5R871E(&)Y('9E<FEF>6EN9R!F:6QE<R!O;B!D:7-K
+M+B!4;R!M86ME('1H:7,@96%S:65R+"!T:&4@=&5S=`IF<F%M97=O<FL@;F]W
+M(&AA<R!A(&QA<F=E(&YU;6)E<B!O9B!A<W-E<G1I;VYS('1O('9E<FEF>2!T
+M:6UE<W1A;7!S+`IP97)M:7-S:6]N<RP@86YD(&]T:&5R(&)A<VEC(&9I;&4@
+M9&%T82X@5&AE<V4@87-S97)T:6]N<R!U<V4*87!P<F]P<FEA=&4@<WES=&5M
+M(&-A;&QS(&9O<B!E86-H('!L871F;W)M.R!N97<@=&5S=',@<VAO=6QD('1R
+M>2!T;PIA=F]I9"!U<VEN9R`\5%0@0TQ!4U,](G=E<W1E<FXB/G-T870H*3PO
+M5%0^+"!W:&EC:"!I<R!N;W0@=6YI9F]R;6QY"F%V86EL86)L92X@"CPO4#X*
+M/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2)&=7IZ7W1E<W1E<B(^/"]!
+M/D9U>GH@=&5S=&5R/"](,CX*/%`^5&AE(&9U>GH@=&5S=&5R(&ES(&]N92!O
+M9B!T:&4@9F5W('1E<W1S('1H870@9&]E<R!N;W0@86=G<F5S<VEV96QY"G5S
+M92!A<W-E<G1I;VYS+B!)=',@<'5R<&]S92!I<R!T;R!T<GD@86YD(&-R87-H
+M(&QI8F%R8VAI=F4@8GD@9F5E9&EN9PII="!I;G!U="!T:&%T(&ES('-L:6=H
+M=&QY(&1A;6%G960N("A296UE;6)E<B!T:&%T(&QI8F%R8VAI=F4@9&]E<PIH
+M879E('-O;64@9F%I;'-A9F4@8V]D92!T:&%T(&1E;&EB97)A=&5L>2!A8F]R
+M=',@=&AE(&5N=&ER92!P<F]G<F%M"FEF(&-E<G1A:6X@:6YV87)I86YT<R!A
+M<F4@=FEO;&%T960N*2`*/"]0/@H\4#Y3:6YC92!A(&9U>GH@9F%I;'5R92!C
+M875S97,@82!C<F%S:"P@:70G<R!I;7!O<W-I8FQE('1O(')E<&]R="!T:&4*
+M97)R;W(@=&\@=&AE(&-O;G-O;&4L('-O('1H92!F=7IZ('1E<W1E<B!I;G-T
+M96%D(&=E;F5R871E<R!A"G)A;F1O;6QY+61A;6%G960@9FEL92P@<V%V97,@
+M=&AA="!F:6QE('1O(&1I<VLL('1H96X@<G5N<R!T:&4@9FEL90IT:')O=6=H
+M(&QI8F%R8VAI=F4@=&\@=')Y('1O('!R;W9O:V4@82!C<F%S:"X@268@;&EB
+M87)C:&EV92!C<F%S:&5S"G1H92!E;G1I<F4@=&5S=&5R+"!T:&4@:6YP=70@
+M=&AA="!C875S960@=&AE(&-R87-H('=I;&P@8F4@879A:6QA8FQE"F]N(&1I
+M<VL@9F]R(&9U<G1H97(@86YA;'ES:7,N(`H\+U`^"CQ0/D%L=&AO=6=H(&ET
+M(&ES('5N=7-U86P@9F]R(&$@=&5S="!P<F]G<F%M('1O('5S92!R86YD;VT@
+M:6YP=70L('1H90IF=7IZ('1E<W1E<B!H87,@<')O=F5N('%U:71E('5S969U
+M;"!A="!U;F-O=F5R:6YG('!O;W(@97)R;W(*:&%N9&QI;F<N(%5N9F]R='5N
+M871E;'DL('1H92!N965D('1O('=R:71E('1H92!D871A('1O(&1I<VL@8F5F
+M;W)E"F5A8V@@=&5S="!I<R!A('-I9VYI9FEC86YT('!E<F9O<FUA;F-E(&ES
+M<W5E+B`*/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](DQA<F=E
+M7W1A<E]T97-T97(B/CPO03Y,87)G92!T87(@=&5S=&5R/"](,CX*/%`^5&AE
+M(&QA<F=E('1A<B!T97-T97(@871T96UP=',@=&\@97AE<F-I<V4@8F]U;F1A
+M<GD@8V%S97,@=VET:"!V97)Y"FQA<F=E(&5N=')I97,L('5P('1O(#$@=&5R
+M86)Y=&4N($]F(&-O=7)S92P@=W)I=&EN9R!A(#$@=&5R86)Y=&4*96YT<GD@
+M=&\@86X@=6YC;VUP<F5S<V5D(&%R8VAI=F4@;VX@9&ES:R!O<B!M96UO<GD@
+M:7,@=6YA8V-E<'1A8FQE+`IB;W1H(&9O<B!P97)F;W)M86YC92!A;F0@<W!A
+M8V4@<F5A<V]N<RX@179E;B!G>FEP(&]R(&)Z:7`R"F-O;7!R97-S:6]N('=O
+M;B=T(&AE;'`[(&%L=&AO=6=H('-M86QL97(L('1H92!O=71P=70@:7,@<W1I
+M;&P@;&%R9V4*86YD('1H92!T:6UE(&YE961E9"!T;R!C;VUP<F5S<R!S=6-H
+M(&$@;&%R9V4@86UO=6YT(&]F(&1A=&$@:7,*<')O:&EB:71I=F4N(%-O('1H
+M92!L87)G92!T87(@=&5S=&5R('5S97,@82!T<FEC:RX@"CPO4#X*/%`^4F5M
+M96UB97(@=&AA="!A;B!U;F-O;7!R97-S960@=&%R(&%R8VAI=F4@8V]N<VES
+M=',@;V8@86QT97)N871I;F<*:&5A9&5R<R!A;F0@8F]D:65S+B!)9B!T:&4@
+M8F]D:65S(&-O;G-I<W0@96YT:7)E;'D@;V8@>F5R;R!B>71E<RP*=&AE;B!A
+M;&P@=&AA="=S(&YE961E9"!T;R!R96-O;G-T<G5C="!T:&4@87)C:&EV92!I
+M<R!T;R!R96-O<F0@=&AE"G)E;&%T:79E;'D@<VUA;&P@:&5A9&5R<R!A;F0@
+M<W1O<F4@82!C;W5N="!O9B!E86-H(&-O;G1I9W5O=7,@8FQO8VL*;V8@>F5R
+M;W,N(%1H:7,@<VEM<&QE("9Q=6]T.W)U;BUL96YG=&@@96YC;V1I;F<F<75O
+M=#L@:7,@=F5R>0IE9F9E8W1I=F4L(&-O;7!R97-S:6YG(&$@<V%M<&QE(&%R
+M8VAI=F4@=VET:"!A(&1O>F5N(&5N=')I97,@9&]W;B!T;PIJ=7-T(&$@9F5W
+M(&MI;&]B>71E<RP@979E;B!I9B!T:&]S92!E;G1R:65S(')A;F=E('5P('1O
+M(#%40BX@"CPO4#X*/%`^0GD@=W)I=&EN9R!A(&-U<W1O;2!)+T\@;&%Y97(@
+M=&AA="!I;7!L96UE;G1S('-U8V@@8V]M<')E<W-I;VXL('=E"F-A;B!W<FET
+M92!V97)Y(&QA<F=E(&5N=')I97,@=&AR;W5G:"!L:6)A<F-H:79E('1H96X@
+M<F5A9"!T:&5M(&)A8VL*86YD('9E<FEF>2!T:&%T(&QI8F%R8VAI=F4@8V]R
+M<F5C=&QY(&AA;F1L97,@86QL(&]F('1H92!B;W5N9&%R>0IC87-E<RX@"CPO
+M4#X*/%`^3V8@8V]U<G-E+"!E=F5N('-C86YN:6YG(&]U='!U="!T;R!D971E
+M<FUI;F4@>F5R;R!B;&]C:W,@8V%N('1A:V4*<75I=&4@82!W:&EL92P@<V\@
+M=&AE(&QA<F=E('1A<B!T97-T97(@;6%K97,@;VYE(&UO<F4@;W!T:6UI>F%T
+M:6]N.@I,:6)A<F-H:79E(&ES("9Q=6]T.VUO<W1L>29Q=6]T.R!Z97)O+6-O
+M<'DN(%=H96X@>6]U(&=I=F4@:70@82!L87)G90IB;&]C:R!T;R!W<FET92!T
+M;R!A;B!E;G1R>2!B;V1Y+"!I="!W:6QL('!A<W,@<&]I;G1E<G,@<W1R86EG
+M:'0*=&AR;W5G:"!T;R!T:&4@;W5T<'5T(')O=71I;F4L(&5X8V5P="!I;B!T
+M:&]S92!C87-E<R!W:&5R92!I="!M=7-T"F-O<'D@9&%T82!T;R!C;W)R96-T
+M;'D@8G5I;&0@8FQO8VMS+B!4:&4@;&%R9V4@=&%R('1E<W1E<B!T86ME<PIA
+M9'9A;G1A9V4@;V8@=&AI<R!T;R!Q=6EC:VQY(&1E=&5C="!W:&5N(&$@8FQO
+M8VL@8F5I;F<@=W)I='1E;B!O=70@8GD*=&AE(&%R8VAI=F4@=W)I=&5R(&ES
+M('1H92!S86UE(&%S('-O;64@;V8@=&AE(&1A=&$@=&AA="!W87,@9VEV96X@
+M8GD*=&AE('1E<W0@87,@=&AE(&5N=')Y(&)O9'DL(&%N9"!S:6UI;&%R;'D@
+M=VAE;B!R96%D:6YG('1H92!A<F-H:79E"F)A8VLN(`H\+U`^"CQ0/E1A:V5N
+M('1O9V5T:&5R+"!T:&5S92!T<FEC:W,@86QL;W<@=&AE(&QA<F=E('1A<B!W
+M<FET97(@=&\@=&5S=`IF;W(@:7-S=65S('-U8V@@87,@<')O<&5R('-T;W)A
+M9V4@;V8@=F5R>2!L87)G92!F:6QE('-I>F5S("AT87(@9FEL97,*<W5P<&]R
+M="!S979E<F%L(&1I9F9E<F5N="!W87ES('1O('-T;W)E(&9I;&4@<VEZ97,@
+M=VAI8V@@=')A9&4@;V9F"G!O<G1A8FEL:71Y('9E<G-U<R!R86YG93L@;&EB
+M87)C:&EV92!T<FEE<R!T;R!U<V4@=&AE(&UO<W0@<&]R=&%B;&4*;VYE(&ET
+M(&-A;B!F;W(@96%C:"!E;G1R>2D@86YD(&EN=&5G97(@;W9E<F9L;W<@*%=I
+M;F1O=W,@,S(M8FET(#Q45"!#3$%34STB=V5S=&5R;B(^;V9F7W0\+U14/@IB
+M<F]K92!T:&4@;&%R9V4@=&%R('1E<W0@86YD(&QE9"!L:6)A<F-H:79E('1O
+M(&UA:V4@:&5A=FEE<B!U<V4@;V8*/%14($-,05-3/2)W97-T97)N(CYI;G0V
+M-%]T/"]45#X@:6YT97)N86QL>2D@:6X@82!T97-T('1H870@<G5N<R!I;@IU
+M;F1E<B`Q+S0@<V5C;VYD+B`*/"]0/@H\4"!35%E,13TB;6%R9VEN+6)O='1O
+H;3H@,&EN(CX\0E(^"CPO4#X*/"]"3T19/@H\+TA434P^Q#U[`$`'````
+`
+end
Please sign in to comment.
Something went wrong with that request. Please try again.