Index: common/include/prop/prop_array.h
===================================================================
RCS file: /cvsroot/src/common/include/prop/prop_array.h,v
retrieving revision 1.5
diff -d -p -u -u -r1.5 prop_array.h
--- common/include/prop/prop_array.h	16 Aug 2007 16:28:17 -0000	1.5
+++ common/include/prop/prop_array.h	27 Oct 2007 15:47:14 -0000
@@ -66,9 +66,15 @@ void		prop_array_remove(prop_array_t, un
 
 bool		prop_array_equals(prop_array_t, prop_array_t);
 
-char *		prop_array_externalize(prop_array_t);
-prop_array_t	prop_array_internalize(const char *);
+char 		*prop_array_externalize(prop_array_t);
+prop_array_t	prop_array_internalize(const uint8_t *, size_t);
 
+bool 		prop_array_externalize_with_encoding(prop_array_t, uint8_t **,
+						     size_t *,
+						     prop_encoding_t);
+bool 		prop_array_externalize_to_file_with_encoding(prop_array_t,
+							     const char *,
+							     prop_encoding_t);
 bool		prop_array_externalize_to_file(prop_array_t, const char *);
 prop_array_t	prop_array_internalize_from_file(const char *);
 
Index: common/include/prop/prop_dictionary.h
===================================================================
RCS file: /cvsroot/src/common/include/prop/prop_dictionary.h,v
retrieving revision 1.7
diff -d -p -u -u -r1.7 prop_dictionary.h
--- common/include/prop/prop_dictionary.h	16 Aug 2007 16:28:17 -0000	1.7
+++ common/include/prop/prop_dictionary.h	27 Oct 2007 15:47:14 -0000
@@ -77,9 +77,17 @@ void		prop_dictionary_remove_keysym(prop
 
 bool		prop_dictionary_equals(prop_dictionary_t, prop_dictionary_t);
 
-char *		prop_dictionary_externalize(prop_dictionary_t);
-prop_dictionary_t prop_dictionary_internalize(const char *);
+prop_dictionary_t prop_dictionary_internalize(const uint8_t *, size_t);
+char 		*prop_dictionary_externalize(prop_dictionary_t);
 
+bool 		prop_dictionary_externalize_with_encoding(prop_dictionary_t,
+							  uint8_t **,
+							  size_t *,
+							  prop_encoding_t);
+bool 		prop_dictionary_externalize_to_file_with_encoding(
+							  prop_dictionary_t,
+							  const char *,
+							  prop_encoding_t);
 bool		prop_dictionary_externalize_to_file(prop_dictionary_t,
 						    const char *);
 prop_dictionary_t prop_dictionary_internalize_from_file(const char *);
Index: common/include/prop/prop_number.h
===================================================================
RCS file: /cvsroot/src/common/include/prop/prop_number.h,v
retrieving revision 1.5
diff -d -p -u -u -r1.5 prop_number.h
--- common/include/prop/prop_number.h	16 Aug 2007 16:28:17 -0000	1.5
+++ common/include/prop/prop_number.h	27 Oct 2007 15:47:14 -0000
@@ -58,6 +58,7 @@ bool		prop_number_unsigned(prop_number_t
 int64_t		prop_number_integer_value(prop_number_t);
 uint64_t	prop_number_unsigned_integer_value(prop_number_t);
 
+int 		prop_number_compare(prop_number_t, prop_number_t);
 bool		prop_number_equals(prop_number_t, prop_number_t);
 bool		prop_number_equals_integer(prop_number_t, int64_t);
 bool		prop_number_equals_unsigned_integer(prop_number_t, uint64_t);
Index: common/include/prop/prop_object.h
===================================================================
RCS file: /cvsroot/src/common/include/prop/prop_object.h,v
retrieving revision 1.6
diff -d -p -u -u -r1.6 prop_object.h
--- common/include/prop/prop_object.h	30 Aug 2007 12:23:53 -0000	1.6
+++ common/include/prop/prop_object.h	27 Oct 2007 15:47:14 -0000
@@ -58,6 +58,12 @@ typedef enum {
 	PROP_TYPE_DICT_KEYSYM	=	0x646b6579	/* 'dkey' */
 } prop_type_t;
 
+typedef enum {
+	PROP_ENCODING_DEFAULT 	= 	0,
+	PROP_ENCODING_XML 	= 	1,
+	PROP_ENCODING_BINARY 	=	2
+} prop_encoding_t;
+
 __BEGIN_DECLS
 void		prop_object_retain(prop_object_t);
 void		prop_object_release(prop_object_t);
Index: common/lib/libprop/Makefile.inc
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/Makefile.inc,v
retrieving revision 1.6
diff -d -p -u -u -r1.6 Makefile.inc
--- common/lib/libprop/Makefile.inc	16 Aug 2007 21:44:06 -0000	1.6
+++ common/lib/libprop/Makefile.inc	27 Oct 2007 15:47:14 -0000
@@ -2,7 +2,7 @@
 
 .PATH:	${.PARSEDIR}
 
-SRCS+=	prop_array.c prop_bool.c prop_data.c prop_dictionary.c \
+SRCS+=	prop_array.c prop_bool.c prop_bplist.c prop_data.c prop_dictionary.c \
 	prop_dictionary_util.c prop_ingest.c prop_kern.c prop_number.c \
 	prop_object.c prop_stack.c prop_string.c
 
Index: common/lib/libprop/prop_array.3
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_array.3,v
retrieving revision 1.5
diff -d -p -u -u -r1.5 prop_array.3
--- common/lib/libprop/prop_array.3	16 Aug 2007 16:30:59 -0000	1.5
+++ common/lib/libprop/prop_array.3	27 Oct 2007 15:47:14 -0000
@@ -54,8 +54,10 @@
 .Nm prop_array_add ,
 .Nm prop_array_remove ,
 .Nm prop_array_externalize ,
+.Nm prop_array_externalize_with_encoding ,
 .Nm prop_array_internalize ,
 .Nm prop_array_externalize_to_file ,
+.Nm prop_array_externalize_to_file_with_encoding ,
 .Nm prop_array_internalize_from_file ,
 .Nm prop_array_equals
 .Nd array property collection object
@@ -101,7 +103,14 @@
 .Ft char *
 .Fn prop_array_externalize "prop_array_t array"
 .Ft prop_array_t
-.Fn prop_array_internalize "const char *xml"
+.Fn prop_array_internalize "const uint8_t *buf" "size_t len"
+.\"
+.Ft bool
+.Fn prop_array_externalize_with_encoding "prop_array_t array" \
+    "uint8_t **bufp" "size_t *lenp" "prop_encoding_t enc"
+.Ft bool
+.Fn prop_array_externalize_to_file_with_encoding "prop_array_t array" \
+    "const char *path" "prop_encoding_t enc"
 .\"
 .Ft bool
 .Fn prop_array_externalize_to_file "prop_array_t array" "const char *path"
@@ -222,16 +231,31 @@ In the kernel, the buffer is allocated u
 .Xr malloc 9
 using the malloc type
 .Dv M_TEMP .
-.It Fn prop_array_internalize "const char *xml"
-Parse the XML representation of a property list in the NUL-terminated
-buffer
-.Fa xml
-and return the corresponding array.
+.It Fn prop_array_externalize_with_encoding  "prop_array_t array" \
+    "uint8_t **bufp" "size_t *lenp" "prop_encoding_t enc"
+Externalizes an array using encoding
+.Fa enc .
+On success returns
+.Dv true
+and fills buffer address and length to
+.Fa bufp
+and
+.Fa lenp
+respectively. On failure,
+.Dv false
+is returned and no arguments are modified.
+.It Fn prop_array_internalize "const uint8_t *buf" "size_t len"
+Parse any supported encoding of a property list in the buffer
+.Fa buf
+of length
+.Fa len
+bytes and return the corresponding array.
 Returns
 .Dv NULL
 if parsing fails for any reason.
 .It Fn prop_array_externalize_to_file "prop_array_t array" "const char *path"
-Externalizes an array and writes it to the file specified by
+Externalizes an array in default encoding and writes it to the file specified
+by
 .Fa path .
 The file is saved with the mode
 .Dv 0666
@@ -241,10 +265,19 @@ and is written atomically.
 Returns
 .Dv false
 if externalizing or writing the array fails for any reason.
+.It Fn prop_array_externalize_to_file_with_encoding "prop_array_t array" \
+    "const char *path" "prop_encoding_t enc"
+Like
+.Xr prop_array_externalize_to_file 3
+but use encoding
+.Fa enc .
 .It Fn prop_array_internalize_from_file "const char *path"
-Reads the XML property list contained in the file specified by
-.Fa path ,
-internalizes it, and returns the corresponding array.
+Reads the property list contained in the file specified by
+.Fa path
+regardless of its encoding, internalizes it, and returns the corresponding
+array. Should reading or parsing fail for any reason,
+.Dv NULL
+is returned.
 .El
 .Sh SEE ALSO
 .Xr prop_bool 3 ,
Index: common/lib/libprop/prop_array.c
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_array.c,v
retrieving revision 1.11
diff -d -p -u -u -r1.11 prop_array.c
--- common/lib/libprop/prop_array.c	30 Aug 2007 12:23:54 -0000	1.11
+++ common/lib/libprop/prop_array.c	27 Oct 2007 15:47:14 -0000
@@ -91,6 +91,28 @@ struct _prop_array_iterator {
 
 #define	EXPAND_STEP		16
 
+void
+_prop_array_rdlock(prop_object_t po)
+{
+#if !defined(_STANDALONE)
+	prop_array_t pa = po;
+
+	_PROP_ASSERT(prop_object_is_array(pa));
+	_PROP_RWLOCK_RDLOCK(pa->pa_rwlock);
+#endif
+}
+
+void
+_prop_array_unlock(prop_object_t po)
+{
+#if !defined(_STANDALONE)
+	prop_array_t pa = po;
+
+	_PROP_ASSERT(prop_object_is_array(pa));
+	_PROP_RWLOCK_UNLOCK(pa->pa_rwlock);
+#endif
+}
+
 static int
 _prop_array_free(prop_stack_t stack, prop_object_t *obj)
 {
@@ -702,21 +724,14 @@ prop_array_equals(prop_array_t array1, p
 	return (prop_object_equals(array1, array2));
 }
 
-/*
- * prop_array_externalize --
- *	Externalize an array, return a NUL-terminated buffer
- *	containing the XML-style representation.  The buffer is allocated
- * 	with the M_TEMP memory type.
- */
-char *
-prop_array_externalize(prop_array_t pa)
+static bool
+_prop_array_xml_externalize(prop_array_t pa, uint8_t **bufp, size_t *lenp)
 {
 	struct _prop_object_externalize_context *ctx;
-	char *cp;
 
 	ctx = _prop_object_externalize_context_alloc();
 	if (ctx == NULL)
-		return (NULL);
+		return (false);
 	
 	if (_prop_object_externalize_header(ctx) == false ||
 	    (*pa->pa_obj.po_type->pot_extern)(ctx, pa) == false ||
@@ -724,13 +739,61 @@ prop_array_externalize(prop_array_t pa)
 		/* We are responsible for releasing the buffer. */
 		_PROP_FREE(ctx->poec_buf, M_TEMP);
 		_prop_object_externalize_context_free(ctx);
-		return (NULL);
+		return (false);
 	}
 
-	cp = ctx->poec_buf;
+	*bufp = (uint8_t *)ctx->poec_buf;
+	*lenp = ctx->poec_len;
 	_prop_object_externalize_context_free(ctx);
 
-	return (cp);
+	return (true);
+}
+
+/*
+ * prop_array_externalize --
+ * 	Like prop_array_externalize_with_encoding() below, using XML.
+ */
+char *
+prop_array_externalize(prop_array_t pa)
+{
+	uint8_t *buf;
+	size_t len;
+
+	if (! prop_array_externalize_with_encoding(pa, &buf, &len,
+	    PROP_ENCODING_XML))
+		return (NULL);
+
+	return ((char *)buf);
+}
+
+/*
+ * prop_array_externalize_with_encoding --
+ *	Externalize an array in given encoding, on success return true
+ * 	and set buffer pointer and length arguments; otherwise return
+ * 	false and don't fill any values. The buffer is allocated with
+ * 	the M_TEMP memory type.
+ */
+bool
+prop_array_externalize_with_encoding(prop_array_t pa, uint8_t **bufp,
+    size_t *lenp, prop_encoding_t enc)
+{
+	_PROP_ASSERT(bufp != NULL && lenp != NULL);
+
+	if (! prop_object_is_array(pa))
+		return (false);
+
+	switch (enc) {
+	case PROP_ENCODING_BINARY:
+		return (_prop_bp_externalize_object(pa, PROP_TYPE_ARRAY, bufp,
+		    lenp));
+
+	case PROP_ENCODING_DEFAULT:
+	case PROP_ENCODING_XML:
+		return (_prop_array_xml_externalize(pa, bufp, lenp));
+	}
+
+	/* LINTED silly gcc */
+	return (false);
 }
 
 /*
@@ -829,30 +892,54 @@ _prop_array_internalize_body(prop_stack_
  *	Create an array by parsing the XML-style representation.
  */
 prop_array_t
-prop_array_internalize(const char *xml)
+prop_array_internalize(const uint8_t *buf, size_t len)
 {
-	return _prop_generic_internalize(xml, "array");
+	_PROP_ASSERT(buf != NULL && len > 0);
+
+	switch (buf[0]) {
+	case 'b':
+		return (_prop_bp_internalize(buf, len, PROP_TYPE_ARRAY));
+	case '<':
+		return (_prop_generic_internalize((const char *)buf, "array"));
+	}
+
+	return (NULL);
 }
 
 #if !defined(_KERNEL) && !defined(_STANDALONE)
 /*
  * prop_array_externalize_to_file --
- *	Externalize an array to the specified file.
+ *	Externalize an array to the specified file in XML format.
  */
 bool
 prop_array_externalize_to_file(prop_array_t array, const char *fname)
 {
-	char *xml;
+	return (prop_array_externalize_to_file_with_encoding(array,
+	    fname, PROP_ENCODING_DEFAULT));
+}
+
+/*
+ * prop_array_externalize_to_file_with_encoding --
+ *	Externalize an array to the specified file in XML format.
+ */
+bool
+prop_array_externalize_to_file_with_encoding(prop_array_t array,
+    const char *fname, prop_encoding_t enc)
+{
+	uint8_t *buf;
+	size_t len;
 	bool rv;
 	int save_errno = 0;	/* XXXGCC -Wuninitialized [mips, ...] */
 
-	xml = prop_array_externalize(array);
-	if (xml == NULL)
+	if (! prop_array_externalize_with_encoding(array, &buf, &len, enc)) {
+		errno = EINVAL;
 		return (false);
-	rv = _prop_object_externalize_write_file(fname, xml, strlen(xml));
+	}
+
+	rv = _prop_object_externalize_write_file(fname, buf, len);
 	if (rv == false)
 		save_errno = errno;
-	_PROP_FREE(xml, M_TEMP);
+	_PROP_FREE(buf, M_TEMP);
 	if (rv == false)
 		errno = save_errno;
 
@@ -872,7 +959,8 @@ prop_array_internalize_from_file(const c
 	mf = _prop_object_internalize_map_file(fname);
 	if (mf == NULL)
 		return (NULL);
-	array = prop_array_internalize(mf->poimf_xml);
+
+	array = prop_array_internalize(mf->poimf_data, mf->poimf_datasize);
 	_prop_object_internalize_unmap_file(mf);
 
 	return (array);
Index: common/lib/libprop/prop_bplist.c
===================================================================
RCS file: common/lib/libprop/prop_bplist.c
diff -N common/lib/libprop/prop_bplist.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ common/lib/libprop/prop_bplist.c	27 Oct 2007 15:47:15 -0000
@@ -0,0 +1,1810 @@
+/* 	$NetBSD$ */
+
+/*-
+ * Copyright (c) 2007 Jachym Holecek <freza@NetBSD.org>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * XXXfreza TODO:
+ * 	o Don't allocate internalizer context on the stack
+ * 	o Tidy _prop_bp_decode_object() a bit, it's too long
+ * 	o Look at using joerg's stack management
+ *
+ * XXXfreza CAVEATS:
+ *      o Mutating internalized objects is risky as objects may be arbitrarily
+ *        uniquified, depending on the encoder.
+ */
+
+#include <sys/queue.h>
+
+#include <prop/proplib.h>
+#include "prop_object_impl.h"
+#include "prop_rb_impl.h"
+
+#if defined(_KERNEL) || defined(_STANDALONE)
+#include <machine/limits.h>
+#else
+#include <limits.h>
+#endif
+
+/* Round 'x' up to the nearest multiple of 'm'. */
+#define _PROP_ROUNDUP(x, m) 		((((x) + ((m) - 1))/(m)) * (m))
+
+/* General size/count increments. */
+#define BPLIST_INCREMENT_SMALL 		16 	/* > BPLIST_HEADER_LEN */
+#define BPLIST_INCREMENT_LARGE 		128
+
+/* Maximum length of encoded integer (marker byte + 64bit value). */
+#define BPLIST_NUMBER_MAXLEN 		9
+
+/*
+ * (1) Header structure. Identifies file format and version.
+ */
+
+/* Magic marker & lenght (no terminating NUL). */
+#define BPLIST_MAGIC 			"bplist"
+#define BPLIST_MAGIC_LEN 		6
+
+/* Version is given in two bytes interpreted as ASCII characters. */
+#define BPLIST_VERSION_LEN 		2
+#define BPLIST_VERSION_MAJOR_OFFS 	6
+#define BPLIST_VERSION_MINOR_OFFS 	7
+
+/* Total header length. */
+#define BPLIST_HEADER_LEN 		(BPLIST_MAGIC_LEN + BPLIST_VERSION_LEN)
+
+/*
+ * (2) Object table. Flat array describing all objects in the plist.
+ *     Compound objects (array, dict) refer to their "children" via
+ *     indexes to the offset table.
+ */
+
+/* Object type encoded in higher four bits. */
+#define BPLIST_TYPE_MULTI 		0x00
+#define BPLIST_TYPE_UINT 		0x10 	/* signed int in Apple */
+#define BPLIST_TYPE_REAL 		0x20 	/* unsupported */
+#define BPLIST_TYPE_DATE 		0x30 	/* unsupported */
+#define BPLIST_TYPE_DATA 		0x40
+#define BPLIST_TYPE_ASCII 		0x50 	/* ASCII string */
+#define BPLIST_TYPE_UNICODE 		0x60 	/* unsupported */
+#define BPLIST_TYPE_SINT 		0x70 	/* reserved in Apple */
+#define BPLIST_TYPE_UID 		0x80 	/* unsupported */
+#define BPLIST_TYPE_ARRAY 		0xa0
+#define BPLIST_TYPE_DICT 		0xd0
+
+/* Lower four bits for BPLIST_TYPE_MULTI. */
+#define BPLIST_MULTI_NULL 		0x00
+#define BPLIST_MULTI_FALSE 		0x08
+#define BPLIST_MULTI_TRUE 		0x09
+#define BPLIST_MULTI_FILL 		0x0f
+
+/* Where lower bits mean "count", this indicates (u_)integer count follows. */
+#define BPLIST_COUNT_MANY 		0x0f
+
+/*
+ * (3) Offset table. Array of unsigned integers (width defined by the
+ *     trailer) resolving object references to file offsets at which
+ *     objects are stored.
+ */
+
+/*
+ * (4) Trailer structure. Defines byte-width of offset table entries, its
+ *     offset in the file, count of offset table entries (ie. object count)
+ *     and index of the toplevel array/dict.
+ */
+
+#define BPLIST_TRAILER_LEN 		(3*8 + 2)
+#define BPLIST_TRAILER_OFFWIDTH_OFFS 	0
+#define BPLIST_TRAILER_REFWIDTH_OFFS 	1
+#define BPLIST_TRAILER_OBJCNT_OFFS 	2
+#define BPLIST_TRAILER_OBJTOP_OFFS 	10
+#define BPLIST_TRAILER_OFFTAB_OFFS 	18
+
+/*
+ * Internalizer data types.
+ */
+
+typedef struct _prop_bp_intern_frame 	*_prop_bp_intern_frame_t;
+typedef struct _prop_bp_intern 		*_prop_bp_intern_t;
+
+/* Internalizer frame, common for arrays/dicts. */
+struct _prop_bp_intern_frame {
+	prop_object_t 		if_container;
+	const char 		*if_keysym; 		/* Dictionary only */
+	const uint8_t 		*if_buffer;
+	u_int 			if_count; 		/* Object count */
+	u_int 			if_index; 		/* Current object */
+};
+
+struct _prop_bp_intern {
+	/* Trailer members. */
+	u_int 			bi_offtab_width; 	/* size 1 offset 0  */
+	u_int 			bi_objref_width; 	/* size 1 offset 1  */
+	u_int 			bi_object_count; 	/* size 8 offset 2  */
+	u_int 			bi_object_first; 	/* size 8 offset 10 */
+	u_int 			bi_offtab_offset; 	/* size 8 offset 18 */
+
+	/* Objects internalized so far, by index. */
+	prop_object_t 		*bi_objects;
+
+	/* Utility members. */
+	const uint8_t 		*bi_offtab;
+	const uint8_t 		*bi_buffer;
+	size_t 			bi_length;
+
+	/* Manipulated exclusively by _prop_bp_intern_stack_*(). */
+	u_int 			bi_stack_depth;
+	u_int 			bi_stack_top;
+	_prop_bp_intern_frame_t	bi_stack; 		/* array */
+};
+
+/*
+ * Externalizer data types.
+ */
+
+typedef struct _prop_bp_extern 		*_prop_bp_extern_t;
+typedef struct _prop_bp_node 		*_prop_bp_object_t;
+typedef struct _prop_bp_table 		*_prop_bp_table_t;
+typedef struct _prop_bp_uniq_node 	*_prop_bp_uniq_node_t;
+typedef struct _prop_bp_uniq_list 	*_prop_bp_uniq_list_t;
+typedef union _prop_bp_uniq_value 	*_prop_bp_uniq_value_t;
+
+/* Entry in uniqified object table. */
+struct _prop_bp_node {
+	prop_object_t 			bo_object;
+	u_int 				*bo_reftab; 	/* compounds */
+	u_int 				bo_index;
+	u_int 				bo_offset;
+};
+
+/* Uniquified RB-tree string/integer value. */
+union _prop_bp_uniq_value {
+	struct {
+		const char *bsv_string;
+		uint32_t bsv_hash;
+	} 				bv__string;
+	prop_number_t 			bv_number;
+};
+
+#define bv_string 			bv__string.bsv_string
+#define bv_hash 			bv__string.bsv_hash
+
+/* Entry in uniquified string/integer RB-tree. */
+struct _prop_bp_uniq_node {
+	struct rb_node 			bu_rb; 		/* must be head */
+	SLIST_ENTRY(_prop_bp_uniq_node)	bu_link;
+	union _prop_bp_uniq_value 	bu_value;
+	u_int 				bu_index;
+	u_int 				bu_offset;
+};
+
+#define _PROP_UNCONST(a) 		\
+    ((void *)(unsigned long)(const void *)(a))
+
+/* Unique node/value accessors and conversions. */
+#define BPLIST_UNODE_TO_VALUE(node) 	\
+    (&((_prop_bp_uniq_node_t)_PROP_UNCONST(node))->bu_value)
+
+#define BPLIST_UNODE_TO_INDEX(node) 	\
+    (((_prop_bp_uniq_node_t)(void *)node)->bu_index)
+
+#define BPLIST_VOIDP_TO_VALUE(ptr) 	\
+    ((_prop_bp_uniq_value_t)_PROP_UNCONST(ptr))
+
+SLIST_HEAD(_prop_bp_uniq_list, _prop_bp_uniq_node);
+
+/* Uniquified object table. */
+struct _prop_bp_table {
+	_prop_bp_object_t 		bt_objects; 	/* array */
+	u_int 				bt_depth;
+	u_int 				bt_next;
+};
+
+/* Uniquified object tables & their count. */
+#define BPLIST_TABLE_COMPOUND 		0 	/* dict & array */
+#define BPLIST_TABLE_SINGLE 		1 	/* bool & data */
+#define BPLIST_TABLE_COUNT 		2 	/* number of tables */
+
+struct _prop_bp_extern {
+	/* Uniquified compounds (only empty collections unique). */
+	struct _prop_bp_table 		ec_compounds;
+	u_int 				ec_empty_array;
+	u_int 				ec_empty_dict;
+
+	/* Uniquified booleans and data (only booleans unique). */
+	struct _prop_bp_table 		ec_others;
+	u_int 				ec_true;
+	u_int 				ec_false;
+
+	/* Uniquified string RB-tree. */
+	struct _prop_bp_uniq_list 	ec_str_list;
+	struct rb_tree 			ec_str_tree;
+
+	/* Uniquified numer RB-tree. */
+	struct _prop_bp_uniq_list 	ec_num_list;
+	struct rb_tree 			ec_num_tree;
+
+	/* Externalized plist. */
+	uint8_t 			*ec_extern_buffer;
+	size_t 				ec_extern_size;
+	size_t 				ec_extern_next;
+
+	/* Unique object count (and next object index). */
+	u_int 				ec_index_next;
+
+	/* Trailer values. */
+	u_int 				ec_objref_width;
+	u_int 				ec_offtab_width;
+	u_int 				ec_offtab_start;
+};
+
+/*
+ * Internalizer stack management.
+ */
+
+static bool
+_prop_bp_intern_stack_init(_prop_bp_intern_t ic)
+{
+	u_int count = BPLIST_INCREMENT_SMALL;
+	u_int size = (count * sizeof(struct _prop_bp_intern_frame));
+
+	ic->bi_stack = _PROP_MALLOC(size, M_TEMP);
+	if (ic->bi_stack == NULL)
+		return (false);
+
+	ic->bi_stack_depth = count;
+	ic->bi_stack_top = 0;
+
+	return (true);
+}
+
+static void
+_prop_bp_intern_stack_free(_prop_bp_intern_t ic)
+{
+	/* We're done, WIP objects themselves freed via bi_objects[]. */
+	_PROP_FREE(ic->bi_stack, M_TEMP);
+}
+
+static _prop_bp_intern_frame_t
+_prop_bp_intern_stack_peek(_prop_bp_intern_t ic)
+{
+	return (&ic->bi_stack[ic->bi_stack_top]);
+}
+
+static _prop_bp_intern_frame_t
+_prop_bp_intern_stack_zerohead(_prop_bp_intern_t ic)
+{
+	_prop_bp_intern_frame_t bif = _prop_bp_intern_stack_peek(ic);
+
+	return (memset(bif, 0, sizeof(struct _prop_bp_intern_frame)));
+}
+
+static bool
+_prop_bp_intern_stack_pop(_prop_bp_intern_t ic)
+{
+	if (ic->bi_stack_top == 1)
+		return (true);
+
+	ic->bi_stack_top -= 1;
+	return (false);
+}
+
+static _prop_bp_intern_frame_t
+_prop_bp_intern_stack_push(_prop_bp_intern_t ic)
+{
+	size_t size;
+	u_int count;
+	void *p;
+
+	/* XXXfreza this leaves stack frame 0 wasted. */
+	ic->bi_stack_top += 1;
+	if (ic->bi_stack_top < ic->bi_stack_depth)
+		return (_prop_bp_intern_stack_zerohead(ic));
+
+	count = (ic->bi_stack_depth + BPLIST_INCREMENT_SMALL);
+	size = (count * sizeof(struct _prop_bp_intern_frame));
+	p = _PROP_REALLOC(ic->bi_stack, size, M_TEMP);
+	if (p == NULL)
+		return (NULL);
+
+	ic->bi_stack_depth = count;
+	ic->bi_stack = p;
+
+	return (_prop_bp_intern_stack_zerohead(ic));
+}
+
+/*
+ * Internalizer utility decoders.
+ */
+
+static const uint8_t *
+_prop_bp_object_pointer(_prop_bp_intern_t ic, u_int n)
+{
+	const uint8_t *ofp = (ic->bi_offtab + n*ic->bi_offtab_width);
+	u_int offset = 0;
+	int i;
+
+	for (i = 0; i < ic->bi_offtab_width; i++)
+		offset = (offset << 8) | ofp[i];
+
+	if (offset >= (ic->bi_length - BPLIST_TRAILER_LEN))
+		return (NULL);
+
+	return (ic->bi_buffer + offset);
+}
+
+static const uint8_t *
+_prop_bp_read_int(_prop_bp_intern_t ic, const uint8_t *obj, u_int *valp)
+{
+	uint8_t hi = (*obj & 0xf0);
+	uint8_t lo = (*obj & 0x0f);
+	u_int nbytes;
+	u_int i;
+
+	/* Check type and calculate number size in bytes. */
+	if (hi != BPLIST_TYPE_UINT)
+		return (NULL);
+
+	nbytes = (1 << lo);
+	if (nbytes > sizeof(u_int))
+		return (NULL);
+
+	/* Careful not to overflow object table. */
+	if ((obj + nbytes) > ic->bi_offtab)
+		return (NULL);
+	obj += 1;
+
+	/* Shift in big-endian value. */
+	for (*valp = 0, i = 0; i < nbytes; i++)
+		*valp = (*valp << 8) | *obj++;
+
+	return (obj);
+}
+
+static const uint8_t *
+_prop_bp_read_index(_prop_bp_intern_t ic, const uint8_t *obj, u_int *valp)
+{
+	u_int i;
+
+	/* Careful not to overflow object table. */
+	if ((obj + ic->bi_objref_width) > ic->bi_offtab)
+		return (NULL);
+
+	/* Shift in big-endian value. */
+	for (*valp = 0, i = 0; i < ic->bi_objref_width; i++)
+		*valp = (*valp << 8) | *obj++;
+
+	/* Careful not to overflow advised object count. */
+	if (*valp >= ic->bi_object_count)
+		return (NULL);
+
+	return (obj);
+}
+
+/*
+ * Internalizer object decoder routines.
+ */
+
+/*ARGSUSED*/
+static prop_number_t
+_prop_bp_decode_int(_prop_bp_intern_t ic, const uint8_t *obj, bool isuint,
+    uint8_t lo)
+{
+	uint64_t val = 0;
+	u_int nbytes = (1 << lo);
+	u_int i;
+
+	if (nbytes > 8)
+		return (NULL);
+
+	for (i = 0; i < nbytes; i++)
+		val = (val << 8) | *obj++;
+
+	if (isuint)
+		return (prop_number_create_unsigned_integer(val));
+	else
+		return (prop_number_create_integer((int64_t)val));
+}
+
+static prop_array_t
+_prop_bp_decode_array(_prop_bp_intern_t ic, const uint8_t *obj, uint8_t lo)
+{
+	_prop_bp_intern_frame_t bif;
+	prop_array_t pa;
+	u_int nelts;
+
+	/* Read array size (number of contained objects). */
+	if (lo == BPLIST_COUNT_MANY) {
+		obj = _prop_bp_read_int(ic, obj, &nelts);
+		if (obj == NULL)
+			return (NULL);
+	} else
+		nelts = lo;
+
+	/* Create the array. */
+	pa = prop_array_create_with_capacity(nelts);
+	if (pa == NULL)
+		return (NULL);
+
+	/* Initialize stack frame. */
+	bif = _prop_bp_intern_stack_push(ic);
+	if (bif == NULL) {
+		prop_object_release(pa);
+		return (NULL);
+	}
+	bif->if_container = pa;
+	bif->if_buffer = obj;
+	bif->if_count = nelts;
+	bif->if_index = 0;
+
+	return (pa);
+}
+
+static prop_dictionary_t
+_prop_bp_decode_dict(_prop_bp_intern_t ic, const uint8_t *obj, uint8_t lo)
+{
+	_prop_bp_intern_frame_t bif;
+	prop_dictionary_t pd;
+	u_int nelts;
+
+	/* Read dictionary size (number of <key, val> pairs). */
+	if (lo == BPLIST_COUNT_MANY) {
+		obj = _prop_bp_read_int(ic, obj, &nelts);
+		if (obj == NULL)
+			return (NULL);
+	} else
+		nelts = lo;
+
+	/* Create the dictionary. */
+	pd = prop_dictionary_create_with_capacity(nelts);
+	if (pd == NULL)
+		return (NULL);
+
+	/* Initialize stack frame. */
+	bif = _prop_bp_intern_stack_push(ic);
+	if (bif == NULL) {
+		prop_object_release(pd);
+		return (NULL);
+	}
+	bif->if_container = pd;
+	bif->if_keysym = NULL;
+	bif->if_buffer = obj;
+	bif->if_count = (2 * nelts);
+	bif->if_index = 0;
+
+	return (pd);
+}
+
+static prop_string_t
+_prop_bp_decode_ascii(_prop_bp_intern_t ic, const uint8_t *obj, uint8_t lo)
+{
+	prop_string_t ps;
+	u_int size;
+	char *str;
+
+	/* Read string length. */
+	if (lo == BPLIST_COUNT_MANY) {
+		obj = _prop_bp_read_int(ic, obj, &size);
+		if (obj == NULL)
+			return (NULL);
+	} else
+		size = lo;
+
+	/* Are we in bounds of the object table? */
+	if ((obj + size) > ic->bi_offtab)
+		return (NULL);
+
+	str = _PROP_MALLOC(size + 1, M_TEMP);
+	if (str == NULL)
+		return (NULL);
+
+	str[size] = '\0';
+	memcpy(str, obj, size);
+
+	/* XXXfreza this is expensive but we can't donate a buffer to ps */
+	ps = prop_string_create_cstring(str);
+	_PROP_FREE(str, M_TEMP);
+
+	return (ps);
+}
+
+static prop_data_t
+_prop_bp_decode_data(_prop_bp_intern_t ic, const uint8_t *obj, uint8_t lo)
+{
+	u_int size;
+
+	/* Read data length. */
+	if (lo == BPLIST_COUNT_MANY) {
+		obj = _prop_bp_read_int(ic, obj, &size);
+		if (obj == NULL)
+			return (NULL);
+	} else
+		size = lo;
+
+	/* Are we in bounds of the object table? */
+	if ((obj + size) > ic->bi_offtab)
+		return (NULL);
+
+	return (prop_data_create_data(obj, size));
+}
+
+static bool
+_prop_bp_decode_object(_prop_bp_intern_t ic, u_int idx)
+{
+	_prop_bp_intern_frame_t bif;
+	prop_object_t po;
+	const uint8_t *obj;
+	uint8_t hi;
+	uint8_t lo;
+
+	if (! _prop_bp_intern_stack_init(ic))
+		return (false);
+
+ nextobj:
+	/* See if we already have this object, decode otherwise. */
+	po = ic->bi_objects[idx];
+	if (po != NULL)
+		goto gotobj;
+
+	/* Get pointer to encoded object and see what we can do. */
+	obj = _prop_bp_object_pointer(ic, idx);
+	if (obj == NULL)
+		goto fail;
+
+	hi = (*obj & 0xf0); /* Object type tag */
+	lo = (*obj & 0x0f); /* Auxiliary data */
+	obj += 1;
+
+	switch (hi) {
+	case BPLIST_TYPE_MULTI:
+		switch (lo) {
+		case BPLIST_MULTI_FALSE:
+			po = prop_bool_create(false);
+			break;
+
+		case BPLIST_MULTI_TRUE:
+			po = prop_bool_create(true);
+			break;
+
+		default:
+			goto fail;
+		}
+		break;
+
+	case BPLIST_TYPE_UINT:
+		po = _prop_bp_decode_int(ic, obj, true, lo);
+		break;
+
+	case BPLIST_TYPE_SINT:
+		po = _prop_bp_decode_int(ic, obj, false, lo);
+		break;
+
+	case BPLIST_TYPE_ASCII:
+		po = _prop_bp_decode_ascii(ic, obj, lo);
+		break;
+
+	case BPLIST_TYPE_DATA:
+		po = _prop_bp_decode_data(ic, obj, lo);
+		break;
+
+	case BPLIST_TYPE_ARRAY:
+		po = _prop_bp_decode_array(ic, obj, lo);
+		break;
+
+	case BPLIST_TYPE_DICT:
+		po = _prop_bp_decode_dict(ic, obj, lo);
+		break;
+
+	default:
+		goto fail;
+	}
+
+	/* See if decoding was successful, remember object if so. */
+	if (po == NULL)
+		goto fail;
+	ic->bi_objects[idx] = po;
+
+ gotobj:
+	/* Get current compound, if it's a fresh one skip insert step. */
+	bif = _prop_bp_intern_stack_peek(ic);
+	if (bif->if_container == po)
+		goto newcompound;
+
+ insertobj:
+	/* Insert object into its container. */
+	if (prop_object_type(bif->if_container) == PROP_TYPE_DICTIONARY) {
+		if (bif->if_keysym == NULL) {
+			const char *key;
+
+			if (prop_object_type(po) != PROP_TYPE_STRING)
+				goto fail;
+
+			key = prop_string_cstring_nocopy(po);
+			bif->if_keysym = key;
+		} else {
+			if (! prop_dictionary_set(bif->if_container,
+			    bif->if_keysym, po))
+				goto fail;
+
+			bif->if_keysym = NULL;
+		}
+	} else
+	if (prop_object_type(bif->if_container) == PROP_TYPE_ARRAY) {
+		if (! prop_array_set(bif->if_container, bif->if_index, po))
+			goto fail;
+	}
+	bif->if_index += 1;
+
+ newcompound:
+	/* See if we've just finished current compound object. */
+	if (bif->if_index == bif->if_count) {
+		if (_prop_bp_intern_stack_pop(ic)) {
+			_prop_bp_intern_stack_free(ic);
+			return (true);
+		}
+
+		/* Restore previous context and re-run insert path. */
+		po = bif->if_container;
+		bif = _prop_bp_intern_stack_peek(ic);
+
+		goto insertobj;
+	}
+
+	/* Get index of next object to work on, re-run decoder. */
+	obj = _prop_bp_read_index(ic, bif->if_buffer, &idx);
+	if (obj == NULL)
+		goto fail;
+	bif->if_buffer = obj;
+
+	goto nextobj;
+
+ fail:
+	_prop_bp_intern_stack_free(ic);
+	return (false);
+}
+
+/*
+ * Internal API to encoding dispatcher.
+ */
+
+prop_object_t
+_prop_bp_internalize(const uint8_t *data, size_t len, prop_type_t type)
+{
+	struct _prop_bp_intern ic;
+	prop_object_t po;
+	const uint8_t *trbase;
+	const uint8_t *obj;
+	uint64_t big;
+	uint8_t val;
+	u_int i;
+
+	/* Is it large enough to make any sense? */
+	if (len <= (BPLIST_HEADER_LEN + BPLIST_TRAILER_LEN))
+		return (NULL);
+
+	/* Does it match the magic marker? */
+	if (memcmp(data, BPLIST_MAGIC, BPLIST_MAGIC_LEN) != 0)
+		return (NULL);
+
+	/* Can we parse this version? */
+	if (data[BPLIST_VERSION_MAJOR_OFFS] != 'Z' ||
+	    data[BPLIST_VERSION_MINOR_OFFS] != 'Z')
+		return (NULL);
+
+	/* Decode the trailer, can't do much without it. */
+	trbase = (data + len - BPLIST_TRAILER_LEN);
+	ic.bi_offtab_width = *(trbase + BPLIST_TRAILER_OFFWIDTH_OFFS);
+	ic.bi_objref_width = *(trbase + BPLIST_TRAILER_REFWIDTH_OFFS);
+
+	big = be64dec(trbase + BPLIST_TRAILER_OFFTAB_OFFS);
+	if (big > UINT_MAX)
+		return (NULL);
+	ic.bi_offtab_offset = (u_int)big;
+
+	big = be64dec(trbase + BPLIST_TRAILER_OBJCNT_OFFS);
+	if (big > UINT_MAX)
+		return (NULL);
+	ic.bi_object_count = (u_int)big;
+
+	big = be64dec(trbase + BPLIST_TRAILER_OBJTOP_OFFS);
+	if (big > UINT_MAX)
+		return (NULL);
+	ic.bi_object_first = (u_int)big;
+
+#if 0
+	warnx("bi_offtab_width  %u", ic.bi_offtab_width);
+	warnx("bi_objref_width  %u", ic.bi_objref_width);
+	warnx("bi_offtab_offset 0x%x", ic.bi_offtab_offset);
+	warnx("bi_object_count  %u", ic.bi_object_count);
+	warnx("bi_object_first  %u", ic.bi_object_first);
+#endif
+
+	/* Sanity check the trailer. */
+	if (ic.bi_offtab_width == 0 || ic.bi_offtab_width > sizeof(u_int))
+		return (NULL);
+
+	if (ic.bi_objref_width == 0 || ic.bi_objref_width > sizeof(u_int))
+		return (NULL);
+
+	if (ic.bi_offtab_offset >= (len - BPLIST_TRAILER_LEN) ||
+	    ic.bi_offtab_offset <= BPLIST_HEADER_LEN)
+		return (NULL);
+
+	if (ic.bi_object_count > (len - ic.bi_offtab_offset -
+	    BPLIST_TRAILER_LEN)/ic.bi_offtab_width)
+		return (NULL);
+
+	if (ic.bi_object_first >= ic.bi_object_count)
+		return (NULL);
+
+	/* Setup remaining internalizer context. */
+	ic.bi_offtab = (data + ic.bi_offtab_offset);
+	ic.bi_buffer = data;
+	ic.bi_length = len;
+
+	/* Check toplevel object type before we waste more time. */
+	obj = _prop_bp_object_pointer(&ic, ic.bi_object_first);
+	if (obj == NULL)
+		return (NULL);
+	val = (*obj & 0xf0);
+
+	if ((type == PROP_TYPE_DICTIONARY && val != BPLIST_TYPE_DICT) ||
+	    (type == PROP_TYPE_ARRAY && val != BPLIST_TYPE_ARRAY))
+		return (NULL);
+
+	/* Initialize object table. */
+	ic.bi_objects = _PROP_MALLOC(sizeof(prop_object_t) *
+	    ic.bi_object_count, M_TEMP);
+	if (ic.bi_objects == NULL)
+		return (NULL);
+	memset(ic.bi_objects, 0, sizeof(prop_object_t) * ic.bi_object_count);
+
+	/* Parse toplevel object. */
+	if (_prop_bp_decode_object(&ic, ic.bi_object_first))
+		po = ic.bi_objects[ic.bi_object_first];
+	else
+		po = NULL;
+
+	/* Release initial object references, except for toplevel one. */
+	for (i = 0; i < ic.bi_object_count; i++)
+		if (ic.bi_objects[i] != NULL && i != ic.bi_object_first)
+			prop_object_release(ic.bi_objects[i]);
+
+	_PROP_FREE(ic.bi_objects, M_TEMP);
+	return (po);
+}
+
+/*
+ * Externalizer RB-tree comparison routines.
+ */
+
+static int
+_prop_rb_str_compare_key(const struct rb_node *node, const void *key)
+{
+	const _prop_bp_uniq_value_t uv1 = BPLIST_UNODE_TO_VALUE(node);
+	const _prop_bp_uniq_value_t uv2 = BPLIST_VOIDP_TO_VALUE(key);
+
+	if (uv1->bv_hash > uv2->bv_hash)
+		return (1);
+	else
+	if (uv1->bv_hash < uv2->bv_hash)
+		return (-1);
+
+	return (strcmp(uv1->bv_string, uv2->bv_string));
+}
+
+static int
+_prop_rb_str_compare_node(const struct rb_node *node1,
+    const struct rb_node *node2)
+{
+	const _prop_bp_uniq_value_t uv = BPLIST_UNODE_TO_VALUE(node2);
+
+	return (_prop_rb_str_compare_key(node1, uv));
+}
+
+static const struct rb_tree_ops _prop_bp_str_rbops = {
+	.rbto_compare_nodes = _prop_rb_str_compare_node,
+	.rbto_compare_key = _prop_rb_str_compare_key,
+};
+
+static int
+_prop_rb_num_compare_key(const struct rb_node *node, const void *key)
+{
+	const _prop_bp_uniq_value_t uv1 = BPLIST_UNODE_TO_VALUE(node);
+	const _prop_bp_uniq_value_t uv2 = BPLIST_VOIDP_TO_VALUE(key);
+
+	return (prop_number_compare(uv1->bv_number, uv2->bv_number));
+}
+
+static int
+_prop_rb_num_compare_node(const struct rb_node *node1,
+    const struct rb_node *node2)
+{
+	const _prop_bp_uniq_value_t uv = BPLIST_UNODE_TO_VALUE(node2);
+
+	return (_prop_rb_num_compare_key(node1, uv));
+}
+
+static const struct rb_tree_ops _prop_bp_num_rbops = {
+	.rbto_compare_nodes = _prop_rb_num_compare_node,
+	.rbto_compare_key = _prop_rb_num_compare_key,
+};
+
+/*
+ * Externalizer utility routines.
+ */
+
+static uint8_t
+_prop_bp_number_logsize(uint64_t val)
+{
+	/* Calculate log2(number of bytes to represent value). */
+	if (val & 0xffffffff00000000ULL)
+		return (3);
+	else
+	if (val & 0x00000000ffff0000ULL)
+		return (2);
+	else
+	if (val & 0x000000000000ff00ULL)
+		return (1);
+
+	return (0);
+}
+
+static u_int
+_prop_bp_number_size(uint64_t val)
+{
+	if (val <= 0x00000000000000ffULL)
+		return (1);
+	else
+	if (val <= 0x000000000000ffffULL)
+		return (2);
+	else
+	if (val <= 0x0000000000ffffffULL)
+		return (3);
+	else
+	if (val <= 0x00000000ffffffffULL)
+		return (4);
+	else
+	if (val <= 0x000000ffffffffffULL)
+		return (5);
+	else
+	if (val <= 0x0000ffffffffffffULL)
+		return (6);
+	else
+	if (val <= 0x00ffffffffffffffULL)
+		return (7);
+
+	return (8);
+}
+
+static bool
+_prop_bp_table_init(_prop_bp_table_t tab)
+{
+	size_t size;
+
+	size = (BPLIST_INCREMENT_SMALL * sizeof(struct _prop_bp_node));
+
+	tab->bt_objects = _PROP_MALLOC(size, M_TEMP);
+	if (tab->bt_objects == NULL)
+		return (false);
+
+	tab->bt_depth = BPLIST_INCREMENT_SMALL;
+	tab->bt_next = 0;
+
+	return (true);
+}
+
+static _prop_bp_extern_t
+_prop_bp_extern_init(prop_object_t po)
+{
+	_prop_bp_extern_t be;
+
+	be = _PROP_MALLOC(sizeof(struct _prop_bp_extern), M_TEMP);
+	if (be == NULL)
+		return (NULL);
+
+	/* Initialize object tables. */
+	if (! _prop_bp_table_init(&be->ec_compounds) ||
+	    ! _prop_bp_table_init(&be->ec_others))
+		goto fail;
+
+	/* Invalidate singular objects references. */
+	be->ec_empty_array = UINT_MAX;
+	be->ec_empty_dict = UINT_MAX;
+	be->ec_true = UINT_MAX;
+	be->ec_false = UINT_MAX;
+
+	/* Initialize object RB-trees and lists. */
+	_prop_rb_tree_init(&be->ec_str_tree, &_prop_bp_str_rbops);
+	_prop_rb_tree_init(&be->ec_num_tree, &_prop_bp_num_rbops);
+
+	SLIST_INIT(&be->ec_str_list);
+	SLIST_INIT(&be->ec_num_list);
+
+	/* Initialize externalize buffer. */
+	be->ec_extern_buffer = _PROP_MALLOC(BPLIST_INCREMENT_LARGE, M_TEMP);
+	if (be->ec_extern_buffer == NULL)
+		goto fail;
+
+	be->ec_extern_size = BPLIST_INCREMENT_LARGE;
+	be->ec_extern_next = 0;
+
+	/* Register toplevel compound. */
+	be->ec_compounds.bt_objects[0].bo_object = po;
+	be->ec_compounds.bt_objects[0].bo_index = 0;
+	be->ec_compounds.bt_next = 1;
+
+	/* Lock toplevel compound so that it doesn't dance under our hands. */
+	if (prop_object_type(po) == PROP_TYPE_DICTIONARY)
+		_prop_dictionary_rdlock(po);
+	else
+		_prop_array_rdlock(po);
+
+	/* Toplevel compound has index 0, continue from 1 on. */
+	be->ec_index_next = 1;
+
+	return (be);
+
+ fail:
+	if (be->ec_compounds.bt_objects != NULL)
+		_PROP_FREE(be->ec_compounds.bt_objects, M_TEMP);
+	if (be->ec_others.bt_objects != NULL)
+		_PROP_FREE(be->ec_others.bt_objects, M_TEMP);
+	if (be != NULL)
+		_PROP_FREE(be, M_TEMP);
+
+	return (NULL);
+}
+
+static void
+_prop_bp_extern_free(_prop_bp_extern_t be)
+{
+	_prop_bp_uniq_node_t unode;
+	_prop_bp_table_t comptab = &be->ec_compounds;
+	u_int i;
+
+	/* Free tables of contents for compound objects. */
+	for (i = 0; i < comptab->bt_next; i++)
+		if (comptab->bt_objects[i].bo_reftab != NULL)
+			_PROP_FREE(comptab->bt_objects[i].bo_reftab, M_TEMP);
+
+	/* Free all uniquification tables. */
+	_PROP_ASSERT(be->ec_compounds.bt_objects != NULL);
+	_PROP_FREE(be->ec_compounds.bt_objects, M_TEMP);
+
+	if (be->ec_others.bt_objects != NULL)
+		_PROP_FREE(be->ec_others.bt_objects, M_TEMP);
+
+	/* Free all uniquification lists (and thus RB nodes). */
+	while ((unode = SLIST_FIRST(&be->ec_str_list)) != NULL) {
+		SLIST_REMOVE_HEAD(&be->ec_str_list, bu_link);
+		_PROP_FREE(unode, M_TEMP);
+	}
+
+	while ((unode = SLIST_FIRST(&be->ec_num_list)) != NULL) {
+		SLIST_REMOVE_HEAD(&be->ec_num_list, bu_link);
+		_PROP_FREE(unode, M_TEMP);
+	}
+
+	/* Externalize buffer managed by caller. */
+	_PROP_FREE(be, M_TEMP);
+}
+
+static uint8_t *
+_prop_bp_ensure_capacity(_prop_bp_extern_t be, u_int size)
+{
+	uint8_t *start;
+	u_int newsize;
+	void *p;
+
+ retry:
+	if ((be->ec_extern_next + size) < be->ec_extern_size) {
+		start = &be->ec_extern_buffer[be->ec_extern_next];
+		be->ec_extern_next += size;
+
+		return (start);
+	}
+
+	newsize = (be->ec_extern_size + size);
+	newsize = _PROP_ROUNDUP(newsize, BPLIST_INCREMENT_LARGE);
+
+	/* Fail if we've gone insanely large (integer overflow). */
+	if (newsize < be->ec_extern_size)
+		return (NULL);
+
+	p = _PROP_REALLOC(be->ec_extern_buffer, newsize, M_TEMP);
+	if (p == NULL)
+		return (NULL);
+
+	be->ec_extern_buffer = p;
+	be->ec_extern_size = newsize;
+
+	/* We'll definitely make it this time. */
+	goto retry;
+}
+
+static uint32_t
+_prop_bp_hash32_string(const char *cstring)
+{
+	/* XXXfreza cut'n'paste from <sys/hash.h> */
+	const uint8_t *s = (const uint8_t *)cstring;
+	uint32_t hash = 5381;
+	uint8_t	c;
+
+	while ((c = *s++) != 0)
+		hash = hash * 33 + c;		/* "perl": k=33, r=r+r/32 */
+
+	return (hash + (hash >> 5));
+}
+
+/*
+ * Externalizer object uniquifying process.
+ */
+
+static u_int
+_prop_bp_put_uniq(_prop_bp_extern_t be, struct rb_tree *tree,
+    _prop_bp_uniq_list_t list, _prop_bp_uniq_value_t uvp)
+{
+	_prop_bp_uniq_node_t unode;
+	struct rb_node *node;
+
+	/* Nothing to do if it's already there. */
+	node = _prop_rb_tree_find(tree, uvp);
+	if (node != NULL)
+		return (BPLIST_UNODE_TO_INDEX(node));
+
+	/* Create and insert a new unique object. */
+	unode = _PROP_MALLOC(sizeof(struct _prop_bp_uniq_node), M_TEMP);
+	if (unode == NULL)
+		return (UINT_MAX);
+
+	unode->bu_value = (*uvp); /* struct copy */
+	unode->bu_index = (be->ec_index_next++);
+
+	_prop_rb_tree_insert_node(tree, &unode->bu_rb);
+	SLIST_INSERT_HEAD(list, unode, bu_link);
+
+	return (unode->bu_index);
+}
+
+static u_int
+_prop_bp_put_table(_prop_bp_extern_t be, _prop_bp_table_t tab,
+    prop_object_t po)
+{
+	_prop_bp_object_t bo;
+	u_int count;
+	u_int size;
+	void *p;
+
+ retry:
+	if (tab->bt_next < tab->bt_depth) {
+		bo = &tab->bt_objects[tab->bt_next];
+		bo->bo_object = po;
+		bo->bo_index = (be->ec_index_next++);
+
+		tab->bt_next += 1;
+		return (bo->bo_index);
+	}
+
+	count = (tab->bt_depth + BPLIST_INCREMENT_SMALL);
+	size = (count * sizeof(struct _prop_bp_node));
+	p = _PROP_REALLOC(tab->bt_objects, size, M_TEMP);
+	if (p == NULL)
+		return (UINT_MAX);
+
+	tab->bt_objects = p;
+	tab->bt_depth = count;
+
+	/* We'll definitely make it this time. */
+	goto retry;
+}
+
+static bool
+_prop_bp_uniquify(_prop_bp_extern_t be, _prop_bp_object_t bo,
+    prop_object_t po, u_int np)
+{
+	union _prop_bp_uniq_value uv;
+	u_int n = UINT_MAX; /* gcc */
+	bool yesno;
+	bool empty;
+
+	switch (prop_object_type(po)) {
+	case PROP_TYPE_STRING:
+		uv.bv_string = prop_string_cstring_nocopy(po);
+		uv.bv_hash = _prop_bp_hash32_string(uv.bv_string);
+
+		n = _prop_bp_put_uniq(be, &be->ec_str_tree, &be->ec_str_list,
+		    &uv);
+		break;
+
+	case PROP_TYPE_DICT_KEYSYM:
+		uv.bv_string = prop_dictionary_keysym_cstring_nocopy(po);
+		uv.bv_hash = _prop_bp_hash32_string(uv.bv_string);
+
+		n = _prop_bp_put_uniq(be, &be->ec_str_tree, &be->ec_str_list,
+		    &uv);
+		break;
+
+	case PROP_TYPE_NUMBER:
+		uv.bv_number = po;
+		n = _prop_bp_put_uniq(be, &be->ec_num_tree, &be->ec_num_list,
+		    &uv);
+		break;
+
+	case PROP_TYPE_DICTIONARY:
+		/* Make sure dict doesn't mutate or die under our hands. */
+		_prop_dictionary_rdlock(po);
+
+		empty = (prop_dictionary_count(po) == 0);
+		if (empty && be->ec_empty_dict != UINT_MAX) {
+			n = be->ec_empty_dict;
+			break;
+		}
+
+		n = _prop_bp_put_table(be, &be->ec_compounds, po);
+		if (n == UINT_MAX)
+			_prop_dictionary_unlock(po);
+
+		if (empty)
+			be->ec_empty_dict = n;
+		break;
+
+	case PROP_TYPE_ARRAY:
+		/* Make sure array doesn't mutate or die under our hands. */
+		_prop_array_rdlock(po);
+
+		empty = (prop_array_count(po) == 0);
+		if (empty && be->ec_empty_array != UINT_MAX) {
+			n = be->ec_empty_array;
+			break;
+		}
+
+		n = _prop_bp_put_table(be, &be->ec_compounds, po);
+		if (n == UINT_MAX)
+			_prop_array_unlock(po);
+
+		if (empty)
+			be->ec_empty_array = n;
+		break;
+
+	case PROP_TYPE_BOOL:
+		yesno = prop_bool_true(po);
+
+		if (be->ec_true != UINT_MAX && yesno) {
+			n = be->ec_true;
+			break;
+		}
+		if (be->ec_false != UINT_MAX && !yesno) {
+			n = be->ec_false;
+			break;
+		}
+			
+		n = _prop_bp_put_table(be, &be->ec_others, po);
+
+		if (yesno)
+			be->ec_true = n;
+		else
+			be->ec_false = n;
+		break;
+
+	case PROP_TYPE_DATA:
+		n = _prop_bp_put_table(be, &be->ec_others, po);
+		break;
+
+	case PROP_TYPE_UNKNOWN:
+		/* gcc */
+		break;
+	}
+
+	if (n == UINT_MAX)
+		return (false);
+
+	bo->bo_reftab[np] = n;
+	return (true);
+}
+
+/*
+ * Externalizer encoder utility routines.
+ */
+
+static uint8_t *
+_prop_bp_write_byte(uint8_t *obj, uint8_t val)
+{
+	*obj = val;
+
+	return (obj + 1);
+}
+
+static uint8_t *
+_prop_bp_write_number(uint8_t *obj, u_int val)
+{
+	uint8_t lo = _prop_bp_number_logsize(val);
+	int i;
+
+	/* Write object tag. */
+	obj = _prop_bp_write_byte(obj, BPLIST_TYPE_UINT | lo);
+
+	/* Write big-endian value. */
+	for (i = 8*((1 << lo) - 1); i >= 0; i -= 8)
+		obj = _prop_bp_write_byte(obj, val >> i);
+
+	return (obj);
+}
+
+static uint8_t *
+_prop_bp_write_reference(_prop_bp_extern_t be, uint8_t *obj, u_int val)
+{
+	int i;
+
+	_PROP_ASSERT(val < be->ec_index_next);
+
+	/* Write big-endian value. */
+	for (i = 8*(be->ec_objref_width - 1); i >= 0; i -= 8)
+		obj = _prop_bp_write_byte(obj, val >> i);
+
+	return (obj);
+}
+
+static void
+_prop_bp_write_offset(_prop_bp_extern_t be, uint8_t *offtab,
+    u_int idx, u_int offs)
+{
+	uint8_t *obj = (offtab + idx * be->ec_offtab_width);
+	int i;
+
+	/* Write big-endian value. */
+	for (i = 8*(be->ec_offtab_width - 1); i >= 0; i -= 8)
+		obj = _prop_bp_write_byte(obj, offs >> i);
+}
+
+static bool
+_prop_bp_write_offtab(_prop_bp_extern_t be)
+{
+	_prop_bp_uniq_node_t uo;
+	_prop_bp_object_t bo;
+	uint8_t *offtab;
+	u_int size = (be->ec_offtab_width * be->ec_index_next);
+	u_int i;
+
+	offtab = _prop_bp_ensure_capacity(be, size);
+	if (offtab == NULL)
+		return (false);
+
+	for (i = 0; i < be->ec_compounds.bt_next; i++) {
+		bo = &be->ec_compounds.bt_objects[i];
+
+		_prop_bp_write_offset(be, offtab, bo->bo_index, bo->bo_offset);
+	}
+
+	for (i = 0; i < be->ec_others.bt_next; i++) {
+		bo = &be->ec_others.bt_objects[i];
+
+		_prop_bp_write_offset(be, offtab, bo->bo_index, bo->bo_offset);
+	}
+
+	SLIST_FOREACH(uo, &be->ec_num_list, bu_link)
+		_prop_bp_write_offset(be, offtab, uo->bu_index, uo->bu_offset);
+
+	SLIST_FOREACH(uo, &be->ec_str_list, bu_link)
+		_prop_bp_write_offset(be, offtab, uo->bu_index, uo->bu_offset);
+
+	return (true);
+}
+
+static uint8_t *
+_prop_bp_write_wide(uint8_t *obj, u_int val)
+{
+	be64enc(obj, val);
+
+	return (obj + 8);
+}
+
+static bool
+_prop_bp_write_trailer(_prop_bp_extern_t be)
+{
+	uint8_t *trailer;
+
+	trailer = _prop_bp_ensure_capacity(be, BPLIST_TRAILER_LEN);
+	if (trailer == NULL)
+		return (false);
+
+	/* Write trailer, note we always have toplevel object at index 0. */
+	trailer = _prop_bp_write_byte(trailer, be->ec_offtab_width);
+	trailer = _prop_bp_write_byte(trailer, be->ec_objref_width);
+	trailer = _prop_bp_write_wide(trailer, be->ec_index_next);
+	trailer = _prop_bp_write_wide(trailer, 0);
+	trailer = _prop_bp_write_wide(trailer, be->ec_offtab_start);
+
+	return (true);
+}
+
+/*
+ * Externalize object encoders.
+ */
+
+static uint8_t *
+_prop_bp_encode_bool(_prop_bp_extern_t be, prop_bool_t pb)
+{
+	uint8_t *obj;
+
+	obj = _prop_bp_ensure_capacity(be, 1);
+	if (obj == NULL)
+		return (false);
+
+	if (prop_bool_true(pb))
+		obj = _prop_bp_write_byte(obj, BPLIST_MULTI_TRUE);
+	else
+		obj = _prop_bp_write_byte(obj, BPLIST_MULTI_FALSE);
+
+	return (obj);
+}
+
+static uint8_t *
+_prop_bp_encode_number(_prop_bp_extern_t be, _prop_bp_uniq_value_t uv)
+{
+	uint64_t big;
+	uint8_t *obj;
+	uint8_t tag;
+	uint8_t low;
+	int i;
+
+	if (prop_number_unsigned(uv->bv_number)) {
+		big = prop_number_unsigned_integer_value(uv->bv_number);
+		low = _prop_bp_number_logsize(big);
+		tag = (low | BPLIST_TYPE_UINT);
+	} else {
+		big = prop_number_integer_value(uv->bv_number);
+		low = _prop_bp_number_logsize(big);
+		tag = (low | BPLIST_TYPE_SINT);
+	}
+
+	obj = _prop_bp_ensure_capacity(be, BPLIST_NUMBER_MAXLEN);
+	if (obj == NULL)
+		return (NULL);
+
+	/* Write object tag. */
+	obj = _prop_bp_write_byte(obj, tag);
+
+	/* Write big-endian value. */
+	for (i = 8*((1 << low) - 1); i >= 0; i -= 8)
+		obj = _prop_bp_write_byte(obj, (uint8_t)(big >> i));
+
+	return (obj);
+}
+
+static uint8_t *
+_prop_bp_encode_data(_prop_bp_extern_t be, prop_data_t pd)
+{
+	uint8_t *obj;
+	size_t size = prop_data_size(pd);
+	uint8_t lo;
+
+	if (size < BPLIST_COUNT_MANY)
+		lo = size;
+	else
+		lo = BPLIST_COUNT_MANY;
+
+	obj = _prop_bp_ensure_capacity(be, 1 + BPLIST_NUMBER_MAXLEN + size);
+	if (obj == NULL)
+		return (NULL);
+
+	/* Write type tag. */
+	obj = _prop_bp_write_byte(obj, BPLIST_TYPE_DATA | lo);
+
+	/* Possibly followed by integer size. */
+	if (lo == BPLIST_COUNT_MANY)
+		obj = _prop_bp_write_number(obj, size);
+
+	/* Write byte array. */
+	memcpy(obj, prop_data_data_nocopy(pd), size);
+	return (obj + size);
+}
+
+static uint8_t *
+_prop_bp_encode_string(_prop_bp_extern_t be, _prop_bp_uniq_value_t uv)
+{
+	uint8_t *obj;
+	size_t size = strlen(uv->bv_string);
+	uint8_t lo;
+
+	if (size < BPLIST_COUNT_MANY)
+		lo = size;
+	else
+		lo = BPLIST_COUNT_MANY;
+
+	obj = _prop_bp_ensure_capacity(be, 1 + BPLIST_NUMBER_MAXLEN + size);
+	if (obj == NULL)
+		return (NULL);
+
+	/* Write type tag. */
+	obj = _prop_bp_write_byte(obj, BPLIST_TYPE_ASCII | lo);
+
+	/* Possibly followed by integer size. */
+	if (lo == BPLIST_COUNT_MANY)
+		obj = _prop_bp_write_number(obj, size);
+
+	/* Write character array. */
+	memcpy(obj, uv->bv_string, size);
+	return (obj + size);
+}
+
+static uint8_t *
+_prop_bp_encode_array(_prop_bp_extern_t be, _prop_bp_object_t bo)
+{
+	prop_array_t pa = bo->bo_object;
+	uint8_t *obj;
+	uint8_t lo;
+	u_int count;
+	u_int i;
+
+	count = prop_array_count(pa);
+	if (count < BPLIST_COUNT_MANY)
+		lo = count;
+	else
+		lo = BPLIST_COUNT_MANY;
+
+	obj = _prop_bp_ensure_capacity(be, 1 + BPLIST_NUMBER_MAXLEN +
+	    count * be->ec_objref_width);
+	if (obj == NULL)
+		return (NULL);
+
+	/* Write type tag. */
+	obj = _prop_bp_write_byte(obj, BPLIST_TYPE_ARRAY | lo);
+
+	/* For empty array, we're done. */
+	if (count == 0)
+		return (obj);
+
+	/* Possibly followed by integer count. */
+	if (lo == BPLIST_COUNT_MANY)
+		obj = _prop_bp_write_number(obj, count);
+
+	/* Write object reference table. */
+	for (i = 0; i < count; i++)
+		obj = _prop_bp_write_reference(be, obj, bo->bo_reftab[i]);
+
+	return (obj);
+}
+
+static uint8_t *
+_prop_bp_encode_dict(_prop_bp_extern_t be, _prop_bp_object_t bo)
+{
+	prop_dictionary_t pd = bo->bo_object;
+	uint8_t *obj;
+	uint8_t lo;
+	u_int count;
+	u_int i;
+
+	count = prop_dictionary_count(pd);
+	if (count < BPLIST_COUNT_MANY)
+		lo = count;
+	else
+		lo = BPLIST_COUNT_MANY;
+
+	obj = _prop_bp_ensure_capacity(be, 1 + BPLIST_NUMBER_MAXLEN +
+	    2 * count * be->ec_objref_width);
+	if (obj == NULL)
+		return (NULL);
+
+	/* Write type tag. */
+	obj = _prop_bp_write_byte(obj, BPLIST_TYPE_DICT | lo);
+
+	/* For empty dictionary, we're done. */
+	if (count == 0)
+		return (obj);
+
+	/* Possibly followed by integer count. */
+	if (lo == BPLIST_COUNT_MANY)
+		obj = _prop_bp_write_number(obj, count);
+
+	/* Write out <keyref, objref> pairs. */
+	count *= 2;
+	for (i = 0; i < count; i += 2) {
+		obj = _prop_bp_write_reference(be, obj, bo->bo_reftab[i]);
+		obj = _prop_bp_write_reference(be, obj, bo->bo_reftab[i + 1]);
+	}
+
+	return (obj);
+}
+
+static bool
+_prop_bp_encode(_prop_bp_extern_t be)
+{
+	_prop_bp_uniq_node_t uo;
+	_prop_bp_object_t bo;
+	prop_object_t po;
+	uint8_t *end;
+	u_int i;
+
+	/* Encode all arrays and dicts. */
+	for (i = 0; i < be->ec_compounds.bt_next; i++) {
+		bo = &be->ec_compounds.bt_objects[i];
+
+		/* Remember offset where object starts. */
+		bo->bo_offset = be->ec_extern_next;
+
+		if (prop_object_type(bo->bo_object) == PROP_TYPE_ARRAY)
+			end = _prop_bp_encode_array(be, bo);
+		else
+			end = _prop_bp_encode_dict(be, bo);
+		if (end == NULL)
+			return (false);
+
+		/* Adjust to real encoding length. */
+		be->ec_extern_next = (end - be->ec_extern_buffer);
+	}
+
+	/* Encode all booleans and data. */
+	for (i = 0; i < be->ec_others.bt_next; i++) {
+		bo = &be->ec_others.bt_objects[i];
+		po = bo->bo_object;
+
+		/* Remember offset where object starts. */
+		bo->bo_offset = be->ec_extern_next;
+
+		if (prop_object_type(po) == PROP_TYPE_BOOL)
+			end = _prop_bp_encode_bool(be, po);
+		else
+			end = _prop_bp_encode_data(be, po);
+		if (end == NULL)
+			return (false);
+
+		/* Adjust to real encoding length. */
+		be->ec_extern_next = (end - be->ec_extern_buffer);
+	}
+
+	/* Encode all numbers. */
+	SLIST_FOREACH(uo, &be->ec_num_list, bu_link) {
+		/* Remember offset where object starts. */
+		uo->bu_offset = be->ec_extern_next;
+
+		end = _prop_bp_encode_number(be, &uo->bu_value);
+		if (end == NULL)
+			return (false);
+
+		/* Adjust to real encoding length. */
+		be->ec_extern_next = (end - be->ec_extern_buffer);
+	}
+
+	/* Encode all strings. */
+	SLIST_FOREACH(uo, &be->ec_str_list, bu_link) {
+		/* Remember offset where object starts. */
+		uo->bu_offset = be->ec_extern_next;
+
+		end = _prop_bp_encode_string(be, &uo->bu_value);
+		if (end == NULL)
+			return (false);
+
+		/* Adjust to real encoding length. */
+		be->ec_extern_next = (end - be->ec_extern_buffer);
+	}
+
+	return (true);
+}
+
+/*
+ * Externalizer toplevel routines.
+ */
+
+static void
+_prop_bp_unlock_compounds(_prop_bp_table_t compounds)
+{
+	prop_object_t compound;
+	u_int i;
+
+	/* Unlock all compounds, in reverse order (Note 'i' unsigned). */
+	for (i = compounds->bt_next; i > 0; i--) {
+		compound = compounds->bt_objects[i - 1].bo_object;
+
+		if (prop_object_type(compound) == PROP_TYPE_DICTIONARY)
+			_prop_dictionary_unlock(compound);
+		else
+			_prop_array_unlock(compound);
+	}
+}
+
+static bool
+_prop_bp_unpack_array(_prop_bp_extern_t be, _prop_bp_object_t bo,
+    prop_array_t pa)
+{
+	prop_object_iterator_t it;
+	prop_object_t po;
+	size_t size;
+	u_int count;
+	u_int j;
+
+	count = prop_array_count(pa);
+	if (count > 0) {
+		size = (count * sizeof(u_int));
+
+		bo->bo_reftab = _PROP_MALLOC(size, M_TEMP);
+		if (bo->bo_reftab == NULL)
+			return (false);
+	} else {
+		bo->bo_reftab = NULL;
+		return (true);
+	}
+
+	it = prop_array_iterator(pa);
+	if (it == NULL) {
+		_prop_array_unlock(pa);
+		return (false);
+	}
+	j = 0;
+
+	/* Register contents, possibly mutating compounds' bt_next. */
+	while ((po = prop_object_iterator_next(it)) != NULL)
+		if (! _prop_bp_uniquify(be, bo, po, j++)) {
+			prop_object_iterator_release(it);
+			_prop_array_unlock(pa);
+			return (false);
+		}
+
+	prop_object_iterator_release(it);
+	return (true);
+}
+
+static bool
+_prop_bp_unpack_dict(_prop_bp_extern_t be, _prop_bp_object_t bo,
+    prop_dictionary_t pd)
+{
+	prop_object_iterator_t it;
+	prop_object_t po;
+	size_t size;
+	u_int count;
+	u_int j;
+
+	count = (2 * prop_dictionary_count(pd));
+	if (count > 0) {
+		size = (count * sizeof(u_int));
+		bo->bo_reftab = _PROP_MALLOC(size, M_TEMP);
+		if (bo->bo_reftab == NULL)
+			return (false);
+	} else {
+		bo->bo_reftab = NULL;
+		return (true);
+	}
+
+	it = prop_dictionary_iterator(pd);
+	if (it == NULL) {
+		_prop_dictionary_unlock(pd);
+		return (false);
+	}
+	j = 0;
+
+	/* Register contents, possibly mutating compounds' bt_next. */
+	while ((po = prop_object_iterator_next(it)) != NULL) {
+		/* Store keysym at odd index. */
+		if (! _prop_bp_uniquify(be, bo, po, j++)) {
+			prop_object_iterator_release(it);
+			_prop_dictionary_unlock(pd);
+			return (false);
+		}
+
+		/* Store keysym's value at even index. */
+		po = prop_dictionary_get_keysym(pd, po);
+
+		if (! _prop_bp_uniquify(be, bo, po, j++)) {
+			prop_object_iterator_release(it);
+			_prop_dictionary_unlock(pd);
+			return (false);
+		}
+	}
+
+	prop_object_iterator_release(it);
+	return (true);
+}
+
+static bool
+_prop_bp_externalize(_prop_bp_extern_t be)
+{
+	_prop_bp_object_t bo;
+	prop_object_t po;
+	u_int i;
+	bool ok;
+
+	/* Build object tables, obtaining readlock on any compound. */
+	for (i = 0; i < be->ec_compounds.bt_next; i++) {
+		bo = &be->ec_compounds.bt_objects[i];
+		po = bo->bo_object;
+
+		if (prop_object_type(po) == PROP_TYPE_DICTIONARY) {
+			_prop_dictionary_rdlock(po);
+			ok = _prop_bp_unpack_dict(be, bo, po);
+		} else {
+			_prop_array_rdlock(po);
+			ok = _prop_bp_unpack_array(be, bo, po);
+		}
+		if (! ok) {
+			_prop_bp_unlock_compounds(&be->ec_compounds);
+			return (false);
+		}
+	}
+
+	/* Calculate object reference width. */
+	be->ec_objref_width = _prop_bp_number_size(be->ec_index_next);
+
+	/* Encode header. */
+	memcpy(be->ec_extern_buffer, "bplistZZ", BPLIST_HEADER_LEN);
+	be->ec_extern_next = BPLIST_HEADER_LEN;
+
+	_PROP_ASSERT(be);
+	/* Encode object table, fills object offsets. */
+	if (! _prop_bp_encode(be)) {
+		_prop_bp_unlock_compounds(&be->ec_compounds);
+		return (false);
+	}
+
+	/* We won't touch objects any more, release locks. */
+	_prop_bp_unlock_compounds(&be->ec_compounds);
+
+	/* Calculate offset table width. */
+	be->ec_offtab_width = _prop_bp_number_size(be->ec_extern_next);
+
+	/* Emit offset table. */
+	be->ec_offtab_start = be->ec_extern_next;
+
+	if (! _prop_bp_write_offtab(be))
+		return (false);
+
+	/* Emit trailer structure. */
+	if (! _prop_bp_write_trailer(be))
+		return (false);
+
+	return (true);
+}
+
+/*
+ * Internal API to encoding dispatcher.
+ */
+
+bool
+_prop_bp_externalize_object(prop_object_t po, prop_type_t type, uint8_t **dp,
+    size_t *lp)
+{
+	_prop_bp_extern_t be;
+	bool rv;
+
+	if (prop_object_type(po) != type || dp == NULL || lp == NULL)
+		return (false);
+
+	be = _prop_bp_extern_init(po);
+	if (be == NULL)
+		return (false);
+
+	rv = _prop_bp_externalize(be);
+	if (rv) {
+		*dp = be->ec_extern_buffer;
+		*lp = be->ec_extern_next;
+	} else {
+		_PROP_FREE(be->ec_extern_buffer, M_TEMP);
+	}
+
+	_prop_bp_extern_free(be);
+	return (rv);
+}
Index: common/lib/libprop/prop_dictionary.3
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_dictionary.3,v
retrieving revision 1.9
diff -d -p -u -u -r1.9 prop_dictionary.3
--- common/lib/libprop/prop_dictionary.3	11 Oct 2007 03:10:28 -0000	1.9
+++ common/lib/libprop/prop_dictionary.3	27 Oct 2007 15:47:15 -0000
@@ -57,8 +57,9 @@
 .Nm prop_dictionary_set_keysym ,
 .Nm prop_dictionary_remove_keysym ,
 .Nm prop_dictionary_externalize ,
+.Nm prop_dictionary_externalize_with_encoding ,
 .Nm prop_dictionary_internalize ,
-.Nm prop_dictionary_externalize_to_file ,
+.Nm prop_dictionary_externalize_to_file_with_encoding ,
 .Nm prop_dictionary_internalize_from_file ,
 .Nm prop_dictionary_equals ,
 .Nm prop_dictionary_keysym_cstring_nocopy ,
@@ -68,7 +69,6 @@
 .Lb libprop
 .Sh SYNOPSIS
 .In prop/proplib.h
-.\"
 .Ft prop_dictionary_t
 .Fn prop_dictionary_create "void"
 .Ft prop_dictionary_t
@@ -127,12 +127,18 @@
 .\"
 .Ft char *
 .Fn prop_dictionary_externalize "prop_dictionary_t dict"
+.Ft bool
+.Fn prop_dictionary_externalize_with_encoding "prop_dictionary_t dict" \
+    "uint8_t **bufp" "size_t *len" "prop_encoding_t enc"
 .Ft prop_dictionary_t
-.Fn prop_dictionary_internalize "const char *xml"
+.Fn prop_dictionary_internalize "const uint8_t *buf" "size_t len"
 .\"
 .Ft bool
 .Fn prop_dictionary_externalize_to_file "prop_dictionary_t dict" \
     "const char *path"
+.Ft bool
+.Fn prop_dictionary_externalize_to_file_with_encoding "prop_dictionary_t dict" \
+    "const char *path" "prop_encoding_t enc"
 .Ft prop_dictionary_t
 .Fn prop_dictionary_internalize_from_file "const char *path"
 .\"
@@ -282,17 +288,42 @@ In the kernel, the buffer is allocated u
 .Xr malloc 9
 using the malloc type
 .Dv M_TEMP .
-.It Fn prop_dictionary_internalize "const char *xml"
-Parse the XML representation of a property list in the NUL-terminated
-buffer
-.Fa xml
+.It Fn prop_dictionary_externalize_with_encoding "prop_dictionary_t dict" \
+    "uint8_t **bufp" "size_t *lenp" "prop_encoding_t enc"
+Externalize
+.Fa dict
+using encoding
+.Fa enc .
+Returs
+.Dv true
+on success, in which case
+.Fa bufp
+and
+.Fa lenp
+arguments are filled with buffer address and length. On failure,
+.Dv false
+is returned and arguments are not modified.
+.Pp
+In user space, the buffer is allocated using
+.Xr malloc 3 .
+In the kernel, the buffer is allocated using
+.Xr malloc 9
+using the malloc type
+.Dv M_TEMP .
+The user is responsible for freeing the buffer.
+.It Fn prop_dictionary_internalize "const uint8_t *buf" "size_t len"
+Parse any supported representation of a property list in buffer
+.Fa buf
+of length
+.Fa len
 and return the corresponding dictionary.
 Returns
 .Dv NULL
 if parsing fails for any reason.
 .It Fn prop_dictionary_externalize_to_file "prop_dictionary_t dict" \
     "const char *path"
-Externalizes a dictionary and writes it to the file specified by
+Externalizes a dictionary in default encoding and writes it to the file
+specified by
 .Fa path .
 The file is saved with the mode
 .Dv 0666
@@ -302,10 +333,19 @@ and is written atomically.
 Returns
 .Dv false
 if externalizing or writing the dictionary fails for any reason.
+.It Fn prop_dictionary_externalize_to_file_with_encoding \
+    "prop_dictionary_t dict" "const char *path" "prop_encoding_t enc"
+Like
+.Xr prop_dictionary_externalize_to_file 3
+but uses encoding
+.Fa enc .
 .It Fn prop_dictionary_internalize_from_file "const char *path"
-Reads the XML property list contained in the file specified by
+Reads any supported encoding of property list contained in the file specified
+by
 .Fa path ,
-internalizes it, and returns the corresponding array.
+internalizes it, and returns the corresponding dictionary. Returns
+.Dv NULL
+if reading or parsing fails for any reason.
 .El
 .Sh SEE ALSO
 .Xr prop_array 3 ,
Index: common/lib/libprop/prop_dictionary.c
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_dictionary.c,v
retrieving revision 1.20
diff -d -p -u -u -r1.20 prop_dictionary.c
--- common/lib/libprop/prop_dictionary.c	30 Aug 2007 12:23:54 -0000	1.20
+++ common/lib/libprop/prop_dictionary.c	27 Oct 2007 15:47:16 -0000
@@ -158,6 +158,28 @@ struct _prop_dictionary_iterator {
 	unsigned int		pdi_index;
 };
 
+void
+_prop_dictionary_rdlock(prop_object_t po)
+{
+#if !defined(_STANDALONE)
+	prop_dictionary_t pd = po;
+
+	_PROP_ASSERT(prop_object_is_dictionary(pd));
+	_PROP_RWLOCK_RDLOCK(pd->pd_rwlock);
+#endif
+}
+
+void
+_prop_dictionary_unlock(prop_object_t po)
+{
+#if !defined(_STANDALONE)
+	prop_dictionary_t pd = po;
+
+	_PROP_ASSERT(prop_object_is_dictionary(pd));
+	_PROP_RWLOCK_UNLOCK(pd->pd_rwlock);
+#endif
+}
+
 /*
  * Dictionary key symbols are immutable, and we are likely to have many
  * duplicated key symbols.  So, to save memory, we unique'ify key symbols
@@ -1100,21 +1122,15 @@ prop_dictionary_keysym_equals(prop_dicti
 	return (prop_object_equals(pdk1, pdk2));
 }
 
-/*
- * prop_dictionary_externalize --
- *	Externalize a dictionary, returning a NUL-terminated buffer
- *	containing the XML-style representation.  The buffer is allocated
- *	with the M_TEMP memory type.
- */
-char *
-prop_dictionary_externalize(prop_dictionary_t pd)
+static bool
+_prop_dictionary_xml_externalize(prop_dictionary_t pd, uint8_t **bufp,
+    size_t *lenp)
 {
 	struct _prop_object_externalize_context *ctx;
-	char *cp;
 
 	ctx = _prop_object_externalize_context_alloc();
 	if (ctx == NULL)
-		return (NULL);
+		return (false);
 
 	if (_prop_object_externalize_header(ctx) == false ||
 	    (*pd->pd_obj.po_type->pot_extern)(ctx, pd) == false ||
@@ -1122,13 +1138,61 @@ prop_dictionary_externalize(prop_diction
 		/* We are responsible for releasing the buffer. */
 		_PROP_FREE(ctx->poec_buf, M_TEMP);
 		_prop_object_externalize_context_free(ctx);
-		return (NULL);
+		return (false);
 	}
 
-	cp = ctx->poec_buf;
+	*bufp = (uint8_t *)ctx->poec_buf;
+	*lenp = ctx->poec_len;
 	_prop_object_externalize_context_free(ctx);
 
-	return (cp);
+	return (true);
+}
+
+/*
+ * prop_dictionary_externalize --
+ * 	Like prop_dictionary_externalize_with_encoding(), using XML.
+ */
+char *
+prop_dictionary_externalize(prop_dictionary_t pd)
+{
+	uint8_t *buf;
+	size_t len;
+
+	if (! prop_dictionary_externalize_with_encoding(pd, &buf, &len,
+	    PROP_ENCODING_XML))
+		return (NULL);
+
+	return ((char *)buf);
+}
+
+/*
+ * prop_dictionary_externalize_with_encoding --
+ *	Externalize a dictionary, on success return true and fill buffer
+ * 	pointer and length arguments; on failure return false and don't
+ * 	modify arguments. The buffer is allocated with the M_TEMP memory
+ * 	type.
+ */
+bool
+prop_dictionary_externalize_with_encoding(prop_dictionary_t pd, uint8_t **bufp,
+    size_t *lenp, prop_encoding_t enc)
+{
+	_PROP_ASSERT(bufp != NULL && lenp != NULL);
+
+	if (! prop_object_is_dictionary(pd))
+		return (false);
+
+	switch (enc) {
+	case PROP_ENCODING_BINARY:
+		return (_prop_bp_externalize_object(pd, PROP_TYPE_DICTIONARY,
+		    bufp, lenp));
+
+	case PROP_ENCODING_DEFAULT:
+	case PROP_ENCODING_XML:
+		return (_prop_dictionary_xml_externalize(pd, bufp, lenp));
+	}
+
+	/* LINTED silly gcc */
+	return (false);
 }
 
 /*
@@ -1267,40 +1331,62 @@ _prop_dictionary_internalize_body(prop_s
 
 /*
  * prop_dictionary_internalize --
- *	Create a dictionary by parsing the NUL-terminated XML-style
- *	representation.
+ *	Create a dictionary by decoding any supported representation.
  */
 prop_dictionary_t
-prop_dictionary_internalize(const char *xml)
+prop_dictionary_internalize(const uint8_t *buf, size_t len)
 {
-	return _prop_generic_internalize(xml, "dict");
+	_PROP_ASSERT(buf != NULL && len > 0);
+
+	switch (buf[0]) {
+	case '<':
+		return (_prop_generic_internalize((const char *)buf, "dict"));
+
+	case 'b':
+		return (_prop_bp_internalize(buf, len, PROP_TYPE_DICTIONARY));
+	}
+
+	return (NULL);
 }
 
 #if !defined(_KERNEL) && !defined(_STANDALONE)
+bool
+prop_dictionary_externalize_to_file(prop_dictionary_t dict, const char *fname)
+{
+	return (prop_dictionary_externalize_to_file_with_encoding(dict,
+	    fname, PROP_ENCODING_DEFAULT));
+}
+
 /*
  * prop_dictionary_externalize_to_file --
- *	Externalize a dictionary to the specified file.
+ *	Externalize a dictionary to the specified file in XML format.
  */
 bool
-prop_dictionary_externalize_to_file(prop_dictionary_t dict, const char *fname)
+prop_dictionary_externalize_to_file_with_encoding(prop_dictionary_t dict,
+    const char *fname, prop_encoding_t enc)
 {
-	char *xml;
+	uint8_t *buf;
+	size_t len;
 	bool rv;
 	int save_errno = 0;	/* XXXGCC -Wuninitialized [mips, ...] */
 
-	xml = prop_dictionary_externalize(dict);
-	if (xml == NULL)
+	if (! prop_dictionary_externalize_with_encoding(dict, &buf, &len,
+	    enc)) {
+		errno = EINVAL;
 		return (false);
-	rv = _prop_object_externalize_write_file(fname, xml, strlen(xml));
+	}
+
+	rv = _prop_object_externalize_write_file(fname, buf, len);
 	if (rv == false)
 		save_errno = errno;
-	_PROP_FREE(xml, M_TEMP);
+	_PROP_FREE(buf, M_TEMP);
 	if (rv == false)
 		errno = save_errno;
 
 	return (rv);
 }
 
+
 /*
  * prop_dictionary_internalize_from_file --
  *	Internalize a dictionary from a file.
@@ -1314,7 +1400,8 @@ prop_dictionary_internalize_from_file(co
 	mf = _prop_object_internalize_map_file(fname);
 	if (mf == NULL)
 		return (NULL);
-	dict = prop_dictionary_internalize(mf->poimf_xml);
+
+	dict = prop_dictionary_internalize(mf->poimf_data, mf->poimf_datasize);
 	_prop_object_internalize_unmap_file(mf);
 
 	return (dict);
Index: common/lib/libprop/prop_kern.c
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_kern.c,v
retrieving revision 1.8
diff -d -p -u -u -r1.8 prop_kern.c
--- common/lib/libprop/prop_kern.c	16 Aug 2007 21:44:07 -0000	1.8
+++ common/lib/libprop/prop_kern.c	27 Oct 2007 15:47:16 -0000
@@ -125,13 +125,13 @@ _prop_object_unpack_pref(const struct pl
 			 prop_object_t *objp)
 {
 	prop_object_t obj = NULL;
-	char *buf;
+	uint8_t *buf;
 	int error = 0;
 
 	if (pref->pref_len == 0) {
 		/*
-		 * This should never happen; we should always get the XML
-		 * for an empty dictionary if it's really empty.
+		 * This should never happen; even empty objects encode
+		 * on nonzero bytes.
 		 */
 		error = EIO;
 		goto out;
@@ -140,10 +140,10 @@ _prop_object_unpack_pref(const struct pl
 		buf[pref->pref_len - 1] = '\0';	/* extra insurance */
 		switch (type) {
 		case PROP_TYPE_DICTIONARY:
-			obj = prop_dictionary_internalize(buf);
+			obj = prop_dictionary_internalize(buf, pref->pref_len);
 			break;
 		case PROP_TYPE_ARRAY:
-			obj = prop_array_internalize(buf);
+			obj = prop_array_internalize(buf, pref->pref_len);
 			break;
 		default:
 			error = ENOTSUP;
Index: common/lib/libprop/prop_number.c
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_number.c,v
retrieving revision 1.14
diff -d -p -u -u -r1.14 prop_number.c
--- common/lib/libprop/prop_number.c	30 Aug 2007 12:23:54 -0000	1.14
+++ common/lib/libprop/prop_number.c	27 Oct 2007 15:47:16 -0000
@@ -450,6 +450,20 @@ prop_number_equals(prop_number_t num1, p
 }
 
 /*
+ * prop_number_compare --
+ * 	Return positive value when pn1 > pn2, zero when pn1 == pn2, negative
+ * 	value when pn1 < pn2.
+ */
+int
+prop_number_compare(prop_number_t pn1, prop_number_t pn2)
+{
+	_PROP_ASSERT(prop_object_is_number(pn1) && prop_object_is_number(pn2));
+
+	return (_prop_number_compare_values(&pn1->pn_value, &pn2->pn_value));
+}
+
+
+/*
  * prop_number_equals_integer --
  *	Return true if the number is equivalent to the specified integer.
  */
Index: common/lib/libprop/prop_object.3
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_object.3,v
retrieving revision 1.6
diff -d -p -u -u -r1.6 prop_object.3
--- common/lib/libprop/prop_object.3	16 Aug 2007 16:31:00 -0000	1.6
+++ common/lib/libprop/prop_object.3	27 Oct 2007 15:47:16 -0000
@@ -132,6 +132,23 @@ by the iterator
 Release the iterator
 .Fa iter .
 .El
+.Pp
+The library supports external representations described by
+.Dv prop_encoding_t
+enumeration type:
+.Pp
+.Bl -tag -width "PROP_ENCODING_DEFAULT" -compact
+.It Dv PROP_ENCODING_XML
+XML conforming to Apple DTD. Stored in C strings.
+.It Dv PROP_ENCODING_BINARY
+Derived from Apple "bplist" format. Stored in raw byte arrays.
+.It Dv PROP_ENCODING_DEFAULT
+Any of the above depending on implementation.
+.El
+.Pp
+Refer to
+.Xr proplib 3
+for notes on encoding compatibility.
 .Sh SEE ALSO
 .Xr prop_array 3 ,
 .Xr prop_bool 3 ,
@@ -145,3 +162,6 @@ The
 .Nm proplib
 property container object library first appeared in
 .Nx 4.0 .
+.Pp
+Support for binary external format first appeared in
+.Nx 5.0 .
Index: common/lib/libprop/prop_object.c
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_object.c,v
retrieving revision 1.17
diff -d -p -u -u -r1.17 prop_object.c
--- common/lib/libprop/prop_object.c	30 Aug 2007 19:12:32 -0000	1.17
+++ common/lib/libprop/prop_object.c	27 Oct 2007 15:47:16 -0000
@@ -841,7 +841,7 @@ _prop_object_externalize_file_dirname(co
  *	and the mode set to 0666 modified by the caller's umask.
  */
 bool
-_prop_object_externalize_write_file(const char *fname, const char *xml,
+_prop_object_externalize_write_file(const char *fname, const uint8_t *buf,
     size_t len)
 {
 	char tname[PATH_MAX];
@@ -874,7 +874,7 @@ _prop_object_externalize_write_file(cons
 		return (false);
 	}
 
-	if (write(fd, xml, len) != (ssize_t)len)
+	if (write(fd, buf, len) != (ssize_t)len)
 		goto bad;
 
 	if (fsync(fd) == -1)
@@ -926,8 +926,10 @@ _prop_object_internalize_map_file(const 
 		_PROP_FREE(mf, M_TEMP);
 		return (NULL);
 	}
+	mf->poimf_datasize = (size_t)sb.st_size;
 	mf->poimf_mapsize = ((size_t)sb.st_size + pgmask) & ~pgmask;
-	if (mf->poimf_mapsize < sb.st_size) {
+	if (mf->poimf_mapsize < mf->poimf_datasize ||
+	    mf->poimf_datasize == 0) {
 		(void) close(fd);
 		_PROP_FREE(mf, M_TEMP);
 		return (NULL);
@@ -941,22 +943,22 @@ _prop_object_internalize_map_file(const 
 	if ((sb.st_size & pgmask) == 0)
 		need_guard = true;
 
-	mf->poimf_xml = mmap(NULL, need_guard ? mf->poimf_mapsize + pgsize
+	mf->poimf_data = mmap(NULL, need_guard ? mf->poimf_mapsize + pgsize
 			    		      : mf->poimf_mapsize,
 			    PROT_READ, MAP_FILE|MAP_SHARED, fd, (off_t)0);
 	(void) close(fd);
-	if (mf->poimf_xml == MAP_FAILED) {
+	if (mf->poimf_data == MAP_FAILED) {
 		_PROP_FREE(mf, M_TEMP);
 		return (NULL);
 	}
-	(void) madvise(mf->poimf_xml, mf->poimf_mapsize, MADV_SEQUENTIAL);
+	(void) madvise(mf->poimf_data, mf->poimf_mapsize, MADV_SEQUENTIAL);
 
 	if (need_guard) {
-		if (mmap(mf->poimf_xml + mf->poimf_mapsize,
+		if (mmap(mf->poimf_data + mf->poimf_mapsize,
 			 pgsize, PROT_READ,
 			 MAP_ANON|MAP_PRIVATE|MAP_FIXED, -1,
 			 (off_t)0) == MAP_FAILED) {
-			(void) munmap(mf->poimf_xml, mf->poimf_mapsize);
+			(void) munmap(mf->poimf_data, mf->poimf_mapsize);
 			_PROP_FREE(mf, M_TEMP);
 			return (NULL);
 		}
@@ -975,8 +977,8 @@ _prop_object_internalize_unmap_file(
     struct _prop_object_internalize_mapped_file *mf)
 {
 
-	(void) madvise(mf->poimf_xml, mf->poimf_mapsize, MADV_DONTNEED);
-	(void) munmap(mf->poimf_xml, mf->poimf_mapsize);
+	(void) madvise(mf->poimf_data, mf->poimf_mapsize, MADV_DONTNEED);
+	(void) munmap(mf->poimf_data, mf->poimf_mapsize);
 	_PROP_FREE(mf, M_TEMP);
 }
 #endif /* !_KERNEL && !_STANDALONE */
Index: common/lib/libprop/prop_object_impl.h
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/prop_object_impl.h,v
retrieving revision 1.18
diff -d -p -u -u -r1.18 prop_object_impl.h
--- common/lib/libprop/prop_object_impl.h	30 Aug 2007 12:23:54 -0000	1.18
+++ common/lib/libprop/prop_object_impl.h	27 Oct 2007 15:47:16 -0000
@@ -45,6 +45,7 @@
 #include <inttypes.h>
 #endif
 
+#include <prop/prop_object.h>
 #include "prop_stack.h"
 
 struct _prop_object_externalize_context {
@@ -155,11 +156,12 @@ void		_prop_object_internalize_context_f
 				struct _prop_object_internalize_context *);
 
 #if !defined(_KERNEL) && !defined(_STANDALONE)
-bool	_prop_object_externalize_write_file(const char *,
-						    const char *, size_t);
+bool	_prop_object_externalize_write_file(const char *, const uint8_t *,
+					    size_t);
 
 struct _prop_object_internalize_mapped_file {
-	char *	poimf_xml;
+	uint8_t *poimf_data;
+	size_t 	poimf_datasize;
 	size_t	poimf_mapsize;
 };
 
@@ -232,6 +234,17 @@ struct _prop_object_iterator {
 	uint32_t	pi_version;
 };
 
+/* Private APIs published by prop_{array,dictionary}.c */
+void 	_prop_dictionary_rdlock(prop_object_t);
+void 	_prop_dictionary_unlock(prop_object_t);
+void 	_prop_array_rdlock(prop_object_t);
+void 	_prop_array_unlock(prop_object_t);
+
+/* Private APIs publised by prop_bplist.c to encoding dispatchers. */
+prop_object_t 	_prop_bp_internalize(const uint8_t *, size_t, prop_type_t);
+bool 		_prop_bp_externalize_object(prop_object_t, prop_type_t,
+					    uint8_t **, size_t *);
+
 #if defined(_KERNEL)
 
 /*
@@ -395,4 +408,6 @@ void *		_prop_standalone_realloc(void *,
 #define	_PROP_ARG_UNUSED	/* delete */
 #endif /* __NetBSD__ */
 
+#define _PROP_UNCONST(a) 	((void *)(unsigned long)(const void *)(a))
+
 #endif /* _PROPLIB_PROP_OBJECT_IMPL_H_ */
Index: common/lib/libprop/proplib.3
===================================================================
RCS file: /cvsroot/src/common/lib/libprop/proplib.3,v
retrieving revision 1.4
diff -d -p -u -u -r1.4 proplib.3
--- common/lib/libprop/proplib.3	21 Jun 2007 12:02:31 -0000	1.4
+++ common/lib/libprop/proplib.3	27 Oct 2007 15:47:16 -0000
@@ -55,12 +55,14 @@ Structure is provided by the array and d
 .Pp
 Property lists can be passed across protection boundaries by translating
 them to an external representation.
-This external representation is an XML document whose format is described
-by the following DTD:
+This external representation is either an XML document whose format is
+described by the following DTD:
 .Bd -literal -offset indent
 http://www.apple.com/DTDs/PropertyList-1.0.dtd
 .Ed
 .Pp
+or a binary format based on Apple bplist encoding.
+.Pp
 Property container objects are reference counted.
 When an object is created, its reference count is set to 1.
 Any code that keeps a reference to an object, including the collection
@@ -142,3 +144,22 @@ in kernel, standalone, and user space en
 .Nm
 parser is not a real XML parser.
 It is hard-coded to parse only the property list external representation.
+.Pp
+The binary encoding differs from Apple bplist format in the following
+ways:
+.Bl -bullet
+.It
+NetBSD uses type marker 0x10 for unsigned integers while in Apple format,
+which doesn't really support unsigned integers, it is used to denote signed
+integers.
+.It
+NetBSD uses type marker 0x70 for signed integers while in Apple format
+it is reserved for future use.
+.It
+NetBSD encodes dictionary contents as <keyref objref>* while Apple uses
+<keyref* objref*>.
+.El
+.Pp
+Given the above incompatibilities, NetBSD binary plists are marked as
+version 'ZZ' of the format. Apple uses version '00' as of the time of
+this writing.
Index: distrib/sets/lists/comp/mi
===================================================================
RCS file: /cvsroot/src/distrib/sets/lists/comp/mi,v
retrieving revision 1.1071
diff -d -p -u -u -r1.1071 mi
--- distrib/sets/lists/comp/mi	7 Oct 2007 13:38:53 -0000	1.1071
+++ distrib/sets/lists/comp/mi	27 Oct 2007 15:47:21 -0000
@@ -5710,7 +5710,9 @@
 ./usr/share/man/cat3/prop_array_ensure_capacity.0 comp-c-catman		.cat
 ./usr/share/man/cat3/prop_array_equals.0	comp-c-catman		.cat
 ./usr/share/man/cat3/prop_array_externalize.0	comp-c-catman		.cat
+./usr/share/man/cat3/prop_array_externalize_with_encoding.0 comp-c-catman .cat
 ./usr/share/man/cat3/prop_array_externalize_to_file.0 comp-c-catman	.cat
+./usr/share/man/cat3/prop_array_externalize_to_file_with_encoding.0 comp-c-catman .cat
 ./usr/share/man/cat3/prop_array_get.0		comp-c-catman		.cat
 ./usr/share/man/cat3/prop_array_internalize.0	comp-c-catman		.cat
 ./usr/share/man/cat3/prop_array_internalize_from_file.0 comp-c-catman	.cat
@@ -5745,7 +5747,9 @@
 ./usr/share/man/cat3/prop_dictionary_ensure_capacity.0 comp-c-catman	.cat
 ./usr/share/man/cat3/prop_dictionary_equals.0	comp-c-catman		.cat
 ./usr/share/man/cat3/prop_dictionary_externalize.0 comp-c-catman	.cat
+./usr/share/man/cat3/prop_dictionary_externalize_with_encoding.0 comp-c-catman .cat
 ./usr/share/man/cat3/prop_dictionary_externalize_to_file.0 comp-c-catman .cat
+./usr/share/man/cat3/prop_dictionary_externalize_to_file_with_encoding.0 comp-c-catman .cat
 ./usr/share/man/cat3/prop_dictionary_get.0	comp-c-catman		.cat
 ./usr/share/man/cat3/prop_dictionary_get_bool.0	comp-c-catman		.cat
 ./usr/share/man/cat3/prop_dictionary_get_cstring.0 comp-c-catman	.cat
@@ -10295,7 +10299,9 @@
 ./usr/share/man/man3/prop_array_ensure_capacity.3 comp-c-man		.man
 ./usr/share/man/man3/prop_array_equals.3	comp-c-man		.man
 ./usr/share/man/man3/prop_array_externalize.3	comp-c-man		.man
+./usr/share/man/man3/prop_array_externalize_with_encoding.3 comp-c-man	.man
 ./usr/share/man/man3/prop_array_externalize_to_file.3 comp-c-man	.man
+./usr/share/man/man3/prop_array_externalize_to_file_with_encoding.3 comp-c-man .man
 ./usr/share/man/man3/prop_array_get.3		comp-c-man		.man
 ./usr/share/man/man3/prop_array_internalize.3	comp-c-man		.man
 ./usr/share/man/man3/prop_array_internalize_from_file.3 comp-c-man	.man
@@ -10330,7 +10336,9 @@
 ./usr/share/man/man3/prop_dictionary_ensure_capacity.3 comp-c-man	.man
 ./usr/share/man/man3/prop_dictionary_equals.3	comp-c-man		.man
 ./usr/share/man/man3/prop_dictionary_externalize.3 comp-c-man		.man
+./usr/share/man/man3/prop_dictionary_externalize_with_encoding.3 comp-c-man .man
 ./usr/share/man/man3/prop_dictionary_externalize_to_file.3 comp-c-man	.man
+./usr/share/man/man3/prop_dictionary_externalize_to_file_with_encoding.3 comp-c-man .man
 ./usr/share/man/man3/prop_dictionary_get.3	comp-c-man		.man
 ./usr/share/man/man3/prop_dictionary_get_bool.3	comp-c-man		.man
 ./usr/share/man/man3/prop_dictionary_get_cstring.3 comp-c-man		.man
Index: lib/libprop/Makefile
===================================================================
RCS file: /cvsroot/src/lib/libprop/Makefile,v
retrieving revision 1.14
diff -d -p -u -u -r1.14 Makefile
--- lib/libprop/Makefile	27 Oct 2006 01:29:37 -0000	1.14
+++ lib/libprop/Makefile	27 Oct 2007 15:47:23 -0000
@@ -64,7 +64,9 @@ MLINKS+= prop_array.3 prop_array_create_
 MLINKS+= prop_array.3 prop_array_ensure_capacity.3
 MLINKS+= prop_array.3 prop_array_equals.3
 MLINKS+= prop_array.3 prop_array_externalize.3
+MLINKS+= prop_array.3 prop_array_externalize_with_encoding.3
 MLINKS+= prop_array.3 prop_array_externalize_to_file.3
+MLINKS+= prop_array.3 prop_array_externalize_to_file_with_encoding.3
 MLINKS+= prop_array.3 prop_array_get.3
 MLINKS+= prop_array.3 prop_array_internalize.3
 MLINKS+= prop_array.3 prop_array_internalize_from_file.3
@@ -97,7 +99,9 @@ MLINKS+= prop_dictionary.3 prop_dictiona
 MLINKS+= prop_dictionary.3 prop_dictionary_ensure_capacity.3
 MLINKS+= prop_dictionary.3 prop_dictionary_equals.3
 MLINKS+= prop_dictionary.3 prop_dictionary_externalize.3
+MLINKS+= prop_dictionary.3 prop_dictionary_externalize_with_encoding.3
 MLINKS+= prop_dictionary.3 prop_dictionary_externalize_to_file.3
+MLINKS+= prop_dictionary.3 prop_dictionary_externalize_to_file_with_encoding.3
 MLINKS+= prop_dictionary.3 prop_dictionary_get.3
 MLINKS+= prop_dictionary.3 prop_dictionary_get_keysym.3
 MLINKS+= prop_dictionary.3 prop_dictionary_internalize.3
Index: regress/lib/libprop/Makefile
===================================================================
RCS file: regress/lib/libprop/Makefile
diff -N regress/lib/libprop/Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/Makefile	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,5 @@
+# 	$NetBSD$
+
+SUBDIR= 	propbench propconv
+
+.include <bsd.subdir.mk>
Index: regress/lib/libprop/propbench/Makefile
===================================================================
RCS file: regress/lib/libprop/propbench/Makefile
diff -N regress/lib/libprop/propbench/Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/propbench/Makefile	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,32 @@
+# 	$NetBSD$
+
+NOMAN= 			# set
+PROG= 			plbench
+SRCS= 			main.c
+
+CPPFLAGS+= 		-I${NETBSDSRCDIR}/common/include
+CPPFLAGS+= 		-I${NETBSDSRCDIR}/common/lib/libprop
+
+LDADD+= 		-static
+DPADD+= 		${LIBPTHREAD} ${LIBM}
+LDADD+= 		-lpthread -lm
+CFLAGS+= 		-Wall -Werror -g
+
+.if defined(LOOPS)
+PLARGS+=  		-n ${LOOPS}
+.endif
+
+.if defined(TIMES)
+PLARGS+= 		-v
+.endif
+
+regress: .PHONY ${PROG}
+	for sample in ${.CURDIR}/../samples/*.xml ;{ \
+		./${PROG} ${PLARGS} $${sample} \
+	;}
+
+gdb: .PHONY
+	gdb ${PROG} ${PROG}.core
+
+.include "${NETBSDSRCDIR}/common/lib/libprop/Makefile.inc"
+.include <bsd.prog.mk>
Index: regress/lib/libprop/propbench/main.c
===================================================================
RCS file: regress/lib/libprop/propbench/main.c
diff -N regress/lib/libprop/propbench/main.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/propbench/main.c	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,423 @@
+/* 	$NetBSD$ */
+
+/*-
+ * Copyright (c) 2007 Jachym Holecek <freza@NetBSD.org>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/resource.h>
+
+#include <err.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <libgen.h>
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <prop/proplib.h>
+
+static const char *path;
+static const char *name;
+static u_long nloops = 10000;
+
+static double time_ioctl_xml = 0.0;
+static double time_ioctl_bin = 0.0;
+static double time_intern_xml = 0.0;
+static double time_intern_bin = 0.0;
+static double time_extern_xml = 0.0;
+static double time_extern_bin = 0.0;
+static size_t size_extern_xml;
+static size_t size_extern_bin;
+
+/*
+ * Utilities.
+ */
+static prop_object_t
+internalize(const char *path)
+{
+	prop_object_t po;
+
+	po = prop_dictionary_internalize_from_file(path);
+	if (po == NULL)
+		po = prop_array_internalize_from_file(path);
+
+	return (po);
+}
+
+static prop_object_t
+decode(uint8_t *buf, size_t len)
+{
+	prop_object_t po;
+
+	po = prop_dictionary_internalize(buf, len);
+	if (po == NULL)
+		po = prop_array_internalize(buf, len);
+
+	return (po);
+}
+
+static bool
+blistify(prop_object_t po, uint8_t **buf, size_t *len)
+{
+	if (prop_object_type(po) == PROP_TYPE_DICTIONARY) {
+		if (prop_dictionary_externalize_with_encoding(po, buf, len,
+		    PROP_ENCODING_BINARY))
+			return (true);
+	} else {
+		if (prop_array_externalize_with_encoding(po, buf, len,
+		    PROP_ENCODING_BINARY))
+			return (true);
+	}
+
+	return (false);
+}
+
+static bool
+xmlify(prop_object_t po, uint8_t **buf, size_t *len)
+{
+	if (prop_object_type(po) == PROP_TYPE_DICTIONARY) {
+		if (prop_dictionary_externalize_with_encoding(po, buf, len,
+		    PROP_ENCODING_XML))
+			return (true);
+	} else {
+		if (prop_array_externalize_with_encoding(po, buf, len,
+		    PROP_ENCODING_XML))
+			return (true);
+	}
+
+	return (false);
+}
+
+double
+getpoint(void)
+{
+	struct rusage ru;
+
+	if (getrusage(RUSAGE_SELF, &ru) == -1)
+		err(1, "getrusage");
+
+	return ((double)ru.ru_utime.tv_sec +
+		(double)ru.ru_utime.tv_usec/1000000.0);
+}
+
+static void
+failed(const char *fmt, ...)
+{
+	va_list ap;
+
+	fprintf(stderr, "FAILED %s ", name);
+	va_start(ap, fmt);
+	vfprintf(stderr, fmt, ap);
+	va_end(ap);
+
+	fprintf(stderr, "\n");
+	exit(EXIT_FAILURE);
+}
+
+/*
+ * Regression test, assumes input file is XML.
+ */
+
+static void
+regression(void)
+{
+	prop_object_t po1; /* plist from XML file */
+	prop_object_t po2;
+	uint8_t *buf;
+	size_t len;
+
+	po1 = internalize(path);
+	if (po1 == NULL)
+		failed("internalize XML file");
+
+	if (! xmlify(po1, &buf, &len))
+		failed("externalize XML");
+
+	po2 = decode(buf, len);
+	if (po2 == NULL)
+		failed("internalize XML");
+	free(buf);
+
+	if (! prop_object_equals(po1, po2))
+		failed("compare XML");
+	prop_object_release(po2);
+
+	if (! blistify(po1, &buf, &len))
+		failed("externalize binary");
+
+	po2 = decode(buf, len);
+	if (po2 == NULL)
+		failed("internalize binary");
+
+	if (! prop_object_equals(po1, po2))
+		failed("compare binary");
+	prop_object_release(po2);
+
+	prop_object_release(po1);
+}
+
+static void
+benchmark(void)
+{
+	prop_object_t po1;
+	prop_object_t po2;
+	uint8_t *buf;
+	uint8_t *tmp;
+	size_t len;
+	double beg;
+	int i;
+
+	po1 = internalize(path);
+	if (po1 == NULL)
+		failed("benchmark: internalize XML file");
+
+	/* How long does XML internalize take? */
+	if (! xmlify(po1, &buf, &len))
+		failed("benchmark: prepare XML");
+	size_extern_xml = len;
+
+	for (i = 0; i < nloops; i++) {
+		beg = getpoint();
+
+		po2 = decode(buf, len);
+		if (po2 == NULL)
+			failed("benchmark: internalize XML");
+
+		time_intern_xml += (getpoint() - beg);
+		prop_object_release(po2);
+	}
+	free(buf);
+
+	/* How long does binary internalize take? */
+	if (! blistify(po1, &buf, &len))
+		failed("benchmark: prepare binary");
+	size_extern_bin = len;
+
+	for (i = 0; i < nloops; i++) {
+		beg = getpoint();
+
+		po2 = decode(buf, len);
+		if (po2 == NULL)
+			failed("benchmark: internalize binary");
+
+		time_intern_bin += (getpoint() - beg);
+		prop_object_release(po2);
+	}
+	free(buf);
+
+	/* How long does XML externalize take? */
+	for (i = 0; i < nloops; i++) {
+		beg = getpoint();
+
+		if (! xmlify(po1, &buf, &len))
+			failed("benchmark: externalize XML");
+
+		time_extern_xml += (getpoint() - beg);
+		free(buf);
+	}
+
+	/* How long does binary externalize take? */
+	for (i = 0; i < nloops; i++) {
+		beg = getpoint();
+
+		if (! blistify(po1, &buf, &len))
+			failed("benchmark: externalize binary");
+
+		time_extern_bin += (getpoint() - beg);
+		free(buf);
+	}
+
+	/* How long does full XML transport take? */
+	tmp = malloc(size_extern_xml);
+	if (tmp == NULL)
+		failed("benchmark: transport XML buffer alloc");
+
+	for (i = 0; i < nloops; i++) {
+		beg = getpoint();
+
+		if (! xmlify(po1, &buf, &len))
+			failed("benchmark: transport XML send");
+
+		if (len != size_extern_xml)
+			failed("banchmark: transport size mismatch");
+
+		memcpy(tmp, buf, len);
+		po2 = decode(tmp, len);
+		if (po2 == NULL)
+			failed("benchmark: transport XML recv");
+
+		time_ioctl_xml += (getpoint() - beg);
+		prop_object_release(po2);
+		free(buf);
+	}
+
+	free(tmp);
+
+	/* How long does full binary transport take? */
+	tmp = malloc(size_extern_bin);
+	if (tmp == NULL)
+		failed("benchmark: transport binary buffer alloc");
+
+	for (i = 0; i < nloops; i++) {
+		beg = getpoint();
+
+		if (! blistify(po1, &buf, &len))
+			failed("benchmark: transport binary send");
+
+		if (len != size_extern_bin)
+			failed("benchmark: transport binary size mismatch");
+
+		memcpy(tmp, buf, len);
+		po2 = decode(tmp, len);
+		if (po2 == NULL)
+			failed("benchmark: transport binary recv");
+
+		time_ioctl_bin += (getpoint() - beg);
+		prop_object_release(po2);
+		free(buf);
+	}
+
+	free(tmp);
+}
+
+static double
+percentage(double big, double small)
+{
+	/* percentage = small / (big / 100) = (100 * small) / big */
+	return ((100 * small) / big);
+}
+
+int
+xstrtoul(char *str, u_long *val)
+{
+	char                    *end;
+	int 			base = 10;
+	u_long 			v;
+
+	if (str[0] == '0')
+		switch (str[1]) {
+		case 'x':
+			base = 16;
+			str += 2;
+			break;
+		case 'd':
+			base = 10;
+			str += 2;
+			break;
+		case 'o':
+			base = 8;
+			str += 2;
+			break;
+		case 'b':
+			base = 2;
+			str += 2;
+			break;
+		}
+
+	v = (u_long) strtoul(str, &end, base);
+	if (*end != '\0' || str[0] == '\0')
+		return (EINVAL);
+
+	*val = v;
+	return (0);
+}
+
+int
+main(int argc, char *argv[])
+{
+	double val1;
+	double val2;
+	int verbose = 0;
+	int c;
+
+	while ((c = getopt(argc, argv, "hn:v")) != -1)
+		switch (c) {
+		case 'h':
+			warnx("Usage: plbench -h");
+			warnx("       plbench [-n <nloops>] [-v]");
+			exit(EXIT_SUCCESS);
+
+		case 'n':
+			if (xstrtoul(optarg, &nloops))
+				errx(EXIT_FAILURE, "integer expected");
+			break;
+
+		case 'v':
+			verbose = 1;
+			break;
+
+		default:
+			errx(EXIT_FAILURE, "invalid or misused option -%c",
+			    optopt);
+		}
+
+	argc -= optind;
+	argv += optind;
+
+	if (argc != 1)
+		errx(1, "need exactly one XML plist file argument");
+
+	path = argv[0];
+	name = basename(argv[0]);
+
+	regression();
+	benchmark();
+
+	printf("PASSED %s ", name);
+
+
+	if (verbose)
+		printf("("
+		    "XML %3.2fs %3.2fs %3.2f %6uB "
+		    "BIN %3.2fs %3.2fs %3.2f %6uB"
+		    ")",
+		    time_intern_xml, time_extern_xml, time_ioctl_xml,
+		    (u_int)size_extern_xml,
+		    time_intern_bin, time_extern_bin, time_ioctl_bin,
+		    (u_int)size_extern_bin);
+	else {
+		/* Relative results for full transport benchmark. */
+		printf("TRANSPORT %3.0f%% ",
+		    percentage(time_ioctl_xml, time_ioctl_bin));
+
+		/* Relative results for raw intern/extern benchmark. */
+		val1 = (time_intern_xml + time_extern_xml);
+		val2 = (time_intern_bin + time_extern_bin);
+		printf("RAW %3.0f%% ", percentage(val1, val2));
+	
+		/* Relative results for encoding size benchmark. */
+		printf("SIZE %3.0f%% ",
+		    percentage(size_extern_xml, size_extern_bin));
+	}
+
+	printf("\n");
+	return (0);
+}
Index: regress/lib/libprop/propconv/Makefile
===================================================================
RCS file: regress/lib/libprop/propconv/Makefile
diff -N regress/lib/libprop/propconv/Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/propconv/Makefile	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,45 @@
+# 	$NetBSD$
+
+NOMAN= 			# set
+PROG= 			plconv
+SRCS= 			main.c
+
+CPPFLAGS+= 		-I${NETBSDSRCDIR}/common/include
+CPPFLAGS+= 		-I${NETBSDSRCDIR}/common/lib/libprop
+
+LDADD+= 		-static
+
+DPADD+= 		${LIBPTHREAD}
+LDADD+= 		-lpthread # -pg
+CFLAGS+= 		-g -Wall -Werror # -pg
+
+.include "${NETBSDSRCDIR}/common/lib/libprop/Makefile.inc"
+
+SAMPLEDIR= 		${.CURDIR}/../samples
+SAMPLES!= 		cd ${SAMPLEDIR} && ls *.xml
+
+.for file in ${SAMPLES}
+. for codec in xml bplist
+${file}.${codec}: ${SAMPLEDIR}/${file} ${PROG}
+	@if ./${PROG} -O ${codec} -o ./${.TARGET} ${SAMPLEDIR}/${file} ; \
+	then \
+		echo PASSED convert ${.TARGET} ; \
+	else \
+		echo FAILED convert ${.TARGET} ; \
+	fi
+	@if ./${PROG} ${.TARGET} ${SAMPLEDIR}/${file} ; \
+	then \
+		echo PASSED compare ${.TARGET} ; \
+	else \
+		echo FAILED compare ${.TARGET} ; \
+	fi
+
+CLEANFILES+= 	${file}.${codec}
+CONVERSIONS+= 	${file}.${codec}
+. endfor
+.endfor
+
+# Run the full cartesian product.
+regress: .PHONY ${CONVERSIONS}
+
+.include <bsd.prog.mk>
Index: regress/lib/libprop/propconv/main.c
===================================================================
RCS file: regress/lib/libprop/propconv/main.c
diff -N regress/lib/libprop/propconv/main.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/propconv/main.c	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,157 @@
+/* 	$NetBSD$ */
+
+/*-
+ * Copyright (c) 2007 Jachym Holecek <freza@NetBSD.org>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <err.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <prop/proplib.h>
+
+static prop_object_t
+internalize(const char *path)
+{
+	prop_object_t po;
+
+	po = prop_dictionary_internalize_from_file(path);
+	if (po == NULL) {
+		po = prop_array_internalize_from_file(path);
+		if (po == NULL)
+			errx(EXIT_FAILURE, "could not internalize %s", path);
+	}
+
+	return (po);
+}
+
+static void
+externalize(int fd, prop_object_t po, const char *format)
+{
+	uint8_t *buf;
+	size_t len;
+
+	if (strcasecmp(format, "xml") == 0) {
+		if (! prop_dictionary_externalize_with_encoding(po, &buf, &len,
+		    PROP_ENCODING_XML) &&
+		    ! prop_array_externalize_with_encoding(po, &buf, &len,
+		    PROP_ENCODING_XML))
+			errx(EXIT_FAILURE, "could not externalize");
+	} else
+	if (strcasecmp(format, "bplist") == 0) {
+		if (! prop_dictionary_externalize_with_encoding(po, &buf, &len,
+		    PROP_ENCODING_BINARY) &&
+		    ! prop_array_externalize_with_encoding(po, &buf, &len,
+		    PROP_ENCODING_BINARY))
+			errx(EXIT_FAILURE, "could not externalize");
+	}
+
+	/* Not prop_*_externalize_to_file(), stdout may be pipe/terminal. */
+	if (write(fd, buf, len) == -1)
+		err(EXIT_FAILURE, "could not write");
+}
+
+#define OPTIONS 		"ho:O:"
+
+static void
+usage(void)
+{
+	const char *me = getprogname();
+
+	printf("Usage: %s [-o file] [-O format] file\n", me);
+	printf("       %s file0 file1\n", me);
+	printf("-h        \t Print (this) help\n");
+	printf("-o file   \t Output file [stdout]\n");
+	printf("-O format \t Externalize format [xml bplist]\n");
+
+	exit(EXIT_SUCCESS);
+}
+
+int
+main(int argc, char *argv[])
+{
+	const char *oformat = "xml";
+	const char *opath = NULL;
+	int fdo = STDOUT_FILENO;
+	int c;
+
+	while ((c = getopt(argc, argv, OPTIONS)) != -1)
+		switch (c) {
+		case 'h': /* Help. */
+			usage();
+			/* UNREACHED */
+
+		case 'o': /* Output file. */
+			opath = optarg;
+			break;
+
+		case 'O': /* Externalize format. */
+			oformat = optarg;
+			break;
+
+		case '?':
+			errx(EXIT_FAILURE, "uknown option -%c", optopt);
+			/* UNREACHED */
+
+		case ':':
+			errx(EXIT_FAILURE, "missing argument to -%c", optopt);
+			/* UNREACHED */
+		}
+
+	argc -= optind;
+	argv += optind;
+
+	if (argc == 2) {
+		if (prop_object_equals(internalize(argv[0]),
+		    internalize(argv[1])))
+			return (EXIT_SUCCESS);
+
+		return (EXIT_FAILURE);
+	} else
+	if (argc == 1) {
+		prop_object_t po;
+
+		po = internalize(argv[0]);
+
+		if (opath != NULL) {
+			fdo = open(opath, O_WRONLY|O_CREAT|O_TRUNC, 0644);
+			if (fdo == -1)
+				errx(EXIT_FAILURE, "could not open %s", opath);
+		}
+
+		externalize(fdo, po, oformat);
+		return (EXIT_SUCCESS);
+	}
+
+	warnx("unknown mode of operation");
+	return (EXIT_FAILURE);
+}
Index: regress/lib/libprop/samples/aa.xml
===================================================================
RCS file: regress/lib/libprop/samples/aa.xml
diff -N regress/lib/libprop/samples/aa.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/aa.xml	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,62 @@
+<plist version="1.0">
+<dict>
+	<key>prep-pci-intrmap</key>
+	<dict>
+		<key>devfunc-11</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x0</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-12</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x0</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-13</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x0</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-14</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x11</integer>
+			<key>pin-B</key>
+			<integer>0x13</integer>
+			<key>pin-C</key>
+			<integer>0x12</integer>
+			<key>pin-D</key>
+			<integer>0x13</integer>
+		</dict>
+		<key>devfunc-15</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x14</integer>
+			<key>pin-B</key>
+			<integer>0x15</integer>
+			<key>pin-C</key>
+			<integer>0x14</integer>
+			<key>pin-D</key>
+			<integer>0x15</integer>
+		</dict>
+	</dict>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ab.xml
===================================================================
RCS file: regress/lib/libprop/samples/ab.xml
diff -N regress/lib/libprop/samples/ab.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ab.xml	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,66 @@
+<plist version="1.0">
+<dict>
+	<key>prep-pci-intrmap</key>
+	<dict>
+		<key>devfunc-0</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x11</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-1</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x18</integer>
+			<key>pin-B</key>
+			<integer>0x19</integer>
+			<key>pin-C</key>
+			<integer>0x18</integer>
+			<key>pin-D</key>
+			<integer>0x19</integer>
+		</dict>
+		<key>devfunc-2</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x1a</integer>
+			<key>pin-B</key>
+			<integer>0x1b</integer>
+			<key>pin-C</key>
+			<integer>0x1a</integer>
+			<key>pin-D</key>
+			<integer>0x1b</integer>
+		</dict>
+		<key>devfunc-3</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x1c</integer>
+			<key>pin-B</key>
+			<integer>0x1d</integer>
+			<key>pin-C</key>
+			<integer>0x1c</integer>
+			<key>pin-D</key>
+			<integer>0x1d</integer>
+		</dict>
+		<key>devfunc-4</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x1e</integer>
+			<key>pin-B</key>
+			<integer>0x1f</integer>
+			<key>pin-C</key>
+			<integer>0x1e</integer>
+			<key>pin-D</key>
+			<integer>0x1f</integer>
+		</dict>
+	</dict>
+	<key>prep-pcibus-parent</key>
+	<integer>0x0</integer>
+	<key>prep-pcibus-rawdevnum</key>
+	<integer>0xc</integer>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ac.xml
===================================================================
RCS file: regress/lib/libprop/samples/ac.xml
diff -N regress/lib/libprop/samples/ac.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ac.xml	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,84 @@
+<plist version="1.0">
+<dict>
+	<key>prep-pci-intrmap</key>
+	<dict>
+		<key>devfunc-11</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x10</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-12</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x13</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-14</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x12</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-16</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x19</integer>
+			<key>pin-B</key>
+			<integer>0x1a</integer>
+			<key>pin-C</key>
+			<integer>0x1b</integer>
+			<key>pin-D</key>
+			<integer>0x1c</integer>
+		</dict>
+		<key>devfunc-17</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x1a</integer>
+			<key>pin-B</key>
+			<integer>0x1b</integer>
+			<key>pin-C</key>
+			<integer>0x1c</integer>
+			<key>pin-D</key>
+			<integer>0x19</integer>
+		</dict>
+		<key>devfunc-18</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x1b</integer>
+			<key>pin-B</key>
+			<integer>0x1c</integer>
+			<key>pin-C</key>
+			<integer>0x19</integer>
+			<key>pin-D</key>
+			<integer>0x1a</integer>
+		</dict>
+		<key>devfunc-19</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x1c</integer>
+			<key>pin-B</key>
+			<integer>0x19</integer>
+			<key>pin-C</key>
+			<integer>0x1a</integer>
+			<key>pin-D</key>
+			<integer>0x1b</integer>
+		</dict>
+	</dict>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ad.xml
===================================================================
RCS file: regress/lib/libprop/samples/ad.xml
diff -N regress/lib/libprop/samples/ad.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ad.xml	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,8 @@
+<plist version="1.0">
+<dict>
+	<key>prep-pcibus-parent</key>
+	<integer>0x0</integer>
+	<key>prep-pcibus-rawdevnum</key>
+	<integer>0x10</integer>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ae.xml
===================================================================
RCS file: regress/lib/libprop/samples/ae.xml
diff -N regress/lib/libprop/samples/ae.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ae.xml	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,62 @@
+<plist version="1.0">
+<dict>
+	<key>prep-pci-intrmap</key>
+	<dict>
+		<key>devfunc-11</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x10</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-12</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x13</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-13</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x15</integer>
+			<key>pin-B</key>
+			<integer>0x16</integer>
+			<key>pin-C</key>
+			<integer>0x17</integer>
+			<key>pin-D</key>
+			<integer>0x18</integer>
+		</dict>
+		<key>devfunc-14</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x12</integer>
+			<key>pin-B</key>
+			<integer>0x0</integer>
+			<key>pin-C</key>
+			<integer>0x0</integer>
+			<key>pin-D</key>
+			<integer>0x0</integer>
+		</dict>
+		<key>devfunc-16</key>
+		<dict>
+			<key>pin-A</key>
+			<integer>0x19</integer>
+			<key>pin-B</key>
+			<integer>0x1a</integer>
+			<key>pin-C</key>
+			<integer>0x1b</integer>
+			<key>pin-D</key>
+			<integer>0x1c</integer>
+		</dict>
+	</dict>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/af.xml
===================================================================
RCS file: regress/lib/libprop/samples/af.xml
diff -N regress/lib/libprop/samples/af.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/af.xml	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,196 @@
+<plist version="1.0">
+<dict>
+	<key>id</key>
+	<string>NetBSD-UP2006-0001</string>
+
+	<key>date</key>
+	<string>2006-06-08</string>
+
+	<key>class</key>
+	<string>security</string>
+
+	<key>priority</key>
+	<string>medium</string>
+
+	<key>title</key>
+	<string>FPU Information leak on i386/amd64/Xen platforms with AMD CPUs</string>
+
+	<key>brief</key>
+	<string>
+	Due to the documented behavior of AMD processors when running amd64, i386
+	and Xen NetBSD kernels, processors using floating point operations can leak
+	information.  This may allow a local attacker to gain sensitive privileged
+	information.
+	</string>
+
+	<key>references</key>
+	<array>
+		<dict>
+			<key>type</key>
+			<string>NetBSD security advisory</string>
+			<key>data</key>
+			<string>NetBSD-SA2006-015</string>
+		</dict>
+
+		<dict>
+			<key>type</key>
+			<string>CVE reference</string>
+			<key>data</key>
+			<string>CVE-2006-1056</string>
+		</dict>
+	</array>
+
+	<key>affected</key>
+	<array>
+		<dict>
+			<key>branch</key>
+			<string>head</string>
+
+			<key>archs</key>
+			<array>
+				<dict>
+					<key>arch</key>
+					<string>amd64</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/amd64/amd64/fpu.c</string>
+							<key>revision</key>
+							<string>1.115</string>
+						</dict>
+					</array>
+				</dict>
+
+				<dict>
+					<key>arch</key>
+					<string>i386</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/i386/isa/npx.c</string>
+							<key>revision</key>
+							<string>1.112</string>
+						</dict>
+					</array>
+				</dict>
+
+				<dict>
+					<key>arch</key>
+					<string>xen</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/xen/i386/npx.c</string>
+							<key>revision</key>
+							<string>1.8</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+
+		<dict>
+			<key>branch</key>
+			<string>netbsd-3</string>
+
+			<key>archs</key>
+			<array>
+				<dict>
+					<key>arch</key>
+					<string>amd64</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/amd64/amd64/fpu.c</string>
+							<key>revision</key>
+							<string>1.12.10.2</string>
+						</dict>
+					</array>
+				</dict>
+
+				<dict>
+					<key>arch</key>
+					<string>i386</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/i386/isa/npx.c</string>
+							<key>revision</key>
+							<string>1.107.4.1</string>
+						</dict>
+					</array>
+				</dict>
+
+				<dict>
+					<key>arch</key>
+					<string>xen</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/xen/i386/npx.c</string>
+							<key>revision</key>
+							<string>1.3.14.3</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+
+		<dict>
+			<key>branch</key>
+			<string>netbsd-2</string>
+
+			<key>archs</key>
+			<array>
+				<dict>
+					<key>arch</key>
+					<string>amd64</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/amd64/amd64/fpu.c</string>
+							<key>revision</key>
+							<string>1.11.4.2</string>
+						</dict>
+					</array>
+				</dict>
+
+				<dict>
+					<key>arch</key>
+					<string>i386</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/i386/isa/npx.c</string>
+							<key>revision</key>
+							<string>1.103.2.2.2.1</string>
+						</dict>
+					</array>
+				</dict>
+
+				<dict>
+					<key>arch</key>
+					<string>xen</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/sys/arch/xen/i386/npx.c</string>
+							<key>revision</key>
+							<string>1.1.2.1.2.1</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+	</array>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ag.xml
===================================================================
RCS file: regress/lib/libprop/samples/ag.xml
diff -N regress/lib/libprop/samples/ag.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ag.xml	27 Oct 2007 15:47:23 -0000
@@ -0,0 +1,161 @@
+<plist version="1.0">
+<dict>
+	<key>id</key>
+	<string>NetBSD-UP2006-0002</string>
+
+	<key>date</key>
+	<string>2006-08-10</string>
+
+	<key>class</key>
+	<string>security</string>
+
+	<key>priority</key>
+	<string>medium</string>
+
+	<key>title</key>
+	<string>sail(6), dm(8) and tetris(6) buffer overflows</string>
+
+	<key>brief</key>
+	<string>
+	The sail, dungeon master arbiter and tetris games all contain buffer
+	overflows.  These programs are installed sgid games, and when
+	successfully exploited the vulnerabilities may allow an attacker to
+	elevate their privileges to the games group.
+	</string>
+
+	<key>references</key>
+	<array>
+		<dict>
+			<key>type</key>
+			<string>NetBSD security advisory</string>
+			<key>data</key>
+			<string>NetBSD-SA2006-018</string>
+		</dict>
+
+		<dict>
+			<key>type</key>
+			<string>CVE reference for sail(6)</string>
+			<key>data</key>
+			<string>CVE-2006-1744</string>
+		</dict>
+
+		<dict>
+			<key>type</key>
+			<string>CVE reference for tetris(6)</string>
+			<key>data</key>
+			<string>CVE-2006-1539</string>
+		</dict>
+	</array>
+
+	<key>affected</key>
+	<array>
+		<dict>
+			<key>branch</key>
+			<string>head</string>
+
+			<key>archs</key>
+			<array>
+				<dict>
+					<key>arch</key>
+					<string>all</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/games/dm/dm.c</string>
+							<key>revision</key>
+							<string>1.23</string>
+						</dict>
+
+						<dict>
+							<key>file</key>
+							<string>src/games/sail/pl_main.c</string>
+							<key>revision</key>
+							<string>1.17</string>
+						</dict>
+
+						<dict>
+							<key>file</key>
+							<string>src/games/tetris/scores.c</string>
+							<key>revision</key>
+							<string>1.14</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+
+		<dict>
+			<key>branch</key>
+			<string>netbsd-3</string>
+
+			<key>archs</key>
+			<array>
+				<dict>
+					<key>arch</key>
+					<string>all</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/games/dm/dm.c</string>
+							<key>revision</key>
+							<string>1.21.2.1</string>
+						</dict>
+
+						<dict>
+							<key>file</key>
+							<string>src/games/sail/pl_main.c</string>
+							<key>revision</key>
+							<string>1.16.6.1</string>
+						</dict>
+
+						<dict>
+							<key>file</key>
+							<string>src/games/tetris/scores.c</string>
+							<key>revision</key>
+							<string>1.13.6.1</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+
+		<dict>
+			<key>branch</key>
+			<string>netbsd-2</string>
+
+			<key>archs</key>
+			<array>
+				<dict>
+					<key>arch</key>
+					<string>all</string>
+					<key>files</key>
+					<array>
+						<dict>
+							<key>file</key>
+							<string>src/games/dm/dm.c</string>
+							<key>revision</key>
+							<string>1.20.4.1</string>
+						</dict>
+
+						<dict>
+							<key>file</key>
+							<string>src/games/sail/pl_main.c</string>
+							<key>revision</key>
+							<string>1.16.4.1</string>
+						</dict>
+
+						<dict>
+							<key>file</key>
+							<string>src/games/tetris/scores.c</string>
+							<key>revision</key>
+							<string>1.13.4.1</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+	</array>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ah.xml
===================================================================
RCS file: regress/lib/libprop/samples/ah.xml
diff -N regress/lib/libprop/samples/ah.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ah.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>AB21vCardEncoding</key>
+	<string>MACINTOSH</string>
+	<key>ABDefaultAddressCountryCode</key>
+	<string>us</string>
+	<key>ABImportTipCards</key>
+	<true/>
+	<key>ABMetaDataChangeCount</key>
+	<integer>3</integer>
+	<key>ABNameDisplay</key>
+	<integer>0</integer>
+	<key>ABNameSorting</key>
+	<integer>1</integer>
+	<key>ABSKCompactionHint</key>
+	<integer>5</integer>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ai.xml
===================================================================
RCS file: regress/lib/libprop/samples/ai.xml
diff -N regress/lib/libprop/samples/ai.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ai.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>AppendAMPM</key>
+	<true/>
+	<key>ClockDigital</key>
+	<true/>
+	<key>ClockEnabled</key>
+	<true/>
+	<key>DisplaySeconds</key>
+	<false/>
+	<key>FlashSeparators</key>
+	<false/>
+	<key>LastSavedGlobalTimeString</key>
+	<string>h:mm:ss a</string>
+	<key>PreferencesVersion</key>
+	<integer>2</integer>
+	<key>ShowDay</key>
+	<true/>
+	<key>Use24HourClock</key>
+	<false/>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/aj.xml
===================================================================
RCS file: regress/lib/libprop/samples/aj.xml
diff -N regress/lib/libprop/samples/aj.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/aj.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>AgentLastLaunched</key>
+	<integer>174413322</integer>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ak.xml
===================================================================
RCS file: regress/lib/libprop/samples/ak.xml
diff -N regress/lib/libprop/samples/ak.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ak.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>LastExpireCheck</key>
+	<integer>732504</integer>
+	<key>LastIntegrityCheck</key>
+	<integer>732504</integer>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/al.xml
===================================================================
RCS file: regress/lib/libprop/samples/al.xml
diff -N regress/lib/libprop/samples/al.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/al.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>NSRecentDocumentRecords</key>
+	<array>
+		<dict>
+			<key>_NSLocator</key>
+			<dict>
+				<key>_NSPath</key>
+				<string>/afs/ms.mff.cuni.cz/u/c/cahyp8am/diplomka/clanek/V.doc</string>
+			</dict>
+		</dict>
+	</array>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/am.xml
===================================================================
RCS file: regress/lib/libprop/samples/am.xml
diff -N regress/lib/libprop/samples/am.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/am.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>WebIconDatabaseEnabled</key>
+	<false/>
+	<key>__NSEnableTSMDocumentWindowLevel</key>
+	<true/>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/an.xml
===================================================================
RCS file: regress/lib/libprop/samples/an.xml
diff -N regress/lib/libprop/samples/an.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/an.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>com.apple.TextEdit</key>
+	<array>
+		<array>
+			<string>TextEditHelp</string>
+			<string>file://localhost/Applications/TextEdit.app/Contents/Resources/English.lproj/TextEditHelp/</string>
+		</array>
+	</array>
+	<key>hu.mplayerhq.mplayerosx</key>
+	<array>
+		<array>
+			<string>MPlayer OSX Help</string>
+			<string>file://localhost/Applications/MPlayer%20OSX.app/Contents/Resources/English.lproj/MPlayer%20OSX%20Help/</string>
+		</array>
+	</array>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ao.xml
===================================================================
RCS file: regress/lib/libprop/samples/ao.xml
diff -N regress/lib/libprop/samples/ao.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ao.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>HVIncludesKBSearches</key>
+	<true/>
+	<key>NSRecentDocumentRecords</key>
+	<array/>
+	<key>WebIconDatabaseDirectoryDefaultsKey</key>
+	<string>~/Library/Icons</string>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ap.xml
===================================================================
RCS file: regress/lib/libprop/samples/ap.xml
diff -N regress/lib/libprop/samples/ap.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ap.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>WWWHomePage</key>
+	<string>http://livepage.apple.com/</string>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/aq.xml
===================================================================
RCS file: regress/lib/libprop/samples/aq.xml
diff -N regress/lib/libprop/samples/aq.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/aq.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,902 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>WebPluginLocalizationName</key>
+	<string>en_US</string>
+	<key>WebPluginMIMETypes</key>
+	<dict>
+		<key>application/pdf</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>pdf</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>PDF Image</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>application/sdp</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>sdp</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>SDP stream descriptor</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>application/smil</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>smi</string>
+				<string>sml</string>
+				<string>smil</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>SMIL 1.0</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>application/x-mpeg</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>amc</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AMC media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>application/x-quicktimeplayer</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>qtl</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>QuickTime Player Movie</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>application/x-quicktimeupdater</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>qup</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>QuickTime Update Package</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>application/x-rtsp</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>rtsp</string>
+				<string>rts</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>RTSP stream descriptor</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>application/x-sdp</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>sdp</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>SDP stream descriptor</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>application/x-shockwave-flash</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>swf</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>Flash media</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>audio/3gpp</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>3gp</string>
+				<string>3gpp</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>3GPP media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/3gpp2</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>3g2</string>
+				<string>3gp2</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>3GPP2 media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/AMR</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>AMR</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AMR audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/aac</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>aac</string>
+				<string>adts</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AAC audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/aiff</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>aiff</string>
+				<string>aif</string>
+				<string>aifc</string>
+				<string>cdda</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AIFF audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/basic</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>au</string>
+				<string>snd</string>
+				<string>ulw</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>uLaw/AU audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/mid</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mid</string>
+				<string>midi</string>
+				<string>smf</string>
+				<string>kar</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MIDI</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/midi</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mid</string>
+				<string>midi</string>
+				<string>smf</string>
+				<string>kar</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MIDI</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/mp3</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mp3</string>
+				<string>swa</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MP3 audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/mp4</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mp4</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MPEG-4 media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/mpeg</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mpeg</string>
+				<string>mpg</string>
+				<string>m1s</string>
+				<string>m1a</string>
+				<string>mp2</string>
+				<string>mpm</string>
+				<string>mpa</string>
+				<string>m2a</string>
+				<string>mp3</string>
+				<string>swa</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MPEG audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/mpeg3</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mp3</string>
+				<string>swa</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MP3 audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/mpegurl</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>m3u</string>
+				<string>m3url</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MP3 playlist</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>audio/vnd.qcelp</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>qcp</string>
+				<string>qcp</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>QUALCOMM PureVoice audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/wav</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>wav</string>
+				<string>bwf</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>WAVE audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-aac</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>aac</string>
+				<string>adts</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AAC audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-aiff</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>aiff</string>
+				<string>aif</string>
+				<string>aifc</string>
+				<string>cdda</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AIFF audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-caf</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>caf</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>CAF audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-gsm</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>gsm</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>GSM audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-m4a</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>m4a</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AAC audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-m4b</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>m4b</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AAC audio book</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-m4p</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>m4p</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AAC audio (protected)</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-midi</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mid</string>
+				<string>midi</string>
+				<string>smf</string>
+				<string>kar</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MIDI</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-mp3</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mp3</string>
+				<string>swa</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MP3 audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-mpeg</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mpeg</string>
+				<string>mpg</string>
+				<string>m1s</string>
+				<string>m1a</string>
+				<string>mp2</string>
+				<string>mpm</string>
+				<string>mpa</string>
+				<string>m2a</string>
+				<string>mp3</string>
+				<string>swa</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MPEG audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-mpeg3</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mp3</string>
+				<string>swa</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MP3 audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>audio/x-mpegurl</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>m3u</string>
+				<string>m3url</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MP3 playlist</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>audio/x-sd2</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>sd2</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>Sound Designer II</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>audio/x-wav</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>wav</string>
+				<string>bwf</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>WAVE audio</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/gif</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>gif</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>GIF image</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>image/jp2</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>jp2</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>JPEG2000 image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/jpeg</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>jpeg</string>
+				<string>jpg</string>
+				<string>jpe</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>JPEG image</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>image/jpeg2000</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>jp2</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>JPEG2000 image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/jpeg2000-image</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>jp2</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>JPEG2000 image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/pict</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>pict</string>
+				<string>pic</string>
+				<string>pct</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>PICT image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/pjpeg</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>jpeg</string>
+				<string>jpg</string>
+				<string>jpe</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>JPEG image</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>image/png</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>png</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>PNG image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/tiff</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>tif</string>
+				<string>tiff</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>TIFF image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/vnd.fpx</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>fpx</string>
+				<string>fpix</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>FlashPix image</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>image/x-bmp</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>bmp</string>
+				<string>dib</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>BMP image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/x-jpeg2000-image</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>jp2</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>JPEG2000 image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/x-macpaint</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>pntg</string>
+				<string>pnt</string>
+				<string>mac</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MacPaint image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/x-photoshop</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>psd</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>Photoshop image</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>image/x-pict</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>pict</string>
+				<string>pic</string>
+				<string>pct</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>PICT image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/x-png</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>png</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>PNG image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/x-quicktime</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>qtif</string>
+				<string>qti</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>QuickTime image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/x-sgi</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>sgi</string>
+				<string>rgb</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>SGI image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/x-targa</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>targa</string>
+				<string>tga</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>TGA image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>image/x-tiff</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>tif</string>
+				<string>tiff</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>TIFF image</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>text/x-html-insertion</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>qht</string>
+				<string>qhtm</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>QuickTime HTML (QHTM)</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>video/3gpp</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>3gp</string>
+				<string>3gpp</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>3GPP media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/3gpp2</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>3g2</string>
+				<string>3gp2</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>3GPP2 media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/avi</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>avi</string>
+				<string>vfw</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>Video For Windows (AVI)</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/flc</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>flc</string>
+				<string>fli</string>
+				<string>cel</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>AutoDesk Animator (FLC)</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/mp4</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mp4</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MPEG-4 media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/mpeg</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mpeg</string>
+				<string>mpg</string>
+				<string>m1s</string>
+				<string>m1v</string>
+				<string>m1a</string>
+				<string>m75</string>
+				<string>m15</string>
+				<string>mp2</string>
+				<string>mpm</string>
+				<string>mpv</string>
+				<string>mpa</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MPEG media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/msvideo</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>avi</string>
+				<string>vfw</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>Video For Windows (AVI)</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/quicktime</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mov</string>
+				<string>qt</string>
+				<string>mqv</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>QuickTime Movie</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/sd-video</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>sdv</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>SD video</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/x-dv</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>dv</string>
+				<string>dif</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>Digital video (DV)</string>
+			<key>WebPluginTypeEnabled</key>
+			<false/>
+		</dict>
+		<key>video/x-m4v</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>m4v</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>Video (protected)</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/x-mpeg</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>mpeg</string>
+				<string>mpg</string>
+				<string>m1s</string>
+				<string>m1v</string>
+				<string>m1a</string>
+				<string>m75</string>
+				<string>m15</string>
+				<string>mp2</string>
+				<string>mpm</string>
+				<string>mpv</string>
+				<string>mpa</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>MPEG media</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+		<key>video/x-msvideo</key>
+		<dict>
+			<key>WebPluginExtensions</key>
+			<array>
+				<string>avi</string>
+				<string>vfw</string>
+			</array>
+			<key>WebPluginTypeDescription</key>
+			<string>Video For Windows (AVI)</string>
+			<key>WebPluginTypeEnabled</key>
+			<true/>
+		</dict>
+	</dict>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ar.xml
===================================================================
RCS file: regress/lib/libprop/samples/ar.xml
diff -N regress/lib/libprop/samples/ar.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ar.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>AbsoluteSchedule</key>
+	<dict/>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/as.xml
===================================================================
RCS file: regress/lib/libprop/samples/as.xml
diff -N regress/lib/libprop/samples/as.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/as.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>__NSEnableTSMDocumentWindowLevel</key>
+	<true/>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/at.xml
===================================================================
RCS file: regress/lib/libprop/samples/at.xml
diff -N regress/lib/libprop/samples/at.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/at.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>done_xinit_check</key>
+	<true/>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/au.xml
===================================================================
RCS file: regress/lib/libprop/samples/au.xml
diff -N regress/lib/libprop/samples/au.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/au.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>BuildVersionStampAsNumber</key>
+	<integer>17371360</integer>
+	<key>BuildVersionStampAsString</key>
+	<string>8J135</string>
+	<key>SystemVersionStampAsNumber</key>
+	<integer>168036096</integer>
+	<key>SystemVersionStampAsString</key>
+	<string>10.4.7</string>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/av.xml
===================================================================
RCS file: regress/lib/libprop/samples/av.xml
diff -N regress/lib/libprop/samples/av.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/av.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>checked-for-dashboard</key>
+	<true/>
+	<key>mod-count</key>
+	<integer>2</integer>
+	<key>persistent-apps</key>
+	<array>
+		<dict>
+			<key>tile-data</key>
+			<dict>
+				<key>file-label</key>
+				<string></string>
+			</dict>
+			<key>tile-type</key>
+			<string>dashboard-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550320</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLAliasData</key>
+					<data>
+					AAAAAACIAAMAAQAAwA9pqQAASCsAAAAAAAAB
+					LQAA/jsAAL5NKmAAAAAACSD//gAAAAAAAAAA
+					/////wABAAQAAAEtAA4AEgAIAE0AYQBpAGwA
+					LgBhAHAAcAAPAAgAAwBIAEQARAASABVBcHBs
+					aWNhdGlvbnMvTWFpbC5hcHAAABMAAS8A//8A
+					AA==
+					</data>
+					<key>_CFURLString</key>
+					<string>/Applications/Mail.app/</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>Mail</string>
+				<key>file-mod-date</key>
+				<integer>3234415823</integer>
+				<key>file-type</key>
+				<integer>41</integer>
+				<key>parent-mod-date</key>
+				<integer>3234415823</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550321</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLAliasData</key>
+					<data>
+					AAAAAACOAAMAAQAAwA9pqQAASCsAAAAAAAAB
+					LQABVRAAAL4xm1MAAAAACSD//gAAAAAAAAAA
+					/////wABAAQAAAEtAA4AFgAKAFMAYQBmAGEA
+					cgBpAC4AYQBwAHAADwAIAAMASABEAEQAEgAX
+					QXBwbGljYXRpb25zL1NhZmFyaS5hcHAAABMA
+					AS8A//8AAA==
+					</data>
+					<key>_CFURLString</key>
+					<string>/Applications/Safari.app/</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>Safari</string>
+				<key>file-mod-date</key>
+				<integer>3234415823</integer>
+				<key>file-type</key>
+				<integer>41</integer>
+				<key>parent-mod-date</key>
+				<integer>3234415823</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550322</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLAliasData</key>
+					<data>
+					AAAAAACKAAMAAQAAwA9pqQAASCsAAAAAAAAB
+					LQABREwAAL98VkMAAAAACSD//gAAAAAAAAAA
+					/////wABAAQAAAEtAA4AFAAJAGkAQwBoAGEA
+					dAAuAGEAcABwAA8ACAADAEgARABEABIAFkFw
+					cGxpY2F0aW9ucy9pQ2hhdC5hcHAAEwABLwD/
+					/wAA
+					</data>
+					<key>_CFURLString</key>
+					<string>/Applications/iChat.app/</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>iChat</string>
+				<key>file-mod-date</key>
+				<integer>3234415823</integer>
+				<key>file-type</key>
+				<integer>41</integer>
+				<key>parent-mod-date</key>
+				<integer>3234415823</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550323</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLAliasData</key>
+					<data>
+					AAAAAACgAAMAAQAAwA9pqQAASCsAAAAAAAAB
+					LQABFTgAAL9+JFIAAAAACSD//gAAAAAAAAAA
+					/////wABAAQAAAEtAA4AIgAQAEEAZABkAHIA
+					ZQBzAHMAIABCAG8AbwBrAC4AYQBwAHAADwAI
+					AAMASABEAEQAEgAdQXBwbGljYXRpb25zL0Fk
+					ZHJlc3MgQm9vay5hcHAAABMAAS8A//8AAA==
+					</data>
+					<key>_CFURLString</key>
+					<string>/Applications/Address Book.app/</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>Address Book</string>
+				<key>file-mod-date</key>
+				<integer>3234415823</integer>
+				<key>file-type</key>
+				<integer>41</integer>
+				<key>parent-mod-date</key>
+				<integer>3234415823</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550324</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLAliasData</key>
+					<data>
+					AAAAAACOAAMAAQAAwA9pqQAASCsAAAAAAAAB
+					LQABOgYAAL9+IXEAAAAACSD//gAAAAAAAAAA
+					/////wABAAQAAAEtAA4AFgAKAGkAVAB1AG4A
+					ZQBzAC4AYQBwAHAADwAIAAMASABEAEQAEgAX
+					QXBwbGljYXRpb25zL2lUdW5lcy5hcHAAABMA
+					AS8A//8AAA==
+					</data>
+					<key>_CFURLString</key>
+					<string>/Applications/iTunes.app/</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>iTunes</string>
+				<key>file-mod-date</key>
+				<integer>3224322669</integer>
+				<key>file-type</key>
+				<integer>41</integer>
+				<key>parent-mod-date</key>
+				<integer>3234415823</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550325</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLString</key>
+					<string>/Applications/iPhoto.app</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>iPhoto</string>
+				<key>file-mod-date</key>
+				<integer>0</integer>
+				<key>file-type</key>
+				<integer>1</integer>
+				<key>parent-mod-date</key>
+				<integer>0</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550326</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLString</key>
+					<string>/Applications/iMovie.app</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>iMovie</string>
+				<key>file-mod-date</key>
+				<integer>0</integer>
+				<key>file-type</key>
+				<integer>1</integer>
+				<key>parent-mod-date</key>
+				<integer>0</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550327</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLString</key>
+					<string>/Applications/iMovie HD.app</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>iMovie HD</string>
+				<key>file-mod-date</key>
+				<integer>0</integer>
+				<key>file-type</key>
+				<integer>1</integer>
+				<key>parent-mod-date</key>
+				<integer>0</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550328</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLAliasData</key>
+					<data>
+					AAAAAACIAAMAAQAAwA9pqQAASCsAAAAAAAAB
+					LQABIVwAAL8vox8AAAAACSD//gAAAAAAAAAA
+					/////wABAAQAAAEtAA4AEgAIAGkAQwBhAGwA
+					LgBhAHAAcAAPAAgAAwBIAEQARAASABVBcHBs
+					aWNhdGlvbnMvaUNhbC5hcHAAABMAAS8A//8A
+					AA==
+					</data>
+					<key>_CFURLString</key>
+					<string>/Applications/iCal.app/</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>iCal</string>
+				<key>file-mod-date</key>
+				<integer>3207570207</integer>
+				<key>file-type</key>
+				<integer>41</integer>
+				<key>parent-mod-date</key>
+				<integer>3234415823</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550329</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLAliasData</key>
+					<data>
+					AAAAAACsAAMAAQAAwA9pqQAASCsAAAAAAAAB
+					LQAAXNUAAL9+JEcAAAAACSD//gAAAAAAAAAA
+					/////wABAAQAAAEtAA4AKgAUAFEAdQBpAGMA
+					awBUAGkAbQBlACAAUABsAGEAeQBlAHIALgBh
+					AHAAcAAPAAgAAwBIAEQARAASACFBcHBsaWNh
+					dGlvbnMvUXVpY2tUaW1lIFBsYXllci5hcHAA
+					ABMAAS8A//8AAA==
+					</data>
+					<key>_CFURLString</key>
+					<string>/Applications/QuickTime Player.app/</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>QuickTime Player</string>
+				<key>file-mod-date</key>
+				<integer>3234415823</integer>
+				<key>file-type</key>
+				<integer>41</integer>
+				<key>parent-mod-date</key>
+				<integer>3234415823</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+		<dict>
+			<key>GUID</key>
+			<integer>510550330</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>file-data</key>
+				<dict>
+					<key>_CFURLAliasData</key>
+					<data>
+					AAAAAACyAAMAAQAAwA9pqQAASCsAAAAAAAAB
+					LQAAa9cAAL8vzjAAAAAACSD//gAAAAAAAAAA
+					/////wABAAQAAAEtAA4ALgAWAFMAeQBzAHQA
+					ZQBtACAAUAByAGUAZgBlAHIAZQBuAGMAZQBz
+					AC4AYQBwAHAADwAIAAMASABEAEQAEgAjQXBw
+					bGljYXRpb25zL1N5c3RlbSBQcmVmZXJlbmNl
+					cy5hcHAAABMAAS8A//8AAA==
+					</data>
+					<key>_CFURLString</key>
+					<string>/Applications/System Preferences.app/</string>
+					<key>_CFURLStringType</key>
+					<integer>0</integer>
+				</dict>
+				<key>file-label</key>
+				<string>System Preferences</string>
+				<key>file-mod-date</key>
+				<integer>3207581232</integer>
+				<key>file-type</key>
+				<integer>41</integer>
+				<key>parent-mod-date</key>
+				<integer>3234415823</integer>
+			</dict>
+			<key>tile-type</key>
+			<string>file-tile</string>
+		</dict>
+	</array>
+	<key>persistent-others</key>
+	<array>
+		<dict>
+			<key>GUID</key>
+			<integer>510550331</integer>
+			<key>tile-data</key>
+			<dict>
+				<key>label</key>
+				<string>Apple - Mac OS X</string>
+				<key>url</key>
+				<dict>
+					<key>_CFURLString</key>
+					<string>http://www.apple.com/macosx</string>
+					<key>_CFURLStringType</key>
+					<integer>15</integer>
+				</dict>
+			</dict>
+			<key>tile-type</key>
+			<string>url-tile</string>
+		</dict>
+	</array>
+	<key>version</key>
+	<integer>1</integer>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/aw.xml
===================================================================
RCS file: regress/lib/libprop/samples/aw.xml
diff -N regress/lib/libprop/samples/aw.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/aw.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ComputerOptions</key>
+	<dict/>
+	<key>FXToolbarItems</key>
+	<array>
+		<dict>
+			<key>item-id</key>
+			<string>BACK</string>
+		</dict>
+		<dict>
+			<key>item-id</key>
+			<string>SWCH</string>
+		</dict>
+		<dict>
+			<key>item-id</key>
+			<string>ACTN</string>
+		</dict>
+		<dict>
+			<key>item-id</key>
+			<string>flxs</string>
+		</dict>
+		<dict>
+			<key>item-id</key>
+			<string>SRCH</string>
+		</dict>
+	</array>
+	<key>FXToolbarPrefsVersion</key>
+	<string>1</string>
+	<key>FileViewer.LastWindowLocation</key>
+	<string>143, 192, 841, 811</string>
+	<key>TrashOptions</key>
+	<dict/>
+	<key>WindowState</key>
+	<array>
+		<string>BROw</string>
+		<dict>
+			<key>ScrollPosition</key>
+			<dict>
+				<key>h</key>
+				<integer>0</integer>
+				<key>v</key>
+				<integer>220</integer>
+			</dict>
+			<key>ShowToolbar</key>
+			<true/>
+			<key>SidebarWidth</key>
+			<integer>124</integer>
+			<key>Target</key>
+			<string>file://localhost/Applications/Utilities/</string>
+			<key>ViewHeight</key>
+			<integer>619</integer>
+			<key>ViewStyle</key>
+			<string>icnv</string>
+			<key>WindowBounds</key>
+			<dict>
+				<key>bottom</key>
+				<integer>811</integer>
+				<key>left</key>
+				<integer>143</integer>
+				<key>right</key>
+				<integer>841</integer>
+				<key>top</key>
+				<integer>192</integer>
+			</dict>
+		</dict>
+	</array>
+	<key>recent-folders</key>
+	<array>
+		<dict>
+			<key>file-data</key>
+			<dict>
+				<key>_CFURLAliasData</key>
+				<data>
+				AAAAAAEsAAIAAQNIREQAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAADAD3e5SCsAAAAAAS0JVXRpbGl0aWVzAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAAAAABLr+AjHoAAAAAAAAAAP//
+				//8AAAkgAAAAAAAAAAAAAAAAAAAADEFwcGxpY2F0aW9u
+				cwAQAAgAAMAPaakAAAARAAgAAL+AcFoAAAABAAQAAAEt
+				AAIAGkhERDpBcHBsaWNhdGlvbnM6VXRpbGl0aWVzAA4A
+				FAAJAFUAdABpAGwAaQB0AGkAZQBzAA8ACAADAEgARABE
+				ABIAFkFwcGxpY2F0aW9ucy9VdGlsaXRpZXMAEwABLwD/
+				/wAA
+				</data>
+				<key>_CFURLString</key>
+				<string>file://localhost/Applications/Utilities/</string>
+				<key>_CFURLStringType</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>file-data</key>
+			<dict>
+				<key>_CFURLAliasData</key>
+				<data>
+				AAAAAAESAAIAAQNIREQAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAADAD3e5SCsAAAAAAAIMQXBwbGljYXRpb25zAAAA
+				AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAAAAABLb+Ag7EAAAAAAAAAAP//
+				//8AAAkgAAAAAAAAAAAAAAAAAAAAA0hERAAAEAAIAADA
+				D2mpAAAAEQAIAAC/gGeRAAAAAQAAAAIAEEhERDpBcHBs
+				aWNhdGlvbnMADgAaAAwAQQBwAHAAbABpAGMAYQB0AGkA
+				bwBuAHMADwAIAAMASABEAEQAEgAMQXBwbGljYXRpb25z
+				ABMAAS8A//8AAA==
+				</data>
+				<key>_CFURLString</key>
+				<string>file://localhost/Applications/</string>
+				<key>_CFURLStringType</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>file-data</key>
+			<dict>
+				<key>_CFURLAliasData</key>
+				<data>
+				AAAAAAEWAAIAAQNhZnMAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAQkQAAf////8IY2FoeXA4YW0AAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP//
+				//8AABIAY3UAAAAAAAAAAAAAAAAAAWMAAAIAIS86YWZz
+				Om1zLm1mZi5jdW5pLmN6OnU6YzpjYWh5cDhhbQAADgAS
+				AAgAYwBhAGgAeQBwADgAYQBtAA8ACAADAGEAZgBzABIA
+				HC9tcy5tZmYuY3VuaS5jei91L2MvY2FoeXA4YW0AEwAE
+				L2FmcwAVAAIAIP//AAA=
+				</data>
+				<key>_CFURLString</key>
+				<string>file://localhost/afs/ms.mff.cuni.cz/u/c/cahyp8am/</string>
+				<key>_CFURLStringType</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>file-data</key>
+			<dict>
+				<key>_CFURLAliasData</key>
+				<data>
+				AAAAAAEqAAIAAQNhZnMAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAQkQAAf////8HRGVza3RvcAAAAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP//
+				//8AABIAY3UAAAAAAAAAAAAAAAAACGNhaHlwOGFtAAIA
+				KS86YWZzOm1zLm1mZi5jdW5pLmN6OnU6YzpjYWh5cDhh
+				bTpEZXNrdG9wAAAOABAABwBEAGUAcwBrAHQAbwBwAA8A
+				CAADAGEAZgBzABIAJC9tcy5tZmYuY3VuaS5jei91L2Mv
+				Y2FoeXA4YW0vRGVza3RvcAATAAQvYWZzABUAAgAg//8A
+				AA==
+				</data>
+				<key>_CFURLString</key>
+				<string>file://localhost/afs/ms.mff.cuni.cz/u/c/cahyp8am/Desktop/</string>
+				<key>_CFURLStringType</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>file-data</key>
+			<dict>
+				<key>_CFURLAliasData</key>
+				<data>
+				AAAAAADIAAIAAQNhZnMAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAQkQAAf////8DYWZzAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+				AAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP//
+				//8AABIAY3UAAAAAAAAAAAAAAAIABS86YWZzAAAOAAgA
+				AwBhAGYAcwAPAAgAAwBhAGYAcwASAAAAEwAEL2Fmc///
+				AAA=
+				</data>
+				<key>_CFURLString</key>
+				<string>file://localhost/afs/</string>
+				<key>_CFURLStringType</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+	</array>
+	<key>toolbar-view-style</key>
+	<string>2</string>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ax.xml
===================================================================
RCS file: regress/lib/libprop/samples/ax.xml
diff -N regress/lib/libprop/samples/ax.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ax.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>Applications</key>
+	<dict>
+		<key>Controller</key>
+		<string>CustomListItems</string>
+		<key>CustomListItems</key>
+		<array>
+			<dict>
+				<key>Alias</key>
+				<data>
+				AAAAAACiAAMAAQAAwA9pqQAASCsAAAAAAAABLgAAChMA
+				AL8vpD4AAAAACSD//gAAAAAAAAAA/////wABAAgAAAEu
+				AAABLQAOABoADABUAGUAcgBtAGkAbgBhAGwALgBhAHAA
+				cAAPAAgAAwBIAEQARAASACNBcHBsaWNhdGlvbnMvVXRp
+				bGl0aWVzL1Rlcm1pbmFsLmFwcAAAEwABLwD//wAA
+				</data>
+				<key>Icon</key>
+				<data>
+				SW1nUgAAAOAAAAAARkJJTAAAANQAAAACAAAAAAAAAAAA
+				xAADAAAAAMAPaakAAEgrAAAAAAAAChkAAOXqAAC/L6Pl
+				AAAAAAkg//4AAAAAAAAAAP////8AAQAUAAAKGQAAChQA
+				AAoTAAABLgAAAS0ADgAUAAkAaQBjAG8AbgAuAGkAYwBu
+				AHMADwAIAAMASABEAEQAEgBAQXBwbGljYXRpb25zL1V0
+				aWxpdGllcy9UZXJtaW5hbC5hcHAvQ29udGVudHMvUmVz
+				b3VyY2VzL2ljb24uaWNucwATAAEvAP//AAA=
+				</data>
+				<key>Name</key>
+				<string>Terminal</string>
+			</dict>
+		</array>
+		<key>MaxAmount</key>
+		<integer>10</integer>
+	</dict>
+	<key>Servers</key>
+	<dict>
+		<key>Controller</key>
+		<string>CustomListItems</string>
+		<key>CustomListItems</key>
+		<array>
+			<dict>
+				<key>Alias</key>
+				<data>
+				AAAAAABiAAMAAQAAAAAAAAAAQkRjdQAB//////////8A
+				AAAAAAAAAAAAEgD//gAAAAAAAAAA/////wAOAAgAAwBh
+				AGYAcwAPAAgAAwBhAGYAcwASAAAAEwAEL2Fmc///AAA=
+				</data>
+				<key>Name</key>
+				<string>afs</string>
+			</dict>
+		</array>
+		<key>MaxAmount</key>
+		<integer>10</integer>
+	</dict>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ay.xml
===================================================================
RCS file: regress/lib/libprop/samples/ay.xml
diff -N regress/lib/libprop/samples/ay.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ay.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>AddressBarPreferencesWereConverted</key>
+	<true/>
+	<key>BuiltInBookmarksDate</key>
+	<string>2005-10-14 18:23:30 +0200</string>
+	<key>BuiltInBookmarksVersionString</key>
+	<string>5</string>
+	<key>CachedBookmarksFileDateNanoseconds</key>
+	<integer>0</integer>
+	<key>CachedBookmarksFileDateSeconds</key>
+	<integer>1152718722</integer>
+	<key>CachedBookmarksFileSize</key>
+	<integer>22048</integer>
+	<key>IEFavoritesWereImported</key>
+	<true/>
+	<key>LastVersionRun</key>
+	<string>419.3</string>
+	<key>NSToolbar Configuration SafariToolbarIdentifier</key>
+	<dict>
+		<key>TB Display Mode</key>
+		<integer>2</integer>
+		<key>TB Icon Size Mode</key>
+		<integer>1</integer>
+		<key>TB Is Shown</key>
+		<integer>1</integer>
+		<key>TB Item Identifiers</key>
+		<array>
+			<string>BackForwardToolbarIdentifier</string>
+			<string>StopOrReloadToolbarIdentifier</string>
+			<string>AddBookmarkToolbarIdentifier</string>
+			<string>InputFieldsToolbarIdentifier</string>
+		</array>
+		<key>TB Size Mode</key>
+		<integer>1</integer>
+		<key>TB Visibility Priority Values</key>
+		<dict>
+			<key>BackForwardToolbarIdentifier</key>
+			<array>
+				<integer>999</integer>
+			</array>
+			<key>InputFieldsToolbarIdentifier</key>
+			<array>
+				<integer>1000</integer>
+			</array>
+		</dict>
+	</dict>
+	<key>NSWindow Frame BrowserWindowFrame</key>
+	<string>527 106 800 772 0 0 1440 878 </string>
+	<key>NetscapeAndMozillaFavoritesWereImported</key>
+	<true/>
+	<key>OpenWindows</key>
+	<array/>
+	<key>WebIconDatabaseDirectoryDefaultsKey</key>
+	<string>~/Library/Safari/Icons</string>
+	<key>WebKitPrivateBrowsingEnabled</key>
+	<false/>
+	<key>WebKitRespectStandardStyleKeyEquivalents</key>
+	<true/>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/az.xml
===================================================================
RCS file: regress/lib/libprop/samples/az.xml
diff -N regress/lib/libprop/samples/az.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/az.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>NSColorPanelMode</key>
+	<string>6</string>
+	<key>NSColorPanelVisibleSwatchRows</key>
+	<integer>1</integer>
+	<key>NSWindow Frame NSColorPanel</key>
+	<string>491 339 201 309 0 0 1440 878 </string>
+	<key>StartupFile</key>
+	<string></string>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/ba.xml
===================================================================
RCS file: regress/lib/libprop/samples/ba.xml
diff -N regress/lib/libprop/samples/ba.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/ba.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>41a4ca9c705386d3-savedcity</key>
+	<string>prague</string>
+</dict>
+</plist>
Index: regress/lib/libprop/samples/bb.xml
===================================================================
RCS file: regress/lib/libprop/samples/bb.xml
diff -N regress/lib/libprop/samples/bb.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regress/lib/libprop/samples/bb.xml	27 Oct 2007 15:47:24 -0000
@@ -0,0 +1,8137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+	<dict>
+		<key>attachment</key>
+		<string>audio</string>
+		<key>attribute</key>
+		<string>audiobus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>audio</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>midi</string>
+		<key>attribute</key>
+		<string>midibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>midi</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>midi_pcppi</string>
+		<key>attribute</key>
+		<string>pcppi</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>midi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcppi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>iic</string>
+		<key>attribute</key>
+		<string>i2cbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>iic</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>piixpm</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>irframe</string>
+		<key>attribute</key>
+		<string>irbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>irframe</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uirda</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>irframe</string>
+		<key>attribute</key>
+		<string>irbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>irframe</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ustir</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>irframe</string>
+		<key>attribute</key>
+		<string>irbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>irframe</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>oboe</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lpt_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>lpt</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>7</integer>
+			<key>port</key>
+			<integer>0x378</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lpt_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>lpt</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x278</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lpt_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>lpt</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x3bc</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lpt_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>lpt</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lpt_puc</string>
+		<key>attribute</key>
+		<string>puc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>lpt</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>puc</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_iop</string>
+		<key>attribute</key>
+		<string>iop</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>iop</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_aac</string>
+		<key>attribute</key>
+		<string>aac</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>aac</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_amr</string>
+		<key>attribute</key>
+		<string>amr</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>amr</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_cac</string>
+		<key>attribute</key>
+		<string>cac</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cac</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_icp</string>
+		<key>attribute</key>
+		<string>icp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>icp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_twa</string>
+		<key>attribute</key>
+		<string>twa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>twa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_twe</string>
+		<key>attribute</key>
+		<string>twe</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>twe</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_mlx</string>
+		<key>attribute</key>
+		<string>mlx</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mlx</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ld_ataraid</string>
+		<key>attribute</key>
+		<string>ataraid</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ld</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ataraid</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>acphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>amhphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>amhphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bmtphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bmtphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>brgphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>brgphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tlphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tlphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>nsphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>nsphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>nsphyter</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>nsphyter</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>gentbi</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>gentbi</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>glxtphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>glxtphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>gphyter</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>gphyter</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>qsphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>qsphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>inphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>inphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>iophy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>iophy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>exphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>exphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lxtphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>lxtphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>makphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>makphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>icsphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>icsphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>igphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>igphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ikphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ikphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sqphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sqphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tqphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tqphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>dmphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>dmphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pnaphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pnaphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>rgephy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>rgephy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>urlphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>urlphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ukphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ukphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ciphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ciphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>rlphy</string>
+		<key>attribute</key>
+		<string>mii</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>rlphy</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aic_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>aic</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>11</integer>
+			<key>port</key>
+			<integer>0x340</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aic_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>aic</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aic_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>aic</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ahc_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>ahc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ahc_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ahc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ahc_eisa</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ahc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ahc_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ahc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ahd_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ahd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>dpt_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>dpt</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>dpt_eisa</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>dpt</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cac_eisa</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cac</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cac_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cac</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ciss_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ciss</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mlx_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mlx</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mlx_eisa</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mlx</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>icp_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>icp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>icpsp</string>
+		<key>attribute</key>
+		<string>icp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>icpsp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>icp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aac_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>aac</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>adv_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>adv</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>adv_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>adv</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>adv_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>adv</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>adw_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>adw</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bha_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>bha</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x330</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bha_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>bha</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x334</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bha_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bha</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bha_eisa</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bha</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aha_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>aha</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x330</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aha_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>aha</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x334</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aha_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>aha</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aha_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>aha</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>iha_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>iha</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>isp_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>isp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mfi_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mfi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpt_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpt</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>njs_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>njs</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>njs_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>njs</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>siop_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>siop</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>esiop_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>esiop</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uha_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>uha</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x330</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uha_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>uha</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x340</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uha_eisa</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uha</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>an_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>an</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>an_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>an</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>an_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>an</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>awi_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>awi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wi_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wi_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ath_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ath</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ath_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ath</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>atw_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>atw</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>atw_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>atw</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>rtw_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>rtw</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>rtw_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>rtw</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ral_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ral</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ral_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ral</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ural</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ral</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ep_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ep</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ep_eisa</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ep</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ep_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ep</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ep_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ep</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ep_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ep</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ep_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ep</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ex_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ex</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ex_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ex</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lc_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>lc</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x320</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>le_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>le</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>le_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>le</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>le_nele</string>
+		<key>attribute</key>
+		<string>nele</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>le</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>nele</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>le_bicc</string>
+		<key>attribute</key>
+		<string>bicc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>le</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>bicc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>le_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>le</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>hme_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>hme</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tr_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>tr</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xd8000</integer>
+			<key>port</key>
+			<integer>0xa20</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tr_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>tr</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xd0000</integer>
+			<key>port</key>
+			<integer>0xa24</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tr_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tr</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tr_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tr</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tr_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tr</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cy_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cy</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>en_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>en</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>esp_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>esp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>spc_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>spc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ntwoc_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ntwoc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fxp_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fxp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fxp_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fxp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sm_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>sm</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>10</integer>
+			<key>port</key>
+			<integer>0x300</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sm_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sm</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sm_mhzc</string>
+		<key>attribute</key>
+		<string>mhzc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sm</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mhzc</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>epic_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>epic</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mbe_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mbe</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ne_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>ne</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>9</integer>
+			<key>port</key>
+			<integer>0x280</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ne_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>ne</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>10</integer>
+			<key>port</key>
+			<integer>0x300</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ne_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ne</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ne_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ne</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ne_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ne</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ne_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ne</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>4</integer>
+			<key>port</key>
+			<integer>0x3f8</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>3</integer>
+			<key>port</key>
+			<integer>0x2f8</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>5</integer>
+			<key>port</key>
+			<integer>0x3e8</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_puc</string>
+		<key>attribute</key>
+		<string>puc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>puc</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_pcmcom</string>
+		<key>attribute</key>
+		<string>pcmcom</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcom</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_xirc</string>
+		<key>attribute</key>
+		<string>xirc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>xirc</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>com_mhzc</string>
+		<key>attribute</key>
+		<string>mhzc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>com</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mhzc</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pckbc_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>pckbc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pckbc_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pckbc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>attimer_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>attimer</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>attimer_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>attimer</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ug_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ug</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>esh_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>esh</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_cmpci</string>
+		<key>attribute</key>
+		<string>cmpci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>flags</key>
+		<integer>0x1</integer>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cmpci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_eso</string>
+		<key>attribute</key>
+		<string>eso</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eso</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_ess</string>
+		<key>attribute</key>
+		<string>ess</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ess</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_fms</string>
+		<key>attribute</key>
+		<string>fms</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>fms</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_sb</string>
+		<key>attribute</key>
+		<string>sbdsp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>sb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_sv</string>
+		<key>attribute</key>
+		<string>sv</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>sv</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_wss</string>
+		<key>attribute</key>
+		<string>wss</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>wss</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_yds</string>
+		<key>attribute</key>
+		<string>yds</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>yds</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>opl_ym</string>
+		<key>attribute</key>
+		<string>ym</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>opl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ym</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpu_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpu_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpu_cmpci</string>
+		<key>attribute</key>
+		<string>cmpci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cmpci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpu_eso</string>
+		<key>attribute</key>
+		<string>eso</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eso</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpu_fms</string>
+		<key>attribute</key>
+		<string>fms</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>fms</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpu_sb</string>
+		<key>attribute</key>
+		<string>sbdsp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>sb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpu_yds</string>
+		<key>attribute</key>
+		<string>yds</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>yds</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mpu_ym</string>
+		<key>attribute</key>
+		<string>ym</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ym</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>rtk_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>rtk</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>rtk_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>rtk</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>re_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>re</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wdc_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>wdc</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>14</integer>
+			<key>port</key>
+			<integer>0x1f0</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wdc_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>wdc</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>15</integer>
+			<key>port</key>
+			<integer>0x170</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wdc_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wdc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wdc_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wdc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>atabus</string>
+		<key>attribute</key>
+		<string>ata</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>atabus</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ahcisata_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ahcisata</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>jmahci</string>
+		<key>attribute</key>
+		<string>jmide_hl</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ahcisata</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>jmide</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tlp_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tlp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tlp_eisa</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tlp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tlp_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tlp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sf_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sf</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>we_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>we</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xd0000</integer>
+			<key>irq</key>
+			<integer>9</integer>
+			<key>port</key>
+			<integer>0x280</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>we_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>we</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xcc000</integer>
+			<key>irq</key>
+			<integer>10</integer>
+			<key>port</key>
+			<integer>0x300</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>we_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>we</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ate_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>ate</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x2a0</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ate_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ate</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fmv_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>fmv</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x2a0</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fmv_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fmv</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cs_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>cs</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x300</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cs_pcmcia</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cs</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>hpet_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>hpet</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>vga_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>vga</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>vga_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>vga</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uhci_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uhci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uhci_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uhci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ohci_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ohci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ohci_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ohci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ehci_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ehci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ehci_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ehci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mtd_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mtd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>radio</string>
+		<key>attribute</key>
+		<string>radiodev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>radio</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>udsbr</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>radio</string>
+		<key>attribute</key>
+		<string>radiodev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>radio</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>bktr</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fwohci_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fwohci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fwohci_cardbus</string>
+		<key>attribute</key>
+		<string>cardbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fwohci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>spic_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>spic</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>joy_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>joy</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>joy_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>joy</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>joy_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>joy</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>joy_eso</string>
+		<key>attribute</key>
+		<string>eso</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>joy</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eso</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>gpio</string>
+		<key>attribute</key>
+		<string>gpiobus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>gpio</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>elansc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ioapic</string>
+		<key>attribute</key>
+		<string>ioapicbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ioapic</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mainbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>scsibus</string>
+		<key>attribute</key>
+		<string>scsi</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>scsibus</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>atapibus</string>
+		<key>attribute</key>
+		<string>atapi</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>atapibus</string>
+		<key>locators</key>
+		<dict/>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cd</string>
+		<key>attribute</key>
+		<string>scsibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>scsibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cd</string>
+		<key>attribute</key>
+		<string>atapibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>atapibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ch</string>
+		<key>attribute</key>
+		<string>scsibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ch</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>scsibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sd</string>
+		<key>attribute</key>
+		<string>scsibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>scsibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sd</string>
+		<key>attribute</key>
+		<string>atapibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>atapibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>st_scsibus</string>
+		<key>attribute</key>
+		<string>scsibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>st</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>scsibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>st_atapibus</string>
+		<key>attribute</key>
+		<string>atapibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>st</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>atapibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ses</string>
+		<key>attribute</key>
+		<string>scsibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ses</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>scsibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ss</string>
+		<key>attribute</key>
+		<string>scsibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ss</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>scsibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uk</string>
+		<key>attribute</key>
+		<string>scsibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uk</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>scsibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uk</string>
+		<key>attribute</key>
+		<string>atapibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uk</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>atapibus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wd</string>
+		<key>attribute</key>
+		<string>ata_hl</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>atabus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wd</string>
+		<key>attribute</key>
+		<string>ata_hl</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>umass</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>iop_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>iop</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>iopsp</string>
+		<key>attribute</key>
+		<string>iop</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>iopsp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>iop</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>dpti</string>
+		<key>attribute</key>
+		<string>iop</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>dpti</string>
+		<key>locators</key>
+		<dict>
+			<key>tid</key>
+			<integer>0</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>iop</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mainbus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>mainbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pci</string>
+		<key>attribute</key>
+		<string>pcibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mainbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pci</string>
+		<key>attribute</key>
+		<string>pcibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pchb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pci</string>
+		<key>attribute</key>
+		<string>pcibus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ppb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>twe</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>twe</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>twa</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>twa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>amr</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>amr</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mly</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mly</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcscp</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcscp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fpa</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fpa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcn</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcn</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>trm</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>trm</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pciide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pciide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acardide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>acardide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aceride</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>aceride</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>artsata</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>artsata</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cmdide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cmdide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cypide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cypide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>geodeide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>geodeide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>hptide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>hptide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>iteide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>iteide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>jmide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>jmide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>optiide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>optiide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>piixide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>piixide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pdcsata</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pdcsata</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pdcide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pdcide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>rccide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>rccide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>svwsata</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>svwsata</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>satalink</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>satalink</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>siside</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>siside</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>slide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>slide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>viaide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>viaide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>stpcide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>stpcide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ixpide</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ixpide</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ppb</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ppb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cz</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cz</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tl</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lmc</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>lmc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bktr</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bktr</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>clcs</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>clcs</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>clct</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>clct</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fms</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fms</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>eap</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>eap</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>auacer</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>auacer</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>auich</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>auich</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>auvia</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>auvia</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>auixp</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>auixp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>azalia</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>azalia</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>neo</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>neo</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>esa</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>esa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>eso</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>eso</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>esm</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>esm</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sv</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sv</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cmpci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cmpci</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>yds</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>yds</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>emuxki</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>emuxki</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>autri</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>autri</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>puc</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>puc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>vr</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>vr</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sip</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sip</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>gsip</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>gsip</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>stge</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>stge</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wm</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wm</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bge</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bge</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bnx</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bnx</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ti</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ti</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ste</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ste</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cbb_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cbb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>piixpm</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>piixpm</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>amdpm</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>amdpm</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>hifn</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>hifn</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ubsec</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ubsec</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>oboe</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>oboe</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>weasel_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>weasel</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>txp</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>txp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>skc</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>skc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sk</string>
+		<key>attribute</key>
+		<string>skc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sk</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>skc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bce</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bce</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>dge</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>dge</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ipw</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ipw</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>iwi</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>iwi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wpi</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wpi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>xge</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>xge</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>vge</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>vge</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>nfe</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>nfe</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mskc</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mskc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>msk</string>
+		<key>attribute</key>
+		<string>mskc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>msk</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mskc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>agp</string>
+		<key>attribute</key>
+		<string>agpbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>agp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pchb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pchb</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pchb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>elansc</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>elansc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>geodegcb</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>geodegcb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>geodewdog</string>
+		<key>attribute</key>
+		<string>geodegcb</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>geodewdog</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>geodegcb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>geodecntr</string>
+		<key>attribute</key>
+		<string>geodegcb</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>geodecntr</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>geodegcb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pceb</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pceb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcib</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcib</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>piixpcib</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>piixpcib</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcmb</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcmb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>isa</string>
+		<key>attribute</key>
+		<string>isabus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>isa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>piixpcib</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>isa</string>
+		<key>attribute</key>
+		<string>isabus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>isa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mainbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>isa</string>
+		<key>attribute</key>
+		<string>isabus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>isa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pceb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>isa</string>
+		<key>attribute</key>
+		<string>isabus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>isa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcib</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sea</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>sea</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xc8000</integer>
+			<key>irq</key>
+			<integer>5</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wds</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>wds</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>6</integer>
+			<key>irq</key>
+			<integer>15</integer>
+			<key>port</key>
+			<integer>0x350</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wds</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>wds</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>5</integer>
+			<key>irq</key>
+			<integer>11</integer>
+			<key>port</key>
+			<integer>0x358</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ec</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>ec</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xd8000</integer>
+			<key>irq</key>
+			<integer>9</integer>
+			<key>port</key>
+			<integer>0x250</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>eg</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>eg</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>9</integer>
+			<key>port</key>
+			<integer>0x280</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>el</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>el</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>9</integer>
+			<key>port</key>
+			<integer>0x300</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>iy</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>iy</string>
+		<key>locators</key>
+		<dict>
+			<key>port</key>
+			<integer>0x360</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>nele</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>nele</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>7</integer>
+			<key>irq</key>
+			<integer>9</integer>
+			<key>port</key>
+			<integer>0x320</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bicc</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>bicc</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>7</integer>
+			<key>irq</key>
+			<integer>10</integer>
+			<key>port</key>
+			<integer>0x320</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ef</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>ef</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xd0000</integer>
+			<key>irq</key>
+			<integer>7</integer>
+			<key>port</key>
+			<integer>0x360</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ai</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>ai</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xd0000</integer>
+			<key>irq</key>
+			<integer>7</integer>
+			<key>port</key>
+			<integer>0x360</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ix</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>ix</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>10</integer>
+			<key>port</key>
+			<integer>0x300</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sb_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>sb</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>1</integer>
+			<key>drq2</key>
+			<integer>5</integer>
+			<key>irq</key>
+			<integer>5</integer>
+			<key>port</key>
+			<integer>0x220</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sb_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pas</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>pas</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>1</integer>
+			<key>irq</key>
+			<integer>7</integer>
+			<key>port</key>
+			<integer>0x220</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wss_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>wss</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>0</integer>
+			<key>drq2</key>
+			<integer>1</integer>
+			<key>irq</key>
+			<integer>10</integer>
+			<key>port</key>
+			<integer>0x530</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wss_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wss</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wss_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wss</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ess_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ess</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ym_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ym</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ym_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ym</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>gus</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>gus</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>1</integer>
+			<key>drq2</key>
+			<integer>6</integer>
+			<key>irq</key>
+			<integer>7</integer>
+			<key>port</key>
+			<integer>0x220</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcdisplay</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>pcdisplay</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcppi</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>pcppi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcppi_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcppi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>isapnp</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>isapnp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>guspnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>guspnp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>npx_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>npx</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>13</integer>
+			<key>port</key>
+			<integer>0xf0</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>npx_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>npx</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lms</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>lms</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>5</integer>
+			<key>port</key>
+			<integer>0x23c</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>lms</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>lms</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>5</integer>
+			<key>port</key>
+			<integer>0x238</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mms</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>mms</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>5</integer>
+			<key>port</key>
+			<integer>0x23c</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mms</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>mms</string>
+		<key>locators</key>
+		<dict>
+			<key>irq</key>
+			<integer>5</integer>
+			<key>port</key>
+			<integer>0x238</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsdisplay_emul</string>
+		<key>attribute</key>
+		<string>wsemuldisplaydev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsdisplay</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>vga</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsdisplay_emul</string>
+		<key>attribute</key>
+		<string>wsemuldisplaydev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsdisplay</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcdisplay</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wskbd</string>
+		<key>attribute</key>
+		<string>wskbddev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wskbd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pckbd</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wskbd</string>
+		<key>attribute</key>
+		<string>wskbddev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wskbd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ukbd</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wskbd</string>
+		<key>attribute</key>
+		<string>wskbddev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wskbd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>btkbd</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsmouse</string>
+		<key>attribute</key>
+		<string>wsmousedev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsmouse</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>spic</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsmouse</string>
+		<key>attribute</key>
+		<string>wsmousedev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsmouse</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pms</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsmouse</string>
+		<key>attribute</key>
+		<string>wsmousedev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsmouse</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ums</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsmouse</string>
+		<key>attribute</key>
+		<string>wsmousedev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsmouse</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uep</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsmouse</string>
+		<key>attribute</key>
+		<string>wsmousedev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsmouse</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>btms</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsmouse</string>
+		<key>attribute</key>
+		<string>wsmousedev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsmouse</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>lms</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>wsmouse</string>
+		<key>attribute</key>
+		<string>wsmousedev</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>wsmouse</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mms</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pckbd</string>
+		<key>attribute</key>
+		<string>pckbport</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pckbd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pckbc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pms</string>
+		<key>attribute</key>
+		<string>pckbport</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pms</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pckbc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sysbeep</string>
+		<key>attribute</key>
+		<string>pcppi</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>sysbeep</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcppi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fdc_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>fdc</string>
+		<key>locators</key>
+		<dict>
+			<key>drq</key>
+			<integer>2</integer>
+			<key>irq</key>
+			<integer>6</integer>
+			<key>port</key>
+			<integer>0x3f0</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fd</string>
+		<key>attribute</key>
+		<string>fdc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>fdc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>eisa</string>
+		<key>attribute</key>
+		<string>eisabus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>eisa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mainbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>eisa</string>
+		<key>attribute</key>
+		<string>eisabus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>eisa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pceb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ahb</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ahb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fea</string>
+		<key>attribute</key>
+		<string>eisa</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fea</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>eisa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mca</string>
+		<key>attribute</key>
+		<string>mcabus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>mca</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mainbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>elmc_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>elmc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>edc_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>edc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ed_mca</string>
+		<key>attribute</key>
+		<string>edc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ed</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>edc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tra_mca</string>
+		<key>attribute</key>
+		<string>mca</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>tra</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mca</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acpiapm</string>
+		<key>attribute</key>
+		<string>acpiapmbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>apm</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cpu</string>
+		<key>attribute</key>
+		<string>cpubus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cpu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mainbus</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cardslot</string>
+		<key>attribute</key>
+		<string>pcmciaslot</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cardslot</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cbb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cardbus</string>
+		<key>attribute</key>
+		<string>cbbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cardbus</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardslot</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcic_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>pcic</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xd0000</integer>
+			<key>iosiz</key>
+			<integer>0x10000</integer>
+			<key>port</key>
+			<integer>0x3e0</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcic_pci</string>
+		<key>attribute</key>
+		<string>pci</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>pcic</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcic_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>pcic</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xe0000</integer>
+			<key>iosiz</key>
+			<integer>0x4000</integer>
+			<key>port</key>
+			<integer>0x3e2</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x1</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcic_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>pcic</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xe0000</integer>
+			<key>iosiz</key>
+			<integer>0x4000</integer>
+			<key>port</key>
+			<integer>0x3e4</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x2</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcic_isapnp</string>
+		<key>attribute</key>
+		<string>isapnp</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcic</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>isapnp</string>
+		<key>unit</key>
+		<integer>0x3</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>tcic_isa</string>
+		<key>attribute</key>
+		<string>isa</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>tcic</string>
+		<key>locators</key>
+		<dict>
+			<key>iomem</key>
+			<integer>0xd0000</integer>
+			<key>iosiz</key>
+			<integer>0x10000</integer>
+			<key>port</key>
+			<integer>0x240</integer>
+		</dict>
+		<key>parent-driver</key>
+		<string>isa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcmcia</string>
+		<key>attribute</key>
+		<string>pcmciabus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcmcia</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcic</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcmcia</string>
+		<key>attribute</key>
+		<string>pcmciabus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcmcia</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>tcic</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcmcia</string>
+		<key>attribute</key>
+		<string>pcmciabus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcmcia</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>cardslot</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>pcmcom</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>pcmcom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cnw</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cnw</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>mhzc</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>mhzc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ray</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ray</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>xirc</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>xirc</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>xi_xirc</string>
+		<key>attribute</key>
+		<string>xirc</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>xi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>xirc</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bt3c</string>
+		<key>attribute</key>
+		<string>pcmcia</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bt3c</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>pcmcia</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>usb</string>
+		<key>attribute</key>
+		<string>usbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>usb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ehci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>usb</string>
+		<key>attribute</key>
+		<string>usbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>usb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ohci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>usb</string>
+		<key>attribute</key>
+		<string>usbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>usb</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uhub</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uhub</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>usb</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uhub</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uhub</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uaudio</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uaudio</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>umidi</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>umidi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>umodem</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ubsa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uftdi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uipaq</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>umct</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uplcom</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uslsa</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uvscom</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uvisor</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucom</string>
+		<key>attribute</key>
+		<string>ucombus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ukyopon</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ugen</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ugen</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uhidev</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uhidev</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uhid</string>
+		<key>attribute</key>
+		<string>uhidbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uhid</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhidev</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ukbd</string>
+		<key>attribute</key>
+		<string>uhidbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ukbd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhidev</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ums</string>
+		<key>attribute</key>
+		<string>uhidbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ums</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhidev</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uep</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uep</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ucycom</string>
+		<key>attribute</key>
+		<string>uhidbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ucycom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhidev</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ulpt</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ulpt</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>umass</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>umass</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uirda</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uirda</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ustir</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ustir</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ubt</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ubt</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>urio</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>urio</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uvisor</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uvisor</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uyap</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uyap</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>udsbr</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>udsbr</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aue</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>aue</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cdce</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cdce</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>cue</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>cue</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>kue</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>kue</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>upl</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>upl</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>url</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>url</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>axe</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>axe</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>udav</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>udav</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>umodem</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>umodem</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uftdi</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uftdi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uplcom</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uplcom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>umct</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>umct</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uvscom</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uvscom</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ubsa</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ubsa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uipaq</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uipaq</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ukyopon</string>
+		<key>attribute</key>
+		<string>usbifif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ukyopon</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uslsa</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uslsa</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>uscanner</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>uscanner</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>usscanner</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>usscanner</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>atu</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>atu</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>rum</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>rum</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>utoppy</string>
+		<key>attribute</key>
+		<string>usbdevif</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>utoppy</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>uhub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bthub</string>
+		<key>attribute</key>
+		<string>btbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bthub</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>bt3c</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bthub</string>
+		<key>attribute</key>
+		<string>btbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bthub</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>btuart</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bthub</string>
+		<key>attribute</key>
+		<string>btbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bthub</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ubt</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>bthidev</string>
+		<key>attribute</key>
+		<string>bthub</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>bthidev</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>bthub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>btkbd</string>
+		<key>attribute</key>
+		<string>bthidbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>btkbd</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>bthidev</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>btms</string>
+		<key>attribute</key>
+		<string>bthidbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>btms</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>bthidev</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>btsco</string>
+		<key>attribute</key>
+		<string>bthub</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>btsco</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>bthub</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>ieee1394if</string>
+		<key>attribute</key>
+		<string>fwbus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>ieee1394if</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>fwohci</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>fwip</string>
+		<key>attribute</key>
+		<string>ieee1394if</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>fwip</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ieee1394if</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sbp</string>
+		<key>attribute</key>
+		<string>ieee1394if</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sbp</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>ieee1394if</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acpi</string>
+		<key>attribute</key>
+		<string>acpibus</string>
+		<key>clonable</key>
+		<false/>
+		<key>driver</key>
+		<string>acpi</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>mainbus</string>
+		<key>parent-unit</key>
+		<integer>0x0</integer>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acpiec</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>acpiec</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acpilid</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>acpilid</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acpibut</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>acpibut</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acpiacad</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>acpiacad</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acpibat</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>acpibat</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>acpitz</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>acpitz</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>aiboost</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>aiboost</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>vald_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>vald</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+	<dict>
+		<key>attachment</key>
+		<string>sony_acpi</string>
+		<key>attribute</key>
+		<string>acpinodebus</string>
+		<key>clonable</key>
+		<true/>
+		<key>driver</key>
+		<string>sony</string>
+		<key>locators</key>
+		<dict/>
+		<key>parent-driver</key>
+		<string>acpi</string>
+		<key>unit</key>
+		<integer>0x0</integer>
+	</dict>
+</array>
+</plist>
