From a87e61a32ee3835a88d03c4dd595c8e6cb7dd784 Mon Sep 17 00:00:00 2001 From: Adrian Dole Date: Tue, 5 Sep 2023 11:59:01 -0700 Subject: [PATCH] libbson and libmongoc 1.24.4 --- _static/documentation_options.js | 2 +- index.html | 8 +- libbson-releases.html | 9 +- libbson/1.24.3/api.html | 6 + libbson/1.24.3/bson_aligned_alloc.html | 6 + libbson/1.24.3/bson_aligned_alloc0.html | 6 + libbson/1.24.3/bson_append_array.html | 6 + libbson/1.24.3/bson_append_array_begin.html | 6 + libbson/1.24.3/bson_append_array_end.html | 6 + libbson/1.24.3/bson_append_binary.html | 6 + libbson/1.24.3/bson_append_bool.html | 6 + libbson/1.24.3/bson_append_code.html | 6 + .../1.24.3/bson_append_code_with_scope.html | 6 + libbson/1.24.3/bson_append_date_time.html | 6 + libbson/1.24.3/bson_append_dbpointer.html | 6 + libbson/1.24.3/bson_append_decimal128.html | 6 + libbson/1.24.3/bson_append_document.html | 6 + .../1.24.3/bson_append_document_begin.html | 6 + libbson/1.24.3/bson_append_document_end.html | 6 + libbson/1.24.3/bson_append_double.html | 6 + libbson/1.24.3/bson_append_int32.html | 6 + libbson/1.24.3/bson_append_int64.html | 6 + libbson/1.24.3/bson_append_iter.html | 6 + libbson/1.24.3/bson_append_maxkey.html | 6 + libbson/1.24.3/bson_append_minkey.html | 6 + libbson/1.24.3/bson_append_now_utc.html | 6 + libbson/1.24.3/bson_append_null.html | 6 + libbson/1.24.3/bson_append_oid.html | 6 + libbson/1.24.3/bson_append_regex.html | 6 + libbson/1.24.3/bson_append_regex_w_len.html | 6 + libbson/1.24.3/bson_append_symbol.html | 6 + libbson/1.24.3/bson_append_time_t.html | 6 + libbson/1.24.3/bson_append_timestamp.html | 6 + libbson/1.24.3/bson_append_timeval.html | 6 + libbson/1.24.3/bson_append_undefined.html | 6 + libbson/1.24.3/bson_append_utf8.html | 6 + libbson/1.24.3/bson_append_value.html | 6 + ...bson_array_as_canonical_extended_json.html | 6 + libbson/1.24.3/bson_array_as_json.html | 6 + .../bson_array_as_relaxed_extended_json.html | 6 + .../bson_as_canonical_extended_json.html | 6 + libbson/1.24.3/bson_as_json.html | 6 + libbson/1.24.3/bson_as_json_with_opts.html | 6 + .../1.24.3/bson_as_relaxed_extended_json.html | 6 + libbson/1.24.3/bson_ascii_strtoll.html | 6 + libbson/1.24.3/bson_check_version.html | 6 + libbson/1.24.3/bson_compare.html | 6 + libbson/1.24.3/bson_concat.html | 6 + libbson/1.24.3/bson_context_destroy.html | 6 + libbson/1.24.3/bson_context_get_default.html | 6 + libbson/1.24.3/bson_context_new.html | 6 + libbson/1.24.3/bson_context_t.html | 6 + libbson/1.24.3/bson_copy.html | 6 + libbson/1.24.3/bson_copy_to.html | 6 + libbson/1.24.3/bson_copy_to_excluding.html | 6 + .../1.24.3/bson_copy_to_excluding_noinit.html | 6 + .../bson_copy_to_excluding_noinit_va.html | 6 + libbson/1.24.3/bson_count_keys.html | 6 + .../1.24.3/bson_decimal128_from_string.html | 6 + .../bson_decimal128_from_string_w_len.html | 6 + libbson/1.24.3/bson_decimal128_t.html | 6 + libbson/1.24.3/bson_decimal128_to_string.html | 6 + libbson/1.24.3/bson_destroy.html | 6 + libbson/1.24.3/bson_destroy_with_steal.html | 6 + libbson/1.24.3/bson_equal.html | 6 + libbson/1.24.3/bson_error_t.html | 6 + libbson/1.24.3/bson_free.html | 6 + libbson/1.24.3/bson_get_data.html | 6 + libbson/1.24.3/bson_get_major_version.html | 6 + libbson/1.24.3/bson_get_micro_version.html | 6 + libbson/1.24.3/bson_get_minor_version.html | 6 + libbson/1.24.3/bson_get_monotonic_time.html | 6 + libbson/1.24.3/bson_get_version.html | 6 + libbson/1.24.3/bson_has_field.html | 6 + libbson/1.24.3/bson_init.html | 6 + libbson/1.24.3/bson_init_from_json.html | 6 + libbson/1.24.3/bson_init_static.html | 6 + libbson/1.24.3/bson_isspace.html | 6 + libbson/1.24.3/bson_iter_array.html | 6 + libbson/1.24.3/bson_iter_as_bool.html | 6 + libbson/1.24.3/bson_iter_as_double.html | 6 + libbson/1.24.3/bson_iter_as_int64.html | 6 + libbson/1.24.3/bson_iter_binary.html | 6 + libbson/1.24.3/bson_iter_bool.html | 6 + libbson/1.24.3/bson_iter_code.html | 6 + libbson/1.24.3/bson_iter_codewscope.html | 6 + libbson/1.24.3/bson_iter_date_time.html | 6 + libbson/1.24.3/bson_iter_dbpointer.html | 6 + libbson/1.24.3/bson_iter_decimal128.html | 6 + libbson/1.24.3/bson_iter_document.html | 6 + libbson/1.24.3/bson_iter_double.html | 6 + libbson/1.24.3/bson_iter_dup_utf8.html | 6 + libbson/1.24.3/bson_iter_find.html | 6 + libbson/1.24.3/bson_iter_find_case.html | 6 + libbson/1.24.3/bson_iter_find_descendant.html | 6 + libbson/1.24.3/bson_iter_find_w_len.html | 6 + libbson/1.24.3/bson_iter_init.html | 6 + libbson/1.24.3/bson_iter_init_find.html | 6 + libbson/1.24.3/bson_iter_init_find_case.html | 6 + libbson/1.24.3/bson_iter_init_find_w_len.html | 6 + libbson/1.24.3/bson_iter_init_from_data.html | 6 + .../bson_iter_init_from_data_at_offset.html | 6 + libbson/1.24.3/bson_iter_int32.html | 6 + libbson/1.24.3/bson_iter_int64.html | 6 + libbson/1.24.3/bson_iter_key.html | 6 + libbson/1.24.3/bson_iter_key_len.html | 6 + libbson/1.24.3/bson_iter_next.html | 6 + libbson/1.24.3/bson_iter_offset.html | 6 + libbson/1.24.3/bson_iter_oid.html | 6 + libbson/1.24.3/bson_iter_overwrite_bool.html | 6 + .../1.24.3/bson_iter_overwrite_date_time.html | 6 + .../bson_iter_overwrite_decimal128.html | 6 + .../1.24.3/bson_iter_overwrite_double.html | 6 + libbson/1.24.3/bson_iter_overwrite_int32.html | 6 + libbson/1.24.3/bson_iter_overwrite_int64.html | 6 + libbson/1.24.3/bson_iter_overwrite_oid.html | 6 + .../1.24.3/bson_iter_overwrite_timestamp.html | 6 + libbson/1.24.3/bson_iter_recurse.html | 6 + libbson/1.24.3/bson_iter_regex.html | 6 + libbson/1.24.3/bson_iter_symbol.html | 6 + libbson/1.24.3/bson_iter_t.html | 6 + libbson/1.24.3/bson_iter_time_t.html | 6 + libbson/1.24.3/bson_iter_timestamp.html | 6 + libbson/1.24.3/bson_iter_timeval.html | 6 + libbson/1.24.3/bson_iter_type.html | 6 + libbson/1.24.3/bson_iter_utf8.html | 6 + libbson/1.24.3/bson_iter_value.html | 6 + libbson/1.24.3/bson_iter_visit_all.html | 6 + .../1.24.3/bson_json_data_reader_ingest.html | 6 + libbson/1.24.3/bson_json_data_reader_new.html | 6 + libbson/1.24.3/bson_json_mode_t.html | 6 + libbson/1.24.3/bson_json_opts_destroy.html | 6 + libbson/1.24.3/bson_json_opts_new.html | 6 + .../bson_json_opts_set_outermost_array.html | 6 + libbson/1.24.3/bson_json_opts_t.html | 6 + libbson/1.24.3/bson_json_reader_destroy.html | 6 + libbson/1.24.3/bson_json_reader_new.html | 6 + .../1.24.3/bson_json_reader_new_from_fd.html | 6 + .../bson_json_reader_new_from_file.html | 6 + libbson/1.24.3/bson_json_reader_read.html | 6 + libbson/1.24.3/bson_json_reader_t.html | 6 + libbson/1.24.3/bson_malloc.html | 6 + libbson/1.24.3/bson_malloc0.html | 6 + libbson/1.24.3/bson_mem_restore_vtable.html | 6 + libbson/1.24.3/bson_mem_set_vtable.html | 6 + libbson/1.24.3/bson_memory.html | 6 + libbson/1.24.3/bson_new.html | 6 + libbson/1.24.3/bson_new_from_buffer.html | 6 + libbson/1.24.3/bson_new_from_data.html | 6 + libbson/1.24.3/bson_new_from_json.html | 6 + libbson/1.24.3/bson_oid_compare.html | 6 + libbson/1.24.3/bson_oid_copy.html | 6 + libbson/1.24.3/bson_oid_equal.html | 6 + libbson/1.24.3/bson_oid_get_time_t.html | 6 + libbson/1.24.3/bson_oid_hash.html | 6 + libbson/1.24.3/bson_oid_init.html | 6 + libbson/1.24.3/bson_oid_init_from_data.html | 6 + libbson/1.24.3/bson_oid_init_from_string.html | 6 + libbson/1.24.3/bson_oid_init_sequence.html | 6 + libbson/1.24.3/bson_oid_is_valid.html | 6 + libbson/1.24.3/bson_oid_t.html | 6 + libbson/1.24.3/bson_oid_to_string.html | 6 + libbson/1.24.3/bson_reader_destroy.html | 6 + .../1.24.3/bson_reader_destroy_func_t.html | 6 + libbson/1.24.3/bson_reader_new_from_data.html | 6 + libbson/1.24.3/bson_reader_new_from_fd.html | 6 + libbson/1.24.3/bson_reader_new_from_file.html | 6 + .../1.24.3/bson_reader_new_from_handle.html | 6 + libbson/1.24.3/bson_reader_read.html | 6 + libbson/1.24.3/bson_reader_read_func_t.html | 6 + libbson/1.24.3/bson_reader_reset.html | 6 + .../1.24.3/bson_reader_set_destroy_func.html | 6 + libbson/1.24.3/bson_reader_set_read_func.html | 6 + libbson/1.24.3/bson_reader_t.html | 6 + libbson/1.24.3/bson_reader_tell.html | 6 + libbson/1.24.3/bson_realloc.html | 6 + libbson/1.24.3/bson_realloc_ctx.html | 6 + libbson/1.24.3/bson_realloc_func.html | 6 + libbson/1.24.3/bson_reinit.html | 6 + libbson/1.24.3/bson_reserve_buffer.html | 6 + libbson/1.24.3/bson_set_error.html | 6 + libbson/1.24.3/bson_sized_new.html | 6 + libbson/1.24.3/bson_snprintf.html | 6 + libbson/1.24.3/bson_steal.html | 6 + libbson/1.24.3/bson_strcasecmp.html | 6 + libbson/1.24.3/bson_strdup.html | 6 + libbson/1.24.3/bson_strdup_printf.html | 6 + libbson/1.24.3/bson_strdupv_printf.html | 6 + libbson/1.24.3/bson_strerror_r.html | 6 + libbson/1.24.3/bson_strfreev.html | 6 + libbson/1.24.3/bson_string_append.html | 6 + libbson/1.24.3/bson_string_append_c.html | 6 + libbson/1.24.3/bson_string_append_printf.html | 6 + .../1.24.3/bson_string_append_unichar.html | 6 + libbson/1.24.3/bson_string_free.html | 6 + libbson/1.24.3/bson_string_new.html | 6 + libbson/1.24.3/bson_string_t.html | 6 + libbson/1.24.3/bson_string_truncate.html | 6 + libbson/1.24.3/bson_strncpy.html | 6 + libbson/1.24.3/bson_strndup.html | 6 + libbson/1.24.3/bson_strnlen.html | 6 + libbson/1.24.3/bson_subtype_t.html | 6 + libbson/1.24.3/bson_t.html | 6 + libbson/1.24.3/bson_type_t.html | 6 + libbson/1.24.3/bson_uint32_to_string.html | 6 + libbson/1.24.3/bson_unichar_t.html | 6 + libbson/1.24.3/bson_utf8_escape_for_json.html | 6 + libbson/1.24.3/bson_utf8_from_unichar.html | 6 + libbson/1.24.3/bson_utf8_get_char.html | 6 + libbson/1.24.3/bson_utf8_next_char.html | 6 + libbson/1.24.3/bson_utf8_validate.html | 6 + libbson/1.24.3/bson_validate.html | 6 + libbson/1.24.3/bson_validate_with_error.html | 6 + libbson/1.24.3/bson_value_copy.html | 6 + libbson/1.24.3/bson_value_destroy.html | 6 + libbson/1.24.3/bson_value_t.html | 6 + libbson/1.24.3/bson_visitor_t.html | 6 + libbson/1.24.3/bson_vsnprintf.html | 6 + libbson/1.24.3/bson_writer_begin.html | 6 + libbson/1.24.3/bson_writer_destroy.html | 6 + libbson/1.24.3/bson_writer_end.html | 6 + libbson/1.24.3/bson_writer_get_length.html | 6 + libbson/1.24.3/bson_writer_new.html | 6 + libbson/1.24.3/bson_writer_rollback.html | 6 + libbson/1.24.3/bson_writer_t.html | 6 + libbson/1.24.3/bson_zero_free.html | 6 + .../1.24.3/character_and_string_routines.html | 6 + libbson/1.24.3/creating.html | 6 + libbson/1.24.3/cross-platform-notes.html | 6 + libbson/1.24.3/endianness.html | 6 + libbson/1.24.3/errors.html | 6 + libbson/1.24.3/full_index.html | 6 + libbson/1.24.3/guides.html | 6 + libbson/1.24.3/include-and-link.html | 6 + libbson/1.24.3/index.html | 6 + libbson/1.24.3/json.html | 6 + libbson/1.24.3/oid.html | 6 + libbson/1.24.3/parsing.html | 6 + libbson/1.24.3/search.html | 6 + libbson/1.24.3/streaming-bson.html | 6 + libbson/1.24.3/threading.html | 6 + libbson/1.24.3/tutorial.html | 6 + libbson/1.24.3/utf8.html | 6 + libbson/1.24.3/version.html | 6 + libbson/1.24.4/.nojekyll | 1 + libbson/1.24.4/CMakeLists.txt | 31 + libbson/1.24.4/_static/ajax-loader.gif | Bin 0 -> 673 bytes libbson/1.24.4/_static/basic.css | 665 + libbson/1.24.4/_static/comment-bright.png | Bin 0 -> 756 bytes libbson/1.24.4/_static/comment-close.png | Bin 0 -> 829 bytes libbson/1.24.4/_static/comment.png | Bin 0 -> 641 bytes libbson/1.24.4/_static/doctools.js | 313 + .../1.24.4/_static/documentation_options.js | 9 + libbson/1.24.4/_static/down-pressed.png | Bin 0 -> 222 bytes libbson/1.24.4/_static/down.png | Bin 0 -> 202 bytes libbson/1.24.4/_static/file.png | Bin 0 -> 286 bytes libbson/1.24.4/_static/jquery-3.2.1.js | 10253 ++++++++++++++++ libbson/1.24.4/_static/jquery.js | 4 + libbson/1.24.4/_static/minus.png | Bin 0 -> 90 bytes libbson/1.24.4/_static/plus.png | Bin 0 -> 90 bytes libbson/1.24.4/_static/pygments.css | 70 + libbson/1.24.4/_static/readable.css | 461 + libbson/1.24.4/_static/searchtools.js | 667 + libbson/1.24.4/_static/underscore-1.3.1.js | 999 ++ libbson/1.24.4/_static/underscore.js | 31 + libbson/1.24.4/_static/up-pressed.png | Bin 0 -> 214 bytes libbson/1.24.4/_static/up.png | Bin 0 -> 203 bytes libbson/1.24.4/_static/websupport.js | 808 ++ libbson/1.24.4/api.html | 395 + libbson/1.24.4/bson_aligned_alloc.html | 162 + libbson/1.24.4/bson_aligned_alloc0.html | 162 + libbson/1.24.4/bson_append_array.html | 164 + libbson/1.24.4/bson_append_array_begin.html | 165 + libbson/1.24.4/bson_append_array_end.html | 156 + libbson/1.24.4/bson_append_binary.html | 168 + libbson/1.24.4/bson_append_bool.html | 161 + libbson/1.24.4/bson_append_code.html | 164 + .../1.24.4/bson_append_code_with_scope.html | 167 + libbson/1.24.4/bson_append_date_time.html | 164 + libbson/1.24.4/bson_append_dbpointer.html | 169 + libbson/1.24.4/bson_append_decimal128.html | 164 + libbson/1.24.4/bson_append_document.html | 164 + .../1.24.4/bson_append_document_begin.html | 165 + libbson/1.24.4/bson_append_document_end.html | 156 + libbson/1.24.4/bson_append_double.html | 164 + libbson/1.24.4/bson_append_int32.html | 164 + libbson/1.24.4/bson_append_int64.html | 164 + libbson/1.24.4/bson_append_iter.html | 161 + libbson/1.24.4/bson_append_maxkey.html | 160 + libbson/1.24.4/bson_append_minkey.html | 160 + libbson/1.24.4/bson_append_now_utc.html | 158 + libbson/1.24.4/bson_append_null.html | 159 + libbson/1.24.4/bson_append_oid.html | 164 + libbson/1.24.4/bson_append_regex.html | 175 + libbson/1.24.4/bson_append_regex_w_len.html | 174 + libbson/1.24.4/bson_append_symbol.html | 167 + libbson/1.24.4/bson_append_time_t.html | 164 + libbson/1.24.4/bson_append_timestamp.html | 168 + libbson/1.24.4/bson_append_timeval.html | 164 + libbson/1.24.4/bson_append_undefined.html | 160 + libbson/1.24.4/bson_append_utf8.html | 170 + libbson/1.24.4/bson_append_value.html | 164 + ...bson_array_as_canonical_extended_json.html | 211 + libbson/1.24.4/bson_array_as_json.html | 217 + .../bson_array_as_relaxed_extended_json.html | 211 + .../bson_as_canonical_extended_json.html | 191 + libbson/1.24.4/bson_as_json.html | 208 + libbson/1.24.4/bson_as_json_with_opts.html | 195 + .../1.24.4/bson_as_relaxed_extended_json.html | 191 + libbson/1.24.4/bson_ascii_strtoll.html | 167 + libbson/1.24.4/bson_check_version.html | 157 + libbson/1.24.4/bson_compare.html | 162 + libbson/1.24.4/bson_concat.html | 192 + libbson/1.24.4/bson_context_destroy.html | 152 + libbson/1.24.4/bson_context_get_default.html | 146 + libbson/1.24.4/bson_context_new.html | 165 + libbson/1.24.4/bson_context_t.html | 195 + libbson/1.24.4/bson_copy.html | 156 + libbson/1.24.4/bson_copy_to.html | 153 + libbson/1.24.4/bson_copy_to_excluding.html | 170 + .../1.24.4/bson_copy_to_excluding_noinit.html | 196 + .../bson_copy_to_excluding_noinit_va.html | 164 + libbson/1.24.4/bson_count_keys.html | 155 + .../1.24.4/bson_decimal128_from_string.html | 166 + .../bson_decimal128_from_string_w_len.html | 170 + libbson/1.24.4/bson_decimal128_t.html | 194 + libbson/1.24.4/bson_decimal128_to_string.html | 159 + libbson/1.24.4/bson_destroy.html | 152 + libbson/1.24.4/bson_destroy_with_steal.html | 163 + libbson/1.24.4/bson_equal.html | 156 + libbson/1.24.4/bson_error_t.html | 173 + libbson/1.24.4/bson_free.html | 151 + libbson/1.24.4/bson_get_data.html | 155 + libbson/1.24.4/bson_get_major_version.html | 149 + libbson/1.24.4/bson_get_micro_version.html | 149 + libbson/1.24.4/bson_get_minor_version.html | 149 + libbson/1.24.4/bson_get_monotonic_time.html | 152 + libbson/1.24.4/bson_get_version.html | 145 + libbson/1.24.4/bson_has_field.html | 156 + libbson/1.24.4/bson_init.html | 187 + libbson/1.24.4/bson_init_from_json.html | 214 + libbson/1.24.4/bson_init_static.html | 194 + libbson/1.24.4/bson_isspace.html | 156 + libbson/1.24.4/bson_iter_array.html | 157 + libbson/1.24.4/bson_iter_as_bool.html | 166 + libbson/1.24.4/bson_iter_as_double.html | 163 + libbson/1.24.4/bson_iter_as_int64.html | 161 + libbson/1.24.4/bson_iter_binary.html | 161 + libbson/1.24.4/bson_iter_bool.html | 157 + libbson/1.24.4/bson_iter_code.html | 159 + libbson/1.24.4/bson_iter_codewscope.html | 164 + libbson/1.24.4/bson_iter_date_time.html | 158 + libbson/1.24.4/bson_iter_dbpointer.html | 161 + libbson/1.24.4/bson_iter_decimal128.html | 160 + libbson/1.24.4/bson_iter_document.html | 158 + libbson/1.24.4/bson_iter_double.html | 158 + libbson/1.24.4/bson_iter_dup_utf8.html | 156 + libbson/1.24.4/bson_iter_find.html | 157 + libbson/1.24.4/bson_iter_find_case.html | 157 + libbson/1.24.4/bson_iter_find_descendant.html | 159 + libbson/1.24.4/bson_iter_find_w_len.html | 158 + libbson/1.24.4/bson_iter_init.html | 210 + libbson/1.24.4/bson_iter_init_find.html | 168 + libbson/1.24.4/bson_iter_init_find_case.html | 170 + libbson/1.24.4/bson_iter_init_find_w_len.html | 172 + libbson/1.24.4/bson_iter_init_from_data.html | 193 + .../bson_iter_init_from_data_at_offset.html | 188 + libbson/1.24.4/bson_iter_int32.html | 157 + libbson/1.24.4/bson_iter_int64.html | 157 + libbson/1.24.4/bson_iter_key.html | 161 + libbson/1.24.4/bson_iter_key_len.html | 161 + libbson/1.24.4/bson_iter_next.html | 156 + libbson/1.24.4/bson_iter_offset.html | 161 + libbson/1.24.4/bson_iter_oid.html | 157 + libbson/1.24.4/bson_iter_overwrite_bool.html | 154 + .../1.24.4/bson_iter_overwrite_date_time.html | 154 + .../bson_iter_overwrite_decimal128.html | 154 + .../1.24.4/bson_iter_overwrite_double.html | 154 + libbson/1.24.4/bson_iter_overwrite_int32.html | 154 + libbson/1.24.4/bson_iter_overwrite_int64.html | 154 + libbson/1.24.4/bson_iter_overwrite_oid.html | 154 + .../1.24.4/bson_iter_overwrite_timestamp.html | 157 + libbson/1.24.4/bson_iter_recurse.html | 158 + libbson/1.24.4/bson_iter_regex.html | 157 + libbson/1.24.4/bson_iter_symbol.html | 158 + libbson/1.24.4/bson_iter_t.html | 295 + libbson/1.24.4/bson_iter_time_t.html | 155 + libbson/1.24.4/bson_iter_timestamp.html | 160 + libbson/1.24.4/bson_iter_timeval.html | 152 + libbson/1.24.4/bson_iter_type.html | 179 + libbson/1.24.4/bson_iter_utf8.html | 161 + libbson/1.24.4/bson_iter_value.html | 156 + libbson/1.24.4/bson_iter_visit_all.html | 160 + .../1.24.4/bson_json_data_reader_ingest.html | 155 + libbson/1.24.4/bson_json_data_reader_new.html | 157 + libbson/1.24.4/bson_json_mode_t.html | 157 + libbson/1.24.4/bson_json_opts_destroy.html | 152 + libbson/1.24.4/bson_json_opts_new.html | 158 + .../bson_json_opts_set_outermost_array.html | 153 + libbson/1.24.4/bson_json_opts_t.html | 171 + libbson/1.24.4/bson_json_reader_destroy.html | 151 + libbson/1.24.4/bson_json_reader_new.html | 164 + .../1.24.4/bson_json_reader_new_from_fd.html | 156 + .../bson_json_reader_new_from_file.html | 160 + libbson/1.24.4/bson_json_reader_read.html | 175 + libbson/1.24.4/bson_json_reader_t.html | 263 + libbson/1.24.4/bson_malloc.html | 161 + libbson/1.24.4/bson_malloc0.html | 161 + libbson/1.24.4/bson_mem_restore_vtable.html | 149 + libbson/1.24.4/bson_mem_set_vtable.html | 165 + libbson/1.24.4/bson_memory.html | 157 + libbson/1.24.4/bson_new.html | 185 + libbson/1.24.4/bson_new_from_buffer.html | 199 + libbson/1.24.4/bson_new_from_data.html | 192 + libbson/1.24.4/bson_new_from_json.html | 209 + libbson/1.24.4/bson_oid_compare.html | 156 + libbson/1.24.4/bson_oid_copy.html | 152 + libbson/1.24.4/bson_oid_equal.html | 156 + libbson/1.24.4/bson_oid_get_time_t.html | 155 + libbson/1.24.4/bson_oid_hash.html | 155 + libbson/1.24.4/bson_oid_init.html | 152 + libbson/1.24.4/bson_oid_init_from_data.html | 152 + libbson/1.24.4/bson_oid_init_from_string.html | 158 + libbson/1.24.4/bson_oid_init_sequence.html | 161 + libbson/1.24.4/bson_oid_is_valid.html | 156 + libbson/1.24.4/bson_oid_t.html | 214 + libbson/1.24.4/bson_oid_to_string.html | 152 + libbson/1.24.4/bson_reader_destroy.html | 151 + .../1.24.4/bson_reader_destroy_func_t.html | 151 + libbson/1.24.4/bson_reader_new_from_data.html | 156 + libbson/1.24.4/bson_reader_new_from_fd.html | 158 + libbson/1.24.4/bson_reader_new_from_file.html | 160 + .../1.24.4/bson_reader_new_from_handle.html | 159 + libbson/1.24.4/bson_reader_read.html | 174 + libbson/1.24.4/bson_reader_read_func_t.html | 161 + libbson/1.24.4/bson_reader_reset.html | 151 + .../1.24.4/bson_reader_set_destroy_func.html | 153 + libbson/1.24.4/bson_reader_set_read_func.html | 152 + libbson/1.24.4/bson_reader_t.html | 262 + libbson/1.24.4/bson_reader_tell.html | 155 + libbson/1.24.4/bson_realloc.html | 162 + libbson/1.24.4/bson_realloc_ctx.html | 153 + libbson/1.24.4/bson_realloc_func.html | 152 + libbson/1.24.4/bson_reinit.html | 188 + libbson/1.24.4/bson_reserve_buffer.html | 267 + libbson/1.24.4/bson_set_error.html | 156 + libbson/1.24.4/bson_sized_new.html | 191 + libbson/1.24.4/bson_snprintf.html | 158 + libbson/1.24.4/bson_steal.html | 207 + libbson/1.24.4/bson_strcasecmp.html | 158 + libbson/1.24.4/bson_strdup.html | 155 + libbson/1.24.4/bson_strdup_printf.html | 155 + libbson/1.24.4/bson_strdupv_printf.html | 156 + libbson/1.24.4/bson_strerror_r.html | 157 + libbson/1.24.4/bson_strfreev.html | 151 + libbson/1.24.4/bson_string_append.html | 152 + libbson/1.24.4/bson_string_append_c.html | 152 + libbson/1.24.4/bson_string_append_printf.html | 153 + .../1.24.4/bson_string_append_unichar.html | 152 + libbson/1.24.4/bson_string_free.html | 156 + libbson/1.24.4/bson_string_new.html | 155 + libbson/1.24.4/bson_string_t.html | 181 + libbson/1.24.4/bson_string_truncate.html | 153 + libbson/1.24.4/bson_strncpy.html | 155 + libbson/1.24.4/bson_strndup.html | 156 + libbson/1.24.4/bson_strnlen.html | 156 + libbson/1.24.4/bson_subtype_t.html | 169 + libbson/1.24.4/bson_t.html | 364 + libbson/1.24.4/bson_type_t.html | 185 + libbson/1.24.4/bson_uint32_to_string.html | 178 + libbson/1.24.4/bson_unichar_t.html | 164 + libbson/1.24.4/bson_utf8_escape_for_json.html | 161 + libbson/1.24.4/bson_utf8_from_unichar.html | 153 + libbson/1.24.4/bson_utf8_get_char.html | 155 + libbson/1.24.4/bson_utf8_next_char.html | 156 + libbson/1.24.4/bson_utf8_validate.html | 157 + libbson/1.24.4/bson_validate.html | 167 + libbson/1.24.4/bson_validate_with_error.html | 187 + libbson/1.24.4/bson_value_copy.html | 152 + libbson/1.24.4/bson_value_destroy.html | 151 + libbson/1.24.4/bson_value_t.html | 219 + libbson/1.24.4/bson_visitor_t.html | 468 + libbson/1.24.4/bson_vsnprintf.html | 159 + libbson/1.24.4/bson_writer_begin.html | 156 + libbson/1.24.4/bson_writer_destroy.html | 151 + libbson/1.24.4/bson_writer_end.html | 151 + libbson/1.24.4/bson_writer_get_length.html | 156 + libbson/1.24.4/bson_writer_new.html | 164 + libbson/1.24.4/bson_writer_rollback.html | 151 + libbson/1.24.4/bson_writer_t.html | 197 + libbson/1.24.4/bson_zero_free.html | 152 + .../1.24.4/character_and_string_routines.html | 159 + libbson/1.24.4/creating.html | 203 + libbson/1.24.4/cross-platform-notes.html | 121 + libbson/1.24.4/endianness.html | 117 + libbson/1.24.4/errors.html | 105 + libbson/1.24.4/full_index.html | 396 + libbson/1.24.4/guides.html | 121 + libbson/1.24.4/include-and-link.html | 182 + libbson/1.24.4/index.html | 173 + libbson/1.24.4/json.html | 348 + libbson/1.24.4/objects.inv | Bin 0 -> 3067 bytes libbson/1.24.4/oid.html | 180 + libbson/1.24.4/parsing.html | 220 + libbson/1.24.4/search.html | 117 + libbson/1.24.4/searchindex.js | 1 + libbson/1.24.4/streaming-bson.html | 196 + libbson/1.24.4/threading.html | 118 + libbson/1.24.4/tutorial.html | 129 + libbson/1.24.4/utf8.html | 141 + libbson/1.24.4/version.html | 174 + libbson/current | 2 +- libbson/index.html | 9 +- libmongoc-releases.html | 9 +- libmongoc/1.24.3/advanced-connections.html | 6 + libmongoc/1.24.3/aggregate.html | 6 + libmongoc/1.24.3/api.html | 6 + .../application-performance-monitoring.html | 6 + libmongoc/1.24.3/authentication.html | 6 + libmongoc/1.24.3/basic-troubleshooting.html | 6 + libmongoc/1.24.3/bulk.html | 6 + .../client-side-field-level-encryption.html | 6 + libmongoc/1.24.3/configuring_tls.html | 6 + libmongoc/1.24.3/connection-pooling.html | 6 + libmongoc/1.24.3/cursors.html | 6 + libmongoc/1.24.3/debugging.html | 6 + libmongoc/1.24.3/distinct-mapreduce.html | 6 + libmongoc/1.24.3/errors.html | 6 + libmongoc/1.24.3/full_index.html | 6 + libmongoc/1.24.3/gridfs.html | 6 + libmongoc/1.24.3/guides.html | 6 + libmongoc/1.24.3/in-use-encryption.html | 6 + libmongoc/1.24.3/index.html | 6 + libmongoc/1.24.3/init-cleanup.html | 6 + libmongoc/1.24.3/installing.html | 6 + libmongoc/1.24.3/lifecycle.html | 6 + libmongoc/1.24.3/logging.html | 6 + .../1.24.3/manage-collection-indexes.html | 6 + .../1.24.3/mongoc-common-task-examples.html | 6 + .../1.24.3/mongoc_apm_callbacks_destroy.html | 6 + .../1.24.3/mongoc_apm_callbacks_new.html | 6 + libmongoc/1.24.3/mongoc_apm_callbacks_t.html | 6 + ...c_apm_command_failed_get_command_name.html | 6 + ...mongoc_apm_command_failed_get_context.html | 6 + ...ongoc_apm_command_failed_get_duration.html | 6 + .../mongoc_apm_command_failed_get_error.html | 6 + .../mongoc_apm_command_failed_get_host.html | 6 + ...c_apm_command_failed_get_operation_id.html | 6 + .../mongoc_apm_command_failed_get_reply.html | 6 + ...goc_apm_command_failed_get_request_id.html | 6 + ...mmand_failed_get_server_connection_id.html | 6 + ...failed_get_server_connection_id_int64.html | 6 + ...ngoc_apm_command_failed_get_server_id.html | 6 + ...goc_apm_command_failed_get_service_id.html | 6 + .../1.24.3/mongoc_apm_command_failed_t.html | 6 + ...ongoc_apm_command_started_get_command.html | 6 + ..._apm_command_started_get_command_name.html | 6 + ...ongoc_apm_command_started_get_context.html | 6 + ...apm_command_started_get_database_name.html | 6 + .../mongoc_apm_command_started_get_host.html | 6 + ..._apm_command_started_get_operation_id.html | 6 + ...oc_apm_command_started_get_request_id.html | 6 + ...mand_started_get_server_connection_id.html | 6 + ...tarted_get_server_connection_id_int64.html | 6 + ...goc_apm_command_started_get_server_id.html | 6 + ...oc_apm_command_started_get_service_id.html | 6 + .../1.24.3/mongoc_apm_command_started_t.html | 6 + ...pm_command_succeeded_get_command_name.html | 6 + ...goc_apm_command_succeeded_get_context.html | 6 + ...oc_apm_command_succeeded_get_duration.html | 6 + ...mongoc_apm_command_succeeded_get_host.html | 6 + ...pm_command_succeeded_get_operation_id.html | 6 + ...ongoc_apm_command_succeeded_get_reply.html | 6 + ..._apm_command_succeeded_get_request_id.html | 6 + ...nd_succeeded_get_server_connection_id.html | 6 + ...ceeded_get_server_connection_id_int64.html | 6 + ...c_apm_command_succeeded_get_server_id.html | 6 + ..._apm_command_succeeded_get_service_id.html | 6 + .../mongoc_apm_command_succeeded_t.html | 6 + ...mongoc_apm_server_changed_get_context.html | 6 + .../mongoc_apm_server_changed_get_host.html | 6 + ...pm_server_changed_get_new_description.html | 6 + ...rver_changed_get_previous_description.html | 6 + ...oc_apm_server_changed_get_topology_id.html | 6 + .../1.24.3/mongoc_apm_server_changed_t.html | 6 + .../mongoc_apm_server_closed_get_context.html | 6 + .../mongoc_apm_server_closed_get_host.html | 6 + ...goc_apm_server_closed_get_topology_id.html | 6 + .../1.24.3/mongoc_apm_server_closed_t.html | 6 + ...m_server_heartbeat_failed_get_awaited.html | 6 + ...m_server_heartbeat_failed_get_context.html | 6 + ..._server_heartbeat_failed_get_duration.html | 6 + ...apm_server_heartbeat_failed_get_error.html | 6 + ..._apm_server_heartbeat_failed_get_host.html | 6 + .../mongoc_apm_server_heartbeat_failed_t.html | 6 + ..._server_heartbeat_started_get_awaited.html | 6 + ..._server_heartbeat_started_get_context.html | 6 + ...apm_server_heartbeat_started_get_host.html | 6 + ...mongoc_apm_server_heartbeat_started_t.html | 6 + ...erver_heartbeat_succeeded_get_awaited.html | 6 + ...erver_heartbeat_succeeded_get_context.html | 6 + ...rver_heartbeat_succeeded_get_duration.html | 6 + ...m_server_heartbeat_succeeded_get_host.html | 6 + ..._server_heartbeat_succeeded_get_reply.html | 6 + ...ngoc_apm_server_heartbeat_succeeded_t.html | 6 + ...mongoc_apm_server_opening_get_context.html | 6 + .../mongoc_apm_server_opening_get_host.html | 6 + ...oc_apm_server_opening_get_topology_id.html | 6 + .../1.24.3/mongoc_apm_server_opening_t.html | 6 + .../mongoc_apm_set_command_failed_cb.html | 6 + .../mongoc_apm_set_command_started_cb.html | 6 + .../mongoc_apm_set_command_succeeded_cb.html | 6 + .../mongoc_apm_set_server_changed_cb.html | 6 + .../mongoc_apm_set_server_closed_cb.html | 6 + ...oc_apm_set_server_heartbeat_failed_cb.html | 6 + ...c_apm_set_server_heartbeat_started_cb.html | 6 + ...apm_set_server_heartbeat_succeeded_cb.html | 6 + .../mongoc_apm_set_server_opening_cb.html | 6 + .../mongoc_apm_set_topology_changed_cb.html | 6 + .../mongoc_apm_set_topology_closed_cb.html | 6 + .../mongoc_apm_set_topology_opening_cb.html | 6 + ...ngoc_apm_topology_changed_get_context.html | 6 + ..._topology_changed_get_new_description.html | 6 + ...logy_changed_get_previous_description.html | 6 + ..._apm_topology_changed_get_topology_id.html | 6 + .../1.24.3/mongoc_apm_topology_changed_t.html | 6 + ...ongoc_apm_topology_closed_get_context.html | 6 + ...c_apm_topology_closed_get_topology_id.html | 6 + .../1.24.3/mongoc_apm_topology_closed_t.html | 6 + ...ngoc_apm_topology_opening_get_context.html | 6 + ..._apm_topology_opening_get_topology_id.html | 6 + .../1.24.3/mongoc_apm_topology_opening_t.html | 6 + .../mongoc_auto_encryption_opts_destroy.html | 6 + .../mongoc_auto_encryption_opts_new.html | 6 + ...ption_opts_set_bypass_auto_encryption.html | 6 + ...yption_opts_set_bypass_query_analysis.html | 6 + ...ryption_opts_set_encrypted_fields_map.html | 6 + ...mongoc_auto_encryption_opts_set_extra.html | 6 + ...o_encryption_opts_set_keyvault_client.html | 6 + ...ryption_opts_set_keyvault_client_pool.html | 6 + ...ncryption_opts_set_keyvault_namespace.html | 6 + ..._set_kms_credential_provider_callback.html | 6 + ...uto_encryption_opts_set_kms_providers.html | 6 + ...c_auto_encryption_opts_set_schema_map.html | 6 + ...goc_auto_encryption_opts_set_tls_opts.html | 6 + .../1.24.3/mongoc_auto_encryption_opts_t.html | 6 + .../1.24.3/mongoc_bulk_operation_delete.html | 6 + .../mongoc_bulk_operation_delete_one.html | 6 + .../1.24.3/mongoc_bulk_operation_destroy.html | 6 + .../1.24.3/mongoc_bulk_operation_execute.html | 6 + .../mongoc_bulk_operation_get_hint.html | 6 + ...ngoc_bulk_operation_get_write_concern.html | 6 + .../1.24.3/mongoc_bulk_operation_insert.html | 6 + ...ongoc_bulk_operation_insert_with_opts.html | 6 + .../1.24.3/mongoc_bulk_operation_remove.html | 6 + ..._bulk_operation_remove_many_with_opts.html | 6 + .../mongoc_bulk_operation_remove_one.html | 6 + ...c_bulk_operation_remove_one_with_opts.html | 6 + .../mongoc_bulk_operation_replace_one.html | 6 + ..._bulk_operation_replace_one_with_opts.html | 6 + ...ration_set_bypass_document_validation.html | 6 + ...goc_bulk_operation_set_client_session.html | 6 + .../mongoc_bulk_operation_set_comment.html | 6 + .../mongoc_bulk_operation_set_hint.html | 6 + .../1.24.3/mongoc_bulk_operation_set_let.html | 6 + libmongoc/1.24.3/mongoc_bulk_operation_t.html | 6 + .../1.24.3/mongoc_bulk_operation_update.html | 6 + ..._bulk_operation_update_many_with_opts.html | 6 + .../mongoc_bulk_operation_update_one.html | 6 + ...c_bulk_operation_update_one_with_opts.html | 6 + .../1.24.3/mongoc_change_stream_destroy.html | 6 + .../mongoc_change_stream_error_document.html | 6 + ...mongoc_change_stream_get_resume_token.html | 6 + .../1.24.3/mongoc_change_stream_next.html | 6 + libmongoc/1.24.3/mongoc_change_stream_t.html | 6 + libmongoc/1.24.3/mongoc_check_version.html | 6 + libmongoc/1.24.3/mongoc_cleanup.html | 6 + libmongoc/1.24.3/mongoc_client_command.html | 6 + .../1.24.3/mongoc_client_command_simple.html | 6 + ..._client_command_simple_with_server_id.html | 6 + .../mongoc_client_command_with_opts.html | 6 + libmongoc/1.24.3/mongoc_client_destroy.html | 6 + .../mongoc_client_enable_auto_encryption.html | 6 + ...oc_client_encryption_add_key_alt_name.html | 6 + ...ngoc_client_encryption_create_datakey.html | 6 + ...ncryption_create_encrypted_collection.html | 6 + ...lient_encryption_datakey_opts_destroy.html | 6 + ...oc_client_encryption_datakey_opts_new.html | 6 + ...cryption_datakey_opts_set_keyaltnames.html | 6 + ...cryption_datakey_opts_set_keymaterial.html | 6 + ...encryption_datakey_opts_set_masterkey.html | 6 + ...ngoc_client_encryption_datakey_opts_t.html | 6 + .../mongoc_client_encryption_decrypt.html | 6 + .../mongoc_client_encryption_delete_key.html | 6 + .../mongoc_client_encryption_destroy.html | 6 + .../mongoc_client_encryption_encrypt.html | 6 + ..._client_encryption_encrypt_expression.html | 6 + ...lient_encryption_encrypt_opts_destroy.html | 6 + ...oc_client_encryption_encrypt_opts_new.html | 6 + ...encryption_encrypt_opts_set_algorithm.html | 6 + ...on_encrypt_opts_set_contention_factor.html | 6 + ...ncryption_encrypt_opts_set_keyaltname.html | 6 + ...ent_encryption_encrypt_opts_set_keyid.html | 6 + ...ncryption_encrypt_opts_set_query_type.html | 6 + ...ncryption_encrypt_opts_set_range_opts.html | 6 + ...ngoc_client_encryption_encrypt_opts_t.html | 6 + ...encryption_encrypt_range_opts_destroy.html | 6 + ...ent_encryption_encrypt_range_opts_new.html | 6 + ...encryption_encrypt_range_opts_set_max.html | 6 + ...encryption_encrypt_range_opts_set_min.html | 6 + ...tion_encrypt_range_opts_set_precision.html | 6 + ...ption_encrypt_range_opts_set_sparsity.html | 6 + ...lient_encryption_encrypt_range_opts_t.html | 6 + ...t_encryption_get_crypt_shared_version.html | 6 + .../mongoc_client_encryption_get_key.html | 6 + ...client_encryption_get_key_by_alt_name.html | 6 + .../mongoc_client_encryption_get_keys.html | 6 + .../1.24.3/mongoc_client_encryption_new.html | 6 + ...mongoc_client_encryption_opts_destroy.html | 6 + .../mongoc_client_encryption_opts_new.html | 6 + ...t_encryption_opts_set_keyvault_client.html | 6 + ...ncryption_opts_set_keyvault_namespace.html | 6 + ..._set_kms_credential_provider_callback.html | 6 + ...ent_encryption_opts_set_kms_providers.html | 6 + ...c_client_encryption_opts_set_tls_opts.html | 6 + .../mongoc_client_encryption_opts_t.html | 6 + ...client_encryption_remove_key_alt_name.html | 6 + ...client_encryption_rewrap_many_datakey.html | 6 + ...on_rewrap_many_datakey_result_destroy.html | 6 + ..._datakey_result_get_bulk_write_result.html | 6 + ...yption_rewrap_many_datakey_result_new.html | 6 + ...cryption_rewrap_many_datakey_result_t.html | 6 + .../1.24.3/mongoc_client_encryption_t.html | 6 + ...ongoc_client_find_databases_with_opts.html | 6 + .../1.24.3/mongoc_client_get_collection.html | 6 + ...ongoc_client_get_crypt_shared_version.html | 6 + .../1.24.3/mongoc_client_get_database.html | 6 + .../mongoc_client_get_database_names.html | 6 + ...c_client_get_database_names_with_opts.html | 6 + .../mongoc_client_get_default_database.html | 6 + .../1.24.3/mongoc_client_get_gridfs.html | 6 + ...ngoc_client_get_handshake_description.html | 6 + .../mongoc_client_get_read_concern.html | 6 + .../1.24.3/mongoc_client_get_read_prefs.html | 6 + .../mongoc_client_get_server_description.html | 6 + ...mongoc_client_get_server_descriptions.html | 6 + .../mongoc_client_get_server_status.html | 6 + libmongoc/1.24.3/mongoc_client_get_uri.html | 6 + .../mongoc_client_get_write_concern.html | 6 + libmongoc/1.24.3/mongoc_client_new.html | 6 + .../1.24.3/mongoc_client_new_from_uri.html | 6 + ...mongoc_client_new_from_uri_with_error.html | 6 + .../1.24.3/mongoc_client_pool_destroy.html | 6 + ...oc_client_pool_enable_auto_encryption.html | 6 + .../1.24.3/mongoc_client_pool_max_size.html | 6 + .../1.24.3/mongoc_client_pool_min_size.html | 6 + libmongoc/1.24.3/mongoc_client_pool_new.html | 6 + .../mongoc_client_pool_new_with_error.html | 6 + libmongoc/1.24.3/mongoc_client_pool_pop.html | 6 + libmongoc/1.24.3/mongoc_client_pool_push.html | 6 + .../mongoc_client_pool_set_apm_callbacks.html | 6 + .../mongoc_client_pool_set_appname.html | 6 + .../mongoc_client_pool_set_error_api.html | 6 + .../mongoc_client_pool_set_server_api.html | 6 + .../mongoc_client_pool_set_ssl_opts.html | 6 + libmongoc/1.24.3/mongoc_client_pool_t.html | 6 + .../1.24.3/mongoc_client_pool_try_pop.html | 6 + .../mongoc_client_read_command_with_opts.html | 6 + ...c_client_read_write_command_with_opts.html | 6 + libmongoc/1.24.3/mongoc_client_reset.html | 6 + .../1.24.3/mongoc_client_select_server.html | 6 + ...ngoc_client_session_abort_transaction.html | 6 + ...c_client_session_advance_cluster_time.html | 6 + ...client_session_advance_operation_time.html | 6 + .../1.24.3/mongoc_client_session_append.html | 6 + ...goc_client_session_commit_transaction.html | 6 + .../1.24.3/mongoc_client_session_destroy.html | 6 + .../mongoc_client_session_get_client.html | 6 + ...ongoc_client_session_get_cluster_time.html | 6 + .../mongoc_client_session_get_dirty.html | 6 + .../mongoc_client_session_get_lsid.html | 6 + ...goc_client_session_get_operation_time.html | 6 + .../mongoc_client_session_get_opts.html | 6 + .../mongoc_client_session_get_server_id.html | 6 + ..._client_session_get_transaction_state.html | 6 + .../mongoc_client_session_in_transaction.html | 6 + ...ngoc_client_session_start_transaction.html | 6 + libmongoc/1.24.3/mongoc_client_session_t.html | 6 + ...ongoc_client_session_with_transaction.html | 6 + ..._client_session_with_transaction_cb_t.html | 6 + .../mongoc_client_set_apm_callbacks.html | 6 + .../1.24.3/mongoc_client_set_appname.html | 6 + .../1.24.3/mongoc_client_set_error_api.html | 6 + .../mongoc_client_set_read_concern.html | 6 + .../1.24.3/mongoc_client_set_read_prefs.html | 6 + .../1.24.3/mongoc_client_set_server_api.html | 6 + .../1.24.3/mongoc_client_set_ssl_opts.html | 6 + .../mongoc_client_set_stream_initiator.html | 6 + .../mongoc_client_set_write_concern.html | 6 + .../1.24.3/mongoc_client_start_session.html | 6 + libmongoc/1.24.3/mongoc_client_t.html | 6 + libmongoc/1.24.3/mongoc_client_watch.html | 6 + ...mongoc_client_write_command_with_opts.html | 6 + .../1.24.3/mongoc_collection_aggregate.html | 6 + .../1.24.3/mongoc_collection_command.html | 6 + .../mongoc_collection_command_simple.html | 6 + .../mongoc_collection_command_with_opts.html | 6 + libmongoc/1.24.3/mongoc_collection_copy.html | 6 + libmongoc/1.24.3/mongoc_collection_count.html | 6 + .../mongoc_collection_count_documents.html | 6 + .../mongoc_collection_count_with_opts.html | 6 + ...ngoc_collection_create_bulk_operation.html | 6 + ...ction_create_bulk_operation_with_opts.html | 6 + .../mongoc_collection_create_index.html | 6 + ...goc_collection_create_index_with_opts.html | 6 + ...c_collection_create_indexes_with_opts.html | 6 + .../1.24.3/mongoc_collection_delete.html | 6 + .../1.24.3/mongoc_collection_delete_many.html | 6 + .../1.24.3/mongoc_collection_delete_one.html | 6 + .../1.24.3/mongoc_collection_destroy.html | 6 + libmongoc/1.24.3/mongoc_collection_drop.html | 6 + .../1.24.3/mongoc_collection_drop_index.html | 6 + ...ongoc_collection_drop_index_with_opts.html | 6 + .../mongoc_collection_drop_with_opts.html | 6 + .../mongoc_collection_ensure_index.html | 6 + ...c_collection_estimated_document_count.html | 6 + libmongoc/1.24.3/mongoc_collection_find.html | 6 + .../mongoc_collection_find_and_modify.html | 6 + ..._collection_find_and_modify_with_opts.html | 6 + .../mongoc_collection_find_indexes.html | 6 + ...goc_collection_find_indexes_with_opts.html | 6 + .../mongoc_collection_find_with_opts.html | 6 + .../mongoc_collection_get_last_error.html | 6 + .../1.24.3/mongoc_collection_get_name.html | 6 + .../mongoc_collection_get_read_concern.html | 6 + .../mongoc_collection_get_read_prefs.html | 6 + .../mongoc_collection_get_write_concern.html | 6 + .../1.24.3/mongoc_collection_insert.html | 6 + .../1.24.3/mongoc_collection_insert_bulk.html | 6 + .../1.24.3/mongoc_collection_insert_many.html | 6 + .../1.24.3/mongoc_collection_insert_one.html | 6 + ...ongoc_collection_keys_to_index_string.html | 6 + ...goc_collection_read_command_with_opts.html | 6 + ...llection_read_write_command_with_opts.html | 6 + .../1.24.3/mongoc_collection_remove.html | 6 + .../1.24.3/mongoc_collection_rename.html | 6 + .../mongoc_collection_rename_with_opts.html | 6 + .../1.24.3/mongoc_collection_replace_one.html | 6 + libmongoc/1.24.3/mongoc_collection_save.html | 6 + .../mongoc_collection_set_read_concern.html | 6 + .../mongoc_collection_set_read_prefs.html | 6 + .../mongoc_collection_set_write_concern.html | 6 + libmongoc/1.24.3/mongoc_collection_stats.html | 6 + libmongoc/1.24.3/mongoc_collection_t.html | 6 + .../1.24.3/mongoc_collection_update.html | 6 + .../1.24.3/mongoc_collection_update_many.html | 6 + .../1.24.3/mongoc_collection_update_one.html | 6 + .../1.24.3/mongoc_collection_validate.html | 6 + libmongoc/1.24.3/mongoc_collection_watch.html | 6 + ...oc_collection_write_command_with_opts.html | 6 + libmongoc/1.24.3/mongoc_cursor_clone.html | 6 + libmongoc/1.24.3/mongoc_cursor_current.html | 6 + libmongoc/1.24.3/mongoc_cursor_destroy.html | 6 + libmongoc/1.24.3/mongoc_cursor_error.html | 6 + .../1.24.3/mongoc_cursor_error_document.html | 6 + .../1.24.3/mongoc_cursor_get_batch_size.html | 6 + libmongoc/1.24.3/mongoc_cursor_get_hint.html | 6 + libmongoc/1.24.3/mongoc_cursor_get_host.html | 6 + libmongoc/1.24.3/mongoc_cursor_get_id.html | 6 + libmongoc/1.24.3/mongoc_cursor_get_limit.html | 6 + .../mongoc_cursor_get_max_await_time_ms.html | 6 + libmongoc/1.24.3/mongoc_cursor_is_alive.html | 6 + libmongoc/1.24.3/mongoc_cursor_more.html | 6 + .../mongoc_cursor_new_from_command_reply.html | 6 + ...rsor_new_from_command_reply_with_opts.html | 6 + libmongoc/1.24.3/mongoc_cursor_next.html | 6 + .../1.24.3/mongoc_cursor_set_batch_size.html | 6 + libmongoc/1.24.3/mongoc_cursor_set_hint.html | 6 + libmongoc/1.24.3/mongoc_cursor_set_limit.html | 6 + .../mongoc_cursor_set_max_await_time_ms.html | 6 + libmongoc/1.24.3/mongoc_cursor_t.html | 6 + .../1.24.3/mongoc_database_add_user.html | 6 + .../1.24.3/mongoc_database_aggregate.html | 6 + libmongoc/1.24.3/mongoc_database_command.html | 6 + .../mongoc_database_command_simple.html | 6 + .../mongoc_database_command_with_opts.html | 6 + libmongoc/1.24.3/mongoc_database_copy.html | 6 + .../mongoc_database_create_collection.html | 6 + libmongoc/1.24.3/mongoc_database_destroy.html | 6 + libmongoc/1.24.3/mongoc_database_drop.html | 6 + .../mongoc_database_drop_with_opts.html | 6 + .../mongoc_database_find_collections.html | 6 + ...c_database_find_collections_with_opts.html | 6 + .../mongoc_database_get_collection.html | 6 + .../mongoc_database_get_collection_names.html | 6 + ...tabase_get_collection_names_with_opts.html | 6 + .../1.24.3/mongoc_database_get_name.html | 6 + .../mongoc_database_get_read_concern.html | 6 + .../mongoc_database_get_read_prefs.html | 6 + .../mongoc_database_get_write_concern.html | 6 + .../mongoc_database_has_collection.html | 6 + ...ongoc_database_read_command_with_opts.html | 6 + ...database_read_write_command_with_opts.html | 6 + .../mongoc_database_remove_all_users.html | 6 + .../1.24.3/mongoc_database_remove_user.html | 6 + .../mongoc_database_set_read_concern.html | 6 + .../mongoc_database_set_read_prefs.html | 6 + .../mongoc_database_set_write_concern.html | 6 + libmongoc/1.24.3/mongoc_database_t.html | 6 + libmongoc/1.24.3/mongoc_database_watch.html | 6 + ...ngoc_database_write_command_with_opts.html | 6 + libmongoc/1.24.3/mongoc_delete_flags_t.html | 6 + libmongoc/1.24.3/mongoc_error_has_label.html | 6 + .../mongoc_find_and_modify_opts_append.html | 6 + .../mongoc_find_and_modify_opts_destroy.html | 6 + ...y_opts_get_bypass_document_validation.html | 6 + ...ongoc_find_and_modify_opts_get_fields.html | 6 + ...mongoc_find_and_modify_opts_get_flags.html | 6 + ..._find_and_modify_opts_get_max_time_ms.html | 6 + .../mongoc_find_and_modify_opts_get_sort.html | 6 + ...ongoc_find_and_modify_opts_get_update.html | 6 + .../mongoc_find_and_modify_opts_new.html | 6 + ...y_opts_set_bypass_document_validation.html | 6 + ...ongoc_find_and_modify_opts_set_fields.html | 6 + ...mongoc_find_and_modify_opts_set_flags.html | 6 + ..._find_and_modify_opts_set_max_time_ms.html | 6 + .../mongoc_find_and_modify_opts_set_sort.html | 6 + ...ongoc_find_and_modify_opts_set_update.html | 6 + .../1.24.3/mongoc_find_and_modify_opts_t.html | 6 + .../1.24.3/mongoc_get_major_version.html | 6 + .../1.24.3/mongoc_get_micro_version.html | 6 + .../1.24.3/mongoc_get_minor_version.html | 6 + libmongoc/1.24.3/mongoc_get_version.html | 6 + .../mongoc_gridfs_bucket_abort_upload.html | 6 + .../mongoc_gridfs_bucket_delete_by_id.html | 6 + .../1.24.3/mongoc_gridfs_bucket_destroy.html | 6 + ...ngoc_gridfs_bucket_download_to_stream.html | 6 + .../1.24.3/mongoc_gridfs_bucket_find.html | 6 + .../1.24.3/mongoc_gridfs_bucket_new.html | 6 + ...oc_gridfs_bucket_open_download_stream.html | 6 + ...ngoc_gridfs_bucket_open_upload_stream.html | 6 + ...dfs_bucket_open_upload_stream_with_id.html | 6 + .../mongoc_gridfs_bucket_stream_error.html | 6 + libmongoc/1.24.3/mongoc_gridfs_bucket_t.html | 6 + ...ngoc_gridfs_bucket_upload_from_stream.html | 6 + ...dfs_bucket_upload_from_stream_with_id.html | 6 + .../1.24.3/mongoc_gridfs_create_file.html | 6 + ...mongoc_gridfs_create_file_from_stream.html | 6 + libmongoc/1.24.3/mongoc_gridfs_destroy.html | 6 + libmongoc/1.24.3/mongoc_gridfs_drop.html | 6 + .../1.24.3/mongoc_gridfs_file_destroy.html | 6 + .../1.24.3/mongoc_gridfs_file_error.html | 6 + .../mongoc_gridfs_file_get_aliases.html | 6 + .../mongoc_gridfs_file_get_chunk_size.html | 6 + .../mongoc_gridfs_file_get_content_type.html | 6 + .../mongoc_gridfs_file_get_filename.html | 6 + .../1.24.3/mongoc_gridfs_file_get_id.html | 6 + .../1.24.3/mongoc_gridfs_file_get_length.html | 6 + .../1.24.3/mongoc_gridfs_file_get_md5.html | 6 + .../mongoc_gridfs_file_get_metadata.html | 6 + .../mongoc_gridfs_file_get_upload_date.html | 6 + .../mongoc_gridfs_file_list_destroy.html | 6 + .../1.24.3/mongoc_gridfs_file_list_error.html | 6 + .../1.24.3/mongoc_gridfs_file_list_next.html | 6 + .../1.24.3/mongoc_gridfs_file_list_t.html | 6 + .../1.24.3/mongoc_gridfs_file_opt_t.html | 6 + .../1.24.3/mongoc_gridfs_file_readv.html | 6 + .../1.24.3/mongoc_gridfs_file_remove.html | 6 + libmongoc/1.24.3/mongoc_gridfs_file_save.html | 6 + libmongoc/1.24.3/mongoc_gridfs_file_seek.html | 6 + .../mongoc_gridfs_file_set_aliases.html | 6 + .../mongoc_gridfs_file_set_content_type.html | 6 + .../mongoc_gridfs_file_set_filename.html | 6 + .../1.24.3/mongoc_gridfs_file_set_id.html | 6 + .../1.24.3/mongoc_gridfs_file_set_md5.html | 6 + .../mongoc_gridfs_file_set_metadata.html | 6 + libmongoc/1.24.3/mongoc_gridfs_file_t.html | 6 + libmongoc/1.24.3/mongoc_gridfs_file_tell.html | 6 + .../1.24.3/mongoc_gridfs_file_writev.html | 6 + libmongoc/1.24.3/mongoc_gridfs_find.html | 6 + libmongoc/1.24.3/mongoc_gridfs_find_one.html | 6 + .../mongoc_gridfs_find_one_by_filename.html | 6 + .../mongoc_gridfs_find_one_with_opts.html | 6 + .../1.24.3/mongoc_gridfs_find_with_opts.html | 6 + .../1.24.3/mongoc_gridfs_get_chunks.html | 6 + libmongoc/1.24.3/mongoc_gridfs_get_files.html | 6 + .../mongoc_gridfs_remove_by_filename.html | 6 + libmongoc/1.24.3/mongoc_gridfs_t.html | 6 + .../1.24.3/mongoc_handshake_data_append.html | 6 + libmongoc/1.24.3/mongoc_host_list_t.html | 6 + .../mongoc_index_opt_geo_get_default.html | 6 + .../1.24.3/mongoc_index_opt_geo_init.html | 6 + libmongoc/1.24.3/mongoc_index_opt_geo_t.html | 6 + .../1.24.3/mongoc_index_opt_get_default.html | 6 + libmongoc/1.24.3/mongoc_index_opt_init.html | 6 + libmongoc/1.24.3/mongoc_index_opt_t.html | 6 + .../mongoc_index_opt_wt_get_default.html | 6 + .../1.24.3/mongoc_index_opt_wt_init.html | 6 + libmongoc/1.24.3/mongoc_index_opt_wt_t.html | 6 + libmongoc/1.24.3/mongoc_init.html | 6 + libmongoc/1.24.3/mongoc_insert_flags_t.html | 6 + libmongoc/1.24.3/mongoc_iovec_t.html | 6 + libmongoc/1.24.3/mongoc_optional_copy.html | 6 + libmongoc/1.24.3/mongoc_optional_init.html | 6 + libmongoc/1.24.3/mongoc_optional_is_set.html | 6 + .../1.24.3/mongoc_optional_set_value.html | 6 + libmongoc/1.24.3/mongoc_optional_t.html | 6 + libmongoc/1.24.3/mongoc_optional_value.html | 6 + libmongoc/1.24.3/mongoc_query_flags_t.html | 6 + libmongoc/1.24.3/mongoc_rand.html | 6 + libmongoc/1.24.3/mongoc_rand_add.html | 6 + libmongoc/1.24.3/mongoc_rand_seed.html | 6 + libmongoc/1.24.3/mongoc_rand_status.html | 6 + .../1.24.3/mongoc_read_concern_append.html | 6 + .../1.24.3/mongoc_read_concern_copy.html | 6 + .../1.24.3/mongoc_read_concern_destroy.html | 6 + .../1.24.3/mongoc_read_concern_get_level.html | 6 + .../mongoc_read_concern_is_default.html | 6 + libmongoc/1.24.3/mongoc_read_concern_new.html | 6 + .../1.24.3/mongoc_read_concern_set_level.html | 6 + libmongoc/1.24.3/mongoc_read_concern_t.html | 6 + libmongoc/1.24.3/mongoc_read_mode_t.html | 6 + .../1.24.3/mongoc_read_prefs_add_tag.html | 6 + libmongoc/1.24.3/mongoc_read_prefs_copy.html | 6 + .../1.24.3/mongoc_read_prefs_destroy.html | 6 + .../1.24.3/mongoc_read_prefs_get_hedge.html | 6 + ..._read_prefs_get_max_staleness_seconds.html | 6 + .../1.24.3/mongoc_read_prefs_get_mode.html | 6 + .../1.24.3/mongoc_read_prefs_get_tags.html | 6 + .../1.24.3/mongoc_read_prefs_is_valid.html | 6 + libmongoc/1.24.3/mongoc_read_prefs_new.html | 6 + .../1.24.3/mongoc_read_prefs_set_hedge.html | 6 + ..._read_prefs_set_max_staleness_seconds.html | 6 + .../1.24.3/mongoc_read_prefs_set_mode.html | 6 + .../1.24.3/mongoc_read_prefs_set_tags.html | 6 + libmongoc/1.24.3/mongoc_read_prefs_t.html | 6 + libmongoc/1.24.3/mongoc_remove_flags_t.html | 6 + libmongoc/1.24.3/mongoc_reply_flags_t.html | 6 + libmongoc/1.24.3/mongoc_server_api_copy.html | 6 + .../mongoc_server_api_deprecation_errors.html | 6 + .../1.24.3/mongoc_server_api_destroy.html | 6 + ...goc_server_api_get_deprecation_errors.html | 6 + .../1.24.3/mongoc_server_api_get_strict.html | 6 + .../1.24.3/mongoc_server_api_get_version.html | 6 + libmongoc/1.24.3/mongoc_server_api_new.html | 6 + .../1.24.3/mongoc_server_api_strict.html | 6 + libmongoc/1.24.3/mongoc_server_api_t.html | 6 + ...mongoc_server_api_version_from_string.html | 6 + .../1.24.3/mongoc_server_api_version_t.html | 6 + .../mongoc_server_api_version_to_string.html | 6 + .../mongoc_server_description_destroy.html | 6 + ...goc_server_description_hello_response.html | 6 + .../mongoc_server_description_host.html | 6 + .../1.24.3/mongoc_server_description_id.html | 6 + .../mongoc_server_description_ismaster.html | 6 + ...c_server_description_last_update_time.html | 6 + .../mongoc_server_description_new_copy.html | 6 + ...oc_server_description_round_trip_time.html | 6 + .../1.24.3/mongoc_server_description_t.html | 6 + .../mongoc_server_description_type.html | 6 + ...ongoc_server_descriptions_destroy_all.html | 6 + libmongoc/1.24.3/mongoc_session_opt_t.html | 6 + .../1.24.3/mongoc_session_opts_clone.html | 6 + .../1.24.3/mongoc_session_opts_destroy.html | 6 + ...c_session_opts_get_causal_consistency.html | 6 + ...ion_opts_get_default_transaction_opts.html | 6 + .../mongoc_session_opts_get_snapshot.html | 6 + ...goc_session_opts_get_transaction_opts.html | 6 + libmongoc/1.24.3/mongoc_session_opts_new.html | 6 + ...c_session_opts_set_causal_consistency.html | 6 + ...ion_opts_set_default_transaction_opts.html | 6 + .../mongoc_session_opts_set_snapshot.html | 6 + libmongoc/1.24.3/mongoc_socket_accept.html | 6 + libmongoc/1.24.3/mongoc_socket_bind.html | 6 + libmongoc/1.24.3/mongoc_socket_close.html | 6 + libmongoc/1.24.3/mongoc_socket_connect.html | 6 + libmongoc/1.24.3/mongoc_socket_destroy.html | 6 + libmongoc/1.24.3/mongoc_socket_errno.html | 6 + .../1.24.3/mongoc_socket_getnameinfo.html | 6 + .../1.24.3/mongoc_socket_getsockname.html | 6 + libmongoc/1.24.3/mongoc_socket_listen.html | 6 + libmongoc/1.24.3/mongoc_socket_new.html | 6 + libmongoc/1.24.3/mongoc_socket_recv.html | 6 + libmongoc/1.24.3/mongoc_socket_send.html | 6 + libmongoc/1.24.3/mongoc_socket_sendv.html | 6 + .../1.24.3/mongoc_socket_setsockopt.html | 6 + libmongoc/1.24.3/mongoc_socket_t.html | 6 + .../1.24.3/mongoc_ssl_opt_get_default.html | 6 + libmongoc/1.24.3/mongoc_ssl_opt_t.html | 6 + .../1.24.3/mongoc_stream_buffered_new.html | 6 + .../1.24.3/mongoc_stream_buffered_t.html | 6 + libmongoc/1.24.3/mongoc_stream_close.html | 6 + libmongoc/1.24.3/mongoc_stream_cork.html | 6 + libmongoc/1.24.3/mongoc_stream_destroy.html | 6 + .../1.24.3/mongoc_stream_file_get_fd.html | 6 + libmongoc/1.24.3/mongoc_stream_file_new.html | 6 + .../mongoc_stream_file_new_for_path.html | 6 + libmongoc/1.24.3/mongoc_stream_file_t.html | 6 + libmongoc/1.24.3/mongoc_stream_flush.html | 6 + .../1.24.3/mongoc_stream_get_base_stream.html | 6 + .../1.24.3/mongoc_stream_gridfs_new.html | 6 + libmongoc/1.24.3/mongoc_stream_read.html | 6 + libmongoc/1.24.3/mongoc_stream_readv.html | 6 + .../1.24.3/mongoc_stream_setsockopt.html | 6 + .../1.24.3/mongoc_stream_should_retry.html | 6 + .../mongoc_stream_socket_get_socket.html | 6 + .../1.24.3/mongoc_stream_socket_new.html | 6 + libmongoc/1.24.3/mongoc_stream_socket_t.html | 6 + libmongoc/1.24.3/mongoc_stream_t.html | 6 + libmongoc/1.24.3/mongoc_stream_timed_out.html | 6 + libmongoc/1.24.3/mongoc_stream_tls_t.html | 6 + libmongoc/1.24.3/mongoc_stream_uncork.html | 6 + libmongoc/1.24.3/mongoc_stream_write.html | 6 + libmongoc/1.24.3/mongoc_stream_writev.html | 6 + .../mongoc_topology_description_destroy.html | 6 + ...ngoc_topology_description_get_servers.html | 6 + ...ology_description_has_readable_server.html | 6 + ...ology_description_has_writable_server.html | 6 + .../mongoc_topology_description_new_copy.html | 6 + .../1.24.3/mongoc_topology_description_t.html | 6 + .../mongoc_topology_description_type.html | 6 + .../1.24.3/mongoc_transaction_opt_t.html | 6 + .../1.24.3/mongoc_transaction_opts_clone.html | 6 + .../mongoc_transaction_opts_destroy.html | 6 + ...ansaction_opts_get_max_commit_time_ms.html | 6 + ...goc_transaction_opts_get_read_concern.html | 6 + ...ongoc_transaction_opts_get_read_prefs.html | 6 + ...oc_transaction_opts_get_write_concern.html | 6 + .../1.24.3/mongoc_transaction_opts_new.html | 6 + ...ansaction_opts_set_max_commit_time_ms.html | 6 + ...goc_transaction_opts_set_read_concern.html | 6 + ...ongoc_transaction_opts_set_read_prefs.html | 6 + ...oc_transaction_opts_set_write_concern.html | 6 + .../1.24.3/mongoc_transaction_state_t.html | 6 + libmongoc/1.24.3/mongoc_update_flags_t.html | 6 + libmongoc/1.24.3/mongoc_uri_copy.html | 6 + libmongoc/1.24.3/mongoc_uri_destroy.html | 6 + .../1.24.3/mongoc_uri_get_auth_mechanism.html | 6 + .../1.24.3/mongoc_uri_get_auth_source.html | 6 + .../1.24.3/mongoc_uri_get_compressors.html | 6 + libmongoc/1.24.3/mongoc_uri_get_database.html | 6 + libmongoc/1.24.3/mongoc_uri_get_hosts.html | 6 + .../mongoc_uri_get_mechanism_properties.html | 6 + .../1.24.3/mongoc_uri_get_option_as_bool.html | 6 + .../mongoc_uri_get_option_as_int32.html | 6 + .../mongoc_uri_get_option_as_int64.html | 6 + .../1.24.3/mongoc_uri_get_option_as_utf8.html | 6 + libmongoc/1.24.3/mongoc_uri_get_options.html | 6 + libmongoc/1.24.3/mongoc_uri_get_password.html | 6 + .../1.24.3/mongoc_uri_get_read_concern.html | 6 + .../1.24.3/mongoc_uri_get_read_prefs.html | 6 + .../1.24.3/mongoc_uri_get_read_prefs_t.html | 6 + .../1.24.3/mongoc_uri_get_replica_set.html | 6 + libmongoc/1.24.3/mongoc_uri_get_service.html | 6 + .../1.24.3/mongoc_uri_get_srv_hostname.html | 6 + .../mongoc_uri_get_srv_service_name.html | 6 + libmongoc/1.24.3/mongoc_uri_get_ssl.html | 6 + libmongoc/1.24.3/mongoc_uri_get_string.html | 6 + libmongoc/1.24.3/mongoc_uri_get_tls.html | 6 + libmongoc/1.24.3/mongoc_uri_get_username.html | 6 + .../1.24.3/mongoc_uri_get_write_concern.html | 6 + libmongoc/1.24.3/mongoc_uri_has_option.html | 6 + libmongoc/1.24.3/mongoc_uri_new.html | 6 + .../1.24.3/mongoc_uri_new_for_host_port.html | 6 + .../1.24.3/mongoc_uri_new_with_error.html | 6 + .../1.24.3/mongoc_uri_option_is_bool.html | 6 + .../1.24.3/mongoc_uri_option_is_int32.html | 6 + .../1.24.3/mongoc_uri_option_is_int64.html | 6 + .../1.24.3/mongoc_uri_option_is_utf8.html | 6 + .../1.24.3/mongoc_uri_set_auth_mechanism.html | 6 + .../1.24.3/mongoc_uri_set_auth_source.html | 6 + .../1.24.3/mongoc_uri_set_compressors.html | 6 + libmongoc/1.24.3/mongoc_uri_set_database.html | 6 + .../mongoc_uri_set_mechanism_properties.html | 6 + .../1.24.3/mongoc_uri_set_option_as_bool.html | 6 + .../mongoc_uri_set_option_as_int32.html | 6 + .../mongoc_uri_set_option_as_int64.html | 6 + .../1.24.3/mongoc_uri_set_option_as_utf8.html | 6 + libmongoc/1.24.3/mongoc_uri_set_password.html | 6 + .../1.24.3/mongoc_uri_set_read_concern.html | 6 + .../1.24.3/mongoc_uri_set_read_prefs_t.html | 6 + libmongoc/1.24.3/mongoc_uri_set_username.html | 6 + .../1.24.3/mongoc_uri_set_write_concern.html | 6 + libmongoc/1.24.3/mongoc_uri_t.html | 6 + libmongoc/1.24.3/mongoc_uri_unescape.html | 6 + libmongoc/1.24.3/mongoc_version.html | 6 + .../1.24.3/mongoc_write_concern_append.html | 6 + .../1.24.3/mongoc_write_concern_copy.html | 6 + .../1.24.3/mongoc_write_concern_destroy.html | 6 + .../mongoc_write_concern_get_fsync.html | 6 + .../mongoc_write_concern_get_journal.html | 6 + .../1.24.3/mongoc_write_concern_get_w.html | 6 + .../mongoc_write_concern_get_wmajority.html | 6 + .../1.24.3/mongoc_write_concern_get_wtag.html | 6 + .../mongoc_write_concern_get_wtimeout.html | 6 + ...ngoc_write_concern_get_wtimeout_int64.html | 6 + .../mongoc_write_concern_is_acknowledged.html | 6 + .../mongoc_write_concern_is_default.html | 6 + .../1.24.3/mongoc_write_concern_is_valid.html | 6 + .../mongoc_write_concern_journal_is_set.html | 6 + .../1.24.3/mongoc_write_concern_new.html | 6 + .../mongoc_write_concern_set_fsync.html | 6 + .../mongoc_write_concern_set_journal.html | 6 + .../1.24.3/mongoc_write_concern_set_w.html | 6 + .../mongoc_write_concern_set_wmajority.html | 6 + .../1.24.3/mongoc_write_concern_set_wtag.html | 6 + .../mongoc_write_concern_set_wtimeout.html | 6 + ...ngoc_write_concern_set_wtimeout_int64.html | 6 + libmongoc/1.24.3/mongoc_write_concern_t.html | 6 + libmongoc/1.24.3/queryable-encryption.html | 6 + libmongoc/1.24.3/search.html | 6 + libmongoc/1.24.3/tutorial.html | 6 + libmongoc/1.24.3/visual-studio-guide.html | 6 + libmongoc/1.24.4/.nojekyll | 1 + libmongoc/1.24.4/CMakeLists.txt | 39 + .../_images/msvc-add-dependencies-static.png | Bin 0 -> 23627 bytes .../1.24.4/_images/msvc-add-dependencies.png | Bin 0 -> 7855 bytes .../_images/msvc-add-include-directories.png | Bin 0 -> 7909 bytes .../1.24.4/_images/msvc-create-project.png | Bin 0 -> 12266 bytes libmongoc/1.24.4/_images/msvc-set-path.png | Bin 0 -> 24767 bytes .../_images/msvc-switch-architecture.png | Bin 0 -> 11221 bytes libmongoc/1.24.4/_static/ajax-loader.gif | Bin 0 -> 673 bytes libmongoc/1.24.4/_static/basic.css | 665 + libmongoc/1.24.4/_static/comment-bright.png | Bin 0 -> 756 bytes libmongoc/1.24.4/_static/comment-close.png | Bin 0 -> 829 bytes libmongoc/1.24.4/_static/comment.png | Bin 0 -> 641 bytes libmongoc/1.24.4/_static/doctools.js | 313 + .../1.24.4/_static/documentation_options.js | 9 + libmongoc/1.24.4/_static/down-pressed.png | Bin 0 -> 222 bytes libmongoc/1.24.4/_static/down.png | Bin 0 -> 202 bytes libmongoc/1.24.4/_static/file.png | Bin 0 -> 286 bytes libmongoc/1.24.4/_static/jquery-3.2.1.js | 10253 ++++++++++++++++ libmongoc/1.24.4/_static/jquery.js | 4 + libmongoc/1.24.4/_static/minus.png | Bin 0 -> 90 bytes libmongoc/1.24.4/_static/plus.png | Bin 0 -> 90 bytes libmongoc/1.24.4/_static/pygments.css | 70 + libmongoc/1.24.4/_static/readable.css | 461 + libmongoc/1.24.4/_static/searchtools.js | 667 + libmongoc/1.24.4/_static/underscore-1.3.1.js | 999 ++ libmongoc/1.24.4/_static/underscore.js | 31 + libmongoc/1.24.4/_static/up-pressed.png | Bin 0 -> 214 bytes libmongoc/1.24.4/_static/up.png | Bin 0 -> 203 bytes libmongoc/1.24.4/_static/websupport.js | 808 ++ libmongoc/1.24.4/advanced-connections.html | 308 + libmongoc/1.24.4/aggregate.html | 335 + libmongoc/1.24.4/api.html | 246 + .../application-performance-monitoring.html | 709 ++ libmongoc/1.24.4/authentication.html | 345 + libmongoc/1.24.4/basic-troubleshooting.html | 208 + libmongoc/1.24.4/bulk.html | 992 ++ .../client-side-field-level-encryption.html | 1194 ++ libmongoc/1.24.4/configuring_tls.html | 250 + libmongoc/1.24.4/connection-pooling.html | 187 + libmongoc/1.24.4/cursors.html | 342 + libmongoc/1.24.4/debugging.html | 221 + libmongoc/1.24.4/distinct-mapreduce.html | 580 + libmongoc/1.24.4/errors.html | 361 + libmongoc/1.24.4/full_index.html | 940 ++ libmongoc/1.24.4/gridfs.html | 187 + libmongoc/1.24.4/guides.html | 150 + libmongoc/1.24.4/in-use-encryption.html | 173 + libmongoc/1.24.4/index.html | 287 + libmongoc/1.24.4/init-cleanup.html | 203 + libmongoc/1.24.4/installing.html | 370 + libmongoc/1.24.4/lifecycle.html | 218 + libmongoc/1.24.4/logging.html | 297 + .../1.24.4/manage-collection-indexes.html | 182 + .../1.24.4/mongoc-common-task-examples.html | 431 + .../1.24.4/mongoc_apm_callbacks_destroy.html | 151 + .../1.24.4/mongoc_apm_callbacks_new.html | 155 + libmongoc/1.24.4/mongoc_apm_callbacks_t.html | 169 + ...c_apm_command_failed_get_command_name.html | 162 + ...mongoc_apm_command_failed_get_context.html | 162 + ...ongoc_apm_command_failed_get_duration.html | 162 + .../mongoc_apm_command_failed_get_error.html | 159 + .../mongoc_apm_command_failed_get_host.html | 161 + ...c_apm_command_failed_get_operation_id.html | 162 + .../mongoc_apm_command_failed_get_reply.html | 162 + ...goc_apm_command_failed_get_request_id.html | 162 + ...mmand_failed_get_server_connection_id.html | 175 + ...failed_get_server_connection_id_int64.html | 166 + ...ngoc_apm_command_failed_get_server_id.html | 162 + ...goc_apm_command_failed_get_service_id.html | 157 + .../1.24.4/mongoc_apm_command_failed_t.html | 166 + ...ongoc_apm_command_started_get_command.html | 162 + ..._apm_command_started_get_command_name.html | 162 + ...ongoc_apm_command_started_get_context.html | 162 + ...apm_command_started_get_database_name.html | 162 + .../mongoc_apm_command_started_get_host.html | 161 + ..._apm_command_started_get_operation_id.html | 162 + ...oc_apm_command_started_get_request_id.html | 162 + ...mand_started_get_server_connection_id.html | 174 + ...tarted_get_server_connection_id_int64.html | 165 + ...goc_apm_command_started_get_server_id.html | 162 + ...oc_apm_command_started_get_service_id.html | 157 + .../1.24.4/mongoc_apm_command_started_t.html | 165 + ...pm_command_succeeded_get_command_name.html | 162 + ...goc_apm_command_succeeded_get_context.html | 162 + ...oc_apm_command_succeeded_get_duration.html | 162 + ...mongoc_apm_command_succeeded_get_host.html | 162 + ...pm_command_succeeded_get_operation_id.html | 162 + ...ongoc_apm_command_succeeded_get_reply.html | 162 + ..._apm_command_succeeded_get_request_id.html | 162 + ...nd_succeeded_get_server_connection_id.html | 174 + ...ceeded_get_server_connection_id_int64.html | 165 + ...c_apm_command_succeeded_get_server_id.html | 162 + ..._apm_command_succeeded_get_service_id.html | 157 + .../mongoc_apm_command_succeeded_t.html | 165 + ...mongoc_apm_server_changed_get_context.html | 162 + .../mongoc_apm_server_changed_get_host.html | 161 + ...pm_server_changed_get_new_description.html | 162 + ...rver_changed_get_previous_description.html | 162 + ...oc_apm_server_changed_get_topology_id.html | 163 + .../1.24.4/mongoc_apm_server_changed_t.html | 159 + .../mongoc_apm_server_closed_get_context.html | 161 + .../mongoc_apm_server_closed_get_host.html | 161 + ...goc_apm_server_closed_get_topology_id.html | 163 + .../1.24.4/mongoc_apm_server_closed_t.html | 157 + ...m_server_heartbeat_failed_get_awaited.html | 162 + ...m_server_heartbeat_failed_get_context.html | 162 + ..._server_heartbeat_failed_get_duration.html | 162 + ...apm_server_heartbeat_failed_get_error.html | 159 + ..._apm_server_heartbeat_failed_get_host.html | 162 + .../mongoc_apm_server_heartbeat_failed_t.html | 159 + ..._server_heartbeat_started_get_awaited.html | 162 + ..._server_heartbeat_started_get_context.html | 162 + ...apm_server_heartbeat_started_get_host.html | 162 + ...mongoc_apm_server_heartbeat_started_t.html | 157 + ...erver_heartbeat_succeeded_get_awaited.html | 162 + ...erver_heartbeat_succeeded_get_context.html | 162 + ...rver_heartbeat_succeeded_get_duration.html | 162 + ...m_server_heartbeat_succeeded_get_host.html | 162 + ..._server_heartbeat_succeeded_get_reply.html | 162 + ...ngoc_apm_server_heartbeat_succeeded_t.html | 159 + ...mongoc_apm_server_opening_get_context.html | 162 + .../mongoc_apm_server_opening_get_host.html | 161 + ...oc_apm_server_opening_get_topology_id.html | 163 + .../1.24.4/mongoc_apm_server_opening_t.html | 157 + .../mongoc_apm_set_command_failed_cb.html | 162 + .../mongoc_apm_set_command_started_cb.html | 162 + .../mongoc_apm_set_command_succeeded_cb.html | 162 + .../mongoc_apm_set_server_changed_cb.html | 162 + .../mongoc_apm_set_server_closed_cb.html | 162 + ...oc_apm_set_server_heartbeat_failed_cb.html | 162 + ...c_apm_set_server_heartbeat_started_cb.html | 162 + ...apm_set_server_heartbeat_succeeded_cb.html | 162 + .../mongoc_apm_set_server_opening_cb.html | 162 + .../mongoc_apm_set_topology_changed_cb.html | 162 + .../mongoc_apm_set_topology_closed_cb.html | 162 + .../mongoc_apm_set_topology_opening_cb.html | 162 + ...ngoc_apm_topology_changed_get_context.html | 162 + ..._topology_changed_get_new_description.html | 162 + ...logy_changed_get_previous_description.html | 162 + ..._apm_topology_changed_get_topology_id.html | 163 + .../1.24.4/mongoc_apm_topology_changed_t.html | 158 + ...ongoc_apm_topology_closed_get_context.html | 162 + ...c_apm_topology_closed_get_topology_id.html | 163 + .../1.24.4/mongoc_apm_topology_closed_t.html | 156 + ...ngoc_apm_topology_opening_get_context.html | 162 + ..._apm_topology_opening_get_topology_id.html | 159 + .../1.24.4/mongoc_apm_topology_opening_t.html | 156 + .../mongoc_auto_encryption_opts_destroy.html | 207 + .../mongoc_auto_encryption_opts_new.html | 221 + ...ption_opts_set_bypass_auto_encryption.html | 208 + ...yption_opts_set_bypass_query_analysis.html | 215 + ...ryption_opts_set_encrypted_fields_map.html | 213 + ...mongoc_auto_encryption_opts_set_extra.html | 252 + ...o_encryption_opts_set_keyvault_client.html | 212 + ...ryption_opts_set_keyvault_client_pool.html | 212 + ...ncryption_opts_set_keyvault_namespace.html | 210 + ..._set_kms_credential_provider_callback.html | 214 + ...uto_encryption_opts_set_kms_providers.html | 245 + ...c_auto_encryption_opts_set_schema_map.html | 235 + ...goc_auto_encryption_opts_set_tls_opts.html | 237 + .../1.24.4/mongoc_auto_encryption_opts_t.html | 216 + .../1.24.4/mongoc_bulk_operation_delete.html | 222 + .../mongoc_bulk_operation_delete_one.html | 221 + .../1.24.4/mongoc_bulk_operation_destroy.html | 198 + .../1.24.4/mongoc_bulk_operation_execute.html | 226 + .../mongoc_bulk_operation_get_hint.html | 203 + ...ngoc_bulk_operation_get_write_concern.html | 205 + .../1.24.4/mongoc_bulk_operation_insert.html | 211 + ...ongoc_bulk_operation_insert_with_opts.html | 215 + .../1.24.4/mongoc_bulk_operation_remove.html | 217 + ..._bulk_operation_remove_many_with_opts.html | 225 + .../mongoc_bulk_operation_remove_one.html | 214 + ...c_bulk_operation_remove_one_with_opts.html | 225 + .../mongoc_bulk_operation_replace_one.html | 219 + ..._bulk_operation_replace_one_with_opts.html | 233 + ...ration_set_bypass_document_validation.html | 209 + ...goc_bulk_operation_set_client_session.html | 208 + .../mongoc_bulk_operation_set_comment.html | 204 + .../mongoc_bulk_operation_set_hint.html | 205 + .../1.24.4/mongoc_bulk_operation_set_let.html | 204 + libmongoc/1.24.4/mongoc_bulk_operation_t.html | 232 + .../1.24.4/mongoc_bulk_operation_update.html | 219 + ..._bulk_operation_update_many_with_opts.html | 231 + .../mongoc_bulk_operation_update_one.html | 218 + ...c_bulk_operation_update_one_with_opts.html | 231 + .../1.24.4/mongoc_change_stream_destroy.html | 198 + .../mongoc_change_stream_error_document.html | 209 + ...mongoc_change_stream_get_resume_token.html | 214 + .../1.24.4/mongoc_change_stream_next.html | 217 + libmongoc/1.24.4/mongoc_change_stream_t.html | 578 + libmongoc/1.24.4/mongoc_check_version.html | 205 + libmongoc/1.24.4/mongoc_cleanup.html | 197 + libmongoc/1.24.4/mongoc_client_command.html | 226 + .../1.24.4/mongoc_client_command_simple.html | 222 + ..._client_command_simple_with_server_id.html | 216 + .../mongoc_client_command_with_opts.html | 259 + libmongoc/1.24.4/mongoc_client_destroy.html | 205 + .../mongoc_client_enable_auto_encryption.html | 228 + ...oc_client_encryption_add_key_alt_name.html | 217 + ...ngoc_client_encryption_create_datakey.html | 219 + ...ncryption_create_encrypted_collection.html | 270 + ...lient_encryption_datakey_opts_destroy.html | 198 + ...oc_client_encryption_datakey_opts_new.html | 195 + ...cryption_datakey_opts_set_keyaltnames.html | 209 + ...cryption_datakey_opts_set_keymaterial.html | 207 + ...encryption_datakey_opts_set_masterkey.html | 239 + ...ngoc_client_encryption_datakey_opts_t.html | 208 + .../mongoc_client_encryption_decrypt.html | 218 + .../mongoc_client_encryption_delete_key.html | 216 + .../mongoc_client_encryption_destroy.html | 199 + .../mongoc_client_encryption_encrypt.html | 242 + ..._client_encryption_encrypt_expression.html | 257 + ...lient_encryption_encrypt_opts_destroy.html | 198 + ...oc_client_encryption_encrypt_opts_new.html | 195 + ...encryption_encrypt_opts_set_algorithm.html | 235 + ...on_encrypt_opts_set_contention_factor.html | 206 + ...ncryption_encrypt_opts_set_keyaltname.html | 209 + ...ent_encryption_encrypt_opts_set_keyid.html | 206 + ...ncryption_encrypt_opts_set_query_type.html | 209 + ...ncryption_encrypt_opts_set_range_opts.html | 218 + ...ngoc_client_encryption_encrypt_opts_t.html | 211 + ...encryption_encrypt_range_opts_destroy.html | 213 + ...ent_encryption_encrypt_range_opts_new.html | 211 + ...encryption_encrypt_range_opts_set_max.html | 223 + ...encryption_encrypt_range_opts_set_min.html | 223 + ...tion_encrypt_range_opts_set_precision.html | 224 + ...ption_encrypt_range_opts_set_sparsity.html | 219 + ...lient_encryption_encrypt_range_opts_t.html | 222 + ...t_encryption_get_crypt_shared_version.html | 215 + .../mongoc_client_encryption_get_key.html | 214 + ...client_encryption_get_key_by_alt_name.html | 215 + .../mongoc_client_encryption_get_keys.html | 210 + .../1.24.4/mongoc_client_encryption_new.html | 213 + ...mongoc_client_encryption_opts_destroy.html | 198 + .../mongoc_client_encryption_opts_new.html | 195 + ...t_encryption_opts_set_keyvault_client.html | 210 + ...ncryption_opts_set_keyvault_namespace.html | 210 + ..._set_kms_credential_provider_callback.html | 246 + ...ent_encryption_opts_set_kms_providers.html | 245 + ...c_client_encryption_opts_set_tls_opts.html | 234 + .../mongoc_client_encryption_opts_t.html | 210 + ...client_encryption_remove_key_alt_name.html | 218 + ...client_encryption_rewrap_many_datakey.html | 227 + ...on_rewrap_many_datakey_result_destroy.html | 199 + ..._datakey_result_get_bulk_write_result.html | 211 + ...yption_rewrap_many_datakey_result_new.html | 196 + ...cryption_rewrap_many_datakey_result_t.html | 207 + .../1.24.4/mongoc_client_encryption_t.html | 238 + ...ongoc_client_find_databases_with_opts.html | 218 + .../1.24.4/mongoc_client_get_collection.html | 211 + ...ongoc_client_get_crypt_shared_version.html | 216 + .../1.24.4/mongoc_client_get_database.html | 208 + .../mongoc_client_get_database_names.html | 223 + ...c_client_get_database_names_with_opts.html | 239 + .../mongoc_client_get_default_database.html | 228 + .../1.24.4/mongoc_client_get_gridfs.html | 212 + ...ngoc_client_get_handshake_description.html | 227 + .../mongoc_client_get_read_concern.html | 202 + .../1.24.4/mongoc_client_get_read_prefs.html | 202 + .../mongoc_client_get_server_description.html | 204 + ...mongoc_client_get_server_descriptions.html | 231 + .../mongoc_client_get_server_status.html | 220 + libmongoc/1.24.4/mongoc_client_get_uri.html | 202 + .../mongoc_client_get_write_concern.html | 202 + libmongoc/1.24.4/mongoc_client_new.html | 208 + .../1.24.4/mongoc_client_new_from_uri.html | 209 + ...mongoc_client_new_from_uri_with_error.html | 205 + .../1.24.4/mongoc_client_pool_destroy.html | 200 + ...oc_client_pool_enable_auto_encryption.html | 227 + .../1.24.4/mongoc_client_pool_max_size.html | 204 + .../1.24.4/mongoc_client_pool_min_size.html | 213 + libmongoc/1.24.4/mongoc_client_pool_new.html | 208 + .../mongoc_client_pool_new_with_error.html | 205 + libmongoc/1.24.4/mongoc_client_pool_pop.html | 208 + libmongoc/1.24.4/mongoc_client_pool_push.html | 203 + .../mongoc_client_pool_set_apm_callbacks.html | 217 + .../mongoc_client_pool_set_appname.html | 208 + .../mongoc_client_pool_set_error_api.html | 208 + .../mongoc_client_pool_set_server_api.html | 206 + .../mongoc_client_pool_set_ssl_opts.html | 220 + libmongoc/1.24.4/mongoc_client_pool_t.html | 322 + .../1.24.4/mongoc_client_pool_try_pop.html | 207 + .../mongoc_client_read_command_with_opts.html | 412 + ...c_client_read_write_command_with_opts.html | 260 + libmongoc/1.24.4/mongoc_client_reset.html | 203 + .../1.24.4/mongoc_client_select_server.html | 209 + ...ngoc_client_session_abort_transaction.html | 306 + ...c_client_session_advance_cluster_time.html | 303 + ...client_session_advance_operation_time.html | 305 + .../1.24.4/mongoc_client_session_append.html | 214 + ...goc_client_session_commit_transaction.html | 309 + .../1.24.4/mongoc_client_session_destroy.html | 301 + .../mongoc_client_session_get_client.html | 304 + ...ongoc_client_session_get_cluster_time.html | 304 + .../mongoc_client_session_get_dirty.html | 308 + .../mongoc_client_session_get_lsid.html | 304 + ...goc_client_session_get_operation_time.html | 304 + .../mongoc_client_session_get_opts.html | 304 + .../mongoc_client_session_get_server_id.html | 304 + ..._client_session_get_transaction_state.html | 202 + .../mongoc_client_session_in_transaction.html | 202 + ...ngoc_client_session_start_transaction.html | 498 + libmongoc/1.24.4/mongoc_client_session_t.html | 368 + ...ongoc_client_session_with_transaction.html | 408 + ..._client_session_with_transaction_cb_t.html | 213 + .../mongoc_client_set_apm_callbacks.html | 213 + .../1.24.4/mongoc_client_set_appname.html | 210 + .../1.24.4/mongoc_client_set_error_api.html | 204 + .../mongoc_client_set_read_concern.html | 202 + .../1.24.4/mongoc_client_set_read_prefs.html | 203 + .../1.24.4/mongoc_client_set_server_api.html | 206 + .../1.24.4/mongoc_client_set_ssl_opts.html | 216 + .../mongoc_client_set_stream_initiator.html | 203 + .../mongoc_client_set_write_concern.html | 202 + .../1.24.4/mongoc_client_start_session.html | 316 + libmongoc/1.24.4/mongoc_client_t.html | 341 + libmongoc/1.24.4/mongoc_client_watch.html | 242 + ...mongoc_client_write_command_with_opts.html | 405 + .../1.24.4/mongoc_collection_aggregate.html | 320 + .../1.24.4/mongoc_collection_command.html | 223 + .../mongoc_collection_command_simple.html | 252 + .../mongoc_collection_command_with_opts.html | 257 + libmongoc/1.24.4/mongoc_collection_copy.html | 207 + libmongoc/1.24.4/mongoc_collection_count.html | 261 + .../mongoc_collection_count_documents.html | 289 + .../mongoc_collection_count_with_opts.html | 320 + ...ngoc_collection_create_bulk_operation.html | 237 + ...ction_create_bulk_operation_with_opts.html | 233 + .../mongoc_collection_create_index.html | 209 + ...goc_collection_create_index_with_opts.html | 235 + ...c_collection_create_indexes_with_opts.html | 249 + .../1.24.4/mongoc_collection_delete.html | 228 + .../1.24.4/mongoc_collection_delete_many.html | 228 + .../1.24.4/mongoc_collection_delete_one.html | 228 + .../1.24.4/mongoc_collection_destroy.html | 205 + libmongoc/1.24.4/mongoc_collection_drop.html | 202 + .../1.24.4/mongoc_collection_drop_index.html | 205 + ...ongoc_collection_drop_index_with_opts.html | 228 + .../mongoc_collection_drop_with_opts.html | 247 + .../mongoc_collection_ensure_index.html | 214 + ...c_collection_estimated_document_count.html | 270 + libmongoc/1.24.4/mongoc_collection_find.html | 356 + .../mongoc_collection_find_and_modify.html | 332 + ..._collection_find_and_modify_with_opts.html | 226 + .../mongoc_collection_find_indexes.html | 227 + ...goc_collection_find_indexes_with_opts.html | 231 + .../mongoc_collection_find_with_opts.html | 430 + .../mongoc_collection_get_last_error.html | 206 + .../1.24.4/mongoc_collection_get_name.html | 205 + .../mongoc_collection_get_read_concern.html | 205 + .../mongoc_collection_get_read_prefs.html | 205 + .../mongoc_collection_get_write_concern.html | 205 + .../1.24.4/mongoc_collection_insert.html | 220 + .../1.24.4/mongoc_collection_insert_bulk.html | 228 + .../1.24.4/mongoc_collection_insert_many.html | 231 + .../1.24.4/mongoc_collection_insert_one.html | 228 + ...ongoc_collection_keys_to_index_string.html | 207 + ...goc_collection_read_command_with_opts.html | 259 + ...llection_read_write_command_with_opts.html | 258 + .../1.24.4/mongoc_collection_remove.html | 219 + .../1.24.4/mongoc_collection_rename.html | 209 + .../mongoc_collection_rename_with_opts.html | 225 + .../1.24.4/mongoc_collection_replace_one.html | 244 + libmongoc/1.24.4/mongoc_collection_save.html | 226 + .../mongoc_collection_set_read_concern.html | 204 + .../mongoc_collection_set_read_prefs.html | 205 + .../mongoc_collection_set_write_concern.html | 205 + libmongoc/1.24.4/mongoc_collection_stats.html | 223 + libmongoc/1.24.4/mongoc_collection_t.html | 256 + .../1.24.4/mongoc_collection_update.html | 222 + .../1.24.4/mongoc_collection_update_many.html | 243 + .../1.24.4/mongoc_collection_update_one.html | 323 + .../1.24.4/mongoc_collection_validate.html | 224 + libmongoc/1.24.4/mongoc_collection_watch.html | 242 + ...oc_collection_write_command_with_opts.html | 252 + libmongoc/1.24.4/mongoc_cursor_clone.html | 210 + libmongoc/1.24.4/mongoc_cursor_current.html | 205 + libmongoc/1.24.4/mongoc_cursor_destroy.html | 201 + libmongoc/1.24.4/mongoc_cursor_error.html | 219 + .../1.24.4/mongoc_cursor_error_document.html | 313 + .../1.24.4/mongoc_cursor_get_batch_size.html | 202 + libmongoc/1.24.4/mongoc_cursor_get_hint.html | 203 + libmongoc/1.24.4/mongoc_cursor_get_host.html | 202 + libmongoc/1.24.4/mongoc_cursor_get_id.html | 202 + libmongoc/1.24.4/mongoc_cursor_get_limit.html | 201 + .../mongoc_cursor_get_max_await_time_ms.html | 201 + libmongoc/1.24.4/mongoc_cursor_is_alive.html | 209 + libmongoc/1.24.4/mongoc_cursor_more.html | 213 + .../mongoc_cursor_new_from_command_reply.html | 236 + ...rsor_new_from_command_reply_with_opts.html | 237 + libmongoc/1.24.4/mongoc_cursor_next.html | 212 + .../1.24.4/mongoc_cursor_set_batch_size.html | 204 + libmongoc/1.24.4/mongoc_cursor_set_hint.html | 208 + libmongoc/1.24.4/mongoc_cursor_set_limit.html | 209 + .../mongoc_cursor_set_max_await_time_ms.html | 212 + libmongoc/1.24.4/mongoc_cursor_t.html | 316 + .../1.24.4/mongoc_database_add_user.html | 220 + .../1.24.4/mongoc_database_aggregate.html | 297 + libmongoc/1.24.4/mongoc_database_command.html | 227 + .../mongoc_database_command_simple.html | 216 + .../mongoc_database_command_with_opts.html | 257 + libmongoc/1.24.4/mongoc_database_copy.html | 205 + .../mongoc_database_create_collection.html | 219 + libmongoc/1.24.4/mongoc_database_destroy.html | 198 + libmongoc/1.24.4/mongoc_database_drop.html | 202 + .../mongoc_database_drop_with_opts.html | 221 + .../mongoc_database_find_collections.html | 227 + ...c_database_find_collections_with_opts.html | 263 + .../mongoc_database_get_collection.html | 197 + .../mongoc_database_get_collection_names.html | 223 + ...tabase_get_collection_names_with_opts.html | 249 + .../1.24.4/mongoc_database_get_name.html | 202 + .../mongoc_database_get_read_concern.html | 202 + .../mongoc_database_get_read_prefs.html | 202 + .../mongoc_database_get_write_concern.html | 202 + .../mongoc_database_has_collection.html | 211 + ...ongoc_database_read_command_with_opts.html | 259 + ...database_read_write_command_with_opts.html | 258 + .../mongoc_database_remove_all_users.html | 208 + .../1.24.4/mongoc_database_remove_user.html | 210 + .../mongoc_database_set_read_concern.html | 201 + .../mongoc_database_set_read_prefs.html | 202 + .../mongoc_database_set_write_concern.html | 201 + libmongoc/1.24.4/mongoc_database_t.html | 253 + libmongoc/1.24.4/mongoc_database_watch.html | 242 + ...ngoc_database_write_command_with_opts.html | 253 + libmongoc/1.24.4/mongoc_delete_flags_t.html | 200 + libmongoc/1.24.4/mongoc_error_has_label.html | 203 + .../mongoc_find_and_modify_opts_append.html | 282 + .../mongoc_find_and_modify_opts_destroy.html | 202 + ...y_opts_get_bypass_document_validation.html | 202 + ...ongoc_find_and_modify_opts_get_fields.html | 203 + ...mongoc_find_and_modify_opts_get_flags.html | 202 + ..._find_and_modify_opts_get_max_time_ms.html | 202 + .../mongoc_find_and_modify_opts_get_sort.html | 203 + ...ongoc_find_and_modify_opts_get_update.html | 203 + .../mongoc_find_and_modify_opts_new.html | 195 + ...y_opts_set_bypass_document_validation.html | 276 + ...ongoc_find_and_modify_opts_set_fields.html | 275 + ...mongoc_find_and_modify_opts_set_flags.html | 301 + ..._find_and_modify_opts_set_max_time_ms.html | 274 + .../mongoc_find_and_modify_opts_set_sort.html | 278 + ...ongoc_find_and_modify_opts_set_update.html | 277 + .../1.24.4/mongoc_find_and_modify_opts_t.html | 701 ++ .../1.24.4/mongoc_get_major_version.html | 195 + .../1.24.4/mongoc_get_micro_version.html | 195 + .../1.24.4/mongoc_get_minor_version.html | 195 + libmongoc/1.24.4/mongoc_get_version.html | 195 + .../mongoc_gridfs_bucket_abort_upload.html | 214 + .../mongoc_gridfs_bucket_delete_by_id.html | 209 + .../1.24.4/mongoc_gridfs_bucket_destroy.html | 201 + ...ngoc_gridfs_bucket_download_to_stream.html | 222 + .../1.24.4/mongoc_gridfs_bucket_find.html | 212 + .../1.24.4/mongoc_gridfs_bucket_new.html | 218 + ...oc_gridfs_bucket_open_download_stream.html | 216 + ...ngoc_gridfs_bucket_open_upload_stream.html | 229 + ...dfs_bucket_open_upload_stream_with_id.html | 229 + .../mongoc_gridfs_bucket_stream_error.html | 219 + libmongoc/1.24.4/mongoc_gridfs_bucket_t.html | 333 + ...ngoc_gridfs_bucket_upload_from_stream.html | 229 + ...dfs_bucket_upload_from_stream_with_id.html | 229 + .../1.24.4/mongoc_gridfs_create_file.html | 209 + ...mongoc_gridfs_create_file_from_stream.html | 211 + libmongoc/1.24.4/mongoc_gridfs_destroy.html | 201 + libmongoc/1.24.4/mongoc_gridfs_drop.html | 210 + .../1.24.4/mongoc_gridfs_file_destroy.html | 201 + .../1.24.4/mongoc_gridfs_file_error.html | 210 + .../mongoc_gridfs_file_get_aliases.html | 205 + .../mongoc_gridfs_file_get_chunk_size.html | 205 + .../mongoc_gridfs_file_get_content_type.html | 205 + .../mongoc_gridfs_file_get_filename.html | 205 + .../1.24.4/mongoc_gridfs_file_get_id.html | 206 + .../1.24.4/mongoc_gridfs_file_get_length.html | 205 + .../1.24.4/mongoc_gridfs_file_get_md5.html | 205 + .../mongoc_gridfs_file_get_metadata.html | 205 + .../mongoc_gridfs_file_get_upload_date.html | 205 + .../mongoc_gridfs_file_list_destroy.html | 201 + .../1.24.4/mongoc_gridfs_file_list_error.html | 211 + .../1.24.4/mongoc_gridfs_file_list_next.html | 206 + .../1.24.4/mongoc_gridfs_file_list_t.html | 222 + .../1.24.4/mongoc_gridfs_file_opt_t.html | 205 + .../1.24.4/mongoc_gridfs_file_readv.html | 214 + .../1.24.4/mongoc_gridfs_file_remove.html | 210 + libmongoc/1.24.4/mongoc_gridfs_file_save.html | 207 + libmongoc/1.24.4/mongoc_gridfs_file_seek.html | 234 + .../mongoc_gridfs_file_set_aliases.html | 203 + .../mongoc_gridfs_file_set_content_type.html | 204 + .../mongoc_gridfs_file_set_filename.html | 204 + .../1.24.4/mongoc_gridfs_file_set_id.html | 210 + .../1.24.4/mongoc_gridfs_file_set_md5.html | 203 + .../mongoc_gridfs_file_set_metadata.html | 204 + libmongoc/1.24.4/mongoc_gridfs_file_t.html | 242 + libmongoc/1.24.4/mongoc_gridfs_file_tell.html | 205 + .../1.24.4/mongoc_gridfs_file_writev.html | 213 + libmongoc/1.24.4/mongoc_gridfs_find.html | 217 + libmongoc/1.24.4/mongoc_gridfs_find_one.html | 223 + .../mongoc_gridfs_find_one_by_filename.html | 217 + .../mongoc_gridfs_find_one_with_opts.html | 220 + .../1.24.4/mongoc_gridfs_find_with_opts.html | 213 + .../1.24.4/mongoc_gridfs_get_chunks.html | 205 + libmongoc/1.24.4/mongoc_gridfs_get_files.html | 205 + .../mongoc_gridfs_remove_by_filename.html | 213 + libmongoc/1.24.4/mongoc_gridfs_t.html | 403 + .../1.24.4/mongoc_handshake_data_append.html | 255 + libmongoc/1.24.4/mongoc_host_list_t.html | 206 + .../mongoc_index_opt_geo_get_default.html | 195 + .../1.24.4/mongoc_index_opt_geo_init.html | 201 + libmongoc/1.24.4/mongoc_index_opt_geo_t.html | 220 + .../1.24.4/mongoc_index_opt_get_default.html | 195 + libmongoc/1.24.4/mongoc_index_opt_init.html | 201 + libmongoc/1.24.4/mongoc_index_opt_t.html | 270 + .../mongoc_index_opt_wt_get_default.html | 195 + .../1.24.4/mongoc_index_opt_wt_init.html | 201 + libmongoc/1.24.4/mongoc_index_opt_wt_t.html | 217 + libmongoc/1.24.4/mongoc_init.html | 197 + libmongoc/1.24.4/mongoc_insert_flags_t.html | 215 + libmongoc/1.24.4/mongoc_iovec_t.html | 206 + libmongoc/1.24.4/mongoc_optional_copy.html | 199 + libmongoc/1.24.4/mongoc_optional_init.html | 198 + libmongoc/1.24.4/mongoc_optional_is_set.html | 202 + .../1.24.4/mongoc_optional_set_value.html | 198 + libmongoc/1.24.4/mongoc_optional_t.html | 201 + libmongoc/1.24.4/mongoc_optional_value.html | 202 + libmongoc/1.24.4/mongoc_query_flags_t.html | 235 + libmongoc/1.24.4/mongoc_rand.html | 220 + libmongoc/1.24.4/mongoc_rand_add.html | 203 + libmongoc/1.24.4/mongoc_rand_seed.html | 202 + libmongoc/1.24.4/mongoc_rand_status.html | 199 + .../1.24.4/mongoc_read_concern_append.html | 210 + .../1.24.4/mongoc_read_concern_copy.html | 206 + .../1.24.4/mongoc_read_concern_destroy.html | 201 + .../1.24.4/mongoc_read_concern_get_level.html | 205 + .../mongoc_read_concern_is_default.html | 201 + libmongoc/1.24.4/mongoc_read_concern_new.html | 195 + .../1.24.4/mongoc_read_concern_set_level.html | 211 + libmongoc/1.24.4/mongoc_read_concern_t.html | 241 + libmongoc/1.24.4/mongoc_read_mode_t.html | 201 + .../1.24.4/mongoc_read_prefs_add_tag.html | 202 + libmongoc/1.24.4/mongoc_read_prefs_copy.html | 206 + .../1.24.4/mongoc_read_prefs_destroy.html | 201 + .../1.24.4/mongoc_read_prefs_get_hedge.html | 205 + ..._read_prefs_get_max_staleness_seconds.html | 202 + .../1.24.4/mongoc_read_prefs_get_mode.html | 205 + .../1.24.4/mongoc_read_prefs_get_tags.html | 205 + .../1.24.4/mongoc_read_prefs_is_valid.html | 206 + libmongoc/1.24.4/mongoc_read_prefs_new.html | 206 + .../1.24.4/mongoc_read_prefs_set_hedge.html | 210 + ..._read_prefs_set_max_staleness_seconds.html | 203 + .../1.24.4/mongoc_read_prefs_set_mode.html | 203 + .../1.24.4/mongoc_read_prefs_set_tags.html | 272 + libmongoc/1.24.4/mongoc_read_prefs_t.html | 271 + libmongoc/1.24.4/mongoc_remove_flags_t.html | 210 + libmongoc/1.24.4/mongoc_reply_flags_t.html | 222 + libmongoc/1.24.4/mongoc_server_api_copy.html | 203 + .../mongoc_server_api_deprecation_errors.html | 200 + .../1.24.4/mongoc_server_api_destroy.html | 192 + ...goc_server_api_get_deprecation_errors.html | 202 + .../1.24.4/mongoc_server_api_get_strict.html | 202 + .../1.24.4/mongoc_server_api_get_version.html | 202 + libmongoc/1.24.4/mongoc_server_api_new.html | 197 + .../1.24.4/mongoc_server_api_strict.html | 199 + libmongoc/1.24.4/mongoc_server_api_t.html | 205 + ...mongoc_server_api_version_from_string.html | 204 + .../1.24.4/mongoc_server_api_version_t.html | 213 + .../mongoc_server_api_version_to_string.html | 202 + .../mongoc_server_description_destroy.html | 201 + ...goc_server_description_hello_response.html | 211 + .../mongoc_server_description_host.html | 205 + .../1.24.4/mongoc_server_description_id.html | 201 + .../mongoc_server_description_ismaster.html | 213 + ...c_server_description_last_update_time.html | 205 + .../mongoc_server_description_new_copy.html | 206 + ...oc_server_description_round_trip_time.html | 202 + .../1.24.4/mongoc_server_description_t.html | 221 + .../mongoc_server_description_type.html | 213 + ...ongoc_server_descriptions_destroy_all.html | 200 + libmongoc/1.24.4/mongoc_session_opt_t.html | 213 + .../1.24.4/mongoc_session_opts_clone.html | 305 + .../1.24.4/mongoc_session_opts_destroy.html | 304 + ...c_session_opts_get_causal_consistency.html | 300 + ...ion_opts_get_default_transaction_opts.html | 304 + .../mongoc_session_opts_get_snapshot.html | 300 + ...goc_session_opts_get_transaction_opts.html | 306 + libmongoc/1.24.4/mongoc_session_opts_new.html | 302 + ...c_session_opts_set_causal_consistency.html | 346 + ...ion_opts_set_default_transaction_opts.html | 309 + .../mongoc_session_opts_set_snapshot.html | 343 + libmongoc/1.24.4/mongoc_socket_accept.html | 207 + libmongoc/1.24.4/mongoc_socket_bind.html | 209 + libmongoc/1.24.4/mongoc_socket_close.html | 205 + libmongoc/1.24.4/mongoc_socket_connect.html | 212 + libmongoc/1.24.4/mongoc_socket_destroy.html | 201 + libmongoc/1.24.4/mongoc_socket_errno.html | 205 + .../1.24.4/mongoc_socket_getnameinfo.html | 205 + .../1.24.4/mongoc_socket_getsockname.html | 209 + libmongoc/1.24.4/mongoc_socket_listen.html | 206 + libmongoc/1.24.4/mongoc_socket_new.html | 209 + libmongoc/1.24.4/mongoc_socket_recv.html | 213 + libmongoc/1.24.4/mongoc_socket_send.html | 211 + libmongoc/1.24.4/mongoc_socket_sendv.html | 211 + .../1.24.4/mongoc_socket_setsockopt.html | 213 + libmongoc/1.24.4/mongoc_socket_t.html | 217 + .../1.24.4/mongoc_ssl_opt_get_default.html | 195 + libmongoc/1.24.4/mongoc_ssl_opt_t.html | 225 + .../1.24.4/mongoc_stream_buffered_new.html | 205 + .../1.24.4/mongoc_stream_buffered_t.html | 202 + libmongoc/1.24.4/mongoc_stream_close.html | 208 + libmongoc/1.24.4/mongoc_stream_cork.html | 215 + libmongoc/1.24.4/mongoc_stream_destroy.html | 198 + .../1.24.4/mongoc_stream_file_get_fd.html | 206 + libmongoc/1.24.4/mongoc_stream_file_new.html | 203 + .../mongoc_stream_file_new_for_path.html | 207 + libmongoc/1.24.4/mongoc_stream_file_t.html | 200 + libmongoc/1.24.4/mongoc_stream_flush.html | 203 + .../1.24.4/mongoc_stream_get_base_stream.html | 202 + .../1.24.4/mongoc_stream_gridfs_new.html | 205 + libmongoc/1.24.4/mongoc_stream_read.html | 222 + libmongoc/1.24.4/mongoc_stream_readv.html | 222 + .../1.24.4/mongoc_stream_setsockopt.html | 210 + .../1.24.4/mongoc_stream_should_retry.html | 201 + .../mongoc_stream_socket_get_socket.html | 202 + .../1.24.4/mongoc_stream_socket_new.html | 207 + libmongoc/1.24.4/mongoc_stream_socket_t.html | 199 + libmongoc/1.24.4/mongoc_stream_t.html | 231 + libmongoc/1.24.4/mongoc_stream_timed_out.html | 201 + libmongoc/1.24.4/mongoc_stream_tls_t.html | 190 + libmongoc/1.24.4/mongoc_stream_uncork.html | 215 + libmongoc/1.24.4/mongoc_stream_write.html | 220 + libmongoc/1.24.4/mongoc_stream_writev.html | 211 + .../mongoc_topology_description_destroy.html | 201 + ...ngoc_topology_description_get_servers.html | 205 + ...ology_description_has_readable_server.html | 214 + ...ology_description_has_writable_server.html | 212 + .../mongoc_topology_description_new_copy.html | 207 + .../1.24.4/mongoc_topology_description_t.html | 206 + .../mongoc_topology_description_type.html | 209 + .../1.24.4/mongoc_transaction_opt_t.html | 405 + .../1.24.4/mongoc_transaction_opts_clone.html | 305 + .../mongoc_transaction_opts_destroy.html | 300 + ...ansaction_opts_get_max_commit_time_ms.html | 300 + ...goc_transaction_opts_get_read_concern.html | 304 + ...ongoc_transaction_opts_get_read_prefs.html | 304 + ...oc_transaction_opts_get_write_concern.html | 304 + .../1.24.4/mongoc_transaction_opts_new.html | 298 + ...ansaction_opts_set_max_commit_time_ms.html | 302 + ...goc_transaction_opts_set_read_concern.html | 302 + ...ongoc_transaction_opts_set_read_prefs.html | 302 + ...oc_transaction_opts_set_write_concern.html | 302 + .../1.24.4/mongoc_transaction_state_t.html | 222 + libmongoc/1.24.4/mongoc_update_flags_t.html | 219 + libmongoc/1.24.4/mongoc_uri_copy.html | 205 + libmongoc/1.24.4/mongoc_uri_destroy.html | 201 + .../1.24.4/mongoc_uri_get_auth_mechanism.html | 229 + .../1.24.4/mongoc_uri_get_auth_source.html | 229 + .../1.24.4/mongoc_uri_get_compressors.html | 218 + libmongoc/1.24.4/mongoc_uri_get_database.html | 205 + libmongoc/1.24.4/mongoc_uri_get_hosts.html | 205 + .../mongoc_uri_get_mechanism_properties.html | 254 + .../1.24.4/mongoc_uri_get_option_as_bool.html | 205 + .../mongoc_uri_get_option_as_int32.html | 217 + .../mongoc_uri_get_option_as_int64.html | 216 + .../1.24.4/mongoc_uri_get_option_as_utf8.html | 205 + libmongoc/1.24.4/mongoc_uri_get_options.html | 205 + libmongoc/1.24.4/mongoc_uri_get_password.html | 205 + .../1.24.4/mongoc_uri_get_read_concern.html | 205 + .../1.24.4/mongoc_uri_get_read_prefs.html | 212 + .../1.24.4/mongoc_uri_get_read_prefs_t.html | 205 + .../1.24.4/mongoc_uri_get_replica_set.html | 205 + libmongoc/1.24.4/mongoc_uri_get_service.html | 210 + .../1.24.4/mongoc_uri_get_srv_hostname.html | 205 + .../mongoc_uri_get_srv_service_name.html | 205 + libmongoc/1.24.4/mongoc_uri_get_ssl.html | 214 + libmongoc/1.24.4/mongoc_uri_get_string.html | 205 + libmongoc/1.24.4/mongoc_uri_get_tls.html | 205 + libmongoc/1.24.4/mongoc_uri_get_username.html | 205 + .../1.24.4/mongoc_uri_get_write_concern.html | 205 + libmongoc/1.24.4/mongoc_uri_has_option.html | 202 + libmongoc/1.24.4/mongoc_uri_new.html | 210 + .../1.24.4/mongoc_uri_new_for_host_port.html | 206 + .../1.24.4/mongoc_uri_new_with_error.html | 225 + .../1.24.4/mongoc_uri_option_is_bool.html | 201 + .../1.24.4/mongoc_uri_option_is_int32.html | 207 + .../1.24.4/mongoc_uri_option_is_int64.html | 207 + .../1.24.4/mongoc_uri_option_is_utf8.html | 201 + .../1.24.4/mongoc_uri_set_auth_mechanism.html | 231 + .../1.24.4/mongoc_uri_set_auth_source.html | 231 + .../1.24.4/mongoc_uri_set_compressors.html | 221 + libmongoc/1.24.4/mongoc_uri_set_database.html | 207 + .../mongoc_uri_set_mechanism_properties.html | 250 + .../1.24.4/mongoc_uri_set_option_as_bool.html | 211 + .../mongoc_uri_set_option_as_int32.html | 217 + .../mongoc_uri_set_option_as_int64.html | 220 + .../1.24.4/mongoc_uri_set_option_as_utf8.html | 211 + libmongoc/1.24.4/mongoc_uri_set_password.html | 206 + .../1.24.4/mongoc_uri_set_read_concern.html | 203 + .../1.24.4/mongoc_uri_set_read_prefs_t.html | 203 + libmongoc/1.24.4/mongoc_uri_set_username.html | 206 + .../1.24.4/mongoc_uri_set_write_concern.html | 203 + libmongoc/1.24.4/mongoc_uri_t.html | 610 + libmongoc/1.24.4/mongoc_uri_unescape.html | 205 + libmongoc/1.24.4/mongoc_version.html | 220 + .../1.24.4/mongoc_write_concern_append.html | 211 + .../1.24.4/mongoc_write_concern_copy.html | 206 + .../1.24.4/mongoc_write_concern_destroy.html | 201 + .../mongoc_write_concern_get_fsync.html | 212 + .../mongoc_write_concern_get_journal.html | 205 + .../1.24.4/mongoc_write_concern_get_w.html | 205 + .../mongoc_write_concern_get_wmajority.html | 206 + .../1.24.4/mongoc_write_concern_get_wtag.html | 205 + .../mongoc_write_concern_get_wtimeout.html | 212 + ...ngoc_write_concern_get_wtimeout_int64.html | 212 + .../mongoc_write_concern_is_acknowledged.html | 203 + .../mongoc_write_concern_is_default.html | 202 + .../1.24.4/mongoc_write_concern_is_valid.html | 201 + .../mongoc_write_concern_journal_is_set.html | 202 + .../1.24.4/mongoc_write_concern_new.html | 195 + .../mongoc_write_concern_set_fsync.html | 214 + .../mongoc_write_concern_set_journal.html | 207 + .../1.24.4/mongoc_write_concern_set_w.html | 207 + .../mongoc_write_concern_set_wmajority.html | 208 + .../1.24.4/mongoc_write_concern_set_wtag.html | 207 + .../mongoc_write_concern_set_wtimeout.html | 213 + ...ngoc_write_concern_set_wtimeout_int64.html | 213 + libmongoc/1.24.4/mongoc_write_concern_t.html | 254 + libmongoc/1.24.4/objects.inv | Bin 0 -> 9864 bytes libmongoc/1.24.4/queryable-encryption.html | 160 + libmongoc/1.24.4/search.html | 126 + libmongoc/1.24.4/searchindex.js | 1 + libmongoc/1.24.4/tutorial.html | 1109 ++ libmongoc/1.24.4/visual-studio-guide.html | 186 + libmongoc/_static/documentation_options.js | 2 +- libmongoc/current | 2 +- libmongoc/index.html | 9 +- objects.inv | Bin 284 -> 284 bytes search.html | 6 +- searchindex.js | 2 +- 1950 files changed, 232664 insertions(+), 28 deletions(-) create mode 100644 libbson/1.24.4/.nojekyll create mode 100644 libbson/1.24.4/CMakeLists.txt create mode 100644 libbson/1.24.4/_static/ajax-loader.gif create mode 100644 libbson/1.24.4/_static/basic.css create mode 100644 libbson/1.24.4/_static/comment-bright.png create mode 100644 libbson/1.24.4/_static/comment-close.png create mode 100644 libbson/1.24.4/_static/comment.png create mode 100644 libbson/1.24.4/_static/doctools.js create mode 100644 libbson/1.24.4/_static/documentation_options.js create mode 100644 libbson/1.24.4/_static/down-pressed.png create mode 100644 libbson/1.24.4/_static/down.png create mode 100644 libbson/1.24.4/_static/file.png create mode 100644 libbson/1.24.4/_static/jquery-3.2.1.js create mode 100644 libbson/1.24.4/_static/jquery.js create mode 100644 libbson/1.24.4/_static/minus.png create mode 100644 libbson/1.24.4/_static/plus.png create mode 100644 libbson/1.24.4/_static/pygments.css create mode 100644 libbson/1.24.4/_static/readable.css create mode 100644 libbson/1.24.4/_static/searchtools.js create mode 100644 libbson/1.24.4/_static/underscore-1.3.1.js create mode 100644 libbson/1.24.4/_static/underscore.js create mode 100644 libbson/1.24.4/_static/up-pressed.png create mode 100644 libbson/1.24.4/_static/up.png create mode 100644 libbson/1.24.4/_static/websupport.js create mode 100644 libbson/1.24.4/api.html create mode 100644 libbson/1.24.4/bson_aligned_alloc.html create mode 100644 libbson/1.24.4/bson_aligned_alloc0.html create mode 100644 libbson/1.24.4/bson_append_array.html create mode 100644 libbson/1.24.4/bson_append_array_begin.html create mode 100644 libbson/1.24.4/bson_append_array_end.html create mode 100644 libbson/1.24.4/bson_append_binary.html create mode 100644 libbson/1.24.4/bson_append_bool.html create mode 100644 libbson/1.24.4/bson_append_code.html create mode 100644 libbson/1.24.4/bson_append_code_with_scope.html create mode 100644 libbson/1.24.4/bson_append_date_time.html create mode 100644 libbson/1.24.4/bson_append_dbpointer.html create mode 100644 libbson/1.24.4/bson_append_decimal128.html create mode 100644 libbson/1.24.4/bson_append_document.html create mode 100644 libbson/1.24.4/bson_append_document_begin.html create mode 100644 libbson/1.24.4/bson_append_document_end.html create mode 100644 libbson/1.24.4/bson_append_double.html create mode 100644 libbson/1.24.4/bson_append_int32.html create mode 100644 libbson/1.24.4/bson_append_int64.html create mode 100644 libbson/1.24.4/bson_append_iter.html create mode 100644 libbson/1.24.4/bson_append_maxkey.html create mode 100644 libbson/1.24.4/bson_append_minkey.html create mode 100644 libbson/1.24.4/bson_append_now_utc.html create mode 100644 libbson/1.24.4/bson_append_null.html create mode 100644 libbson/1.24.4/bson_append_oid.html create mode 100644 libbson/1.24.4/bson_append_regex.html create mode 100644 libbson/1.24.4/bson_append_regex_w_len.html create mode 100644 libbson/1.24.4/bson_append_symbol.html create mode 100644 libbson/1.24.4/bson_append_time_t.html create mode 100644 libbson/1.24.4/bson_append_timestamp.html create mode 100644 libbson/1.24.4/bson_append_timeval.html create mode 100644 libbson/1.24.4/bson_append_undefined.html create mode 100644 libbson/1.24.4/bson_append_utf8.html create mode 100644 libbson/1.24.4/bson_append_value.html create mode 100644 libbson/1.24.4/bson_array_as_canonical_extended_json.html create mode 100644 libbson/1.24.4/bson_array_as_json.html create mode 100644 libbson/1.24.4/bson_array_as_relaxed_extended_json.html create mode 100644 libbson/1.24.4/bson_as_canonical_extended_json.html create mode 100644 libbson/1.24.4/bson_as_json.html create mode 100644 libbson/1.24.4/bson_as_json_with_opts.html create mode 100644 libbson/1.24.4/bson_as_relaxed_extended_json.html create mode 100644 libbson/1.24.4/bson_ascii_strtoll.html create mode 100644 libbson/1.24.4/bson_check_version.html create mode 100644 libbson/1.24.4/bson_compare.html create mode 100644 libbson/1.24.4/bson_concat.html create mode 100644 libbson/1.24.4/bson_context_destroy.html create mode 100644 libbson/1.24.4/bson_context_get_default.html create mode 100644 libbson/1.24.4/bson_context_new.html create mode 100644 libbson/1.24.4/bson_context_t.html create mode 100644 libbson/1.24.4/bson_copy.html create mode 100644 libbson/1.24.4/bson_copy_to.html create mode 100644 libbson/1.24.4/bson_copy_to_excluding.html create mode 100644 libbson/1.24.4/bson_copy_to_excluding_noinit.html create mode 100644 libbson/1.24.4/bson_copy_to_excluding_noinit_va.html create mode 100644 libbson/1.24.4/bson_count_keys.html create mode 100644 libbson/1.24.4/bson_decimal128_from_string.html create mode 100644 libbson/1.24.4/bson_decimal128_from_string_w_len.html create mode 100644 libbson/1.24.4/bson_decimal128_t.html create mode 100644 libbson/1.24.4/bson_decimal128_to_string.html create mode 100644 libbson/1.24.4/bson_destroy.html create mode 100644 libbson/1.24.4/bson_destroy_with_steal.html create mode 100644 libbson/1.24.4/bson_equal.html create mode 100644 libbson/1.24.4/bson_error_t.html create mode 100644 libbson/1.24.4/bson_free.html create mode 100644 libbson/1.24.4/bson_get_data.html create mode 100644 libbson/1.24.4/bson_get_major_version.html create mode 100644 libbson/1.24.4/bson_get_micro_version.html create mode 100644 libbson/1.24.4/bson_get_minor_version.html create mode 100644 libbson/1.24.4/bson_get_monotonic_time.html create mode 100644 libbson/1.24.4/bson_get_version.html create mode 100644 libbson/1.24.4/bson_has_field.html create mode 100644 libbson/1.24.4/bson_init.html create mode 100644 libbson/1.24.4/bson_init_from_json.html create mode 100644 libbson/1.24.4/bson_init_static.html create mode 100644 libbson/1.24.4/bson_isspace.html create mode 100644 libbson/1.24.4/bson_iter_array.html create mode 100644 libbson/1.24.4/bson_iter_as_bool.html create mode 100644 libbson/1.24.4/bson_iter_as_double.html create mode 100644 libbson/1.24.4/bson_iter_as_int64.html create mode 100644 libbson/1.24.4/bson_iter_binary.html create mode 100644 libbson/1.24.4/bson_iter_bool.html create mode 100644 libbson/1.24.4/bson_iter_code.html create mode 100644 libbson/1.24.4/bson_iter_codewscope.html create mode 100644 libbson/1.24.4/bson_iter_date_time.html create mode 100644 libbson/1.24.4/bson_iter_dbpointer.html create mode 100644 libbson/1.24.4/bson_iter_decimal128.html create mode 100644 libbson/1.24.4/bson_iter_document.html create mode 100644 libbson/1.24.4/bson_iter_double.html create mode 100644 libbson/1.24.4/bson_iter_dup_utf8.html create mode 100644 libbson/1.24.4/bson_iter_find.html create mode 100644 libbson/1.24.4/bson_iter_find_case.html create mode 100644 libbson/1.24.4/bson_iter_find_descendant.html create mode 100644 libbson/1.24.4/bson_iter_find_w_len.html create mode 100644 libbson/1.24.4/bson_iter_init.html create mode 100644 libbson/1.24.4/bson_iter_init_find.html create mode 100644 libbson/1.24.4/bson_iter_init_find_case.html create mode 100644 libbson/1.24.4/bson_iter_init_find_w_len.html create mode 100644 libbson/1.24.4/bson_iter_init_from_data.html create mode 100644 libbson/1.24.4/bson_iter_init_from_data_at_offset.html create mode 100644 libbson/1.24.4/bson_iter_int32.html create mode 100644 libbson/1.24.4/bson_iter_int64.html create mode 100644 libbson/1.24.4/bson_iter_key.html create mode 100644 libbson/1.24.4/bson_iter_key_len.html create mode 100644 libbson/1.24.4/bson_iter_next.html create mode 100644 libbson/1.24.4/bson_iter_offset.html create mode 100644 libbson/1.24.4/bson_iter_oid.html create mode 100644 libbson/1.24.4/bson_iter_overwrite_bool.html create mode 100644 libbson/1.24.4/bson_iter_overwrite_date_time.html create mode 100644 libbson/1.24.4/bson_iter_overwrite_decimal128.html create mode 100644 libbson/1.24.4/bson_iter_overwrite_double.html create mode 100644 libbson/1.24.4/bson_iter_overwrite_int32.html create mode 100644 libbson/1.24.4/bson_iter_overwrite_int64.html create mode 100644 libbson/1.24.4/bson_iter_overwrite_oid.html create mode 100644 libbson/1.24.4/bson_iter_overwrite_timestamp.html create mode 100644 libbson/1.24.4/bson_iter_recurse.html create mode 100644 libbson/1.24.4/bson_iter_regex.html create mode 100644 libbson/1.24.4/bson_iter_symbol.html create mode 100644 libbson/1.24.4/bson_iter_t.html create mode 100644 libbson/1.24.4/bson_iter_time_t.html create mode 100644 libbson/1.24.4/bson_iter_timestamp.html create mode 100644 libbson/1.24.4/bson_iter_timeval.html create mode 100644 libbson/1.24.4/bson_iter_type.html create mode 100644 libbson/1.24.4/bson_iter_utf8.html create mode 100644 libbson/1.24.4/bson_iter_value.html create mode 100644 libbson/1.24.4/bson_iter_visit_all.html create mode 100644 libbson/1.24.4/bson_json_data_reader_ingest.html create mode 100644 libbson/1.24.4/bson_json_data_reader_new.html create mode 100644 libbson/1.24.4/bson_json_mode_t.html create mode 100644 libbson/1.24.4/bson_json_opts_destroy.html create mode 100644 libbson/1.24.4/bson_json_opts_new.html create mode 100644 libbson/1.24.4/bson_json_opts_set_outermost_array.html create mode 100644 libbson/1.24.4/bson_json_opts_t.html create mode 100644 libbson/1.24.4/bson_json_reader_destroy.html create mode 100644 libbson/1.24.4/bson_json_reader_new.html create mode 100644 libbson/1.24.4/bson_json_reader_new_from_fd.html create mode 100644 libbson/1.24.4/bson_json_reader_new_from_file.html create mode 100644 libbson/1.24.4/bson_json_reader_read.html create mode 100644 libbson/1.24.4/bson_json_reader_t.html create mode 100644 libbson/1.24.4/bson_malloc.html create mode 100644 libbson/1.24.4/bson_malloc0.html create mode 100644 libbson/1.24.4/bson_mem_restore_vtable.html create mode 100644 libbson/1.24.4/bson_mem_set_vtable.html create mode 100644 libbson/1.24.4/bson_memory.html create mode 100644 libbson/1.24.4/bson_new.html create mode 100644 libbson/1.24.4/bson_new_from_buffer.html create mode 100644 libbson/1.24.4/bson_new_from_data.html create mode 100644 libbson/1.24.4/bson_new_from_json.html create mode 100644 libbson/1.24.4/bson_oid_compare.html create mode 100644 libbson/1.24.4/bson_oid_copy.html create mode 100644 libbson/1.24.4/bson_oid_equal.html create mode 100644 libbson/1.24.4/bson_oid_get_time_t.html create mode 100644 libbson/1.24.4/bson_oid_hash.html create mode 100644 libbson/1.24.4/bson_oid_init.html create mode 100644 libbson/1.24.4/bson_oid_init_from_data.html create mode 100644 libbson/1.24.4/bson_oid_init_from_string.html create mode 100644 libbson/1.24.4/bson_oid_init_sequence.html create mode 100644 libbson/1.24.4/bson_oid_is_valid.html create mode 100644 libbson/1.24.4/bson_oid_t.html create mode 100644 libbson/1.24.4/bson_oid_to_string.html create mode 100644 libbson/1.24.4/bson_reader_destroy.html create mode 100644 libbson/1.24.4/bson_reader_destroy_func_t.html create mode 100644 libbson/1.24.4/bson_reader_new_from_data.html create mode 100644 libbson/1.24.4/bson_reader_new_from_fd.html create mode 100644 libbson/1.24.4/bson_reader_new_from_file.html create mode 100644 libbson/1.24.4/bson_reader_new_from_handle.html create mode 100644 libbson/1.24.4/bson_reader_read.html create mode 100644 libbson/1.24.4/bson_reader_read_func_t.html create mode 100644 libbson/1.24.4/bson_reader_reset.html create mode 100644 libbson/1.24.4/bson_reader_set_destroy_func.html create mode 100644 libbson/1.24.4/bson_reader_set_read_func.html create mode 100644 libbson/1.24.4/bson_reader_t.html create mode 100644 libbson/1.24.4/bson_reader_tell.html create mode 100644 libbson/1.24.4/bson_realloc.html create mode 100644 libbson/1.24.4/bson_realloc_ctx.html create mode 100644 libbson/1.24.4/bson_realloc_func.html create mode 100644 libbson/1.24.4/bson_reinit.html create mode 100644 libbson/1.24.4/bson_reserve_buffer.html create mode 100644 libbson/1.24.4/bson_set_error.html create mode 100644 libbson/1.24.4/bson_sized_new.html create mode 100644 libbson/1.24.4/bson_snprintf.html create mode 100644 libbson/1.24.4/bson_steal.html create mode 100644 libbson/1.24.4/bson_strcasecmp.html create mode 100644 libbson/1.24.4/bson_strdup.html create mode 100644 libbson/1.24.4/bson_strdup_printf.html create mode 100644 libbson/1.24.4/bson_strdupv_printf.html create mode 100644 libbson/1.24.4/bson_strerror_r.html create mode 100644 libbson/1.24.4/bson_strfreev.html create mode 100644 libbson/1.24.4/bson_string_append.html create mode 100644 libbson/1.24.4/bson_string_append_c.html create mode 100644 libbson/1.24.4/bson_string_append_printf.html create mode 100644 libbson/1.24.4/bson_string_append_unichar.html create mode 100644 libbson/1.24.4/bson_string_free.html create mode 100644 libbson/1.24.4/bson_string_new.html create mode 100644 libbson/1.24.4/bson_string_t.html create mode 100644 libbson/1.24.4/bson_string_truncate.html create mode 100644 libbson/1.24.4/bson_strncpy.html create mode 100644 libbson/1.24.4/bson_strndup.html create mode 100644 libbson/1.24.4/bson_strnlen.html create mode 100644 libbson/1.24.4/bson_subtype_t.html create mode 100644 libbson/1.24.4/bson_t.html create mode 100644 libbson/1.24.4/bson_type_t.html create mode 100644 libbson/1.24.4/bson_uint32_to_string.html create mode 100644 libbson/1.24.4/bson_unichar_t.html create mode 100644 libbson/1.24.4/bson_utf8_escape_for_json.html create mode 100644 libbson/1.24.4/bson_utf8_from_unichar.html create mode 100644 libbson/1.24.4/bson_utf8_get_char.html create mode 100644 libbson/1.24.4/bson_utf8_next_char.html create mode 100644 libbson/1.24.4/bson_utf8_validate.html create mode 100644 libbson/1.24.4/bson_validate.html create mode 100644 libbson/1.24.4/bson_validate_with_error.html create mode 100644 libbson/1.24.4/bson_value_copy.html create mode 100644 libbson/1.24.4/bson_value_destroy.html create mode 100644 libbson/1.24.4/bson_value_t.html create mode 100644 libbson/1.24.4/bson_visitor_t.html create mode 100644 libbson/1.24.4/bson_vsnprintf.html create mode 100644 libbson/1.24.4/bson_writer_begin.html create mode 100644 libbson/1.24.4/bson_writer_destroy.html create mode 100644 libbson/1.24.4/bson_writer_end.html create mode 100644 libbson/1.24.4/bson_writer_get_length.html create mode 100644 libbson/1.24.4/bson_writer_new.html create mode 100644 libbson/1.24.4/bson_writer_rollback.html create mode 100644 libbson/1.24.4/bson_writer_t.html create mode 100644 libbson/1.24.4/bson_zero_free.html create mode 100644 libbson/1.24.4/character_and_string_routines.html create mode 100644 libbson/1.24.4/creating.html create mode 100644 libbson/1.24.4/cross-platform-notes.html create mode 100644 libbson/1.24.4/endianness.html create mode 100644 libbson/1.24.4/errors.html create mode 100644 libbson/1.24.4/full_index.html create mode 100644 libbson/1.24.4/guides.html create mode 100644 libbson/1.24.4/include-and-link.html create mode 100644 libbson/1.24.4/index.html create mode 100644 libbson/1.24.4/json.html create mode 100644 libbson/1.24.4/objects.inv create mode 100644 libbson/1.24.4/oid.html create mode 100644 libbson/1.24.4/parsing.html create mode 100644 libbson/1.24.4/search.html create mode 100644 libbson/1.24.4/searchindex.js create mode 100644 libbson/1.24.4/streaming-bson.html create mode 100644 libbson/1.24.4/threading.html create mode 100644 libbson/1.24.4/tutorial.html create mode 100644 libbson/1.24.4/utf8.html create mode 100644 libbson/1.24.4/version.html create mode 100644 libmongoc/1.24.4/.nojekyll create mode 100644 libmongoc/1.24.4/CMakeLists.txt create mode 100644 libmongoc/1.24.4/_images/msvc-add-dependencies-static.png create mode 100644 libmongoc/1.24.4/_images/msvc-add-dependencies.png create mode 100644 libmongoc/1.24.4/_images/msvc-add-include-directories.png create mode 100644 libmongoc/1.24.4/_images/msvc-create-project.png create mode 100644 libmongoc/1.24.4/_images/msvc-set-path.png create mode 100644 libmongoc/1.24.4/_images/msvc-switch-architecture.png create mode 100644 libmongoc/1.24.4/_static/ajax-loader.gif create mode 100644 libmongoc/1.24.4/_static/basic.css create mode 100644 libmongoc/1.24.4/_static/comment-bright.png create mode 100644 libmongoc/1.24.4/_static/comment-close.png create mode 100644 libmongoc/1.24.4/_static/comment.png create mode 100644 libmongoc/1.24.4/_static/doctools.js create mode 100644 libmongoc/1.24.4/_static/documentation_options.js create mode 100644 libmongoc/1.24.4/_static/down-pressed.png create mode 100644 libmongoc/1.24.4/_static/down.png create mode 100644 libmongoc/1.24.4/_static/file.png create mode 100644 libmongoc/1.24.4/_static/jquery-3.2.1.js create mode 100644 libmongoc/1.24.4/_static/jquery.js create mode 100644 libmongoc/1.24.4/_static/minus.png create mode 100644 libmongoc/1.24.4/_static/plus.png create mode 100644 libmongoc/1.24.4/_static/pygments.css create mode 100644 libmongoc/1.24.4/_static/readable.css create mode 100644 libmongoc/1.24.4/_static/searchtools.js create mode 100644 libmongoc/1.24.4/_static/underscore-1.3.1.js create mode 100644 libmongoc/1.24.4/_static/underscore.js create mode 100644 libmongoc/1.24.4/_static/up-pressed.png create mode 100644 libmongoc/1.24.4/_static/up.png create mode 100644 libmongoc/1.24.4/_static/websupport.js create mode 100644 libmongoc/1.24.4/advanced-connections.html create mode 100644 libmongoc/1.24.4/aggregate.html create mode 100644 libmongoc/1.24.4/api.html create mode 100644 libmongoc/1.24.4/application-performance-monitoring.html create mode 100644 libmongoc/1.24.4/authentication.html create mode 100644 libmongoc/1.24.4/basic-troubleshooting.html create mode 100644 libmongoc/1.24.4/bulk.html create mode 100644 libmongoc/1.24.4/client-side-field-level-encryption.html create mode 100644 libmongoc/1.24.4/configuring_tls.html create mode 100644 libmongoc/1.24.4/connection-pooling.html create mode 100644 libmongoc/1.24.4/cursors.html create mode 100644 libmongoc/1.24.4/debugging.html create mode 100644 libmongoc/1.24.4/distinct-mapreduce.html create mode 100644 libmongoc/1.24.4/errors.html create mode 100644 libmongoc/1.24.4/full_index.html create mode 100644 libmongoc/1.24.4/gridfs.html create mode 100644 libmongoc/1.24.4/guides.html create mode 100644 libmongoc/1.24.4/in-use-encryption.html create mode 100644 libmongoc/1.24.4/index.html create mode 100644 libmongoc/1.24.4/init-cleanup.html create mode 100644 libmongoc/1.24.4/installing.html create mode 100644 libmongoc/1.24.4/lifecycle.html create mode 100644 libmongoc/1.24.4/logging.html create mode 100644 libmongoc/1.24.4/manage-collection-indexes.html create mode 100644 libmongoc/1.24.4/mongoc-common-task-examples.html create mode 100644 libmongoc/1.24.4/mongoc_apm_callbacks_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_apm_callbacks_new.html create mode 100644 libmongoc/1.24.4/mongoc_apm_callbacks_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_command_name.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_duration.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_error.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_operation_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_reply.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_request_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_server_connection_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_server_connection_id_int64.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_server_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_get_service_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_failed_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_command.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_command_name.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_database_name.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_operation_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_request_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_server_connection_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_server_connection_id_int64.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_server_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_get_service_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_started_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_command_name.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_duration.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_operation_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_reply.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_request_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_server_connection_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_server_connection_id_int64.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_server_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_get_service_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_command_succeeded_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_changed_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_changed_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_changed_get_new_description.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_changed_get_previous_description.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_changed_get_topology_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_changed_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_closed_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_closed_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_closed_get_topology_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_closed_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_failed_get_awaited.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_failed_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_failed_get_duration.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_failed_get_error.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_failed_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_failed_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_started_get_awaited.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_started_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_started_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_started_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_succeeded_get_awaited.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_succeeded_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_succeeded_get_duration.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_succeeded_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_succeeded_get_reply.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_heartbeat_succeeded_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_opening_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_opening_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_opening_get_topology_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_server_opening_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_command_failed_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_command_started_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_command_succeeded_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_server_changed_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_server_closed_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_server_heartbeat_failed_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_server_heartbeat_started_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_server_heartbeat_succeeded_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_server_opening_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_topology_changed_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_topology_closed_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_set_topology_opening_cb.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_changed_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_changed_get_new_description.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_changed_get_previous_description.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_changed_get_topology_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_changed_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_closed_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_closed_get_topology_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_closed_t.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_opening_get_context.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_opening_get_topology_id.html create mode 100644 libmongoc/1.24.4/mongoc_apm_topology_opening_t.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_new.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_bypass_query_analysis.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_encrypted_fields_map.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_extra.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_keyvault_client.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_keyvault_client_pool.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_keyvault_namespace.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_kms_providers.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_schema_map.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_set_tls_opts.html create mode 100644 libmongoc/1.24.4/mongoc_auto_encryption_opts_t.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_delete.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_delete_one.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_execute.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_get_hint.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_get_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_insert.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_insert_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_remove.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_remove_many_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_remove_one.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_remove_one_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_replace_one.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_replace_one_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_set_bypass_document_validation.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_set_client_session.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_set_comment.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_set_hint.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_set_let.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_t.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_update.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_update_many_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_update_one.html create mode 100644 libmongoc/1.24.4/mongoc_bulk_operation_update_one_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_change_stream_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_change_stream_error_document.html create mode 100644 libmongoc/1.24.4/mongoc_change_stream_get_resume_token.html create mode 100644 libmongoc/1.24.4/mongoc_change_stream_next.html create mode 100644 libmongoc/1.24.4/mongoc_change_stream_t.html create mode 100644 libmongoc/1.24.4/mongoc_check_version.html create mode 100644 libmongoc/1.24.4/mongoc_cleanup.html create mode 100644 libmongoc/1.24.4/mongoc_client_command.html create mode 100644 libmongoc/1.24.4/mongoc_client_command_simple.html create mode 100644 libmongoc/1.24.4/mongoc_client_command_simple_with_server_id.html create mode 100644 libmongoc/1.24.4/mongoc_client_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_enable_auto_encryption.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_add_key_alt_name.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_create_datakey.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_create_encrypted_collection.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_datakey_opts_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_datakey_opts_new.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_datakey_opts_set_keyaltnames.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_datakey_opts_set_keymaterial.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_datakey_opts_set_masterkey.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_datakey_opts_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_decrypt.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_delete_key.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_expression.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_new.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_set_algorithm.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_set_contention_factor.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_set_keyaltname.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_set_keyid.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_set_query_type.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_set_range_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_opts_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_range_opts_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_range_opts_new.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_range_opts_set_max.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_range_opts_set_min.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_range_opts_set_precision.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_range_opts_set_sparsity.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_encrypt_range_opts_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_get_crypt_shared_version.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_get_key.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_get_key_by_alt_name.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_get_keys.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_new.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_opts_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_opts_new.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_opts_set_keyvault_client.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_opts_set_keyvault_namespace.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_opts_set_kms_providers.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_opts_set_tls_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_opts_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_remove_key_alt_name.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_rewrap_many_datakey.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_rewrap_many_datakey_result_new.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_rewrap_many_datakey_result_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_encryption_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_find_databases_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_collection.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_crypt_shared_version.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_database.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_database_names.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_database_names_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_default_database.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_gridfs.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_handshake_description.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_server_description.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_server_descriptions.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_server_status.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_uri.html create mode 100644 libmongoc/1.24.4/mongoc_client_get_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_client_new.html create mode 100644 libmongoc/1.24.4/mongoc_client_new_from_uri.html create mode 100644 libmongoc/1.24.4/mongoc_client_new_from_uri_with_error.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_enable_auto_encryption.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_max_size.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_min_size.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_new.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_new_with_error.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_pop.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_push.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_set_apm_callbacks.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_set_appname.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_set_error_api.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_set_server_api.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_set_ssl_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_pool_try_pop.html create mode 100644 libmongoc/1.24.4/mongoc_client_read_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_read_write_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_reset.html create mode 100644 libmongoc/1.24.4/mongoc_client_select_server.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_abort_transaction.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_advance_cluster_time.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_advance_operation_time.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_append.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_commit_transaction.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_get_client.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_get_cluster_time.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_get_dirty.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_get_lsid.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_get_operation_time.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_get_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_get_server_id.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_get_transaction_state.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_in_transaction.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_start_transaction.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_with_transaction.html create mode 100644 libmongoc/1.24.4/mongoc_client_session_with_transaction_cb_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_apm_callbacks.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_appname.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_error_api.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_server_api.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_ssl_opts.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_stream_initiator.html create mode 100644 libmongoc/1.24.4/mongoc_client_set_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_client_start_session.html create mode 100644 libmongoc/1.24.4/mongoc_client_t.html create mode 100644 libmongoc/1.24.4/mongoc_client_watch.html create mode 100644 libmongoc/1.24.4/mongoc_client_write_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_aggregate.html create mode 100644 libmongoc/1.24.4/mongoc_collection_command.html create mode 100644 libmongoc/1.24.4/mongoc_collection_command_simple.html create mode 100644 libmongoc/1.24.4/mongoc_collection_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_copy.html create mode 100644 libmongoc/1.24.4/mongoc_collection_count.html create mode 100644 libmongoc/1.24.4/mongoc_collection_count_documents.html create mode 100644 libmongoc/1.24.4/mongoc_collection_count_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_create_bulk_operation.html create mode 100644 libmongoc/1.24.4/mongoc_collection_create_bulk_operation_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_create_index.html create mode 100644 libmongoc/1.24.4/mongoc_collection_create_index_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_create_indexes_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_delete.html create mode 100644 libmongoc/1.24.4/mongoc_collection_delete_many.html create mode 100644 libmongoc/1.24.4/mongoc_collection_delete_one.html create mode 100644 libmongoc/1.24.4/mongoc_collection_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_collection_drop.html create mode 100644 libmongoc/1.24.4/mongoc_collection_drop_index.html create mode 100644 libmongoc/1.24.4/mongoc_collection_drop_index_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_drop_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_ensure_index.html create mode 100644 libmongoc/1.24.4/mongoc_collection_estimated_document_count.html create mode 100644 libmongoc/1.24.4/mongoc_collection_find.html create mode 100644 libmongoc/1.24.4/mongoc_collection_find_and_modify.html create mode 100644 libmongoc/1.24.4/mongoc_collection_find_and_modify_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_find_indexes.html create mode 100644 libmongoc/1.24.4/mongoc_collection_find_indexes_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_find_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_get_last_error.html create mode 100644 libmongoc/1.24.4/mongoc_collection_get_name.html create mode 100644 libmongoc/1.24.4/mongoc_collection_get_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_collection_get_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_collection_get_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_collection_insert.html create mode 100644 libmongoc/1.24.4/mongoc_collection_insert_bulk.html create mode 100644 libmongoc/1.24.4/mongoc_collection_insert_many.html create mode 100644 libmongoc/1.24.4/mongoc_collection_insert_one.html create mode 100644 libmongoc/1.24.4/mongoc_collection_keys_to_index_string.html create mode 100644 libmongoc/1.24.4/mongoc_collection_read_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_read_write_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_remove.html create mode 100644 libmongoc/1.24.4/mongoc_collection_rename.html create mode 100644 libmongoc/1.24.4/mongoc_collection_rename_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_collection_replace_one.html create mode 100644 libmongoc/1.24.4/mongoc_collection_save.html create mode 100644 libmongoc/1.24.4/mongoc_collection_set_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_collection_set_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_collection_set_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_collection_stats.html create mode 100644 libmongoc/1.24.4/mongoc_collection_t.html create mode 100644 libmongoc/1.24.4/mongoc_collection_update.html create mode 100644 libmongoc/1.24.4/mongoc_collection_update_many.html create mode 100644 libmongoc/1.24.4/mongoc_collection_update_one.html create mode 100644 libmongoc/1.24.4/mongoc_collection_validate.html create mode 100644 libmongoc/1.24.4/mongoc_collection_watch.html create mode 100644 libmongoc/1.24.4/mongoc_collection_write_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_clone.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_current.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_error.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_error_document.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_get_batch_size.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_get_hint.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_get_host.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_get_id.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_get_limit.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_get_max_await_time_ms.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_is_alive.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_more.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_new_from_command_reply.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_new_from_command_reply_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_next.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_set_batch_size.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_set_hint.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_set_limit.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_set_max_await_time_ms.html create mode 100644 libmongoc/1.24.4/mongoc_cursor_t.html create mode 100644 libmongoc/1.24.4/mongoc_database_add_user.html create mode 100644 libmongoc/1.24.4/mongoc_database_aggregate.html create mode 100644 libmongoc/1.24.4/mongoc_database_command.html create mode 100644 libmongoc/1.24.4/mongoc_database_command_simple.html create mode 100644 libmongoc/1.24.4/mongoc_database_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_database_copy.html create mode 100644 libmongoc/1.24.4/mongoc_database_create_collection.html create mode 100644 libmongoc/1.24.4/mongoc_database_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_database_drop.html create mode 100644 libmongoc/1.24.4/mongoc_database_drop_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_database_find_collections.html create mode 100644 libmongoc/1.24.4/mongoc_database_find_collections_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_database_get_collection.html create mode 100644 libmongoc/1.24.4/mongoc_database_get_collection_names.html create mode 100644 libmongoc/1.24.4/mongoc_database_get_collection_names_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_database_get_name.html create mode 100644 libmongoc/1.24.4/mongoc_database_get_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_database_get_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_database_get_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_database_has_collection.html create mode 100644 libmongoc/1.24.4/mongoc_database_read_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_database_read_write_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_database_remove_all_users.html create mode 100644 libmongoc/1.24.4/mongoc_database_remove_user.html create mode 100644 libmongoc/1.24.4/mongoc_database_set_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_database_set_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_database_set_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_database_t.html create mode 100644 libmongoc/1.24.4/mongoc_database_watch.html create mode 100644 libmongoc/1.24.4/mongoc_database_write_command_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_delete_flags_t.html create mode 100644 libmongoc/1.24.4/mongoc_error_has_label.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_append.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_get_bypass_document_validation.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_get_fields.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_get_flags.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_get_max_time_ms.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_get_sort.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_get_update.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_new.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_set_bypass_document_validation.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_set_fields.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_set_flags.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_set_max_time_ms.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_set_sort.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_set_update.html create mode 100644 libmongoc/1.24.4/mongoc_find_and_modify_opts_t.html create mode 100644 libmongoc/1.24.4/mongoc_get_major_version.html create mode 100644 libmongoc/1.24.4/mongoc_get_micro_version.html create mode 100644 libmongoc/1.24.4/mongoc_get_minor_version.html create mode 100644 libmongoc/1.24.4/mongoc_get_version.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_abort_upload.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_delete_by_id.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_download_to_stream.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_find.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_new.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_open_download_stream.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_open_upload_stream.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_open_upload_stream_with_id.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_stream_error.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_t.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_upload_from_stream.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_bucket_upload_from_stream_with_id.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_create_file.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_create_file_from_stream.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_drop.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_error.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_aliases.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_chunk_size.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_content_type.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_filename.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_id.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_length.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_md5.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_metadata.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_get_upload_date.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_list_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_list_error.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_list_next.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_list_t.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_opt_t.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_readv.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_remove.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_save.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_seek.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_set_aliases.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_set_content_type.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_set_filename.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_set_id.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_set_md5.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_set_metadata.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_t.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_tell.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_file_writev.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_find.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_find_one.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_find_one_by_filename.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_find_one_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_find_with_opts.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_get_chunks.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_get_files.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_remove_by_filename.html create mode 100644 libmongoc/1.24.4/mongoc_gridfs_t.html create mode 100644 libmongoc/1.24.4/mongoc_handshake_data_append.html create mode 100644 libmongoc/1.24.4/mongoc_host_list_t.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_geo_get_default.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_geo_init.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_geo_t.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_get_default.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_init.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_t.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_wt_get_default.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_wt_init.html create mode 100644 libmongoc/1.24.4/mongoc_index_opt_wt_t.html create mode 100644 libmongoc/1.24.4/mongoc_init.html create mode 100644 libmongoc/1.24.4/mongoc_insert_flags_t.html create mode 100644 libmongoc/1.24.4/mongoc_iovec_t.html create mode 100644 libmongoc/1.24.4/mongoc_optional_copy.html create mode 100644 libmongoc/1.24.4/mongoc_optional_init.html create mode 100644 libmongoc/1.24.4/mongoc_optional_is_set.html create mode 100644 libmongoc/1.24.4/mongoc_optional_set_value.html create mode 100644 libmongoc/1.24.4/mongoc_optional_t.html create mode 100644 libmongoc/1.24.4/mongoc_optional_value.html create mode 100644 libmongoc/1.24.4/mongoc_query_flags_t.html create mode 100644 libmongoc/1.24.4/mongoc_rand.html create mode 100644 libmongoc/1.24.4/mongoc_rand_add.html create mode 100644 libmongoc/1.24.4/mongoc_rand_seed.html create mode 100644 libmongoc/1.24.4/mongoc_rand_status.html create mode 100644 libmongoc/1.24.4/mongoc_read_concern_append.html create mode 100644 libmongoc/1.24.4/mongoc_read_concern_copy.html create mode 100644 libmongoc/1.24.4/mongoc_read_concern_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_read_concern_get_level.html create mode 100644 libmongoc/1.24.4/mongoc_read_concern_is_default.html create mode 100644 libmongoc/1.24.4/mongoc_read_concern_new.html create mode 100644 libmongoc/1.24.4/mongoc_read_concern_set_level.html create mode 100644 libmongoc/1.24.4/mongoc_read_concern_t.html create mode 100644 libmongoc/1.24.4/mongoc_read_mode_t.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_add_tag.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_copy.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_get_hedge.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_get_max_staleness_seconds.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_get_mode.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_get_tags.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_is_valid.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_new.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_set_hedge.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_set_max_staleness_seconds.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_set_mode.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_set_tags.html create mode 100644 libmongoc/1.24.4/mongoc_read_prefs_t.html create mode 100644 libmongoc/1.24.4/mongoc_remove_flags_t.html create mode 100644 libmongoc/1.24.4/mongoc_reply_flags_t.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_copy.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_deprecation_errors.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_get_deprecation_errors.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_get_strict.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_get_version.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_new.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_strict.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_t.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_version_from_string.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_version_t.html create mode 100644 libmongoc/1.24.4/mongoc_server_api_version_to_string.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_hello_response.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_host.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_id.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_ismaster.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_last_update_time.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_new_copy.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_round_trip_time.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_t.html create mode 100644 libmongoc/1.24.4/mongoc_server_description_type.html create mode 100644 libmongoc/1.24.4/mongoc_server_descriptions_destroy_all.html create mode 100644 libmongoc/1.24.4/mongoc_session_opt_t.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_clone.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_get_causal_consistency.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_get_default_transaction_opts.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_get_snapshot.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_get_transaction_opts.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_new.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_set_causal_consistency.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_set_default_transaction_opts.html create mode 100644 libmongoc/1.24.4/mongoc_session_opts_set_snapshot.html create mode 100644 libmongoc/1.24.4/mongoc_socket_accept.html create mode 100644 libmongoc/1.24.4/mongoc_socket_bind.html create mode 100644 libmongoc/1.24.4/mongoc_socket_close.html create mode 100644 libmongoc/1.24.4/mongoc_socket_connect.html create mode 100644 libmongoc/1.24.4/mongoc_socket_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_socket_errno.html create mode 100644 libmongoc/1.24.4/mongoc_socket_getnameinfo.html create mode 100644 libmongoc/1.24.4/mongoc_socket_getsockname.html create mode 100644 libmongoc/1.24.4/mongoc_socket_listen.html create mode 100644 libmongoc/1.24.4/mongoc_socket_new.html create mode 100644 libmongoc/1.24.4/mongoc_socket_recv.html create mode 100644 libmongoc/1.24.4/mongoc_socket_send.html create mode 100644 libmongoc/1.24.4/mongoc_socket_sendv.html create mode 100644 libmongoc/1.24.4/mongoc_socket_setsockopt.html create mode 100644 libmongoc/1.24.4/mongoc_socket_t.html create mode 100644 libmongoc/1.24.4/mongoc_ssl_opt_get_default.html create mode 100644 libmongoc/1.24.4/mongoc_ssl_opt_t.html create mode 100644 libmongoc/1.24.4/mongoc_stream_buffered_new.html create mode 100644 libmongoc/1.24.4/mongoc_stream_buffered_t.html create mode 100644 libmongoc/1.24.4/mongoc_stream_close.html create mode 100644 libmongoc/1.24.4/mongoc_stream_cork.html create mode 100644 libmongoc/1.24.4/mongoc_stream_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_stream_file_get_fd.html create mode 100644 libmongoc/1.24.4/mongoc_stream_file_new.html create mode 100644 libmongoc/1.24.4/mongoc_stream_file_new_for_path.html create mode 100644 libmongoc/1.24.4/mongoc_stream_file_t.html create mode 100644 libmongoc/1.24.4/mongoc_stream_flush.html create mode 100644 libmongoc/1.24.4/mongoc_stream_get_base_stream.html create mode 100644 libmongoc/1.24.4/mongoc_stream_gridfs_new.html create mode 100644 libmongoc/1.24.4/mongoc_stream_read.html create mode 100644 libmongoc/1.24.4/mongoc_stream_readv.html create mode 100644 libmongoc/1.24.4/mongoc_stream_setsockopt.html create mode 100644 libmongoc/1.24.4/mongoc_stream_should_retry.html create mode 100644 libmongoc/1.24.4/mongoc_stream_socket_get_socket.html create mode 100644 libmongoc/1.24.4/mongoc_stream_socket_new.html create mode 100644 libmongoc/1.24.4/mongoc_stream_socket_t.html create mode 100644 libmongoc/1.24.4/mongoc_stream_t.html create mode 100644 libmongoc/1.24.4/mongoc_stream_timed_out.html create mode 100644 libmongoc/1.24.4/mongoc_stream_tls_t.html create mode 100644 libmongoc/1.24.4/mongoc_stream_uncork.html create mode 100644 libmongoc/1.24.4/mongoc_stream_write.html create mode 100644 libmongoc/1.24.4/mongoc_stream_writev.html create mode 100644 libmongoc/1.24.4/mongoc_topology_description_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_topology_description_get_servers.html create mode 100644 libmongoc/1.24.4/mongoc_topology_description_has_readable_server.html create mode 100644 libmongoc/1.24.4/mongoc_topology_description_has_writable_server.html create mode 100644 libmongoc/1.24.4/mongoc_topology_description_new_copy.html create mode 100644 libmongoc/1.24.4/mongoc_topology_description_t.html create mode 100644 libmongoc/1.24.4/mongoc_topology_description_type.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opt_t.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_clone.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_get_max_commit_time_ms.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_get_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_get_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_get_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_new.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_set_max_commit_time_ms.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_set_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_set_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_opts_set_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_transaction_state_t.html create mode 100644 libmongoc/1.24.4/mongoc_update_flags_t.html create mode 100644 libmongoc/1.24.4/mongoc_uri_copy.html create mode 100644 libmongoc/1.24.4/mongoc_uri_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_auth_mechanism.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_auth_source.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_compressors.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_database.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_hosts.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_mechanism_properties.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_option_as_bool.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_option_as_int32.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_option_as_int64.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_option_as_utf8.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_options.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_password.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_read_prefs.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_read_prefs_t.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_replica_set.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_service.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_srv_hostname.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_srv_service_name.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_ssl.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_string.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_tls.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_username.html create mode 100644 libmongoc/1.24.4/mongoc_uri_get_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_uri_has_option.html create mode 100644 libmongoc/1.24.4/mongoc_uri_new.html create mode 100644 libmongoc/1.24.4/mongoc_uri_new_for_host_port.html create mode 100644 libmongoc/1.24.4/mongoc_uri_new_with_error.html create mode 100644 libmongoc/1.24.4/mongoc_uri_option_is_bool.html create mode 100644 libmongoc/1.24.4/mongoc_uri_option_is_int32.html create mode 100644 libmongoc/1.24.4/mongoc_uri_option_is_int64.html create mode 100644 libmongoc/1.24.4/mongoc_uri_option_is_utf8.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_auth_mechanism.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_auth_source.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_compressors.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_database.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_mechanism_properties.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_option_as_bool.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_option_as_int32.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_option_as_int64.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_option_as_utf8.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_password.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_read_concern.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_read_prefs_t.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_username.html create mode 100644 libmongoc/1.24.4/mongoc_uri_set_write_concern.html create mode 100644 libmongoc/1.24.4/mongoc_uri_t.html create mode 100644 libmongoc/1.24.4/mongoc_uri_unescape.html create mode 100644 libmongoc/1.24.4/mongoc_version.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_append.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_copy.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_destroy.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_get_fsync.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_get_journal.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_get_w.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_get_wmajority.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_get_wtag.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_get_wtimeout.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_get_wtimeout_int64.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_is_acknowledged.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_is_default.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_is_valid.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_journal_is_set.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_new.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_set_fsync.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_set_journal.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_set_w.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_set_wmajority.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_set_wtag.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_set_wtimeout.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_set_wtimeout_int64.html create mode 100644 libmongoc/1.24.4/mongoc_write_concern_t.html create mode 100644 libmongoc/1.24.4/objects.inv create mode 100644 libmongoc/1.24.4/queryable-encryption.html create mode 100644 libmongoc/1.24.4/search.html create mode 100644 libmongoc/1.24.4/searchindex.js create mode 100644 libmongoc/1.24.4/tutorial.html create mode 100644 libmongoc/1.24.4/visual-studio-guide.html diff --git a/_static/documentation_options.js b/_static/documentation_options.js index c264ead4e2..d6834f773c 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1.24.3', + VERSION: '1.24.4', LANGUAGE: 'en', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', diff --git a/index.html b/index.html index 22c06cdc70..27f0815cbe 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,7 @@ delighted.survey(); - MongoDB C Driver — MongoDB C Driver 1.24.3 + MongoDB C Driver — MongoDB C Driver 1.24.4 @@ -50,7 +50,7 @@
  • next
  • - + @@ -65,7 +65,7 @@

    It depends on libbson to generate and parse BSON documents, the native data format of MongoDB.

    Download

    -

    Latest release: mongo-c-driver-1.24.3.tar.gz

    +

    Latest release: mongo-c-driver-1.24.4.tar.gz

    Documentation

    @@ -96,7 +96,7 @@
    diff --git a/libbson-releases.html b/libbson-releases.html index 6d8a03b798..3b34fb0061 100644 --- a/libbson-releases.html +++ b/libbson-releases.html @@ -21,7 +21,7 @@ delighted.survey(); - libbson Releases — MongoDB C Driver 1.24.3 + libbson Releases — MongoDB C Driver 1.24.4 @@ -48,7 +48,7 @@
  • previous
  • - + @@ -58,10 +58,11 @@

    libbson Releases

    -

    Latest Release (1.24.3)

    +

    Latest Release (1.24.4)

    Current Development (master)

      +
    • 1.24.4

    • 1.24.3

    • 1.24.2

    • 1.24.1

    • @@ -168,7 +169,7 @@
      diff --git a/libbson/1.24.3/api.html b/libbson/1.24.3/api.html index fcf7bf5c08..2f511977a7 100644 --- a/libbson/1.24.3/api.html +++ b/libbson/1.24.3/api.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_aligned_alloc.html b/libbson/1.24.3/bson_aligned_alloc.html index 51dbd998bd..ceff740151 100644 --- a/libbson/1.24.3/bson_aligned_alloc.html +++ b/libbson/1.24.3/bson_aligned_alloc.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_aligned_alloc0.html b/libbson/1.24.3/bson_aligned_alloc0.html index e58d28aaed..2200a610bd 100644 --- a/libbson/1.24.3/bson_aligned_alloc0.html +++ b/libbson/1.24.3/bson_aligned_alloc0.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_array.html b/libbson/1.24.3/bson_append_array.html index c991f8e58e..6413a959f4 100644 --- a/libbson/1.24.3/bson_append_array.html +++ b/libbson/1.24.3/bson_append_array.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_array_begin.html b/libbson/1.24.3/bson_append_array_begin.html index f18b4c6608..ca2dbe12c7 100644 --- a/libbson/1.24.3/bson_append_array_begin.html +++ b/libbson/1.24.3/bson_append_array_begin.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_array_end.html b/libbson/1.24.3/bson_append_array_end.html index fabe40d51a..19656e8d97 100644 --- a/libbson/1.24.3/bson_append_array_end.html +++ b/libbson/1.24.3/bson_append_array_end.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_binary.html b/libbson/1.24.3/bson_append_binary.html index 3ae2a3e6ca..c74ce25440 100644 --- a/libbson/1.24.3/bson_append_binary.html +++ b/libbson/1.24.3/bson_append_binary.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_bool.html b/libbson/1.24.3/bson_append_bool.html index 4bd2f2f128..d5596d41e3 100644 --- a/libbson/1.24.3/bson_append_bool.html +++ b/libbson/1.24.3/bson_append_bool.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_code.html b/libbson/1.24.3/bson_append_code.html index 903dfa3995..aa4c995d51 100644 --- a/libbson/1.24.3/bson_append_code.html +++ b/libbson/1.24.3/bson_append_code.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_code_with_scope.html b/libbson/1.24.3/bson_append_code_with_scope.html index bc32a21fb7..82c7aa2ae8 100644 --- a/libbson/1.24.3/bson_append_code_with_scope.html +++ b/libbson/1.24.3/bson_append_code_with_scope.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_date_time.html b/libbson/1.24.3/bson_append_date_time.html index 61eb576b43..f0da907d0d 100644 --- a/libbson/1.24.3/bson_append_date_time.html +++ b/libbson/1.24.3/bson_append_date_time.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_dbpointer.html b/libbson/1.24.3/bson_append_dbpointer.html index 37d52ae4bd..765e490441 100644 --- a/libbson/1.24.3/bson_append_dbpointer.html +++ b/libbson/1.24.3/bson_append_dbpointer.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_decimal128.html b/libbson/1.24.3/bson_append_decimal128.html index c4e0f0ea96..59e114303f 100644 --- a/libbson/1.24.3/bson_append_decimal128.html +++ b/libbson/1.24.3/bson_append_decimal128.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_document.html b/libbson/1.24.3/bson_append_document.html index 48e90ce581..ef524b44bc 100644 --- a/libbson/1.24.3/bson_append_document.html +++ b/libbson/1.24.3/bson_append_document.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_document_begin.html b/libbson/1.24.3/bson_append_document_begin.html index 91a5979dc7..157a7a7df7 100644 --- a/libbson/1.24.3/bson_append_document_begin.html +++ b/libbson/1.24.3/bson_append_document_begin.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_document_end.html b/libbson/1.24.3/bson_append_document_end.html index 2cb2f23120..94b4516708 100644 --- a/libbson/1.24.3/bson_append_document_end.html +++ b/libbson/1.24.3/bson_append_document_end.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_double.html b/libbson/1.24.3/bson_append_double.html index 4be9302d12..a1061cfe9f 100644 --- a/libbson/1.24.3/bson_append_double.html +++ b/libbson/1.24.3/bson_append_double.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_int32.html b/libbson/1.24.3/bson_append_int32.html index 9d4c4f4765..293ee32607 100644 --- a/libbson/1.24.3/bson_append_int32.html +++ b/libbson/1.24.3/bson_append_int32.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_int64.html b/libbson/1.24.3/bson_append_int64.html index e519c5f10f..96583688ed 100644 --- a/libbson/1.24.3/bson_append_int64.html +++ b/libbson/1.24.3/bson_append_int64.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_iter.html b/libbson/1.24.3/bson_append_iter.html index e6b1b6bc4b..a90c368697 100644 --- a/libbson/1.24.3/bson_append_iter.html +++ b/libbson/1.24.3/bson_append_iter.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_maxkey.html b/libbson/1.24.3/bson_append_maxkey.html index cd4ead261d..5280c4e7d7 100644 --- a/libbson/1.24.3/bson_append_maxkey.html +++ b/libbson/1.24.3/bson_append_maxkey.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_minkey.html b/libbson/1.24.3/bson_append_minkey.html index 2d1b80971a..09d5b3a307 100644 --- a/libbson/1.24.3/bson_append_minkey.html +++ b/libbson/1.24.3/bson_append_minkey.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_now_utc.html b/libbson/1.24.3/bson_append_now_utc.html index 750e05328e..058c733a72 100644 --- a/libbson/1.24.3/bson_append_now_utc.html +++ b/libbson/1.24.3/bson_append_now_utc.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_null.html b/libbson/1.24.3/bson_append_null.html index 6dee84bd33..71cc96807d 100644 --- a/libbson/1.24.3/bson_append_null.html +++ b/libbson/1.24.3/bson_append_null.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_oid.html b/libbson/1.24.3/bson_append_oid.html index 32abedb667..7b54eedd92 100644 --- a/libbson/1.24.3/bson_append_oid.html +++ b/libbson/1.24.3/bson_append_oid.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_regex.html b/libbson/1.24.3/bson_append_regex.html index f2d7c45bc6..a4589ebd03 100644 --- a/libbson/1.24.3/bson_append_regex.html +++ b/libbson/1.24.3/bson_append_regex.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_regex_w_len.html b/libbson/1.24.3/bson_append_regex_w_len.html index e2643f69c8..5380edfbe3 100644 --- a/libbson/1.24.3/bson_append_regex_w_len.html +++ b/libbson/1.24.3/bson_append_regex_w_len.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_symbol.html b/libbson/1.24.3/bson_append_symbol.html index 43bbe13634..a710c377f2 100644 --- a/libbson/1.24.3/bson_append_symbol.html +++ b/libbson/1.24.3/bson_append_symbol.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_time_t.html b/libbson/1.24.3/bson_append_time_t.html index 680f20912c..2b759816d4 100644 --- a/libbson/1.24.3/bson_append_time_t.html +++ b/libbson/1.24.3/bson_append_time_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_timestamp.html b/libbson/1.24.3/bson_append_timestamp.html index b42bb156c2..fba3439922 100644 --- a/libbson/1.24.3/bson_append_timestamp.html +++ b/libbson/1.24.3/bson_append_timestamp.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_timeval.html b/libbson/1.24.3/bson_append_timeval.html index b7b94c3759..51dbe0b4fb 100644 --- a/libbson/1.24.3/bson_append_timeval.html +++ b/libbson/1.24.3/bson_append_timeval.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_undefined.html b/libbson/1.24.3/bson_append_undefined.html index 5427e234fd..74c88de8d2 100644 --- a/libbson/1.24.3/bson_append_undefined.html +++ b/libbson/1.24.3/bson_append_undefined.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_utf8.html b/libbson/1.24.3/bson_append_utf8.html index 0dbe3df54b..9d363e7bee 100644 --- a/libbson/1.24.3/bson_append_utf8.html +++ b/libbson/1.24.3/bson_append_utf8.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_append_value.html b/libbson/1.24.3/bson_append_value.html index 4c330f4f96..223537acac 100644 --- a/libbson/1.24.3/bson_append_value.html +++ b/libbson/1.24.3/bson_append_value.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_array_as_canonical_extended_json.html b/libbson/1.24.3/bson_array_as_canonical_extended_json.html index 69c90f8cbe..a83a8570ad 100644 --- a/libbson/1.24.3/bson_array_as_canonical_extended_json.html +++ b/libbson/1.24.3/bson_array_as_canonical_extended_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_array_as_json.html b/libbson/1.24.3/bson_array_as_json.html index 032d9f3bf4..1158a565d7 100644 --- a/libbson/1.24.3/bson_array_as_json.html +++ b/libbson/1.24.3/bson_array_as_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_array_as_relaxed_extended_json.html b/libbson/1.24.3/bson_array_as_relaxed_extended_json.html index 7f3c8fc77c..1ca9c8a2ba 100644 --- a/libbson/1.24.3/bson_array_as_relaxed_extended_json.html +++ b/libbson/1.24.3/bson_array_as_relaxed_extended_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_as_canonical_extended_json.html b/libbson/1.24.3/bson_as_canonical_extended_json.html index be87689955..0b344055f1 100644 --- a/libbson/1.24.3/bson_as_canonical_extended_json.html +++ b/libbson/1.24.3/bson_as_canonical_extended_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_as_json.html b/libbson/1.24.3/bson_as_json.html index 59f46e7d55..6bca881f9b 100644 --- a/libbson/1.24.3/bson_as_json.html +++ b/libbson/1.24.3/bson_as_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_as_json_with_opts.html b/libbson/1.24.3/bson_as_json_with_opts.html index 88316fb187..3006ea60dc 100644 --- a/libbson/1.24.3/bson_as_json_with_opts.html +++ b/libbson/1.24.3/bson_as_json_with_opts.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_as_relaxed_extended_json.html b/libbson/1.24.3/bson_as_relaxed_extended_json.html index c67438be7d..6f7e322450 100644 --- a/libbson/1.24.3/bson_as_relaxed_extended_json.html +++ b/libbson/1.24.3/bson_as_relaxed_extended_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_ascii_strtoll.html b/libbson/1.24.3/bson_ascii_strtoll.html index 496f274f42..175a0e4d08 100644 --- a/libbson/1.24.3/bson_ascii_strtoll.html +++ b/libbson/1.24.3/bson_ascii_strtoll.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_check_version.html b/libbson/1.24.3/bson_check_version.html index c7fb01159e..60ffb02707 100644 --- a/libbson/1.24.3/bson_check_version.html +++ b/libbson/1.24.3/bson_check_version.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_compare.html b/libbson/1.24.3/bson_compare.html index 1bef084599..30ae2835cf 100644 --- a/libbson/1.24.3/bson_compare.html +++ b/libbson/1.24.3/bson_compare.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_concat.html b/libbson/1.24.3/bson_concat.html index a4a215526d..ffa19238eb 100644 --- a/libbson/1.24.3/bson_concat.html +++ b/libbson/1.24.3/bson_concat.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_context_destroy.html b/libbson/1.24.3/bson_context_destroy.html index 14372699ba..a586cb7421 100644 --- a/libbson/1.24.3/bson_context_destroy.html +++ b/libbson/1.24.3/bson_context_destroy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_context_get_default.html b/libbson/1.24.3/bson_context_get_default.html index a99901794d..aa99dbfd46 100644 --- a/libbson/1.24.3/bson_context_get_default.html +++ b/libbson/1.24.3/bson_context_get_default.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_context_new.html b/libbson/1.24.3/bson_context_new.html index 0cfab6a753..9df3e25f38 100644 --- a/libbson/1.24.3/bson_context_new.html +++ b/libbson/1.24.3/bson_context_new.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_context_t.html b/libbson/1.24.3/bson_context_t.html index 7e0316f157..ee121849ab 100644 --- a/libbson/1.24.3/bson_context_t.html +++ b/libbson/1.24.3/bson_context_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_copy.html b/libbson/1.24.3/bson_copy.html index f2ae34ccc2..6a1eb050e7 100644 --- a/libbson/1.24.3/bson_copy.html +++ b/libbson/1.24.3/bson_copy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_copy_to.html b/libbson/1.24.3/bson_copy_to.html index 42483001e4..d9d8fbf1ae 100644 --- a/libbson/1.24.3/bson_copy_to.html +++ b/libbson/1.24.3/bson_copy_to.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_copy_to_excluding.html b/libbson/1.24.3/bson_copy_to_excluding.html index 5fb19c9a97..87389af1a8 100644 --- a/libbson/1.24.3/bson_copy_to_excluding.html +++ b/libbson/1.24.3/bson_copy_to_excluding.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_copy_to_excluding_noinit.html b/libbson/1.24.3/bson_copy_to_excluding_noinit.html index 2cafe5c031..60d5306394 100644 --- a/libbson/1.24.3/bson_copy_to_excluding_noinit.html +++ b/libbson/1.24.3/bson_copy_to_excluding_noinit.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_copy_to_excluding_noinit_va.html b/libbson/1.24.3/bson_copy_to_excluding_noinit_va.html index d987b63d26..3ecd17654b 100644 --- a/libbson/1.24.3/bson_copy_to_excluding_noinit_va.html +++ b/libbson/1.24.3/bson_copy_to_excluding_noinit_va.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_count_keys.html b/libbson/1.24.3/bson_count_keys.html index 85de8ccf95..a1bd24d0ae 100644 --- a/libbson/1.24.3/bson_count_keys.html +++ b/libbson/1.24.3/bson_count_keys.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_decimal128_from_string.html b/libbson/1.24.3/bson_decimal128_from_string.html index 6d1594ed91..18b59591fd 100644 --- a/libbson/1.24.3/bson_decimal128_from_string.html +++ b/libbson/1.24.3/bson_decimal128_from_string.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_decimal128_from_string_w_len.html b/libbson/1.24.3/bson_decimal128_from_string_w_len.html index 7b64f75a0f..5a5e06d16e 100644 --- a/libbson/1.24.3/bson_decimal128_from_string_w_len.html +++ b/libbson/1.24.3/bson_decimal128_from_string_w_len.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_decimal128_t.html b/libbson/1.24.3/bson_decimal128_t.html index 796828db03..a2a91eb766 100644 --- a/libbson/1.24.3/bson_decimal128_t.html +++ b/libbson/1.24.3/bson_decimal128_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_decimal128_to_string.html b/libbson/1.24.3/bson_decimal128_to_string.html index ad3092a17f..56d2df5740 100644 --- a/libbson/1.24.3/bson_decimal128_to_string.html +++ b/libbson/1.24.3/bson_decimal128_to_string.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_destroy.html b/libbson/1.24.3/bson_destroy.html index 1abccb342c..02e24264a3 100644 --- a/libbson/1.24.3/bson_destroy.html +++ b/libbson/1.24.3/bson_destroy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_destroy_with_steal.html b/libbson/1.24.3/bson_destroy_with_steal.html index 0a08d9f4a5..583158467b 100644 --- a/libbson/1.24.3/bson_destroy_with_steal.html +++ b/libbson/1.24.3/bson_destroy_with_steal.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_equal.html b/libbson/1.24.3/bson_equal.html index 875fd2cee4..e91807e3a6 100644 --- a/libbson/1.24.3/bson_equal.html +++ b/libbson/1.24.3/bson_equal.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_error_t.html b/libbson/1.24.3/bson_error_t.html index 8eeec08971..7122c80e27 100644 --- a/libbson/1.24.3/bson_error_t.html +++ b/libbson/1.24.3/bson_error_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_free.html b/libbson/1.24.3/bson_free.html index 6113438e82..4c23734168 100644 --- a/libbson/1.24.3/bson_free.html +++ b/libbson/1.24.3/bson_free.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_get_data.html b/libbson/1.24.3/bson_get_data.html index b9ce65b515..783f9f0884 100644 --- a/libbson/1.24.3/bson_get_data.html +++ b/libbson/1.24.3/bson_get_data.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_get_major_version.html b/libbson/1.24.3/bson_get_major_version.html index dc99a973e8..432e7dbd73 100644 --- a/libbson/1.24.3/bson_get_major_version.html +++ b/libbson/1.24.3/bson_get_major_version.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_get_micro_version.html b/libbson/1.24.3/bson_get_micro_version.html index 59dd415170..dcf60abf2f 100644 --- a/libbson/1.24.3/bson_get_micro_version.html +++ b/libbson/1.24.3/bson_get_micro_version.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_get_minor_version.html b/libbson/1.24.3/bson_get_minor_version.html index d51c17b0f6..2beddade2f 100644 --- a/libbson/1.24.3/bson_get_minor_version.html +++ b/libbson/1.24.3/bson_get_minor_version.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_get_monotonic_time.html b/libbson/1.24.3/bson_get_monotonic_time.html index 85b8deb425..6a37f89d36 100644 --- a/libbson/1.24.3/bson_get_monotonic_time.html +++ b/libbson/1.24.3/bson_get_monotonic_time.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_get_version.html b/libbson/1.24.3/bson_get_version.html index 2e75c416ff..7c7993909a 100644 --- a/libbson/1.24.3/bson_get_version.html +++ b/libbson/1.24.3/bson_get_version.html @@ -39,6 +39,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_has_field.html b/libbson/1.24.3/bson_has_field.html index 4f9e3780c8..36d08371ed 100644 --- a/libbson/1.24.3/bson_has_field.html +++ b/libbson/1.24.3/bson_has_field.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_init.html b/libbson/1.24.3/bson_init.html index aa3db982f8..b4f58ea2a6 100644 --- a/libbson/1.24.3/bson_init.html +++ b/libbson/1.24.3/bson_init.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_init_from_json.html b/libbson/1.24.3/bson_init_from_json.html index 674f789c9d..82ed571dbc 100644 --- a/libbson/1.24.3/bson_init_from_json.html +++ b/libbson/1.24.3/bson_init_from_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_init_static.html b/libbson/1.24.3/bson_init_static.html index 81a875329d..560894ed3b 100644 --- a/libbson/1.24.3/bson_init_static.html +++ b/libbson/1.24.3/bson_init_static.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_isspace.html b/libbson/1.24.3/bson_isspace.html index aa56a26e64..b56690ff2f 100644 --- a/libbson/1.24.3/bson_isspace.html +++ b/libbson/1.24.3/bson_isspace.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_array.html b/libbson/1.24.3/bson_iter_array.html index 5268ad8bb3..6332640d2d 100644 --- a/libbson/1.24.3/bson_iter_array.html +++ b/libbson/1.24.3/bson_iter_array.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_as_bool.html b/libbson/1.24.3/bson_iter_as_bool.html index 0d670f5125..7691266d1c 100644 --- a/libbson/1.24.3/bson_iter_as_bool.html +++ b/libbson/1.24.3/bson_iter_as_bool.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_as_double.html b/libbson/1.24.3/bson_iter_as_double.html index d877677d5a..ab60f8e5a1 100644 --- a/libbson/1.24.3/bson_iter_as_double.html +++ b/libbson/1.24.3/bson_iter_as_double.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_as_int64.html b/libbson/1.24.3/bson_iter_as_int64.html index 6b5d2e2090..afa74686f9 100644 --- a/libbson/1.24.3/bson_iter_as_int64.html +++ b/libbson/1.24.3/bson_iter_as_int64.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_binary.html b/libbson/1.24.3/bson_iter_binary.html index 57d3d5b9fd..c6943085af 100644 --- a/libbson/1.24.3/bson_iter_binary.html +++ b/libbson/1.24.3/bson_iter_binary.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_bool.html b/libbson/1.24.3/bson_iter_bool.html index 5629d0f566..2a11e6e2d3 100644 --- a/libbson/1.24.3/bson_iter_bool.html +++ b/libbson/1.24.3/bson_iter_bool.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_code.html b/libbson/1.24.3/bson_iter_code.html index 547c1f5dc0..4ee2aee743 100644 --- a/libbson/1.24.3/bson_iter_code.html +++ b/libbson/1.24.3/bson_iter_code.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_codewscope.html b/libbson/1.24.3/bson_iter_codewscope.html index f81b54f00f..daa7993b2c 100644 --- a/libbson/1.24.3/bson_iter_codewscope.html +++ b/libbson/1.24.3/bson_iter_codewscope.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_date_time.html b/libbson/1.24.3/bson_iter_date_time.html index 1669ffa989..911e17b6cd 100644 --- a/libbson/1.24.3/bson_iter_date_time.html +++ b/libbson/1.24.3/bson_iter_date_time.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_dbpointer.html b/libbson/1.24.3/bson_iter_dbpointer.html index 866c276845..19abd04a2a 100644 --- a/libbson/1.24.3/bson_iter_dbpointer.html +++ b/libbson/1.24.3/bson_iter_dbpointer.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_decimal128.html b/libbson/1.24.3/bson_iter_decimal128.html index bb87d86a95..1aa9f6ecbc 100644 --- a/libbson/1.24.3/bson_iter_decimal128.html +++ b/libbson/1.24.3/bson_iter_decimal128.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_document.html b/libbson/1.24.3/bson_iter_document.html index 1d5f95b9f1..94c2b561d3 100644 --- a/libbson/1.24.3/bson_iter_document.html +++ b/libbson/1.24.3/bson_iter_document.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_double.html b/libbson/1.24.3/bson_iter_double.html index b1ce5617c7..4d52b0a7d7 100644 --- a/libbson/1.24.3/bson_iter_double.html +++ b/libbson/1.24.3/bson_iter_double.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_dup_utf8.html b/libbson/1.24.3/bson_iter_dup_utf8.html index a976a91278..47e951c43c 100644 --- a/libbson/1.24.3/bson_iter_dup_utf8.html +++ b/libbson/1.24.3/bson_iter_dup_utf8.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_find.html b/libbson/1.24.3/bson_iter_find.html index 618d3e1762..d2ffbe69bc 100644 --- a/libbson/1.24.3/bson_iter_find.html +++ b/libbson/1.24.3/bson_iter_find.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_find_case.html b/libbson/1.24.3/bson_iter_find_case.html index 530e30dff4..2e5d944c78 100644 --- a/libbson/1.24.3/bson_iter_find_case.html +++ b/libbson/1.24.3/bson_iter_find_case.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_find_descendant.html b/libbson/1.24.3/bson_iter_find_descendant.html index 9527666d8b..d8b0cf6612 100644 --- a/libbson/1.24.3/bson_iter_find_descendant.html +++ b/libbson/1.24.3/bson_iter_find_descendant.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_find_w_len.html b/libbson/1.24.3/bson_iter_find_w_len.html index 5d1fa740be..1bc5dd0415 100644 --- a/libbson/1.24.3/bson_iter_find_w_len.html +++ b/libbson/1.24.3/bson_iter_find_w_len.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_init.html b/libbson/1.24.3/bson_iter_init.html index d650a2a0ad..b53c48ff27 100644 --- a/libbson/1.24.3/bson_iter_init.html +++ b/libbson/1.24.3/bson_iter_init.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_init_find.html b/libbson/1.24.3/bson_iter_init_find.html index 0d207788ad..d02f04d663 100644 --- a/libbson/1.24.3/bson_iter_init_find.html +++ b/libbson/1.24.3/bson_iter_init_find.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_init_find_case.html b/libbson/1.24.3/bson_iter_init_find_case.html index 3dccff4a74..1a03a21292 100644 --- a/libbson/1.24.3/bson_iter_init_find_case.html +++ b/libbson/1.24.3/bson_iter_init_find_case.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_init_find_w_len.html b/libbson/1.24.3/bson_iter_init_find_w_len.html index 88a765fc08..486560200b 100644 --- a/libbson/1.24.3/bson_iter_init_find_w_len.html +++ b/libbson/1.24.3/bson_iter_init_find_w_len.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_init_from_data.html b/libbson/1.24.3/bson_iter_init_from_data.html index 7ee99a2cac..ac3a70db67 100644 --- a/libbson/1.24.3/bson_iter_init_from_data.html +++ b/libbson/1.24.3/bson_iter_init_from_data.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_init_from_data_at_offset.html b/libbson/1.24.3/bson_iter_init_from_data_at_offset.html index d74138bb3e..240bc495dd 100644 --- a/libbson/1.24.3/bson_iter_init_from_data_at_offset.html +++ b/libbson/1.24.3/bson_iter_init_from_data_at_offset.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_int32.html b/libbson/1.24.3/bson_iter_int32.html index 98fac6b5f5..c67f585303 100644 --- a/libbson/1.24.3/bson_iter_int32.html +++ b/libbson/1.24.3/bson_iter_int32.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_int64.html b/libbson/1.24.3/bson_iter_int64.html index 626d4baa73..74f86dadb7 100644 --- a/libbson/1.24.3/bson_iter_int64.html +++ b/libbson/1.24.3/bson_iter_int64.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_key.html b/libbson/1.24.3/bson_iter_key.html index c5b9b13d06..8699a43bfd 100644 --- a/libbson/1.24.3/bson_iter_key.html +++ b/libbson/1.24.3/bson_iter_key.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_key_len.html b/libbson/1.24.3/bson_iter_key_len.html index d9fb9e0119..39d8d70f96 100644 --- a/libbson/1.24.3/bson_iter_key_len.html +++ b/libbson/1.24.3/bson_iter_key_len.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_next.html b/libbson/1.24.3/bson_iter_next.html index e2261955d4..b3b1dbbf53 100644 --- a/libbson/1.24.3/bson_iter_next.html +++ b/libbson/1.24.3/bson_iter_next.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_offset.html b/libbson/1.24.3/bson_iter_offset.html index 7a9b6d3130..ecdd323394 100644 --- a/libbson/1.24.3/bson_iter_offset.html +++ b/libbson/1.24.3/bson_iter_offset.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_oid.html b/libbson/1.24.3/bson_iter_oid.html index 9c0067cc9c..fa6ceba9fe 100644 --- a/libbson/1.24.3/bson_iter_oid.html +++ b/libbson/1.24.3/bson_iter_oid.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_overwrite_bool.html b/libbson/1.24.3/bson_iter_overwrite_bool.html index ebee3420d2..70bbacb6fc 100644 --- a/libbson/1.24.3/bson_iter_overwrite_bool.html +++ b/libbson/1.24.3/bson_iter_overwrite_bool.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_overwrite_date_time.html b/libbson/1.24.3/bson_iter_overwrite_date_time.html index 8878a95526..c90f97b45d 100644 --- a/libbson/1.24.3/bson_iter_overwrite_date_time.html +++ b/libbson/1.24.3/bson_iter_overwrite_date_time.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_overwrite_decimal128.html b/libbson/1.24.3/bson_iter_overwrite_decimal128.html index 64b60cd6be..94dd7fe8d0 100644 --- a/libbson/1.24.3/bson_iter_overwrite_decimal128.html +++ b/libbson/1.24.3/bson_iter_overwrite_decimal128.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_overwrite_double.html b/libbson/1.24.3/bson_iter_overwrite_double.html index bcd9b33077..caa43499c6 100644 --- a/libbson/1.24.3/bson_iter_overwrite_double.html +++ b/libbson/1.24.3/bson_iter_overwrite_double.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_overwrite_int32.html b/libbson/1.24.3/bson_iter_overwrite_int32.html index 14e6be2321..15c9f41ccb 100644 --- a/libbson/1.24.3/bson_iter_overwrite_int32.html +++ b/libbson/1.24.3/bson_iter_overwrite_int32.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_overwrite_int64.html b/libbson/1.24.3/bson_iter_overwrite_int64.html index 7e983026e0..f960cb1e06 100644 --- a/libbson/1.24.3/bson_iter_overwrite_int64.html +++ b/libbson/1.24.3/bson_iter_overwrite_int64.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_overwrite_oid.html b/libbson/1.24.3/bson_iter_overwrite_oid.html index 3eb498a35e..0241dd86f8 100644 --- a/libbson/1.24.3/bson_iter_overwrite_oid.html +++ b/libbson/1.24.3/bson_iter_overwrite_oid.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_overwrite_timestamp.html b/libbson/1.24.3/bson_iter_overwrite_timestamp.html index 7c8503f2d4..2498135a9c 100644 --- a/libbson/1.24.3/bson_iter_overwrite_timestamp.html +++ b/libbson/1.24.3/bson_iter_overwrite_timestamp.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_recurse.html b/libbson/1.24.3/bson_iter_recurse.html index 982904292e..e9a2db6f33 100644 --- a/libbson/1.24.3/bson_iter_recurse.html +++ b/libbson/1.24.3/bson_iter_recurse.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_regex.html b/libbson/1.24.3/bson_iter_regex.html index 66f2f183f0..b950f07362 100644 --- a/libbson/1.24.3/bson_iter_regex.html +++ b/libbson/1.24.3/bson_iter_regex.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_symbol.html b/libbson/1.24.3/bson_iter_symbol.html index 78ae6abf53..65d131a2e8 100644 --- a/libbson/1.24.3/bson_iter_symbol.html +++ b/libbson/1.24.3/bson_iter_symbol.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_t.html b/libbson/1.24.3/bson_iter_t.html index cb9c9a49b2..f0aac4877e 100644 --- a/libbson/1.24.3/bson_iter_t.html +++ b/libbson/1.24.3/bson_iter_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_time_t.html b/libbson/1.24.3/bson_iter_time_t.html index a6144ebc3d..654f2d886a 100644 --- a/libbson/1.24.3/bson_iter_time_t.html +++ b/libbson/1.24.3/bson_iter_time_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_timestamp.html b/libbson/1.24.3/bson_iter_timestamp.html index ddf3d41a02..0137529f39 100644 --- a/libbson/1.24.3/bson_iter_timestamp.html +++ b/libbson/1.24.3/bson_iter_timestamp.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_timeval.html b/libbson/1.24.3/bson_iter_timeval.html index 3af4867547..99ef2d860c 100644 --- a/libbson/1.24.3/bson_iter_timeval.html +++ b/libbson/1.24.3/bson_iter_timeval.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_type.html b/libbson/1.24.3/bson_iter_type.html index f0c9433d28..83243a7db7 100644 --- a/libbson/1.24.3/bson_iter_type.html +++ b/libbson/1.24.3/bson_iter_type.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_utf8.html b/libbson/1.24.3/bson_iter_utf8.html index 197709846f..68f3142d43 100644 --- a/libbson/1.24.3/bson_iter_utf8.html +++ b/libbson/1.24.3/bson_iter_utf8.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_value.html b/libbson/1.24.3/bson_iter_value.html index a5d3e6074a..332f94b001 100644 --- a/libbson/1.24.3/bson_iter_value.html +++ b/libbson/1.24.3/bson_iter_value.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_iter_visit_all.html b/libbson/1.24.3/bson_iter_visit_all.html index 28d211fbe7..b7eb882f44 100644 --- a/libbson/1.24.3/bson_iter_visit_all.html +++ b/libbson/1.24.3/bson_iter_visit_all.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_data_reader_ingest.html b/libbson/1.24.3/bson_json_data_reader_ingest.html index 826d7eab95..f212ab7f5e 100644 --- a/libbson/1.24.3/bson_json_data_reader_ingest.html +++ b/libbson/1.24.3/bson_json_data_reader_ingest.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_data_reader_new.html b/libbson/1.24.3/bson_json_data_reader_new.html index 4ee699f0e2..6a0954d6d3 100644 --- a/libbson/1.24.3/bson_json_data_reader_new.html +++ b/libbson/1.24.3/bson_json_data_reader_new.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_mode_t.html b/libbson/1.24.3/bson_json_mode_t.html index b34f7b0911..5b82711f9d 100644 --- a/libbson/1.24.3/bson_json_mode_t.html +++ b/libbson/1.24.3/bson_json_mode_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_opts_destroy.html b/libbson/1.24.3/bson_json_opts_destroy.html index 2ecbebec6a..9f738410da 100644 --- a/libbson/1.24.3/bson_json_opts_destroy.html +++ b/libbson/1.24.3/bson_json_opts_destroy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_opts_new.html b/libbson/1.24.3/bson_json_opts_new.html index ec6d162980..3e00747b61 100644 --- a/libbson/1.24.3/bson_json_opts_new.html +++ b/libbson/1.24.3/bson_json_opts_new.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_opts_set_outermost_array.html b/libbson/1.24.3/bson_json_opts_set_outermost_array.html index 6278652646..bacca5f253 100644 --- a/libbson/1.24.3/bson_json_opts_set_outermost_array.html +++ b/libbson/1.24.3/bson_json_opts_set_outermost_array.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_opts_t.html b/libbson/1.24.3/bson_json_opts_t.html index 61df4a7e3d..8757e0458c 100644 --- a/libbson/1.24.3/bson_json_opts_t.html +++ b/libbson/1.24.3/bson_json_opts_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_reader_destroy.html b/libbson/1.24.3/bson_json_reader_destroy.html index 76ecef281b..62640c9475 100644 --- a/libbson/1.24.3/bson_json_reader_destroy.html +++ b/libbson/1.24.3/bson_json_reader_destroy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_reader_new.html b/libbson/1.24.3/bson_json_reader_new.html index 26d756204a..0d006d8ef2 100644 --- a/libbson/1.24.3/bson_json_reader_new.html +++ b/libbson/1.24.3/bson_json_reader_new.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_reader_new_from_fd.html b/libbson/1.24.3/bson_json_reader_new_from_fd.html index f241f67cef..1a87a3bd4c 100644 --- a/libbson/1.24.3/bson_json_reader_new_from_fd.html +++ b/libbson/1.24.3/bson_json_reader_new_from_fd.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_reader_new_from_file.html b/libbson/1.24.3/bson_json_reader_new_from_file.html index 62c0ec4ce5..e2b972dd21 100644 --- a/libbson/1.24.3/bson_json_reader_new_from_file.html +++ b/libbson/1.24.3/bson_json_reader_new_from_file.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_reader_read.html b/libbson/1.24.3/bson_json_reader_read.html index b47eb1ad78..d2b591b336 100644 --- a/libbson/1.24.3/bson_json_reader_read.html +++ b/libbson/1.24.3/bson_json_reader_read.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_json_reader_t.html b/libbson/1.24.3/bson_json_reader_t.html index 0cf189dc52..4b7fdb6eda 100644 --- a/libbson/1.24.3/bson_json_reader_t.html +++ b/libbson/1.24.3/bson_json_reader_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_malloc.html b/libbson/1.24.3/bson_malloc.html index 780ce27261..fb6f70bf7c 100644 --- a/libbson/1.24.3/bson_malloc.html +++ b/libbson/1.24.3/bson_malloc.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_malloc0.html b/libbson/1.24.3/bson_malloc0.html index 75f9743a2a..c06a500185 100644 --- a/libbson/1.24.3/bson_malloc0.html +++ b/libbson/1.24.3/bson_malloc0.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_mem_restore_vtable.html b/libbson/1.24.3/bson_mem_restore_vtable.html index 80389875ee..e969cc6710 100644 --- a/libbson/1.24.3/bson_mem_restore_vtable.html +++ b/libbson/1.24.3/bson_mem_restore_vtable.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_mem_set_vtable.html b/libbson/1.24.3/bson_mem_set_vtable.html index 6111ab740e..6466e8adbf 100644 --- a/libbson/1.24.3/bson_mem_set_vtable.html +++ b/libbson/1.24.3/bson_mem_set_vtable.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_memory.html b/libbson/1.24.3/bson_memory.html index 8e0c260aea..8140e6ec40 100644 --- a/libbson/1.24.3/bson_memory.html +++ b/libbson/1.24.3/bson_memory.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_new.html b/libbson/1.24.3/bson_new.html index 983b910eef..0c1355f026 100644 --- a/libbson/1.24.3/bson_new.html +++ b/libbson/1.24.3/bson_new.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_new_from_buffer.html b/libbson/1.24.3/bson_new_from_buffer.html index 20345eb2b0..aca97fdcbe 100644 --- a/libbson/1.24.3/bson_new_from_buffer.html +++ b/libbson/1.24.3/bson_new_from_buffer.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_new_from_data.html b/libbson/1.24.3/bson_new_from_data.html index 86fb5b21ac..f6119fd523 100644 --- a/libbson/1.24.3/bson_new_from_data.html +++ b/libbson/1.24.3/bson_new_from_data.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_new_from_json.html b/libbson/1.24.3/bson_new_from_json.html index d78345f378..8a0a072a23 100644 --- a/libbson/1.24.3/bson_new_from_json.html +++ b/libbson/1.24.3/bson_new_from_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_compare.html b/libbson/1.24.3/bson_oid_compare.html index 5bfc1efed1..b546c20b79 100644 --- a/libbson/1.24.3/bson_oid_compare.html +++ b/libbson/1.24.3/bson_oid_compare.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_copy.html b/libbson/1.24.3/bson_oid_copy.html index 11af126dd0..0b139241e9 100644 --- a/libbson/1.24.3/bson_oid_copy.html +++ b/libbson/1.24.3/bson_oid_copy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_equal.html b/libbson/1.24.3/bson_oid_equal.html index 0a2de5a157..90c7a959a8 100644 --- a/libbson/1.24.3/bson_oid_equal.html +++ b/libbson/1.24.3/bson_oid_equal.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_get_time_t.html b/libbson/1.24.3/bson_oid_get_time_t.html index 9a73b84328..b0e44bc53d 100644 --- a/libbson/1.24.3/bson_oid_get_time_t.html +++ b/libbson/1.24.3/bson_oid_get_time_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_hash.html b/libbson/1.24.3/bson_oid_hash.html index 21cc6d0e66..7583f3c0ce 100644 --- a/libbson/1.24.3/bson_oid_hash.html +++ b/libbson/1.24.3/bson_oid_hash.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_init.html b/libbson/1.24.3/bson_oid_init.html index 5810ee738e..9a1b9483c8 100644 --- a/libbson/1.24.3/bson_oid_init.html +++ b/libbson/1.24.3/bson_oid_init.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_init_from_data.html b/libbson/1.24.3/bson_oid_init_from_data.html index d974fef379..511e5ca94e 100644 --- a/libbson/1.24.3/bson_oid_init_from_data.html +++ b/libbson/1.24.3/bson_oid_init_from_data.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_init_from_string.html b/libbson/1.24.3/bson_oid_init_from_string.html index ab631cd2aa..94359dc029 100644 --- a/libbson/1.24.3/bson_oid_init_from_string.html +++ b/libbson/1.24.3/bson_oid_init_from_string.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_init_sequence.html b/libbson/1.24.3/bson_oid_init_sequence.html index b33f4229ef..9136dbb219 100644 --- a/libbson/1.24.3/bson_oid_init_sequence.html +++ b/libbson/1.24.3/bson_oid_init_sequence.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_is_valid.html b/libbson/1.24.3/bson_oid_is_valid.html index a4925b56ea..82013ff295 100644 --- a/libbson/1.24.3/bson_oid_is_valid.html +++ b/libbson/1.24.3/bson_oid_is_valid.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_t.html b/libbson/1.24.3/bson_oid_t.html index 0b4f8a6e2d..4d89d22c8b 100644 --- a/libbson/1.24.3/bson_oid_t.html +++ b/libbson/1.24.3/bson_oid_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_oid_to_string.html b/libbson/1.24.3/bson_oid_to_string.html index 78b165f9fe..11ecb830ce 100644 --- a/libbson/1.24.3/bson_oid_to_string.html +++ b/libbson/1.24.3/bson_oid_to_string.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_destroy.html b/libbson/1.24.3/bson_reader_destroy.html index d5a389cc0e..a0e90c8d46 100644 --- a/libbson/1.24.3/bson_reader_destroy.html +++ b/libbson/1.24.3/bson_reader_destroy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_destroy_func_t.html b/libbson/1.24.3/bson_reader_destroy_func_t.html index b347e70b84..e8d2e12be9 100644 --- a/libbson/1.24.3/bson_reader_destroy_func_t.html +++ b/libbson/1.24.3/bson_reader_destroy_func_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_new_from_data.html b/libbson/1.24.3/bson_reader_new_from_data.html index e3914fb714..660dea649f 100644 --- a/libbson/1.24.3/bson_reader_new_from_data.html +++ b/libbson/1.24.3/bson_reader_new_from_data.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_new_from_fd.html b/libbson/1.24.3/bson_reader_new_from_fd.html index 92f49bc00a..24158ac54a 100644 --- a/libbson/1.24.3/bson_reader_new_from_fd.html +++ b/libbson/1.24.3/bson_reader_new_from_fd.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_new_from_file.html b/libbson/1.24.3/bson_reader_new_from_file.html index 5becb079c6..77be12d1b4 100644 --- a/libbson/1.24.3/bson_reader_new_from_file.html +++ b/libbson/1.24.3/bson_reader_new_from_file.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_new_from_handle.html b/libbson/1.24.3/bson_reader_new_from_handle.html index 67139e99b5..a85430f9bb 100644 --- a/libbson/1.24.3/bson_reader_new_from_handle.html +++ b/libbson/1.24.3/bson_reader_new_from_handle.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_read.html b/libbson/1.24.3/bson_reader_read.html index f45637abc5..579393acc9 100644 --- a/libbson/1.24.3/bson_reader_read.html +++ b/libbson/1.24.3/bson_reader_read.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_read_func_t.html b/libbson/1.24.3/bson_reader_read_func_t.html index 96904a42ca..43865a32f3 100644 --- a/libbson/1.24.3/bson_reader_read_func_t.html +++ b/libbson/1.24.3/bson_reader_read_func_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_reset.html b/libbson/1.24.3/bson_reader_reset.html index fdc4373aa7..f060f1d537 100644 --- a/libbson/1.24.3/bson_reader_reset.html +++ b/libbson/1.24.3/bson_reader_reset.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_set_destroy_func.html b/libbson/1.24.3/bson_reader_set_destroy_func.html index f79c5acc73..2a787befe9 100644 --- a/libbson/1.24.3/bson_reader_set_destroy_func.html +++ b/libbson/1.24.3/bson_reader_set_destroy_func.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_set_read_func.html b/libbson/1.24.3/bson_reader_set_read_func.html index 0a7621ed99..b7ca87e9c8 100644 --- a/libbson/1.24.3/bson_reader_set_read_func.html +++ b/libbson/1.24.3/bson_reader_set_read_func.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_t.html b/libbson/1.24.3/bson_reader_t.html index c853d96019..9db5332674 100644 --- a/libbson/1.24.3/bson_reader_t.html +++ b/libbson/1.24.3/bson_reader_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reader_tell.html b/libbson/1.24.3/bson_reader_tell.html index 522c96dde2..2b12702af7 100644 --- a/libbson/1.24.3/bson_reader_tell.html +++ b/libbson/1.24.3/bson_reader_tell.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_realloc.html b/libbson/1.24.3/bson_realloc.html index a8052ce3b7..deb70fb190 100644 --- a/libbson/1.24.3/bson_realloc.html +++ b/libbson/1.24.3/bson_realloc.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_realloc_ctx.html b/libbson/1.24.3/bson_realloc_ctx.html index 3db1889669..77bc94cb64 100644 --- a/libbson/1.24.3/bson_realloc_ctx.html +++ b/libbson/1.24.3/bson_realloc_ctx.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_realloc_func.html b/libbson/1.24.3/bson_realloc_func.html index 2a58a52970..89b3f2bb9c 100644 --- a/libbson/1.24.3/bson_realloc_func.html +++ b/libbson/1.24.3/bson_realloc_func.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reinit.html b/libbson/1.24.3/bson_reinit.html index 47341653b2..399932ed09 100644 --- a/libbson/1.24.3/bson_reinit.html +++ b/libbson/1.24.3/bson_reinit.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_reserve_buffer.html b/libbson/1.24.3/bson_reserve_buffer.html index 45eb3149df..9110124eb9 100644 --- a/libbson/1.24.3/bson_reserve_buffer.html +++ b/libbson/1.24.3/bson_reserve_buffer.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_set_error.html b/libbson/1.24.3/bson_set_error.html index 65a2cd1a4a..0526f1ca09 100644 --- a/libbson/1.24.3/bson_set_error.html +++ b/libbson/1.24.3/bson_set_error.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_sized_new.html b/libbson/1.24.3/bson_sized_new.html index 866bb260c4..b0379c81d6 100644 --- a/libbson/1.24.3/bson_sized_new.html +++ b/libbson/1.24.3/bson_sized_new.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_snprintf.html b/libbson/1.24.3/bson_snprintf.html index 81c7557512..17065125f0 100644 --- a/libbson/1.24.3/bson_snprintf.html +++ b/libbson/1.24.3/bson_snprintf.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_steal.html b/libbson/1.24.3/bson_steal.html index 2ca93c0e07..6ee090b9d8 100644 --- a/libbson/1.24.3/bson_steal.html +++ b/libbson/1.24.3/bson_steal.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strcasecmp.html b/libbson/1.24.3/bson_strcasecmp.html index ad9ea450af..4e440936aa 100644 --- a/libbson/1.24.3/bson_strcasecmp.html +++ b/libbson/1.24.3/bson_strcasecmp.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strdup.html b/libbson/1.24.3/bson_strdup.html index b195df24c5..d43a513ae6 100644 --- a/libbson/1.24.3/bson_strdup.html +++ b/libbson/1.24.3/bson_strdup.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strdup_printf.html b/libbson/1.24.3/bson_strdup_printf.html index ecd38ad644..e87534af66 100644 --- a/libbson/1.24.3/bson_strdup_printf.html +++ b/libbson/1.24.3/bson_strdup_printf.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strdupv_printf.html b/libbson/1.24.3/bson_strdupv_printf.html index 1e8bfbb441..633d2a30ac 100644 --- a/libbson/1.24.3/bson_strdupv_printf.html +++ b/libbson/1.24.3/bson_strdupv_printf.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strerror_r.html b/libbson/1.24.3/bson_strerror_r.html index 35e5be8ab9..d98672ee02 100644 --- a/libbson/1.24.3/bson_strerror_r.html +++ b/libbson/1.24.3/bson_strerror_r.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strfreev.html b/libbson/1.24.3/bson_strfreev.html index 37c8c1f2a5..9d741188e6 100644 --- a/libbson/1.24.3/bson_strfreev.html +++ b/libbson/1.24.3/bson_strfreev.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_string_append.html b/libbson/1.24.3/bson_string_append.html index e9e773bd3b..cb2a87795e 100644 --- a/libbson/1.24.3/bson_string_append.html +++ b/libbson/1.24.3/bson_string_append.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_string_append_c.html b/libbson/1.24.3/bson_string_append_c.html index d3084bf88a..70a6e1d07c 100644 --- a/libbson/1.24.3/bson_string_append_c.html +++ b/libbson/1.24.3/bson_string_append_c.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_string_append_printf.html b/libbson/1.24.3/bson_string_append_printf.html index 67bc93347e..a2205e7d68 100644 --- a/libbson/1.24.3/bson_string_append_printf.html +++ b/libbson/1.24.3/bson_string_append_printf.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_string_append_unichar.html b/libbson/1.24.3/bson_string_append_unichar.html index 2f677ac98e..bc72116dcd 100644 --- a/libbson/1.24.3/bson_string_append_unichar.html +++ b/libbson/1.24.3/bson_string_append_unichar.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_string_free.html b/libbson/1.24.3/bson_string_free.html index 54c4979c31..dd658e963b 100644 --- a/libbson/1.24.3/bson_string_free.html +++ b/libbson/1.24.3/bson_string_free.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_string_new.html b/libbson/1.24.3/bson_string_new.html index c77a353e31..72ed676cad 100644 --- a/libbson/1.24.3/bson_string_new.html +++ b/libbson/1.24.3/bson_string_new.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_string_t.html b/libbson/1.24.3/bson_string_t.html index 25009898fd..671f128cbd 100644 --- a/libbson/1.24.3/bson_string_t.html +++ b/libbson/1.24.3/bson_string_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_string_truncate.html b/libbson/1.24.3/bson_string_truncate.html index ea732fa6e7..c5fc87d6dd 100644 --- a/libbson/1.24.3/bson_string_truncate.html +++ b/libbson/1.24.3/bson_string_truncate.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strncpy.html b/libbson/1.24.3/bson_strncpy.html index 692e58786f..b289c5c33b 100644 --- a/libbson/1.24.3/bson_strncpy.html +++ b/libbson/1.24.3/bson_strncpy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strndup.html b/libbson/1.24.3/bson_strndup.html index 2943a48bc9..65fec68e58 100644 --- a/libbson/1.24.3/bson_strndup.html +++ b/libbson/1.24.3/bson_strndup.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_strnlen.html b/libbson/1.24.3/bson_strnlen.html index 97d7971411..e31df3f5cf 100644 --- a/libbson/1.24.3/bson_strnlen.html +++ b/libbson/1.24.3/bson_strnlen.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_subtype_t.html b/libbson/1.24.3/bson_subtype_t.html index 18766668af..bf4bf3f7f9 100644 --- a/libbson/1.24.3/bson_subtype_t.html +++ b/libbson/1.24.3/bson_subtype_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_t.html b/libbson/1.24.3/bson_t.html index b29e7fab25..a17681c136 100644 --- a/libbson/1.24.3/bson_t.html +++ b/libbson/1.24.3/bson_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_type_t.html b/libbson/1.24.3/bson_type_t.html index c035b7c6d6..5526500590 100644 --- a/libbson/1.24.3/bson_type_t.html +++ b/libbson/1.24.3/bson_type_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_uint32_to_string.html b/libbson/1.24.3/bson_uint32_to_string.html index 3a3a217353..dbe1adc227 100644 --- a/libbson/1.24.3/bson_uint32_to_string.html +++ b/libbson/1.24.3/bson_uint32_to_string.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_unichar_t.html b/libbson/1.24.3/bson_unichar_t.html index efbc8d9175..3a32947a55 100644 --- a/libbson/1.24.3/bson_unichar_t.html +++ b/libbson/1.24.3/bson_unichar_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_utf8_escape_for_json.html b/libbson/1.24.3/bson_utf8_escape_for_json.html index 46ebc707a5..f31d2f8b0f 100644 --- a/libbson/1.24.3/bson_utf8_escape_for_json.html +++ b/libbson/1.24.3/bson_utf8_escape_for_json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_utf8_from_unichar.html b/libbson/1.24.3/bson_utf8_from_unichar.html index 246c7caeca..6ca9aa0bf4 100644 --- a/libbson/1.24.3/bson_utf8_from_unichar.html +++ b/libbson/1.24.3/bson_utf8_from_unichar.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_utf8_get_char.html b/libbson/1.24.3/bson_utf8_get_char.html index 674df2a935..daf8d04f11 100644 --- a/libbson/1.24.3/bson_utf8_get_char.html +++ b/libbson/1.24.3/bson_utf8_get_char.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_utf8_next_char.html b/libbson/1.24.3/bson_utf8_next_char.html index 5d51eb0876..a04c3542e7 100644 --- a/libbson/1.24.3/bson_utf8_next_char.html +++ b/libbson/1.24.3/bson_utf8_next_char.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_utf8_validate.html b/libbson/1.24.3/bson_utf8_validate.html index ed530f82da..237bc34703 100644 --- a/libbson/1.24.3/bson_utf8_validate.html +++ b/libbson/1.24.3/bson_utf8_validate.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_validate.html b/libbson/1.24.3/bson_validate.html index 48e9c79429..83c72c57d4 100644 --- a/libbson/1.24.3/bson_validate.html +++ b/libbson/1.24.3/bson_validate.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_validate_with_error.html b/libbson/1.24.3/bson_validate_with_error.html index e177db59f9..d83e4f1050 100644 --- a/libbson/1.24.3/bson_validate_with_error.html +++ b/libbson/1.24.3/bson_validate_with_error.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_value_copy.html b/libbson/1.24.3/bson_value_copy.html index 80c6e04022..8523df7ef1 100644 --- a/libbson/1.24.3/bson_value_copy.html +++ b/libbson/1.24.3/bson_value_copy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_value_destroy.html b/libbson/1.24.3/bson_value_destroy.html index 0ef1c9bb29..2c09e283b5 100644 --- a/libbson/1.24.3/bson_value_destroy.html +++ b/libbson/1.24.3/bson_value_destroy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_value_t.html b/libbson/1.24.3/bson_value_t.html index 5aad5bd75a..88f5198695 100644 --- a/libbson/1.24.3/bson_value_t.html +++ b/libbson/1.24.3/bson_value_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_visitor_t.html b/libbson/1.24.3/bson_visitor_t.html index 03cc41a61d..70895cfa9d 100644 --- a/libbson/1.24.3/bson_visitor_t.html +++ b/libbson/1.24.3/bson_visitor_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_vsnprintf.html b/libbson/1.24.3/bson_vsnprintf.html index 1d8103d9cc..8fa827ceb6 100644 --- a/libbson/1.24.3/bson_vsnprintf.html +++ b/libbson/1.24.3/bson_vsnprintf.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_writer_begin.html b/libbson/1.24.3/bson_writer_begin.html index 90e1323c4c..a442bb071a 100644 --- a/libbson/1.24.3/bson_writer_begin.html +++ b/libbson/1.24.3/bson_writer_begin.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_writer_destroy.html b/libbson/1.24.3/bson_writer_destroy.html index 3f41335888..dc6db984d3 100644 --- a/libbson/1.24.3/bson_writer_destroy.html +++ b/libbson/1.24.3/bson_writer_destroy.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_writer_end.html b/libbson/1.24.3/bson_writer_end.html index 2259051d5f..31db5c9ed5 100644 --- a/libbson/1.24.3/bson_writer_end.html +++ b/libbson/1.24.3/bson_writer_end.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_writer_get_length.html b/libbson/1.24.3/bson_writer_get_length.html index fa517de390..ef0c118bc5 100644 --- a/libbson/1.24.3/bson_writer_get_length.html +++ b/libbson/1.24.3/bson_writer_get_length.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_writer_new.html b/libbson/1.24.3/bson_writer_new.html index 4cc83a63e4..82c9f62634 100644 --- a/libbson/1.24.3/bson_writer_new.html +++ b/libbson/1.24.3/bson_writer_new.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_writer_rollback.html b/libbson/1.24.3/bson_writer_rollback.html index de92ce0a47..f482ae1399 100644 --- a/libbson/1.24.3/bson_writer_rollback.html +++ b/libbson/1.24.3/bson_writer_rollback.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_writer_t.html b/libbson/1.24.3/bson_writer_t.html index ad447ee60c..72bd0a2a8b 100644 --- a/libbson/1.24.3/bson_writer_t.html +++ b/libbson/1.24.3/bson_writer_t.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/bson_zero_free.html b/libbson/1.24.3/bson_zero_free.html index 3ba91c47e4..8e15f3d563 100644 --- a/libbson/1.24.3/bson_zero_free.html +++ b/libbson/1.24.3/bson_zero_free.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/character_and_string_routines.html b/libbson/1.24.3/character_and_string_routines.html index 9e41235e35..4954993097 100644 --- a/libbson/1.24.3/character_and_string_routines.html +++ b/libbson/1.24.3/character_and_string_routines.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/creating.html b/libbson/1.24.3/creating.html index 257a4dd7e1..61d6f86d0c 100644 --- a/libbson/1.24.3/creating.html +++ b/libbson/1.24.3/creating.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/cross-platform-notes.html b/libbson/1.24.3/cross-platform-notes.html index f53e42b156..12ee3fb2b2 100644 --- a/libbson/1.24.3/cross-platform-notes.html +++ b/libbson/1.24.3/cross-platform-notes.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/endianness.html b/libbson/1.24.3/endianness.html index 08e51a64e9..9f7d7f5f96 100644 --- a/libbson/1.24.3/endianness.html +++ b/libbson/1.24.3/endianness.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/errors.html b/libbson/1.24.3/errors.html index 05613a572d..1256576acf 100644 --- a/libbson/1.24.3/errors.html +++ b/libbson/1.24.3/errors.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/full_index.html b/libbson/1.24.3/full_index.html index b113835baf..890208d43b 100644 --- a/libbson/1.24.3/full_index.html +++ b/libbson/1.24.3/full_index.html @@ -38,6 +38,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/guides.html b/libbson/1.24.3/guides.html index 80f2541367..8d9ed28edf 100644 --- a/libbson/1.24.3/guides.html +++ b/libbson/1.24.3/guides.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/include-and-link.html b/libbson/1.24.3/include-and-link.html index 58c16797fe..0cd961e4fc 100644 --- a/libbson/1.24.3/include-and-link.html +++ b/libbson/1.24.3/include-and-link.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/index.html b/libbson/1.24.3/index.html index 56cb02690e..4ad04e634f 100644 --- a/libbson/1.24.3/index.html +++ b/libbson/1.24.3/index.html @@ -39,6 +39,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/json.html b/libbson/1.24.3/json.html index b747b4af9a..f12db4d114 100644 --- a/libbson/1.24.3/json.html +++ b/libbson/1.24.3/json.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/oid.html b/libbson/1.24.3/oid.html index 61b891d88b..d6d9c1f8a7 100644 --- a/libbson/1.24.3/oid.html +++ b/libbson/1.24.3/oid.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/parsing.html b/libbson/1.24.3/parsing.html index bf3bc4791c..51c819d9d3 100644 --- a/libbson/1.24.3/parsing.html +++ b/libbson/1.24.3/parsing.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/search.html b/libbson/1.24.3/search.html index 1b0cac9efd..6ae8b3fc9c 100644 --- a/libbson/1.24.3/search.html +++ b/libbson/1.24.3/search.html @@ -45,6 +45,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/streaming-bson.html b/libbson/1.24.3/streaming-bson.html index 13de95bc83..1f32e7c723 100644 --- a/libbson/1.24.3/streaming-bson.html +++ b/libbson/1.24.3/streaming-bson.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/threading.html b/libbson/1.24.3/threading.html index 0b02f8f7ed..9f3609aa9d 100644 --- a/libbson/1.24.3/threading.html +++ b/libbson/1.24.3/threading.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/tutorial.html b/libbson/1.24.3/tutorial.html index 57758d9736..a1e27fb90e 100644 --- a/libbson/1.24.3/tutorial.html +++ b/libbson/1.24.3/tutorial.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/utf8.html b/libbson/1.24.3/utf8.html index 6e0461f3d1..98fcd6e233 100644 --- a/libbson/1.24.3/utf8.html +++ b/libbson/1.24.3/utf8.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.3/version.html b/libbson/1.24.3/version.html index 9bd5f5b2d9..dda74e76f5 100644 --- a/libbson/1.24.3/version.html +++ b/libbson/1.24.3/version.html @@ -40,6 +40,12 @@ +
      + This is an outdated version of the documentation. + + See the current version of this page. +
      diff --git a/libbson/1.24.4/.nojekyll b/libbson/1.24.4/.nojekyll new file mode 100644 index 0000000000..1910281566 --- /dev/null +++ b/libbson/1.24.4/.nojekyll @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/libbson/1.24.4/CMakeLists.txt b/libbson/1.24.4/CMakeLists.txt new file mode 100644 index 0000000000..447d8c0657 --- /dev/null +++ b/libbson/1.24.4/CMakeLists.txt @@ -0,0 +1,31 @@ +# Additional generated static files +extra_dist_generated ( + .nojekyll + objects.inv + _static/ajax-loader.gif + _static/basic.css + _static/comment-bright.png + _static/comment-close.png + _static/comment.png + _static/doctools.js + _static/documentation_options.js + _static/down-pressed.png + _static/down.png + _static/file.png + _static/jquery.js + _static/minus.png + _static/plus.png + _static/pygments.css + _static/readable.css + _static/searchtools.js + _static/underscore.js + _static/up-pressed.png + _static/up.png + _static/websupport.js + search.html + searchindex.js +) + +set_dist_list (src_libbson_doc_html_DIST + CMakeLists.txt +) diff --git a/libbson/1.24.4/_static/ajax-loader.gif b/libbson/1.24.4/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/libbson/1.24.4/_static/basic.css b/libbson/1.24.4/_static/basic.css new file mode 100644 index 0000000000..19ced1057a --- /dev/null +++ b/libbson/1.24.4/_static/basic.css @@ -0,0 +1,665 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/libbson/1.24.4/_static/comment-bright.png b/libbson/1.24.4/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e GIT binary patch literal 756 zcmVgfIX78 z$8Pzv({A~p%??+>KickCb#0FM1rYN=mBmQ&Nwp<#JXUhU;{|)}%&s>suq6lXw*~s{ zvHx}3C%<;wE5CH!BR{p5@ml9ws}y)=QN-kL2?#`S5d*6j zk`h<}j1>tD$b?4D^N9w}-k)bxXxFg>+#kme^xx#qg6FI-%iv2U{0h(Y)cs%5a|m%Pn_K3X_bDJ>EH#(Fb73Z zfUt2Q3B>N+ot3qb*DqbTZpFIn4a!#_R-}{?-~Hs=xSS6p&$sZ-k1zDdtqU`Y@`#qL z&zv-~)Q#JCU(dI)Hf;$CEnK=6CK50}q7~wdbI->?E07bJ0R;!GSQTs5Am`#;*WHjvHRvY?&$Lm-vq1a_BzocI^ULXV!lbMd%|^B#fY;XX)n<&R^L z=84u1e_3ziq;Hz-*k5~zwY3*oDKt0;bM@M@@89;@m*4RFgvvM_4;5LB!@OB@^WbVT zjl{t;a8_>od-~P4 m{5|DvB&z#xT;*OnJqG}gk~_7HcNkCr0000W zanA~u9RIXo;n7c96&U)YLgs-FGlx~*_c{Jgvesu1E5(8YEf&5wF=YFPcRe@1=MJmi zag(L*xc2r0(slpcN!vC5CUju;vHJkHc*&70_n2OZsK%O~A=!+YIw z7zLLl7~Z+~RgWOQ=MI6$#0pvpu$Q43 zP@36QAmu6!_9NPM?o<1_!+stoVRRZbW9#SPe!n;#A_6m8f}|xN1;H{`0RoXQ2LM47 zt(g;iZ6|pCb@h2xk&(}S3=EVBUO0e90m2Lp5CB<(SPIaB;n4))3JB87Or#XPOPcum z?<^(g+m9}VNn4Y&B`g8h{t_$+RB1%HKRY6fjtd-<7&EsU;vs0GM(Lmbhi%Gwcfs0FTF}T zL{_M6Go&E0Eg8FuB*(Yn+Z*RVTBE@10eIOb3El^MhO`GabDll(V0&FlJi2k^;q8af zkENdk2}x2)_KVp`5OAwXZM;dG0?M-S)xE1IKDi6BY@5%Or?#aZ9$gcX)dPZ&wA1a< z$rFXHPn|TBf`e?>Are8sKtKrKcjF$i^lp!zkL?C|y^vlHr1HXeVJd;1I~g&Ob-q)& z(fn7s-KI}G{wnKzg_U5G(V%bX6uk zIa+<@>rdmZYd!9Y=C0cuchrbIjuRB_Wq{-RXlic?flu1*_ux}x%(HDH&nT`k^xCeC ziHi1!ChH*sQ6|UqJpTTzX$aw8e(UfcS^f;6yBWd+(1-70zU(rtxtqR%j z-lsH|CKQJXqD{+F7V0OTv8@{~(wp(`oIP^ZykMWgR>&|RsklFMCnOo&Bd{le} zV5F6424Qzl;o2G%oVvmHgRDP9!=rK8fy^!yV8y*4p=??uIRrrr0?>O!(z*g5AvL2!4z0{sq%vhG*Po}`a<6%kTK5TNhtC8}rXNu&h^QH4A&Sk~Autm*s~45(H7+0bi^MraaRVzr05hQ3iK?j` zR#U@^i0WhkIHTg29u~|ypU?sXCQEQgXfObPW;+0YAF;|5XyaMAEM0sQ@4-xCZe=0e z7r$ofiAxn@O5#RodD8rh5D@nKQ;?lcf@tg4o+Wp44aMl~c47azN_(im0N)7OqdPBC zGw;353_o$DqGRDhuhU$Eaj!@m000000NkvXXu0mjfjZ7Z_ literal 0 HcmV?d00001 diff --git a/libbson/1.24.4/_static/doctools.js b/libbson/1.24.4/_static/doctools.js new file mode 100644 index 0000000000..d8928926bf --- /dev/null +++ b/libbson/1.24.4/_static/doctools.js @@ -0,0 +1,313 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var bbox = span.getBBox(); + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + var parentOfText = node.parentNode.parentNode; + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file diff --git a/libbson/1.24.4/_static/documentation_options.js b/libbson/1.24.4/_static/documentation_options.js new file mode 100644 index 0000000000..bc12cb35cd --- /dev/null +++ b/libbson/1.24.4/_static/documentation_options.js @@ -0,0 +1,9 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: false, + SOURCELINK_SUFFIX: '.txt' +}; \ No newline at end of file diff --git a/libbson/1.24.4/_static/down-pressed.png b/libbson/1.24.4/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`OFdm2Ln;`PZ^+1>KjR?B@S0W7 z%OS_REiHONoJ6{+Ks@6k3590|7k9F+ddB6!zw3#&!aw#S`x}3V3&=A(a#84O-&F7T z^k3tZB;&iR9siw0|F|E|DAL<8r-F4!1H-;1{e*~yAKZN5f0|Ei6yUmR#Is)EM(Po_ zi`qJR6|P<~+)N+kSDgL7AjdIC_!O7Q?eGb+L+qOjm{~LLinM4NHn7U%HcK%uoMYO5 VJ~8zD2B3o(JYD@<);T3K0RV0%P>BEl literal 0 HcmV?d00001 diff --git a/libbson/1.24.4/_static/down.png b/libbson/1.24.4/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6CVIL!hEy=F?b*7pIY7kW{q%Rg zx!yQ<9v8bmJwa`TQk7YSw}WVQ()mRdQ;TC;* literal 0 HcmV?d00001 diff --git a/libbson/1.24.4/_static/file.png b/libbson/1.24.4/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/libbson/1.24.4/_static/jquery-3.2.1.js b/libbson/1.24.4/_static/jquery-3.2.1.js new file mode 100644 index 0000000000..d2d8ca4790 --- /dev/null +++ b/libbson/1.24.4/_static/jquery-3.2.1.js @@ -0,0 +1,10253 @@ +/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.2.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Simple selector that can be filtered directly, removing non-Elements + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + // Complex selector, compare the two sets, removing non-Elements + qualifier = jQuery.filter( qualifier, elements ); + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( jQuery.isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ jQuery.camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ jQuery.camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( jQuery.camelCase ); + } else { + key = jQuery.camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
      " ], + col: [ 2, "", "
      " ], + tr: [ 2, "", "
      " ], + td: [ 3, "", "
      " ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( ">tbody", elem )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rmargin = ( /^margin/ ); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + div.style.cssText = + "box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + div.innerHTML = ""; + documentElement.appendChild( container ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = divStyle.marginRight === "4px"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i, + val = 0; + + // If we already have the right measurement, avoid augmentation + if ( extra === ( isBorderBox ? "border" : "content" ) ) { + i = 4; + + // Otherwise initialize for horizontal or vertical properties + } else { + i = name === "width" ? 1 : 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with computed style + var valueIsBorderBox, + styles = getStyles( elem ), + val = curCSS( elem, name, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Fall back to offsetWidth/Height when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + if ( val === "auto" ) { + val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; + } + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 13 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnothtmlwhite ) || []; + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, isFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +support.focusin = "onfocusin" in window; + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = jQuery.isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 13 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available, append data to url + if ( s.data ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + API Reference — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      API Reference

      +
      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_aligned_alloc.html b/libbson/1.24.4/bson_aligned_alloc.html new file mode 100644 index 0000000000..26a0e3ab8d --- /dev/null +++ b/libbson/1.24.4/bson_aligned_alloc.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_aligned_alloc() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_aligned_alloc()

      +
      +

      Synopsis

      +
      void *
      +bson_aligned_alloc (size_t alignment, size_t num_bytes);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • alignment: The alignment of the allocated bytes of memory. Must be a power of 2 and a multiple of sizeof (void *).

      • +
      • num_bytes: The number of bytes to allocate. Must be a multiple of alignment.

      • +
      +
      +
      +

      Description

      +

      This is a portable aligned_alloc() wrapper.

      +

      In general, this function will return an allocation at least sizeof(void*) bytes or bigger with an alignment of at least alignment.

      +

      If there was a failure to allocate num_bytes bytes aligned to alignment, the process will be aborted.

      +
      +

      Warning

      +

      This function will abort on failure to allocate memory.

      +
      +
      +
      +

      Returns

      +

      A pointer to a memory region which HAS NOT been zeroed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_aligned_alloc0.html b/libbson/1.24.4/bson_aligned_alloc0.html new file mode 100644 index 0000000000..44094cc574 --- /dev/null +++ b/libbson/1.24.4/bson_aligned_alloc0.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_aligned_alloc0() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_aligned_alloc0()

      +
      +

      Synopsis

      +
      void *
      +bson_aligned_alloc0 (size_t alignment, size_t num_bytes);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • alignment: The alignment of the allocated bytes of memory. Must be a power of 2 and a multiple of sizeof (void *).

      • +
      • num_bytes: The number of bytes to allocate. Must be a multiple of alignment.

      • +
      +
      +
      +

      Description

      +

      This is a portable aligned_alloc() wrapper that also sets the memory to zero.

      +

      In general, this function will return an allocation at least sizeof(void*) bytes or bigger with an alignment of at least alignment.

      +

      If there was a failure to allocate num_bytes bytes aligned to alignment, the process will be aborted.

      +
      +

      Warning

      +

      This function will abort on failure to allocate memory.

      +
      +
      +
      +

      Returns

      +

      A pointer to a memory region which HAS been zeroed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_array.html b/libbson/1.24.4/bson_append_array.html new file mode 100644 index 0000000000..ab2dfe66f0 --- /dev/null +++ b/libbson/1.24.4/bson_append_array.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_array() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_array()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_ARRAY(b, key, val) \
      +   bson_append_array (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_array (bson_t *bson,
      +                   const char *key,
      +                   int key_length,
      +                   const bson_t *array);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • array: A bson_t.

      • +
      +
      +
      +

      Description

      +

      The bson_append_array() function shall append array to bson using the specified key. The type of the field will be an array, but it is the responsibility of the caller to ensure that the keys of array are properly formatted with string keys such as “0”, “1”, “2” and so forth.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function fails if appending the array grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_array_begin.html b/libbson/1.24.4/bson_append_array_begin.html new file mode 100644 index 0000000000..ff7223274f --- /dev/null +++ b/libbson/1.24.4/bson_append_array_begin.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_append_array_begin() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_array_begin()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_ARRAY_BEGIN(b, key, child) \
      +   bson_append_array_begin (b, key, (int) strlen (key), child)
      +
      +bool
      +bson_append_array_begin (bson_t *bson,
      +                         const char *key,
      +                         int key_length,
      +                         bson_t *child);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: A string containing the name for the key.

      • +
      • key_length: The length of key or -1 to call strlen().

      • +
      • child: A bson_t.

      • +
      +
      +
      +

      Description

      +

      The bson_append_array_begin() function shall begin appending an array field to bson. This allows for incrementally building a sub-array. Doing so will generally yield better performance as you will serialize to a single buffer. When done building the sub-array, the caller MUST call bson_append_array_end().

      +

      For generating array element keys, see bson_uint32_to_string().

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the array grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_array_end.html b/libbson/1.24.4/bson_append_array_end.html new file mode 100644 index 0000000000..4b4d06a911 --- /dev/null +++ b/libbson/1.24.4/bson_append_array_end.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_append_array_end() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_array_end()

      +
      +

      Synopsis

      +
      bool
      +bson_append_array_end (bson_t *bson, bson_t *child);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_append_array_end() function shall complete the appending of an array field started with bson_append_array_begin(). child is invalid after calling this function.

      +
      +
      +

      Returns

      +

      Returns true if successful.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_binary.html b/libbson/1.24.4/bson_append_binary.html new file mode 100644 index 0000000000..873dcd81f1 --- /dev/null +++ b/libbson/1.24.4/bson_append_binary.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + bson_append_binary() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_binary()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_BINARY(b, key, subtype, val, len) \
      +   bson_append_binary (b, key, (int) strlen (key), subtype, val, len)
      +
      +bool
      +bson_append_binary (bson_t *bson,
      +                    const char *key,
      +                    int key_length,
      +                    bson_subtype_t subtype,
      +                    const uint8_t *binary,
      +                    uint32_t length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: The key name.

      • +
      • key_length: The length of key in bytes or -1 to use strlen().

      • +
      • subtype: A bson_subtype_t indicating the binary subtype.

      • +
      • binary: A buffer to embed as binary data. May be NULL for an empty binary value.

      • +
      • length: The length of buffer in bytes. Must be 0 if binary is NULL.

      • +
      +
      +
      +

      Description

      +

      The bson_append_binary() function shall append a new element to bson containing the binary data provided.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending binary grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_bool.html b/libbson/1.24.4/bson_append_bool.html new file mode 100644 index 0000000000..8f5b5047f1 --- /dev/null +++ b/libbson/1.24.4/bson_append_bool.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_bool() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_bool()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_BOOL(b, key, val) \
      +   bson_append_bool (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_bool (bson_t *bson, const char *key, int key_length, bool value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: The name of the field.

      • +
      • key_length: The length of key or -1 to use strlen().

      • +
      • value: true or false.

      • +
      +
      +
      +

      Description

      +

      The bson_append_bool() function shall append a new element to bson containing the boolean provided.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_code.html b/libbson/1.24.4/bson_append_code.html new file mode 100644 index 0000000000..2f9b1dfa20 --- /dev/null +++ b/libbson/1.24.4/bson_append_code.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_code() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_code()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_CODE(b, key, val) \
      +   bson_append_code (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_code (bson_t *bson,
      +                  const char *key,
      +                  int key_length,
      +                  const char *javascript);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: The key name.

      • +
      • key_length: The length of key or -1 to use strlen().

      • +
      • javascript: A UTF-8 encoded string containing the javascript.

      • +
      +
      +
      +

      Description

      +

      The bson_append_code() function shall append a new element to bson using the UTF-8 encoded javascript provided. javascript must be a NULL terminated C string.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending javascript grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_code_with_scope.html b/libbson/1.24.4/bson_append_code_with_scope.html new file mode 100644 index 0000000000..c27f29cf2a --- /dev/null +++ b/libbson/1.24.4/bson_append_code_with_scope.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_append_code_with_scope() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_code_with_scope()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_CODE_WITH_SCOPE(b, key, val, scope) \
      +   bson_append_code_with_scope (b, key, (int) strlen (key), val, scope)
      +
      +bool
      +bson_append_code_with_scope (bson_t *bson,
      +                             const char *key,
      +                             int key_length,
      +                             const char *javascript,
      +                             const bson_t *scope);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • javascript: A NULL-terminated UTF-8 encoded string containing the javascript fragment.

      • +
      • scope: Optional bson_t containing the scope for javascript.

      • +
      +
      +
      +

      Description

      +

      The bson_append_code_with_scope() function shall perform like bson_append_code() except it allows providing a scope to the javascript function in the form of a bson document.

      +

      If scope is NULL, this function appends an element with BSON type “code”, otherwise with BSON type “code with scope”.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending javascript and scope grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_date_time.html b/libbson/1.24.4/bson_append_date_time.html new file mode 100644 index 0000000000..8107bbecb7 --- /dev/null +++ b/libbson/1.24.4/bson_append_date_time.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_date_time() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_date_time()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_DATE_TIME(b, key, val) \
      +   bson_append_date_time (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_date_time (bson_t *bson,
      +                       const char *key,
      +                       int key_length,
      +                       int64_t value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: The date and time as specified in milliseconds since the UNIX epoch.

      • +
      +
      +
      +

      Description

      +

      The bson_append_date_time() function shall append a new element to a bson document containing a date and time with no timezone information. value is assumed to be in UTC format of milliseconds since the UNIX epoch. value MAY be negative.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_dbpointer.html b/libbson/1.24.4/bson_append_dbpointer.html new file mode 100644 index 0000000000..b612c0cd8d --- /dev/null +++ b/libbson/1.24.4/bson_append_dbpointer.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + bson_append_dbpointer() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_dbpointer()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_DBPOINTER(b, key, coll, oid) \
      +   bson_append_dbpointer (b, key, (int) strlen (key), coll, oid)
      +
      +bool
      +bson_append_dbpointer (bson_t *bson,
      +                       const char *key,
      +                       int key_length,
      +                       const char *collection,
      +                       const bson_oid_t *oid);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • collection: The target collection name.

      • +
      • oid: The target document identifier.

      • +
      +
      +
      +

      Description

      +
      +

      Warning

      +

      The dbpointer field type is DEPRECATED and should only be used when interacting with legacy systems.

      +
      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the array grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_decimal128.html b/libbson/1.24.4/bson_append_decimal128.html new file mode 100644 index 0000000000..c706b16cc9 --- /dev/null +++ b/libbson/1.24.4/bson_append_decimal128.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_decimal128() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_decimal128()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_DECIMAL128(b, key, val) \
      +   bson_append_decimal128 (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_decimal128 (bson_t *bson,
      +                        const char *key,
      +                        int key_length,
      +                        const bson_decimal128_t *value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: A bson_decimal128_t.

      • +
      +
      +
      +

      Description

      +

      The bson_append_decimal128() function shall append a new element to bson containing a Decimal 128.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_document.html b/libbson/1.24.4/bson_append_document.html new file mode 100644 index 0000000000..4a0d251fb4 --- /dev/null +++ b/libbson/1.24.4/bson_append_document.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_document() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_document()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_DOCUMENT(b, key, val) \
      +   bson_append_document (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_document (bson_t *bson,
      +                      const char *key,
      +                      int key_length,
      +                      const bson_t *value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: A bson_t containing the sub-document to append.

      • +
      +
      +
      +

      Description

      +

      The bson_append_document() function shall append child to bson using the specified key. The type of the field will be a document.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_document_begin.html b/libbson/1.24.4/bson_append_document_begin.html new file mode 100644 index 0000000000..bc0796f6cc --- /dev/null +++ b/libbson/1.24.4/bson_append_document_begin.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_append_document_begin() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_document_begin()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_DOCUMENT_BEGIN(b, key, child) \
      +   bson_append_document_begin (b, key, (int) strlen (key), child)
      +
      +bool
      +bson_append_document_begin (bson_t *bson,
      +                            const char *key,
      +                            int key_length,
      +                            bson_t *child);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • child: An uninitialized bson_t to be initialized as the sub-document.

      • +
      +
      +
      +

      Description

      +

      The bson_append_document_begin() function shall begin appending a sub-document to bson. Use child to add fields to the sub-document. When completed, call bson_append_document_end() to complete the element.

      +

      child MUST be an uninitialized bson_t to avoid leaking memory.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if bson must grow larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_document_end.html b/libbson/1.24.4/bson_append_document_end.html new file mode 100644 index 0000000000..694b71847b --- /dev/null +++ b/libbson/1.24.4/bson_append_document_end.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_append_document_end() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_document_end()

      +
      +

      Synopsis

      +
      bool
      +bson_append_document_end (bson_t *bson, bson_t *child);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_append_document_end() function shall complete the appending of a document with bson_append_document_begin(). child is invalid after calling this function.

      +
      +
      +

      Returns

      +

      Returns true if successful.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_double.html b/libbson/1.24.4/bson_append_double.html new file mode 100644 index 0000000000..c0ccb7e93f --- /dev/null +++ b/libbson/1.24.4/bson_append_double.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_double() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_double()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_DOUBLE(b, key, val) \
      +   bson_append_double (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_double (bson_t *bson,
      +                    const char *key,
      +                    int key_length,
      +                    double value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: A double value to append.

      • +
      +
      +
      +

      Description

      +

      The bson_append_double() function shall append a new element to a bson document of type double.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_int32.html b/libbson/1.24.4/bson_append_int32.html new file mode 100644 index 0000000000..94cb94ca35 --- /dev/null +++ b/libbson/1.24.4/bson_append_int32.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_int32() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_int32()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_INT32(b, key, val) \
      +   bson_append_int32 (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_int32 (bson_t *bson,
      +                   const char *key,
      +                   int key_length,
      +                   int32_t value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: An int32_t.

      • +
      +
      +
      +

      Description

      +

      The bson_append_int32() function shall append a new element to bson containing a 32-bit signed integer.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_int64.html b/libbson/1.24.4/bson_append_int64.html new file mode 100644 index 0000000000..8a2e96c2b8 --- /dev/null +++ b/libbson/1.24.4/bson_append_int64.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_int64() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_int64()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_INT64(b, key, val) \
      +   bson_append_int64 (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_int64 (bson_t *bson,
      +                   const char *key,
      +                   int key_length,
      +                   int64_t value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: An int64_t.

      • +
      +
      +
      +

      Description

      +

      The bson_append_int64() function shall append a new element to bson containing a 64-bit signed integer.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_iter.html b/libbson/1.24.4/bson_append_iter.html new file mode 100644 index 0000000000..1a1fdbe8cb --- /dev/null +++ b/libbson/1.24.4/bson_append_iter.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_iter() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_iter()

      +
      +

      Synopsis

      +
      bool
      +bson_append_iter (bson_t *bson,
      +                  const char *key,
      +                  int key_length,
      +                  const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: Optional field name. If NULL, uses bson_iter_key(iter).

      • +
      • key_length: The length of key or -1 to use strlen().

      • +
      • iter: A bson_iter_t located on the position of the element to append.

      • +
      +
      +
      +

      Description

      +

      Appends the value at the current position of iter to the document.

      +
      +
      +

      Returns

      +

      Returns true if successful; false if the operation would overflow the maximum document size or another invalid state is detected.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_maxkey.html b/libbson/1.24.4/bson_append_maxkey.html new file mode 100644 index 0000000000..ebf0e9f0d2 --- /dev/null +++ b/libbson/1.24.4/bson_append_maxkey.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_append_maxkey() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_maxkey()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_MAXKEY(b, key) \
      +   bson_append_maxkey (b, key, (int) strlen (key))
      +
      +bool
      +bson_append_maxkey (bson_t *bson, const char *key, int key_length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      +
      +
      +

      Description

      +

      The bson_append_maxkey() function shall append an element of type BSON_TYPE_MAXKEY to a bson document. This is primarily used in queries and unlikely to be used when storing a document to MongoDB.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_minkey.html b/libbson/1.24.4/bson_append_minkey.html new file mode 100644 index 0000000000..1012ba9586 --- /dev/null +++ b/libbson/1.24.4/bson_append_minkey.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_append_minkey() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_minkey()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_MINKEY(b, key) \
      +   bson_append_minkey (b, key, (int) strlen (key))
      +
      +bool
      +bson_append_minkey (bson_t *bson, const char *key, int key_length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      +
      +
      +

      Description

      +

      The bson_append_minkey() function shall append an element of type BSON_TYPE_MINKEY to a bson document. This is primarily used in queries and unlikely to be used when storing a document to MongoDB.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_now_utc.html b/libbson/1.24.4/bson_append_now_utc.html new file mode 100644 index 0000000000..d412e299a3 --- /dev/null +++ b/libbson/1.24.4/bson_append_now_utc.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_append_now_utc() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_now_utc()

      +
      +

      Synopsis

      +
      bool
      +bson_append_now_utc (bson_t *bson, const char *key, int key_length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      +
      +
      +

      Description

      +

      The bson_append_now_utc() function is a helper to get the current date and time in UTC and append it to bson as a BSON_TYPE_DATE_TIME element.

      +

      This function calls bson_append_date_time() internally.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_null.html b/libbson/1.24.4/bson_append_null.html new file mode 100644 index 0000000000..e800e18a44 --- /dev/null +++ b/libbson/1.24.4/bson_append_null.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_append_null() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_null()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_NULL(b, key) bson_append_null (b, key, (int) strlen (key))
      +
      +bool
      +bson_append_null (bson_t *bson, const char *key, int key_length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      +
      +
      +

      Description

      +

      The bson_append_null() function shall append a new element to bson of type BSON_TYPE_NULL.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_oid.html b/libbson/1.24.4/bson_append_oid.html new file mode 100644 index 0000000000..a258aa37a3 --- /dev/null +++ b/libbson/1.24.4/bson_append_oid.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_oid() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_oid()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_OID(b, key, val) \
      +   bson_append_oid (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_oid (bson_t *bson,
      +                 const char *key,
      +                 int key_length,
      +                 const bson_oid_t *oid);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • oid: A bson_oid_t.

      • +
      +
      +
      +

      Description

      +

      The bson_append_oid() function shall append a new element to bson of type BSON_TYPE_OID. oid MUST be a pointer to a bson_oid_t.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending oid grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_regex.html b/libbson/1.24.4/bson_append_regex.html new file mode 100644 index 0000000000..37d0dad804 --- /dev/null +++ b/libbson/1.24.4/bson_append_regex.html @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + bson_append_regex() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_regex()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_REGEX(b, key, val, opt) \
      +   bson_append_regex (b, key, (int) strlen (key), val, opt)
      +
      +bool
      +bson_append_regex (bson_t *bson,
      +                   const char *key,
      +                   int key_length,
      +                   const char *regex,
      +                   const char *options);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • regex: An ASCII string containing the regex.

      • +
      • options: An optional string containing the regex options as a string.

      • +
      +
      +
      +

      Description

      +

      Appends a new field to bson of type BSON_TYPE_REGEX. regex should be the regex string. options should contain the options for the regex.

      +

      Valid characters for options include:

      +
        +
      • 'i' for case-insensitive.

      • +
      • 'm' for multiple matching.

      • +
      • 'x' for verbose mode.

      • +
      • 'l' to make w and W locale dependent.

      • +
      • 's' for dotall mode (‘.’ matches everything)

      • +
      • 'u' to make w and W match unicode.

      • +
      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the regex grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_regex_w_len.html b/libbson/1.24.4/bson_append_regex_w_len.html new file mode 100644 index 0000000000..ad96496432 --- /dev/null +++ b/libbson/1.24.4/bson_append_regex_w_len.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + bson_append_regex_w_len() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_regex_w_len()

      +
      +

      Synopsis

      +
      bool
      +bson_append_regex_w_len (bson_t *bson,
      +                          const char *key,
      +                          int key_length,
      +                          const char *regex,
      +                          int regex_length,
      +                          const char *options);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • regex: An ASCII string containing the regex.

      • +
      • regex_length: The length of regex in bytes, or -1 to determine the length with strlen().

      • +
      • options: An optional string containing the regex options as a string.

      • +
      +
      +
      +

      Description

      +

      Appends a new field to bson of type BSON_TYPE_REGEX. regex should be the regex string. options should contain the options for the regex.

      +

      Valid characters for options include:

      +
        +
      • 'i' for case-insensitive.

      • +
      • 'm' for multiple matching.

      • +
      • 'x' for verbose mode.

      • +
      • 'l' to make w and W locale dependent.

      • +
      • 's' for dotall mode (‘.’ matches everything)

      • +
      • 'u' to make w and W match unicode.

      • +
      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the regex grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_symbol.html b/libbson/1.24.4/bson_append_symbol.html new file mode 100644 index 0000000000..bc0670b37e --- /dev/null +++ b/libbson/1.24.4/bson_append_symbol.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_append_symbol() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_symbol()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_SYMBOL(b, key, val) \
      +   bson_append_symbol (b, key, (int) strlen (key), val, (int) strlen (val))
      +
      +bool
      +bson_append_symbol (bson_t *bson,
      +                    const char *key,
      +                    int key_length,
      +                    const char *value,
      +                    int length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: The symbol.

      • +
      • length: A length of symbol in bytes, or -1 to determine the length with strlen().

      • +
      +
      +
      +

      Description

      +

      Appends a new field to bson of type BSON_TYPE_SYMBOL. This BSON type is deprecated and should not be used in new code.

      +

      Due to legacy behavior, passing NULL for value appends a null value, not a symbol value. To append a null value directly, prefer using bson_append_null().

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_time_t.html b/libbson/1.24.4/bson_append_time_t.html new file mode 100644 index 0000000000..268dc104fb --- /dev/null +++ b/libbson/1.24.4/bson_append_time_t.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_time_t() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_time_t()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_TIME_T(b, key, val) \
      +   bson_append_time_t (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_time_t (bson_t *bson,
      +                    const char *key,
      +                    int key_length,
      +                    time_t value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: A time_t.

      • +
      +
      +
      +

      Description

      +

      The bson_append_time_t() function is a helper that takes a time_t instead of milliseconds since the UNIX epoch.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_timestamp.html b/libbson/1.24.4/bson_append_timestamp.html new file mode 100644 index 0000000000..52a73c75c7 --- /dev/null +++ b/libbson/1.24.4/bson_append_timestamp.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + bson_append_timestamp() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_timestamp()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_TIMESTAMP(b, key, val, inc) \
      +   bson_append_timestamp (b, key, (int) strlen (key), val, inc)
      +
      +bool
      +bson_append_timestamp (bson_t *bson,
      +                       const char *key,
      +                       int key_length,
      +                       uint32_t timestamp,
      +                       uint32_t increment);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • timestamp: A uint32_t.

      • +
      • increment: A uint32_t.

      • +
      +
      +
      +

      Description

      +

      This function is not similar in functionality to bson_append_date_time(). Timestamp elements are different in that they include only second precision and an increment field.

      +

      They are primarily used for intra-MongoDB server communication.

      +

      The bson_append_timestamp() function shall append a new element of type BSON_TYPE_TIMESTAMP.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_timeval.html b/libbson/1.24.4/bson_append_timeval.html new file mode 100644 index 0000000000..7d6e39dda9 --- /dev/null +++ b/libbson/1.24.4/bson_append_timeval.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_timeval() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_timeval()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_TIMEVAL(b, key, val) \
      +   bson_append_timeval (b, key, (int) strlen (key), val)
      +
      +bool
      +bson_append_timeval (bson_t *bson,
      +                     const char *key,
      +                     int key_length,
      +                     struct timeval *value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: A struct timeval.

      • +
      +
      +
      +

      Description

      +

      The bson_append_timeval() function is a helper that takes a struct timeval instead of milliseconds since the UNIX epoch.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_undefined.html b/libbson/1.24.4/bson_append_undefined.html new file mode 100644 index 0000000000..9897c2bcea --- /dev/null +++ b/libbson/1.24.4/bson_append_undefined.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_append_undefined() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_undefined()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_UNDEFINED(b, key) \
      +   bson_append_undefined (b, key, (int) strlen (key))
      +
      +bool
      +bson_append_undefined (bson_t *bson, const char *key, int key_length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      +
      +
      +

      Description

      +

      The bson_append_undefined() function shall append a new element to bson of type BSON_TYPE_UNDEFINED. Undefined is common in Javascript. However, this element type is deprecated and should not be used in new code.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_utf8.html b/libbson/1.24.4/bson_append_utf8.html new file mode 100644 index 0000000000..4b20c5e2eb --- /dev/null +++ b/libbson/1.24.4/bson_append_utf8.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_append_utf8() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_utf8()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_UTF8(b, key, val) \
      +   bson_append_utf8 (b, key, (int) strlen (key), val, (int) strlen (val))
      +
      +bool
      +bson_append_utf8 (bson_t *bson,
      +                  const char *key,
      +                  int key_length,
      +                  const char *value,
      +                  int length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: A UTF-8 encoded string.

      • +
      • length: The number of bytes in value excluding the trailing \0, or -1 to determine the length with strlen().

      • +
      +
      +
      +

      Description

      +

      The bson_append_utf8() function shall append a UTF-8 encoded string to bson.

      +

      value MUST be valid UTF-8.

      +

      Some UTF-8 implementations allow for \0 to be contained within the string (excluding the termination \0. This is allowed, but remember that it could cause issues with communicating with external systems that do not support it.

      +

      It is suggested to use modified UTF-8 which uses a 2 byte representation for embedded \0 within the string. This will allow these UTF-8 encoded strings to used with many libc functions.

      +

      Due to legacy behavior, passing NULL for value appends a null value, not a UTF8 value. To append a null value directly, prefer using bson_append_null().

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_append_value.html b/libbson/1.24.4/bson_append_value.html new file mode 100644 index 0000000000..d2bf85f12d --- /dev/null +++ b/libbson/1.24.4/bson_append_value.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_value() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_append_value()

      +
      +

      Synopsis

      +
      #define BSON_APPEND_VALUE(b, key, val) \
      +   bson_append_value (b, key, (int) strlen (key), (val))
      +
      +bool
      +bson_append_value (bson_t *bson,
      +                   const char *key,
      +                   int key_length,
      +                   const bson_value_t *value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: An ASCII C string containing the name of the field.

      • +
      • key_length: The length of key in bytes, or -1 to determine the length with strlen().

      • +
      • value: A bson_value_t.

      • +
      +
      +
      +

      Description

      +

      Appends a new field to bson by determining the boxed type in value. This is useful if you want to copy fields between documents but do not know the field type until runtime.

      +
      +
      +

      Returns

      +

      Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_array_as_canonical_extended_json.html b/libbson/1.24.4/bson_array_as_canonical_extended_json.html new file mode 100644 index 0000000000..f9ce985395 --- /dev/null +++ b/libbson/1.24.4/bson_array_as_canonical_extended_json.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + bson_array_as_canonical_extended_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_array_as_canonical_extended_json()

      +
      +

      Synopsis

      +
      char *
      +bson_array_as_canonical_extended_json (const bson_t *bson, size_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • length: An optional location for the length of the resulting string.

      • +
      +
      +
      +

      Description

      +

      The bson_array_as_canonical_extended_json() encodes bson as a UTF-8 string in the canonical MongoDB Extended JSON format, except the outermost element is encoded as a JSON array, rather than a JSON document.

      +

      The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

      +

      If non-NULL, length will be set to the length of the result in bytes.

      +
      +
      +

      Returns

      +

      If successful, a newly allocated UTF-8 encoded string and length is set.

      +

      Upon failure, NULL is returned.

      +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +
      +int main ()
      +{
      +   bson_t bson;
      +   char *str;
      +
      +   bson_init (&bson);
      +   /* BSON array is a normal BSON document with integer values for the keys,
      +    * starting with 0 and continuing sequentially
      +    */
      +   BSON_APPEND_INT32 (&bson, "0", 1);
      +   BSON_APPEND_UTF8 (&bson, "1", "bar");
      +
      +   str = bson_array_as_canonical_extended_json (&bson, NULL);
      +   /* Prints
      +    * [ { "$numberInt" : 1 }, "bar" ]
      +    */
      +   printf ("%s\n", str);
      +   bson_free (str);
      +
      +   bson_destroy (&bson);
      +}
      +
      +
      +
      +

      See also

      +
      +
      :symbol: bson_array_as_canonical_extended_json()
      +
      + +
      +
      :symbol: bson_array_as_relaxed_extended_json()
      +
      + + + + +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_array_as_json.html b/libbson/1.24.4/bson_array_as_json.html new file mode 100644 index 0000000000..f30060dc94 --- /dev/null +++ b/libbson/1.24.4/bson_array_as_json.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + bson_array_as_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_array_as_json()

      +
      +

      Synopsis

      +
      char *
      +bson_array_as_json (const bson_t *bson, size_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • length: An optional location for the length of the resulting string.

      • +
      +
      +
      +

      Description

      +

      The bson_array_as_json() function shall encode bson as a UTF-8 +string using libbson’s legacy JSON format, except the outermost element is +encoded as a JSON array, rather than a JSON document. This function is +superseded by bson_array_as_canonical_extended_json() and +bson_array_as_relaxed_extended_json(), which use the same +MongoDB Extended JSON format as all other MongoDB drivers. +The caller is responsible for freeing the resulting UTF-8 encoded string by +calling bson_free() with the result.

      +

      If non-NULL, length will be set to the length of the result in bytes.

      +
      +
      +

      Returns

      +

      If successful, a newly allocated UTF-8 encoded string and length is set.

      +

      Upon failure, NULL is returned.

      +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +
      +int main ()
      +{
      +   bson_t bson;
      +   char *str;
      +
      +   bson_init (&bson);
      +   /* BSON array is a normal BSON document with integer values for the keys,
      +    * starting with 0 and continuing sequentially
      +    */
      +   BSON_APPEND_UTF8 (&bson, "0", "foo");
      +   BSON_APPEND_UTF8 (&bson, "1", "bar");
      +
      +   str = bson_array_as_json (&bson, NULL);
      +   /* Prints
      +    * [ "foo", "bar" ]
      +    */
      +   printf ("%s\n", str);
      +   bson_free (str);
      +
      +   bson_destroy (&bson);
      +}
      +
      +
      +
      +

      See also

      +
      +
      :symbol: bson_array_as_canonical_extended_json()
      +
      + +
      +
      :symbol: bson_array_as_relaxed_extended_json()
      +
      + + + + +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_array_as_relaxed_extended_json.html b/libbson/1.24.4/bson_array_as_relaxed_extended_json.html new file mode 100644 index 0000000000..bf1b81f074 --- /dev/null +++ b/libbson/1.24.4/bson_array_as_relaxed_extended_json.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + bson_array_as_relaxed_extended_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_array_as_relaxed_extended_json()

      +
      +

      Synopsis

      +
      char *
      +bson_array_as_relaxed_extended_json (const bson_t *bson, size_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • length: An optional location for the length of the resulting string.

      • +
      +
      +
      +

      Description

      +

      The bson_as_relaxed_extended_json() encodes bson as a UTF-8 string in the relaxed MongoDB Extended JSON format, except the outermost element is encoded as a JSON array, rather than a JSON document.

      +

      The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

      +

      If non-NULL, length will be set to the length of the result in bytes.

      +
      +
      +

      Returns

      +

      If successful, a newly allocated UTF-8 encoded string and length is set.

      +

      Upon failure, NULL is returned.

      +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +
      +int main ()
      +{
      +   bson_t bson;
      +   char *str;
      +
      +   bson_init (&bson);
      +   /* BSON array is a normal BSON document with integer values for the keys,
      +    * starting with 0 and continuing sequentially
      +    */
      +   BSON_APPEND_DOUBLE (&bson, "0", 3.14);
      +   BSON_APPEND_UTF8 (&bson, "1", "bar");
      +
      +   str = bson_array_as_relaxed_extended_json (&bson, NULL);
      +   /* Prints
      +    * [ 3.14, "bar" ]
      +    */
      +   printf ("%s\n", str);
      +   bson_free (str);
      +
      +   bson_destroy (&bson);
      +}
      +
      +
      +
      +

      See also

      +
      +
      :symbol: bson_array_as_canonical_extended_json()
      +
      + +
      +
      :symbol: bson_array_as_relaxed_extended_json()
      +
      + + + + +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_as_canonical_extended_json.html b/libbson/1.24.4/bson_as_canonical_extended_json.html new file mode 100644 index 0000000000..58eef43e9b --- /dev/null +++ b/libbson/1.24.4/bson_as_canonical_extended_json.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + bson_as_canonical_extended_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_as_canonical_extended_json()

      +
      +

      Synopsis

      +
      char *
      +bson_as_canonical_extended_json (const bson_t *bson, size_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • length: An optional location for the length of the resulting string.

      • +
      +
      +
      +

      Description

      +

      The bson_as_canonical_extended_json() encodes bson as a UTF-8 string in the canonical MongoDB Extended JSON format.

      +

      The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

      +

      If non-NULL, length will be set to the length of the result in bytes.

      +
      +
      +

      Returns

      +

      If successful, a newly allocated UTF-8 encoded string and length is set.

      +

      Upon failure, NULL is returned.

      +
      +
      +

      Example

      +
      char *str = bson_as_canonical_extended_json (doc, NULL);
      +printf ("%s\n", str);
      +bson_free (str);
      +
      +
      +
      +

      See also

      +
      +
      :symbol: bson_array_as_canonical_extended_json()
      +
      + +
      +
      :symbol: bson_array_as_relaxed_extended_json()
      +
      + + + + +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_as_json.html b/libbson/1.24.4/bson_as_json.html new file mode 100644 index 0000000000..250ddc4fed --- /dev/null +++ b/libbson/1.24.4/bson_as_json.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + bson_as_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_as_json()

      +
      +

      Synopsis

      +
      char *
      +bson_as_json (const bson_t *bson, size_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • length: An optional location for the length of the resulting string.

      • +
      +
      +
      +

      Description

      +

      The bson_as_json() function shall encode bson as a UTF-8 string using libbson’s legacy JSON format. This function is superseded by bson_as_canonical_extended_json() and bson_as_relaxed_extended_json(), which use the same MongoDB Extended JSON format as all other MongoDB drivers.

      +

      The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

      +

      If non-NULL, length will be set to the length of the result in bytes.

      +
      +
      +

      Returns

      +

      If successful, a newly allocated UTF-8 encoded string and length is set.

      +

      Upon failure, NULL is returned.

      +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +
      +int main ()
      +{
      +   bson_t bson;
      +   char *str;
      +
      +   bson_init (&bson);
      +   BSON_APPEND_UTF8 (&bson, "0", "foo");
      +   BSON_APPEND_UTF8 (&bson, "1", "bar");
      +
      +   str = bson_as_json (&bson, NULL);
      +   /* Prints
      +    * { "0" : "foo", "1" : "bar" }
      +    */
      +   printf ("%s\n", str);
      +   bson_free (str);
      +
      +   bson_destroy (&bson);
      +}
      +
      +
      +
      +

      See also

      +
      +
      :symbol: bson_array_as_canonical_extended_json()
      +
      + +
      +
      :symbol: bson_array_as_relaxed_extended_json()
      +
      + + + + +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_as_json_with_opts.html b/libbson/1.24.4/bson_as_json_with_opts.html new file mode 100644 index 0000000000..b7595fc966 --- /dev/null +++ b/libbson/1.24.4/bson_as_json_with_opts.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + bson_as_json_with_opts() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_as_json_with_opts()

      +
      +

      Synopsis

      +
      char *
      +bson_as_json_with_opts (const bson_t *bson, size_t *length, const bson_json_opts_t *opts);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • length: An optional location for the length of the resulting string.

      • +
      • opts: A bson_json_opts_t.

      • +
      +
      +
      +

      Description

      +

      The bson_as_json_with_opts() encodes bson as a UTF-8 string in the MongoDB Extended JSON format.

      +

      The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

      +

      If non-NULL, length will be set to the length of the result in bytes.

      +

      The opts structure is used to pass options for the encoding process. Please refer to the documentation of bson_json_opts_t for more details.

      +
      +
      +

      Returns

      +

      If successful, a newly allocated UTF-8 encoded string and length is set.

      +

      Upon failure, NULL is returned.

      +
      +
      +

      Example

      +
      bson_json_opts_t *opts = bson_json_opts_new (BSON_JSON_MODE_CANONICAL, BSON_MAX_LEN_UNLIMITED);
      +char *str = bson_as_json_with_opts (doc, NULL, opts);
      +printf ("%s\n", str);
      +bson_free (str);
      +bson_json_opts_destroy (opts);
      +
      +
      +
      +

      See also

      +
      +
      :symbol: bson_array_as_canonical_extended_json()
      +
      + +
      +
      :symbol: bson_array_as_relaxed_extended_json()
      +
      + + + + +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_as_relaxed_extended_json.html b/libbson/1.24.4/bson_as_relaxed_extended_json.html new file mode 100644 index 0000000000..ecac7a6254 --- /dev/null +++ b/libbson/1.24.4/bson_as_relaxed_extended_json.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + bson_as_relaxed_extended_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_as_relaxed_extended_json()

      +
      +

      Synopsis

      +
      char *
      +bson_as_relaxed_extended_json (const bson_t *bson, size_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • length: An optional location for the length of the resulting string.

      • +
      +
      +
      +

      Description

      +

      The bson_as_relaxed_extended_json() encodes bson as a UTF-8 string in the relaxed MongoDB Extended JSON format.

      +

      The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

      +

      If non-NULL, length will be set to the length of the result in bytes.

      +
      +
      +

      Returns

      +

      If successful, a newly allocated UTF-8 encoded string and length is set.

      +

      Upon failure, NULL is returned.

      +
      +
      +

      Example

      +
      char *str = bson_as_relaxed_extended_json (doc, NULL);
      +printf ("%s\n", str);
      +bson_free (str);
      +
      +
      +
      +

      See also

      +
      +
      :symbol: bson_array_as_canonical_extended_json()
      +
      + +
      +
      :symbol: bson_array_as_relaxed_extended_json()
      +
      + + + + +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_ascii_strtoll.html b/libbson/1.24.4/bson_ascii_strtoll.html new file mode 100644 index 0000000000..7cf7309535 --- /dev/null +++ b/libbson/1.24.4/bson_ascii_strtoll.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_ascii_strtoll() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_ascii_strtoll()

      +
      +

      Synopsis

      +
      int64_t
      +bson_ascii_strtoll (const char *str, char **endptr, int base);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • str: The string to convert.

      • +
      • endptr: Address of the first invalid character of str, or null.

      • +
      • base: The base to use for the conversion.

      • +
      +
      +
      +

      Description

      +

      A portable version of strtoll().

      +

      Converts a string to a 64-bit signed integer according to the given base, +which must be 16, 10, or 8. Leading whitespace will be ignored.

      +

      If base is 0 is passed in, the base is inferred from the string’s leading +characters. Base-16 numbers start with “0x” or “0X”, base-8 numbers start with +“0”, base-10 numbers start with a digit from 1 to 9.

      +

      If endptr is not NULL, it will be assigned the address of the first invalid +character of str, or its null terminating byte if the entire string was valid.

      +

      If an invalid value is encountered, errno will be set to EINVAL and zero will +be returned. If the number is out of range, errno is set to ERANGE and +LLONG_MAX or LLONG_MIN is returned.

      +
      +
      +

      Returns

      +

      The result of the conversion.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_check_version.html b/libbson/1.24.4/bson_check_version.html new file mode 100644 index 0000000000..538416e522 --- /dev/null +++ b/libbson/1.24.4/bson_check_version.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_check_version() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_check_version()

      +
      +

      Synopsis

      +
      bool
      +bson_check_version (int required_major, int required_minor, int required_micro);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • required_major: The minimum major version required.

      • +
      • required_minor: The minimum minor version required.

      • +
      • required_micro: The minimum micro version required.

      • +
      +
      +
      +

      Description

      +

      Check at runtime if this release of libbson meets a required version.

      +
      +
      +

      Returns

      +

      True if libbson’s version is greater than or equal to the required version.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_compare.html b/libbson/1.24.4/bson_compare.html new file mode 100644 index 0000000000..48b44e14a0 --- /dev/null +++ b/libbson/1.24.4/bson_compare.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_compare() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_compare()

      +
      +

      Synopsis

      +
      int
      +bson_compare (const bson_t *bson, const bson_t *other);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_compare() function shall compare two bson documents for equality.

      +

      This can be useful in conjunction with _qsort()_.

      +

      If equal, 0 is returned.

      +
      +

      Tip

      +

      This function uses _memcmp()_ internally, so the semantics are the same.

      +
      +
      +
      +

      Returns

      +

      less than zero, zero, or greater than zero in qsort() style.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_concat.html b/libbson/1.24.4/bson_concat.html new file mode 100644 index 0000000000..7b07416f12 --- /dev/null +++ b/libbson/1.24.4/bson_concat.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + bson_concat() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_concat()

      +
      +

      Synopsis

      +
      bool
      +bson_concat (bson_t *dst, const bson_t *src);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_concat() function shall append the contents of src to dst.

      +
      +
      +

      Returns

      +

      Returns true if successful; false if the operation would overflow the maximum document size or another invalid state is detected.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_context_destroy.html b/libbson/1.24.4/bson_context_destroy.html new file mode 100644 index 0000000000..ec8c793bc9 --- /dev/null +++ b/libbson/1.24.4/bson_context_destroy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_context_destroy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_context_destroy()

      +
      +

      Synopsis

      +
      void
      +bson_context_destroy (bson_context_t *context);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_context_destroy() function shall release all resources associated with context. Does nothing if context is NULL.

      +

      This should be called when you are no longer using a bson_context_t that you have allocated with bson_context_new().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_context_get_default.html b/libbson/1.24.4/bson_context_get_default.html new file mode 100644 index 0000000000..5d7d93cdfe --- /dev/null +++ b/libbson/1.24.4/bson_context_get_default.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + bson_context_get_default() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_context_get_default()

      +
      +

      Synopsis

      +
      bson_context_t *
      +bson_context_get_default (void);
      +
      +
      +
      +
      +

      Returns

      +

      The bson_context_get_default() function shall return the default bson_context_t for the process. +This context is created with the flags BSON_CONTEXT_THREAD_SAFE and BSON_CONTEXT_DISABLE_PID_CACHE.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_context_new.html b/libbson/1.24.4/bson_context_new.html new file mode 100644 index 0000000000..495047fc82 --- /dev/null +++ b/libbson/1.24.4/bson_context_new.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_context_new() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_context_new()

      +
      +

      Synopsis

      +
      bson_context_t *
      +bson_context_new (bson_context_flags_t flags);
      +
      +
      +
      +
      +

      Parameters

      + +

      The following flags may be used: +* BSON_CONTEXT_NONE meaning creating ObjectIDs with this context is not a thread-safe operation. +* BSON_CONTEXT_DISABLE_PID_CACHE meaning creating ObjectIDs will also check if the process has +changed by calling getpid() on every ObjectID generation.

      +

      The following flags are deprecated and have no effect:

      +
        +
      • BSON_CONTEXT_DISABLE_HOST_CACHE

      • +
      • BSON_CONTEXT_THREAD_SAFE

      • +
      • BSON_CONTEXT_USE_TASK_ID

      • +
      +
      +
      +

      Description

      +

      Creates a new bson_context_t. This is rarely needed as bson_context_get_default() serves most use-cases.

      +
      +
      +

      Returns

      +

      A newly allocated bson_context_t that should be freed with bson_context_destroy().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_context_t.html b/libbson/1.24.4/bson_context_t.html new file mode 100644 index 0000000000..62aec43eac --- /dev/null +++ b/libbson/1.24.4/bson_context_t.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + bson_context_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_context_t

      +

      BSON OID Generation Context

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef enum {
      +  BSON_CONTEXT_NONE = 0,
      +  BSON_CONTEXT_DISABLE_PID_CACHE = (1 << 2),
      +} bson_context_flags_t;
      +
      +typedef struct _bson_context_t bson_context_t;
      +
      +bson_context_t *
      +bson_context_get_default (void) BSON_GNUC_CONST;
      +bson_context_t *
      +bson_context_new (bson_context_flags_t flags);
      +void
      +bson_context_destroy (bson_context_t *context);
      +
      +
      +
      +
      +

      Description

      +

      The bson_context_t structure is context for generation of BSON Object +IDs. This context allows overriding behavior of generating ObjectIDs. The flags +BSON_CONTEXT_NONE, BSON_CONTEXT_THREAD_SAFE, and BSON_CONTEXT_DISABLE_PID_CACHE +are the only ones used. The others have no effect.

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_context_t *ctx = NULL;
      +   bson_oid_t oid;
      +
      +   /* use default context, via bson_context_get_default() */
      +   bson_oid_init (&oid, NULL);
      +
      +   /* specify a local context for additional control */
      +   ctx = bson_context_new (BSON_CONTEXT_NONE);
      +   bson_oid_init (&oid, ctx);
      +
      +   bson_context_destroy (ctx);
      +
      +   return 0;
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_copy.html b/libbson/1.24.4/bson_copy.html new file mode 100644 index 0000000000..34e5c37ab1 --- /dev/null +++ b/libbson/1.24.4/bson_copy.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_copy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_copy()

      +
      +

      Synopsis

      +
      bson_t *
      +bson_copy (const bson_t *bson);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_copy() function shall copy the contents of a bson document into a new bson_t.

      +

      The resulting bson_t should be freed with bson_destroy().

      +
      +
      +

      Returns

      +

      A newly allocated bson_t that should be freed with bson_destroy().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_copy_to.html b/libbson/1.24.4/bson_copy_to.html new file mode 100644 index 0000000000..9e2204cad3 --- /dev/null +++ b/libbson/1.24.4/bson_copy_to.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_copy_to() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_copy_to()

      +
      +

      Synopsis

      +
      void
      +bson_copy_to (const bson_t *src, bson_t *dst);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_copy_to() function shall initialize dst with a copy of the contents of src.

      +

      dst MUST be an uninitialized bson_t to avoid leaking memory.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_copy_to_excluding.html b/libbson/1.24.4/bson_copy_to_excluding.html new file mode 100644 index 0000000000..80f87cb7d3 --- /dev/null +++ b/libbson/1.24.4/bson_copy_to_excluding.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_copy_to_excluding() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_copy_to_excluding()

      +
      +

      Warning

      +
      +

      Deprecated since version 1.1.0: This function is deprecated and should not be used in new code.

      +

      Please use bson_copy_to_excluding_noinit() in new code.

      +
      +
      +
      +

      Synopsis

      +
      void
      +bson_copy_to_excluding (const bson_t *src,
      +                        bson_t *dst,
      +                        const char *first_exclude,
      +                        ...) BSON_GNUC_NULL_TERMINATED
      +   BSON_GNUC_DEPRECATED_FOR (bson_copy_to_excluding_noinit);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • src: A bson_t.

      • +
      • dst: A bson_t.

      • +
      • first_exclude: The first field name to exclude.

      • +
      +
      +
      +

      Description

      +

      The bson_copy_to_excluding() function shall copy all fields from +src to dst except those specified by the variadic, NULL terminated list +of keys starting from first_exclude.

      +
      +

      Warning

      +

      bson_init() is called on dst.

      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_copy_to_excluding_noinit.html b/libbson/1.24.4/bson_copy_to_excluding_noinit.html new file mode 100644 index 0000000000..d340c0890b --- /dev/null +++ b/libbson/1.24.4/bson_copy_to_excluding_noinit.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + bson_copy_to_excluding_noinit() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_copy_to_excluding_noinit()

      +
      +

      Synopsis

      +
      void
      +bson_copy_to_excluding_noinit (const bson_t *src,
      +                               bson_t *dst,
      +                               const char *first_exclude,
      +                               ...) BSON_GNUC_NULL_TERMINATED;
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • src: A bson_t.

      • +
      • dst: A bson_t.

      • +
      • first_exclude: The first field name to exclude.

      • +
      +
      +
      +

      Description

      +

      The bson_copy_to_excluding_noinit() function shall copy all fields +from src to dst except those specified by the variadic, NULL terminated +list of keys starting from first_exclude. +Works the same way as bson_copy_to_excluding(), except does not call +bson_init() on dst. +This function should be preferred in new code over bson_copy_to_excluding().

      +
      +

      Warning

      +

      This is generally not needed except in very special situations.

      +
      +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +
      +int main ()
      +{
      +   bson_t bson;
      +   bson_t bson2;
      +   char *str;
      +
      +   bson_init (&bson);
      +   bson_append_int32 (&bson, "a", 1, 1);
      +   bson_append_int32 (&bson, "b", 1, 2);
      +   bson_append_int32 (&bson, "c", 1, 2);
      +
      +   bson_init (&bson2);
      +   bson_copy_to_excluding_noinit (&bson, &bson2, "b", NULL);
      +
      +   str = bson_as_json (&bson2, NULL);
      +   /* Prints
      +    * { "a" : 1, "c" : 2 }
      +    */
      +   printf ("%s\n", str);
      +   bson_free (str);
      +
      +   bson_destroy (&bson);
      +   bson_destroy (&bson2);
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_copy_to_excluding_noinit_va.html b/libbson/1.24.4/bson_copy_to_excluding_noinit_va.html new file mode 100644 index 0000000000..5e176789f5 --- /dev/null +++ b/libbson/1.24.4/bson_copy_to_excluding_noinit_va.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_copy_to_excluding_noinit_va() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_copy_to_excluding_noinit_va()

      +
      +

      Synopsis

      +
      void
      +bson_copy_to_excluding_noinit_va (const bson_t *src,
      +                                  bson_t *dst,
      +                                  const char *first_exclude,
      +                                  va_list args);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • src: A bson_t.

      • +
      • dst: A bson_t.

      • +
      • first_exclude: The first field name to exclude.

      • +
      • args: A va_list.

      • +
      +
      +
      +

      Description

      +

      The bson_copy_to_excluding_noinit_va() function shall copy all fields from src to dst except those specified by first_exclude and args.

      +

      This method works the same way as bson_copy_to_excluding_noinit(), except it takes a va_list. This method does not call bson_init() on dst.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_count_keys.html b/libbson/1.24.4/bson_count_keys.html new file mode 100644 index 0000000000..11b6c9e079 --- /dev/null +++ b/libbson/1.24.4/bson_count_keys.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_count_keys() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_count_keys()

      +
      +

      Synopsis

      +
      uint32_t
      +bson_count_keys (const bson_t *bson);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_count_keys() function shall count the number of elements within bson.

      +
      +
      +

      Returns

      +

      A positive integer or zero.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_decimal128_from_string.html b/libbson/1.24.4/bson_decimal128_from_string.html new file mode 100644 index 0000000000..5b60e239d4 --- /dev/null +++ b/libbson/1.24.4/bson_decimal128_from_string.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + bson_decimal128_from_string() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_decimal128_from_string()

      +
      +

      Synopsis

      +
      bool
      +bson_decimal128_from_string (const char *string, bson_decimal128_t *dec);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Parses the string containing ascii encoded Decimal128 and initialize the bytes +in dec. See the Decimal128 specification +for the exact string format.

      +
      +
      +

      Returns

      +

      Returns true if valid Decimal128 string was provided, otherwise false +and dec will be set to NaN.

      +
      +
      +

      Example

      +
      bson_decimal128_t dec;
      +bson_decimal128_from_string ("1.00", &dec);
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_decimal128_from_string_w_len.html b/libbson/1.24.4/bson_decimal128_from_string_w_len.html new file mode 100644 index 0000000000..cd3d5cc3cb --- /dev/null +++ b/libbson/1.24.4/bson_decimal128_from_string_w_len.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_decimal128_from_string_w_len() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_decimal128_from_string_w_len()

      +
      +

      Synopsis

      +
      bool
      +bson_decimal128_from_string_w_len (const char *string,
      +                                   int len,
      +                                   bson_decimal128_t *dec);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • string: A string containing ASCII encoded Decimal128.

      • +
      • len: The length of string in bytes, or -1 meaning the string is null-terminated.

      • +
      • dec: A bson_decimal128_t.

      • +
      +
      +
      +

      Description

      +

      Parses the string containing ascii encoded Decimal128 and initialize the bytes +in dec. See the Decimal128 specification +for the exact string format.

      +
      +
      +

      Returns

      +

      Returns true if valid Decimal128 string was provided, otherwise false +and dec will be set to NaN.

      +
      +
      +

      Example

      +
      bson_decimal128_t dec;
      +bson_decimal128_from_string_w_len ("1.00", 4, &dec);
      +bson_decimal128_from_string_w_len ("1.00", -1, &dec);
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_decimal128_t.html b/libbson/1.24.4/bson_decimal128_t.html new file mode 100644 index 0000000000..dcb715cfe2 --- /dev/null +++ b/libbson/1.24.4/bson_decimal128_t.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + bson_decimal128_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_decimal128_t

      +

      BSON Decimal128 Abstraction

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +#define BSON_DECIMAL128_STRING 43
      +#define BSON_DECIMAL128_INF "Infinity"
      +#define BSON_DECIMAL128_NAN "NaN"
      +
      +typedef struct {
      +#if BSON_BYTE_ORDER == BSON_LITTLE_ENDIAN
      +   uint64_t low;
      +   uint64_t high;
      +#elif BSON_BYTE_ORDER == BSON_BIG_ENDIAN
      +   uint64_t high;
      +   uint64_t low;
      +#endif
      +} bson_decimal128_t;
      +
      +
      +
      +
      +

      Description

      +

      The bson_decimal128_t structure represents the IEEE-754 Decimal128 +data type. The type bson_decimal128_t is an aggregate that contains two +uint64_ts, named high and low. The declaration and layout order +between them depends on the endian order of the target platform: low will +always correspond to the low-order bits of the Decimal128 object, while high +corresponds to the high-order bits. The bson_decimal128_t always has a size +of sixteen (16), and can be bit-cast to/from a _Decimal128.

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +#include <stdio.h>
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   char string[BSON_DECIMAL128_STRING];
      +   bson_decimal128_t decimal128;
      +
      +   bson_decimal128_from_string ("100.00", &decimal128);
      +   bson_decimal128_to_string (&decimal128, string);
      +   printf ("Decimal128 value: %s\n", string);
      +
      +   return 0;
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_decimal128_to_string.html b/libbson/1.24.4/bson_decimal128_to_string.html new file mode 100644 index 0000000000..51f24596be --- /dev/null +++ b/libbson/1.24.4/bson_decimal128_to_string.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_decimal128_to_string() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_decimal128_to_string()

      +
      +

      Synopsis

      +
      void
      +bson_decimal128_to_string (const bson_decimal128_t *dec, char *str);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • dec: A bson_decimal128_t.

      • +
      • str: A location of length BSON_DECIMAL128_STRING for the resulting string.

      • +
      +
      +
      +

      Description

      +

      Converts dec into a printable string.

      +
      +
      +

      Example

      +
      char decimal128_string[BSON_DECIMAL128_STRING];
      +bson_decimal128_to_string (&decimal128t, decimal128_string);
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_destroy.html b/libbson/1.24.4/bson_destroy.html new file mode 100644 index 0000000000..849c492192 --- /dev/null +++ b/libbson/1.24.4/bson_destroy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_destroy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_destroy()

      +
      +

      Synopsis

      +
      void
      +bson_destroy (bson_t *bson);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_destroy() function shall free an allocated bson_t structure. Does nothing if bson is NULL.

      +

      This function should always be called when you are done with a bson_t unless otherwise specified.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_destroy_with_steal.html b/libbson/1.24.4/bson_destroy_with_steal.html new file mode 100644 index 0000000000..19c67137a3 --- /dev/null +++ b/libbson/1.24.4/bson_destroy_with_steal.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + bson_destroy_with_steal() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_destroy_with_steal()

      +
      +

      Synopsis

      +
      uint8_t *
      +bson_destroy_with_steal (bson_t *bson, bool steal, uint32_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • steal: A bool indicating if the underlying buffer should be stolen.

      • +
      • length: A location for storing the resulting buffer length.

      • +
      +
      +
      +

      Description

      +

      The bson_destroy_with_steal() function shall destroy a bson_t structure but return the underlying buffer instead of freeing it. If steal is false, this is equivalent to calling bson_destroy(). It is a programming error to call this function on a bson_t that is not a top-level bson_t, such as those initialized with bson_append_document_begin(), bson_append_array_begin(), and bson_writer_begin().

      +
      +
      +

      Returns

      +

      bson_destroy_with_steal() shall return a buffer containing the contents of the bson_t if steal is non-zero. This should be freed with bson_free() when no longer in use. length will be set to the length of the bson document if non-NULL.

      +
      +

      See also

      +
      +
      bson_steal(), a higher-level function that efficiently transfers the contents of one bson_t to another.
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_equal.html b/libbson/1.24.4/bson_equal.html new file mode 100644 index 0000000000..334f9b87e5 --- /dev/null +++ b/libbson/1.24.4/bson_equal.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_equal() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_equal()

      +
      +

      Synopsis

      +
      bool
      +bson_equal (const bson_t *bson, const bson_t *other);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_equal() function shall return true if both documents are equal.

      +
      +
      +

      Returns

      +

      true if both documents are equal.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_error_t.html b/libbson/1.24.4/bson_error_t.html new file mode 100644 index 0000000000..dceb393b38 --- /dev/null +++ b/libbson/1.24.4/bson_error_t.html @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + bson_error_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_error_t

      +

      BSON Error Encapsulation

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct {
      +   uint32_t domain;
      +   uint32_t code;
      +   char message[504];
      +} bson_error_t;
      +
      +
      +
      +
      +

      Description

      +

      The bson_error_t structure is used as an out-parameter to pass error information to the caller. It should be stack-allocated and does not requiring freeing.

      +

      See Handling Errors.

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      bson_reader_t *reader;
      +bson_error_t error;
      +
      +reader = bson_reader_new_from_file ("dump.bson", &error);
      +if (!reader) {
      +   fprintf (
      +      stderr, "ERROR: %d.%d: %s\n", error.domain, error.code, error.message);
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_free.html b/libbson/1.24.4/bson_free.html new file mode 100644 index 0000000000..9035ed2d3e --- /dev/null +++ b/libbson/1.24.4/bson_free.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_free() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_free()

      +
      +

      Synopsis

      +
      void
      +bson_free (void *mem);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • mem: A memory region.

      • +
      +
      +
      +

      Description

      +

      This function shall free the memory supplied by mem. This should be used by functions that require you free the result with bson_free().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_get_data.html b/libbson/1.24.4/bson_get_data.html new file mode 100644 index 0000000000..9a15abc161 --- /dev/null +++ b/libbson/1.24.4/bson_get_data.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_get_data() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_get_data()

      +
      +

      Synopsis

      +
      const uint8_t *
      +bson_get_data (const bson_t *bson);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_get_data() function shall return the raw buffer of a bson document. This can be used in conjunction with the len property of a bson_t if you want to copy the raw buffer around.

      +
      +
      +

      Returns

      +

      A buffer which should not be modified or freed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_get_major_version.html b/libbson/1.24.4/bson_get_major_version.html new file mode 100644 index 0000000000..88dd5efa2f --- /dev/null +++ b/libbson/1.24.4/bson_get_major_version.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_get_major_version() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_get_major_version()

      +
      +

      Synopsis

      +
      int
      +bson_get_major_version (void);
      +
      +
      +
      +
      +

      Description

      +

      Get the first number in libbson’s MAJOR.MINOR.MICRO release version.

      +
      +
      +

      Returns

      +

      The value of BSON_MAJOR_VERSION when Libbson was compiled.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_get_micro_version.html b/libbson/1.24.4/bson_get_micro_version.html new file mode 100644 index 0000000000..482d4c8dd0 --- /dev/null +++ b/libbson/1.24.4/bson_get_micro_version.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_get_micro_version() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_get_micro_version()

      +
      +

      Synopsis

      +
      int
      +bson_get_micro_version (void);
      +
      +
      +
      +
      +

      Description

      +

      Get the third number in libbson’s MAJOR.MINOR.MICRO release version.

      +
      +
      +

      Returns

      +

      The value of BSON_MICRO_VERSION when Libbson was compiled.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_get_minor_version.html b/libbson/1.24.4/bson_get_minor_version.html new file mode 100644 index 0000000000..6063053128 --- /dev/null +++ b/libbson/1.24.4/bson_get_minor_version.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_get_minor_version() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_get_minor_version()

      +
      +

      Synopsis

      +
      int
      +bson_get_minor_version (void);
      +
      +
      +
      +
      +

      Description

      +

      Get the middle number in libbson’s MAJOR.MINOR.MICRO release version.

      +
      +
      +

      Returns

      +

      The value of BSON_MINOR_VERSION when Libbson was compiled.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_get_monotonic_time.html b/libbson/1.24.4/bson_get_monotonic_time.html new file mode 100644 index 0000000000..0b02f5c4ea --- /dev/null +++ b/libbson/1.24.4/bson_get_monotonic_time.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + System Clock — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      System Clock

      +

      BSON Clock Abstraction

      +
      +

      Synopsis

      +
      int64_t
      +bson_get_monotonic_time (void);
      +int
      +bson_gettimeofday (struct timeval *tv);
      +
      +
      +
      +
      +

      Description

      +

      The clock abstraction in Libbson provides a cross-platform way to handle timeouts within the BSON library. It abstracts the differences in implementations of gettimeofday() as well as providing a monotonic (incrementing only) clock in microseconds.

      +
      +
      +

      Functions

      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_get_version.html b/libbson/1.24.4/bson_get_version.html new file mode 100644 index 0000000000..bdafd4a462 --- /dev/null +++ b/libbson/1.24.4/bson_get_version.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + bson_get_version() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_get_version()

      +
      +

      Synopsis

      +
      const char *
      +bson_get_version (void);
      +
      +
      +
      +
      +

      Description

      +

      A string representation of Libbson’s version, formatted something like “1.2.3” or “1.2.3-pre”.

      +
      +
      +

      Returns

      +

      A string you must not modify or free.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_has_field.html b/libbson/1.24.4/bson_has_field.html new file mode 100644 index 0000000000..5a5edcacb8 --- /dev/null +++ b/libbson/1.24.4/bson_has_field.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_has_field() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_has_field()

      +
      +

      Synopsis

      +
      bool
      +bson_has_field (const bson_t *bson, const char *key);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • key: A string containing the name of the field to check for.

      • +
      +
      +
      +

      Description

      +

      Checks to see if key contains an element named key. This also accepts “dotkey” notation such as “a.b.c.d”.

      +
      +
      +

      Returns

      +

      true if key was found within bson; otherwise false.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_init.html b/libbson/1.24.4/bson_init.html new file mode 100644 index 0000000000..53e25a9118 --- /dev/null +++ b/libbson/1.24.4/bson_init.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + bson_init() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_init()

      +
      +

      Synopsis

      +
      void
      +bson_init (bson_t *b);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_init() function shall initialize a bson_t that is placed on the stack. This is equivalent to initializing a bson_t to BSON_INITIALIZER.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_init_from_json.html b/libbson/1.24.4/bson_init_from_json.html new file mode 100644 index 0000000000..92f7c70fa2 --- /dev/null +++ b/libbson/1.24.4/bson_init_from_json.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + bson_init_from_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_init_from_json()

      +
      +

      Synopsis

      +
      bool
      +bson_init_from_json (bson_t *bson,
      +                     const char *data,
      +                     ssize_t len,
      +                     bson_error_t *error);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: Pointer to an uninitialized bson_t.

      • +
      • data: A UTF-8 encoded string containing valid JSON.

      • +
      • len: The length of data in bytes excluding a trailing \0 or -1 to determine the length with strlen().

      • +
      • error: An optional location for a bson_error_t.

      • +
      +
      +
      +

      Description

      +

      The bson_init_from_json() function will initialize a new bson_t by parsing the JSON found in data. Only a single JSON object may exist in data or an error will be set and false returned.

      +

      data should be in MongoDB Extended JSON format.

      +
      +
      +

      Errors

      +

      Errors are propagated via the error parameter.

      +
      +
      +

      Returns

      +

      Returns true if valid JSON was parsed, otherwise false and error is set. On success, bson is initialized and must be freed with bson_destroy(), otherwise bson is invalid.

      + + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_init_static.html b/libbson/1.24.4/bson_init_static.html new file mode 100644 index 0000000000..6d5a4d7965 --- /dev/null +++ b/libbson/1.24.4/bson_init_static.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + bson_init_static() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_init_static()

      +
      +

      Synopsis

      +
      bool
      +bson_init_static (bson_t *b, const uint8_t *data, size_t length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • b: A bson_t.

      • +
      • data: A buffer to initialize with.

      • +
      • length: The length of data in bytes.

      • +
      +
      +
      +

      Description

      +

      The bson_init_static() function shall shall initialize a read-only bson_t on the stack using the data provided. No copies of the data will be made and therefore must remain valid for the lifetime of the bson_t.

      +

      The resulting bson_t has internal references and therefore must not be copied to avoid dangling pointers in the copy.

      +
      +
      +

      Returns

      +

      Returns true if bson_t was successfully initialized, otherwise false. The function can fail if data or length are invalid.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_isspace.html b/libbson/1.24.4/bson_isspace.html new file mode 100644 index 0000000000..220214ff3a --- /dev/null +++ b/libbson/1.24.4/bson_isspace.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_isspace() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_isspace()

      +
      +

      Synopsis

      +
      bool
      +bson_isspace (int c);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • c: A character.

      • +
      +
      +
      +

      Description

      +

      A safer alternative to isspace with additional bounds checking.

      +

      It is equivalent to isspace, excepts always returns false if c is out of the inclusive bounds [-1, 255].

      +
      +
      +

      Returns

      +

      A boolean indicating if the c is considered white-space (as determined by the isspace function).

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_array.html b/libbson/1.24.4/bson_iter_array.html new file mode 100644 index 0000000000..e9932e98c1 --- /dev/null +++ b/libbson/1.24.4/bson_iter_array.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_array() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_array()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_ARRAY(iter) (bson_iter_type ((iter)) == BSON_TYPE_ARRAY)
      +
      +void
      +bson_iter_array (const bson_iter_t *iter,
      +                 uint32_t *array_len,
      +                 const uint8_t **array);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • array_len: A location for the buffer length.

      • +
      • array: A location for the immutable buffer.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_array() function shall retrieve the raw buffer of a sub-array from iter. iter MUST be on an element that is of type BSON_TYPE_ARRAY. This can be verified with bson_iter_type() or the BSON_ITER_HOLDS_ARRAY() macro.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_as_bool.html b/libbson/1.24.4/bson_iter_as_bool.html new file mode 100644 index 0000000000..f4f622f600 --- /dev/null +++ b/libbson/1.24.4/bson_iter_as_bool.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + bson_iter_as_bool() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_as_bool()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_as_bool (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the current field as if it were a boolean.

      +

      bson_iter_as_bool() currently knows how to determine a boolean value from the following types:

      +
        +
      • BSON_TYPE_BOOL

      • +
      • BSON_TYPE_DOUBLE

      • +
      • BSON_TYPE_INT32

      • +
      • BSON_TYPE_INT64

      • +
      • BSON_TYPE_NULL

      • +
      • BSON_TYPE_UNDEFINED

      • +
      • BSON_TYPE_UTF8

      • +
      +

      BSON_TYPE_UTF8 will always equate to true.

      +
      +
      +

      Returns

      +

      true if the field equates to non-zero.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_as_double.html b/libbson/1.24.4/bson_iter_as_double.html new file mode 100644 index 0000000000..076305b817 --- /dev/null +++ b/libbson/1.24.4/bson_iter_as_double.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + bson_iter_as_double() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_as_double()

      +
      +

      Synopsis

      +
      double
      +bson_iter_as_double (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the current field as if it were a double.

      +

      bson_iter_as_double() will cast the following types to double

      +
        +
      • BSON_TYPE_BOOL

      • +
      • BSON_TYPE_DOUBLE

      • +
      • BSON_TYPE_INT32

      • +
      • BSON_TYPE_INT64

      • +
      +

      Any other value will return 0.

      +
      +
      +

      Returns

      +

      The value type casted to double.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_as_int64.html b/libbson/1.24.4/bson_iter_as_int64.html new file mode 100644 index 0000000000..f952b32d3f --- /dev/null +++ b/libbson/1.24.4/bson_iter_as_int64.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_as_int64() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_as_int64()

      +
      +

      Synopsis

      +
      int64_t
      +bson_iter_as_int64 (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_as_int64() function shall return the contents of the current element as if it were a BSON_TYPE_INT64 element. The currently supported casts include:

      +
        +
      • BSON_TYPE_BOOL

      • +
      • BSON_TYPE_DOUBLE

      • +
      • BSON_TYPE_INT32

      • +
      • BSON_TYPE_INT64

      • +
      +
      +
      +

      Returns

      +

      A 64-bit signed integer.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_binary.html b/libbson/1.24.4/bson_iter_binary.html new file mode 100644 index 0000000000..9541ffa780 --- /dev/null +++ b/libbson/1.24.4/bson_iter_binary.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_binary() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_binary()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_BINARY(iter) \
      +   (bson_iter_type ((iter)) == BSON_TYPE_BINARY)
      +
      +void
      +bson_iter_binary (const bson_iter_t *iter,
      +                  bson_subtype_t *subtype,
      +                  uint32_t *binary_len,
      +                  const uint8_t **binary);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • subtype: A location for a bson_subtype_t or NULL.

      • +
      • binary_len: A location for the length of binary.

      • +
      • binary: A location for a pointer to the immutable buffer.

      • +
      +
      +
      +

      Description

      +

      This function shall return the binary data of a BSON_TYPE_BINARY element. It is a programming error to call this function on a field that is not of type BSON_TYPE_BINARY. You can check this with the BSON_ITER_HOLDS_BINARY() macro or bson_iter_type().

      +

      The buffer that binary points to is only valid until the iterator’s bson_t is modified or freed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_bool.html b/libbson/1.24.4/bson_iter_bool.html new file mode 100644 index 0000000000..d3d6945db8 --- /dev/null +++ b/libbson/1.24.4/bson_iter_bool.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_bool() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_bool()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_BOOL(iter) (bson_iter_type ((iter)) == BSON_TYPE_BOOL)
      +
      +bool
      +bson_iter_bool (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_bool() function shall return the boolean value of a BSON_TYPE_BOOL element. It is a programming error to call this function on an element other than BSON_TYPE_BOOL. You can check this with bson_iter_type() or BSON_ITER_HOLDS_BOOL().

      +
      +
      +

      Returns

      +

      Either true or false.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_code.html b/libbson/1.24.4/bson_iter_code.html new file mode 100644 index 0000000000..a8a3e79720 --- /dev/null +++ b/libbson/1.24.4/bson_iter_code.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_iter_code() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_code()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_CODE(iter) (bson_iter_type ((iter)) == BSON_TYPE_CODE)
      +
      +const char *
      +bson_iter_code (const bson_iter_t *iter, uint32_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • length: A location for the length of the UTF-8 encoded string or NULL.

      • +
      +
      +
      +

      Description

      +

      This function returns the contents of a BSON_TYPE_CODE field. The length of the string is stored in length if non-NULL.

      +

      It is invalid to call this function on a field that is not of type BSON_TYPE_CODE.

      +
      +
      +

      Returns

      +

      A UTF-8 encoded string which should not be modified or freed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_codewscope.html b/libbson/1.24.4/bson_iter_codewscope.html new file mode 100644 index 0000000000..27e393b9ac --- /dev/null +++ b/libbson/1.24.4/bson_iter_codewscope.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_iter_codewscope() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_codewscope()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_CODEWSCOPE(iter) \
      +   (bson_iter_type ((iter)) == BSON_TYPE_CODEWSCOPE)
      +
      +const char *
      +bson_iter_codewscope (const bson_iter_t *iter,
      +                      uint32_t *length,
      +                      uint32_t *scope_len,
      +                      const uint8_t **scope);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • length: An optional location for the length of the resulting UTF-8 encoded string.

      • +
      • scope_len: A optional location for the length of scope.

      • +
      • scope: An optional location to store the immutable raw scope BSON document.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_codewscope() function acts similar to bson_iter_code() except for BSON_TYPE_CODEWSCOPE elements. It also will provide a pointer to the buffer for scope, which can be loaded into a bson_t using bson_init_static().

      +
      +
      +

      Returns

      +

      An UTF-8 encoded string containing the JavaScript code which should not be modified or freed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_date_time.html b/libbson/1.24.4/bson_iter_date_time.html new file mode 100644 index 0000000000..4eeb9d9d64 --- /dev/null +++ b/libbson/1.24.4/bson_iter_date_time.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_date_time() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_date_time()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_DATE_TIME(iter) \
      +   (bson_iter_type ((iter)) == BSON_TYPE_DATE_TIME)
      +
      +int64_t
      +bson_iter_date_time (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_date_time() function shall return the number of milliseconds since the UNIX epoch, as contained in the BSON_TYPE_DATE_TIME element.

      +
      +
      +

      Returns

      +

      A 64-bit integer containing the number of milliseconds since the UNIX epoch.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_dbpointer.html b/libbson/1.24.4/bson_iter_dbpointer.html new file mode 100644 index 0000000000..e8cfa6a031 --- /dev/null +++ b/libbson/1.24.4/bson_iter_dbpointer.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_dbpointer() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_dbpointer()

      +
      +

      Synopsis

      +
      void
      +bson_iter_dbpointer (const bson_iter_t *iter,
      +                     uint32_t *collection_len,
      +                     const char **collection,
      +                     const bson_oid_t **oid);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • collection_len: A location for the length of the collection name.

      • +
      • collection: A location for the collection name..

      • +
      • oid: A location for a bson_oid_t.

      • +
      +
      +
      +

      Description

      +

      Fetches the contents of a BSON_TYPE_DBPOINTER element.

      +
      +

      Warning

      +

      The BSON_TYPE_DBPOINTER field type is deprecated by the BSON spec and should not be used in new code.

      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_decimal128.html b/libbson/1.24.4/bson_iter_decimal128.html new file mode 100644 index 0000000000..9f43a48787 --- /dev/null +++ b/libbson/1.24.4/bson_iter_decimal128.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_iter_decimal128() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_decimal128()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_DECIMAL128(iter) \
      +   (bson_iter_type ((iter)) == BSON_TYPE_DECIMAL128)
      +
      +bool
      +bson_iter_decimal128 (const bson_iter_t *iter, /* IN */
      +                      bson_decimal128_t *dec); /* OUT */
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the value from a BSON_TYPE_DECIMAL128 field. You should verify that this is a BSON_TYPE_DECIMAL128 field before calling this function.

      +
      +
      +

      Returns

      +

      true if type was BSON_TYPE_DECIMAL128, otherwise false.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_document.html b/libbson/1.24.4/bson_iter_document.html new file mode 100644 index 0000000000..69267b3242 --- /dev/null +++ b/libbson/1.24.4/bson_iter_document.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_document() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_document()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_DOCUMENT(iter) \
      +   (bson_iter_type ((iter)) == BSON_TYPE_DOCUMENT)
      +
      +void
      +bson_iter_document (const bson_iter_t *iter,
      +                    uint32_t *document_len,
      +                    const uint8_t **document);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • document_len: A location for the length of the document in bytes.

      • +
      • document: A location for the document buffer.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_document() function shall retrieve the raw buffer of a sub-document from iter. iter MUST be on an element that is of type BSON_TYPE_DOCUMENT. This can be verified with bson_iter_type() or the BSON_ITER_HOLDS_DOCUMENT() macro.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_double.html b/libbson/1.24.4/bson_iter_double.html new file mode 100644 index 0000000000..3ea6b3cbf8 --- /dev/null +++ b/libbson/1.24.4/bson_iter_double.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_double() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_double()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_DOUBLE(iter) \
      +   (bson_iter_type ((iter)) == BSON_TYPE_DOUBLE)
      +
      +double
      +bson_iter_double (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the contents of a BSON_TYPE_DOUBLE field.

      +
      +
      +

      Returns

      +

      A double.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_dup_utf8.html b/libbson/1.24.4/bson_iter_dup_utf8.html new file mode 100644 index 0000000000..06d50739a4 --- /dev/null +++ b/libbson/1.24.4/bson_iter_dup_utf8.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_iter_dup_utf8() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_dup_utf8()

      +
      +

      Synopsis

      +
      char *
      +bson_iter_dup_utf8 (const bson_iter_t *iter, uint32_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • length: An optional location for the length of the UTF-8 encoded string.

      • +
      +
      +
      +

      Description

      +

      This function is similar to bson_iter_utf8() except that it calls bson_strndup() on the result.

      +
      +
      +

      Returns

      +

      A newly allocated string that should be freed with bson_free().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_find.html b/libbson/1.24.4/bson_iter_find.html new file mode 100644 index 0000000000..2c2ebfe870 --- /dev/null +++ b/libbson/1.24.4/bson_iter_find.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_find() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_find()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_find (bson_iter_t *iter, const char *key);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • key: A string containing the requested key.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_find() function shall advance iter to the first element named key or exhaust all elements of iter. If iter is exhausted, false is returned and iter should be considered invalid.

      +

      key is case-sensitive. For a case-folded version, see bson_iter_find_case().

      +
      +
      +

      Returns

      +

      true is returned if the requested key was found. If not, iter was exhausted and should now be considered invalid.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_find_case.html b/libbson/1.24.4/bson_iter_find_case.html new file mode 100644 index 0000000000..fdc0450f99 --- /dev/null +++ b/libbson/1.24.4/bson_iter_find_case.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_find_case() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_find_case()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_find_case (bson_iter_t *iter, const char *key);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • key: An ASCII string containing the field to locate.

      • +
      +
      +
      +

      Description

      +

      Advances iter to the first element matching the name of key or exhausting all elements.

      +

      key is not case-sensitive. The keys will be case-folded to determine a match using the current locale.

      +
      +
      +

      Returns

      +

      true if key was found.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_find_descendant.html b/libbson/1.24.4/bson_iter_find_descendant.html new file mode 100644 index 0000000000..a1d8bd5f03 --- /dev/null +++ b/libbson/1.24.4/bson_iter_find_descendant.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_iter_find_descendant() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_find_descendant()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_find_descendant (bson_iter_t *iter,
      +                           const char *dotkey,
      +                           bson_iter_t *descendant);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_find_descendant() function shall follow standard MongoDB dot notation to recurse into subdocuments. descendant will be initialized and advanced to the descendant. If false is returned, both iter and descendant should be considered invalid.

      +
      +
      +

      Returns

      +

      true is returned if the requested key was found. If not, false is returned and iter was exhausted and should now be considered invalid.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_find_w_len.html b/libbson/1.24.4/bson_iter_find_w_len.html new file mode 100644 index 0000000000..dea8646b42 --- /dev/null +++ b/libbson/1.24.4/bson_iter_find_w_len.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_find_w_len() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_find_w_len()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_find_w_len (bson_iter_t *iter, const char *key, int keylen);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • key: A string containing the requested key.

      • +
      • keylen: An integer indicating the length of the key string.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_find_w_len() function shall advance iter to the first element named key or exhaust all elements of iter. If iter is exhausted, false is returned and iter should be considered invalid.

      +

      key is case-sensitive. For a case-folded version, see bson_iter_find_case().

      +
      +
      +

      Returns

      +

      true is returned if the requested key was found. If not, iter was exhausted and should now be considered invalid.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_init.html b/libbson/1.24.4/bson_iter_init.html new file mode 100644 index 0000000000..0a74ce8246 --- /dev/null +++ b/libbson/1.24.4/bson_iter_init.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + bson_iter_init() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_init()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_init (bson_iter_t *iter, const bson_t *bson);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_init() function shall initialize iter to iterate upon the BSON document bson. Upon initialization, iter is placed before the first element. Callers must call bson_iter_next(), bson_iter_find(), or bson_iter_find_case() to advance to an element.

      +
      +
      +

      Returns

      +

      Returns true if the iter was successfully initialized.

      +
      +
      +

      Example

      +
      static void
      +print_doc_id (const bson_t *doc)
      +{
      +   bson_iter_t iter;
      +   bson_oid_t oid;
      +   char oidstr[25];
      +
      +   if (bson_iter_init (&iter, doc) && bson_iter_find (&iter, "_id") &&
      +       BSON_ITER_HOLDS_OID (&iter)) {
      +      bson_iter_oid (&iter, &oid);
      +      bson_oid_to_string (&oid, oidstr);
      +      printf ("%s\n", oidstr);
      +   } else {
      +      printf ("Document is missing _id.\n");
      +   }
      +}
      +
      +/* alternatively */
      +
      +static void
      +print_doc_id (const bson_t *doc)
      +{
      +   bson_iter_t iter;
      +   bson_oid_t oid;
      +   char oidstr[25];
      +
      +   if (bson_iter_init_find (&iter, doc, "_id") && BSON_ITER_HOLDS_OID (&iter)) {
      +      bson_iter_oid (&iter, &oid);
      +      bson_oid_to_string (&oid, oidstr);
      +      printf ("%s\n", oidstr);
      +   } else {
      +      printf ("Document is missing _id.\n");
      +   }
      +}
      +
      +
      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_init_find.html b/libbson/1.24.4/bson_iter_init_find.html new file mode 100644 index 0000000000..8035078b27 --- /dev/null +++ b/libbson/1.24.4/bson_iter_init_find.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + bson_iter_init_find() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_init_find()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_init_find (bson_iter_t *iter, const bson_t *bson, const char *key);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • bson: A bson_t.

      • +
      • key: A key to locate after initializing the iter.

      • +
      +
      +
      +

      Description

      +

      This function is identical to (bson_iter_init() && bson_iter_find()).

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_init_find_case.html b/libbson/1.24.4/bson_iter_init_find_case.html new file mode 100644 index 0000000000..da376b8aeb --- /dev/null +++ b/libbson/1.24.4/bson_iter_init_find_case.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_iter_init_find_case() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_init_find_case()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_init_find_case (bson_iter_t *iter,
      +                          const bson_t *bson,
      +                          const char *key);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • bson: A bson_t.

      • +
      • key: A key to locate after initializing the iter.

      • +
      +
      +
      +

      Description

      +

      This function is identical to bson_iter_init() && bson_iter_find_case().

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_init_find_w_len.html b/libbson/1.24.4/bson_iter_init_find_w_len.html new file mode 100644 index 0000000000..4bf6ea8b74 --- /dev/null +++ b/libbson/1.24.4/bson_iter_init_find_w_len.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + bson_iter_init_find_w_len() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_init_find_w_len()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_init_find_w_len (bson_iter_t *iter,
      +                           const bson_t *bson,
      +                           const char *key,
      +                           int keylen);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • bson: A bson_t.

      • +
      • key: A key to locate after initializing the iter.

      • +
      • keylen: An integer indicating the length of the key string.

      • +
      +
      +
      +

      Description

      +

      This function is identical to (bson_iter_init() && bson_iter_find_w_len()).

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_init_from_data.html b/libbson/1.24.4/bson_iter_init_from_data.html new file mode 100644 index 0000000000..fdc34b45f1 --- /dev/null +++ b/libbson/1.24.4/bson_iter_init_from_data.html @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + bson_iter_init_from_data() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_init_from_data()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_init_from_data (bson_iter_t *iter, const uint8_t *data, size_t length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • data: A buffer to initialize with.

      • +
      • length: The length of data in bytes.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_init_from_data() function shall initialize iter to iterate upon the buffer data, which must contain a BSON document. Upon initialization, iter is placed before the first element. Callers must call bson_iter_next(), bson_iter_find(), or bson_iter_find_case() to advance to an element.

      +
      +
      +

      Returns

      +

      Returns true if the iter was successfully initialized.

      +
      +
      +

      Example

      +
      static void
      +print_doc_id (const uint8_t *data, size_t length)
      +{
      +   bson_iter_t iter;
      +   bson_oid_t oid;
      +   char oidstr[25];
      +
      +   if (bson_iter_init_from_data (&iter, data, length) && bson_iter_find (&iter, "_id") &&
      +       BSON_ITER_HOLDS_OID (&iter)) {
      +      bson_iter_oid (&iter, &oid);
      +      bson_oid_to_string (&oid, oidstr);
      +      printf ("%s\n", oidstr);
      +   } else {
      +      printf ("Document is missing _id.\n");
      +   }
      +}
      +
      +
      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_init_from_data_at_offset.html b/libbson/1.24.4/bson_iter_init_from_data_at_offset.html new file mode 100644 index 0000000000..a4ae13124b --- /dev/null +++ b/libbson/1.24.4/bson_iter_init_from_data_at_offset.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + bson_iter_init_from_data_at_offset() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_init_from_data_at_offset()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_init_from_data_at_offset (bson_iter_t *iter,
      +                                    const uint8_t *data,
      +                                    size_t length,
      +                                    uint32_t offset,
      +                                    uint32_t keylen);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • data: A buffer to initialize with. This is not validated.

      • +
      • length: The length of data in bytes. This is not validated.

      • +
      • offset: The offset of the field to start iterating. This is not validated. This should be an offset previously obtained from bson_iter_offset().

      • +
      • keylen: The string length of the key of the field to start iterating. This is not validated. This should be a length previously obtained from bson_iter_key_len().

      • +
      +
      +
      +

      Description

      +

      Creates a bson_iter_t and starts iteration on a field at the offset.

      +

      bson_iter_init_from_data_at_offset() is useful for situations where the +progress of a bson_iter_t must be saved and restored without relying +on the bson_iter_t data layout. Saving the progress could be +accomplished by:

      + +

      Then later, these saved values can be passed to +bson_iter_init_from_data_at_offset() to reconstruct the +bson_iter_t in constant time.

      +
      +
      +

      Returns

      +

      Returns true if the iter was successfully initialized.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_int32.html b/libbson/1.24.4/bson_iter_int32.html new file mode 100644 index 0000000000..8a4196b532 --- /dev/null +++ b/libbson/1.24.4/bson_iter_int32.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_int32() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_int32()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_INT32(iter) (bson_iter_type ((iter)) == BSON_TYPE_INT32)
      +
      +int32_t
      +bson_iter_int32 (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the value from a BSON_TYPE_INT32 element. You should verify that the field is a BSON_TYPE_INT32 field before calling this function.

      +
      +
      +

      Returns

      +

      A 32-bit integer.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_int64.html b/libbson/1.24.4/bson_iter_int64.html new file mode 100644 index 0000000000..e37d4afaab --- /dev/null +++ b/libbson/1.24.4/bson_iter_int64.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_int64() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_int64()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_INT64(iter) (bson_iter_type ((iter)) == BSON_TYPE_INT64)
      +
      +int64_t
      +bson_iter_int64 (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the value from a BSON_TYPE_INT64 field. You should verify that this is a BSON_TYPE_INT64 field before calling this function.

      +
      +
      +

      Returns

      +

      A 64-bit integer.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_key.html b/libbson/1.24.4/bson_iter_key.html new file mode 100644 index 0000000000..37b0b1f27d --- /dev/null +++ b/libbson/1.24.4/bson_iter_key.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_key() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_key()

      +
      +

      Synopsis

      +
      const char *
      +bson_iter_key (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the key for the current element observed by iter.

      +
      +
      +

      Returns

      +

      A string which should not be modified or freed.

      +
      +

      See also

      +
      +
      bson_iter_key_len() to retrieve the length of the key in constant time.
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_key_len.html b/libbson/1.24.4/bson_iter_key_len.html new file mode 100644 index 0000000000..900cf82d79 --- /dev/null +++ b/libbson/1.24.4/bson_iter_key_len.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_key_len() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_key_len()

      +
      +

      Synopsis

      +
      uint32_t
      +bson_iter_key_len (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the length of the key for the current element observed by iter. This is a constant time computation, and therefore faster than calling strlen() on a key returned by bson_iter_key().

      +
      +
      +

      Returns

      +

      An integer representing the key length.

      +
      +

      See also

      +
      +
      bson_iter_key() to retrieve current key.
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_next.html b/libbson/1.24.4/bson_iter_next.html new file mode 100644 index 0000000000..badaf30b78 --- /dev/null +++ b/libbson/1.24.4/bson_iter_next.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_iter_next() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_next()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_next (bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Advances iter to the next element in the document.

      +
      +
      +

      Returns

      +

      true if iter was advanced. Returns false if iter has passed the last element in the document or encountered invalid BSON.

      +

      It is a programming error to use iter after this function has returned false.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_offset.html b/libbson/1.24.4/bson_iter_offset.html new file mode 100644 index 0000000000..c8b7a5213e --- /dev/null +++ b/libbson/1.24.4/bson_iter_offset.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_offset() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_offset()

      +
      +

      Synopsis

      +
      uint32_t
      +bson_iter_offset (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the offset for the current element observed by iter.

      +
      +
      +

      Returns

      +

      An unsigned integer representing the offset in the BSON data of the current element.

      +
      +

      See also

      +
      +
      bson_iter_init_from_data_at_offset() to use this offset to reconstruct a bson_iter_t in constant time.
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_oid.html b/libbson/1.24.4/bson_iter_oid.html new file mode 100644 index 0000000000..92b0c96282 --- /dev/null +++ b/libbson/1.24.4/bson_iter_oid.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_oid() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_oid()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_OID(iter) (bson_iter_type ((iter)) == BSON_TYPE_OID)
      +
      +const bson_oid_t *
      +bson_iter_oid (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the bson_oid_t for a BSON_TYPE_OID element. You should verify it is an element of type BSON_TYPE_OID before calling this function.

      +
      +
      +

      Returns

      +

      A bson_oid_t that should not be modified or freed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_overwrite_bool.html b/libbson/1.24.4/bson_iter_overwrite_bool.html new file mode 100644 index 0000000000..bc78bf59bb --- /dev/null +++ b/libbson/1.24.4/bson_iter_overwrite_bool.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_bool() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_overwrite_bool()

      +
      +

      Synopsis

      +
      void
      +bson_iter_overwrite_bool (bson_iter_t *iter, bool value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • value: A bool containing the new value.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_overwrite_bool() function shall overwrite the contents of a BSON_TYPE_BOOL element in place.

      +

      This may only be done when the underlying bson document allows mutation.

      +

      It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_BOOL.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_overwrite_date_time.html b/libbson/1.24.4/bson_iter_overwrite_date_time.html new file mode 100644 index 0000000000..5c19780381 --- /dev/null +++ b/libbson/1.24.4/bson_iter_overwrite_date_time.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_date_time() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_overwrite_date_time()

      +
      +

      Synopsis

      +
      void
      +bson_iter_overwrite_date_time (bson_iter_t *iter, int64_t value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • value: The date and time as specified in milliseconds since the UNIX epoch.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_overwrite_date_time() function shall overwrite the contents of a BSON_TYPE_DATE_TIME element in place.

      +

      This may only be done when the underlying bson document allows mutation.

      +

      It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_DATE_TIME.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_overwrite_decimal128.html b/libbson/1.24.4/bson_iter_overwrite_decimal128.html new file mode 100644 index 0000000000..919ed045b8 --- /dev/null +++ b/libbson/1.24.4/bson_iter_overwrite_decimal128.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_decimal128() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_overwrite_decimal128()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_overwrite_decimal128 (bson_iter_t *iter, const bson_decimal128_t *value);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • value: The new Decimal128 value.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_overwrite_decimal128() function shall overwrite the contents of a BSON_TYPE_DECIMAL128 element in place.

      +

      This may only be done when the underlying bson document allows mutation.

      +

      It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_DECIMAL128.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_overwrite_double.html b/libbson/1.24.4/bson_iter_overwrite_double.html new file mode 100644 index 0000000000..56f287db36 --- /dev/null +++ b/libbson/1.24.4/bson_iter_overwrite_double.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_double() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_overwrite_double()

      +
      +

      Synopsis

      +
      void
      +bson_iter_overwrite_double (bson_iter_t *iter, double value);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_overwrite_double() function shall overwrite the contents of a BSON_TYPE_DOUBLE element in place.

      +

      This may only be done when the underlying bson document allows mutation.

      +

      It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_DOUBLE.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_overwrite_int32.html b/libbson/1.24.4/bson_iter_overwrite_int32.html new file mode 100644 index 0000000000..61fc21f7d1 --- /dev/null +++ b/libbson/1.24.4/bson_iter_overwrite_int32.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_int32() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_overwrite_int32()

      +
      +

      Synopsis

      +
      void
      +bson_iter_overwrite_int32 (bson_iter_t *iter, int32_t value);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_overwrite_int32() function shall overwrite the contents of a BSON_TYPE_INT32 element in place.

      +

      This may only be done when the underlying bson document allows mutation.

      +

      It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_BOOL.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_overwrite_int64.html b/libbson/1.24.4/bson_iter_overwrite_int64.html new file mode 100644 index 0000000000..a873749f44 --- /dev/null +++ b/libbson/1.24.4/bson_iter_overwrite_int64.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_int64() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_overwrite_int64()

      +
      +

      Synopsis

      +
      void
      +bson_iter_overwrite_int64 (bson_iter_t *iter, int64_t value);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_overwrite_int64() function shall overwrite the contents of a BSON_TYPE_INT64 element in place.

      +

      This may only be done when the underlying bson document allows mutation.

      +

      It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_INT64.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_overwrite_oid.html b/libbson/1.24.4/bson_iter_overwrite_oid.html new file mode 100644 index 0000000000..63e65450eb --- /dev/null +++ b/libbson/1.24.4/bson_iter_overwrite_oid.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_oid() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_overwrite_oid()

      +
      +

      Synopsis

      +
      void
      +bson_iter_overwrite_oid (bson_iter_t *iter, const bson_oid_t *value);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_overwrite_oid() function shall overwrite the contents of a BSON_TYPE_OID element in place.

      +

      This may only be done when the underlying bson document allows mutation.

      +

      It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_OID.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_overwrite_timestamp.html b/libbson/1.24.4/bson_iter_overwrite_timestamp.html new file mode 100644 index 0000000000..7b49918764 --- /dev/null +++ b/libbson/1.24.4/bson_iter_overwrite_timestamp.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_overwrite_timestamp() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_overwrite_timestamp()

      +
      +

      Synopsis

      +
      void
      +bson_iter_overwrite_timestamp (bson_iter_t *iter,
      +                               uint32_t timestamp,
      +                               uint32_t increment);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • timestamp: A uint32_t.

      • +
      • increment: A uint32_t.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_overwrite_timestamp() function shall overwrite the contents of a BSON_TYPE_TIMESTAMP element in place.

      +

      This may only be done when the underlying bson document allows mutation.

      +

      It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_TIMESTAMP.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_recurse.html b/libbson/1.24.4/bson_iter_recurse.html new file mode 100644 index 0000000000..d310bf8172 --- /dev/null +++ b/libbson/1.24.4/bson_iter_recurse.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_recurse() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_recurse()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_recurse (const bson_iter_t *iter, bson_iter_t *child);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_recurse() function shall initialize child using the embedded document or array currently observed by iter.

      +

      If there was a failure to initialize the iter, false is returned and both iter and child should be considered invalid.

      +

      This should only be called when observing an element of type BSON_TYPE_ARRAY or BSON_TYPE_DOCUMENT.

      +
      +
      +

      Returns

      +

      If iter observes an element of type BSON_TYPE_ARRAY or BSON_TYPE_DOCUMENT, then child is initialized and the function returns true. Otherwise, the function returns false and child is invalid.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_regex.html b/libbson/1.24.4/bson_iter_regex.html new file mode 100644 index 0000000000..c4654f6dc4 --- /dev/null +++ b/libbson/1.24.4/bson_iter_regex.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_regex() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_regex()

      +
      +

      Synopsis

      +
      const char *
      +bson_iter_regex (const bson_iter_t *iter, const char **options);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_regex() function shall retrieve the contents of a BSON_TYPE_REGEX element currently observed by iter.

      +

      It is invalid to call this function when not observing an element of type BSON_TYPE_REGEX.

      +
      +
      +

      Returns

      +

      A string containing the regex which should not be modified or freed. options is set to the options provided for the regex.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_symbol.html b/libbson/1.24.4/bson_iter_symbol.html new file mode 100644 index 0000000000..1a9d19f8ca --- /dev/null +++ b/libbson/1.24.4/bson_iter_symbol.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_symbol() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_symbol()

      +
      +

      Synopsis

      +
      const char *
      +bson_iter_symbol (const bson_iter_t *iter, uint32_t *length);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The symbol element type is DEPRECATED in the bson specification at http://bsonspec.org.

      +

      The bson_iter_symbol() function shall return the contents of a BSON_TYPE_SYMBOL element.

      +

      If non-NULL, length will be set to the length of the resulting string.

      +
      +
      +

      Returns

      +

      The symbol and length is set.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_t.html b/libbson/1.24.4/bson_iter_t.html new file mode 100644 index 0000000000..cc431dc1b4 --- /dev/null +++ b/libbson/1.24.4/bson_iter_t.html @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + bson_iter_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_t

      +

      BSON Document Iterator

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +#define BSON_ITER_HOLDS_DOUBLE(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_UTF8(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_DOCUMENT(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_ARRAY(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_BINARY(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_UNDEFINED(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_OID(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_BOOL(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_DATE_TIME(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_NULL(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_REGEX(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_DBPOINTER(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_CODE(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_SYMBOL(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_CODEWSCOPE(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_INT32(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_TIMESTAMP(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_INT64(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_DECIMAL128(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_MAXKEY(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_MINKEY(iter) /* ... */
      +
      +#define BSON_ITER_HOLDS_INT(iter) \
      +   (BSON_ITER_HOLDS_INT32 (iter) || BSON_ITER_HOLDS_INT64 (iter))
      +
      +#define BSON_ITER_HOLDS_NUMBER(iter) \
      +   (BSON_ITER_HOLDS_INT (iter) || BSON_ITER_HOLDS_DOUBLE (iter))
      +
      +#define BSON_ITER_IS_KEY(iter, key) \
      +   (0 == strcmp ((key), bson_iter_key ((iter))))
      +
      +typedef struct {
      +   /*< private >*/
      +} bson_iter_t;
      +
      +
      +
      +
      +

      Description

      +

      bson_iter_t is a structure used to iterate through the elements of a bson_t. It is meant to be used on the stack and can be discarded at any time as it contains no external allocation. The contents of the structure should be considered private and may change between releases, however the structure size will not change.

      +

      The bson_t MUST be valid for the lifetime of the iter and it is an error to modify the bson_t while using the iter.

      +
      +
      +

      Functions

      + +
      +
      +

      Examples

      +
      bson_iter_t iter;
      +
      +if (bson_iter_init (&iter, my_bson_doc)) {
      +   while (bson_iter_next (&iter)) {
      +      printf ("Found a field named: %s\n", bson_iter_key (&iter));
      +   }
      +}
      +
      +
      +
      bson_iter_t iter;
      +
      +if (bson_iter_init (&iter, my_bson_doc) && bson_iter_find (&iter, "my_field")) {
      +   printf ("Found the field named: %s\n", bson_iter_key (&iter));
      +}
      +
      +
      +
      bson_iter_t iter;
      +bson_iter_t sub_iter;
      +
      +if (bson_iter_init_find (&iter, my_bson_doc, "mysubdoc") &&
      +    (BSON_ITER_HOLDS_DOCUMENT (&iter) || BSON_ITER_HOLDS_ARRAY (&iter)) &&
      +    bson_iter_recurse (&iter, &sub_iter)) {
      +   while (bson_iter_next (&sub_iter)) {
      +      printf ("Found key \"%s\" in sub document.\n", bson_iter_key (&sub_iter));
      +   }
      +}
      +
      +
      +
      bson_iter_t iter;
      +
      +if (bson_iter_init (&iter, my_doc) &&
      +    bson_iter_find_descendant (&iter, "a.b.c.d", &sub_iter)) {
      +   printf ("The type of a.b.c.d is: %d\n", (int) bson_iter_type (&sub_iter));
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_time_t.html b/libbson/1.24.4/bson_iter_time_t.html new file mode 100644 index 0000000000..73f80e7880 --- /dev/null +++ b/libbson/1.24.4/bson_iter_time_t.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_iter_time_t() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_time_t()

      +
      +

      Synopsis

      +
      time_t
      +bson_iter_time_t (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_time_t() function shall return the number of seconds since the UNIX epoch, as contained in the BSON_TYPE_DATE_TIME element.

      +
      +
      +

      Returns

      +

      A time_t containing the number of seconds since the UNIX epoch.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_timestamp.html b/libbson/1.24.4/bson_iter_timestamp.html new file mode 100644 index 0000000000..481af5b14a --- /dev/null +++ b/libbson/1.24.4/bson_iter_timestamp.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_iter_timestamp() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_timestamp()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_TIMESTAMP(iter) \
      +   (bson_iter_type ((iter)) == BSON_TYPE_TIMESTAMP)
      +
      +void
      +bson_iter_timestamp (const bson_iter_t *iter,
      +                     uint32_t *timestamp,
      +                     uint32_t *increment);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • timestamp: A uint32_t.

      • +
      • increment: A uint32_t.

      • +
      +
      +
      +

      Description

      +

      The BSON_TYPE_TIMESTAMP type is not a date/time and is typically used for intra-server communication.

      +

      You probably want bson_iter_date_time().

      +

      The bson_iter_timestamp() function shall return the contents of a BSON_TYPE_TIMESTAMP element. It is invalid to call this function while observing an element that is not of type BSON_TYPE_TIMESTAMP.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_timeval.html b/libbson/1.24.4/bson_iter_timeval.html new file mode 100644 index 0000000000..7988f9a97a --- /dev/null +++ b/libbson/1.24.4/bson_iter_timeval.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_iter_timeval() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_timeval()

      +
      +

      Synopsis

      +
      void
      +bson_iter_timeval (const bson_iter_t *iter, struct timeval *tv);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_timeval() function shall return the number of seconds and microseconds since the UNIX epoch, as contained in the BSON_TYPE_DATE_TIME element into tv.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_type.html b/libbson/1.24.4/bson_iter_type.html new file mode 100644 index 0000000000..eebe262a7b --- /dev/null +++ b/libbson/1.24.4/bson_iter_type.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + bson_iter_type() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_type()

      +
      +

      Synopsis

      +
      typedef enum {
      +   BSON_TYPE_EOD = 0x00,
      +   BSON_TYPE_DOUBLE = 0x01,
      +   BSON_TYPE_UTF8 = 0x02,
      +   BSON_TYPE_DOCUMENT = 0x03,
      +   BSON_TYPE_ARRAY = 0x04,
      +   BSON_TYPE_BINARY = 0x05,
      +   BSON_TYPE_UNDEFINED = 0x06,
      +   BSON_TYPE_OID = 0x07,
      +   BSON_TYPE_BOOL = 0x08,
      +   BSON_TYPE_DATE_TIME = 0x09,
      +   BSON_TYPE_NULL = 0x0A,
      +   BSON_TYPE_REGEX = 0x0B,
      +   BSON_TYPE_DBPOINTER = 0x0C,
      +   BSON_TYPE_CODE = 0x0D,
      +   BSON_TYPE_SYMBOL = 0x0E,
      +   BSON_TYPE_CODEWSCOPE = 0x0F,
      +   BSON_TYPE_INT32 = 0x10,
      +   BSON_TYPE_TIMESTAMP = 0x11,
      +   BSON_TYPE_INT64 = 0x12,
      +   BSON_TYPE_MAXKEY = 0x7F,
      +   BSON_TYPE_MINKEY = 0xFF,
      +} bson_type_t;
      +
      +bson_type_t
      +bson_iter_type (const bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_iter_type() function shall return the type of the observed element in a bson document.

      +
      +
      +

      Returns

      +

      A bson_type_t.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_utf8.html b/libbson/1.24.4/bson_iter_utf8.html new file mode 100644 index 0000000000..b75e0d29c9 --- /dev/null +++ b/libbson/1.24.4/bson_iter_utf8.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_utf8() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_utf8()

      +
      +

      Synopsis

      +
      #define BSON_ITER_HOLDS_UTF8(iter) (bson_iter_type ((iter)) == BSON_TYPE_UTF8)
      +
      +const char *
      +bson_iter_utf8 (const bson_iter_t *iter, uint32_t *length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • iter: A bson_iter_t.

      • +
      • length: An optional location for the length of the resulting UTF-8 encoded string.

      • +
      +
      +
      +

      Description

      +

      The bson_iter_utf8() function shall retrieve the contents of a BSON_TYPE_UTF8 element currently observed by iter.

      +

      It is invalid to call this function while observing an element other than BSON_TYPE_UTF8.

      +
      +
      +

      Returns

      +

      A UTF-8 encoded string that has not been modified or freed.

      +

      It is suggested that the caller validate the content is valid UTF-8 before using this in other places. That can be done by calling bson_utf8_validate() or validating the underlying bson_t before iterating it.

      +

      Note that not all drivers use multi-byte representation for \0 in UTF-8 encodings (commonly referred to as modified-UTF8). You probably want to take a look at the length field when marshaling to other runtimes.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_value.html b/libbson/1.24.4/bson_iter_value.html new file mode 100644 index 0000000000..a31dbdc3b6 --- /dev/null +++ b/libbson/1.24.4/bson_iter_value.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_iter_value() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_value()

      +
      +

      Synopsis

      +
      const bson_value_t *
      +bson_iter_value (bson_iter_t *iter);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the value for the currently observed type as a boxed type. This allows passing around the value without knowing the type at runtime.

      +

      If the bson_iter_t is further modified, the bson_value_t is invalidated.

      +
      +
      +

      Returns

      +

      A bson_value_t that should not be modified or freed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_iter_visit_all.html b/libbson/1.24.4/bson_iter_visit_all.html new file mode 100644 index 0000000000..2b281a9d06 --- /dev/null +++ b/libbson/1.24.4/bson_iter_visit_all.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_iter_visit_all() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_iter_visit_all()

      +
      +

      Synopsis

      +
      bool
      +bson_iter_visit_all (bson_iter_t *iter,
      +                     const bson_visitor_t *visitor,
      +                     void *data);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      A convenience function to iterate all remaining fields of iter using the callback vtable provided by visitor.

      +
      +
      +

      Returns

      +

      Returns true if visitation was prematurely stopped by a callback function. Returns false either because all elements were visited or due to corrupt BSON.

      +

      See bson_visitor_t for examples of how to set your own callbacks to provide information about the location of corrupt or unsupported BSON document entries.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_data_reader_ingest.html b/libbson/1.24.4/bson_json_data_reader_ingest.html new file mode 100644 index 0000000000..972578884e --- /dev/null +++ b/libbson/1.24.4/bson_json_data_reader_ingest.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_json_data_reader_ingest() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_data_reader_ingest()

      +
      +

      Synopsis

      +
      void
      +bson_json_data_reader_ingest (bson_json_reader_t *reader,
      +                              const uint8_t *data,
      +                              size_t len);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • reader: A bson_json_reader_t.

      • +
      • data: A uint8_t containing data to feed.

      • +
      • len: A size_t containing the length of data.

      • +
      +
      +
      +

      Description

      +

      Feed data to a memory based json reader.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_data_reader_new.html b/libbson/1.24.4/bson_json_data_reader_new.html new file mode 100644 index 0000000000..a6fdefa1f6 --- /dev/null +++ b/libbson/1.24.4/bson_json_data_reader_new.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_json_data_reader_new() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_data_reader_new()

      +
      +

      Synopsis

      +
      bson_json_reader_t *
      +bson_json_data_reader_new (bool allow_multiple, size_t size);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • allow_multiple: Unused.

      • +
      • size: A requested buffer size.

      • +
      +
      +
      +

      Description

      +

      Creates a new streaming JSON reader that will convert JSON documents to BSON.

      +

      The allow_multiple parameter is unused.

      +
      +
      +

      Returns

      +

      A newly allocated bson_json_reader_t that should be freed with bson_json_reader_destroy().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_mode_t.html b/libbson/1.24.4/bson_json_mode_t.html new file mode 100644 index 0000000000..c3c3947fb2 --- /dev/null +++ b/libbson/1.24.4/bson_json_mode_t.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_json_mode_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_mode_t

      +

      BSON JSON encoding mode enumeration

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef enum {
      +   BSON_JSON_MODE_LEGACY,
      +   BSON_JSON_MODE_CANONICAL,
      +   BSON_JSON_MODE_RELAXED,
      +} bson_json_mode_t;
      +
      +
      +
      +
      +

      Description

      +

      The bson_json_mode_t enumeration contains all available modes for encoding BSON into MongoDB Extended JSON.

      +
      +

      See also

      + +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_opts_destroy.html b/libbson/1.24.4/bson_json_opts_destroy.html new file mode 100644 index 0000000000..db5bbcfcdd --- /dev/null +++ b/libbson/1.24.4/bson_json_opts_destroy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_json_opts_destroy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_opts_destroy()

      +
      +

      Synopsis

      +
      void
      +bson_json_opts_destroy (bson_json_opts_t *opts);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Destroys and releases all resources associated with opts. Does nothing if opts is NULL.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_opts_new.html b/libbson/1.24.4/bson_json_opts_new.html new file mode 100644 index 0000000000..d4ceeb460f --- /dev/null +++ b/libbson/1.24.4/bson_json_opts_new.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_json_opts_new() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_opts_new()

      +
      +

      Synopsis

      +
      bson_json_opts_t *
      +bson_json_opts_new (bson_json_mode_t mode, int32_t max_len);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • mode: A bson_json_mode_t.

      • +
      • max_len: An int32_t.

      • +
      +
      +
      +

      Description

      +

      The bson_json_opts_new() function shall create a new bson_json_opts_t using the mode and length supplied. The mode member is a bson_json_mode_t defining the encoding mode.

      +

      The max_len member holds a maximum length for the resulting JSON string. Encoding will stop once the serialised string has reached this length. To encode the full BSON document, BSON_MAX_LEN_UNLIMITED can be used.

      +
      +
      +

      Returns

      +

      A newly allocated bson_json_opts_t.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_opts_set_outermost_array.html b/libbson/1.24.4/bson_json_opts_set_outermost_array.html new file mode 100644 index 0000000000..075850afeb --- /dev/null +++ b/libbson/1.24.4/bson_json_opts_set_outermost_array.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_json_opts_set_outermost_array() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_opts_set_outermost_array()

      +
      +

      Synopsis

      +
      void
      +bson_json_opts_set_outermost_array (bson_json_opts_t *opts, bool is_outermost_array);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • opts: A bson_json_opts_t.

      • +
      • is_outermost_array: A value determining what we want to set the is_outermost_array variable to.

      • +
      +
      +
      +

      Description

      +

      The bson_json_opts_set_outermost_array() function shall set the is_outermost_array variable on the bson_json_opts_t parameter using the boolean provided.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_opts_t.html b/libbson/1.24.4/bson_json_opts_t.html new file mode 100644 index 0000000000..122b57c146 --- /dev/null +++ b/libbson/1.24.4/bson_json_opts_t.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + bson_json_opts_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_opts_t

      +

      BSON to JSON encoding options

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct _bson_json_opts_t bson_json_opts_t;
      +
      +bson_json_opts_t *
      +bson_json_opts_new (bson_json_mode_t mode, int32_t max_len);
      +
      +void
      +bson_json_opts_destroy (bson_json_opts_t *opts);
      +
      +
      +
      +
      +

      Description

      +

      The bson_json_opts_t structure contains options for encoding BSON into MongoDB Extended JSON.

      +

      The mode member is a bson_json_mode_t defining the encoding mode.

      +

      The max_len member holds a maximum length for the resulting JSON string. Encoding will stop once the serialised string has reached this length. To encode the full BSON document, BSON_MAX_LEN_UNLIMITED can be used.

      +
      +

      See also

      + +
      +
      +
      +

      Functions

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_reader_destroy.html b/libbson/1.24.4/bson_json_reader_destroy.html new file mode 100644 index 0000000000..5cf465d956 --- /dev/null +++ b/libbson/1.24.4/bson_json_reader_destroy.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_json_reader_destroy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_reader_destroy()

      +
      +

      Synopsis

      +
      void
      +bson_json_reader_destroy (bson_json_reader_t *reader);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Frees a bson_json_reader_t. Does nothing if reader is NULL.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_reader_new.html b/libbson/1.24.4/bson_json_reader_new.html new file mode 100644 index 0000000000..5060c44686 --- /dev/null +++ b/libbson/1.24.4/bson_json_reader_new.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_json_reader_new() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_reader_new()

      +
      +

      Synopsis

      +
      bson_json_reader_t *
      +bson_json_reader_new (void *data,
      +                      bson_json_reader_cb cb,
      +                      bson_json_destroy_cb dcb,
      +                      bool allow_multiple,
      +                      size_t buf_size);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • data: A user-defined pointer.

      • +
      • cb: A bson_json_reader_cb.

      • +
      • dcb: A bson_json_destroy_cb.

      • +
      • allow_multiple: Unused.

      • +
      • buf_size: A size_t containing the requested internal buffer size.

      • +
      +
      +
      +

      Description

      +

      Creates a new bson_json_reader_t that can read from an arbitrary data source in a streaming fashion.

      +

      The allow_multiple parameter is unused.

      +
      +
      +

      Returns

      +

      A newly allocated bson_json_reader_t that should be freed with bson_json_reader_destroy().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_reader_new_from_fd.html b/libbson/1.24.4/bson_json_reader_new_from_fd.html new file mode 100644 index 0000000000..0ef30874b3 --- /dev/null +++ b/libbson/1.24.4/bson_json_reader_new_from_fd.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_json_reader_new_from_fd() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_reader_new_from_fd()

      +
      +

      Synopsis

      +
      bson_json_reader_t *
      +bson_json_reader_new_from_fd (int fd, bool close_on_destroy);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • fd: An open file-descriptor.

      • +
      • close_on_destroy: Whether close() should be called on fd when the reader is destroyed.

      • +
      +
      +
      +

      Description

      +

      Creates a new JSON to BSON converter that will be reading from the file-descriptor fd.

      +
      +
      +

      Returns

      +

      A newly allocated bson_json_reader_t that should be freed with bson_json_reader_destroy().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_reader_new_from_file.html b/libbson/1.24.4/bson_json_reader_new_from_file.html new file mode 100644 index 0000000000..a7b964099d --- /dev/null +++ b/libbson/1.24.4/bson_json_reader_new_from_file.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_json_reader_new_from_file() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_reader_new_from_file()

      +
      +

      Synopsis

      +
      bson_json_reader_t *
      +bson_json_reader_new_from_file (const char *filename, bson_error_t *error);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • filename: A file-name in the system file-name encoding.

      • +
      • error: A bson_error_t.

      • +
      +
      +
      +

      Description

      +

      Creates a new bson_json_reader_t using the underlying file found at filename.

      +
      +
      +

      Errors

      +

      Errors are propagated via error.

      +
      +
      +

      Returns

      +

      A newly allocated bson_json_reader_t if successful, otherwise NULL and error is set.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_reader_read.html b/libbson/1.24.4/bson_json_reader_read.html new file mode 100644 index 0000000000..b7855a4761 --- /dev/null +++ b/libbson/1.24.4/bson_json_reader_read.html @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + bson_json_reader_read() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_reader_read()

      +
      +

      Synopsis

      +
      int
      +bson_json_reader_read (bson_json_reader_t *reader,
      +                       bson_t *bson,
      +                       bson_error_t *error);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Reads the next BSON document from the underlying JSON source.

      +
      +
      +

      Errors

      +

      Errors are propagated via the error parameter.

      +
      +
      +

      Returns

      +

      1 if successful and data was read. 0 if successful and no data was read. -1 if there was an error.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_json_reader_t.html b/libbson/1.24.4/bson_json_reader_t.html new file mode 100644 index 0000000000..e71bc96dd8 --- /dev/null +++ b/libbson/1.24.4/bson_json_reader_t.html @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + bson_json_reader_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_json_reader_t

      +

      Bulk JSON to BSON conversion

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct _bson_json_reader_t bson_json_reader_t;
      +
      +typedef enum {
      +   BSON_JSON_ERROR_READ_CORRUPT_JS = 1,
      +   BSON_JSON_ERROR_READ_INVALID_PARAM,
      +   BSON_JSON_ERROR_READ_CB_FAILURE,
      +} bson_json_error_code_t;
      +
      +
      +
      +
      +

      Description

      +

      The bson_json_reader_t structure is used for reading a sequence of JSON documents and transforming them to bson_t documents.

      +

      This can often be useful if you want to perform bulk operations that are defined in a file containing JSON documents.

      +
      +

      Tip

      +

      bson_json_reader_t works upon JSON documents formatted in MongoDB extended JSON format.

      +
      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      /*
      + * Copyright 2013 MongoDB, Inc.
      + *
      + * Licensed under the Apache License, Version 2.0 (the "License");
      + * you may not use this file except in compliance with the License.
      + * You may obtain a copy of the License at
      + *
      + *   http://www.apache.org/licenses/LICENSE-2.0
      + *
      + * Unless required by applicable law or agreed to in writing, software
      + * distributed under the License is distributed on an "AS IS" BASIS,
      + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      + * See the License for the specific language governing permissions and
      + * limitations under the License.
      + */
      +
      +
      +/*
      + * This program will print each JSON document contained in the provided files
      + * as a BSON string to STDOUT.
      + */
      +
      +
      +#include <bson/bson.h>
      +#include <stdlib.h>
      +#include <stdio.h>
      +
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_json_reader_t *reader;
      +   bson_error_t error;
      +   const char *filename;
      +   bson_t doc = BSON_INITIALIZER;
      +   int i;
      +   int b;
      +
      +   /*
      +    * Print program usage if no arguments are provided.
      +    */
      +   if (argc == 1) {
      +      fprintf (stderr, "usage: %s FILE...\n", argv[0]);
      +      return 1;
      +   }
      +
      +   /*
      +    * Process command line arguments expecting each to be a filename.
      +    */
      +   for (i = 1; i < argc; i++) {
      +      filename = argv[i];
      +
      +      /*
      +       * Open the filename provided in command line arguments.
      +       */
      +      if (0 == strcmp (filename, "-")) {
      +         reader = bson_json_reader_new_from_fd (STDIN_FILENO, false);
      +      } else {
      +         if (!(reader = bson_json_reader_new_from_file (filename, &error))) {
      +            fprintf (
      +               stderr, "Failed to open \"%s\": %s\n", filename, error.message);
      +            continue;
      +         }
      +      }
      +
      +      /*
      +       * Convert each incoming document to BSON and print to stdout.
      +       */
      +      while ((b = bson_json_reader_read (reader, &doc, &error))) {
      +         if (b < 0) {
      +            fprintf (stderr, "Error in json parsing:\n%s\n", error.message);
      +            abort ();
      +         }
      +
      +         if (fwrite (bson_get_data (&doc), 1, doc.len, stdout) != doc.len) {
      +            fprintf (stderr, "Failed to write to stdout, exiting.\n");
      +            exit (1);
      +         }
      +         bson_reinit (&doc);
      +      }
      +
      +      bson_json_reader_destroy (reader);
      +      bson_destroy (&doc);
      +   }
      +
      +   return 0;
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_malloc.html b/libbson/1.24.4/bson_malloc.html new file mode 100644 index 0000000000..b63d768c33 --- /dev/null +++ b/libbson/1.24.4/bson_malloc.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_malloc() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_malloc()

      +
      +

      Synopsis

      +
      void *
      +bson_malloc (size_t num_bytes);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • num_bytes: A size_t containing the number of bytes to allocate.

      • +
      +
      +
      +

      Description

      +

      This is a portable malloc() wrapper.

      +

      In general, this function will return an allocation at least sizeof(void*) bytes or bigger.

      +

      If there was a failure to allocate num_bytes bytes, the process will be aborted.

      +
      +

      Warning

      +

      This function will abort on failure to allocate memory.

      +
      +
      +
      +

      Returns

      +

      A pointer to a memory region which HAS NOT been zeroed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_malloc0.html b/libbson/1.24.4/bson_malloc0.html new file mode 100644 index 0000000000..868ba41a8c --- /dev/null +++ b/libbson/1.24.4/bson_malloc0.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_malloc0() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_malloc0()

      +
      +

      Synopsis

      +
      void *
      +bson_malloc0 (size_t num_bytes);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • num_bytes: A size_t.

      • +
      +
      +
      +

      Description

      +

      This is a portable malloc() wrapper that also sets the memory to zero. Similar to calloc().

      +

      In general, this function will return an allocation at least sizeof(void*) bytes or bigger.

      +

      If there was a failure to allocate num_bytes bytes, the process will be aborted.

      +
      +

      Warning

      +

      This function will abort on failure to allocate memory.

      +
      +
      +
      +

      Returns

      +

      A pointer to a memory region which HAS been zeroed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_mem_restore_vtable.html b/libbson/1.24.4/bson_mem_restore_vtable.html new file mode 100644 index 0000000000..a224f9b327 --- /dev/null +++ b/libbson/1.24.4/bson_mem_restore_vtable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_mem_restore_vtable() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_mem_restore_vtable()

      +
      +

      Synopsis

      +
      void
      +bson_mem_restore_vtable (void);
      +
      +
      +
      +
      +

      Description

      +

      This function shall restore the default memory allocator to be used by Libbson.

      +
      +

      Warning

      +

      This function MUST be called at the end of the process. Failure to do so will result in memory being freed by the wrong allocator.

      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_mem_set_vtable.html b/libbson/1.24.4/bson_mem_set_vtable.html new file mode 100644 index 0000000000..dc4a9cd7e6 --- /dev/null +++ b/libbson/1.24.4/bson_mem_set_vtable.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_mem_set_vtable() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_mem_set_vtable()

      +
      +

      Synopsis

      +
      typedef struct _bson_mem_vtable_t {
      +   void *(*malloc) (size_t num_bytes);
      +   void *(*calloc) (size_t n_members, size_t num_bytes);
      +   void *(*realloc) (void *mem, size_t num_bytes);
      +   void (*free) (void *mem);
      +   void *(*aligned_alloc) (size_t alignment, size_t num_bytes);
      +   void *padding[3];
      +} bson_mem_vtable_t;
      +
      +void
      +bson_mem_set_vtable (const bson_mem_vtable_t *vtable);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • vtable: A bson_mem_vtable_t with every non-padding field set.

      • +
      +
      +
      +

      Description

      +

      This function shall install a new memory allocator to be used by Libbson.

      +

      For backwards compatibility, if vtable->aligned_alloc is not set, calls to vtable->aligned_alloc will use vtable->malloc instead.

      +
      +

      Warning

      +

      This function MUST be called at the beginning of the process. Failure to do so will result in memory being freed by the wrong allocator.

      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_memory.html b/libbson/1.24.4/bson_memory.html new file mode 100644 index 0000000000..d2c25d85de --- /dev/null +++ b/libbson/1.24.4/bson_memory.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + Memory Management — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Memory Management

      +

      BSON Memory Abstraction.

      +
      +

      Description

      +

      Libbson contains a lightweight memory abstraction to make portability to new platforms easier. Additionally, it helps us integrate with interesting higher-level languages. One caveat, however, is that Libbson is not designed to deal with Out of Memory (OOM) situations. Doing so requires extreme diligence throughout the application stack that has rarely been implemented correctly. This may change in the future. As it stands now, Libbson will abort() under OOM situations.

      +

      To aid in language binding integration, Libbson allows for setting a custom memory allocator via bson_mem_set_vtable(). This allocation may be reversed via bson_mem_restore_vtable().

      +
      +
      +

      Functions

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_new.html b/libbson/1.24.4/bson_new.html new file mode 100644 index 0000000000..3f8ca37669 --- /dev/null +++ b/libbson/1.24.4/bson_new.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + bson_new() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_new()

      +
      +

      Synopsis

      +
      bson_t *
      +bson_new (void);
      +
      +
      +
      +
      +

      Description

      +

      The bson_new() function shall create a new bson_t structure on the heap. It should be freed with bson_destroy() when it is no longer in use.

      +
      +
      +

      Returns

      +

      A newly allocated bson_t that should be freed with bson_destroy().

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_new_from_buffer.html b/libbson/1.24.4/bson_new_from_buffer.html new file mode 100644 index 0000000000..db5a75940c --- /dev/null +++ b/libbson/1.24.4/bson_new_from_buffer.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + bson_new_from_buffer() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_new_from_buffer()

      +
      +

      Synopsis

      +
      bson_t *
      +bson_new_from_buffer (uint8_t **buf,
      +                      size_t *buf_len,
      +                      bson_realloc_func realloc_func,
      +                      void *realloc_func_ctx);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • buf: An out-pointer to a buffer containing a serialized BSON document, or to NULL.

      • +
      • buf_len: An out-pointer to the length of the buffer in bytes.

      • +
      • realloc_func: Optional bson_realloc_func for reallocating the buffer.

      • +
      • realloc_func_ctx: Optional pointer that will be passed as ctx to realloc_func.

      • +
      +
      +
      +

      Description

      +

      Creates a new bson_t using the data provided.

      +

      The realloc_func, if provided, is called to resize buf if the document is later expanded, for example by a call to one of the bson_append functions.

      +

      If *buf is initially NULL then it is allocated, using realloc_func or the default allocator, and initialized with an empty BSON document, and *buf_len is set to 5, the size of an empty document.

      +
      +
      +

      Returns

      +

      A newly-allocated bson_t on success, or NULL.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_new_from_data.html b/libbson/1.24.4/bson_new_from_data.html new file mode 100644 index 0000000000..a9710b0a08 --- /dev/null +++ b/libbson/1.24.4/bson_new_from_data.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + bson_new_from_data() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_new_from_data()

      +
      +

      Synopsis

      +
      bson_t *
      +bson_new_from_data (const uint8_t *data, size_t length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • data: A BSON encoded document buffer.

      • +
      • length: The length of data in bytes.

      • +
      +
      +
      +

      Description

      +

      The bson_new_from_data() function shall create a new bson_t on the heap and copy the contents of data. This may be helpful when working with language bindings but is generally expected to be slower.

      +
      +
      +

      Returns

      +

      A newly allocated bson_t if successful, otherwise NULL.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_new_from_json.html b/libbson/1.24.4/bson_new_from_json.html new file mode 100644 index 0000000000..9b7eba54a2 --- /dev/null +++ b/libbson/1.24.4/bson_new_from_json.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + bson_new_from_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_new_from_json()

      +
      +

      Synopsis

      +
      bson_t *
      +bson_new_from_json (const uint8_t *data, ssize_t len, bson_error_t *error);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • data: A UTF-8 encoded string containing valid JSON.

      • +
      • len: The length of data in bytes excluding a trailing \0 or -1 to determine the length with strlen().

      • +
      • error: An optional location for a bson_error_t.

      • +
      +
      +
      +

      Description

      +

      The bson_new_from_json() function allocates and initialize a new bson_t by parsing the JSON found in data. Only a single JSON object may exist in data or an error will be set and NULL returned.

      +
      +
      +

      Errors

      +

      Errors are propagated via the error parameter.

      +
      +
      +

      Returns

      +

      A newly allocated bson_t if successful, otherwise NULL and error is set.

      + + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_compare.html b/libbson/1.24.4/bson_oid_compare.html new file mode 100644 index 0000000000..f2bbee45ad --- /dev/null +++ b/libbson/1.24.4/bson_oid_compare.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_oid_compare() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_compare()

      +
      +

      Synopsis

      +
      int
      +bson_oid_compare (const bson_oid_t *oid1, const bson_oid_t *oid2);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_oid_compare() function shall return a qsort() style value of a lexicographical sort of oid1 and oid2.

      +
      +
      +

      Returns

      +

      less than 0, 0, or greater than 0 based on the comparison.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_copy.html b/libbson/1.24.4/bson_oid_copy.html new file mode 100644 index 0000000000..8b2588f3bf --- /dev/null +++ b/libbson/1.24.4/bson_oid_copy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_copy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_copy()

      +
      +

      Synopsis

      +
      void
      +bson_oid_copy (const bson_oid_t *src, bson_oid_t *dst);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Copies the contents of src into dst.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_equal.html b/libbson/1.24.4/bson_oid_equal.html new file mode 100644 index 0000000000..d13ce7518a --- /dev/null +++ b/libbson/1.24.4/bson_oid_equal.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_oid_equal() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_equal()

      +
      +

      Synopsis

      +
      bool
      +bson_oid_equal (const bson_oid_t *oid1, const bson_oid_t *oid2);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Checks if two bson_oid_t contain the same bytes.

      +
      +
      +

      Returns

      +

      true if they are equal, otherwise false.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_get_time_t.html b/libbson/1.24.4/bson_oid_get_time_t.html new file mode 100644 index 0000000000..f96ac8c368 --- /dev/null +++ b/libbson/1.24.4/bson_oid_get_time_t.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_oid_get_time_t() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_get_time_t()

      +
      +

      Synopsis

      +
      time_t
      +bson_oid_get_time_t (const bson_oid_t *oid);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the generation time in seconds since the UNIX Epoch of oid.

      +
      +
      +

      Returns

      +

      A time_t containing the seconds since the UNIX epoch of oid.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_hash.html b/libbson/1.24.4/bson_oid_hash.html new file mode 100644 index 0000000000..f7abe0a4a6 --- /dev/null +++ b/libbson/1.24.4/bson_oid_hash.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_oid_hash() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_hash()

      +
      +

      Synopsis

      +
      uint32_t
      +bson_oid_hash (const bson_oid_t *oid);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Generates a hash code for oid suitable for a hashtable.

      +
      +
      +

      Returns

      +

      A 32-bit hash code.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_init.html b/libbson/1.24.4/bson_oid_init.html new file mode 100644 index 0000000000..ed2e4f5215 --- /dev/null +++ b/libbson/1.24.4/bson_oid_init.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_init() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_init()

      +
      +

      Synopsis

      +
      void
      +bson_oid_init (bson_oid_t *oid, bson_context_t *context);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Generates a new bson_oid_t using either context or the default bson_context_t.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_init_from_data.html b/libbson/1.24.4/bson_oid_init_from_data.html new file mode 100644 index 0000000000..a97ceef2ef --- /dev/null +++ b/libbson/1.24.4/bson_oid_init_from_data.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_init_from_data() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_init_from_data()

      +
      +

      Synopsis

      +
      void
      +bson_oid_init_from_data (bson_oid_t *oid, const uint8_t *data);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • oid: A bson_oid_t.

      • +
      • data: A buffer containing 12 bytes for the oid.

      • +
      +
      +
      +

      Description

      +

      Initializes a bson_oid_t using the raw buffer provided.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_init_from_string.html b/libbson/1.24.4/bson_oid_init_from_string.html new file mode 100644 index 0000000000..f3b526b8d7 --- /dev/null +++ b/libbson/1.24.4/bson_oid_init_from_string.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_oid_init_from_string() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_init_from_string()

      +
      +

      Synopsis

      +
      void
      +bson_oid_init_from_string (bson_oid_t *oid, const char *str);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • oid: A bson_oid_t.

      • +
      • str: A string containing a hex encoded version of the oid.

      • +
      +
      +
      +

      Description

      +

      Parses the string containing hex encoded oid and initialize the bytes in oid.

      +
      +
      +

      Example

      +
      bson_oid_init_from_string (&oid, "012345678901234567890123");
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_init_sequence.html b/libbson/1.24.4/bson_oid_init_sequence.html new file mode 100644 index 0000000000..12a1520e97 --- /dev/null +++ b/libbson/1.24.4/bson_oid_init_sequence.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_oid_init_sequence() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_init_sequence()

      +
      +

      Warning

      +
      +

      Deprecated since version 1.14.0: This function is deprecated and should not be used in new code.

      +

      Please use bson_oid_init() in new code.

      +
      +
      +
      +

      Synopsis

      +
      void
      +bson_oid_init_sequence (bson_oid_t *oid, bson_context_t *context)
      +  BSON_GNUC_DEPRECATED_FOR (bson_oid_init);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Generates a new ObjectID with the next 64-bit sequence number in context. The first 4 bytes contain the current time and the following 8 contain the sequence number in big-endian format.

      +

      The bson_oid_t generated by this function is not guaranteed to be globally unique. Only unique within this context. It is however, guaranteed to be sequential.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_is_valid.html b/libbson/1.24.4/bson_oid_is_valid.html new file mode 100644 index 0000000000..cf02d3cc6c --- /dev/null +++ b/libbson/1.24.4/bson_oid_is_valid.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_oid_is_valid() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_is_valid()

      +
      +

      Synopsis

      +
      bool
      +bson_oid_is_valid (const char *str, size_t length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • str: A string.

      • +
      • length: The length of str.

      • +
      +
      +
      +

      Description

      +

      Checks if a string containing a hex encoded string is a valid BSON ObjectID.

      +
      +
      +

      Returns

      +

      true if str could be parsed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_t.html b/libbson/1.24.4/bson_oid_t.html new file mode 100644 index 0000000000..6f421d24d6 --- /dev/null +++ b/libbson/1.24.4/bson_oid_t.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + bson_oid_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_t

      +

      BSON ObjectID Abstraction

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct {
      +   uint8_t bytes[12];
      +} bson_oid_t;
      +
      +
      +
      +
      +

      Description

      +

      The bson_oid_t structure contains the 12-byte ObjectId notation defined by the BSON ObjectID specification.

      +

      ObjectId is a 12-byte BSON type, constructed using:

      +
        +
      • a 4-byte value representing the seconds since the Unix epoch (in Big Endian).

      • +
      • a 5-byte random value.

      • +
      • a 3-byte counter (Big Endian), starting with a random value.

      • +
      +
      +
      +

      String Conversion

      +

      You can convert an Object ID to a string using bson_oid_to_string() and back with bson_oid_init_from_string().

      +
      +
      +

      Hashing

      +

      A bson_oid_t can be used in hashtables using the function bson_oid_hash() and bson_oid_equal().

      +
      +
      +

      Comparing

      +

      A bson_oid_t can be compared to another using bson_oid_compare() for qsort() style comparing and bson_oid_equal() for direct equality.

      +
      +
      +

      Validating

      +

      You can validate that a string containing a hex-encoded ObjectID is valid using the function bson_oid_is_valid().

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +#include <stdio.h>
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_oid_t oid;
      +   char str[25];
      +
      +   bson_oid_init (&oid, NULL);
      +   bson_oid_to_string (&oid, str);
      +   printf ("%s\n", str);
      +
      +   if (bson_oid_is_valid (str, sizeof str)) {
      +      bson_oid_init_from_string (&oid, str);
      +   }
      +
      +   printf ("The UNIX time was: %u\n", (unsigned) bson_oid_get_time_t (&oid));
      +
      +   return 0;
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_oid_to_string.html b/libbson/1.24.4/bson_oid_to_string.html new file mode 100644 index 0000000000..a84d0c5353 --- /dev/null +++ b/libbson/1.24.4/bson_oid_to_string.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_to_string() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_oid_to_string()

      +
      +

      Synopsis

      +
      void
      +bson_oid_to_string (const bson_oid_t *oid, char str[25]);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • oid: A bson_oid_t.

      • +
      • str: A location for the resulting string.

      • +
      +
      +
      +

      Description

      +

      Converts oid into a hex encoded string.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_destroy.html b/libbson/1.24.4/bson_reader_destroy.html new file mode 100644 index 0000000000..44bcf3cdf1 --- /dev/null +++ b/libbson/1.24.4/bson_reader_destroy.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_reader_destroy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_destroy()

      +
      +

      Synopsis

      +
      void
      +bson_reader_destroy (bson_reader_t *reader);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Destroys and releases all resources associated with reader. Does nothing if reader is NULL.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_destroy_func_t.html b/libbson/1.24.4/bson_reader_destroy_func_t.html new file mode 100644 index 0000000000..d82a152e74 --- /dev/null +++ b/libbson/1.24.4/bson_reader_destroy_func_t.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_reader_destroy_func_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_destroy_func_t

      +
      +

      Synopsis

      +
      typedef void (*bson_reader_destroy_func_t) (void *handle);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      An optional callback function that will be called when a bson_reader_t created with bson_reader_new_from_handle() is destroyed with bson_reader_destroy().

      +

      The handle used when creating the reader is passed to this callback.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_new_from_data.html b/libbson/1.24.4/bson_reader_new_from_data.html new file mode 100644 index 0000000000..655d59f7b0 --- /dev/null +++ b/libbson/1.24.4/bson_reader_new_from_data.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_reader_new_from_data() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_new_from_data()

      +
      +

      Synopsis

      +
      bson_reader_t *
      +bson_reader_new_from_data (const uint8_t *data, size_t length);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • data: A uint8_t.

      • +
      • length: A size_t.

      • +
      +
      +
      +

      Description

      +

      The bson_reader_new_from_data() function shall create a new bson_reader_t using the buffer supplied. data is not copied and MUST be valid for the lifetime of the resulting bson_reader_t.

      +
      +
      +

      Returns

      +

      A newly allocated bson_reader_t.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_new_from_fd.html b/libbson/1.24.4/bson_reader_new_from_fd.html new file mode 100644 index 0000000000..504a294926 --- /dev/null +++ b/libbson/1.24.4/bson_reader_new_from_fd.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_reader_new_from_fd() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_new_from_fd()

      +
      +

      Synopsis

      +
      bson_reader_t *
      +bson_reader_new_from_fd (int fd, bool close_on_destroy);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • fd: A valid file-descriptor.

      • +
      • close_on_destroy: Whether close() should be called on fd when the reader is destroyed.

      • +
      +
      +
      +

      Description

      +

      The bson_reader_new_from_fd() function shall create a new bson_reader_t that will read from the provided file-descriptor.

      +

      fd MUST be in blocking mode.

      +

      If close_fd is true, then fd will be closed when the bson_reader_t is destroyed with bson_reader_destroy().

      +
      +
      +

      Returns

      +

      A newly allocated bson_reader_t that should be freed with bson_reader_destroy().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_new_from_file.html b/libbson/1.24.4/bson_reader_new_from_file.html new file mode 100644 index 0000000000..9404bc97f8 --- /dev/null +++ b/libbson/1.24.4/bson_reader_new_from_file.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_reader_new_from_file() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_new_from_file()

      +
      +

      Synopsis

      +
      bson_reader_t *
      +bson_reader_new_from_file (const char *path, bson_error_t *error);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • path: A filename in the host filename encoding.

      • +
      • error: A bson_error_t.

      • +
      +
      +
      +

      Description

      +

      Creates a new bson_reader_t using the file denoted by filename.

      +
      +
      +

      Errors

      +

      Errors are propagated via the error parameter.

      +
      +
      +

      Returns

      +

      A newly allocated bson_reader_t on success, otherwise NULL and error is set.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_new_from_handle.html b/libbson/1.24.4/bson_reader_new_from_handle.html new file mode 100644 index 0000000000..11c4e035e2 --- /dev/null +++ b/libbson/1.24.4/bson_reader_new_from_handle.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_reader_new_from_handle() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_new_from_handle()

      +
      +

      Synopsis

      +
      bson_reader_t *
      +bson_reader_new_from_handle (void *handle,
      +                             bson_reader_read_func_t rf,
      +                             bson_reader_destroy_func_t df);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      This function allows for a pluggable data stream for the reader. This can be used to read from sockets, files, memory, or other arbitrary sources.

      +
      +
      +

      Returns

      +

      A newly allocated bson_reader_t if successful; otherwise NULL.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_read.html b/libbson/1.24.4/bson_reader_read.html new file mode 100644 index 0000000000..fed2434786 --- /dev/null +++ b/libbson/1.24.4/bson_reader_read.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + bson_reader_read() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_read()

      +
      +

      Synopsis

      +
      const bson_t *
      +bson_reader_read (bson_reader_t *reader, bool *reached_eof);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      The bson_reader_read() function shall read the next document from the underlying file-descriptor or buffer.

      +

      If there are no further documents or a failure was detected, then NULL is returned.

      +

      If we reached the end of the sequence, reached_eof is set to true.

      +

      To detect an error, check for NULL and reached_of is false.

      +
      +
      +

      Returns

      +

      A bson_t that should not be modified or freed.

      +
      +
      +

      Example

      +
      const bson_t *doc;
      +bool reached_eof = false;
      +
      +while ((doc = bson_reader_read (reader, &reached_eof))) {
      +   /* do something */
      +}
      +
      +if (!reached_eof) {
      +   fprintf (stderr, "Failed to read all documents.\n");
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_read_func_t.html b/libbson/1.24.4/bson_reader_read_func_t.html new file mode 100644 index 0000000000..2e1e0d6959 --- /dev/null +++ b/libbson/1.24.4/bson_reader_read_func_t.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_reader_read_func_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_read_func_t

      +
      +

      Synopsis

      +
      typedef ssize_t (*bson_reader_read_func_t) (void *handle,
      +                                            void *buf,
      +                                            size_t count);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • handle: The handle to read from.

      • +
      • buf: The buffer to read into.

      • +
      • count: The number of bytes to read.

      • +
      +
      +
      +

      Description

      +

      A callback function that will be called by bson_reader_t to read the next chunk of data from the underlying opaque file descriptor.

      +

      This function is meant to operate similar to the read(2) function as part of libc on UNIX-like systems.

      +
      +
      +

      Returns

      +

      0 for end of stream.

      +

      -1 for a failure on read.

      +

      A value greater than zero for the number of bytes read into buf.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_reset.html b/libbson/1.24.4/bson_reader_reset.html new file mode 100644 index 0000000000..5076104615 --- /dev/null +++ b/libbson/1.24.4/bson_reader_reset.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_reader_reset() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_reset()

      +
      +

      Synopsis

      +
      void
      +bson_reader_reset (bson_reader_t *reader);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Seeks to the beginning of the underlying buffer. Valid only for a reader created from a buffer with bson_reader_new_from_data(), not one created from a file, file descriptor, or handle.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_set_destroy_func.html b/libbson/1.24.4/bson_reader_set_destroy_func.html new file mode 100644 index 0000000000..498f106641 --- /dev/null +++ b/libbson/1.24.4/bson_reader_set_destroy_func.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_reader_set_destroy_func() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_set_destroy_func()

      +
      +

      Synopsis

      +
      void
      +bson_reader_set_destroy_func (bson_reader_t *reader,
      +                              bson_reader_destroy_func_t func);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Allows for setting a callback to be executed when a reader is destroyed. This should only be used by implementations implementing their own read callbacks.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_set_read_func.html b/libbson/1.24.4/bson_reader_set_read_func.html new file mode 100644 index 0000000000..bc846dd28d --- /dev/null +++ b/libbson/1.24.4/bson_reader_set_read_func.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_reader_set_read_func() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_set_read_func()

      +
      +

      Synopsis

      +
      void
      +bson_reader_set_read_func (bson_reader_t *reader, bson_reader_read_func_t func);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Sets the function to read more data from the underlying stream in a custom bson_reader_t.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_t.html b/libbson/1.24.4/bson_reader_t.html new file mode 100644 index 0000000000..b068d83cd7 --- /dev/null +++ b/libbson/1.24.4/bson_reader_t.html @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + bson_reader_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_t

      +

      Streaming BSON Document Reader

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct _bson_reader_t bson_reader_t;
      +
      +bson_reader_t *
      +bson_reader_new_from_handle (void *handle,
      +                             bson_reader_read_func_t rf,
      +                             bson_reader_destroy_func_t df);
      +bson_reader_t *
      +bson_reader_new_from_fd (int fd, bool close_on_destroy);
      +bson_reader_t *
      +bson_reader_new_from_file (const char *path, bson_error_t *error);
      +bson_reader_t *
      +bson_reader_new_from_data (const uint8_t *data, size_t length);
      +
      +void
      +bson_reader_destroy (bson_reader_t *reader);
      +
      +
      +
      +
      +

      Description

      +

      bson_reader_t is a structure used for reading a sequence of BSON documents. The sequence can come from a file-descriptor, memory region, or custom callbacks.

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      /*
      + * Copyright 2013 MongoDB, Inc.
      + *
      + * Licensed under the Apache License, Version 2.0 (the "License");
      + * you may not use this file except in compliance with the License.
      + * You may obtain a copy of the License at
      + *
      + *   http://www.apache.org/licenses/LICENSE-2.0
      + *
      + * Unless required by applicable law or agreed to in writing, software
      + * distributed under the License is distributed on an "AS IS" BASIS,
      + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      + * See the License for the specific language governing permissions and
      + * limitations under the License.
      + */
      +
      +
      +/*
      + * This program will print each BSON document contained in the provided files
      + * as a JSON string to STDOUT.
      + */
      +
      +
      +#include <bson/bson.h>
      +#include <stdio.h>
      +
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_reader_t *reader;
      +   const bson_t *b;
      +   bson_error_t error;
      +   const char *filename;
      +   char *str;
      +   int i;
      +
      +   /*
      +    * Print program usage if no arguments are provided.
      +    */
      +   if (argc == 1) {
      +      fprintf (stderr, "usage: %s [FILE | -]...\nUse - for STDIN.\n", argv[0]);
      +      return 1;
      +   }
      +
      +   /*
      +    * Process command line arguments expecting each to be a filename.
      +    */
      +   for (i = 1; i < argc; i++) {
      +      filename = argv[i];
      +
      +      if (strcmp (filename, "-") == 0) {
      +         reader = bson_reader_new_from_fd (STDIN_FILENO, false);
      +      } else {
      +         if (!(reader = bson_reader_new_from_file (filename, &error))) {
      +            fprintf (
      +               stderr, "Failed to open \"%s\": %s\n", filename, error.message);
      +            continue;
      +         }
      +      }
      +
      +      /*
      +       * Convert each incoming document to JSON and print to stdout.
      +       */
      +      while ((b = bson_reader_read (reader, NULL))) {
      +         str = bson_as_canonical_extended_json (b, NULL);
      +         fprintf (stdout, "%s\n", str);
      +         bson_free (str);
      +      }
      +
      +      /*
      +       * Cleanup after our reader, which closes the file descriptor.
      +       */
      +      bson_reader_destroy (reader);
      +   }
      +
      +   return 0;
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reader_tell.html b/libbson/1.24.4/bson_reader_tell.html new file mode 100644 index 0000000000..f9302171b7 --- /dev/null +++ b/libbson/1.24.4/bson_reader_tell.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_reader_tell() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reader_tell()

      +
      +

      Synopsis

      +
      off_t
      +bson_reader_tell (bson_reader_t *reader);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Tells the current position within the underlying stream.

      +
      +
      +

      Returns

      +

      -1 on failure, otherwise the offset within the underlying stream.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_realloc.html b/libbson/1.24.4/bson_realloc.html new file mode 100644 index 0000000000..445058f293 --- /dev/null +++ b/libbson/1.24.4/bson_realloc.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_realloc() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_realloc()

      +
      +

      Synopsis

      +
      void *
      +bson_realloc (void *mem, size_t num_bytes);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • mem: A memory region.

      • +
      • num_bytes: A size_t containing the new requested size.

      • +
      +
      +
      +

      Description

      +

      This is a portable realloc() wrapper.

      +

      In general, this function will return an allocation at least sizeof(void*) bytes or bigger. If num_bytes is 0, then the allocation will be freed.

      +

      If there was a failure to allocate num_bytes bytes, the process will be aborted.

      +
      +

      Warning

      +

      This function will abort on failure to allocate memory.

      +
      +
      +
      +

      Returns

      +

      A pointer to a memory region which HAS NOT been zeroed.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_realloc_ctx.html b/libbson/1.24.4/bson_realloc_ctx.html new file mode 100644 index 0000000000..20ae72e3da --- /dev/null +++ b/libbson/1.24.4/bson_realloc_ctx.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_realloc_ctx() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_realloc_ctx()

      +
      +

      Synopsis

      +
      void *
      +bson_realloc_ctx (void *mem, size_t num_bytes, void *ctx);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • mem: A memory region.

      • +
      • num_bytes: A size_t containing the requested size.

      • +
      • ctx: A consumer-specific pointer or NULL.

      • +
      +
      +
      +

      Description

      +

      This function is identical to bson_realloc() except it takes a context parameter. This is useful when working with pooled or specific memory allocators.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_realloc_func.html b/libbson/1.24.4/bson_realloc_func.html new file mode 100644 index 0000000000..2c5a03207a --- /dev/null +++ b/libbson/1.24.4/bson_realloc_func.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_realloc_func — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_realloc_func

      +
      +

      Synopsis

      +
      typedef void *(*bson_realloc_func) (void *mem, size_t num_bytes, void *ctx);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • mem: A memory region.

      • +
      • num_bytes: A size_t containing the requested size.

      • +
      • ctx: A consumer-specific pointer or NULL.

      • +
      +
      +
      +

      Description

      +

      This is a prototype for pluggable realloc functions used through the Libbson library. If you wish to use a custom allocator this is one way to do it. Additionally, bson_realloc_ctx() is a default implementation of this prototype.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reinit.html b/libbson/1.24.4/bson_reinit.html new file mode 100644 index 0000000000..eb2d50d622 --- /dev/null +++ b/libbson/1.24.4/bson_reinit.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + bson_reinit() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reinit()

      +
      +

      Synopsis

      +
      void
      +bson_reinit (bson_t *b);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Reinitializes a bson_t.

      +

      If the bson_t structure contains a malloc()’d buffer, it may be reused. To be certain that any buffer is freed, always call bson_destroy() on any bson_t structure, whether initialized or reinitialized, after its final use.

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_reserve_buffer.html b/libbson/1.24.4/bson_reserve_buffer.html new file mode 100644 index 0000000000..6d0faf77b7 --- /dev/null +++ b/libbson/1.24.4/bson_reserve_buffer.html @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + bson_reserve_buffer() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_reserve_buffer()

      +
      +

      Synopsis

      +
      uint8_t *
      +bson_reserve_buffer (bson_t *bson, uint32_t size);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: An initialized bson_t.

      • +
      • size: The length in bytes of the new buffer.

      • +
      +
      +
      +

      Description

      +

      Grow the internal buffer of bson to size and set the document length to size. Useful for eliminating copies when reading BSON bytes from a stream.

      +

      First, initialize bson with bson_init() or bson_new(), then call this function. After it returns, the length of bson is set to size but its contents are uninitialized memory: you must fill the contents with a BSON document of the correct length before any other operations.

      +

      The document must be freed with bson_destroy().

      +
      +
      +

      Returns

      +

      A pointer to the internal buffer, which is at least size bytes, or NULL if the space could not be allocated.

      +
      +
      +

      Example

      +

      Use bson_reserve_buffer to write a function that takes a bson_t pointer and reads a file into it directly:

      +
      #include <stdio.h>
      +#include <bson/bson.h>
      +
      +bool
      +read_into (bson_t *bson, FILE *fp)
      +{
      +   uint8_t *buffer;
      +   long size;
      +
      +   if (fseek (fp, 0L, SEEK_END) < 0) {
      +      perror ("Couldn't get file size");
      +      return 1;
      +   }
      +
      +   size = ftell (fp);
      +   if (size == EOF) {
      +      perror ("Couldn't get file size");
      +      return 1;
      +   }
      +
      +   if (size > INT32_MAX) {
      +      fprintf (stderr, "File too large\n");
      +      return 1;
      +   }
      +
      +   /* reserve buffer space - bson is temporarily invalid */
      +   buffer = bson_reserve_buffer (bson, (uint32_t) size);
      +   if (!buffer) {
      +      fprintf (stderr, "Couldn't reserve %ld bytes", size);
      +      return false;
      +   }
      +
      +   /* read file directly into the buffer */
      +   rewind (fp);
      +   if (fread ((void *) buffer, 1, (size_t) size, fp) < (size_t) size) {
      +      perror ("Couldn't read file");
      +      return false;
      +   }
      +
      +   return true;
      +}
      +
      +int
      +main ()
      +{
      +   FILE *fp;
      +   char *json;
      +
      +   /* stack-allocated, initialized bson_t */
      +   bson_t bson = BSON_INITIALIZER;
      +
      +   if (!(fp = fopen ("document.bson", "rb"))) {
      +      perror ("Couldn't read file");
      +      return 1;
      +   }
      +
      +   read_into (&bson, fp);
      +   fclose (fp);
      +
      +   json = bson_as_canonical_extended_json (&bson, NULL);
      +   printf ("%s\n", json);
      +
      +   bson_free (json);
      +   bson_destroy (&bson);
      +
      +   return 0;
      +}
      +
      +
      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_set_error.html b/libbson/1.24.4/bson_set_error.html new file mode 100644 index 0000000000..b643c67433 --- /dev/null +++ b/libbson/1.24.4/bson_set_error.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_set_error() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_set_error()

      +
      +

      Synopsis

      +
      void
      +bson_set_error (
      +   bson_error_t *error, uint32_t domain, uint32_t code, const char *format, ...)
      +   BSON_GNUC_PRINTF (4, 5);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • error: A bson_error_t.

      • +
      • domain: A uint32_t.

      • +
      • code: A uint32_t.

      • +
      • format: A printf() style format string.

      • +
      +
      +
      +

      Description

      +

      This is a helper function to set the parameters of a bson_error_t. It handles the case where error is NULL by doing nothing.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_sized_new.html b/libbson/1.24.4/bson_sized_new.html new file mode 100644 index 0000000000..258364884c --- /dev/null +++ b/libbson/1.24.4/bson_sized_new.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + bson_sized_new() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_sized_new()

      +
      +

      Synopsis

      +
      bson_t *
      +bson_sized_new (size_t size);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • size: The size to pre-allocate for the underlying buffer.

      • +
      +
      +
      +

      Description

      +

      The bson_sized_new() function shall create a new bson_t on the heap with a preallocated buffer. This is useful if you have a good idea of the size of the resulting document.

      +
      +
      +

      Returns

      +

      A newly allocated bson_t that should be freed with bson_destroy().

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_snprintf.html b/libbson/1.24.4/bson_snprintf.html new file mode 100644 index 0000000000..717f125a70 --- /dev/null +++ b/libbson/1.24.4/bson_snprintf.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_snprintf() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_snprintf()

      +
      +

      Synopsis

      +
      int
      +bson_snprintf (char *str, size_t size, const char *format, ...)
      +   BSON_GNUC_PRINTF (3, 4);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • str: The destination buffer.

      • +
      • size: The size of str.

      • +
      • format: A printf style format string.

      • +
      +
      +
      +

      Description

      +

      This is a portable wrapper around snprintf(). It also enforces a trailing \0 in the resulting string.

      +
      +
      +

      Returns

      +

      The number of bytes written to str.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_steal.html b/libbson/1.24.4/bson_steal.html new file mode 100644 index 0000000000..38432189b9 --- /dev/null +++ b/libbson/1.24.4/bson_steal.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + bson_steal() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_steal()

      +
      +

      Synopsis

      +
      bool
      +bson_steal (bson_t *dst, bson_t *src);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Efficiently transfer the contents of src to dst and destroy src.

      +

      Before calling this function, src must be initialized and dst must be uninitialized. After this function returns successfully, src is destroyed, and dst is initialized and must be freed with bson_destroy().

      +

      For example, if you have a higher-level structure that wraps a bson_t, use bson_steal to transfer BSON data into it:

      +
      typedef struct {
      +   bson_t bson;
      +} bson_wrapper_t;
      +
      +
      +bson_wrapper_t *
      +wrap_bson (bson_t *b)
      +{
      +   bson_wrapper_t *wrapper = bson_malloc (sizeof (bson_wrapper_t));
      +
      +   if (bson_steal (&wrapper->bson, b)) {
      +      return wrapper;
      +   }
      +
      +   bson_free (wrapper);
      +   return NULL;
      +}
      +
      +
      +void
      +bson_wrapper_destroy (bson_wrapper_t *wrapper)
      +{
      +   bson_destroy (&wrapper->bson);
      +   bson_free (wrapper);
      +}
      +
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_t bson = BSON_INITIALIZER;
      +   bson_wrapper_t *wrapper;
      +
      +   BSON_APPEND_UTF8 (&bson, "key", "value");
      +
      +   /* now "bson" is destroyed */
      +   wrapper = wrap_bson (&bson);
      +
      +   /* clean up */
      +   bson_wrapper_destroy (wrapper);
      +}
      +
      +
      +
      +
      +

      Returns

      +

      Returns true if src was successfully moved to dst, false if src is invalid, or was statically initialized, or another error occurred.

      +
      +

      See also

      +
      +
      bson_destroy_with_steal(), a lower-level function that returns the raw contents of a bson_t.
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strcasecmp.html b/libbson/1.24.4/bson_strcasecmp.html new file mode 100644 index 0000000000..7bdcf29980 --- /dev/null +++ b/libbson/1.24.4/bson_strcasecmp.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_strcasecmp() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strcasecmp()

      +
      +

      Synopsis

      +
      int
      +bson_strcasecmp (const char *s1, const char *s2);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • s1: A string.

      • +
      • s2: A string.

      • +
      +
      +
      +

      Description

      +

      A portable version of strcasecmp().

      +
      +
      +

      Returns

      +

      Returns a negative integer if s1 sorts lexicographically before s2, a positive +integer if it sorts after, or 0 if they are equivalent, after translating both +strings to lower case.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strdup.html b/libbson/1.24.4/bson_strdup.html new file mode 100644 index 0000000000..05a9633ba9 --- /dev/null +++ b/libbson/1.24.4/bson_strdup.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_strdup() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strdup()

      +
      +

      Synopsis

      +
      char *
      +bson_strdup (const char *str);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • str: A string.

      • +
      +
      +
      +

      Description

      +

      Copies str into a new string. If str is NULL, then NULL is returned.

      +
      +
      +

      Returns

      +

      A newly allocated string that should be freed with bson_free().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strdup_printf.html b/libbson/1.24.4/bson_strdup_printf.html new file mode 100644 index 0000000000..c972af8c5e --- /dev/null +++ b/libbson/1.24.4/bson_strdup_printf.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_strdup_printf() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strdup_printf()

      +
      +

      Synopsis

      +
      char *
      +bson_strdup_printf (const char *format, ...) BSON_GNUC_PRINTF (1, 2);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • format: A printf style format string.

      • +
      +
      +
      +

      Description

      +

      This function performs a printf style format but into a newly allocated string.

      +
      +
      +

      Returns

      +

      A newly allocated string that should be freed with bson_free().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strdupv_printf.html b/libbson/1.24.4/bson_strdupv_printf.html new file mode 100644 index 0000000000..62dce6a820 --- /dev/null +++ b/libbson/1.24.4/bson_strdupv_printf.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_strdupv_printf() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strdupv_printf()

      +
      +

      Synopsis

      +
      char *
      +bson_strdupv_printf (const char *format, va_list args) BSON_GNUC_PRINTF (1, 0);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • format: A printf style format string.

      • +
      • args: A va_list.

      • +
      +
      +
      +

      Description

      +

      This function is like bson_strdup_printf() except takes a va_list of parameters.

      +
      +
      +

      Returns

      +

      A newly allocated string that should be freed with bson_free().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strerror_r.html b/libbson/1.24.4/bson_strerror_r.html new file mode 100644 index 0000000000..3a0239d7cd --- /dev/null +++ b/libbson/1.24.4/bson_strerror_r.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_strerror_r() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strerror_r()

      +
      +

      Synopsis

      +
      char *
      +bson_strerror_r (int err_code, char *buf, size_t buflen);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • err_code: An errno.

      • +
      • buf: A location to store the string.

      • +
      • buflen: The size of buf.

      • +
      +
      +
      +

      Description

      +

      This is a portability wrapper around strerror().

      +
      +
      +

      Returns

      +

      The passed in buf parameter or an internal string.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strfreev.html b/libbson/1.24.4/bson_strfreev.html new file mode 100644 index 0000000000..abab729219 --- /dev/null +++ b/libbson/1.24.4/bson_strfreev.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_strfreev() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strfreev()

      +
      +

      Synopsis

      +
      void
      +bson_strfreev (char **strv);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • strv: A NULL-terminated array of strings to free, including the array.

      • +
      +
      +
      +

      Description

      +

      This will free each string in a NULL-terminated array of strings and then the array itself.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_string_append.html b/libbson/1.24.4/bson_string_append.html new file mode 100644 index 0000000000..ca4a992235 --- /dev/null +++ b/libbson/1.24.4/bson_string_append.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_string_append() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_string_append()

      +
      +

      Synopsis

      +
      void
      +bson_string_append (bson_string_t *string, const char *str);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Appends the ASCII or UTF-8 encoded string str to string. This is not suitable for embedding NULLs in strings.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_string_append_c.html b/libbson/1.24.4/bson_string_append_c.html new file mode 100644 index 0000000000..f561ee8ebb --- /dev/null +++ b/libbson/1.24.4/bson_string_append_c.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_string_append_c() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_string_append_c()

      +
      +

      Synopsis

      +
      void
      +bson_string_append_c (bson_string_t *string, char str);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Appends c to the string builder string.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_string_append_printf.html b/libbson/1.24.4/bson_string_append_printf.html new file mode 100644 index 0000000000..2874dd9432 --- /dev/null +++ b/libbson/1.24.4/bson_string_append_printf.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_string_append_printf() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_string_append_printf()

      +
      +

      Synopsis

      +
      void
      +bson_string_append_printf (bson_string_t *string, const char *format, ...)
      +   BSON_GNUC_PRINTF (2, 3);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • string: A bson_string_t.

      • +
      • format: A printf style format string.

      • +
      +
      +
      +

      Description

      +

      Like bson_string_append() but formats a printf style string and then appends that to string.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_string_append_unichar.html b/libbson/1.24.4/bson_string_append_unichar.html new file mode 100644 index 0000000000..f20982e745 --- /dev/null +++ b/libbson/1.24.4/bson_string_append_unichar.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_string_append_unichar() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_string_append_unichar()

      +
      +

      Synopsis

      +
      void
      +bson_string_append_unichar (bson_string_t *string, bson_unichar_t unichar);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Appends a unicode character to string. The character will be encoded into its multi-byte UTF-8 representation.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_string_free.html b/libbson/1.24.4/bson_string_free.html new file mode 100644 index 0000000000..aefbf90ed2 --- /dev/null +++ b/libbson/1.24.4/bson_string_free.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_string_free() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_string_free()

      +
      +

      Synopsis

      +
      char *
      +bson_string_free (bson_string_t *string, bool free_segment);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • string: A bson_string_t.

      • +
      • free_segment: A bool indicating whether string->str should be freed.

      • +
      +
      +
      +

      Description

      +

      Frees the bson_string_t structure and optionally string->str.

      +
      +
      +

      Returns

      +

      string->str if free_segment is false, otherwise NULL.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_string_new.html b/libbson/1.24.4/bson_string_new.html new file mode 100644 index 0000000000..3e24926991 --- /dev/null +++ b/libbson/1.24.4/bson_string_new.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_string_new() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_string_new()

      +
      +

      Synopsis

      +
      bson_string_t *
      +bson_string_new (const char *str);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • str: A string to be copied or NULL.

      • +
      +
      +
      +

      Description

      +

      Creates a new string builder, which uses power-of-two growth of buffers. Use the various bson_string_append*() functions to append to the string.

      +
      +
      +

      Returns

      +

      A newly allocated bson_string_t that should be freed with bson_string_free() when no longer in use.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_string_t.html b/libbson/1.24.4/bson_string_t.html new file mode 100644 index 0000000000..176b63a5f7 --- /dev/null +++ b/libbson/1.24.4/bson_string_t.html @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + bson_string_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_string_t

      +

      String Building Abstraction

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct {
      +   char *str;
      +   uint32_t len;
      +   uint32_t alloc;
      +} bson_string_t;
      +
      +
      +
      +
      +

      Description

      +

      bson_string_t is an abstraction for building strings. As chunks are added to the string, allocations are performed in powers of two.

      +

      This API is useful if you need to build UTF-8 encoded strings.

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      bson_string_t *str;
      +
      +str = bson_string_new (NULL);
      +bson_string_append_printf (str, "%d %s %f\n", 0, "some string", 0.123);
      +printf ("%s\n", str->str);
      +
      +bson_string_free (str, true);
      +
      +
      +
      +

      Tip

      +

      You can call bson_string_free() with false if you would like to take ownership of str->str. Some APIs that do this might call return bson_string_free (str, false); after building the string.

      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_string_truncate.html b/libbson/1.24.4/bson_string_truncate.html new file mode 100644 index 0000000000..61fa1d60b1 --- /dev/null +++ b/libbson/1.24.4/bson_string_truncate.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_string_truncate() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_string_truncate()

      +
      +

      Synopsis

      +
      void
      +bson_string_truncate (bson_string_t *string, uint32_t len);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • string: A bson_string_t.

      • +
      • len: The new length of the string, excluding the trailing \0.

      • +
      +
      +
      +

      Description

      +

      Truncates the string so that it is len bytes in length. This must be smaller or equal to the current length of the string.

      +

      A \0 byte will be placed where the end of the string occurs.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strncpy.html b/libbson/1.24.4/bson_strncpy.html new file mode 100644 index 0000000000..adb31283b0 --- /dev/null +++ b/libbson/1.24.4/bson_strncpy.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_strncpy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strncpy()

      +
      +

      Synopsis

      +
      void
      +bson_strncpy (char *dst, const char *src, size_t size);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • dst: The destination buffer.

      • +
      • src: The src buffer.

      • +
      • size: The number of bytes to copy into dst, which must be at least that size.

      • +
      +
      +
      +

      Description

      +

      Copies up to size bytes from src into dst. dst must be at least size bytes in size. A trailing \0 is always set.

      +

      Does nothing if size is zero.

      +

      bson_strncpy matches the behavior of the C11 standard strncpy_s, rather than strncpy. This means that bson_strncpy always writes a null terminator to dst, even if dst is too short to fit the entire string from src. If there is additional space left in dst after copying src, bson_strncpy does not fill the remaining space with null characters.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strndup.html b/libbson/1.24.4/bson_strndup.html new file mode 100644 index 0000000000..bebe9bc108 --- /dev/null +++ b/libbson/1.24.4/bson_strndup.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_strndup() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strndup()

      +
      +

      Synopsis

      +
      char *
      +bson_strndup (const char *str, size_t n_bytes);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • str: A string to copy.

      • +
      • n_bytes: A size_t.

      • +
      +
      +
      +

      Description

      +

      Allocates a new string and copies up to n_bytes from str into it. A trailing \0 is always set.

      +
      +
      +

      Returns

      +

      A newly allocated string that should be freed with bson_free().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_strnlen.html b/libbson/1.24.4/bson_strnlen.html new file mode 100644 index 0000000000..c8fecc8a4c --- /dev/null +++ b/libbson/1.24.4/bson_strnlen.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_strnlen() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_strnlen()

      +
      +

      Synopsis

      +
      size_t
      +bson_strnlen (const char *s, size_t maxlen);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • s: A string.

      • +
      • maxlen: The maximum size of string to check.

      • +
      +
      +
      +

      Description

      +

      A portable version of strnlen().

      +
      +
      +

      Returns

      +

      The length of s in bytes or maxlen if no \0 was found.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_subtype_t.html b/libbson/1.24.4/bson_subtype_t.html new file mode 100644 index 0000000000..6c73027124 --- /dev/null +++ b/libbson/1.24.4/bson_subtype_t.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + bson_subtype_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_subtype_t

      +

      Binary Field Subtype

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +
      +typedef enum {
      +   BSON_SUBTYPE_BINARY = 0x00,
      +   BSON_SUBTYPE_FUNCTION = 0x01,
      +   BSON_SUBTYPE_BINARY_DEPRECATED = 0x02,
      +   BSON_SUBTYPE_UUID_DEPRECATED = 0x03,
      +   BSON_SUBTYPE_UUID = 0x04,
      +   BSON_SUBTYPE_MD5 = 0x05,
      +   BSON_SUBTYPE_COLUMN = 0x07,
      +   BSON_SUBTYPE_USER = 0x80,
      +} bson_subtype_t;
      +
      +
      +
      +
      +

      Description

      +

      This enumeration contains the various subtypes that may be used in a binary field. See http://bsonspec.org for more information.

      +
      +
      +

      Functions

      +
      +
      +
      +
      +

      Example

      +
      bson_t doc = BSON_INITIALIZER;
      +
      +BSON_APPEND_BINARY (&doc, "binary", BSON_SUBTYPE_BINARY, data, data_len);
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_t.html b/libbson/1.24.4/bson_t.html new file mode 100644 index 0000000000..d34f835d1a --- /dev/null +++ b/libbson/1.24.4/bson_t.html @@ -0,0 +1,364 @@ + + + + + + + + + + + + + + bson_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_t

      +

      BSON Document Abstraction

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +/**
      + * bson_empty:
      + * @b: a bson_t.
      + *
      + * Checks to see if @b is an empty BSON document. An empty BSON document is
      + * a 5 byte document which contains the length (4 bytes) and a single NUL
      + * byte indicating end of fields.
      + */
      +#define bson_empty(b) /* ... */
      +
      +/**
      + * bson_empty0:
      + *
      + * Like bson_empty() but treats NULL the same as an empty bson_t document.
      + */
      +#define bson_empty0(b) /* ... */
      +
      +/**
      + * bson_clear:
      + *
      + * Easily free a bson document and set it to NULL. Use like:
      + *
      + * bson_t *doc = bson_new();
      + * bson_clear (&doc);
      + * BSON_ASSERT (doc == NULL);
      + */
      +#define bson_clear(bptr) /* ... */
      +
      +/**
      + * BSON_MAX_SIZE:
      + *
      + * The maximum size in bytes of a BSON document.
      + */
      +#define BSON_MAX_SIZE /* ... */
      +
      +#define BSON_APPEND_ARRAY(b, key, val) \
      +   bson_append_array (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_ARRAY_BEGIN(b, key, child) \
      +   bson_append_array_begin (b, key, (int) strlen (key), child)
      +
      +#define BSON_APPEND_BINARY(b, key, subtype, val, len) \
      +   bson_append_binary (b, key, (int) strlen (key), subtype, val, len)
      +
      +#define BSON_APPEND_BOOL(b, key, val) \
      +   bson_append_bool (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_CODE(b, key, val) \
      +   bson_append_code (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_CODE_WITH_SCOPE(b, key, val, scope) \
      +   bson_append_code_with_scope (b, key, (int) strlen (key), val, scope)
      +
      +#define BSON_APPEND_DBPOINTER(b, key, coll, oid) \
      +   bson_append_dbpointer (b, key, (int) strlen (key), coll, oid)
      +
      +#define BSON_APPEND_DOCUMENT_BEGIN(b, key, child) \
      +   bson_append_document_begin (b, key, (int) strlen (key), child)
      +
      +#define BSON_APPEND_DOUBLE(b, key, val) \
      +   bson_append_double (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_DOCUMENT(b, key, val) \
      +   bson_append_document (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_INT32(b, key, val) \
      +   bson_append_int32 (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_INT64(b, key, val) \
      +   bson_append_int64 (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_MINKEY(b, key) \
      +   bson_append_minkey (b, key, (int) strlen (key))
      +
      +#define BSON_APPEND_DECIMAL128(b, key, val) \
      +   bson_append_decimal128 (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_MAXKEY(b, key) \
      +   bson_append_maxkey (b, key, (int) strlen (key))
      +
      +#define BSON_APPEND_NULL(b, key) bson_append_null (b, key, (int) strlen (key))
      +
      +#define BSON_APPEND_OID(b, key, val) \
      +   bson_append_oid (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_REGEX(b, key, val, opt) \
      +   bson_append_regex (b, key, (int) strlen (key), val, opt)
      +
      +#define BSON_APPEND_UTF8(b, key, val) \
      +   bson_append_utf8 (b, key, (int) strlen (key), val, (int) strlen (val))
      +
      +#define BSON_APPEND_SYMBOL(b, key, val) \
      +   bson_append_symbol (b, key, (int) strlen (key), val, (int) strlen (val))
      +
      +#define BSON_APPEND_TIME_T(b, key, val) \
      +   bson_append_time_t (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_TIMEVAL(b, key, val) \
      +   bson_append_timeval (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_DATE_TIME(b, key, val) \
      +   bson_append_date_time (b, key, (int) strlen (key), val)
      +
      +#define BSON_APPEND_TIMESTAMP(b, key, val, inc) \
      +   bson_append_timestamp (b, key, (int) strlen (key), val, inc)
      +
      +#define BSON_APPEND_UNDEFINED(b, key) \
      +   bson_append_undefined (b, key, (int) strlen (key))
      +
      +#define BSON_APPEND_VALUE(b, key, val) \
      +   bson_append_value (b, key, (int) strlen (key), (val))
      +
      +BSON_ALIGNED_BEGIN (128)
      +typedef struct {
      +   uint32_t flags;       /* Internal flags for the bson_t. */
      +   uint32_t len;         /* Length of BSON data. */
      +   uint8_t padding[120]; /* Padding for stack allocation. */
      +} bson_t BSON_ALIGNED_END (128);
      +
      +
      +
      +
      +

      Description

      +

      The bson_t structure represents a BSON document. This structure manages the underlying BSON encoded buffer. For mutable documents, it can append new data to the document.

      +
      +
      +

      Performance Notes

      +

      The bson_t structure attempts to use an inline allocation within the structure to speed up performance of small documents. When this internal buffer has been exhausted, a heap allocated buffer will be dynamically allocated. Therefore, it is essential to call bson_destroy() on allocated documents.

      +
      +
      +

      Duplicate Keys

      +

      The BSON specification allows BSON documents to have +duplicate keys. Documents are stored as an ordered list of key-value pairs. A +bson_t may contain duplicate keys. Applications should refrain from +generating such documents, because MongoDB server behavior is undefined when a +BSON document contains duplicate keys.

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      static void
      +create_on_heap (void)
      +{
      +   bson_t *b = bson_new ();
      +
      +   BSON_APPEND_INT32 (b, "foo", 123);
      +   BSON_APPEND_UTF8 (b, "bar", "foo");
      +   BSON_APPEND_DOUBLE (b, "baz", 1.23f);
      +
      +   bson_destroy (b);
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_type_t.html b/libbson/1.24.4/bson_type_t.html new file mode 100644 index 0000000000..7ac230ed6a --- /dev/null +++ b/libbson/1.24.4/bson_type_t.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + bson_type_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_type_t

      +

      BSON Type Enumeration

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef enum {
      +   BSON_TYPE_EOD = 0x00,
      +   BSON_TYPE_DOUBLE = 0x01,
      +   BSON_TYPE_UTF8 = 0x02,
      +   BSON_TYPE_DOCUMENT = 0x03,
      +   BSON_TYPE_ARRAY = 0x04,
      +   BSON_TYPE_BINARY = 0x05,
      +   BSON_TYPE_UNDEFINED = 0x06,
      +   BSON_TYPE_OID = 0x07,
      +   BSON_TYPE_BOOL = 0x08,
      +   BSON_TYPE_DATE_TIME = 0x09,
      +   BSON_TYPE_NULL = 0x0A,
      +   BSON_TYPE_REGEX = 0x0B,
      +   BSON_TYPE_DBPOINTER = 0x0C,
      +   BSON_TYPE_CODE = 0x0D,
      +   BSON_TYPE_SYMBOL = 0x0E,
      +   BSON_TYPE_CODEWSCOPE = 0x0F,
      +   BSON_TYPE_INT32 = 0x10,
      +   BSON_TYPE_TIMESTAMP = 0x11,
      +   BSON_TYPE_INT64 = 0x12,
      +   BSON_TYPE_DECIMAL128 = 0x13,
      +   BSON_TYPE_MAXKEY = 0x7F,
      +   BSON_TYPE_MINKEY = 0xFF,
      +} bson_type_t;
      +
      +
      +
      +
      +

      Description

      +

      The bson_type_t enumeration contains all of the types from the BSON Specification. It can be used to determine the type of a field at runtime.

      +
      +
      +

      Functions

      +
      +
      +
      +
      +

      Example

      +
      bson_iter_t iter;
      +
      +if (bson_iter_init_find (&iter, doc, "foo") &&
      +    (BSON_TYPE_INT32 == bson_iter_type (&iter))) {
      +   printf ("'foo' is an int32.\n");
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_uint32_to_string.html b/libbson/1.24.4/bson_uint32_to_string.html new file mode 100644 index 0000000000..0591322b8e --- /dev/null +++ b/libbson/1.24.4/bson_uint32_to_string.html @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + bson_uint32_to_string() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_uint32_to_string()

      +
      +

      Synopsis

      +
      size_t
      +bson_uint32_to_string (uint32_t value,
      +                       const char **strptr,
      +                       char *str,
      +                       size_t size);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • value: A uint32_t.

      • +
      • strptr: A location for the resulting string pointer.

      • +
      • str: A location to buffer the string.

      • +
      • size: A size_t containing the size of str.

      • +
      +
      +
      +

      Description

      +

      Converts value to a string.

      +

      If value is from 0 to 999, it will use a constant string in the data section of the library.

      +

      If not, a string will be formatted using str and snprintf().

      +

      strptr will always be set. It will either point to str or a constant string. Use this as your key.

      +
      +
      +

      Array Element Key Building

      +

      Each element in a BSON array has a monotonic string key like "0", "1", etc. This function is optimized for generating such string keys.

      +
      char str[16];
      +const char *key;
      +uint32_t i;
      +
      +for (i = 0; i < 10; i++) {
      +   bson_uint32_to_string (i, &key, str, sizeof str);
      +   printf ("Key: %s\n", key);
      +}
      +
      +
      +
      +
      +

      Returns

      +

      The number of bytes in the resulting string.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_unichar_t.html b/libbson/1.24.4/bson_unichar_t.html new file mode 100644 index 0000000000..39d0df3374 --- /dev/null +++ b/libbson/1.24.4/bson_unichar_t.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_unichar_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_unichar_t

      +

      Unicode Character Abstraction

      +
      +

      Synopsis

      +
      typedef uint32_t bson_unichar_t;
      +
      +
      +
      +
      +

      Description

      +

      bson_unichar_t provides an abstraction on a single unicode character. It is the 32-bit representation of a character. As UTF-8 can contain multi-byte characters, this should be used when iterating through UTF-8 text.

      +
      +
      +

      Functions

      +
      +
      +
      +
      +

      Example

      +
      static void
      +print_each_char (const char *str)
      +{
      +   bson_unichar_t c;
      +
      +   for (; *str; str = bson_utf8_next_char (str)) {
      +      c = bson_utf8_get_char (str);
      +      printf ("The numberic value is %u.\n", (unsigned) c);
      +   }
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_utf8_escape_for_json.html b/libbson/1.24.4/bson_utf8_escape_for_json.html new file mode 100644 index 0000000000..7190fe2f78 --- /dev/null +++ b/libbson/1.24.4/bson_utf8_escape_for_json.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_utf8_escape_for_json() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_utf8_escape_for_json()

      +
      +

      Synopsis

      +
      char *
      +bson_utf8_escape_for_json (const char *utf8, ssize_t utf8_len);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • utf8: A UTF-8 encoded string.

      • +
      • utf8_len: The length of utf8 in bytes or -1 if it is NULL terminated.

      • +
      +
      +
      +

      Description

      +

      Allocates a new string matching utf8 except that special +characters in JSON are escaped. The resulting string is also +UTF-8 encoded.

      +

      Both “ and \ characters will be backslash-escaped. If a NUL +byte is found before utf8_len bytes, it is converted to +“\u0000”. Other non-ASCII characters in the input are preserved.

      +
      +
      +

      Returns

      +

      A newly allocated string that should be freed with bson_free().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_utf8_from_unichar.html b/libbson/1.24.4/bson_utf8_from_unichar.html new file mode 100644 index 0000000000..117c558097 --- /dev/null +++ b/libbson/1.24.4/bson_utf8_from_unichar.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_utf8_from_unichar() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_utf8_from_unichar()

      +
      +

      Synopsis

      +
      void
      +bson_utf8_from_unichar (bson_unichar_t unichar, char utf8[6], uint32_t *len);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • unichar: A bson_unichar_t.

      • +
      • utf8: A location for the utf8 sequence.

      • +
      • len: A location for the number of bytes in the resulting utf8 sequence.

      • +
      +
      +
      +

      Description

      +

      Converts a single unicode character to a multi-byte UTF-8 sequence. The result is stored in utf8 and the number of bytes used in len.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_utf8_get_char.html b/libbson/1.24.4/bson_utf8_get_char.html new file mode 100644 index 0000000000..9ce0369970 --- /dev/null +++ b/libbson/1.24.4/bson_utf8_get_char.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_utf8_get_char() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_utf8_get_char()

      +
      +

      Synopsis

      +
      bson_unichar_t
      +bson_utf8_get_char (const char *utf8);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • utf8: A UTF-8 encoded string.

      • +
      +
      +
      +

      Description

      +

      Converts the current character in a UTF-8 sequence to a bson_unichar_t, the 32-bit representation of the multi-byte character.

      +
      +
      +

      Returns

      +

      A bson_unichar_t.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_utf8_next_char.html b/libbson/1.24.4/bson_utf8_next_char.html new file mode 100644 index 0000000000..dfc3c831ef --- /dev/null +++ b/libbson/1.24.4/bson_utf8_next_char.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_utf8_next_char() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_utf8_next_char()

      +
      +

      Synopsis

      +
      const char *
      +bson_utf8_next_char (const char *utf8);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • utf8: A UTF-8 encoded string.

      • +
      +
      +
      +

      Description

      +

      Advances within utf8 to the next UTF-8 character, which may be multiple bytes offset from utf8. A pointer to the next character is returned.

      +

      It is invalid to call this function on a string whose current character is \0.

      +
      +
      +

      Returns

      +

      A pointer to the beginning of the next character in the UTF-8 encoded string.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_utf8_validate.html b/libbson/1.24.4/bson_utf8_validate.html new file mode 100644 index 0000000000..24884cee1f --- /dev/null +++ b/libbson/1.24.4/bson_utf8_validate.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_utf8_validate() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_utf8_validate()

      +
      +

      Synopsis

      +
      bool
      +bson_utf8_validate (const char *utf8, size_t utf8_len, bool allow_null);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • utf8: A string to verify.

      • +
      • utf8_len: The length of utf8 in bytes.

      • +
      • allow_null: A bool indicating that embedded \0 bytes are allowed.

      • +
      +
      +
      +

      Description

      +

      Validates that the content within utf8 is valid UTF-8 (by the RFC 3629 standard). If allow_null is true, then embedded NULL bytes are allowed (\0).

      +
      +
      +

      Returns

      +

      true if utf8 contains valid UTF-8.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_validate.html b/libbson/1.24.4/bson_validate.html new file mode 100644 index 0000000000..a976a3e50c --- /dev/null +++ b/libbson/1.24.4/bson_validate.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_validate() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_validate()

      +
      +

      Synopsis

      +
      bool
      +bson_validate (const bson_t *bson, bson_validate_flags_t flags, size_t *offset);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • flags: A bitwise-or of all desired bson_validate_flags_t.

      • +
      • offset: A location for the offset within bson where the error occurred.

      • +
      +
      +
      +

      Description

      +

      Validates a BSON document by walking through the document and inspecting the keys and values for valid content.

      +

      You can modify how the validation occurs through the use of the flags parameter, see bson_validate_with_error() for details.

      +
      +
      +

      Returns

      +

      Returns true if bson is valid; otherwise false and offset is set to the byte offset where the error was detected.

      +
      +

      See also

      + +
      +
      bson_visitor_t can be used for custom validation, Example Custom Validation.
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_validate_with_error.html b/libbson/1.24.4/bson_validate_with_error.html new file mode 100644 index 0000000000..637fa70a6e --- /dev/null +++ b/libbson/1.24.4/bson_validate_with_error.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + bson_validate_with_error() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_validate_with_error()

      +
      +

      Synopsis

      +
      typedef enum {
      +   BSON_VALIDATE_NONE = 0,
      +   BSON_VALIDATE_UTF8 = (1 << 0),
      +   BSON_VALIDATE_DOLLAR_KEYS = (1 << 1),
      +   BSON_VALIDATE_DOT_KEYS = (1 << 2),
      +   BSON_VALIDATE_UTF8_ALLOW_NULL = (1 << 3),
      +   BSON_VALIDATE_EMPTY_KEYS = (1 << 4),
      +} bson_validate_flags_t;
      +
      +bool
      +bson_validate_with_error (const bson_t *bson,
      +                          bson_validate_flags_t flags,
      +                          bson_error_t *error);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • bson: A bson_t.

      • +
      • flags: A bitwise-or of all desired validation flags.

      • +
      • error: Optional bson_error_t.

      • +
      +
      +
      +

      Description

      +

      Validates a BSON document by walking through the document and inspecting the keys and values for valid content.

      +

      You can modify how the validation occurs through the use of the flags parameter. A description of their effect is below.

      +
        +
      • BSON_VALIDATE_NONE Basic validation of BSON length and structure.

      • +
      • BSON_VALIDATE_UTF8 All keys and string values are checked for invalid UTF-8.

      • +
      • BSON_VALIDATE_UTF8_ALLOW_NULL String values are allowed to have embedded NULL bytes.

      • +
      • BSON_VALIDATE_DOLLAR_KEYS Prohibit keys that start with $ outside of a “DBRef” subdocument.

      • +
      • BSON_VALIDATE_DOT_KEYS Prohibit keys that contain . anywhere in the string.

      • +
      • BSON_VALIDATE_EMPTY_KEYS Prohibit zero-length keys.

      • +
      +
      +
      +

      Returns

      +

      Returns true if bson is valid; otherwise false and error is filled out.

      +

      The bson_error_t domain is set to BSON_ERROR_INVALID. Its code is set to one of the bson_validate_flags_t flags indicating which validation failed; for example, if a key contains invalid UTF-8, then the code is set to BSON_VALIDATE_UTF8, but if the basic structure of the BSON document is corrupt, the code is set to BSON_VALIDATE_NONE. The error message is filled out, and gives more detail if possible.

      +
      +

      See also

      + +
      +
      bson_visitor_t can be used for custom validation, Example Custom Validation.
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_value_copy.html b/libbson/1.24.4/bson_value_copy.html new file mode 100644 index 0000000000..daa2e54de2 --- /dev/null +++ b/libbson/1.24.4/bson_value_copy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_value_copy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_value_copy()

      +
      +

      Synopsis

      +
      void
      +bson_value_copy (const bson_value_t *src, bson_value_t *dst);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      This function will copy the boxed content in src into dst. dst must be freed with bson_value_destroy() when no longer in use.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_value_destroy.html b/libbson/1.24.4/bson_value_destroy.html new file mode 100644 index 0000000000..c1a03b3e78 --- /dev/null +++ b/libbson/1.24.4/bson_value_destroy.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_value_destroy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_value_destroy()

      +
      +

      Synopsis

      +
      void
      +bson_value_destroy (bson_value_t *value);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Releases any resources associated with value. Does nothing if value is NULL.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_value_t.html b/libbson/1.24.4/bson_value_t.html new file mode 100644 index 0000000000..8e6f14bdae --- /dev/null +++ b/libbson/1.24.4/bson_value_t.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + bson_value_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_value_t

      +

      BSON Boxed Container Type

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct _bson_value_t {
      +   bson_type_t value_type;
      +   union {
      +      bson_oid_t v_oid;
      +      int64_t v_int64;
      +      int32_t v_int32;
      +      int8_t v_int8;
      +      double v_double;
      +      bool v_bool;
      +      int64_t v_datetime;
      +      struct {
      +         uint32_t timestamp;
      +         uint32_t increment;
      +      } v_timestamp;
      +      struct {
      +         uint32_t len;
      +         char *str;
      +      } v_utf8;
      +      struct {
      +         uint32_t data_len;
      +         uint8_t *data;
      +      } v_doc;
      +      struct {
      +         uint32_t data_len;
      +         uint8_t *data;
      +         bson_subtype_t subtype;
      +      } v_binary;
      +      struct {
      +         char *regex;
      +         char *options;
      +      } v_regex;
      +      struct {
      +         char *collection;
      +         uint32_t collection_len;
      +         bson_oid_t oid;
      +      } v_dbpointer;
      +      struct {
      +         uint32_t code_len;
      +         char *code;
      +      } v_code;
      +      struct {
      +         uint32_t code_len;
      +         char *code;
      +         uint32_t scope_len;
      +         uint8_t *scope_data;
      +      } v_codewscope;
      +      struct {
      +         uint32_t len;
      +         char *symbol;
      +      } v_symbol;
      +      bson_decimal128_t v_decimal128;
      +   } value;
      +} bson_value_t;
      +
      +
      +
      +
      +

      Description

      +

      The bson_value_t structure is a boxed type for encapsulating a runtime determined type.

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      const bson_value_t *value;
      +
      +value = bson_iter_value (&iter);
      +
      +if (value->value_type == BSON_TYPE_INT32) {
      +   printf ("%d\n", value->value.v_int32);
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_visitor_t.html b/libbson/1.24.4/bson_visitor_t.html new file mode 100644 index 0000000000..a761290da1 --- /dev/null +++ b/libbson/1.24.4/bson_visitor_t.html @@ -0,0 +1,468 @@ + + + + + + + + + + + + + + bson_visitor_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_visitor_t

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct {
      +   /* run before / after descending into a document */
      +   bool (*visit_before) (const bson_iter_t *iter, const char *key, void *data);
      +   bool (*visit_after) (const bson_iter_t *iter, const char *key, void *data);
      +   /* corrupt BSON, or unsupported type and visit_unsupported_type not set */
      +   void (*visit_corrupt) (const bson_iter_t *iter, void *data);
      +   /* normal bson field callbacks */
      +   bool (*visit_double) (const bson_iter_t *iter,
      +                         const char *key,
      +                         double v_double,
      +                         void *data);
      +   bool (*visit_utf8) (const bson_iter_t *iter,
      +                       const char *key,
      +                       size_t v_utf8_len,
      +                       const char *v_utf8,
      +                       void *data);
      +   bool (*visit_document) (const bson_iter_t *iter,
      +                           const char *key,
      +                           const bson_t *v_document,
      +                           void *data);
      +   bool (*visit_array) (const bson_iter_t *iter,
      +                        const char *key,
      +                        const bson_t *v_array,
      +                        void *data);
      +   bool (*visit_binary) (const bson_iter_t *iter,
      +                         const char *key,
      +                         bson_subtype_t v_subtype,
      +                         size_t v_binary_len,
      +                         const uint8_t *v_binary,
      +                         void *data);
      +   /* normal field with deprecated "Undefined" BSON type */
      +   bool (*visit_undefined) (const bson_iter_t *iter,
      +                            const char *key,
      +                            void *data);
      +   bool (*visit_oid) (const bson_iter_t *iter,
      +                      const char *key,
      +                      const bson_oid_t *v_oid,
      +                      void *data);
      +   bool (*visit_bool) (const bson_iter_t *iter,
      +                       const char *key,
      +                       bool v_bool,
      +                       void *data);
      +   bool (*visit_date_time) (const bson_iter_t *iter,
      +                            const char *key,
      +                            int64_t msec_since_epoch,
      +                            void *data);
      +   bool (*visit_null) (const bson_iter_t *iter, const char *key, void *data);
      +   bool (*visit_regex) (const bson_iter_t *iter,
      +                        const char *key,
      +                        const char *v_regex,
      +                        const char *v_options,
      +                        void *data);
      +   bool (*visit_dbpointer) (const bson_iter_t *iter,
      +                            const char *key,
      +                            size_t v_collection_len,
      +                            const char *v_collection,
      +                            const bson_oid_t *v_oid,
      +                            void *data);
      +   bool (*visit_code) (const bson_iter_t *iter,
      +                       const char *key,
      +                       size_t v_code_len,
      +                       const char *v_code,
      +                       void *data);
      +   bool (*visit_symbol) (const bson_iter_t *iter,
      +                         const char *key,
      +                         size_t v_symbol_len,
      +                         const char *v_symbol,
      +                         void *data);
      +   bool (*visit_codewscope) (const bson_iter_t *iter,
      +                             const char *key,
      +                             size_t v_code_len,
      +                             const char *v_code,
      +                             const bson_t *v_scope,
      +                             void *data);
      +   bool (*visit_int32) (const bson_iter_t *iter,
      +                        const char *key,
      +                        int32_t v_int32,
      +                        void *data);
      +   bool (*visit_timestamp) (const bson_iter_t *iter,
      +                            const char *key,
      +                            uint32_t v_timestamp,
      +                            uint32_t v_increment,
      +                            void *data);
      +   bool (*visit_int64) (const bson_iter_t *iter,
      +                        const char *key,
      +                        int64_t v_int64,
      +                        void *data);
      +   bool (*visit_maxkey) (const bson_iter_t *iter, const char *key, void *data);
      +   bool (*visit_minkey) (const bson_iter_t *iter, const char *key, void *data);
      +   /* if set, called instead of visit_corrupt when an apparently valid BSON
      +    * includes an unrecognized field type (reading future version of BSON) */
      +   void (*visit_unsupported_type) (const bson_iter_t *iter,
      +                                   const char *key,
      +                                   uint32_t type_code,
      +                                   void *data);
      +   bool (*visit_decimal128) (const bson_iter_t *iter,
      +                             const char *key,
      +                             const bson_decimal128_t *v_decimal128,
      +                             void *data);
      +
      +   void *padding[7];
      +} bson_visitor_t bson_visitor_t;
      +
      +
      +
      +
      +

      Description

      +

      The bson_visitor_t structure provides a series of callbacks that can be called while iterating a BSON document. This may simplify the conversion of a bson_t to a higher level language structure.

      +

      If the optional callback visit_unsupported_type is set, it is called instead of visit_corrupt in the specific case of an unrecognized field type. (Parsing is aborted in either case.) Use this callback to report an error like “unrecognized type” instead of simply “corrupt BSON”. This future-proofs code that may use an older version of libbson to parse future BSON formats.

      +
      +
      +

      Functions

      +
      +
      +
      +
      +

      Basic Example

      +
      #include <bson/bson.h>
      +#include <stdio.h>
      +
      +static bool
      +my_visit_before (const bson_iter_t *iter, const char *key, void *data)
      +{
      +   int *count = (int *) data;
      +
      +   (*count)++;
      +
      +   /* returning true stops further iteration of the document */
      +
      +   return false;
      +}
      +
      +static void
      +count_fields (bson_t *doc)
      +{
      +   bson_visitor_t visitor = {0};
      +   bson_iter_t iter;
      +   int count = 0;
      +
      +   visitor.visit_before = my_visit_before;
      +
      +   if (bson_iter_init (&iter, doc)) {
      +      bson_iter_visit_all (&iter, &visitor, &count);
      +   }
      +
      +   printf ("Found %d fields.\n", count);
      +}
      +
      +
      +

      The example below demonstrates how to set your own callbacks to provide information about the location of corrupt or unsupported BSON document entries.

      +
      +
      +

      Example Corruption Check

      +
      #include <bson/bson.h>
      +#include <stdio.h>
      +
      +typedef struct {
      +   ssize_t *err_offset;
      +} my_state_t;
      +
      +static void
      +my_visit_corrupt (const bson_iter_t *iter, void *data)
      +{
      +   *(((my_state_t *) data)->err_offset) = iter->off;
      +}
      +
      +static void
      +my_visit_unsupported_type (const bson_iter_t *iter,
      +                           const char *key,
      +                           uint32_t type_code,
      +                           void *data)
      +{
      +   *(((my_state_t *) data)->err_offset) = iter->off;
      +}
      +
      +static void
      +find_error_location (bson_t *doc)
      +{
      +   bson_visitor_t visitors = {0};
      +   bson_iter_t iter;
      +   my_state_t state;
      +   ssize_t err_offset = -1;
      +
      +   visitors.visit_corrupt = my_visit_corrupt;
      +   visitors.visit_unsupported_type = my_visit_unsupported_type;
      +   /* provide additional visitors as needed based on your requirements */
      +   state.err_offset = &err_offset;
      +
      +   if (!bson_iter_init (&iter, doc)) {
      +      printf ("Could not initialize iterator!");
      +      exit (1);
      +   }
      +
      +   if (bson_iter_visit_all (&iter, &visitors, &state) ||
      +       err_offset != -1) {
      +      printf ("Found error at offset %d.\n", err_offset);
      +   } else {
      +      printf ("BSON document had no errors.\n");
      +   }
      +}
      +
      +
      +

      The example below demonstrates how to use a visitor to validate a BSON document’s maximum depth.

      +
      +
      +

      Example Custom Validation

      +
      +
      bson-check-depth.c
      +
      /* Reports the maximum nested depth of a BSON document. */
      +#include <bson/bson.h>
      +
      +#include <assert.h>
      +#include <inttypes.h>
      +#include <stdio.h>
      +#include <stdlib.h>
      +
      +typedef struct {
      +   uint32_t depth;
      +   uint32_t max_depth;
      +   bool valid;
      +} check_depth_t;
      +
      +bool
      +_check_depth_document (const bson_iter_t *iter,
      +                       const char *key,
      +                       const bson_t *v_document,
      +                       void *data);
      +
      +static const bson_visitor_t check_depth_funcs = {
      +   NULL,
      +   NULL,
      +   NULL,
      +   NULL,
      +   NULL,
      +   _check_depth_document,
      +   _check_depth_document,
      +   NULL,
      +};
      +
      +bool
      +_check_depth_document (const bson_iter_t *iter,
      +                       const char *key,
      +                       const bson_t *v_document,
      +                       void *data)
      +{
      +   check_depth_t *state = (check_depth_t *) data;
      +   bson_iter_t child;
      +
      +   BSON_UNUSED (iter);
      +   BSON_UNUSED (key);
      +
      +   if (!bson_iter_init (&child, v_document)) {
      +      fprintf (stderr, "corrupt\n");
      +      return true; /* cancel */
      +   }
      +
      +   state->depth++;
      +   if (state->depth > state->max_depth) {
      +      state->valid = false;
      +      return true; /* cancel */
      +   }
      +
      +   bson_iter_visit_all (&child, &check_depth_funcs, state);
      +   state->depth--;
      +   return false; /* continue */
      +}
      +
      +void
      +check_depth (const bson_t *bson, uint32_t max_depth)
      +{
      +   bson_iter_t iter;
      +   check_depth_t state = {0};
      +
      +   if (!bson_iter_init (&iter, bson)) {
      +      fprintf (stderr, "corrupt\n");
      +   }
      +
      +   state.valid = true;
      +   state.max_depth = max_depth;
      +   _check_depth_document (&iter, NULL, bson, &state);
      +   if (!state.valid) {
      +      printf ("document exceeds maximum depth of %" PRIu32 "\n",
      +              state.max_depth);
      +   } else {
      +      char *as_json = bson_as_canonical_extended_json (bson, NULL);
      +      printf ("document %s ", as_json);
      +      printf ("is valid\n");
      +      bson_free (as_json);
      +   }
      +}
      +
      +int
      +main (int argc, char **argv)
      +{
      +   bson_reader_t *bson_reader;
      +   const bson_t *bson;
      +   bool reached_eof;
      +   bson_error_t error;
      +
      +   if (argc != 3) {
      +      fprintf (stderr, "usage: %s FILE MAX_DEPTH\n", argv[0]);
      +      fprintf (stderr, "Checks that the depth of the BSON contained in FILE\n");
      +      fprintf (stderr, "does not exceed MAX_DEPTH\n");
      +   }
      +
      +   const char *const filename = argv[1];
      +   const int max_depth = atoi (argv[2]);
      +
      +   bson_reader = bson_reader_new_from_file (filename, &error);
      +   if (!bson_reader) {
      +      printf ("could not read %s: %s\n", filename, error.message);
      +      return 1;
      +   }
      +
      +   BSON_ASSERT (bson_in_range_signed (uint32_t, max_depth));
      +
      +   while ((bson = bson_reader_read (bson_reader, &reached_eof))) {
      +      check_depth (bson, (uint32_t) max_depth);
      +   }
      +
      +   if (!reached_eof) {
      +      printf ("error reading BSON\n");
      +   }
      +
      +   bson_reader_destroy (bson_reader);
      +   return 0;
      +}
      +
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_vsnprintf.html b/libbson/1.24.4/bson_vsnprintf.html new file mode 100644 index 0000000000..6d8c2e88ae --- /dev/null +++ b/libbson/1.24.4/bson_vsnprintf.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_vsnprintf() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_vsnprintf()

      +
      +

      Synopsis

      +
      int
      +bson_vsnprintf (char *str, size_t size, const char *format, va_list ap)
      +   BSON_GNUC_PRINTF (3, 0);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • str: A location for the resulting string.

      • +
      • size: The size of str in bytes.

      • +
      • format: A printf style format string.

      • +
      • ap: A va_list of parameters for the format.

      • +
      +
      +
      +

      Description

      +

      Like bson_snprintf() but allows for variadic parameters.

      +
      +
      +

      Returns

      +

      The number of bytes written to str excluding the \0 byte.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_writer_begin.html b/libbson/1.24.4/bson_writer_begin.html new file mode 100644 index 0000000000..31cabeb8b6 --- /dev/null +++ b/libbson/1.24.4/bson_writer_begin.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_writer_begin() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_writer_begin()

      +
      +

      Synopsis

      +
      bool
      +bson_writer_begin (bson_writer_t *writer, bson_t **bson);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Begins writing a new document. The caller may use the bson structure to write out a new BSON document. When completed, the caller must call either bson_writer_end() or bson_writer_rollback().

      +
      +
      +

      Returns

      +

      true if there was space in the underlying buffers to begin the document.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_writer_destroy.html b/libbson/1.24.4/bson_writer_destroy.html new file mode 100644 index 0000000000..777f30f677 --- /dev/null +++ b/libbson/1.24.4/bson_writer_destroy.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_writer_destroy() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_writer_destroy()

      +
      +

      Synopsis

      +
      void
      +bson_writer_destroy (bson_writer_t *writer);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Cleanup after writer and release any allocated memory. Does nothing if writer is NULL. Note that the buffer supplied to bson_writer_new() is NOT freed from this method. The caller is responsible for that.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_writer_end.html b/libbson/1.24.4/bson_writer_end.html new file mode 100644 index 0000000000..d966cd2a8c --- /dev/null +++ b/libbson/1.24.4/bson_writer_end.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_writer_end() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_writer_end()

      +
      +

      Synopsis

      +
      void
      +bson_writer_end (bson_writer_t *writer);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Complete writing of a bson_writer_t to the buffer supplied.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_writer_get_length.html b/libbson/1.24.4/bson_writer_get_length.html new file mode 100644 index 0000000000..1e4613bf55 --- /dev/null +++ b/libbson/1.24.4/bson_writer_get_length.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_writer_get_length() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_writer_get_length()

      +
      +

      Synopsis

      +
      size_t
      +bson_writer_get_length (bson_writer_t *writer);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Fetches the current length of the content written by the buffer (including the initial offset). This includes a partly written document currently being written.

      +

      This is useful if you want to check to see if you’ve passed a given memory boundary that cannot be sent in a packet. See bson_writer_rollback() to abort the current document being written.

      +
      +
      +

      Returns

      +

      The length of the underlying buffer.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_writer_new.html b/libbson/1.24.4/bson_writer_new.html new file mode 100644 index 0000000000..bc9fbd531c --- /dev/null +++ b/libbson/1.24.4/bson_writer_new.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_writer_new() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_writer_new()

      +
      +

      Synopsis

      +
      bson_writer_t *
      +bson_writer_new (uint8_t **buf,
      +                 size_t *buflen,
      +                 size_t offset,
      +                 bson_realloc_func realloc_func,
      +                 void *realloc_func_ctx);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • buf: A uint8_t.

      • +
      • buflen: A size_t.

      • +
      • offset: A size_t.

      • +
      • realloc_func: A bson_realloc_func.

      • +
      • realloc_func_ctx: A bson_realloc_func.

      • +
      +
      +
      +

      Description

      +

      Creates a new instance of bson_writer_t using the buffer, length, offset, and _realloc()_ function supplied.

      +

      The caller is expected to clean up the structure when finished using bson_writer_destroy().

      +
      +
      +

      Returns

      +

      A newly allocated bson_writer_t.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_writer_rollback.html b/libbson/1.24.4/bson_writer_rollback.html new file mode 100644 index 0000000000..90d1ba9677 --- /dev/null +++ b/libbson/1.24.4/bson_writer_rollback.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_writer_rollback() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_writer_rollback()

      +
      +

      Synopsis

      +
      void
      +bson_writer_rollback (bson_writer_t *writer);
      +
      +
      +
      +
      +

      Parameters

      + +
      +
      +

      Description

      +

      Abort the appending of the current bson_t to the memory region managed by writer. This is useful if you detected that you went past a particular memory limit. For example, MongoDB has 48MB message limits.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_writer_t.html b/libbson/1.24.4/bson_writer_t.html new file mode 100644 index 0000000000..31bb848e43 --- /dev/null +++ b/libbson/1.24.4/bson_writer_t.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + bson_writer_t — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_writer_t

      +

      Bulk BSON serialization Abstraction

      +
      +

      Synopsis

      +
      #include <bson/bson.h>
      +
      +typedef struct _bson_writer_t bson_writer_t;
      +
      +bson_writer_t *
      +bson_writer_new (uint8_t **buf,
      +                 size_t *buflen,
      +                 size_t offset,
      +                 bson_realloc_func realloc_func,
      +                 void *realloc_func_ctx);
      +void
      +bson_writer_destroy (bson_writer_t *writer);
      +
      +
      +
      +
      +

      Description

      +

      The bson_writer_t API provides an abstraction for serializing many BSON documents to a single memory region. The memory region may be dynamically allocated and re-allocated as more memory is demanded. This can be useful when building network packets from a high-level language. For example, you can serialize a Python Dictionary directly to a single buffer destined for a TCP packet.

      +
      +
      +

      Functions

      + +
      +
      +

      Example

      +
      #include <bson/bson.h>
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_writer_t *writer;
      +   uint8_t *buf = NULL;
      +   size_t buflen = 0;
      +   bson_t *doc;
      +
      +   writer = bson_writer_new (&buf, &buflen, 0, bson_realloc_ctx, NULL);
      +
      +   for (i = 0; i < 1000; i++) {
      +      bson_writer_begin (writer, &doc);
      +      BSON_APPEND_INT32 (&doc, "i", i);
      +      bson_writer_end (writer);
      +   }
      +
      +   bson_writer_destroy (writer);
      +
      +   bson_free (buf);
      +
      +   return 0;
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/bson_zero_free.html b/libbson/1.24.4/bson_zero_free.html new file mode 100644 index 0000000000..4ab529658e --- /dev/null +++ b/libbson/1.24.4/bson_zero_free.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_zero_free() — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      bson_zero_free()

      +
      +

      Synopsis

      +
      void
      +bson_zero_free (void *mem, size_t size);
      +
      +
      +
      +
      +

      Parameters

      +
        +
      • mem: A memory region.

      • +
      • size: The size of mem.

      • +
      +
      +
      +

      Description

      +

      This function behaves like bson_free() except that it zeroes the memory first. This can be useful if you are storing passwords or other similarly important data. Note that if it truly is important, you probably want a page protected with mlock() as well to prevent it swapping to disk.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/character_and_string_routines.html b/libbson/1.24.4/character_and_string_routines.html new file mode 100644 index 0000000000..ee5ff3380f --- /dev/null +++ b/libbson/1.24.4/character_and_string_routines.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + Character and String Routines — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libbson/1.24.4/creating.html b/libbson/1.24.4/creating.html new file mode 100644 index 0000000000..533988d460 --- /dev/null +++ b/libbson/1.24.4/creating.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + Creating a BSON Document — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Creating a BSON Document

      +
      +

      The bson_t structure

      +

      BSON documents are created using the bson_t structure. This structure encapsulates the necessary logic for encoding using the BSON Specification. At the core, bson_t is a buffer manager and set of encoding routines.

      +
      +

      Tip

      +

      BSON documents can live on the stack or the heap based on the performance needs or preference of the consumer.

      +
      +

      Let’s start by creating a new BSON document on the stack. Whenever using libbson, make sure you #include <bson/bson.h>.

      +
      bson_t b;
      +
      +bson_init (&b);
      +
      +
      +

      This creates an empty document. In JSON, this would be the same as {}.

      +

      We can now proceed to adding items to the BSON document. A variety of functions prefixed with bson_append_ can be used based on the type of field you want to append. Let’s append a UTF-8 encoded string.

      +
      bson_append_utf8 (&b, "key", -1, "value", -1);
      +
      +
      +

      Notice the two -1 parameters. The first indicates that the length of key in bytes should be determined with strlen(). Alternatively, we could have passed the number 3. The same goes for the second -1, but for value.

      +

      Libbson provides macros to make this less tedious when using string literals. The following two appends are identical.

      +
      bson_append_utf8 (&b, "key", -1, "value", -1);
      +BSON_APPEND_UTF8 (&b, "key", "value");
      +
      +
      +

      Now let’s take a look at an example that adds a few different field types to a BSON document.

      +
      bson_t b = BSON_INITIALIZER;
      +
      +BSON_APPEND_INT32 (&b, "a", 1);
      +BSON_APPEND_UTF8 (&b, "hello", "world");
      +BSON_APPEND_BOOL (&b, "bool", true);
      +
      +
      +

      Notice that we omitted the call to bson_init(). By specifying BSON_INITIALIZER we can remove the need to initialize the structure to a base state.

      +
      +
      +

      Sub-Documents and Sub-Arrays

      +

      To simplify the creation of sub-documents and arrays, bson_append_document_begin() and bson_append_array_begin() exist. These can be used to build a sub-document using the parent documents memory region as the destination buffer.

      +
      bson_t parent;
      +bson_t child;
      +char *str;
      +
      +bson_init (&parent);
      +bson_append_document_begin (&parent, "foo", 3, &child);
      +bson_append_int32 (&child, "baz", 3, 1);
      +bson_append_document_end (&parent, &child);
      +
      +str = bson_as_canonical_extended_json (&parent, NULL);
      +printf ("%s\n", str);
      +bson_free (str);
      +
      +bson_destroy (&parent);
      +
      +
      +
      { "foo" : { "baz" : 1 } }
      +
      +
      +
      +
      +

      Simplified BSON C Object Notation

      +

      Creating BSON documents by hand can be tedious and time consuming. BCON, or BSON C Object Notation, was added to allow for the creation of BSON documents in a format that looks closer to the destination format.

      +

      The following example shows the use of BCON. Notice that values for fields are wrapped in the BCON_* macros. These are required for the variadic processor to determine the parameter type.

      +
      bson_t *doc;
      +
      +doc = BCON_NEW ("foo",
      +                "{",
      +                "int",
      +                BCON_INT32 (1),
      +                "array",
      +                "[",
      +                BCON_INT32 (100),
      +                "{",
      +                "sub",
      +                BCON_UTF8 ("value"),
      +                "}",
      +                "]",
      +                "}");
      +
      +
      +

      Creates the following document

      +
      { "foo" : { "int" : 1, "array" : [ 100, { "sub" : "value" } ] } }
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/cross-platform-notes.html b/libbson/1.24.4/cross-platform-notes.html new file mode 100644 index 0000000000..e8919eb1a7 --- /dev/null +++ b/libbson/1.24.4/cross-platform-notes.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + Cross Platform Notes — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Cross Platform Notes

      + +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/endianness.html b/libbson/1.24.4/endianness.html new file mode 100644 index 0000000000..647eba2f54 --- /dev/null +++ b/libbson/1.24.4/endianness.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + Endianness — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Endianness

      +

      The BSON specification dictates that the encoding format is in little-endian. Many implementations simply ignore endianness altogether and expect that they are to be run on little-endian. Libbson supports both Big and Little Endian systems. This means we use memcpy() when appropriate instead of dereferencing and properly convert to and from the host endian format. We expect the compiler intrinsics to optimize it to a dereference when possible.

      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/errors.html b/libbson/1.24.4/errors.html new file mode 100644 index 0000000000..5a1cf43f9d --- /dev/null +++ b/libbson/1.24.4/errors.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + Handling Errors — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + +
      +

      Handling Errors

      +
      +

      Description

      +

      Many libbson functions report errors by returning NULL or -1 and filling out a bson_error_t structure with an error domain, error code, and message.

      +
        +
      • error.domain names the subsystem that generated the error.

      • +
      • error.code is a domain-specific error type.

      • +
      • error.message describes the error.

      • +
      +

      Some error codes overlap with others; always check both the domain and code to determine the type of error.

      + + + + + + + + + + + +

      BSON_ERROR_JSON

      BSON_JSON_ERROR_READ_CORRUPT_JS +BSON_JSON_ERROR_READ_INVALID_PARAM +BSON_JSON_ERROR_READ_CB_FAILURE

      bson_json_reader_t tried to parse invalid MongoDB Extended JSON. +Tried to parse a valid JSON document that is invalid as MongoDBExtended JSON. +An internal callback failure during JSON parsing.

      BSON_ERROR_READER

      BSON_ERROR_READER_BADFD

      bson_json_reader_new_from_file() could not open the file.

      +
      +
      + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/full_index.html b/libbson/1.24.4/full_index.html new file mode 100644 index 0000000000..3e16c4cefc --- /dev/null +++ b/libbson/1.24.4/full_index.html @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + Index — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Index

      +
      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/guides.html b/libbson/1.24.4/guides.html new file mode 100644 index 0000000000..e6187e19d6 --- /dev/null +++ b/libbson/1.24.4/guides.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + Guides — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Guides

      + +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/include-and-link.html b/libbson/1.24.4/include-and-link.html new file mode 100644 index 0000000000..a5bb4804c8 --- /dev/null +++ b/libbson/1.24.4/include-and-link.html @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + Using libbson In Your C Program — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Using libbson In Your C Program

      +
      +

      Include bson.h

      +

      All libbson’s functions and types are available in one header file. Simply include bson.h:

      +
      +
      hello_bson.c
      +
      #include <stdio.h>
      +#include <bson/bson.h>
      +
      +int
      +main (int argc, const char **argv)
      +{
      +   bson_t *b;
      +   char *j;
      +
      +   b = BCON_NEW ("hello", BCON_UTF8 ("bson!"));
      +   j = bson_as_canonical_extended_json (b, NULL);
      +   printf ("%s\n", j);
      +
      +   bson_free (j);
      +   bson_destroy (b);
      +
      +   return 0;
      +}
      +
      +
      +
      +
      +
      +

      CMake

      +

      The libbson installation includes a CMake config-file package, so you can use CMake’s find_package command to import libbson’s CMake target and link to libbson (as a shared library):

      +
      +
      CMakeLists.txt
      +
      # Specify the minimum version you require.
      +find_package (bson-1.0 1.7 REQUIRED)
      +
      +# The "hello_bson.c" sample program is shared among four tests.
      +add_executable (hello_bson ../../hello_bson.c)
      +target_link_libraries (hello_bson PRIVATE mongo::bson_shared)
      +
      +
      +
      +

      You can also use libbson as a static library instead: Use the mongo::bson_static CMake target:

      +
      # Specify the minimum version you require.
      +find_package (bson-1.0 1.7 REQUIRED)
      +
      +# The "hello_bson.c" sample program is shared among four tests.
      +add_executable (hello_bson ../../hello_bson.c)
      +target_link_libraries (hello_bson PRIVATE mongo::bson_static)
      +
      +
      +
      +
      +

      pkg-config

      +

      If you’re not using CMake, use pkg-config on the command line to set header and library paths:

      +
      gcc -o hello_bson hello_bson.c $(pkg-config --libs --cflags libbson-1.0)
      +
      +
      +

      Or to statically link to libbson:

      +
      gcc -o hello_bson hello_bson.c $(pkg-config --libs --cflags libbson-static-1.0)
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/index.html b/libbson/1.24.4/index.html new file mode 100644 index 0000000000..e8aa014422 --- /dev/null +++ b/libbson/1.24.4/index.html @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + libbson — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + +
      + + + + +
      +
      +
      +
      + +
      +

      libbson

      +

      A Cross Platform BSON Library for C

      +
      +

      Introduction

      +

      libbson builds, parses, and iterates BSON documents, the native data format of MongoDB. It also converts BSON to and from JSON, and provides a platform compatibility layer for the MongoDB C Driver.

      + +
      + +
      + + +
      +
      + + +
      +
      +
      + +
      +
      + + +
      + + + \ No newline at end of file diff --git a/libbson/1.24.4/json.html b/libbson/1.24.4/json.html new file mode 100644 index 0000000000..1c36e2310f --- /dev/null +++ b/libbson/1.24.4/json.html @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + JSON — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      JSON

      +

      Libbson provides routines for converting to and from the JSON format. In particular, it supports the MongoDB extended JSON format.

      +
      +

      Converting BSON to JSON

      +

      There are often times where you might want to convert a BSON document to JSON. It is convenient for debugging as well as an interchange format. To help with this, Libbson contains the functions bson_as_canonical_extended_json() and bson_as_relaxed_extended_json(). The canonical format preserves BSON type information for values that may have ambiguous representations in JSON (e.g. numeric types).

      +
      bson_t *b;
      +size_t len;
      +char *str;
      +
      +b = BCON_NEW ("a", BCON_INT32 (1));
      +
      +str = bson_as_canonical_extended_json (b, &len);
      +printf ("%s\n", str);
      +bson_free (str);
      +
      +bson_destroy (b);
      +
      +
      +
      { "a" : { "$numberInt": "1" } }
      +
      +
      +

      The relaxed format prefers JSON primitives for numeric values and may be used if type fidelity is not required.

      +
      bson_t *b;
      +size_t len;
      +char *str;
      +
      +b = BCON_NEW ("a", BCON_INT32 (1));
      +
      +str = bson_as_relaxed_extended_json (b, &len);
      +printf ("%s\n", str);
      +bson_free (str);
      +
      +bson_destroy (b);
      +
      +
      +
      { "a" : 1 }
      +
      +
      +
      +
      +

      Converting JSON to BSON

      +

      Converting back from JSON is also useful and common enough that we added bson_init_from_json() and bson_new_from_json().

      +

      The following example creates a new bson_t from the JSON string {"a":1}.

      +
      bson_t *b;
      +bson_error_t error;
      +
      +b = bson_new_from_json ("{\"a\":1}", -1, &error);
      +
      +if (!b) {
      +   printf ("Error: %s\n", error.message);
      +} else {
      +   bson_destroy (b);
      +}
      +
      +
      +
      +
      +

      Streaming JSON Parsing

      +

      Libbson provides bson_json_reader_t to allow for parsing a sequence of JSON documents into BSON. The interface is similar to bson_reader_t but expects the input to be in the MongoDB extended JSON format.

      +
      /*
      + * Copyright 2013 MongoDB, Inc.
      + *
      + * Licensed under the Apache License, Version 2.0 (the "License");
      + * you may not use this file except in compliance with the License.
      + * You may obtain a copy of the License at
      + *
      + *   http://www.apache.org/licenses/LICENSE-2.0
      + *
      + * Unless required by applicable law or agreed to in writing, software
      + * distributed under the License is distributed on an "AS IS" BASIS,
      + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      + * See the License for the specific language governing permissions and
      + * limitations under the License.
      + */
      +
      +
      +/*
      + * This program will print each JSON document contained in the provided files
      + * as a BSON string to STDOUT.
      + */
      +
      +
      +#include <bson/bson.h>
      +#include <stdlib.h>
      +#include <stdio.h>
      +
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_json_reader_t *reader;
      +   bson_error_t error;
      +   const char *filename;
      +   bson_t doc = BSON_INITIALIZER;
      +   int i;
      +   int b;
      +
      +   /*
      +    * Print program usage if no arguments are provided.
      +    */
      +   if (argc == 1) {
      +      fprintf (stderr, "usage: %s FILE...\n", argv[0]);
      +      return 1;
      +   }
      +
      +   /*
      +    * Process command line arguments expecting each to be a filename.
      +    */
      +   for (i = 1; i < argc; i++) {
      +      filename = argv[i];
      +
      +      /*
      +       * Open the filename provided in command line arguments.
      +       */
      +      if (0 == strcmp (filename, "-")) {
      +         reader = bson_json_reader_new_from_fd (STDIN_FILENO, false);
      +      } else {
      +         if (!(reader = bson_json_reader_new_from_file (filename, &error))) {
      +            fprintf (
      +               stderr, "Failed to open \"%s\": %s\n", filename, error.message);
      +            continue;
      +         }
      +      }
      +
      +      /*
      +       * Convert each incoming document to BSON and print to stdout.
      +       */
      +      while ((b = bson_json_reader_read (reader, &doc, &error))) {
      +         if (b < 0) {
      +            fprintf (stderr, "Error in json parsing:\n%s\n", error.message);
      +            abort ();
      +         }
      +
      +         if (fwrite (bson_get_data (&doc), 1, doc.len, stdout) != doc.len) {
      +            fprintf (stderr, "Failed to write to stdout, exiting.\n");
      +            exit (1);
      +         }
      +         bson_reinit (&doc);
      +      }
      +
      +      bson_json_reader_destroy (reader);
      +      bson_destroy (&doc);
      +   }
      +
      +   return 0;
      +}
      +
      +
      +
      +
      +

      Examples

      +

      The following example reads BSON documents from stdin and prints them to stdout as JSON.

      +
      /*
      + * Copyright 2013 MongoDB, Inc.
      + *
      + * Licensed under the Apache License, Version 2.0 (the "License");
      + * you may not use this file except in compliance with the License.
      + * You may obtain a copy of the License at
      + *
      + *   http://www.apache.org/licenses/LICENSE-2.0
      + *
      + * Unless required by applicable law or agreed to in writing, software
      + * distributed under the License is distributed on an "AS IS" BASIS,
      + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      + * See the License for the specific language governing permissions and
      + * limitations under the License.
      + */
      +
      +
      +/*
      + * This program will print each BSON document contained in the provided files
      + * as a JSON string to STDOUT.
      + */
      +
      +
      +#include <bson/bson.h>
      +#include <stdio.h>
      +
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_reader_t *reader;
      +   const bson_t *b;
      +   bson_error_t error;
      +   const char *filename;
      +   char *str;
      +   int i;
      +
      +   /*
      +    * Print program usage if no arguments are provided.
      +    */
      +   if (argc == 1) {
      +      fprintf (stderr, "usage: %s [FILE | -]...\nUse - for STDIN.\n", argv[0]);
      +      return 1;
      +   }
      +
      +   /*
      +    * Process command line arguments expecting each to be a filename.
      +    */
      +   for (i = 1; i < argc; i++) {
      +      filename = argv[i];
      +
      +      if (strcmp (filename, "-") == 0) {
      +         reader = bson_reader_new_from_fd (STDIN_FILENO, false);
      +      } else {
      +         if (!(reader = bson_reader_new_from_file (filename, &error))) {
      +            fprintf (
      +               stderr, "Failed to open \"%s\": %s\n", filename, error.message);
      +            continue;
      +         }
      +      }
      +
      +      /*
      +       * Convert each incoming document to JSON and print to stdout.
      +       */
      +      while ((b = bson_reader_read (reader, NULL))) {
      +         str = bson_as_canonical_extended_json (b, NULL);
      +         fprintf (stdout, "%s\n", str);
      +         bson_free (str);
      +      }
      +
      +      /*
      +       * Cleanup after our reader, which closes the file descriptor.
      +       */
      +      bson_reader_destroy (reader);
      +   }
      +
      +   return 0;
      +}
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/objects.inv b/libbson/1.24.4/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..13f56d33b4c6bdfd503b9e6307e8c4c72b4ebc38 GIT binary patch literal 3067 zcmVNERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGkxX<}k? zZ*B@BAXa5^b7^mGIv_DFGBhqU3L_v?Xk{RBWo=<;Ze(S0Aa78b#rNMXCQiPX<{x4c-obl%Z}u>6^8fq6a{3HEIP0qV=%}r89T`Y zvEA_42C@=VDpt2Vx>O{pFMfLSu5)E|R^9#o=X|6nN~B13d+m>_J^%GQcgMRgkL|Vp z^P?Syp+>H#b|M5=(>Wez-3k~)~p{n^1$I$V5$idlJxU`z$i zAEooWod&%#1XlujouJ%p{L5DwDVQ7-WX^f_b%pcpYmxKrYs#tg$X@J>J@1EO`|{bS zubSv`P}C`^pK7S!3aFqH)HFXgo9#4KvNK7DqUd5Ek=b zUNlB9IVH#vr+ID$GgWCZL}5mgkk{Aoqz@O-<-Dj9lz)vj>T4*v92Io|wc2*P)@UI> z1_n!DKD9%Q=xmwi3_{zcv$^zc5~J}-04ElUGVMhj8oVcvoJt_Bs+;=q3ns?|xp2Y^ zrCpn@o#v_U+MzKo)`htV+pjKwvu`B8@@|B(I@Al)=pt${L;K>&dE>>1;Zk8@U@86o zXvQ}+;O(YcRXk@2iE*AaU+t&B=pri6Gpc(u z-RI`XENd^+6}bR~^n#klYrF7gGU+fqDtqG8wN}XUGD`CT$g-|=+=S6x()=o=LmzXX zLxB&*TbFhltO^A&0vNayKAC3~>O2AFR0`4Sm1=XBZjh`rl-JKAt~fmS#HpHb8#;A4JEp$z0l1~?cF4C z70SpKLS``&_Rpo}vdp7@yrt%s!vI+hsF$Kl)M~*uOT?2m5MyiQ;BF6%`3)^ng5=s2 zd#{!J#^G-o@`g!&rcZopgjpI7;W%JsviaX8z=8_$!`~%kS>{D()}*5ry)1^m*S!ef z{?E(~FTmFFCnp;qFH10YY=3oi&_*Q|L1@TB*uGolIu=GyEc7sTx>Z{k!LXB3+j*L; zp90B?K0G9XKfSu1F&;k*bN6|N)oLf#i`3}RO-e4k8Tf}laR8ubIbD2hlUFo+9fucX zcrS>PC~OnPZXlZbSh9U5qoPMSQ7w>ly|x{{5lM&1Q7MVmEXs24Zo%{-V!|pfc|wy> zRF$eoH98~M5-1p)<|Y%J`?PGe<|aWRdAB)V zo*WWiq@pQckmb=MI~0P(kt|g1K(QqdzZXTV+z=e2a`~;yG`I!(S z)3aNFH?3{v%Vjn8Eye87^#b=eQna*#v0EGpb}zD`jbh>u#>X#diy#{`8*B{ZzxDf_ zOo74f?_^$-=JpOHcnzi3?w5RbgnJ?FCuD=A_xRzO-L&(0alcjuavZ~m$W`DshE*X@ zFGe0}fq!F|lp-so$wMaysEm9xs!|Le4R^Ehu#q6W0R8|XPkR(eP?b*}&)w5IC=Air zdZ*PlbhJRd6t=+={Ka(Jq76IAq|77}jw=`~p0cT_ypy(D6o7Wo zqSCK!h;9d^C5p{R*~ql8wGu}8#kA)z$UeAsXILc;@RbO)AZcA*3aS+WR_cQ{`r|xG z<)epsdC>iqlDfdiB4}-(hpG|`^%}D);^Lq+Exk@ z8Z_OTYLns^S~cvV3f<~FdcRS+%r3_n@8x_8oa6KYazwqLUYIkekv9wL_qhWM@IR`h z_#X<~|B#rr3dB8Pln;ZB^c3ibj(?8IxzCXu_#E*`&(Vyo9;=-f(>&Q$nwIeph+`%s z`=_Ns-EBhL4M3ZPg|{fj?C)a8ckR?Z7{A&QGo_x7dpqdirF)#V%SBj&B0h#dhXKWJ zS>#GE`2AW$ak&|}5(+LhyV;?-7Y;mt0V;+F+qcH9XW|6AS=Dh|m;8$(|38vx3L z3)=*=8<6(cu8$(e8-(B`m@6**WP{|wg`fO)rGxMgfycWFc9iW!DM+Q`?Zx7)?zZ^z z>^eM0NaXAx?CNK4!q*QpDJ;p5Bi|AHt_{juYaeOf73sOi8)LXSe9I#@R-4NN8Y=re#f4gNRA{o0UEy~lPszoCQ}Rw*L}kW$1sg*=@Q zW)eWU(Gx(3)D7G?Z7R8V1}Y9<6s@H9znQZ*2P_Uu&ss^JuI?>wFFZRLFgZyjS3EsK56qx5GVV$6 z+bx~2__JFmIg5aB-o$Jt<4h;utVX+5=rTq_uiA@Gb=H#xd*ZZs*k_SQ$-kL_}!fE1;c zkbF{vcybGP90$*FB}sh3i^UP}8IOw9^6_Ah#bxs+ebtI*pO>5+Q2f*hUr|ZN0I$GA zuA_T9Rj{K~G>RM|mo#p8%C!vxY6_F^iNbs7LJf?D}%Qg0M0 zP#jzbdwJiOwQF7NF76d0euhgyur7jK>f^mIiPWAp7D36-Lsi>Y@Y z_1owiKLqFaOK}dDZ5Wz-={pA18 z#oW0DxN|Llx;^z`;?JvZsG&dkt9L~m|2uEX@x$?cnID#RJh1Bk6-!wMI#Jl?1pjuu z<}l7@;To^6ciBkW8}oT{?HR9@91kf+L4G*>YC8MzoAq#Qmz8whB*n=4BlvU^mx+d;DphwG^BFI?!Va`(cHjfBMJW`-AW=3+O);{*(I6FH!WR J{|@NJK~&P8;2Hn` literal 0 HcmV?d00001 diff --git a/libbson/1.24.4/oid.html b/libbson/1.24.4/oid.html new file mode 100644 index 0000000000..5826299f60 --- /dev/null +++ b/libbson/1.24.4/oid.html @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + ObjectIDs — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      ObjectIDs

      +

      Libbson provides a simple way to generate ObjectIDs. It can be used in a single-threaded or multi-threaded manner depending on your requirements.

      +

      The bson_oid_t structure represents an ObjectID in MongoDB. It is a 96-bit identifier.

      +
      +

      Composition

      +
        +
      • 4 bytes : The UNIX timestamp in big-endian format.

      • +
      • 5 bytes : A random number.

      • +
      • 3 bytes : A 24-bit monotonic counter incrementing from rand() in big-endian.

      • +
      +
      +
      +

      Sorting ObjectIDs

      +

      The typical way to sort in C is using qsort(). Therefore, Libbson provides a qsort() compatible callback function named bson_oid_compare(). It returns less than 1, greater than 1, or 0 depending on the equality of two bson_oid_t structures.

      +
      +
      +

      Comparing Object IDs

      +

      If you simply want to compare two bson_oid_t structures for equality, use bson_oid_equal().

      +
      +
      +

      Generating

      +

      To generate a bson_oid_t, you may use the following.

      +
      bson_oid_t oid;
      +
      +bson_oid_init (&oid, NULL);
      +
      +
      +
      +
      +

      Parsing ObjectID Strings

      +

      You can also parse a string containing a bson_oid_t. The input string MUST be 24 characters or more in length.

      +
      bson_oid_t oid;
      +
      +bson_oid_init_from_string (&oid, "123456789012345678901234");
      +
      +
      +
      bson_oid_t oid;
      +
      +bson_oid_init_from_string_unsafe (&oid, "123456789012345678901234");
      +
      +
      +
      +
      +

      Hashing ObjectIDs

      +

      If you need to store items in a hashtable, you may want to use the bson_oid_t as the key. Libbson provides a hash function for just this purpose. It is based on DJB hash.

      +
      unsigned hash;
      +
      +hash = bson_oid_hash (oid);
      +
      +
      +
      +
      +

      Fetching ObjectID Creation Time

      +

      You can easily fetch the time that a bson_oid_t was generated using bson_oid_get_time_t().

      +
      time_t t;
      +
      +t = bson_oid_get_time_t (oid);
      +printf ("The OID was generated at %u\n", (unsigned) t);
      +
      +
      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/parsing.html b/libbson/1.24.4/parsing.html new file mode 100644 index 0000000000..4188a8f881 --- /dev/null +++ b/libbson/1.24.4/parsing.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + Parsing and Iterating BSON Documents — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Parsing and Iterating BSON Documents

      +
      +

      Parsing

      +

      BSON documents are lazily parsed as necessary. To begin parsing a BSON document, use one of the provided Libbson functions to create a new bson_t from existing data such as bson_new_from_data(). This will make a copy of the data so that additional mutations may occur to the BSON document.

      +
      +

      Tip

      +

      If you only want to parse a BSON document and have no need to mutate it, you may use bson_init_static() to avoid making a copy of the data.

      +
      +
      bson_t *b;
      +
      +b = bson_new_from_data (my_data, my_data_len);
      +if (!b) {
      +   fprintf (stderr, "The specified length embedded in <my_data> did not match "
      +                    "<my_data_len>\n");
      +   return;
      +}
      +
      +bson_destroy (b);
      +
      +
      +

      Only two checks are performed when creating a new bson_t from an existing buffer. First, the document must begin with the buffer length, matching what was expected by the caller. Second, the document must end with the expected trailing \0 byte.

      +

      To parse the document further we use a bson_iter_t to iterate the elements within the document. Let’s print all of the field names in the document.

      +
      bson_t *b;
      +bson_iter_t iter;
      +
      +if ((b = bson_new_from_data (my_data, my_data_len))) {
      +   if (bson_iter_init (&iter, b)) {
      +      while (bson_iter_next (&iter)) {
      +         printf ("Found element key: \"%s\"\n", bson_iter_key (&iter));
      +      }
      +   }
      +   bson_destroy (b);
      +}
      +
      +
      +

      Converting a document to JSON uses a bson_iter_t and bson_visitor_t to iterate all fields of a BSON document recursively and generate a UTF-8 encoded JSON string.

      +
      bson_t *b;
      +char *json;
      +
      +if ((b = bson_new_from_data (my_data, my_data_len))) {
      +   if ((json = bson_as_canonical_extended_json (b, NULL))) {
      +      printf ("%s\n", json);
      +      bson_free (json);
      +   }
      +   bson_destroy (b);
      +}
      +
      +
      +
      +
      +

      Recursing into Sub-Documents

      +

      Libbson provides convenient sub-iterators to dive down into a sub-document or sub-array. Below is an example that will dive into a sub-document named “foo” and print it’s field names.

      +
      bson_iter_t iter;
      +bson_iter_t child;
      +char *json;
      +
      +if (bson_iter_init_find (&iter, doc, "foo") &&
      +    BSON_ITER_HOLDS_DOCUMENT (&iter) && bson_iter_recurse (&iter, &child)) {
      +   while (bson_iter_next (&child)) {
      +      printf ("Found sub-key of \"foo\" named \"%s\"\n",
      +              bson_iter_key (&child));
      +   }
      +}
      +
      +
      +
      +
      +

      Finding Fields using Dot Notation

      +

      Using the bson_iter_recurse() function exemplified above, bson_iter_find_descendant() can find a field for you using the MongoDB style path notation such as “foo.bar.0.baz”.

      +

      Let’s create a document like {"foo": {"bar": [{"baz: 1}]}} and locate the "baz" field.

      +
      bson_t *b;
      +bson_iter_t iter;
      +bson_iter_t baz;
      +
      +b =
      +   BCON_NEW ("foo", "{", "bar", "[", "{", "baz", BCON_INT32 (1), "}", "]", "}");
      +
      +if (bson_iter_init (&iter, b) &&
      +    bson_iter_find_descendant (&iter, "foo.bar.0.baz", &baz) &&
      +    BSON_ITER_HOLDS_INT32 (&baz)) {
      +   printf ("baz = %d\n", bson_iter_int32 (&baz));
      +}
      +
      +bson_destroy (b);
      +
      +
      +
      +
      +

      Validating a BSON Document

      +

      If all you want to do is validate that a BSON document is valid, you can use bson_validate().

      +
      size_t err_offset;
      +
      +if (!bson_validate (doc, BSON_VALIDATE_NONE, &err_offset)) {
      +   fprintf (stderr,
      +            "The document failed to validate at offset: %u\n",
      +            (unsigned) err_offset);
      +}
      +
      +
      +

      See the bson_validate() documentation for more information and examples.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/search.html b/libbson/1.24.4/search.html new file mode 100644 index 0000000000..8608617f08 --- /dev/null +++ b/libbson/1.24.4/search.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + Search — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +

      Search

      +
      + +

      + Please activate JavaScript to enable the search + functionality. +

      +
      +

      + From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

      +
      + + + +
      + +
      + +
      + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/searchindex.js b/libbson/1.24.4/searchindex.js new file mode 100644 index 0000000000..238e7ccc47 --- /dev/null +++ b/libbson/1.24.4/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["api", "bson_aligned_alloc", "bson_aligned_alloc0", "bson_append_array", "bson_append_array_begin", "bson_append_array_end", "bson_append_binary", "bson_append_bool", "bson_append_code", "bson_append_code_with_scope", "bson_append_date_time", "bson_append_dbpointer", "bson_append_decimal128", "bson_append_document", "bson_append_document_begin", "bson_append_document_end", "bson_append_double", "bson_append_int32", "bson_append_int64", "bson_append_iter", "bson_append_maxkey", "bson_append_minkey", "bson_append_now_utc", "bson_append_null", "bson_append_oid", "bson_append_regex", "bson_append_regex_w_len", "bson_append_symbol", "bson_append_time_t", "bson_append_timestamp", "bson_append_timeval", "bson_append_undefined", "bson_append_utf8", "bson_append_value", "bson_array_as_canonical_extended_json", "bson_array_as_json", "bson_array_as_relaxed_extended_json", "bson_as_canonical_extended_json", "bson_as_json", "bson_as_json_with_opts", "bson_as_relaxed_extended_json", "bson_ascii_strtoll", "bson_check_version", "bson_compare", "bson_concat", "bson_context_destroy", "bson_context_get_default", "bson_context_new", "bson_context_t", "bson_copy", "bson_copy_to", "bson_copy_to_excluding", "bson_copy_to_excluding_noinit", "bson_copy_to_excluding_noinit_va", "bson_count_keys", "bson_decimal128_from_string", "bson_decimal128_from_string_w_len", "bson_decimal128_t", "bson_decimal128_to_string", "bson_destroy", "bson_destroy_with_steal", "bson_equal", "bson_error_t", "bson_free", "bson_get_data", "bson_get_major_version", "bson_get_micro_version", "bson_get_minor_version", "bson_get_monotonic_time", "bson_get_version", "bson_has_field", "bson_init", "bson_init_from_json", "bson_init_static", "bson_isspace", "bson_iter_array", "bson_iter_as_bool", "bson_iter_as_double", "bson_iter_as_int64", "bson_iter_binary", "bson_iter_bool", "bson_iter_code", "bson_iter_codewscope", "bson_iter_date_time", "bson_iter_dbpointer", "bson_iter_decimal128", "bson_iter_document", "bson_iter_double", "bson_iter_dup_utf8", "bson_iter_find", "bson_iter_find_case", "bson_iter_find_descendant", "bson_iter_find_w_len", "bson_iter_init", "bson_iter_init_find", "bson_iter_init_find_case", "bson_iter_init_find_w_len", "bson_iter_init_from_data", "bson_iter_init_from_data_at_offset", "bson_iter_int32", "bson_iter_int64", "bson_iter_key", "bson_iter_key_len", "bson_iter_next", "bson_iter_offset", "bson_iter_oid", "bson_iter_overwrite_bool", "bson_iter_overwrite_date_time", "bson_iter_overwrite_decimal128", "bson_iter_overwrite_double", "bson_iter_overwrite_int32", "bson_iter_overwrite_int64", "bson_iter_overwrite_oid", "bson_iter_overwrite_timestamp", "bson_iter_recurse", "bson_iter_regex", "bson_iter_symbol", "bson_iter_t", "bson_iter_time_t", "bson_iter_timestamp", "bson_iter_timeval", "bson_iter_type", "bson_iter_utf8", "bson_iter_value", "bson_iter_visit_all", "bson_json_data_reader_ingest", "bson_json_data_reader_new", "bson_json_mode_t", "bson_json_opts_destroy", "bson_json_opts_new", "bson_json_opts_set_outermost_array", "bson_json_opts_t", "bson_json_reader_destroy", "bson_json_reader_new", "bson_json_reader_new_from_fd", "bson_json_reader_new_from_file", "bson_json_reader_read", "bson_json_reader_t", "bson_malloc", "bson_malloc0", "bson_mem_restore_vtable", "bson_mem_set_vtable", "bson_memory", "bson_new", "bson_new_from_buffer", "bson_new_from_data", "bson_new_from_json", "bson_oid_compare", "bson_oid_copy", "bson_oid_equal", "bson_oid_get_time_t", "bson_oid_hash", "bson_oid_init", "bson_oid_init_from_data", "bson_oid_init_from_string", "bson_oid_init_sequence", "bson_oid_is_valid", "bson_oid_t", "bson_oid_to_string", "bson_reader_destroy", "bson_reader_destroy_func_t", "bson_reader_new_from_data", "bson_reader_new_from_fd", "bson_reader_new_from_file", "bson_reader_new_from_handle", "bson_reader_read", "bson_reader_read_func_t", "bson_reader_reset", "bson_reader_set_destroy_func", "bson_reader_set_read_func", "bson_reader_t", "bson_reader_tell", "bson_realloc", "bson_realloc_ctx", "bson_realloc_func", "bson_reinit", "bson_reserve_buffer", "bson_set_error", "bson_sized_new", "bson_snprintf", "bson_steal", "bson_strcasecmp", "bson_strdup", "bson_strdup_printf", "bson_strdupv_printf", "bson_strerror_r", "bson_strfreev", "bson_string_append", "bson_string_append_c", "bson_string_append_printf", "bson_string_append_unichar", "bson_string_free", "bson_string_new", "bson_string_t", "bson_string_truncate", "bson_strncpy", "bson_strndup", "bson_strnlen", "bson_subtype_t", "bson_t", "bson_type_t", "bson_uint32_to_string", "bson_unichar_t", "bson_utf8_escape_for_json", "bson_utf8_from_unichar", "bson_utf8_get_char", "bson_utf8_next_char", "bson_utf8_validate", "bson_validate", "bson_validate_with_error", "bson_value_copy", "bson_value_destroy", "bson_value_t", "bson_visitor_t", "bson_vsnprintf", "bson_writer_begin", "bson_writer_destroy", "bson_writer_end", "bson_writer_get_length", "bson_writer_new", "bson_writer_rollback", "bson_writer_t", "bson_zero_free", "character_and_string_routines", "creating", "cross-platform-notes", "endianness", "errors", "full_index", "guides", "include-and-link", "index", "json", "oid", "parsing", "streaming-bson", "threading", "tutorial", "utf8", "version"], "filenames": ["api.rst", "bson_aligned_alloc.rst", "bson_aligned_alloc0.rst", "bson_append_array.rst", "bson_append_array_begin.rst", "bson_append_array_end.rst", "bson_append_binary.rst", "bson_append_bool.rst", "bson_append_code.rst", "bson_append_code_with_scope.rst", "bson_append_date_time.rst", "bson_append_dbpointer.rst", "bson_append_decimal128.rst", "bson_append_document.rst", "bson_append_document_begin.rst", "bson_append_document_end.rst", "bson_append_double.rst", "bson_append_int32.rst", "bson_append_int64.rst", "bson_append_iter.rst", "bson_append_maxkey.rst", "bson_append_minkey.rst", "bson_append_now_utc.rst", "bson_append_null.rst", "bson_append_oid.rst", "bson_append_regex.rst", "bson_append_regex_w_len.rst", "bson_append_symbol.rst", "bson_append_time_t.rst", "bson_append_timestamp.rst", "bson_append_timeval.rst", "bson_append_undefined.rst", "bson_append_utf8.rst", "bson_append_value.rst", "bson_array_as_canonical_extended_json.rst", "bson_array_as_json.rst", "bson_array_as_relaxed_extended_json.rst", "bson_as_canonical_extended_json.rst", "bson_as_json.rst", "bson_as_json_with_opts.rst", "bson_as_relaxed_extended_json.rst", "bson_ascii_strtoll.rst", "bson_check_version.rst", "bson_compare.rst", "bson_concat.rst", "bson_context_destroy.rst", "bson_context_get_default.rst", "bson_context_new.rst", "bson_context_t.rst", "bson_copy.rst", "bson_copy_to.rst", "bson_copy_to_excluding.rst", "bson_copy_to_excluding_noinit.rst", "bson_copy_to_excluding_noinit_va.rst", "bson_count_keys.rst", "bson_decimal128_from_string.rst", "bson_decimal128_from_string_w_len.rst", "bson_decimal128_t.rst", "bson_decimal128_to_string.rst", "bson_destroy.rst", "bson_destroy_with_steal.rst", "bson_equal.rst", "bson_error_t.rst", "bson_free.rst", "bson_get_data.rst", "bson_get_major_version.rst", "bson_get_micro_version.rst", "bson_get_minor_version.rst", "bson_get_monotonic_time.rst", "bson_get_version.rst", "bson_has_field.rst", "bson_init.rst", "bson_init_from_json.rst", "bson_init_static.rst", "bson_isspace.rst", "bson_iter_array.rst", "bson_iter_as_bool.rst", "bson_iter_as_double.rst", "bson_iter_as_int64.rst", "bson_iter_binary.rst", "bson_iter_bool.rst", "bson_iter_code.rst", "bson_iter_codewscope.rst", "bson_iter_date_time.rst", "bson_iter_dbpointer.rst", "bson_iter_decimal128.rst", "bson_iter_document.rst", "bson_iter_double.rst", "bson_iter_dup_utf8.rst", "bson_iter_find.rst", "bson_iter_find_case.rst", "bson_iter_find_descendant.rst", "bson_iter_find_w_len.rst", "bson_iter_init.rst", "bson_iter_init_find.rst", "bson_iter_init_find_case.rst", "bson_iter_init_find_w_len.rst", "bson_iter_init_from_data.rst", "bson_iter_init_from_data_at_offset.rst", "bson_iter_int32.rst", "bson_iter_int64.rst", "bson_iter_key.rst", "bson_iter_key_len.rst", "bson_iter_next.rst", "bson_iter_offset.rst", "bson_iter_oid.rst", "bson_iter_overwrite_bool.rst", "bson_iter_overwrite_date_time.rst", "bson_iter_overwrite_decimal128.rst", "bson_iter_overwrite_double.rst", "bson_iter_overwrite_int32.rst", "bson_iter_overwrite_int64.rst", "bson_iter_overwrite_oid.rst", "bson_iter_overwrite_timestamp.rst", "bson_iter_recurse.rst", "bson_iter_regex.rst", "bson_iter_symbol.rst", "bson_iter_t.rst", "bson_iter_time_t.rst", "bson_iter_timestamp.rst", "bson_iter_timeval.rst", "bson_iter_type.rst", "bson_iter_utf8.rst", "bson_iter_value.rst", "bson_iter_visit_all.rst", "bson_json_data_reader_ingest.rst", "bson_json_data_reader_new.rst", "bson_json_mode_t.rst", "bson_json_opts_destroy.rst", "bson_json_opts_new.rst", "bson_json_opts_set_outermost_array.rst", "bson_json_opts_t.rst", "bson_json_reader_destroy.rst", "bson_json_reader_new.rst", "bson_json_reader_new_from_fd.rst", "bson_json_reader_new_from_file.rst", "bson_json_reader_read.rst", "bson_json_reader_t.rst", "bson_malloc.rst", "bson_malloc0.rst", "bson_mem_restore_vtable.rst", "bson_mem_set_vtable.rst", "bson_memory.rst", "bson_new.rst", "bson_new_from_buffer.rst", "bson_new_from_data.rst", "bson_new_from_json.rst", "bson_oid_compare.rst", "bson_oid_copy.rst", "bson_oid_equal.rst", "bson_oid_get_time_t.rst", "bson_oid_hash.rst", "bson_oid_init.rst", "bson_oid_init_from_data.rst", "bson_oid_init_from_string.rst", "bson_oid_init_sequence.rst", "bson_oid_is_valid.rst", "bson_oid_t.rst", "bson_oid_to_string.rst", "bson_reader_destroy.rst", "bson_reader_destroy_func_t.rst", "bson_reader_new_from_data.rst", "bson_reader_new_from_fd.rst", "bson_reader_new_from_file.rst", "bson_reader_new_from_handle.rst", "bson_reader_read.rst", "bson_reader_read_func_t.rst", "bson_reader_reset.rst", "bson_reader_set_destroy_func.rst", "bson_reader_set_read_func.rst", "bson_reader_t.rst", "bson_reader_tell.rst", "bson_realloc.rst", "bson_realloc_ctx.rst", "bson_realloc_func.rst", "bson_reinit.rst", "bson_reserve_buffer.rst", "bson_set_error.rst", "bson_sized_new.rst", "bson_snprintf.rst", "bson_steal.rst", "bson_strcasecmp.rst", "bson_strdup.rst", "bson_strdup_printf.rst", "bson_strdupv_printf.rst", "bson_strerror_r.rst", "bson_strfreev.rst", "bson_string_append.rst", "bson_string_append_c.rst", "bson_string_append_printf.rst", "bson_string_append_unichar.rst", "bson_string_free.rst", "bson_string_new.rst", "bson_string_t.rst", "bson_string_truncate.rst", "bson_strncpy.rst", "bson_strndup.rst", "bson_strnlen.rst", "bson_subtype_t.rst", "bson_t.rst", "bson_type_t.rst", "bson_uint32_to_string.rst", "bson_unichar_t.rst", "bson_utf8_escape_for_json.rst", "bson_utf8_from_unichar.rst", "bson_utf8_get_char.rst", "bson_utf8_next_char.rst", "bson_utf8_validate.rst", "bson_validate.rst", "bson_validate_with_error.rst", "bson_value_copy.rst", "bson_value_destroy.rst", "bson_value_t.rst", "bson_visitor_t.rst", "bson_vsnprintf.rst", "bson_writer_begin.rst", "bson_writer_destroy.rst", "bson_writer_end.rst", "bson_writer_get_length.rst", "bson_writer_new.rst", "bson_writer_rollback.rst", "bson_writer_t.rst", "bson_zero_free.rst", "character_and_string_routines.rst", "creating.rst", "cross-platform-notes.rst", "endianness.rst", "errors.rst", "full_index.rst", "guides.rst", "include-and-link.rst", "index.rst", "json.rst", "oid.rst", "parsing.rst", "streaming-bson.rst", "threading.rst", "tutorial.rst", "utf8.rst", "version.rst"], "titles": ["API Reference", "bson_aligned_alloc()", "bson_aligned_alloc0()", "bson_append_array()", "bson_append_array_begin()", "bson_append_array_end()", "bson_append_binary()", "bson_append_bool()", "bson_append_code()", "bson_append_code_with_scope()", "bson_append_date_time()", "bson_append_dbpointer()", "bson_append_decimal128()", "bson_append_document()", "bson_append_document_begin()", "bson_append_document_end()", "bson_append_double()", "bson_append_int32()", "bson_append_int64()", "bson_append_iter()", "bson_append_maxkey()", "bson_append_minkey()", "bson_append_now_utc()", "bson_append_null()", "bson_append_oid()", "bson_append_regex()", "bson_append_regex_w_len()", "bson_append_symbol()", "bson_append_time_t()", "bson_append_timestamp()", "bson_append_timeval()", "bson_append_undefined()", "bson_append_utf8()", "bson_append_value()", "bson_array_as_canonical_extended_json()", "bson_array_as_json()", "bson_array_as_relaxed_extended_json()", "bson_as_canonical_extended_json()", "bson_as_json()", "bson_as_json_with_opts()", "bson_as_relaxed_extended_json()", "bson_ascii_strtoll()", "bson_check_version()", "bson_compare()", "bson_concat()", "bson_context_destroy()", "bson_context_get_default()", "bson_context_new()", "bson_context_t", "bson_copy()", "bson_copy_to()", "bson_copy_to_excluding()", "bson_copy_to_excluding_noinit()", "bson_copy_to_excluding_noinit_va()", "bson_count_keys()", "bson_decimal128_from_string()", "bson_decimal128_from_string_w_len()", "bson_decimal128_t", "bson_decimal128_to_string()", "bson_destroy()", "bson_destroy_with_steal()", "bson_equal()", "bson_error_t", "bson_free()", "bson_get_data()", "bson_get_major_version()", "bson_get_micro_version()", "bson_get_minor_version()", "System Clock", "bson_get_version()", "bson_has_field()", "bson_init()", "bson_init_from_json()", "bson_init_static()", "bson_isspace()", "bson_iter_array()", "bson_iter_as_bool()", "bson_iter_as_double()", "bson_iter_as_int64()", "bson_iter_binary()", "bson_iter_bool()", "bson_iter_code()", "bson_iter_codewscope()", "bson_iter_date_time()", "bson_iter_dbpointer()", "bson_iter_decimal128()", "bson_iter_document()", "bson_iter_double()", "bson_iter_dup_utf8()", "bson_iter_find()", "bson_iter_find_case()", "bson_iter_find_descendant()", "bson_iter_find_w_len()", "bson_iter_init()", "bson_iter_init_find()", "bson_iter_init_find_case()", "bson_iter_init_find_w_len()", "bson_iter_init_from_data()", "bson_iter_init_from_data_at_offset()", "bson_iter_int32()", "bson_iter_int64()", "bson_iter_key()", "bson_iter_key_len()", "bson_iter_next()", "bson_iter_offset()", "bson_iter_oid()", "bson_iter_overwrite_bool()", "bson_iter_overwrite_date_time()", "bson_iter_overwrite_decimal128()", "bson_iter_overwrite_double()", "bson_iter_overwrite_int32()", "bson_iter_overwrite_int64()", "bson_iter_overwrite_oid()", "bson_iter_overwrite_timestamp()", "bson_iter_recurse()", "bson_iter_regex()", "bson_iter_symbol()", "bson_iter_t", "bson_iter_time_t()", "bson_iter_timestamp()", "bson_iter_timeval()", "bson_iter_type()", "bson_iter_utf8()", "bson_iter_value()", "bson_iter_visit_all()", "bson_json_data_reader_ingest()", "bson_json_data_reader_new()", "bson_json_mode_t", "bson_json_opts_destroy()", "bson_json_opts_new()", "bson_json_opts_set_outermost_array()", "bson_json_opts_t", "bson_json_reader_destroy()", "bson_json_reader_new()", "bson_json_reader_new_from_fd()", "bson_json_reader_new_from_file()", "bson_json_reader_read()", "bson_json_reader_t", "bson_malloc()", "bson_malloc0()", "bson_mem_restore_vtable()", "bson_mem_set_vtable()", "Memory Management", "bson_new()", "bson_new_from_buffer()", "bson_new_from_data()", "bson_new_from_json()", "bson_oid_compare()", "bson_oid_copy()", "bson_oid_equal()", "bson_oid_get_time_t()", "bson_oid_hash()", "bson_oid_init()", "bson_oid_init_from_data()", "bson_oid_init_from_string()", "bson_oid_init_sequence()", "bson_oid_is_valid()", "bson_oid_t", "bson_oid_to_string()", "bson_reader_destroy()", "bson_reader_destroy_func_t", "bson_reader_new_from_data()", "bson_reader_new_from_fd()", "bson_reader_new_from_file()", "bson_reader_new_from_handle()", "bson_reader_read()", "bson_reader_read_func_t", "bson_reader_reset()", "bson_reader_set_destroy_func()", "bson_reader_set_read_func()", "bson_reader_t", "bson_reader_tell()", "bson_realloc()", "bson_realloc_ctx()", "bson_realloc_func", "bson_reinit()", "bson_reserve_buffer()", "bson_set_error()", "bson_sized_new()", "bson_snprintf()", "bson_steal()", "bson_strcasecmp()", "bson_strdup()", "bson_strdup_printf()", "bson_strdupv_printf()", "bson_strerror_r()", "bson_strfreev()", "bson_string_append()", "bson_string_append_c()", "bson_string_append_printf()", "bson_string_append_unichar()", "bson_string_free()", "bson_string_new()", "bson_string_t", "bson_string_truncate()", "bson_strncpy()", "bson_strndup()", "bson_strnlen()", "bson_subtype_t", "bson_t", "bson_type_t", "bson_uint32_to_string()", "bson_unichar_t", "bson_utf8_escape_for_json()", "bson_utf8_from_unichar()", "bson_utf8_get_char()", "bson_utf8_next_char()", "bson_utf8_validate()", "bson_validate()", "bson_validate_with_error()", "bson_value_copy()", "bson_value_destroy()", "bson_value_t", "bson_visitor_t", "bson_vsnprintf()", "bson_writer_begin()", "bson_writer_destroy()", "bson_writer_end()", "bson_writer_get_length()", "bson_writer_new()", "bson_writer_rollback()", "bson_writer_t", "bson_zero_free()", "Character and String Routines", "Creating a BSON Document", "Cross Platform Notes", "Endianness", "Handling Errors", "Index", "Guides", "Using libbson In Your C Program", "libbson", "JSON", "ObjectIDs", "Parsing and Iterating BSON Documents", "Streaming BSON", "Threading", "Tutorial", "UTF-8", "Libbson Versioning"], "terms": {"bson_t": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 49, 50, 51, 52, 53, 54, 59, 60, 61, 64, 70, 71, 72, 73, 79, 82, 93, 94, 95, 96, 98, 117, 122, 136, 137, 143, 144, 145, 146, 165, 170, 175, 176, 178, 180, 198, 208, 209, 213, 215, 220, 221, 228, 230, 231, 232, 234, 235], "bson_append_arrai": [0, 199, 228], "bson_append_array_begin": [0, 5, 60, 199, 224, 228], "bson_append_array_end": [0, 4, 199, 228], "bson_append_binari": [0, 198, 199, 228], "bson_append_bool": [0, 199, 224, 228], "bson_append_cod": [0, 9, 199, 228], "bson_append_code_with_scop": [0, 199, 228], "bson_append_date_tim": [0, 22, 29, 199, 228], "bson_append_dbpoint": [0, 199, 228], "bson_append_decimal128": [0, 199, 228], "bson_append_docu": [0, 199, 228], "bson_append_document_begin": [0, 15, 60, 199, 224, 228], "bson_append_document_end": [0, 14, 199, 224, 228], "bson_append_doubl": [0, 36, 199, 228], "bson_append_int32": [0, 34, 52, 199, 221, 224, 228, 235], "bson_append_int64": [0, 199, 228], "bson_append_it": [0, 199, 228], "bson_append_maxkei": [0, 199, 228], "bson_append_minkei": [0, 199, 228], "bson_append_now_utc": [0, 199, 228], "bson_append_nul": [0, 27, 32, 199, 228], "bson_append_oid": [0, 199, 228], "bson_append_regex": [0, 199, 228], "bson_append_regex_w_len": [0, 199, 228], "bson_append_symbol": [0, 199, 228], "bson_append_time_t": [0, 199, 228], "bson_append_timestamp": [0, 199, 228], "bson_append_timev": [0, 199, 228], "bson_append_undefin": [0, 199, 228], "bson_append_utf8": [0, 34, 35, 36, 38, 180, 199, 224, 228], "bson_append_valu": [0, 199, 228], "bson_array_as_canonical_extended_json": [0, 35, 36, 37, 38, 39, 40, 199, 228], "bson_array_as_json": [0, 34, 36, 37, 38, 39, 40, 199, 228], "bson_array_as_relaxed_extended_json": [0, 34, 35, 37, 38, 39, 40, 199, 228], "bson_as_canonical_extended_json": [0, 34, 35, 36, 38, 39, 40, 170, 176, 199, 213, 224, 228, 230, 232, 234, 235], "bson_as_json": [0, 34, 35, 36, 37, 39, 40, 52, 199, 228], "bson_as_json_with_opt": [0, 34, 35, 36, 37, 38, 40, 127, 131, 199, 228], "bson_as_relaxed_extended_json": [0, 34, 35, 36, 37, 38, 39, 199, 228, 232], "bson_compar": [0, 199, 228], "bson_concat": [0, 71, 72, 73, 143, 144, 145, 146, 175, 176, 178, 199, 228], "bson_copi": [0, 199, 228], "bson_copy_to": [0, 199, 228], "bson_copy_to_exclud": [0, 52, 199, 228], "bson_copy_to_excluding_noinit": [0, 51, 53, 199, 228], "bson_copy_to_excluding_noinit_va": [0, 199, 228], "bson_count_kei": [0, 199, 228], "bson_destroi": [0, 34, 35, 36, 38, 49, 52, 60, 72, 137, 143, 175, 176, 178, 180, 199, 224, 228, 230, 232, 234], "bson_destroy_with_st": [0, 180, 199, 228], "bson_equ": [0, 199, 228], "bson_get_data": [0, 98, 137, 199, 228, 232], "bson_has_field": [0, 199, 228], "bson_init": [0, 34, 35, 36, 38, 44, 51, 52, 53, 72, 73, 143, 144, 145, 146, 175, 176, 178, 199, 224, 228], "bson_init_from_json": [0, 44, 71, 73, 136, 143, 144, 145, 146, 175, 176, 178, 199, 228, 232], "bson_init_stat": [0, 44, 71, 72, 82, 143, 144, 145, 146, 175, 176, 178, 199, 228, 234], "bson_json_mode_t": [0, 129, 131, 199, 228], "bson_json_opts_t": [0, 39, 128, 129, 130, 199, 228], "bson_new": [0, 44, 71, 72, 73, 144, 145, 146, 175, 176, 178, 199, 228], "bson_new_from_buff": [0, 44, 71, 72, 73, 143, 145, 146, 175, 176, 178, 199, 228], "bson_new_from_data": [0, 44, 71, 72, 73, 143, 144, 146, 175, 176, 178, 199, 228, 234], "bson_new_from_json": [0, 44, 71, 72, 73, 136, 143, 144, 145, 175, 176, 178, 199, 228, 232], "bson_reinit": [0, 44, 71, 72, 73, 137, 143, 144, 145, 146, 176, 178, 199, 228, 232], "bson_reserve_buff": [0, 44, 71, 72, 73, 143, 144, 145, 146, 175, 178, 199, 228], "bson_sized_new": [0, 44, 71, 72, 73, 143, 144, 145, 146, 175, 176, 199, 228], "bson_steal": [0, 60, 199, 228], "bson_valid": [0, 199, 209, 228, 234], "bson_validate_with_error": [0, 199, 208, 228], "bson_context_t": [0, 45, 46, 47, 152, 155, 228, 231], "bson_context_destroi": [0, 47, 48, 228], "bson_context_get_default": [0, 47, 48, 228], "bson_context_new": [0, 45, 48, 228], "bson_decimal128_t": [0, 12, 55, 56, 58, 85, 108, 212, 213, 228, 231], "bson_decimal128_from_str": [0, 57, 228], "bson_decimal128_from_string_w_len": [0, 57, 228], "bson_decimal128_to_str": [0, 57, 228], "bson_error_t": [0, 72, 135, 136, 137, 146, 163, 170, 177, 209, 213, 227, 228, 231, 232, 235], "bson_set_error": [0, 62, 228], "bson_strerror_r": [0, 62, 228], "bson_iter_t": [0, 19, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 200, 213, 228, 231, 234], "bson_iter_arrai": [0, 117, 228], "bson_iter_as_bool": [0, 117, 228], "bson_iter_as_doubl": [0, 117, 228], "bson_iter_as_int64": [0, 117, 228], "bson_iter_binari": [0, 117, 228], "bson_iter_bool": [0, 117, 228], "bson_iter_cod": [0, 82, 117, 228], "bson_iter_codewscop": [0, 117, 228], "bson_iter_date_tim": [0, 117, 119, 228], "bson_iter_dbpoint": [0, 117, 228], "bson_iter_decimal128": [0, 117, 228], "bson_iter_docu": [0, 117, 228], "bson_iter_doubl": [0, 117, 228], "bson_iter_dup_utf8": [0, 117, 228], "bson_iter_find": [0, 93, 94, 97, 117, 228], "bson_iter_find_cas": [0, 89, 92, 93, 95, 97, 117, 228], "bson_iter_find_descend": [0, 117, 228, 234], "bson_iter_find_w_len": [0, 96, 117, 228], "bson_iter_init": [0, 94, 95, 96, 97, 117, 213, 228, 234], "bson_iter_init_find": [0, 93, 95, 96, 97, 117, 200, 228, 234], "bson_iter_init_find_cas": [0, 93, 94, 96, 97, 117, 228], "bson_iter_init_find_w_len": [0, 117, 228], "bson_iter_init_from_data": [0, 93, 94, 95, 96, 117, 228], "bson_iter_init_from_data_at_offset": [0, 104, 117, 228], "bson_iter_int32": [0, 117, 228, 234], "bson_iter_int64": [0, 117, 228], "bson_iter_kei": [0, 19, 102, 117, 228, 234], "bson_iter_key_len": [0, 98, 101, 117, 228], "bson_iter_next": [0, 93, 97, 117, 228, 234], "bson_iter_offset": [0, 98, 117, 228], "bson_iter_oid": [0, 93, 97, 117, 228], "bson_iter_overwrite_bool": [0, 117, 228], "bson_iter_overwrite_date_tim": [0, 117, 228], "bson_iter_overwrite_decimal128": [0, 117, 228], "bson_iter_overwrite_doubl": [0, 117, 228], "bson_iter_overwrite_int32": [0, 117, 228], "bson_iter_overwrite_int64": [0, 117, 228], "bson_iter_overwrite_oid": [0, 117, 228], "bson_iter_overwrite_timestamp": [0, 117, 228], "bson_iter_recurs": [0, 117, 228, 234], "bson_iter_regex": [0, 117, 228], "bson_iter_symbol": [0, 117, 228], "bson_iter_time_t": [0, 117, 228], "bson_iter_timestamp": [0, 117, 228], "bson_iter_timev": [0, 117, 228], "bson_iter_typ": [0, 75, 79, 80, 81, 82, 83, 85, 86, 87, 99, 100, 105, 117, 119, 122, 200, 228], "bson_iter_utf8": [0, 88, 117, 228], "bson_iter_valu": [0, 117, 212, 228], "bson_iter_visit_al": [0, 117, 213, 228], "bson_json_reader_t": [0, 125, 126, 132, 133, 134, 135, 136, 227, 228, 231, 232], "bson_json_data_reader_ingest": [0, 137, 228], "bson_json_data_reader_new": [0, 137, 228], "bson_json_reader_destroi": [0, 126, 133, 134, 137, 228, 232], "bson_json_reader_new": [0, 137, 228], "bson_json_reader_new_from_fd": [0, 137, 228, 232], "bson_json_reader_new_from_fil": [0, 137, 227, 228, 232], "bson_json_reader_read": [0, 72, 137, 146, 228, 232], "bson_oid_t": [0, 11, 24, 48, 84, 93, 97, 105, 112, 147, 148, 149, 150, 151, 152, 153, 154, 155, 158, 212, 213, 228, 231, 233], "bson_oid_compar": [0, 157, 228, 233], "bson_oid_copi": [0, 157, 228], "bson_oid_equ": [0, 157, 228, 233], "bson_oid_get_time_t": [0, 157, 228, 233], "bson_oid_hash": [0, 157, 228, 233], "bson_oid_init": [0, 48, 155, 157, 228, 233], "bson_oid_init_from_data": [0, 157, 228], "bson_oid_init_from_str": [0, 157, 228, 233], "bson_oid_init_sequ": [0, 157, 228], "bson_oid_is_valid": [0, 157, 228], "bson_oid_to_str": [0, 93, 97, 157, 228], "bson_reader_t": [0, 62, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 213, 228, 231, 232, 235], "bson_reader_destroi": [0, 160, 162, 170, 213, 228, 232, 235], "bson_reader_destroy_func_t": [0, 164, 168, 170, 228], "bson_reader_new_from_data": [0, 167, 170, 228, 235], "bson_reader_new_from_fd": [0, 170, 228, 232, 235], "bson_reader_new_from_fil": [0, 62, 170, 213, 228, 232, 235], "bson_reader_new_from_handl": [0, 160, 170, 228], "bson_reader_read": [0, 170, 213, 228, 232, 235], "bson_reader_read_func_t": [0, 164, 169, 170, 228], "bson_reader_reset": [0, 170, 228], "bson_reader_set_destroy_func": [0, 170, 228], "bson_reader_set_read_func": [0, 170, 228], "bson_reader_tel": [0, 170, 228, 235], "charact": [0, 25, 26, 41, 74, 190, 195, 202, 203, 204, 205, 206, 228, 231, 233], "string": [0, 3, 4, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 55, 56, 57, 58, 69, 70, 72, 81, 82, 88, 89, 90, 92, 96, 98, 101, 115, 116, 122, 129, 131, 137, 146, 154, 156, 158, 170, 177, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 201, 203, 205, 206, 207, 209, 214, 224, 228, 231, 232, 234, 238], "routin": [0, 224, 228, 231, 232], "bson_ascii_strtol": [0, 223, 228], "bson_isspac": [0, 223, 228], "bson_snprintf": [0, 214, 223, 228], "bson_strcasecmp": [0, 223, 228], "bson_strdup": [0, 223, 228], "bson_strdup_printf": [0, 184, 223, 228], "bson_strdupv_printf": [0, 223, 228], "bson_strfreev": [0, 223, 228], "bson_strncpi": [0, 223, 228], "bson_strndup": [0, 88, 223, 228], "bson_strnlen": [0, 223, 228], "bson_uint32_to_str": [0, 4, 223, 228], "bson_utf8_escape_for_json": [0, 223, 228], "bson_utf8_from_unichar": [0, 223, 228], "bson_utf8_get_char": [0, 202, 223, 228], "bson_utf8_next_char": [0, 202, 223, 228], "bson_utf8_valid": [0, 122, 223, 228, 238], "bson_vsnprintf": [0, 223, 228], "bson_string_t": [0, 187, 188, 189, 190, 191, 192, 194, 228, 231], "bson_string_append": [0, 189, 192, 193, 228], "bson_string_append_c": [0, 193, 228], "bson_string_append_printf": [0, 193, 228], "bson_string_append_unichar": [0, 193, 228], "bson_string_fre": [0, 192, 193, 228], "bson_string_new": [0, 193, 228], "bson_string_trunc": [0, 193, 228], "bson_subtype_t": [0, 6, 79, 212, 213, 228, 231], "bson_type_t": [0, 121, 212, 228, 231], "bson_unichar_t": [0, 190, 204, 205, 228, 231], "bson_value_t": [0, 33, 123, 210, 211, 228, 231], "bson_value_copi": [0, 212, 228], "bson_value_destroi": [0, 210, 212, 228], "bson_visitor_t": [0, 124, 208, 209, 228, 231, 234], "bson_writer_t": [0, 215, 216, 217, 218, 219, 220, 228, 231, 235], "bson_writer_begin": [0, 60, 221, 228, 235], "bson_writer_destroi": [0, 219, 221, 228], "bson_writer_end": [0, 215, 221, 228, 235], "bson_writer_get_length": [0, 221, 228], "bson_writer_new": [0, 216, 221, 228, 235], "bson_writer_rollback": [0, 215, 218, 221, 228], "system": [0, 11, 32, 135, 166, 226, 228, 231, 236], "clock": [0, 228, 231], "memori": [0, 1, 2, 14, 50, 63, 125, 138, 139, 140, 141, 164, 170, 172, 173, 174, 176, 216, 218, 220, 221, 222, 224, 228, 231, 235], "manag": [0, 199, 220, 224, 228, 231, 235], "bson_fre": [0, 34, 35, 36, 37, 38, 39, 40, 52, 60, 88, 142, 170, 176, 180, 182, 183, 184, 196, 203, 213, 221, 222, 224, 228, 230, 232, 234, 235], "bson_malloc": [0, 142, 180, 228], "bson_malloc0": [0, 142, 228], "bson_aligned_alloc": [0, 142, 228], "bson_aligned_alloc0": [0, 142, 228], "bson_mem_restore_vt": [0, 142, 228], "bson_mem_set_vt": [0, 142, 228], "bson_realloc": [0, 142, 173, 228], "bson_realloc_ctx": [0, 142, 174, 221, 228, 235], "bson_realloc_func": [0, 142, 144, 219, 221, 228], "bson_zero_fre": [0, 142, 228], "libbson": [0, 35, 38, 42, 65, 66, 67, 68, 69, 140, 141, 142, 174, 213, 224, 226, 227, 228, 232, 233, 234, 236, 237, 238], "version": [0, 41, 42, 51, 65, 66, 67, 69, 89, 92, 137, 154, 155, 170, 181, 197, 213, 228, 230, 231, 232], "bson_check_vers": [0, 228, 239], "bson_get_major_vers": [0, 228, 239], "bson_get_micro_vers": [0, 228, 239], "bson_get_minor_vers": [0, 228, 239], "bson_get_vers": [0, 228, 239], "void": [1, 2, 45, 46, 48, 50, 51, 52, 53, 58, 59, 63, 65, 66, 67, 68, 69, 71, 75, 79, 84, 86, 93, 97, 106, 107, 109, 110, 111, 112, 113, 119, 120, 124, 125, 128, 130, 131, 132, 133, 138, 139, 140, 141, 143, 144, 148, 152, 153, 154, 155, 158, 159, 160, 164, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 180, 186, 187, 188, 189, 190, 194, 195, 199, 202, 204, 210, 211, 213, 216, 217, 219, 220, 221, 222, 239], "size_t": [1, 2, 34, 35, 36, 37, 38, 39, 40, 73, 97, 98, 125, 126, 133, 138, 139, 141, 144, 145, 156, 161, 166, 170, 172, 173, 174, 176, 178, 179, 185, 195, 196, 197, 201, 207, 208, 213, 214, 218, 219, 221, 222, 232, 234, 235], "align": [1, 2, 141], "num_byt": [1, 2, 138, 139, 141, 172, 173, 174], "The": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 59, 60, 61, 62, 64, 65, 66, 67, 68, 71, 72, 73, 75, 77, 78, 79, 80, 81, 82, 83, 84, 86, 89, 90, 91, 92, 93, 97, 98, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 126, 127, 129, 130, 131, 133, 137, 143, 144, 145, 146, 147, 155, 156, 157, 160, 161, 162, 165, 166, 170, 176, 178, 179, 185, 190, 194, 195, 197, 199, 200, 201, 202, 203, 204, 207, 209, 212, 213, 214, 215, 216, 218, 219, 221, 222, 226, 230, 232, 233, 234, 235, 239], "alloc": [1, 2, 34, 35, 36, 37, 38, 39, 40, 45, 47, 49, 59, 62, 88, 117, 126, 129, 133, 134, 135, 138, 139, 140, 141, 142, 143, 144, 145, 146, 161, 162, 163, 164, 172, 173, 174, 176, 178, 182, 183, 184, 192, 193, 196, 199, 203, 216, 219, 221], "byte": [1, 2, 3, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 55, 56, 72, 73, 86, 97, 98, 122, 138, 139, 144, 145, 146, 149, 153, 154, 155, 157, 166, 172, 176, 179, 190, 194, 195, 197, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 224, 233, 234, 238], "must": [1, 2, 4, 6, 8, 14, 24, 32, 41, 50, 69, 72, 73, 75, 86, 93, 97, 98, 117, 140, 141, 161, 162, 176, 180, 194, 195, 210, 215, 233, 234, 238], "power": [1, 2, 192, 193], "2": [1, 2, 3, 32, 48, 52, 69, 137, 166, 170, 183, 189, 209, 213, 232], "multipl": [1, 2, 25, 26, 206], "sizeof": [1, 2, 138, 139, 157, 172, 180, 201], "number": [1, 2, 32, 41, 54, 65, 66, 67, 83, 118, 120, 138, 155, 166, 179, 195, 201, 202, 204, 214, 223, 224, 233], "thi": [1, 2, 4, 5, 9, 15, 20, 21, 22, 27, 29, 31, 32, 33, 35, 38, 42, 43, 45, 46, 47, 48, 51, 52, 53, 59, 60, 63, 64, 70, 71, 75, 79, 80, 81, 85, 86, 88, 94, 95, 96, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 119, 122, 123, 129, 131, 137, 138, 139, 140, 141, 142, 145, 155, 160, 164, 166, 168, 170, 172, 173, 174, 176, 177, 178, 179, 180, 183, 184, 185, 186, 187, 193, 194, 195, 198, 199, 201, 202, 206, 210, 213, 216, 218, 220, 221, 222, 224, 226, 232, 233, 234, 235, 239], "i": [1, 2, 3, 5, 6, 9, 10, 11, 15, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 56, 57, 59, 60, 62, 71, 72, 74, 75, 79, 80, 81, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 122, 123, 126, 128, 129, 131, 132, 133, 134, 135, 137, 138, 139, 141, 142, 143, 144, 145, 146, 155, 156, 157, 159, 160, 161, 162, 163, 165, 166, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 182, 184, 185, 187, 191, 193, 194, 195, 196, 199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 211, 212, 213, 216, 218, 219, 220, 221, 222, 224, 226, 227, 230, 232, 233, 234, 235, 236, 238], "portabl": [1, 2, 41, 138, 139, 142, 172, 179, 181, 185, 197], "aligned_alloc": [1, 2, 141], "wrapper": [1, 2, 138, 139, 172, 179, 180, 185], "In": [1, 2, 138, 139, 172, 224, 228, 231, 232, 237], "gener": [1, 2, 4, 47, 48, 52, 138, 139, 145, 150, 151, 152, 155, 172, 199, 201, 227, 234, 236], "function": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 43, 44, 45, 46, 49, 50, 51, 52, 53, 54, 59, 60, 61, 63, 64, 71, 72, 73, 74, 75, 78, 79, 80, 81, 82, 83, 85, 86, 88, 89, 91, 92, 93, 94, 95, 96, 97, 99, 100, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 124, 129, 130, 138, 139, 140, 141, 143, 144, 145, 146, 147, 155, 160, 161, 162, 164, 165, 166, 169, 172, 173, 174, 176, 177, 178, 180, 183, 184, 192, 201, 206, 210, 219, 222, 224, 227, 230, 232, 233, 234, 235, 238], "an": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 50, 57, 59, 62, 70, 72, 75, 80, 82, 86, 88, 90, 92, 93, 96, 97, 98, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 117, 119, 122, 129, 133, 134, 136, 137, 138, 139, 144, 146, 152, 155, 157, 160, 165, 170, 172, 176, 180, 185, 188, 193, 199, 200, 202, 213, 221, 224, 227, 232, 233, 234], "least": [1, 2, 138, 139, 172, 176, 195], "bigger": [1, 2, 138, 139, 172], "If": [1, 2, 9, 19, 34, 35, 36, 37, 38, 39, 40, 41, 43, 60, 89, 91, 92, 114, 116, 123, 138, 139, 144, 162, 165, 172, 174, 175, 182, 195, 201, 203, 207, 213, 230, 233, 234, 238], "wa": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 41, 55, 56, 65, 66, 67, 70, 72, 73, 85, 89, 90, 91, 92, 93, 97, 98, 103, 114, 124, 136, 138, 139, 157, 165, 172, 180, 197, 208, 215, 224, 233, 234], "failur": [1, 2, 34, 35, 36, 37, 38, 39, 40, 114, 138, 139, 140, 141, 165, 166, 171, 172, 227], "process": [1, 2, 39, 46, 47, 137, 138, 139, 140, 141, 170, 172, 232], "abort": [1, 2, 137, 138, 139, 142, 172, 213, 218, 220, 232], "A": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 63, 64, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 129, 130, 132, 133, 134, 135, 136, 138, 139, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 199, 201, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 215, 216, 217, 218, 219, 220, 222, 224, 231, 233], "pointer": [1, 2, 24, 72, 73, 79, 82, 98, 133, 138, 139, 144, 164, 172, 173, 174, 176, 201, 206], "region": [1, 2, 63, 138, 139, 170, 172, 173, 174, 220, 221, 222, 224, 235], "which": [1, 2, 32, 35, 38, 41, 64, 81, 82, 97, 101, 115, 138, 139, 170, 172, 176, 192, 195, 199, 206, 209, 232, 235], "ha": [1, 2, 47, 57, 73, 103, 122, 129, 131, 138, 139, 142, 172, 199, 201, 220, 238], "NOT": [1, 138, 172, 216, 236], "been": [1, 2, 122, 138, 139, 142, 172, 199], "zero": [1, 2, 41, 43, 54, 60, 76, 138, 139, 166, 172, 195, 209, 222], "also": [2, 47, 70, 82, 139, 179, 203, 230, 231, 232, 233, 235], "set": [2, 34, 35, 36, 37, 38, 39, 40, 41, 55, 56, 60, 72, 115, 116, 124, 130, 135, 139, 141, 142, 144, 146, 163, 165, 168, 169, 176, 177, 195, 196, 199, 201, 208, 209, 213, 224, 230], "defin": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 57, 75, 79, 80, 81, 82, 83, 85, 86, 87, 99, 100, 105, 117, 119, 122, 129, 131, 133, 137, 157, 199, 239], "b": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 52, 70, 71, 73, 91, 117, 137, 170, 175, 180, 199, 224, 230, 232, 234], "kei": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 51, 52, 70, 89, 90, 91, 92, 94, 95, 96, 98, 101, 102, 117, 180, 208, 209, 213, 224, 233, 234], "val": [3, 6, 7, 8, 9, 10, 12, 13, 16, 17, 18, 24, 25, 27, 28, 29, 30, 32, 33, 199], "int": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 42, 43, 48, 52, 56, 57, 65, 66, 67, 68, 74, 92, 96, 117, 134, 136, 137, 147, 157, 162, 170, 176, 179, 180, 181, 185, 199, 213, 214, 221, 224, 230, 232, 235], "strlen": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 72, 102, 146, 199, 224], "bool": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 42, 44, 55, 56, 60, 61, 70, 72, 73, 74, 76, 80, 85, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 103, 106, 108, 114, 124, 126, 130, 133, 134, 149, 156, 162, 165, 170, 176, 180, 191, 207, 208, 209, 212, 213, 215, 224, 235], "bson": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 48, 49, 52, 54, 57, 59, 60, 61, 62, 64, 68, 70, 72, 82, 84, 93, 94, 95, 96, 97, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 116, 117, 121, 124, 126, 127, 129, 131, 134, 136, 137, 142, 144, 145, 156, 157, 170, 176, 180, 193, 198, 199, 200, 201, 208, 209, 212, 213, 215, 221, 226, 228, 229, 231, 237], "const": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 49, 50, 51, 52, 53, 54, 55, 56, 58, 61, 64, 69, 70, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 105, 108, 112, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 135, 137, 141, 145, 146, 147, 148, 149, 150, 151, 153, 154, 156, 158, 161, 163, 165, 170, 177, 179, 181, 182, 183, 184, 187, 189, 192, 195, 196, 197, 201, 202, 203, 205, 206, 207, 208, 209, 210, 212, 213, 214, 230, 232, 235], "char": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 51, 52, 53, 55, 56, 57, 58, 62, 69, 70, 72, 81, 82, 84, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 115, 116, 122, 135, 137, 154, 156, 157, 158, 163, 170, 176, 177, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 195, 196, 197, 201, 202, 203, 204, 205, 206, 207, 212, 213, 214, 221, 224, 230, 232, 234, 235], "key_length": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "arrai": [3, 4, 5, 11, 34, 35, 36, 75, 114, 186, 234], "ascii": [3, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 55, 56, 90, 187, 188, 203], "c": [3, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 52, 70, 74, 91, 117, 188, 202, 213, 228, 231, 233, 237], "contain": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 55, 56, 57, 60, 70, 72, 82, 83, 89, 90, 92, 97, 106, 115, 117, 118, 120, 125, 127, 131, 133, 137, 138, 142, 144, 146, 149, 150, 153, 154, 155, 156, 157, 170, 172, 173, 174, 175, 198, 199, 200, 201, 202, 207, 209, 212, 213, 232, 233, 238], "name": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 51, 52, 53, 57, 70, 84, 89, 90, 92, 117, 135, 227, 233, 234], "field": [3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 51, 52, 53, 70, 76, 77, 79, 81, 84, 85, 87, 90, 98, 99, 100, 117, 122, 124, 141, 198, 199, 200, 213, 224], "length": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 58, 60, 72, 73, 75, 79, 81, 82, 84, 86, 88, 92, 96, 97, 98, 101, 102, 116, 122, 125, 129, 131, 144, 145, 146, 156, 161, 170, 176, 194, 197, 199, 203, 207, 209, 218, 219, 224, 233, 234, 238], "1": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 48, 51, 52, 55, 56, 69, 72, 74, 136, 137, 146, 155, 166, 170, 171, 176, 183, 184, 199, 201, 203, 209, 213, 224, 227, 230, 232, 233, 234, 235, 238, 239], "determin": [3, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 72, 74, 76, 90, 130, 146, 200, 212, 224, 227], "shall": [3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 29, 31, 32, 35, 38, 43, 44, 45, 46, 49, 50, 51, 52, 53, 54, 59, 60, 61, 63, 64, 71, 73, 75, 78, 79, 80, 83, 86, 89, 91, 92, 93, 97, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 129, 130, 140, 141, 143, 145, 147, 161, 162, 165, 178], "append": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 44, 187, 188, 189, 190, 192, 199, 220, 224], "us": [3, 6, 7, 8, 11, 13, 14, 19, 20, 21, 27, 29, 31, 32, 33, 35, 38, 39, 41, 43, 45, 47, 48, 51, 60, 62, 63, 64, 73, 82, 84, 90, 98, 103, 104, 114, 117, 119, 122, 124, 129, 130, 131, 135, 137, 140, 141, 143, 144, 152, 153, 155, 157, 160, 161, 163, 164, 168, 170, 173, 174, 175, 176, 178, 180, 192, 193, 198, 199, 200, 201, 202, 204, 208, 209, 210, 213, 215, 218, 219, 220, 221, 222, 224, 226, 228, 231, 232, 233, 235, 236, 237, 238, 239], "specifi": [3, 10, 13, 48, 51, 52, 53, 59, 107, 224, 230, 234], "type": [3, 9, 11, 13, 16, 20, 21, 23, 24, 25, 26, 27, 29, 31, 33, 57, 75, 76, 77, 79, 81, 84, 85, 86, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 121, 123, 157, 200, 212, 213, 224, 227, 230, 232], "respons": [3, 34, 35, 36, 37, 38, 39, 40, 216, 236], "caller": [3, 4, 34, 35, 36, 37, 38, 39, 40, 62, 93, 97, 122, 215, 216, 219, 234], "ensur": 3, "ar": [3, 29, 43, 45, 47, 48, 59, 61, 72, 73, 135, 136, 137, 146, 149, 163, 165, 170, 176, 181, 193, 199, 203, 207, 209, 222, 223, 224, 226, 230, 232, 234, 236, 238, 239], "properli": [3, 226], "format": [3, 10, 34, 35, 36, 37, 38, 39, 40, 55, 56, 69, 72, 137, 155, 177, 179, 183, 184, 189, 201, 213, 214, 224, 226, 231, 232, 233, 238], "0": [3, 6, 32, 34, 35, 36, 38, 41, 43, 48, 51, 57, 72, 77, 117, 122, 136, 137, 146, 147, 155, 157, 166, 170, 172, 176, 179, 181, 184, 193, 194, 195, 196, 197, 201, 206, 207, 209, 213, 214, 221, 230, 232, 233, 234, 235, 238, 239], "so": [3, 4, 43, 140, 141, 142, 194, 230, 234, 235], "forth": 3, "true": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 42, 44, 55, 56, 61, 70, 72, 73, 76, 80, 85, 89, 90, 91, 92, 93, 97, 98, 103, 114, 124, 149, 156, 162, 165, 176, 180, 193, 207, 208, 209, 213, 215, 224, 238], "oper": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 44, 47, 137, 166, 176, 236], "appli": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "successfulli": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 73, 93, 97, 98, 180], "fail": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 73, 137, 165, 170, 209, 232, 234, 235, 238], "grow": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 176, 235], "larger": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "than": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 42, 43, 80, 102, 122, 147, 166, 195, 233], "int32_max": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 176], "child": [4, 5, 13, 14, 15, 114, 199, 213, 224, 234], "call": [4, 5, 14, 15, 22, 34, 35, 36, 37, 38, 39, 40, 45, 47, 51, 52, 53, 59, 60, 79, 80, 81, 85, 88, 93, 97, 99, 100, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 119, 122, 134, 140, 141, 144, 160, 162, 166, 175, 176, 180, 193, 199, 206, 213, 215, 224], "begin": [4, 14, 141, 167, 206, 215, 234], "allow": [4, 9, 32, 48, 106, 107, 108, 109, 110, 111, 112, 113, 123, 142, 164, 168, 199, 207, 209, 214, 224, 232, 238], "increment": [4, 29, 68, 113, 119, 212, 233], "build": [4, 193, 221, 224, 231, 235], "sub": [4, 13, 14, 75, 86, 117], "do": [4, 32, 33, 140, 141, 142, 165, 174, 177, 193, 234, 235], "yield": 4, "better": 4, "perform": [4, 9, 137, 183, 193, 224, 234, 239], "you": [4, 33, 45, 59, 63, 64, 69, 79, 80, 85, 99, 100, 105, 119, 122, 137, 157, 170, 174, 176, 178, 180, 193, 208, 209, 218, 220, 221, 222, 224, 230, 232, 233, 234, 235, 236, 238, 239], "serial": [4, 144, 221, 235], "singl": [4, 72, 146, 199, 202, 204, 221, 233], "buffer": [4, 6, 60, 64, 73, 75, 79, 82, 86, 97, 98, 126, 133, 144, 145, 153, 161, 165, 166, 167, 175, 176, 178, 179, 192, 195, 199, 201, 215, 216, 217, 218, 219, 221, 224, 234, 235], "when": [4, 11, 14, 20, 21, 45, 59, 60, 65, 66, 67, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 122, 134, 143, 145, 160, 162, 168, 173, 176, 192, 199, 202, 210, 213, 215, 219, 221, 224, 226, 234], "done": [4, 59, 106, 107, 108, 109, 110, 111, 112, 113, 122], "For": [4, 89, 92, 141, 180, 199, 220, 221, 238], "element": [4, 6, 7, 8, 9, 10, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 31, 34, 35, 36, 54, 70, 75, 78, 79, 80, 82, 83, 84, 86, 89, 90, 92, 93, 97, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 234], "see": [4, 55, 56, 62, 70, 89, 92, 124, 137, 170, 198, 199, 208, 218, 232, 234, 235, 238], "initi": [5, 14, 15, 50, 55, 56, 60, 71, 72, 73, 91, 93, 94, 95, 96, 97, 98, 114, 144, 146, 153, 154, 175, 176, 180, 213, 218, 224, 235], "complet": [5, 14, 15, 215, 217], "start": [5, 34, 35, 36, 41, 51, 52, 98, 157, 209, 224], "invalid": [5, 15, 19, 41, 44, 72, 73, 81, 89, 91, 92, 103, 114, 115, 119, 122, 123, 176, 180, 206, 209, 227, 238], "after": [5, 15, 94, 95, 96, 103, 170, 175, 176, 180, 181, 193, 195, 213, 216, 232, 235], "success": [5, 15, 19, 34, 35, 36, 37, 38, 39, 40, 44, 72, 135, 136, 144, 145, 146, 163, 164], "subtyp": [6, 79, 198, 199, 212], "len": [6, 56, 64, 72, 98, 125, 137, 146, 193, 194, 199, 204, 212, 232], "uint8_t": [6, 60, 64, 73, 75, 79, 82, 86, 97, 98, 125, 144, 145, 146, 153, 157, 161, 170, 176, 199, 212, 213, 219, 221, 235], "binari": [6, 79, 198], "uint32_t": [6, 29, 54, 60, 62, 75, 79, 81, 82, 84, 86, 88, 98, 102, 104, 113, 116, 119, 122, 151, 176, 177, 193, 194, 199, 201, 202, 204, 212, 213], "indic": [6, 60, 74, 92, 96, 191, 199, 207, 209, 224, 238], "emb": 6, "data": [6, 57, 72, 73, 79, 97, 98, 104, 124, 125, 133, 136, 144, 145, 146, 153, 161, 164, 166, 169, 170, 180, 198, 199, 201, 212, 213, 222, 231, 234, 236], "mai": [6, 10, 47, 72, 106, 107, 108, 109, 110, 111, 112, 113, 117, 137, 142, 145, 146, 170, 175, 198, 199, 206, 213, 215, 221, 232, 233, 234, 238, 239], "null": [6, 8, 9, 19, 27, 32, 34, 35, 36, 37, 38, 39, 40, 41, 45, 48, 51, 52, 56, 59, 60, 79, 81, 115, 116, 128, 132, 135, 144, 145, 146, 152, 157, 159, 163, 164, 165, 170, 173, 174, 176, 177, 180, 182, 186, 187, 191, 192, 193, 195, 199, 203, 207, 209, 211, 213, 216, 221, 224, 227, 230, 232, 233, 234, 235, 238], "empti": [6, 144, 199, 224], "valu": [6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 57, 65, 66, 67, 76, 77, 80, 85, 98, 99, 100, 106, 107, 108, 109, 110, 111, 112, 123, 130, 147, 157, 166, 180, 199, 201, 202, 208, 209, 211, 212, 224, 232], "new": [6, 7, 8, 10, 12, 16, 17, 18, 23, 24, 25, 26, 27, 29, 31, 33, 47, 49, 51, 52, 72, 84, 106, 108, 109, 126, 129, 133, 134, 135, 141, 142, 143, 144, 145, 146, 152, 155, 161, 162, 163, 172, 176, 178, 182, 192, 194, 196, 199, 203, 215, 219, 224, 232, 234], "provid": [6, 7, 8, 9, 55, 56, 68, 73, 82, 115, 124, 130, 137, 144, 153, 160, 162, 164, 170, 202, 213, 221, 223, 224, 231, 232, 233, 234, 235, 236, 238], "fals": [7, 19, 44, 55, 56, 60, 70, 72, 73, 74, 80, 85, 89, 91, 92, 103, 114, 124, 137, 149, 165, 170, 176, 180, 191, 193, 208, 209, 213, 232, 238], "boolean": [7, 74, 76, 80, 130], "javascript": [8, 9, 31, 82], "utf": [8, 9, 32, 34, 35, 36, 37, 38, 39, 40, 72, 81, 82, 88, 122, 146, 187, 190, 193, 202, 203, 204, 205, 206, 207, 209, 223, 224, 228, 231, 234, 237], "8": [8, 9, 32, 34, 35, 36, 37, 38, 39, 40, 41, 72, 81, 82, 88, 122, 146, 155, 187, 190, 193, 202, 203, 204, 205, 206, 207, 209, 223, 224, 228, 231, 234, 237, 239], "encod": [8, 9, 32, 34, 35, 36, 37, 38, 39, 40, 55, 56, 72, 81, 82, 88, 122, 127, 129, 131, 135, 145, 146, 154, 156, 157, 158, 163, 187, 190, 193, 199, 203, 205, 206, 224, 226, 234], "termin": [8, 9, 32, 41, 51, 52, 56, 186, 195, 203, 238], "scope": [9, 82, 199], "fragment": 9, "option": [9, 19, 25, 26, 34, 35, 36, 37, 38, 39, 40, 72, 82, 88, 115, 122, 124, 131, 144, 146, 152, 155, 160, 191, 209, 212, 213], "like": [9, 69, 91, 166, 184, 189, 193, 199, 201, 213, 214, 222, 234, 236], "except": [9, 34, 35, 36, 51, 52, 53, 74, 82, 88, 137, 170, 173, 184, 203, 222, 232], "form": 9, "document": [9, 10, 11, 13, 14, 15, 16, 19, 20, 21, 33, 34, 35, 36, 39, 43, 44, 49, 60, 61, 64, 82, 86, 93, 97, 103, 106, 107, 108, 109, 110, 111, 112, 113, 114, 117, 121, 124, 126, 129, 131, 136, 137, 144, 145, 165, 170, 176, 178, 199, 208, 209, 213, 215, 218, 221, 227, 228, 231, 232, 237], "code": [9, 27, 31, 51, 52, 62, 82, 84, 151, 155, 177, 209, 212, 213, 227], "otherwis": [9, 55, 56, 59, 70, 72, 73, 85, 114, 135, 145, 146, 149, 163, 164, 171, 191, 208, 209], "int64_t": [10, 18, 41, 68, 78, 83, 100, 107, 111, 212, 213], "date": [10, 22, 107, 119], "time": [10, 22, 98, 101, 102, 104, 107, 117, 119, 150, 155, 157, 224, 232, 236], "millisecond": [10, 28, 30, 83, 107], "sinc": [10, 28, 30, 51, 83, 107, 118, 120, 150, 155, 157], "unix": [10, 28, 30, 83, 107, 118, 120, 150, 157, 166, 233, 236], "epoch": [10, 28, 30, 83, 107, 118, 120, 150, 157], "timezon": 10, "inform": [10, 62, 124, 198, 213, 232, 234, 235, 238], "assum": 10, "utc": [10, 22], "neg": [10, 181], "coll": [11, 199], "oid": [11, 24, 48, 84, 93, 97, 112, 150, 151, 152, 153, 154, 155, 157, 158, 199, 212, 233], "collect": [11, 84, 212], "target": [11, 57, 230], "identifi": [11, 233], "dbpointer": 11, "deprec": [11, 27, 31, 47, 51, 84, 116, 155, 213], "should": [11, 25, 26, 27, 31, 45, 47, 49, 51, 52, 59, 60, 62, 63, 64, 72, 81, 82, 84, 85, 88, 89, 91, 92, 98, 99, 100, 101, 105, 114, 115, 117, 123, 126, 133, 134, 143, 155, 162, 165, 168, 178, 182, 183, 184, 191, 192, 196, 199, 202, 203, 224, 238], "onli": [11, 29, 48, 68, 72, 73, 79, 106, 107, 108, 109, 110, 111, 112, 113, 114, 146, 155, 167, 168, 234, 239], "interact": 11, "legaci": [11, 27, 32, 35, 38], "decim": 12, "128": [12, 199], "uniniti": [14, 50, 72, 176, 180], "add": [14, 224], "avoid": [14, 50, 73, 234], "leak": [14, 50], "doubl": [16, 77, 87, 109, 212, 213], "int32_t": [17, 99, 110, 129, 131, 212, 213], "32": [17, 99, 151, 202, 205], "bit": [17, 18, 41, 57, 78, 83, 99, 100, 151, 155, 202, 205, 233], "sign": [17, 18, 41, 78], "integ": [17, 18, 34, 35, 36, 41, 54, 78, 83, 92, 96, 99, 100, 102, 104, 181], "64": [18, 41, 78, 83, 100, 155], "iter": [19, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 200, 202, 212, 213, 228, 231, 235, 237], "locat": [19, 34, 35, 36, 37, 38, 39, 40, 58, 60, 72, 75, 79, 81, 82, 84, 85, 86, 88, 90, 94, 95, 96, 122, 124, 146, 158, 185, 201, 204, 208, 213, 214, 234], "posit": [19, 54, 171, 181], "current": [19, 22, 76, 77, 78, 90, 98, 101, 102, 104, 114, 115, 122, 123, 155, 171, 194, 205, 206, 218, 220], "would": [19, 44, 193, 224], "overflow": [19, 44], "maximum": [19, 44, 129, 131, 197, 199, 213], "size": [19, 44, 57, 117, 126, 133, 144, 172, 173, 174, 176, 178, 179, 185, 195, 197, 199, 201, 214, 222], "anoth": [19, 44, 60, 157, 180], "state": [19, 44, 213, 224], "detect": [19, 44, 165, 208, 220], "bson_type_maxkei": [20, 121, 200], "primarili": [20, 21, 29], "queri": [20, 21], "unlik": [20, 21], "store": [20, 21, 60, 81, 82, 185, 199, 204, 222, 233], "mongodb": [20, 21, 29, 34, 35, 36, 37, 38, 39, 40, 72, 91, 127, 131, 137, 170, 199, 220, 227, 231, 232, 233, 234], "bson_type_minkei": [21, 121, 200], "helper": [22, 28, 30, 177, 238], "get": [22, 65, 66, 67, 176], "bson_type_date_tim": [22, 83, 107, 118, 120, 121, 200], "intern": [22, 43, 73, 133, 176, 185, 199, 227], "bson_type_nul": [23, 76, 121, 200], "bson_type_oid": [24, 105, 112, 121, 200], "opt": [25, 39, 128, 130, 131, 199], "regex": [25, 26, 115, 212], "bson_type_regex": [25, 26, 115, 121, 200], "valid": [25, 26, 32, 41, 55, 56, 72, 73, 79, 98, 117, 122, 146, 156, 161, 162, 167, 207, 208, 209, 227], "includ": [25, 26, 29, 34, 35, 36, 38, 48, 52, 57, 62, 78, 117, 127, 131, 137, 157, 170, 176, 186, 193, 198, 199, 200, 212, 213, 218, 221, 224, 232, 235], "case": [25, 26, 47, 89, 90, 92, 177, 181, 213], "insensit": [25, 26], "m": [25, 26], "match": [25, 26, 90, 195, 203, 234], "x": [25, 26], "verbos": [25, 26], "mode": [25, 26, 127, 129, 131, 162], "l": [25, 26], "make": [25, 26, 142, 223, 224, 234], "w": [25, 26], "local": [25, 26, 48, 90], "depend": [25, 26, 57, 233], "": [25, 26, 34, 35, 36, 37, 38, 39, 40, 41, 42, 52, 57, 62, 65, 66, 67, 69, 79, 93, 97, 98, 117, 137, 157, 170, 176, 193, 197, 201, 213, 224, 230, 232, 234, 235, 236], "dotal": [25, 26], "everyth": [25, 26], "u": [25, 26, 142, 157, 202, 233, 234, 235], "unicod": [25, 26, 190, 202, 204], "regex_length": 26, "symbol": [27, 34, 35, 36, 37, 38, 39, 40, 116, 212], "bson_type_symbol": [27, 116, 121, 200], "due": [27, 32, 124], "behavior": [27, 32, 48, 195, 199], "pass": [27, 32, 39, 41, 62, 98, 103, 123, 144, 160, 185, 218, 224, 238], "To": [27, 32, 129, 131, 142, 165, 175, 224, 232, 233, 234, 238], "directli": [27, 32, 176, 221], "prefer": [27, 32, 52, 224, 232], "time_t": [28, 118, 150, 233], "take": [28, 30, 53, 122, 173, 176, 184, 193, 224], "instead": [28, 30, 60, 141, 213, 226, 230], "inc": [29, 137, 170, 199, 232], "timestamp": [29, 113, 119, 212, 233], "similar": [29, 82, 88, 139, 166, 232], "differ": [29, 68, 224], "thei": [29, 149, 181, 226], "second": [29, 118, 120, 150, 157, 224, 234], "precis": 29, "intra": [29, 119], "server": [29, 119, 199], "commun": [29, 32, 119], "bson_type_timestamp": [29, 113, 119, 121, 200], "struct": [30, 48, 57, 62, 68, 98, 117, 120, 131, 137, 141, 157, 170, 180, 193, 199, 212, 213, 221], "timev": [30, 68, 120], "bson_type_undefin": [31, 76, 121, 200], "undefin": [31, 199, 213], "common": [31, 232], "howev": [31, 117, 142, 155], "exclud": [32, 51, 52, 53, 72, 146, 194, 214], "trail": [32, 72, 146, 179, 194, 195, 196, 234], "some": [32, 193, 227], "implement": [32, 68, 142, 168, 174, 226, 236], "within": [32, 54, 68, 70, 155, 171, 199, 206, 207, 208, 234, 238], "rememb": 32, "could": [32, 98, 156, 176, 213, 224, 227, 235], "caus": 32, "issu": 32, "extern": [32, 117], "support": [32, 78, 226, 232, 235], "It": [32, 60, 62, 68, 74, 79, 80, 81, 82, 103, 106, 107, 108, 109, 110, 111, 112, 113, 115, 117, 119, 122, 143, 155, 177, 179, 200, 201, 202, 206, 231, 232, 233], "suggest": [32, 122], "modifi": [32, 64, 69, 79, 81, 82, 101, 105, 115, 117, 122, 123, 165, 208, 209], "represent": [32, 69, 122, 190, 202, 205, 232], "embed": [32, 114, 187, 207, 209, 234], "mani": [32, 221, 226, 227], "libc": [32, 166], "utf8": [32, 122, 203, 204, 205, 206, 207], "box": [33, 123, 210, 212], "want": [33, 64, 119, 122, 130, 137, 218, 222, 224, 232, 233, 234, 235, 239], "copi": [33, 49, 50, 51, 52, 53, 64, 73, 137, 145, 148, 161, 170, 176, 182, 192, 195, 196, 210, 232, 234], "between": [33, 57, 117], "know": [33, 76, 123, 238], "until": [33, 79], "runtim": [33, 42, 122, 123, 200, 212], "result": [34, 35, 36, 37, 38, 39, 40, 41, 49, 58, 60, 63, 73, 82, 88, 116, 122, 129, 131, 140, 141, 158, 161, 178, 179, 201, 203, 204, 214], "canon": [34, 37, 232], "extend": [34, 35, 36, 37, 38, 39, 40, 72, 127, 131, 137, 227, 232], "json": [34, 35, 36, 37, 38, 39, 40, 72, 125, 126, 127, 129, 131, 134, 136, 137, 146, 170, 176, 203, 224, 227, 228, 229, 231, 234], "outermost": [34, 35, 36], "rather": [34, 35, 36, 195], "free": [34, 35, 36, 37, 38, 39, 40, 59, 60, 62, 63, 69, 132, 141, 186, 191, 199], "non": [34, 35, 36, 37, 38, 39, 40, 60, 76, 81, 116, 141, 203], "newli": [34, 35, 36, 37, 38, 39, 40, 47, 49, 88, 126, 129, 133, 134, 135, 143, 144, 145, 146, 161, 162, 163, 164, 178, 182, 183, 184, 192, 196, 203, 219], "upon": [34, 35, 36, 37, 38, 39, 40, 93, 97, 137, 235], "h": [34, 35, 36, 38, 48, 52, 57, 62, 117, 127, 131, 137, 157, 170, 176, 193, 198, 199, 200, 212, 213, 221, 224, 232, 235], "main": [34, 35, 36, 38, 48, 52, 57, 137, 157, 170, 176, 180, 213, 221, 230, 232, 235], "str": [34, 35, 36, 37, 38, 39, 40, 41, 52, 58, 154, 156, 157, 158, 170, 179, 182, 187, 188, 191, 192, 193, 196, 201, 202, 212, 214, 224, 232, 235], "normal": [34, 35, 36, 213], "continu": [34, 35, 36, 137, 170, 213, 232], "sequenti": [34, 35, 36, 155, 235], "bar": [34, 35, 36, 38, 199, 234], "print": [34, 35, 36, 38, 52, 137, 170, 232, 234], "numberint": [34, 232], "printf": [34, 35, 36, 37, 38, 39, 40, 52, 57, 93, 97, 117, 157, 176, 177, 179, 183, 184, 189, 193, 200, 201, 202, 212, 213, 214, 224, 230, 232, 233, 234, 235, 238], "n": [34, 35, 36, 37, 38, 39, 40, 52, 57, 62, 93, 97, 117, 137, 157, 165, 170, 176, 193, 200, 201, 202, 212, 213, 224, 230, 232, 233, 234, 235, 238], "supersed": [35, 38], "same": [35, 38, 43, 52, 53, 149, 199, 224], "all": [35, 38, 45, 51, 52, 53, 89, 90, 92, 122, 124, 127, 128, 159, 165, 200, 208, 209, 223, 230, 234, 236], "other": [35, 38, 43, 48, 61, 77, 80, 122, 164, 176, 203, 222, 227], "driver": [35, 38, 122, 231], "foo": [35, 38, 199, 200, 224, 234], "relax": [36, 40, 232], "3": [36, 69, 141, 157, 179, 189, 209, 213, 214, 224, 233], "14": [36, 155], "doc": [37, 39, 40, 93, 137, 165, 198, 199, 200, 213, 221, 224, 232, 234, 235], "structur": [39, 48, 57, 59, 60, 62, 117, 131, 137, 143, 157, 170, 175, 180, 191, 199, 209, 212, 213, 215, 219, 227, 233, 236], "pleas": [39, 51, 155], "refer": [39, 73, 122, 228, 231, 238], "more": [39, 169, 198, 209, 221, 233, 234, 235, 238], "detail": [39, 208, 209], "bson_json_opts_new": [39, 131, 228], "bson_json_mode_canon": [39, 127], "bson_max_len_unlimit": [39, 129, 131], "bson_json_opts_destroi": [39, 131, 228], "endptr": 41, "base": [41, 125, 147, 213, 224, 233, 239], "convert": [41, 58, 126, 134, 137, 157, 158, 170, 201, 203, 204, 205, 226, 231, 234], "address": 41, "first": [41, 51, 52, 53, 65, 89, 90, 92, 93, 97, 155, 176, 222, 224, 234], "convers": [41, 137, 213], "strtoll": 41, "accord": 41, "given": [41, 218], "16": [41, 57, 201, 239], "10": [41, 201], "lead": 41, "whitespac": 41, "ignor": [41, 226], "infer": 41, "from": [41, 51, 52, 53, 57, 75, 76, 85, 86, 98, 99, 100, 133, 134, 136, 162, 164, 165, 166, 167, 169, 170, 176, 195, 196, 199, 200, 201, 206, 210, 216, 221, 226, 231, 232, 233, 234, 236], "0x": 41, "digit": 41, "9": 41, "assign": 41, "its": [41, 175, 176, 190], "entir": [41, 195], "encount": [41, 103], "errno": [41, 185], "einval": 41, "out": [41, 62, 74, 85, 142, 144, 209, 215, 227], "rang": 41, "erang": 41, "llong_max": 41, "llong_min": 41, "required_major": 42, "required_minor": 42, "required_micro": 42, "minimum": [42, 230], "major": [42, 65, 66, 67, 239], "requir": [42, 62, 63, 137, 142, 170, 213, 224, 230, 232, 233, 236], "minor": [42, 65, 66, 67, 239], "micro": [42, 65, 66, 67, 239], "check": [42, 47, 70, 74, 79, 80, 149, 156, 165, 197, 199, 209, 218, 227, 234, 239], "releas": [42, 45, 65, 66, 67, 117, 128, 159, 211, 216], "meet": 42, "greater": [42, 43, 147, 166, 233], "equal": [42, 43, 61, 149, 157, 194, 233], "compar": 43, "two": [43, 57, 149, 192, 193, 224, 233, 234], "can": [43, 57, 64, 73, 75, 79, 80, 82, 86, 98, 117, 122, 129, 131, 133, 137, 157, 164, 170, 193, 199, 200, 202, 208, 209, 213, 221, 222, 224, 230, 233, 234, 235, 238, 239], "conjunct": [43, 64], "_qsort": 43, "_": [43, 219], "_memcmp": 43, "semant": 43, "less": [43, 147, 224, 233], "qsort": [43, 147, 157, 233], "style": [43, 147, 157, 177, 179, 183, 184, 189, 214, 234], "dst": [44, 50, 51, 52, 53, 148, 180, 195, 210], "src": [44, 50, 51, 52, 53, 148, 180, 195, 210], "content": [44, 49, 50, 60, 78, 81, 84, 87, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 119, 122, 145, 148, 176, 180, 207, 208, 209, 210, 218], "context": [45, 46, 47, 48, 152, 155, 173], "resourc": [45, 128, 159, 211], "associ": [45, 128, 159, 211], "doe": [45, 52, 53, 59, 62, 128, 132, 159, 195, 211, 213, 216], "noth": [45, 59, 128, 132, 159, 177, 195, 211, 216], "longer": [45, 60, 143, 192, 210], "have": [45, 47, 48, 178, 180, 199, 209, 224, 232, 234], "default": [46, 48, 140, 144, 152, 174], "creat": [46, 47, 98, 126, 129, 133, 134, 135, 143, 144, 145, 160, 161, 162, 163, 167, 178, 192, 219, 228, 231, 232, 234, 237], "flag": [46, 47, 48, 199, 208, 209], "bson_context_thread_saf": [46, 47, 48], "bson_context_disable_pid_cach": [46, 47, 48], "bson_context_flags_t": [47, 48], "follow": [47, 76, 77, 91, 155, 224, 232, 233, 238, 239], "bson_context_non": [47, 48], "mean": [47, 56, 195, 226], "objectid": [47, 48, 155, 156, 157, 228, 231, 236, 237], "thread": [47, 225, 228, 231, 233], "safe": [47, 236], "chang": [47, 117, 142], "getpid": 47, "everi": [47, 141], "effect": [47, 48, 209], "bson_context_disable_host_cach": 47, "bson_context_use_task_id": 47, "rare": [47, 142], "need": [47, 52, 193, 213, 224, 233, 234, 238], "serv": 47, "most": 47, "freed": [47, 49, 60, 64, 72, 79, 81, 82, 88, 101, 105, 115, 122, 123, 126, 133, 134, 140, 141, 143, 162, 165, 172, 175, 176, 178, 180, 182, 183, 184, 191, 192, 196, 203, 210, 216], "typedef": [48, 57, 62, 117, 121, 127, 131, 137, 141, 157, 160, 166, 170, 174, 180, 193, 198, 199, 200, 202, 209, 212, 213, 221], "enum": [48, 121, 127, 137, 198, 200, 209], "_bson_context_t": 48, "bson_gnuc_const": 48, "object": [48, 57, 72, 146, 157], "id": [48, 157], "overrid": 48, "ones": 48, "argc": [48, 57, 137, 157, 170, 180, 213, 221, 230, 232, 235], "argv": [48, 57, 137, 157, 170, 180, 213, 221, 230, 232, 235], "ctx": [48, 144, 173, 174], "via": [48, 72, 135, 136, 142, 146, 163], "addit": [48, 74, 195, 213, 234], "control": 48, "return": [48, 57, 79, 119, 120, 137, 157, 170, 193, 213, 221, 227, 230, 232, 233, 234, 235], "first_exclud": [51, 52, 53], "bson_gnuc_null_termin": [51, 52], "bson_gnuc_deprecated_for": [51, 155], "those": [51, 52, 53, 60, 223], "variad": [51, 52, 214, 224], "list": [51, 52, 199], "work": [52, 53, 137, 145, 173, 238], "wai": [52, 53, 68, 174, 233], "over": 52, "veri": 52, "special": [52, 203], "situat": [52, 98, 142], "bson2": 52, "va_list": [53, 184, 214], "arg": [53, 184], "method": [53, 216], "count": [54, 166, 213], "dec": [55, 56, 58, 85], "decimal128": [55, 56, 57, 108], "pars": [55, 56, 72, 137, 146, 154, 156, 213, 227, 228, 231, 237], "specif": [55, 56, 116, 137, 157, 170, 173, 174, 199, 200, 213, 224, 226, 227, 232], "exact": [55, 56], "nan": [55, 56, 57], "00": [55, 56, 57], "4": [56, 155, 157, 177, 179, 199, 209, 233, 239], "abstract": [57, 68, 142, 157, 193, 199, 202, 221], "bson_decimal128_str": [57, 58], "43": 57, "bson_decimal128_inf": 57, "infin": 57, "bson_decimal128_nan": 57, "bson_byte_ord": 57, "bson_little_endian": 57, "uint64_t": 57, "low": 57, "high": [57, 221], "elif": 57, "bson_big_endian": 57, "endif": [57, 239], "repres": [57, 102, 104, 157, 199, 233], "ieee": 57, "754": 57, "aggreg": 57, "declar": 57, "layout": [57, 98], "order": [57, 199], "them": [57, 137, 232], "endian": [57, 155, 157, 225, 228, 231, 233], "platform": [57, 68, 142, 223, 228, 231, 236], "alwai": [57, 59, 74, 76, 175, 195, 196, 201, 227, 238], "correspond": 57, "while": [57, 117, 119, 122, 137, 165, 170, 213, 232, 234, 235], "sixteen": 57, "cast": [57, 77, 78], "_decimal128": 57, "stdio": [57, 137, 157, 170, 176, 213, 230, 232, 235], "100": [57, 224], "printabl": 58, "decimal128_str": 58, "decimal128t": 58, "unless": [59, 137, 170, 232], "steal": 60, "underli": [60, 106, 107, 108, 109, 110, 111, 112, 113, 122, 135, 136, 165, 166, 167, 169, 171, 178, 199, 215, 218, 235], "stolen": 60, "destroi": [60, 128, 134, 159, 160, 162, 168, 180], "equival": [60, 71, 74, 181], "program": [60, 79, 80, 103, 106, 107, 108, 109, 110, 111, 112, 113, 137, 170, 228, 231, 232, 237], "error": [60, 62, 79, 80, 103, 106, 107, 108, 109, 110, 111, 112, 113, 117, 137, 165, 170, 177, 180, 208, 209, 213, 228, 231, 232, 235, 237], "top": 60, "level": [60, 142, 180, 213, 221, 235], "higher": [60, 142, 180, 213, 235], "effici": [60, 180], "transfer": [60, 180], "one": [60, 144, 167, 174, 209, 230, 234, 236], "both": [61, 91, 114, 181, 203, 226, 227], "encapsul": [62, 212, 224], "domain": [62, 177, 209, 227], "messag": [62, 137, 170, 209, 213, 220, 227, 232], "504": 62, "paramet": [62, 224], "stack": [62, 71, 73, 117, 142, 176, 199, 224], "handl": [62, 68, 160, 164, 166, 167, 170, 177, 228, 231, 237], "reader": [62, 125, 126, 132, 134, 136, 137, 159, 160, 162, 164, 165, 167, 168, 169, 170, 171, 232, 235], "dump": 62, "fprintf": [62, 137, 165, 170, 176, 213, 232, 234, 235], "stderr": [62, 137, 165, 170, 176, 213, 232, 234, 235], "d": [62, 70, 91, 117, 175, 193, 212, 213, 234], "mem": [63, 141, 172, 173, 174, 222], "suppli": [63, 129, 161, 216, 217, 219], "raw": [64, 75, 82, 86, 153, 180], "properti": 64, "around": [64, 123, 179, 185], "bson_major_vers": [65, 239], "compil": [65, 66, 67, 226, 239], "third": 66, "bson_micro_vers": [66, 239], "middl": 67, "bson_minor_vers": [67, 239], "bson_get_monotonic_tim": 68, "bson_gettimeofdai": 68, "tv": [68, 120], "cross": [68, 228, 231], "timeout": 68, "librari": [68, 174, 201, 230, 231, 236, 239], "gettimeofdai": 68, "well": [68, 222, 232], "monoton": [68, 201, 233], "microsecond": [68, 120], "someth": [69, 165], "pre": [69, 178], "accept": 70, "dotkei": [70, 91], "notat": [70, 91, 157], "found": [70, 72, 89, 90, 91, 92, 117, 135, 146, 197, 203, 213, 234, 235], "place": [71, 93, 97, 106, 107, 108, 109, 110, 111, 112, 113, 122, 194], "bson_initi": [71, 137, 176, 180, 198, 224, 232], "ssize_t": [72, 146, 166, 203, 213], "exist": [72, 146, 224, 234], "propag": [72, 135, 136, 146, 163], "On": [72, 236], "read": [73, 133, 134, 136, 137, 162, 164, 165, 166, 168, 169, 170, 176, 213, 232], "No": 73, "made": 73, "therefor": [73, 102, 199, 233], "remain": [73, 124, 195], "lifetim": [73, 117, 161], "dangl": 73, "safer": 74, "altern": [74, 93, 224], "isspac": 74, "bound": 74, "inclus": 74, "255": 74, "consid": [74, 89, 91, 92, 114, 117], "white": 74, "space": [74, 176, 195, 215], "bson_iter_holds_arrai": [75, 117], "bson_type_arrai": [75, 114, 121, 200], "array_len": 75, "immut": [75, 79, 82], "retriev": [75, 86, 101, 102, 115, 122], "verifi": [75, 85, 86, 99, 100, 105, 207], "macro": [75, 79, 86, 224], "fetch": [76, 77, 84, 85, 87, 99, 100, 101, 102, 104, 105, 123, 150, 218], "were": [76, 77, 78, 124], "how": [76, 124, 208, 209, 213], "bson_type_bool": [76, 77, 78, 80, 106, 110, 121, 200], "bson_type_doubl": [76, 77, 78, 87, 109, 121, 200], "bson_type_int32": [76, 77, 78, 99, 110, 121, 200, 212], "bson_type_int64": [76, 77, 78, 100, 111, 121, 200], "bson_type_utf8": [76, 121, 122, 200], "equat": 76, "ani": [77, 117, 137, 170, 175, 176, 211, 216, 232], "bson_iter_holds_binari": [79, 117], "bson_type_binari": [79, 121, 200], "binary_len": 79, "point": [79, 201], "bson_iter_holds_bool": [80, 117], "either": [80, 124, 137, 152, 170, 201, 213, 215, 232], "bson_iter_holds_cod": [81, 117], "bson_type_cod": [81, 121, 200], "bson_iter_holds_codewscop": [82, 117], "bson_type_codewscop": [82, 121, 200], "scope_len": [82, 212], "act": 82, "load": 82, "bson_iter_holds_date_tim": [83, 117], "collection_len": [84, 212], "bson_type_dbpoint": [84, 121, 200], "spec": 84, "bson_iter_holds_decimal128": [85, 117], "bson_type_decimal128": [85, 108, 200], "IN": 85, "befor": [85, 93, 97, 99, 100, 105, 122, 176, 180, 181, 203, 213], "bson_iter_holds_docu": [86, 117, 234], "bson_type_docu": [86, 114, 121, 200], "document_len": 86, "bson_iter_holds_doubl": [87, 117], "request": [89, 91, 92, 126, 133, 172, 173, 174], "advanc": [89, 90, 91, 92, 93, 97, 103, 206], "exhaust": [89, 90, 91, 92, 199], "sensit": [89, 90, 92], "fold": [89, 90, 92], "now": [89, 91, 92, 142, 180, 224], "descend": [91, 213], "dot": 91, "standard": [91, 195, 207], "recurs": 91, "subdocu": [91, 209], "keylen": [92, 96, 98], "static": [93, 97, 180, 199, 202, 213, 230, 239], "print_doc_id": [93, 97], "oidstr": [93, 97], "25": [93, 97, 157, 158], "_id": [93, 97], "bson_iter_holds_oid": [93, 97, 105, 117], "els": [93, 97, 137, 170, 213, 232, 238], "miss": [93, 97], "ident": [94, 95, 96, 173, 224], "offset": [98, 104, 171, 206, 208, 213, 218, 219, 221, 234], "previous": 98, "obtain": [98, 137, 170, 232], "where": [98, 177, 194, 208, 232], "progress": 98, "save": 98, "restor": [98, 140], "without": [98, 123, 137, 170, 232, 236], "reli": 98, "accomplish": 98, "Then": 98, "later": [98, 144], "reconstruct": [98, 104], "constant": [98, 101, 102, 104, 201], "bson_iter_holds_int32": [99, 117, 234], "bson_iter_holds_int64": [100, 117], "observ": [101, 102, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 119, 121, 122, 123], "comput": 102, "faster": 102, "next": [103, 136, 155, 165, 166, 206], "last": 103, "unsign": [104, 157, 202, 233, 234, 235], "overwrit": [106, 107, 108, 109, 110, 111, 112, 113], "mutat": [106, 107, 108, 109, 110, 111, 112, 113, 234, 236], "http": [116, 137, 170, 198, 232], "bsonspec": [116, 198], "org": [116, 137, 170, 198, 232], "bson_iter_holds_utf8": [117, 122], "bson_iter_holds_undefin": 117, "bson_iter_holds_nul": 117, "bson_iter_holds_regex": 117, "bson_iter_holds_dbpoint": 117, "bson_iter_holds_symbol": 117, "bson_iter_holds_timestamp": [117, 119], "bson_iter_holds_maxkei": 117, "bson_iter_holds_minkei": 117, "bson_iter_holds_int": 117, "bson_iter_holds_numb": 117, "bson_iter_is_kei": 117, "strcmp": [117, 137, 170, 232], "privat": [117, 230], "through": [117, 174, 202, 208, 209, 238], "meant": [117, 166], "discard": 117, "my_bson_doc": 117, "my_field": 117, "sub_it": 117, "mysubdoc": 117, "my_doc": 117, "typic": [119, 233], "probabl": [119, 122, 222], "bson_type_eod": [121, 200], "0x00": [121, 198, 200], "0x01": [121, 198, 200], "0x02": [121, 198, 200], "0x03": [121, 198, 200], "0x04": [121, 198, 200], "0x05": [121, 198, 200], "0x06": [121, 200], "0x07": [121, 198, 200], "0x08": [121, 200], "0x09": [121, 200], "0x0a": [121, 200], "0x0b": [121, 200], "0x0c": [121, 200], "0x0d": [121, 200], "0x0e": [121, 200], "0x0f": [121, 200], "0x10": [121, 200], "0x11": [121, 200], "0x12": [121, 200], "0x7f": [121, 200], "0xff": [121, 200], "That": 122, "note": [122, 216, 222, 228, 231], "multi": [122, 190, 202, 204, 205, 233], "commonli": 122, "look": [122, 224], "marshal": 122, "further": [123, 165, 213, 234], "visitor": [124, 213], "conveni": [124, 223, 232, 234, 235], "callback": [124, 160, 166, 168, 170, 213, 227, 233], "vtabl": [124, 141], "visit": 124, "prematur": 124, "stop": [124, 129, 131, 213], "becaus": [124, 199], "corrupt": [124, 209, 235], "exampl": [124, 144, 180, 208, 209, 220, 224, 234], "your": [124, 201, 213, 228, 231, 233, 236, 237], "own": [124, 168, 213], "about": [124, 213], "unsupport": [124, 213], "entri": [124, 213], "feed": 125, "allow_multipl": [126, 133], "unus": [126, 133], "stream": [126, 133, 164, 166, 169, 170, 171, 176, 228, 229, 231], "enumer": [127, 198, 200], "bson_json_mode_legaci": 127, "bson_json_mode_relax": 127, "avail": [127, 223, 230], "max_len": [129, 131], "member": [129, 131], "hold": [129, 131], "onc": [129, 131], "serialis": [129, 131], "reach": [129, 131, 165], "full": [129, 131], "is_outermost_arrai": 130, "what": [130, 234], "we": [130, 165, 223, 224, 226, 232, 234], "variabl": 130, "_bson_json_opts_t": 131, "bson_json_opts_set_outermost_arrai": [131, 228], "bson_json_reader_cb": 133, "cb": 133, "bson_json_destroy_cb": 133, "dcb": 133, "buf_siz": 133, "user": [133, 164], "arbitrari": [133, 164], "sourc": [133, 136, 164], "fashion": 133, "fd": [134, 162, 170], "close_on_destroi": [134, 162, 170], "open": [134, 137, 170, 227, 232, 235], "file": [134, 135, 137, 162, 163, 164, 165, 166, 167, 170, 176, 213, 227, 230, 232, 235], "descriptor": [134, 162, 165, 166, 167, 170, 232, 235], "whether": [134, 162, 175, 191], "close": [134, 162, 170, 232], "filenam": [135, 137, 163, 170, 213, 232], "bulk": [137, 221], "_bson_json_reader_t": 137, "bson_json_error_read_corrupt_j": [137, 227], "bson_json_error_read_invalid_param": [137, 227], "bson_json_error_read_cb_failur": [137, 227], "bson_json_error_code_t": 137, "sequenc": [137, 155, 165, 170, 204, 205, 232], "transform": 137, "often": [137, 232], "copyright": [137, 170, 232], "2013": [137, 170, 232], "licens": [137, 170, 232], "under": [137, 142, 170, 232], "apach": [137, 170, 232], "complianc": [137, 170, 232], "www": [137, 170, 232], "applic": [137, 142, 170, 199, 232], "law": [137, 170, 232], "agre": [137, 170, 232], "write": [137, 170, 176, 195, 215, 217, 232], "softwar": [137, 170, 232], "distribut": [137, 170, 232, 238], "AS": [137, 170, 232], "basi": [137, 170, 232], "warranti": [137, 170, 232], "OR": [137, 170, 232], "condit": [137, 170, 232], "OF": [137, 170, 232], "kind": [137, 170, 232], "express": [137, 170, 232], "impli": [137, 170, 232], "languag": [137, 142, 145, 170, 213, 221, 232, 235], "govern": [137, 170, 232], "permiss": [137, 170, 232], "limit": [137, 170, 220, 232], "each": [137, 170, 186, 201, 232], "stdout": [137, 170, 232], "stdlib": [137, 213, 232], "usag": [137, 170, 213, 232], "argument": [137, 170, 232], "command": [137, 170, 230, 232], "line": [137, 170, 230, 232], "expect": [137, 145, 170, 219, 226, 232, 234, 238], "stdin_fileno": [137, 170, 232], "incom": [137, 170, 232], "fwrite": [137, 232], "exit": [137, 213, 232], "malloc": [138, 139, 141, 175], "calloc": [139, 141], "end": [140, 165, 166, 194, 199, 234, 238], "being": [140, 141, 218], "wrong": [140, 141], "_bson_mem_vtable_t": 141, "n_member": 141, "realloc": [141, 144, 172, 174, 235], "pad": [141, 199, 213], "bson_mem_vtable_t": 141, "instal": [141, 230], "backward": 141, "compat": [141, 231, 233], "lightweight": 142, "easier": 142, "addition": [142, 174], "help": [142, 145, 232], "integr": 142, "interest": 142, "One": 142, "caveat": 142, "design": 142, "deal": 142, "oom": 142, "extrem": 142, "dilig": 142, "throughout": 142, "correctli": 142, "futur": [142, 213], "As": [142, 193, 202], "stand": 142, "aid": 142, "bind": [142, 145], "custom": [142, 169, 170, 174, 208, 209], "revers": 142, "heap": [143, 145, 178, 199, 224], "buf": [144, 166, 185, 219, 221, 235], "buf_len": 144, "realloc_func": [144, 219, 221], "realloc_func_ctx": [144, 219, 221], "resiz": 144, "expand": 144, "bson_append": 144, "5": [144, 157, 177, 199, 233], "slower": 145, "oid1": [147, 149], "oid2": [147, 149], "lexicograph": [147, 181], "sort": [147, 181], "comparison": 147, "hash": 151, "suitabl": [151, 187], "hashtabl": [151, 157, 233], "12": [153, 157], "hex": [154, 156, 157, 158], "012345678901234567890123": 154, "big": [155, 157, 226, 233], "guarante": 155, "global": 155, "uniqu": [155, 236], "construct": 157, "random": [157, 233], "counter": [157, 233], "back": [157, 232], "direct": 157, "opaqu": [160, 166], "block": [162, 239], "close_fd": 162, "path": [163, 170, 230, 234], "host": [163, 226], "denot": 163, "rf": [164, 170], "df": [164, 170], "pluggabl": [164, 174], "socket": 164, "reached_eof": [165, 213], "unknown": 165, "reached_of": 165, "chunk": [166, 193], "part": 166, "seek": 167, "func": [168, 169], "execut": 168, "_bson_reader_t": 170, "come": 170, "nuse": [170, 232], "stdin": [170, 232], "cleanup": [170, 216, 232], "our": [170, 232], "off_t": 171, "tell": 171, "consum": [173, 174, 224], "pool": 173, "prototyp": 174, "wish": 174, "reiniti": 175, "reus": 175, "certain": [175, 239], "final": 175, "elimin": 176, "fill": [176, 195, 209, 227], "correct": 176, "read_into": 176, "fp": 176, "long": 176, "fseek": 176, "0l": 176, "seek_end": 176, "perror": 176, "couldn": 176, "t": [176, 233], "ftell": 176, "eof": [176, 235], "too": [176, 195], "larg": 176, "reserv": 176, "temporarili": 176, "ld": 176, "rewind": 176, "fread": 176, "fopen": 176, "rb": 176, "fclose": 176, "bson_gnuc_printf": [177, 179, 183, 184, 189, 214], "prealloc": 178, "good": 178, "idea": 178, "destin": [179, 195, 221, 224], "snprintf": [179, 201], "enforc": 179, "written": [179, 214, 218], "wrap": [180, 224], "bson_wrapper_t": 180, "wrap_bson": 180, "bson_wrapper_destroi": 180, "clean": [180, 219], "up": [180, 195, 196, 199, 219], "move": 180, "occur": [180, 194, 208, 209, 234], "lower": [180, 181], "s1": 181, "s2": 181, "strcasecmp": 181, "translat": 181, "err_cod": 185, "buflen": [185, 219, 221, 235], "strerror": 185, "strv": 186, "itself": 186, "builder": [188, 192], "unichar": [190, 204], "free_seg": 191, "growth": 192, "variou": [192, 198, 238, 239], "ad": [193, 224, 232], "api": [193, 221, 228, 231, 235, 238], "f": 193, "123": [193, 199], "ownership": 193, "might": [193, 232], "truncat": 194, "smaller": 194, "c11": 195, "strncpy_": 195, "strncpy": 195, "even": 195, "short": 195, "fit": 195, "left": 195, "n_byte": 196, "maxlen": 197, "strnlen": 197, "bson_subtype_binari": 198, "bson_subtype_funct": 198, "bson_subtype_binary_deprec": 198, "bson_subtype_uuid_deprec": 198, "bson_subtype_uuid": 198, "bson_subtype_md5": 198, "bson_subtype_column": 198, "bson_subtype_us": 198, "0x80": 198, "data_len": [198, 212], "bson_empti": 199, "nul": [199, 203], "bson_empty0": 199, "treat": 199, "bson_clear": 199, "easili": [199, 233], "bson_assert": [199, 213], "bptr": 199, "bson_max_s": 199, "bson_aligned_begin": 199, "120": 199, "bson_aligned_end": 199, "mutabl": 199, "attempt": 199, "inlin": 199, "speed": 199, "small": [199, 223], "dynam": [199, 221], "essenti": 199, "pair": 199, "refrain": 199, "create_on_heap": 199, "baz": [199, 224, 234], "23f": 199, "0x13": 200, "int32": 200, "strptr": 201, "999": 201, "section": 201, "etc": 201, "optim": [201, 226], "text": [202, 238], "print_each_char": 202, "utf8_len": [203, 207], "escap": 203, "backslash": 203, "u0000": 203, "input": [203, 232, 233], "preserv": [203, 232], "6": 204, "whose": 206, "allow_nul": 207, "rfc": 207, "3629": 207, "bson_validate_flags_t": [208, 209], "bitwis": [208, 209], "desir": [208, 209], "walk": [208, 209, 238], "inspect": [208, 209, 235], "bson_validate_non": [209, 234], "bson_validate_utf8": 209, "bson_validate_dollar_kei": 209, "bson_validate_dot_kei": 209, "bson_validate_utf8_allow_nul": 209, "bson_validate_empty_kei": 209, "below": [209, 213, 234], "basic": 209, "prohibit": 209, "outsid": 209, "dbref": 209, "anywher": 209, "bson_error_invalid": 209, "Its": 209, "give": 209, "possibl": [209, 226], "_bson_value_t": 212, "value_typ": 212, "union": 212, "v_oid": [212, 213], "v_int64": [212, 213], "v_int32": [212, 213], "int8_t": 212, "v_int8": 212, "v_doubl": [212, 213], "v_bool": [212, 213], "v_datetim": 212, "v_timestamp": [212, 213], "v_utf8": [212, 213], "v_doc": 212, "v_binari": [212, 213], "v_regex": [212, 213], "v_dbpointer": 212, "code_len": 212, "v_code": [212, 213], "scope_data": 212, "v_codewscop": 212, "v_symbol": [212, 213], "v_decimal128": [212, 213], "run": [213, 226], "visit_befor": 213, "visit_aft": 213, "visit_unsupported_typ": 213, "visit_corrupt": 213, "visit_doubl": 213, "visit_utf8": 213, "v_utf8_len": 213, "visit_docu": 213, "v_document": 213, "visit_arrai": 213, "v_arrai": 213, "visit_binari": 213, "v_subtyp": 213, "v_binary_len": 213, "visit_undefin": 213, "visit_oid": 213, "visit_bool": 213, "visit_date_tim": 213, "msec_since_epoch": 213, "visit_nul": 213, "visit_regex": 213, "v_option": 213, "visit_dbpoint": 213, "v_collection_len": 213, "v_collect": 213, "visit_cod": 213, "v_code_len": 213, "visit_symbol": 213, "v_symbol_len": 213, "visit_codewscop": 213, "v_scope": 213, "visit_int32": 213, "visit_timestamp": 213, "v_increment": 213, "visit_int64": 213, "visit_maxkei": 213, "visit_minkei": 213, "appar": 213, "unrecogn": 213, "type_cod": 213, "visit_decimal128": 213, "7": [213, 230], "seri": 213, "simplifi": 213, "report": [213, 227], "simpli": [213, 226, 230, 233], "proof": 213, "older": 213, "my_visit_befor": 213, "count_field": 213, "demonstr": 213, "err_offset": [213, 234], "my_state_t": 213, "my_visit_corrupt": 213, "off": 213, "my_visit_unsupported_typ": 213, "find_error_loc": 213, "had": 213, "depth": 213, "nest": 213, "assert": [213, 235], "inttyp": 213, "max_depth": 213, "check_depth_t": 213, "_check_depth_docu": 213, "check_depth_func": 213, "bson_unus": 213, "cancel": 213, "check_depth": 213, "exce": 213, "priu32": 213, "as_json": 213, "bson_read": 213, "atoi": 213, "bson_in_range_sign": 213, "ap": 214, "writer": [215, 216, 217, 218, 220, 221, 235], "partli": 218, "ve": 218, "boundari": 218, "cannot": 218, "sent": 218, "packet": [218, 221, 235], "instanc": 219, "_realloc": 219, "finish": 219, "went": 220, "past": 220, "particular": [220, 232], "48mb": 220, "_bson_writer_t": 221, "re": [221, 230], "demand": 221, "network": [221, 235], "python": 221, "dictionari": 221, "tcp": 221, "1000": 221, "behav": 222, "password": 222, "similarli": 222, "import": [222, 230], "truli": 222, "page": 222, "protect": 222, "mlock": 222, "prevent": 222, "swap": 222, "disk": 222, "substitut": 223, "manipul": 223, "necessari": [224, 234], "logic": 224, "At": 224, "core": 224, "live": 224, "let": [224, 234], "whenev": 224, "sure": 224, "proce": 224, "item": [224, 233], "varieti": 224, "prefix": 224, "bson_append_": 224, "notic": [224, 238], "goe": 224, "tediou": 224, "liter": 224, "few": 224, "hello": [224, 230], "world": 224, "omit": 224, "By": 224, "remov": 224, "creation": 224, "These": 224, "parent": 224, "hand": 224, "bcon": 224, "closer": 224, "show": 224, "bcon_": 224, "processor": 224, "bcon_new": [224, 230, 232, 234], "bcon_int32": [224, 232, 234], "bcon_utf8": [224, 230], "dictat": 226, "littl": 226, "altogeth": 226, "memcpi": 226, "appropri": 226, "dereferenc": 226, "intrins": 226, "derefer": 226, "subsystem": 227, "describ": 227, "overlap": 227, "bson_error_json": 227, "tri": 227, "mongodbextend": 227, "dure": 227, "bson_error_read": 227, "bson_error_reader_badfd": 227, "tutori": [228, 231], "guid": [228, 231], "header": [230, 235], "hello_bson": 230, "j": 230, "packag": 230, "find_packag": 230, "link": 230, "share": 230, "cmakelist": 230, "txt": 230, "sampl": 230, "among": 230, "four": 230, "test": 230, "add_execut": 230, "target_link_librari": 230, "mongo": 230, "bson_shar": 230, "bson_stat": 230, "gcc": 230, "o": 230, "lib": 230, "cflag": 230, "Or": 230, "nativ": [231, 236], "layer": 231, "There": 232, "debug": 232, "interchang": 232, "ambigu": 232, "e": 232, "g": 232, "numer": 232, "primit": 232, "fidel": 232, "enough": 232, "interfac": [232, 236], "simpl": 233, "manner": 233, "96": 233, "24": [233, 239], "rand": 233, "123456789012345678901234": 233, "bson_oid_init_from_string_unsaf": 233, "just": [233, 235], "purpos": 233, "djb": 233, "lazili": 234, "my_data": 234, "my_data_len": 234, "did": 234, "dive": 234, "down": 234, "exemplifi": 234, "abov": 234, "filedescriptor": 235, "yet": 235, "forward": 235, "mycollect": 235, "r": 235, "10000": 235, "access": 236, "posix": 236, "pthread": 236, "window": 236, "fallback": 236, "atom": 236, "built": 236, "anyth": 238, "my_str": 238, "my_string_len": 238, "preprocessor": 239, "against": 239, "enabl": 239, "featur": 239, "bson_version_": 239, "bson_version_hex": 239, "newer": 239, "do_someth": 239}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"api": 0, "refer": 0, "bson_aligned_alloc": 1, "synopsi": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 239], "paramet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 63, 64, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 129, 130, 132, 133, 134, 135, 136, 138, 139, 141, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 201, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 215, 216, 217, 218, 219, 220, 222], "descript": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 227], "return": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 49, 54, 55, 56, 60, 61, 64, 65, 66, 67, 69, 70, 72, 73, 74, 76, 77, 78, 80, 81, 82, 83, 85, 87, 88, 89, 90, 91, 92, 93, 97, 98, 99, 100, 101, 102, 103, 104, 105, 114, 115, 116, 118, 121, 122, 123, 124, 126, 129, 133, 134, 135, 136, 138, 139, 143, 144, 145, 146, 147, 149, 150, 151, 156, 161, 162, 163, 164, 165, 166, 171, 172, 176, 178, 179, 180, 181, 182, 183, 184, 185, 191, 192, 196, 197, 201, 203, 205, 206, 207, 208, 209, 214, 215, 218, 219], "bson_aligned_alloc0": 2, "bson_append_arrai": 3, "bson_append_array_begin": 4, "bson_append_array_end": 5, "bson_append_binari": 6, "bson_append_bool": 7, "bson_append_cod": 8, "bson_append_code_with_scop": 9, "bson_append_date_tim": 10, "bson_append_dbpoint": 11, "bson_append_decimal128": 12, "bson_append_docu": 13, "bson_append_document_begin": 14, "bson_append_document_end": 15, "bson_append_doubl": 16, "bson_append_int32": 17, "bson_append_int64": 18, "bson_append_it": 19, "bson_append_maxkei": 20, "bson_append_minkei": 21, "bson_append_now_utc": 22, "bson_append_nul": 23, "bson_append_oid": 24, "bson_append_regex": 25, "bson_append_regex_w_len": 26, "bson_append_symbol": 27, "bson_append_time_t": 28, "bson_append_timestamp": 29, "bson_append_timev": 30, "bson_append_undefin": 31, "bson_append_utf8": 32, "bson_append_valu": 33, "bson_array_as_canonical_extended_json": 34, "exampl": [34, 35, 36, 37, 38, 39, 40, 48, 52, 55, 56, 57, 58, 62, 93, 97, 117, 137, 154, 157, 165, 170, 176, 193, 198, 199, 200, 202, 212, 213, 221, 232], "bson_array_as_json": 35, "bson_array_as_relaxed_extended_json": 36, "bson_as_canonical_extended_json": 37, "bson_as_json": 38, "bson_as_json_with_opt": 39, "bson_as_relaxed_extended_json": 40, "bson_ascii_strtol": 41, "bson_check_vers": 42, "bson_compar": 43, "bson_concat": 44, "bson_context_destroi": 45, "bson_context_get_default": 46, "bson_context_new": 47, "bson_context_t": 48, "function": [48, 57, 62, 68, 117, 131, 137, 142, 157, 170, 193, 198, 199, 200, 202, 212, 213, 221, 223, 239], "bson_copi": 49, "bson_copy_to": 50, "bson_copy_to_exclud": 51, "bson_copy_to_excluding_noinit": 52, "bson_copy_to_excluding_noinit_va": 53, "bson_count_kei": 54, "bson_decimal128_from_str": 55, "bson_decimal128_from_string_w_len": 56, "bson_decimal128_t": 57, "bson_decimal128_to_str": 58, "bson_destroi": 59, "bson_destroy_with_st": 60, "bson_equ": 61, "bson_error_t": 62, "bson_fre": 63, "bson_get_data": 64, "bson_get_major_vers": 65, "bson_get_micro_vers": 66, "bson_get_minor_vers": 67, "system": 68, "clock": 68, "bson_get_vers": 69, "bson_has_field": 70, "bson_init": 71, "bson_init_from_json": 72, "error": [72, 135, 136, 146, 163, 227], "bson_init_stat": 73, "bson_isspac": 74, "bson_iter_arrai": 75, "bson_iter_as_bool": 76, "bson_iter_as_doubl": 77, "bson_iter_as_int64": 78, "bson_iter_binari": 79, "bson_iter_bool": 80, "bson_iter_cod": 81, "bson_iter_codewscop": 82, "bson_iter_date_tim": 83, "bson_iter_dbpoint": 84, "bson_iter_decimal128": 85, "bson_iter_docu": 86, "bson_iter_doubl": 87, "bson_iter_dup_utf8": 88, "bson_iter_find": 89, "bson_iter_find_cas": 90, "bson_iter_find_descend": 91, "bson_iter_find_w_len": 92, "bson_iter_init": 93, "bson_iter_init_find": 94, "bson_iter_init_find_cas": 95, "bson_iter_init_find_w_len": 96, "bson_iter_init_from_data": 97, "bson_iter_init_from_data_at_offset": 98, "bson_iter_int32": 99, "bson_iter_int64": 100, "bson_iter_kei": 101, "bson_iter_key_len": 102, "bson_iter_next": 103, "bson_iter_offset": 104, "bson_iter_oid": 105, "bson_iter_overwrite_bool": 106, "bson_iter_overwrite_date_tim": 107, "bson_iter_overwrite_decimal128": 108, "bson_iter_overwrite_doubl": 109, "bson_iter_overwrite_int32": 110, "bson_iter_overwrite_int64": 111, "bson_iter_overwrite_oid": 112, "bson_iter_overwrite_timestamp": 113, "bson_iter_recurs": 114, "bson_iter_regex": 115, "bson_iter_symbol": 116, "bson_iter_t": 117, "bson_iter_time_t": 118, "bson_iter_timestamp": 119, "bson_iter_timev": 120, "bson_iter_typ": 121, "bson_iter_utf8": 122, "bson_iter_valu": 123, "bson_iter_visit_al": 124, "bson_json_data_reader_ingest": 125, "bson_json_data_reader_new": 126, "bson_json_mode_t": 127, "bson_json_opts_destroi": 128, "bson_json_opts_new": 129, "bson_json_opts_set_outermost_arrai": 130, "bson_json_opts_t": 131, "bson_json_reader_destroi": 132, "bson_json_reader_new": 133, "bson_json_reader_new_from_fd": 134, "bson_json_reader_new_from_fil": 135, "bson_json_reader_read": 136, "bson_json_reader_t": 137, "bson_malloc": 138, "bson_malloc0": 139, "bson_mem_restore_vt": 140, "bson_mem_set_vt": 141, "memori": 142, "manag": 142, "bson_new": 143, "bson_new_from_buff": 144, "bson_new_from_data": 145, "bson_new_from_json": 146, "bson_oid_compar": 147, "bson_oid_copi": 148, "bson_oid_equ": 149, "bson_oid_get_time_t": 150, "bson_oid_hash": 151, "bson_oid_init": 152, "bson_oid_init_from_data": 153, "bson_oid_init_from_str": 154, "bson_oid_init_sequ": 155, "bson_oid_is_valid": 156, "bson_oid_t": 157, "string": [157, 223, 233], "convers": 157, "hash": [157, 233], "compar": [157, 233], "valid": [157, 213, 234, 238], "bson_oid_to_str": 158, "bson_reader_destroi": 159, "bson_reader_destroy_func_t": 160, "bson_reader_new_from_data": 161, "bson_reader_new_from_fd": 162, "bson_reader_new_from_fil": 163, "bson_reader_new_from_handl": 164, "bson_reader_read": 165, "bson_reader_read_func_t": 166, "bson_reader_reset": 167, "bson_reader_set_destroy_func": 168, "bson_reader_set_read_func": 169, "bson_reader_t": 170, "bson_reader_tel": 171, "bson_realloc": 172, "bson_realloc_ctx": 173, "bson_realloc_func": 174, "bson_reinit": 175, "bson_reserve_buff": 176, "bson_set_error": 177, "bson_sized_new": 178, "bson_snprintf": 179, "bson_steal": 180, "bson_strcasecmp": 181, "bson_strdup": 182, "bson_strdup_printf": 183, "bson_strdupv_printf": 184, "bson_strerror_r": 185, "bson_strfreev": 186, "bson_string_append": 187, "bson_string_append_c": 188, "bson_string_append_printf": 189, "bson_string_append_unichar": 190, "bson_string_fre": 191, "bson_string_new": 192, "bson_string_t": 193, "bson_string_trunc": 194, "bson_strncpi": 195, "bson_strndup": 196, "bson_strnlen": 197, "bson_subtype_t": 198, "bson_t": [199, 224], "perform": 199, "note": [199, 225], "duplic": 199, "kei": [199, 201], "bson_type_t": 200, "bson_uint32_to_str": 201, "arrai": [201, 224], "element": 201, "build": 201, "bson_unichar_t": 202, "bson_utf8_escape_for_json": 203, "bson_utf8_from_unichar": 204, "bson_utf8_get_char": 205, "bson_utf8_next_char": 206, "bson_utf8_valid": 207, "bson_valid": 208, "bson_validate_with_error": 209, "bson_value_copi": 210, "bson_value_destroi": 211, "bson_value_t": 212, "bson_visitor_t": 213, "basic": 213, "corrupt": 213, "check": 213, "custom": 213, "bson_vsnprintf": 214, "bson_writer_begin": 215, "bson_writer_destroi": 216, "bson_writer_end": 217, "bson_writer_get_length": 218, "bson_writer_new": 219, "bson_writer_rollback": 220, "bson_writer_t": 221, "bson_zero_fre": 222, "charact": 223, "routin": 223, "creat": 224, "bson": [224, 230, 232, 234, 235], "document": [224, 234, 235], "The": 224, "structur": 224, "sub": [224, 234], "simplifi": 224, "c": [224, 230], "object": [224, 233], "notat": [224, 234], "cross": 225, "platform": 225, "endian": 226, "handl": 227, "index": 228, "guid": 229, "us": [230, 234], "libbson": [230, 231, 239], "In": 230, "your": 230, "program": 230, "includ": 230, "h": 230, "cmake": 230, "pkg": 230, "config": 230, "introduct": 231, "json": 232, "convert": 232, "stream": [232, 235], "pars": [232, 233, 234], "objectid": 233, "composit": 233, "sort": 233, "id": 233, "gener": 233, "fetch": 233, "creation": 233, "time": 233, "iter": 234, "recurs": 234, "find": 234, "field": 234, "dot": 234, "read": 235, "from": 235, "write": 235, "sequenc": [235, 238], "thread": 236, "tutori": 237, "utf": 238, "8": 238, "encod": 238, "version": 239, "macro": 239}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"API Reference": [[0, "api-reference"]], "bson_aligned_alloc()": [[1, "bson-aligned-alloc"]], "Synopsis": [[1, "synopsis"], [2, "synopsis"], [3, "synopsis"], [4, "synopsis"], [5, "synopsis"], [6, "synopsis"], [7, "synopsis"], [8, "synopsis"], [9, "synopsis"], [10, "synopsis"], [11, "synopsis"], [12, "synopsis"], [13, "synopsis"], [14, "synopsis"], [15, "synopsis"], [16, "synopsis"], [17, "synopsis"], [18, "synopsis"], [19, "synopsis"], [20, "synopsis"], [21, "synopsis"], [22, "synopsis"], [23, "synopsis"], [24, "synopsis"], [25, "synopsis"], [26, "synopsis"], [27, "synopsis"], [28, "synopsis"], [29, "synopsis"], [30, "synopsis"], [31, "synopsis"], [32, "synopsis"], [33, "synopsis"], [34, "synopsis"], [35, "synopsis"], [36, "synopsis"], [37, "synopsis"], [38, "synopsis"], [39, "synopsis"], [40, "synopsis"], [41, "synopsis"], [42, "synopsis"], [43, "synopsis"], [44, "synopsis"], [45, "synopsis"], [46, "synopsis"], [47, "synopsis"], [48, "synopsis"], [49, "synopsis"], [50, "synopsis"], [51, "synopsis"], [52, "synopsis"], [53, "synopsis"], [54, "synopsis"], [55, "synopsis"], [56, "synopsis"], [57, "synopsis"], [58, "synopsis"], [59, "synopsis"], [60, "synopsis"], [61, "synopsis"], [62, "synopsis"], [63, "synopsis"], [64, "synopsis"], [65, "synopsis"], [66, "synopsis"], [67, "synopsis"], [68, "synopsis"], [69, "synopsis"], [70, "synopsis"], [71, "synopsis"], [72, "synopsis"], [73, "synopsis"], [74, "synopsis"], [75, "synopsis"], [76, "synopsis"], [77, "synopsis"], [78, "synopsis"], [79, "synopsis"], [80, "synopsis"], [81, "synopsis"], [82, "synopsis"], [83, "synopsis"], [84, "synopsis"], [85, "synopsis"], [86, "synopsis"], [87, "synopsis"], [88, "synopsis"], [89, "synopsis"], [90, "synopsis"], [91, "synopsis"], [92, "synopsis"], [93, "synopsis"], [94, "synopsis"], [95, "synopsis"], [96, "synopsis"], [97, "synopsis"], [98, "synopsis"], [99, "synopsis"], [100, "synopsis"], [101, "synopsis"], [102, "synopsis"], [103, "synopsis"], [104, "synopsis"], [105, "synopsis"], [106, "synopsis"], [107, "synopsis"], [108, "synopsis"], [109, "synopsis"], [110, "synopsis"], [111, "synopsis"], [112, "synopsis"], [113, "synopsis"], [114, "synopsis"], [115, "synopsis"], [116, "synopsis"], [117, "synopsis"], [118, "synopsis"], [119, "synopsis"], [120, "synopsis"], [121, "synopsis"], [122, "synopsis"], [123, "synopsis"], [124, "synopsis"], [125, "synopsis"], [126, "synopsis"], [127, "synopsis"], [128, "synopsis"], [129, "synopsis"], [130, "synopsis"], [131, "synopsis"], [132, "synopsis"], [133, "synopsis"], [134, "synopsis"], [135, "synopsis"], [136, "synopsis"], [137, "synopsis"], [138, "synopsis"], [139, "synopsis"], [140, "synopsis"], [141, "synopsis"], [143, "synopsis"], [144, "synopsis"], [145, "synopsis"], [146, "synopsis"], [147, "synopsis"], [148, "synopsis"], [149, "synopsis"], [150, "synopsis"], [151, "synopsis"], [152, "synopsis"], [153, "synopsis"], [154, "synopsis"], [155, "synopsis"], [156, "synopsis"], [157, "synopsis"], [158, "synopsis"], [159, "synopsis"], [160, "synopsis"], [161, "synopsis"], [162, "synopsis"], [163, "synopsis"], [164, "synopsis"], [165, "synopsis"], [166, "synopsis"], [167, "synopsis"], [168, "synopsis"], [169, "synopsis"], [170, "synopsis"], [171, "synopsis"], [172, "synopsis"], [173, "synopsis"], [174, "synopsis"], [175, "synopsis"], [176, "synopsis"], [177, "synopsis"], [178, "synopsis"], [179, "synopsis"], [180, "synopsis"], [181, "synopsis"], [182, "synopsis"], [183, "synopsis"], [184, "synopsis"], [185, "synopsis"], [186, "synopsis"], [187, "synopsis"], [188, "synopsis"], [189, "synopsis"], [190, "synopsis"], [191, "synopsis"], [192, "synopsis"], [193, "synopsis"], [194, "synopsis"], [195, "synopsis"], [196, "synopsis"], [197, "synopsis"], [198, "synopsis"], [199, "synopsis"], [200, "synopsis"], [201, "synopsis"], [202, "synopsis"], [203, "synopsis"], [204, "synopsis"], [205, "synopsis"], [206, "synopsis"], [207, "synopsis"], [208, "synopsis"], [209, "synopsis"], [210, "synopsis"], [211, "synopsis"], [212, "synopsis"], [213, "synopsis"], [214, "synopsis"], [215, "synopsis"], [216, "synopsis"], [217, "synopsis"], [218, "synopsis"], [219, "synopsis"], [220, "synopsis"], [221, "synopsis"], [222, "synopsis"], [239, "synopsis"]], "Parameters": [[1, "parameters"], [2, "parameters"], [3, "parameters"], [4, "parameters"], [5, "parameters"], [6, "parameters"], [7, "parameters"], [8, "parameters"], [9, "parameters"], [10, "parameters"], [11, "parameters"], [12, "parameters"], [13, "parameters"], [14, "parameters"], [15, "parameters"], [16, "parameters"], [17, "parameters"], [18, "parameters"], [19, "parameters"], [20, "parameters"], [21, "parameters"], [22, "parameters"], [23, "parameters"], [24, "parameters"], [25, "parameters"], [26, "parameters"], [27, "parameters"], [28, "parameters"], [29, "parameters"], [30, "parameters"], [31, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [44, "parameters"], [45, "parameters"], [47, "parameters"], [49, "parameters"], [50, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"], [54, "parameters"], [55, "parameters"], [56, "parameters"], [58, "parameters"], [59, "parameters"], [60, "parameters"], [61, "parameters"], [63, "parameters"], [64, "parameters"], [70, "parameters"], [71, "parameters"], [72, "parameters"], [73, "parameters"], [74, "parameters"], [75, "parameters"], [76, "parameters"], [77, "parameters"], [78, "parameters"], [79, "parameters"], [80, "parameters"], [81, "parameters"], [82, "parameters"], [83, "parameters"], [84, "parameters"], [85, "parameters"], [86, "parameters"], [87, "parameters"], [88, "parameters"], [89, "parameters"], [90, "parameters"], [91, "parameters"], [92, "parameters"], [93, "parameters"], [94, "parameters"], [95, "parameters"], [96, "parameters"], [97, "parameters"], [98, "parameters"], [99, "parameters"], [100, "parameters"], [101, "parameters"], [102, "parameters"], [103, "parameters"], [104, "parameters"], [105, "parameters"], [106, "parameters"], [107, "parameters"], [108, "parameters"], [109, "parameters"], [110, "parameters"], [111, "parameters"], [112, "parameters"], [113, "parameters"], [114, "parameters"], [115, "parameters"], [116, "parameters"], [118, "parameters"], [119, "parameters"], [120, "parameters"], [121, "parameters"], [122, "parameters"], [123, "parameters"], [124, "parameters"], [125, "parameters"], [126, "parameters"], [128, "parameters"], [129, "parameters"], [130, "parameters"], [132, "parameters"], [133, "parameters"], [134, "parameters"], [135, "parameters"], [136, "parameters"], [138, "parameters"], [139, "parameters"], [141, "parameters"], [144, "parameters"], [145, "parameters"], [146, "parameters"], [147, "parameters"], [148, "parameters"], [149, "parameters"], [150, "parameters"], [151, "parameters"], [152, "parameters"], [153, "parameters"], [154, "parameters"], [155, "parameters"], [156, "parameters"], [158, "parameters"], [159, "parameters"], [160, "parameters"], [161, "parameters"], [162, "parameters"], [163, "parameters"], [164, "parameters"], [165, "parameters"], [166, "parameters"], [167, "parameters"], [168, "parameters"], [169, "parameters"], [171, "parameters"], [172, "parameters"], [173, "parameters"], [174, "parameters"], [175, "parameters"], [176, "parameters"], [177, "parameters"], [178, "parameters"], [179, "parameters"], [180, "parameters"], [181, "parameters"], [182, "parameters"], [183, "parameters"], [184, "parameters"], [185, "parameters"], [186, "parameters"], [187, "parameters"], [188, "parameters"], [189, "parameters"], [190, "parameters"], [191, "parameters"], [192, "parameters"], [194, "parameters"], [195, "parameters"], [196, "parameters"], [197, "parameters"], [201, "parameters"], [203, "parameters"], [204, "parameters"], [205, "parameters"], [206, "parameters"], [207, "parameters"], [208, "parameters"], [209, "parameters"], [210, "parameters"], [211, "parameters"], [214, "parameters"], [215, "parameters"], [216, "parameters"], [217, "parameters"], [218, "parameters"], [219, "parameters"], [220, "parameters"], [222, "parameters"]], "Description": [[1, "description"], [2, "description"], [3, "description"], [4, "description"], [5, "description"], [6, "description"], [7, "description"], [8, "description"], [9, "description"], [10, "description"], [11, "description"], [12, "description"], [13, "description"], [14, "description"], [15, "description"], [16, "description"], [17, "description"], [18, "description"], [19, "description"], [20, "description"], [21, "description"], [22, "description"], [23, "description"], [24, "description"], [25, "description"], [26, "description"], [27, "description"], [28, "description"], [29, "description"], [30, "description"], [31, "description"], [32, "description"], [33, "description"], [34, "description"], [35, "description"], [36, "description"], [37, "description"], [38, "description"], [39, "description"], [40, "description"], [41, "description"], [42, "description"], [43, "description"], [44, "description"], [45, "description"], [47, "description"], [48, "description"], [49, "description"], [50, "description"], [51, "description"], [52, "description"], [53, "description"], [54, "description"], [55, "description"], [56, "description"], [57, "description"], [58, "description"], [59, "description"], [60, "description"], [61, "description"], [62, "description"], [63, "description"], [64, "description"], [65, "description"], [66, "description"], [67, "description"], [68, "description"], [69, "description"], [70, "description"], [71, "description"], [72, "description"], [73, "description"], [74, "description"], [75, "description"], [76, "description"], [77, "description"], [78, "description"], [79, "description"], [80, "description"], [81, "description"], [82, "description"], [83, "description"], [84, "description"], [85, "description"], [86, "description"], [87, "description"], [88, "description"], [89, "description"], [90, "description"], [91, "description"], [92, "description"], [93, "description"], [94, "description"], [95, "description"], [96, "description"], [97, "description"], [98, "description"], [99, "description"], [100, "description"], [101, "description"], [102, "description"], [103, "description"], [104, "description"], [105, "description"], [106, "description"], [107, "description"], [108, "description"], [109, "description"], [110, "description"], [111, "description"], [112, "description"], [113, "description"], [114, "description"], [115, "description"], [116, "description"], [117, "description"], [118, "description"], [119, "description"], [120, "description"], [121, "description"], [122, "description"], [123, "description"], [124, "description"], [125, "description"], [126, "description"], [127, "description"], [128, "description"], [129, "description"], [130, "description"], [131, "description"], [132, "description"], [133, "description"], [134, "description"], [135, "description"], [136, "description"], [137, "description"], [138, "description"], [139, "description"], [140, "description"], [141, "description"], [142, "description"], [143, "description"], [144, "description"], [145, "description"], [146, "description"], [147, "description"], [148, "description"], [149, "description"], [150, "description"], [151, "description"], [152, "description"], [153, "description"], [154, "description"], [155, "description"], [156, "description"], [157, "description"], [158, "description"], [159, "description"], [160, "description"], [161, "description"], [162, "description"], [163, "description"], [164, "description"], [165, "description"], [166, "description"], [167, "description"], [168, "description"], [169, "description"], [170, "description"], [171, "description"], [172, "description"], [173, "description"], [174, "description"], [175, "description"], [176, "description"], [177, "description"], [178, "description"], [179, "description"], [180, "description"], [181, "description"], [182, "description"], [183, "description"], [184, "description"], [185, "description"], [186, "description"], [187, "description"], [188, "description"], [189, "description"], [190, "description"], [191, "description"], [192, "description"], [193, "description"], [194, "description"], [195, "description"], [196, "description"], [197, "description"], [198, "description"], [199, "description"], [200, "description"], [201, "description"], [202, "description"], [203, "description"], [204, "description"], [205, "description"], [206, "description"], [207, "description"], [208, "description"], [209, "description"], [210, "description"], [211, "description"], [212, "description"], [213, "description"], [214, "description"], [215, "description"], [216, "description"], [217, "description"], [218, "description"], [219, "description"], [220, "description"], [221, "description"], [222, "description"], [227, "description"]], "Returns": [[1, "returns"], [2, "returns"], [3, "returns"], [4, "returns"], [5, "returns"], [6, "returns"], [7, "returns"], [8, "returns"], [9, "returns"], [10, "returns"], [11, "returns"], [12, "returns"], [13, "returns"], [14, "returns"], [15, "returns"], [16, "returns"], [17, "returns"], [18, "returns"], [19, "returns"], [20, "returns"], [21, "returns"], [22, "returns"], [23, "returns"], [24, "returns"], [25, "returns"], [26, "returns"], [27, "returns"], [28, "returns"], [29, "returns"], [30, "returns"], [31, "returns"], [32, "returns"], [33, "returns"], [34, "returns"], [35, "returns"], [36, "returns"], [37, "returns"], [38, "returns"], [39, "returns"], [40, "returns"], [41, "returns"], [42, "returns"], [43, "returns"], [44, "returns"], [46, "returns"], [47, "returns"], [49, "returns"], [54, "returns"], [55, "returns"], [56, "returns"], [60, "returns"], [61, "returns"], [64, "returns"], [65, "returns"], [66, "returns"], [67, "returns"], [69, "returns"], [70, "returns"], [72, "returns"], [73, "returns"], [74, "returns"], [76, "returns"], [77, "returns"], [78, "returns"], [80, "returns"], [81, "returns"], [82, "returns"], [83, "returns"], [85, "returns"], [87, "returns"], [88, "returns"], [89, "returns"], [90, "returns"], [91, "returns"], [92, "returns"], [93, "returns"], [97, "returns"], [98, "returns"], [99, "returns"], [100, "returns"], [101, "returns"], [102, "returns"], [103, "returns"], [104, "returns"], [105, "returns"], [114, "returns"], [115, "returns"], [116, "returns"], [118, "returns"], [121, "returns"], [122, "returns"], [123, "returns"], [124, "returns"], [126, "returns"], [129, "returns"], [133, "returns"], [134, "returns"], [135, "returns"], [136, "returns"], [138, "returns"], [139, "returns"], [143, "returns"], [144, "returns"], [145, "returns"], [146, "returns"], [147, "returns"], [149, "returns"], [150, "returns"], [151, "returns"], [156, "returns"], [161, "returns"], [162, "returns"], [163, "returns"], [164, "returns"], [165, "returns"], [166, "returns"], [171, "returns"], [172, "returns"], [176, "returns"], [178, "returns"], [179, "returns"], [180, "returns"], [181, "returns"], [182, "returns"], [183, "returns"], [184, "returns"], [185, "returns"], [191, "returns"], [192, "returns"], [196, "returns"], [197, "returns"], [201, "returns"], [203, "returns"], [205, "returns"], [206, "returns"], [207, "returns"], [208, "returns"], [209, "returns"], [214, "returns"], [215, "returns"], [218, "returns"], [219, "returns"]], "bson_aligned_alloc0()": [[2, "bson-aligned-alloc0"]], "bson_append_array()": [[3, "bson-append-array"]], "bson_append_array_begin()": [[4, "bson-append-array-begin"]], "bson_append_array_end()": [[5, "bson-append-array-end"]], "bson_append_binary()": [[6, "bson-append-binary"]], "bson_append_bool()": [[7, "bson-append-bool"]], "bson_append_code()": [[8, "bson-append-code"]], "bson_append_code_with_scope()": [[9, "bson-append-code-with-scope"]], "bson_append_date_time()": [[10, "bson-append-date-time"]], "bson_append_dbpointer()": [[11, "bson-append-dbpointer"]], "bson_append_decimal128()": [[12, "bson-append-decimal128"]], "bson_append_document()": [[13, "bson-append-document"]], "bson_append_document_begin()": [[14, "bson-append-document-begin"]], "bson_append_document_end()": [[15, "bson-append-document-end"]], "bson_append_double()": [[16, "bson-append-double"]], "bson_append_int32()": [[17, "bson-append-int32"]], "bson_append_int64()": [[18, "bson-append-int64"]], "bson_append_iter()": [[19, "bson-append-iter"]], "bson_append_maxkey()": [[20, "bson-append-maxkey"]], "bson_append_minkey()": [[21, "bson-append-minkey"]], "bson_append_now_utc()": [[22, "bson-append-now-utc"]], "bson_append_null()": [[23, "bson-append-null"]], "bson_append_oid()": [[24, "bson-append-oid"]], "bson_append_regex()": [[25, "bson-append-regex"]], "bson_append_regex_w_len()": [[26, "bson-append-regex-w-len"]], "bson_append_symbol()": [[27, "bson-append-symbol"]], "bson_append_time_t()": [[28, "bson-append-time-t"]], "bson_append_timestamp()": [[29, "bson-append-timestamp"]], "bson_append_timeval()": [[30, "bson-append-timeval"]], "bson_append_undefined()": [[31, "bson-append-undefined"]], "bson_append_utf8()": [[32, "bson-append-utf8"]], "bson_append_value()": [[33, "bson-append-value"]], "bson_array_as_canonical_extended_json()": [[34, "bson-array-as-canonical-extended-json"]], "Example": [[34, "example"], [35, "example"], [36, "example"], [37, "example"], [38, "example"], [39, "example"], [40, "example"], [48, "example"], [52, "example"], [55, "example"], [56, "example"], [57, "example"], [58, "example"], [62, "example"], [93, "example"], [97, "example"], [137, "example"], [154, "example"], [157, "example"], [165, "example"], [170, "example"], [176, "example"], [193, "example"], [198, "example"], [199, "example"], [200, "example"], [202, "example"], [212, "example"], [221, "example"]], "bson_array_as_json()": [[35, "bson-array-as-json"]], "bson_array_as_relaxed_extended_json()": [[36, "bson-array-as-relaxed-extended-json"]], "bson_as_canonical_extended_json()": [[37, "bson-as-canonical-extended-json"]], "bson_as_json()": [[38, "bson-as-json"]], "bson_as_json_with_opts()": [[39, "bson-as-json-with-opts"]], "bson_as_relaxed_extended_json()": [[40, "bson-as-relaxed-extended-json"]], "bson_ascii_strtoll()": [[41, "bson-ascii-strtoll"]], "bson_check_version()": [[42, "bson-check-version"]], "bson_compare()": [[43, "bson-compare"]], "bson_concat()": [[44, "bson-concat"]], "bson_context_destroy()": [[45, "bson-context-destroy"]], "bson_context_get_default()": [[46, "bson-context-get-default"]], "bson_context_new()": [[47, "bson-context-new"]], "bson_context_t": [[48, "bson-context-t"]], "Functions": [[48, "functions"], [57, "functions"], [62, "functions"], [68, "functions"], [117, "functions"], [131, "functions"], [137, "functions"], [142, "functions"], [157, "functions"], [170, "functions"], [193, "functions"], [198, "functions"], [199, "functions"], [200, "functions"], [202, "functions"], [212, "functions"], [213, "functions"], [221, "functions"], [223, "functions"], [239, "functions"]], "bson_copy()": [[49, "bson-copy"]], "bson_copy_to()": [[50, "bson-copy-to"]], "bson_copy_to_excluding()": [[51, "bson-copy-to-excluding"]], "bson_copy_to_excluding_noinit()": [[52, "bson-copy-to-excluding-noinit"]], "bson_copy_to_excluding_noinit_va()": [[53, "bson-copy-to-excluding-noinit-va"]], "bson_count_keys()": [[54, "bson-count-keys"]], "bson_decimal128_from_string()": [[55, "bson-decimal128-from-string"]], "bson_decimal128_from_string_w_len()": [[56, "bson-decimal128-from-string-w-len"]], "bson_decimal128_t": [[57, "bson-decimal128-t"]], "bson_decimal128_to_string()": [[58, "bson-decimal128-to-string"]], "bson_destroy()": [[59, "bson-destroy"]], "bson_destroy_with_steal()": [[60, "bson-destroy-with-steal"]], "bson_equal()": [[61, "bson-equal"]], "bson_error_t": [[62, "bson-error-t"]], "bson_free()": [[63, "bson-free"]], "bson_get_data()": [[64, "bson-get-data"]], "bson_get_major_version()": [[65, "bson-get-major-version"]], "bson_get_micro_version()": [[66, "bson-get-micro-version"]], "bson_get_minor_version()": [[67, "bson-get-minor-version"]], "System Clock": [[68, "system-clock"]], "bson_get_version()": [[69, "bson-get-version"]], "bson_has_field()": [[70, "bson-has-field"]], "bson_init()": [[71, "bson-init"]], "bson_init_from_json()": [[72, "bson-init-from-json"]], "Errors": [[72, "errors"], [135, "errors"], [136, "errors"], [146, "errors"], [163, "errors"]], "bson_init_static()": [[73, "bson-init-static"]], "bson_isspace()": [[74, "bson-isspace"]], "bson_iter_array()": [[75, "bson-iter-array"]], "bson_iter_as_bool()": [[76, "bson-iter-as-bool"]], "bson_iter_as_double()": [[77, "bson-iter-as-double"]], "bson_iter_as_int64()": [[78, "bson-iter-as-int64"]], "bson_iter_binary()": [[79, "bson-iter-binary"]], "bson_iter_bool()": [[80, "bson-iter-bool"]], "bson_iter_code()": [[81, "bson-iter-code"]], "bson_iter_codewscope()": [[82, "bson-iter-codewscope"]], "bson_iter_date_time()": [[83, "bson-iter-date-time"]], "bson_iter_dbpointer()": [[84, "bson-iter-dbpointer"]], "bson_iter_decimal128()": [[85, "bson-iter-decimal128"]], "bson_iter_document()": [[86, "bson-iter-document"]], "bson_iter_double()": [[87, "bson-iter-double"]], "bson_iter_dup_utf8()": [[88, "bson-iter-dup-utf8"]], "bson_iter_find()": [[89, "bson-iter-find"]], "bson_iter_find_case()": [[90, "bson-iter-find-case"]], "bson_iter_find_descendant()": [[91, "bson-iter-find-descendant"]], "bson_iter_find_w_len()": [[92, "bson-iter-find-w-len"]], "bson_iter_init()": [[93, "bson-iter-init"]], "bson_iter_init_find()": [[94, "bson-iter-init-find"]], "bson_iter_init_find_case()": [[95, "bson-iter-init-find-case"]], "bson_iter_init_find_w_len()": [[96, "bson-iter-init-find-w-len"]], "bson_iter_init_from_data()": [[97, "bson-iter-init-from-data"]], "bson_iter_init_from_data_at_offset()": [[98, "bson-iter-init-from-data-at-offset"]], "bson_iter_int32()": [[99, "bson-iter-int32"]], "bson_iter_int64()": [[100, "bson-iter-int64"]], "bson_iter_key()": [[101, "bson-iter-key"]], "bson_iter_key_len()": [[102, "bson-iter-key-len"]], "bson_iter_next()": [[103, "bson-iter-next"]], "bson_iter_offset()": [[104, "bson-iter-offset"]], "bson_iter_oid()": [[105, "bson-iter-oid"]], "bson_iter_overwrite_bool()": [[106, "bson-iter-overwrite-bool"]], "bson_iter_overwrite_date_time()": [[107, "bson-iter-overwrite-date-time"]], "bson_iter_overwrite_decimal128()": [[108, "bson-iter-overwrite-decimal128"]], "bson_iter_overwrite_double()": [[109, "bson-iter-overwrite-double"]], "bson_iter_overwrite_int32()": [[110, "bson-iter-overwrite-int32"]], "bson_iter_overwrite_int64()": [[111, "bson-iter-overwrite-int64"]], "bson_iter_overwrite_oid()": [[112, "bson-iter-overwrite-oid"]], "bson_iter_overwrite_timestamp()": [[113, "bson-iter-overwrite-timestamp"]], "bson_iter_recurse()": [[114, "bson-iter-recurse"]], "bson_iter_regex()": [[115, "bson-iter-regex"]], "bson_iter_symbol()": [[116, "bson-iter-symbol"]], "bson_iter_t": [[117, "bson-iter-t"]], "Examples": [[117, "examples"], [232, "examples"]], "bson_iter_time_t()": [[118, "bson-iter-time-t"]], "bson_iter_timestamp()": [[119, "bson-iter-timestamp"]], "bson_iter_timeval()": [[120, "bson-iter-timeval"]], "bson_iter_type()": [[121, "bson-iter-type"]], "bson_iter_utf8()": [[122, "bson-iter-utf8"]], "bson_iter_value()": [[123, "bson-iter-value"]], "bson_iter_visit_all()": [[124, "bson-iter-visit-all"]], "bson_json_data_reader_ingest()": [[125, "bson-json-data-reader-ingest"]], "bson_json_data_reader_new()": [[126, "bson-json-data-reader-new"]], "bson_json_mode_t": [[127, "bson-json-mode-t"]], "bson_json_opts_destroy()": [[128, "bson-json-opts-destroy"]], "bson_json_opts_new()": [[129, "bson-json-opts-new"]], "bson_json_opts_set_outermost_array()": [[130, "bson-json-opts-set-outermost-array"]], "bson_json_opts_t": [[131, "bson-json-opts-t"]], "bson_json_reader_destroy()": [[132, "bson-json-reader-destroy"]], "bson_json_reader_new()": [[133, "bson-json-reader-new"]], "bson_json_reader_new_from_fd()": [[134, "bson-json-reader-new-from-fd"]], "bson_json_reader_new_from_file()": [[135, "bson-json-reader-new-from-file"]], "bson_json_reader_read()": [[136, "bson-json-reader-read"]], "bson_json_reader_t": [[137, "bson-json-reader-t"]], "bson_malloc()": [[138, "bson-malloc"]], "bson_malloc0()": [[139, "bson-malloc0"]], "bson_mem_restore_vtable()": [[140, "bson-mem-restore-vtable"]], "bson_mem_set_vtable()": [[141, "bson-mem-set-vtable"]], "Memory Management": [[142, "memory-management"]], "bson_new()": [[143, "bson-new"]], "bson_new_from_buffer()": [[144, "bson-new-from-buffer"]], "bson_new_from_data()": [[145, "bson-new-from-data"]], "bson_new_from_json()": [[146, "bson-new-from-json"]], "bson_oid_compare()": [[147, "bson-oid-compare"]], "bson_oid_copy()": [[148, "bson-oid-copy"]], "bson_oid_equal()": [[149, "bson-oid-equal"]], "bson_oid_get_time_t()": [[150, "bson-oid-get-time-t"]], "bson_oid_hash()": [[151, "bson-oid-hash"]], "bson_oid_init()": [[152, "bson-oid-init"]], "bson_oid_init_from_data()": [[153, "bson-oid-init-from-data"]], "bson_oid_init_from_string()": [[154, "bson-oid-init-from-string"]], "bson_oid_init_sequence()": [[155, "bson-oid-init-sequence"]], "bson_oid_is_valid()": [[156, "bson-oid-is-valid"]], "bson_oid_t": [[157, "bson-oid-t"]], "String Conversion": [[157, "string-conversion"]], "Hashing": [[157, "hashing"]], "Comparing": [[157, "comparing"]], "Validating": [[157, "validating"]], "bson_oid_to_string()": [[158, "bson-oid-to-string"]], "bson_reader_destroy()": [[159, "bson-reader-destroy"]], "bson_reader_destroy_func_t": [[160, "bson-reader-destroy-func-t"]], "bson_reader_new_from_data()": [[161, "bson-reader-new-from-data"]], "bson_reader_new_from_fd()": [[162, "bson-reader-new-from-fd"]], "bson_reader_new_from_file()": [[163, "bson-reader-new-from-file"]], "bson_reader_new_from_handle()": [[164, "bson-reader-new-from-handle"]], "bson_reader_read()": [[165, "bson-reader-read"]], "bson_reader_read_func_t": [[166, "bson-reader-read-func-t"]], "bson_reader_reset()": [[167, "bson-reader-reset"]], "bson_reader_set_destroy_func()": [[168, "bson-reader-set-destroy-func"]], "bson_reader_set_read_func()": [[169, "bson-reader-set-read-func"]], "bson_reader_t": [[170, "bson-reader-t"]], "bson_reader_tell()": [[171, "bson-reader-tell"]], "bson_realloc()": [[172, "bson-realloc"]], "bson_realloc_ctx()": [[173, "bson-realloc-ctx"]], "bson_realloc_func": [[174, "bson-realloc-func"]], "bson_reinit()": [[175, "bson-reinit"]], "bson_reserve_buffer()": [[176, "bson-reserve-buffer"]], "bson_set_error()": [[177, "bson-set-error"]], "bson_sized_new()": [[178, "bson-sized-new"]], "bson_snprintf()": [[179, "bson-snprintf"]], "bson_steal()": [[180, "bson-steal"]], "bson_strcasecmp()": [[181, "bson-strcasecmp"]], "bson_strdup()": [[182, "bson-strdup"]], "bson_strdup_printf()": [[183, "bson-strdup-printf"]], "bson_strdupv_printf()": [[184, "bson-strdupv-printf"]], "bson_strerror_r()": [[185, "bson-strerror-r"]], "bson_strfreev()": [[186, "bson-strfreev"]], "bson_string_append()": [[187, "bson-string-append"]], "bson_string_append_c()": [[188, "bson-string-append-c"]], "bson_string_append_printf()": [[189, "bson-string-append-printf"]], "bson_string_append_unichar()": [[190, "bson-string-append-unichar"]], "bson_string_free()": [[191, "bson-string-free"]], "bson_string_new()": [[192, "bson-string-new"]], "bson_string_t": [[193, "bson-string-t"]], "bson_string_truncate()": [[194, "bson-string-truncate"]], "bson_strncpy()": [[195, "bson-strncpy"]], "bson_strndup()": [[196, "bson-strndup"]], "bson_strnlen()": [[197, "bson-strnlen"]], "bson_subtype_t": [[198, "bson-subtype-t"]], "bson_t": [[199, "bson-t"]], "Performance Notes": [[199, "performance-notes"]], "Duplicate Keys": [[199, "duplicate-keys"]], "bson_type_t": [[200, "bson-type-t"]], "bson_uint32_to_string()": [[201, "bson-uint32-to-string"]], "Array Element Key Building": [[201, "array-element-key-building"]], "bson_unichar_t": [[202, "bson-unichar-t"]], "bson_utf8_escape_for_json()": [[203, "bson-utf8-escape-for-json"]], "bson_utf8_from_unichar()": [[204, "bson-utf8-from-unichar"]], "bson_utf8_get_char()": [[205, "bson-utf8-get-char"]], "bson_utf8_next_char()": [[206, "bson-utf8-next-char"]], "bson_utf8_validate()": [[207, "bson-utf8-validate"]], "bson_validate()": [[208, "bson-validate"]], "bson_validate_with_error()": [[209, "bson-validate-with-error"]], "bson_value_copy()": [[210, "bson-value-copy"]], "bson_value_destroy()": [[211, "bson-value-destroy"]], "bson_value_t": [[212, "bson-value-t"]], "bson_visitor_t": [[213, "bson-visitor-t"]], "Basic Example": [[213, "basic-example"]], "Example Corruption Check": [[213, "example-corruption-check"]], "Example Custom Validation": [[213, "example-custom-validation"]], "bson_vsnprintf()": [[214, "bson-vsnprintf"]], "bson_writer_begin()": [[215, "bson-writer-begin"]], "bson_writer_destroy()": [[216, "bson-writer-destroy"]], "bson_writer_end()": [[217, "bson-writer-end"]], "bson_writer_get_length()": [[218, "bson-writer-get-length"]], "bson_writer_new()": [[219, "bson-writer-new"]], "bson_writer_rollback()": [[220, "bson-writer-rollback"]], "bson_writer_t": [[221, "bson-writer-t"]], "bson_zero_free()": [[222, "bson-zero-free"]], "Character and String Routines": [[223, "character-and-string-routines"]], "Creating a BSON Document": [[224, "creating-a-bson-document"]], "The bson_t structure": [[224, "the-bson-t-structure"]], "Sub-Documents and Sub-Arrays": [[224, "sub-documents-and-sub-arrays"]], "Simplified BSON C Object Notation": [[224, "simplified-bson-c-object-notation"]], "Cross Platform Notes": [[225, "cross-platform-notes"]], "Endianness": [[226, "endianness"]], "Handling Errors": [[227, "handling-errors"]], "Index": [[228, "index"]], "Guides": [[229, "guides"]], "Using libbson In Your C Program": [[230, "using-libbson-in-your-c-program"]], "Include bson.h": [[230, "include-bson-h"]], "CMake": [[230, "cmake"]], "pkg-config": [[230, "pkg-config"]], "libbson": [[231, "libbson"]], "Introduction": [[231, "introduction"]], "JSON": [[232, "json"]], "Converting BSON to JSON": [[232, "converting-bson-to-json"]], "Converting JSON to BSON": [[232, "converting-json-to-bson"]], "Streaming JSON Parsing": [[232, "streaming-json-parsing"]], "ObjectIDs": [[233, "objectids"]], "Composition": [[233, "composition"]], "Sorting ObjectIDs": [[233, "sorting-objectids"]], "Comparing Object IDs": [[233, "comparing-object-ids"]], "Generating": [[233, "generating"]], "Parsing ObjectID Strings": [[233, "parsing-objectid-strings"]], "Hashing ObjectIDs": [[233, "hashing-objectids"]], "Fetching ObjectID Creation Time": [[233, "fetching-objectid-creation-time"]], "Parsing and Iterating BSON Documents": [[234, "parsing-and-iterating-bson-documents"]], "Parsing": [[234, "parsing"]], "Recursing into Sub-Documents": [[234, "recursing-into-sub-documents"]], "Finding Fields using Dot Notation": [[234, "finding-fields-using-dot-notation"]], "Validating a BSON Document": [[234, "validating-a-bson-document"]], "Streaming BSON": [[235, "streaming-bson"]], "Reading from a BSON Stream": [[235, "reading-from-a-bson-stream"]], "Writing a sequence of BSON Documents": [[235, "writing-a-sequence-of-bson-documents"]], "Threading": [[236, "threading"]], "Tutorial": [[237, "tutorial"]], "UTF-8": [[238, "utf-8"]], "Encoding": [[238, "encoding"]], "Validating a UTF-8 Sequence": [[238, "validating-a-utf-8-sequence"]], "Libbson Versioning": [[239, "libbson-versioning"]], "Macros": [[239, "macros"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/libbson/1.24.4/streaming-bson.html b/libbson/1.24.4/streaming-bson.html new file mode 100644 index 0000000000..60f0e02310 --- /dev/null +++ b/libbson/1.24.4/streaming-bson.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + Streaming BSON — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Streaming BSON

      +

      bson_reader_t provides a streaming reader which can be initialized with a filedescriptor or memory region. bson_writer_t provides a streaming writer which can be initialized with a memory region. (Streaming BSON to a file descriptor is not yet supported.)

      +
      +

      Reading from a BSON Stream

      +

      bson_reader_t provides a convenient API to read sequential BSON documents from a file-descriptor or memory buffer. The bson_reader_read() function will read forward in the underlying stream and return a bson_t that can be inspected and iterated upon.

      +
      #include <stdio.h>
      +#include <bson/bson.h>
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_reader_t *reader;
      +   const bson_t *doc;
      +   bson_error_t error;
      +   bool eof;
      +
      +   reader = bson_reader_new_from_file ("mycollection.bson", &error);
      +
      +   if (!reader) {
      +      fprintf (stderr, "Failed to open file.\n");
      +      return 1;
      +   }
      +
      +   while ((doc = bson_reader_read (reader, &eof))) {
      +      char *str = bson_as_canonical_extended_json (doc, NULL);
      +      printf ("%s\n", str);
      +      bson_free (str);
      +   }
      +
      +   if (!eof) {
      +      fprintf (stderr,
      +               "corrupted bson document found at %u\n",
      +               (unsigned) bson_reader_tell (reader));
      +   }
      +
      +   bson_reader_destroy (reader);
      +
      +   return 0;
      +}
      +
      +
      +

      See bson_reader_new_from_fd(), bson_reader_new_from_file(), and bson_reader_new_from_data() for more information.

      +
      +
      +

      Writing a sequence of BSON Documents

      +

      bson_writer_t provides a convenient API to write a sequence of BSON documents to a memory buffer that can grow with realloc(). The bson_writer_begin() and bson_writer_end() functions will manage the underlying buffer while building the sequence of documents.

      +

      This could also be useful if you want to write to a network packet while serializing the documents from a higher level language, (but do so just after the packets header).

      +
      #include <stdio.h>
      +#include <bson/bson.h>
      +#include <assert.h>
      +
      +int
      +main (int argc, char *argv[])
      +{
      +   bson_writer_t *writer;
      +   bson_t *doc;
      +   uint8_t *buf = NULL;
      +   size_t buflen = 0;
      +   bool r;
      +   int i;
      +
      +   writer = bson_writer_new (&buf, &buflen, 0, bson_realloc_ctx, NULL);
      +
      +   for (i = 0; i < 10000; i++) {
      +      r = bson_writer_begin (writer, &doc);
      +      assert (r);
      +
      +      r = BSON_APPEND_INT32 (doc, "i", i);
      +      assert (r);
      +
      +      bson_writer_end (writer);
      +   }
      +
      +   bson_free (buf);
      +
      +   return 0;
      +}
      +
      +
      +

      See bson_writer_new() for more information.

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/threading.html b/libbson/1.24.4/threading.html new file mode 100644 index 0000000000..c5f93045c3 --- /dev/null +++ b/libbson/1.24.4/threading.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + Threading — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Threading

      +

      Libbson’s data structures are NOT thread-safe. You are responsible for accessing and mutating these structures from one thread at a time.

      +

      Libbson requires POSIX threads (pthreads) on all UNIX-like platforms. On Windows, the native threading interface is used. Libbson uses your system’s threading library to safely generate unique ObjectIds, and to provide a fallback implementation for atomic operations on platforms without built-in atomics.

      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/tutorial.html b/libbson/1.24.4/tutorial.html new file mode 100644 index 0000000000..7039d5fc7c --- /dev/null +++ b/libbson/1.24.4/tutorial.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + Tutorial — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libbson/1.24.4/utf8.html b/libbson/1.24.4/utf8.html new file mode 100644 index 0000000000..9e0520a060 --- /dev/null +++ b/libbson/1.24.4/utf8.html @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + UTF-8 — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      UTF-8

      +
      +

      Encoding

      +

      Libbson expects that you are always working with UTF-8 encoded text. Anything else is invalid API use.

      +

      If you should need to walk through UTF-8 sequences, you can use the various UTF-8 helper functions distributed with Libbson.

      +
      +
      +

      Validating a UTF-8 Sequence

      +

      To validate the string contained in my_string, use the following. You may pass -1 for the string length if you know the string is NULL-terminated.

      +
      if (!bson_utf8_validate (my_string, -1, false)) {
      +   printf ("Validation failed.\n");
      +}
      +
      +
      +

      If my_string has NULL bytes within the string, you must provide the string length. Use the following format. Notice the true at the end indicating \0 is allowed.

      +
      if (!bson_utf8_validate (my_string, my_string_len, true)) {
      +   printf ("Validation failed.\n");
      +}
      +
      +
      +

      For more information see the API reference for bson_utf8_validate().

      +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/1.24.4/version.html b/libbson/1.24.4/version.html new file mode 100644 index 0000000000..cf5655c066 --- /dev/null +++ b/libbson/1.24.4/version.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + Libbson Versioning — libbson 1.24.4 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Libbson Versioning

      +

      Versioning Macros and Functions

      +
      +

      Macros

      +

      The following preprocessor macros can be used to perform various checks based on the version of the library you are compiling against. This may be useful if you only want to enable a feature on a certain version of the library.

      +
      +
      +

      Synopsis

      +
      #define BSON_CHECK_VERSION(major, minor, micro)
      +
      +#define BSON_MAJOR_VERSION (1)
      +#define BSON_MINOR_VERSION (4)
      +#define BSON_MICRO_VERSION (1)
      +#define BSON_VERSION_S "1.4.1"
      +
      +#define BSON_VERSION_HEX                                  \
      +   (BSON_MAJOR_VERSION << 24 | BSON_MINOR_VERSION << 16 | \
      +    BSON_MICRO_VERSION << 8)
      +
      +
      +

      Only compile a block on Libbson 1.1.0 and newer.

      +
      #if BSON_CHECK_VERSION(1, 1, 0)
      +static void
      +do_something (void)
      +{
      +}
      +#endif
      +
      +
      +
      +
      +

      Functions

      + +
      +
      + + +
      +
      +
      + +
      +
      + + + + \ No newline at end of file diff --git a/libbson/current b/libbson/current index 95587e55b3..7ad7fa0185 120000 --- a/libbson/current +++ b/libbson/current @@ -1 +1 @@ -1.24.3 \ No newline at end of file +1.24.4 \ No newline at end of file diff --git a/libbson/index.html b/libbson/index.html index 6d8a03b798..3b34fb0061 100644 --- a/libbson/index.html +++ b/libbson/index.html @@ -21,7 +21,7 @@ delighted.survey(); - libbson Releases — MongoDB C Driver 1.24.3 + libbson Releases — MongoDB C Driver 1.24.4 @@ -48,7 +48,7 @@
    • previous
    • - +
    @@ -58,10 +58,11 @@

    libbson Releases

    -

    Latest Release (1.24.3)

    +

    Latest Release (1.24.4)

    Current Development (master)

      +
    • 1.24.4

    • 1.24.3

    • 1.24.2

    • 1.24.1

    • @@ -168,7 +169,7 @@
      diff --git a/libmongoc-releases.html b/libmongoc-releases.html index 048f662c22..2292e9c44d 100644 --- a/libmongoc-releases.html +++ b/libmongoc-releases.html @@ -21,7 +21,7 @@ delighted.survey(); - libmongoc Releases — MongoDB C Driver 1.24.3 + libmongoc Releases — MongoDB C Driver 1.24.4 @@ -52,7 +52,7 @@
    • previous |
    • - +
    @@ -62,10 +62,11 @@

    libmongoc Releases

    -

    Latest Release (1.24.3)

    +

    Latest Release (1.24.4)

    Current Development (master)

    @@ -62,10 +62,11 @@

    libmongoc Releases

    -

    Latest Release (1.24.3)

    +

    Latest Release (1.24.4)

    Current Development (master)

      +
    • 1.24.4

    • 1.24.3

    • 1.24.2

    • 1.24.1

    • @@ -173,7 +174,7 @@
      diff --git a/objects.inv b/objects.inv index 534a5bae888d7e13459ea496cde7a9583f8006eb..6b7bd6dd5cd206b997aa474bca4be9c5e50f008b 100644 GIT binary patch delta 11 ScmbQkG>2(|Go#5wmm2^T$pi8L delta 11 ScmbQkG>2(|Go$fDmm2^T#RKsG diff --git a/search.html b/search.html index 40d720155b..1ab78ac2ef 100644 --- a/search.html +++ b/search.html @@ -20,7 +20,7 @@ delighted.survey(); - Search — MongoDB C Driver 1.24.3 + Search — MongoDB C Driver 1.24.4 @@ -51,7 +51,7 @@ @@ -88,7 +88,7 @@
      diff --git a/searchindex.js b/searchindex.js index 0aed0cb803..f6f56a67ae 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "libbson-releases", "libmongoc-releases"], "filenames": ["index.rst", "libbson-releases.rst", "libmongoc-releases.rst"], "titles": ["MongoDB C Driver", "libbson Releases", "libmongoc Releases"], "terms": {"A": 0, "cross": 0, "platform": 0, "client": 0, "librari": 0, "The": 0, "also": 0, "known": 0, "libmongoc": 0, "i": 0, "us": 0, "from": 0, "applic": 0, "write": 0, "higher": 0, "level": 0, "languag": 0, "It": 0, "depend": 0, "libbson": 0, "gener": 0, "pars": 0, "bson": 0, "nativ": 0, "data": 0, "format": 0, "latest": [0, 1, 2], "releas": 0, "mongo": 0, "1": [0, 1, 2], "24": [0, 1, 2], "3": [0, 1, 2], "tar": 0, "gz": 0, "instal": 0, "tutori": 0, "refer": 0, "commun": 0, "forum": 0, "file": 0, "bug": 0, "featur": 0, "request": 0, "jira": 0, "issu": 0, "tracker": 0, "current": [1, 2], "develop": [1, 2], "master": [1, 2], "2": [1, 2], "0": [1, 2], "23": [1, 2], "5": [1, 2], "4": [1, 2], "22": [1, 2], "beta0": [1, 2], "21": [1, 2], "20": [1, 2], "19": [1, 2], "18": [1, 2], "alpha2": [1, 2], "alpha": [1, 2], "17": [1, 2], "7": [1, 2], "6": [1, 2], "rc0": [1, 2], "beta2": [1, 2], "beta": [1, 2], "16": [1, 2], "15": [1, 2], "14": [1, 2], "13": [1, 2], "12": [1, 2], "11": [1, 2], "10": [1, 2], "9": [1, 2], "8": [1, 2]}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"mongodb": 0, "c": 0, "driver": 0, "download": 0, "document": 0, "how": 0, "To": 0, "ask": 0, "For": 0, "help": 0, "older": 0, "version": 0, "libbson": 1, "releas": [1, 2], "libmongoc": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"MongoDB C Driver": [[0, "mongodb-c-driver"]], "Download": [[0, "download"]], "Documentation": [[0, "documentation"]], "How To Ask For Help": [[0, "how-to-ask-for-help"]], "Documentation for Older Versions": [[0, "documentation-for-older-versions"]], "libbson Releases": [[1, "libbson-releases"]], "libmongoc Releases": [[2, "libmongoc-releases"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "libbson-releases", "libmongoc-releases"], "filenames": ["index.rst", "libbson-releases.rst", "libmongoc-releases.rst"], "titles": ["MongoDB C Driver", "libbson Releases", "libmongoc Releases"], "terms": {"A": 0, "cross": 0, "platform": 0, "client": 0, "librari": 0, "The": 0, "also": 0, "known": 0, "libmongoc": 0, "i": 0, "us": 0, "from": 0, "applic": 0, "write": 0, "higher": 0, "level": 0, "languag": 0, "It": 0, "depend": 0, "libbson": 0, "gener": 0, "pars": 0, "bson": 0, "nativ": 0, "data": 0, "format": 0, "latest": [0, 1, 2], "releas": 0, "mongo": 0, "1": [0, 1, 2], "24": [0, 1, 2], "3": [1, 2], "tar": 0, "gz": 0, "instal": 0, "tutori": 0, "refer": 0, "commun": 0, "forum": 0, "file": 0, "bug": 0, "featur": 0, "request": 0, "jira": 0, "issu": 0, "tracker": 0, "current": [1, 2], "develop": [1, 2], "master": [1, 2], "2": [1, 2], "0": [1, 2], "23": [1, 2], "5": [1, 2], "4": [0, 1, 2], "22": [1, 2], "beta0": [1, 2], "21": [1, 2], "20": [1, 2], "19": [1, 2], "18": [1, 2], "alpha2": [1, 2], "alpha": [1, 2], "17": [1, 2], "7": [1, 2], "6": [1, 2], "rc0": [1, 2], "beta2": [1, 2], "beta": [1, 2], "16": [1, 2], "15": [1, 2], "14": [1, 2], "13": [1, 2], "12": [1, 2], "11": [1, 2], "10": [1, 2], "9": [1, 2], "8": [1, 2]}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"mongodb": 0, "c": 0, "driver": 0, "download": 0, "document": 0, "how": 0, "To": 0, "ask": 0, "For": 0, "help": 0, "older": 0, "version": 0, "libbson": 1, "releas": [1, 2], "libmongoc": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"MongoDB C Driver": [[0, "mongodb-c-driver"]], "Download": [[0, "download"]], "Documentation": [[0, "documentation"]], "How To Ask For Help": [[0, "how-to-ask-for-help"]], "Documentation for Older Versions": [[0, "documentation-for-older-versions"]], "libbson Releases": [[1, "libbson-releases"]], "libmongoc Releases": [[2, "libmongoc-releases"]]}, "indexentries": {}}) \ No newline at end of file -- GitLab