From ce1140e3f2f7cd0a2533998369e60a085f703c3f Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Fri, 29 Jul 2011 22:31:30 +0000 Subject: [PATCH] Docbook conversion of existing ext/pb_ds documentation. 2011-07-29 Benjamin Kosnik Docbook conversion of existing ext/pb_ds documentation. * doc/Makefile.am (xml_sources_manual): Add policy_data_structures.xml and test_policy_data_structures.xml. (stamp-html-copy): Remove special-case for ext/pb_ds directory. (XSLTPROC_FLAGS): Split into XSLT_FLAGS and XSLT_PARAM, use. * doc/Makefile.in: Regenerate. * doc/xml/manual/policy_data_structures.xml: New, adapted from previous html-only instance in doc/html/ext/pb_ds. * doc/xml/manual/test_policy_data_structures.xml: New, same as above. * doc/xml/spine.xml: Update copyright. * doc/xml/manual/spine.xml: Same. * doc/xml/manual/extensions.xml: Adjust set, chapter, sections. * doc/xml/manual/bitmap_allocator.xml: Same. * doc/xml/manual/mt_allocator.xml: Same. Populate image directory. * doc/xml/images/(pbds_balls_and_bins.png, pbds_binary_priority_queue_random_int_push_timing_test_local.pdf, pbds_binary_priority_queue_random_int_push_timing_test_local.png, pbds_binary_priority_queue_random_int_push_timing_test_local.svg, pbds_cc_hash_random_int_find_timing_test_local.pdf, pbds_cc_hash_random_int_find_timing_test_local.png, pbds_cc_hash_random_int_find_timing_test_local.svg, pbds_cc_hash_random_int_subscript_timing_test_find_local.pdf, pbds_cc_hash_random_int_subscript_timing_test_find_local.png, pbds_cc_hash_random_int_subscript_timing_test_find_local.svg, pbds_cc_hash_random_int_subscript_timing_test_insert_local.pdf, pbds_cc_hash_random_int_subscript_timing_test_insert_local.png, pbds_cc_hash_random_int_subscript_timing_test_insert_local.svg, pbds_container_tag_hierarchy.pdf, pbds_container_tag_hierarchy.png, pbds_container_tag_hierarchy.svg, pbds_different_underlying_dss_1.png, pbds_different_underlying_dss_2.png, pbds_embedded_lists_1.png, pbds_embedded_lists_2.png, pbds_embedded_lists_3.png, pbds_exception_hierarchy.pdf, pbds_exception_hierarchy.png, pbds_exception_hierarchy.svg, pbds_gp_hash_random_int_find_timing_test_local.pdf, pbds_gp_hash_random_int_find_timing_test_local.png, pbds_gp_hash_random_int_find_timing_test_local.svg, pbds_gp_hash_random_int_subscript_timing_test_find_local.pdf, pbds_gp_hash_random_int_subscript_timing_test_find_local.png, pbds_gp_hash_random_int_subscript_timing_test_find_local.svg, pbds_gp_hash_random_int_subscript_timing_test_insert_local.pdf, pbds_gp_hash_random_int_subscript_timing_test_insert_local.png, pbds_gp_hash_random_int_subscript_timing_test_insert_local.svg, pbds_hash_policy_cd.png, pbds_hash_random_int_erase_mem_usage_test_local.pdf, pbds_hash_random_int_erase_mem_usage_test_local.png, pbds_hash_random_int_erase_mem_usage_test_local.svg, pbds_hash_ranged_hash_range_hashing_fns.png, pbds_hash_range_hashing_seq_diagram2.png, pbds_hash_range_hashing_seq_diagram.png, pbds_hash_zlob_random_int_find_timing_test_local.pdf, pbds_hash_zlob_random_int_find_timing_test_local.png, pbds_hash_zlob_random_int_find_timing_test_local.svg, pbds_insert_resize_sequence_diagram1.png, pbds_insert_resize_sequence_diagram2.png, pbds_insert_resize_sequence_diagram3.png, pbds_invalidation_guarantee_erase.png, pbds_invalidation_tag_hierarchy.pdf, pbds_invalidation_tag_hierarchy.png, pbds_invalidation_tag_hierarchy.svg, pbds_list_update.png, pbds_multimap_text_find_timing_test_large_s2p_hash_local.pdf, pbds_multimap_text_find_timing_test_large_s2p_hash_local.png, pbds_multimap_text_find_timing_test_large_s2p_hash_local.svg, pbds_multimap_text_find_timing_test_large_s2p_tree_local.pdf, pbds_multimap_text_find_timing_test_large_s2p_tree_local.png, pbds_multimap_text_find_timing_test_large_s2p_tree_local.svg, pbds_multimap_text_find_timing_test_small_s2p_hash_local.pdf, pbds_multimap_text_find_timing_test_small_s2p_hash_local.png, pbds_multimap_text_find_timing_test_small_s2p_hash_local.svg, pbds_multimap_text_find_timing_test_small_s2p_tree_local.pdf, pbds_multimap_text_find_timing_test_small_s2p_tree_local.png, pbds_multimap_text_find_timing_test_small_s2p_tree_local.svg, pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.pdf, pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.png, pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.svg, pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.pdf, pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.png, pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.svg, pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.pdf, pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.png, pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.svg, pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.pdf, pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.png, pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.svg, pbds_multimap_text_insert_timing_test_large_s2p_hash_local.pdf, pbds_multimap_text_insert_timing_test_large_s2p_hash_local.png, pbds_multimap_text_insert_timing_test_large_s2p_hash_local.svg, pbds_multimap_text_insert_timing_test_large_s2p_tree_local.pdf, pbds_multimap_text_insert_timing_test_large_s2p_tree_local.png, pbds_multimap_text_insert_timing_test_large_s2p_tree_local.svg, pbds_multimap_text_insert_timing_test_small_s2p_hash_local.pdf, pbds_multimap_text_insert_timing_test_small_s2p_hash_local.png, pbds_multimap_text_insert_timing_test_small_s2p_hash_local.svg, pbds_multimap_text_insert_timing_test_small_s2p_tree_local.pdf, pbds_multimap_text_insert_timing_test_small_s2p_tree_local.png, pbds_multimap_text_insert_timing_test_small_s2p_tree_local.svg, pbds_node_invariants.png, pbds_pairing_priority_queue_text_push_pop_timing_test_local.pdf, pbds_pairing_priority_queue_text_push_pop_timing_test_local.png, pbds_pairing_priority_queue_text_push_pop_timing_test_local.svg, pbds_pairing_priority_queue_text_push_timing_test_local.pdf, pbds_pairing_priority_queue_text_push_timing_test_local.png, pbds_pairing_priority_queue_text_push_timing_test_local.svg, pbds_pat_trie.png, pbds_point_iterator_hierarchy.png, pbds_point_iterators_range_ops_1.png, pbds_point_iterators_range_ops_2.png, pbds_priority_queue_different_underlying_dss.png, pbds_priority_queue_random_int_push_pop_timing_test_local.pdf, pbds_priority_queue_random_int_push_pop_timing_test_local.png, pbds_priority_queue_random_int_push_pop_timing_test_local.svg, pbds_priority_queue_random_int_push_timing_test_local.pdf, pbds_priority_queue_random_int_push_timing_test_local.png, pbds_priority_queue_random_int_push_timing_test_local.svg, pbds_priority_queue_tag_hierarchy.pdf, pbds_priority_queue_tag_hierarchy.png, pbds_priority_queue_tag_hierarchy.svg, pbds_priority_queue_text_join_timing_test_local.pdf, pbds_priority_queue_text_join_timing_test_local.png, pbds_priority_queue_text_join_timing_test_local.svg, pbds_priority_queue_text_modify_down_timing_test_local.pdf, pbds_priority_queue_text_modify_down_timing_test_local.png, pbds_priority_queue_text_modify_down_timing_test_local.svg, pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.pdf, pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.png, pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.svg, pbds_priority_queue_text_modify_up_timing_test_local.pdf, pbds_priority_queue_text_modify_up_timing_test_local.png, pbds_priority_queue_text_modify_up_timing_test_local.svg, pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.pdf, pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.png, pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.svg, pbds_priority_queue_text_pop_mem_usage_test_local.pdf, pbds_priority_queue_text_pop_mem_usage_test_local.png, pbds_priority_queue_text_pop_mem_usage_test_local.svg, pbds_priority_queue_text_push_pop_timing_test_local.pdf, pbds_priority_queue_text_push_pop_timing_test_local.png, pbds_priority_queue_text_push_pop_timing_test_local.svg, pbds_priority_queue_text_push_timing_test_local.pdf, pbds_priority_queue_text_push_timing_test_local.png, pbds_priority_queue_text_push_timing_test_local.svg, pbds_rationale_null_node_updator.png, pbds_resize_policy_cd.png, pbds_restoring_node_invariants.png, pbds_simple_list.png, pbds_text_find_timing_test_hash_local.pdf, pbds_text_find_timing_test_hash_local.png, pbds_text_find_timing_test_hash_local.svg, pbds_text_find_timing_test_tree_like_local.pdf, pbds_text_find_timing_test_tree_like_local.png, pbds_text_find_timing_test_tree_like_local.svg, pbds_tree_node_invalidations.png, pbds_tree_node_invariants.png, pbds_tree_node_updator_policy_cd.png, pbds_tree_order_statistics_timing_test_local.pdf, pbds_tree_order_statistics_timing_test_local.png, pbds_tree_order_statistics_timing_test_local.svg, pbds_tree_split_join_timing_test_local.pdf, pbds_tree_split_join_timing_test_local.png, pbds_tree_split_join_timing_test_local.svg, pbds_tree_text_insert_timing_test_node_tree_local.pdf, pbds_tree_text_insert_timing_test_node_tree_local.png, pbds_tree_text_insert_timing_test_node_tree_local.svg, pbds_tree_text_insert_timing_test_pat_trie_local.pdf, pbds_tree_text_insert_timing_test_pat_trie_local.png, pbds_tree_text_insert_timing_test_pat_trie_local.svg, pbds_tree_text_insert_timing_test_vector_tree_local.pdf, pbds_tree_text_insert_timing_test_vector_tree_local.png, pbds_tree_text_insert_timing_test_vector_tree_local.svg, pbds_tree_text_lor_find_timing_test_local.pdf, pbds_tree_text_lor_find_timing_test_local.png, pbds_tree_text_lor_find_timing_test_local.svg, pbds_trie_node_updator_policy_cd.png, pbds_update_seq_diagram.png): Add. * doc/html/ext/pb_ds: Remove. * doc/html/ext/pb_ds/(acks.html, assoc_container_tag_cd.png, assoc_container_tag_cd.svg, assoc_container_traits.html, assoc_design.html, assoc_examples.html, associative_container_tag.html, assoc_performance_tests.html, assoc_regression_tests.html, assoc_tests.html, balls_and_bins.png, basic_hash_table.html, basic_hash_tag.html, basic_invalidation_guarantee.html, basic_tree_assoc_container_const_node_iterator.html, basic_tree.html, basic_tree_tag.html, binary_heap_tag.html, binary_priority_queue_random_int_push_timing_test_gcc.png, binary_priority_queue_random_int_push_timing_test_local.png, binary_priority_queue_random_int_push_timing_test_msvc.png, binomial_heap_tag.html, ccgp_hash_random_int_subscript_timing_test_insert_gcc.png, ccgp_hash_random_int_subscript_timing_test_insert_local.png, ccgp_hash_random_int_subscript_timing_test_insert_msvc.png, cc_hash_max_collision_check_resize_trigger.html, cc_hash_random_int_find_timing_test_gcc.png, cc_hash_random_int_find_timing_test_local.png, cc_hash_random_int_find_timing_test_msvc.png, cc_hash_random_int_subscript_timing_test_find_gcc.png, cc_hash_random_int_subscript_timing_test_find_local.png, cc_hash_random_int_subscript_timing_test_find_msvc.png, cc_hash_random_int_subscript_timing_test_insert_gcc.png, cc_hash_random_int_subscript_timing_test_insert_local.png, cc_hash_random_int_subscript_timing_test_insert_msvc.png, cc_hash_table.html, cc_hash_tag.html, checked_by_tidy.gif concepts.html, contact.html, container_base.html, container_cd.png, container_cd.svg, container_tag.html, counter_lu_policy.html, design.html, different_underlying_dss.png, direct_mask_range_hashing.html, direct_mod_range_hashing.html, disclaimer.html, ds_gen.html, embedded_lists_1.png, embedded_lists_2.png, embedded_lists_3.png, examples.html, exceptions.html, gp_hash_random_int_find_timing_test_gcc.png, gp_hash_random_int_find_timing_test_local.png, gp_hash_random_int_find_timing_test_msvc.png, gp_hash_random_int_subscript_timing_test_find_gcc.png, gp_hash_random_int_subscript_timing_test_find_local.png, gp_hash_random_int_subscript_timing_test_find_msvc.png, gp_hash_random_int_subscript_timing_test_insert_gcc.png, gp_hash_random_int_subscript_timing_test_insert_local.png, gp_hash_random_int_subscript_timing_test_insert_msvc.png, gp_hash_table.html, gp_hash_tag.html, hash_based_containers.html, hash_exponential_size_policy.html, hash_load_check_resize_trigger.html, hash_policy_cd.png, hash_prime_size_policy.html, hash_random_int_erase_mem_usage_test_gcc.png, hash_random_int_erase_mem_usage_test.html, hash_random_int_erase_mem_usage_test_local.png, hash_random_int_erase_mem_usage_test_msvc.png, hash_random_int_find_find_timing_test.html, hash_random_int_subscript_find_timing_test.html, hash_random_int_subscript_insert_timing_test.html, hash_ranged_hash_range_hashing_fns.png, hash_range_hashing_seq_diagram2.png, hash_range_hashing_seq_diagram.png, hash_standard_resize_policy.html, hash_text_find_find_timing_test.html, hash_zlob_random_int_find_find_timing_test.html, hash_zlob_random_int_find_timing_test_gcc.png, hash_zlob_random_int_find_timing_test_local.png, hash_zlob_random_int_find_timing_test_msvc.png, index.html, insert_error.html, insert_resize_sequence_diagram1.png, insert_resize_sequence_diagram2.png, insert_resize_sequence_diagram3.png, interface.html, introduction.html, invalidation_guarantee_cd.png, invalidation_guarantee_erase.png, join_error.html, linear_probe_fn.html, list_update.html, list_update_tag.html, lu_based_containers.html, lu.png, misc.html, motivation.html, move_to_front_lu_policy.html, multimap_text_find_timing_test_large.html, multimap_text_find_timing_test_large_s2p_hash_gcc.png, multimap_text_find_timing_test_large_s2p_hash_local.png, multimap_text_find_timing_test_large_s2p_hash_msvc.png, multimap_text_find_timing_test_large_s2p_tree_gcc.png, multimap_text_find_timing_test_large_s2p_tree_local.png, multimap_text_find_timing_test_large_s2p_tree_msvc.png, multimap_text_find_timing_test_small.html, multimap_text_find_timing_test_small_s2p_hash_gcc.png, multimap_text_find_timing_test_small_s2p_hash_local.png, multimap_text_find_timing_test_small_s2p_hash_msvc.png, multimap_text_find_timing_test_small_s2p_tree_gcc.png, multimap_text_find_timing_test_small_s2p_tree_local.png, multimap_text_find_timing_test_small_s2p_tree_msvc.png, multimap_text_insert_mem_usage_test_large.html, multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png, multimap_text_insert_mem_usage_test_large_s2p_hash_local.png, multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png, multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png, multimap_text_insert_mem_usage_test_large_s2p_tree_local.png, multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png, multimap_text_insert_mem_usage_test_small.html, multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png, multimap_text_insert_mem_usage_test_small_s2p_hash_local.png, multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png, multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png, multimap_text_insert_mem_usage_test_small_s2p_tree_local.png, multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png, multimap_text_insert_timing_test_large.html, multimap_text_insert_timing_test_large_s2p_hash_gcc.png, multimap_text_insert_timing_test_large_s2p_hash_local.png, multimap_text_insert_timing_test_large_s2p_hash_msvc.png, multimap_text_insert_timing_test_large_s2p_tree_gcc.png, multimap_text_insert_timing_test_large_s2p_tree_local.png, multimap_text_insert_timing_test_large_s2p_tree_msvc.png, multimap_text_insert_timing_test_small.html, multimap_text_insert_timing_test_small_s2p_hash_gcc.png, multimap_text_insert_timing_test_small_s2p_hash_local.png, multimap_text_insert_timing_test_small_s2p_hash_msvc.png, multimap_text_insert_timing_test_small_s2p_tree_gcc.png, multimap_text_insert_timing_test_small_s2p_tree_local.png, multimap_text_insert_timing_test_small_s2p_tree_msvc.png, node_invariant_invalidations.png, node_invariants.png, null_hash_fn.html, null_lu_metadata.html, null_mapped_type.html, null_probe_fn.html, null_tree_node_update.html, null_trie_node_update.html, ov_tree_tag.html, pairing_heap_tag.html, pairing_priority_queue_text_push_pop_timing_test_gcc.png, pairing_priority_queue_text_push_pop_timing_test_local.png, pairing_priority_queue_text_push_pop_timing_test_msvc.png, pairing_priority_queue_text_push_timing_test_gcc.png, pairing_priority_queue_text_push_timing_test_local.png, pairing_priority_queue_text_push_timing_test_msvc.png, pat_trie.png, pat_trie_tag.html, point_invalidation_guarantee.html, point_iterators_cd.png, point_iterators_range_ops_1.png, point_iterators_range_ops_2.png, pq_container_traits.html, pq_design.html, pq_different_underlying_dss.png, pq_examples.html, pq_performance_tests.html, pq_regression_tests.html, pq_tests.html, prerequisites.html, priority_queue.html, priority_queue_random_int_push_pop_timing_test_gcc.png, priority_queue_random_int_push_pop_timing_test.html, priority_queue_random_int_push_pop_timing_test_local.png, priority_queue_random_int_push_pop_timing_test_msvc.png, priority_queue_random_int_push_timing_test_gcc.png, priority_queue_random_int_push_timing_test.html, priority_queue_random_int_push_timing_test_local.png, priority_queue_random_int_push_timing_test_msvc.png, priority_queue_tag_cd.png, priority_queue_tag_cd.svg, priority_queue_tag.html, priority_queue_text_join_timing_test_gcc.png, priority_queue_text_join_timing_test.html, priority_queue_text_join_timing_test_local.png, priority_queue_text_join_timing_test_msvc.png, priority_queue_text_modify_down_timing_test_gcc.png, priority_queue_text_modify_down_timing_test.html, priority_queue_text_modify_down_timing_test_local.png, priority_queue_text_modify_down_timing_test_msvc.png, priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png, priority_queue_text_modify_down_timing_test_pairing_thin_local.png, priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png, priority_queue_text_modify_up_timing_test_gcc.png, priority_queue_text_modify_up_timing_test.html, priority_queue_text_modify_up_timing_test_local.png, priority_queue_text_modify_up_timing_test_msvc.png, priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png, priority_queue_text_modify_up_timing_test_pairing_thin_local.png, priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png, priority_queue_text_pop_mem_usage_test_gcc.png, priority_queue_text_pop_mem_usage_test.html, priority_queue_text_pop_mem_usage_test_local.png, priority_queue_text_pop_mem_usage_test_msvc.png, priority_queue_text_push_pop_timing_test_gcc.png, priority_queue_text_push_pop_timing_test.html, priority_queue_text_push_pop_timing_test_local.png, priority_queue_text_push_pop_timing_test_msvc.png, priority_queue_text_push_timing_test_gcc.png, priority_queue_text_push_timing_test.html, priority_queue_text_push_timing_test_local.png, priority_queue_text_push_timing_test_msvc.png, PythonPoweredSmall.gif quadratic_probe_fn.html, random_int_find_find_timing_test_tree_gcc.png, random_int_find_find_timing_test_tree_local.png, random_int_find_find_timing_test_tree_msvc.png, range_invalidation_guarantee.html, rationale_null_node_updator.png, rb_tree_tag.html, rc_binomial_heap_tag.html, references.html, resize_error.html, resize_policy_cd.png, restoring_node_invariants.png, sample_probe_fn.html, sample_ranged_hash_fn.html, sample_ranged_probe_fn.html, sample_range_hashing.html, sample_resize_policy.html, sample_resize_trigger.html, sample_size_policy.html, sample_tree_node_update.html, sample_trie_access_traits.html, sample_trie_node_update.html, sample_update_policy.html, simple_list.png, splay_tree_tag.html, tests.html, text_find_timing_test_hash_gcc.png, text_find_timing_test_hash_local.png, text_find_timing_test_hash_msvc.png, text_find_timing_test_tree_like_gcc.png, text_find_timing_test_tree_like_local.png, text_find_timing_test_tree_like_msvc.png, thin_heap_tag.html, tree_based_containers.html, tree.html, tree_node_iterator.html, tree_node_updator_policy_cd.png, tree_order_statistics_node_update.html, tree_order_statistics_timing_test_gcc.png, tree_order_statistics_timing_test.html, tree_order_statistics_timing_test_local.png, tree_order_statistics_timing_test_msvc.png, tree_random_int_find_find_timing_test.html, tree_split_join_timing_test_gcc.png, tree_split_join_timing_test.html, tree_split_join_timing_test_local.png, tree_split_join_timing_test_msvc.png, tree_tag.html, tree_text_find_find_timing_test.html, tree_text_insert_timing_test.html, tree_text_insert_timing_test_node_tree_gcc.png, tree_text_insert_timing_test_node_tree_local.png, tree_text_insert_timing_test_node_tree_msvc.png, tree_text_insert_timing_test_pat_trie_gcc.png, tree_text_insert_timing_test_pat_trie_local.png, tree_text_insert_timing_test_pat_trie_msvc.png, tree_text_insert_timing_test_vector_tree_gcc.png, tree_text_insert_timing_test_vector_tree_local.png, tree_text_insert_timing_test_vector_tree_msvc.png, tree_text_lor_find_find_timing_test.html, tree_text_lor_find_timing_test_gcc.png, tree_text_lor_find_timing_test_local.png, tree_text_lor_find_timing_test_msvc.png, trie_based_containers.html, trie_const_node_iterator.html, trie.html, trie_node_iterator.html, trie_node_updator_policy_cd.png, trie_order_statistics_node_update.html, trie_prefix_search_node_update.html, trie_string_access_traits.html, trie_tag.html, trivial_iterator_tag.html, tutorial.html, update_policy_cd.png, update_seq_diagram.png): Remove. From-SVN: r176952 --- libstdc++-v3/ChangeLog | 410 + libstdc++-v3/doc/Makefile.am | 13 +- libstdc++-v3/doc/Makefile.in | 13 +- .../doc/html/ext/pb_ds/PythonPoweredSmall.gif | Bin 361 -> 0 bytes libstdc++-v3/doc/html/ext/pb_ds/acks.html | 65 - .../html/ext/pb_ds/assoc_container_tag_cd.png | Bin 21668 -> 0 bytes .../html/ext/pb_ds/assoc_container_tag_cd.svg | 491 - .../ext/pb_ds/assoc_container_traits.html | 170 - .../doc/html/ext/pb_ds/assoc_design.html | 46 - .../doc/html/ext/pb_ds/assoc_examples.html | 151 - .../ext/pb_ds/assoc_performance_tests.html | 345 - .../ext/pb_ds/assoc_regression_tests.html | 93 - .../doc/html/ext/pb_ds/assoc_tests.html | 24 - .../ext/pb_ds/associative_container_tag.html | 47 - .../doc/html/ext/pb_ds/basic_hash_table.html | 436 - .../doc/html/ext/pb_ds/basic_hash_tag.html | 47 - .../pb_ds/basic_invalidation_guarantee.html | 26 - .../doc/html/ext/pb_ds/basic_tree.html | 660 -- ...e_assoc_container_const_node_iterator.html | 383 - .../doc/html/ext/pb_ds/basic_tree_tag.html | 47 - .../doc/html/ext/pb_ds/binary_heap_tag.html | 47 - ..._queue_random_int_push_timing_test_gcc.png | Bin 5357 -> 0 bytes ...ueue_random_int_push_timing_test_local.png | Bin 23669 -> 0 bytes ...queue_random_int_push_timing_test_msvc.png | Bin 5373 -> 0 bytes .../doc/html/ext/pb_ds/binomial_heap_tag.html | 47 - ...sh_max_collision_check_resize_trigger.html | 532 - ...c_hash_random_int_find_timing_test_gcc.png | Bin 7074 -> 0 bytes ...hash_random_int_find_timing_test_local.png | Bin 48189 -> 0 bytes ..._hash_random_int_find_timing_test_msvc.png | Bin 7235 -> 0 bytes ...dom_int_subscript_timing_test_find_gcc.png | Bin 6811 -> 0 bytes ...m_int_subscript_timing_test_find_local.png | Bin 47325 -> 0 bytes ...om_int_subscript_timing_test_find_msvc.png | Bin 7230 -> 0 bytes ...m_int_subscript_timing_test_insert_gcc.png | Bin 7636 -> 0 bytes ...int_subscript_timing_test_insert_local.png | Bin 46842 -> 0 bytes ..._int_subscript_timing_test_insert_msvc.png | Bin 6840 -> 0 bytes .../doc/html/ext/pb_ds/cc_hash_table.html | 724 -- .../doc/html/ext/pb_ds/cc_hash_tag.html | 47 - ...m_int_subscript_timing_test_insert_gcc.png | Bin 7355 -> 0 bytes ...int_subscript_timing_test_insert_local.png | Bin 42763 -> 0 bytes ..._int_subscript_timing_test_insert_msvc.png | Bin 7572 -> 0 bytes .../doc/html/ext/pb_ds/checked_by_tidy.gif | Bin 1367 -> 0 bytes libstdc++-v3/doc/html/ext/pb_ds/concepts.html | 118 - libstdc++-v3/doc/html/ext/pb_ds/contact.html | 22 - .../doc/html/ext/pb_ds/container_base.html | 1063 -- .../doc/html/ext/pb_ds/container_cd.png | Bin 11884 -> 0 bytes .../doc/html/ext/pb_ds/container_cd.svg | 418 - .../doc/html/ext/pb_ds/container_tag.html | 24 - .../doc/html/ext/pb_ds/counter_lu_policy.html | 259 - libstdc++-v3/doc/html/ext/pb_ds/design.html | 96 - .../ext/pb_ds/direct_mask_range_hashing.html | 167 - .../ext/pb_ds/direct_mod_range_hashing.html | 144 - .../doc/html/ext/pb_ds/disclaimer.html | 34 - libstdc++-v3/doc/html/ext/pb_ds/ds_gen.html | 344 - libstdc++-v3/doc/html/ext/pb_ds/examples.html | 24 - .../doc/html/ext/pb_ds/exceptions.html | 46 - ...p_hash_random_int_find_timing_test_gcc.png | Bin 6194 -> 0 bytes ...hash_random_int_find_timing_test_local.png | Bin 33303 -> 0 bytes ..._hash_random_int_find_timing_test_msvc.png | Bin 6140 -> 0 bytes ...dom_int_subscript_timing_test_find_gcc.png | Bin 6110 -> 0 bytes ...m_int_subscript_timing_test_find_local.png | Bin 33148 -> 0 bytes ...om_int_subscript_timing_test_find_msvc.png | Bin 6314 -> 0 bytes ...m_int_subscript_timing_test_insert_gcc.png | Bin 6763 -> 0 bytes ...int_subscript_timing_test_insert_local.png | Bin 34794 -> 0 bytes ..._int_subscript_timing_test_insert_msvc.png | Bin 6721 -> 0 bytes .../doc/html/ext/pb_ds/gp_hash_table.html | 891 -- .../doc/html/ext/pb_ds/gp_hash_tag.html | 47 - .../html/ext/pb_ds/hash_based_containers.html | 835 -- .../pb_ds/hash_exponential_size_policy.html | 183 - .../pb_ds/hash_load_check_resize_trigger.html | 583 - .../ext/pb_ds/hash_prime_size_policy.html | 149 - .../hash_random_int_erase_mem_usage_test.html | 173 - ...sh_random_int_erase_mem_usage_test_gcc.png | Bin 6356 -> 0 bytes ..._random_int_erase_mem_usage_test_local.png | Bin 31203 -> 0 bytes ...h_random_int_erase_mem_usage_test_msvc.png | Bin 6401 -> 0 bytes ...hash_random_int_find_find_timing_test.html | 247 - ...random_int_subscript_find_timing_test.html | 220 - ...ndom_int_subscript_insert_timing_test.html | 365 - .../pb_ds/hash_standard_resize_policy.html | 795 -- .../hash_text_find_find_timing_test.html | 164 - ...zlob_random_int_find_find_timing_test.html | 163 - ...h_zlob_random_int_find_timing_test_gcc.png | Bin 6910 -> 0 bytes ...zlob_random_int_find_timing_test_local.png | Bin 38509 -> 0 bytes ..._zlob_random_int_find_timing_test_msvc.png | Bin 7204 -> 0 bytes libstdc++-v3/doc/html/ext/pb_ds/index.html | 146 - .../doc/html/ext/pb_ds/insert_error.html | 53 - .../doc/html/ext/pb_ds/interface.html | 446 - .../doc/html/ext/pb_ds/introduction.html | 120 - .../ext/pb_ds/invalidation_guarantee_cd.png | Bin 8331 -> 0 bytes .../doc/html/ext/pb_ds/join_error.html | 48 - .../doc/html/ext/pb_ds/linear_probe_fn.html | 140 - .../doc/html/ext/pb_ds/list_update.html | 316 - .../doc/html/ext/pb_ds/list_update_tag.html | 47 - .../html/ext/pb_ds/lu_based_containers.html | 229 - libstdc++-v3/doc/html/ext/pb_ds/misc.html | 26 - .../doc/html/ext/pb_ds/motivation.html | 993 -- .../ext/pb_ds/move_to_front_lu_policy.html | 194 - .../multimap_text_find_timing_test_large.html | 215 - ...xt_find_timing_test_large_s2p_hash_gcc.png | Bin 6323 -> 0 bytes ..._find_timing_test_large_s2p_hash_local.png | Bin 30126 -> 0 bytes ...t_find_timing_test_large_s2p_hash_msvc.png | Bin 6490 -> 0 bytes ...xt_find_timing_test_large_s2p_tree_gcc.png | Bin 6284 -> 0 bytes ..._find_timing_test_large_s2p_tree_local.png | Bin 26937 -> 0 bytes ...t_find_timing_test_large_s2p_tree_msvc.png | Bin 6204 -> 0 bytes .../multimap_text_find_timing_test_small.html | 215 - ...xt_find_timing_test_small_s2p_hash_gcc.png | Bin 6237 -> 0 bytes ..._find_timing_test_small_s2p_hash_local.png | Bin 29768 -> 0 bytes ...t_find_timing_test_small_s2p_hash_msvc.png | Bin 6268 -> 0 bytes ...xt_find_timing_test_small_s2p_tree_gcc.png | Bin 6064 -> 0 bytes ..._find_timing_test_small_s2p_tree_local.png | Bin 26702 -> 0 bytes ...t_find_timing_test_small_s2p_tree_msvc.png | Bin 6012 -> 0 bytes ...imap_text_insert_mem_usage_test_large.html | 210 - ...sert_mem_usage_test_large_s2p_hash_gcc.png | Bin 6835 -> 0 bytes ...rt_mem_usage_test_large_s2p_hash_local.png | Bin 32571 -> 0 bytes ...ert_mem_usage_test_large_s2p_hash_msvc.png | Bin 6588 -> 0 bytes ...sert_mem_usage_test_large_s2p_tree_gcc.png | Bin 6778 -> 0 bytes ...rt_mem_usage_test_large_s2p_tree_local.png | Bin 29526 -> 0 bytes ...ert_mem_usage_test_large_s2p_tree_msvc.png | Bin 6535 -> 0 bytes ...imap_text_insert_mem_usage_test_small.html | 212 - ...sert_mem_usage_test_small_s2p_hash_gcc.png | Bin 6449 -> 0 bytes ...rt_mem_usage_test_small_s2p_hash_local.png | Bin 31758 -> 0 bytes ...ert_mem_usage_test_small_s2p_hash_msvc.png | Bin 6570 -> 0 bytes ...sert_mem_usage_test_small_s2p_tree_gcc.png | Bin 6419 -> 0 bytes ...rt_mem_usage_test_small_s2p_tree_local.png | Bin 29258 -> 0 bytes ...ert_mem_usage_test_small_s2p_tree_msvc.png | Bin 6569 -> 0 bytes ...ultimap_text_insert_timing_test_large.html | 212 - ..._insert_timing_test_large_s2p_hash_gcc.png | Bin 6380 -> 0 bytes ...nsert_timing_test_large_s2p_hash_local.png | Bin 30954 -> 0 bytes ...insert_timing_test_large_s2p_hash_msvc.png | Bin 6460 -> 0 bytes ..._insert_timing_test_large_s2p_tree_gcc.png | Bin 6204 -> 0 bytes ...nsert_timing_test_large_s2p_tree_local.png | Bin 27038 -> 0 bytes ...insert_timing_test_large_s2p_tree_msvc.png | Bin 6357 -> 0 bytes ...ultimap_text_insert_timing_test_small.html | 217 - ..._insert_timing_test_small_s2p_hash_gcc.png | Bin 6456 -> 0 bytes ...nsert_timing_test_small_s2p_hash_local.png | Bin 31038 -> 0 bytes ...insert_timing_test_small_s2p_hash_msvc.png | Bin 6547 -> 0 bytes ..._insert_timing_test_small_s2p_tree_gcc.png | Bin 6111 -> 0 bytes ...nsert_timing_test_small_s2p_tree_local.png | Bin 26974 -> 0 bytes ...insert_timing_test_small_s2p_tree_msvc.png | Bin 6430 -> 0 bytes .../doc/html/ext/pb_ds/null_hash_fn.html | 32 - .../doc/html/ext/pb_ds/null_lu_metadata.html | 25 - .../doc/html/ext/pb_ds/null_mapped_type.html | 25 - .../doc/html/ext/pb_ds/null_probe_fn.html | 29 - .../html/ext/pb_ds/null_tree_node_update.html | 101 - .../html/ext/pb_ds/null_trie_node_update.html | 102 - .../doc/html/ext/pb_ds/ov_tree_tag.html | 47 - .../doc/html/ext/pb_ds/pairing_heap_tag.html | 47 - ...ty_queue_text_push_pop_timing_test_gcc.png | Bin 5395 -> 0 bytes ..._queue_text_push_pop_timing_test_local.png | Bin 26303 -> 0 bytes ...y_queue_text_push_pop_timing_test_msvc.png | Bin 5514 -> 0 bytes ...iority_queue_text_push_timing_test_gcc.png | Bin 5678 -> 0 bytes ...rity_queue_text_push_timing_test_local.png | Bin 25070 -> 0 bytes ...ority_queue_text_push_timing_test_msvc.png | Bin 5878 -> 0 bytes .../doc/html/ext/pb_ds/pat_trie_tag.html | 47 - .../pb_ds/point_invalidation_guarantee.html | 51 - .../html/ext/pb_ds/pq_container_traits.html | 132 - .../doc/html/ext/pb_ds/pq_design.html | 381 - .../doc/html/ext/pb_ds/pq_examples.html | 54 - .../html/ext/pb_ds/pq_performance_tests.html | 332 - .../html/ext/pb_ds/pq_regression_tests.html | 52 - libstdc++-v3/doc/html/ext/pb_ds/pq_tests.html | 24 - .../doc/html/ext/pb_ds/prerequisites.html | 46 - .../doc/html/ext/pb_ds/priority_queue.html | 995 -- ...queue_random_int_push_pop_timing_test.html | 161 - ...ue_random_int_push_pop_timing_test_gcc.png | Bin 7350 -> 0 bytes ..._random_int_push_pop_timing_test_local.png | Bin 46818 -> 0 bytes ...e_random_int_push_pop_timing_test_msvc.png | Bin 7065 -> 0 bytes ...ity_queue_random_int_push_timing_test.html | 200 - ..._queue_random_int_push_timing_test_gcc.png | Bin 7021 -> 0 bytes ...ueue_random_int_push_timing_test_local.png | Bin 41433 -> 0 bytes ...queue_random_int_push_timing_test_msvc.png | Bin 7100 -> 0 bytes .../html/ext/pb_ds/priority_queue_tag.html | 47 - .../html/ext/pb_ds/priority_queue_tag_cd.png | Bin 10845 -> 0 bytes .../html/ext/pb_ds/priority_queue_tag_cd.svg | 368 - .../priority_queue_text_join_timing_test.html | 141 - ...iority_queue_text_join_timing_test_gcc.png | Bin 6458 -> 0 bytes ...rity_queue_text_join_timing_test_local.png | Bin 38222 -> 0 bytes ...ority_queue_text_join_timing_test_msvc.png | Bin 6461 -> 0 bytes ...ty_queue_text_modify_down_timing_test.html | 204 - ...queue_text_modify_down_timing_test_gcc.png | Bin 6788 -> 0 bytes ...eue_text_modify_down_timing_test_local.png | Bin 37071 -> 0 bytes ...ueue_text_modify_down_timing_test_msvc.png | Bin 6956 -> 0 bytes ...dify_down_timing_test_pairing_thin_gcc.png | Bin 5007 -> 0 bytes ...fy_down_timing_test_pairing_thin_local.png | Bin 22019 -> 0 bytes ...ify_down_timing_test_pairing_thin_msvc.png | Bin 4996 -> 0 bytes ...rity_queue_text_modify_up_timing_test.html | 222 - ...y_queue_text_modify_up_timing_test_gcc.png | Bin 6950 -> 0 bytes ...queue_text_modify_up_timing_test_local.png | Bin 36882 -> 0 bytes ..._queue_text_modify_up_timing_test_msvc.png | Bin 6983 -> 0 bytes ...modify_up_timing_test_pairing_thin_gcc.png | Bin 4867 -> 0 bytes ...dify_up_timing_test_pairing_thin_local.png | Bin 22214 -> 0 bytes ...odify_up_timing_test_pairing_thin_msvc.png | Bin 5216 -> 0 bytes ...riority_queue_text_pop_mem_usage_test.html | 143 - ...rity_queue_text_pop_mem_usage_test_gcc.png | Bin 6582 -> 0 bytes ...ty_queue_text_pop_mem_usage_test_local.png | Bin 31248 -> 0 bytes ...ity_queue_text_pop_mem_usage_test_msvc.png | Bin 6849 -> 0 bytes ...ority_queue_text_push_pop_timing_test.html | 209 - ...ty_queue_text_push_pop_timing_test_gcc.png | Bin 7072 -> 0 bytes ..._queue_text_push_pop_timing_test_local.png | Bin 46440 -> 0 bytes ...y_queue_text_push_pop_timing_test_msvc.png | Bin 7289 -> 0 bytes .../priority_queue_text_push_timing_test.html | 219 - ...iority_queue_text_push_timing_test_gcc.png | Bin 6832 -> 0 bytes ...rity_queue_text_push_timing_test_local.png | Bin 43334 -> 0 bytes ...ority_queue_text_push_timing_test_msvc.png | Bin 7266 -> 0 bytes .../html/ext/pb_ds/quadratic_probe_fn.html | 141 - ...dom_int_find_find_timing_test_tree_gcc.png | Bin 5960 -> 0 bytes ...m_int_find_find_timing_test_tree_local.png | Bin 30133 -> 0 bytes ...om_int_find_find_timing_test_tree_msvc.png | Bin 5636 -> 0 bytes .../pb_ds/range_invalidation_guarantee.html | 52 - .../doc/html/ext/pb_ds/rb_tree_tag.html | 47 - .../html/ext/pb_ds/rc_binomial_heap_tag.html | 47 - .../doc/html/ext/pb_ds/references.html | 258 - .../doc/html/ext/pb_ds/resize_error.html | 50 - .../doc/html/ext/pb_ds/sample_probe_fn.html | 152 - .../html/ext/pb_ds/sample_range_hashing.html | 172 - .../html/ext/pb_ds/sample_ranged_hash_fn.html | 171 - .../ext/pb_ds/sample_ranged_probe_fn.html | 178 - .../html/ext/pb_ds/sample_resize_policy.html | 413 - .../html/ext/pb_ds/sample_resize_trigger.html | 462 - .../html/ext/pb_ds/sample_size_policy.html | 163 - .../ext/pb_ds/sample_tree_node_update.html | 193 - .../ext/pb_ds/sample_trie_access_traits.html | 231 - .../ext/pb_ds/sample_trie_node_update.html | 194 - .../html/ext/pb_ds/sample_update_policy.html | 178 - .../doc/html/ext/pb_ds/splay_tree_tag.html | 47 - libstdc++-v3/doc/html/ext/pb_ds/tests.html | 24 - .../pb_ds/text_find_timing_test_hash_gcc.png | Bin 7013 -> 0 bytes .../text_find_timing_test_hash_local.png | Bin 39495 -> 0 bytes .../pb_ds/text_find_timing_test_hash_msvc.png | Bin 6932 -> 0 bytes .../text_find_timing_test_tree_like_gcc.png | Bin 6207 -> 0 bytes .../text_find_timing_test_tree_like_local.png | Bin 34994 -> 0 bytes .../text_find_timing_test_tree_like_msvc.png | Bin 6059 -> 0 bytes .../doc/html/ext/pb_ds/thin_heap_tag.html | 47 - libstdc++-v3/doc/html/ext/pb_ds/tree.html | 516 - .../html/ext/pb_ds/tree_based_containers.html | 358 - .../html/ext/pb_ds/tree_node_iterator.html | 143 - .../tree_order_statistics_node_update.html | 678 -- .../tree_order_statistics_timing_test.html | 118 - .../tree_order_statistics_timing_test_gcc.png | Bin 5698 -> 0 bytes ...ree_order_statistics_timing_test_local.png | Bin 29805 -> 0 bytes ...tree_order_statistics_timing_test_msvc.png | Bin 5684 -> 0 bytes ...tree_random_int_find_find_timing_test.html | 160 - .../pb_ds/tree_split_join_timing_test.html | 143 - .../pb_ds/tree_split_join_timing_test_gcc.png | Bin 5649 -> 0 bytes .../tree_split_join_timing_test_local.png | Bin 30904 -> 0 bytes .../tree_split_join_timing_test_msvc.png | Bin 5675 -> 0 bytes libstdc++-v3/doc/html/ext/pb_ds/tree_tag.html | 47 - .../tree_text_find_find_timing_test.html | 162 - .../pb_ds/tree_text_insert_timing_test.html | 226 - ..._text_insert_timing_test_node_tree_gcc.png | Bin 5373 -> 0 bytes ...ext_insert_timing_test_node_tree_local.png | Bin 28340 -> 0 bytes ...text_insert_timing_test_node_tree_msvc.png | Bin 5212 -> 0 bytes ...e_text_insert_timing_test_pat_trie_gcc.png | Bin 4895 -> 0 bytes ...text_insert_timing_test_pat_trie_local.png | Bin 22337 -> 0 bytes ..._text_insert_timing_test_pat_trie_msvc.png | Bin 4881 -> 0 bytes ...ext_insert_timing_test_vector_tree_gcc.png | Bin 5140 -> 0 bytes ...t_insert_timing_test_vector_tree_local.png | Bin 22889 -> 0 bytes ...xt_insert_timing_test_vector_tree_msvc.png | Bin 5131 -> 0 bytes .../tree_text_lor_find_find_timing_test.html | 126 - .../tree_text_lor_find_timing_test_gcc.png | Bin 6162 -> 0 bytes .../tree_text_lor_find_timing_test_local.png | Bin 28354 -> 0 bytes .../tree_text_lor_find_timing_test_msvc.png | Bin 5831 -> 0 bytes libstdc++-v3/doc/html/ext/pb_ds/trie.html | 489 - .../html/ext/pb_ds/trie_based_containers.html | 241 - .../ext/pb_ds/trie_const_node_iterator.html | 478 - .../html/ext/pb_ds/trie_node_iterator.html | 235 - .../trie_order_statistics_node_update.html | 770 -- .../pb_ds/trie_prefix_search_node_update.html | 628 -- .../ext/pb_ds/trie_string_access_traits.html | 400 - libstdc++-v3/doc/html/ext/pb_ds/trie_tag.html | 47 - .../html/ext/pb_ds/trivial_iterator_tag.html | 25 - libstdc++-v3/doc/html/ext/pb_ds/tutorial.html | 670 -- .../doc/html/ext/pb_ds/update_policy_cd.png | Bin 8570 -> 0 bytes .../images/pbds_balls_and_bins.png} | Bin ...ueue_random_int_push_timing_test_local.pdf | Bin 0 -> 31082 bytes ...ueue_random_int_push_timing_test_local.png | Bin 0 -> 27614 bytes ...ueue_random_int_push_timing_test_local.svg | 446 + ...hash_random_int_find_timing_test_local.pdf | Bin 0 -> 39761 bytes ...hash_random_int_find_timing_test_local.png | Bin 0 -> 51837 bytes ...hash_random_int_find_timing_test_local.svg | 597 + ...m_int_subscript_timing_test_find_local.pdf | Bin 0 -> 39732 bytes ...m_int_subscript_timing_test_find_local.png | Bin 0 -> 51821 bytes ...m_int_subscript_timing_test_find_local.svg | 597 + ...int_subscript_timing_test_insert_local.pdf | Bin 0 -> 39821 bytes ...int_subscript_timing_test_insert_local.png | Bin 0 -> 50828 bytes ...int_subscript_timing_test_insert_local.svg | 598 + .../images/pbds_container_tag_hierarchy.pdf | Bin 0 -> 9605 bytes .../images/pbds_container_tag_hierarchy.png | Bin 0 -> 85192 bytes .../images/pbds_container_tag_hierarchy.svg | 256 + .../pbds_different_underlying_dss_1.png} | Bin .../pbds_different_underlying_dss_2.png} | Bin .../images/pbds_embedded_lists_1.png} | Bin .../images/pbds_embedded_lists_2.png} | Bin .../images/pbds_embedded_lists_3.png} | Bin .../xml/images/pbds_exception_hierarchy.pdf | Bin 0 -> 7520 bytes .../xml/images/pbds_exception_hierarchy.png | Bin 0 -> 18245 bytes .../xml/images/pbds_exception_hierarchy.svg | 76 + ...hash_random_int_find_timing_test_local.pdf | Bin 0 -> 25639 bytes ...hash_random_int_find_timing_test_local.png | Bin 0 -> 36653 bytes ...hash_random_int_find_timing_test_local.svg | 369 + ...m_int_subscript_timing_test_find_local.pdf | Bin 0 -> 25687 bytes ...m_int_subscript_timing_test_find_local.png | Bin 0 -> 36441 bytes ...m_int_subscript_timing_test_find_local.svg | 369 + ...int_subscript_timing_test_insert_local.pdf | Bin 0 -> 25731 bytes ...int_subscript_timing_test_insert_local.png | Bin 0 -> 40307 bytes ...int_subscript_timing_test_insert_local.svg | 369 + .../images/pbds_hash_policy_cd.png} | Bin ..._random_int_erase_mem_usage_test_local.pdf | Bin 0 -> 26818 bytes ..._random_int_erase_mem_usage_test_local.png | Bin 0 -> 36361 bytes ..._random_int_erase_mem_usage_test_local.svg | 416 + .../pbds_hash_range_hashing_seq_diagram.png} | Bin .../pbds_hash_range_hashing_seq_diagram2.png} | Bin ...ds_hash_ranged_hash_range_hashing_fns.png} | Bin ...zlob_random_int_find_timing_test_local.pdf | Bin 0 -> 38457 bytes ...zlob_random_int_find_timing_test_local.png | Bin 0 -> 41600 bytes ...zlob_random_int_find_timing_test_local.svg | 560 + .../pbds_insert_resize_sequence_diagram1.png} | Bin .../pbds_insert_resize_sequence_diagram2.png} | Bin .../pbds_insert_resize_sequence_diagram3.png} | Bin .../pbds_invalidation_guarantee_erase.png} | Bin .../pbds_invalidation_tag_hierarchy.pdf | Bin 0 -> 6903 bytes .../pbds_invalidation_tag_hierarchy.png | Bin 0 -> 14178 bytes .../pbds_invalidation_tag_hierarchy.svg | 40 + .../images/pbds_list_update.png} | Bin ..._find_timing_test_large_s2p_hash_local.pdf | Bin 0 -> 16644 bytes ..._find_timing_test_large_s2p_hash_local.png | Bin 0 -> 32998 bytes ..._find_timing_test_large_s2p_hash_local.svg | 239 + ..._find_timing_test_large_s2p_tree_local.pdf | Bin 0 -> 19832 bytes ..._find_timing_test_large_s2p_tree_local.png | Bin 0 -> 30311 bytes ..._find_timing_test_large_s2p_tree_local.svg | 281 + ..._find_timing_test_small_s2p_hash_local.pdf | Bin 0 -> 16636 bytes ..._find_timing_test_small_s2p_hash_local.png | Bin 0 -> 32098 bytes ..._find_timing_test_small_s2p_hash_local.svg | 239 + ..._find_timing_test_small_s2p_tree_local.pdf | Bin 0 -> 19903 bytes ..._find_timing_test_small_s2p_tree_local.png | Bin 0 -> 29151 bytes ..._find_timing_test_small_s2p_tree_local.svg | 281 + ...rt_mem_usage_test_large_s2p_hash_local.pdf | Bin 0 -> 16669 bytes ...rt_mem_usage_test_large_s2p_hash_local.png | Bin 0 -> 36856 bytes ...rt_mem_usage_test_large_s2p_hash_local.svg | 244 + ...rt_mem_usage_test_large_s2p_tree_local.pdf | Bin 0 -> 19749 bytes ...rt_mem_usage_test_large_s2p_tree_local.png | Bin 0 -> 34656 bytes ...rt_mem_usage_test_large_s2p_tree_local.svg | 286 + ...rt_mem_usage_test_small_s2p_hash_local.pdf | Bin 0 -> 16686 bytes ...rt_mem_usage_test_small_s2p_hash_local.png | Bin 0 -> 35454 bytes ...rt_mem_usage_test_small_s2p_hash_local.svg | 253 + ...rt_mem_usage_test_small_s2p_tree_local.pdf | Bin 0 -> 19893 bytes ...rt_mem_usage_test_small_s2p_tree_local.png | Bin 0 -> 33210 bytes ...rt_mem_usage_test_small_s2p_tree_local.svg | 295 + ...nsert_timing_test_large_s2p_hash_local.pdf | Bin 0 -> 16554 bytes ...nsert_timing_test_large_s2p_hash_local.png | Bin 0 -> 33644 bytes ...nsert_timing_test_large_s2p_hash_local.svg | 239 + ...nsert_timing_test_large_s2p_tree_local.pdf | Bin 0 -> 19817 bytes ...nsert_timing_test_large_s2p_tree_local.png | Bin 0 -> 29953 bytes ...nsert_timing_test_large_s2p_tree_local.svg | 281 + ...nsert_timing_test_small_s2p_hash_local.pdf | Bin 0 -> 16651 bytes ...nsert_timing_test_small_s2p_hash_local.png | Bin 0 -> 34008 bytes ...nsert_timing_test_small_s2p_hash_local.svg | 239 + ...nsert_timing_test_small_s2p_tree_local.pdf | Bin 0 -> 19813 bytes ...nsert_timing_test_small_s2p_tree_local.png | Bin 0 -> 30480 bytes ...nsert_timing_test_small_s2p_tree_local.svg | 281 + .../images/pbds_node_invariants.png} | Bin ..._queue_text_push_pop_timing_test_local.pdf | Bin 0 -> 25649 bytes ..._queue_text_push_pop_timing_test_local.png | Bin 0 -> 29097 bytes ..._queue_text_push_pop_timing_test_local.svg | 369 + ...rity_queue_text_push_timing_test_local.pdf | Bin 0 -> 33861 bytes ...rity_queue_text_push_timing_test_local.png | Bin 0 -> 31084 bytes ...rity_queue_text_push_timing_test_local.svg | 483 + .../images/pbds_pat_trie.png} | Bin .../images/pbds_point_iterator_hierarchy.png} | Bin .../pbds_point_iterators_range_ops_1.png} | Bin .../pbds_point_iterators_range_ops_2.png} | Bin ...riority_queue_different_underlying_dss.png | Bin 0 -> 15660 bytes ..._random_int_push_pop_timing_test_local.pdf | Bin 0 -> 55035 bytes ..._random_int_push_pop_timing_test_local.png | Bin 0 -> 37501 bytes ..._random_int_push_pop_timing_test_local.svg | 825 ++ ...ueue_random_int_push_timing_test_local.pdf | Bin 0 -> 54729 bytes ...ueue_random_int_push_timing_test_local.png | Bin 0 -> 36023 bytes ...ueue_random_int_push_timing_test_local.svg | 825 ++ .../pbds_priority_queue_tag_hierarchy.pdf | Bin 0 -> 7842 bytes .../pbds_priority_queue_tag_hierarchy.png | Bin 0 -> 29346 bytes .../pbds_priority_queue_tag_hierarchy.svg | 88 + ...rity_queue_text_join_timing_test_local.pdf | Bin 0 -> 54761 bytes ...rity_queue_text_join_timing_test_local.png | Bin 0 -> 41658 bytes ...rity_queue_text_join_timing_test_local.svg | 825 ++ ...eue_text_modify_down_timing_test_local.pdf | Bin 0 -> 54820 bytes ...eue_text_modify_down_timing_test_local.png | Bin 0 -> 37178 bytes ...eue_text_modify_down_timing_test_local.svg | 793 ++ ...fy_down_timing_test_pairing_thin_local.pdf | Bin 0 -> 18308 bytes ...fy_down_timing_test_pairing_thin_local.png | Bin 0 -> 23171 bytes ...fy_down_timing_test_pairing_thin_local.svg | 223 + ...queue_text_modify_up_timing_test_local.pdf | Bin 0 -> 54587 bytes ...queue_text_modify_up_timing_test_local.png | Bin 0 -> 37140 bytes ...queue_text_modify_up_timing_test_local.svg | 793 ++ ...dify_up_timing_test_pairing_thin_local.pdf | Bin 0 -> 18288 bytes ...dify_up_timing_test_pairing_thin_local.png | Bin 0 -> 22472 bytes ...dify_up_timing_test_pairing_thin_local.svg | 224 + ...ty_queue_text_pop_mem_usage_test_local.pdf | Bin 0 -> 54012 bytes ...ty_queue_text_pop_mem_usage_test_local.png | Bin 0 -> 36500 bytes ...ty_queue_text_pop_mem_usage_test_local.svg | 835 ++ ..._queue_text_push_pop_timing_test_local.pdf | Bin 0 -> 54892 bytes ..._queue_text_push_pop_timing_test_local.png | Bin 0 -> 36208 bytes ..._queue_text_push_pop_timing_test_local.svg | 825 ++ ...rity_queue_text_push_timing_test_local.pdf | Bin 0 -> 54253 bytes ...rity_queue_text_push_timing_test_local.png | Bin 0 -> 36629 bytes ...rity_queue_text_push_timing_test_local.svg | 825 ++ .../pbds_rationale_null_node_updator.png} | Bin .../images/pbds_resize_policy_cd.png} | Bin .../pbds_restoring_node_invariants.png} | Bin .../images/pbds_simple_list.png} | Bin .../pbds_text_find_timing_test_hash_local.pdf | Bin 0 -> 31897 bytes .../pbds_text_find_timing_test_hash_local.png | Bin 0 -> 41835 bytes .../pbds_text_find_timing_test_hash_local.svg | 483 + ..._text_find_timing_test_tree_like_local.pdf | Bin 0 -> 33986 bytes ..._text_find_timing_test_tree_like_local.png | Bin 0 -> 37806 bytes ..._text_find_timing_test_tree_like_local.svg | 542 + .../images/pbds_tree_node_invalidations.png} | Bin .../xml/images/pbds_tree_node_invariants.png | Bin 0 -> 16553 bytes .../pbds_tree_node_updator_policy_cd.png} | Bin ...ree_order_statistics_timing_test_local.pdf | Bin 0 -> 30831 bytes ...ree_order_statistics_timing_test_local.png | Bin 0 -> 32950 bytes ...ree_order_statistics_timing_test_local.svg | 446 + ...pbds_tree_split_join_timing_test_local.pdf | Bin 0 -> 32608 bytes ...pbds_tree_split_join_timing_test_local.png | Bin 0 -> 34337 bytes ...pbds_tree_split_join_timing_test_local.svg | 505 + ...ext_insert_timing_test_node_tree_local.pdf | Bin 0 -> 30918 bytes ...ext_insert_timing_test_node_tree_local.png | Bin 0 -> 31892 bytes ...ext_insert_timing_test_node_tree_local.svg | 446 + ...text_insert_timing_test_pat_trie_local.pdf | Bin 0 -> 18375 bytes ...text_insert_timing_test_pat_trie_local.png | Bin 0 -> 25976 bytes ...text_insert_timing_test_pat_trie_local.svg | 255 + ...t_insert_timing_test_vector_tree_local.pdf | Bin 0 -> 18663 bytes ...t_insert_timing_test_vector_tree_local.png | Bin 0 -> 26412 bytes ...t_insert_timing_test_vector_tree_local.svg | 277 + ...s_tree_text_lor_find_timing_test_local.pdf | Bin 0 -> 32567 bytes ...s_tree_text_lor_find_timing_test_local.png | Bin 0 -> 36553 bytes ...s_tree_text_lor_find_timing_test_local.svg | 505 + .../pbds_trie_node_updator_policy_cd.png} | Bin .../images/pbds_update_seq_diagram.png} | Bin .../doc/xml/manual/bitmap_allocator.xml | 6 +- libstdc++-v3/doc/xml/manual/extensions.xml | 117 +- libstdc++-v3/doc/xml/manual/mt_allocator.xml | 6 +- .../doc/xml/manual/policy_data_structures.xml | 6584 +++++++++++ libstdc++-v3/doc/xml/manual/spine.xml | 1 + .../manual/test_policy_data_structures.xml | 9774 +++++++++++++++++ libstdc++-v3/doc/xml/spine.xml | 1 + 444 files changed, 36092 insertions(+), 30433 deletions(-) delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/PythonPoweredSmall.gif delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/acks.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/assoc_container_tag_cd.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/assoc_container_tag_cd.svg delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/assoc_container_traits.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/assoc_design.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/assoc_examples.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/assoc_performance_tests.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/assoc_regression_tests.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/assoc_tests.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/associative_container_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/basic_hash_table.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/basic_hash_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/basic_invalidation_guarantee.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/basic_tree.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/basic_tree_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/binary_heap_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/binomial_heap_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_table.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/cc_hash_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/checked_by_tidy.gif delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/concepts.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/contact.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/container_base.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/container_cd.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/container_cd.svg delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/container_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/counter_lu_policy.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/design.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/direct_mask_range_hashing.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/direct_mod_range_hashing.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/disclaimer.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/ds_gen.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/examples.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/exceptions.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_table.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/gp_hash_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_based_containers.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_exponential_size_policy.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_load_check_resize_trigger.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_prime_size_policy.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_find_find_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_standard_resize_policy.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_text_find_find_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/index.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/insert_error.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/interface.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/introduction.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/invalidation_guarantee_cd.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/join_error.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/linear_probe_fn.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/list_update.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/list_update_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/lu_based_containers.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/misc.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/motivation.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/move_to_front_lu_policy.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/null_hash_fn.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/null_lu_metadata.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/null_mapped_type.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/null_probe_fn.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/null_tree_node_update.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/null_trie_node_update.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/ov_tree_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pairing_heap_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pat_trie_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/point_invalidation_guarantee.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pq_container_traits.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pq_design.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pq_examples.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pq_performance_tests.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pq_regression_tests.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/pq_tests.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/prerequisites.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag_cd.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag_cd.svg delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/quadratic_probe_fn.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/range_invalidation_guarantee.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/rb_tree_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/rc_binomial_heap_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/references.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/resize_error.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_probe_fn.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_range_hashing.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_ranged_hash_fn.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_ranged_probe_fn.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_resize_policy.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_resize_trigger.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_size_policy.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_tree_node_update.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_trie_access_traits.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_trie_node_update.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/sample_update_policy.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/splay_tree_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tests.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_hash_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_hash_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_hash_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_tree_like_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/thin_heap_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_based_containers.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_node_iterator.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_node_update.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_random_int_find_find_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_find_find_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trie.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trie_based_containers.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trie_const_node_iterator.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trie_node_iterator.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trie_order_statistics_node_update.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trie_prefix_search_node_update.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trie_string_access_traits.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trie_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/trivial_iterator_tag.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/tutorial.html delete mode 100644 libstdc++-v3/doc/html/ext/pb_ds/update_policy_cd.png rename libstdc++-v3/doc/{html/ext/pb_ds/balls_and_bins.png => xml/images/pbds_balls_and_bins.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_binary_priority_queue_random_int_push_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_binary_priority_queue_random_int_push_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_binary_priority_queue_random_int_push_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_find_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_find_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_find_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_container_tag_hierarchy.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_container_tag_hierarchy.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_container_tag_hierarchy.svg rename libstdc++-v3/doc/{html/ext/pb_ds/different_underlying_dss.png => xml/images/pbds_different_underlying_dss_1.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/pq_different_underlying_dss.png => xml/images/pbds_different_underlying_dss_2.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/embedded_lists_1.png => xml/images/pbds_embedded_lists_1.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/embedded_lists_2.png => xml/images/pbds_embedded_lists_2.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/embedded_lists_3.png => xml/images/pbds_embedded_lists_3.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_exception_hierarchy.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_exception_hierarchy.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_exception_hierarchy.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_find_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_find_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_find_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_find_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_find_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_find_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_insert_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_insert_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_insert_local.svg rename libstdc++-v3/doc/{html/ext/pb_ds/hash_policy_cd.png => xml/images/pbds_hash_policy_cd.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.svg rename libstdc++-v3/doc/{html/ext/pb_ds/hash_range_hashing_seq_diagram.png => xml/images/pbds_hash_range_hashing_seq_diagram.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/hash_range_hashing_seq_diagram2.png => xml/images/pbds_hash_range_hashing_seq_diagram2.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png => xml/images/pbds_hash_ranged_hash_range_hashing_fns.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.svg rename libstdc++-v3/doc/{html/ext/pb_ds/insert_resize_sequence_diagram1.png => xml/images/pbds_insert_resize_sequence_diagram1.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/insert_resize_sequence_diagram2.png => xml/images/pbds_insert_resize_sequence_diagram2.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/insert_resize_sequence_diagram3.png => xml/images/pbds_insert_resize_sequence_diagram3.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/invalidation_guarantee_erase.png => xml/images/pbds_invalidation_guarantee_erase.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.svg rename libstdc++-v3/doc/{html/ext/pb_ds/lu.png => xml/images/pbds_list_update.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_hash_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_hash_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_hash_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_hash_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_hash_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_hash_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.svg rename libstdc++-v3/doc/{html/ext/pb_ds/node_invariants.png => xml/images/pbds_node_invariants.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_timing_test_local.svg rename libstdc++-v3/doc/{html/ext/pb_ds/pat_trie.png => xml/images/pbds_pat_trie.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/point_iterators_cd.png => xml/images/pbds_point_iterator_hierarchy.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/point_iterators_range_ops_1.png => xml/images/pbds_point_iterators_range_ops_1.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/point_iterators_range_ops_2.png => xml/images/pbds_point_iterators_range_ops_2.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_different_underlying_dss.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_pop_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_pop_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_pop_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_tag_hierarchy.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_tag_hierarchy.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_tag_hierarchy.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_pop_mem_usage_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_pop_mem_usage_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_pop_mem_usage_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_pop_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_pop_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_pop_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.svg rename libstdc++-v3/doc/{html/ext/pb_ds/rationale_null_node_updator.png => xml/images/pbds_rationale_null_node_updator.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/resize_policy_cd.png => xml/images/pbds_resize_policy_cd.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/restoring_node_invariants.png => xml/images/pbds_restoring_node_invariants.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/simple_list.png => xml/images/pbds_simple_list.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_tree_like_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_tree_like_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_tree_like_local.svg rename libstdc++-v3/doc/{html/ext/pb_ds/node_invariant_invalidations.png => xml/images/pbds_tree_node_invalidations.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_node_invariants.png rename libstdc++-v3/doc/{html/ext/pb_ds/tree_node_updator_policy_cd.png => xml/images/pbds_tree_node_updator_policy_cd.png} (100%) create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_order_statistics_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_order_statistics_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_order_statistics_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_split_join_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_split_join_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_split_join_timing_test_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_node_tree_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_node_tree_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_node_tree_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_vector_tree_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_vector_tree_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_vector_tree_local.svg create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find_timing_test_local.pdf create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find_timing_test_local.png create mode 100644 libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find_timing_test_local.svg rename libstdc++-v3/doc/{html/ext/pb_ds/trie_node_updator_policy_cd.png => xml/images/pbds_trie_node_updator_policy_cd.png} (100%) rename libstdc++-v3/doc/{html/ext/pb_ds/update_seq_diagram.png => xml/images/pbds_update_seq_diagram.png} (100%) create mode 100644 libstdc++-v3/doc/xml/manual/policy_data_structures.xml create mode 100644 libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 32f895d2254d..3a24ca4bc6f6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,413 @@ +2011-07-29 Benjamin Kosnik + + Docbook conversion of existing ext/pb_ds documentation. + * doc/Makefile.am (xml_sources_manual): Add + policy_data_structures.xml and + test_policy_data_structures.xml. + (stamp-html-copy): Remove special-case for ext/pb_ds directory. + (XSLTPROC_FLAGS): Split into XSLT_FLAGS and XSLT_PARAM, use. + * doc/Makefile.in: Regenerate. + * doc/xml/manual/policy_data_structures.xml: New, adapted from + previous html-only instance in doc/html/ext/pb_ds. + * doc/xml/manual/test_policy_data_structures.xml: New, same as above. + + * doc/xml/spine.xml: Update copyright. + * doc/xml/manual/spine.xml: Same. + * doc/xml/manual/extensions.xml: Adjust set, chapter, sections. + * doc/xml/manual/bitmap_allocator.xml: Same. + * doc/xml/manual/mt_allocator.xml: Same. + + Populate image directory. + * doc/xml/images/(pbds_balls_and_bins.png, + pbds_binary_priority_queue_random_int_push_timing_test_local.pdf, + pbds_binary_priority_queue_random_int_push_timing_test_local.png, + pbds_binary_priority_queue_random_int_push_timing_test_local.svg, + pbds_cc_hash_random_int_find_timing_test_local.pdf, + pbds_cc_hash_random_int_find_timing_test_local.png, + pbds_cc_hash_random_int_find_timing_test_local.svg, + pbds_cc_hash_random_int_subscript_timing_test_find_local.pdf, + pbds_cc_hash_random_int_subscript_timing_test_find_local.png, + pbds_cc_hash_random_int_subscript_timing_test_find_local.svg, + pbds_cc_hash_random_int_subscript_timing_test_insert_local.pdf, + pbds_cc_hash_random_int_subscript_timing_test_insert_local.png, + pbds_cc_hash_random_int_subscript_timing_test_insert_local.svg, + pbds_container_tag_hierarchy.pdf, + pbds_container_tag_hierarchy.png, + pbds_container_tag_hierarchy.svg, + pbds_different_underlying_dss_1.png, + pbds_different_underlying_dss_2.png, + pbds_embedded_lists_1.png, pbds_embedded_lists_2.png, + pbds_embedded_lists_3.png, pbds_exception_hierarchy.pdf, + pbds_exception_hierarchy.png, pbds_exception_hierarchy.svg, + pbds_gp_hash_random_int_find_timing_test_local.pdf, + pbds_gp_hash_random_int_find_timing_test_local.png, + pbds_gp_hash_random_int_find_timing_test_local.svg, + pbds_gp_hash_random_int_subscript_timing_test_find_local.pdf, + pbds_gp_hash_random_int_subscript_timing_test_find_local.png, + pbds_gp_hash_random_int_subscript_timing_test_find_local.svg, + pbds_gp_hash_random_int_subscript_timing_test_insert_local.pdf, + pbds_gp_hash_random_int_subscript_timing_test_insert_local.png, + pbds_gp_hash_random_int_subscript_timing_test_insert_local.svg, + pbds_hash_policy_cd.png, + pbds_hash_random_int_erase_mem_usage_test_local.pdf, + pbds_hash_random_int_erase_mem_usage_test_local.png, + pbds_hash_random_int_erase_mem_usage_test_local.svg, + pbds_hash_ranged_hash_range_hashing_fns.png, + pbds_hash_range_hashing_seq_diagram2.png, + pbds_hash_range_hashing_seq_diagram.png, + pbds_hash_zlob_random_int_find_timing_test_local.pdf, + pbds_hash_zlob_random_int_find_timing_test_local.png, + pbds_hash_zlob_random_int_find_timing_test_local.svg, + pbds_insert_resize_sequence_diagram1.png, + pbds_insert_resize_sequence_diagram2.png, + pbds_insert_resize_sequence_diagram3.png, + pbds_invalidation_guarantee_erase.png, + pbds_invalidation_tag_hierarchy.pdf, + pbds_invalidation_tag_hierarchy.png, + pbds_invalidation_tag_hierarchy.svg, pbds_list_update.png, + pbds_multimap_text_find_timing_test_large_s2p_hash_local.pdf, + pbds_multimap_text_find_timing_test_large_s2p_hash_local.png, + pbds_multimap_text_find_timing_test_large_s2p_hash_local.svg, + pbds_multimap_text_find_timing_test_large_s2p_tree_local.pdf, + pbds_multimap_text_find_timing_test_large_s2p_tree_local.png, + pbds_multimap_text_find_timing_test_large_s2p_tree_local.svg, + pbds_multimap_text_find_timing_test_small_s2p_hash_local.pdf, + pbds_multimap_text_find_timing_test_small_s2p_hash_local.png, + pbds_multimap_text_find_timing_test_small_s2p_hash_local.svg, + pbds_multimap_text_find_timing_test_small_s2p_tree_local.pdf, + pbds_multimap_text_find_timing_test_small_s2p_tree_local.png, + pbds_multimap_text_find_timing_test_small_s2p_tree_local.svg, + pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.pdf, + pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.png, + pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.svg, + pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.pdf, + pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.png, + pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.svg, + pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.pdf, + pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.png, + pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.svg, + pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.pdf, + pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.png, + pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.svg, + pbds_multimap_text_insert_timing_test_large_s2p_hash_local.pdf, + pbds_multimap_text_insert_timing_test_large_s2p_hash_local.png, + pbds_multimap_text_insert_timing_test_large_s2p_hash_local.svg, + pbds_multimap_text_insert_timing_test_large_s2p_tree_local.pdf, + pbds_multimap_text_insert_timing_test_large_s2p_tree_local.png, + pbds_multimap_text_insert_timing_test_large_s2p_tree_local.svg, + pbds_multimap_text_insert_timing_test_small_s2p_hash_local.pdf, + pbds_multimap_text_insert_timing_test_small_s2p_hash_local.png, + pbds_multimap_text_insert_timing_test_small_s2p_hash_local.svg, + pbds_multimap_text_insert_timing_test_small_s2p_tree_local.pdf, + pbds_multimap_text_insert_timing_test_small_s2p_tree_local.png, + pbds_multimap_text_insert_timing_test_small_s2p_tree_local.svg, + pbds_node_invariants.png, + pbds_pairing_priority_queue_text_push_pop_timing_test_local.pdf, + pbds_pairing_priority_queue_text_push_pop_timing_test_local.png, + pbds_pairing_priority_queue_text_push_pop_timing_test_local.svg, + pbds_pairing_priority_queue_text_push_timing_test_local.pdf, + pbds_pairing_priority_queue_text_push_timing_test_local.png, + pbds_pairing_priority_queue_text_push_timing_test_local.svg, + pbds_pat_trie.png, pbds_point_iterator_hierarchy.png, + pbds_point_iterators_range_ops_1.png, + pbds_point_iterators_range_ops_2.png, + pbds_priority_queue_different_underlying_dss.png, + pbds_priority_queue_random_int_push_pop_timing_test_local.pdf, + pbds_priority_queue_random_int_push_pop_timing_test_local.png, + pbds_priority_queue_random_int_push_pop_timing_test_local.svg, + pbds_priority_queue_random_int_push_timing_test_local.pdf, + pbds_priority_queue_random_int_push_timing_test_local.png, + pbds_priority_queue_random_int_push_timing_test_local.svg, + pbds_priority_queue_tag_hierarchy.pdf, + pbds_priority_queue_tag_hierarchy.png, + pbds_priority_queue_tag_hierarchy.svg, + pbds_priority_queue_text_join_timing_test_local.pdf, + pbds_priority_queue_text_join_timing_test_local.png, + pbds_priority_queue_text_join_timing_test_local.svg, + pbds_priority_queue_text_modify_down_timing_test_local.pdf, + pbds_priority_queue_text_modify_down_timing_test_local.png, + pbds_priority_queue_text_modify_down_timing_test_local.svg, + pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.pdf, + pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.png, + pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.svg, + pbds_priority_queue_text_modify_up_timing_test_local.pdf, + pbds_priority_queue_text_modify_up_timing_test_local.png, + pbds_priority_queue_text_modify_up_timing_test_local.svg, + pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.pdf, + pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.png, + pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.svg, + pbds_priority_queue_text_pop_mem_usage_test_local.pdf, + pbds_priority_queue_text_pop_mem_usage_test_local.png, + pbds_priority_queue_text_pop_mem_usage_test_local.svg, + pbds_priority_queue_text_push_pop_timing_test_local.pdf, + pbds_priority_queue_text_push_pop_timing_test_local.png, + pbds_priority_queue_text_push_pop_timing_test_local.svg, + pbds_priority_queue_text_push_timing_test_local.pdf, + pbds_priority_queue_text_push_timing_test_local.png, + pbds_priority_queue_text_push_timing_test_local.svg, + pbds_rationale_null_node_updator.png, + pbds_resize_policy_cd.png, pbds_restoring_node_invariants.png, + pbds_simple_list.png, + pbds_text_find_timing_test_hash_local.pdf, + pbds_text_find_timing_test_hash_local.png, + pbds_text_find_timing_test_hash_local.svg, + pbds_text_find_timing_test_tree_like_local.pdf, + pbds_text_find_timing_test_tree_like_local.png, + pbds_text_find_timing_test_tree_like_local.svg, + pbds_tree_node_invalidations.png, + pbds_tree_node_invariants.png, + pbds_tree_node_updator_policy_cd.png, + pbds_tree_order_statistics_timing_test_local.pdf, + pbds_tree_order_statistics_timing_test_local.png, + pbds_tree_order_statistics_timing_test_local.svg, + pbds_tree_split_join_timing_test_local.pdf, + pbds_tree_split_join_timing_test_local.png, + pbds_tree_split_join_timing_test_local.svg, + pbds_tree_text_insert_timing_test_node_tree_local.pdf, + pbds_tree_text_insert_timing_test_node_tree_local.png, + pbds_tree_text_insert_timing_test_node_tree_local.svg, + pbds_tree_text_insert_timing_test_pat_trie_local.pdf, + pbds_tree_text_insert_timing_test_pat_trie_local.png, + pbds_tree_text_insert_timing_test_pat_trie_local.svg, + pbds_tree_text_insert_timing_test_vector_tree_local.pdf, + pbds_tree_text_insert_timing_test_vector_tree_local.png, + pbds_tree_text_insert_timing_test_vector_tree_local.svg, + pbds_tree_text_lor_find_timing_test_local.pdf, + pbds_tree_text_lor_find_timing_test_local.png, + pbds_tree_text_lor_find_timing_test_local.svg, + pbds_trie_node_updator_policy_cd.png, + pbds_update_seq_diagram.png): Add. + + * doc/html/ext/pb_ds: Remove. + * doc/html/ext/pb_ds/(acks.html, assoc_container_tag_cd.png, + assoc_container_tag_cd.svg, assoc_container_traits.html, + assoc_design.html, assoc_examples.html, + associative_container_tag.html, assoc_performance_tests.html, + assoc_regression_tests.html, assoc_tests.html, + balls_and_bins.png, basic_hash_table.html, + basic_hash_tag.html, basic_invalidation_guarantee.html, + basic_tree_assoc_container_const_node_iterator.html, + basic_tree.html, basic_tree_tag.html, binary_heap_tag.html, + binary_priority_queue_random_int_push_timing_test_gcc.png, + binary_priority_queue_random_int_push_timing_test_local.png, + binary_priority_queue_random_int_push_timing_test_msvc.png, + binomial_heap_tag.html, + ccgp_hash_random_int_subscript_timing_test_insert_gcc.png, + ccgp_hash_random_int_subscript_timing_test_insert_local.png, + ccgp_hash_random_int_subscript_timing_test_insert_msvc.png, + cc_hash_max_collision_check_resize_trigger.html, + cc_hash_random_int_find_timing_test_gcc.png, + cc_hash_random_int_find_timing_test_local.png, + cc_hash_random_int_find_timing_test_msvc.png, + cc_hash_random_int_subscript_timing_test_find_gcc.png, + cc_hash_random_int_subscript_timing_test_find_local.png, + cc_hash_random_int_subscript_timing_test_find_msvc.png, + cc_hash_random_int_subscript_timing_test_insert_gcc.png, + cc_hash_random_int_subscript_timing_test_insert_local.png, + cc_hash_random_int_subscript_timing_test_insert_msvc.png, + cc_hash_table.html, cc_hash_tag.html, checked_by_tidy.gif + concepts.html, contact.html, container_base.html, + container_cd.png, container_cd.svg, container_tag.html, + counter_lu_policy.html, design.html, + different_underlying_dss.png, direct_mask_range_hashing.html, + direct_mod_range_hashing.html, disclaimer.html, ds_gen.html, + embedded_lists_1.png, embedded_lists_2.png, + embedded_lists_3.png, examples.html, exceptions.html, + gp_hash_random_int_find_timing_test_gcc.png, + gp_hash_random_int_find_timing_test_local.png, + gp_hash_random_int_find_timing_test_msvc.png, + gp_hash_random_int_subscript_timing_test_find_gcc.png, + gp_hash_random_int_subscript_timing_test_find_local.png, + gp_hash_random_int_subscript_timing_test_find_msvc.png, + gp_hash_random_int_subscript_timing_test_insert_gcc.png, + gp_hash_random_int_subscript_timing_test_insert_local.png, + gp_hash_random_int_subscript_timing_test_insert_msvc.png, + gp_hash_table.html, gp_hash_tag.html, + hash_based_containers.html, hash_exponential_size_policy.html, + hash_load_check_resize_trigger.html, hash_policy_cd.png, + hash_prime_size_policy.html, + hash_random_int_erase_mem_usage_test_gcc.png, + hash_random_int_erase_mem_usage_test.html, + hash_random_int_erase_mem_usage_test_local.png, + hash_random_int_erase_mem_usage_test_msvc.png, + hash_random_int_find_find_timing_test.html, + hash_random_int_subscript_find_timing_test.html, + hash_random_int_subscript_insert_timing_test.html, + hash_ranged_hash_range_hashing_fns.png, + hash_range_hashing_seq_diagram2.png, + hash_range_hashing_seq_diagram.png, + hash_standard_resize_policy.html, + hash_text_find_find_timing_test.html, + hash_zlob_random_int_find_find_timing_test.html, + hash_zlob_random_int_find_timing_test_gcc.png, + hash_zlob_random_int_find_timing_test_local.png, + hash_zlob_random_int_find_timing_test_msvc.png, index.html, + insert_error.html, insert_resize_sequence_diagram1.png, + insert_resize_sequence_diagram2.png, + insert_resize_sequence_diagram3.png, interface.html, + introduction.html, invalidation_guarantee_cd.png, + invalidation_guarantee_erase.png, join_error.html, + linear_probe_fn.html, list_update.html, list_update_tag.html, + lu_based_containers.html, lu.png, misc.html, motivation.html, + move_to_front_lu_policy.html, + multimap_text_find_timing_test_large.html, + multimap_text_find_timing_test_large_s2p_hash_gcc.png, + multimap_text_find_timing_test_large_s2p_hash_local.png, + multimap_text_find_timing_test_large_s2p_hash_msvc.png, + multimap_text_find_timing_test_large_s2p_tree_gcc.png, + multimap_text_find_timing_test_large_s2p_tree_local.png, + multimap_text_find_timing_test_large_s2p_tree_msvc.png, + multimap_text_find_timing_test_small.html, + multimap_text_find_timing_test_small_s2p_hash_gcc.png, + multimap_text_find_timing_test_small_s2p_hash_local.png, + multimap_text_find_timing_test_small_s2p_hash_msvc.png, + multimap_text_find_timing_test_small_s2p_tree_gcc.png, + multimap_text_find_timing_test_small_s2p_tree_local.png, + multimap_text_find_timing_test_small_s2p_tree_msvc.png, + multimap_text_insert_mem_usage_test_large.html, + multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png, + multimap_text_insert_mem_usage_test_large_s2p_hash_local.png, + multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png, + multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png, + multimap_text_insert_mem_usage_test_large_s2p_tree_local.png, + multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png, + multimap_text_insert_mem_usage_test_small.html, + multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png, + multimap_text_insert_mem_usage_test_small_s2p_hash_local.png, + multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png, + multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png, + multimap_text_insert_mem_usage_test_small_s2p_tree_local.png, + multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png, + multimap_text_insert_timing_test_large.html, + multimap_text_insert_timing_test_large_s2p_hash_gcc.png, + multimap_text_insert_timing_test_large_s2p_hash_local.png, + multimap_text_insert_timing_test_large_s2p_hash_msvc.png, + multimap_text_insert_timing_test_large_s2p_tree_gcc.png, + multimap_text_insert_timing_test_large_s2p_tree_local.png, + multimap_text_insert_timing_test_large_s2p_tree_msvc.png, + multimap_text_insert_timing_test_small.html, + multimap_text_insert_timing_test_small_s2p_hash_gcc.png, + multimap_text_insert_timing_test_small_s2p_hash_local.png, + multimap_text_insert_timing_test_small_s2p_hash_msvc.png, + multimap_text_insert_timing_test_small_s2p_tree_gcc.png, + multimap_text_insert_timing_test_small_s2p_tree_local.png, + multimap_text_insert_timing_test_small_s2p_tree_msvc.png, + node_invariant_invalidations.png, node_invariants.png, + null_hash_fn.html, null_lu_metadata.html, + null_mapped_type.html, null_probe_fn.html, + null_tree_node_update.html, null_trie_node_update.html, + ov_tree_tag.html, pairing_heap_tag.html, + pairing_priority_queue_text_push_pop_timing_test_gcc.png, + pairing_priority_queue_text_push_pop_timing_test_local.png, + pairing_priority_queue_text_push_pop_timing_test_msvc.png, + pairing_priority_queue_text_push_timing_test_gcc.png, + pairing_priority_queue_text_push_timing_test_local.png, + pairing_priority_queue_text_push_timing_test_msvc.png, + pat_trie.png, pat_trie_tag.html, + point_invalidation_guarantee.html, point_iterators_cd.png, + point_iterators_range_ops_1.png, + point_iterators_range_ops_2.png, pq_container_traits.html, + pq_design.html, pq_different_underlying_dss.png, + pq_examples.html, pq_performance_tests.html, + pq_regression_tests.html, pq_tests.html, prerequisites.html, + priority_queue.html, + priority_queue_random_int_push_pop_timing_test_gcc.png, + priority_queue_random_int_push_pop_timing_test.html, + priority_queue_random_int_push_pop_timing_test_local.png, + priority_queue_random_int_push_pop_timing_test_msvc.png, + priority_queue_random_int_push_timing_test_gcc.png, + priority_queue_random_int_push_timing_test.html, + priority_queue_random_int_push_timing_test_local.png, + priority_queue_random_int_push_timing_test_msvc.png, + priority_queue_tag_cd.png, priority_queue_tag_cd.svg, + priority_queue_tag.html, + priority_queue_text_join_timing_test_gcc.png, + priority_queue_text_join_timing_test.html, + priority_queue_text_join_timing_test_local.png, + priority_queue_text_join_timing_test_msvc.png, + priority_queue_text_modify_down_timing_test_gcc.png, + priority_queue_text_modify_down_timing_test.html, + priority_queue_text_modify_down_timing_test_local.png, + priority_queue_text_modify_down_timing_test_msvc.png, + priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png, + priority_queue_text_modify_down_timing_test_pairing_thin_local.png, + priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png, + priority_queue_text_modify_up_timing_test_gcc.png, + priority_queue_text_modify_up_timing_test.html, + priority_queue_text_modify_up_timing_test_local.png, + priority_queue_text_modify_up_timing_test_msvc.png, + priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png, + priority_queue_text_modify_up_timing_test_pairing_thin_local.png, + priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png, + priority_queue_text_pop_mem_usage_test_gcc.png, + priority_queue_text_pop_mem_usage_test.html, + priority_queue_text_pop_mem_usage_test_local.png, + priority_queue_text_pop_mem_usage_test_msvc.png, + priority_queue_text_push_pop_timing_test_gcc.png, + priority_queue_text_push_pop_timing_test.html, + priority_queue_text_push_pop_timing_test_local.png, + priority_queue_text_push_pop_timing_test_msvc.png, + priority_queue_text_push_timing_test_gcc.png, + priority_queue_text_push_timing_test.html, + priority_queue_text_push_timing_test_local.png, + priority_queue_text_push_timing_test_msvc.png, + PythonPoweredSmall.gif quadratic_probe_fn.html, + random_int_find_find_timing_test_tree_gcc.png, + random_int_find_find_timing_test_tree_local.png, + random_int_find_find_timing_test_tree_msvc.png, + range_invalidation_guarantee.html, + rationale_null_node_updator.png, rb_tree_tag.html, + rc_binomial_heap_tag.html, references.html, resize_error.html, + resize_policy_cd.png, restoring_node_invariants.png, + sample_probe_fn.html, sample_ranged_hash_fn.html, + sample_ranged_probe_fn.html, sample_range_hashing.html, + sample_resize_policy.html, sample_resize_trigger.html, + sample_size_policy.html, sample_tree_node_update.html, + sample_trie_access_traits.html, sample_trie_node_update.html, + sample_update_policy.html, simple_list.png, + splay_tree_tag.html, tests.html, + text_find_timing_test_hash_gcc.png, + text_find_timing_test_hash_local.png, + text_find_timing_test_hash_msvc.png, + text_find_timing_test_tree_like_gcc.png, + text_find_timing_test_tree_like_local.png, + text_find_timing_test_tree_like_msvc.png, thin_heap_tag.html, + tree_based_containers.html, tree.html, + tree_node_iterator.html, tree_node_updator_policy_cd.png, + tree_order_statistics_node_update.html, + tree_order_statistics_timing_test_gcc.png, + tree_order_statistics_timing_test.html, + tree_order_statistics_timing_test_local.png, + tree_order_statistics_timing_test_msvc.png, + tree_random_int_find_find_timing_test.html, + tree_split_join_timing_test_gcc.png, + tree_split_join_timing_test.html, + tree_split_join_timing_test_local.png, + tree_split_join_timing_test_msvc.png, tree_tag.html, + tree_text_find_find_timing_test.html, + tree_text_insert_timing_test.html, + tree_text_insert_timing_test_node_tree_gcc.png, + tree_text_insert_timing_test_node_tree_local.png, + tree_text_insert_timing_test_node_tree_msvc.png, + tree_text_insert_timing_test_pat_trie_gcc.png, + tree_text_insert_timing_test_pat_trie_local.png, + tree_text_insert_timing_test_pat_trie_msvc.png, + tree_text_insert_timing_test_vector_tree_gcc.png, + tree_text_insert_timing_test_vector_tree_local.png, + tree_text_insert_timing_test_vector_tree_msvc.png, + tree_text_lor_find_find_timing_test.html, + tree_text_lor_find_timing_test_gcc.png, + tree_text_lor_find_timing_test_local.png, + tree_text_lor_find_timing_test_msvc.png, + trie_based_containers.html, trie_const_node_iterator.html, + trie.html, trie_node_iterator.html, + trie_node_updator_policy_cd.png, + trie_order_statistics_node_update.html, + trie_prefix_search_node_update.html, + trie_string_access_traits.html, trie_tag.html, + trivial_iterator_tag.html, tutorial.html, + update_policy_cd.png, update_seq_diagram.png): Remove. + 2011-07-27 Paolo Carlini PR c++/49813 diff --git a/libstdc++-v3/doc/Makefile.am b/libstdc++-v3/doc/Makefile.am index 7e75cc71d21a..e9df24596830 100644 --- a/libstdc++-v3/doc/Makefile.am +++ b/libstdc++-v3/doc/Makefile.am @@ -144,7 +144,6 @@ stamp-html-copy: stamp-html-docbook cp -r ${top_srcdir}/doc/html/ext ${docbook_outdir}/html/manual/ext cd ${docbook_outdir}/html/manual/ext rm -rf ${docbook_outdir}/html/manual/ext/.svn - rm -rf ${docbook_outdir}/html/manual/ext/pb_ds/.svn $(STAMP) stamp-html-copy doc-html: stamp-html @@ -339,6 +338,7 @@ xml_sources_manual = \ ${xml_dir}/manual/mt_allocator.xml \ ${xml_dir}/manual/numerics.xml \ ${xml_dir}/manual/parallel_mode.xml \ + ${xml_dir}/manual/policy_data_structures.xml \ ${xml_dir}/manual/prerequisites.xml \ ${xml_dir}/manual/profile_mode.xml \ ${xml_dir}/manual/shared_ptr.xml \ @@ -350,6 +350,7 @@ xml_sources_manual = \ ${xml_dir}/manual/strings.xml \ ${xml_dir}/manual/support.xml \ ${xml_dir}/manual/test.xml \ + ${xml_dir}/manual/test_policy_data_structures.xml \ ${xml_dir}/manual/using.xml \ ${xml_dir}/manual/using_exceptions.xml \ ${xml_dir}/manual/utilities.xml \ @@ -375,7 +376,8 @@ xml_noinst = \ ${xml_dir}/images/confdeps.pdf XSLTPROC = xsltproc -XSLTPROC_FLAGS = --nonet --xinclude +XSLT_FLAGS = --nonet --xinclude +XSLT_PARAM = --param toc.section.depth 4 #XSL_STYLE_DIR = /usr/share/xml/docbook/stylesheet/docbook-xsl-ns #XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets XSL_FO_STYLE = $(XSL_STYLE_DIR)/fo/docbook.xsl @@ -433,7 +435,7 @@ doc-xml-single-docbook: stamp-xml-single-docbook # HTML, index plus chapters stamp-html-docbook: $(xml_sources) ${docbook_outdir}/html @echo "Generating html files..." - $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \ + $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${docbook_outdir}/html/ \ $(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-html-docbook @@ -443,7 +445,7 @@ doc-html-docbook: stamp-html-docbook manual_html = ${docbook_outdir}/html/libstdc++-manual-single.html stamp-html-single-docbook: $(xml_sources) ${docbook_outdir}/html @echo "Generating html single file..." - $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${manual_html} \ + $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${manual_html} \ $(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-html-single-docbook @@ -452,7 +454,7 @@ doc-html-single-docbook: stamp-html-single-docbook # FO stamp-fo-docbook: $(xml_sources) ${docbook_outdir}/fo @echo "Generating FO files..." - $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/fo/spine.fo \ + $(XSLTPROC) $(XSLT_FLAGS) -o ${docbook_outdir}/fo/spine.fo \ $(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-fo-docbook @@ -506,6 +508,7 @@ doc-epub-docbook: stamp-epub-docbook # Performance doc and graph configuration. # Assumes pychart, beautiful soup installed. # Generates the plots and graphs for performance testing. +# XXX this needs to be re-worked to create only the SVG charts doc_performance_script=${top_srcdir}/scripts/make_graphs.py doc-html-performance: -@(chmod + ${doc_performance_script}; \ diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in index 40f00994249d..503a304dfa2a 100644 --- a/libstdc++-v3/doc/Makefile.in +++ b/libstdc++-v3/doc/Makefile.in @@ -385,6 +385,7 @@ xml_sources_manual = \ ${xml_dir}/manual/mt_allocator.xml \ ${xml_dir}/manual/numerics.xml \ ${xml_dir}/manual/parallel_mode.xml \ + ${xml_dir}/manual/policy_data_structures.xml \ ${xml_dir}/manual/prerequisites.xml \ ${xml_dir}/manual/profile_mode.xml \ ${xml_dir}/manual/shared_ptr.xml \ @@ -396,6 +397,7 @@ xml_sources_manual = \ ${xml_dir}/manual/strings.xml \ ${xml_dir}/manual/support.xml \ ${xml_dir}/manual/test.xml \ + ${xml_dir}/manual/test_policy_data_structures.xml \ ${xml_dir}/manual/using.xml \ ${xml_dir}/manual/using_exceptions.xml \ ${xml_dir}/manual/utilities.xml \ @@ -420,7 +422,8 @@ xml_noinst = \ ${xml_dir}/images/confdeps.png \ ${xml_dir}/images/confdeps.pdf -XSLTPROC_FLAGS = --nonet --xinclude +XSLT_FLAGS = --nonet --xinclude +XSLT_PARAM = --param toc.section.depth 4 #XSL_STYLE_DIR = /usr/share/xml/docbook/stylesheet/docbook-xsl-ns #XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets XSL_FO_STYLE = $(XSL_STYLE_DIR)/fo/docbook.xsl @@ -463,6 +466,7 @@ manual_epub = ${docbook_outdir}/epub/libstdc++-manual.epub # Performance doc and graph configuration. # Assumes pychart, beautiful soup installed. # Generates the plots and graphs for performance testing. +# XXX this needs to be re-worked to create only the SVG charts doc_performance_script = ${top_srcdir}/scripts/make_graphs.py # By adding these files here, automake will remove them for 'make clean' @@ -657,7 +661,6 @@ stamp-html-copy: stamp-html-docbook cp -r ${top_srcdir}/doc/html/ext ${docbook_outdir}/html/manual/ext cd ${docbook_outdir}/html/manual/ext rm -rf ${docbook_outdir}/html/manual/ext/.svn - rm -rf ${docbook_outdir}/html/manual/ext/pb_ds/.svn $(STAMP) stamp-html-copy doc-html: stamp-html @@ -818,14 +821,14 @@ doc-xml-single-docbook: stamp-xml-single-docbook # HTML, index plus chapters stamp-html-docbook: $(xml_sources) ${docbook_outdir}/html @echo "Generating html files..." - $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \ + $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${docbook_outdir}/html/ \ $(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-html-docbook doc-html-docbook: stamp-html-docbook stamp-html-single-docbook: $(xml_sources) ${docbook_outdir}/html @echo "Generating html single file..." - $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${manual_html} \ + $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${manual_html} \ $(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-html-single-docbook @@ -834,7 +837,7 @@ doc-html-single-docbook: stamp-html-single-docbook # FO stamp-fo-docbook: $(xml_sources) ${docbook_outdir}/fo @echo "Generating FO files..." - $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/fo/spine.fo \ + $(XSLTPROC) $(XSLT_FLAGS) -o ${docbook_outdir}/fo/spine.fo \ $(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-fo-docbook diff --git a/libstdc++-v3/doc/html/ext/pb_ds/PythonPoweredSmall.gif b/libstdc++-v3/doc/html/ext/pb_ds/PythonPoweredSmall.gif deleted file mode 100644 index 268980706ab40af54e7de6d03af2e0fd467b9bd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 361 zc-jGJ0hazpNk%w1VK)F40J8u9|NsBz=jYzu-qzOEy}iAJgoHvuLOD4(F)=YIDJd8j z7!VK;2nY!O-T(k&r2qf`A^8LW000dDEC2ui05<>@000F4u*pd)bvWydt^eS}jU*SI z&2y~Bqdv~du5a9`bp4{0a{xd<;n(^Vg1}=Da5yH3DkjW<${3qMDG@t_8iib8w50)Q zuE+F4IgSp~+ALVQv2cFD!aA#OIY@Z$FR)=n3>eyXUtK#`@$9APGNrR>a z)e2GrJs}}uM%JuiMJx%s;YygV8z?Mk5ZFs#42~`qHhKifL!PdatxASK$x@|DlPzC1 HhyVaP_=1?P diff --git a/libstdc++-v3/doc/html/ext/pb_ds/acks.html b/libstdc++-v3/doc/html/ext/pb_ds/acks.html deleted file mode 100644 index 6612a4a8184f..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/acks.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - Acknowledgments - - - - -
-

Acknowledgments

- -
    -
  1. This library was partially written at IBM's Haifa Research - Labs.
  2. - -
  3. The library is based heavily on policy-based design and - uses many useful techniques from [alexandrescu01modern].
  4. - -
  5. Two ideas are borrowed from the SGI-STL implementation - [sgi_stl]: - -
      -
    1. The prime-based resize policies use a list of primes - taken from the SGI-STL implementation.
    2. - -
    3. The red-black trees contain both a root node and a - header node (containing metadata), connected in a way - that forward and reverse iteration can be performed - efficiently.
    4. -
    -
  6. - -
  7. Some test utilities borrow ideas from [boost_timer].
  8. - -
  9. We would like to thank Scott Meyers for useful comments - (without attributing to him any flaws in the design or - implementation of the library).
  10. - -
  11. Much of the documentation is [Python Powered] (especially through PyChart, Beautiful - Soup, and kjbuckets) - and uses [HTML tidy]. The CSS-driven menus are - slightly modified from Brothercake - (hopefully without introducing errors).
  12. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/assoc_container_tag_cd.png b/libstdc++-v3/doc/html/ext/pb_ds/assoc_container_tag_cd.png deleted file mode 100644 index 16cc6da870df0ad2a7899bfa366d4a8720e53114..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 21668 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 Wrqzm5%yKfI@n26@KbLh*2~7Z_KY=9x diff --git a/libstdc++-v3/doc/html/ext/pb_ds/assoc_container_tag_cd.svg b/libstdc++-v3/doc/html/ext/pb_ds/assoc_container_tag_cd.svg deleted file mode 100644 index 02be62416478..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/assoc_container_tag_cd.svg +++ /dev/null @@ -1,491 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Benjamin Kosnik - - - - - - - - - - - - basic_hash_table_tag - basic_tree_tag - - - tree_tag - trie_tag - - associative_container_tag - - - - - cc_hash_table_tag - gp_hash_table_tag - - - - - list_update_tag - - rb_tree_tag - splay_tree_tag - - - - pat_trie_tag - - ov_tree_tag - - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/assoc_container_traits.html b/libstdc++-v3/doc/html/ext/pb_ds/assoc_container_traits.html deleted file mode 100644 index 7814712c36f9..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/assoc_container_traits.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - container_traits Interface - - - - -
-

container_traits Interface

- -

Traits of an associative-container based on its underlying - data structure.

- -

Defined in: tag_and_trait.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Cntnr
-
-
-

Container type.

-
-
- -

Public Types and - Constants

- -

Container Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-invalidation_guarantee
-
-
-
-Invalidation guarantee.
-
-
-

Invalidation-guarantee type.

- -

This is either basic_invalidation_guarantee, - point_invalidation_guarantee, or - range_invalidation_guarantee

-
-
-order_preserving
-
-
-
-True only if Cntnr objects guarantee storing  keys by order.
-
-
-

Order-preserving indicator.

-
-
-erase_can_throw
-
-
-
-True only if erasing a key can throw.
-
-
-

Erase-throw indicator.

-
-
-reverse_iteration
-
-
-
-True only reverse iterators are supported.
-
-
-

Reverse iteration indicator.

-
-
-split_join_can_throw
-
-
-
-True only if split or join operations can throw.
-
-
-

Split-join throw indicator.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/assoc_design.html b/libstdc++-v3/doc/html/ext/pb_ds/assoc_design.html deleted file mode 100644 index 6c501e26bbd6..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/assoc_design.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - Associative Containers - - - - -
-

Associative-Container Design

- -
    -
  1. Data-Structure Genericity
  2. - -
  3. Genericity discusses generic manipulation of - containers based on different underlying - data structures.
  4. - -
  5. Genericity discusses generic manipulation of - containers with different mapping semantics.
  6. - -
  7. Tree-Based - Containers describes the design and policies of - tree-based containers.
  8. - -
  9. Trie-Based - Containers describes the design and policies of - trie-based containers.
  10. - -
  11. Hash-Based - Containers describes the design and policies of - hash-based containers.
  12. - -
  13. List-Based - Containers describes the design and policies of - list-based containers with update policies.
  14. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/assoc_examples.html b/libstdc++-v3/doc/html/ext/pb_ds/assoc_examples.html deleted file mode 100644 index b64c747454cc..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/assoc_examples.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - Examples - - - - -
-

Associative-Container Examples

- -

Basic Use

- -
    -
  1. - basic_map.cc - Basic use of "maps".
  2. - -
  3. basic_set.cc - Basic use of "sets".
  4. - -
  5. erase_if.cc - Conditionally erasing values from a container object.
  6. -
- -

Generics

- -
    -
  1. assoc_container_traits.cc - Using container_traits to query - about underlying data structure behavior.
  2. - -
  3. hash_find_neg.cc - A non-compiling example showing wrong use of finding keys in - hash-based containers.
  4. -
- -

Hash-Based - Containers

- - -

Resize - Related

- - -
    -
  1. hash_initial_size.cc - Setting the initial size of a hash-based container - object.
  2. - -
  3. hash_resize_neg.cc - A non-compiling example showing how not to resize a - hash-based container object.
  4. - -
  5. hash_resize.cc - Resizing the size of a hash-based container object.
  6. - -
  7. hash_illegal_resize.cc - Showing an illegal resize of a hash-based container - object.
  8. - -
  9. hash_load_set_change.cc - Changing the load factors of a hash-based container - object.
  10. -
- -

Hash-Function - Related

- - -
    -
  1. hash_mod.cc - Using a modulo range-hashing function for the case of an - unknown skewed key distribution.
  2. - -
  3. shift_mask.cc - Writing a range-hashing functor for the case of a known - skewed key distribution.
  4. - -
  5. store_hash.cc - Storing the hash value along with each key.
  6. - -
  7. ranged_hash.cc - Writing a ranged-hash functor.
  8. -
- -

Tree-Like Containers (Trees and - Tries)

- - -

Node-Invariants

- - -
    -
  1. tree_order_statistics.cc - Using trees for order statistics.
  2. - -
  3. tree_intervals.cc - Augmenting trees to support operations on line - intervals.
  4. -
- -

Split and - Join

- - -
    -
  1. tree_join.cc - Joining two tree-based container objects.
  2. - -
  3. trie_split.cc - Splitting a PATRICIA trie container object.
  4. - -
  5. tree_order_statistics_join.cc - Order statistics while joining two tree-based container - objects.
  6. -
- -

Trie-Based - Containers

- - -
    -
  1. trie_dna.cc - Using a PATRICIA trie for DNA strings.
  2. - -
  3. trie_prefix_search.cc - Using a PATRICIA trie for finding all entries whose key - matches a given prefix.
  4. -
- -

"Multimaps" and - "Multisets".

-
    -
  1. basic_multimap.cc - Basic use of "multimaps".
  2. - -
  3. basic_multiset.cc - Basic use of "multisets".
  4. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/assoc_performance_tests.html b/libstdc++-v3/doc/html/ext/pb_ds/assoc_performance_tests.html deleted file mode 100644 index 642f8480953a..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/assoc_performance_tests.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - -Associative-Container Performance Tests - - - -
-

Associative-Container - Performance Tests

-

Settings

-

This section describes performance tests and their results. - In the following, g++, msvc++, and local (the build used for generating this - documentation) stand for three different builds:

-
-
-

g++

-
    -
  • CPU speed - cpu MHz : 2660.644
  • -
  • Memory - MemTotal: 484412 kB
  • -
  • Platform - - Linux-2.6.12-9-386-i686-with-debian-testing-unstable
  • -
  • Compiler - g++ (GCC) 4.0.2 20050808 (prerelease) - (Ubuntu 4.0.1-4ubuntu9) Copyright (C) 2005 Free Software - Foundation, Inc. This is free software; see the source - for copying conditions. There is NO warranty; not even - for MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE.
  • -
-
-
-
-
-
-

msvc++

-
    -
  • CPU speed - cpu MHz : 2660.554
  • -
  • Memory - MemTotal: 484412 kB
  • -
  • Platform - Windows XP Pro
  • -
  • Compiler - Microsoft (R) 32-bit C/C++ Optimizing - Compiler Version 13.10.3077 for 80x86 Copyright (C) - Microsoft Corporation 1984-2002. All rights - reserved.
  • -
-
-
-
-

local

    -
  • CPU speed - cpu MHz : 2250.000
  • -
  • Memory - MemTotal: 2076248 kB
  • -
  • Platform - Linux-2.6.16-1.2133_FC5-i686-with-redhat-5-Bordeaux
  • -
  • Compiler - g++ (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1) -Copyright (C) 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -
  • -
-
-

Tests

-

Hash-Based - Containers

-
    -
  1. Hash-Based - Text find Find Timing Test
  2. -
  3. Hash-Based - Random-Integer find Find Timing Test
  4. -
  5. Hash-Based - Random-Integer Subscript Find Timing Test
  6. -
  7. Hash-Based - Random-Integer Subscript Insert Timing Test
  8. -
  9. Hash-Based - Skewed-Distribution Random-Integer find Find Timing - Test
  10. -
  11. Hash-Based Erase - Memory Use Test
  12. -
-

Tree-Like-Based Containers

-
    -
  1. Tree-Based - and Trie-Based Text Insert Timing Test
  2. -
  3. Tree-Based - and Trie-Based Text find Find Timing Test
  4. -
  5. Tree-Based - Locality-of-Reference Text find Find Timing - Test
  6. -
  7. Tree-Based - Random-Integer find Find Timing Test
  8. -
  9. Tree Split and - Join Timing Test
  10. -
  11. Tree - Order-Statistics Timing Test
  12. -
-

Multimaps

-
    -
  1. "Multimap" - Text Find Timing Test with Small Average Secondary-Key - to Primary-Key Ratio
  2. -
  3. "Multimap" - Text Find Timing Test with Large Average Secondary-Key - to Primary-Key Ratio
  4. -
  5. "Multimap" - Text Insert Timing Test with Small Average - Secondary-Key to Primary-Key Ratio
  6. -
  7. "Multimap" - Text Insert Timing Test with Large Average - Secondary-Key to Primary-Key Ratio
  8. -
  9. "Multimap" - Text Insert Memory-Use Test with Small Average - Secondary-Key to Primary-Key Ratio
  10. -
  11. "Multimap" - Text Insert Memory-Use Test with Large Average - Secondary-Key to Primary-Key Ratio
  12. -
-

Observations

-

Underlying Data-Structure Families

-

In general, hash-based containers (see Design::Associative - Containers::Hash-Based Containers) have better timing - performance than containers based on different underlying-data - structures. The main reason to choose a tree-based (see - Design::Associative - Containers::Tree-Based Containers) or trie-based container - (see Design::Associative - Containers::Trie-Based Containers) is if a byproduct of the - tree-like structure is required: either order-preservation, or - the ability to utilize node invariants (see Design::Associative - Containers::Tree-Based Containers::Node Invariants and - Design::Associative - Containers::Trie-Based Containers::Node Invariants). If - memory-use is the major factor, an ordered-vector tree (see - Design::Associative - Containers::Tree-Based Containers) gives optimal results - (albeit with high modificiation costs), and a list-based - container (see Design::Associative - Containers::List-Based Containers) gives reasonable - results.

-

Hash-Based - Container Types

-

Hash-based containers are typically either collision - chaining or probing (see Design::Associative - Containers::Hash-Based Containers). Collision-chaining - containers are more flexible internally, and so offer better - timing performance. Probing containers, if used for simple - value-types, manage memory more efficiently (they perform far - fewer allocation-related calls). In general, therefore, a - collision-chaining table should be used. A probing container, - conversely, might be used efficiently for operations such as - eliminating duplicates in a sequence, or counting the number of - occurrences within a sequence. Probing containers might be more - useful also in multithreaded applications where each thread - manipulates a hash-based container: in the STL, allocators have - class-wise semantics (see [meyers96more] - Item 10); a - probing container might incur less contention in this case.

-

Hash-Based Containers' Policies

-

In hash-based containers, the range-hashing scheme (see - Design::Associative - Containers::Hash-Based Containers::Hash Policies) seems to - affect performance more than other considerations. In most - settings, a mask-based scheme works well (or can be made to - work well). If the key-distribution can be estimated a-priori, - a simple hash function can produce nearly uniform hash-value - distribution. In many other cases (e.g., text hashing, - floating-point hashing), the hash function is powerful enough - to generate hash values with good uniformity properties - [knuth98sorting]; - a modulo-based scheme, taking into account all bits of the hash - value, appears to overlap the hash function in its effort.

-

The range-hashing scheme determines many of the other - policies (see Design::Hash-Based - Containers::Policy Interaction). A mask-based scheme works - well with an exponential-size policy (see Design::Associative - Containers::Hash-Based Containers::Resize Policies) ; for - probing-based containers, it goes well with a linear-probe - function (see Design::Associative - Containers::Hash-Based Containers::Hash Policies).

-

An orthogonal consideration is the trigger policy (see - Design::Associative - Containers::Hash-Based Containers::Resize Policies). This - presents difficult tradeoffs. E.g., different load - factors in a load-check trigger policy yield a - space/amortized-cost tradeoff.

-

Tree-Like-Based Container - Types

-

In general, there are several families of tree-based - underlying data structures: balanced node-based trees - (e.g., red-black or AVL trees), high-probability - balanced node-based trees (e.g., random treaps or - skip-lists), competitive node-based trees (e.g., splay - trees), vector-based "trees", and tries. (Additionally, there - are disk-residing or network-residing trees, such as B-Trees - and their numerous variants. An interface for this would have - to deal with the execution model and ACID guarantees; this is - out of the scope of this library.) Following are some - observations on their application to different settings.

-

Of the balanced node-based trees, this library includes a - red-black tree (see Design::Associative - Containers::Tree-Based Containers), as does STL (in - practice). This type of tree is the "workhorse" of tree-based - containers: it offers both reasonable modification and - reasonable lookup time. Unfortunately, this data structure - stores a huge amount of metadata. Each node must contain, - besides a value, three pointers and a boolean. This type might - be avoided if space is at a premium [austern00noset].

-

High-probability balanced node-based trees suffer the - drawbacks of deterministic balanced trees. Although they are - fascinating data structures, preliminary tests with them showed - their performance was worse than red-black trees. The library - does not contain any such trees, therefore.

-

Competitive node-based trees have two drawbacks. They are - usually somewhat unbalanced, and they perform a large number of - comparisons. Balanced trees perform one comparison per each - node they encounter on a search path; a splay tree performs two - comparisons. If the keys are complex objects, e.g., - std::string, this can increase the running time. - Conversely, such trees do well when there is much locality of - reference. It is difficult to determine in which case to prefer - such trees over balanced trees. This library includes a splay - tree (see Design::Associative - Containers::Tree-Based Containers).

-

Ordered-vector trees (see Design::Associative - Containers::Tree-Based Containers) use very little space - [austern00noset]. - They do not have any other advantages (at least in this - implementation).

-

Large-fan-out PATRICIA tries (see Design::Associative - Containers::Trie-Based Containers) have excellent lookup - performance, but they do so through maintaining, for each node, - a miniature "hash-table". Their space efficiency is low, and - their modification performance is bad. These tries might be - used for semi-static settings, where order preservation is - important. Alternatively, red-black trees cross-referenced with - hash tables can be used. [okasaki98mereable] - discusses small-fan-out PATRICIA tries for integers, but the - cited results seem to indicate that the amortized cost of - maintaining such trees is higher than that of balanced trees. - Moderate-fan-out trees might be useful for sequences where each - element has a limited number of choices, e.g., DNA - strings (see Examples::Associative - Containers::Trie-Based Containers).

-

Mapping-Semantics - Considerations

-

Different mapping semantics were discussed in Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys and - Tutorial::Associative - Containers::Associative Containers Others than Maps. We - will focus here on the case where a keys can be composed into - primary keys and secondary keys. (In the case where some keys - are completely identical, it is trivial that one should use an - associative container mapping values to size types.) In this - case there are (at least) five possibilities:

-
    -
  1. Use an associative container that allows equivalent-key - values (such as std::multimap)
  2. -
  3. Use a unique-key value associative container that maps - each primary key to some complex associative container of - secondary keys, say a tree-based or hash-based container (see - Design::Associative - Containers::Tree-Based Containers and Design::Associative - Containers::Hash-Based Containers)
  4. -
  5. Use a unique-key value associative container that maps - each primary key to some simple associative container of - secondary keys, say a list-based container (see Design::Associative - Containers::List-Based Containers)
  6. -
  7. Use a unique-key value associative container that maps - each primary key to some non-associative container - (e.g., std::vector)
  8. -
  9. Use a unique-key value associative container that takes - into account both primary and secondary keys.
  10. -
-

We do not think there is a simple answer for this (excluding - option 1, which we think should be avoided in all cases).

-

If the expected ratio of secondary keys to primary keys is - small, then 3 and 4 seem reasonable. Both types of secondary - containers are relatively lightweight (in terms of memory use - and construction time), and so creating an entire container - object for each primary key is not too expensive. Option 4 - might be preferable to option 3 if changing the secondary key - of some primary key is frequent - one cannot modify an - associative container's key, and the only possibility, - therefore, is erasing the secondary key and inserting another - one instead; a non-associative container, conversely, can - support in-place modification. The actual cost of erasing a - secondary key and inserting another one depends also on the - allocator used for secondary associative-containers (The tests - above used the standard allocator, but in practice one might - choose to use, e.g., [boost_pool]). Option 2 is - definitely an overkill in this case. Option 1 loses out either - immediately (when there is one secondary key per primary key) - or almost immediately after that. Option 5 has the same - drawbacks as option 2, but it has the additional drawback that - finding all values whose primary key is equivalent to some key, - might be linear in the total number of values stored (for - example, if using a hash-based container).

-

If the expected ratio of secondary keys to primary keys is - large, then the answer is more complicated. It depends on the - distribution of secondary keys to primary keys, the - distribution of accesses according to primary keys, and the - types of operations most frequent.

-

To be more precise, assume there are m primary keys, - primary key i is mapped to ni - secondary keys, and each primary key is mapped, on average, to - n secondary keys (i.e., - E(ni) = n).

-

Suppose one wants to find a specific pair of primary and - secondary keys. Using 1 with a tree based container - (std::multimap), the expected cost is - E(Θ(log(m) + ni)) = Θ(log(m) + - n); using 1 with a hash-based container - (std::tr1::unordered_multimap), the expected cost is - Θ(n). Using 2 with a primary hash-based container - and secondary hash-based containers, the expected cost is - O(1); using 2 with a primary tree-based container and - secondary tree-based containers, the expected cost is (using - the Jensen inequality [motwani95random]) - E(O(log(m) + log(ni)) = O(log(m)) + - E(O(log(ni)) = O(log(m)) + O(log(n)), - assuming that primary keys are accessed equiprobably. 3 and 4 - are similar to 1, but with lower constants. Using 5 with a - hash-based container, the expected cost is O(1); using 5 - with a tree based container, the cost is - E(Θ(log(mn))) = Θ(log(m) + - log(n)).

-

Suppose one needs the values whose primary key matches some - given key. Using 1 with a hash-based container, the expected - cost is Θ(n), but the values will not be ordered - by secondary keys (which may or may not be required); using 1 - with a tree-based container, the expected cost is - Θ(log(m) + n), but with high constants; again the - values will not be ordered by secondary keys. 2, 3, and 4 are - similar to 1, but typically with lower constants (and, - additionally, if one uses a tree-based container for secondary - keys, they will be ordered). Using 5 with a hash-based - container, the cost is Θ(mn).

-

Suppose one wants to assign to a primary key all secondary - keys assigned to a different primary key. Using 1 with a - hash-based container, the expected cost is Θ(n), - but with very high constants; using 1 with a tree-based - container, the cost is Θ(nlog(mn)). Using 2, 3, - and 4, the expected cost is Θ(n), but typically - with far lower costs than 1. 5 is similar to 1.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/assoc_regression_tests.html b/libstdc++-v3/doc/html/ext/pb_ds/assoc_regression_tests.html deleted file mode 100644 index 9b6b6b83982a..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/assoc_regression_tests.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - Associative-Container Regression Tests - - - - - -
-

Associative-Container Regression Tests

- -

Description

- -

The library contains a single comprehensive regression test. - For a given container type in pb_ds, the test creates - an object of the container type and an object of the - corresponding STL type (e.g., std::set). It - then performs a random sequence of methods with random - arguments (e.g., inserts, erases, and so forth) on both - objects. At each operation, the test checks the return value of - the method, and optionally both compares pb_ds's - object with the STL's object as well as performing other - consistency checks on pb_ds's object (e.g., - order preservation, when applicable, or node invariants, when - applicable).

- -

Additionally, the test integrally checks exception safety - and resource leaks. This is done as follows. A special - allocator type, written for the purpose of the test, both - randomly throws an exceptions when allocations are performed, - and tracks allocations and de-allocations. The exceptions thrown - at allocations simulate memory-allocation failures; the - tracking mechanism checks for memory-related bugs (e.g., - resource leaks and multiple de-allocations). Both - pb_ds's containers and the containers' value-types are - configured to use this allocator.

- -

Due to compiler constraints, the test is split into the - several sources, each checking only some containers.

- -

Tests

- -

"Set" - Tests

- -

The following check all "set" types:

- -
    -
  1. hash_no_data_map_rand.cc - checks all hash-based "set" types.
  2. - -
  3. list_update_no_data_map_rand.cc - checks all list-based "set" types.
  4. - -
  5. tree_no_data_map_rand.cc - checks all tree-based "set" types.
  6. - -
  7. trie_no_data_map_rand.cc - checks all PATRICIA-trie-based "set" types.
  8. -
- -

"Map" - Tests

- -

The following check all "map" types:

- -
    -
  1. hash_data_map_rand.cc - checks all hash-based "map" types.
  2. - -
  3. list_update_data_map_rand.cc - checks all list-based "map" types.
  4. - -
  5. tree_data_map_rand.cc - checks all tree-based "map" types.
  6. - -
  7. trie_data_map_rand.cc - checks all PATRICIA-trie-based "map" types.
  8. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/assoc_tests.html b/libstdc++-v3/doc/html/ext/pb_ds/assoc_tests.html deleted file mode 100644 index 6e4474945d32..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/assoc_tests.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - Associative-Container Tests - - - - -
-

Associative-Container Tests

- -

Associative-Container - Regression Tests describes the regression tests; Associative-Container - Performance Tests describes the performance tests.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/associative_container_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/associative_container_tag.html deleted file mode 100644 index ceb91cdc7472..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/associative_container_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - associative_container_tag Interface - - - - -
-

associative_container_tag Interface

- -

Basic associative-container data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-container_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/basic_hash_table.html b/libstdc++-v3/doc/html/ext/pb_ds/basic_hash_table.html deleted file mode 100644 index 668e681d8c0b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/basic_hash_table.html +++ /dev/null @@ -1,436 +0,0 @@ - - - - - - - basic_hash_table Interface - - - - -
-

basic_hash_table Interface

- -

An abstract basic hash-based associative container.

- -

Defined in: assoc_container.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Key
-
-
-

Key type.

-
-
-
-typename Mapped
-
-
-

Mapped type.

-
-
-
-class Hash_Fn
-
-
-

Hash functor.

-
-
-
-class Eq_Fn
-
-
-

Equivalence functor.

-
-
-
-class Resize_Policy
-
-
-

Resize policy.

-
-
-
-bool Store_Hash
-
-
-

Indicates whether the hash value will be stored along - with each key.

-
-
-
-class Tag
-
-
-

Mapped-structure tag.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
- -

Base Classes

- - - - - - - - - - - - - - - - - - - -
ClassDerivation Type
-
-Resize_Policy
-
-
-

public

-
-
-container_base
-
-
-

public

-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-hash_fn
-
-
-
-Hash_Fn
-
-
-

Hash functor type.

-
-
-eq_fn
-
-
-
-Eq_Fn
-
-
-

Equivalence functor type.

-
-
-resize_policy
-
-
-
-Resize_Policy
-
-
-

Resize policy type.

-
-
-store_hash
-
-
-
-Store_Hash
-
-
-

Indicates whether a hash value is stored with each - entry.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-virtual 
-  ~basic_hash_table
-  ()
-
-
-

Destructor.

-
- -

Policy Access Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-hash_fn &
-  get_hash_fn
-  ()
-
-
-

Access to the hash_fn object.

-
-
-const hash_fn &
-  get_hash_fn
-  () const
-
-
-

Const access to the hash_fn object.

-
-
-eq_fn &
-  get_eq_fn
-  ()
-
-
-

Access to the eq_fn - object.

-
-
-const eq_fn &
-  get_eq_fn
-  () const
-
-
-

Const access to the eq_fn object.

-
-
-resize_policy &
-  get_resize_policy
-  ()
-
-
-

Access to the resize_policy - object.

-
-
-const resize_policy &
-  get_resize_policy
-  () const
-
-
-

Const access to the resize_policy - object.

-
- -

Private Methods

- -

Resize Methods

- - - - - - - - - - - - - -
MethodDescription
-
-virtual void 
-  do_resize
-  (size_type new_size)
-
-
-

Resizes the container object to new_size.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/basic_hash_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/basic_hash_tag.html deleted file mode 100644 index 9dc5e6d86b44..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/basic_hash_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - basic_hash_tag Interface - - - - -
-

basic_hash_tag Interface

- -

Basic hash data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-associative_container_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/basic_invalidation_guarantee.html b/libstdc++-v3/doc/html/ext/pb_ds/basic_invalidation_guarantee.html deleted file mode 100644 index d4a0df23fcac..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/basic_invalidation_guarantee.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - basic_invalidation_guarantee Interface - - - - -
-

basic_invalidation_guarantee Interface

- -

Signifies a basic invalidation guarantee that any iterator, - pointer, or reference to a container object's mapped value type - is valid as long as the container is not modified.

- -

Defined in: tag_and_trait.hpp

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/basic_tree.html b/libstdc++-v3/doc/html/ext/pb_ds/basic_tree.html deleted file mode 100644 index 3811707fa064..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/basic_tree.html +++ /dev/null @@ -1,660 +0,0 @@ - - - - - - - basic_tree Interface - - - - -
-

basic_tree Interface

- -

An abstract basic tree-like-based associative container.

- -

Defined in: assoc_container.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Key
-
-
-

Key type.

-
-
-
-typename Mapped
-
-
-

Mapped type.

-
-
-
-class Tag
-
-
-

Mapped-structure tag.

-
-
-
-class Node_Update
-
-
-

Node updater.

- -

Restores node-invariants when invalidated.

-
-
-
-class Policy_Tl
-
-
-

Policy typelist.

- -

Contains subclasses' policies.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
- -

Base Classes

- - - - - - - - - - - - - - - - - - - -
ClassDerivation Type
-
-Node_Update
-
-
-

public

-
-
-container_base
-
-
-

public

-
- -

Public Types and - Constants

- -

Key-Type Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_key_reference
-
-
-
-typename container_base::const_key_reference
-
-
-

Const key reference type.

-
- -

Policy Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-node_update
-
-
-
-Node_Update
-
-
-

Node updater type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_iterator
-
-
-
-typename container_base::const_iterator
-
-
-

Const range-type iterator.

-
-
-iterator
-
-
-
-typename container_base::iterator
-
-
-

Range-type iterator.

-
-
-const_reverse_iterator
-
-
-
-Const reverse range-type iterator.
-
-
-

Const reverse range-type iterator.

-
-
-reverse_iterator
-
-
-
-Reverse range-type iterator.
-If Mapped is null_mapped_type, then this is synonymous to const_reverse_iterator -
-
-

Reverse range-type iterator.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-virtual 
-  ~basic_tree
-  ()
-
-
-

Destructor.

-
- -

Policy Access Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-node_update &
-  get_node_update
-  ()
-
-
-

Access to the node_update - object.

-
-
-const node_update &
-  get_node_update
-  () const
-
-
-

Const access to the node_update - object.

-
- -

Find Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-iterator
-  lower_bound
-  (const_key_reference r_key)
-
-
-

Returns an iterator corresponding - to the entry whose key is the smallest one at least as - large as r_key.

-
-
-const_iterator
-  lower_bound
-  (const_key_reference r_key) const
-
-
-

Returns a const iterator corresponding - to the entry whose key is the smallest one at least as - large as r_key.

-
-
-iterator
-  upper_bound
-  (const_key_reference r_key)
-
-
-

Returns an iterator corresponding - to the entry whose key is the smallest one larger than - r_key.

-
-
-const_iterator
-  upper_bound
-  (const_key_reference r_key) const
-
-
-

Returns a const_iterator - corresponding to the entry whose key is the smallest one - larger than r_key.

-
- -

Erase Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-iterator
-  erase
-  (iterator it)
-
-
-

Erases the value_type corresponding to the iterator it. Returns the iterator corresponding - to the next value_type.

-
-
-reverse_iterator
-  erase
-  (reverse_iterator it)
-
-
-

Erases the value_type corresponding to the reverse_iterator - it. Returns the reverse_iterator - corresponding to the previous value_type.

-
- -

Iteration Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-reverse_iterator
-  rbegin
-  ()
-
-
-

Returns a reverse_iterator - corresponding to the last value_type in the - container.

-
-
-const_reverse_iterator
-  rbegin
-  () const
-
-
-

Returns a const_reverse_iterator - corresponding to the last value_type in the - container.

-
-
-reverse_iterator
-  rend
-  ()
-
-
-

Returns a reverse_iterator - corresponding to the just-before-first value_type in the - container.

-
-
-const_reverse_iterator
-  rend
-  () const
-
-
-

Returns a const_reverse_iterator - corresponding to the just-before-first value_type in the - container.

-
- -

Split and join - Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-void 
-  join
-  (basic_tree &other)
-
-
-

Joins two trees. When this function returns, - other will be - empty.

- -

When calling this method, other's keys must be all larger or - all smaller than this object's keys, and other's policies must be - equivalent to this object's policies.

-
-
-void
-  split
-  (const_key_reference r_key, 
-    basic_tree &other)
-
-
-

Splits into two trees. When this function returns, - other will contain - only keys larger than r_key.

- -

When calling this method, other's policies must be - equivalent to this object's policies.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html b/libstdc++-v3/doc/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html deleted file mode 100644 index 5647f551e950..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - - - tree::const_node_iterator - Interface - - - - -
-

tree::const_node_iterator - Interface

- -

Const node iterator.

- -

This is an &qout;iterator to an iterator&qout; - it - iterates over nodes, and de-referencing it returns one of the - tree's iterators

- -

Public Types and - Constants

- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-iterator_category
-
-
-
-trivial_iterator_tag
-
-
-

Category.

- -

This tag identifies that the iterator has none of the - STL's iterators' movement abilities.

-
-
-difference_type
-
-
-
-void
-
-
-

Difference type.

-
- -

Value-Type Definitions

- -

Note that a node iterator's value type is actually a tree - iterator.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-value_type
-
-
-
-container_base::const_iterator
-
-
-

Iterator's value type.

-
-
-reference
-
-
-
-container_base::const_iterator
-
-
-

Iterator's reference type.

-
-
-const_reference
-
-
-
-container_base::const_iterator
-
-
-

Iterator's const reference type.

-
- -

Metadata Definitions

- -

These are only defined if - basic_tree::Node_Update - is not null_tree_node_update

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-typename basic_tree::Node_Update::metadata_type
-
-
-

Metadata type.

-
-
-const_metadata_reference
-
-
-
-typename Allocator::template rebind<
-    metadata_type>::other::const_reference
-
-
-

Const metadata reference type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-inline 
-  const_node_iterator
-  ()
-
-
-

Default constructor.

-
- -

Access Methods

- - - - - - - - - - - - - -
MethodDescription
-
-inline const_reference
-  operator*
-  () const
-
-
-

Access.

-
- -

Metadata Access Methods

- -

These are only defined if - basic_tree::Node_Update - is not null_tree_node_update

- - - - - - - - - - - - - -
MethodDescription
-
-inline const_metadata_reference
-  get_metadata
-  () const
-
-
-

Metadata access.

-
- -

Movement Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline const_node_iterator
-  get_l_child
-  () const
-
-
-

Returns the const node iterator associated with the - left node.

-
-
-inline const_node_iterator
-  get_r_child
-  () const
-
-
-

Returns the const node iterator associated with the - right node.

-
- -

Comparison Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline bool
-  operator==
-  (const const_node_iterator &other) const
-
-
-

Compares to a different iterator object.

-
-
-inline bool
-  operator!=
-  (const const_node_iterator &other) const
-
-
-

Compares (negatively) to a different iterator - object.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/basic_tree_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/basic_tree_tag.html deleted file mode 100644 index 8eca2a818591..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/basic_tree_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - basic_tree_tag Interface - - - - -
-

basic_tree_tag Interface

- -

Basic tree-like data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-associative_container_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/binary_heap_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/binary_heap_tag.html deleted file mode 100644 index 47873b1cfb91..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/binary_heap_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - binary_heap_tag Interface - - - - -
-

binary_heap_tag Interface

- -

Binary-heap (array-based) data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-priority_queue_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png deleted file mode 100644 index 07f0953a661467d0953c8cf555161522bdc26b89..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5357 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 Us$}H|{NIg^roKjznoZDu0XXAD3IG5A diff --git a/libstdc++-v3/doc/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png deleted file mode 100644 index c69cf1e7641a7fe8a51bc8f073daf582026bbb21..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 23669 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/binomial_heap_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/binomial_heap_tag.html deleted file mode 100644 index fde6a913badf..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/binomial_heap_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - binomial_heap_tag Interface - - - - -
-

binomial_heap_tag Interface

- -

Binomial-heap data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-priority_queue_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html deleted file mode 100644 index a6b512b0d163..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html +++ /dev/null @@ -1,532 +0,0 @@ - - - - - - - cc_hash_max_collision_check_resize_trigger - Interface - - - - -
-

cc_hash_max_collision_check_resize_trigger - Interface

- -

A resize trigger policy based on collision checks. It keeps - the simulated load factor lower than some given load - factor.

- -

Defined in: hash_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-bool External_Load_Access 
-
-
-

Specifies whether the load factor can be accessed - externally. The two options have different trade-offs in - terms of flexibility, genericity, and encapsulation.

-
false
-
-typename Size_Type 
-
-
-

Size type.

-
size_t
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-Size_Type
-
-
-

Size type.

-
-
-external_load_access
-
-
-
-External_Load_Access
-
-
-

Indicates whether loads can be accessed externally

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  cc_hash_max_collision_check_resize_trigger
-  (float load = 0.5)
-
-
-

Default constructor, or constructor taking - load, a load factor - which it will attempt to maintain.

-
-
-void
-  swap
-  (cc_hash_max_collision_check_resize_trigger &other)
-
-
-

Swaps content.

-
- -

Load Access Methods

- -

These methods are only available if the external access - parameter is set.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline float
-  get_load
-  () const
-
-
-

Returns the current load.

- -

Calling this method will not compile when External_Load_Access - == false.

-
-
-void 
-  set_load
-  (float load)
-
-
-

Sets the load; does - not resize the container.

- -

It is the responsibility of the user to pass an - appropriate load to this - function. Calling this method will not compile when - External_Load_Access - == false.

-
- -

Protected Methods

- -

Insert Search - Notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_insert_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_insert_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_insert_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Find Search - Notifications.

- -

Notifications called during a find operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_find_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_find_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_find_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Erase Search - Notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_erase_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_erase_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_erase_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Content Change - Notifications

- -

Notifications called when the content of the table changes - in a way that can affect the resize policy.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_inserted
-  (size_type num_entries)
-
-
-

Notifies an element was inserted.

-
-
-inline void
-  notify_erased
-  (size_type num_entries)
-
-
-

Notifies an element was erased.

-
-
-void 
-  notify_cleared
-  ()
-
-
-

Notifies the table was cleared.

-
- -

Size Change - Notifications

- -

Notifications called when the table changes size.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-void
-  notify_resized
-  (size_type new_size)
-
-
-

Notifies the table was resized as a result of this - object's signifying that a resize is needed.

-
-
-void
-  notify_externally_resized
-  (size_type new_size)
-
-
-

Notifies the table was resized externally.

-
- -

Queries

- -

Called to query whether/how to resize.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline bool 
-  is_resize_needed
-  () const
-
-
-

Queries whether a resize is needed.

-
-
-inline bool
-  is_grow_needed
-  (size_type size, size_type num_entries) const
-
-
-

Queries whether a grow is needed.

- -

This method is called only if this object indicated is - needed.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png deleted file mode 100644 index 85b9eca4ff621bae92b74d47a17dfff387c69101..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7074 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png deleted file mode 100644 index 40404c87518e00b14dc433de6c1c06a489a7321e..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 48189 zc-qu_g;y1Av^OE$-3K^yBS@#xAd-iWZs`tb1W5q_>25f5gLHR^hwc#R?)t{}TX(Jd zFI?6-zznnIsl9(O&mJOFKgeOBlcU4I!C@)LORK}dAyC7?!4IP%17{e1>G=acUb((g z&_o5kd{NEAfnzi$d0kiF`ni7}_;<|dUcgB*HyIr_4M$5iPZJjlI8RScPHP8SS2GhQ z3rYc1UlyLGUf)3dNaS`QU5!~O{yRHfAP2ER;+*H2&SzFm+$!L zeh~Wb@UVvBv^^9jb}(Ckp$5Y^ZXEya@$L4%(Q*V;RXOg(P>J~8Oo*Ilj%Q0q!0k?E zSFKeUbqaTMbl6uJw0ew5`dYBg6 z5LDTff85v)Ojbrj_;Na(TuhIenwlPj@7Kz8GdUg${F~j-b@{`MTf|%Iqs0b`SSpcg z)xBSZVg$#c9)~((Rh`fG`A|d8=>E_#7o}Gjk@76Ypi}uCH`b+#AZVpitOYQL@6HGa z2sV&%9cL|I)|HZ()xdM{3`!pyR@?6Cl+*d!i<)}ET#@nOM0G&Xf;DO^)3i)M*+JQX z*_u}cep#MC!xBDwg~@46_DlRYU7l-xH)}swH2hbqO?neN^PE~C!#{3u@g#Csornc9 zh+f#iE+nTMQz{S~#zhiLSzp1Pj)bAOiJ4~z?4`B`6x{8^`xTuCI$xpJw4+h)s$r&GZT?iCW! z&ZoIb13A3Za%hwJ3VKbJCd45;dO))BRhTqFS#>{hwHhRU#@kQNjGn!Y`Y<9e)$8OSnW?g~s&xVFE5?@5z{yN=k4<|^F#6h~&u5X#T zPj+kXLq{hktIQKwA%wn3@-|4w5*&E-ySZ4VV-W;2hN?S%^spVIMFgCZ zeLg&Eq;DvOBSRTY1W<1=8k%(&5(e?u$#RQp(2p1_G_-{plipC1%Gz<`=9%glnc!-N zRdPfuF8${3cFK|S^EzNUI$N{C6k+g3Y5d5zkWMDb7jttKK5p*QX{&5Me!Ii@8h9Yb z`}+F0{q8SOZ00J(YQ>{Nwuo_-vU|*f7SGs*ZCo>mWyPM>|LoVi zGRnz*!bw(3f_q6GdF>up2=yM%@{9<-oaoDFA_~K%y3Yl=#-`Wg@Fbrl`k4~M>$uu> z;d670r4TzhW6WLfE&SHlPrN@O+PljDEq0;KYO+Bone*~9<;Rn31#uZ-8cS_L!k5K>&_zpNQo#;y4J|Ha3P!=1I)mN-0Fj&1ryUGw{cOo-g;H(2!-l-zx^qtO^XCDmDc}wnP&iMrjtm+V1 zy7Iu0kU~MCGSKv~&q;fe^~IlY75L4a9Y}{}sk#usfS-Pcuh8}HQjOyF_I8yFA=d$` z;dq9!O8u5|{k%KT8tLJcWp>3#;rS#9DwUmg5%>(IO?C_FIr4E}Y@8C^I!3)lJ9xG~ zj(h@b6ngmn;uM%H8}-7}(0dLoEk&&wRMh@^y4bB(PO{SC@Es^1WJ~j0p!+TP`T1hA zm3m6;Kd&4XUw_%oC~ZAK*Ug{a^41e z%Ef|KTD{IThYeN{^#t8cR{d^ZW!ees5l|aUrx8%;!hW=w+U6&{4&S@;xQtUcX0^ON zBcP9a@a0;t@ZWy~NGaoJfqd+c{0v#i`sBj~G1w#=jsFFKytq|A@s?+tP6m-de~L%_ z>DKsZ#vJJ;@da!_Tv3Jy_L?*Iok;Ekj_IBZ|4`rq}*rF&& z$lpIuRX|`-y2kOe7`Sni(6l1VYU$m?jnFAzK=N+#ud0J6OwFR9h8}Jee73V~xcK<$ zCkZOzr5V36l#aAyrB8Cl^D&`xwVwUJ+4kxb#CbPtridA#pVaG;9MlO~^C9DP* zgK4EkIl;e3OLCzz`1UW9UOa3Dj^KEbPpI37$0&+s5hX#+*4B*}mkM3fLx{HsqmZk* z^4igr`6{Jo>HIboMC#ZQY&9ojSz^-Rzb5$+F)@F-tw827Frr(TJ7@O+Sl^Ax3xZrt zzkHta?*&g0@Mb2!LtSm3FIN4o4;LDs-UF#~Ds0cs&qm`JLKo8rNb27vk;((RI{Y4v zm)m_jzx$Ew^GMS>W(vC({b19s6zvK^M7ah?`{#EswWM%ZpoZ*S|-YP(380}qxbIyCJV z-VOez;QaGzRc^Yu_k+v*frB-(+9HS?_(#;??kMM&>j{aC&9-n~1H%G0bU@j`lI*iT z&!eY*koKtdOlfPkLrqLfytjw&GR6IV9?v&Pr3cLFqe+pe(DUh{*bUyR!U$#AlZvey zp8R8Lj1G!)lr!6YUFeS_bGqTHu zkU|3ElScigY2nJo>AAV4ZL?Uh#tQ&Z&l)pCJU>wT9M)t4kjP+Qud=Du;+?H-;x(Y%40rcVq~@VWJ8D;Wf87wiTYar zBOQ9>LY^%@=+cZid!dJ}NWK%SPun<)Li} z`AmG#F)WPfQZ**7CY%r3G5nyAA#K93@rcld@~v-wSYwSi2LEPR5g<9+v6R;V)?jRE zaY~IU!}goyGjDCE=3c*1z|)nDX*#~kW*=Jn%kzVTOPF7GcejL$v^0GU3mE(^I5;@K zB}~~lA6N!Q;NrR6ExX9*XxMN9(+d$H;pLZBI|Ou0O2N~d;3l=nY>6r$(w-@rx7SZ@ zNx7;2VrY)lQ{|tTfZfq{k$O^8NPTwrB93^=Rq$II?bnD6+P$w-Jv)-2iU7ro0Kt9I z3kX?G$6p1*Uw#!T3Ai>XTP};!Nxi0qdP_=o;Kfx{9|vNXLF!!fk|Hv(2nwJUG6m?| z)0}R9e#JDw!^7Jjx9nyaBB2v9JMI52?Yuc&5xHIqcv(qJay@e2=~H5op`!Fgn@6@o zYMkG~fkY>%o(&}5p{l^m1y#O`J@1y~pvyxUC6v*{0Vx-6t|Q~*8RN|bXwMM?T#)j)fJ=yWIN9O^M}3l{ijR_$3oYUm^Kv(kGrmiA!L~80NtubG})?tcq7cii<0``RkW+z2jQP z>FwE8anz7+`A7o_{$fVr;X+;UNy=+8e@b4<_wnTDYrYrbg;XLQ-)7z;!xx1-G3X<+ z9n)--P~zgQHydN90$|e`NRnx%L}-o6dUY^Ym89xLZ$9*$_Qv<|Y*1n`kC&nQ`>LUI z>E_WG%s7x-`)YKFLN{MEc2V(lcxi_H(X&!2QctkT(KswFdt#~J* zz|P^G!g$t9?T45LJ4=9MlGnk@AmGFp_L2JvfCqx2cY$=AC*B@NK|n>%}KLQ;^N{|i%pIJMu3;N zno*J9&?-@-4by$^@9*F8?%g|LPTgAilS+fuk7f-HD#U0Bo09f==D!h+2NNEdoxyZ5 zbX}pZ-kC+kxX|dxyi4IBUM9itVsYc!RuvZbqN#Z)I^-IixZVn5-#dR6!Fho2BiSKV?A_WAz zfY83my)y*hc+<%DtiJ$|(2UEzA?eA=jV1dMWT|>Z@}Et0Laz!tNN_&d$lp__@8KG7 z5for&u_N2y_j{)@S5QTye9P0~Ta*ZtNaMHvxwj81v#0cP9#0oISq7}P!~k?%2gDq; z!^aYtc;q%?adab=OA|rB95&-Bz-AQAB!`yELFE&B$kFNdtoPWlYv>abeI+paU4bX^ z*Ed*<^#euis4CN?aUU91K)lM4SkRL&1F27=B3g>izZy}Z22(*bCM zX=0DN12Df2xZlje2;tI^SHrQzN8_q`cBnCtu8&xD(sos{Zz!%3>({m^MZKI{^JSxn zIgC2mhJi-2=B~VT8I^Er#!x&OB>%x5^O&xJ%D4ic$MwR|%<|Z+0i^Jdtz4t9%OQ zbpO&KFiEFg0F0<}GE<}}BX%;H;z=fo*nnIBpbYne*=QA~a$~eO7addjjY*%DmNfHs zrZr#O2z->VjbU#hj5L~LmgRKD(XToXZw#nbKY3LG*jQt~#DA}HOx@D4cu%Qw(_D6z zQ`X@twH+a^;BXDBQS>(Sc>pd>#l>|B==6Ug#-b9g*V*)2Y4uza0g&u|;yzu4?PkT(s2Giav2CW(KqPGR zt@GvIX|snm*Ne1Y;UivsQQtl?TToH@!_S9QrDg2pGNe^102E&KE{jR+}v72ai7)_?$S1M#daMev=U4y^=8u392Fz z2F;Hfqjn*NT{rlQlLxB1==>0|On@QR1D@}8p8$o2M98YiybI*;#NkrY$vB5zv=+kRAxS zj6{049RxUa)wCxBEfx_-hRsnR**TRa-805>rNa1OP{=_*GM5qP{Ct!vc{p8wi%BKR zye}Ltz;3O>FQ@D)N>`Sc4>2G&nwJo9M5lyXEOM)e{fJta=knS#H!x>O+P=E0cwm{Z z+4#I^n;%l5RON9ROhRvzJ1y$8l}W@MP)sS8)qxWYBv~@gbNgj--@3&{hS`KncICT` zLX5y=1_4oVf}esOG_R1DmQv!Wx}AD2HjD%Q1^M*#R;Z3AUKGR~%4^?pv+6^E1rqhz z0DMlu^4-Rt7&OgP~`WMMT(K?xq27m74gKvjW%2AGEUCpB8t=AppoZ+rXAhtO~ zv*$zFX)*j$fXBuBd{{Gxj7`Q<@B>f<0PRxuhGH!}Je+jmEVQ`pZn}xLo5yi~M(X~! zr2Skhyt{tc6c$pp0}e48g~q3feBRI}9O1wf;% zWak)ai4TCv+nltW&Xd_b-x&?aCwfOfz8NG?Ln-sOK*~K>FY6lxZX5!jV91Y|uLOiD z4coo>z+mv33YNCgMQ*io@DC|w6a`uMK(I*EX|IxmDsS~4KP4*W1c8ZUmoV~-1|n}%FO*`6Lk_3JT2wqXh{*Q=}v>!O?7eB>fhv7WjJFyGui>(-={#J&edW1Fi%P2|6>R3Q&#sxdNW+DN?-*}gMcY=~+Q^(W z|2_sJqV)AX%yxSqn!-`&B&dB^m|97nsyjI5zShB`P8V6~=g{9;r4Pp6px6zF@K$Dt zEQXa(*GxMzMUPifBb#*HH8%)xP%WpF@Jo0b(?SfAuELDi`d3~}L zFkY@(M@f7hDFv|x=B?3UGzq3ix=j&~soH|kDUBe-9Hovu`1N|TIR>IOhYluwC`Li? ziXd=4BkPYMsk$3stMZj_TJLIwBw|wuKQ?}v&SRW7?`kGbWxiSO-qmsTm<#GA&#POu zOX~h^$-^rC5&kR0JuBP|$rs{Y8Qz8=dhoZGflWU4R{qbUtPXr2HT)LD-97KgHK@Ci z)gh76<9hhTBr&10)GKAwK9%tA z&3slZNEc4^$3;&~n0za_#mS`>+8A>x5%o3SB7D1MgJ0g!bJsgag}uZCPG3pX(zsFz zp_~qaCf(Of6V3+fnC*3m)wg?S(sY#8i$^ur10y)hVqrOC^Q0*_DPu2DV=y52d>-cSHDXgZ+}n3~=LsyQ8MH zhJ}30yoq`hTK%P#tdn7TQ(rlD7>(k%}@$00Uk90&gjPzY9^m_llfKKah`k} zI4IbVyxzC(6i>mFTljLXtLerUL%c6u#~2mmY#q+iS^B|7Q)?-ePA&#{dU`rt-#vJn z)%?qk{sgY-NO41?EEsNP@`yEZ@REGpEpA-foU%u2rBD6{FrB*zOZSc8x*3%v@TWtKBek3FCBZ< zmL)s!N-?ik-ZyjRgxUm2S7aWweY!RsZ`Zv+ zZRL+U&MKu8kl)FiM&t{gHft?|)Pm2%$wKA%%NnnaK1janN0C@X@Lo#)$o!DnJK0}`lleY4CT!mT8tt9LHS)X0ZSRAGPI$Frvt|vHYJeZAk8JmRf zy_9$$U;t+FWTJ@Jw91`+ugrg!kxy}xN{PO@tBEER-ggrF>(GiB8bUv(4Mv0B^J^h> z#7Y-LgwwN-F@qUowk_BNJlDzzK_AQ!R8^#tj90o0&G2;5F;NVwv-SMf`Ha=H z$mllCF|~$SC4Ss6ONAY>i^933RMLhD>pc1G=aeT8yJVLgeUDJj*0)2+>P1(l{6I$D zqT~hlSF*iQ>Pkk`iaJjj;0S-%z6`mv7Zv-i*pcfH^{8~Y+lA;TCgI`H87ed_zedi4nP~aMBgbkii zwtMh-0uZvT1_;}C zCcGnw=)#=HgRZhFVsu0eG?RPpnl$;4v`zm-Adof?WkgH#Z`R7MK#L5*{wN&Wj|=IR z8~vjTCaJ7^=JA?RpYi_oM8~v>;H_?>XVbeK3E2Gp`@o`6RDZbE`SJtsi8$_2-N@$g z+wW3?ud;%8qJ1&lW$dE6zmunO@>p^~^qnEz_IWMAv`P_QkW&Ar7NBo%rt350Y1aQR z2y%3ZXEi|}kqr?&XRLo5@u zS?vKz`3n0Xk}+6IZeFbKmrU56hd_GLtA~?Xju9I6w`f}V9sQ^?ZsE_Hr=oFrGLeLL z*Oz-USSx2O#?54C3D2lA)z7Q58^Z+m@gUD8gHVz5rH&qJqXVH(s zuAp!(&^60QesigpjuuVAHs24`^5!VC5bmDTpd@@&!`s&gq-fi4&ystUQtk;1>$|&|`x&$ExC%=V?6vV-I#JR7X;BgiYMt_c^x;7J_ zB~R!y7`x>8PVjjP(w(nPfbUS*R%wV+Mj*1QHfm2i5Z?$(9<958z(VP>`WUAVLeFkX zyl+P~yCp-imj6!qkZy3eoOfWm*+)|ZyVgVz`J=kQ5n50_e;bJm{ediHLwXi>eswaq zZ}3wR)?#GG15v~sS1;fB(ivWu*cugPfyARmz6jIBKsX35%It`*Iqtw`1>N$Hny_mv zcblwRV@92*|25T>X~?-wbTw!;+1>GHB_1a{ zDs|qQdVz6SQkPau>;}D}$=-c@tPwX~GALqQ5oywq`(7j@tu?a!?&k`oedvWK5>Z&kt7NeRYJ!)PV0R>BEi zNEcWrt<6p!$@gURxQ3N6=XPY@d26DVTzY0{c?`0?1NK0k(ELP(A_PVO$9y)QP_3p)^m+eX_9t>s((tzIoT=4)w#8|;}AZdZwT)L9cCxDB$hL<`JRR3day?)i*PzF0>A*U4 zA7pnBMu@u3;TV)=iqr6?nK$1kN?;AA-Lo!WVNG-JDA?eRrlYo-r;lAa?!S1){RMY^ zmi8&QZ}K?X>~DLxIWZ!=_&8>@z3D6hX^dI<#euw`^uwCm#g)XWH#00x5!K8hzC4%M z=*n^azFy&|&7jqzU-YbxfB-P_2|I>*kaojL{gydmPW@Z8;t!eU#cqc^Uoj>f z*E*i~=tLdhHThN$|Gsi-49Na&{D4lQEnAuTR^&^NvG(}xr&mZweje9{y2=;_{FO8B zI53_LKls%3!ig?i%TN^o<}S_xd*3sVAjN?AZTZ36^TIY}c6eFl0!+#?Td?NncBi|ik>~vBa z6;9}NzgIlxciN4zqb|(J&!4pJ(LLy|_qfy!W%S8WFH}?xjV0|Uk!u2drabC&+CUf= z=F@AkSV;1&Y~*OAHBsl8><}F-dXw&AR8`roE_$7>A`$8P+_c-`dt%|}Gh=8h+|#zi zAUOBkUEYLcb}ItZDv@z#QVR-A<+aMnd}IA66 z0lO`NktxfIKqsd&u9pX>-lo=vc4)zeS6Xcm%DgXyzbDC>)`%w_0^KIvnx!aS@my(%$ zY@dS@NXQQJ45~?Le0P9LFO@=r4J>rr-|9N${%U_$zU>6ys5i&3+rEy02M=S&`>PL^ zGt>NzzozBb8PJbd`n3Hz@|>Rr1niBP91Nth#rp{uK_3fGyUpW^|`(1C<0li|O(FSD23aS07%p5Xa*X>JnC6{>=D}KK|ywPG<8`2D5jq`HK)ESgGs48D`-w|LtiKycc7EVjz z(0hKqn3NEh9rMp6)0YiJ_(0pSrr?)TbTt)esnJURnXyttI8kZ@A*`Cme#F>4&t0U| z<7l7P<8VIv--ZOe5oRz7&T5_W*1+zviMEF<<`x%SQL5fdfXr6@zOs2OLdE6fwu51UtLkUN|0I zWWW83$sW#}K=$Gz?am#1xOBL5OH9}k?{N)NT%QY-qn;`z{jb#3rY~C<{`eqJ$77yUlEm{ z6U|40({X{dN9`KZe$L}Y4v|=`ijN$zk&)^Um;f+No!oa{M_QMP4u#>Ye-#WbHqR+R z_*hvL)8AOv5-%lKhmuW@^4ZR2xF62f=s;k$bCuRx1JMD_P0G$&&krZr{~orcBGi45aYa<%+cEx}?3zYTHsAfOKPTxzs$DjiQ`)BYD7N-Or-9@GFv zTu}=+EZ6jg;mFOE>$=9b9t|JU8Fl!=24kpv)a?g=?>zqwSL~C?n&#kqK|Y5yR8S~z zy~LlbEscQ{euip}UAkD&+M_r*&;s(dTa%cj`MTKHI)xDx=`jyoF5xNLcdqGcI|gyh z#K6G7Bx>K&ZXpP)I~au;Ua@(pNYCVVnYN?;#h>veM4@H-(F$$^M8q{A@5@hz)A@2{ zh`@m}aL?ted?3tY+n(4a`&2^9YzQJJnSK zY0+<|&0@H5zo6b@D<1z!L66?aVsv`J=`OZwNrRB&KX}pS;7`GS!Y)T34iDdAeb3p4 z8oPvu$D-3{w*X^MN-972*L5!NCM|ep#XhWiot1}G+#hMg@=RhB-`I3)Yd>~zEs zyrBio-^}OHs;Lr?-mVMj)eSA(ZwOgM#2a=T45Z%%SL6ImTW_<6{`@G79u=;4tc8ex z04g(Ry>9C0=(zc5<{#`@qMF;&>vw-?t={Zp($mueg;W{()wkO7Ec@Ty-6h&B)LPuM zxbA9|YE>*!95)UcJ0X$bQ$v3mK(gK5WY`-c5W|n-+qYu3A^s+c3zUA~M4XI}*VYdY zzXfv6{ce@GEetc zyB*hywic{f<$qy6-47;!ZayD34jT`-{7OrRf+)7fJ^8Sd!%foDmAQQBwn4(K|4_{_ z4~jJ{++-A&3w+&0(OhzG2Ef1{N-^&@S`hcWUxmrQ-BS8Ed23%#0W9kXczGsO?gIFw z;cYOo#Lp#uUWaV8Ld8Uf(Ik%60{(y1ASG&a7Xp?8_7cCg?rup0tzP`G1k=Wb@HMYg z9_FyoYV|jpsRfVMDIu`Az^5)baJ=1|u9a$md|ZwkwO_q5&?Zt2kmsJT5;e2$;q>-P zHbY6M;Eqhchc~t}<&J;`b+~^SN@OFM#PYAyt&xlJV>XFjGT`WhF4 z<(cF>JmyDo%D_!h)*-LQo;fY>)s+>lF31rU;VzFqPTSqxZ5!}-HYkiH@-|D{FYS*( zy5qvtRHgV2lU5J60P<>D79ItcTsIU$RDA*+=ck@4!F^TCDX1JU^flOJVREZk`-UW(nK6EE7smH)(v^AQYHt6T} zX6u%MVkI7%lc0uU=ptCio(a=K`%s-T;sB;aLj~#cvi-ZU)I?FJx32UeB1fQAATN7vg3;nI{x*$6mK6NC70bXDuHC#VDcSd^#}QYAJ6!l zWq7N9(2e$)qu(Ek2K$`d+&J=hU;e$8cs!LN!n4jHdmokz7-s>Ca0MFf-^8R}B)$hX zcV-m?$h^RzJjL7__*R~|Dx;HdW{gf#&M+#oHEnIj>;w*{@h&G7j9$=!Z%qAClaWmW z6VN<%kxexlS~WP{FJu|Ze>7bA;7Vn_B%ljXVH8?u@mOBz40wUnS&qA;tmHx8__mpB zr+u_-YZ21rMYcczmCN2ySu|k72z0H>y5IE_qMd@Lun#?Vcqp>&4@!OhOlAgn+U$m@ zU`q(ttd&q#CAQ8Y3^_WABeuz5p8RzZOXEwT;Q12n_3zo?QJzfHv4qpQa`Uzz}l zGLNDk(L7^__c<%DYa4VQN)uWXzPS|d1&RC7Nv@HIU%k?;r2W4zaZ z)m2vK1DYWU5INUQS)#*p{7ZFKD({Q4GFMlwZYzxfktL+NULfQbbp|- zKu;1vL?fbp{QKn;LDAjEmA>blX{w>6R;sq;M8@5xAOs}!b}c(QcE5+~m6q1wnO&=+PdCM9Rc8YB}i5CQjDO@?~>Oh8$Dm80EF5_!zCy8wp&i#`Y7WO zJ4V*|#^nNE0gdvGgWa^obPRg{XNLwv*_R+CEVv^s(qKCWy4VP#?r>T2yD9uAP^7ji z`v|&yun;9xM6FB2EKi`oT=@QN!1p&27~&pvp{$rp)s4HhwBuKf^CdNAR>9tJ=q*Gn z*~`e1S)*typMdeb*UKHOBa#uI%ed#Ak(2Zq;HTgULEm+{AH%AN zb?jrWgz2}a_W@v3rUQd#_o#k{zwap!#2K**Ss>2~h;qlcr`c1HFrv7* zVN56_uEB)M+8$VZ#xv#zwN-Jo%3`)s7#SJ8h<-lz^}N5_`*?gWl2E!i>K;i;cr$;3 zcjr{4EYpD1!J3qKY1<0S zd&Rt8W4l(_T4a~C=~uDA7f94Mr4)9s@omhW+nkAK8OAU2UEVib*oz0Oj!cU7`1LAi z6X#Nm=`sKhuM?j^(TwT8!-6XHo#2a_7cGa`4FeoY(uHJVYC4ICA z8dFw)EQM4 zPB?H5Ey!g0)b;f3)iH7<%{OCIM>4MP4XrUY ztDx_OF+%u?*t@6+@n|9Ph~Y1s994o*aK8y9%8hQ;j?sF-x%|3j{6mEe1+swD&|Nigs@E-?LmJfDqfy{t3zX+XT zPLb8f3+%)=WX63`h*deZzLQi66F~i!Wfwq?X4PP$)@_w~-_hc!xmKn3EbZ4le^|Yd z#%W%76HF_$e7u=YhFb#FkS;(;QuV?~DT7k!TNLxgskTJv|L*@-WDWPbAN^W+2+0`B z*|aYTi-9p2mGZS|p8#MfnW0c%ap`P3p01Zdt%=?)P?2$c9ex{N`k6R4rTvbwhtl-( z(n?SpkJ|Cuzfn^ZWf;6VN;Vg`mV2W=2Q#mQ03EahXczZv|9fkhz`uV#fxOm(+}Wu0 z?*xVLQPCAnAEMP#w$0e_@xLa%cKHP=-VC@|C!EfpPfBR((G6)6^S;#im+4xH$ELdz znfX9=Uid#8HGxvS_Bo{(6>NWaR<|+D;mW#vwe~dCkK34K)Yz1gc0oYWy!x@Cz(0~` z+h&bReH26kp|Y27K>dbHT(+;7Oq$yNulmm!if8X5%g!}C&d_BRVbff?aRte)`pL%m z(|qXzO;o`d!THnaWJNG~nqXhe=KXUrpTIci@F z*l;c5!W`?XWLri%zR_$I(g-mdSy(5sNcf#=tN=hiaH4nifG*sz6jujP$MTFAP+aNM zRYfhv{eVBNAS%?4J5k`?lIwA_h>^sudv4zSg+)YZ)#s$07jQm4ms7b?oyA_p{BIc* z4MkJFKy2WQIY6TMTnC1pixz;G#*D(jBMXG7c~n5Ls}Y6upf)AESnvBojpfyRw-IL% zZw4(k!~bp0L)wqmy&TzZyx5G{P7|S76Zl(oxT)a6@Lbw!_3@RZV4F3(B#-vWE z$8%5KZI$L4YBeUg6O_%!2}~$?(hy7qsl^ey>`ttBjr?FSy55^%vPR-UsdrrS-vXv{ zUx`#P)sKF1a<3MdwL>pmg8K=iwdXXj`8^qn?g5 zo`m}P^;Mu%&`g&P^ggWpl?J^DpB5g=D|Y0LL1^elOwt1Aq+s(QNASPb&2~}5J9$Le zMV;4K0Zsb*NH_V2uaRl>ibShvokD7UkSN9?(MMYveP<-GZ0BD+*@x>CAO~^0=|l&k zC6}X^Pd2(Ssp8#bwrlZQHGKp^tb$mt|B$l3zT%g<8=fZlSE=O>cYD;d2J(oc%H8}* z{fylw^I2U{EPBVc7YnOh+pmQ+IsYdS37263q)aOcFsm~IWFAFGj*cfJQG_h&j1_}& zGBP`&fP0{XtR#K46rw^)SVrBDG%CNbqN}<5ZSr$zyod~wC0_09OmICHnjJM1@@jKS zDJQv15usSdmtOGNu>5kJ;Cf43Qh6OI2ksP!TMLrRAZUfaEq67mY;XI!Wcr*MkgIR0 zsj0&rNVs%;E9M>z*Io!NRp?dm4x$)aIvDV};6wcS7;za##Ho^6ZbStIZ_5DJn{%@k z(CHsv`;@RFZu%MiFY@g|`c3Zp!Qfbj;v8kPWLaiJe2c%7k}1k>sQ)^Zc{_bYC(6Ra z!0kr$fpF(6N3;e_l&q(n-snmYK`^|Ux*@DO`_r|yk&fTc zAkagXL{>=r`2GFmj0#r_NbElK>ER|I^AAbycT4m5H&UrliQ^;@r^wnVDMVx<$icir zCAZDge@mg0{Si2LEb#1VFq_iM6ZT(p;_*VAc-1JksH9cUGJ>OQ3``IAvo}_19lm$P z#VXn2?G~d+Ec|bM?)Qp4{Vu2F+%>OQ`{w#foMv!YO+Qn_mj$2UXgLdvDj__CTT;VQ zDvV?413I1GY~Wk!T&>0EBaYbRl&9@%xiwQbcSP7xc_PY@6p;nXNIIt3-BE@O^Hu@# z>ZR=7U^Ho#ZP&YrQ~zQKk@lwrt856o*ZDA$Cx?DB_w!Tmt=n2i5BT_|Hn2B-RYyrX zz?9E)nFJui`APR@x9zKuWUjS#ATo6EKp;cbVHo~&u2h)8n*W3Skx1#lH@2DsWM#?E z*rOP=NV&U5i#|h~Uc(jlcfQ35sVTA3k_zR%_l`l8U7sLxFz%u9+v=)m>`}cL@oA3$ z<6P)$BlYeebo1UQ6w8Aa9AB)I%xNorx1BIjO63DsSz))or>lTfRzECYaa8zFse#?D zkfK>1z^HA`fiD=c!_Y$eL3E)w_{s=x_^yvYrCbm2zBFCQM*g33*Q}m8o|}$4qql6$ zQImsk&el2n6mE)-h?>Q!DH0oM%%niC3dV|f%2OLdP5a9WvNVc6OqXldDf^@!tz;Uv z&=)d~@)~1A>0ED^U|>pM?{^i{sIsU5$(9Wy((>4xz*Xq9Tr3C%M2+u2cQA^P{3K=Q zC2d0C>k*&p7Zt*um!aNfJ&x}}d^RxX6<*iB3YUoY487y#{7d~LUZiE&-Br2^s+_5J z!L&1*W*~00t3Q0|cz1+eauDsvA?ET9Y!WyX2-SC!d;@8~ZLeCxppd7YuNZO#JGVyu zcZKWEPY={;FnV|z>$d|6YA)*V(bPm|IS7#w!#CZ66xFY3_LCJl30rrwd^QEde{a$H zm!HyYuXA$;>#R;5)=nG+zW-h;F6SrP`SA=kL5C9EHjKz;xlcOq$QN3Yceci*9f)|g ziqX(cwt6`C*1MbKI-GDQmDfszi>vC5_Sfid-`a?Yi1;o%6wW3p|H1O0PWgLo9AlIz z4XI_l#6{g7oCZI;0bSXFoFeGFnLijqrI)!V6nZEln`}UCx-t#wwXq5i?(P6dnypuq zW3Rfz-|7@VkMKo_%iWemp~Cb2l`D{js`gG^Cj&^`)nY>?a%R#`G_(j8kNVD#NP&)5 zP8a9ONI75TgsKpFF|e)P52d6}2sv-Q;>dPrvGdGd!AZYI62Qfa4Fh?9x{7B|+V}Qa ze)OZJpirvA9*-%vYp%r+njba(usSiS9$HUJP$&*+i@lN{iROv3ZF6SxG$O{E)T;Pc zq1Wbh_5@d<*R)!1J{jB8V-rFm8NCtp;iZ`^rkQfOu*2_-uYtvtdAh=_y7 ziw$gw_5kG*5s{J#&aQZ*#&yK4GJbTHMtsn`flhoaV=9#H-cp5x z6WXq}-Oa$tv{f2ub%74HrwcefUviuWSUKSdE7G}zW6PAr5*Zt%>dcPNr_$tZ3Sx0m zfVT=tv^}dFx+}h9mjNQ*S4#`vy!MZcc6UDjqKtPz2t8B+Lc_&`LuRa&TBYx!275>Y zCa;0CA+k7(ojq{-n?>@!&HP(Tw(x68Zd_8NM@-*5=*#Zd-SHdgf~l?`#5v_`aWR_0 ztwx6x@`ZMvn`sfxW6BfOrCK)Sv^RGq!|@CikB^V)qR0ENvU(es%`o5^Gu0n@oqT8k zfB}0^kwzwJwUcb59{xU5#ih-tm88K9$A9$-Ojy>~L4F`%sIvJB9-#4hyM^;&A~r42 zzkkz059M5ho>=mr+R_Eh9Ng!oi87p_uom9rOazEH+gCZ_8SIo&s1=;_Hb?nRX3R0) z!F7&80^>nW*5v# z+KM9PApZ;eoe>P)d?;@mcd|9H;%#T$I43%VSH;@#L`$&VHZI8bcm>`p)g@FhiOL-b z=ip|~Rf`U32(??YdVad&iaipW9UL5F8oo)2jm4>IJ6FsEX5nTTm@X7uld|p>0H6wa zzDp6jN{W=nDjz9!g}6)oQGW0IY&?WNIT$Qy0m-zK;0)h6`?NRq`B++-erj#)Wd)sx zwLl@ou-zNx^G|A48MX^Em)Vb2&W|z=7xFL-_Uq|9Qs@W%SGWQR!P7xH!p0rt6@I_v zvm737mHY0iR+gC0bzF0L4d$ek`=1KX$#5V|4t|W|mslD*q{du33pSM2&+ZTZ3eRo| z-^kq@uiT7fOLSJIEmALlirpI;=Kh31_oa*Vx$Rw%gD?8S{Ek$Dj&zWcvj$k{I#(Ai z{=KCy5~rXZts`FFjuUxK4Ei=j>&?K-{Au}jsfLu{=bc3A*-C>YaadHp!OZ?9WjM;) zPi<39gb8?GtHT82;FrQJ^frIr|9hbM09dA@0!=oz`1Jb`?v!;-VrYX=+~4dSry6AeBe0y@4@= z9G!uC6DssgJ#DNz{r&wLe1LhmuIhZ=1U`yacfTtQS}U@%jgHE+t1L@*SH27JkUNoo zYhZt^A>E_tUJ`z5T$t1G$Bs^;hE7TJ-~Ux`Dh6-EvK zul8Ll{B}N%7ThOXt-YWEGG490P5U#Y|Hs~YMm6<)QGlU0=~WSs4x)gD-c=A05S1oP zKp>#>8jzBpAXosUhbp4{xfUMTJvc>&RWBl2X7_! zo_o$c`|N%1eGlntUT$h}sr#^{_&dR7X2aoQf%i;I(9VNSKlERE{(Qem^OLDd*=|l+ zj9m6yU;mRqm$m86*{ctlRz{p#?AqQxhr*%=FQ)RMDqT9Z%KB2I7aJr09P+{@Pr*yF z-$HmXO_C{T{nm(O&s-b zQQ)1=^2qpji^|r++0B1IY4*|cTIvV|qElqo=rgtuu{TI+ExRrE^LFV?a8A|?A4=#O z5l2QK7aOk)cV7}q-fX~x%mJiy2Nqg`rMiy{@vdqopRjq)HMD9CelcP-A6=i&1lhEH z&5Dmt%}1>4)C|bO1eHAQmoD3|YvEDPiCeY9VGyg6ChHFmEtDd@GkbYL?5y0biHRkj zpYv@eO*Ae>g(JIoQ&P^W2mDDC(gPIODS2=CjU7moMlP z(MTHznNca$%ApjwoQ@iL1%5P3I@AzcA`-WFJS_{F7luz~@O)U_B| zhKj|cEtl8)_d#3U+|@$Rk+^eSLUHtK+~bE|Vi6MzR_TY|zZEo~!cpyvLJ!+Z`!)3S z^*=we49QDs(R0KKIML%jA}Nmy>LuH(sJ<%cywhJ27ipqx`hh97?)7{dAAe_})FaLu zG#~i|nIua4o)2XL_Oy^ptK130zL%I&pwGK=P8gEz3uztn@&(sED>DMxSGoVCBMzag zRBOy6H$OyWizNQKT_k^OYuN`Ve{r>2^7MBqr>Cs61U;*o*A1fg5LINVJ`{%(&&S*I)< zQ7`^3qLkru0#j^h;JgxwF@?)>@TI?%(jqc^Wg6j_KG&3|Ncs5`7xhSEgA1_G4bm{@ zgVbik|LYaW{{l)5zg+uuz5rzqW2_K4rcG0dq-2dG?T2EoLPdlo2!`0p*nHIM^$Jsc z{jxZOO@_Qf-bLkS7VPl7VcqsN#DO)a@2cSVlG246zlPC|>078*slm0b8+(QDVjv5s zB7WnbNMg;o2?;SVO9`FOppEg;d&T#1H{M-PE;Br9ZM>vs{vi&}IjD9b|CP?~1=4X7 z_qM#UhE?@-u)C^umLj#Z%H>sNu%>8>y*Q9@64yez8sy-Aiddf>hw_ICshwNPilzLd z(6TAj#-X>UoK&&V9u{bejwhkUaOuGcfBH=x&JV2bFNb!?!2jg2;`}ZoNU8Iy<@h07 ze4!$bSnJb@)2lc%a(cWy8I=MEzJ;PclBn6K!>Oh~mGD3eslSf@ideFX3MOdm#z2Mw z426LWbZutvYW*Grq}jyrYCZ-1?mT#$L1MrgFX4h~8^;)Oojl^9sw_0VFri$#PVY}x z!I8a#pt@K(D1{#{q4-Ae9JJSDLRu_Y?r_$#I__-4d^3u;t=fma@R@j^DiI2|)eA6+ zHAFTMFJn2ug0~pOk`OcYP!W5#3CjiM4!`+P961`{K%+%JpFLBfuU|9wIDGryXDeYL z{Nd_Q?q)D<{`e!nC+=OZ#ZAmmKT(kv(OKY|W}22&*y*Z@yZGxc=3cJGg#1q6Swx0D z7z&5!J3BAkKxI!@mRsD5?KCtQuT$pC^nf^Ac6^w2qUu+OsD~2Nac$G+MA5qGieB^v zhelZl19LQ!&19*S{^!}?^{R>0B z@_h*xL~6ybVX{jW6+b8(1U2MN&ZSohB+UIzoO{9X=`k%%{7Ndc6q#@1tqYI8lfM4z z%RnI@RX2oKg#YnfwbcjM7@2f9=bLds4~?s0F^1k@6!^N>XMSpYYB}dG8H)7Po54QyS$wrbX&mxZEH7DV=xHgRzU5+){b7JTh z8f<4c)202F4;ux|cU(#kqm-Z-9mc*Ry z+3A+si5J7%fk-8+P+m)#UyhuSwARmvv+BiA;t-K{9~J+l!uCtB40}^Wq&t%1Hi20g(4)D|>7y3>Q9ctd)rx?lh3L^m+Z zc0&x6YhSE2IbOeC_VdE_Tw^;nCvd3QXXN7z(?Zj!df&x7^}xR}@H??ez6+QN)J30}TmQyy59)-FP54VMywD|OT5`~CkR~zR8 zdUMnReabebQZ{NI#3kKPz-~y)`O?zUWX|~AH2=*79)J>9em%jQk;Fq#28~SUAE{V&k1d=?H%>qDRuxTKAVGC- z3*_Vp)s>uG97aEHB7zaJ)+$zK90Chia^afC$j7T(1Ouu+!@#|-9UV98;eXysnP$~( z%+#)a_QA9$?~Ip@r33S)rE<&ATcDORA$rKk0fpo!y5wRQcv+vwtZDo zC(rXdn)|jlW~OWEiH}DB!!x~V*Ko?}^y38`)a?^}>BU&~Odm+=d}M^ugIO0;1h&Ql z7KqJlTGn;KD7)&HIRMZzth@XUoJ^mT>9H7}D5QC^HB&o5olL{b%-o>8QBo+SbBgao zPLx@`ovrtD94$4M&Q|uciiMSClfLMj{t^}S*gE%UZL_(D%ZX1>$g8Ki-ACJH_mA|f zV|XPdoOCeNc=zBGm~W)8KR-V}U0YzWHw}HvkKlH2yTPq1SSZ#PM}C74@`6}%YUEB{ zuPsGYqw3+W{EcP-AUQq-4{Pn6yp?b9*sDntQt}w#3kwUIg5u^8z-TYSUBA6}@xmJk z-68+Vyyg;8ZYdYRL)e`14RpE_$0j6m<;oQ>JTsw$uFjP4f_Jnn(+w9oyzqk&P(D?s zZlJVt(=wi}(ymcQL?G=7yu_v0A}v8DqA8qnw7xUb!!)x11;QF)pI{@gmRKez3E`{Toi_h@6v8N&1S@Fqg%*Roxl6(%OH;i)6d+Atpf<*Fy0=o4BSBD}?gEuEv zsR-Q+9KlyyA9jcePcRTFKhTif~PV(fjG(oKY6IL1)Kg%M7KDeTN<}bWSWVi=vxoNaLS-Fbesuh1a z2FZ9RLR>H2Q(KA=Md!{5|0Gg{vI($XeH^Uo9$d;^wRAWiIJ^l&?)fN-!goC8vr$SS zg-qO8EkeFJTR&U`g2kU7vD=sWLwtcm&>gCuYU}#lUFnkD=7!-*K;SwvEUa6-XY14h z;)Ft)h}phvVQVkhb()%69viCYFpHGt6OC?;t!QC`uu@Q1W0|8NEy_#Z?(6aovrFjj zf}SgnSidtF3`5sCMT@ugtY^^hmhF+9MJww>F2_RIZ-Pi zen;FaUxMiNaF>aN=6>A1-@H*-$hnD>fUOB7N#(?32 zj1#=EYR5{d3%tl5$xk)>Qk#XY`pYwfV(lrAC`80Hm!6B5mf+0@cyr(?-~R>@Nx&%o za3S?#MlRfa9!-!4did^`HIw#T+zB@(?n*g&SistS>`{KH$+N{alIa7yM{1MrE$aB0 z_~)n)*^cf*y&LDhoZb=Wpse7K?PG`kdVOcyhPCH1W>>39O5#(@bdFO10WMPO+Q(I? zAgTPOBkm3}WD<*g$)300#cg&m2;e2KU4XO+wYv5tvz}~@ZT%f|p7<6sna~+c?~l}# z-0utJd)1C4f9*{TUfBT#GJLl8Yel!2rB?vRFI9io;FKsg=*m{gv!)n`@xc(6}8|MXv~ zta+j({(aV+rCSoOWkOAaRek28O|w1o^3ktJ)wfA%!|W&K#qZy!Yk?9JXTID%omP?Q+=!@iO#x(8UA(awn_PvV*%FYjXClT!TN6(DKj8j|X z-&vCm;PAXj8R^L(>1m)W^Ctb$wdStJwkirw0ZfGO~Yfi$$xp0N%)$ab=7Cb_Ne@}!&!#jD-O?h4`T*oduisngc@Q- z3ig^yZmsU_TQ~-zeSDb9&EikuFLulZj~T-oqyM46xK4i1S$*sWP(8x$_rulu$Dk)F zpV*v*lC72?bMQvn@O*E$>6FfIel|6%agj+_4n6AyiLjmnAlBa903Hy!03t^`T#ILJ6zL@Lv|p}TCR8Fmy-jTq<14$|Bp3Yv*QTVMW@I265wDM~_z}$@tmZb~ zk0VLeS@Za@AgG)(>lJy!KRqWLW*!ovr-z9&4=~v(tqC1Cb9tdKCsg zqM^`f=Sefw`4Jce=&k5`*8^M7HNnw$zg`;HkgkH#xyh_;Y>xc$>iZ+UL~Y8cZlk;$ z+~mySSpLUHe*kJSEWfN=7WWc^JzM_WT716j9?0c_CX%)87wU`vtY0SXJ5g{p-zd*qyLuxy{e( zeNaNIul;o&(t}8tey8}bSbC(@;H|<2kQEo`cF>ZhNh|uaH=?K^7p99h6zAfsRwt&Fd>VXFO3zM+W7#r1HTK^))6nl@K7UVY{*&xH4_y?qs+`q`+9OnOOFda!jid>4yfu20u*9p;4r#C? z;4sDSM0DG{pMYM!=;a33rOD=(bT0^mfhLffGGeS&B<%MYshi!_KN&{)p=S;i;lhY8 zMeN`j-98DIW>&C>Ktdd3kpvnQ@pBA89e=cwT#b(uYo&nFJU#wzxfl9uyo3`#ny`Pe z#W^)YU1rIV=-cCc!})WoYlV9|S&B)=)e+EY4 zcCB_9ZVs=7C%zZDD)Rb=_}{%@U4^r~T2&8W`qC(fcoxWzlaEu2disijudLz4f84{m z6p$O;dlNSCLB7#1Wu?nK33KgQ8D-2YEY^9EhcnCW!+DW!ijQCRqHQmR{rQk0ZIU_S zGnAt)2W0C0^t9xFD}eLy7y#@?prVMn&|x{t%a9zLfF_ z^f0xDEASO!qP$-@=+lAuVQlg;V|1bEJZ=Idh}yfqNk=Gf><;1K;qiiwKQL@n185J1 znlmoQc4w@_T`9CHa|VJV8%ufqTH?P6F; zWBIrj_m!YfAtIA?|Ip)esASCg-{lVdt#SiL?GxM8@TQI8qZ!!X78}+M+751^7y=@% z{rfN7y3eNfVv;;w6ItMd==K((+2~=_`)2%u1uW;@@oGLlVP_Hc3y36-9@iOK|Fx}u zCUkcGO_-lZsAR0=WMvx56fqV^`(`kY%a6`rEJxl85y{)lxDSYj21Aj^{Vqe{FjrGR za^D$5tEgk)G({$viq5&9>+VB2XVJ+~bm@7Q0v6JeP_N~*i>{~lW$jvQcxe!Zml??o zULCSCWWsZA(!YM#(N!iQHyRz9i{)%|ppxiy^*)M!l_$iKW12a>_897z?q_2C(*#J* z?~|2wlttuD8xj`w!VvAAA88daa)Uwpo8MB$SlPGlsh|FiALH6Cb64l1+laVu;-Knc z#N*YWT-Eil;^7LT6e*!LQL3)3p2`B55cL&~$)Q_Rcy&CrsNeS$o$vDn3Oex9<6)Q; zUgp*nxYiyTOjPxrRpQg?8P2>WzI;`9M&iVaDDG$dG{bpt>k*a(N@?1yR{uox)j0Y6 zH>E3|()a`IvNlLVUogQFN5=4x)&jjdkJZ^nHn04K)pA$!RDeFZzEK;2|`LPHkiA%;DnCHcPU&U0H zjt8upW+^?bpRlsit_RTD8F6ufYY-n=icFGOZd!_Qe0CnOG>X0;?1!RC0r>fX+uBIM zaq;mw}DD*Sw>{K8F4 z5vfQsc~2gb;I|7D=@z26+eN4bUSZHLi&Uc=;bkD8W4UqV!-JzH&L%XbID2Lim4=J* zztB(n(E%B9h616tY^b_0>f3cJu<(v9+-^+ja|NBP%L$1aCTgv+!;Wrs9&Psl)EpDMv|9CG zS}i@e7);>}Ri|akZz^~jk=Bjgt#KA+2P0{xRVExmMjc-{HWMAk>}H+^E6oRunJSz; zo8rwZT>6Fik{ex;;;7wYPZ^`{CN<#uy4?enARU+7_a9XG@BWo~9Az@mtTaZY|17=Y zoX84qY|`9(tMPopH$6&F)LI&^-h3{Al9acvxup*&f3tmyvJ%F*l1jv!bNRNN9bS!+KX9JBq8|aWeXnnkNEVmI8 zGKadwrvBNvhBT0&Q0zXuuw#}xyAd_L!5*{p^q58mi2 z?G>C5h?Sgq zdpk+ERVuWri|)P4eCu7?NBxE7#rI%myJa?K2Tk614*u9(8Caj(wpa*rcmGHglU}ge z>3vkO8<9Dw4^d&9mgm#^g#G6TrPx8_2IL`=Y)#Z^S1p_3qYw*QIO(Fs22NH+&q<{? z_Y)L55rtdqD9IBR{J+iuxQBQ4wd++1MQg|kx8)qjrySXLe3@IkY@LzIcIC3SaMD^% zuEnIJ-iKd*9v&U3Dt2HTuhn`oZQejjohIvugz|gP=9u#e)m{GNJ=fr#A2_5w#ePAl zL_G%U|AUS{;#%;=c+}ae^4_sV>eLcFJ3Ab>ZH*2k(7Rb4qMNi_3iFWcYj)6`h3!!y z4(W^R!gAI+{h;0fu&*2-c;(3;E~`tGNG2Xt+9V&zY!2J27jR!Y1>MP{9c!WSR^rl% zEiU4CcjaQBNjt#Xz&oLYRc1LmM^h)2PrO=Ttf^a^^2@6*>PX)>zWj;LblYV&$CF3+ z)s(NnGiRz$j!YSdHb(;d+^z4xG6;_67H-i$p*SbDlXCiO5k zKsKT-fKXkylOIgrep2Ybc?IC_xfp*EN&Lp2!_Ca9~r9%F^YJ2 zj#nb%g|%hEe!mXidq|g*c{Z_=glT}%I(qzUx; zV_67w(Q=#M+3DtYJPihR$Mf~M>tV{Tc{a=9e?H|jOUz= z!;0J>8;+dp1--ld)9L|eogoLX>jC~qaEZ&i^oMvBYok{56PAA6#qPUUq+d2Gj}O%x z`c+tV=kd#r>)*>Zb|jM%0;D3kGHo2NOwb)(ew{>yyb!|E(Q5~Ahv*R0y_mi)I>7|b zu?NfdG`EAE10_|2U*T~?kF{fDTKdGj!P`nnq~!i#%I}esd$WH&_KLJOT7|*-V0(kq zEy0=@&4HTKD|T}dv0^tFMppbCry>?V{&?|RI@f~mkwN4;@tCT?Kg6VQE#z?+>h=|U&Z^}6YZHIm?L<64j(W| zp{w6;TK$6wqz0H=?RetEB1e4A%gL{Ik1m9ssCiM7R%5bYU+YqUX9wC|0h*x z{_9&)PLS*-V)gp-)=)Y+I%)fm88-r(pvo1?-nxS;4lSvjY@6*~f6)y)dN037#JuvW zZQ9Ys5pCOVE(CZqeb<6jZZ|C_=APw$@!5-Wg#d|twm7~EXk}d`K+n|C0emiZ#6K`h zw)YQJE=Jo;B=47_%b%jJpR@}k#U}&m1^et0+QgOuF4z+cJ5JdN`Um!mTZ~fl^Vt0dc) zrF0r5kv!|B@DB*(OZJ_S9hgPMS_n$*V-iw&`@M~M{nIgs9)(OY1bpLFUXut+V_EI+ z!<>H`<<-JVINjpHwi@c6p4F`l5qRtm_Mt50&0j&|+%6CX(5>i&|MUcoVIhPNHxSjv zIhg#;Yxea)r{1-t*{I(?i}EKUb&%Xg^Ozme=_snN<~7bu1%WOLRrhN&H|bNXj5gpL zYPyiz0o8h)0Fe{Zjr_4!oH}N=CA^a8l9+Hhq7%ylPeS(oel4T>YRMyG%W*qW|HqTT zs}uLlJN{%3a}?2Uw4U4Lww1YpYrFa)dFNv{bYe8AXltpC`O?GM71yJ9BbCmlO5xbx z7`9Ap_z#?pG|h_JJRqcI+a24Z8q@gnu5)TVc}Vvj$dKUU_oBCc3IF$J6ZW476y`zd zO_-K98kyGUGd^XDKxqWFC`BxiYCfl|ceh6U0(d1Q!fADP2rpo2&@MQQ!~QGy?Di(^ zv?I${_1k2!tw@VwtKxG~F!ddqAL9Ft7e;w@ZS{BHp?!}&HCw@$!VV^^GgyVSj+SO>-QDYw z3;}7&E{xw7IBE(`{`lbipVD;D&NrX8J;j382g5DQ#IZ6^5xX9L58QbLW8(w+t$Eb|7L*}sV%bN;Blm~@5&4lbkG3+HvvThE+$6%+6oBh(!N4b7+l z#KzkXvS+&!>wi+r+LmWMs~z^NkA8hIUdJE_`x%Z=$MGfrLO%kjFU4?YIrw+;vh(us zK|XhjKVZBRay2KC+vGb{h%IZJ(xo6;)5-4?-N`!0ea7Qh+*AZ&D62eW<|^IS07A(Z z37u34lPZGLQkkjs&GwztH;ftTziGN}UJ|v~I&?5F+|>WETpgo(v(0R}7$lY~sw^Lo zIr9%Sii^4z)UN4wb*cIhgS@zjM(U_z)B0qQX|~Q;2=)MjG0y?Ux4%B-ellKa&OV&3 z%)!jed|2UtJiPXnU!hIZTsekQIxJkzsDe9C`lw9Eq=b%v>*P9(r>1807-wBsaquv& zbI-ze%q?T1f5LbR_L2$E1=2agp-XNh0_4cxdpzzCBnM>KULmwgDDdLau5tcG*)9D^ zYwk`%#}4Jc6OhRmzro`hP72ryH>HvP+s)5$K6{^A$9rAQDGp)s6KpSex<8Xb zm(VN0i^WL{FXkuWEQ9@mi-H7`&k5FAP)W?l#CYVUs8k3l9ZJ~ZR1&!-RS`@oEM8Kn zJT2@B*7p@_qxJl2u$)jd73v>OrzuDGSpsCmKDq6C@9R5**2|rS^WW&lZHWWuLs}ou z5NMYPT(E$}ng13JWbtc94p;B~rh5cd=>DKjB=JJ!Cx}gVW?b4NGq~E`%{%>^zh{qYEL_bE6jYtBJv@ZDt@Qk zWx^|eZ{%si(1zqw5mchh@Apl6=i7`wgUj#%j*<^ELJjPpa5(Nz&e?Pq-gB3Bm< z1eW+$+(yZ!OvdkeBaA!B@*f!XfurNl?~XvpeOS(k2Cb}vgVH0u_eWSxTZP@m*kqae z7M~Bq_!PZ#j`+V3ah>Kv^5-3PH&}AG1nHJ=W`=U}Ivx<_OJZWm?`?HDXpI`Fk(}uo z?Y$Vs*K;rlJj2bnaY@J_mvds=0bjAP7nKp8)+e{Fy#gbh(^U3@J!b=*@xD0AG1;9uE_()kZXzv6&AYD1)Dde7p3~&6e;xm` z$7rdLIdeww;kjZ{#!K42?5z!*9+!n_{ignDv|eEhr_AM7D=ZDKF!Amr1+TDkP(R=V&RQo4yO{(Rw`zgS;EI#C9uXduVsCE1Z{Iza* zKrfuK?e<%H{}izCCj6p+8N4anOP%OMmD&b~6~7uwsPdTdYrrSnt}gjWu7{vk)V0y- zs6fP3Lw$Yy%a`Rk;}G6EIL99E79o#y9RC-!D8Wm^nD)EI(PyU$oo&wRzy;A;Sxul{ z0@Lc<-&R5NSFYCz!C5eoH#FYx0M@c*R4y$)!CnJrgU~cpVs%jx&zQ!833(t$gOHz` z;w5djH}Ua5U-kF1730X!pdry#8!#Qsqc=TDJD(*RwG*#NdMz>(D<1Xwfi zJ~aO+gbtGaXs10|H`7K3jtG{jOLc6pD^(_`P7vtPiJKw4%-hCFVhss}8T(0|F$4f(Dn*PNI zWmQk%Y=b?_Y7irEZ)tWC83~qTBQ;$VUqEaA}Y9vd*A(3vt`6>g-8d(WlIocX!jACQEYVuQshP>cSY4ycOCNAz4fFA(-~B_Ec=huWhXAd|u<3_thD ztM4hUA2iSviHKYe2qAms7&3Wf@Bpx6JXBdD;_L{b8de{i?F4baL@JMPhKgOFqk$v5 zZ}3>b3u2a98eKnn0nJ{hEILOEe3mpYvTK>@SQR1FMu}(tqT>9soj`% zY4khW904t~SNO+Vqyo6M2y!S5o>O>sX(BRg7`~#DnAgu z0x@yVB@zgy@|z9@r4T~W6X>VDzT2S1W@2{C(>b$1f-FvlE0k|7x4;(gX+T~FgNbVG zV-RFAeuPrUiSPBG6zQGXDlSqV{IV?o%wc^fZdD&lP`&)`Vm;h08UtU94xcBbHIWRd zVIZFn!dXcev3olPOau$`ZSbrlFI0hAUcrs>N9N;cCpwEJg;(n=cYO-kMONxwD4Gy% zL-TXip8)p)5FLhGkPxP?40u7&&?{8(egw($S4{xCr@w!6rvpRDTE75%?Ahgnkh3Az zJv`$0e|PC`G3xnrVBTNOG%}5jDyw=9wB{O#BS#sCWCxeeX3c~dsqEa!#6?Krx$#{0 zskhG6G4K^vqRQ&S_78gBSv~MC)2+3DK}yN!ha^P3x?d&ItorB6TKR}BaIKb;(g;Xk z4cCsC@kbTm$T5guIzNKyb!)fo|9$?;3E23+eX{2ZT?r;|f#=wo&NW?> zd81h*Z!?<&Ofmfz_9q4;Ex$Yaq+Kx7a z@4><7YW@Qrj?WcwR@jHjuGW5C$UC?n?*h zRqo)5B`#7l3wR~U|7>K--#&0p-x$6!k#7Th`LZ3Xsv%;Weu#FK>m*c*S&5!Z6BI;n z{GF)mq%ksx$#DH>4|w8rO3GCcTwB)H+3gFENtz~Aolt#xkgseg;7`{$`wc(abZt1S z+gGtx8y*<#dHvx7I)qIgB6uiBD9ssCU-)!4Fd3npxk;fH6D+i+oX$Vms5V+!4*Vzt zM{GMm%&4k4ZSSDbRf@ITXs;9#KAU@2;W`kNA@sfepliJQs@TJeRTM6)8Dvs!EY{)` zLU}NVHLc(TEN8emd@wwm@QIwoql2RY#1jloU=%VTFeK6yah^n8p~_RL?Kxjwb8((z z2Nn5^YmMd}^cpjnsuTTGFeCy9qOm{h!+u7BXiNsT#l-d8I`uZ9X{My@( zP&`lSJvV6~I(nt~7F-GCKx$@-?jzTv?^-9vSYA`mIg04WJtHjSOMGa$;{0Z*SEi+MM zaSDjMffJF!{fyl+dvh|lB@9Lmp+oxaJFKLYkt-+^L8Almv9N#(Wc&L4G5XiU(^Iu5 z$^DCA6zNLcxCKh-Mp7$<5OXniRr~{@UhLFe{hBio7t^fE7D6C=@~+232B+c-sfJsK zdyvTwigFvx>s7jCp4=VZCASOb5>dQ3VY~7k#<4C6w;FHgFHHV`e&xSUHn_t8f+|-- z617ht;dqo37|jh2i!pW{ZX$LmW!ROiRk!GJLC~aZWIJ!8g4{4n42IN|TtM=xw z?&m7q*$jpt+A6UM2+6x;Q_fg+Rrin_c0n!nVmPI1+m}|0R%;8VP*mUauq!gEf#%Sa zG(3Dnph%(GYt~7QR;1BuHbk;Q@3G?!DG9lH%DP5-&TP5?j8|FuH4u!V{pi_ojs9Ky zA%(jnJ9>7GQ^WlpjSqby^#w_FA6ma>`;j_+41N#!a)>7}kop%f+tu9-RI0aEVPj2u zI`lsWf=Cav=Ri=ZByOov;}8?8JW9+3BB(IgYj|T1=-eprZEWYeDf@+!z++O%pC;QF z@}&&78-wAgz%(4(q3n+5|G8$fM^^A9G3`*au!-;Z9Sx+Nz*xzT&OsCpC;1T_oB+); z=`b%EECtTcr*{Lf71j(AuWG*C-Vn(@*gJd z&_^(DWz*G*+*?bTkmzfxfKf86U~iUdH_kjMyGTLEe`hvBwW0K}-7?YM4-$I?@QO>< z4W*s5zPinm2cucwMEJtQu`^X2l@wK_`Ihg^wdPi%qT%2-Ck-HaYAE%b{@g5etX@>d zw`@=~&@=1laSiEohg#|0bUJud*M=mU=&Ao`^aS4IJ(s#l376U&?k1QeyPQ*F3yoHM zqBxoSo^=)0Iz0Svfx=pYCpm7c!sh*FPRNVcMaT2H>*sZxt*LsYPQ@SdMYgNr&pW5h z4>AVo*gqUR@Vb}zC3v`tqBu(Cj%ML%*fz`@@s#=MSv36grgvd9ce0lV{i$sBX7$o4 zW!6iVV)U$vCC8*G_4%FoL(}NKnDpV)N^6^aavU#dtZ*t~;@{o5NVxs;>f z;kBrHtrYG}vuS<`SyyRp7#6lbIWMOq=%b(UG}&wCuE0W_L&u^2(~?pZ=NEN`@V`t% zGRU4kGT*GpLMhsh)z1?vTeGGhhfR~1o8>rpIo|j8WFU+z@^kX+Qd>hVX~4y_SLMHp zTGux5uz5@A&M;d;O>)XyQX&Z>)=xY~h{Y;?w}Z&TVg)Ozg2OP2K+GC3C!At<;A`7Y zY`-D93cJ~mL*dz>RBe8zfNeZf78nO_?R?-cVO)oKUD%xF7T|`q>l8Q|WUrYLcoZd; zu3@6V;7GRRjWAI%&0EE}tt&Up)?5!n5LXYZ@u%*lBxUR=MfL>N6e-&~Pq+UX>Byoc zJyxHwM*^!148y=3l3P&{$8suwGc3%06DgTZ1Xx2pWw(uD_6C`+yxOj{L&>q9Xvj(c zk(ZpGZ-*9Bvpj*KE9mgK)?-^R961ls>H$fj(xtMaf;JJ0Au0j@`!ST#s*uGy1dp5F zAb`veGkY;?-g8_!pnFnbq`{xbCvu_W+9LAL#Xig)42c+|^HHv?jU-K!i3YvbnnOSK zC*;q!GB)Y9rb$^R5{4OUqR9N&Gv9^fS5^MljB?Ixs)aX z#b0@w@}>vAt%>)Y&_!Si8(rkICuL zxLj5=xfnNJ(tf^llcKq#aZC->{ee+ncm>M%+}f{(Bj+M@QL}x`lkqzC#-DanC0RDj z-UqJg4)p|(+XstI3JDZl8Orf+*$H=rHU;66+}9u|dQHc)Dev%-bJ6%9Blm`qS-|Ol z{xW9FV(|vbkx|HLkFmD4jmay0JTNDI}1NikUn*5 z1p9%UJsjO{mb=N1J5C=Hq#gJW(Pv^cV|C|$KPgeLkQ zu1&@{9EvrBI;QuWkcZJBQr}14Fq+23h0TBYn%a@oinVWlCY%gtP^x=G@?#G&g2}b5QMr_J0R)&K%d%+|C(D3kV@WTL z1L`QySP2ScTU$|Y@@lxF1t!Ar)?>ecQbYp_B6R#oLbLskovu6~ZR|bJF=pg$2RT8) zIi$*(t$y4JaHzYy|4u^0-W{|9S%%q1{$FPSmKm(I{zpy&>Z2S&Wb-xQ4CpP{kCJ{e zehtXselHs_%O|oUiXqarE#b6ZHJy`7y^8;nB3Ab%s|Vy)cvzda=}*~@k~X`HSf4-| zIc#sPQuosA!R53~>{Ac^$CvxNPk43oX#t*|p~&O&Jc3eWU+}+1swS%OqGIRWAi+#2 z>_X>EXdZ_Ub_TbcoZ0|kGD>amxxcitG~RU3EabdwXuPAnK`@awE^%rgFt6p67;8Em}O3%X3PUCtJT`Hi*YV=PIYm_@{rO?zmjBz)dU9SaV% zfK{se2y$bVnei4v2ge*A-d(G;f=pu2S7z%}@wWk*GJosQyuZPG6(w`VU^M7g<_u)? za-LZ7%J{CR7^3c+8e`KqI*K|Oom$lH{nsQQxua>%x{x3v_+b5$&@ zkgfP^-Oj3I>r4+m{el<$|1bZax>(AM(WU<0G~wrXnzl}Twz9z$NHCdtf46}Lf{@qK z*Z(Xv3d}-IP9wQk_WxaySY08e=n6Mpt>HsRgN@~Q>RWV0WRWKa=Lhu9zih?4yK}zn z*Pictq{}-n>lNNkP$SF-J{|dZ!?IPM!6_UYeOJfK7wh)%>o4AwqH=f}LjI<{{;%rW zu}KDR`TRF48?U?m} z*f}>JABf95$&9J+@LSQV(Wh(V1{CWkA-hYck-;x=pH!(gutxm8w)uXVycWfd?W!4K zQKVlx52Yw$8=8nyG~3DJdz9_muuR_W35xEb^CLPcI)55k>vICCJO&2TKRm>qa7i;W zy?C8P%fnz|(A{htaLx9%J_t>%S;rdxvL&i=!P-QtN=PsG`8 ziJG{N{>wdXPig4SeRMN!w6F6ReQ~fkwQ9F54ryRTp{?#{XjS+ok29_%5}tiFVGWGd zl)yMaV8*Fn>2GZuO`?AWy9-|*=u!_$H{^HleumM9*)F$AFi=(gV!2-X(5R7m>Xl3R zlWc@`@-!LjcL5g>UWafzeY=pK5ceflp!FyVV$71CLhWvO@AVY6T&^Gw>LVz z;QFTnub$Erz3h%#D$H`3Un|OkOx8L(P1eR1olPg2|y?6Xg?@J6V2(l+@X4Z(!r_6>8(ZPI11-whKIN#a66OYWQq`C@P4 za&kzn29P#t^UG#6bV=HE28Ey3e|JsjL#GLuw$DYf=jMKI7yB(HRNDY+PS=p1LZyWr z<|0W!{)Xt=kfXtb8P?!lQAvbzk{r>sI6|*Ih%hn}!)(+mye5XVzAKUq4}|JKYB`+h zZcJoi`o!KZ+fDJpZ&yabnzP0N{*ZI3>k5>wC9KHA zWF~l1xkRiJI7uVC82i>KzDXd28x}vP;s@yxl5V6_z5A2dRm^3ozIyBL0?4_}?E%R1 zB7}$LnTQ)CZ5od~Ip3dlD}b0&I4%vEB7t=KD5n=X8*zVs04TuT;OItYV{fSR_ly?9 zCdn5$q%osC^M~l~b-OX{qkzT2w!?sbT32&LDYE}<7o}P&sDJw5-%87ZVz`@LED*<>LQDd8e%25g;jzZ~CjIcuPc zmz%CNp-6eSN8tipmr?4*eEj^jeJT91`?@fR@T4T#Oi9OTR^Z2H;r2A; z48^1n?_yYBF4v?RHUN}G8Xzj<#XqF$9;o8h!Thd1c)9_7hlK@-vno^9aYqWCd zOL}LFf>%K9UcveV*W@9UVV8rZt8tHFLh+RLSUu^|_nU>$c4iBUu4gUxuXFiHx&kQ9 z1K;QuHg{;X7&Nb~VHSlxl@A9#2Rg=6ou|Iud8$XLkfx7-3vtZmk_?-(#5pDfDIyd) zl7^Lpg}rhn3avXd?2Pkg&I72j9#Vw}tGn6`pXh7axiLDb&| z?KYR%?^0vY(K7Sy)j#=b(~UA92nsv#rlP=gwuJzo#pDPP^!VT*!8YQZ1AmSTha5%0 z_ub^r1;FaW+>j#}Jjh4VH2IkwWL7VS){TPg@`wx6C>amQ;9N8M1o~}>-a@V*jiEG2 zRuTwig2mfjJKZYdbqO`}_go$>!-R5b+N(Uugnk;#PuM5)#LHSRl)t;y=h4<+tEBA$g`Q!6{_iWu%!z z{#u!~5J1HK7D)i_w>qN23=F%(f!v7_Pl98Hf@LDoSZ8X2dBX%`W^BMc@pn=AaJ z)xHh$aqSPoWyuwiiQTGi$sDl?>DG`V4IVXHIG*qW^UjU!z4f)oCqX_^2H3FRBA@sdz)SK6R3?JOA7KS7CPhYgqa2`wlBr1H*rRb*2GltLa7Pt#3K^BtdNLH z)%ai!$ogb-BhPuK^jZziQct}CjxY{W4=;mwVsf9()pKj5{Vp??F{}OdYC7X#uo5vD z&9^w~p6t#ugpVFl5;O@c=D+IlBr3m0pg?$`h89IR`KEc?oewT=P$Oz`um!${rD~p0 z;%r`Azg2bxYvJ@|`5DC!E5K=%ma{>^?W*W2Vv=|daRdO^3|zCrQrlF)6xojgv*!}j z={EMEagZa^@gR!&o537;Bu#97+{o5iL9b>9n?zW1&bSr-n(`;^-=y^-CZPmMNNZFD z$=fc55G7?bIwSf6!fifWMvTS;^Z08>1$Pq2GF=uaH1+vTQ>3kin3qmR>My_|4^n-X zt#p0Q9%~Dl%up$83}GkEe=MqESbD0F+z@r>fU~MO-+g-)3ujI`_90#79<^?x51ZWo zdR*0c7C<1ldAJh)|}cWU3?rMs3tJc|>x=LUK0XD{VktYFcRwXO_% z+5pXV6R>L*Mig}CQ2a{Dif>INNCs;i(l}??z4ookd0_ymSE6st^Bima-4$E-KEM>< zsqIu`N5&_Ga8CvBXHfezdfzC_!nh8BdLk>X09P+eLRwWRK8KIYB&;=+e}p+F*N9~t zNMkj}q`{Gd!CK7+p+tKn@VMufwr!_ap%Y?f~ zC6rNt&Sl&(;55E=tpFJviyIdraN(lrP)C34G}DJes)QXo+14%{iDuMh7t=6|4&>h* z03Vo}lY4(Y?Zoh&)00iC9hLiKFH$+F1(~$PX#%WH*2hau3HM&^bg|dNd;~n&842Qg z?(X83=f_2OUqZzw5r!v#A%uh8*}NsUl$|Bt7ba=pVQ==} z{H=|an8J9FRNgds1Igo^fqFeYp}69}Ie_2daubHgX`m2kV*_?@@K68OH0^%afDP7g!m(H8n78EuM>B}>IP{qZ;(9U zD(BiHL|STaKA2iN^#FLaH`{@7DT~X-TWQ|MzB^b*jtnS!s5|L7p|j9~+mZfn;^4*g zJ3Z+krjX}b*x0#=8Ll<@Dbx^AE8Cb|Popwg^y{)$9|O3K;0?|y?>ZB+oG_z}7Mr>$ zKbEk_blcD1Iabrzc*^%86w4wEKAudbp6=f+ zo7XzQ1~R4kt$gN4CTkoGP0zkO`RKHaf|0W5xM`qj3C?e`@Y6X)Mq1D1TOQq2-$o%jaMyRjL6@A}l?0ws(GUH;GAxU-YE=$e6_9q+LbCV@Eg_@mun7df9`(!Cp5J@4!a{X(_L=rQj1B0b&O^bPS0t3wGe4(fu zV|pVQeswbD#*>zX$&kBiqp)3>83l$&%k;NQl(bSNY?V&CMgCTTcpF;wB~pWr=ki4* z+;f&P?ly(^=@M02ZoCuj?lhY#eYYdj=qiawf6ZzAxu+=f+LGS1#ToK_i8zHJNw-U# z!hW8$-*wg3YhCeUX98C8E(~*G_Vr~hjJm{8Hc><6J{}K>&CNB4@5d-%Z1F1Jfc?YY zQaAMNgV@bmSMhr{EAR*a;n{gb$eEZEKE9urHNJoQFA8V~)B69*6j4sbU-tg3vumVH zjsFK9I44s{O9Qm=GML}6aPgN3rN%nkj66%ExbgL^mS&NJ0}^}kk5-gR5N0_G*Ti8F z)x0uCS#>`3abK`7koC@Jy!J1&S(mslcc9J)`HD#Vvuwe^D+=4~{f3rDxzOU5wPZ<0 zH>;dE6MJaviv0eJ+QIC;xXEYq%T<}%5k*KAwuzU`FgY}=josOsqr`Ic*Oh;Ua7^i4G7mwRp)m_+1(!t zvq-!UM`)G30M2Vuk^PcEIQm@VPDIZo>l9jyy(@v`*h35lHeV>*)vAq}FVR{3-dI)J zAFIkKmEXqCPI*@d`!zrA3;s50T&6SgXyal-~M)GO3T^c z5G(F55$;f;Z`RV3n&TF%$>vk3Gtr_wSebHnjL$u1;(7N0eUv0{JQJVKJ*%jQtPGIu6QcJvAZ2vVGZ>~}z-ttJi=p^?$T<`kfwQ*0;PqNwn z81gfQ(ZYZ0`@z;E1J)MIH6UbcHA)*Uh`~kM!Pc7@ zaL)bJTCC-25ka2T8Q=vI-(rV6z=WhCpMTY6=iQRr8kya{U-J zm}o3Wg%WDmm!?;Z+!fqJaWbFmae(@9R4z?0a!kvQFrIKos-`#4hb2S*BwJ)URDn69 z6lzT{`To7+l!DEKOTFW3*G~-!CS!vrA!Ch${|yM9h*^hiNOz&G?x96HL$6tR9aY(m zl^GwwU}5Ud0*%p)5O1%RZU?>!F0tDuqHMpK>6YjkbpXzCmS`K$BvYIt)s!n_Hu2ya zTreau#FaR>q+IAGOqXz*=qj#TNcKiOa5FdRxK{hVxN`%XtsW*Z9WxYPQsk%SPRLfe zbnn9SP3-KOjisU4V6tHE%mw{aK>Na84Dr>iz7tNiuR9%|uyK+IfXA>rTfAoAo!@3` z3fsC03ArQ%*8!kO&NX$UEz%5Zi4vl}e3u4~-_@uK>;UJzNe`IB~D8xhh z3Aepg_gnc1bJtcQ{y}_c&pNne!chUke0mh>wD2>Qe$Qp53G++o+-b7fUdxoe;jY4V zzi`x61%XQYnM>3Gt&N*Wo;G<*+DYL3?+=}>V{VNLsb3BfbcY>sVy%(!bmv8cW$kAO zYPJ-i zt?=#Agd<|CmgCs5_hW*l%0S*qV>8n&!_)nQg~!-mHPWs3cP}J${0o_glj%+eN!T=; zj&F$c=Fe<|Xbt5SgQNUJG%Z~Pl=jmJd3h#*Rjw>z-{g)pEanYn)BR@mcaduVf=Wmi z)2kbnjhVI6Iv4LytYVR{(7!R**1hy@w+DR5v#hE{Zt3%Ms`Eek_bWmy6Azq(rXqh zTj}bhJ4!Tje@W;>^&`gW9 zo;;07F|mWV^41z_%H4Xm?nG=+wAaSTjul-Vd*3imS)csk{|pHVor*qyjs%O*k0o4Tut261Rg_a4yp{MRuuL4WvG<_mnL!(c z^vuVU1F)Iiy<#3mpv(HHBF=-}-U)cYuFBcSMBP5;*_Xnf{cgth4uiv3LG;IuvO7)t zealy?V-?nF>cjs@3-kZ~(}HRPpvyx*KBJawrVMH_NTBj|*(2y%J(>G2TJ4$rEf<6_C=C|{GTD2c-5_@#j@WgG>=q>Ep ze0X>E^w&F&WyS6K1)q!EZqqs!R{!k=-v3L47!XQd<6_o=R`jY@WRpuK*HFEywIFmN z8qLJ4^eO5+izT;idwAnY$dP7-&V#9q<2PzqbDe8#&_{3JQN5mqQa1DAEICzMq(Mv0 z_O7)`5DhBzKs3O!)3N@v#9;7=QU->nW{RKdOYaN!()6AK3gp%hwD$wvb8X%b;;a614$bqpas&O;2jc>$$RfT1%mZ z7Dh5PjjgmoYGvUv$&ys>+J8v_8`Q#bQ|RjrCh6a?UEhD8u7z&)0j%Dv2k%V%Na3Z$ zm=+)FJFg66bz5KUF=R>)49Zp6_uq|sc;!P%&2$5~x72T1^Xm5bcB82E#XN)KpLTWR z<$m7v;(*NTV)ol#vZTkRu^hq!463tYoMhK#hjuLFCEmTkI3iWXkiI&-Haz zk1r@sg-c(kf^lsR=<6ETW8UqyG9O8i{>Z>&Id*#jg6LVH*BKaIj%KOt$~rkG%3~uR zF8!I^dVYwlk%!SAr5q?=V6)ZMpM6T{`gL{LQhu_M6r#X3<>wot=E^0Nhgq2ze_Q#H zUr#=7jx^X&cYAg0gbog&&BOOb=dDq!s7+RIB(auZH3@s-@|x(b7||jSD=X+0_GGRIlU6_T+1UrxghC-KeKZuOv>@Y|m8w?)6tc{y%J6 z9lov6g6H;wkM~YkR)PsCc{r}w>ht$9D=lMYSNhxWb5iN-4VRlnf-9R6Q<02IbU;!KhzqAZ-vfhf24?7Y^WUU*- zIcfX=um>haZ5aHj|Ne9ktX%u%vV1ASL@?kG;x|V$^$H?7qT2E}aX79dvMxxz;EszZ zFef_xPG6^d+U)QB^>N0b0v36W{ta{(e3Tr|jYp#mG_~Hm z$qfG&S-w9BeWrw0*Zp56)JXmfc;tK}b@1jF7Pd!ah*Pm|$87)xr+%}#f8BtP@x$PA z6GJt+d6mr@HJ=p}{NR;H2h3_jBx10Oey&bX$<*k1yC-fRcWa+Ji6W=u!hDgTj)!}Q zK;Y+0ar6ddO2Pg12HxwA@}5jt+NjNElH^PIH8m;yqOI9~_bh)upZG;Ro-I50>eM3W zbmqyjZ|pvp-`BQYi$nuY$T&BGr8t;*$JaIZS>kjVRKMv%Rr zpdf}>ChoIJB;=Wb!NKaEQ2e2U%T&E4MbG+3Ddxxbd7*B6qi<&4qaUO0Co$P?w9^=7 z7ZuUlON@n?+!3byDntLM?mL{P*OU8wPeH2nnw~t%?AK_&z3o(eGh|&#jHBa|r0AhV z(Zwd_UjAQ@qoiR4t!bShd!exV=RvlbJ4|%H3RKK8ANv*D)Bb#==HuFT9%adnHCz~r z&=yATtf*!=ydIj*tWlp=8V4E5wow(hZ4cluFR}_})02+)a1FvVty}mBYRsYT{-Tku zMvLoo_z3?zkR8fZS~xoL6O(2S4#>n88|-TQ$yW!E0@&I^2v_#6uV#U{{@b!@G4~!- zST&pA9Z0@;Q`lg~ettIfBNI}RE4qJ+L@{K%)cHzYJ<5z_MzrWAcZUb#W&$(KxXO~fM@~$ znhd;TzLyr0nj9{;JI>e~68kx3jw8XW|EV|Grv~^jG%p-!ef_cfgfFc|dPMq^6JQ{H z7l8H-fm0gHt(S(v-Ror`pW(Vb0W3Hlpdxf6Nesal)lq%}GDk=d%)LgZ(0R^S&tEVR zR@=zXnwQr1lEIm#F__|l@Sez8I;2*@eO2{h!dS*$uk9uv{G)8uyC%afzFc^mj5jI zDEF`>xkw;d=l?jmcE0ScNhRaDD2FLp4|so2Wm1CFB1B|;uTEE-Q5mIsy=GAHm*v$f zdBHPyH)O{w#*0G74yT4r8+P$tp#b2a4aUZ%}D(p37c6)^H7l`Gizjcnwgt3h$;{yDM!a zK35a92{4?U%M4N+U1 zQ#Hgc>kpWAEF1U}i{x?pH6FQqPt%r=S5aG$?K@y3AodN(IZ+%iHPoo0?k9(v8_Z^HENd zqnS~3`>`H0biBIuleMEYjzbYH(?9-H+jm)Ao$jxI+_1`-lKkU4Z*^Z>npzOHp`^n_ zuB?3SZKX6U+{DTx(Nsq#nkFv^X{RQK9t+*j1I2$hXTY{~UajELgEVuS7ojzB3&Dk@ zyKM0vxuvvvhM0`+6~Ztb4PoTg5&ne6T0d^r(*WFqG!iyAE%dX(TkEa*4Tdj~roP!S z&zvfX_*^TX$fzV2s%lSUYnq|+Z!5GimcRnjm;UIa|7-1IL^{E{up_WOhk@(Y4Q_Bz z7~It$XeJ-G+M*aDg4|B}_4TuMvwMM%Q82eU|2|&_s|w&Qva7z@jIQqs2bmHDB&L1z}3&z>r(}5P93-6Uc(CcCJR;W5%`HN+aw8@~a-E zqBX7+c}$S2w+N$|B8W-!G)?=W^s}{z!ai`~i1Y$blL#l<6}cKw-i!ZnL&hJK7U@ZL za>sBrns(R|BLJCHxCnXUVIa__JG0=v1Y3sYNPTXyXG|%`-5q24R z43(k$md`b#`~3-MDm&rh?7XOt8wprgvt zX3$F+`mNjlPc4?Gb2>zQ@sH2GE%8i??@LI;!*^imIh`RA9~O4g1BJ?h=r7L+BJUWy z16B*_@1z1k+Cs@*LbS7_h2P{l4i(x$sMr+lg#=xmRoS$?*F4qK)XY%y_jZn!p*?AV zDe6vW^`mAajt^I1y~UL@57VqGpW?=lV9axo`2Y>eW6cR4lm2U13mfW3NI;WA1IEiS|n~VO{RsY`7Ap^4l z@n(0UbhCP4{HX5YFE2>fzjrt$ai~Oyd96Py)XnLuYqfM2 z2ro9A7E0C@6%i>6zP>uxnoP&Hs0_OF^E=uE=P3og8Y-lA$o1vn=H{kil{?U!nrW%Y z{31-!ayR=#_eLhzEF!qM9NAhjnkf%{j)-pZWnC3mlWcm^%I-oggx9U{7DiI(bi+u^f0zhbpuXpA@Gmxh#{=o32V|_tSCBnQHEX3 z$btlwT61SdlbrxX2Eq0XJDwb_(!`{CHZFO)b)jZ%QjD-n9k|~Y!ylIyX1^mg|iQkd!YXNC{JLA0N zieD7pP3G0B1t;^QI_qUh_VVcEW=maH+xI(-eltC4rxYD8)XC~YGYFg6{e9*1g;s-R zq^iwBo8y|Aj*bdkMNeS+(e1f9@^{J#BJQZq&pZ{Ts8>@;%M84@YXO>lG3U0MjH8o8 zm%Hh`K~V>zK4V8#wvFQ3rHMjybd}a@d!9(^yOy-hZcY&a=VXjL3mrVIF~MM&ek1h< zEufj{ya|_-6xr;K-p?qtr~~QG1%I6B}>$$Z#O!V$RU%9;bE2SL7rabKl)AsMo zAMebP-H=p{ymqozs|OpYMcO$bqm1Y*Y<{^e^;Tw5F{n)zl(@4hWY4buNoeiZouMx$ zT|Vp_;q@Z;Hm<;vap;$G9gCMVDNP@TdR^z4ZHjz88(VIE5HcRuJMoL?NccdmlUt;5 z0*!sqNT8jo02}rNzrf?HRH91K*}`(NwvY@$T&nm!fbgeb)f>fLASlZ`{jjK4q9S@a zJrg58!uM7}tQ{p?Sdd4ZowrmOoPm)FA2kZ6qH`|*(ivxAN{v|jc`!P>9|tx|n4*ov zlFE?-PB5R}D7L=pieCwm^v2~9?gjSml*_?6UC*WkCC~zL4bO|>g6iLU80+*!sd{rW z!S@KuLkOgd6z-FzmA(zCB$T)Ub=>Dh9c< zT%5Pd1lh3tBlI=p?hjV`Ysr0M zlJH6#t|frcq^Jx2O1<_0chd{#>1g!c!{1hrcQk{g4&Jy?^JcpdF<7`gQX{dOtaY|< zYa_{aYrk3JX!w$qgN_(F;iDh_lh=8I@fEQ}b$fHf#wysVo>xoZB&o0B9*%90?OH=Ynnb zCN8O9sVEI`T7D!aY;0piwG9;UhX&`BZa?vs*jeL z3&K;=(yCvN2vCTJhJCGKY^>zoO64fyOKwmzK-{9_ne{Wg?P;#{I!PPg&L@#-UA&>d zk|)&^P`#;O_c{msv!;d<+~v5(;4u@sc*g%cT>!)B35~uksT$!1@H>%+BtmadUqg@Nd2jyrvqZ41vwj-P5ZgYu*Y0m;aT|1f2dD$>hqprU*K>*Jz~y zsLz_Bsjv-pBuQ$-=1}<(T2*w_9Lt?M*=rDK_Ie|<0_fbZXN)4_eOBhrNQRzBBsl4c znhG%mohiQ|JumJd9U&2sMYi^av2U9|GW|da2LcIF7e?tQSHZs**Y+}iJ3^|Ec~D}Y zCEj1$F;Fw}U2uDgdJN793GFCP#(i=rJ=TZg(TVqGkMlL@KcBRQ-e0a^XuWjQbfdY9`4Z zX_qOJ&rJhaGLsmGJpA-`;xFYKd*2<{z+H7oZ=+!{E1YOWL`Acae6#HrZ7TqN6uFg` zNdDUB$>rcvw#}0Nk-J2-hvL5YLoCCKW+vR){ZQP6EW-=X+Ag8KP^c8?6;$0^m||s& zIan6OapMi8^B)2Ip8(tg@rM7C{$C_#xwrQp`roQ;5#6^+5~HVePRfRnW_;=fInm*- z>GH8#8ov68tf?&jz5H=Eeg2T7Pm*ReInA5b&E-WSxy)8bmR#IVe`6QT#Wk7>1(j37 zkaFL?>TK2firCLMe_C9};w59y4&ek4ZB0g_?W8x5|LX|(@MhZ{&ga2(;f3$(%zCx~ z{=5wLcQzg-JCWTVz^M(QIM2_=>K60Wg2IO_D+_I8t@^fq^B1kJ&jkDqPB;iYGPEMQ z7_8Ox^}DRb|3}`^c>lxTs{m3O7L8;clJme{;BOB<2FvP#5IRYj^Uyh6Bt3BmFD_xP zRSdCY+GqMfP(thN@MUg8Fu}6*Q7|E!_GU0m@Y=)Mix|NkG~+eMQn(nQpl|{NO|tl9 znJ-XuY(b9dEU0g_P#qJM>mEF>Xv;5a;auai_%qI0KUz&j+sN*kH|a3~?mF_L*xAa6 zmnUrH;U8I=6&Tif6?*iUng*F#7VTZPN!4zxmbZd}v2)iyHptW{#Y#EPB=0A|4N*=U zSN6GbJNn4SpmT_r)Rf2?70ADdRN|1d&u^+-(TF1y*340y4}ZQa?khrCuD6`%set$HG$|42$o^LzmB9uerd3 z&qNBRi^(-_j4?NZm-hs#Z62_f`;UMDlBd3 zYJizDYV$3q5x_p}@xO4y{;JL?X*pJ%Gm&ceJQvWTm@PddHZ?#0;_P@wZ?+|nQNoUV zW2~acVKDb#Z75ROdBSZO=3ro8(Ej_gN=4_^R)aP>#)Kk3_`z<@Kf#J?KTBw^Q5m)6 z#>h8LS1Ym~nsU@TW;>)79Q=nw0e4r46;c#>P%i17Kj4i}eT)?!-OL#E_DgIb! z)~hpjAu~p8=6rfO(5AyqMr24KCJcWoBW8qtS-+zOz~Y2_cRC|y*fKTFsd4gP-UUd= zFCS5`&WSkAAFSoJRLG0D7F;HHD2B-T^linC0(aA`1a7F(G6Ff$@Cy4EAwC@cx|H1X zW4y<;=G?Tkp2+|Oz4!2vsMM>EPbXGc;&Q7c2!%EdI30Q?@Y5FOZN4f>7D#Kt)Vt>^ z9*w`0-TzyrvS_CZn?n$gfocXTpEmqhK1*wP^@lS{_HE&ub)S(Okm#JSv8aHREhs$r z$u?bWJbCMrdg6KasFySaUl!(El#48!Q%eM^0-qW{rchN5Ca#nR-PSzk+-UQK{Fg@* zldEthNG&Dq_)8ureIqvlw2 zY3!vn;dM8?q)3klCsy>0k88GuzkcBA9Xh>pEW4I%KbwdgbBi1uZXU`EBZg?mbM)`3 z7g<***stHH`IRtpgWb#P^{cTI?VOvxU{L|;ytU@xFVX2-rS9zSK2P~JsMJ3+=RIN| zwAM@)-^;=`0@PR%F;5=@7jy%e^RP)GBC9t`K|r0Z)KYB=M+|Gi z8v_S%qvPn9nrPkfk>Y&z@=sGn$sU}EmQh~=77Kqlb2Q3fQsVKV_7+~|!`+y|2G!v+ z`?p*K<5kzW`k~jGuQ)gp&r~;0dvrGcixb5DixU9e5QNsI`@a_m|GyHWzWy77pv9Eq ix#OQOLyz~;HL?6F9g$V>qt^uZ5BQ0$YWZWE_x}&JIvGI# diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png deleted file mode 100644 index d1234aa11d8fc2886d6b0b36dabca8282272d79c..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7235 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 PKkYi2dKv|4R)PNu(5*xR diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png deleted file mode 100644 index bb5f30b68b9749ab61540d9c1ec31e66f610b7f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 47325 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

f<7bk3LCEKYMer!@?59K@v1R&D zPj8T_LW7s%#@m3m!Q(M{@ErDkAs{!hIVw}iCJU_i)l5w~;!>&bv`(a$_#L0y;1%EO zG%mw&0x&`A?g&vt4NO41mak@~^WjzNHlse|N}4WSvLG*!_fhhMO*W7lRdOeext!)Z zbo}*-b?sGOuvSi1sv-7zIt4Nk>5kI2kDRKpj>aR4;Ai#6A8Wz>U*S<)!#P)@tZOf( z=2nIQCd<&6PxPfxU}I)k>0^e)-CE?)$y?Ve-#p1!uhr$n{}BZn(+8J-0UJ`6kt74$ z0jzNMoh+2GtDPwxB#_By#Ih$7Cl{0`kW+x%!4{Ra%p!Cvc zp6F6Yv9Ndd*fjDHiVsxIVxM>AjdHW6@*mHRpd@fO`YxzE#>#istx!b##xtsGrsG!2 zwl)75&$OQs0B_QOnui9b0vF82WuvpBd;B;Jb19$ Ai?+{p!3p;W3gt9JMDnB9- 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 z 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png deleted file mode 100644 index 0b51d9432a9e40c342f61cfe6bec6123771ea479..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7230 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 WLpNrwe5L*~L`zNYLE*h;0sjTZ1x|MW diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png deleted file mode 100644 index 6e494038125307760faed5281441a5c85c4c3036..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7636 zc-qBzXH-*Bux@Bdk*XL3rHV)m5Jj4xR1p=Vw-6AB6ai_{LKUTh6%4(IR6&Y#f`CX1 zU5eCDLhn5Ua&E$XZ@u^Ht#|LAyVuIfnmse$eDlrDIVVY^?h{Q$dQN%}2*jxMKur$> zqJ)4z6j8KPq@7*p(@GGC3Z(nUKpjM0P!I?K0--=43>yQ@$3PnMo7$_7VmnB&U1QdaSA}~+{KxRR5q7YCN3W~x&Q2?0~ zDHel(Vo*>F28sbl97(BA009M1Pyho305WBA4ukQ?Oi=QJ#5?^UV8G%O5K)_lumq=dKm=b)X`GAZ{U-%4jT_C;=O=d ztSn_5jX!;)d;ndapkViv zIEengWO8n)gQ$3`poMxlhV1u*|CiV51v=$YrbD#0N2>3G>(2t2`zR&{L9KZ z)f9FjWE5{W&xpjo5Lj=!;`ZihXzsM#&qs|wS;PGKp_j+GswTu+-Q%0->y5{fbjJC5 z+XM$z%Z|slpB>O$JhKWyEPSBC@=HgEINYq&Icf45J?%nK0?a+Jl6=xfMV6?e~ zn_>z)b*Px{N^jn*Gf_VMF3`65sS411-zs)#ns zB^h(Ue#!7F?~D_w>^$`f6$5*q~+)DJY?b-nggPO(oY!nY6P07WAWKi8&!mGoEs zVpn>Ru)j(0K>ueyMK7<;A9N>pzs+iqC^XbV_J3oR;koioBdBtJqs?q{BWUOnukCKn zxZI7TR?E#Xf;JIaEosqrfnob*d48wZH9lr^$%5 zVzo`ZT&a%qj3&n=so`-)YysCfkMvlktiwu+(xlB_b&jVia-Ht9ZW*3ak;w{y(9B%Z z;OOGad)6VJsSQzYL(0Wb|8IvTNA#6Eel%Z>t9m@L|Bgz9b_cYn+GdU#{naHtCCqzC z;27(0vt6`b0A5-02RVOQ9PbkX5k`|-K1exc8ehR^byxJR9?7pZejw&#E%kSbs@*cs)7vNwY$XdjIhtU$W%ZU5-$QPTmF| z`O=^<%OJ>hU7`Lpr{#`&%x|zIF9t_H)dj}V|5@nLVlAjN6Z(>E%u<-!xoF<}jT%`K z@x}6an`E}`yJ@*Y=xlYfIqtlzyewxMG6?4mM2bUhI*s?#^NRJP#r<|Reza#4o zJbD&2(bv;;(Lneqi=a;5Hm+VBO%R+HMEt-!$UZ&dk5lCrv+mjZOJ?&q_4kI;HySpL z8Dr(K>Ifc5ej+TQ82Nm!CWTRo-p|;z`-Fo^iM?TgZug3@1mF?-QHK=;L zRmqIMPE|DP8|o-X-`RW7Anj(mj6kG6et^cWDxUGV5Ix#9+nX@DC5blZ0Dt0>*tvbq zPDF^l_T3d>{%uM0#G4Unlho9uQKX!(%HZY11^Mj@cSB9M43)-N-VR{3`S|@()}sW~ z1K>t)OMT#%<13GI!NnoF0j6?Su9GhE&%G{pvSR~~GXd~~T_;Rb?oR98{h0vMD?4o^ zX)sqGc!HZSmK3}basxR?D4WkG`6>?WYLMHrR%&I|ajLHy(tmTnCx9ocUj1_crtp$; z;s>FJc6fYf&k^Z8m4URW@xFo8l87#H{pzue7R!w|nhh{*y73p;L@2}XQ*L&Z1?{gj z6Us!gzzQ20Kd$`(GdGO7-AQW(*F&OJxi`CJo1JDY*n9>EWdrJYV~(j-ahCUs(nQi- z>5|#DaQx5wQW>KJHJFfET=6H6NdDB_H@CM0=emVQ-u|ES8Um4XgFvv_lShf?aY0&b z4fXs$w3|9FpnWgx(qWd_MLhf+(3)QNsLnD0P?v4=(YX43f8_+yPtzB@(`XPE~d`04{;OcSn*w#H^se=*TShNPkG1BPti8~yQns%p@7s@_N>z2@M~!+ zYQ`P3l-d_d^qB*D2ptv&u6+-N@sU>EzA}wc&cQhL!6JUR)?r1ptu(K^dA*iDaYKeb zvi^qog05uc?u86O_C?-QxrFtalx(Znu1;*AynVT5npJPR1L0qwqPMto;eIr&GF9~{ zMhN>fKywu`tgy~SPn7Y=egGlH^QaGVJsLgm~*p9&3Ntg z!rAW6FRS!jtaThpxxavw{NLU*}HEBuwid- zG^!GrF%qlRkCQGNG502(^al^5#1@;Jt9_wd;KjIjN)R==pl57ZXl%0bDKu81@b^ke z{%W=_CA@6xwArXY#>Qv4EQ;>wh~_RW+P2~(2MrJkee;bny1ZkRitN4M$Qs3j8w4!Tug@Nats8oM_~}5FWIJG6h4~gx%>_?5hlEB>s`{Mj&Fi zJ4dyaLna^$3Hf>=Y1~P#t_bKg8)QWvPhx4;)0(iJaxrC7qDT4Ce{{JrVk8AEC&l&K&mPqF@_-z? zILY`|qUh@k*o}v%^L>K$CgL_FOAWSN`zb2mhmrRJnye99se4fuT8d8U((e`)6S3Iq zz{XGRdV?hqSh3+N1Hai`e`=VtShB67e1rc$WC!Ao|KF(cle!VJnc2L*FC;w-e#`D& zsFnTJ0jsF{d>OHkC@@!??&p1XZDBeGr~f$li}}~dXB{IpsjCZAfz7kH)lr$k%-6)(?j3BG*v47De(#v~ej;(@fnG$z~O@-swH<4@WB9eSJI3&VO@ znC7=|Rrkx_T&2BtR$62ZJm#nGNn23nBDRy5KQSsj}zaae9F1^;dLY84laBGay z8u_F5hZ%7)=389USNQ@zJ=w>fFFE<;M%O7PoxD6}{ff{Tw&{tqPYAj*gc}KRozm*Z z`5by`nOBc`ytj?#4A~1u;Jte#x~>lOv*c+HOa992p3H}oV@IofHmi=WKF_h;r~RsY ztE-VqG<~u!)9ILKDgO$nO8)S+{P@W9n%hL#NbA?&C4^fmVL6L}^cdZkZ;M({8*#f8 zu51f)n;UC#Yrxi0)eBCXR!F|;GF+Y2b*l-vBV?xId4-w+?aAKDGV=75TwIyu5~I<_ z)5<@o@sMzx_cl`0=yx+mtAQ4H1OI$cox@KPE3fuHIr(x85Npl6*zNBtPrprg%#4nS zr@)8$&TEXWg83%PPLEfE$E`PWg|tvQ;?2R3xt9G#%oJCs=n%~Xx5K3`UwD`=COUL$R!)407t8Mcu(?J& z+)STsR>sdfir00>{2-I_W8`xlL|dm+YREdNdO;y&fiPURlBC>bTDKAK&DC0yu!Yq! z-N6L`MdLVtKB7F;KSWBrZ{#$)$XAV;$1?svZ|Qv93GPYM?reHX%AUb)Re$mNYDmXY z45Y@Rdh%fV4 z#4YT_!}-TpZ0JgyqTU%;JYVjcEzD;8u$q=UNG-CaR8R07jah9APz>%vR?eFlzf@%HwZ{=G+fN8jRkGqI$W$j+1-b}{h z$=jvZ;9w;8D=Fr@_?2KKWSWj42lh^oW+?ODr~X2*W^kitU7x`lUrz&n9_l8njPCxB zfLEd(ti5qu)bDPhvyphRPo3w$LNveTf2VbIU87mOoyrG8=Cn^l3Ohbrqk`3RLpw>BW zZNE!@xb75N^0C@nVswsdG|XfoeRW|06v*XFe z>0xn>fu*HCoX{=sbe)D0+jSHi1kU(%uqji-z`wa3t z|1Q4hA!11>FG{X|t_qOMQJeJrom#H)b5i-7=}_Aasg$VLdnk_-EW9vnLQwrw zJv?Yb$$x|A_1elHzTF@&UoHjiZOB)=INe?TWtr1skJ{JcYxG=R=>@+R4PLD&gL?=> zoYswkL4}(Njm5vO;k`{~V7;(+b}drq>hcOc4-cZe5U|lEhSPyr5+`Nw2BH~lx9#g$ z*Y{!S3>F^4vyDl`I(iQ+(Sw; zWZh^Hym`Io0(LBV#GDAr;8zKVSmX-fPzmsvK6S|O9$kekkEOcQD>LpfjW-gWI(^EV zl?wUx@>I;-J7%AO<#iW$S(ySJ%&~^IPuNVf`~~JcSIC@`{dk(Yzyd6J{RR3K`9N(G z`aZ8xzE#5#J(FvL`DT=K28u{G7wS20^S?9~A`=2=(J{=q%$hv_<*ne0kLB!1-%r@r zbT=q=8$pj}j^Xttn`T}Vs{FsezqKizjvjJtk|Ot*M&RDAq)6|ubRmbQU`c*#3DwOX zhlADAv?(nOK?cs!?xdn&9}8?QXHD@^kxG;>2WeaW-lUW|LZVoEL25I-nxi^YZq=)k zeGMAWbZZwPOq`>TMED?3UbZ4HMnazFoyElb{B&v#=Bl;=^@S*1p0OfRg}_AU?v-JUNu?oZc_4v9cVte@Oj@^N;?%d&3?JN*^8p3sWE6?-s*Q7EJAF&-YY4{8-_J0 z_?5VAy_Y$mb)Nez`!E;PU-?&^?TvL0IJ>c3Eg1w|=jTcxNe-b>wgU@+9m=naFX_aS}M+vBxUe8 z$Q=6#V~fKG@3)^qV3gc$gBm>`02ZO@+%V6r6S|U6o*cM*;uS=F79P zrhIUR@UmL%-Z|tIp2Yxrp-6f6oRt<0i6LPzf#CCet>9?=<7A@Mf*w07%ED!V%5Q8b zbM?t~D<+2?t@xN3<{bqYze$5u)MJKKrK%YRd3^ZB?JA0*l&3f`M7%OspZFRxui?OK`oVo>9o}f&;^t#ZWem}3v ziqLKq`#srw#uQeM#3#sz3Bfsp#@z3=Mc`S`d;P^+@Xkd6?gGgbyi4w03_ik|f5yQi z^D}$l3O##op|iFdJ-1MB-w@@;{<;1UU%Vq~ z|2Ab}c!(Bra+~U*8_y!UE~c=Uz53O{Bfn8aZojtSHs4fXZaRy!t1|H{AKO~``rCZ* zNxnm*ETQmjf#37nvPT0QXInohlZC?dnMZ0(KM@#?hNrDtTSB_++J18V`&9Zx-?2Nf zBtWrYjT26XPFw!{=A!EKFhzs41$u8`)USYBQ?#TOv4pWcG`X8*Y2>`#hicg<^_%qz zS8-*k%U#)KFL!i$J9YJy&d{7FVrZBNCcnm=CzR!_=(+I2zlhsdyh;Vz|DT6VX>Y-y zaHf#&9U`{uEBRq#CPo%_y##>{{IfLR&`C2`3(hCQT?~i zcn)p4R>ZQ;{lneu4}(Qvy%p`?a_#2&uY7R#q|ZMpr*^V5kp1~azlQw=8;mNbkMu&d zkO}MA@8)8f%Oso@%*6|7wsNSW_zwKMlZNfOrSH1`rGR(-XwOt*5+?k;Zpv@mq%0x+ zoaQ{ukzSk~o4;yL)O8h|NAXl7q=3$U_#IQZ9jr#cR{rf@72=M$KlzMxFiJdk-J2ND zpRn1l?(@{l8WOU7m1FiLSep5b>l|fS-M6zOwVSP!89`WvdsIi1x*#;@(#iR5unt$Z T%fnvsUsPJ^Pt=N4tU~_-#PZ_Z diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png deleted file mode 100644 index 8dc7735c113589440027c3d3b03c4beea1087518..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 46842 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png deleted file mode 100644 index 39c96ad8daf3900880a53f2b5ec4dba63c5169da..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6840 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_table.html b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_table.html deleted file mode 100644 index 0557732a55f9..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_table.html +++ /dev/null @@ -1,724 +0,0 @@ - - - - - - - cc_hash_table Interface - - - - -

- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_tag.html deleted file mode 100644 index 1923e20fb42c..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/cc_hash_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - cc_hash_tag Interface - - - - -
-

cc_hash_tag Interface

- -

Collision-chaining hash data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-basic_hash_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png deleted file mode 100644 index fde6b41bf94f13ea35145fb7a5fba18fabca9dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7355 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%0ATKb3b}mi8Tet7Vom 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png deleted file mode 100644 index 11dca77fcfebe11183fad329103472d6cc2a2b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7572 zc-qBzXHb(-*KGhJ5T!{`QE4I|RSZZ+1B52hB=ja|=qM1R7XuFE|8(hCuKT2nhlK$PpY4fukXCJOoaHzyb0m z8V*6DA!s}VO@g2SaxESX!J{E~JOodI-~sYc5*$K8Lr8cCi3A}5AQA+CLjW`cz(W8M z1OUjuWM~izJPcL?y2FNVHO*|To$HVa?I36IA z0&7WVI0+9Yk>Df%T;>sKlQ+P*t$DB!*EH9ON!pQo$@@B4FX|j&`?1bcxU{`{E<|`bw2E<+C_`% z!1gZqH#$Hs&{K%jfQS#ucx{#NAiSxWY*?(qUT~RS4EB*O;W~R(DE!4on2mJ>_R^*Q zqmY$_H}%EaTrOW`Eg@sX`SXU1RBw!+nOF6b&15AfBJ38g!%CA121RKoO1N%C_=ld% zX-EQR3GiDj-5s!A#WVL2#vLLgp3KKt`)ZcQ8YQi<9<*~Cb&S@~7ZE1LOBSxTBWUhe z=2_`K&rqI!OL+1#`(k-ETh;fhz`HG;$A86~bOZHJ4$rSeER{LTABvp->wUa`v`}oV z7DO7{AJGJ_T1NM%s(df}j&nc6Gzf3J?^-kh`)N=Qp- zD7y3z^N`_^gx=7$pBdlLi5UqneCpKc)7GAPZWQC>TZ@OxQzrFgID zy3ygHO%rcm^(ghls}`b#|AF~JG!B-JdBUk7HlS`ARDAAL9IN6_y8u1CE%lj}i}33X z0l{XSvrGxu)xD^nBTH^0XF8=`r71b5#Q(67AoBR`%B}4Y@2=LdJf7^$$6|)F@4l`x z{$uuRh4F2ML)!Avp^(A5h5=Ej%6zH~*ZGZ*y}4%X4UWt6iJWzN;NVDDsu26*+Mrdc^{vWAYZ#eV|IVS5P`sy)n;=Y339Y`2CKASfw?HrcJBcX8 z;Fo$n$s`vP{l=`7C&UoB97U7gSy4GEG;1QxQ?v-KF2;>~F4DfmZ>4AdULqh+qsJOL z$Cp&@CHI3@2qV(>OW0|}w5}c2_<+YsWwPq(U{(4Y8%GIYR%I9IDblws?DrOnqx;Q) z{zx&Bx^bn_FY0YXKtnX6ulbU1a(sO*5GZP$*K#3 zRo`QG*^kyaS!Z&aKfMd&lm~pg@G=T`3W@OM2wTYT`0VxUHE!K&!Bi(*i`Lin3x4m=P#IJr<44k zfOd@)G@n6`R3_k~YLf@+`=pwf@=tZmn!f`ksI67P^)tCwW8#e;lMqd!RB&j1cf-X> z>^&c1Bs=GgQhNuhl!!9Oiayhv4=*YNBwT+Pv4y z>)Z3*csVECnS~uUs&z)Wb2O|!|5D8TIg0&=n$}KdD0iT2=qrELgnu4sqE zGM6=+m~kILabeHI*1x(2o_yuEz%Wvloy3i!fI&ksFp@)8AR1fMMl~K$W%P~`g zZ_rD9>4V4vLlN_Cm5rQItf5z^-Z{e|1zCfkrz{N&CI`GXvf$GWA)zKPL7e%%KFHFj z(kJ^?`FgI0tMKO&b|B|m?*5P|!i!#TKveo(#~uAR+dK@5_tP=;=Zz&?`ueKPS2+1i zVzuw_Hya^P>X&>on1>wZOSqJB!#GyYVA8x!E+d@*!Um1f35rzTr*hRwx=WYu`Z2YI z8siA;HXr52Ra=1+w(XESJ-I-}x*%QeU`~X(P)~i|nF*OLT~V;|i3;ORw5q%O@`QBP z&`mJ0gk)^gjXUZR4;yf3DMozdWRc_AyXwZ0SRd&Yo#Ujs$Iyu5Vi6Fys^Jlxqvczl z-hFVIIY4}!YyNUc*`&rWZr&<~Wd(Xq{r1^>{$ovm05Kf;Sj}S4eRowhAZ#B?Ne_}& z+8`P;1B40|0gW!go{E`JxR0zSOUL>1UX14%!RtAMwc~>|RQ%Tex~>0P80`dgQ4~P8 zbnI9~a5SBytV%Xd3JbI(J3(azUpoi6C}KP|r+!4Rw(K-L7Dd7rej3T|`o`rDy!}Og z>S-pJHvCytu2?9Nl4uv~@tlzyj5UtcpAnzCrsKAx;9TA&?(i5I;B0zPAYsFh?iGBa z*|@t=e9q<7=gz(iRt)y{@y2IPhNR+FS<*(xW+63t7jp32c@y9N7k=DB!Tcm@KPc^+ zM`i&9zI0vjV+})@SEh3balKd=dSt;UB+##O)ut&r6TA;^V4g?xxu7x!wgTGJ)H4d7 z^8*c%hPsi1|8)L&@z6U-Ovgrwnt29=`5CoeaO{p*bDfJq+AzTN6ql6)J|(GgX6kjR zn<^rlzkLh0RqXLe9NCj{RJ5P9blu3Tr#xn}U!6tRB@P$!Rg4@w`_6>^I8 zU*Gi9Jl*jXw>7kOQR&`-9J>v)C0u9GEVW2WdEAJL)BYT>r++fF>dc-Dy#M)w|#Xq->hIQ{I)6hFxy8V2@RZr&t>Iwnh z8`WW@-W0Ec@)*`0DqGwXC`27f5Y|ZwQ&UP$o32nEyEb-<(x#TN7g)8z0 zW$K-1E4*3}TrCKLv?)IvUfCODHbzXbyt}D;Mw+KljKI;-pIu5&(y*?%Ypn8dJ71{i z*6ymj1p-NLV$Vh)1AUb&mOU?}{c)Ey@h073&MymAWV1Bmj{PSZSZ^G4r+M!+rbjeI zaN3w0Lew&EdelS1b6s`u?wu_T6Cf~fc>f!dk1VIWa^9alKI~gAXy;K9!H*q+si)rTKnXS{SsrE;ADG8D=DcgBs>x}JJO7l810@tf(^8W<94zPlX zvewXrl|E=q7l+Fyrw~QIYb+S)CWnor5LFzUlU!tv&-i>^m#H&1osVm9jDNE_eob?5 z%jHNg=cU{==6qu+St_eiVX0jyRkSI^?-H-_ubMtrIQKW znBqN>Y`wYQucbb@pE<;c^ZkbGVUIUk5>U7yc-sucFIV8JmAbaPo##>fStAiOn-g}6 z`U(?;&-b^_B;Mz1zOBcHHXB+nKTTvl>2@b=rf$LDSr`+Ytm~OQOq`?ag;VTp8~z8) zeGJ1!b{)cczf{FrO&@68c{8h-#~5#wm7@N6c;KVm#n5Ag?7~0xW{1L=tY6s*JrrVi z7Y78iTh9&24tonM3--)iz%0)ST-J|{brB+Qj!*b7X*Q(F*k9)cTrGb;#pYJAK8TZh zM=97D~&!R^e?|3*t^X*t@oh82=*mkivt^FQL(XB>(R=vk@A>W-= zIlnQ~7;%I8jRb?+6{!HZMDy@eWcy{L`v)ESkLj&S!ZeQO%4AkzH6rbEUJpTFN<+Fa z_7WX@{(b|T9$(_r9}{V%jdIGeQLbBW1X3i75k}MJ8Ec?)UaD^K^H;v+%Dyb+BSAI)-XC$dAP zKLnQ-kyifr>{ARh=CM$y=Di!1_9cXsDOir>5UD3fg`!0bu~+I<%569l;tUEr*Df5LyI3P?rS|F3Zl}*%5sbZiuNB4J|1&zQCE{F z3U<%(%|c2PmACp(v(csYN);n3tOl2bSXctqP4+dCi=Q8Iv-U}zUxh`V)ygB>DP6I* zH=uYTzb~ADAwJK+NL|6&f4FJ(b|idO?3-c^YS*N2haQT|_O+bDY`izK$TkSVaM0EB zX4PmUZBL9`Fs;k-v9fHx9ryZhY}c{8&h?cuRc6v{_GbedPj_!)?IJW*G3} z5Z^M8;qOBdWo~CS1I(m<)l~W|DMJD+@x>f=cA|vKw2W2d@j1;p@L8h9d&6em`Ndk7 zq|cPNJI7Xr#E&ML%H4jyCW@-z;P{_o9`zg=%+qazb1To^62i(49S3Z?5s~y6vxk;f zfPPw?uhXzb1Db$~7@C!Q9`|m94!g!ri9q=_*8VHV#RJ43ISi2H(IsuDNVHY6J7gMc zVfVU>9PH0PZXbax)JIC zTVL?!+)p7DmUISR8_vBLnlNJoenyv_-TTL;G`vNCug9_kVG%W-RKh?JfKuCoL63qM zXL-IR{GrOsB_^24y%E%~{VcNtxRE}GkmFE5E zM(>gQ#kyY)=xW)9j0P|7d!jr}xFj9p6?)e9I5v2(-XmzZkNlcBtax9W88hVAZTzL2 z^ICq^c*VOx9$Bt=smVzG01dsD$yQ9q_F}I@F^TITxF5t{eBq%@(`M;6aQvAC^?ZFS zV~sf@5)<)KZ|u7e-B1DV-)i;gPTdLGx}pT0yIq0M8jsbY9eX*&H}-GQtnd5co=F*j zN57~t)EtQ~Uz=(Pe*SNLp}e!yB)9V0=h@gA({!_r1p4}g4jCTb$Y9<@oy(yIlpMcF zg3rp1G*uY%b@#ozJDe4sx^T?56^4Mfc#-0kx~aCB&Y)R(_s(ba@Ng(5Opd>$r!}S9 zr-A1<7OB!fDchN?mw33WbA_7w1aZP+1I_#EJ?2|Lv56q#cnwL-qPCdWpTM-=-%fu-q>;X?ZtdXzk zj#W1seFr7`(Y1c#-#RA-)i0@HJ<^%?6UrW)gR<%RnU;TiVNKx~JXstY$=N}E~g61-gyQ%n=XI75Rm~ahpnFpQr*4@mfve( z44Nqn6JZo4xUM>@ihC$#K*t!i=KOb)#xe^WG4PpYt%Mf0y&Tq?7g*=O@MaGjLN{RIS;5Kfl_0L@U6ibba04Qnn{%q)mO*}34*Px_BWm$~LT`)ShV<`hDkBwG)x~Di+|+wDUTZs#KjG@^hC|^Q?~0jc4}Wh=IU^~vzB!zMGcLj0 zN3QBg?_ZR=P@$gpsWypW3o`u+d)*K z`I2Am8VO&h_=O{+CoKD~FOFu{&O3(h`lS7jk1R>F{HfHT`Y|6#_b1TIlI`T>5QB_T ztxNcQIBxi%2a4AKg;-AfP{^lStQKyeXseB}r`YYn9h&7OMxXPe?I@ni5& z5ogyw)*K0=iPZ;J>z=Xhy)=|8z%q&r{_@9JdKyFb^+ubpUyQ`BZgVZ~&gnRe5ihkZ zQ5P1!{B%A8Wn`dG-n*NkZlR#xK+O`Xc|cWRP!Q$M)0WuX-rGo*;Ikz@6nXwbXlv5kBhD2RdR@c1UpS{PADvq3*`5#q7U@ERf zE>-Qr|IOQs(~zd)Hm$hG&a9KrPAxyK?RIG^1NV)+nMnU15pOES=a1Jl{r5kGOglYw zG>fdOz;bEXm>iZX9Uvn;uW!JRbX=T(w3~U=H)~cIeYYQ9qLHD|C+REsOAX%g`EQc88ES;N2vx|@ R`{Y+l8c1!GG9_#5e*p&C7e4?1 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/checked_by_tidy.gif b/libstdc++-v3/doc/html/ext/pb_ds/checked_by_tidy.gif deleted file mode 100644 index 47c2c4859c5ef857eaa98b53d509fee17deebac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 1367 zc-l47e{2**6bJC>FS=Yow@})}6x&0BoD{;*YPbN}UQ1~Y3he^1EJcD#fo4L2Yz>gr zh`5E)E*08Kin^MkkMlQ zs|+g)yB(P!gP|xxIzt*mDnklGkRh2_IuOKL0$y`A1x z$J^}1EiffmOUuxptysg4$>W@IY@Po;vncC$z$n`r8$=BSc+rGjwN|a z*-=9-n?!A#u(5kW8^vv;+eovKY9qzA61Ek$E#0=X6xFsATaOT&Ajl*rNswE_2{H(R z#EKKkAf`-`3Q0ne5Q!GSUJynu3tI*@Wt@=yy{BR!D}hV}C18q#;*#ZdEz@PjrMMP~ z%YvbX4K-+}f}w;AC15CmA%%4{q$>d(`gH;5JkU9yDSi#|9+B4qK;wbN0TqT+nNvkx z4G5|LR1PRG>=A(y0g3<=9w;1uP=R6qiU3A<7~!BGK*2o$s{^JM5!Ys+X? zNyRhuk6#>}TDg9p_1cY@D{|&F^^HwwZ&N`97Y28x`I;8y!q@M0FPXpg-1l?06ogNv zeLOkm$=Qdu)8-YO+u88)s?NdHYpRZqZpb?P(k-qz<68EOKcW|kd?TY`|MQt|9~jWM zVA|N3TLs&$vWtHYb&{J>`?S)7i!(d<;jSG${l?(70e^pu!>3<=t#ZaY<6-X5-CdLR z?3liFLu1j(3O%@cS^etb8N)X!vd@?Fq*o_*jICdqRn<^4`|Rm8?LL3Ze|5s}sqW7C zUyV0Wa$e<*j;__UaBe#y~x-|@Wh+}@1B`to8acDZeD)7W~uP5xzO_X4u# z_baj6+~X^yA9PLa3jJIrtvqo@e__>$4qVz(F>&y(?$4jyJ952xX-nC@Ps;Wlx?jHF zt&!xu$*@i%2=$AhmkHa>!141MP-F9(bN0d - - - - - - Concepts - - - - -
-

Concepts

- -

Point and Range Methods and - Iterators

- -

A point-type iterator is an iterator that refers to a - specific element, e.g. as returned through an - associative-container's find method; a range-type - iterator is an iterator that is used to go over a sequence of - elements, e.g., as returned by a container's - find method. A point-type method is a method that - returns a point-type iterator; a range-type method is a method - that returns a range-type iterator.

- -

For most containers, these types are synonymous; for - self-organizing containers, such as hash-based containers or - priority queues, these are inherently different (in any - implementation, including that of the STL), but in - pb_ds this is made explicit - they are distinct - types.

- - -

Invalidation Guarantees

- -

If one manipulates a container object, then iterators - previously obtained from it can be invalidated. In some cases a - previously-obtained iterator cannot be de-referenced; in other - cases, the iterator's next or previous element might have - changed unpredictably. This corresponds exactly to the question - whether a point-type or range-type iterator (see previous - concept) is valid or not. In pb_ds one can query a - container (in compile time) what are its invalidation - guarantees.

- -

Primary and Secondary Keys - and Associative Containers

- -

In pb_ds there are no associative containers which - allow multiple values with equivalent keys (such as the STL's - std::multimap, for example). Instead, one maps the - unique part of a key - the primary key, into an - associative-container of the (originally) non-unique parts of - the key - the secondary key. A primary associative-container is - an associative container of primary keys; a secondary - associative-container is an associative container of secondary - keys.

- - -

Null Policy Classes

- -

Associative containers are typically parametrized by - various policies. For example, a hash-based associative - container is parametrized by a hash-functor, transforming each - key into an non-negative numerical type. Each such value is - then further mapped into a position within the table. The - mapping of a key into a position within the table is therefore - a two-step process.

- -

In some cases, instantiations are redundant. For - example, when the keys are integers, it is possible to use a - redundant hash policy, which transforms each key into - its value.

- -

In some other cases, these policies are irrelevant. - For example, a hash-based associative container might transform - keys into positions within a table by a different method than - the two-step method described above. In such a case, the hash - functor is simply irrelevant.

- -

pb_ds uses special pre-defined "null policies" - classes for these cases. Some null policies in pb_ds - are:

- -
    -
  1. null_mapped_type
  2. - -
  3. null_tree_node_update
  4. - -
  5. null_trie_node_update
  6. - -
  7. null_hash_fn
  8. - -
  9. null_probe_fn
  10. -
- -

A "set" in pb_ds, for example, is an associative - container with its Data_Parameter instantiated by - null_mapped_type. - Design::Tree-Based - Containers::Node Invariants explains another case where a - null policy is needed.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/contact.html b/libstdc++-v3/doc/html/ext/pb_ds/contact.html deleted file mode 100644 index 3d506c975c76..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/contact.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - Contact - - - - -
-

Contact

- -

For anything relevant, please write to pbassoc@gmail.com

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/container_base.html b/libstdc++-v3/doc/html/ext/pb_ds/container_base.html deleted file mode 100644 index 359e02459b8f..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/container_base.html +++ /dev/null @@ -1,1063 +0,0 @@ - - - - - - - container_base Interface - - - - -
-

container_base Interface

- -

An abstract basic associative container.

- -

Defined in: assoc_container.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Key
-
-
-

Key type.

-
-
-
-typename Mapped
-
-
-

Mapped type.

-
-
-
-class Tag
-
-
-

Data structure tag.

-
-
-
-class Policy_Tl
-
-
-

Policy typelist.

- -

Contains subclasses' policies.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
- -

Public Types and - Constants

- -

General Container - Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-typename Allocator::size_type
-
-
-

Size type.

-
-
-difference_type
-
-
-
-typename Allocator::difference_type
-
-
-

Difference type.

-
- -

Categories

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-container_category
-
-
-
-Tag
-
-
-

The underlying mapped-structure tag of the - container.

- -

This is one of:

- -
    -
  1. cc_hash_tag
  2. - -
  3. gp_hash_tag
  4. - -
  5. rb_tree_tag
  6. - -
  7. ov_tree_tag
  8. - -
  9. splay_tree_tag
  10. - -
  11. pat_trie_tag
  12. - -
  13. list_update_tag
  14. -
-
- -

Policy Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-allocator
-
-
-
-Allocator
-
-
-

Allocator - type.

-
- -

Key-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-key_type
-
-
-
-typename allocator::template rebind<
-    Key>::other::value_type
-
-
-

Key type.

-
-
-key_reference
-
-
-
-typename allocator::template rebind<
-    key_type>::other::reference
-
-
-

Key reference - type.

-
-
-const_key_reference
-
-
-
-typename allocator::template rebind<
-    key_type>::other::const_reference
-
-
-

Const key reference type.

-
-
-key_pointer
-
-
-
-typename allocator::template rebind<
-    key_type>::other::pointer
-
-
-

Key pointer type.

-
-
-const_key_pointer
-
-
-
-typename allocator::template rebind<
-    key_type>::other::const_pointer
-
-
-

Const key pointer type.

-
- -

Mapped-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-mapped_type
-
-
-
-Mapped
-
-
-

Mapped type.

-
-
-mapped_reference
-
-
-
-typename allocator::template rebind<
-    mapped_type>::other::reference
-
-
-

Mapped reference - type.

-
-
-const_mapped_reference
-
-
-
-typename allocator::template rebind<
-    mapped_type>::other::const_reference
-
-
-

Const mapped reference type.

-
-
-mapped_pointer
-
-
-
-typename allocator::template rebind<
-    mapped_type>::other::pointer
-
-
-

Mapped pointer - type.

-
-
-const_mapped_pointer
-
-
-
-typename allocator::template rebind<
-    mapped_type>::other::const_pointer
-
-
-

Const mapped pointer type.

-
- -

Value-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-value_type
-
-
-
-
-If Mapped is null_mapped_type, then Key
-Otherwise, Mapped -
-
-

Value type.

-
-
-reference
-
-
-
-typename allocator::template rebind<
-    value_type>::other::reference
-
-
-

Value reference type.

-
-
-const_reference
-
-
-
-typename allocator::template rebind<
-    value_type>::other::const_reference
-
-
-

Const value reference type.

-
-
-pointer
-
-
-
-typename allocator::template rebind<
-    value_type>::other::pointer
-
-
-

Value pointer type.

-
-
-const_pointer
-
-
-
-typename allocator::template rebind<
-    value_type>::other::const_pointer
-
-
-

Const Value pointer type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_point_iterator
-
-
-
-Const point-type iterator.
-
-
-

Const point-type iterator.

-
-
-point_iterator
-
-
-
-
-Point-type iterator.
-If Mapped is null_mapped_type, then this is synonymous to const_point_iterator -
-
-

Point-type iterator.

-
-
-const_iterator
-
-
-
-Const range-type iterator.
-
-
-

Const range-type iterator.

-
-
-iterator
-
-
-
-
-Range-type iterator.
-If Mapped is null_mapped_type, then this is synonymous to const_iterator -
-
-

Range-type iterator.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-virtual 
-  ~container_base
-  ()
-
-
-

Destructor.

-
- -

Information Methods

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  size
-  () const
-
-
-

Returns the number of distinct value_type objects - the container object is storing.

-
-
-inline size_type
-  max_size
-  () const
-
-
-

Returns an upper bound on the number of distinct - value_type - objects this container can store.

-
-
-inline bool
-  empty
-  () const
-
-
-

Returns whether the container object is not storing - any value_type - objects.

-
- -

Insert Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-std::pair<point_iterator, bool>
-  insert
-  (const_reference r_val)
-
-
-

Inserts a value_type object. If - no value_type - with r_val's key was in - the container object, inserts and returns (point_iterator - object associated with r_val, true); - otherwise just returns (point_iterator - object associated with r_val's key, - false).

-
-
-mapped_reference
-  operator[]
-  (const_key_reference r_key)
-
-
-

Subscript operator.

-
- -

Find Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-point_iterator 
-  find
-  (const_key_reference r_key)
-
-
-

Returns the point_iterator - corresponding to the value_type with - r_key as its key, or the - point_iterator - corresponding to the just-after-last entry if no such - value_type.

-
-
-const_point_iterator 
-  find
-  (const_key_reference r_key) const
-
-
-

Returns the const_point_iterator - corresponding to the value_type with - r_key as its key, or the - const_point_iterator - corresponding to the just-after-last entry if no such - value_type.

-
- -

Erase Methods

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-bool
-  erase
-  (const_key_reference r_key)
-
-
-

Erases the value_type associated - with r_key. returns - false iff r_key was not contained.

-
-
-template<
-  class Pred>
-size_type 
-  erase_if
-  (Pred prd)
-
-
-

Erases any value_type satisfying - the predicate prd (this - is transactional, either all matching value_types are - erased, or, if an exception is thrown (for types whose - erase can throw an exception) none); returns the number - of value_types - erased.

-
-
-void 
-  clear
-  ()
-
-
-

Clears the container object.

-
- -

Iteration Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-iterator
-  begin
-  ()
-
-
-

Returns an iterator corresponding - to the first value_type in the - container.

-
-
-const_iterator
-  begin
-  () const
-
-
-

Returns a const_iterator - corresponding to the first value_type in the - container.

-
-
-iterator
-  end
-  ()
-
-
-

Returns an iterator corresponding - to the just-after-last value_type in the - container.

-
-
-const_iterator
-  end
-  () const
-
-
-

Returns a const_iterator - corresponding to the just-after-last value_type in the - container.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/container_cd.png b/libstdc++-v3/doc/html/ext/pb_ds/container_cd.png deleted file mode 100644 index 52553278cac2614875adc035c8b109bcff3631b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 11884 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Benjamin Kosnik - - - - - - - - - - list_update - basic_hash_table - basic_tree - - - - - tree - trie - cc_hash_table - gp_hash_table - - container_base - - - - - - - - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/container_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/container_tag.html deleted file mode 100644 index de187a94dab8..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/container_tag.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - container _tag Interface - - - - -
-

container _tag Interface

- -

Basic data structure tag.

- -

Defined in: tag_and_trait.hpp

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/counter_lu_policy.html b/libstdc++-v3/doc/html/ext/pb_ds/counter_lu_policy.html deleted file mode 100644 index d9d5112c03bd..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/counter_lu_policy.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - counter_lu_policy Interface - - - - -
-

counter_lu_policy Interface

- -

A list-update policy that moves elements to the front of the - list based on the counter algorithm.

- -

Defined in: list_update_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-size_t Max_Count 
-
-
-

Maximum count.

- -

When some element is accessed this number of times, it - will be moved to the front of the list.

-
5
-
-class Allocator 
-
-
-

Allocator type.

- -

This is used only for definitions, e.g., the size - type.

-
-
-std::allocator<char>
-
-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-allocator
-
-
-
-Allocator
-
-
-

Allocator - type.

-
-
-max_count
-
-
-
-Max_Count
-}
-
-
-

Maximum count.

-
- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-typename allocator::size_type
-
-
-

Size type.

-
- -

Metadata-Type - Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-Some class containing a counter.
-
-
-

Metadata on which this functor operates.

-
-
-metadata_reference
-
-
-
-typename Allocator::template rebind<
-    metadata_type>::other::reference
-
-
-

Reference to metadata on which this functor - operates.

-
- -

Public Methods

- -

Metadata Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-metadata_type
-  operator()
-  () const
-
-
-

Creates a metadata object.

-
-
-bool 
-  operator()
-  (metadata_reference r_metadata) const
-
-
-

Decides whether a metadata object should be moved to - the front of the list.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/design.html b/libstdc++-v3/doc/html/ext/pb_ds/design.html deleted file mode 100644 index e83bd4dd20a8..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/design.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - Design - - - - -
-

Design

- -

The pb_ds namespace contains:

- -
    -
  1. Exception classes (see Interface::Exceptions::Common)
  2. - -
  3. Invalidation-guarantee tags (see Design::Invalidation Guarantees - and Interface::Data-Structure Tags - and Traits::Invalidation-Guarantee Tags).
  4. - -
  5. Associative Containers (see Design::Associative - Containers::Tree-Based Containers, Design::Associative - Containers::Trie-Based Containers, Design::Associative - Containers::Hash-Based Containers, and Design::Associative - Containers::List-Based Containers, and Interface::Containers::Associative - Containers).
  6. - -
  7. Associative Container tags and traits - (see Design::Associative - Containers::Data-Structure Genericity, Interface::Data-Structure Tags - and Traits::Data-Structure Tags::Associative-Containers, - and Interface::Data-Structure Tags and - Traits::Data-Structure - Traits::Associative-Containers).
  8. - -
  9. Associative Container policies (see - Design::Associative - Containers::Tree-Based Containers, Design::Associative - Containers::Trie-Based Containers, Design::Associative - Containers::Hash-Based Containers, and Design::Associative - Containers::List-Based Containers, and Interface::Container - Policy Classes).
  10. - - -
  11. Mapped types for setting the mapping semantics of - associative containers (see Tutorial::Associative - Containers::Associative Containers Others than Maps and - Interface::Mapped-Type - Policies).
  12. - - -
  13. Priority Queues (see Design::Priority - Queues and Interface::Containers::Priority - Queues).
  14. - -
  15. Priority Queue tags and traits - (see Design::Priority - Queues::Traits, Interface::Data-Structure Tags and - Traits::Data-Structure Tags::Priority Queues, and - Interface::Data-Structure - Tags and Traits::Data-Structure Traits::Priority - Queues).
  16. -
- - -

Associative-Container Design - describes associative-container design.

- -

Priority-Queue Design describes - priority-queue design.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/direct_mask_range_hashing.html b/libstdc++-v3/doc/html/ext/pb_ds/direct_mask_range_hashing.html deleted file mode 100644 index 19f8621c2205..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/direct_mask_range_hashing.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - direct_mask_range_hashing Interface - - - - -
-

direct_mask_range_hashing Interface

- -

A mask range-hashing class (uses a bit-mask).

- -

Defined in: hash_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Size_Type 
-
-
-

Size type.

-
size_t
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-Size_Type
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-void
-  swap
-  (direct_mask_range_hashing &other)
-
-
-

Swaps content.

-
- -

Protected Methods

- -

Notification Methods

- - - - - - - - - - - - - -
MethodDescription
-
-void 
-  notify_resized
-  (size_type size)
-
-
-

Notifies the policy object that the container's size - has changed to size.

-
- -

Operators.

- - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  operator()
-  (size_type hash) const
-
-
-

Transforms the hash value hash into a ranged-hash value (using - a bit-mask).

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/direct_mod_range_hashing.html b/libstdc++-v3/doc/html/ext/pb_ds/direct_mod_range_hashing.html deleted file mode 100644 index f3f9295d4310..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/direct_mod_range_hashing.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - direct_mod_range_hashing Interface - - - - -
-

direct_mod_range_hashing Interface

- -

A mod range-hashing class (uses the modulo function).

- -

Defined in: hash_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Size_Type 
-
-
-

Size type.

-
size_t
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-Size_Type
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-void
-  swap
-  (direct_mod_range_hashing &other)
-
-
-

Swaps content.

-
- -

Protected Methods

- -

Notification Methods

- -

Operators.

- - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  operator()
-  (size_type hash) const
-
-
-

Transforms the hash value hash into a ranged-hash value (using - a modulo operation).

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/disclaimer.html b/libstdc++-v3/doc/html/ext/pb_ds/disclaimer.html deleted file mode 100644 index 681af4edf720..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/disclaimer.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - What, me worry? - - - - -
-

Disclaimer and Copyright

- -

Revised 16 February, 2004

© Copyright Ami Tavory and - Vladimir Dreizin, IBM-HRL, 2004, and Benjamin Kosnik, Red Hat, - 2004. - -

Permission to use, copy, modify, sell, and distribute this - software is hereby granted without fee, provided that the above - copyright notice appears in all copies, and that both that - copyright notice and this permission notice appear in - supporting documentation.

- -

None of the above authors, nor IBM Haifa Research - Laboratories, Red Hat, or both, make any representation about - the suitability of this software for any purpose. It is - provided "as is" without express or implied warranty.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/ds_gen.html b/libstdc++-v3/doc/html/ext/pb_ds/ds_gen.html deleted file mode 100644 index ec99c4d5f7ef..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/ds_gen.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - - Data-Structure Genericity - - - - -
-

Data-Structure Genericity

- -

The Basic Problem

- -

The design attempts to address the following problem. When - writing a function manipulating a generic container object, - what is the behavior of the object? E.g., suppose one - writes

-
-template<typename Cntnr>
-void
-some_op_sequence(Cntnr &r_container)
-{
-    ...
-}
-
then one needs to address the following questions in the body -of some_op_sequence: - -
    -
  1. Which types and methods does Cntnr support? - Containers based on hash tables can be queries for the - hash-functor type and object; this is meaningless for - tree-based containers. Containers based on trees can be - split, joined, or can erase iterators and return the - following iterator; this cannot be done by hash-based - containers.
  2. - -
  3. What are the guarantees of Cntnr? A container - based on a probing hash-table invalidates all iterators when - it is modified; this is not the case for containers based on - node-based trees. Containers based on a node-based tree can - be split or joined without exceptions; this is not the case - for containers based on vector-based trees.
  4. - -
  5. How does the container maintain its elements? Tree-based - and Trie-based containers store elements by key order; - others, typically, do not. A container based on a splay trees - or lists with update policies "cache" "frequently accessed" - elements; containers based on most other underlying - data structures do not.
  6. -
- -

The remainder of this section deals with these issues.

- -

Container - Hierarchy

- -

Figure Container class hierarchy shows the - container hierarchy.

- -
-
- -
Container class hierarchy.
- -
    -
  1. container_base is an - abstract base class for associative containers.
  2. - -
  3. Tree-Like-Based Associative-Containers: - -
      -
    1. basic_tree - is an abstract base class for tree-like-based - associative-containers
    2. - -
    3. tree - is a concrete base class for tree-based - associative-containers
    4. - -
    5. trie - is a concrete base class trie-based - associative-containers
    6. -
    -
  4. - -
  5. Hash-Based Associative-Containers: - -
      -
    1. basic_hash_table - is an abstract base class for hash-based - associative-containers
    2. - -
    3. cc_hash_table - is a concrete collision-chaining hash-based - associative-containers
    4. - -
    5. gp_hash_table - is a concrete (general) probing hash-based - associative-containers
    6. -
    -
  6. - -
  7. List-Based Associative-Containers: - -
      -
    1. list_update - - list-based update-policy associative container
    2. -
    -
  8. -
- -

The hierarchy is composed naturally so that commonality is - captured by base classes. Thus operator[] is - defined container_base, since - all containers support it. Conversely split is defined - in basic_tree, - since only tree-like containers support it. Data-Structure Tags and Traits discusses how - to query which types and methods each container supports.

- -

Data-Structure Tags and - Traits

- -

Tags and traits are very useful for manipulating generic - types. For example, if It is an iterator class, then - typename It::iterator_category or - typename - std::iterator_traits<It>::iterator_category will - yield its category, and typename - std::iterator_traits<It>::value_type will yield its - value type.

- -

pb_ds contains a tag hierarchy corresponding to the - hierarchy in Figure Class hierarchy. The tag - hierarchy is shown in Figure Data-structure tag class hierarchy.

- -
no image
- -
Data-structure tag class hierarchy.
- -

container_base - publicly defines container_category as one of the classes in - Figure Data-structure tag class - hierarchy. Given any container Cntnr, the tag of - the underlying data structure can be found via - typename Cntnr::container_category.

- -

Additionally, a traits mechanism can be used to query a - container type for its attributes. Given any container - Cntnr, then __gnu_pbds::container_traits<Cntnr> - is a traits class identifying the properties of the - container.

- -

To find if a container can throw when a key is erased (which - is true for vector-based trees, for example), one can - use

container_traits<Cntnr>::erase_can_throw, - for example. - -

Some of the definitions in container_traits are - dependent on other definitions. E.g., if container_traits<Cntnr>::order_preserving - is true (which is the case for containers based - on trees and tries), then the container can be split or joined; - in this case, container_traits<Cntnr>::split_join_can_throw - indicates whether splits or joins can throw exceptions (which - is true for vector-based trees); otherwise container_traits<Cntnr>::split_join_can_throw - will yield a compilation error. (This is somewhat similar to a - compile-time version of the COM model [mscom]).

- -

Point-Type and - Range-Type Methods and Iterators

- -

Iterators in - Unordered Container Types

- -

pb_ds differentiates between two types of methods - and iterators: point-type methods and iterators, and range-type - methods and iterators (see Motivation::Associative - Containers::Differentiating between Iterator Types and - Tutorial::Associative - Containers::Point-Type and Range-Type Methods and - Iterators). Each associative container's interface includes - the methods:

-
-const_point_iterator
-find(const_key_reference r_key) const;                
-
-point_iterator
-find(const_key_reference r_key);         
-    
-std::pair<point_iterator,bool>
-insert(const_reference r_val);
-
- -

The relationship between these iterator types varies between - container types. Figure Point-type and range-type iterators-A - shows the most general invariant between point-type and - range-type iterators: iterator, e.g., can - always be converted to point_iterator. Figure Point-type and range-type iterators-B - shows invariants for order-preserving containers: point-type - iterators are synonymous with range-type iterators. - Orthogonally, Figure Point-type - and range-type iterators-C shows invariants for "set" - containers: iterators are synonymous with const iterators.

- -
-
- -
Point-type and range-type iterators.
- -

Note that point-type iterators in self-organizing containers - (e.g., hash-based associative containers) lack movement - operators, such as operator++ - in fact, this - is the reason why pb_ds differentiates from the STL's - design on this point.

- -

Typically, one can determine an iterator's movement - capabilities in the STL using - std::iterator_traits<It>iterator_category, which - is a struct indicating the iterator's movement - capabilities. Unfortunately, none of the STL's predefined - categories reflect a pointer's not having any movement - capabilities whatsoever. Consequently, pb_ds adds a - type trivial_iterator_tag - (whose name is taken from a concept in [sgi_stl]), which is the category - of iterators with no movement capabilities. All other STL tags, - such as forward_iterator_tag retain their common - use.

- -

Invalidation - Guarantees

- -

Motivation::Associative - Containers::Differentiating between Iterator - Types::Invalidation Guarantees posed a problem. Given three - different types of associative containers, a modifying - operation (in that example, erase) invalidated - iterators in three different ways: the iterator of one - container remained completely valid - it could be de-referenced - and incremented; the iterator of a different container could - not even be de-referenced; the iterator of the third container - could be de-referenced, but its "next" iterator changed - unpredictably.

- -

Distinguishing between find and range types allows - fine-grained invalidation guarantees, because these questions - correspond exactly to the question of whether point-type - iterators and range-type iterators are valid. Invalidation guarantees class - hierarchy shows tags corresponding to different types of - invalidation guarantees.

- -
no image
- -
Invalidation guarantees class hierarchy.
- -
    -
  1. basic_invalidation_guarantee - corresponds to a basic guarantee that a point-type iterator, - a found pointer, or a found reference, remains valid as long - as the container object is not modified.
  2. - -
  3. point_invalidation_guarantee - corresponds to a guarantee that a point-type iterator, a - found pointer, or a found reference, remains valid even if - the container object is modified.
  4. - -
  5. range_invalidation_guarantee - corresponds to a guarantee that a range-type iterator remains - valid even if the container object is modified.
  6. -
- -

As shown in Tutorial::Associative - Containers::Point-Type and Range-Type Methods and - Iterators, to find the invalidation guarantee of a - container, one can use

-
-typename container_traits<Cntnr>::invalidation_guarantee
-
- -

which is one of the classes in Figure Invalidation guarantees class - hierarchy.

- -

Note that this hierarchy corresponds to the logic it - represents: if a container has range-invalidation guarantees, - then it must also have find invalidation guarantees; - correspondingly, its invalidation guarantee (in this case - range_invalidation_guarantee) - can be cast to its base class (in this case point_invalidation_guarantee). - This means that this this hierarchy can be used easily using - standard metaprogramming techniques, by specializing on the - type of invalidation_guarantee.

- -

(These types of problems were addressed, in a more general - setting, in [meyers96more] - Item 2. In - our opinion, an invalidation-guarantee hierarchy would solve - these problems in all container types - not just associative - containers.)

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/examples.html b/libstdc++-v3/doc/html/ext/pb_ds/examples.html deleted file mode 100644 index 03c7a3910037..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/examples.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - Examples - - - - -
-

Examples

- -

Associative-Container - Examples shows examples for associative containers; - Priority-Queue Examples shows - examples for priority queues.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/exceptions.html b/libstdc++-v3/doc/html/ext/pb_ds/exceptions.html deleted file mode 100644 index a51e8ebe0b08..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/exceptions.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - -container_error Interface - - - - -
-

container_error Interface

- -

Base class for associative-container exceptions.

- -

Defined in: exception.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-std::logic_error
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png deleted file mode 100644 index d86299b7e3ec1f3fd57d866f3b5edb7fd35fdcf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6194 zc-qBSXH-+svJNGb0Mb>8fJg}{q6R^VK%^rjlptMd=tX)FkRU}sq>2HAD7_0rniK&M z#L%TlFCtZ>snqjMxc9Al-+F)Edw@d1*j?Qp*My=C?F_J17!$lAs`S81cHM=h!6-sk`M?80s}$dAP6D^0gw(c z2nYrP!QdbmA_N1FY;gz(4gtrJB7_KlNDu%40Wc5%2LXr> z03ZRApg}Cq8MFpSaYze;K;RGvA_4)B!h#Y8gTUYr7$O1#kXV3+I1B=ZL*R%A96%xk z+7dAcA`U?$B8ULU5p+cW7zBVr07L`;kSLRK07-)^L0SMQ15zXq8pHyf0a8LF8C*CF zhKRucr2N3JpoGI=a6}9aAf*ek01t^c43UT-0$}zaDbN-J;4lCY0|2CAkctI*gXIA8 z2S~Lcr38Y3q(PPdsZ^xEAT|gMVgaPek&ZzbTtplWAQckK4-5-RL?Vs|fOQ4a1zCWH zIDm))08*JrUBQrSNreVTRVURBLvkgR10Xellp%(ML?R84dP3rXApw)10aA-d))-P8 z(gMJafrSL~1H*z65deVGrvW(aH*nff;IwDJX;*;Lx&x<`1x{-RoK^=o%^x_;5ID^N zIAsZ(@&HaF0jF5NsWtEq`TuFz1wOg}ZnPe1#$FHz9SiB7Y;Y>%2vqWVD;s(1yJNil ztUT=?%K9iiRR?!3Z!a59M-Okl+c$1qyM8mx_tjYlgsn_n32ES;x$$b^T`nJ!@;*-7 zjeN;Q4*Yx7D-M57uCz|BBpXy#KXh4-rXYZJc%A}6{m_s6Lwgt&!U(7N_4t3YJ*R@P zSX!pT3!7;@&Y_rQ$)IFB;5JZ!jdyQ2Kb1Gj5k_Zcq%A%lxEiW3|ays&i7m*Hnvo-ub6&i+{V%8|gxW;QGBv7u`s4W3VBlK#yLL#YfA2GJQs#NtkrJYgzjQrA=~P`5&F;J9q#rcXn&5J5}f;O_7nr@ z%3nf%*T26@zV<3LIh|Sdvrh8w>-KVzB3&WwFWlSi@6FC|`Uw^#+Z(ubJu)?@EK>C? zAA6fDdt<}CR_$CsTHIIKy5gHm^S!%W zoND@JD17b~7ADVWd311VrS*1;(rIrGomEIcWRJiO^t+VYvrke8X~&5Mk>4^5{}@{J z{=HAM-?1Njh#R|Qn%`57mD?@%*W2Z=GyY38JnH9jZzMOt0>(x_msJw0iuPTUZCe)X@Sn?j4OGXWG-{I}>4h zyCu;bS;=fpZ6Q&|4Xx9b*BlX*W;C9i2uCM|yiPpj@h|B*&bYFHx6)Vi8C?KMW2FU` za{O^{rk9|(%MPJ5yKK2d=VmnlAZD&|=Z zdHjuWx~kQjDX~5}yXyWICQHg(8Z-?t-wV`(B+FhZ77LdF#S#kZQ%&HA1pb5-4$_2aCsy}|KP(hbG7t^(uupg~N3olDt3DGxDY_UV%uY(?AJ z4Jp{5F|L5`)$cQbgBP7<%bNeTGMNC!FFuHWsk%=w(znk#G$1Qd>uPzqE9%Z~1HD~b z9k%U8z1Hhy+n$8$VIn(bLboP9Z+!ZgDNb8~6>HlN>-SzMH5lGD4oN3ON$u1>Kpq5! z8!!c>l}l)ubt>)5SwPDOQ3EjevZS;@f9<(?KjYtgCB`xwggLTttMJFhFwdXeU*2Ty zDz%#hEc3Sgpps`C&B5A!DUW2fuSkeZk~nMOnqC+Gbg6v`*1%Mwad$xB;lGCZdB%Oe zu?X=cV&4}m%NL`}J?V)|ZU&j}&%zYqGNyah5Q%vr@?vxvS8X1Sthpqk1WIci=*-@f zVTrObuLAjs{{|Q*G|l;!F&igblB-l}z2#OEPN}P=#6EE)FZL9Y$l-Ofei3RmyW}(Y zw5_@ED!ejI5QPf-Ojq}z$ELEnt-0!|+Dw9pbMCptvA4psl=j}G_>zCPmIWf?8G@1& zJXBg>4X2(RD`u`~E@R1*SVTjH?xU>wGz#!?35FN0SMfc(qxTB|e!ObbJCqc{?mcq6 zq$Fr9?3`euWTyFL_}9M3J}tcPvZ_iWvmotAPBNZy6OCd$Lw~1N9d*+UUdXSj$mq?I z5_f0;9sb43HvMb7rNj-JtJ~xPpFeN!ca*bK^F6YE@lDR$D@wuh1EDDYcFEP3qZH2k zZ{4^7qBVLGofI1%>Bo|SFTD_V|4D5((o!P=4qsPy?v&q|R@4@i z=A2PSVR=+`@{XxH+6eCc_qZ$m3MN)(UX$jW08ihu=T=CnDNB<OSwT8#Jt7NCjzWi9$kz{&n5| z_l*O#ZCJWI^GR+@)Nv$jaXp{1?}r(3`kKbONLRT@(fSP|kaAPHsfo$rMK=k3lt4_eAk zF<5FeSh=QAaEMsbdS&WbUEKW{4zJqZz6FDQtj>1JN;qq_p`O7ohN%^J)=DEhm>d$0 zZ7c3<8oMc2)`emkS1#hbKCC}796L25QfX7^v16wQof=qEi&3R^Oip=WOQZ&4XDG&Y zjEg${cKOL%p5exyAx4evA2p2h_x+UIpDN|(N0(o1n$%#VK~$H#GMu0DBeo_o8TI8` zb7EObi`Jx8_v+^Mi-`e~ssXme8lk<|Rp<4n`m9O;@fX-5j+YH~dtSSW>JEI+4(V$4 zTOXeW3eYm-;B&~!^o{BjD;5sv1Q$c7bWv}VF0&avg-0d!)4-%lm|)I@DDND#<$YMU zNWW)ZhikK%L7w#+@vP^e4Oq_tEZs0ygmd+q%8gC5NriGC0b6cB1BJCb%F`8SlMk1E zf~~4I!A}n8KU4YPl$#%Mu;ab(#Gx^Lqo^iC1QkiO`mDJ^xpZdU_bWpv9&2#z#CPra zAGGM(^*R}I_hU`yaW7+;%7)mZUZbjoy%9#e{^@l@OVsEt-kYDo_);4#+W zc_MI!m<4edb>ePHTrt0s6wl7a>zp#{0yE8U9d-IRP5VcTN7)|s?cl<26xUYQ+Qgkt zw+^F=JNwhHwj~2Xn`+EcA{R1f&=XVH@g=(jcq&@mqw$0C)X(B^#xXK08b~eGl8x2( zvVoavpI={r-pZ?HS@SFxrk3p4j*^N1GFDPurh0Ael}ftsT)TT>QgU?t{`Q^7ZBAzW zV%wk zEy7Xarr^=%*%Wz_okLM~cRO!a-$$;u58VnrvIcT99;vr;{hCeCdzBh~v%)pq!G9sq zj7P-X&M|aQwdMm~KmYVnuA{m>;~LMj` z{-XO>O!xGs&z^s>!_i?<^WnVZEAi9Yg1{><<3~$`W9j+_js%nmUz3>F#Q9Gi^>dew z7TSWa6?n%;><9McxOx6GPa=w`D=KC6@~92*r7q<;ntQiulnP&n{(7WY6v)naL>(rp zS=5`X|0f}QyXJ$!n4Wn-58X6O%zu{rwQ#SaiVo*u_#f-X)NGXg3dn!oY}W(J?dX`Y zR)v_}X9Xb_ZBbGDGBbOPaBBT(zb_3kSujk+T)-TEe74?0B9Fu+R?|_tAMdk{r9Yd? zu{BUcO3upOrLJ8`>eIzB49(MOb~lE5j3Usj8d(T44K{xYxvIU(1nIi?M6aKXXykx- zpG8iMbed#~zN7mGE41wS`>XLPv`*HaUV1UUd7l;jGu~WJ;CF__27}T4$;p#1`cgA{ zSJ(Ik-`9xNO79!Ge{gGAAOvy{PEu{GU_?p z!M(oGV#ubE%s!=2^0#ABX(#d!nOOR*BvGW%Zd1%>h2ggGB*8Dka{1(*hy!z{VQqKt z?#FxkAz!RdHv72ViUeRb&)({j;z)h6Vot}>O}y&+gJG=b!C)(Ap1q5S1Y+;r)ld&g zjk%_C&h{nVlgn$5Jz*r4{AOs*Mv{PO!6%!Jx!EcwjP6VAdbCNESXMO82ObL`O{=p}3jDoX3TmWLvx z``V0`29feKK7BjOC1=R{E=lly9X6u(ju%BA>uDMsS}}kVmL(y~5E$O8E=hn=k==3p zKmj9{#q<5=)_w);-%4?A>-W`mI-a`d+6m!#XhjnE#GYglXk=07Dk#;(H++r8&~teA zThSuyY@8(>g}rbh(pfA&Q4H9inbcf^|NJvWX5wj4?Bu-}-*@(+T$Bap ztj>X}ZCQx$oZ;(Lyp-G$INnj^*&k3!e%whfT=v>FeoDBOrTi8SCOz4;YXON^qp$L5 z!zY28grITpDSYi=a)=Be2?f38%ryV$&xEi!$$=h6;jDOTeMX zS+9rhGKi78!VJAq#o?J*)m(1Vdp9R0n*6GtZwWJW&-TF6LlQQGJM%23H2p|Jen~E8 z*^Pr09Ia`hqvX(?gJi0W=(OSqGK=8Q!9!}V1{rX|1uOMBvd{@Sr3PDWJd27!gPziX zZSMm-$fSjvx)z`%W=Odc57YRb0Y>uuzp$hoDbhgJSnt^58t*f|a|uK8vKmbH*>fzcj6 z!{e8>Fg}Xs;$4{2Q}yFbTC7fd-f%wyEJ{sSmnK#dLPO^2MDHGBy@nqutjTGg5l60F zRceYUtd0V7xsVQS_tGljuia^duI&5f&s1uEBcSA`-BWhGa4aIeMe*Esp*>9%KW7Un z9Aam8Q$4?r-B*oNAB*vkPyYe$I%{6E*?5j|qxSae$=F9F7v}!t=D4FT_!*2)pqDcg zb%*_;%4I^}F{a(Ut}80~@saUM3&VZu=bF4Z#6K$!&p97Co#eiQbot5YsQ(Gw4B}Qy z<^OG&#XI`8DlIh*e=S0s{Yc$DTEIcV*YuS*=kpE0A52`a(6zHotld`QE^ZaeItNt{ zhmwaaz7`69Ew0|YxCpI^^1Nds7&=(`&1TUsM=~?cVhK-dSIBPiO)NEiP?#(4Xbfy+ zWW6?hHhq1+G*bIsW6BB(Q!rukt=Ni=$+PNfdAyU)M24Hhyvp%SttNXi;_hW~U$Vtb zvVT~?G!MzNsr0DddwB2Z^^sOrz{dZ7(nFwC+(} zJ=3=Mt($s_@U-B`I|Q^o>+x&+z`Tgnh9)v-iVDiWp+oEZRfHh5ZFcf4`v}Kx<>{KL zftX)WN7~!m7-fBXn_(zBztN2tG+cmA7 zt_wf&|Mqbx``xrB&6aGBiM!Mj|13;dE%#m7zG|vZri%iEX(15QsO$Zby}Yh3(NOysZNt%)*Ci1(5K`NDmOw7qqK_1 zZ9e5RpFiv*FOsS@oO$vNZHVM`GfXo;wJza!pO>Md&?sK1rYq4iF{#Wtt^RU{m!5r# zVRs1WwtaU!u`*{hCckgk|D+0qegL1Mh*5ogWt3TUr(-#%&qS)>fn$1{9M3*=!)n9X z%&?WUdQW=yPv$+zfOFeDBQ~YR^*Cj zd8H+Ch6}Xn-Wq*VEz)7NP;b4WyDO1*+eua`|8nPpr_=dts?UTw4Zi<%9{8Rz|9H#R zG?3@itFQj`fzXHk(=QGN@zYD>6GV}_$h>9OYj1}$`PmF&K$U3^4H6kaQjL>T(V!}$ z=f7CRfvU;|3R&|1+hcBYHJNFMU%pA=(u2cUWuyGPLsd1}e@bJX?!i7n%?ESi>-CaT z88Ja&*xQ=c#($pQ9Z`<)S>x%c%`d%xVxrFD_?DcNUlv5r7AwNx`FKi7-E80GaETXj zjklZ>J8MndrbjVl`>;q~vKQpCO0PZ#fj;bKNHy%QDq2G04vM2hdkKDN1)`T~aTljz znsTo&Kpz@?jdo59cD!{qW6yCn7s*qyu3BAtemmF@Utv-Q9{Zv;#<|fWUx+C>=wCC`buN4J9Ql zARzF&^ZEYXKj2;KWi8gsy>sur`<%PudG^^SUSC&@l$eni1Okz2s6!1wAZ%6;2&;q; zA2`z!@IwRm!1YtoFeU{4!U^r+z%h}x`cpsP`dQ3BmJ&~1FmRH=U&YMd$ji|`=$Wqr zC@3gM(8bfu&+eJGgP@nMQ{I6rBM9^Wqyc?m9Gw4qDI{O#><)E28%FyzDZ&O~PdXxD zU!Y`6Se~KJ+ZF#M*W|s*$Ia@ZvT%z}5uAKKW4n|%Kh0I~d%)lDzZ5>bz3~~_U<_({ z9F((p6D~W}*SVD+b`bX7;82*WlK=7%@PoGg)01bI8;U<}^kIH@;xH12k@e!s|3d*-5D4Wi zJ?5(X;j~l`1tP6n^Q}1_uc z^wnCh_(J!$6y=-4G3xNnl4XM;8JO1l?4}&75Z`3@G#%mv3S|4V(oT~N!kH)GA;Tdk zD9G1&%EE9?m>ejfspJxOl%t(SBVzEA;Gr&N4l9ODPS_w5kV#9ZAhEaFI6jI5MU5sv z-+;PIGsRq|w_8Wjxo5v_chuKEa+DQgZ~gjFL@T;aktw!ZM8jmneuv_(I!1?lwo!3b z&y|D*MLaY|Jp&J(F6~$7 zk;vlhU?)a$_fbW9C$cvPa< z2>W6t4-RG&J5na~CL_x+uPV$z=F;0K=eNmBvxtwU2AbFQ9r9q8*Poes=^6JCOR*mzY~!f|Yv?TnAZ?(?1;CtQdASVl>K?3pvhRaP80FX8$# zqEFje$m@=SJvhGOIT^28!K}76^QEM?FDvgQnaq@QbvRXy*vCI{BCryme26DdsAWBsgH@di4${RbRKh zD$eHO(jEoN6rznMqXA>W^Kad9lj4UpA6Ub(LVqXvvDRX-;Jac)z{Gpxtg)mjkrglR z*V+t=QmRnCRCg3p!V9`+<~f#;3F0;bo_-=!ltvDY$9ApSy)wS8GbGhcegQW&n6X(L z0xNnHOX@Q_{rbiaE7)TZx~Gjd211}xkut&*K6o$twb-81!+jO>!Jy5@XkpdUt~4zX zbwDBfmFsXZoQ{B<4jm}=WQ#T|3XFh2PK4{h>Q#HeHn2K%4Oz<|Y&YY8dgL-u1|?!Q z2L6!Vzou{+Ap=B7H3s5;Dc=cKt+-ALv@;5o6t8PG+*A^%L;7`slZgnyM0AKNh9Vd3 zWwhHnZ>;*2(c3905)@u6k_GP;?>DaFs=v$`ty&1$Ep=-lnlUEfp_zYW;pD_s6!jV; zqdmsPfD!W5iE?F>qjfBe;tpxm9+H6qisl=gW<3^Lj;BgehO%vscrW#5SYv`z?7QIi=nxgr&CzTO z9n(UK;5T_Op;A*mV8lc3_nX#nM&xOra2#2zd*dHeDt0CsLe16oPN_@r9}&)xP7^FU zQZhNDE%F>YdA)?ym^JKV3)_V@yG%JcMlY;x5hXK87D{;h{B#9cA55;E{Nyrq7c0Y+ zegOn(PN5VA(f7WXSlI5r;~SA9;^2yj&DgrIh-L4zEU99Rz}ocWi&UIiUseSY;}fYs ztfQzB_(Nl+Mz}pB=nC>V2s)vzPAjmkeIN zope3im;3E`R;IrA@a;{zH~c8snNNLs;USOy&cc?X1gB)zDeaQe{o5HxQK3! z(Sikhf>YzXuXc@!!q0wk&j&5WK!tEd%b}Sc5N*Hqd-#q*m;B9&&--N)oCD*TGTQ+L zK1v}l)Q=>NAxv$O8DP#RvM#w+bO4K z5x6xt5>>mhlFwSHg5~Fg@$*t)84Su0u*hV(TKe9pbV}TL9@!aWt^ZQIHSKG< zci;qV3EjjW+%GDJiH`c$PlB~%L0r1|W?`qlzKyR_k29rj{rzcQ!>z9hbBZ6vg)y(6 zU(7{|Qm##f3d;9`37i(H!=xi$F^wC8cTz?1E)-Diuzi*!dgTu$AIv570Oa79C1{lp z`gl3O)>OXo3X9rS?okm3?e5MMSx2h(}D5|v#a#$Vk64DLgO_;A6lb4W> z3?B!~UQpvu*3OsR#!dc~z>*t6Dtk_fD^FswhR{%neg{Hc@g3nE*`QDL@oD%WhAkTD zT;yeMgFzjC=MpVH9ltZ;AvIuOPtp-FXd2}R(R{DoXgkQHPAT+EM58uC<3y%cJ~qo+ zb%ZinGFq4By(xWY)ZMjKc~&q8PT0s&L}TEnm6K|pCd+%uA$w#KGqPh}7&~ge^B~=x zwtYVFO;S z)9W6lYB2Wme#oJ}Mv0?fs3250?CeKBzp3-jPdlTm z;YU3mHb*PEf2=f)%eNo)yd{?pteJ1n^7b?h=|aKmWabsL%ZUy@5DK{ONKXl{m z?md!D@7KaLuq6AVw2hTGtaXRK7bP3=>&vAm=-@{9b@=yq?Jl3O)cb6d0R7vwHS>Zv9UD>f^7 z`lT`Gz-VRx=Nu1LUt3#y>Ue!fsO@4oOw`iB47M{_KAOcE@yEbzkd68s=d(Zk41!(X z*Qak#VH}Ool;Q7j#D(>bo#JFU9pD>W8Ig)qsmco2euV4d%q0p=*Aeg4Ez&}$Dsk`Q zUhVMQ@U+j0OXmTDdgYw@ouuS3`e{qUt45-s_ovo-Un%*sLc2|Gc9a=dAlN0i$1>(a zm+X;tzSw}F5o4#eH(KIur3Mh8jbH`)Tl7|~RA^0H$e$ns4Bpp3#6j553n?` zPouew0~&_hxIjXczq+1(eSt?JuMa@@FH%J(q8V@A=>NS~i7I-JTnRbI;+>4$h@wQu zu*BVB%PZ#SaU=$0b5ST!3gN-uKh#~_hDnhSW8cUB1^GIGxO%&?5|og^6)#O_x*A?r zp`S$H=la|+oLxwrL(Q4|PcH*A|Bg>E)f(4*cK<}1m7ugmvJS#nHtk7-%+I1(NiO4X z9r@Z`Ua10hNJKObtUv%FgdMb*@nTB5qlknAh4ERU@sJZvpP}dcMv#b#AXiQy zj~tjW`6iXv7RLQ zExPy9%O$_KDdP6}CE3H%660!;doDIgvBui?gx0CO&kbj$ASaC8am}F#io>2KtJbAV zj}&2bI-k24ADP1JmbN&fIcCr|&%TY=e>7&#DU6+<+7uZZqn9S-S22q|>Pi{@nhXlnLc+O5- zS=X;WT8>x0#KOU^S^n%c8w4bfz16e)U|z+fJa3*^>_XDbE`nd+vBxr&QG}{r@A}0J z+Socssd24K_=244I##NOH>~D)rI_)=unSFRXdskiUyWyCZtp#MNx$}BVPxn&+GWPC zA}e7y55*6=v4jq;)g)ZgQPd(|Mv%#nr@0u$O#M;Zju#COFOSlutjBi1LUdI3{kiy5 zJ5g)ZewXpkwDt^e$=ndFBMxg~s&8jf&9JqjY?j0$e2tD=s`rGWxV%rKgx13i@f~D{ zk|rBMygW)4-|OT_u!jFT9-8I1?)W=A*I;+;`SX(tI9m20p7g+5DIzt=eEBE5U3k9` z{f}i-qli@&dF|i%LxaiT_`iH#SS(u04{pfh=*mOOvXLw!e_p9Tygi3-e`mfbN=to( z{P}IY6|^4x4k@DzHOILzOydK$5=oUKNj`!@3pvNtHO9V^I>mISNEJ<^s^ZLEim*P5 zNttBkt*ZjE%c&Ymi2cOpS!;{;T3Lc#;b$|Z&Cv^_A_?aQ9&Zb!y8U}vzn!ui@o}5w zQaPcA?OVw=U5Y_Rq#BEFY?xX%aRYXzcg{A_^}2$W0%mD&wj=xwll|Prk}Do9`LwZx z>8jZb&BwB<-AJZuOyXBO>LRRvqqIn|y^t`7t7MXv+9Op&$mL)>#Rdt8A&8kkwn;7+ zyuXq6d9%N<{>(NH*|pvTk0PCmH`*(K_{!-*PSV06Bhcos2$A;VtpE{&ga?+SmT}%R zn$J@Em?&u9pu*(3_KyDn!N45!wNUOFl`T1xBpZCzlW5@ClcRyHd-4%`6Slb1&~xMZ zQI|{8D7IBGAV1*s!FPk)t@d{b>LtCeNc7}F|2U`6vt?A5YmdK^GyQgV_%F(H;^t&e zs9%m^sP=WcVc>^V_uhub)IN@x+6YIEQzG4oJxbm0RzvvR)t`jt5#<2Yp2Vgn?f}*3 zEU7N--}tcWN_P7oV+ycVD>m4%gBhLJ+R{#{C9i)^`X=>-M>Orp4l@or=%b{*745E&Ur+wrK9rr6QFp{6}L5w-_6VRT! z$Mk$AH}72$Z;ecRpOlk~h1|?(*imusXNw7xnD^f8++1lDuieAV;m<1O@42*Ur`*h4 zeDj7W9Re_G2qoS<{O2*fQbpU(y>E^GVRsZ1*gr^Y=znsamMT_jL0R#piCp*YbqUJM zmH}YEG+;+HO}qE?IL{*DXjwu}KQ&B^?NGD@T$|K(-R&L*HZMm6J$OI#`h|8{d$d#Z z3&K63_1Cs^0{F@!X`D=pK`Rlg3Rl~uZ$mE*Is*^hVu@7oF7{j9Y7_r2XvN>TXV)wlv;Y98<9hB(&9 zzgxUU?=2B;-n=P2XmyIyPSY~@1({ZoQWd!aNStcr`UxEv(d4mEYu@JXGCDl0e!jn; z2B@)Y*6g`7&sg|8gMEZOUR_*s)zd-BLO;LI2xT2BhhoX-M9b5jd*?pQhm9i&;pQ_xj7$>r z{SYfLp)BKCAOp4pPCeJT`e%1lMiosb0Em?Z=8vw{vh_rzIKrEqVq7CYf##GosBXPT4#+El zd-V08=fCIACLepve{>jneUCxJckjoC#uqde^~3fI(I@=6hV40zJdc8czS<(3%6Sxg z?TY&4jckf8+nfx9kzX8UZ3br>Y?SHaQSxIcx>6%hkud#piUTetcB$+oE^~2>u_M752%&hgs7_~W3Pt1}Hr@|KXn%m9l65)-Gf?d@$BzyPYL zn3)TzZuu6Pz3S@SW@{hA&aM@QXn79AF7%=uQC_iA@xJ zXZVbm)yY}qEuDdxTjAi~xJT&kUh?3WQb$bGTXj}3n6yPp&DGIlmXz^H>_~r`=-ak6 zj!jVi?-Y&D_XDD#PAiY6I+7nh?}ytIh8?s95)l!#zohW&+SK*Bqo}|+V0MF!x@z|hTE^wA3JY@hBNNrI(YHY(VsHid+Mgrc#Ju`C!(mRD)~EwYr9x25 zq(nDnm3-!fwo5tD$Rf2;6$fkuW+qIVZaMrfUogjMrxS}j zJ;>1b2zS1P2D3f`>8>>}ImjrfB^a2ixg3U)?26~ye*GiEU?s`Nmq5T0{NVfriQqQV z-#SRtR72~eL-99aPYW#%m5!f-3I18m!3q&y#l$~YjYJ&Mdb&()h&_9KEk zeOA4L8j>4@!|TTJt(*b}r`51tR)CbKf=Sb~nAfSIRYu_W8QTc|n-1z z>kJY`?s(qWagH_pXKnL4&V_$loEQ;4glmFpt-;d=6({jEzUCddst zY42oL?*mhdlV>M3*iLJU8o%cboY6pi8N|Dl``>wc6E5 zVJO@BzK`ul+(@4Ni|GgXt%`Q}%XI7k8S;6)9l8ZF;~@8iCJ(dMv!R-r;IWz53DR<^ zv0i&J2ccewEf~x{N+PHB^{HpWk$(o8RP&J6q=AgWv`@~zZ(A>nz^%kBEENp1wD~G2 z_|^Dzt;w9MTy=g~VMV`hS3$v9>YhT!X7MBkofpe`pxc|ns33X&?e8I?jP~!Q2YG4t zi9g|{;@k9wrae`cN~G^;v(A#?Xd5K%49CL@n&>qg12ihJdyD0ze_rVi*`HMWP704*4bOFbF(h*jDI;Kk z6`yqa@iArPuBV2g=7cc}O`|2R9f_7Wzw)ZmDbMYeLwnRZ?|n75YVcKAOTO#!S?~IF zja*Aod@lt*0*~t?@D;g69@!#KW1q>0gmpJ2AHS*-XMH9`gmOZ;=Ig-}(Q0ha zjk{=GWZS4JAe|jn_PnV2$~`jT$KKW_%FfkVrfgGBmi~I?XKY^}$dmGO;<2xy>Fq$c zj6Jze@%pGfWtv-=*~law4x0N~wKy`nv94L%h15NZQfKJ8SV9HDtXzQ??`8hU`S_N* zD11^Nfa$dR_9~IgN+!I?bEZwUk)nu*zqw&)R8gweNXC%$UV!#fgHqMx36R3gpQ(QR zq30jRX1VO5K+9R|qz}NnNuqK`r?%bA!X+k+j^8|A5|DfDdE8{I4J7)FqrwdoEp-4kXgq;C%;jW~%82^MHU#JCUdBQ^Rp^ zD0UXsEXX5lFq-ULh|bz(kqUNcX{lO*daz6uA@b*Ew+j~G=g`sYZ2ITVpVMQ$ zV$P8TSaP{dTD}s&@rbc8K9h*T$9VwB0u_OZu)VOxtIXeajdT;!@&_NIVsPpbQ&Px) z47tf`+RvvUFJ@XjIr5h#X zT3NI>EJT5pltQm~)t~nAkYsG~ylofXKUYs>kxMAgpDI;LeSQacAuA<9rDwO+VYvPFTdiA^3Rwr|>w=F|tjf;B*bux(|U2#GD+QCv)<1)lnc!3=9mCKc3{q#>O53 z+*fhH{)8)sBROV3(M7khW#OkM%}Uha4L-YC%HqwU-}q-apSAwF`L@UoD20wo>_-kG zGM>bi_*WMKKTpqKvnCERpJ2vFvz`3CgZW0ay3X^TS+liPj~_ff&OslGU&29ySboN5 z1W^Q=U20-Ska~UC)_b2ZMKl*$2pxuow+racu*bkh>FrKLLdq_gDw(fcsep13S0ceEelcI$q$Wgt1i zLy&<*?6^8Pf_kzTyVjxe7iTV2#zNCh7EHAFy`(QIkxs~yh4xpcv9Pps4iKCpI{kMh zGkK%9wa4D>pYQfSAP;>!`}k=Ps#5VoMT$E4f)#aTGIu7$4|hn%w?Y4ytWQm{X*bFmO=uF1)(`r~KIJB|hn3*X`9FxrF=Nqa|AM zz1cd2h*5#&q?HyQyKs}0K3voHB)TePoB+Fis8S{}rk!I(~IdlQ{-u%SB2QcR0JCZ+BoV4V`*eSoohazV-gqZVOwz2rX?MgS<8{>|7a{_4i)IKNjciu@v%xf9NIj6ep|vi1^@S`A0Hh?FXaCn^|@(f@F0Fk zkBp4?A1q$xacX6XnSTEKGRZ64qiz{gx$Y2U1=hH(_z`vcYKk^k>`1C!EV;jw@<>Ma zLf$S(*rn2};dw<24ndQS&@qURgv4&GKR(Mc{CMEW;q|kV6#nFJxO#vshd0~Uj}2hB=AMKRdOKexFajXNLY_-) z0q+-1>a5zE7JFV2)EUkw$0U8*(0SSgc)CjT!x$qeQ4K>5y!M7HwQp*$eC#=r=uQ+J zN;BWlPJ-V#NqBJM!Bfw=TBMrFMiBZF@|Gq#JN%f)o8-}?g{fMQ_+op^K8n(<#|^kL zHbqaI71<`kz4XPK#HJk-lrSva9I;r{RD|v3EmP99)AU>tv&c{Q*W5dIy>eFr)=5*z z2U#C5pmgfDqa6G2?ky?;mHl1C74ulH5Uxx05@ae?;xw}EG4P_{Cf;!%Xj{*3&4XsyS<*Ip_hg+P}?!|ue=n#lFFoztcwbg1Hg15IlP+ zb27nDQSH3zkl3eEW+q{G@({LEhg^@|^Pwa*K7*l!z#+@b`#j_wB(g|kYV|G_Yzg!` zh^ZR0S{2 ztcb4jOEZG|6o`36o#y62Eh& z3d9eT3);!H{Ba`3rdd?6z)=k{@-T}Br@95{sT%@;U?<_+>d%ZX)qPGwo(H6^a6sf> z0Z*KJ|66gFv~iPv9{mg@r`Q2sBuDG&?8B#E{?Rs&dmZ8sU%6-t{%d*td-Mk^LaCzV zQUj{_E(4fF@Z*@eW~(vK!qQU?`0zc+V>q6?=}bE0q!ezfKhqhRAg<2^(n}l$p*bE| z!Lkz6AA>_c729G;PYM>TI=OprQO?l(97Pv7r0xZ?cbB;w5ZKRk4r|!uK z%$rh^o17%gESA=vJxdK*#zL|4)Qk_39K$QsDe7DO|Fe7P z=SvuUxSFY)j!hLThjTbZ%wa|6qj;hhg+72o%YtSjsm#d#ffk9Af-HuaFxN7L7q~LT zi!zl7j8&o{i{FH~Bb~S>7ByjBw21eLIA~Rv9K&ulrY)ueHCxs6A=(ZZN?NZ8YsXoN z`5eM_4EWNX@tK2`ET-}14#>7Vgune+z333G2dvwop0h?6yQ8lI4DXh}a!dY}F!-Ct zG)xah^^YQQa+W{6(b1f^_e(01W zTr&AiB{3erZU<3A%t0B+@$t{T<%&lP0z>BD;`(*9K9sukNk-Qk!2P5v>!+!7S?{>#OrYOmFZa^l-3==$0l^v z!OwO1w`X-xRY%58U z_3$N;s#U(V{&IfrQ#k8)=t7Rm>sRyg}T8v4xQ+u!F_c(*;az zE^wzj>vfTANLrS4=+0|e0rQT}p=YiSDI~a}7Zrxz`s~iQzIO*E*gf}$+jBd+Qq2sW zFqw$hh2rN0DL(_!dA_ z)+s3|&({}eH45yf@!w6g{COs;DlC=f{Cn&-!4Cl1FF__l0USP6ZSujK#P;G~NukEN z^NIx~myzR^o!&DsO;aJVqSH|O zxA(}hLE$yXq6)t;#r*46VM_~7E~<7}6owFPDk>_U>1F(#-FL&vK&F;HDyx9iEeS$| zVn0gjB{PZ(3R$)JcLSu1R@#62`z$~Za~;3EnB;=cEPQs8EDhZMIRk3)TIt$59ardn z%>8e%ot1vqw92r2La6)SM@?7|5d5M6kyaJ}fhGW~5Oy$(V6Om}Vzb9U0!_2i=G4bL zTjRCGe#mCSEN)+)HJUqL_qzhN!tKA)@y@8*%dJAd?N&oZEjx~SNi1}W=sb)>X)aUM|Gj==StVvkm zb(fX*{*@tdpk@5tgDc9`kVz^ZuA*Ibdtc=O&kWJ_0YxFbz7OCD^JkH3cFtBP41Wfl*#4%`vjU7 z4Iv^TX&wtrXY}H()5)8oS%;s2NwS*njI=gt^WTwa1`zr?22sap9^>Ili=dN@k=Fn< z2)dap*9y7;rn31JUlZUtR*OJf%DOt=w`h*Mxl%E$wG64($&=Uv3^u@zC$1mUo9O>F zTlhHQ`dk3<@epv&&tC2OO>ZHSgQ60txa?=!Dw;14%gCiDGzaY#2ZL1i!}05v{E$S? z?wfN?QKvC?AcK7H_9o`W^bZtC0@MiNKs{d&c%9XL`Bmq6!kZ@_(=syrmw-IBtELuq z_t~IQzXXQbG>LNhr~+&3SQVoWyB|#I6p{7FrZ&AN4C>%-l@FPYGujVZSZT0l`<0FH za-WN(Ag??O<;23lcgL*q;4bQZl(!b8tSHj3$S)Zrh}rTnp<0d=HAcF406eZO{L)uP z3vfxjb?Wf)kYuqY`~0vL1#BBER`m2QZTvw{5J)asLh9n>C}_3N#-i^vsalO$!&>le zHYF9+XTPnnYV2dbw+qcF%#Ukj{C<56xnmyBmo8;~9B4^{Y>7?-CTs~aFkQ>2yPM|0 zfq{setL_Mjbv`-wxq9ZUh(6;pz)pXbX{38Ct+10slS(ySOkTIHkcY3{)+pRtBoxC> z_)BjSoX({)c(FUP7uCERy0_cpu`niNQe$?ee-mU344#a>xnY0ikA=pw%uwEPr*RngXf+9)n2P2!I6^R<+m37{I*DR8&(N ze~;HKVB*_yxKIw_EvI5x{h)t;kI(x0#=B=&SXgv1K?6QaAceQ$&^+umGCK^nUa^mN#?<_w+67(;P%YAY2Hua--~9y)&kDu5ipu5U;|uwRe)&? z%KsR(_v1r6yIP7RCNlGuB#m#7%3oZ9^ky@t!=~Y2W{0BBWax6%<|!X3AecE zgc&Ta?j130anS)jm)pZ%3}B4lzi-%-9d&X<%FTOT;9ABdVkASEESk6wWZ~j{DcByEvOBuPFrKAMr z4V`z$y4k9#D0H0w09`_!q?f$+0F9~p-EMWAr!cey)N_%5@fy*+oe!hh9g`;(o~;9WHE}c#O@3n?^zoun(7)9cp~!CwUG4>W85zb*6@_S7010w% za+W7?l_h0!y#M*H^{{9wj*J<3)I-238#HSb6mnB|bH3oU;v!@9_Oub0$WBlP#jce0 zGKOJj*ox^6{LwivQ z;bF1vEWlO!`}=V*(s;(xpb z3|b6GcE+?@siCTOnQOmUFYmQBM~`V4egS~hO+0s@^V_uGGB_M=`|E2CDd0s{4e*+c ze;lRM%a6rF{jwW129`guRItoo!uym(vu9@=;AvYNLcmwKP5>y(!UC+hR#xf&V8?oQ zJjBX+lo{Q9eb63NARBVx2)hxZZot&Cb6Mm<7cINOFa6H-isWxnf!8j}n2?<`auLo; z-Lr4Ibu4?o;@nQ7IMLXf*g$LjUs@{8nut_4Xl(l{H|i`Vp*mpiMzme4Bo zKrLS6AcMh?xv^P$pofl?)DEwppx}q+{ZMp}ZNas*5OyloOP>TU3p6!3-Pf^;8i2V8 z0qEogb=ZAZ+kJQ2jyX^SCfb?3h4-WXoNtqL#EBA9X6T(9 zTn}MY?)nN1z4J~>8IxisJDnc)STX9fIhK#O3O@$?-}?7cir_!n25muyx0g;u5rM6a zTX_X>;_h?a_A^LW9pL!!KLO4(ZWD1fbF*9V8oJ|?=swQ$q{^cCKxc2Zu5SN>B(dU9 z3Ud?y0(Z2>SR4Ktz5K-JQlj+AbruLWbSQF#e~%6~M$#8v9(V145!;U6a=$tM1kweG zU`uiTSixiR8sPP>UY+d?ZN?TwfU67va+IQ$a{qGwdx>)Oi_7*e^nQXxY2?k#L;A(i zV`AS9V*d3N>fZP9_B>hrL49w~1xta+jJn1qyj&}*cA>>*Jqr+KS^?P8fN7m|gza)i zhz-C?KNgvTEou$QHQ#zpz1IorbQ&+*ntAl^YOii&)+Xv^1Ben=xBC5=Ot|gi$--P0 zBZenzkk8SpQbm+^da$hc;Zx*Qog!ZL6ImZL2dgLZ7daFs$`6_QYfbG5yxL^`qr=|e zN_W)fU(vPcTzi-mrh|NGzqZgHrT68-vzI%=qHcC7ikfCnG$u@T+J#v=8_Lkv*s170 zV`iHT3KblzM$wnZtMaT<%^ z>-uC=h@dhnM{tndPDJS8NF2x%=cV^8T+ejI#!vGEF(z%g%ArHPN{vT`b5;G}jhjf1 zhlUlilVe(PAiZ4@>tFLzaN?BS18@aipiLA(=7`kVgZ+)ZP8v~yzvL8&Q)I2gkJMp9 zxZIkU@<;HON{?n!WSc6?YcNOkZ!?^q0x^2Slxy>;pI0gZQ-F-0B9j#*t^RNG5=fqt zmDe~R4!NA%SQGIWd^xP}>{18&`#nXNU&$?x$&7o-|KuD*a z)3R>}GK=xcbLearqLf_XjC1KOouYt!>rqP6wmx|B>++6e@ zd|sljIEDH%11xnpppIhXy!F5|W@}Z7`v=#&yq4ytlyZgLJdg!%leK)(B!d|t!_FEp z?+3vKmip0vQY$SdNG3>P>>Bq>Kf8(VpKj|ZPRGf9A zhg}MS+Vkt<`~}`9EWn#$9aAAX$q1J_S>>xm<{1^j*;)Q7!xZQcKNLA(`_)M07yzP+ z+E4sfp3CQCtyhKC5>OzXqplT&^YQ+GzTi~Ljja$)le)%YW|Ae%%dx%8FPRYSf_{$X zc%=MawGWMz|89z~n8f>jFpHDP*FkqYFHCjF=(6jVGHe{gE_>1H)+>wq2a60_IffJ^ zf+qc66>MemdV`&G$y-&C3kQtu_TVunC4frwV3ZJvH zT37B;f?IW<2LzEIPrSj`5`37_oL4;{1{vB27sF!&Ng{Vg^oQ&*3gBgimnp+$vG$ah zF}v8(v&_EzUv7unY^iF381j%*(1COb_-HXV{k2Kal8?R?k+LTF3)U}|IdVj?i~P4! z2#$O$^IDq^r9Z33XoT(@IK7l+7g@FfE)KlXT=N|pH=veRdYj_U(o$m z77Tw|noe$uebj)AEbIyC#tKl`kOT8l#D%Sd6$__y1Et88~e${sfk8RG6qv)Qr#Zc^5MI6xs_ddsr{< zKfC0r_H{p59Z*6O3tf|d8lyE7wa_uP_?X&WcFl;+h#D)VKX1lxe+54rlw>kPV0>1& z^#t6i3RT4uz_@xOCq%_)7bGfGR{^IcRn_JS^VK;iL3X#0wq)Nvijk@1GA4wFs4V+2q858I)&>d_hRfz(4joBb@YXwio39<1{(glfU@oKdh4{0+; ziNPVbe+MZ6iyC1B^Wxk$oGH6ER$Yt?!=Y0PcOh&iOcTO(1+m;^@)7jKWYL)6^*>!h zTyInXZ`2dSSGl`hbxwzWfZv3pWqcOQvnD#2eZN-xJMg2{Lo6^tSW18_{D4c~g<^R5 zC#ri1PjWB&UChGh-%+ypN^&d{+s_d#Z19KhT>`Fp5qv;_sE$^PjsxK>QzLGhlxl?s z^R-|rGzcEFgBKATE(@YIm?02t%Ty1?)u-v#;rjy_+V%v*c$(fzTEhc;=fT`}B0xr-S1WCT5e!-ZRF+uX4>aZ)T#>gc#m$F@>#*N_p`g zd1=+^1j2`Pq^3-~bTky98&4jn!dPX(ti#3h^n2XXXSuD z23|s%TIP-B#^O(*_|MrNv}#(jUOJO6mLY>$#z(R1u*R!)ub&W4(RYIp*U=%H< zI@L7<{}Ro8koh6h(9Rx}ip@U7Cm5in$c2;o6ua!h6icDQxh1)0G~+IixkDRd5?$|FT$M(G z#G%n>TsR}P)q{9bheqJ9D#ZNT;GhRTMwhG@can$Erx(f=gtu&E;Nh=-vW+r}qVh!)VelvY`%FJ0Kvd!SN zJWQi)=B}CM+VLA?WM1o@4nKAUQrUO6|6Oi7jpo*7g^y?IZ`{C`-?&S7<5pN|DOH8{ z_s2LoXt(Q-P9M)_82!3ri^7BRA1cNox!T5s@CremIK43;C@N&z+`2ebG@Wrk#mY-b zu5@T2A6~q`6N^>tSMJ2rv8Icno_J;?BCP&hyK_ZKR8=FyfC1+Pf5l_@qb<9b!w&PN zOqd=~2`Dy}@hV5j+tS@}(Es*tf?Ik23YuxCQj1|7xQw{09Fo^kOj_B<+h9+g&B7vE z{q#Ia6V|OB5H2xR@03YgnlwU&;1+zb@q=YVm03|%SL5|70=DOmq0pY3EAN0Osq1@k zln8+*q|5g4YS<_D{r@p^1(OQe5H_Uko~t|LlWVw04@$?sYPoy8ADg{|?4$fhF=h5Z z8#d0Q<41S)8|zOaZoj=+m#+Mxn?DYIX zfoK|Ziwz)(`tc`u;W`{$Jm0aoC!9&e2;LbLG_n50t_b+US9w&hi^^DdWu2&Hl%W4? zk>>$f3(GcH#;KGCcReVZ+^&0U@6`*>qM~MRM|F4Y^?YH)o}{Y^`+wHFDh0-yMYzgK zLzdf~F4I=|xXbus9K8;YOAdna{oFXh={RnXG7@NZQi$OL(MC6sutH&%h7D!=5@g_M zupmmRxDrW5h4>+*oP@KqE{RoP9PmU!Nm4ok{-@`1y^F8F4~c!ZvK%p_Wl#`x|1R7m z3&KoIL&IsNZxC-_U;wq#&~LD<@24Qi#wDGr$De>RT0HNgv{P~Cq2*9WR{t$LF{ji| z3#MqN2A9coD~!#LE;?KsEca$Q&3^a#KfM5>r;(lK0YQ#qW3oYkffqRdkG;&vvC0gK zp!32VP5;c;X?8RABB-in#`#aje8{20yyxej&oz;BU$a$x+T*a|u&t;DoQ!hdN8wlE zcdsFc==^7nUhf4SGdXAKt%1)S(n+5=NSZOY3Gz`Tdd8m9e?vZfg;j*b3T6z7q-H6K zz-vy9&U8Y})(w~q<;RxE@@98QBzyvR9I!YvA_G<#^bL zDr>RF&)r`*La)q8!?1q-E9FYQ`$6rZ?WIKND^(xzd}0<=ih^z*Wz3JP(6M)2aeY`} z=n5q~@1Sx#Ag5toJ<6#;wr*>lk;<52`&FhHZ?o4Mzc}{Mk(o}2AG$$R{#kILA{tH} zX+O+&Q~z3ANlE}OeZsN4ro8!~882m>=&>fpxMwzTUn~q}Lglxu; z8xVPFszg=Rp0-A#ea~HP6FK~(u^*{w5G;m*$kyT3*QoT=uY1hc;pw|ClozSF<3WTaO=~Y7S z(p&P11rZ{lhAJ;0MT!u*0ug}-gd#-@y-1VLyOf;Z_jl%;Gw0qr_s*TUf8EUNB(t-# z)_T^n)@QHJ+Rsi#o_};x!~0O4@gpkiUT8t?1ymnU@`vaW7a>j~^1L3*xh!|snV(t6`%%fdQRrP16b2FGd z$<|_Y?AsyMB(|#znVE2IHAD?qrPsN!o#6&!S(;v|yRsEToN=n7a)!KnASY?B->3(Y z>;LvLpJ%H}0GmXMG6SWEP zw+{q1?rapB=zy;0hHAKB@~5zWIM@@XO`A4IeIZ*|rxg-ssM}+UuvWsn>+8!tkD#2s zbfU}&aXR+qQ`H#WP~nkRHh+K?pKqqZpXjM*A}jQq*Qv8Q9extq-q__j zM2+t2M}?phTu&PDCoLtCc$cy6c<=Tj)&i4Z9%!D36g)+9 zKIv73z?Su_j;8hVK=>C=6Kj^$rT1F|2|>cg^H|LBul1xEpyadM7h~rP$a8KYCrnM}a@;*e}?dzNg``YVf&(V z>oE3iYJnG2&Wp6L0?(0ddt$*${f6Oi%6XgZ(49vE#`JWIO>A8=j1_jz**Fle!A8n* zuJUraVOe13vUyU}xRd4WozpBA0x9!rEo{(DnlYOH_B5pd3lcWWGY*aoUGwy92dA9J zYW-Wm{=ghiMQMU4&hKM@331{+S)DVU4&h-HR(V$J+&4&$-bNb6h0=T)w7C1fa2k+M znj^{lDoifguKraIbM4SeC;J#!lpOKRf&$+Y7^k_(d*IxeO1@hCYIZMDM8FeXsIG|< zay$&W2fkODL9GH^dARE*^VE8aUP@K%JUQG)zS$w+$(nAn+uHp;E%kS{PStGOuMC;$ zc&-e*7qN-!aDIjEvx_?OfHpGB1sG|RU218N;G;XVV>D3K{8TjycQ+O0{3G?lF4Br< zkrUXt*sZN<9aQQv73FZU?=bc}R`5ex)r5U#n|WVtT6>S;l;XK98_DjIYNRSj&F-P?Tp{JE8b@dO1ZfXiml_yXZNoQ4; z!3xyPK5@{7=DqdOfBxPiFlYtrE}&T)_yNoxCnJuafCa|{tyxVJHf(?UK{tA5S>?Dy zd(~SdAn2tnwlNr}#Wo%q$+^5vk*(|I*Q|H|Z=x4ugT~bM*Zi)s5WnUAM*tHTaIkpY zU1avg>??hG9p1o#3UrQb(D~1O$FK|S`OiuU@5J`rG(nUuMz47`eVc9^;b2{!{7u#* zLf}rns!S0VheOAL7CzOwL?MRfYs#aTb)1_iRqt9q11F<`E$w8GJx}g$`!1})miu+D z_N2i(ItmidIUM7c2a#rSJk~|tYohH_S55N2n__lhrVZ*gXT3qn6(ZOBo1W%Iju`Qd zPLCRwQ-Koi1xjHFAT}y?R&Kt!@aTP$!w#J$p79 zk1R>EQ)Z>ZSPoYP-Y8NuFa)2 zN%(sntXlUIXL?7kl;V5qT|F`KwTOY9oXBgz%Qj4@Hamj1tj(f@KLKabGD)%b!c z)}2c_^lqXhX1oAKtm7}3t(mWoZoDagTnUwql6|)L`^8B_pwg%C zDyK%4!MicfE&Sb&^ILz)a;MV z1&fd2Dz>NENR|Cbp0aGu4DLkv#gOb;6A4(8S;pFqfRoKC&5fw

+>FlLmH5*lma|6RsnYK$noC*ve|UtFv0_4 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

J&5cy(Xz(^-xH*QhdVWwkm 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png deleted file mode 100644 index b9fbe00deff6081db30bf14fae9d942fe652f8dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6110 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 G?%x0mxMhC; diff --git a/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png b/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png deleted file mode 100644 index 7e4d7fadc62a31bbcf230a4f074cc3d3b056cff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 33148 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png deleted file mode 100644 index 248ff6b8872c9be6335a328fce6eaa8006537f74..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6314 zc-qBS2{e>(yB{IDs6mKi$(AK!UmGEWA;vODp%DhzcV$SDHIX5VEz1~^eQzOQWXVnl zSxaOm-usU4yX(2<+;h*l=iL99InO-L|5<*|?|HX*pBfw8V4~-uhd>}qdb(P-AdpjV z2!z6!mJ+m-_ApvOAe0be12b(1dBGqMGz5Z!Ku8b>K-OR|2n-E@;UF*)1O|{d(J%-a z4MF1|Xc7bskbQA52o4Rw;UG8?1P72qNiYZr4I$wmBoc%KfSDiw3<97b01g6>AOJv4 zOim5v0)s(sfLw>X&@dPd1|z{>0J$uvq0ulj4u&Sd&;S_)xQRo$IaA+I}jRVN-f+)aE5)Mrwp-BMPJqQZ)MFTiAKtclmnG7;nU^GYv*grt# zhTIaE3=zzI9RN&mn}hrme>zzIs= z1P5?Z2{_3GoOlEO(Ep#-y`T^tP|!Wlwep5Q7|xQv6a(MF{({DfKH8Q(rXFY?|GQrI zAljzJd^hfUc>8!ecsW1t;ZwXSCn+uS(l3)80$~%<(}J4?y!w^7T20_%dA#pEp~y6v za0GtxGr6zvQWm9AXiZL|b|>3n89y*fdGf1692S@#Rm){$?JK z_IE@#6Y1#1R-0{~G|oA*AIfiHjvdDk_D9D`NqrtY?0OJ-`}`ihW#^Pt@kV)m<$(KA zskR#PFNDQD^H{cMOLr0yCDt@C^GVBx5~#x8z#oBq&GAvhE8<_rw|ZBOpFMrCC)@K? zu&L`!arQlJURJvdq!#l_(ItsU)m*Rp>R#@;oLBB@RF?6Joc~G+`Sn87+2_{Ia0qkP zc=t=uElk24Cs7|Lbt*kp<&(QS>yA`PJt3x$9jp9@j;>BY{dyZ-n5!L z<$mofp>x}e7D$>87Kw)6xC$$C+iO$ZgA@)af?7k}WT)2Jx_mEDMF&LbQL3&C!}8?I@I`9@*=Bu9bIwvism#rSgG)CjKFp9-6DTvdt_M3G7;l!Mi< zGL(DXbI>=fb>;B|>G|89eo{3-#f#hapQt^HGEP6dhVj0y@zy;$?jRsHE{2v~r#WLN z-=@_1HR5MnU>~YJWGt5?hRE1;54xI=msGV+IDk|zMYyT)+Fa$)JM^y5F3KSon8h(S z4`y!k>yFp)F>mAawkHxwx$OnY(PJ0&CiLcVgY&FxE#JILelxN_pw%(R!Wx(?h<=`L zj!5!}O%EVQg~>jaf7mJ~-Sc*BD0167tldW*v0{iYpbo4k2z$ZiEl9)%7_FTgQqhL< zUAJHM#Hkk{R4tP)?{tN*9tVUkbVCbVQhU3;E~tV0AJNNXD}1Kj@L&G=8n>F}s5D8y zr^HL6D5#Hgp3on}^VeSLM!y|zPByv7o8-pLi5C5=B3>Tt^(VQi-m70@bTK`9V!McM ztdii|HYPEjdqL%yhFf}lyk6?ZZ}bg!tcCKH@O9VVk7%G&0ifvUX;hii;R>E#bc54O zST-Fg2N}kX8wGmvCCk+pA4DMWpVNgj*sXyDk=c8>=I8eTQRoK#LewYht${!%pbr&JG&jmO;Jvq8BtPT)_gH<^V(M`BBu zy&gUNeCA=kj;D2LF9|#QO8ayoMPk85SWcmO{XCxc zyx@}buV6MafiUBc4^D?=2b|B1dTMgC?!1y%Pe4tio{8jjSLRX&V+B5)i9zgL&Ws6~ zvC*1xo5{8+U1{n1{yOh_1Qk!8IUIlv6o+k>>;J{?MGDbs-hn!PT-KVhoypcSP^opb zg9R(&-GU3iy-ts(gJYZthIT|5EbgEf2b~dSs z?k~(kU_Q_A#vBcuGXBX}$nqY1`P_$5wJN3lYFsb({H!7+ zwZW&EmB%eIVa8O@`G8dHc-tA}+TQiBOA(Z(LBF-zKU4SMo{}+XvG0c%nyuk8%T*>U z=g-TsJfi!@fkpG*iH>3{sYlWKqvPdrhv3Fm!9{2N^$?i}e7m~UteR7A89Qm@`5ULdA6f8sTD7uRLqVlI?ovI& z?yY0@=_sqDQijc)ghnT^!cL6P?!)5YUmi74BO!60reEf?YFLf@h>QLOOWCZkQ`;xK z)>RKta^YOtL?#4>I;gumHzmv~Ow>AwaUAkZ4PPe`(u1w2g?L*+USf|!_KPSL?&ZrU zRVzO}^Cl!Roxp&A4G+@_Uws~ygw@<$iukqJ|L7HJJNsg8uUW%wk|gU`z2)EaAJ)(p zFA|RNZaV3SCWLtxuhnLD+%=iKbs$uTH= z5h1tyoz16|*KL6RqM@@D!9iT)x_VcspE`5bul>5rt88ZbxA#)QH;w4;$qZ1=i4~a( zRSe~siYDq@WGv#V%*ZuBK5>4j@13S{;iG8uph3UO?5-_5Na$Q+!h0xm$g^0#d;rge z*kF#jW&Adk!7P+%zsQG>Kb{s2t+MWkJ+R0t4q{WoMn;+RZM=@TNGLgA-lq_hjm8=Y zc{K|qISoGil#7kz`n`Nn6OKC+`{U}m+JI7ZFuAR1+=rCJlzuiteQha7tJE-Db^6L% zj&~gjMcevLHZ3LxHo#lmjxpmOLv71{AHmj)6Z~FztT;!|FRJqr@zXI<$dz4l?Uq$H z4aYNGS5+=r#h5vKZewov%>&ryyl0rnnte#y+ z(}k5lsw(q)bF4=5P8`6l!z`}fzfCz-_{dcDPSK)LA}SL}dG0fo>g!~fVUWtr8HSd4+cg}#X+|3>$Ry;(zJBczBP@MTTI16zqjbz zSn71%r?B5<}|6L?) z40?meXx9f}GfBIHmEYFCQ&ZGjVi$>ST9&c2)dkAEDNf+O}cV;202X)l3R zKC@HjQ&f7cR{x{jkZ}0tz?HG68?tDx{CWEqJU1whMYCiBm^l$@i1!P@JWZsUt3r7c z5sRM3gPRxpFb(hNur;Yq!DJoI#FgwXEXNeTwM=BWqyzX0tCgQ<%vSnZ!bj~6MRO@y zV`qvNn_0{K?{i-s)8haQ+^F`(M(a%6(Gb(Q9ghA-(}rk)@2~9yY1i#<^Kq@aI*;{S zgA1IUj^F&~0b}hjgCiq-oY^ACGx(+bu%+`Du&ym0bUNt$#v9 zUXo@$rSV9fc3qc9lf!gszYZm*(5_W|arhBdhst%}5shuK`w|$dGw@$;7r8SOywTW^ z$Z&yaD#YPWt@nhPRb+IylsfCjEAd#1k0Y+5ekzO;^g_@`6@n07_{1O(@yRpKUv9u; zy=0H;H2<^B=!YMdqjetY>AWY*xt`aGch61!)ZZTnZ4#kk zdYdv%^uxQ&y7P7u5Xv-TUm<%+81_!4qx!^iS8TT4i-`;&)EB;eF z%cmXNQp_9|uWXU%8Zo&cS7jkm9yN+M;}kWVYs7OQTI^7y#Zz1q5nyd+`cdBskF+Ahp!GSsp-Rjwh*vWY58b389SrwV;{ct0K zYg>E9Ntfuyu0gvJcdy@yv}UmLd04o$qYWbb6aDRwQ8}NRm3l{N48C)9N+mLxawGBVGZ<{;rq1 z2(QZn2JoCU=Cv)NH{l2GhP|nSw;Q8{na1zB4z*FJ%gV&X95fn|Z;nh{vk4LT(O<^- z0>5IA-NV+x!xpN}eXjx}Q!UM*QxE+(@-mBeSrJ^5T4sdJ%-)`e#iXL4>X*XI@6Wwc zcYa3+{-MD0{oe~Cm!VH4_}@$4w>T@9ptAfO)h-T)1O8hN4q_w!sn6;4|3_V)GO1p- zb>|HSU4Z@stu)IBn-=D$%Hf9usw;jNuh1V6KI8eOA0}|vzq;>?`|dBlSoeF4C%Q#o zqYMfo6}X_|Eex8+VLzpg4Cpd!>BUCXHotljSKiRC z>t@hCkqhwZ#noO+pfhlLvrQl$E=8Rl_GAAPK;vG7RB9HAyc z8ES1MhBGQ=t)D43f5APr*bsD~ot^DwPe@H$jN_Ax3`G5(&h^1}9SkBC7MWK>e{5F$ z#ZCp3VS}uLxaBfUHL7{caw~<}?|$uEH&Z%7`PAeqVw5dZ)ncYnp*IYLJCHxN#QP_n z&lWAu*Oj~qlW4HHbwN54gXqmWiBj@6o2EX`b@KkLtA7G@CqqtKqzKwfq^?1kMq>5J zCIZ_fks=n*BySCx=*gza|Kt?|n)v+uAKidZ|2NM!|Fd{@@2ov)o-o2b?<&uj3Gj{wSF08!YN*oo~6le!oS|>DMEyqDW6)(w6M< z_kQK({CikzKLg diff --git a/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png deleted file mode 100644 index ac4f838fe261c5bfdd897368d9880ed8306e6031..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6763 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png deleted file mode 100644 index 587ff1d145c8f6f32cefa6a2909b6287cfb8733b..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 34794 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

v@b95 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 - - - - - - gp_hash_table Interface - - - - -

-

gp_hash_table Interface

- -

A concrete general-probing hash-based associative - container.

- -

Defined in: assoc_container.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Key
-
-
-

Key type.

-
-
-
-typename Mapped
-
-
-

Mapped type.

-
-
-
-class Hash_Fn 
-
-
-

Hash functor.

-
-
-__gnu_cxx::hash<Key>
-
if using gcc; -
-stdext::hash_value<Key>
-
if using Visual C++ .net -
-
-class Eq_Fn 
-
-
-

Equivalence functor.

-
-
-std::equal_to<Key>
-
-
-
-class Comb_Probe_Fn 
-
-
-

Combining probe functor.

- -

If Hash_Fn is - null_hash_fn, and Probe_Fn is null_probe_fn, then this is the - ranged-probe functor; otherwise, this is the - range-hashing functor.

- -

(See Design::Hash-Based - Containers::Hash Policies.)

-
direct_mask_range_hashing
-
-class Probe_Fn 
-
-
-

Probe functor.

-
- If Comb_Probe_Fn - is direct_mask_range_hashing, then -
-linear_probe_fn<
-  typename Comb_Probe_Fn::size_type>
-
otherwise, -
-quadratic_probe_fn<
-  typename Comb_Probe_Fn::size_type>
-
-
-
-class Resize_Policy 
-
-
-

Resize policy.

-
- If Comb_Probe_Fn - is direct_mask_range_hashing, - then -
-hash_standard_resize_policy<
-  hash_exponential_size_policy<
-    typename Comb_Probe_Fn::size_type>,
-  hash_load_check_resize_trigger<
-    typename Comb_Probe_Fn::size_type>,
-  false,
-  typename Comb_Probe_Fn::size_type>
-
otherwise, -
-hash_standard_resize_policy<
-  hash_exponential_size_policy<
-    typename Comb_Probe_Fn::size_type>,
-  hash_load_check_resize_trigger<
-    typename Comb_Probe_Fn::size_type>,
-  false,
-  typename Comb_Probe_Fn::size_type>
-
-
-
-bool Store_Hash 
-
-
-

Indicates whether the hash value will be stored along - with each key.

- -

If hash_fn is null_hash_fn, then the container - will not compile if this value is - true

-
-
-false
-
-
-
-class Allocator 
-
-
-

Allocator type.

-
-
-std::allocator<char>
-
-
- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-basic_hash_table
-
-
-

public

-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-hash_fn
-
-
-
-Hash_Fn
-
-
-

Hash functor type.

-
-
-eq_fn
-
-
-
-Eq_Fn
-
-
-

Equivalence functor type.

-
-
-comb_probe_fn
-
-
-
-Comb_Probe_Fn
-
-
-

Combining probe functor type.

-
-
-probe_fn
-
-
-
-Probe_Fn
-
-
-

Probe functor type.

-
-
-resize_policy
-
-
-
-Resize_Policy
-
-
-

Resize policy type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  gp_hash_table
-  ()
-
-
-

Default constructor.

-
-
-  gp_hash_table
-  (const hash_fn &r_hash_fn)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - hash_fn object of - the container object.

-
-
-  gp_hash_table
-  (const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - hash_fn object of - the container object, and r_eq_fn will be copied by the - eq_fn object of the - container object.

-
-
-  gp_hash_table
-  (const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_probe_fn &r_comb_probe_fn)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, and r_comb_probe_fn will be copied by - the comb_probe_fn - object of the container object.

-
-
-  gp_hash_table
-  (const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_probe_fn &r_comb_probe_fn,
-    const probe_fn &r_probe_fn)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, r_comb_probe_fn will be copied by - the comb_probe_fn - object of the container object, and r_probe_fn will be copied by the - probe_fn object - of the container object.

-
-
-  gp_hash_table
-  (const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_probe_fn &r_comb_probe_fn, 
-    const probe_fn &r_probe_fn,
-    const resize_policy &r_resize_policy)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, r_comb_probe_fn will be copied by - the comb_probe_fn - object of the container object, r_probe_fn will be copied by the - probe_fn object - of the container object, and r_resize_policy will be copied by - the Resize_Policy - object of the container object.

-
-
-template<
-    class It>
-  gp_hash_table
-  (It first_it, 
-    It last_it)
-
-
-

Constructor taking iterators to a range of - value_types. The value_types between first_it and last_it will be inserted into the - container object.

-
-
-template<
-    class It>
-  gp_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects. The value_types between - first_it and - last_it will be inserted - into the container object. r_hash_fn will be copied by the - hash_fn object of - the container object.

-
-
-template<
-    class It>
-  gp_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects. The value_types between - first_it and - last_it will be inserted - into the container object. r_hash_fn will be copied by the - hash_fn object of - the container object, and r_eq_fn will be copied by the - eq_fn object of the - container object.

-
-
-template<
-    class It>
-  gp_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_probe_fn &r_comb_probe_fn)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects. The value_types between - first_it and - last_it will be inserted - into the container object. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, and r_comb_probe_fn will be copied by - the comb_probe_fn - object of the container object.

-
-
-template<
-    class It>
-  gp_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_probe_fn &r_comb_probe_fn,
-    const probe_fn &r_probe_fn)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects. The value_types between - first_it and - last_it will be inserted - into the container object. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, r_comb_probe_fn will be copied by - the comb_probe_fn - object of the container object, and r_probe_fn will be copied by the - probe_fn object - of the container object.

-
-
-template<
-    class It>
-  gp_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_probe_fn &r_comb_probe_fn, 
-    const probe_fn &r_probe_fn,      
-    const resize_policy &r_resize_policy)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects. The value_types between - first_it and - last_it will be inserted - into the container object. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, r_comb_probe_fn will be copied by - the comb_probe_fn - object of the container object, r_probe_fn will be copied by the - probe_fn object - of the container object, and r_resize_policy will be copied by - the resize_policy - object of the container object.

-
-
-  gp_hash_table
-  (const gp_hash_table &other)
-
-
-

Copy constructor.

-
-
-virtual 
-  ~gp_hash_table
-  ()
-
-
-

Destructor.

-
-
-gp_hash_table &
-  operator=
-  (const gp_hash_table &other)
-
-
-

Assignment operator.

-
-
-void
-  swap
-  (gp_hash_table &other)
-
-
-

Swaps content.

-
- -

Policy Access Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-comb_probe_fn &
-  get_comb_probe_fn
-  ()
-
-
-

Access to the comb_probe_fn - object.

-
-
-const comb_probe_fn &
-  get_comb_probe_fn
-  () const
-
-
-

Const access to the comb_probe_fn - object.

-
-
-probe_fn &
-  get_probe_fn
-  ()
-
-
-

Access to the probe_fn object.

-
-
-const probe_fn &
-  get_probe_fn
-  () const
-
-
-

Const access to the probe_fn object.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_tag.html deleted file mode 100644 index 4c5f06b579c8..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/gp_hash_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - gp_hash_tag Interface - - - - -
-

gp_hash_tag Interface

- -

General-probing hash data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-basic_hash_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_based_containers.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_based_containers.html deleted file mode 100644 index 21d092a76ef1..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_based_containers.html +++ /dev/null @@ -1,835 +0,0 @@ - - - - - - - Hash-Based Containers - - - - -
-

Hash Table Design

- -

Overview

- -

The collision-chaining hash-based container has the - following declaration.

-
-template<
-    typename Key,
-    typename Mapped,
-    typename Hash_Fn = std::hash<Key>,
-    typename Eq_Fn = std::equal_to<Key>,
-    typename Comb_Hash_Fn = direct_mask_range_hashing<>
-    typename Resize_Policy = default explained below.
-     bool Store_Hash = false,
-     typename Allocator = std::allocator<char> >
-class cc_hash_table;
-
- -

The parameters have the following meaning:

- -
    -
  1. Key is the key type.
  2. - -
  3. Mapped is the mapped-policy, and is explained in - Tutorial::Associative - Containers::Associative Containers Others than Maps.
  4. - -
  5. Hash_Fn is a key hashing functor.
  6. - -
  7. Eq_Fn is a key equivalence functor.
  8. - -
  9. Comb_Hash_Fn is a range-hashing_functor; - it describes how to translate hash values into positions - within the table. This is described in Hash Policies.
  10. - -
  11. Resize_Policy describes how a container object - should change its internal size. This is described in - Resize Policies.
  12. - -
  13. Store_Hash indicates whether the hash value - should be stored with each entry. This is described in - Policy Interaction.
  14. - -
  15. Allocator is an allocator - type.
  16. -
- -

The probing hash-based container has the following - declaration.

-
-template<
-    typename Key,
-    typename Mapped,
-    typename Hash_Fn = std::hash<Key>,
-    typename Eq_Fn = std::equal_to<Key>,
-    typename Comb_Probe_Fn = direct_mask_range_hashing<>
-    typename Probe_Fn = default explained below.
-    typename Resize_Policy = default explained below.
-    bool Store_Hash = false,
-    typename Allocator =  std::allocator<char> >
-class gp_hash_table;
-
- -

The parameters are identical to those of the - collision-chaining container, except for the following.

- -
    -
  1. Comb_Probe_Fn describes how to transform a probe - sequence into a sequence of positions within the table.
  2. - -
  3. Probe_Fn describes a probe sequence policy.
  4. -
- -

Some of the default template values depend on the values of - other parameters, and are explained in Policy Interaction.

- -

Hash - Policies

- -

General - Terms

- -

Following is an explanation of some functions which hashing - involves. Figure Hash functions, - ranged-hash functions, and range-hashing functions) - illustrates the discussion.

- -
-
- -
Hash functions, ranged-hash functions, and - range-hashing functions.
- -

Let U be a domain (e.g., the integers, or the - strings of 3 characters). A hash-table algorithm needs to map - elements of U "uniformly" into the range [0,..., m - - 1] (where m is a non-negative integral value, and - is, in general, time varying). I.e., the algorithm needs - a ranged-hash function

- -

f : U × Z+ → Z+ - ,

- -

such that for any u in U ,

- -

0 ≤ f(u, m) ≤ m - 1 ,

- -

and which has "good uniformity" properties [knuth98sorting]. One - common solution is to use the composition of the hash - function

- -

h : U → Z+ ,

- -

which maps elements of U into the non-negative - integrals, and

- -

g : Z+ × Z+ → - Z+,

- -

which maps a non-negative hash value, and a non-negative - range upper-bound into a non-negative integral in the range - between 0 (inclusive) and the range upper bound (exclusive), - i.e., for any r in Z+,

- -

0 ≤ g(r, m) ≤ m - 1 .

- -

The resulting ranged-hash function, is

- -

f(u , m) = - g(h(u), m) (1) .

- -

From the above, it is obvious that given g and - h, f can always be composed (however the converse - is not true). The STL's hash-based containers allow specifying - a hash function, and use a hard-wired range-hashing function; - the ranged-hash function is implicitly composed.

- -

The above describes the case where a key is to be mapped - into a single position within a hash table, e.g., - in a collision-chaining table. In other cases, a key is to be - mapped into a sequence of positions within a table, - e.g., in a probing table. Similar terms apply in this - case: the table requires a ranged probe function, - mapping a key into a sequence of positions withing the table. - This is typically achieved by composing a hash function - mapping the key into a non-negative integral type, a - probe function transforming the hash value into a - sequence of hash values, and a range-hashing function - transforming the sequence of hash values into a sequence of - positions.

- -

Range-Hashing Functions

- -

Some common choices for range-hashing functions are the - division, multiplication, and middle-square methods [knuth98sorting], defined - as

- -

g(r, m) = - r mod m (2) ,

- -

g(r, m) = ⌈ u/v ( a r mod v ) ⌉ ,

- -

and

- -

g(r, m) = ⌈ u/v ( r2 mod v ) ⌉ - ,

- -

respectively, for some positive integrals u and - v (typically powers of 2), and some a. Each of - these range-hashing functions works best for some different - setting.

- -

The division method (2) is a - very common choice. However, even this single method can be - implemented in two very different ways. It is possible to - implement (2) using the low - level % (modulo) operation (for any m), or the - low level & (bit-mask) operation (for the case where - m is a power of 2), i.e.,

- -

g(r, m) = r % m (3) ,

- -

and

- -

g(r, m) = r & m - 1, (m = - 2k) for some k) (4),

- -

respectively.

- -

The % (modulo) implementation (3) has the advantage that for - m a prime far from a power of 2, g(r, m) is - affected by all the bits of r (minimizing the chance of - collision). It has the disadvantage of using the costly modulo - operation. This method is hard-wired into SGI's implementation - [sgi_stl].

- -

The & (bit-mask) implementation (4) has the advantage of - relying on the fast bit-wise and operation. It has the - disadvantage that for g(r, m) is affected only by the - low order bits of r. This method is hard-wired into - Dinkumware's implementation [dinkumware_stl].

- -

Ranged-Hash - Functions

- -

In cases it is beneficial to allow the - client to directly specify a ranged-hash hash function. It is - true, that the writer of the ranged-hash function cannot rely - on the values of m having specific numerical properties - suitable for hashing (in the sense used in [knuth98sorting]), since - the values of m are determined by a resize policy with - possibly orthogonal considerations.

- -

There are two cases where a ranged-hash function can be - superior. The firs is when using perfect hashing [knuth98sorting]; the - second is when the values of m can be used to estimate - the "general" number of distinct values required. This is - described in the following.

- -

Let

- -

s = [ s0,..., st - 1]

- -

be a string of t characters, each of which is from - domain S. Consider the following ranged-hash - function:

- -

f1(s, m) = ∑ i = - 0t - 1 si ai mod - m (5) ,

- -

where a is some non-negative integral value. This is - the standard string-hashing function used in SGI's - implementation (with a = 5) [sgi_stl]. Its advantage is that - it takes into account all of the characters of the string.

- -

Now assume that s is the string representation of a - of a long DNA sequence (and so S = {'A', 'C', 'G', - 'T'}). In this case, scanning the entire string might be - prohibitively expensive. A possible alternative might be to use - only the first k characters of the string, where

- -

|S|k ≥ m ,

- -

i.e., using the hash function

- -

f2(s, m) = ∑ i - = 0k - 1 si ai mod - m , (6)

- -

requiring scanning over only

- -

k = log4( m )

- -

characters.

- -

Other more elaborate hash-functions might scan k - characters starting at a random position (determined at each - resize), or scanning k random positions (determined at - each resize), i.e., using

- -

f3(s, m) = ∑ i = - r0r0 + k - 1 si - ai mod m ,

- -

or

- -

f4(s, m) = ∑ i = 0k - - 1 sri ari mod - m ,

- -

respectively, for r0,..., rk-1 - each in the (inclusive) range [0,...,t-1].

- -

It should be noted that the above functions cannot be - decomposed as (1) .

- -

Implementation

- -

This sub-subsection describes the implementation of the - above in pb_ds. It first explains range-hashing - functions in collision-chaining tables, then ranged-hash - functions in collision-chaining tables, then probing-based - tables, and, finally, lists the relevant classes in - pb_ds.

- -

Range-Hashing and Ranged-Hashes in Collision-Chaining - Tables

- -

cc_hash_table is - parametrized by Hash_Fn and Comb_Hash_Fn, a - hash functor and a combining hash functor, respectively.

- -

In general, Comb_Hash_Fn is considered a - range-hashing functor. cc_hash_table - synthesizes a ranged-hash function from Hash_Fn and - Comb_Hash_Fn (see (1) - above). Figure Insert - hash sequence diagram shows an insert sequence - diagram for this case. The user inserts an element (point A), - the container transforms the key into a non-negative integral - using the hash functor (points B and C), and transforms the - result into a position using the combining functor (points D - and E).

- -
no image
- -
Insert hash sequence diagram.
- -

If cc_hash_table's - hash-functor, Hash_Fn is instantiated by null_hash_fn (see Interface::Concepts::Null - Policy Classes), then Comb_Hash_Fn is taken to be - a ranged-hash function. Figure Insert hash sequence diagram - with a null hash policy shows an insert sequence - diagram. The user inserts an element (point A), the container - transforms the key into a position using the combining functor - (points B and C).

- -
-
- -
Insert hash sequence diagram with a null hash - policy.
- -

Probing Tables

- -

gp_hash_table is - parametrized by Hash_Fn, Probe_Fn, and - Comb_Probe_Fn. As before, if Hash_Fn and - Probe_Fn are, respectively, null_hash_fn and null_probe_fn, then - Comb_Probe_Fn is a ranged-probe functor. Otherwise, - Hash_Fn is a hash functor, Probe_Fn is a - functor for offsets from a hash value, and - Comb_Probe_Fn transforms a probe sequence into a - sequence of positions within the table.

- -

Pre-Defined Policies

- -

pb_ds contains some pre-defined classes - implementing range-hashing and probing functions:

- -
    -
  1. direct_mask_range_hashing - and direct_mod_range_hashing - are range-hashing functions based on a bit-mask and a modulo - operation, respectively.
  2. - -
  3. linear_probe_fn, and - quadratic_probe_fn are - a linear probe and a quadratic probe function, - respectively.
  4. -
Figure Hash policy class - diagram shows a class diagram. - -
-
- -
Hash policy class diagram.
- -

Resize - Policies

- -

General Terms

- -

Hash-tables, as opposed to trees, do not naturally grow or - shrink. It is necessary to specify policies to determine how - and when a hash table should change its size. Usually, resize - policies can be decomposed into orthogonal policies:

- -
    -
  1. A size policy indicating how a hash table - should grow (e.g., it should multiply by powers of - 2).
  2. - -
  3. A trigger policy indicating when a hash - table should grow (e.g., a load factor is - exceeded).
  4. -
- -

Size - Policies

- -

Size policies determine how a hash table changes size. These - policies are simple, and there are relatively few sensible - options. An exponential-size policy (with the initial size and - growth factors both powers of 2) works well with a mask-based - range-hashing function (see Range-Hashing Policies), and is the - hard-wired policy used by Dinkumware [dinkumware_stl]. A - prime-list based policy works well with a modulo-prime range - hashing function (see Range-Hashing - Policies), and is the hard-wired policy used by SGI's - implementation [sgi_stl].

- -

Trigger - Policies

- -

Trigger policies determine when a hash table changes size. - Following is a description of two policies: load-check - policies, and collision-check policies.

- -

Load-check policies are straightforward. The user specifies - two factors, αmin and - αmax, and the hash table maintains the - invariant that

- -

αmin ≤ (number of - stored elements) / (hash-table size) ≤ - αmax (1) .

- -

Collision-check policies work in the opposite direction of - load-check policies. They focus on keeping the number of - collisions moderate and hoping that the size of the table will - not grow very large, instead of keeping a moderate load-factor - and hoping that the number of collisions will be small. A - maximal collision-check policy resizes when the longest - probe-sequence grows too large.

- -

Consider Figure Balls and - bins. Let the size of the hash table be denoted by - m, the length of a probe sequence be denoted by - k, and some load factor be denoted by α. We would - like to calculate the minimal length of k, such that if - there were α m elements in the hash table, a probe - sequence of length k would be found with probability at - most 1/m.

- -
-
- -
Balls and bins.
- -

Denote the probability that a probe sequence of length - k appears in bin i by pi, the - length of the probe sequence of bin i by - li, and assume uniform distribution. Then

- -

p1 = (3)

- -

P(l1 ≥ k) =

- -

P(l1 ≥ α ( 1 + k / α - 1 - ) ≤ (a)

- -

e ^ ( - ( α ( k / α - 1 )2 ) /2 - ) ,

- -

where (a) follows from the Chernoff bound [motwani95random]. To - calculate the probability that some bin contains a probe - sequence greater than k, we note that the - li are negatively-dependent [dubhashi98neg]. Let - I(.) denote the indicator function. Then

- -

P( existsi - li ≥ k ) = (3)

- -

P ( ∑ i = 1m - I(li ≥ k) ≥ 1 ) =

- -

P ( ∑ i = 1m I ( - li ≥ k ) ≥ m p1 ( 1 + 1 / (m - p1) - 1 ) ) ≤ (a)

- -

e ^ ( ( - m p1 ( 1 / (m p1) - - 1 ) 2 ) / 2 ) ,

- -

where (a) follows from the fact that the Chernoff bound can - be applied to negatively-dependent variables [dubhashi98neg]. Inserting - (2) into (3), and equating with - 1/m, we obtain

- -

k ~ √ ( 2 α ln 2 m ln(m) ) - ) .

- -

Implementation

- -

This sub-subsection describes the implementation of the - above in pb_ds. It first describes resize policies and - their decomposition into trigger and size policies, then - describes pre-defined classes, and finally discusses controlled - access the policies' internals.

- -

Resize Policies and Their Decomposition

- -

Each hash-based container is parametrized by a - Resize_Policy parameter; the container derives - publicly from Resize_Policy. For - example:

-
-cc_hash_table<
-    typename Key,
-    typename Mapped,
-    ...
-    typename Resize_Policy
-    ...> :
-        public Resize_Policy
-
- -

As a container object is modified, it continuously notifies - its Resize_Policy base of internal changes - (e.g., collisions encountered and elements being - inserted). It queries its Resize_Policy base whether - it needs to be resized, and if so, to what size.

- -

Figure Insert - resize sequence diagram shows a (possible) sequence diagram - of an insert operation. The user inserts an element; the hash - table notifies its resize policy that a search has started - (point A); in this case, a single collision is encountered - - the table notifies its resize policy of this (point B); the - container finally notifies its resize policy that the search - has ended (point C); it then queries its resize policy whether - a resize is needed, and if so, what is the new size (points D - to G); following the resize, it notifies the policy that a - resize has completed (point H); finally, the element is - inserted, and the policy notified (point I).

- -
-
- -
Insert resize sequence diagram.
- -

In practice, a resize policy can be usually orthogonally - decomposed to a size policy and a trigger policy. Consequently, - the library contains a single class for instantiating a resize - policy: hash_standard_resize_policy - is parametrized by Size_Policy and - Trigger_Policy, derives publicly from - both, and acts as a standard delegate [gamma95designpatterns] - to these policies.

- -

Figures Standard - resize policy trigger sequence diagram and Standard resize policy size - sequence diagram show sequence diagrams illustrating the - interaction between the standard resize policy and its trigger - and size policies, respectively.

- -
-
- -
Standard resize policy trigger sequence - diagram.
- -
-
- -
Standard resize policy size sequence - diagram.
- -

Pre-Defined Policies

- -

The library includes the following - instantiations of size and trigger policies:

- -
    -
  1. hash_load_check_resize_trigger - implements a load check trigger policy.
  2. - -
  3. cc_hash_max_collision_check_resize_trigger - implements a collision check trigger policy.
  4. - -
  5. hash_exponential_size_policy - implements an exponential-size policy (which should be used - with mask range hashing).
  6. - -
  7. hash_prime_size_policy - implementing a size policy based on a sequence of primes - [sgi_stl] (which should - be used with mod range hashing
  8. -
- -

Figure Resize policy class - diagram gives an overall picture of the resize-related - classes. basic_hash_table - is parametrized by Resize_Policy, which it subclasses - publicly. This class is currently instantiated only by hash_standard_resize_policy. - hash_standard_resize_policy - itself is parametrized by Trigger_Policy and - Size_Policy. Currently, Trigger_Policy is - instantiated by hash_load_check_resize_trigger, - or cc_hash_max_collision_check_resize_trigger; - Size_Policy is instantiated by hash_exponential_size_policy, - or hash_prime_size_policy.

- -
-
- -
Resize policy class diagram.
- -

Controlled Access to Policies' Internals

- -

There are cases where (controlled) access to resize - policies' internals is beneficial. E.g., it is sometimes - useful to query a hash-table for the table's actual size (as - opposed to its size() - the number of values it - currently holds); it is sometimes useful to set a table's - initial size, externally resize it, or change load factors.

- -

Clearly, supporting such methods both decreases the - encapsulation of hash-based containers, and increases the - diversity between different associative-containers' interfaces. - Conversely, omitting such methods can decrease containers' - flexibility.

- -

In order to avoid, to the extent possible, the above - conflict, the hash-based containers themselves do not address - any of these questions; this is deferred to the resize policies, - which are easier to change or replace. Thus, for example, - neither cc_hash_table nor - gp_hash_table - contain methods for querying the actual size of the table; this - is deferred to hash_standard_resize_policy.

- -

Furthermore, the policies themselves are parametrized by - template arguments that determine the methods they support - ([alexandrescu01modern] - shows techniques for doing so). hash_standard_resize_policy - is parametrized by External_Size_Access that - determines whether it supports methods for querying the actual - size of the table or resizing it. hash_load_check_resize_trigger - is parametrized by External_Load_Access that - determines whether it supports methods for querying or - modifying the loads. cc_hash_max_collision_check_resize_trigger - is parametrized by External_Load_Access that - determines whether it supports methods for querying the - load.

- -

Some operations, for example, resizing a container at - run time, or changing the load factors of a load-check trigger - policy, require the container itself to resize. As mentioned - above, the hash-based containers themselves do not contain - these types of methods, only their resize policies. - Consequently, there must be some mechanism for a resize policy - to manipulate the hash-based container. As the hash-based - container is a subclass of the resize policy, this is done - through virtual methods. Each hash-based container has a - private virtual method:

-
-virtual void
-    do_resize
-    (size_type new_size);
-
- -

which resizes the container. Implementations of - Resize_Policy can export public methods for resizing - the container externally; these methods internally call - do_resize to resize the table.

- -

Policy - Interaction

- -

Hash-tables are unfortunately especially susceptible to - choice of policies. One of the more complicated aspects of this - is that poor combinations of good policies can form a poor - container. Following are some considerations.

- -

Probe Policies, Size - Policies, and Trigger Policies

- -

Some combinations do not work well for probing containers. - For example, combining a quadratic probe policy with an - exponential size policy can yield a poor container: when an - element is inserted, a trigger policy might decide that there - is no need to resize, as the table still contains unused - entries; the probe sequence, however, might never reach any of - the unused entries.

- -

Unfortunately, pb_ds cannot detect such problems at - compilation (they are halting reducible). It therefore defines - an exception class insert_error to throw an - exception in this case.

- -

Hash Policies and Trigger - Policies

- -

Some trigger policies are especially susceptible to poor - hash functions. Suppose, as an extreme case, that the hash - function transforms each key to the same hash value. After some - inserts, a collision detecting policy will always indicate that - the container needs to grow.

- -

The library, therefore, by design, limits each operation to - one resize. For each insert, for example, it queries - only once whether a resize is needed.

- -

Equivalence Functors, Storing - Hash Values, and Hash Functions

- -

cc_hash_table and - gp_hash_table are - parametrized by an equivalence functor and by a - Store_Hash parameter. If the latter parameter is - true, then the container stores with each entry - a hash value, and uses this value in case of collisions to - determine whether to apply a hash value. This can lower the - cost of collision for some types, but increase the cost of - collisions for other types.

- -

If a ranged-hash function or ranged probe function is - directly supplied, however, then it makes no sense to store the - hash value with each entry. pb_ds's container will - fail at compilation, by design, if this is attempted.

- -

Size Policies and - Load-Check Trigger Policies

- -

Assume a size policy issues an increasing sequence of sizes - a, a q, a q1, a q2, ... For - example, an exponential size policy might issue the sequence of - sizes 8, 16, 32, 64, ...

- -

If a load-check trigger policy is used, with loads - αmin and αmax, - respectively, then it is a good idea to have:

- -
    -
  1. αmax ~ 1 / q
  2. - -
  3. αmin < 1 / (2 q)
  4. -
- -

This will ensure that the amortized hash cost of each - modifying operation is at most approximately 3.

- -

αmin ~ αmax is, in - any case, a bad choice, and αmin > - αmax is horrendous.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_exponential_size_policy.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_exponential_size_policy.html deleted file mode 100644 index 1089b1544786..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_exponential_size_policy.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - hash_exponential_size_policy Interface - - - - -
-

hash_exponential_size_policy Interface

- -

A size policy whose sequence of sizes form an exponential - sequence (typically powers of 2)

- -

Defined in: hash_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Size_Type 
-
-
-

Size type.

-
size_t
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-Size_Type
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  hash_exponential_size_policy
-  (size_type start_size = 8, 
-    size_type grow_factor = 2)
-
-
-

Default constructor, or constructor taking a - start_size, or - constructor taking a start size and grow_factor. The policy will use the - sequence of sizes start_size, start_size * grow_factor, start_size * grow_factor^2, ...

-
-
-void 
-  swap
-  (hash_exponential_size_policy &other)
-
-
-

Swaps content.

-
- -

Protected Methods

- -

Size methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-size_type
-  get_nearest_larger_size
-  (size_type size) const
-
-
-

Given a size size, - returns a size that is larger.

-
-
-size_type
-  get_nearest_smaller_size
-  (size_type size) const
-
-
-

Given a size size, - returns a size that is smaller.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_load_check_resize_trigger.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_load_check_resize_trigger.html deleted file mode 100644 index b22b7b5cfdde..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_load_check_resize_trigger.html +++ /dev/null @@ -1,583 +0,0 @@ - - - - - - - hash_load_check_resize_trigger Interface - - - - -
-

hash_load_check_resize_trigger Interface

- -

A resize trigger policy based on a load check. It keeps the - load factor between some load factors load_min and - load_max.

- -

Defined in: hash_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-bool External_Load_Access 
-
-
-

Specifies whether the load factor can be accessed - externally. The two options have different trade-offs in - terms of flexibility, genericity, and encapsulation.

-
false
-
-typename Size_Type 
-
-
-

Size type.

-
size_t
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-Size_Type
-
-
-

Size type.

-
-
-external_load_access
-
-
-
-External_Load_Access
-
-
-

Indicates whether loads can be accessed externally

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  hash_load_check_resize_trigger
-  (float load_min = 0.125, 
-    float load_max = 0.5)
-
-
-

Default constructor, or constructor taking - load_min and - load_max load factors - between which this policy will keep the actual load.

- -

It is the responsibility of the user to ensure that - load_min is smaller than - load_max.

-
-
-void
-  swap
-  (hash_load_check_resize_trigger &other)
-
-
-

Swaps content.

-
-
-  virtual
-    ~hash_load_check_resize_trigger
-    ()
-
-
-

Destructor.

-
- -

Load Access Methods

- -

These methods are only available if the external access - parameter is set.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline std::pair<float, float>
-  get_loads
-  () const
-
-
-

Returns a pair of the minimal and maximal loads, - respectively.

- -

Calling this method will not compile when External_Load_Access - == false.

-
-
-void 
-  set_loads
-  (std::pair<float, float> load_pair)
-
-
-

Sets the loads through a pair of the minimal and - maximal loads, respectively.

- -

Calling this method resizes the container, and might - throw an exception. It is the responsibility of the user - to pass appropriate loads to this function. Calling this - method will not compile when External_Load_Access - == false.

-
- -

Protected Methods

- -

Insert Search - Notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_insert_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_insert_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_insert_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Find Search - Notifications.

- -

Notifications called during a find operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_find_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_find_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_find_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Erase Search - Notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_erase_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_erase_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_erase_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Content Change - Notifications.

- -

Notifications called when the content of the table changes - in a way that can affect the resize policy.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_inserted
-  (size_type num_entries)
-
-
-

Notifies an element was inserted. the total number of - entries in the table is num_entries.

-
-
-inline void
-  notify_erased
-  (size_type num_entries)
-
-
-

Notifies an element was erased.

-
-
-void 
-  notify_cleared
-  ()
-
-
-

Notifies the table was cleared.

-
- -

Size Change - Notifications.

- -

Notifications called when the table changes size.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-void
-  notify_resized
-  (size_type new_size)
-
-
-

Notifies the table was resized as a result of this - object's signifying that a resize is needed.

-
-
-void
-  notify_externally_resized
-  (size_type new_size)
-
-
-

Notifies the table was resized externally.

-
- -

Queries

- -

Called to query whether/how to resize.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline bool 
-  is_resize_needed
-  () const
-
-
-

Queries whether a resize is needed.

-
-
-inline bool
-  is_grow_needed
-  (size_type size, 
-    size_type num_entries) const
-
-
-

Queries whether a grow is needed.

- -

This method is called only if this object indicated - resize is needed. The actual size of the table is size, and the number of entries in - it is num_entries.

-
- -

Private Methods

- -

Overrides

- - - - - - - - - - - - - -
MethodDescription
-
-virtual void
-  do_resize
-  (size_type new_size)
-
-
-

Resizes to new_size.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_prime_size_policy.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_prime_size_policy.html deleted file mode 100644 index 8976767b4f0e..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_prime_size_policy.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - hash_prime_size_policy Interface - - - - -
-

hash_prime_size_policy Interface

- -

A size policy whose sequence of sizes form a - nearly-exponential sequence of primes.

- -

Defined in: hash_policy.hpp

- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  hash_prime_size_policy
-  (size_type start_size = 8)
-
-
-

Default constructor, or constructor taking a - start_size The policy - will use the sequence of sizes approximately start_size, start_size * 2, start_size * 2^2, ...

-
-
-inline void
-  swap
-  (hash_prime_size_policy &other)
-
-
-

Swaps content.

-
- -

Protected Methods

- -

Size methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-size_type
-  get_nearest_larger_size
-  (size_type size) const
-
-
-

Given a size size, - returns a size that is larger.

-
-
-size_type
-  get_nearest_smaller_size
-  (size_type size) const
-
-
-

Given a size size, - returns a size that is smaller.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html deleted file mode 100644 index 2867595b0915..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - -Tree Text Locality of Reference Timing Test - - - -
-

Hash-Based Erase Memory-Use Test

-

Description

-

This test inserts a number of uniform i.i.d. integer keys - into a container, then erases all keys except one. It measures - the final size of the container.

-

(The test was executed with hash_random_int_erase_mem_usage.cc - 2000 2000 2100)

-

Purpose

-

The test checks how containers adjust internally as their - logical size decreases (see Motivation::Associative - Containers::Slightly Different Methods::Methods Related to - Erase).

-

Results

-

Figures NHG, NHM and - NHL show the results for the native and - collision-chaining types in g++, msvc++ and - local, - respectively.

-
-
-
-
-
no image
NHG: Native, collision-chaing, and probing, hash random int erase test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_set_ncah- -std::tr1::unordered_set with cache_hash_code = false
  2. -
  3. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  4. -
  5. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Native, collision-chaing, and probing, hash random int erase test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_set_ncah- -stdext::hash_set
  2. -
  3. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  4. -
  5. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Native, collision-chaing, and probing, hash random int erase test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_set_ncah- -stdext::hash_set
  2. -
  3. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  4. -
  5. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NHL: Native, collision-chaing, and probing, hash random int erase test - local
-
-
-
-
-

Observations

-

STL hash-based containers act very differently than trees in - this respect. When erasing numerous keys from an STL - associative-container, the resulting memory user varies greatly - depending on whether the container is tree-based or hash-based. - As noted in Motivation::Choice of - Methods , this is a fundamental consequence of the STL's - associative containers' interface, it is not due to a specific - implementation.

-

(See Priority Queue - Text pop Memory Use Test for a similar phenomenon - regarding priority queues.)

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png deleted file mode 100644 index c552506a7557aa598a9de877bbe45bd20bda39f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6356 zc-qBSc{r5q+a9Feh$1y8DNC{r2H8W1CTsR(WSgwXl4Y!kBD_KwlYPrh*|(v^Zjvn7 z$-dKI>^$G|_}%w4^2pEh4`xh0sGMBDa0)tV(v>)iHz@UMI!7wlw9tI=AU;q>$kuW3%hQz~=L>Ll) zHZe#T1_Q(3VHhF|135TkHip>7yx1cZsIXWJRXTBBJlu3 z3d|*9kVHI^NJJ6=kRw=%1TaVdj|7NF0Dve%8bHz@OOO@-DS%D_p+PLL7=Q#pF*xuT z3=x9?AbsGmV1&nG@I(wAfaHQKz)d0^LnLB|0H_`$1?FM^JO&_Q001%rG7GE*?Ev)y zkT;Md5DX*@vIHQjpo2kd5E{e+Am^ZMFa`$^j|U(lL4Dw{U_>P1i2&#;C>LY_ZsGwV z9snSlp{`({T*znuavkyx1C>H{08kSkg%}74A`L)2fp}mbUIIO#WV(ox`~XTV8UfD_+=6K8=F?|>6`fD`?|i9+B+18~9;IN<@D zoCKU;0VmnOf5-n%!xrnu22N+6su{b(V6=?TkD_NR;1FD7_fRqNc<6%h@UnEXg{eH$ zzJAZn#ofc*+Rgr{$8|{&aUo$*oM-Z780?aky0W64chYL|NJZB53o3gx_75oMtmWtK z%6~u#c3cV7Rrp*s@IK{9^VDR`Uqr{<4LcZmdbx49^LVn zf(Ax_(R9IoP*$4VD8_DD!Jz?rErb)EIkCFN7ISd9 zVb%E85v^&Y98JyRu|i^FK@7nrEei2q#qg&8!|Mv1SP_F@=7Z$&A?bFvPS0SR^N$Z< z;ncm?eB&qb=6h%6vgnNh>UI&IBo^_M6ed3-#=lnAO^ko-i{C82^W6#9T*Vc^eLjzC z_}om#{Z+E8B8VK}?;@h={Dn5TwtqOiuc^3~vAyDrjY)MV5L-;7q(BdJl6tGJ`5g4e z`Qw!Ex|55$H%WuiSqnz`d2Tr_? z{D$VoI=HrCm3^@kf>fZ1-?iv?DyA1v-Jna5--qeCe@wlsz@0v9*VkzM2QKxVCEWc!brELEtiuSxPJ^PkNGtEXK_!<|AiI8Ck!e|O47 z{f!|Ym4O-pFL^Yq}jPz^VB78Uo}0V3iwduSk@QO@wL;u z=F#`ahyy)1wVu6xi-Bs7X{QT=>qNvVcBp}t{n|AX*^Qopnc$(qT!@gIXZh z{MzSEHD5g->otQ*SzK(RNWf1s^XQqJUAINa*#&NoAmrB5bIIn>5>&misb=8DeSTzR zubPWsqe|iOPXwokAm(7!GAbL_PPn&aQ=>=z7Ik@3g7#2;A_2E4P~1|tfn1ZET>^os zLM#`X+1KyG3-_2?(M;Oe`o~5FtcyjnRc!%j0&S&UHf45I}$wYd!Z9arWw6Su$8S_tLoUK@ecxEZdp)kWJnqX?bA6?#WwMz_GKp!M!F z^pmSfWu7V0hRwY~n5@w?x`onI^@Z66HaGgNx6SueJY1!ID7*JI&oVA#pPIZXT3cQ1 z`{RC$uD-+Vo$jx44LP_%A)&SLGTq30xVyi4@ueDhj`?wf&JMgn_9j8aDf4SnrDR7v z=R3{_d5)j0*&z`Tnk75fS!t8m%7{+xq6HO~n1&lE(QP$5DB_WA%tMb^K`WL^H7lCB zYcVf*!VDuF*>M~~Lh;cNJ3RCI)gK>yQ#Lmf@-asMr%d~|U4Sf?uz60mwIfFNK>Q42 zTCGe@Z(hHmPwS9$kE_k6joNKj-svf;{pxBg$=Uv;9N&+ZS6Zdns}31{GnDFk$>4QF#N@P_G^MC%bIH@u=Gj<-t*=Sm ziiTKHlJWhe*{qol9KrHJ;n?)r>b5Pz@F;_`2~oAxW<6o(b0^fSsuCB8jJ>EHa$9M( zeEC0$l!SytkCw#K1#ta*=xgKa$f4ox&5kr};QYqI1Bx$Py(oEb}NQc%s0oaAGbt{hvF1GPYt!c9o~%v46Q zXIJsPeEla7t2A_e&wVK@1(t%zWPr9^YWijCJu9iT{c0vpS9Oh4gq7|xmiIf{-zcR! z1}#LNZo;qsg{dwwK~CHstG)&!%*+srk?v)&6&FXisTa6;csymoS7Rx+V&l@ro>J(7%9KFbe z5$>4nE#1%m!Ur!$>O+gEpBB)@X>!l0BHX%Q8crCROa@R4Aoz^H*px7YZH{oEXiN|W zZ`?oc(F&>cS#aSCVDQf^{J%}w4-wrM;NRTtO8SI9?+_!6&xU~2#(XEK08;jNJcDES zG4-1uG>m$ITKoS#g(cnHp*t&3Kcqki{-Q-i(3|Y4W9^NySbH`R1+^|8V!fhgHMu+^UIv7i}Hl6j`iH^CB(moakmgdgb=-j;e`#!!!9itHm3u z)=O+w(i&Fi>t`YfdGK|*YH6tnEaTBvle%6@)%Sh%pRKor4x334JEzU?e&Z8woEuyQ zdOKI@ReXJQIFd>toEbJFr=HdRf)Y4uypL}5vT57dA$?2QPO0QdNM=QP^&8Ijx9*#3 z#2GNRAo_Eq;=&f1{i%v~Yj3eE!hhXIxdoJa>%KsDXnPH_7zet7igFc-ix%L&_)u0y z%@5+bj^DzE#<=6R<{?SW->q?gVhzjsQ->q}yJJ`@}-g?5w2Iyv>_hi3^}ZN84P z-6*ZFM81-7qvvRBaDNJY=zU=uw6*T`xVF{VmqbT3*6Q~21dnecx(o@nzc;xqlX1O$ zdmEH`!*+7!uV;CfTzenmfA|TO%~I!z{j4c$kt&a0!*TdO;M8AxW6&2&LczuQo_3=) z%X@1IyQD^wE?^{*v%kNGt7R1#l(Ff3&=5uOeks@Al()-wH}-#ZbJEtB6Y)mD(Sbx3 z{Z38ZV4Gi-6@T=-zvov=xl_Y2avyiouEgCq*}d)d;~KoBe-*`hJ=DTgw`*z!w-8TN z3!G=)79<%R)_>-W@)RoYrO&ZYd|cRAuknq}_L6goWLYXZFAgr5Io4%Mp6?|F$QPNR zuRrK@IJ?w5EWx6fad~n=yhQZ^FMAUXtGw)NQ_}dfDv&{ozoV>JRe~?QL zqj?zf_EC%TVJWj*t5Y+r?(=rNlcL(rgN9MwK^3#4S4OLOu}gwm*1KVdcM)G*)7==t ze|$`MaY5Wq=M(&b1>gBrYdbbEZDoY1S9_Eay#}lE%IwlHAwta95&5^S zYa%Qe3VwO7JhI=>nUAW|p~&hI?;c%E4_0fJ3qw46(I6fFV)-JUkcwM?f77SLNc9UK z!z@&h)8H~<4J{(3bMZsb^yC!o97pJ`uGfM-|CQ|{PM5QqMZaEq7#Q(_jPF*lbw2n1 za%)GR5I0aYsM1qoAW=N9EILm%2F9%Uh5`kT8ht)lnYK9QAKWP(+4|&}sHBb9mZ9pH zB{Qhj`plU{hg_tz=#=FYR*Pd`QQ?*8@-{SooraT*%#L61t2INXJ`$_wlY8||934XH z)Af-z?|2#)nR|JlQFByC>9F=(WZq@3L&iY^zLInneZg)N#YUrwJWUB9@A;Z$) z=sd~bwKB7@QLwQjcv$W{g*Dzv?Y>5bk!aZU<3)GROXI`?=%sp(A_9oVhuR4Ag&QRe zyBQ`^^MAb5En9YuHnJMHnrKtqnZM}818GU>p8*MfY~@wuxef_n^5Yj=Ao>)eBzgp^?pQ5JI4t*>+J=VSX@qz#Da^1vh_!ha# zHmWP9bGDydyVJxg=%<(Oj`_aXAXX7@J1vc4D`1J|c#<$#UrXr_Q$1}itHqc$59k;*+QXl#bDf{<`+bc)H z;CaRMqti09DmNE+8kn}+&iEcqZC~+xLrpd#tVz^HA^OdpOW!z_4Zq0c5N~PGr0}74 zS692k+=_1gRQQy`InF8M7K;UqLrrwAhwPuAOp)5;sL#S27aqJKWv9jS3`Xr-i87iW zyw>;>L%>EE`$~r+s4HZ@8BZKNV;yDwF1?v~SKSW?j^&&B&q`4OIlQb}1f{JR+pW7oIDI=W-+S<@iV8g#l}6@hb^f-UAN>4MMrs z9X}?$#EtLl#iK?89R-qqoOwfs3YA2g$K~k=kwLzJ*pv=)oI|pbS!BoL?d6_5Z}@%Q z@PS6At2@6WW3*AmEv$_Sg4rzg0jDb7wweX<^2Jw_qtoJ9BTE}-EBY)W5AJEB1Xa6f z`*fr8vAk0uhgZD(`}X!jO*|(W(_HdU6WHe_4!vby$-YMcd{oCT)Gl-6d{Xs#)lS|; z3mPk*aBsiUNYeJo)YV8fZeDf^nl2g_x3P^;X>pFizCyp4;8*d{2x^Pm+u>qzx7j`Q zo?r1;3Ed}UGjDC&d`qH5ro@k1-_wsqaQ9Kx)SppDh*rLR&89Ea!1Q)Qy8O6#G>vko z|262P7)%|Z3wJo=@B;BdrF5=nZ*d5za0I^?y&H*m*7)`UiW6Kp&6n8u0jvifn7$tR zJS+pS_bHRF2^VZ)l0k;Fnu-;{&$%ULS`ril=z0o4T{rFZ5Zb6ry?#{w3)0+Iy7}eH zjzdNO#}lhe7yE>ktzdqg>GB*L4K+oT{R4!Nt9?@C7NyA<@KrPou0ZkcryFkc`sKF{ za0Ds8kkp$$j_k91Qs(3bKKyG@`MQRZc!2&9oWg#}zQfhoR3)M`a47NHy;D6|d#EE7 zh4&p(T&W=>-NV{H=c>GhA3Yi*S_I7bOL=1$$DoNVLGis;9;>zcJ<*NI}K zA?~Up*;GY8OVB2!gRK33TZ@;}IEYm~x?RZjN=g(-Irx1 z1*(p;o|(fWy2lj;(Kq2Mr_0@~s_w9we!TMQZ%2tLMPacM`)4vM-c>U4dv>FQOibbTh?w?Gv44qAbSr*-L^6Yt- z8}Z>T2+YK(&6t;mYT~q?s;&XroB_G{)RHDH*eWLR=jasSPoeAf;sq>=Kas@P^(cP88ZVY>v)v3r#K!Fd)+-8qn3x)ooRaeneE>?OJ{9l&-8Rq~1 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png deleted file mode 100644 index 66bb0eb46e2804f1e6343ac9b149b027546f6c04..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 31203 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 SMsXTI_<=pN$NeuYCvk=V diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png deleted file mode 100644 index 8c23d46da395543715ebbbac37665e0ff0fe7192..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6401 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_find_find_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_find_find_timing_test.html deleted file mode 100644 index b6066e7cf424..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_find_find_timing_test.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - -Hash Random Int Find Timing Test - - - -
-

Hash-Based Random-Integer find Find Timing - Test

-

Description

-

This test inserts a number of values with uniform i.i.d. - integer keys into a container, then performs a series of finds - using find. It measures the average time - forfind as a function of the number of values - inserted.

-

(The test was executed with random_int_find_timing_test - 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - hash-tables (see Design::Associative - Containers::Associative Containers::Hash-Based Containers), - range-hashing functions, and trigger policies (see Design::Associative - Containers::Hash-Based Containers::Hash Policies and - Design::Associative - Containers::Hash-Based Containers::Resize Policies).

-

Results

-

Figures NCCG, NCCM, - and NCCL show the results for the native - and collision-chaining types in g++, MSVC++, and - local, - respectively; Figures NGPG, NGPM, and NGPL show the results - for the native and probing types in g++, MSVC++, and - local - respectively.

-
-
-
-
-
no image
NCCG: Native and collision-chaining hash random int find timing test using find - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_map_ncah- -std::tr1::unordered_map with cache_hash_code = false
  2. -
  3. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  4. -
  5. -cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  8. -
  9. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NCCM: Native and collision-chaining hash random int find timing test using find - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  2. -
  3. -cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -n_hash_map_ncah- -stdext::hash_map
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  8. -
  9. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NCCL: Native and collision-chaining hash random int find timing test using find - local
-
-
-
-
-
-
-
-
-
no image
NGPG: Native and collision-chaining hash random int find timing test using find - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  2. -
  3. -n_hash_map_ncah- -std::tr1::unordered_map with cache_hash_code = false
  4. -
  5. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NGPM: Native and collision-chaining hash random int find timing test using find - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  2. -
  3. -n_hash_map_ncah- -stdext::hash_map
  4. -
  5. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NGPL: Native and collision-chaining hash random int find timing test using find - local
-
-
-
-
-

Observations

-

In this setting, the choice of underlying hash-table (see - Design::Associative - Containers::Hash-Based Containers ) affects performance - most, then the range-hashing scheme (See Design::Associative - Containers::Hash-Based Containers::Hash Policies ), and, - only finally, other policies.

-

When comparing Figures NCCG and NCCM to NGPG and NGPM , respectively, it is apparent that the - probing containers are less efficient than the - collision-chaining containers (both - std::tr1::unordered_map and stdext::hash_map - use collision-chaining) in this case.

-

( Hash-Based - Random-Integer Subscript Insert Timing Test shows a - different case, where the situation is reversed; Observations::Hash-Based - Container Types discusses some further considerations.)

-

Within each type of hash-table, the range-hashing scheme - affects performance more than other policies; Hash-Based - Text find Find Timing Test::Observations discusses - this. In Figures NCCG , NCCM , NGPG , and NGPM , it should be noted that - std::tr1::unordered_map and stdext::hash_map - are hard-wired currently to mod-based and mask-based schemes, - respectively.

-

Observations::Hash-Based - Container Types summarizes some observations on hash-based - containers; Observations::Hash-Based - Containers' Policies summarizes some observations on - hash-based containers' policies.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html deleted file mode 100644 index 002516370451..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - -Hash Random Int Subscript Find Timing Test - - - -
-

Hash-Based Random-Integer operator[] - FindTiming Test

-

Description

-

This test inserts a number of values with uniform i.i.d. - integer keys into a container, then performs a series of finds - using operator[]. It measures the average time - for operator[] as a function of the number of - values inserted.

-

(The test was executed with hash_random_int_subscript_find_timing_test - 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - hash-tables (see Design::Hash-Based Containers - ), range-hashing functions, and trigger policies (see Design::Hash-Based - Containers::Hash Policies and Design::Hash-Based - Containers::Resize Policies ).

-

Results

-

Figures NCCG, NCCM, - and NCCL show the results for the native - and collision-chaining types in g++, MSVC++, and - local, - respectively; Figures NGPG, NGPM, and NGPL show the results - for the native and probing types in g++, MSVC++, and - local, - respectively.

-
-
-
-
-
no image
NCCG: Native and collision-chaining hash random int find timing test using operator[] - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_map_ncah- -std::tr1::unordered_map with cache_hash_code = false
  2. -
  3. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  4. -
  5. -cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  8. -
  9. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NCCM: Native and collision-chaining hash random int find timing test using operator[] - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  2. -
  3. -cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -n_hash_map_ncah- -stdext::hash_map
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  8. -
  9. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NCCL: Native and collision-chaining hash random int find timing test using operator[] - local
-
-
-
-
-
-
-
-
-
no image
NGPG: Native and probing hash random int find timing test using operator[] - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_map_ncah- -std::tr1::unordered_map with cache_hash_code = false
  2. -
  3. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  4. -
  5. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NGPM: Native and probing hash random int find timing test using operator[] - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  2. -
  3. -n_hash_map_ncah- -stdext::hash_map
  4. -
  5. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NGPL: Native and probing hash random int find timing test using operator[] - local
-
-
-
-
-

Observations

-

This test shows similar results to Hash-Based - Random-Integer find Find Timing Test .

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html deleted file mode 100644 index a15d03ba4cb4..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - -Hash Random Int Subscript Insert Timing Test - - - -
-

Hash-Based Random-Integer operator[] Insert - Timing Test

-

Description

-

This test inserts a number of values with uniform i.i.d. - integer keys into a container, using - operator[]. It measures the average time for - operator[] as a function of the number of - values inserted.

-

(The test was executed with hash_random_int_subscript_insert_timing_test - 200 200 2100)

-

Purpose

-

The test primarily checks the effect of different underlying - hash-tables (see Design::Associative - Containers::Associative Containers::Hash-Based - Containers).

-

Results

-

Figures NCCG, NCCM, - and NCCL show the results for the native - and collision-chaining types in g++, MSVC++, and - local, - respectively; Figures NGPG, NGPM, and NGPL show the results - for the native and probing types in g++, msvc++, and - local - respectively; Figures CCGPG, CCGPM, and CCGPL compare the - results for the collision-chaining and probing types of - pb_ds only, in g++, MSVC++, and - local - respectively.

-
-
-
-
-
no image
NCCG: Native and collision-chaining hash random int insert timing test using operator - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_hash_map_ncah- -std::tr1::unordered_map with cache_hash_code = false
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
  7. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  8. -
  9. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NCCM: Native and collision-chaining hash random int insert timing test using operator - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_map_ncah- -stdext::hash_map
  2. -
  3. -cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  8. -
  9. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NCCL: Native and collision-chaining hash random int insert timing test using operator - local
-
-
-
-
-
-
-
-
-
no image
NGPG: Native and probing hash random int insert timing test using operator - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  2. -
  3. -n_hash_map_ncah- -std::tr1::unordered_map with cache_hash_code = false
  4. -
  5. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NGPM: Native and probing hash random int insert timing test using operator - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_map_ncah- -stdext::hash_map
  2. -
  3. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  4. -
  5. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NGPL: Native and probing hash random int insert timing test using operator - local
-
-
-
-
-
-
-
-
-
no image
CCGPG: Collision-chaining and probing hash random int insert timing test using operator - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  2. -
  3. -cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
  7. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  8. -
-
-
-
-
-
-
-
-
-
-
no image
CCGPM: Collision-chaining and probing hash random int insert timing test using operator - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  6. -
  7. -gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mask_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = linear_probe_fn -
  8. -
-
-
-
-
-
-
-
-
-
-
no image
CCGPL: Collision-chaining and probing hash random int insert timing test using operator - local
-
-
-
-
-

Observations

-

In this setting, as in Hash-Based Text - find Find Timing Test and Hash-Based - Random-Integer find Find Timing Test , the choice - of underlying hash-table underlying hash-table (see Design::Associative - Containers::Hash-Based Containers ) affects performance - most, then the range-hashing scheme (See Design::Associative - Containers::Hash-Based Containers::Hash Policies ), and, - only finally, other policies.

-

There are some differences, however:

-
    -
  1. In this setting, probing tables function sometimes more - efficiently than collision-chaining tables (see Figures - CCGPG and CCGPM ). - This is explained shortly.
  2. -
  3. The performance graphs have a "saw-tooth" shape. The - average insert time rises and falls. As values are inserted - into the container, the load factor grows larger. Eventually, - a resize occurs. The reallocations and rehashing are - relatively expensive. After this, the load factor is smaller - than before.
  4. -
-

Collision-chaining containers use indirection for greater - flexibility; probing containers store values contiguously, in - an array (see Figure Motivation::Different - underlying data structures A and B, respectively). It - follows that for simple data types, probing containers access - their allocator less frequently than collision-chaining - containers, (although they still have less efficient probing - sequences). This explains why some probing containers fare - better than collision-chaining containers in this case.

-

Within each type of hash-table, the range-hashing scheme - affects performance more than other policies. This is similar - to the situation in Hash-Based Text - find Find Timing Test and Hash-Based - Random-Integer find Find Timing Test. - Unsurprisingly, however, containers with lower -alphamax perform worse in this case, - since more re-hashes are performed.

-

Observations::Hash-Based - Container Types summarizes some observations on hash-based - containers; Observations::Hash-Based - Containers' Policies summarizes some observations on - hash-based containers' policies.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_standard_resize_policy.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_standard_resize_policy.html deleted file mode 100644 index 8dbc57ce2776..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_standard_resize_policy.html +++ /dev/null @@ -1,795 +0,0 @@ - - - - - - - hash_standard_resize_policy Interface - - - - -
-

hash_standard_resize_policy Interface

- -

A resize policy which delegates operations to size and - trigger policies.

- -

Defined in: hash_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Size_Policy 
-
-
-

Size policy type.

-
hash_exponential_size_policy
-
-class Trigger_Policy 
-
-
-

Trigger policy type.

-
hash_load_check_resize_trigger
-
-bool External_Size_Access 
-
-
-

Indicates whether physical sizes can be accessed - externally.

-
false
-
-typename Size_Type 
-
-
-

Size type.

-
size_t
- -

Base Classes

- - - - - - - - - - - - - - - - - - - -
ClassDerivation Type
-
-Size_Policy
-
-
-

public

-
-
-Trigger_Policy
-
-
-

public

-
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-Size_Type
-
-
-

Size type.

-
- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-trigger_policy
-
-
-
-Trigger_Policy
-
-
-

Trigger policy type.

-
-
-size_policy
-
-
-
-Size_Policy
-
-
-

Size policy type.

-
-
-external_size_access
-
-
-
-External_Size_Access
-
-
-

Indicates whether sizes can be accessed - externally.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  hash_standard_resize_policy
-  ()
-
-
-

Default constructor.

-
-
-  hash_standard_resize_policy
-  (const Size_Policy &r_size_policy)
-
-
-

constructor taking some policies r_size_policy will be copied by the - Size_Policy - object of this object.

-
-
-  hash_standard_resize_policy
-  (const Size_Policy &r_size_policy,
-    const Trigger_Policy &r_trigger_policy)
-
-
-

constructor taking some policies. r_size_policy will be copied by the - Size_Policy - object of this object. r_trigger_policy will be copied by - the Trigger_Policy - object of this object.

-
-
-virtual 
-  ~hash_standard_resize_policy
-  ()
-
-
-

Destructor.

-
-
-inline void 
-  swap
-  (hash_standard_resize_policy &other)
-
-
-

Swaps content.

-
- -

Policy Access Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-Size_Policy &
-  get_size_policy
-  ()
-
-
-

Access to the Size_Policy object - used.

-
-
-const Size_Policy &
-  get_size_policy
-  () const
-
-
-

Const access to the Size_Policy object - used.

-
-
-Trigger_Policy &
-  get_trigger_policy
-  ()
-
-
-

Access to the Trigger_Policy - object used.

-
-
-const Trigger_Policy &
-  get_trigger_policy
-  () const
-
-
-

Access to the Trigger_Policy - object used.

-
- -

Size Access Methods

- -

These methods are available only if the external size - parameter indicates that external size access is allowed.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline size_type 
-  get_actual_size
-  () const
-
-
-

Returns the actual size of the container.

- -

This method returns the number of entries (used and - unused) in the container. It is different from the - container's size method, which returns the number of used - entries. Calling this method will not compile when - External_Size_Access - == false.

-
-
-void 
-  resize
-  (size_type suggested_new_size)
-
-
-

Resizes the container to suggested_new_size, a suggested size - (the actual size will be determined by the Size_Policy - object).

- -

Calling this method will not compile when External_Size_Access - == false.

-
- -

Protected Methods

- -

Insert Search - Notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_insert_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_insert_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_insert_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Find Search - Notifications.

- -

Notifications called during a find operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_find_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_find_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_find_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Erase Search - Notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_erase_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_erase_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_erase_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Content Change - Notifications

- -

Notifications called when the content of the table changes - in a way that can affect the resize policy.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_inserted
-  (size_type num_e)
-
-
-

Notifies an element was inserted.

-
-
-inline void
-  notify_erased
-  (size_type num_e)
-
-
-

Notifies an element was erased.

-
-
-void 
-  notify_cleared
-  ()
-
-
-

Notifies the table was cleared.

-
- -

Size Change - Notifications

- -

Notifications called when the table changes size.

- - - - - - - - - - - - - -
MethodDescription
-
-void
-  notify_resized
-  (size_type new_size)
-
-
-

Notifies the table was resized to new_size.

-
- -

Queries

- -

Called to query whether/how to resize.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline bool
-  is_resize_needed
-  () const
-
-
-

Queries whether a resize is needed.

-
-
-size_type
-  get_new_size
-  (size_type size, 
-    size_type num_used_e) const
-
-
-

Queries what the new size should be, when the container - is resized naturally. The current size of the container - is size, and the number - of used entries within the container is num_used_e.

-
- -

Private Methods

- -

Overrides

- - - - - - - - - - - - - -
MethodDescription
-
-virtual void
-  do_resize
-  (size_type new_size)
-
-
-

Resizes to new_size.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_text_find_find_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_text_find_find_timing_test.html deleted file mode 100644 index 60c30fd343c2..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_text_find_find_timing_test.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - -Hash Text Find Timing Test - - - -
-

Hash-Based Text find Find Timing Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - a container, then performs a series of finds using - find . It measures the average time for find - as a function of the number of values inserted.

-

(The test was executed with text_find_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different range-hashing - functions, trigger policies, and cache-hashing policies (see - Design::Associative - Containers::Associative Containers::Hash-Based Containers::Hash - Policies and Design::Associative - Containers::Hash-Based Containers::Resize Policies ).

-

Results

-

Figures NCCG, NCCM - and NCCL show the results for the native - and collision-chaining types in g++, msvc++, and - local, - respetively.

-
-
-
-
-
no image
NCCG: Native and collision-chaining hash text find timing test using find - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_map_ncah- -std::tr1::unordered_map with cache_hash_code = false
  2. -
  3. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  8. -
  9. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NCCM: Native and collision-chaining hash text find timing test using find - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_map_ncah- -stdext::hash_map
  2. -
  3. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  6. -
  7. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  8. -
  9. -cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NCCL: Native and collision-chaining hash text find timing test using find - local
-
-
-
-
-

Observations

-

In this setting, the range-hashing scheme (See Design::Associative - Containers::Hash-Based Containers::Hash Policies ) affects - performance more than other policies. As Figure NCCG shows, containers using mod-based - range-hashing (including the native hash-based container, which - is currently hard-wired to this scheme) have lower performance - than those using mask-based range-hashing. A modulo-based - range-hashing scheme's main benefit is that it takes into - account all hash-value bits. Standard string hash-functions are - designed to create hash values that are nearly-uniform as is [ - knuth98sorting - ].

-

Trigger policies (see Design::Associative - Containers::Hash-Based Containers::Resize Policies ), - i.e. the load-checks constants, affect performance to a - lesser extent.

-

Perhaps surprisingly, storing the hash value alongside each - entry affects performance only marginally, at least in - pb_ds 's implementation. (Unfortunately, it was not - possible to run the tests with std::tr1::unordered_map - 's cache_hash_code = true , as it appeared to - malfuntion.)

-

Observations::Hash-Based - Containers' Policies summarizes some observations on - hash-based containers' policies.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html deleted file mode 100644 index bfbb3b0866f3..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -Hash Skewed Distribution Memory Use Test - - - -
-

Hash-Based Skewed-Distribution Random-Integer find - Find Timing Test

-

Description

-

This test inserts a number of values with a markedly - non-uniform i.i.d. integer keys into a container, then performs - a series of finds using find . It measures the average - time for find as a function of the number of values in - the containers. The keys are generated as follows. First, a - uniform integer is created; it is then shifted left 8 bits.

-

(The test was executed with hash_zlob_random_int_find_timing_test - 200 200 2100)

-

Purpose

-

The test checks the effect of different range-hashing - functions and trigger policies (see Design::Associative - Containers::Hash-Based Containers::Hash Policies and - Design::Associative - Containers::Hash-Based Containers::Resize Policies).

-

Results

-

Figures NHG, NHM, and - NHL show the results for various hash-based - associative-containers in g++, MSVC++, and - local, - respectively.

-
-
-
-
-
no image
NHG: Skewed-distribution random int find timing test using find - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  2. -
  3. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  4. -
  5. -n_hash_map_ncah- -std::tr1::unordered_map with cache_hash_code = false
  6. -
  7. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Skewed-distribution random int find timing test using find - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_map_ncah- -stdext::hash_map
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  4. -
  5. -gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map- -gp_hash_table - with Comb_Hash_Fn = direct_mod_range_hashing -, Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, and Probe_Fn = quadratic_probe_fn -
  6. -
  7. -cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map- -cc_hash_table -with Comb_Hash_Fn = direct_mod_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_prime_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/1
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NHL: Skewed-distribution random int find timing test using find - local
-
-
-
-
-

Observations

-

In this setting, the keys' distribution is so skewed that - the unerlying hash-table type affects performance marginally. - (This is in contrast with Hash-Based Text - find Find Timing Test , Hash-Based - Random-Integer find Find Timing Test , Hash-Based - Random-Integer Subscript Find Timing Test and Hash-Based - Random-Integer Subscript Insert Timing Test .)

-

The range-hashing scheme affects performance dramatically. A - mask-based range-hashing scheme effectively maps all values - into the same bucket. Access degenerates into a search within - an unordered linked-list. In Figures NHG and - NHM , it should be noted that - std::tr1::unordered_map and stdext::hash_map - are hard-wired currently to mod-based and mask-based schemes, - respectively.

-

When observing the settings of this test, it is apparent - that the keys' distribution is far from natural. One might ask - if the test is not contrived to show that, in some cases, - mod-based range hashing does better than mask-based range - hashing. This is, in fact just the case. We did not encounter a - more natural case in which mod-based range hashing is better. - In our opnion, real-life key distributions are handled better - with an appropriate hash function and a mask-based - range-hashing function. (shift_mask.cc - shows an example of handling this a-priori known skewed - distribution with a mask-based range-hashing function). If hash - performance is bad, a Χ2 test can be used - to check how to transform it into a more uniform - distribution.

-

For this reason, pb_ds's default range-hashing - function is mask-based.

-

Observations::Hash-Based - Container Types summarizes some observations on hash-based - containers; Observations::Hash-Based - Containers' Policies summarizes some observations on - hash-based containers' policies.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png deleted file mode 100644 index 8d170db1a2aede74640d042caba4082ba914b545..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6910 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png deleted file mode 100644 index 874e7a780e66b2e2765c51cdb856daf45bf504c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7204 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/index.html b/libstdc++-v3/doc/html/ext/pb_ds/index.html deleted file mode 100644 index 4c73c2e915a3..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - Policy-Based Data Structures - - - - -
-

Policy-Based Data Structures

- -
Ami Tavory and Vladimir Dreizin, IBM Haifa Research - Laboratories, and Benjamin Kosnik, Red Hat
- -
pbassoc@gmail.com
- -

This is a library of policy-based elementary - data structures: associative containers and priority queues. It - is designed for high-performance, flexibility, semantic safety, - and conformance to the corresponding containers in std - and std::tr1 (except for some points where it differs by - design).

- -

The documentation is organized as follows:

- -
    -
  1. - Introductory - -
      -
    1. Introduction
    2. - -
    3. Motivation
    4. - -
    5. Usage - Prerequisites
    6. -
    -
  2. - -
  3. - Interface - -
      -
    1. Short Tutorial
    2. - -
    3. Concepts
    4. - -
    5. Specifics
    6. -
    -
  4. - -
  5. - Design - -
      -
    1. - Associative Containers - -
        -
      1. Data-Structure - Genericity and Interface
      2. - -
      3. Tree-Based - Containers
      4. - -
      5. Trie-Based - Containers
      6. - -
      7. Hash-Based - Containers
      8. - -
      9. List-Based - Containers
      10. -
      -
    2. - -
    3. Priority Queues
    4. -
    -
  6. - -
  7. - Examples - -
      -
    1. Associative - Containers
    2. - -
    3. Priority Queues
    4. -
    -
  8. - -
  9. - Tests - -
      -
    1. - Associative Containers - -
        -
      1. Regression - Tests
      2. - -
      3. Performance - Tests
      4. -
      -
    2. - -
    3. - Priority Queues - -
        -
      1. Regression - Tests
      2. - -
      3. Performance - Tests
      4. -
      -
    4. -
    -
  10. - -
  11. - Misc. - -
      -
    1. Acknowledgments
    2. - -
    3. Contact
    4. - -
    5. Disclaimer and - Copyright
    6. - -
    7. References
    8. -
    -
  12. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/insert_error.html b/libstdc++-v3/doc/html/ext/pb_ds/insert_error.html deleted file mode 100644 index 37a89aaf9e09..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/insert_error.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - -insert_error Interface - - - - -
-

insert_error Interface

- -

An entry cannot be inserted into a container object for logical -reasons (not, e.g., if memory is unavailable, in which case the -allocator's exception will be thrown).

- -

This exception may be thrown, e.g., when a probe sequence in - a probing hash table does not encounter any free positions, - even though free positions are available.

- -

Defined in: exception.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-insert_error
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/interface.html b/libstdc++-v3/doc/html/ext/pb_ds/interface.html deleted file mode 100644 index a48a8bbadde8..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/interface.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - - -Interface - - - - -
-

Interface Specifics

- -

Following are the library's interface specifics. Short Tutorial is a short tutorial, and - Concepts describes some - concepts.

-
- -

Namespace

- -

All code is enclosed in namespace pb_ds. Nested within - this is namespace detail, which contains the parts of this - library that are considered implementation details.

-
- -

Containers

- -

Associative Containers

- -
    -
  1. container_base - - abstract base class for associative containers.
  2. - -
  3. Hash-based: - -
      -
    1. basic_hash_table - - abstract base class for hash-based - containers
    2. - -
    3. cc_hash_table - - concrete collision-chaining hash-based - containers
    4. - -
    5. gp_hash_table - - concrete (general) probing hash-based - containers
    6. -
    -
  4. - -
  5. Tree-based: - -
      -
    1. basic_tree - - abstract base class for tree and trie based - containers
    2. - -
    3. tree - - concrete base class for tree-based - containers
    4. - -
    5. trie - - concrete base class for trie-based - containers
    6. -
    -
  6. - -
  7. List-based: - -
      -
    1. list_update - - singly-linked list with update-policy container
    2. -
    -
  8. -
- -

Priority - Queues

- -
    -
  1. priority_queue - - priority queue
  2. -
-
- -

Container Tags and - Traits

- -

Container Tags

- -

Common

- -
    -
  1. container_tag - - base class for data structure tags
  2. -
- -

Associative-Containers

- -
    -
  1. associative_container_tag - - base class for associative-container data structure tags
  2. - -
  3. basic_hash_tag - - base class for hash-based structure tags
  4. - -
  5. cc_hash_tag - - collision-chaining hash structure tag
  6. - -
  7. gp_hash_tag - - (general) probing hash structure tag
  8. - -
  9. basic_tree_tag - - base class for tree-like structure tags
  10. - -
  11. tree_tag - - base class for tree structure tags
  12. - -
  13. rb_tree_tag - - red-black tree structure tag/li>
  14. - -
  15. splay_tree_tag - - splay tree structure tag
  16. - -
  17. ov_tree_tag - - ordered-vector tree structure tag
  18. - -
  19. trie_tag - - trie structure tag
  20. - -
  21. pat_trie_tag - - PATRICIA trie structure tag
  22. - -
  23. list_update_tag - list - (with updates) structure tag
  24. -
- -

Priority-Queues

- -
    -
  1. priority_queue_tag - base - class for priority-queue data structure tags
  2. - -
  3. pairing_heap_tag - - pairing-heap structure tag.
  4. - -
  5. binomial_heap_tag - - binomial-heap structure tag
  6. - -
  7. rc_binomial_heap_tag - - redundant-counter binomial-heap (i.e., a heap where - binomial trees form a sequence that is similar to a - de-amortized bit-addition algorithm) structure tag
  8. - -
  9. binary_heap_tag - - binary heap (based on an array or an array of nodes) - structure tag
  10. - -
  11. thin_heap_tag - thin - heap (an alternative [kt99fat_heaps] to - Fibonacci heap) data structure tag.
  12. -
- -

Invalidation-Guarantee - Tags

- -
    -
  1. basic_invalidation_guarantee - - weakest invalidation guarantee
  2. - -
  3. point_invalidation_guarantee - - stronger invalidation guarantee
  4. - -
  5. range_invalidation_guarantee - - strongest invalidation guarantee
  6. -
- -

Container - Traits

- -
    -
  1. container_traits - - traits for determining underlying data structure - properties
  2. -
-
- -

Container Policy Classes

- -

Hash Policies

- -

Hash and Probe Policies

- -
    -
  1. Hash Functions: - -
      -
    1. null_hash_fn - - type indicating one-step range-hashing
    2. -
    -
  2. - -
  3. Range-Hashing Functions: - -
      -
    1. Sample - range-hashing function - interface required of a - range-hashing functor
    2. - -
    3. direct_mask_range_hashing - - (bit) mask-based range hashing functor
    4. - -
    5. direct_mod_range_hashing - - modulo-based range hashing functor
    6. -
    -
  4. - -
  5. Probe Functions: - -
      -
    1. Sample probe - function - interface required of a probe functor
    2. - -
    3. null_probe_fn - type - indicating one-step ranged-probe
    4. - -
    5. linear_probe_fn - - linear-probe functor
    6. - -
    7. quadratic_probe_fn- - quadratic-probe functor
    8. -
    -
  6. - -
  7. Ranged-Hash Functions: - -
      -
    1. Sample - ranged-hash function - interface required of a - ranged-hash functor
    2. -
    -
  8. - -
  9. Ranged-Probe Functions: - -
      -
    1. Sample - ranged-probe function - interface required of a - ranged-probe functor
    2. -
    -
  10. -
- -

Resize Policies

-
    -
  1. Resize Policies: - -
      -
    1. Sample resize - policy - interface required of a resize policy
    2. - -
    3. hash_standard_resize_policy - - standard resize policy
    4. -
    -
  2. - -
  3. Size Policies: - -
      -
    1. Sample size - policy - interface required of a size policy
    2. - -
    3. hash_exponential_size_policy - - exponential size policy (typically used with (bit) mask - range-hashing)
    4. - -
    5. hash_prime_size_policy - - prime size policy (typically used with modulo - range-hashing)
    6. -
    -
  4. - -
  5. Trigger Policies: - -
      -
    1. Sample trigger - policy - interface required of a trigger policy
    2. - -
    3. hash_load_check_resize_trigger - - trigger policy based on load checks
    4. - -
    5. cc_hash_max_collision_check_resize_trigger - - trigger policy based on collision checks
    6. -
    -
  6. -
- -

Tree Policies

- -

Tree Node-Update Policies

- - -
    -
  1. Sample node -updater policy - interface required of a tree -node-updating functor
  2. - -
  3. null_tree_node_update -- null policy indicating no updates are required
  4. - -
  5. tree_order_statistics_node_update -- updater enabling order statistics queries
  6. -
- -

Trie Policies

- - -

Trie Element-Access Traits

- -
    -
  1. Sample - element-access traits - interface required of - element-access traits
  2. - -
  3. string_trie_e_access_traits - - String element-access traits
  4. -
- -

Trie Node-Update Policies

- - -
    -
  1. Sample node -updater policy - interface required of a trie node -updater
  2. - -
  3. null_trie_node_update -- null policy indicating no updates are required
  4. - -
  5. trie_prefix_search_node_update -- updater enabling prefix searches
  6. - -
  7. trie_order_statistics_node_update -- updater enabling order statistics queries
  8. -
- -

List Policies

- -

List Update Policies

- - -
    -
  1. Sample list update - policy - interface required of a list update policy
  2. - -
  3. move_to_front_lu_policy - - move-to-front update algorithm
  4. - -
  5. counter_lu_policy - - counter update algorithm
  6. -
- -

Mapped-Type Policies

- - -
    -
  1. null_mapped_type - data - policy indicating that a container is a "set"
  2. -
-
- -

Exceptions

- - -
    -
  1. container_error - - base class for all policy-based data structure errors
  2. - -
  3. insert_error
  4. - -
  5. join_error
  6. - -
  7. resize_error
  8. -
- -
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/introduction.html b/libstdc++-v3/doc/html/ext/pb_ds/introduction.html deleted file mode 100644 index b3ccbd76aee4..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/introduction.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - Introduction - - - - -
-

Introduction

- -

This section describes what problems the library attempts to - solve. Motivation describes the - reasons we think it solves these problems better than similar - libraries.

- -

Associative Containers

- -
    -
  1. Associative containers depend on their policies to a very - large extent. Implicitly hard-wiring policies can hamper their - performance and limit their functionality. An efficient - hash-based container, for example, requires policies for - testing key equivalence, hashing keys, translating hash - values into positions within the hash table, and determining - when and how to resize the table internally. A tree-based - container can efficiently support order statistics, - i.e., the ability to query what is the order of each - key within the sequence of keys in the container, but only if - the container is supplied with a policy to internally update - meta-data. There are many other such examples.

  2. - -
  3. Ideally, all associative containers would share the same - interface. Unfortunately, underlying data structures and - mapping semantics differentiate between different containers. - For example, suppose one writes a generic function - manipulating an associative container Cntnr: -
    -template<typename Cntnr>
    -  void
    -  some_op_sequence(Cntnr& r_cnt)
    -  {
    -    ...
    -  }
    -
    - -then what can one assume about Cntnr? The answer -varies according to its underlying data structure. If the -underlying data structure of Cntnr is based on a tree or -trie, then the order of elements is well defined; otherwise, it is -not, in general. If the underlying data structure of Cntnr -is based on a collision-chaining hash table, then modifying -r_Cntnr will not invalidate its iterators' order; if the -underlying data structure is a probing hash table, then this is not -the case. If the underlying data structure is based on a tree or -trie, then r_cnt can efficiently be split; otherwise, it -cannot, in general. If the underlying data structure is a red-black -tree, then splitting r_cnt is exception-free; if it is an -ordered-vector tree, exceptions can be thrown. -

  4. -
- -

Priority Queues

- -

Priority queues are useful when one needs to efficiently - access a minimum (or maximum) value as the set of values - changes.

- -
    -
  1. Most useful data structures for priority queues have a - relatively simple structure, as they are geared toward - relatively simple requirements. Unfortunately, these structures - do not support access to an arbitrary value, which turns out to - be necessary in many algorithms. Say, decreasing an arbitrary - value in a graph algorithm. Therefore, some extra mechanism is - necessary and must be invented for accessing arbitrary - values. There are at least two alternatives: embedding an - associative container in a priority queue, or allowing - cross-referencing through iterators. The first solution adds - significant overhead; the second solution requires a precise - definition of iterator invalidation. Which is the next - point...

  2. - -
  3. Priority queues, like hash-based containers, store values in - an order that is meaningless and undefined externally. For - example, a push operation can internally reorganize the - values. Because of this characteristic, describing a priority - queues' iterator is difficult: on one hand, the values to which - iterators point can remain valid, but on the other, the logical - order of iterators can change unpredictably.

  4. - -
  5. Roughly speaking, any element that is both inserted to a - priority queue (e.g., through push) and removed - from it (e.g., through pop), incurs a - logarithmic overhead (in the amortized sense). Different - underlying data structures place the actual cost differently: - some are optimized for amortized complexity, whereas others - guarantee that specific operations only have a constant - cost. One underlying data structure might be chosen if modifying - a value is frequent (Dijkstra's shortest-path algorithm), - whereas a different one might be chosen - otherwise. Unfortunately, an array-based binary heap - an - underlying data structure that optimizes (in the amortized - sense) push and pop operations, differs from - the others in terms of its invalidation guarantees. Other design - decisions also impact the cost and placement of the overhead, at - the expense of more difference in the the kinds of operations - that the underlying data structure can support. These - differences pose a challenge when creating a uniform interface - for priority queues.

  6. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/invalidation_guarantee_cd.png b/libstdc++-v3/doc/html/ext/pb_ds/invalidation_guarantee_cd.png deleted file mode 100644 index 1f9d1243c6a3f44738f275d382f3db7fa6348a67..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 8331 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/join_error.html b/libstdc++-v3/doc/html/ext/pb_ds/join_error.html deleted file mode 100644 index f3e3eaf979f2..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/join_error.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -join_error Interface - - - - -
-

join_error Interface

- -

A join cannot be performed logical reasons (i.e., the ranges of the - two container objects - being joined - overlaps.

- -

Defined in: exception.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
join_error
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/linear_probe_fn.html b/libstdc++-v3/doc/html/ext/pb_ds/linear_probe_fn.html deleted file mode 100644 index 6387d3a337ef..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/linear_probe_fn.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - linear_probe_fn Interface - - - - -
-

linear_probe_fn Interface

- -

A probe sequence policy using fixed increments.

- -

Defined in: hash_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Size_Type 
-
-
-

Size type.

-
size_t
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-Size_Type
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-void
-  swap
-  (linear_probe_fn &other)
-
-
-

Swaps content.

-
- -

Protected Methods

- -

Offset Methods

- - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  operator()
-  (size_type i) const
-
-
-

Returns the i-th - offset from the hash value.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/list_update.html b/libstdc++-v3/doc/html/ext/pb_ds/list_update.html deleted file mode 100644 index 434e82f42fc8..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/list_update.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - list_update Interface - - - - -
-

list_update Interface

- -

A list-update based associative container.

- -

Defined in: assoc_container.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Key
-
-
-

Key type.

-
-
-
-typename Mapped
-
-
-

Mapped type.

-
-
-
-class Eq_Fn 
-
-
-

Equivalence functor.

-
-
-std::equal_to<Key>
-
-
-
-class Update_Policy 
-
-
-

Update policy (determines when an element will be - moved to the front of the list.

-
move_to_front_lu_policy
-
-class Allocator 
-
-
-

Allocator type.

-
-
-std::allocator<char>
-
-
- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-container_base
-
-
-

public

-
- -

Public Types and - Constants

- -

Policy definitions.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-eq_fn
-
-
-
-Eq_Fn
-
-
-

Equivalence functor type.

-
-
-update_policy
-
-
-
-Update_Policy
-
-
-

List update policy type.

-
-
-allocator
-
-
-
-Allocator
-
-
-

Allocator - type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  list_update
-  ()
-
-
-

Default constructor.

-
-
-template<
-    class It>
-  list_update
-  (It first_it, 
-    It last_it)
-
-
-

Constructor taking iterators to a range of - value_types. The value_types between first_it and last_it will be inserted into the - container object.

-
-
-  list_update
-  (const list_update &other)
-
-
-

Copy constructor.

-
-
-virtual 
-  ~list_update
-  ()
-
-
-

Destructor.

-
-
-list_update &
-  operator=
-  (const list_update &other)
-
-
-

Assignment operator.

-
-
-void
-  swap
-  (list_update &other)
-
-
-

Swaps content.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/list_update_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/list_update_tag.html deleted file mode 100644 index f04aaeacbd10..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/list_update_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - list_update_tag Interface - - - - -
-

list_update_tag Interface

- -

List-update data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-associative_container_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/lu_based_containers.html b/libstdc++-v3/doc/html/ext/pb_ds/lu_based_containers.html deleted file mode 100644 index c8693437d9e3..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/lu_based_containers.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - List-Based Containers - - - - -
-

List-Update Design

- -

Overview

- -

The list-based container has the following declaration:

-
-template<
-    typename Key,
-    typename Mapped,
-    typename Eq_Fn = std::equal_to<Key>,
-    typename Update_Policy = move_to_front_lu_policy<>,
-    typename Allocator = std::allocator<char> >
-class list_update;
-
- -

The parameters have the following meaning:

- -
    -
  1. Key is the key type.
  2. - -
  3. Mapped is the mapped-policy, and is explained in - Tutorial::Associative - Containers::Associative Containers Others than Maps.
  4. - -
  5. Eq_Fn is a key equivalence functor.
  6. - -
  7. Update_Policy is a policy updating positions in - the list based on access patterns. It is described in the - following subsection.
  8. - -
  9. Allocator is an allocator - type.
  10. -
- -

A list-based associative container is a container that - stores elements in a linked-list. It does not order the - elements by any particular order related to the keys. - List-based containers are primarily useful for creating - "multimaps" (see Motivation::Associative - Containers::Avoiding Multiple Keys and Tutorial::Associative - Containers::Associative Containers Others than Maps). In - fact, list-based containers are designed in pb_ds - expressly for this purpose. This is explained further in - Use for "Multimaps".

- -

List-based containers might also be useful for some rare - cases, where a key is encapsulated to the extent that only - key-equivalence can be tested. Hash-based containers need to - know how to transform a key into a size type, and tree-based - containers need to know if some key is larger than another. - List-based associative containers, conversely, only need to - know if two keys are equivalent.

- -

Since a list-based associative container does not order - elements by keys, is it possible to order the list in some - useful manner? Remarkably, many on-line competitive [motwani95random] - algorithms exist for reordering lists to reflect access - prediction [andrew04mtf].

- -

List - Updates

- -

General Terms

- -

Figure A simple list shows a - simple list of integer keys. If we search for the integer 6, we - are paying an overhead: the link with key 6 is only the fifth - link; if it were the first link, it could be accessed - faster.

- -
no image
- -
A simple list.
- -

List-update algorithms reorder lists as elements are - accessed. They try to determine, by the access history, which - keys to move to the front of the list. Some of these algorithms - require adding some metadata alongside each entry.

- -

For example, Figure The counter algorithm - -A shows the counter algorithm. Each node contains both a key - and a count metadata (shown in bold). When an element is - accessed (e.g. 6) its count is incremented, as shown in - Figure The counter algorithm -B. If the count - reaches some predetermined value, say 10, as shown in Figure - The counter algorithm -C, the count is set to - 0 and the node is moved to the front of the list, as in Figure - The counter algorithm -D.

- -
-
- -
The counter algorithm.
- -

Implementation

- -

pb_ds allows instantiating lists with policies - implementing any algorithm moving nodes to the front of the - list (policies implementing algorithms interchanging nodes are - unsupported).

- -

Associative containers based on lists are parametrized by a - Update_Policy parameter. This parameter defines the - type of metadata each node contains, how to create the - metadata, and how to decide, using this metadata, whether to - move a node to the front of the list. A list-based associative - container object derives (publicly) from its update policy. - Figure A list and its update - policy shows the scheme, as well as some predefined - policies (which are explained below).

- -
-
- -
A list and its update policy.
- -

An instantiation of Update_Policy must define - internally update_metadata as the metadata it - requires. Internally, each node of the list contains, besides - the usual key and data, an instance of typename - Update_Policy::update_metadata.

- -

An instantiation of Update_Policy must define - internally two operators:

-
-update_metadata
-operator()();
-
-bool
-operator()(update_metadata &);
-
- -

The first is called by the container object, when creating a - new node, to create the node's metadata. The second is called - by the container object, when a node is accessed (e.g., - when a find operation's key is equivalent to the key of the - node), to determine whether to move the node to the front of - the list.

- -

The library contains two predefined implementations of - list-update policies [andrew04mtf]. The first is - counter_lu_policy, which - implements the counter algorithm described above. The second is - move_to_front_lu_policy, - which unconditionally move an accessed element to the front of - the list. The latter type is very useful in pb_ds, - since there is no need to associate metadata with each element - (this is explained further in Use for - "Multimaps").

- -

Use for "Multimaps"

- -

In pb_ds, there are no equivalents for the STL's - multimaps and multisets; instead one uses an associative - container mapping primary keys to secondary keys (see Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys and - Tutorial::Associative - Containers::Associative Containers Others than Maps).

- -

List-based containers are especially useful as associative - containers for secondary keys. In fact, they are implemented - here expressly for this purpose.

- -

To begin with, these containers use very little per-entry - structure memory overhead, since they can be implemented as - singly-linked lists. (Arrays use even lower per-entry memory - overhead, but they are less flexible in moving around entries, - and have weaker invalidation guarantees).

- -

More importantly, though, list-based containers use very - little per-container memory overhead. The memory overhead of an - empty list-based container is practically that of a pointer. - This is important for when they are used as secondary - associative-containers in situations where the average ratio of - secondary keys to primary keys is low (or even 1).

- -

In order to reduce the per-container memory overhead as much - as possible, they are implemented as closely as possible to - singly-linked lists.

- -
    -
  1. List-based containers do not store internally the number - of values that they hold. This means that their size - method has linear complexity (just like std::list). - Note that finding the number of equivalent-key values in an - STL multimap also has linear complexity (because it must be - done, e.g., via std::distance of the - multimap's equal_range method), but usually with - higher constants.
  2. - -
  3. Most associative-container objects each hold a policy - object (e.g., a hash-based container object holds a - hash functor). List-based containers, conversely, only have - class-wide policy objects.
  4. -
- -

See also Associative-Container - Performance Tests::Observations::Mapping-Semantics - Considerations.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/misc.html b/libstdc++-v3/doc/html/ext/pb_ds/misc.html deleted file mode 100644 index 01029e13454b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/misc.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - Misc. - - - - -
-

Misc.

- -

Acks - contains acknowledgments; Contact - contains contact information;Disclaimer and Copyright is a standard - disclaimer, and References - contains references.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/motivation.html b/libstdc++-v3/doc/html/ext/pb_ds/motivation.html deleted file mode 100644 index 627317217f08..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/motivation.html +++ /dev/null @@ -1,993 +0,0 @@ - - - - - - - Motivation - - - - -
-

Motivation

- -

Many fine associative-container libraries were already - written, most notably, the STL's associative containers. Why - then write another library? This section shows some possible - advantages of this library, when considering the challenges in - Introduction. Many of these - points stem from the fact that the STL introduced - associative-containers in a two-step process (first - standardizing tree-based containers, only then adding - hash-based containers, which are fundamentally different), did - not standardize priority queues as containers, and (in our - opinion) overloads the iterator concept.

- -

Associative Containers

- -

More - Configuration Choices

- -

Associative containers require a relatively large number of - policies to function efficiently in various settings. In some - cases this is needed for making their common operations more - efficient, and in other cases this allows them to support a - larger set of operations

- -
    -
  1. Hash-based containers, for example, support look-up and - insertion methods (e.g., find and - insert). In order to locate elements quickly, they - are supplied a hash functor, which instruct how to transform - a key object into some size type; e.g., a hash functor - might transform "hello" into 1123002298. A - hash table, though, requires transforming each key object - into some size-type type in some specific domain; - e.g., a hash table with a 128-long table might - transform "hello" into position 63. The policy by - which the hash value is transformed into a position within - the table can dramatically affect performance (see Design::Associative - Containers::Hash-Based Containers::Hash Policies). - Hash-based containers also do not resize naturally (as - opposed to tree-based containers, for example). The - appropriate resize policy is unfortunately intertwined with - the policy that transforms hash value into a position within - the table (see Design::Associative - Containers::Hash-Based Containers::Resize Policies). - -

    Associative-Container - Performance Tests::Hash-Based Containers quantifies - some of these points.

    -
  2. - -
  3. Tree-based containers, for example, also support look-up - and insertion methods, and are primarily useful when - maintaining order between elements is important. In some - cases, though, one can utilize their balancing algorithms for - completely different purposes. - -

    Figure Metadata for - order-statistics and interval intersections-A, for - example, shows a tree whose each node contains two entries: - a floating-point key, and some size-type metadata - (in bold beneath it) that is the number of nodes in the - sub-tree. (E.g., the root has key 0.99, and has 5 - nodes (including itself) in its sub-tree.) A container based - on this data structure can obviously answer efficiently - whether 0.3 is in the container object, but it can also - answer what is the order of 0.3 among all those in the - container object [clrs2001] (see Associative Container - Examples::Tree-Like-Based Containers (Trees and - Tries)).

    - -

    As another example, Figure Metadata for order-statistics and - interval intersections-B shows a tree whose each node - contains two entries: a half-open geometric line interval, - and a number metadata (in bold beneath it) that is - the largest endpoint of all intervals in its sub-tree. - (E.g., the root describes the interval [20, - 36), and the largest endpoint in its sub-tree is 99.) A - container based on this data structure can obviously answer - efficiently whether [3, 41) is in the container - object, but it can also answer efficiently whether the - container object has intervals that intersect [3, - 41) (see Associative Container - Examples::Tree-Like-Based Containers (Trees and - Tries)). These types of queries are very useful in - geometric algorithms and lease-management algorithms.

    - -

    It is important to note, however, that as the trees are - modified, their internal structure changes. To maintain - these invariants, one must supply some policy that is aware - of these changes (see Design::Associative - Containers::Tree-Based Containers::Node Invariants); - without this, it would be better to use a linked list (in - itself very efficient for these purposes).

    - -

    Associative-Container - Performance Tests::Tree-Like-Based Containers - quantifies some of these points.

    -
  4. -
- -
-
- -
Metadata for order-statistics and interval - intersections.
- -

More - Data Structures and Traits

- -

The STL contains associative containers based on red-black - trees and collision-chaining hash tables. These are obviously - very useful, but they are not ideal for all types of - settings.

- -

Figure Different underlying - data structures shows different underlying data structures - (the ones currently supported in pb_ds). A shows a - collision-chaining hash-table, B shows a probing hash-table, C - shows a red-black tree, D shows a splay tree, E shows a tree - based on an ordered vector(implicit in the order of the - elements), F shows a PATRICIA trie, and G shows a list-based - container with update policies.

- -

Each of these data structures has some performance benefits, - in terms of speed, size or both (see Associative-Container - Performance Tests and Associative-Container - Performance Tests::Observations::Underlying Data-Structure - Families). For now, though, note that e.g., - vector-based trees and probing hash tables manipulate memory - more efficiently than red-black trees and collision-chaining - hash tables, and that list-based associative containers are - very useful for constructing "multimaps" (see Alternative to Multiple Equivalent - Keys, Associative Container - Performance Tests::Multimaps, and Associative Container - Performance Tests::Observations::Mapping-Semantics - Considerations).

- -
no image
- -
Different underlying data structures.
- -

Now consider a function manipulating a generic associative - container, e.g.,

-
-template<
-    class Cntnr>
-int 
-    some_op_sequence
-    (Cntnr &r_cnt)
-{
-    ...
-}
-
- -

Ideally, the underlying data structure of Cntnr - would not affect what can be done with r_cnt. - Unfortunately, this is not the case.

- -

For example, if Cntnr is std::map, then - the function can use std::for_each(r_cnt.find(foo), - r_cnt.find(bar), foobar) in order to apply foobar - to all elements between foo and bar. If - Cntnr is a hash-based container, then this call's - results are undefined.

- -

Also, if Cntnr is tree-based, the type and object - of the comparison functor can be accessed. If Cntnr is - hash based, these queries are nonsensical.

- -

There are various other differences based on the container's - underlying data structure. For one, they can be constructed by, - and queried for, different policies. Furthermore:

- -
    -
  1. Containers based on C, D, E and F store elements in a - meaningful order; the others store elements in a meaningless - (and probably time-varying) order. By implication, only - containers based on C, D, E and F can support erase - operations taking an iterator and returning an iterator to - the following element without performance loss (see Slightly Different Methods::Methods - Related to Erase).
  2. - -
  3. Containers based on C, D, E, and F can be split and - joined efficiently, while the others cannot. Containers based - on C and D, furthermore, can guarantee that this is - exception-free; containers based on E cannot guarantee - this.
  4. - -
  5. Containers based on all but E can guarantee that erasing - an element is exception free; containers based on E cannot - guarantee this. Containers based on all but B and E can - guarantee that modifying an object of their type does not - invalidate iterators or references to their elements, while - containers based on B and E cannot. Containers based on C, D, - and E can furthermore make a stronger guarantee, namely that - modifying an object of their type does not affect the order - of iterators.
  6. -
- -

A unified tag and traits system (as used for the STL's - iterators, for example) can ease generic manipulation of - associative containers based on different underlying - data structures (see Tutorial::Associative - Containers::Determining Containers' Attributes and Design::Associative - Containers::Data-Structure Genericity::Data-Structure Tags and - Traits).

- -

Differentiating - between Iterator Types

- -

Iterators are centric to the STL's design, because of the - container/algorithm/iterator decomposition that allows an - algorithm to operate on a range through iterators of some - sequence (e.g., one originating from a container). - Iterators, then, are useful because they allow going over a - sequence. The STL also uses iterators for accessing a - specific element - e.g., when an associative - container returns one through find. The STL, however, - consistently uses the same types of iterators for both - purposes: going over a range, and accessing a specific found - element. Before the introduction of hash-based containers to - the STL, this made sense (with the exception of priority - queues, which are discussed in Priority - Queues).

- -

Using the STL's associative containers together with - non-order-preserving associative containers (and also because - of priority-queues container), there is a possible need for - different types of iterators for self-organizing containers - - the iterator concept seems overloaded to mean two different - things (in some cases). The following subsections explain this; - Tutorial::Associative - Containers::Point-Type and Range-Type Methods explains an - alternative design which does not complicate the use of - order-preserving containers, but is better for unordered - containers; Design::Associative - Containers::Data-Structure Genericity::Point-Type and - Range-Type Methods explains the design further.

- -

Using Point-Type Iterators for - Range-Type Operations

- -

Suppose cntnr is some associative container, and - say c is an object of type cntnr. Then what - will be the outcome of

-
-std::for_each(c.find(1), c.find(5), foo);
-
- -

If cntnr is a tree-based container object, then an - in-order walk will apply foo to the relevant elements, - e.g., as in Figure Range - iteration in different data structures -A. If c is - a hash-based container, then the order of elements between any - two elements is undefined (and probably time-varying); there is - no guarantee that the elements traversed will coincide with the - logical elements between 1 and 5, e.g., as in - Figure Range iteration in different - data structures-B.

- -
no image
- -
Range iteration in different - data structures.
- -

In our opinion, this problem is not caused just because - red-black trees are order preserving while collision-chaining - hash tables are (generally) not - it is more fundamental. Most - of the STL's containers order sequences in a well-defined - manner that is determined by their interface: calling - insert on a tree-based container modifies its sequence - in a predictable way, as does calling push_back on a - list or a vector. Conversely, collision-chaining hash tables, - probing hash tables, priority queues, and list-based containers - (which are very useful for "multimaps") are self-organizing - data structures; the effect of each operation modifies their - sequences in a manner that is (practically) determined by their - implementation.

- -

Consequently, applying an algorithm to a sequence obtained - from most containers may or may not make sense, but - applying it to a sub-sequence of a self-organizing container - does not.

- -

The Cost of Enabling Range - Capabilities to Point-Type Iterators

- -

Suppose c is some collision-chaining hash-based - container object, and one calls c.find(3). Then what - composes the returned iterator?

- -

Figure Point-type - iterators in hash tables-A shows the simplest (and most - efficient) implementation of a collision-chaining hash table. - The little box marked point_iterator shows an object - that contains a pointer to the element's node. Note that this - "iterator" has no way to move to the next element (i.e., - it cannot support operator++). Conversely, the - little box marked iterator stores both a pointer to - the element, as well as some other information (e.g., - the bucket number of the element). the second iterator, then, - is "heavier" than the first one- it requires more time and - space. If we were to use a different container to - cross-reference into this hash-table using these iterators - it - would take much more space. As noted in Using Point-Type Iterators for - Range-Type Operations, nothing much can be done by - incrementing these iterators, so why is this extra information - needed?

- -

Alternatively, one might create a collision-chaining - hash-table where the lists might be linked, forming a - monolithic total-element list, as in Figure Point-type iterators in hash - tables-B (this seems similar to the Dinkumware design - [dinkumware_stl]). - Here the iterators are as light as can be, but the hash-table's - operations are more complicated.

- -
no image
- -
Point-type iterators in hash tables.
- -

It should be noted that containers based on - collision-chaining hash-tables are not the only ones with this - type of behavior; many other self-organizing data structures - display it as well.

- -

Invalidation - Guarantees

- -

Consider the following snippet:

-
-it = c.find(3);
-
-c.erase(5);
-
- -

Following the call to erase, what is the validity - of it: can it be de-referenced? can it be - incremented?

- -

The answer depends on the underlying data structure of the - container. Figure Effect of erase in different - underlying data structures shows three cases: A1 and A2 - show a red-black tree; B1 and B2 show a probing hash-table; C1 - and C2 show a collision-chaining hash table.

- -
no image
- -
Effect of erase in different underlying - data structures.
- -
    -
  1. Erasing 5 from A1 yields A2. Clearly, an iterator to 3 - can be de-referenced and incremented. The sequence of - iterators changed, but in a way that is well-defined by the - interface.
  2. - -
  3. Erasing 5 from B1 yields B2. Clearly, an iterator to 3 is - not valid at all - it cannot be de-referenced or incremented; - the order of iterators changed in a way that is (practically) - determined by the implementation and not by the - interface.
  4. - -
  5. Erasing 5 from C1 yields C2. Here the situation is more - complicated. On the one hand, there is no problem in - de-referencing it. On the other hand, the order of - iterators changed in a way that is (practically) determined - by the implementation and not by the - interface.
  6. -
- -

So in classic STL, it is not always possible to express - whether it is valid or not. This is true also for - insert, e.g.. Again, the iterator concept seems - overloaded.

- -

Slightly - Different Methods

- -

[meyers02both] - points out that a class's methods should comprise only - operations which depend on the class's internal structure; - other operations are best designed as external functions. - Possibly, therefore, the STL's associative containers lack some - useful methods, and provide some other methods which would be - better left out (e.g., [sgi_stl] ).

- -

Methods - Related to Erase

- -
    -
  1. Order-preserving STL associative containers provide the - method -
    -iterator 
    -    erase
    -    (iterator it)
    -
    which takes an iterator, erases the corresponding element, -and returns an iterator to the following element. Also hash-based -STL associative containers provide this method. This seemingly -increases genericity between associative containers, since, - e.g., it is possible to use -
    -typename C::iterator it = c.begin();
    -typename C::iterator e_it = c.end();
    -
    -while(it != e_it)
    -    it = pred(*it)? c.erase(it) : ++it;
    -
    in order to erase from a container object - c all element which match a predicate pred. - However, in a different sense this actually - decreases genericity: an integral implication of - this method is that tree-based associative containers' - memory use is linear in the total number of elements they - store, while hash-based containers' memory use is unbounded - in the total number of elements they store. Assume a - hash-based container is allowed to decrease its size when - an element is erased. Then the elements might be rehashed, - which means that there is no "next" element - it is simply - undefined. Consequently, it is possible to infer from the - fact that STL hash-based containers provide this method - that they cannot downsize when elements are erased - (Performance - Tests::Hash-Based Container Tests quantifies this.) As - a consequence, different code is needed to manipulate - different containers, assuming that memory should be - conserved. pb_ds's non-order preserving - associative containers omit this method. -
  2. - -
  3. All of pb_ds's associative containers include a - conditional-erase method -
    -template<
    -    class Pred>
    -size_type
    -    erase_if
    -    (Pred pred)
    -
    which erases all elements matching a predicate. This is -probably the only way to ensure linear-time multiple-item erase -which can actually downsize a container. -
  4. - -
  5. STL associative containers provide methods for - multiple-item erase of the form -
    -size_type
    -    erase
    -    (It b, 
    -        It e)
    -
    erasing a range of elements given by a pair of iterators. For -tree-based or trie-based containers, this can implemented more -efficiently as a (small) sequence of split and join operations. For -other, unordered, containers, this method isn't much better than an -external loop. Moreover, if c is a hash-based container, -then, e.g., c.erase(c.find(2), c.find(5)) is almost -certain to do something different than erasing all elements whose -keys are between 2 and 5, and is likely to produce other undefined -behavior. -
  6. -
- -

Methods Related to Split and - Join

- -

It is well-known that tree-based and trie-based container - objects can be efficiently split or joined [clrs2001]. Externally splitting - or joining trees is super-linear, and, furthermore, can throw - exceptions. Split and join methods, consequently, seem good - choices for tree-based container methods, especially, since as - noted just before, they are efficient replacements for erasing - sub-sequences. Performance - Tests::Tree-Like-Based Container Tests quantifies this.

- -

Methods Related to Insert

- -

STL associative containers provide methods of the form

-
-template<
-    class It>
-size_type
-    insert
-    (It b,
-        It e);
-
for inserting a range of elements given by a pair of -iterators. At best, this can be implemented as an external loop, -or, even more efficiently, as a join operation (for the case of -tree-based or trie-based containers). Moreover, these methods seem -similar to constructors taking a range given by a pair of -iterators; the constructors, however, are transactional, whereas -the insert methods are not; this is possibly confusing. - -

Functions Related to - Comparison

- -

Associative containers are parametrized by policies - allowing to test key equivalence; e.g. a hash-based - container can do this through its equivalence functor, and a - tree-based container can do this through its comparison - functor. In addition, some STL associative containers have - global function operators, e.g., - operator== and operator<=, - that allow comparing entire associative containers.

- -

In our opinion, these functions are better left out. To - begin with, they do not significantly improve over an external - loop. More importantly, however, they are possibly misleading - - operator==, for example, usually checks for - equivalence, or interchangeability, but the associative - container cannot check for values' equivalence, only keys' - equivalence; also, are two containers considered equivalent if - they store the same values in different order? this is an - arbitrary decision.

- -

Alternative to Multiple Equivalent - Keys

- -

Maps (or sets) allow mapping (or storing) unique-key values. - The STL, however, also supplies associative containers which - map (or store) multiple values with equivalent keys: - std::multimap, std::multiset, - std::tr1::unordered_multimap, and - unordered_multiset. We first discuss how these might - be used, then why we think it is best to avoid them.

- -

Suppose one builds a simple bank-account application that - records for each client (identified by an std::string) - and account-id (marked by an unsigned long) - - the balance in the account (described by a - float). Suppose further that ordering this - information is not useful, so a hash-based container is - preferable to a tree based container. Then one can use

-
-std::tr1::unordered_map<std::pair<std::string, unsigned long>, float, ...>
-
which hashes every combination of client and -account-id. This might work well, except for the fact that it -is now impossible to efficiently list all of the accounts of a -specific client (this would practically require iterating over all -entries). Instead, one can use -
-std::tr1::unordered_multimap<std::pair<std::string, unsigned long>, float, ...>
-
which hashes every client, and decides equivalence -based on client only. This will ensure that all accounts -belonging to a specific user are stored consecutively. - -

Also, suppose one wants an integers' priority queue - (i.e., a container that supports push, - pop, and top operations, the last of which - returns the largest int) that also supports - operations such as find and lower_bound. A - reasonable solution is to build an adapter over - std::set<int>. In this adapter, - e.g., push will just call the tree-based - associative container's insert method; pop - will call its end method, and use it to return the - preceding element (which must be the largest). Then this might - work well, except that the container object cannot hold - multiple instances of the same integer (push(4), - e.g., will be a no-op if 4 is already in the - container object). If multiple keys are necessary, then one - might build the adapter over an - std::multiset<int>.

- -

STL non-unique-mapping containers, then, are - useful when (1) a key can be decomposed in to a primary key and - a secondary key, (2) a key is needed multiple times, or (3) any - combination of (1) and (2).

- -

Figure Non-unique mapping - containers in the STL's design shows how the STL's design - works internally; in this figure nodes shaded equally represent - equivalent-key values. Equivalent keys are stored consecutively - using the properties of the underlying data structure: binary - search trees (Figure Non-unique - mapping containers in the STL's design-A) store - equivalent-key values consecutively (in the sense of an - in-order walk) naturally; collision-chaining hash tables - (Figure Non-unique mapping - containers in the STL's design-B) store equivalent-key - values in the same bucket, the bucket can be arranged so that - equivalent-key values are consecutive.

- -
-
- -
Non-unique mapping containers in the STL's - design.
- -

Put differently, STL non-unique mapping - associative-containers are associative containers that map - primary keys to linked lists that are embedded into the - container. Figure Effect of - embedded lists in STL multimaps shows again the two - containers from Figure Non-unique - mapping containers in the STL's design, this time with the - embedded linked lists of the grayed nodes marked - explicitly.

- -
-
- -
Effect of embedded lists in STL multimaps.
- -

These embedded linked lists have several disadvantages.

- -
    -
  1. The underlying data structure embeds the linked lists - according to its own consideration, which means that the - search path for a value might include several different - equivalent-key values. For example, the search path for the - the black node in either of Figures Non-unique mapping containers in the - STL's design A or B, includes more than a single gray - node.
  2. - -
  3. The links of the linked lists are the underlying - data structures' nodes, which typically are quite structured. - E.g., in the case of tree-based containers (Figure - Effect of embedded lists in STL - multimaps-B), each "link" is actually a node with three - pointers (one to a parent and two to children), and a - relatively-complicated iteration algorithm. The linked lists, - therefore, can take up quite a lot of memory, and iterating - over all values equal to a given key (e.g., through - the return value of the STL's equal_range) can be - expensive.
  4. - -
  5. The primary key is stored multiply; this uses more - memory.
  6. - -
  7. Finally, the interface of this design excludes several - useful underlying data structures. E.g., of all the - unordered self-organizing data structures, practically only - collision-chaining hash tables can (efficiently) guarantee - that equivalent-key values are stored consecutively.
  8. -
- -

The above reasons hold even when the ratio of secondary keys - to primary keys (or average number of identical keys) is small, - but when it is large, there are more severe problems:

- -
    -
  1. The underlying data structures order the links inside - each embedded linked-lists according to their internal - considerations, which effectively means that each of the - links is unordered. Irrespective of the underlying - data structure, searching for a specific value can degrade to - linear complexity.
  2. - -
  3. Similarly to the above point, it is impossible to apply - to the secondary keys considerations that apply to primary - keys. For example, it is not possible to maintain secondary - keys by sorted order.
  4. - -
  5. While the interface "understands" that all equivalent-key - values constitute a distinct list (e.g., through - equal_range), the underlying data structure - typically does not. This means, e.g., that operations - such as erasing from a tree-based container all values whose - keys are equivalent to a a given key can be super-linear in - the size of the tree; this is also true also for several - other operations that target a specific list.
  6. -
- -

In pb_ds, therefore, all associative containers map - (or store) unique-key values. One can (1) map primary keys to - secondary associative-containers (i.e., containers of - secondary keys) or non-associative containers (2) map identical - keys to a size-type representing the number of times they - occur, or (3) any combination of (1) and (2). Instead of - allowing multiple equivalent-key values, pb_ds - supplies associative containers based on underlying - data structures that are suitable as secondary - associative-containers (see Associative-Container - Performance Tests::Observations::Mapping-Semantics - Considerations).

- -

Figures Non-unique mapping - containers in pb_ds A and B show the equivalent - structures in pb_ds's design, to those in Figures - Non-unique mapping containers in - the STL's design A and B, respectively. Each shaded box - represents some size-type or secondary - associative-container.

- -
-
- -
Non-unique mapping containers in the - pb_ds.
- -

In the first example above, then, one would use an - associative container mapping each user to an associative - container which maps each application id to a start time (see - basic_multimap.cc); - in the second example, one would use an associative container - mapping each int to some size-type indicating - the number of times it logically occurs (see basic_multiset.cc).

- -

Associative-Container - Performance Tests::Multimaps quantifies some of these - points, and Associative-Container - Performance Tests::Observations::Mapping-Semantics - Considerations shows some simple calculations.

- -

Associative-Container - Examples::Multimaps shows some simple examples of using - "multimaps".

- -

Design::Associative - Containers::List-Based Containers discusses types of - containers especially suited as secondary - associative-containers.

- -

Priority Queues

- -

Slightly Different - Methods

- -

Priority queues are containers that allow efficiently - inserting values and accessing the maximal value (in the sense - of the container's comparison functor); i.e., their - interface supports push and pop. The STL's - priority queues indeed support these methods, but they support - little else. For algorithmic and software-engineering purposes, - other methods are needed:

- -
    -
  1. Many graph algorithms [clrs2001] require increasing a - value in a priority queue (again, in the sense of the - container's comparison functor), or joining two - priority-queue objects.
  2. - -
  3. It is sometimes necessary to erase an arbitrary value in - a priority queue. For example, consider the select - function for monitoring file descriptors: -
    -int 
    -    select
    -    (int nfds,             
    -        fd_set *readfds,                
    -        fd_set *writefds,
    -        fd_set *errorfds, 
    -        struct timeval *timeout);
    -
    then, as the select manual page [select_man] states: - -

    The nfds argument specifies the range of file - descriptors to be tested. The select() function tests file - descriptors in the range of 0 to nfds-1.

    - -

    It stands to reason, therefore, that we might wish to - maintain a minimal value for nfds, and priority - queues immediately come to mind. Note, though, that when a - socket is closed, the minimal file description might - change; in the absence of an efficient means to erase an - arbitrary value from a priority queue, we might as well - avoid its use altogether.

    - -

    Priority-Queue - Examples::Cross-Referencing shows examples for these - types of operations.

    -
  4. - -
  5. STL containers typically support iterators. It is - somewhat unusual for std::priority_queue to omit - them (see, e.g., [meyers01stl]). One might - ask why do priority queues need to support iterators, since - they are self-organizing containers with a different purpose - than abstracting sequences. There are several reasons: - -
      -
    1. Iterators (even in self-organizing containers) are - useful for many purposes, e.g., cross-referencing - containers, serialization, and debugging code that uses - these containers.
    2. - -
    3. The STL's hash-based containers support iterators, - even though they too are self-organizing containers with - a different purpose than abstracting sequences.
    4. - -
    5. In STL-like containers, it is natural to specify the - interface of operations for modifying a value or erasing - a value (discussed previously) in terms of a iterators. - This is discussed further in Design::Priority - Queues::Iterators. It should be noted that the STL's - containers also use iterators for accessing and - manipulating a specific value. E.g., in hash-based - containers, one checks the existence of a key by - comparing the iterator returned by find to the - iterator returned by end, and not by comparing a - pointer returned by find to NULL.
    6. -
    -
  6. -
- -

Performance - Tests::Priority Queues quantifies some of these points.

- -

More Data - Structures and Traits

- -

There are three main implementations of priority queues: the - first employs a binary heap, typically one which uses a - sequence; the second uses a tree (or forest of trees), which is - typically less structured than an associative container's tree; - the third simply uses an associative container. These are - shown, respectively, in Figures Underlying Priority-Queue - Data-Structures A1 and A2, B, and C.

- -
no image
- -
Underlying Priority-Queue Data-Structures.
- -

No single implementation can completely replace any of the - others. Some have better push and pop - amortized performance, some have better bounded (worst case) - response time than others, some optimize a single method at the - expense of others, etc.. In general the "best" - implementation is dictated by the problem (see Performance - Tests::Priority Queues::Observations).

- -

As with associative containers (see Associative Containers::Traits for - Underlying Data-Structures), the more implementations - co-exist, the more necessary a traits mechanism is for handling - generic containers safely and efficiently. This is especially - important for priority queues, since the invalidation - guarantees of one of the most useful data structures - binary - heaps - is markedly different than those of most of the - others.

- -

Design::Priority - Queues::Traits discusses this further.

- -

Binary Heap - Implementation

- -

Binary heaps are one of the most useful underlying - data structures for priority queues. They are very efficient in - terms of memory (since they don't require per-value structure - metadata), and have the best amortized push and - pop performance for primitive types (e.g., - ints).

- -

The STL's priority_queue implements this data - structure as an adapter over a sequence, typically - std::vector or std::deque, which correspond - to Figures Underlying - Priority-Queue Data-Structures A1 and A2, respectively.

- -

This is indeed an elegant example of the adapter concept and - the algorithm/container/iterator decomposition (see [nelson96stlpql]). There are - possibly reasons, however, why a binary-heap priority queue - would be better implemented as a container instead of a - sequence adapter:

- -
    -
  1. std::priority_queue cannot erase values from its - adapted sequence (irrespective of the sequence type). This - means that the memory use of an std::priority_queue - object is always proportional to the maximal number of values - it ever contained, and not to the number of values that it - currently contains (see Priority Queue - Text pop Memory Use Test); this implementation - of binary heaps acts very differently than other underlying - data structures (e.g., pairing heaps).
  2. - -
  3. Some combinations of adapted sequences and value types - are very inefficient or just don't make sense. If one uses - std::priority_queue<std::vector<std::string> - > >, for example, then not only will each - operation perform a logarithmic number of - std::string assignments, but, furthermore, any - operation (including pop) can render the container - useless due to exceptions. Conversely, if one uses - std::priority_queue<std::deque<int> > - >, then each operation uses incurs a logarithmic - number of indirect accesses (through pointers) unnecessarily. - It might be better to let the container make a conservative - deduction whether to use the structure in Figures Underlying Priority-Queue - Data-Structures A1 or A2.
  4. - -
  5. There does not seem to be a systematic way to determine - what exactly can be done with the priority queue. - -
      -
    1. If p is a priority queue adapting an - std::vector, then it is possible to iterate over - all values by using &p.top() and - &p.top() + p.size(), but this will not work - if p is adapting an std::deque; in any - case, one cannot use p.begin() and - p.end(). If a different sequence is adapted, it - is even more difficult to determine what can be - done.
    2. - -
    3. If p is a priority queue adapting an - std::deque, then the reference return by - p.top() will remain valid until it is popped, - but if p adapts an std::vector, the - next push will invalidate it. If a different - sequence is adapted, it is even more difficult to - determine what can be done.
    4. -
    -
  6. - -
  7. Sequence-based binary heaps can still implement - linear-time erase and modify operations. - This means that if one needs, e.g., to erase a small - (say logarithmic) number of values, then one might still - choose this underlying data structure. Using - std::priority_queue, however, this will generally - change the order of growth of the entire sequence of - operations.
  8. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/move_to_front_lu_policy.html b/libstdc++-v3/doc/html/ext/pb_ds/move_to_front_lu_policy.html deleted file mode 100644 index 4ed4d40bd061..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/move_to_front_lu_policy.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - move_to_front_lu_policy Interface - - - - -
-

move_to_front_lu_policy Interface

- -

A list-update policy that unconditionally moves elements to - the front of the list.

- -

Defined in: list_update_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Allocator 
-
-
-

Allocator type.

- -

This is used only for definitions, e.g., the size - type.

-
-
-std::allocator<char>
-
-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-allocator
-
-
-
-Allocator
-
-
-

Allocator - type.

-
- -

Metadata-Type - Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-null_lu_metadata
-
-
-

Metadata on which this functor operates.

- -

In this case, none.

-
-
-metadata_reference
-
-
-
-typename Allocator::template rebind<  
-    metadata_type>::other::reference
-
-
-

Reference to metadata on which this functor - operates.

-
- -

Public Methods

- -

Metadata Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-metadata_type
-  operator()
-  () const
-
-
-

Creates a metadata object.

-
-
-inline bool 
-  operator()
-  (metadata_reference r_metadata) const
-
-
-

Decides whether a metadata object should be moved to - the front of the list.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large.html b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large.html deleted file mode 100644 index 74d33a32606d..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - -"Multimap" Text Find Timing Test with Large Average - Secondary-Key to Primary-Key Ratio - - - -
-

"Multimap" Text Find Timing Test with Large Average - Secondary-Key to Primary-Key Ratio

-

Description

-

This test inserts a number of pairs into a container. The - first item of each pair is a string from an arbitrary text - [wickland96thirty], and - the second is a uniform i.i.d.integer. The container is a - "multimap" - it considers the first member of each pair as a - primary key, and the second member of each pair as a secondary - key (see Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys). There - are 100 distinct primary keys, and the ratio of secondary keys - to primary keys ranges to about 20.

-

The test measures the average find-time as a function of the - number of values inserted. For pb_ds's containers, it - finds the secondary key from a container obtained from finding - a primary key. For the native multimaps, it searches a range - obtained using std::equal_range on a primary key.

-

(The test was executed with multimap_text_find_timing_test - thirty_years_among_the_dead_preproc.txt 100 3 4 4)

-

Purpose

-

The test checks the find-time scalability of different - "multimap" designs (see Motivation::Associative - Containers::Mapping Semantics).

-

Results

-

Figures NTG, NTM, and - NTL show the results for "multimaps" which - use a tree-based container for primary keys, in g++, msvc++, and - local, - respectively; Figures NHG, NHM, and NHL show the results for - "multimaps" which use a hash-based container for primary keys, - in g++, - msvc++, - and local, - respectively.

-
-
-
-
-
no image
NTG: Native and primary tree-based multimap types find timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_mmap- -std::multimap
  2. -
  3. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  4. -
  5. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: Native and primary tree-based multimap types find timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_mmap- -std::multimap
  2. -
  3. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  4. -
  5. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and primary tree-based multimap types find timing test - local
-
-
-
-
-
-
-
-
-
no image
NHG: Native and primary hash-based multimap types find timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_mmap- -__gnucxx::hash_multimap
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Native and primary hash-based multimap types find timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_mmap- -stdext::hash_multimap
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHL: Native and primary hash-based multimap types find timing test - local
-
-
-
-
-

Observations

-

See Observations::Mapping-Semantics - Considerations.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png deleted file mode 100644 index 03a62f52b0436666ab6829c36e48af3cc6321566..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6323 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 wT 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png deleted file mode 100644 index 4462d289afd0d90b8dabc9c453fcb24cd628d7ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6490 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 P`+?jtxrx$qeEPot^Ig^? diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png deleted file mode 100644 index 20320953e0d7f7d28f7a12161cb6f9d24bb73b58..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6204 zc-qBSc{G&&+nyFl!q?VBm-b&WF2D}CMi)N!Zem-XKW>9pCKV; z>`SsFWM9TMcAocn{Lb$^zu!6U`~LBs_nh~0%z50;=f1D|x~}{4%$%8UBST%bWBkWp zFc_QOHLcq)*g*sgcA(Q6=Ljuqy8VN(AVQ3-@O@pBUD3^$Y5z#Or5k{oJhyYYdL&9ii7>x*{(O@(HM1lcG z7=VTWL>NGW0RRLHL4#OeF_;ZNeV~O#B8f;O4T%JxwqS%tBhf@8nubIJ5DRdVh(;2L zNFohM1RzpiE)9*O5s@?+k_Lbr!BQlEMgl}6KtlomL>bZmk_K6Vv;ar})Cq(JvA|*g z5(LHIBBIeWG#Y^Pfo;KvNJJB9Xd(c~1zCWbG$NWtL(>3IJxB`7MFT`MKtlrnWCmmw zSPj|%>IWciAW0w?NE&1bKvqGGL2M8j!~!7aplvV)7mY{+AR|G2U|TSv(TFqv^c9o~ zvH&-U0F4L$kj>Ck&`>U9Gyu5{d54BdAv*wQ2#`WFganZWpqW5C&=4>L4L~D;ve8f< zXaV5FKqEnYU|TSv0RXUn8i4(I1N##N_Gbp{PX*Zb9oTmk*!K?DcL&(l59})h_B8O(AdXyWYlbXm6~o zrvpse*ywLvCpRx|FFQ|XckjOyF3UD! z4*XM0b~gI!uCA7|Yc=rKkN=N0%4*@UuC>IiOliK-n#cHrsyrTyPb(}XT zT@W=m(6d8u>Www{bbL(j$m+eQ2HaB0=H5J2=jvm&_R~p2JP5j!$n@DR;xus(D6<PT684ryaIwkH zw=_x!8p>VZW^9@*s@aW=v&T%Ap|l}MDvFd)`u>ezr923qm_ujTqS)c8?IioL5wbUh zTUtSMWQ2TJK6dXN+ucPb)ESut104Q)3bUO?t#_?y^gBM}@ENI_A25!D-$8sFt730? zxdT<+P6}0rNll52_>m9e@1rKN(BVfz5L~||sHM}>H|~gMOV>ZX6{K|%7u{ZgK;JK|fqzn;)O}hDXNlOBR#7OPHz-XiIlGE`+e(&- zxba--ApaWEBN*!HS0rxpGUeGc;-_yY!krg1Dq)=|MRGixEOm$^aC7z9*=zyuX8%fk zV2!`Ie0vfipMbeIzafo?Vc1sZD>*k3#tW7y;J*gWGIho zLJpIuVE!H9chg{g-2XU~iE#4VLy?w(ZVu&`BCZpN8+hE!y?4s9y_qk-v%*Vek70y6 z3ixzp#}rLR?rOO097A~$g3b=xxMoiWY)=|(wJH-Bnr}mH#ORZE4s9&!#%xB4N1Bj> zX7Oc-LHwAlj{tqSUiImhppz}v{X3#+Dx9Sr#YwF9#3)>GYk2hDfd1qq=}OEiKAF?k zcZiIz_nmsz`Q&C^QRQ|_J2bu1tyyZdgj2-5Tr|kj*E`><>t$k_wx_1bcZ<~?y@=%& zj2;rJ=U>wvKGE5O2CU^ecm)hY_#Qg>Zi5X}+|a+S26`=g)tEf@AV4;u{^+O@d*N|H zufwSwk`ra9NH&U2YJz_%n^y?@D~efb+S*f-PT%&tJJ%sKZ-CQUi|2XJN5~bvyJs!O zq9J#FU2iompx}#~k!H?IA!8lPv{FLhE2)|5e+){7C8IadZ*QKk`0{ITY~v0JKvv(_ zyUeD&{6Qjx^oR4O%*HR_Stp# z<=O8pi}hbEs61(Nok$*55c)}xENGFt&OKi`Ag3S{$SO^!cTrTq1!a~trR%BrP~y|0 zR~_(rA43C)@zwl;l)M`gUMugbOpAlIihtF-`zv0<^$am+q4Dfir4W`SL?;J&*N8c4L(}^V>E@Bmc>2+-~wq{$yF1=I^Z9G7xNo%T+3H1SnEO z9d7#}ta(4Q<#uTGJ)fVU&RkwzvFp_M<|Mg6zG1e`yhnTXEJG(22ul108A*%y@MN)i zi?z&SF2fYsZ>k=2QEq^D@W4lKZ>#^z_(nF#bmm^+!|o!cPmfWps~(23f$#5Ifx#pN zGa@nLG4{Xxh;#oASBsW^E?Pb>E%ub@vCwx;)Xuc?FHLNq%fNIw3-Xdr(pi6XJwuK~ z1L`(W1b3uO#aliL+nq0}vbr{M(-8aY794wlokwoVIF|5yAzpW7hdU~<>tVJey0VK2 zIa~Ss^Cs811fhz=Y;op`Z3yJ&F(&xZc+}h=s*sN35%c62YKhV~^X`C2ieJx@-ePjMebXmS^pR->FJKhjMl_pU=k&+``7cBCB(pb8juZ-blN{ zG2|CDacS2=o_tDe`^TRH&3bt;zENBMSk3so0iz)ZNZ31-)Qk8xJ@NDFK|m^ zuDTZvmcjXEtcT)`;-Widl(VgVQ#}@ZgVN;|$4^qve2mA}`z?;kyDb#u*AfEV#SWu< zYQWT=k3+>+$Y*NeZtRSune7_SV&YljOfQucQ#~IZ$^22$jo8w#4I&jWTWy9bsj8oU zmU``!F~<6Lv#{hm<#>v1HxSq`O_?4NOQF$2FEheD#&!8O&wbu)mY_^CcCGt)Ig8eq z%)Vtrn&sNvH68lhoTA`PyAyn3Vk*=)BXmQ<#n9C(WtH2+SgmZ?F-SPIwhGOWVAOq&(<+>e^mFZvS8}d|XOCf=*I+#@apqb*AE1lg`eNLb_6* z-)>czRnE7>#hSG&U=;V!7Q?`&`$b1m@_<4^bFAsxM|Tyt$45#LXzdtVXVeZ)da|TY z<8VYGAplqVCjT&V*PtB#oAt=S&9lezPRXuF?mg-bD6faxH_>Lca$aU5S8Ey3Ys8DqOD=MxjBEybE_z z;gav4O-PH_s9fsT{bBldaqRt`?Tyou5y1m<4snOfn>izYV6q%} zf3`W3W@7H3e>MK=8Jsgl^-!_ZRrj#Uk3ZL#%nNO0ZPqakVGTE4#Ky@x+Lwn7k6|*K zn+cb`Sn1BLV57$^62LUcb90m_KQB_;lA?Wi@S=Z3SM%}Ar%mP*nM>;*PUAbUhe(un zI`IQ{x6|B?bkDOE59%q{$WKilTZ$Oxa@dvSurH7My%^b=&miL$6o3dy2;z>zUX&X{#?ULT{)80HdnpzkT`3?pT3n31`6+k zem3jm4Mb&I=olutO7%I2fk+tAUdL1Wd!Ek1+wg@Ph|8r|Ix3r<|LVUZR$JVw)qSw#z6ty$uf9hOLE1t6P5y$Awb=<7 zJq5C*kH863|KwGC>2>q=GpqYHJpBM@;Nfd51MscN4;*dG|MbO5FoCyvno^@$g7{ll zc28sbprr)H$?bIReb%GD4YsAotXyB0hFGaj&ZbgW|LvPau&@38Ys68x_%_&I;FWGX zMZzg2Wa;}df$4^)#A);3;`e&&^`aMVoselt^|cSmXM*EP&BPhXXO^%+EvbsD2j|yz zcN|~%on+D68FKW>VBfu3DXE$))YmThf?}ZDqZ^I0am5%ehjbIUU-deAC(;{-p+VR) zl;_^(;iUk-6#u5Ipe9^A-*)guC0*np>J@VZ<|HA$mZ@L%Rexkq64^+xS9l3K{H=H8 zz`}}HdtvQM!WL1n`rB|Ix8*$5Q=P}=q>_*o;DBk2*{F;{%i2tCAuO}G22uo*6riN( zrHU!ejLh=O)dN9>X{f*O>vtqiXI>+mXi2!e5GB|vIAkQXgr#R3MER0Gs_wb|h54KH zjrgnWF8Bu*_!r!VhZCMlWqy6bJ(`t*>)BM!5>{qhPNX{y+fHYmu$#C?A(m|^$Gl|t zCi8u)PRqZe_hs)1GOQ)DW4q`9YITE!Jhxcjka{XgL|KTDlDa|{K>uzq5dePMp9jn3t$QYpZ{Cm z93KmEk)=?_JCqTbn*UjdrG=HtS0UwZ2_Je zuHKQpi>8IqwS=|snZC@mat{tE2V^@^3WC6eE%Q97Bqi2eC5)_MUcp9MQLe)=j0czT}ZX?pR>oSE$o z$WRPxP_k6t8G?_@xG#i!!zgaa$31bX3bMQ}ytnYl1LGu`+i+oY;86GqCs-IfjPGdH z!YH2gm$AhYHYyP!WK|2cel}`fxP@y*JP*j8<(A+YMn#Pc6P;5RJ=t@Qb%Orn|M>R; zwV8Gm6(KUKnxPwKHt6inqBQUE+C>6b|K5mdh;g}rVnXTf^I!~dlgKh8O2SMhjS zx+Fb5s`@U;S~21Y^AeR%b78%;deJVI6d|KKq^xtvPx*naXWSYUt`;v&9*og7CesRd z$b$r3Q?hTztzGQGv!VV%oldb%flC(~_iPA_pM1`kIa3OwcJ7i~L|ZzFJ?H2c2&6b} zA}u|XKF6vSPwKzsRhBQX9bkUCtv~u|Hcj?SM2MqNm` z34*zwN-WqtWP40nBD>8kEC7B(-tU7U{Z9Z&WX;Dn%Il`Re z+&net2SdGhV|N&xo8^@qd^`l>qg%Z3b@RM>BxTXy6hd@t*S(w5@$Pvs7rZn;+R#8Sa#lmk^Hp5J3q6@mG!=J@8P9@wGZP^f4vxvSC>ID+tl`5CR zM^LRsE#F5RM13|qLtS*(5vM-Z5sbT~J$-+M36hi2W1{P*I&=SvCuy8VGuxz8qJ0-< zvy5cD?454&)|z!C=FnzLih0=dR0KjX46&8V^ft-{OSiFNAt$98*C|j;Dv~e1GA_-c zVA}M95sp%!Pj`n36Dwrx*1z9jMzvm^$ - - - - -"Multimap" Text Find Timing Test with Small Average - Secondary-Key to Primary-Key Ratio - - - -
-

"Multimap" Text Find Timing Test with Small Average - Secondary-Key to Primary-Key Ratio

-

Description

-

This test inserts a number of pairs into a container. The - first item of each pair is a string from an arbitrary text - [wickland96thirty], and - the second is a uniform i.i.d.integer. The container is a - "multimap" - it considers the first member of each pair as a - primary key, and the second member of each pair as a secondary - key (see Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys). There - are 400 distinct primary keys, and the ratio of secondary keys - to primary keys ranges from 1 to 5.

-

The test measures the average find-time as a function of the - number of values inserted. For pb_ds's containers, it - finds the secondary key from a container obtained from finding - a primary key. For the native multimaps, it searches a range - obtained using std::equal_range on a primary key.

-

(The test was executed with multimap_text_find_timing_test - thirty_years_among_the_dead_preproc.txt 400 1 1 6)

-

Purpose

-

The test checks the find-time scalability of different - "multimap" designs (see Motivation::Associative - Containers::Mapping Semantics).

-

Results

-

Figures NTG, NTM, and - NTL show the results for "multimaps" which - use a tree-based container for primary keys, in g++, msvc++, and - local, - respectively; Figures NHG, NHM, and NHL show the results for - "multimaps" which use a hash-based container for primary keys, - in g++, - msvc++, - and local, - respectively.

-
-
-
-
-
no image
NTG: NHG Native and primary tree-based multimap types find timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_mmap- -std::multimap
  2. -
  3. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  4. -
  5. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: NHM Native and primary tree-based multimap types find timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_mmap- -std::multimap
  2. -
  3. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  4. -
  5. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and primary tree-based multimap types find timing test - local
-
-
-
-
-
-
-
-
-
no image
NHG: Native and primary hash-based multimap types find timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_mmap- -__gnucxx::hash_multimap
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Native and primary hash-based multimap types find timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_mmap- -stdext::hash_multimap
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHL: Native and primary hash-based multimap types find timing test - local
-
-
-
-
-

Observations

-

See Observations::Mapping-Semantics - Considerations.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png deleted file mode 100644 index 60e850937a9eebfeeab0765a360102d6a75d7879..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6237 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 YkCsvF9&D^iC8M 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 Lpi!f4AN~IU1_z=! diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png deleted file mode 100644 index 11aa9e07b6a0dcc4ea8452390a2e2a8e479432a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6268 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 Lx~lI~tONfG)agg} diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png deleted file mode 100644 index f54369b15b4a147f3348d9407344d6d670abe2c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6064 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png deleted file mode 100644 index 123c3a648b80bd5e0376a54cb41aa87be12c2b00..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 26702 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 H9AEwi2G&@# diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png deleted file mode 100644 index 035fd9389b60423fdcd7dd07f53cfbb3ba784d99..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6012 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 A5&!@I diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html deleted file mode 100644 index 4affbf44054f..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - -Hash-List "Multimap" Text Memory Use Test with Large - Average Secondary-Key to Primary-Key Ratio - - - -
-

"Multimap" Text Memory Use Test with Large Average - Secondary-Key to Primary-Key Ratio

-

Description

-

This test inserts a number of pairs into a container. The - first item of each pair is a string from an arbitrary text - [wickland96thirty], and - the second is a uniform i.i.d.integer. The container is a - "multimap" - it considers the first member of each pair as a - primary key, and the second member of each pair as a secondary - key (see Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys). There - are 100 distinct primary keys. The test measures the memory use - as a function of the number of values inserted.

-

(The test was executed with multimap_text_insert_mem_usage_test - thirty_years_among_the_dead_preproc.txt 100 200 2100 100)

-

Purpose

-

The test checks the memory scalability of different - "multimap" designs (see Motivation::Associative - Containers::Mapping Semantics).

-

Results

-

Figures NTG, NTM, and - NTL show the results for "multimaps" which - use a tree-based container for primary keys, in g++, msvc++, and - local, - respectively; Figures NHG, NHM, and NHL show the results for - "multimaps" which use a hash-based container for primary keys, - in g++, - msvc++, - and local, - respectively.

-
-
-
-
-
no image
NTG: NHG Native and primary tree-based multimap types mem usage test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_mmap- -std::multimap
  4. -
  5. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: NHM Native and primary tree-based multimap types mem usage test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_mmap- -std::multimap
  2. -
  3. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and primary tree-based multimap types mem usage test - local
-
-
-
-
-
-
-
-
-
no image
NHG: Native and primary hash-based multimap types mem usage test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_hash_mmap- -__gnucxx::hash_multimap
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Native and primary hash-based multimap types mem usage test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_mmap- -stdext::hash_multimap
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHL: Native and primary hash-based multimap types mem usage test - local
-
-
-
-
-

Observations

-

See Observations::Mapping-Semantics - Considerations.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png deleted file mode 100644 index 51a3f8d61c1ee4bdeaacb30d74eedabe3a3b4f63..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6835 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 l|GRwV|6v#OzulC1PN|U%NtlD)UqYQ4RqP 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 fJ#^#0jtYWqwQ)TSm{b*h`xdzz{>`XU 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 lnp{b`bf6OEe<_&|5FUNdtau8s3O!ZUP - - - - -Hash-List "Multimap" Text Memory Use Test with Small - Average Secondary-Key to Primary-Key Ratio - - - -
-

"Multimap" Text Memory Use Test with Small Average - Secondary-Key to Primary-Key Ratio

-

Description

-

This test inserts a number of pairs into a container. The - first item of each pair is a string from an arbitrary text - [wickland96thirty], and - the second is a uniform i.i.d.integer. The container is a - "multimap" - it considers the first member of each pair as a - primary key, and the second member of each pair as a secondary - key (see Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys). There - are 100 distinct primary keys, and the ratio of secondary keys - to primary keys ranges to about 20.

-

The test measures the memory use as a function of the number - of values inserted.

-

(The test was executed with multimap_text_insert_mem_usage_test - thirty_years_among_the_dead_preproc.txt 100 3 4 4)

-

Purpose

-

The test checks the memory scalability of different - "multimap" designs (see Motivation::Associative - Containers::Mapping Semantics).

-

Results

-

Figures NTG, NTM, and - NTL show the results for "multimaps" which - use a tree-based container for primary keys, in g++, msvc++, and - local, - respectively; Figures NHG, NHM, and NHL show the results for - "multimaps" which use a hash-based container for primary keys, - in g++, - msvc++, - and local, - respectively.

-
-
-
-
-
no image
NTG: Native and primary tree-based multimap types mem usage test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_mmap- -std::multimap
  4. -
  5. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: NHM Native and primary tree-based multimap types mem usage test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_mmap- -std::multimap
  4. -
  5. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and primary tree-based multimap types mem usage test - local
-
-
-
-
-
-
-
-
-
no image
NHG: Native and primary hash-based multimap types mem usage test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_hash_mmap- -__gnucxx::hash_multimap
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Native and primary hash-based multimap types mem usage test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_hash_mmap- -stdext::hash_multimap
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHL: Native and primary hash-based multimap types mem usage test - local
-
-
-
-
-

Observations

-

See Observations::Mapping-Semantics - Considerations.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png deleted file mode 100644 index d3eba9da47e21c1b2a8c24da7415846a0e43115a..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6449 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png deleted file mode 100644 index 1828896ee5f3017d02890349129b8e7a605f3636..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6570 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png deleted file mode 100644 index 9334bc35bc7318ea2d7405fcb33edc7f9781de7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6419 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png deleted file mode 100644 index 9bacb35ce545c0915825c622326ac994b0cf52ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 29258 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 QfcOW!ZE~wZ$LZOB0}vkC*Z=?k diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png deleted file mode 100644 index 2f20e57e555bb6e79dfa3a905d944bbf48613bff..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6569 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 R+LQUjP#?z~le` diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large.html b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large.html deleted file mode 100644 index b9a2d9952948..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - -"Multimap" Text Insert Timing Test with Large Average - Secondary-Key to Primary-Key Ratio - - - -
-

"Multimap" Text Insert Timing Test with Large Average - Secondary-Key to Primary-Key Ratio

-

Description

-

This test inserts a number of pairs into a container. The - first item of each pair is a string from an arbitrary text - [wickland96thirty], and - the second is a uniform i.i.d.integer. The container is a - "multimap" - it considers the first member of each pair as a - primary key, and the second member of each pair as a secondary - key (see Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys). There - are 100 distinct primary keys, and the ratio of secondary keys - to primary keys ranges to about 20.

-

The test measures the memory use as a function of the number - of values inserted.

-

(The test was executed with multimap_text_insert_mem_usage_test - thirty_years_among_the_dead_preproc.txt 400 1 6 6)

-

Purpose

-

The test checks the insert-time scalability of different - "multimap" designs (see Motivation::Associative - Containers::Mapping Semantics).

-

Results

-

Figures NTG, NTM, and - NTL show the results for "multimaps" which - use a tree-based container for primary keys, in g++, msvc++, and - local, - respectively; Figures NHG, NHM, and NHL show the results for - "multimaps" which use a hash-based container for primary keys, - in g++, - msvc++, - and local, - respectively.

-
-
-
-
-
no image
NTG: Native and primary tree-based multimap types insert timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_mmap- -std::multimap
  2. -
  3. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: NHM Native and primary tree-based multimap types insert timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_mmap- -std::multimap
  4. -
  5. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and primary tree-based multimap types insert timing test - local
-
-
-
-
-
-
-
-
-
no image
NHG: Native and primary hash-based multimap types insert timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_mmap- -__gnucxx::hash_multimap
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Native and primary hash-based multimap types insert timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_mmap- -stdext::hash_multimap
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHL: Native and primary hash-based multimap types insert timing test - local
-
-
-
-
-

Observations

-

See Observations::Mapping-Semantics - Considerations.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png deleted file mode 100644 index 55b0bf46732a19cf75a54c848fbb3fa84392989a..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6380 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 od?`um=nRK|vsR2!sNG0Bj2egTPP_ z7#;$nKwtoS5(R^xP!JRzf}%iB0DCPS2En5scsvA8f#3o5RtgM4K|v^Z2!#Tn0AM5t z0D}N12!MwG6bJyY1G7VevB1sXYJi=GJy0+h9tNYpU;sNUXrWLr6ds16z)%1i1vrUE z!SHw(o&v)IY*64@3JONS!zdIO1pqOETVVhS2H;@;1qJ|Y$ZQTEXb>d`3t%%~X97cm zvB1p$n-JRu2Ofo@pilstAD9-j@OTuSg2DrAx*!U0l7dH3C@2a5vIjwdYf%6m1yE1` zz!rlo7PuRf1LO~|wP8~NgMpwylmJ^Qc49C#7#fTPu$5y^gElxQcs#%s666P_1uY5% zPXRz(LAoFca1swt@BqM;nOzkWdo5dNfUP=PI~02>TMmF-1U5qyI}#f-z^(}!2Z|k- z9U5Slh`k!c&chx6STRsYkRO;9v?u@o?4Aw4ZoPrsiUPYe19qzd?CK8eDhupt2kfc? z?D7Y883MZ;fL)ZpE)HNf6R;Z#*j)|$ZU38weE>!bJaD=jSb9Mq+{f78J)MI=EYK<8 zt#`-U%njx3XX|MX(K9oZ)OT?6^7gv#>FDk)dHJHU!Ue@7-}Dm@h=8e~t~SCyZ6W=4 zNw(y1Ee76cz9|U&xT^7+qPJ9!BEAnjx-E14_-W?p(;2y%!Sq}LH^lrgRB{heYcDBy zKV}c-=H6q=98x3P244kV2LC%J+@Cv}v!(YU;&t)OL%#nsoH#jcyxOReFHVpdtI$bm!Iv)AccXwIh{smVU| zQ}*+#0UNvpf5t$8!~LN+`tOd9DtX==GN^Q#W4GI&TKV;>q@Q{MAMyE?aM&oM~yzhv}usH$g}Z zi#E9*R4=`&#I6rp(;yN%E2T`M{ei_}+yndml|EuVvJ+-q86;l7 zo!HnOa*}S2RZKZ(k=vhCQxg;rk+gbe@t#JH%HAU~63WbD)lcE;X8A2&qqCirX30PN zT7rxu&Pljzb^6siOb(2~QT?m-DLX4ojB{$yTZ)~-=dY!bqOAMY>ZhC>?R^hhy|F{K zxbbiji7)yDm&^RIJ`ZFi`H`L-FG|~tI83JcTyIWM z?oUAh5?|cfAMKat-y-4SUFpoQp-lnOMB8>tP+&>=yQQQgvl%tIRqx{qXH%t0w${0q zsqotyYGI=;*-A6{(Sxg9xn0@}965=4s(8~@2{xmrx%UyFc3Q=0*`ngx2RbT|$9vJ* z{ZD26xQkC3pG0W##~hMN|29#mn_gJOQ)9kzWbm@wMr-AJMS{#ke47-H@T-#5OXy6| zt9J{iWRqCWxHEQqy;iKYz9Kv1s>>;B7c$_=Z(Td8B;@7IGFPB&RpZh7)_!>jqEt04 ze}A~?vi8VN)LHye{-Dcpew^oTw@2c`=JC+2FPwUc1Y{ge(ef<=s|g_A1=d>#YExP zF^OqMsKxADQ1jZ+T$cW&-NS!fpPQMQxbK5iW;^3+k;de{DJ$b z@9MWORX>vapHQEUC|aLxUiH%S&8exX?l1OLz41~;wrtS1-~Bzs*6Djd*LKta#O=zI~(?v3n7!mqvT=5GU<$QJHE&12ksZBJTbSmD=Dcht^>@{p&?UqFKz9^ zqRICw?v+;YbbX|>{yC)Lm2kzS97Ym(Yca?&T=mk+Xrgzx$9mRjMxaZ+3~g+=D>GNP zhHOZb5wafppfn!o@I2C8gJR?96BP5o@vWJc;)(54@7B$gT15BzJ>l3QhigfSLvDNeCJb=sISkKTawR7#SzD#~2hzaub9YZy9Gcm{5GbR7dupO~fD+pMMkB3K1%liA|Pos-4fz+_n$MmF0>l=bx^-Hy3GHgF^m z1b$u)XQE1OyMbKZJ7ka{`BY4f-oU5oK2L7EF%l?8m$rr-q&&NA+?8$REWrdjYYo(i z6Fp75FlY5uWMkK!VVxD>XyPb0(HX4sL(FrlLrB3-Z)2_~KYE_oT50?T>Fd>hy(8!} zkdBB=@5x&aoz^Nd`wXpxmp{;y7QSX9yaswg9l8Xw_9bMQAm7bEacMC{UAa)*gL1m5 z;HKQ;0?b=Mj|{+GR!s`7X_)(P2EGTs85h}zwQX}n$*ohpC->zWT@v1CU>+SElyZ-2 z#B#cx!`6u0`6`HsHLZZoY@fo3M{#m=aaiaDpeUI5uj;kEvY{9D3a?5h3&ejEr_f_; zbcMWQe`J8TX2}EH<K~kUonxgyarcL3f+D$8g5!%v$o@k~ zvInA8&eV-WKJCX|tjzg48Fn^{%r$z7QVDlo z9UnyHdm%KP!T9`oa;ga*o=`~bc=|+}2A)ywGWm*JkT&l`odt06mG+k0T# zZR+iK)%houFU{zRKImu||F}axKM`x_o0)x9=NetU$>;L*QDcJHO*iPr`m4tICL3k6 z4{Kd-B?uXBQ6k31ZyG%(esLnjGoG-5D}r0iOT$5K#z(#(tA)x}}yNrr%B_lH;s znsj~qB>e@8Sa`PABSP`jWKhtzB&)QI#qZJ>w7CsYMuW(il0&FX(*Nm9`1Y_o^|vhM zeV9+gGROYhRK7n*2$Rw|QrF2#DT1&5hrdY6bEd$Btj-!6pKCUzXA5}4W6qfgy(XDj zox{ABxErp0F7%Co$P?(=HQ+zbk59M5b7lpQD_-;kM@N>mn{0H=vS3i!x8a5)R<+v> zTnN{vP@z?|Cy?exlRl#`IsJq*9d?TJig#bfFKH12IjM-6)P50bTyO z5Ahdv3apDB`|^z~xl%bEqI)E)gzmZW(lcb{s{ES|)X59uHXfoAq{JWX;fy~PM)M;` z|Ivu0`K35Mtk<|*wUq7=C!~| zDaEY0Y=!i;BaOo)aD^X>*Jyr^sQ9@NE723GqW5WuiCR@Ljl=oRr*$?viZF1*?8TG8 z+~Z3DaP8NF`r}KaOyPF*Io&TY?Mbs1*KZh2tceugZ_&MM(}%qwecuA*J4j@7rpWSp zgd-Z#yKkYDjZ@zlf84CYgb^Koy^0tiV-=zuk)&*_nM@X~GUku^{*Q?)bcs$vw(GE$ zx{ZY#(a6Jzm3R(D8BVaR^w)H3*-v_QVSJMZ6GP-=LIZ}ZSb@=@D|y_32P=A+8Wo3# z1hssMsZp{ppLb{a_Drv|7;Yy1Bv_u{61FxTTSu$ZZr7Q{bqcCq z(Q^;Je)ZxTAfKixeEjH)hY{iHEApJ-@`T7d?YVG5?^w-S`UeSlc9f_k3|YH0;c0d1X!gqvqA12;K)(Q2X)s{pdqTXKn`QbzZ*Q zAS%=I?dj51Ck=rQUskwbe*Fh&QzFV$_|_Z$Jf-tXI`eQL8D$3jY=+Zs-S+x|4FT59 zqNt2dnyS1Q4S|dNq@yxv8xY}~jMz>t;ao6Q??H|s_PwqK<~Q>fg!yl-g_qNxK8CLG z4{BCIp}BFJx9yq>FJj(jnr#mrLu)7e!0ldzbvxYK)<4fWBd3?@G)&YbAZ33)M}?%~ zUr*P3Jyi^qv~^*Hu5*;S`;-r;-)acbf*@zZY1S`~yjU7a7DRAvTmSc#Z73hcTnXWd z$Ux=Gil0>1T2*fjP%mPqOpDOJEd@du_kR$&5+ZlyXv{}r8&he*SZu;~?mS)L7|Qt^ znqXE8ym2@*{IXfNEutIU%+b$tP68*GF;UK2zggwmd?1d?aBRsYn!rW0TSJ#Dryc(W zUPzaIENZg`^Q&JQWlh=oU<%vGp9BqzLy7j|OFJEMU!H%$UK~6+s2Vkh%KDj91a=0h zwewYpPcWj&N{%~gu)PMyjdbQi|8hd|Vm%)FK1sljFNJMS;KWz3+6S^|s=sl+uEgs0 z>GL%VH>B&|kswBjYyTxiyt{XSB)PMwIZ+Y0rYdT|9|~|h_C+4Y`PGYUwOZa$d%mDP zJdJ+>W&b=sl*wE0nfKT4Ki|30O1INm+mJs9FAE;gc8ZsSzLgp(F8M~WUdc2Cb+?8q ziw=uXg3r@0mNlDey8VukthuL+6f5h(HQy*;zH|HC&N!USaWyCe`bp1UV-^TgsPsd~ zfy%z-UDLWt>@+l$2KD8{R$K&qo+|#lpk-O1iM<#>=dDBzh z#`H{7-{Yst0V&MrPd70@?$73PZQOZMAL|P(@~qB)eLKE;lt3o4tbd+f%Xz4=&p9q5 zraU9eWo*Yafar0-ESJ?zc$UYc`8AaCWEQmp9Z{pxYn- zI42$)QF+RG$|T^&`PSn~*nN5Gp3k#{X&wWa=3CDy}hajPMLlp3fgLh}QR;l&Ap zi0Ap&&cijGduBYt@T#Ajerc6Sf|Fg797y4>y`z}6UwK^&x<;k((2JVXRh#7;4reii zSj6~#FYg#B4NQ%dgv+<#Z6^Hs!{wYH)=uPYnS3*>nxpZ)nb}v3InkR{Gc$*f!jfM! zj1DZ!r>O}zzjYHc7RhfKUZCY@$EnVvgM>>h-`B@Z_1xp0TnhPrelc;-N9ce_30$NQ z!Phwg-=6QY6%y-F2$dkZ6~-Mv&OWT+t)I^Im1X&3BNLQ1Z)q}pgmm?N;EVU6iB4r1 z*R`*SGLBugPns9eOw8*y@ak>#sq*#y=s?Jfd;Hwo)LU{Wv9wy3um(7!N zCL^*;#Bz-N$tHuMQ*rWvm2boE*=d3@)o z45*jPhdL%y=Y@h@BK84Z{NaYThlFLo@L8|CC{clg@!4}tw7ZLL6AqIKf|HlCS1grG z6p&7D^6Kiw*$=dep8j3W#7I_S%1>PUqJNH(rEOrI{(XlIldMLS&xDt;T>@;^@7-1B z|8XhXDE{sGzh5_2cGItB2l%|p+G8-SI)?{yamm))^fL!n^hu~w@3K{PerU7a5dR8h zO#8Gaj@?+Ma-|D5GV(hYqHNPDmAA8{|KK25)e0S3_p5T9?TxaI&*vps-S0MuaJ`ji z7GJ8n5u&LO9Vl{}i)8h1-g)HpkU`db#QQ5?9J1^~ntigUXa{sY8jUG@L~ diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small.html b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small.html deleted file mode 100644 index cda3629b7b29..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - -"Multimap" Text Insert Timing Test with Small Average - Secondary-Key to Primary-Key Ratio - - - -
-

"Multimap" Text Insert Timing Test with Small Average - Secondary-Key to Primary-Key Ratio

-

Description

-

This test inserts a number of pairs into a container. The - first item of each pair is a string from an arbitrary text - [wickland96thirty], and - the second is a uniform i.i.d.integer. The container is a - "multimap" - it considers the first member of each pair as a - primary key, and the second member of each pair as a secondary - key (see Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys). There - are 400 distinct primary keys, and the ratio of secondary keys - to primary keys ranges from 1 to 5.

-

The test measures the average insert-time as a function of - the number of values inserted. For pb_ds's containers, - it inserts a primary key into the primary associative - container, then a secondary key into the secondary associative - container. For the native multimaps, it obtains a range using - std::equal_range, and inserts a value only if it was - not contained already.

-

(The test was executed with multimap_text_insert_timing_test - thirty_years_among_the_dead_preproc.txt 400 1 1 6)

-

Purpose

-

The test checks the insert-time scalability of different - "multimap" designs (see Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys).

-

Results

-

Figures NTG, NTM, and - NTL show the results for "multimaps" which - use a tree-based container for primary keys, in g++, msvc++, and - local, - respectively; Figures NHG, NHM, and NHL show the results for - "multimaps" which use a hash-based container for primary keys, - in g++, - msvc++, - and local, - respectively.

-
-
-
-
-
no image
NTG: Native and primary tree-based multimap types insert timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_mmap- -std::multimap
  2. -
  3. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: NHM Native and primary tree-based multimap types insert timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_mmap- -std::multimap
  4. -
  5. -rb_tree_mmap_lu_mtf_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and primary tree-based multimap types insert timing test - local
-
-
-
-
-
-
-
-
-
no image
NHG: Native and primary hash-based multimap types insert timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_hash_mmap- -__gnucxx::hash_multimap
  2. -
  3. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHM: Native and primary hash-based multimap types insert timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2
  2. -
  3. -n_hash_mmap- -stdext::hash_multimap
  4. -
  5. -cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set- -cc_hash_table -with Comb_Hash_Fn = direct_mask_range_hashing -, and Resize_Policy = hash_standard_resize_policy - with Size_Policy = hash_exponential_size_policy -, and Trigger_Policy = hash_load_check_resize_trigger - with αmin = 1/8 and αmax = 1/2, mapping each key to list_update - with Update_Policy = move_to_front_lu_policy -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NHL: Native and primary hash-based multimap types insert timing test - local
-
-
-
-
-

Observations

-

See Observations::Mapping-Semantics - Considerations.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png deleted file mode 100644 index 3c2d87ecfac5adc071b18420ea78d68c63c0e79a..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6456 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 ec>k$nL`o*9Er@BbT=ae7+- diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png deleted file mode 100644 index 4174fabe923d64918101af1793e40e4332408f50..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 31038 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 E4NizY0{{R3 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png deleted file mode 100644 index 81d5839044eeaa1a6cd014945ac8a5afe1507bdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6547 zc-qZadpJ~ow;x0@2$lOSiXWB1gvcdDqCq9MT&7V5g@kcy+$j=5VO;w~A|fMqjdGVk za+fjg_uE8ngZ=L9yw5rB`_K8~JkNQ~`93qxUTb~V`mD7+Yk&95vm2a_LvcX_5 z4*hF7w_q?v1PsQ|#>xa*R8%4YVK64x4b*L27_^Wu7#0R2z+hw;41hEw5{AUWkOUZ# z3_}9YCKd_9VqsVU3`>S#0mzqtgb}bX0s%%K!w3KrN=CxSSQwcABa>ld07QZTNEm>H z0R$L8h5-Ns3_*ifU@+(nKzX2rMIs4EBpHbWptPWd#Uil;B$kZC0#Fs;CIO2i5Re2i zk^n$Ofxcucl1xC7$w)E))(D0o0W1Ai(D#5Y>*WG5~fD76tlZ0Rk2vV*vmn10oBI z2I&C%2Ow^smOwDDXs}8Eq6$h3VuR2i7635^ZG$?v$OHla5efDOrUf-JnLq|WUcq+3 zD!@$wKqdeHL^CuMEaVFj4M40z++m?mhzVVLr3VZK=YhTqKPdsbpi#_I*TU1}5!TZi z<8BYrHMt?K=lICO)8n4Ilbfgb1qCHJdBr5JbY2*Yms4Ly`?gQoQu?ppP;oBZ?ZF3& z%>m%&X9vsi$vl)W*J?&AMV;%m5f`@}jX_+Dw$2t*7=#F7#4{Wpg};HJVa!{Me|_b< z#6W_vtuo*Ef3lT38U-_aT%<_I_9jlRrUMtzCUV%W_V-H~_F_z49o26z)A&J5ya% zFJvpojrU2hJ=^M@rfWOdMl7$0>i^9)c-)wp*{|jgwCzcub446UYCLU4IlgpFi%W@x z0eO0VC&)U#rpi$tHIQ;&XQAGHALtextg@Oa+H|mKEVl19BUl~#ZTLQ3jldMlNh4h^ksC|b zKY{qoNm}8DY z7`>e${rnPK_n`%sL|lv>HKfO>cp%0#Gk;yJvY$s}0k;_Ky)ALZX^>tW)lKaU?EU+a z>2^*3+-t-><4%yi<;=!S-s$VI+dM|*#p)xQPt~vc#UTuT?CdBopK0zT_!A#!(pJ6>Y z!*6)S`b38*aGD}dQg7@%J^Jn6PEdG^|6^?7sp;ad5|gjzsx}%^D&td{d0zB|TCFce ztu^~QXmS*?gjli9M`gHOu2Ewwf?r-AJZ0f|Pdla{I>~mg&he5sfC@GexZ{ zt(Hl0raH|e*3Hs{#mX(jw=XuejOc(x%i!*pEJjV^3PTY{#Z!2E% z`$HXvkJmPI+cpGt{SqCV&F}}|9CxZg!2af(m@#lur<)oL*pWcA2t)+HV;rcmAGJM{ zwqoU9k>T$Y($^m=u;rcrUI-Yd7OPfn;2jSl6@z?*nEU+Es-NS(9#d)?Q^^i?n)*ig z%H++ES%u2==_nJnuQ%` zntk_JolT%8X+S*@kLJ>lYE33J%oI=VfE75YZP+gog_ud_?|5acufXjuvp)XKia#<- zO$w=TcD>FC7SG?6l%Shi`FiMU8lJh>=fTdd(zb@`!q0clX9xIJUQqQntZUxr1bdFQ z#h&`@a^Cia-@Ax^&Zp+hx&gOuUD5y)3A@gGc0kyM7`|6Wx_$9$FZ+u|hM@JU51GkxxW!%j+W5vS>PcA3JD ztw-VEBmOs!RUaYE9suA^c2y#NMN2xNb0*%DV(c=L@8%o}I|(*E$^a4|{}jQuW+lHD z9<6|9C;3=QEZ5{!R%1RwU0P?*`l={GUNx2dq; zhyArLS7BYFp<>?NY+GLGwm9mQb+~e5bNOCh`Qf(q4sYd>ss!he?n$i^1Q_1;<%0i; zCYD0T_@XiIUVK!2nvl3763*E@_6#ji0WXhwkxOAL*(4AwCmf97*UCd-IgQN^I|i4e#wo)4!NZM z8NK-%pX-voRTNxVQCRpr@(EXK<4m8d=yYpyqny3jW*FBTgk->ojuAOOHW#eST%E=& znLWR|tFp1^JyIgbx^_sZ6GdnXkv|I3&Na>8x4~T3^Zp@P9EIC~#2gP$wD;QtMP`s_ z3Y`)2;b$#^D@TfHixDHM7y^o-S3vQD!c$P>4TY=<&q0y191L{pA$;8vbP#7(v0a&1XcQJumAPqlLYy7B>_b`CcvWCR7{tYb zye88wX4kD`C(7pYay@+=fuM9cxCP6nUBGQ=D2W#O2g?`uOyJPwiK}ltB8jq$n5_!Y zqBEvuy5j6YOdZr{7^VU|FCo7Ix!ni6vT14@VVF9N%#3Ws>oOS8b>=$xvDn&{e1_0; z<42eHdGYAU#-NiR=-G-1TvS@PeC!-NZ0u`Zy{Qo@`I%5r_oZZd7>?g4SjODUUYzWL z67h>RD5s%~g5|vxa2Jfts>f@_5DTi}WWyLW>-XnG2ZwO#MEGc%VV%#jZuJL&=8TwS zTFinTFV{40(He8z@VGxXw_*gwcRdyIL0W+^bLuO@-Sedn@F{s~PrDGBOONDD>1RI9qZq$FT{x79t^Sw z4s{Ok`H)8xohicN`!OvQVqSl=ZhQ+4qm8L&%p+;u9*!>lRpJW)7AsQM{&+347PL2+ ze9Ym>F0t}2A%{X$xySnrv9)4ODuh{yMaSnE9G~6nvCB-hVrRa76#Cp(JN<{%MrFxyZmMx%GSFD$7K*)~cQT zFpcuu9%saGuc|_fZI6P+Ji0&H7HV%gCVg+8Czn2xqV@Azl2yx2bU9q++%3)IxS|rB zPVn#E+Q%vUIYlQk!7cZs(L@d9JFlc78gCR8DEuYj8ufC4fL_&fRoh>-=t+=z&q>M6rB~YzU9R=a3W1#Ok~5+UyzanHF_UtmJ%W49}fyJEdVs3QR1yWS5BeJ<#)T zm!d5*9ACW@H6PQ`he?l*-0&`$uZ?h>SP99zMiFyUEbJO7Gx<}!iEH0K&<&bee%p-GXM{&2mNM$sjq<;6<;b;9;i zpZCX>l}t3z5uvu_>Z&oPDA%&(iv83)R-%QqoPH${YcpqlBw(D}dzv&v+uiT94UrHW zs8_Xy4bPi~BgP6cg&k9MFC6)xW2xm}M{yv>QC$jURr~HXB+gw*j9t0jNW9?qmY}K{ z^Vv%t^JbbkLt+qEL}6{DG-ekr)ag#{c%~CCY_|%;O-Q{m}0#}C@ zqU)OigB4L*6S#?{Ky75b_HIDDpuGk|T4kH#1g`%p;bO&1ce?GPQ)@{v^rJ?!XQbyM zFLsHddhOj${7zTZf2_yxzO|O@&Or2qN@Uok8?nx>{+e=mvM+aRe^kDqRbt(K*-Mk@ zsH1xaYpkARrg3+W>dAmWm72ba+^0{M}8ksRl=azR_ zE-o(fsJe^LyvvV!%~Yb%?8QUb;_@#6_+i9 z3~a}#JdEf86dH23`zO?@;+TYqpuq9$PS=+_Dg*K6C-Gu@&K^4x*u z0TV|Qvk`fT$hSYjui1Py=~MfToNHYa7>EbWE+#y6tG2 zOp?PP2RT*c-bmoBWZuq^jakvEWrvyKQ_Zx$K=|!L{c>a1RXIJrkCZ!YqO%n-H-EeT ze8A#wIABxaDY5VBb0Gv_nmgU*pry2t%8ZMh&pOsqT&MXtVM4A-j)Nt+2+ z$z+*|>=_%{*n2RlKcW)IH~hcyT80njsApU{QYqG)#M=EeXH(elhXGwd_{8sE6rsM@=-fCS6#Z!q+-{6)vip z@>6v+aliA@z4M4KjnnZDW^6v3oivfo9P&+)g>Uz?zV{lrtA5aL)4PUHaap=up~pz) zGbdabZoH)+egBy#+Zl0`DVoeOJi_&jhzuLB7r4&d$vsi`*8Jj6N7r0x= zVg6^BthdL$k;MLRV!Azj%+j)kgkN5^FhcVm{k*xRdWWoyce+=*Od8e_rRCNocREnB z6=L+*5A$S*oIzpBOCCHA`DN;D{8(uSwV?4vmW|@J5vbXIRY;?)Zg9__ea3&|vWW<) zi95Ee>q%V6t4PTa|~<1R%aj?n@BPA+#J_TX!*eM|DM-edBr zpFTF(mSUwLDD+84In$G5(=`-C$=wbUD48~k?qgZJ+Ad8_Rx0;9uXk0H zjaj3WOm%Rva~#}xVjrVFzveFvMOc4U{%MA7;3TB#-IQ9p;=b zCKp{Ux(h{iHD{f?SOe}yslo5uk2OyhYu~xI?ydd8bi>QkL*o97uEKSUnq bZ-4^jU;Q@LKW#S-y!{cFi3JecGsT2f^f`(D>FbV}m0YD@e zfPevL7=VWX6c_+Nzz{Tu1tx>h08|GWXaoX}Ku{0}04fX4&}al2k3drpXaHgXF5=M$ zJRX6kAn*W03XG+o5fnUvLP1afkRzCi0MG~kj{qnL0Dve%8bHz@OOO@-DS#@0&>$9= z3_yaQIXLiWGzE&0RS=s zG7HQG?Ev)ykT;Md5DX*@vIHQjpu!+F2n}KZkaN&7I0pv>j|U(lL49CZa7LlvDFEmz zC>LY_F5&?S9snSlp{}5zSjcDqavkyx4W&YM08kSkg=h!~A`L)2fq0-HUa}Ng8IO+;EVzQz}{{E_WBL%brjg^8L-zCV9$48&skv4J7CWpU{61=rx4iF z0PL{@_ILn$m4H1gU@sc@=luU^*au+5z<=EC`j(zB7!N=6+4o~Ocn5qa;iYrW%ghb! z<@?CP9;Rbvd|K~`o2Qqjt%sw#*XhejmlPD0aX#q+FxZLvH*Z|M~b*nWh6nkliG}t(_CO^%bXv!Y`?nQpcIbF-l z{8e#3iO@yuJb*u)>?$VRHx4wx_vn1am z(?;86M+66>3<|mgxhz&qvf&riwm{*=pWp#gA0_S#l`eYhAUgx_!QIF0n%Ijwe1;}z z@Te_QG~so|n6h78@;G+ais3&iy35+(qngCRu`fFvE|FNNGh`w2lpe_$)k(ABQR?#8 zDNv#oVTOF*OYVade<35~w+91H%(Sm&EH9H>>^R6~$?$P_uISLgW~p6Y&BJ9Q8khC9 zNXhJ*-$#3}8q?dvNVcm;8{`+1@9JHm$w8U-u4 z{-r1Vf?2h{{_G!!CGT11?YxaT8iG`@u(ZJThmMeT3v$m~$7n{r7m4ZXz1qRxQZbjwYr5}UTUXzp< z_Cd#HY!csRxnW_bVCfXMW$h9FB$=Ah&#A$uythl(%d3qeFUm>69k&CzD!x`bDsIQj zz0vN7$X-J)a8$21X%wVLwkBVlq&8$)#vP(|+LxF(JSb=1DWW&eG*%jQw@a zST$A)BZ`X#m3q0Ew6|*BrEuHpia@#`{hEp_1G$nISX?e(oL=0noEz;lVR6w~IQS?2 zE6%3YT5`=mRqTAJ%g3rFdI4$EIUp6I$gAU3K^ZOlEk4_qdOr;AB;Sa6U(s!&#j8KW z()N$&>E*CRkZ)@pWfg?lKhnN-p?lD!_TuLYX6*S&xo)h#Sx`sCx=NMW)wyiP;gMt( zyxkjLF&x@y>98t)l+lQMzO~crLZJgu@NXQ|&r4!YDt8(6Hh8XACwP{(UpyGJ^)oo{ z<-M!)b+c8iN~(HZS)kNX)X-*&E^Z-e>nKA_rk`A-vp{;{GKFIrGBDf%#`6kIlDW5s zTu;R<6d5>w+2}qnzxZY&RxdMz;`mwQ=+SzRkH6w$bVwTpHC`u@+f&q^PNhh$n%MVj*YKKcEL&}wjpa0>E zWO!bB%YRc_ChowzC#kab7^9J`d9b6P9`}vCFnHcqYCg1|8xUM>1g1#SThfjNKLs;zNfGKnrZ3v#j&u#Sholdc)eIodc`B-MIYnSSPE600t4xZ%V?`*@wk{Up0POYM^3 zbFTcC^`}XGg0F)+xy~~~;QWUfXKJ)c(+=8R`*v}}vTLdS?U?+@?TL;^?%Nks#nfASPw>5jlBjc4M5zK5Hs{~M#W!{=4B}WW%pnN2_I8o<*;pk2A zf1y&g-d-wUL95?LUwOe>Ex#TIU$aVPCq%1b{w@OTSizviOwx)dH%z~3{EsiR%Tw(E z+Y#K&S#HemU%xcNoX7WlJ?YVa^NDYvx`^Iiye4|6E7jc?t>vRl4K?7a5FKt|1dRsb zPDLO7nCdEa-ZevNxU4ttlz9|f)x&0#(LT`c8c^<`A2~uiViqUk=M*GvJfkd4x=qua z91dM$60nj}O}_P&ztozM#!U$>W0Dzxqz}akJoa3+2EAg|@$hxXImaf{(Q`n#klSG!(G&5Gib5LKqKow;sLU--fbKkDUF+lQBT zM(YAG!u+zwoptBj%-+5+M?62M)eT{UW78GKTe#rsjVj8{C!gr^t=vL!Wk;(X zh?8peD}raA?-XHQ_`7ebM3cK$eqGgr;gnPtg`vl(7ukN_|KZ$3IP)-yk74BM?BeC? zq^ZTeLi|?r3pW~2VquPVXm(0tx+S_*q5sNz<3E2;N^W<(kf*H;8R?mEd$7To&D;(~ z%u1rF<78*VdkGyU1m{Fh37MzP{+J1oifLtMvG&&(AGUs@B2xkP4>JiaTAbIA{$=EG znl{h%i?4?rGu%rdX1SwWMN_Q%$0D&itw@fxHT%`cW46qun9ln@U0ZLv#L)^vZ;&)y z+PK$pHu=40$QwfQ#v)kNbofo>TlG?dRr8lia@zCrKk}}xUf&sh-z-(hiS3(z`6x(k zv3b<{Wq!-Vb!oQ3ms^E(MfJT6FHD^uy)kM0rP$HMBwE>Djb~O+qbG@1YZXZD!#Lu^ za^1)Lmar=*FV>GZxN7rgsK%@9$I11NM?|rL3e82=JqPlS7K=3=FlCFjH`0B_AK#_v zA-&Y=)AA))=X%4=HjIYK$H(@~+7#w;2AJ+xS4NwQZSERMt~Hna*%?XZ>H9PnBzq}t z46VR(t3jgJSt~4o)QTYTp`2`n|6x9F=tL-at1n5?#AxmR6=4yUX(m1>*l&C3A>(O| z70QibCUBzl9liRz{nd!qs#w9L1E@bkMzJOV{cq^%{SDfguBFP>3XfKDFujxTzv`Jh zE?>ac`H`=J{dE$>^Xund2%v0uiunSsD7~|<;ZxzBSJdK^F|srkA@Etm+=`&1PHPkR zhR|IEKZzeW&c>3owku6i^E`2STxyoR<3h`y9A}s71RiK}{MWC<3LC{p{#+*v4c*wNX=qBHQ&3 zBk!W~vI+Yc^#Sxd!)Mo=MwXk+&ahq0PgP5(^kS8Yt9MUl%%%R(RGg|^mJ4Ks=WQ#z zr_awAsf%0YaZMDEB1eOi4*1F+Gb(ev%cyT+<#bKPU(uEXb5`WNY{k(OoG!Ap^G_56nx{YI&_7Ve?vp2wlF=w1k2ET8lgp! zc1(#};X_fg1Vqb+F9zxHM%1()CZ$OageSEScQ4)gq@v;MFKoV@a2W3!C^yb?$k@`? z>yM~^piGz^oOr26AC}N(#Dy11sxzg<krp^lYL&6pUfvkZ`pQCc)oam_=)GQKQdjnSOK3uotKS&?)_VGvHBAc zDU@l5Xdc}VNPNwCbjC)k+V(XMQ8dCR?{8YUAJ!_?TWc1oCY znLU2#^JKqCnJ8*B4{?4;eIWcl>+?$#uen}bjg<#+w43-N$fDx0D>)n!-oHCiJRGi< z_bKZ-`dpV2rTbc83SQk4>&0TFc5Z#(tJ31NV(waBDIIbT5>cTy`)ce~*=otSd=@Y6 zc4%Hl*+iAW19lF8hY;}lIk$D;3hArBL$MV9!*ZBI{;?o`3`*fVPo%U@&~^fJ5A@{~ zpW}(N3({`22d}CdwB?5;0w=iX;CuXk`PB6>;R9_U{Euq*q?xqt2W~Hddi&x^#G-ql z>(0Bs;?}gY9e72AsPB0B75rb+k_Ub^pS7*>B1+~fU?^CkBnl# zCyltl)p*)&2d*Hg4kx!3Ppb`&t=^d$>Caj0)=$w-$+pkA@330ciF2drwcjgrlIrLx zG5v_x`bBF$CDsGjjh?qHD2%xn)_$vuI+ZA!DY5GFytIvVA}XiwuECV(=$TCC)hhMn z2lnxum$n|H`w~i8Xek&1Rl~w^$`h$&LF3){8l+o7=)5jlLItB?-m-=6mq&2^1bUL^y$CJDJ9OC?Iqo&#Tx8*--|MkI z6VT0axPjRZ;yO)>)jmc!PNl~``i2$?xzt;-x4e`yy1r1-hKubU#5lN&9n~y+j(2aE zv>ZB#PQ6Ty(!W&qN;cC@N}Ldz`Pn)?x*P3#vVclCKAq^&P@n$!iY;+dSs~(%lv=Cq z3;r0t^Q(SMKA~!P9ZQm?F;mi_$8KGmP-3mVT0HD&m^y4OE!uh$Z&VokMP2*hD*_ZU=nG}TR(az*I&Aq`)v+>>z3`qK}z%(Dr*j=_vJ=n(o5NnUhAMj_ruYVekUKL4B)?V?vml4c)qf z$}#=p29g;nKi)Vt@S#lUrSavOQa;Rt=)9OxrObV<2mi0zKJT|kPRiE4;f=L~4$6(b z_3dv9_mgo8EjSmnOjB(i`N>(*6ElS3V(rXGStUP4?Rs`~a6pllhVAcWS7hLP$}|Ux zYIB6nA|eq!&fB?dcMqbdUGup&RL^aGe}AE?b}Y_dcO)b<1Wub3wfD7imNr@XdPj`u z!4=r@ndFr%b#nPw1&s2h|kU0avC*EkC)UmPVeewXKLJi)}>wR@UHn0 tf}`Q}6j=K3_ixOJQ_!!KH+2ke5U$yT{0GNS35fsz diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png deleted file mode 100644 index c5f4e57e6d7c3e1f238c27c471c71fb59d124420..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 26974 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 L|5K!8_wWA#bcLeS diff --git a/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png deleted file mode 100644 index 99f2d690fa55e92afe669ce7d168c72834da8355..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6430 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/null_hash_fn.html b/libstdc++-v3/doc/html/ext/pb_ds/null_hash_fn.html deleted file mode 100644 index 34f1ee06aa78..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/null_hash_fn.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - null_hash_fn Interface - - - - - - - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/null_lu_metadata.html b/libstdc++-v3/doc/html/ext/pb_ds/null_lu_metadata.html deleted file mode 100644 index e8fb6a3c825d..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/null_lu_metadata.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - null_lu_metadata Interface - - - - -
-

null_lu_metadata Interface

- -

A null type that means that each link in a list-based - container does not actually need metadata.

- -

Defined in: list_update_policy.hpp

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/null_mapped_type.html b/libstdc++-v3/doc/html/ext/pb_ds/null_mapped_type.html deleted file mode 100644 index d62fac5c93e7..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/null_mapped_type.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - null_mapped_type Interface - - - - -
-

null_mapped_type Interface

- -

A mapped-policy indicating that an associative container is - a "set"

- -

Defined in: tag_and_trait.hpp

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/null_probe_fn.html b/libstdc++-v3/doc/html/ext/pb_ds/null_probe_fn.html deleted file mode 100644 index 1c8811e96526..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/null_probe_fn.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - null_probe_fn Interface - - - - -
-

null_probe_fn Interface

- -

A "null" probe function, indicating that the combining probe - function is actually a ranged probe function.

- -

Interface::Concepts::Null - Policy Classes explains the concept of a null policy.

- -

Defined in: hash_policy.hpp

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/null_tree_node_update.html b/libstdc++-v3/doc/html/ext/pb_ds/null_tree_node_update.html deleted file mode 100644 index cc1c90054711..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/null_tree_node_update.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - null_tree_node_update Interface - - - - -
-

null_tree_node_update Interface

- -

A "null" node updater, indicating that no node updates are - required.

- -

Interface::Concepts::Null - Policy Classes explains the concept of a null policy.

- -

Defined in: tree_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-
-class Node_Iterator
-
-
-

Node iterator type.

-
-
-
-class Cmp_Fn
-
-
-

Comparison functor.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/null_trie_node_update.html b/libstdc++-v3/doc/html/ext/pb_ds/null_trie_node_update.html deleted file mode 100644 index 18ea00739d5b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/null_trie_node_update.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - null_trie_node_update Interface - - - - -
-

null_trie_node_update Interface

- -

A "null" node updater, indicating that no node updates are - required.

- -

Interface::Concepts::Null - Policy Classes explains the concept of a null policy.

- -

Defined in: trie_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-
-class Node_Iterator
-
-
-

Node iterator type.

-
-
-
-class E_Access_Traits
-
-
-

Comparison functor.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/ov_tree_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/ov_tree_tag.html deleted file mode 100644 index 01d7f9082f76..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/ov_tree_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - ov_tree_tag Interface - - - - -
-

ov_tree_tag Interface

- -

Ordered-vector tree data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-tree_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pairing_heap_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/pairing_heap_tag.html deleted file mode 100644 index 5901d1a88c5a..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/pairing_heap_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - pairing_heap_tag Interface - - - - -
-

pairing_heap_tag Interface

- -

Pairing-heap data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-priority_queue_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png deleted file mode 100644 index 4168787ecadf37c5c6c5cfb9bfebd32c3b1a5872..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5395 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png deleted file mode 100644 index 81f7a5900a023384ccbc4a4c81cc44bcfde231f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 26303 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
eMx=zfMiGct8_ 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png deleted file mode 100644 index 42b707965ff523291bab722050a5e4adb35ee1de..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5514 zc-qBSc{r49xPKARd=je3I)$Rm_!?UYZT2Edg&0w$_#z=w(_oM-Tav~oTTCcvlYNY} z#K=x|ld|tKXc+UJ_tkZ-bDis)KhF2pd9G`&=e_Uee(wAC``ypHGw&OD-rPuZi}V%% z07OlU&sYHfKNP}aMlNt88vJAbKMhv`Q4X3!yo~L9001EYfB4!40=SS9R1q`gu z?>4$|%g5K}s<)e$?{4kCHB{A(ko{720)T{|$(fTjcc0Isc$8+ok_e^5v7FV`<2Y(* zXS20b>d9dbNul{Gdj6g-vUY#ad?I+Ub~A}kJ0J>J^U;7UEr@jBUrhpR1??8_pNbH1 z!h}=ZCG7&H_z5(LpUtlVP1QFEoYr0JHsNu>^CT=F2u-`*l6MpKbtu%ns7Y9y%Uivl zK{ik|V_Poa8|42^d+aR5oVuM|QNYJ-5GC})2`^;tkV@4uVy9gxm|0Re^m=-~vwB91 zP4E#cdbXoTljJ0oi$o=_SQ1h+t6~qkbMh3;l&E#7t2!>5l@7D9pQq|lj(G|cf2Of4 z{RZX4{i0i_*5)1rbVAB%m(cvdqSZ2G!h5uh9eS1o`4kHH9u2=FPjZX{9&?O0XA64( zO2redEPNv6rtj>WbW9%lX?pZ+Vxq9QcrRe=)gHCD(jKVQ+)BJQmpvoSIu+)+Ts>>! zF9V3+7D~B;Wij{0sp61Ql_$}JxG!0R*4sIw%B;@NO1$>?-V>=6Z#eZ!nk31j2`W;y zcV0L(om{=nn%683RUW6l;QzB%t%*mz<56koJs?lk&@Rebc1UkN!+kgSJ;rUBo^+l* z@M?IaSfxxhz29)ZPe-|(DSoiUOmVaablI*{qpRx2XLU>H=}btPce)V4t(G=o=Eu7R zMma`Ytdd8H2aGp96@u!ltfG533G3)U7fXdhTWS43+0q0=i_P&N#aNH56n{s4j*lEu zbb*+85{?dni#?u1t~@exYvNj2ttKGR&-VTRy85^;>#F8YOAJ^@_5sFfQQhnB(lYMJ zREqqOpnI8K;3kk05`yIq_zt#}iwgz zdFM-u}(0*WRq45Xa8EcdG?7xFoTeB~kcBAH8z zB2Lr4%+}LR*%8#GcugPR90^>B)K6AMG-8)?3W(_e>ht zG@2RP{~9?rH`y|@PL!Z+=Q;*9%!Kuvs~noCZyIUjvFjC@M>7M`7EOUpY;>Q-Mjv_S{$Z0VqJ z=xG`GDq)&eI@nFzT>R)izheLEbSe>BeQMNAREieSgHMy?7NCF}#O9x|_JH|9xq2Af$2h3%oM;tA5SL2+Mp7gUhR8}s*uG85_vLqJMx6;}ht9+f; zbZ|)`8j%%AnUFQ_jOq^YD{6W#_%@qc#D~o$kKE2sl3#h8Z7zF_rX6@uJ8m!U+`YiS zYuO6xR@Em?fm{o` zY

@21iuC8Ybxwi;5VFHw%;gl%uTJr(Ls@j`?!DZOiyCet{oX`$^b<;0tH3 zDYYQPyYOY}L0EUD98yYn>e0(%s;?)P*R3SG zF68J=3G6qq$4k`*W@17s&qu>6)gI_C;rgu z7)4@4=+j=*{8x*4rQw(UnRTIWGEH(~sH3lCtLr~$Y|6vm{WNOGb&asvpQCz}v0^rR zizLK0@3cp!$sE}?zvy)4qnznbZts2dce*~67H9$KA41559jfn7YO1xHWoGCXB}|a2 z20u&f_q3O@y;PL!9hBvo9*W8-y=JoK*^>9UmPbRzDL;qg+H{kQO09hC67q5yc#aK= z&1&gndUp{&qoV9e+mlRdl)^NpTf8N4C9->-cA1jGQ^O|iO=a#vwSXO$SVKz~)Km886 ze?cbHd;0Pme}5=C)e&XyXt#24PAmWP;+(?qK&@74QKR88C!Joz*K=~-`jU9;7j9XL zh`{5uOlon;o*8AP6;bA`-&vkxMCfLE?bO9Ud{5X5J`R4*PE94bj3tvj;O}*m&)lvOW8(YLZxAzzrPm{lM!5?s88csfX*kLkrp?jrm8{+g9 z0`pxOpNq3;$Kk-D&nvO$zKfe8LJymi&srQj;CO4=y4zADB2?qTLaFK>o9NZ*6^_ zV+jJZ=kW}U1J#MS#StM~GT#aGb(&WA|?oTb2 za`N|UCmZ$KH+>`~NFPWIk6FxJCFU+C>H4Hve7esYaN3i<^lJCA^!1ZJmg`EbmX7Bc zJC#n|_#D^DvAOKrSDZf?c4n^Vhy~tM*hW|Ea$A%`A!9y-m5Wujom#)hcJw(XdV!po zg?x6P9m@{l*r1uj*cp#bBKuXzOQBa-VnxS{$Ihw=vPI&Fj^^xx6(qxHy6kT%bxm<% zHtzFJYpU~Dyw-!$VUqaqs-Y{k^}oyGryM0IbXJuhc3@aAOA>Z$Y?#)Q|Kv zmNN5=*B*H%?bR||Q}*rCmCezGd&{~;gFa%1-_M7<#twc!`DqeSTdFDpdk$Qh zbjsdGikg>pD*Qe}DkKf5)H!*|I&CX+{WhrUxnS(O#>Y4A8gRD`FFrM9E;}S=i%gQh z@>GYn{`cR+w(xo*A#;;doPpjEFVn^2CPz_raix_{vKAaI>y5gos%m=$Y5m26!o`wr zH*aUfFXbZ6nmlhF+5IQ1*59_?=w;Elt$J0BtH*T9pV_t_dGhTvnq}P+uGc;*L8UfI z&d+l2ELKY+*Je2*E%Qf#FQ?-d%dCWTla(9nq@wrs>96{J6!8f&yQ}6Gw`}3dB9vFD zx#mFodIJw}-o&DDuQu^fVA1^F5T73lbp#pv2U2P?3-zx%8%GoK!o?QnaHtS$YGo^n zkGXL7`6HM1&wjsmgPwZjC(vTUH;5u};hqtL3A;SQ6LvJ}>fd@g!$+W`DPhOf$ts=_ z+L)@EeY4kN8#s7`mIZ|J$;h2nMPp|9hwzJBW(c>8|A;iTI^0fq-Y*F=uXgnW}?#;uk3evx-TKwCs;}~ll<0J z{dAodkXaA%tLz35=_KgZ!oNrdw)_u=6N~Qq8o?0$afft@s2{Ur=w)6S(7`gY%OGmSrt73@w?{#du-7KRMl4Kj;ak1@-o&#F$1J!6IRPYKN(7){CY%POVk(V^pbxE zl&TkeUl%n?0<2|rD22<_)7NgA`sZxf>u}U+u#!vewI}&$w^{bcExPa@V8MVc^3X!4kWj`airQD$o88Co! z6ppN3VQM!1^p{>kPiZRz*L;n={d34)y+X`!UuOYH!t$ujjvmJgv+(Z7mcYLse_gXV z6SQ+G=l6En=!TQaQxWZTqmOweRFzIR|A8Y`%;dOvoy`!_NWCOrbOluXmk)CP_sMCs zMPC<1j}jy6$CHDwqhsY_BhxuNM`AHI@{|;Gbib{seS`i^)`d5wsXX};kU5>RR<`c- z$n4I3viR^xV!K(^e()Pz*eCa4$dOOId7J${f6wUSy(FuV53m>2b$t7V*dJo7S{fB+ zT0A!QSk~Zqp=$+e8jq>xUl!(H^ax8?V=vC|R2b9)TN^sMI$t%t^GU-lPv&&<6*9{HfYy8@webvn9m;I-;^sjJruX0UgvzU|V<^jLX?fDlM| z$Q&2jcvej{i$ewP%0tq>-5W5^9L@7^caDw&nWvoPHeqbgJcI*J;l-B)&5SifzERCmHR#E8t-SigqkPaUz3|V5q(x@QRUt# zzh!aO9s={WqZZ8}Ew0y?nvv4HoS6DIN+Zd**TI$<@Bq~32u&BSQf49AXce23)X@lc_G&K&k z2?lr$O0C2ni*pjdD^)m>SuzoS>}zb>_H zg{I|ij8)DO)ezrxyUg7SKb@Svk&ZmUM{wI*WPCX;LXO?G#WTK8Ph4l5x}#sg!(Rb< zNKz~|=sjjIolZ9NiYmDC@cT*ho8g^qQZ@Z3qzJ2`HF@pH) zDbs@zOy!qf_-GDQ=Z>1A-8<_;(32tbUf^j{u45OX#L%Um$Tki~LPO2=7DYwlM|7$jzkAww8|Ga4l1tnX#Nrt7}H{cgbCI;qb@=sj}{tpEZ B!9xH5 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png deleted file mode 100644 index 9a7ce6c361f85eff0f7afb7291c71be91f1c3ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5678 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png deleted file mode 100644 index 472d8691f2e7b69512e89d9c2daa5b138e0117aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 25070 zc-oA+1yqz#+cr8dgoucMfPjFK(lOHM3kX9>cL@&N-C-c2#E?TPBP})3HHd(;(#_D_ z-RBv;@B7z()>;2KhXo6mXUDzoeeY{u*WULN`AS`p|cJQ#WbbZ6?;%<|+ElCRkJpn=GU+DOzZ%+H9=q#Px?48)alAI2oD4;_h z;=j;*z>oV{jwJk%&hs|-BOzL=&F1`ay!uFdD;I%CdGe;nPyc@BkCo+&J>UxWjBN_? z*`8%w;r`scSs_s`fvTS>-S96#cw|B#Cw;&Aq%;x{bLk#^V#&O5s)QKeuUh&jcE&!j zm2?#@4e8q_dYOTuE9oA*KP1mwfd?i=e*4%ewLkY4bI6qJ`RwwM>8c&`z(+zt`(Dzt z(Z~|3_RoH&f8|K0gZ^f}$T0I;N~Gj#*!|V*vC=2i+VcrQp9M5L`p|d(pDfFgS_=Q% z5)A~l8K0I`zjV33)a}%jz@gE6IH0lsdBgyMPk3!l`TagW+R#r(N(#1yQ6i#=EJjUz z=x1s@R^lrvD#VM8tDTP(8G{Zjv?F@~6PfuTd?c@4etzV(QSqjm8)1{_mz(XgGt=>g zQ}{{UPSeHp-nS@TqssvmzQmga#+xzE!+(m+G8X7iImlJhm&aoJRTA4ZR$i8tU)vVk z0#2rVxS~bpKaNUxZ;n9*%ir%zZ#ViMiL-KXIXrsM?I~&2;JY_KuFRc-&>$YjQH+tQ z_u5GMxt;y?eph#2Uz5rJU#J>-dDmMTzOcS7oMx!pt228sbF%Hf`ZXeWq&eiKOF;TZ zjM#EYOR{Bw~BAH>+8BQb^}Nca*7ybLqo%Kzhwk7tUoiT4p|*K|4vKCZ?{-M+^8hmrM7_Sk`$Hzw+I_*9A<49AHUT8i+Tis7*;2Gp1SHNsihye=rnGHH= z6>*yQX}vb^{RV>aLPQsc#XhtvzHum6ovhxOdrLr4cl?3QdG#(o&^IMx@aY_DR><{P zh#-AhQ6nrP@HwkW61QK-+5QqCo5PjwcJ0b15$7pi%3XrL1h(`uRZw@6>8s1#8lk_H zRc@6ovzb=WVr+J%EaYDUPPUoD-d6@SeHbdx&a>Y*p7xpDJl>j|t@J-yw=a#;QHCRt zO(*p}JHdaBM$Kiu3GONRO697hRb2p6=0~wR_%PTy83(?v_=Wc9FPK!)b+yKAVWQL! z#deK(OB!50Y8EiPI}@-Y6}xr{c(RljXxHmiaB%RpzIjmPY2~O{{huB^n0U#Hw*(pW zz?`d#-CQ0>WVv^7ILMr0-s&&+WdwvF5^XqhrGw5NpB0&3tzQGHC{N|rnsYVa)vWWw zHIH>_^T0jp+}9pn3!RE!zlAR%ykb{}gNp2QuKq{E`ZCS0+dge<99+WXV?$X~R14LN z=J!rR=jZ1eivni$_xA-YI3ASd8jyG$6`D5(Ux{YRRn$;%8(7c@JEmyFK3IImDl!** z|1T%ElfwbSh+dko(-<&o@gtQ^lSxxkQ#mZtB!MK{&>GX%u=gZ1DrziC;1t6bb!Hv` z$H3TUH>)O{BYal>er+B2uA(1uzLw|1V^C%RW3!?KVm|BotUrW78?kx3`j1%q=86O zH0^zVJyvGv6A1K?cd|CfZdAFQ8L)j;_VcIbI|QZfi7)iWm@r2{_Z9MJ&o?j&0IZT9 zMwQCvb@=%B^kIWVk#;;pop-*(W*=@(2P|g4czeA&IeYDG6B)ghX z-^@AIO)@}OXEH~SGB&*lN?RMu+qr7o33AyjDsA#tV0#V!IeK+68)93bR|V-4waPO@ z!AzOgtg;*G1`HT~wtgU~Uu(M9mOzHwTpM3st*oqg0O)oiwq3Ju{mkwiBJp{SO?x-H{hNtO{(VmfRGPqlbbk|k4_6rE5#|$GZGVoo?fey{5dpO)J;af&xL3Mk z3FA`y{Adro`Y(r%7FeoD!S4nJwE83udiZ927rqP%Qch0Qdi0AO4QcxT!8Vc7@|MsB zCm|uh^`8PY&*f@POyBrSGc$w>Upedx3C$>P{ifjdPRPy0XU3b;j;*4R-YglJChx5Y z8uWoIX||28v0t;5!ExdC*+zW!;nw6ycGlIVO-SQrMK}4yiN9&k(eTYC05vf(z~Wok zxTYALEwgOxYgo%oYsyOT1zqk&$ZVDcp6w6Td9LmE{|>8zSA;dZgV$#)B=mW0jtTgW zSw`s6`HYsBM&Lv_oR71#6-bK}JJUGhW7#B+~)?Xu8)h(WzW91WdVPL|S z6O|4=25MHBv?|x?7@BBE9Svz= z;va@MCc`S#rCCVudGSg_P=(r%W}HlLX8c2Z-dImj*EejbB-2$`&?R-%5S4P0)3(dF zoAxs#c}=v?|DabSB(RGkFHpexPi)Tl$<9qiY4f#zYlGi`SqSj3zmRti#E<%dR3vp;$(9J^kZ4>GEDR&#cCUh+jMv*Lk+h>H>k zr1W)khK@Bt&Ii*jHc|b;j0PJcKdi)LX8I2R$BY1g`t9KEmWEt8 z>;YKgf{+ObZnxpB6}QbF?h3s|mk!qchqk4T#%k~^)vUp~5EMtDA?ennyTC4U)`=S~ z?fYG#D#LrCV3sx6q$1y5b}SHg^^R0srah?WISgrAd(g=>nMOx*4sb3pErRn$uHkrmehj znrijck6UorMDCHK@9wzBY~X=c1cU!-HH_&J07@>=orZ(p10YJKG7H8&+@o=yy1v+v zIhyk5->8~SYQ~^1p0t{oR?zy-4V{qv zP(cU1&lE2Rfb3c7W`Jj&^rwmNIYowev3PCHHs9@Dly&mt&0-M*Xg9(Bijj6GS0!R}(~mM=@?+End9FbIG;|6W>G)lYydsnVgQnT%K@ zHceErw}H{Elf`>DOZ>8CX6Et`Uoi>#EHnYis^i7%BUO;6pE< z{x1g@e=UGnGo~!!ur*5*lsV4wr<(Ck#ai~eKz!f`kyj?z{v5t)Ih~2(`S$cs>1Ohy z+`|j1oak5tfhv8KN(F3;1c%C!PdOOJX2aD`SV^`5R~9<+Wf(IaK*&}hO+zQcHfXv3 zyEsR`cN_~Q0KJFD^E5;RrBBOWHSwFDDz)7)xuKzf*xkcJLSMhx?_k-Fm6dgHkS6|C ziG8nY5XUpN?#Eev2Yz)S^h&jNAQ)IJvmX6YCvVr+FOD{R*fE_ESb1nxh%yz&4Y{{d zjdM+WsWh-d$1i-_wQNE3*&|{}h8Y>^nwg$p;-B{kGsUq_SQG8{_h?uwzHx zCgxXTPvR>10s2D-ty3D1hhF_E;RH%LN5l`LkV1@k*Idw==y4GIHM(ddebm849*D4d zun0>!XW}8vuG@bML4mJfnP{x*%Iz}%qCx80C|Jvn(ht+;+Gtg1cUG&pu9vMv@Ho}D zrj>4PZc>N(gyEpK(LP~PzuN{}tJwY7vg`sQY4418Q%^|LFR`qKN3_UOG|p!Oy_Cb&-k#DNDb>pa_fE2&HmmMxfv-z^ZmyXhu8G znLmabDi?MY$^owMOV&bfQ$% z^mC_(?`Txy3Tq|1pVmNHb|uotVWgM_uP5;*l>uR~MvZCK;#86`q)4MEGFs}`U>YEN zy2frGgXUlFRT2-&((l*h4n!lbp_~jc`rZedMx&#N zI!Yv+L_+NRg&P~#kf4z~vu)`quJPI!>2|2g)y`9A#AT-_J{w?IeK1p{;cimN%f~&f zeW&y_Fd8BASDOFK2P`bacGc=~-Bi|9dU;+dz>dwtU%U0yCjE(zp*LY6=OAplW2~_* zuf7BzOGJ@F!#i1;x)%pX#o;BmIvz&(i9*>o!i;*ZCR` z2gJ}d=M5h``nLW6hRt<#cQ1&{_%4J4dI`z+r(gQQv5V_Rsv+4c`Q5MP?C^;lfM)aI z28_7&hVP!$<79+oS{6V}2JEY{kj4C{d25Z>j0{uB;LFp7bu$dW%V&OOJOWnP@ROxQ zIW0nrKAIC!uQG7w$z+e2ec7r>V`4(Wl-IP^s8mHpw=j}5g_EVtp|HQJ%fAeXT+H2_ zc=iH!z)9je*I!m{xvGQn4JCNW;pVtU#LU-mU`CCDjHDTGulq)1c8NpnLfIMBlxi}S zQ0664o5}^M4+>eKXrHlQ_`sKJu6!^*|DM>VsCeOzj+(Dt{Z$$LfAsn)6<)<`junYi4QA^dg}qLQZewD3hq8xd6Z(Bk4^IaEc3cTq_bAW_x){LXULK6h417L>TwsSjv`F@jrJ zqzD@DP5#EVu)?2{r6iVAGE7Amef!3AaWraPS`|E)tLDVH6LG_k{BEhO5SXHlDkA98 zmFZYrB&G$*P@m-Dvx2;mtEl<_sMOK_eG`d2Ud$otmcBY1>;Trl7bu}Z1lMKB6Yvj% zdO(AbF83fjUV0sMFa&IJqvJ{S`8Y^Lg;1>MBTGAec)Omq&_hw}0UlYXuk#)L(x>LL zweN|kXPRb%FM5mT;K+-AELJc&rHZg8p-ApQ^_I*rn+o^f)ngC4W4(PfKrvkp)338ScHe>{$qpEs@d{!!JW zTcp=S^S!A0T(xqVL^R1F;{(qXFx6Z0sz=Z142VqbU*Z@{DwQsHyUwkD|I!q0Cpxnb zRpuzCWz&=qyGi=EDkD$oTaz1$n_54wV_el1PS z1Ah-d<(~8I=1oXvvE-aDE*eL6d9O3QfB#-+yIx0AQ$Tj$1gA(Ya&+(9Nx9UlQGDe1 zN{Jonhu7(^Ms@KnV)^OtIIkbN5&a(Rb!4h37>8(lC3i#&&&1uv3w~SeUqjW?qlZ%z zI%=s>ggJ)Cq=mLQnx0EncR5vf=x$VmdRrDGe*5-~c0)x)<%D^RsQzg}`B7^_yD_v8 zDm_CG3T&lbc->%mB6!+wdG>L)qIVZZ6@DJQB({{4lzE`Mp%bt5!tCtja%`wd$qzVM z2(>i#>kdzukD{j+TY*5Bq6ye6SAs?$3%( z3C)@N{$l6k1?WbQC+;~#TU(oX44ugKKilW2KOKDc=G&Y?*`&}_1)W`86SlB^mz}yY ze4bl>jT8N`*+>;Dd9UKtqbLy`mZd>)SSsW@8iC9RI|$1NGw$82*fO~>g%}V0brT)c zNg02Q@j*m0BS@uBWhvOzFEzZ50PfxO=U$|%)Tdlgo*`IIist#*N|sD=aYb=4x1Nzv zYFt=6ov`B{1RyLFhlfMXmXe(ci&P#~W%H19d%w3LDpFAurwGKEt`_cJN^R1qH@%Mw zOBtUgp;2XpvOl<2TtD73GuyWWX2~Gtjvb|6G&q(fPxuvT#C3daCLd#~8C9 zy`o@|eyQ}%em7tLk2&~DJC3_H1%Z@FPVc5SQFIHHrsn`m2P*Jim6l7|!$OLdDs6Cb zdK?>(k1^61_Ak__0IM~ze4P-NQ8FFPJiKT{Ru+LA4Ar3ET9+7*4vel-?dQyYT;L3A zgMWiBa(xBFM0bVn-fJpugI7)&4$=u-HlAaR0@8-2%-(IA;6Nu>QR}pl3;sC{Gf|RX z7Lh9GJ_Kd{{N+7>Itj{Yt=K-V>lMa}Q!@dS2HU%+iF6y-j&dDi%8RnG zSL_&X3+a}^gk~WWE;Q&4tdslcYWrSGK30HGyxLfl8;F!mLP$Na;|r&JS^dwTyGZ3z zilK?tz0))VeOg&xM=+kmdJ~zMM7V`;-RGJq=jjYckitzk<<^`_f6hk~g2 z-?&p8923vtoWC&Nm%MZNKD%up8Lb6L3z|Ci9WE=;Ge;tJ)2NyDVQ3B>e-xgCH#v(%Y=%AMX{2wj^)V0j&-ft7jG*TXaj6Q zAH$i={vg@&<$t`STWX?y_K=F8gy7`*I>npzXXcMK6wyRzA=vQ?@z?Ia=%$W`InMY| zd|_Ei;*Xy>e-x6U{o8~#r-+^fv-!_sue5}CDj5zm+mdCqjsGpFhnG-6yKwvP8Njj6 zRR^r#FsQg-jwV*oNYv=~R9<;r=zmW}G(NSv)54}Dh6clgRR+GJS;7_m-3_B-37U8q zLV(pYim~?Hit*O4la%p?5Q(my%-Eqci{#`>+SI`|4 zl3LUvGG3OAJ(^=O+oBD4Klm^muYq*xnVpHRGoQr=q;MiNlvce={(=G~OeD%EYOEDS zOTB=#+NjV<`j}8!-94B(9KnXqp*V!*9usr%HsI`+;;|Fk%}2(E&7dpMUtv|x8*)_# z^zo*j>*~9EVPo}^)|K838^3~<`VtZJf}C4&#F{)NHDz2fym#+Y=tWqTE*k^UF{nw& z!xmdSDrsGuk(hNFJcYCQbnQjBluqzOY>SXE#F%GI6(a^QPB37%yBGTg_GWIcMV6|C zeE<7e%*d@8&{CFWsbo4u2a8Yr{V~-u!ZyUUxovyD9Vd@1^G?SP6QWBUt>^bFb5GDvx-_~gGUZ9hgK=e``{$79P1C0FrwY!KGJxDo7%uT#3DL8YCd0^&Alz zH5m-KIzI})?twq6XZ$y80K#DW^GZ>K7g~S3F}fpa(eFH67ZlR=iBdx(M?lVwy`UFp z)@Sf^Zy^TsNXTAiRLo=9#1@v8D(m>80)>iL0luKL_H*h?;yu1t|zI%73%Tx7%XBHqzw=Np}kL)R8I`WkK$9hIwZsNW; zV9;SUSBva2XG;L@xByA+{myKXp!=U(0E!FJ$D+G22P^%}%!B2%;{2$DyDd+8FG53b zD2U)Oa-rQs?a)is;gu4(dsak7oV4eDA^4AVmZpkR8RFB@CKvRZ&xcp^6bua!*xPoV zY+b8n#^J=Elj)QFo68j$I*J8O4vumP4avR1hK7a=2xT%tAn4+_iu z`$Mj^12JKQeFWk#L0*VevZ=S&;l=FDbukeITY`EDzvVGH4BY?6Q&sjPCq~+TW_`G* z`jS__)XWKcH!qnTz-G1aFQ;Rd@e)JmadVJ$lMr|`tbe?k6XX0?!h7>TcJyAeP3^@_ z^Udc;m*${eo2(#MY16rVTR~ptd1vfXIrXl?9gndx%Vuf7xm3ZIdmUAPC)1>Z&T|E< z+AryB<2!2r^)0r#+e(^s(ZyAoKut+GPRJN&fxX|jlsX=>dd;@54#ZFa#HP>0MYkti z%p>UL`bwksaA#0uE2>B9Cfu+#wE&^3ME*C@0&$cR8e+s8Lg7&S?|N=55z@0cwd>38 z8ivTwnYOwwxr=U=J{r=N!Jc;JI$vL&?P0IvmjO|7jj#xHcwM06UXokUd!*OOr>T|P z&0D|OTcDk{tyNi)pZ{@hq2uNP%ZuCtcA!>|p4{ubiDAMj=#>(Urz}?B~q&vYm zF;T(1H?^r1Wz#)BPKI(c9uI*&X@1u`LbJdg10L z-xinuDW@%NzSppP-dQY4MLi(EHb+QJWnyheTO(+x>0)~$%eSefCIuSL)_4p|ywA@! z`4@Yk;QPLw?VoA1>%6zle;iZ;a%|mhFqi&h+$O6rc0ZnYTEf%0*y2sHfnl(EvF`S= zt%9XDccv~m%2totNRRf5qLlzwR6Dm3L)1$q&7%B|hAgxJ0>N829cH5Y74aHkuQ{WdJq{@wK7m^Ifht zR%e`M<`??tj}$BV6#d!u^Ej~?8NGk6j;BsO$=vf-k$+HTGs)Z;Ri)T6>vmn*J*!H^ zk<2s~kSq9tMhl_({i9&^Lmf^XTs=+&<=$evoQInC5>hmal^Rm+a+TjvfbGqfGe?Uq z1Nv>vT&N^H{c%bCb{(06G*_d|f0DalQMT`txKk-3+nK1ow12n#taMKyCr;`4Ck{?+ z?$`fpS^o39#P+$peBA3#^54j`hq!4espR7F<)6Qfd-h3QAnFB+(L?j(3$@NsCuXL) zuYqr_iS*OU6o-Fc~n9LvuO1-EGU3A3+WWo0#ijN_|b30%%j9f|@8Zo##KKafvK#lsBrh)V@>6|5s*TVRX0 z8tE9$tcfgs_OJJuIkA)H0lp_y;h@x0pZev&B4+dE#naB(u8n7T+-9n7ffOm0k9MN3>)uA0H*{ipIaM z#@h*aGhJ={=1p9Dy!O!{Rk=YiCBJKcjJee+us>INS+#%e-1_^qHOOJ4xZvPGnd#dj zvTyQ<3i6uYK9N0rDPR8X!gzzYYgF^q9?28$?SJnH`FuszJQ)4Qo{A-#yPd`G25lTO zhLLFtpZ$wYFa`!qJCmg8{QdWjxf{C8#{O8^jZa)v_pN+`rp=4Yn8M%hSI~-=yd|KQ z-x%q%vD$7tnTZS6>kc_yEOZ!dLg zA(vz($CE0CM{2v{XFG}dd0gCeJI`aMeP*TXOufB@GwQt-uVQ9!EVR$;n|PIH%QAoc zqNNiY!RZ)X-l^!Np~ zwAoD9eesXeb=j=Xirh%^>1w*=bigs0eEsrfuJbt9YRIMVpxTNx+VF9!Z^%M3qL$m% zdi>|t(B{jfQj_2_muf#%Nrsh$Ge!#C2kzc1Sy|irHuHKf(%t9v$O4Ipb~=8fi?%o^ z_|jG1{k&WEt|Mq;f@h`M4``~OOb~5QU3FgWU>NHt3JW}l(uVE;8dTjJkK!K93uzpA$sj5}`iX;D? z&fSD(r_m;k21EvKQ=FejxY$I^wU(;(g9H20#cb3Nf=d#eW}CzM=B8j1#a&8~I;Y6r zuj7i-xhssIhU5Q~ign)^a2X;Knc|9{{nIl5{;=+368OqZA%IWhp7iyZf!@+V;%{R2 z-YzSGxP9{O@2MgEZEbBj3FQ4T-rR(Ss^z}&<-U*d-p>w@PG~X z^iaMe8AFE(vmX$DYePATG05iZU*X^2n@ZREdS|pBXxzY2lSwNm-^Z#3l4fUzzZZMwI<9CxFVSq{YfwrfIM*6GA~OV)|NIg4tzdWj1DJ12ZJb zDk{l1H>|dH_l&!%rd)&nv`3j^uA|QWAHjw^u8ICe%5j6m=K` zxY7=Gib&5kPy3J8N1Lx$DAsT)6| zn6c0=OaFYusQC0HjYDA+VK5PqLx+*}-MQ9~i|dP>8*l7cCEHo>;XlPuszm4O zmgRjHGgTiGxHvXTE!g2t?9<7g&OmcvZ@QDE4Nc0=Qan5G`TY-9*MMLV`>LI%J~{{(9P&C|%@a<1R1 zy1?EFyBy_AdrvxX0WzkMOOPyHMYE7uH%y{+QWB$!i9uhjJ?2qi?)5HEl#H`%{V*;1 zrYpfu=6WxtI|ku-DRHqSuzh0+!4x@<9-B4|^2kwDHM_^?{>VGJ;=WMkhPT(eW`6nk zbm2XV zUiY;v;EC!V6M!O6?^_HIe*OF7ELK2VjugZF4wfln7^Ke2Romad4%Y@(c01$Qo29(g zhtz;cn11fJzgT^7xaQ%TyRffS4c~X9hF+wNr|$+oT(yDOP5U<$Y&$(I;NtJ^siI#> zdI6tUT3nPgH8MIs@s$j&7Yb|ZXL*B72|k&w_hF>|^0NMiakX`;lr|nuv;hBEE_EfEgj^k&_hm|5qyh#?rF4#gfY@-euJ_)`#RbaFRj{fg zT}liJK<$Nq(bxg(?{P*}R`cXUrNit6Ac?L8TxJ?JAoP=%mbWq3R0!7TIw*fzUyc^Cv+UKhg zR~IKYe%{{4`M#3ZeSjl{H-N3Fv0dxxudM~#8J8bL455!Is!xEELIXh5spFj_44TvP zkBBn^hu$MQLS+!+R)}cUI3yI^2@~cREZ2b#`Txy+A;ZJN)A*E&%V7dA%Z2ONGo?DT z37b+KIl8B$$B|{0>iQz2zo*VxJgJaH3P*DF=GsAH;I73-#E(Co+>xp4%^~^{1<_}= z_|GGCPtzT^sW#`u)CO45JZf7pd}SXe9>X0^kMo&Gz`51#;q5ULBIzQet7wh4l9 z?|sM>!3<%~=Y|2Tkw%J>h11x&fG=ysoh3=R17P8W;#fzy=qylFojc`Zu{x%k$##5C6CVPnC( zn~(f=^rZ!B^%wTxrQs9258%NcWZq?oLw9Qk#v(1$Vwf;S5M$k?I@Fz{t1Ca>bn5n@ z#iVE6SmU1zQ>xD<58>Bn4{%~KS$>dn5ECYtJ%gfsevQOh*MYbw81$bN6qFRNVv}Un z0Z!I)P3_F>L+x6JRAl)=O7VffGE4{rKaTsUov304x_`&`b?kF|-`cNcv$w~gr7!eE z6NgAoN&e!9{_7DQzJOK-eHlml!H%7O)t2KGW!=YlNv3*{VGE<9C?WeRX0ktytw)oz zUQz{m_f|rK*Hb9geLbACf@M0;F7~m*?Ul9F``Ghxlj)&? zB{{7Ss1NuAgz9yCT=tWQl>wIll$$!ff{5+BL0=I{9y24$h_MaVixWn(TDoD4 zB|wT#E~!B-p6*ImLH7C_{DJ1QVv3t$d|E3bD(B-$_)M4^}8O3g@llS zFq0nzMW3O^;ok2~{$O9QN%ME&9(`=^_a{VxJ8>m5>E~l#oqLdM9>yO&Dr5hPlfuEl zzIA)K!Snn6?};6MnXtzkb{+6UR0pzH!m^Z%IPApBXl+R^*;*}cbNIs98Hf2%8?0||qNg+1DRqb_@zcoo0r6e7ChK`hd>ROKI?RS;D{Zuo4(>u=7 zbG{rQh4V0V{4JE66e_Ma5DB07&Zm4kq;F6*M)WIagbst!y2ic%z6s&xJx4r-#OLBt zPq8t;ODTv_?Iu_B4?M2G!kK*mH2RDm zbr(Yo7Y7I6R3pZ7S(3eR^w=azUTL|d{_@0*;BKmYH8BWQ)zx!t150DsVz$fUOl|-@ zeqyHqf@+5*57Ot|wp9xCu4iGk6L!r+G^V*abN@wHAdWO;AEyAA3n52h%TyIXs{?i1 zTwl+}Wq;1TSf#{VbOIyPgig~*$YO`*WFG(cAnr4w4TpsU#LH%IkVEn6?vw+J@BNW! zXp7|9v1+2$yrH@7gi~Et7A&R&kMX8J4K^??7JAahwy-=KPW9V1 zhaHWi?OS_Fl77ZnoNtA&etBX*bCiECVi`O2ucDNtK|PMCNM@F4;(MTIK~#lm$L$TL ztOu>D5j7u9Jy<2o_Jh?eRE1L|2P%>8K5?aV_4aj6L3Xh8!ac2Dg0YVBcI7FV#IGUu z?d!<|$9i(`6FvIhV3GJA7G&HiYm!JYr7&;4P~^K7JI>Bt#sz8==@)TSP7(Skr>^WG(M)29~E#=6!cv46Jp#j_4 zV<>$uw=;|yJgYPTqxy^thCAOU%u^>GCAzg9Z2zxQag_xVgn0>F_~j9R17WEwXiyq( z#kgUJAZd8%r0G0%ioP+oOTy00O1iMZ;_7tVvOx0WCvpj$16L>T2an=Lq>c~lrV2vM z$vg+Sm3*eKO{)yg$H%Ovj5qM_J;U85WYhWYE5O^_LKBrLIUkOcar^K_^GpazA<_%p z4l+zsL8*xUpCHa+h%3xo`4iOt-WbIys3##I{`gr2U>4Quh%ImE1Hut~ApY@G2^siN zr7UWAGa@MCU*`&F8uSmuo!h&^?S>^V>_N}FHQqITj334f5+JX|P)1S4J9n-p>qan- zoiU?#^i6=rVM?5My!ceOR=ti+HS9f>Xm^Wzq%N8^{QJ1Z9|JUY0Fdfdc193Pm^ek( zkK0Z^I~nnXD5e8M3ibi9r;b;A#=E`m1!V@Z_^|9&cYz@R(18fp@x{H{JMYRn(#y=X zH@Fm>q%0%^BQV~_*x@eiCdIJ)uOnsfR@khyDEEH>;$jXh%)1fEot=jWLag~>=OgJ? zd<^ZoqO||M?ta2}@IP;IVmX0_-BRamm<)8q{~w@F&AIRgvfQgC@D6`z+<$K4f!WrX zhmj1k5-Ldl@ivKIaM4J*XY>8~I?ME3U@tf(3GrVTSl|F) zVCTC9+57mp)}jxwoepcqYe=&k;qZciWdvxp+fJ_j^Z=y2lBE)Sjh}7{Q-Ke~us#Z$ zAo_#PAc7*XBN@Op<~3m55vcSDHw2egJ;_(cjNpHRHM0MLHMOcGxq*jIoMAWlbE*G# zFngGbwSGOn6ANZEl{Ll0WrA}8@8O^5_&9Iv(vRQrE>IqjhI<#fpW|ad(0~u4syJr% zcXpW8$e?FyUv4?OkX^+zuP!u|1e>(MmQF|P$z}ixdia2lEp@!TEZD_@)Ac3E!pmEC zzU<9i0*i_Y>?yr^`8VkB?(S9BZ}5|bYfp?bv~_^u)*ySV(>S33IlT9fT(z7Be_IHZ zZ11Zoy-SLD0ZBt7$zt;`l66oj(&W0^q4gP876iD|W7k% zU(tSO5i}*NO0@OqEhD2!2~?V36eToJ;+OSW@@BYAUw>{d&>4Z03o{4p;N+!^*WHV_ zO}St(Qr*YdlrJOfSuUiUQ%&v;edZd2kV0%@-x?O9wgoC7)HJ-!usIMGk}dZTbSy#k zu&i8&G}Z+C)Io7ZFSY`azl5T+HMF+i|CRX=Wp|d}{t6=mF=kpb!C*5V&ieTNixE&w z@8bj#sp9aXa50YAGOiwMZ?VMG+nPrlm?NLiH}Jl=p?^K|FmHj~FG$NoE@-;GA(uHByq~q0<|Rt_y=$dSR-Ye1rvyIgi8Dhzz*@d znhN7V82&~_|9zFE+B{YsLWV?7!M}7hRH8#YNgqZNpy!{m(_k;^7O>_S6;fpd>U8uh zzmHTTbCu!$D!8XqM!2g`cgyjOD(LG}T6*-r?701i@o&Gyp;n>X5H8{v(j?Csq#n(k zVJyA~c&{!pKfhnYwkI$8=tvop41W!003YLtgCML+NGa@QUGjd+vfh;Zf079X!w7pe zxu6tbC%v0VWx-^w1g;Kj;n<9dR0)@}P#QdlWu1!nJzs{J(H@4l1jRBN)p<6rAEER2 zey`nvh(us_1fn-q=Z?u;ZoKx?@d;Orl-AHCfDIId3gM}svSQ0au^0(+j?lpFX;l10 z`vwCgvV0Ia3WgXQ27>J;V`4srFLAMb8i6#V;S%Jh#!F#{MwT@>$VCu=6?Te@@E8x` zrb5Dq0HX=O4iM^SEE#n7?N%g*9Y-P);kn?Vuw%4~;NzrQmgu{$Ndl=i)1vx2*wfVG zDS3sGbOm9hh72Jvze~i?&1C(F zZ&9K9%|aHRNbMhQ@ZClHf5l1^+V#-y%ce!lOv`$mU^{y_S?*Ong*`6)&WF2*uLb$W zYGhr1iyM#yh};y#KbNfY0x#5vC=(_j?02-_u%8Hp-~kvKQ|Mb60Wa(kWAn| zT7SRCAp(y>%Kz(oLgjL!XdWIz02c;36E;zj#n==s<4RCdBq9(9r+j4wSAXH%H27~Y zd}%w2_Xz_80&xISjvqWNAa-RbQ-t~{Vz@E+O!I;e2#Q3%K#H**2f{R;0pEv&(J{}z zcl=6jyh4=$wDqI<)8-jy2G5>06R9$J^Jw*MU?Xx%0PPdj3|%L=e9pws$Mp)^dd4SJ zX{LEUXa>s{LNkJB0tQ^Rm*N7E$ops-S&*Xq?|`+X)GQoz>7Je*P8|g{Mi7~syFZtP z24?KzsXjEm6FnPdNVaEop1K6DTc#@jx~_cL#>QCIm(Caf;#2tT06!*_Cb;CEG}AJN zt3Y5dnBG@TFSMN)HFz>NrkNzLR5i^b)R@&P_GdG)0Nxk-Q_k!~Dgt3R$XU0N^ZS~t zTs&w>iix4OuZ(RCf)++Qq3>aY;F)oKXg_%Lmyfz)9gaYwteno4wMns_BCfWu-L*Y5 z2Mbucl%-bfWL@<_6J12Mx4|?o1UT(PSG!+vsB@H z@*>?gU;v5QiBgOpH~~&QDCEn>l>z(}X9DTW#s;PW!d-czYiEIfSo_`cgwb&%I{= z56!||QT*+T;l)rvh18lW_T_(DV@_m)gxdMmL@{MOJnOn`d(=fn3#H3D8e^XGE+U|mUkwZ^V6{~k zBd8Thl~d#k7ba}FCmGAJp=Tn`BS_+_I1nQIQ2zHU^J|4LfgjY+tVB;P{yV2y@(srL z9gNUPoE04NFCP;XItGotw3+iH@1%-f4+mZ=iT`I{rcGf)e5pyM2x@mZ?0zj`dwilV z|1;`~bzJS1a@R4)j8HmFdIywFx_S4`sRi_cIV>aUn%j=MHS8iRNbt=hSOd&XMQ=_# zf5Y0T`g6QuD|8_=Orc{`b(0X}6Z@HF-BhiEarK3Jfo-0k7iGw0TI9`L3o6&Ze{Ll< zm&3u=o;W4AFDdD5h@};4cltlc+@wV|&-dTJ=FK-QU8t)kl+PdWi!(K8Y6bIm0ybFq z%QwUoOx`;s;)gH=BX~`G+~w2LtyW3O9Z5C`?y=Q+4&j^YeG)epVx6d@pD}du7ET9OYZ4OJkC1%iNJXojj1KswTU;sFjKAQ+G;5J5`lp-6|j^Z(=C zamRhQ&-dXz?6F2hM%LPM?m55teQWPMGjo*(tDL3lHWHS#aVFpvRW5#}Sy$>{-=|{> zo9oqrT<>zKwpGZ`WLDjfxKAJ={2}(EPAuDc zwd->C#oqMuPI6r$!pQ)wM&p zNTC$WpSR+kVS6SXCLBa^%}CM4$r-j%@Ov~b85oTCRZ?C3DAT2JnE&t!!y4{MYlM*~ z)k+}=t_fA7!LggU4mT~>b4@~st})%%_dKQ(b{e>ybrmu>UQZ)W>I2qt)h@E#@0eNHBV}FyL9uw{>3add*X-`kQ91YGrwi`le38q z`K?XwB+ZV3UHaOy@sW71zFAFTm%~SeDVY56?W<+xq}>C&A88gD|3hV83Sig|zqMDw z$47BvUlN@-Lq8IywwR^qvA>|v2ME~=3(j5Fc^%?ESRo$FxoqupU6NWLD3{zG@2DO696H3x}t|)Qv>_j zkzg!ab5cHqpZ~^&Uw7+cJ5sqz-_a!=Axa$fou7}PB7!~!cZn=vw*cwfqLo;VpiIX_ zDE{8xm^In!?l*Q%u3VwFxXnxb-p*t0?8_}HUBw>q3AyHY!NmeZ#2hek*5lkCdK6w2 z4n;QDgJKA+)+h(zTOx6EfY+Y0EPHrfhyhPYtQ^mar z4Tlgf!A>LN`j7K{*c#)`(!8!JWxAQ-mJMIi>lkodq-*`=L=Mxx;Qe;kesnDMf_%fr zBX_@+j-q2JAJ?%OzL=k2TbdzJNcTo=s3y^@PORhYz#d{C zO8t24m0A8kj!fsVOwt`X_Q5YJD|~z9_1!G;y+1u{+9>(LSUNYHoBcblAl8ydagJ26 zqVV`WCat|BV8eQ{Okyb`uP8l7Uo^1g?UXUI(s5qV`#h^F4@qRp_>G8A$eU9e;v_k; zj%W$np&djo}u?gy@YEb&RWYjKWK%RW+U2`6?&Z4ss4*2woAIuJW!UqlnI2n}eh!hzM2(IbbW2BL>?bC8tEVPYKi zW9WW#)y#HHbd`fjHAd#yi<^pjS!5sLkH-fs=~Kg8{Opb9irvc-YoSM6)4=4i;RtKo ztmyqmh|wuroPMi4`|~@t^&B1U_#_zf!5v$3=H52n=XT0%uJ(xzqm#zP6QB=QrUKW#De{3_;0|JpLAd89L4H{2 zS-}*0VrhPst@u$=O!5t^8`~Iw8(*ffpM4 zKpHvrwM2zY+HJLkVOW`~dP<&;GiQPC6UJ54*!f{FImCIr@^mmYThHKhGC;YffFHlS z`rMURodOcQ4=%e9rd9Kq+VyaX>Bgrd6+;%Ly1*ZwZM3$kfv!S{V2n{><3=W-){d5k zcR`#<77)FE^Yp#6VU9;Vkt7}o(ec+C5c(Do#g^hujBhf|jSN2@q#(0!t=zV4hhY}w z&ZcYJ=@XBsZzsI5(dk*ghkEgnpot4J=1t!%CSMfa1ZvH_dQ{tOdOD{1rwdMshU&yK zs2w{7-l&C6Z4s1hEg=Y6YeI7}PFB@ztc)eQ;IaCxF6eKP_+VFw+ic52pWmh03;3?x zLnZw}&>=Z57>|B(8n%8gW1e}dV}7@*=;d~KG>ONM)(+2*L+jNGw>_ZqiF>JV9t!YV zudOZMJmFzCq7G>D2QE-|4HKz)mLC!aEf@}Q_yM};X}$< zc(hjYU*%6{i+5hIPO@f%#idI^huZ*w@n{-w@Ba_~w}`D9t$F?`3(yJ1PiF>LcYZ&M_BoEQ+l zaU9`K43O@d5krp|!M!B&?M`luIniDde{*Q0^m8R*D#=S<8ke&fdtt`3-^A)0_kBqL z8A?668O=^{ykS9rbt*SDJB%D0g#7*ePYI~RjEvl=$1ut*(qtX#Zy=GKW%pVJDxE4H zz+C=``T6%rIk>3W!A4(xX{k>Ka`|*WB#W*3n0E@s>Us`&1=NQZrpnU;oP9|LMFzCj zR3SaAGt~K7?lQ<(u@|Oxlcr2e90-GMtM_tkpOA-aKN$JlMXWi;)lV+ngZVxjSyn_y zR{v^ABayty2p{^34U8qkPG0b?XXF}=j$!)DJ*&cgzTmq**ZaXxi`&YBjt`xVTEd*G|9aQgM8L z8hQ3tQDp_>?YpsY>gED7{0Q7{q9JGf+vqLd>PX09Pghq_TY=8bhr&YS`u5Y4vd)M5 zJEsKIe2Z1qXM6GjSH@%b748?8TMf68lRS(=bR3UysEkz>)!_X9c}2Db^%%6)(oP`K zz)b?dV;;_9o;RXEDE(HMVy^zKu7}rc4&KBSeROG8^cuN}>U#5umSbvPkGZUb>T({b zM8^ne24pwpk&AI*cuw2|B+}T!i+5eR%)bNl?G*^d{;v~g~k#a5V;_ve(Pkp95DnCgG3APjA1K8CZq!XDM)gu z?o#mrxRDPgl@>%%pk|3qelv40*Ox~BI;bWPur+WMAWy1$OG0!;{%#Cj=T}`m_{md& z>P{u)ho}7d$}QS4@UT+P)f2;-`)FHI`M|Vfe+#XyE@?Xp z9g|b%uM$W~6+0Z)D=cZ5akkNf`WYk(0f$VC`DPCdAF;??|8k6Rno!ZIMb!N`;~S+R$Rn{ojYB8QalFk?=R3rA^7jHRJUU z4|I=qEDc`?vfguf^hz2_42U6M&k98XB};utV&`^qsCv8b6Y0I>2A|>Gy%kEXbSBG8<)k>iH;NP1TKg=v*t9jiu{2sUJeXtp!v{#G z05)N%B{yTfuu-9)Gq+6?SN=&eUwphp2r4H(1BrCdbUuUQx&Obe&Ik zoT!1|h2TPLTEp@pQDklWU(|}>Esr1{L<5_U*knEm`jkW(=J>FyAOZkY|M%~H%XPCV zqrZPV?s4b~|MuP>=A2T*Nx8;&0)3;;GOxM0S=^^i^9D5ZCH!Ko0}a8IL~MqbafX0e zaHIH7Zodx2EJcdD*LKt&vX%ajY0>8^HnJqAPBgb*RT|AkUK+o09HuJsoDlyS&a*^b0ONT!Jh z_PE-+uI6g6>=!K&c7WE;+^5%WFvY0&;_bSi^_gw}q68{!4%|{A#$UQ;g;ft%PqoLn z&t?QVu7~!%{mWB0aIP0m7_clj54*?^rt3K)iH>mt%Tqk!I)B1SK}HZUd?_Rho{@q+ z{6Jo&-lWzb%k~a%$Hm=rIW0K7kMSC``XB`=0GIC;?EcCwk+m;fI^0|Fsa|4r?Lq0y z@9(S+=CAalo1jKqh@SRnxQpyS`&oJ#(fimTR$n^hEHxJ9XNh(}bmAQKvRx2XJ_#Fd zwNfrGWF-UWK3y{39(vZCW=n0RLZ~bF>+mX#=qQ3ZH4?FGRd+?EnOn`Amdtp9pz+c0 zxqW!<&P5L%gkt|&VSX8O1x92H=fkF2rDDiR%Nv{8B3#wuA)X~ozefz8=q1ZJef|7e zY;=B!1vq8uW!k=v$c3Lx>SJ7;=NjNHR|94aK4o^-o#y9($$|A-*#H?43D-strFFns zf5Nbd7&4hcj2WGS3JSwcifC7ZRDMsInnD-bVNvb}=Q~$&w*Fy)2?3I+hudwMpbA5aHh6>YoVd9HU3P!27 z>h;W&=zYif9{)3O80-RE7`=6ViN?(IqMW2R*^`rgKW7DSL3-#_%WhQ#z?|f@;%Wd_k_!XULhlAoC$SEL z$a}2)=#ix{*^_*-(i+DAyphTt`yKjFnrQLhy|*Odi4S>8JKSY)5WpNC3!OWqkGcJY zhJu<9kzV8jfDTU=j5!7j-xhuU4G)Jg1wG~HDAtTB!f0Tol|O?o+3X$?HH=40 zX%`s-LyLLCgByvMT5?8b|B@)<0V3>6;|u{KlNwRp49J@e(uOkRj_+p{Bh$Cp3YB(h zPDkhM=R6$C%G!4V<;q^7gpc4S7FqzdqxSPT_gr5dG%x+piM_=NXo7_K{qF@fG3S+E zwm@|S-%9!luNH6QxI?bvA^2DDg+?vQ@`27+syEe@&Pk1?R_Hk)TtwfW)}syLbl{yM zgW%cT{YD98ssZ&G^$$db*kl(5E6KJ8qOdi~q3!ke^=N<6AJ9+JA0Uv1tqxRo{6{L6 z9+Yl@m^FBASFfy85nED_5SQWsAOCrQ{)TXy>jHYh%z=+yPPiREa8N^rCcv*; z7oBXa+&6e@r{6f()xHD{t+^M=hZr=T7lxVQ!^GbI)cbLTA&eL`YHgvmp!baMh4=3oY&V*Hs{7pcq?}V#qSc--m$0LO5# z;*L|F5M@DMoLbOLf%tB`0~`i>JQ!%i5Kr&{51Q`sl^qK@Ui)XQFuxqb2adSqL-(W# zP*veeoEvPrY+|bN#}xq!UI#Q3EUC|?R}4^cW_q%E0C`cjK{E|r?^b1eFC5hHN|tpn z*;*b;8n-XMe|-{tA)jMgWtF##fBQn2xqggCb{K_+BvL@Ofa}ikaAjSm!Qd|D-k^}= z7;(TsqaRclnQ@Vg>4|)Tr<`J(oKPs5>tk5+V6j=9lr9jyqL#Km2bY4 z%*Ncs%|WNx<%X4+o!P9}@h2)g7hvR`Qwd<)QAs^oUh z@E=H>WvQ2$F4C!UiqFFjcEPJ(HCI@jslHXXTY>Amda{L9X

T8WX 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 I_3l3U4_-zx4gdfE diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pat_trie_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/pat_trie_tag.html deleted file mode 100644 index 2e9a32c91411..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/pat_trie_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - pat_trie_tag Interface - - - - -

- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/point_invalidation_guarantee.html b/libstdc++-v3/doc/html/ext/pb_ds/point_invalidation_guarantee.html deleted file mode 100644 index f67722169c1c..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/point_invalidation_guarantee.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - point_invalidation_guarantee Interface - - - - -
-

point_invalidation_guarantee Interface

- -

Signifies an invalidation guarantee that includes all those - of its base, and additionally, that any point-type iterator, - pointer, or reference to a container object's mapped value type - is valid as long as its corresponding entry has not be erased, - regardless of modifications to the container object.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-basic_invalidation_guarantee
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pq_container_traits.html b/libstdc++-v3/doc/html/ext/pb_ds/pq_container_traits.html deleted file mode 100644 index dcd995f5f7c7..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/pq_container_traits.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - container_traits Interface - - - - -
-

container_traits Interface

- -

Traits of a priority-queue container based on its underlying - data structure.

- -

Defined in: tag_and_trait.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Cntnr
-
-
-

Container type.

-
-
- -

Public Types and - Constants

- -

Container Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-container_category
-
-
-
-Underlying data structure.
-
-
-

Data structure category.

-
-
-invalidation_guarantee
-
-
-
-Invalidation guarantee.
-
-
-

Invalidation-guarantee type.

- -

This is either basic_invalidation_guarantee, - point_invalidation_guarantee, or - range_invalidation_guarantee

-
-
-split_join_can_throw
-
-
-
-True only if split or join operations can throw.
-
-
-

Split-join throw indicator.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pq_design.html b/libstdc++-v3/doc/html/ext/pb_ds/pq_design.html deleted file mode 100644 index 959560045277..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/pq_design.html +++ /dev/null @@ -1,381 +0,0 @@ - - - - - - - Priority-Queues - - - - -
-

Priority-Queue Design

- -

Overview

- -

The priority-queue container has the following - declaration:

-
-template<
-    typename Value_Type,
-    typename Cmp_Fn = std::less<Value_Type>,
-    typename Tag = pairing_heap_tag,
-    typename Allocator = std::allocator<char> >
-class priority_queue;
-
- -

The parameters have the following meaning:

- -
    -
  1. Value_Type is the value type.
  2. - -
  3. Cmp_Fn is a value comparison functor
  4. - -
  5. Tag specifies which underlying data structure - to use.
  6. - -
  7. Allocator is an allocator - type.
  8. -
- -

The Tag parameter specifies which underlying - data structure to use. Instantiating it by pairing_heap_tag, - binary_heap_tag, - binomial_heap_tag, - rc_binomial_heap_tag, - or thin_heap_tag, - specifies, respectively, an underlying pairing heap [fredman86pairing], - binary heap [clrs2001], - binomial heap [clrs2001], a binomial heap with - a redundant binary counter [maverik_lowerbounds], - or a thin heap [kt99fat_heas]. These are - explained further in Implementations.

- -

As mentioned in Tutorial::Priority Queues, - __gnu_pbds::priority_queue - shares most of the same interface with std::priority_queue. - E.g. if q is a priority queue of type - Q, then q.top() will return the "largest" - value in the container (according to typename - Q::cmp_fn). __gnu_pbds::priority_queue - has a larger (and very slightly different) interface than - std::priority_queue, however, since typically - push and pop are deemed insufficient for - manipulating priority-queues.

- -

Different settings require different priority-queue - implementations which are described in Implementations; Traits - discusses ways to differentiate between the different traits of - different implementations.

- -

Iterators

- -

There are many different underlying-data structures for - implementing priority queues. Unfortunately, most such - structures are oriented towards making push and - top efficient, and consequently don't allow efficient - access of other elements: for instance, they cannot support an efficient - find method. In the use case where it - is important to both access and "do something with" an - arbitrary value, one would be out of luck. For example, many graph algorithms require - modifying a value (typically increasing it in the sense of the - priority queue's comparison functor).

- -

In order to access and manipulate an arbitrary value in a - priority queue, one needs to reference the internals of the - priority queue from some form of an associative container - - this is unavoidable. Of course, in order to maintain the - encapsulation of the priority queue, this needs to be done in a - way that minimizes exposure to implementation internals.

- -

In pb_ds the priority queue's insert - method returns an iterator, which if valid can be used for subsequent modify and - erase operations. This both preserves the priority - queue's encapsulation, and allows accessing arbitrary values (since the - returned iterators from the push operation can be - stored in some form of associative container).

- -

Priority queues' iterators present a problem regarding their - invalidation guarantees. One assumes that calling - operator++ on an iterator will associate it - with the "next" value. Priority-queues are - self-organizing: each operation changes what the "next" value - means. Consequently, it does not make sense that push - will return an iterator that can be incremented - this can have - no possible use. Also, as in the case of hash-based containers, - it is awkward to define if a subsequent push operation - invalidates a prior returned iterator: it invalidates it in the - sense that its "next" value is not related to what it - previously considered to be its "next" value. However, it might not - invalidate it, in the sense that it can be - de-referenced and used for modify and erase - operations.

- -

Similarly to the case of the other unordered associative - containers, pb_ds uses a distinction between - point-type and range type iterators. A priority queue's iterator can always be - converted to a point_iterator, and a - const_iterator can always be converted to a - const_point_iterator.

- -

The following snippet demonstrates manipulating an arbitrary - value:

-
-// A priority queue of integers.
-priority_queue<int> p;
-
-// Insert some values into the priority queue.
-priority_queue<int>::point_iterator it = p.push(0);
-
-p.push(1);
-p.push(2);
-
-// Now modify a value.
-p.modify(it, 3);
-
-assert(p.top() == 3);
-
- -

(Priority Queue - Examples::Cross-Referencing shows a more detailed - example.)

- -

It should be noted that an alternative design could embed an - associative container in a priority queue. Could, but most probably should not. To begin with, it should be noted that one - could always encapsulate a priority queue and an associative - container mapping values to priority queue iterators with no - performance loss. One cannot, however, "un-encapsulate" a - priority queue embedding an associative container, which might - lead to performance loss. Assume, that one needs to - associate each value with some data unrelated to priority - queues. Then using pb_ds's design, one could use an - associative container mapping each value to a pair consisting - of this data and a priority queue's iterator. Using the - embedded method would need to use two associative - containers. Similar problems might arise in cases where a value - can reside simultaneously in many priority queues.

- -

Implementations

- -

There are three main implementations of priority queues: the - first employs a binary heap, typically one which uses a - sequence; the second uses a tree (or forest of trees), which is - typically less structured than an associative container's tree; - the third simply uses an associative container. These are - shown, respectively, in Figures Underlying Priority-Queue - Data-Structures A1 and A2, Figure Underlying Priority-Queue - Data-Structures B, and Figures Underlying Priority-Queue - Data-Structures C.

- -
no image
- -
Underlying Priority-Queue Data-Structures.
- -

Roughly speaking, any value that is both pushed and popped - from a priority queue must incur a logarithmic expense (in the - amortized sense). Any priority queue implementation that would - avoid this, would violate known bounds on comparison-based - sorting (see, e.g., [clrs2001] and brodal96priority]).

- -

Most implementations do - not differ in the asymptotic amortized complexity of - push and pop operations, but they differ in - the constants involved, in the complexity of other operations - (e.g., modify), and in the worst-case - complexity of single operations. In general, the more - "structured" an implementation (i.e., the more internal - invariants it possesses) - the higher its amortized complexity - of push and pop operations.

- -

pb_ds implements different algorithms using a - single class: priority_queue. - Instantiating the Tag template parameter, "selects" - the implementation:

- -
    -
  1. Instantiating Tag = binary_heap_tag creates - a binary heap of the form in Figures Underlying Priority-Queue - Data-Structures A1 or A2. The former is internally - selected by priority_queue - if Value_Type is instantiated by a primitive type - (e.g., an int); the latter is - internally selected for all other types (e.g., - std::string). This implementations is relatively - unstructured, and so has good push and pop - performance; it is the "best-in-kind" for primitive - types, e.g., ints. Conversely, it has - high worst-case performance, and can support only linear-time - modify and erase operations; this is - explained further in Traits.
  2. - -
  3. Instantiating Tag = pairing_heap_tag - creates a pairing heap of the form in Figure Underlying Priority-Queue - Data-Structures B. This implementations too is relatively - unstructured, and so has good push and pop - performance; it is the "best-in-kind" for non-primitive - types, e.g., std:strings. It also has very - good worst-case push and join performance - (O(1)), but has high worst-case pop - complexity.
  4. - -
  5. Instantiating Tag = binomial_heap_tag - creates a binomial heap of the form in Figure Underlying Priority-Queue - Data-Structures B. This implementations is more - structured than a pairing heap, and so has worse - push and pop performance. Conversely, it - has sub-linear worst-case bounds for pop, - e.g., and so it might be preferred in cases where - responsiveness is important.
  6. - -
  7. Instantiating Tag = rc_binomial_heap_tag - creates a binomial heap of the form in Figure Underlying Priority-Queue - Data-Structures B, accompanied by a redundant counter - which governs the trees. This implementations is therefore - more structured than a binomial heap, and so has worse - push and pop performance. Conversely, it - guarantees O(1) push complexity, and so it - might be preferred in cases where the responsiveness of a - binomial heap is insufficient.
  8. - -
  9. Instantiating Tag = thin_heap_tag creates a - thin heap of the form in Figure Underlying Priority-Queue - Data-Structures B. This implementations too is more - structured than a pairing heap, and so has worse - push and pop performance. Conversely, it - has better worst-case and identical amortized complexities - than a Fibonacci heap, and so might be more appropriate for - some graph algorithms.
  10. -
- -

Priority-Queue - Performance Tests shows some results for the above, and - discusses these points further.

- -

Of course, one can use any order-preserving associative - container as a priority queue, as in Figure Underlying Priority-Queue - Data-Structures C, possibly by creating an adapter class - over the associative container (much as - std::priority_queue can adapt std::vector). - This has the advantage that no cross-referencing is necessary - at all; the priority queue itself is an associative container. - Most associative containers are too structured to compete with - priority queues in terms of push and pop - performance.

- -

Traits

- -

It would be nice if all priority queues could - share exactly the same behavior regardless of implementation. Sadly, this is not possible. Just one for instance is in join operations: joining - two binary heaps might throw an exception (not corrupt - any of the heaps on which it operates), but joining two pairing - heaps is exception free.

- -

Tags and traits are very useful for manipulating generic - types. __gnu_pbds::priority_queue - publicly defines container_category as one of the tags - discussed in Implementations. Given any - container Cntnr, the tag of the underlying - data structure can be found via typename - Cntnr::container_category; this is one of the types shown in - Figure Data-structure tag class - hierarchy.

- -
-
- -
Data-structure tag class hierarchy.
- -

Additionally, a traits mechanism can be used to query a - container type for its attributes. Given any container - Cntnr, then __gnu_pbds::container_traits<Cntnr> - is a traits class identifying the properties of the - container.

- -

To find if a container might throw if two of its objects are - joined, one can use container_traits<Cntnr>::split_join_can_throw, - for example.

- -

Different priority-queue implementations have different invalidation guarantees. This is - especially important, since as explained in Iterators, there is no way to access an arbitrary - value of priority queues except for iterators. Similarly to - associative containers, one can use - container_traits<Cntnr>::invalidation_guarantee - to get the invalidation guarantee type of a priority queue.

- -

It is easy to understand from Figure Underlying Priority-Queue - Data-Structures, what container_traits<Cntnr>::invalidation_guarantee - will be for different implementations. All implementations of - type Underlying - Priority-Queue Data-Structures B have point_invalidation_guarantee: - the container can freely internally reorganize the nodes - - range-type iterators are invalidated, but point-type iterators - are always valid. Implementations of type Underlying Priority-Queue - Data-Structures A1 and A2 have basic_invalidation_guarantee: - the container can freely internally reallocate the array - both - point-type and range-type iterators might be invalidated.

- -

This has major implications, and constitutes a good reason to avoid - using binary heaps. A binary heap can perform modify - or erase efficiently given a valid point-type - iterator. However, inn order to supply it with a valid point-type - iterator, one needs to iterate (linearly) over all - values, then supply the relevant iterator (recall that a - range-type iterator can always be converted to a point-type - iterator). This means that if the number of modify or - erase operations is non-negligible (say - super-logarithmic in the total sequence of operations) - binary - heaps will perform badly.

-
-
-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pq_examples.html b/libstdc++-v3/doc/html/ext/pb_ds/pq_examples.html deleted file mode 100644 index 15311ebc35eb..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/pq_examples.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - Examples - - - - -
-

Priority-Queue Examples

- -

Basic Use

- -
    -
  1. basic_priority_queue.cc - Basic use of priority queues.
  2. - -
  3. priority_queue_split_join.cc - Splitting and joining priority queues.
  4. - -
  5. priority_queue_erase_if.cc - Conditionally erasing values from a container object.
  6. -
- -

Generics

- -
    -
  1. priority_queue_container_traits.cc - Using container_traits - to query about underlying data structure behavior.
  2. -
- -

Cross Referencing

- - -
    -
  1. priority_queue_xref.cc - Cross referencing an associative container and a priority - queue.
  2. - -
  3. priority_queue_dijkstra.cc - Cross referencing a vector and a priority queue using a - very simple version of Dijkstra's shortest path - algorithm.
  4. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pq_performance_tests.html b/libstdc++-v3/doc/html/ext/pb_ds/pq_performance_tests.html deleted file mode 100644 index 3a6b26912085..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/pq_performance_tests.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - -Priority-Queue Performance Tests - - - -
-

Priority-Queue Performance Tests

-

Settings

-

This section describes performance tests and their results. - In the following, g++, msvc++, and local (the build used for generating this - documentation) stand for three different builds:

-
-
-

g++

-
    -
  • CPU speed - cpu MHz : 2660.644
  • -
  • Memory - MemTotal: 484412 kB
  • -
  • Platform - - Linux-2.6.12-9-386-i686-with-debian-testing-unstable
  • -
  • Compiler - g++ (GCC) 4.0.2 20050808 (prerelease) - (Ubuntu 4.0.1-4ubuntu9) Copyright (C) 2005 Free Software - Foundation, Inc. This is free software; see the source - for copying conditions. There is NO warranty; not even - for MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE.
  • -
-
-
-
-
-
-

msvc++

-
    -
  • CPU speed - cpu MHz : 2660.554
  • -
  • Memory - MemTotal: 484412 kB
  • -
  • Platform - Windows XP Pro
  • -
  • Compiler - Microsoft (R) 32-bit C/C++ Optimizing - Compiler Version 13.10.3077 for 80x86 Copyright (C) - Microsoft Corporation 1984-2002. All rights - reserved.
  • -
-
-
-
-

local

    -
  • CPU speed - cpu MHz : 2250.000
  • -
  • Memory - MemTotal: 2076248 kB
  • -
  • Platform - Linux-2.6.16-1.2133_FC5-i686-with-redhat-5-Bordeaux
  • -
  • Compiler - g++ (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1) -Copyright (C) 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -
  • -
-
-

Tests

-
    -
  1. Priority Queue - Text push Timing Test
  2. -
  3. Priority - Queue Text push and pop Timing - Test
  4. -
  5. Priority - Queue Random Integer push Timing Test
  6. -
  7. Priority - Queue Random Integer push and pop Timing - Test
  8. -
  9. Priority Queue - Text pop Memory Use Test
  10. -
  11. Priority Queue - Text join Timing Test
  12. -
  13. Priority - Queue Text modify Timing Test - I
  14. -
  15. Priority - Queue Text modify Timing Test - II
  16. -
-

Observations

-

Underlying Data Structures - Complexity

-

The following table shows the complexities of the different - underlying data structures in terms of orders of growth. It is - interesting to note that this table implies something about the - constants of the operations as well (see Amortized push - and pop operations).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pushpopmodifyerasejoin
-

std::priority_queue

-
-

Θ(n) worst

-

Θ(log(n)) amortized

-
-

Θ(log(n)) Worst

-
-

Theta;(n log(n)) Worst

-

[std note 1]

-
-

Θ(n log(n))

-

[std note 2]

-
-

Θ(n log(n))

-

[std note 1]

-
-

priority_queue

-

with Tag =

-

pairing_heap_tag

-
-

O(1)

-
-

Θ(n) worst

-

Θ(log(n)) amortized

-
-

Θ(n) worst

-

Θ(log(n)) amortized

-
-

Θ(n) worst

-

Θ(log(n)) amortized

-
-

O(1)

-
-

priority_queue

-

with Tag =

-

binary_heap_tag

-
-

Θ(n) worst

-

Θ(log(n)) amortized

-
-

Θ(n) worst

-

Θ(log(n)) amortized

-
-

Θ(n)

-
-

Θ(n)

-
-

Θ(n)

-
-

priority_queue

-

with Tag =

-

binomial_heap_tag

-
-

Θ(log(n)) worst

-

O(1) amortized

-
-

Θ(log(n))

-
-

Θ(log(n))

-
-

Θ(log(n))

-
-

Θ(log(n))

-
-

priority_queue

-

with Tag =

-

rc_binomial_heap_tag

-
-

O(1)

-
-

Θ(log(n))

-
-

Θ(log(n))

-
-

Θ(log(n))

-
-

Θ(log(n))

-
-

priority_queue

-

with Tag =

-

thin_heap_tag

-
-

O(1)

-
-

Θ(n) worst

-

Θ(log(n)) amortized

-
-

Θ(log(n)) worst

-

O(1) amortized,

or - -

Θ(log(n)) amortized

-

[thin_heap_note]

-
-

Θ(n) worst

-

Θ(log(n)) amortized

-
-

Θ(n)

-
-

[std note 1] This - is not a property of the algorithm, but rather due to the fact - that the STL's priority queue implementation does not support - iterators (and consequently the ability to access a specific - value inside it). If the priority queue is adapting an - std::vector, then it is still possible to reduce this - to Θ(n) by adapting over the STL's adapter and - using the fact that top returns a reference to the - first value; if, however, it is adapting an - std::deque, then this is impossible.

-

[std note 2] As - with [std note 1], this is not a - property of the algorithm, but rather the STL's implementation. - Again, if the priority queue is adapting an - std::vector then it is possible to reduce this to - Θ(n), but with a very high constant (one must call - std::make_heap which is an expensive linear - operation); if the priority queue is adapting an - std::dequeu, then this is impossible.

-

[thin_heap_note] A thin heap has - &Theta(log(n)) worst case modify time - always, but the amortized time depends on the nature of the - operation: I) if the operation increases the key (in the sense - of the priority queue's comparison functor), then the amortized - time is O(1), but if II) it decreases it, then the - amortized time is the same as the worst case time. Note that - for most algorithms, I) is important and II) is not.

-

Amortized push - and pop operations

-

In many cases, a priority queue is needed primarily for - sequences of push and pop operations. All of - the underlying data structures have the same amortized - logarithmic complexity, but they differ in terms of - constants.

-

The table above shows that the different data structures are - "constrained" in some respects. In general, if a data structure - has lower worst-case complexity than another, then it will - perform slower in the amortized sense. Thus, for example a - redundant-counter binomial heap (priority_queue with - Tag = rc_binomial_heap_tag) - has lower worst-case push performance than a binomial - heap (priority_queue - with Tag = binomial_heap_tag), - and so its amortized push performance is slower in - terms of constants.

-

As the table shows, the "least constrained" underlying - data structures are binary heaps and pairing heaps. - Consequently, it is not surprising that they perform best in - terms of amortized constants.

-
    -
  1. Pairing heaps seem to perform best for non-primitive - types (e.g., std::strings), as shown by - Priority - Queue Text push Timing Test and Priority - Queue Text push and pop Timing - Test
  2. -
  3. binary heaps seem to perform best for primitive types - (e.g., ints), as shown by Priority - Queue Random Integer push Timing Test and - Priority - Queue Random Integer push and pop Timing - Test.
  4. -
-

Graph Algorithms

-

In some graph algorithms, a decrease-key operation is - required [clrs2001]; - this operation is identical to modify if a value is - increased (in the sense of the priority queue's comparison - functor). The table above and Priority Queue - Text modify Timing Test - I show that a thin heap - (priority_queue with - Tag = thin_heap_tag) - outperforms a pairing heap (priority_queue with - Tag =Tag = pairing_heap_tag), - but the rest of the tests show otherwise.

-

This makes it difficult to decide which implementation to - use in this case. Dijkstra's shortest-path algorithm, for - example, requires Θ(n) push and - pop operations (in the number of vertices), but - O(n2) modify operations, which can - be in practice Θ(n) as well. It is difficult to - find an a-priori characterization of graphs in which the - actual number of modify operations will dwarf - the number of push and pop operations.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pq_regression_tests.html b/libstdc++-v3/doc/html/ext/pb_ds/pq_regression_tests.html deleted file mode 100644 index 9084409d3501..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/pq_regression_tests.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - Priority-Queue Regression Tests - - - - -
-

Priority-Queue Regression Tests

- -

Description

- -

The library contains a single comprehensive regression test. - For a given container type in pb_ds, the test creates - an object of the container type and an object of the - corresponding STL type (i.e., - std::priority_queue). It then performs a random - sequence of methods with random arguments (e.g., pushes, - pops, and so forth) on both objects. At each operation, the - test checks the return value of the method, and optionally both - compares pb_ds's object with the STL's object as well - as performing other consistency checks on pb_ds's - object (e.g., that the size returned by the - size method corresponds to the distance between its - begin and end iterators).

- -

Additionally, the test integrally checks exception safety - and resource leaks. This is done as follows. A special - allocator type, written for the purpose of the test, both - randomly throws an exceptions when allocations are performed, - and tracks allocations and de-allocations. The exceptions thrown - at allocations simulate memory-allocation failures; the - tracking mechanism checks for memory-related bugs (e.g., - resource leaks and multiple de-allocations). Both - pb_ds's containers and the containers' value-types are - configured to use this allocator.

- -

Tests

- -

priority_queue_rand.cc - checks all priority queue types.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pq_tests.html b/libstdc++-v3/doc/html/ext/pb_ds/pq_tests.html deleted file mode 100644 index de8cb447c71b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/pq_tests.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - Priority-Queue Tests - - - - -
-

Priority-Queue Tests

- -

Priority-Queue Regression - Tests describes the regression tests; Priority-Queue Performance - Tests describes the performance tests.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/prerequisites.html b/libstdc++-v3/doc/html/ext/pb_ds/prerequisites.html deleted file mode 100644 index 7c888849918c..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/prerequisites.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - Prerequisites - - - - -
-

Usage Prerequisites

- -

pb_ds has been successfully tested with the - following compilers:

- -
    -
  1. g++ 3.3.1, 3.4.4, 4.0, 4.1, and what will be 4.2
  2. - -
  3. Intel icpc 8.1 and 9
  4. - -
  5. Visual C++ .Net 2005
  6. -
- -

The library contains only header files, and does not require - any other libraries except the STL. All classes are defined in - namespace pb_ds. The library internally uses - macros beginning with PB_DS (e.g., for header - guards), but #undefs anything it - #defines (except for header guards). Compiling - the library in an environment where macros beginning in - PB_DS are defined, may yield unpredictable results in - compilation, execution, or both.

- -

Further dependencies are necessary to create the visual output - for the performance tests. To create these graphs, two additional - packages will be needed: pychart and Beautiful - Soup. Both are freely available. -

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue.html b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue.html deleted file mode 100644 index def310f0c004..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue.html +++ /dev/null @@ -1,995 +0,0 @@ - - - - - - - priority_queue Interface - - - - -
-

priority_queue Interface

- -

Basic priority queue.

- -

Defined in: priority_queue.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Value_Type
-
-
-

Value type.

-
-
-
-class Cmp_Fn 
-
-
-

Comparison functor.

-
-
-std::less<Value_Type>
-
-
-
-class Tag 
-
-
-

Data-structure tag.

-
pairing_heap_tag
-
-class Allocator 
-
-
-

Allocator type.

-
-
-std::allocator<char>
-
-
- -

Public Types and - Constants

- -

General Container - Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-typename Allocator::size_type
-
-
-

Size type.

-
-
-difference_type
-
-
-
-typename Allocator::difference_type
-
-
-

Difference type.

-
- -

Categories

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-container_category
-
-
-
-Tag
-
-
-

The underlying mapped-structure tag of the - container.

- -

This is one of:

- -
    -
  1. binary_heap_tag
  2. - -
  3. binomial_heap_tag
  4. - -
  5. rc_binomial_heap_tag
  6. - -
  7. pairing_heap_tag
  8. - -
  9. thin_heap_tag
  10. -
-
- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-cmp_fn
-
-
-
-Cmp_Fn
-
-
-

Comparison functor type.

-
-
-allocator
-
-
-
-Allocator
-
-
-

Allocator - type.

-
- -

Value-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-value_type
-
-
-
-Value_Type
-
-
-

Value type.

-
-
-reference
-
-
-
-typename allocator::template rebind<
-    value_type>::other::reference
-
-
-

Value reference type.

-
-
-const_reference
-
-
-
-typename allocator::template rebind<
-    value_type>::other::const_reference
-
-
-

Const value reference type.

-
-
-pointer
-
-
-
-typename allocator::template rebind<
-    value_type>::other::pointer
-
-
-

Value pointer type.

-
-
-const_pointer
-
-
-
-typename allocator::template rebind<
-    value_type>::other::const_pointer
-
-
-

Const Value pointer type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_point_iterator
-
-
-
-Const point-type iterator.
-
-
-

Const point-type iterator.

-
-
-point_iterator
-
-
-
-Point-type iterator.
-
-
-

Point-type iterator.

-
-
-const_iterator
-
-
-
-Const range-type iterator.
-
-
-

Const range-type iterator.

-
-
-iterator
-
-
-
-Range-type iterator.
-
-
-

Range-type iterator.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  priority_queue
-  ()
-
-
-

Default constructor.

-
-
-  priority_queue
-  (const cmp_fn &r_cmp_fn)
-
-
-

Constructor taking some policy objects. r_cmp_fn will be copied by the - Cmp_Fn object of the - container object.

-
-
-template<
-    class It>
-  priority_queue
-  (It first_it, 
-    It last_it)
-
-
-

Constructor taking iterators to a range of value_types. The - value_types - between first_it and - last_it will be inserted - into the container object.

-
-
-template<
-    class It>
-  priority_queue
-  (It first_it, 
-    It last_it,
-    const cmp_fn &r_cmp_fn)
-
-
-

Constructor taking iterators to a range of value_types and some - policy objects The value_types between - first_it and - last_it will be inserted - into the container object. r_cmp_fn will be copied by the - cmp_fn object of the - container object.

-
-
-  priority_queue
-  (const priority_queue &other)
-
-
-

Copy constructor.

-
-
-virtual 
-  ~priority_queue
-  ()
-
-
-

Destructor.

-
-
-priority_queue &
-  operator=
-  (const priority_queue &other)
-
-
-

Assignment operator.

-
-
-void
-  swap
-  (priority_queue &other)
-
-
-

Swaps content.

-
- -

Information Methods

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  size
-  () const
-
-
-

Returns the number of distinct value_type objects - the container object is storing.

-
-
-inline size_type
-  max_size
-  () const
-
-
-

Returns an upper bound on the number of distinct - value_type - objects this container can store.

-
-
-inline bool
-  empty
-  () const
-
-
-

Returns whether the container object is not storing - any value_type - objects.

-
- -

Insert Methods

- - - - - - - - - - - - - -
MethodDescription
-
-inline point_iterator
-  push
-  (const_reference r_val)
-
-
-

Inserts a value_type object. - returns a point_iterator - object associated with the new pushed r_val.

-
- -

Find Methods

- - - - - - - - - - - - - -
MethodDescription
-
-inline const_reference 
-  top
-  () const
-
-
-

Returns the const_reference - of the largest value_type in the - container object, i.e., a value_type v_max for - which any other value_type v in the - container object will satisfy !cmp_fn()(v_max, v).

-
- -

Modify Methods

- - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  modify
-  (point_iterator it,
-    const_reference r_new_val)
-
-
-

Modifies the value_type associated - with the point_iterator - it into r_new_val.

- -

To use this method, value_type must be - assignable.

-
- -

Erase Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  pop
-  ()
-
-
-

Pops the largest value_type.

- -

If the container object is empty, results are - undefined.

-
-
-inline void
-  erase
-  (point_iterator it)
-
-
-

Erases the value_type associated - with the point_iterator - it.

-
-
-template<
-  class Pred>
-inline size_type 
-  erase_if
-  (Pred prd)
-
-
-

Erases any value_type satisfying - the predicate prd; - returns the number of value_types - erased.

-
-
-void 
-  clear
-  ()
-
-
-

Clears the container object.

-
- -

Split and join - Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-void 
-  join
-  (priority_queue &other)
-
-
-

Joins two container objects. When this function - returns, other will be - empty.

- -

When calling this method, other's policies must be - equivalent to this object's policies.

-
-
-template<
-  class Pred>
-inline void
-  split
-  (Pred prd,
-    priority_queue &other)
-
-
-

Splits into two container objects. When this function - returns, other will be - contain only values v for which prd(v) is true.

- -

When calling this method, other's policies must be - equivalent to this object's policies.

-
- -

Iteration Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline iterator
-  begin
-  ()
-
-
-

Returns an iterator corresponding - to the first value_type in the - container.

-
-
-inline const_iterator
-  begin
-  () const
-
-
-

Returns a const_iterator - corresponding to the first value_type in the - container.

-
-
-inline iterator
-  end
-  ()
-
-
-

Returns an iterator corresponding - to the just-after-last value_type in the - container.

-
-
-inline const_iterator
-  end
-  () const
-
-
-

Returns a const_iterator - corresponding to the just-after-last value_type in the - container.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html deleted file mode 100644 index 903331d9d7d0..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - -Priority Queue Random Int Push Pop Timing Test - - - -
-

Priority Queue Random Integer push and - pop Timing Test

-

Description

-

This test inserts a number of values with i.i.d. integer - keys into a container using push , then removes them - using pop . It measures the average time for - push and pop as a function of the number of - values.

-

(The test was executed with -priority_queue_random_int_push_pop_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures (see Design::Priority - Queues::Implementations).

-

Results

-

Figures NPG, NPM, and - NPL shows the results for the native - priority queues and pb_ds 's priority queues in - g++, - msvc++, and - local, - respectively.

-
-
-
-
-
no image
NPG: Native and pb ds priority queue push pop timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  2. -
  3. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  4. -
  5. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  6. -
  7. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  8. -
  9. -n_pq_deque- -std::priority_queue adapting std::deque
  10. -
  11. -n_pq_vector- -std::priority_queue adapting std::vector
  12. -
  13. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPM: Native and pb ds priority queue push pop timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  2. -
  3. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  4. -
  5. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  6. -
  7. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  8. -
  9. -n_pq_deque- -std::priority_queue adapting std::deque
  10. -
  11. -n_pq_vector- -std::priority_queue adapting std::vector
  12. -
  13. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPL: Native and pb ds priority queue push pop timing test - local
-
-
-
-
-

Observations

-

Binary heaps are the most suited for sequences of - push and pop operations of primitive types - (e.g. ints). This is explained in - Priority - Queue Random Int push Timing Test . (See Priority Queue - Text push Timing Test for the case of primitive - types.)

-

At first glance it seems that the STL's vector-based - priority queue is approximately on par with pb_ds's - corresponding priority queue. There are two differences - however:

-
    -
  1. The STL's priority queue does not downsize the underlying - vector (or deque) as the priority queue becomes smaller - (see Priority Queue - Text pop Memory Use Test). It is therefore - gaining some speed at the expense of space.
  2. -
  3. From Priority - Queue Random Integer push and pop Timing - Test, it seems that the STL's priority queue is slower in - terms of pus operations. Since the number of - pop operations is at most that of push - operations, the test here is the "best" for the STL's - priority queue.
  4. -
-

Priority-Queue - Performance Tests::Observations discusses this further and - summarizes.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png deleted file mode 100644 index 68f5e2b6bdb66339b14e93ee37f9e229bcf8325c..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7350 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png deleted file mode 100644 index b8cc15330abeaabdad1f3a138bb0b3b7d72be962..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 46818 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

VtV*@bG0r)rlu{cM-#0{t+ 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 Hhe7`Z;7r*< diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html deleted file mode 100644 index ba91f601a294..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -Priority Queue Random Int Push Timing Test - - - -

-

Priority Queue Random Integer push Timing - Test

-

Description

-

This test inserts a number of values with i.i.d integer keys - into a container using push . It measures the average - time for push as a function of the number of - values.

-

(The test was executed with - priority_queue_random_intpush_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures (see Design::Priority - Queues::Implementations).

-

Results

-

Figures NPG, NPM, and - NPL show the results for the native priority - queues and pb_ds 's priority queues in g++, msvc++, and - local, - respectively; Figures NBPG, NBPM, and NBPL shows the - results for the binary-heap based native priority queues and - pb_ds 's priority queues in g++, msvc++, and - local, - respectively

-
-
-
-
-
no image
NPG: Native and pb ds priority queue push timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  2. -
  3. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  4. -
  5. -n_pq_deque- -std::priority_queue adapting std::deque
  6. -
  7. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  8. -
  9. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  10. -
  11. -n_pq_vector- -std::priority_queue adapting std::vector
  12. -
  13. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPM: Native and pb ds priority queue push timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  2. -
  3. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  4. -
  5. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  6. -
  7. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  8. -
  9. -n_pq_deque- -std::priority_queue adapting std::deque
  10. -
  11. -n_pq_vector- -std::priority_queue adapting std::vector
  12. -
  13. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPL: Native and pb ds priority queue push timing test - local
-
-
-
-
-
-
-
-
-
no image
NBPG: Native and pb ds binary priority queue push timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NBPM: Native and pb ds binary priority queue push timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NBPL: Native and pb ds binary priority queue push timing test - local
-
-
-
-
-

Observations

-

Binary heaps are the most suited for sequences of - push and pop operations of primitive types - (e.g. ints). They are less constrained - than any other type, and since it is very efficient to store - such types in arrays, they outperform even pairing heaps. (See - Priority - Queue Text push Timing Test for the case of - non-primitive types.)

-

Priority-Queue - Performance Tests::Observations discusses this further and - summarizes.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png deleted file mode 100644 index ee8c9b7d9a98bcd94689ef585227f61fe635e2c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7021 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 Z0kpSx@4HI;Jner6I+_L=rE0cO{{ZLytC#=) diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png deleted file mode 100644 index 51fa718d279e43fcae7f19c619ae2d7484a00471..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 41433 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png deleted file mode 100644 index 0a1a8eaefbcc7c7340025c3e105e9921fbfcb0a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7100 zc-qBzcT`i|*JfxUpdh?pKn3i+6bTRn=}Hml5SoAqO(IQs=@99PbWmCd9jO5XML-2Y zl&%D%N(UhVp^Jnjg!|p_e)F5PX04eu^VgiUvU2v>=j{DF&pzkgo117O1Fe(nXV@VS z$Vu(H8VCr45e9)UlpSXRN2s}`p%4fY#7NIn6GCrr2m}p*;2;nZ1Om`4I2-~;L*O_F zoCJXbbSD}PL8BpP90W~*paJ?^92|l}LvT03Qf404oLx3GxHef))t?fTP_29Mu~*swi+&GvKHyz>)62k+Q&%cEFK3z!87o zh#_#q0XRYl9N_?tG66@ifTP*KzxMy9=7e(sl#@@JCIZ|fIBwF$!>N332n1mr7oW3tIJPB+6vPxg$f^rPe!+3=UFK% zKOuzBb9vAgOjJhCP}D8XUXD%%41@gt)|nrU8sSeNo`M^x!{*+dw~a%{vSQ=~3R1em zPzLRPJ9_0|lcjVSTVm;?DZFDW-tcc=V6QUgK6G34i4Fzvy? zE>(uAnUIC6*eZgfji}bW(o-$}wSrgw4+i#iPDEjt98%4#ZB73!kELdh3W{ zhcRc{?I(nKrtsI3cWHOsI<`C~63yX)Yg&nmw_uI)vgO3Cv+0iSwqETwEZxOpl}Dz{ zSfxj&C;O&@^jR^+mmF)K3_NuVT9@=4!|cV_S-xM75~+aRxIer&aiU6>?L@{>5%*_C zAB(RlVW>)9M(ks1wOB_dO=UyzQg4@6eV?x8_uig0ozZK`RKH{$ZVKtDa3&))iJ7YA ziuV1}+jTa%S64p|Y6X8cU=Dj;(3M@nVaP-E-Vj7SRziA$3C>X3s3CiQYhe`)p)W80 zT%1*`pYX3QOyyz5?XJUCSvuXs@8hl@ z@qzQWcp>&hNvuKT!zBr2WRebBv*~c`9FT;^=9R>HO>`Kt5_z)X?cmFR6{lDL=H-)|-NySVJkOjPRcKO5$XN{AMB<=@ zb02alg@?apD0XQ*BjI`zijjugGPCl=$`vsmiyw#H$dNr~9Y{DQBz2o``Ho+JiH>cr zIZVSB#UJ!!q)I9rwOt{>MnxoXQ-51>CQd>7kZWP6B&Ra$gPoMEtYt%;Oqao980}Xy z%%x3PY0hFMu>TrW@i00M%ivTF^`&jCzJCUun_IA2_?gT!jAg4%lBeU$_*b%~pxzoK z$y&#@-<#04?P=Fu_cCLw@5*aX3MRr$uky*Z*ji)Qm zK}*je*T79e`4N2i{bTCIokkyTZ81=cu3d^b>_LLWUJ-MK9aU|fl4PTk=d48RO4|A# z1~GUr8cDBhQBh^gPq-KSDR5m_He82QY!Rf_zmcjsk@~7XamhQT2%`#gdYz(s2FKmd8Mn+}=Mx|C}9 z40L375AQj+BR1!{Nt{P#8`B#*BQ&>k<+B$%2CvP9k-7&{Ek5^~mvSW<+~^5(aRjJp zzdO%RlUh$;E_{Jtv>7q^GSaFoyTo&@O!ikT{(Lx>?4>oBpO{7Y%Y7VUqjL()4?tCh zVE6e_61(cM^0OlDC!8YWCcY+ifb7~gLT1>l^o5~sAtKYSYfCM%m6AEANq5G#+x8Ee z0ZnlY_veWma4yVhKZJ0(uMU_E3Yh_#r)N7zKYMkV>aBARTi3L5-C5K9Tv8HaNA8{8 z3D!V?J2?|IdkD+*`cV*g|AT@ok*NFcpu~Yqk3syl$4h6ZtCBu_Y&39^DdgD2JnZE> z>>tZ`JuXbZ0-(kWRs^K)|Kr~-D{Yd5;1!iRI_Te5+^G4`GhS7psH9NT*Np7=x@E29 z>PpWfefbs&)c#SN^LwaIAWqKdHcYz)nLGbi-Liai)pTYNDylXMc6@}?=beA#1aB$1 zp<=V^6TD_mBzVSpBwe_mPq#Gw+gtOO}=XPfvr`tqH%5-BEb$L@0&YM=O`Z ze;O}3{Ts&|Ry+{X9~OKeZG`NvkE5OYdX(3@Zi-(?C17Yn-vB%Wmnc_8QyDNK2J4tn zu9EfNN4Y2{n0yYxeZmox4Ku8JgMQO?p*WuSY7-^!$&pe1|M*-`xY%}_+A2JHZ;LVS z{R6N1JPjhNdU7FF|65vB`GHs9jKs0E=C((P!K(b1B>v*P?iI6|y|~@xi{H*3Z6!Y( zKSK+a%!3a5>tqc1OQULF3mq-om=js28RV3h_z(9zWM3(SUTCgLUOu2<*{ql04zSa*&7q!^h=oF1WxzXCcB6hI>?g5VI>g;j{ zWvXY5=%K^&rK*9^*QMA4u{3eks%pl7h~UlPp}@?{n`Lg}FPk52Yhlfic# zTWR1wDS+|F#9~VRBo5C!YRlR>_%Ql{H75Xhur@gzcoT2H{ci9xk|w(|B*cFfb94Q6 z9gDi*)RR2?`pnd8YvhAH#kgY0r9B^ysqAzMq40}*mp4p(LM(P3e*2tAGYD`9{CP3~ zwKUh5UjHZ&D?8_Rcd#y*Ha|Y?is&5b62-i~&-L4v+-QO#5d&4i#*KAQ-&48deiMe^ z+=SF?YT*9JHJi#D%!&hJZAH!eF@p7>LiMCteX>(CEDlwwq{e>Q6pIn^Rw+4^RK|MN zqX)TxzCeOUYhy4!h2=qSU=XIWF*t30dB9!qoyeR6g zs}9>VB997E9M6;~#WD~`YT4JA^0D$GqRNXb1ijm}3yk?#fzlm*5vnu;U#`M)RC~$1 z`ciM#FVlEu2qDg3@)SQ>aP6QLw@{v?yTIa9dLto?qAKc$_uk#V=m~7#?ygfSPVDvCfq+k?(E=11KWLU2D z>x-qLIm@@7Sa&9x1gA8&)xXaLW{2|JiQMq3EnfSh)+YZO`v)n)K0wua@e2EGbWyo( zcei6u7xXI&mCt)Lyusg-qDKX~uxXKnP&euTS`blzjg1uh$Yc*%Cl_Kxe+ckk^TT9eom zt1?b_d|2{A8p)b#v9meccRh5ptKNGN=BrI!H`n<7%`B;_sn$4>SGkb)x_1e7GK4r( zIhN(+*2?+l-d_aM4L>n8pVjDh>L~EMa->hm&i9#~~~+ zAJIct*?PMVi!aUe?hWcv3eq_|fLT zVteOj53wRAQZ2tR$J%bYSvtD!9xB?k-7mtwQt^rAfjLLy%NWc|EJM(8TieR`3oE^Y z*D*31(+vj6_K^;P>xI!v22Tbp8ilW)-6^L+({z7ocF$m_(>Rmu^#H}h1)#mZaD)xp zm2NQ>4&vzc(25L53j zbl*p6jBlAK2<7#1cjBsML2qy+;vo^HrBp4r(aEd5ni60y-W+vJxK%0s($oy1V$Z7MCY*t-aiAnZ@!acg1aXNHwmX- z&1pMB(as7<6g}9?pN|7-W!Wn-pNe3F%T~9QjW~=b0doHNf?AGt&%>?B0sX(z_-b$9)2kC zzy1(Em3ZQ3sQ-iWkKd=kGE}|rd?3;iCQ>&JML~G(F$cNzH+#> zgQ^z4mwU{3Wp6S*Wa>vEoBfAP@j&mmLyoAKrHF62U`?I}sakyu>Ea}W@|z3B>@dU4 zmvA>Ij)86jQxaH;t$O><;C5jCUb6g?<$0@Ru7oH*=v~>qviA9Q4p^KFpW}qMM3cxU zfKkGuQG^>{xotqlZ!}cgf%1 zm4(%kr6e3*J^QN@^gd_K&pb5pxp)bW5ix%l_&`E?Y5yfOWEivYEZL$_rtWTD=9=U_ z?7npHWNB2xL(y_I)xO<^a>}s*67gPrSg6%(Vq&AVBA>_bS&?k=;=Kdp?>!`62<`QS zU%c!6RRmSlZk1r(5SaevhsAe1A09lJ{#M>bojDFZOFNYaNtOVQOHZ;pFICFv4;ge1 zr0JJoQxr@c4w?0lllxI))lxO`B`8E^e~Q;ccJbf+g=q`g84CxMD8%{wZq?ESx%!5# zW%=GN>rNTXq6TKgZ(*n@gjbfCIfwR@beSrv1DXfnfL1G^b^TAj?*6o)LI~q%Q>Wp( z0URo0I`^;LceQqD4}*uOC0Nx+qYP_B4VrGGhP(#53JYzqZE|7hS|Q#j<61y~vw^-c zBGf}~NNSKPKJo7bX@pE_#?=jG_1-1urq7=FnVx**2rHtW^WR_3DJQ#7Z&2~0b;E-& z>hH68K)*E1=-B_w`@+Xdy>Ue@fz^JIiN6NGt>}e}6jdmreVGzex%lE3c&%JkFzpLj zG2CAJ#T_Qo+qHXtIA8FxPKSv%Rs>>*J{C>^Vp;p{1eL5mr!PjM6A{Dwa z_||0H7vD%vJ65MV$D-)7GFW$Vp6Q6}CSq28=_|%~Ict6O6yJjSPAEo>#wE{ZeoNA9 z>y^Qet!T-l*v}&(X&;$eD3$NrGskSL&{bQ_$AeWmHvW8bEiGFp65N2_lw;Fz7%!If zPldilskp<$i%`eiYt~mOr@eRxR1c&fp^+%ucQ>N9XF;h*eoc#6jwgeoE9LEQas8_w z0Ye0YX}qlQ$7?Auw`8-(i6vhs1rIGpCQR5*7bN}_c*{aiuUR0msi#X$*R6`j6n;X( zw-c>oD!Ai;VrZ$Ece#B-`dYQREII#dec$j4u~5xi4mHNV-uyP)&|jUa9{X z>cuSnYz*w8FOyAHcaAKZ*8BC?H@3UkL+E|6%)*?yoM-l&5x}VbC3wvt$({74eEX4&n7E;16vBem;KM~ zQs3OO$!ES7eLD)?u{Aiaen8_-hU3GIcAX%hyCyaL?Nd}KbzLG|6!yZs&2abgt>pl1X{_6W*XVu8*_S3ZR zwY|NU1LCc9D+g^W_a#+5FNFM*;qbUmphZf|a%H)?J}&S% z*xU7c@f9%^>hELury7V2;#%*~HpOl}d04-dMv)o)n8q6(slQOaEOhsW!k#h`8XwxE zH@+x8#bzQ`ycmj_I`1xzfQ{$BjD{_>mY9dltqe+ZL@1%{f6|=3a)O8Sxqe)@>=c=g zTwu0#Cj|OzB*5K5=31N|idhVLqJ01Y665-BVu!4!SORZS|BBGoG|;G2vkm_* DD|qdg diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag.html deleted file mode 100644 index 8b6d81c37ecd..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - priority_queue_tag Interface - - - - -
-

priority_queue_tag Interface

- -

Basic priority-queue data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-container_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag_cd.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag_cd.png deleted file mode 100644 index ed8d875f0f883c5fa096bcc8ca2e6ddf7ebc1627..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 10845 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 N9T_F*d`Uz9{{k}F=db_( diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag_cd.svg b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag_cd.svg deleted file mode 100644 index be007aecb8d3..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_tag_cd.svg +++ /dev/null @@ -1,368 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Benjamin Kosnik - - - - - - - - - pairing_heap_tag - bionomial_heap_tag - - priority_queue_tag - - - rc_binomial_heap_tag - - binary_heap_tag - - - thin_heap_tag - - - - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test.html deleted file mode 100644 index a4bf576ff524..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - -Priority Queue Text Join Timing Test - - - -

-

Priority Queue Text join Timing Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - two containers, then merges the containers. It uses - join for pb_ds's priority queues; for the - STL's priority queues, it successively pops values from one - container and pushes them into the other. The test measures the - average time as a function of the number of values.

-

(The test was executed with priority_queue_text_join_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures (see Design::Priority - Queues::Implementations).

-

Results

-

Figures NPG, NPM, and - NPL show the results for the native priority - queues and pb_ds 's priority queues in g++, msvc, and local, - respectively.

-
-
-
-
-
no image
NPG: Native tree and pb ds priority queue push timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  8. -
  9. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  10. -
  11. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  12. -
  13. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPM: Native tree and pb ds priority queue push timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  8. -
  9. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  10. -
  11. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  12. -
  13. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPL: Native tree and pb ds priority queue push timing test - local
-
-
-
-
-

Observations

-

In this test the node-based heaps perform join in - either logarithmic or constant time. The binary heap requires - linear time, since the well-known heapify algorithm [clrs2001] is linear.

-

It would be possible to apply the heapify algorithm to the - STL containers, if they would support iteration (which they - don't). Barring iterators, it is still somehow possible to - perform linear-time merge on a std::vector-based STL - priority queue, using top() and size() (since - they are enough to expose the underlying array), but this is - impossible for a std::deque-based STL priority queue. - Without heapify, the cost is super-linear.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png deleted file mode 100644 index a48bb3586056fb395dc946be22a81bf2bc457650..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6458 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png deleted file mode 100644 index 67318f04896a176ea21675a4b08d6b8f0728209f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 38222 zc-pl4cTiLB7d;9mL_k15K%^H#QBbJ@p@Reg>5zaZO;Hh$4u(#!5u_QB9-2}Q0wU5| zkdD%O?;s$(_j~gB&i&2%&i(JsTxLL%bIw!uUVE+m>=R<3r$I~2P7Q%TXtgwvMi2-Y z4+H|;yhs6l(|$Zr1O9Wt{jL`3BKYHX@hJ}cOy#0!<__LJNcx4|y^-hze#z#c{=mc7 z`MC$?vD-5U27?i?b8>LEdF=8`#M#X@aZQ080^x;dAyrXcgn#20FVwR=;^sQlTmB0d z-wNs`q@q+m;K;9#3keHX{BSV4d{E9SJoM~#*^rB8-G|o}438NG-;-akd;J+A`~|N2 znGv{Pr0EtAI41v;^|_It@h2ChPWO~@_jP&6>y8U^)$7OHhUhTyCRQ7`fZzy})h0}Q zq2Wnu@PFU5eWC|HHz7X@@PHq~LT+d)k#1!&jPWDgDEQ^pp%{2U2WhtT7`zaN`!QEf zy1?-4|EmVFx4P+w;D3Z}G31P7XvbdXkZ~GgwC>H+U5OE~@W}$!B454C-1x6qV_|-N z{ySAWJ=)6ttHpy41+QO+eaEa%l6NK ziz$Hts^;cn;?0thl1u%$gQnYyo$Cx4T{;ZW3F18Po_k0DDNhFu41XOi<+Jy1_?OHk z1Q!}QI}x?sXa;p80_jZyMeVz2QwAcs<2}kZf zZR8C@G|60qn+4f!W1p*#2S&zA+Uj)>gJ8c8+87O4{__SmD;X?#Yp`A1RF3N4S)$@bjboRjbV+Bkdr!F}NE+qdtt zQUZ?RDm+&P^mTQ|tL=I-SxOy8_jC!(;NZ27tUV1xiMW2 z00~i1Upp1H|LloaR4BxC?pH({2Pl$x(Z$i61i6QdO~%lkTsom&z=U{g`OTF|S|At(z8eAKhlo_S2WzJnxLkg2QV#kU1JOkzLYN2Zx z@q2IyjtAr(#^@E$46kGdoE{BYxVKB~o+gEchJICjL$UawrIM(G8Rd9kg{FTeS5wp> z=P<*C8QUBLFZSaiBW>Fgqyo#=YmS}1SymsRefRzy-tH?fWre%-;28M0eUFy1ID8`- z8ydvi=31g=W@en6hQ3cXN*kUJ-a==MH z1YGIlbNe`K99(SpytvXyteCHp}Hy1^iD_vh# z1MRUyMn6t$x{yYsEVV~m)NStK>Cx_^jYbwL5BkRAY+M7>RmJbIQ=+t^&*~=u?V~;b z{d;{o$+d|sJw5$EzL-Zj_CB^9NO&|>Q2+V1`tspr{0i1Rh!W))oU%=}Lq2gCFAlJy z7DV8R*Z`GVF02T)xJ-cQ^iBakT+O9oWdX{QZSNyi;1DKsh)m~nVebm6LVo2k7%p86 zf>9bxdM_pk?@tDvyKYOmySWYhc&1IgalwFA^ObY;esv_8%)auGp^aYib)luvQfJf2 z1{kljbWEaC#nQKO_eH&{cocOC;y~U6`teHxI}eY3Y6C3wd3%Bx5x(^))RP!_ro?zMVv)QuS$qCn+Hs`8N2X?f!Z+}E zt#UoT|E^v?#->$NwsrjhnL+0`B-=Pkk2ol|{YTO!Dk{oZM_2c@&I|HZkJ7MTW888c z*}H4wm7{&xhV|=FpgH|9=|4-m_=iyTp=WzD9eB=?nFg$ppLHe`SUd$P3R0!vJyfjZ zVTS#fv3j2JYRRU!8`)+>3pwHJQWfP7i|vast0Tp(psDEt_GtqaE}{h`*9v65!n)WO zYrU*ET$wIyG1Ati^!<*xUHPmlRn^X-@>O+(ZD+FQtFpFwEv4g-e(6s#%;SS!sC*Zw%h`Olv} z3hcexoyxVde_4U1Cz`r9tKqv9R&wsW4V^N*J8Z#`>?-=)AGo;71(>YD)X)7?R5O1*0Zrn7eeAVx; z7z{02xy&&CPDq@&-6U6vv$*CbDl z1muNKv7b=IoDvU=kDUs0zBris9_5~+NasuoNK;^iN&20jFgIWnRXGLXGI zt=aI%2#5RWJb9K9&LN{DBQ7rfczdCJ6x>4B#p(LsQgwN0n_ogho=S4lC;LB|77utC z4$bSu^4g-j%Jy=XuXS=H;rPi4ru)2Q6TEPmY6OQCN30rfq?0`>v4Fe|FFx8|pB%B8 zff|%LS=jdj#m*p-OSY_ZALuzs-S0bG@1$r+WYYWIs^Nb^U(xo9Ess^eSi|8v5tzICvFo_olu6HON6v{oWqtnrDXckI>m|?&9i{XN~%_7;wn&4?;qvI!EQ!5&vOWA+eDZ31%k388kytDu+C zLWj4X|RMGgu1lk ziSUevE$S5E;+edSIrhiwVq967WC$9lA`E%!aHE-PU!1*62i>clj>qXh11Nu}r;CfB z(C%N@vc&NV1D4Aw6B(aHIFGr%(;SdpA3nGX`^IV?Cf>-5+PVf`4LStm(8v+8>}4oJ z>s9;*!{pp^mMI^ZO&q!4><-qi0FWG;_>@LWztQwUrwf^GpQV?S3=$Dn8Z5YFr)7SJ zTiwehzI%3$IR1u2x$Io1qIvan_Rp2=9j9+SJwKLHK@Lb$viMcpMQ8p2=A=0u(d+p2 z9=h3QT#+R%56};7p@qB2Y*4#!#Q4P--MDrwZF)Y|>a6uPT3l6b1Bwjg{?o44q4w;^0m)>F*_}v0 z#A+u*aLJccV`ioe)9#XsRBil9xM}hYau8oN5q=0H1dPGJiG6s@?E(O!*yiy(q*4DV zd%`i+}^#xF_h_$xQ0c@pE$aD(5$d+azYbssGpfrLyE%C-mS6Y1+o=;=qoCu@8 zbHg;B6XIOGYf=g_v6XP=nnS^C{zu5R>CeUmK~V;MJ0tWSD~jXMU}&FbaTj!n1_G|= z_<=e`sE!U14m-;LFy(xIuTS5~J$nb}Q9Z*pW&o3rNt`Cr*yfEjfw(ld1eI-ti-Z`= zO9icr;YkpNS0d9xfDtmS>mNbh+*BV-U+esDsBpqqzkID?#lE4T;gZwvkNFvpO1CrO zKU@(B+88sLJ-DAwE_>l0g;9_qNs-98OcC48*hS2K%*hajg+ayhg?x0|6}nMfd2VW5 z4(Ku9Tj5(iR2=(ItTR~}5T*W9v14~rh^Pou3@tvEa{2VpO+^%adPkx=;f368pRqHC z$DfoCVOCg0jwjoB|G`n`m)S89t{(VEY5M^d&;>rCI=M0uv+%&F%N1i9CI zcpcHZslK&Q^46YVx*E5}$6T+_2Hmq9?LN+XSPVoH2%H<6T3TAk>3mVIqb{zWRySH$ z2?_|z4?tlQeP!Dn@}kRw1y+p2W}ZO5sn+W$ClaKKGYX}kSiJuordR83%HU7#bst?c zHW9RAbdWL#nNm`2=7Fy5j2ZS9!rf>$N^qCLw;l>UdyhjY?2oypD9?X39*GgPQhE#q zi_yWnN0{^Xv>Y*4PX1y$<68uH2!H_Pr8!b%0h(bKVjDb z63ETbV5r{akh1rXA}+KiW@Tk&c7%G|0uANc-RnH?Pjl6R*nMl={Q$ZSk4O5)TPk<& zOr(Zp1Hjo-`E0~v?~6k@fR(Qds^1R&gDUPCydJf?-}3%p2~IO(qS`m`bi|<`$*}U3 zBLr34_?C+4VN$@+5+)BMVC^cAeCKmt-q$vJYr#q&iT)+Gi3?ovuUby`Cu?1{=33kR zc@DOLqgWlwG?k9;0QO;=iX2I>`c?l>OX1HT+k$;aB?ttJ<^246PUJ zUHx7gR%5f2aHbN|mCTtn`kBF)d$28x20lhdHyZ0J7O#S%3)}s#JlF*E*fK%bd!q z%h1wUow}q{;P-2P-C0)YmqQ7$RsrRCweG)TMHj2KJNWqc>L-_!H<$9JhUT6)->f`8I*6+GbjORXdMxV;IU5ln#TmL;7 z#E@%RK!^CUom)^N_Z^JKL4ds?E$G`#S3K*!&SozMNyK@Lh4)r&e+TG_8onMN(=%{Y zSV>)9vaXlA%l(yt`pJG{-_rb#_coh2od1+I)U(>OWx~S`Z`j=xU*IEdf5@9R^jq6m z(ROK~vY7I;r`zD%Fa%@Qy=33D@={tZxu1q0pFi08E!r!noAA@R?lt)!()V77cvIZQ z_qqDF1RRR;{nQS3(m!rJ*aVTS>-ekw@ko23OfA2-cwwEs^6Abd$kk&sq@R#dBv(8h z%i8#bw6GD|i7H#vUrsM6&{yRHfk(as`R_%@{tFVIe<(HHS3;(9T>c7dBh%SF<^hR! znG%F(k^EO}qlXfM^4F%#3CqOJ=_?$!s>dCgSZ(f#{GC%n3c{#4o6PJsFLr$H$EQ)X ze|`!#qC8N>Z2x&UOkefE-L6p>%3%|>c{6*i-a_YPC7{F$kA!6}KWETl#Je@#PJVV@ zgkkAJl(i*QLq%|H{nEVGsQm;fzohwHk;fLMd?Xtn(NTP+rmFGuJ|{y+Gh4H(q|19> z1VSv6UxQk>bJ154M&*Wr%qSm3XMD;s% ze`sg5(OCk?MH-NZoD(3JUCKkwp?TR@IoqbHLRz$d3O@5r=Pg_dIU?3X1lm>}YzpZl zThFn7{_}|>XaPsezDe{9IqxKY3-C8qZFwizVt0X~*Mo&?)+>HjKp6W6Mm1%JzU*#6 zNy+Ulkj`fXg2H3nH>u!)d9b@(MusnfCN2nE73w86n=q=7)F^s}kh=JX!_do}uIMC# zZ&)OE+oFeQD)okJhfd->#EQlr(GG_gPcRHQy6z3z>VrYy$!LY=3YnP0z_&O0io1Qm zp)8`@G+_{mX+LM^8AK2&TIt|I%HdsOLTyb8a$A*;8WGMv25s!$#kFK0&eJAw@(10Y zB8kX!zsVYZ7XO3kVB4k!&PQ#wOFbFou@vK&m^s=ZD*Up9ZU)=xm>zS`}+FE zfdr1$xG)e#hF)7t-?@sQ$)@FZdr9BWbGhLi?qUb3^BVEV)RBt7fOff+E@qd0h^i_;tXVlCTHqFz%;R<;T;E9O4&s4hBCW#=Q#6?D)pMjoRKtg*dEj>L7>$S1+U>={pX`NSZ zKfFVvt_62KBpsA0p;#Z_$ft$RExA_YBLHYnzZm4&dR~cZQ6xS=Td+oy-IpsZ{VO;n z&P#>BN#58ePjv(1B9H9hT$H|+wzl?UiQ}k-^2tVhuHmIYRvT(vk0)I(06w~|Z?-g$0F;uNm2;TmK!UTt%BWm@a*cAW zAxGj^Uax0U6$O)Qn$yUySQaJ;pz<@lwaMC)qurIxElfw;58j~>5eMvdezwDd%d9ki zHWjbInS%n!+Fh^msv(6T=g`dP{@-G2Ly2055Ni=Vv*Tkj+CNfFaYo;ae!|4kj7cC> zK{gLEA7AgU1+}jLIU!Wt;Xxwc+4uxZEHZ1v;7*uWufZ))yRBl4 z%&u@Fm>0WDH`&0{xBgAXoi7qippWxI+9f0jCkA_MB&{wWnzTn-h$mDy79Q# z5KVtVa^1-->iNmYW2OGfi~c}bX8>R7Rbmi~a?3w?Y-|i#COJ?whikDUAR8uQmVLiv zE2c>~4E#x!c1)Q3tqM`}+3`~DlBF-bprK2xcSG;X28~H3jOyJ>hx=t9T>>g5R-DMK zi`Va3!QHNJnBksmv(&3HlvCO6HEAOx<*50XFP630+VR5MT|^4ar?`(e4}t-w50^I9J^3RNNnXA1`V9ifoT%Pj-CMwub86zM~sdA5Zl%G(0?y{KCJ} z%XnrYUF!S6n77+$mPHpgpBuIy$%ja)#O+YgN>5L(3gWETl){Q&wj`FN*SKQhsAW+0+Xv^;y} zn3ZRVc$F~mxHE76jE*-4lz-dUS3$}A($cSdokFaxMk+ z&!FF6aAHLHNdqqaFmGFx!RNb<2eZ(jL4Phrhlw>Y~r(N>`-oisRHi^xP2Q^BTS&yD*FNGm81C+}4#Z7?~`-q6@Mf6Q|gZ@{YBt8pmT=3o;u?+?WJQtgZP^7T>pvgy&Qu#l*4VZ~fI0b{%?@%t;o;f*Tca0 z6N6Y2h}Bk4=j-^f`Fp%BAu5QOxDUwHTYU1r(eVeL&4hO&<`L@=%&+&M7-+$RIvHaV zPFc6~5}di#RKu6leRv~VcKPj;RZOYIboTvd;c+dc)?nEQQ2(=-7FeDdq;4-QEs;mq ziD&XY6Fl57=x4UXbdo>MUG9auy^*(^XP%P2ud+3*XX?v_s8`$(ae4HZ;v1WB0;iJS z!F}E?L=Yz-SxcXBlcV|i)xayL7ZM-UL$5Nt09KpAIUM_Sc;e&ZLF3uxV3G!D=9pn$ zD^Ov91RxsJ@{YoHg=h6bjr(PgbDY-f8(MeXxMh)@)0C0hq7DVE%YgTe;a6<#>LNb{ zZDXClxV(b58jXvKTSde&p6)()Nk90kOD&kL+P768_LgXB{Nykb$dak#4lm=U5wW5* zb!=?oWM!;bXZN)>rNk_e$wvKefC^2d)7-(X7WV6|_0i0gY;EZC_Z2L6kw?>Es|dCh zisTF2M*a0^eq5xEfmwcz@gOIaM}$K3+}vD>JSyMZdmw^K{@z>JhS_Z3dYyRFXI@nS zo;7y%RV*FxD+H*}LEZ}%D|ur4fAS&kBqL@t_8E0<^IqCCH;-BKxbK9;07L@6`km`94i=U843HDtP zwejeeJ8q_XJN)e9E>}yp&tUq^OG|{v-rTZ3lH^qyk=%}aY`Nl@9yHR2Lt#Z?o!zgU z;70T>EI%>QJJ(RX1@x}scM-F9Ga>ug%TH2*`-xh2+o08`-CmVWt6Y=3=W6dSd2e-V z@Ho!N4iwrn$C(v9_bdZ>oZO!zd6ua_V!M;+cX2}jcyViGSP$2WrQSKQ?{BM~&W@_& znuu6dd8vX(4~r4g)YrE{pWwp9pQ(Re@%wfe9{`si&lZFa8XD=C|KGI$ut3Y+XDxgAL1|3; zC|sfsgMC5rl;)-*E7%gquG1dZzbEex6*HW%box6rY~K%f8V0P=b1MvyXK4_(57g%R zM_Vw){U^Dv<_lW?#7j0OVzIXZF!{NrTz0t?tDz64=nWE8w8)L33Y6@?+Rb6#%GozCP z;fYu_xP%Tma^OC~FgY&wu7r+>{iYXwgER$z67MzZmdsa4qZegJvN4y5AA#|+uHBmw|)jfww1MY z>LO_M%Q6%1ijnCO-XWT*j|2#9IkYqkfmgqWR=rIZ%P=@!Dh`A^(6s!4H|lAl2Gx*G zogmLJQ6D(EjKwLe3vwp~6`-ZmkO2&MIiNxjS@{0Y<6;8~{dihzVOs&Bt^?~JXoth*|-CrGV4j2ql>X(s2oAbkbi@!<*~wa?8t z_fzQ=@5i^H&u92KavkqQi)ZpvOCLUHE3~MvLnv}fxikerP&e+GGt9n{pXB~qCBLzw zN0>;?LU}r-mV{ot&E5ry6W@nFU%0xuxw&nDu@;kORU6O)^7?a*qZaMz`-A50?UJPv zJ`R$B*L!<<{!Z4OTObr)G`ldVuJg}cBBXZ>LL>C=NMAuo+K!eu<}MEwC|~P3gi+F6 zP%LTXy7{wpd}}_R_n#J0LDG0lckqB_Cg93 ze}#5liV3xkA{isT7b}l7pPB@Y+#hq7f>_q<>SL?}Wxw;nB^w0QfX>y)^($=5_#@8A zuZE+YYJ09PzZ6m*NX51l$<@z(tTs9!ri5XU{ZP%DyaT@0 zIXD7T;hnKq9?FfTs~^TqcgL~&t(A$%0F3CRoV7R8`_*vh-4v;$#;TC|_hGz%TP&ay zWW1emhr@aPpIT>LQt!nV)IXKHHd1TrQYM6{`-BO=shG&4=-^36!4C@JkIK|P&a z&#n84?Q+h(qd#v`ue74#Iay0#VPWL6XU`5Fy_rWATkriFUZs99iy=3%2@}$Ky?Th? z&@}F^A)S@4Gvd7nbxs*_n>QS0W@gUBeRlp{1Epp_)`N}&shcta0`m&ifsd2*kxyI( z8aHCi?=;4zF=$G6sQk7Hnq*>P@|_O6_hGU4{_Gde$Fm*gt+-d5O{~V|pc}X%RxBVV z{P1wJXB6&fsOD>6;aoH?ByMZ|ck`I%phXrsZ&~>|!fRt{`SWKRTWF{zyen?jS1e)X zn?8P0CsWz=Q>c||fJT*bsn0J=mmSe-Cki#_x58rQf9iVRG#d{N4)zXGx9~?Qi|=ajAI^ZtW+bq2D5_LHlZKI4W9<$_vbt&r}CU{paq#I@KUVucrGu2kpp!$-e>+`Nf(mTxFIasjd8>n8xW z@<}o1AN{};&Exc?S0An2&@(6ygzIa_sqx|J>R#z{CXNyxf#z{q;xsNdQDk0TQ0==P z^MPHViPff!j%uN&rZO{ll8phVD1QJAQJ7nF@t(4`mhX7-JY}}e-0nhE0GzqUEi~NX zwYyn{j5pPsD#1R}nQU9pMjDy^?B&aE=VZe9d>Ro|c|ZvwnpAssQTPyXWQ})H2?IKq z@Xu9VWyjXMiggU+iu(f4sHe+_U0{7{-2R#A8c6PnTp1&BTOYODqsqB$Vu#gP`_ z^9$9%R}A=8go6@iliB|4MLoMCd>Yki_Bm`1SiTEEC*6i~xMaSGv4i(qS^U)IiCA&= z`c}6z9R~pNUl!DDJ7(QuZ|sxFe385>}6b-nySW}8oDSb@Iy;5 zT;l63%ZDyByB1;YX7h}M`IWjQv=7hXk2cQI5>m~bF#wvZAI*sd^0_x1PV+ji8ag!E ztBfYjA{Sut({rrPf&EBBbn=M6jo4ZW2Cx5?ab?6uAgG$9RCM=UL^@EzGC})jsoR&P z*=@qa4VnIJEt8U+Q{Ji3xGHLX*qcy}kHFehyu13GB-(L_#PYPT>sKTsC4I{(*@)*ZKC()f=AWb-C@7yqEC0dPFf3IS z6khts7+ArTjC7xCmWway%gJ276S;~``5s$QGKejq-B8*$spZXTmN zb4Sk}G8`Hqxv${giZ!BMMBg+$Q$br5k}Ts-Nd5!TsXHTn6g0$qs2=TX@X930GorH) zgFPkQx6T9tW@XcWg4|_wgrvI@m9Y+~@KWfDH4B^eReW<$EOs5WE3sd%^m13V%IA)s zz$`zHEv47k%T$N583|G`XZHp9sh<*hs-?Thu(eBZqp01zk4O^)mkUL@<%NbLhbhZX zRL4V+AdGAU2{)5v+ZX!8ljipWJ_OBrq;L%H0fR}=kEMpojc8tm95Qoqg}){)iur@; z$YrShG|HDYS3o=F4`5Y$_C;k;QbGbQw>wB0W6tY*`kS)wfuM1 z2N%Dg`Ux)@o|7t8&#C=~)sgv-HP{5?$k)CMrx|zm=BG}Vm|L~=7-p2q^ZBW7G+Rs? z&s@0dlqfZcMmOz+Fe)SWAH|Cwt~b*pG?tJq;ZU5jHy}^ zd@PRX5k4yrScamx=y&SkfB68oF|MX)-B2W&heFBCmgwQRZwoaJVhI9NdT+dcK}t<` zy|(ndi!MU#dZu!0C~m~y6xaabhkA#MUXRo$-+%H`Da2WXb|D9864bAg?N|0&k#af9 zTOSo4*A)zM5q*KY&O>S<+0;48Gu-#q)fN+FtFqA=(Jl_nI4k!>NGDJ|*_Bt*8juCp~A35Yc0yic61M8xCnP>cY}s+j0Ly=0-P zZd^afaBk}TovW9E*v^|+MM5;1-+@xb`u0W%4i#qbk~FkkW)fv3yz$j z|NP_cTYV)mhW{S|`B{zRaBUZ~l};|>D}#K9^+1Kx$R^1EpM?nUoQ3b39ygLcHQE+g zoO~zwe;5_d|JxdDRF0MsGQAW>U|&U$S};}+aC&FV;C+LbW3NJ4O1)~kR(OxNG9B4Q zdOQuD;V7=pP|k9ohgQCdUxNU0%77{x=`g43e)}^P(ITv6H{CDNt#v}oASCTD;|Ji3 zlw%kFgunU^bExz}IJOy7IIJ&yr+xrC5v`d1Z@do#B)|aN1XQ%HbkznO0Y2_OpZteA zFFyDE7MVq+7Y?2RDn&2INrR5-62cc*AooFvstme4!n*7~C`@Ne^gCe0 z+Y_Pac4j>5lvFC^1{SDU&hq!xRw1?YDJwnVaAQ$ziVRaL^PSo2Qd!q3bkj2r=O+ZG z|Dbs{{WU4d=$zd*?rd%aD*DF*xyr~9^@{!i8x=tQ&UV>^$|JNt+^CQgK?T1X^=?mV zDVX05x>RuN5R?h!mf`rz-qiKq7F@^>JlxnMcj3@GK?l`Bi%z9HXu5}oNE?><_J&lf zMO8UWj}kTrp&t7JC?DCG(tA-K7@)K6N#7?e&w;UU6g_<)+EJaK;YGM4QznbpeYB}M zpAzXJXMqksj|yL^r~%Iq-7Si%WH-@L*M;jyTi8^LD#xsdV}=V3fHlLWRWmu4WT=vr{9_iM$wDX1P#F5KCk4fnG?4en_J;%q<(an#zi)(|qK#}@Wc`;oi1#}+!|43w^{zJvKREhEJXBB+X~o^A|tQS+>1!M_aaRO=whzrcG)d!0lnG zwK^C7izEC23Hg7_ywy`OhhdLTI0G+~^}1`Io5>u4O4ZY!yd|9#+q7|NE2aLgutY>p z`s)8FEFnq~FO@#YCoSBEmQVBtCP)eh4rCt6yi}}Qsi*gNnZ52vOq2HbnRa}(eJ-#a zy2&{obR8R`La|W=bZqwKbGyhJP{#eQ=z_GwNRx%Ek*i2_k?SYw+OeQ43|R=#7^sjo zD*UgRZmJZ&3vhTA6ay(I)}nV8Zv;OjAv0Bs-@!FF2DXb0MteH^oFxsZjS+-0j)Dwt zvHz_5_3%p;2}+|Mpc9^vqQ@Cj0^XP66cUyPH=@jl8uC(N@BaQX?ig56BHt zsl=rIF_6Y8_%!{_?FAutAhaT9*=0Wf12T4=#_#|0G=aj!dQpa@ODD8t@R7p*1^Em( z2t^b`CgMDh!1W(XV`ZvhR324F3PTHEYG}{E&-MS=sCYE#B=8A#kThAf|4mkBGkWK@ zNF=NXy}RN!f?~#B2YHLrlp*?*58nMBP`2EE*%^#8ho%ArSG#uftltBcFa?S+j_Fay<&gP8~01ts^)|??_qI8+P!f0W9r_3{k8G_fP?8^ znIA<(lNT{B!DSNq-;w9Oe71cc=3Q^O3Yi!hZF;Dri98~^joxi-d1ns>whDyy9E*Aa zkbhA_AtMNP2Wro}`M47F9>mP1L4S37qD-Lc!NzoC3TDEaeBfz<*yFp)W99Cmig+e^ z2D`y@t*ES({#?`Sx2r99zCs}(Ar1)%i8VURO98Z=UPtBb${^2f>-7|ZRotHc@t#G| ztJM)qJy)zyvQd*kQ1i?{ci5fPlZW*T&S_p`oF%*F4aI>b-{<%(_!)P zW-|}Cn#rdTrjgD=*?_cN55LX8H!}>W&W=1lTlDb{yI9juo+3 zunIVwH$@d#jyorUJ0|w5?ek%xwBwNiqj>xiqkf~(X@1>USPGdwbl$(C8I}Ue`^x2T zr?ewUUjJ}5QrWE-qOWu~w|BI=QW`$hsqeGDcB-qVr&r^uOF+2#o*wPWYY68zG&D%l zEADjhko(u7(4-@dH{l#IHR7))i`d^#(w}9dmXVH0Xbip%6;S;k6V4BM_&cqY`b80S z$3r@nJnY%c=@GO`FLjx}fP$ArZ)UFa$yVs(Wbt`>99|Z9-oA8miYM24O89RQnT4t9 zZ?pl1mjC^%??8rj>>y@!1l?7tb6q##=U1&LL9TiRwbVT0EWQ1LN2P0;0j|5NqZl>= z5hHQvJgH1Kn*7uP0O;5xp27?y%?tm$Imj^ZmAa!Jr1yLJ3ubz~o`Pd8K24e|w4sc( zcr~0$dhJB~lWVc_!-UGZ|I^)g~@ja+?kBRM=Z7Sf@cTYW{h5-)lA0UD>dDk6buslumP}BKlWT47rZdzPY8@ z_o=v9Qi}_ENoC&S6|a-w97B=4p+6^mt*ZBItZRwT{hFR<=m0!Y#pB{RsIa5$jhb`S=Xg zAA-lFd9Do1o*z%1M<}iS>}_N2dv&z46gUxZy!s~ac(pVhk8{k>{Kpl}PRqTUa<1TQ zcYYRqTFmCw$Sj|qD7DgfUnQ*fE6TFk$);+JQtrLv!opww&23iM5`XWYt@S&O5AFH} ztxU5`3npA$$Hz*Y_pFpoJs!c+VQe*ti?n7{d+yt7wmv+On{u%$6P-a}ZXfaUH9^-^ zn}j|JTpld2s-5TY-!WWKnH=o?s^RRv*~n6vm6hfEP>3-R;<|L1XT>kO!8>rHL4~mR zMuS(cS_yk)rlHfHa66*v^y_|#(_~Gn!|#~Jxy{7Aw1 zt6Z^SJz4(k=sn)m@wvIoycDk|e`(d;^ZO*vbxhY|O8u5HSoAvE(W!t+zj-!0Osjm& zpO8o0n0Qn`RP|$wqt69rw!1qhzxQvjb6ue3(b>^pl4;fP+KN`k`ciiaxn<&_?VNkZ z@gh^-{0gnBD`&ut;hB=pj(9U>eWJZg#G>qM(CUr%Lvjh%bEmOd=z49M&7NZ5^@-!i z5_`|aBCCMmG`%FbX2nAg!pj!M+|OByUJhTspvNgp!BiG`YbzjvvZ_==&g1Xl+9!cs zVU$Zix|x|7=u|e-zuwVw($uXaTof_}gPl38hiU(`(yB0&51WD&MeiD1w85?R=MI*F zcZ7ev?hCj>d+7miA{ea?&@lz5adoZm05B29t%Jh6Vzl zubi|o__#jeI4GdhN6LABDQYuzb=2Ke$qQa#(h=h}|3KM|fB$SzxtTN2W9Kj7d8a~A zv7KHAchx8IcRyJX>6RhLu*w3ZC3|-&RJ)`YC5lo;X9zk5&9P zRJR$EFKjV>xe%cn_hDX4tXQAN@?b7%wnH(Xnd?r9SkOIL*+WHjY0K8vSy}h1BIbVu zvC0&-Y|16Wj(ew70u&Ko+?Vy7Yr(s7d(YvIAT~{5!+WIHISv+60?)4e8+-{b_$I(p z3K7j7c*~z|saQweSB+i%fqCzz9cQs-%*T&*Znp&dL*4A$-4Si0z2Ho+BQ#t$jws@5i zl~?)OnfTk5rR7Tdo9?$Lf7tM9j2#cJ<=KV?{o}Jdp65OOSg8!4a|1A7Xv?V`m2^MY zczm?GEVZAb9-1#o={kJqVR5_z=TrIQ_nPTsOCrv$@*1xzp89R()sKNwi&gq=f5u;CP+h ze&na!C1OGCS%SPZ5zAt1WaLCQgW*p{rZ=UkzKPL^m&h>dOjb1glO$gn3M?FJF$;&P z3!A!p!t-z5HyLPZxHI9glJ~Vq>2#;NyMm34ZOo&NymsQKUB;MM0=An@e#G|l?mdO4 z|K9zvW|DFd2`7ce;knkRN3cKfl8aM$r4v3Y^k7(j_+1~tGXuy~J5v>|J>z|Mp>y)% z-PgzDE)OdH?^=M;PgA?4u7A${BuI@W?aqWQ?o@8IeO;HYbs9>w0g0{WXs2?mhUG7p zpSE|WRAdod(r?el$lZ>Xvd(Qm+Q|pauUH0b2fvvy?Xjr}HhfY1n~vb<;>yb6>pFZo zWkaaTiJU&M?PK*)=qvPC8}s%_t#h0dG5h4}ocHk9^L{oxk|zRQDI`YBS$ zWnlOyqDV=>+$p_!`(aoG7=Dab2J%LwMhd-3_EtxgPwMHFpL*BWf`)!r401rvFI=%e z56BOK+!y{FO7iikReG-MdHrB0PaiP^zVD_>eNe|j@Y{i%b&fm3sxJL(7DBQtKL9LzSBqErHD0|cv7AhMBhsnO zPnY*L?v^wPOo+86zZ`R?D(1Uv$qD6*dS*2JcQ>z5Hjt_^wB6j?JU|{9 zzdBM}DLJC7Trgxm4o1e>%=Gl9$spgPN6K?|4pexq$g_xA67qoxn`XMzzMS6C?ugbR zDUi9W=N8mdEcTmPjrW4er=~li8Ix;}_N%x%qRtoAw!748Yv<&YpZ};-B-eeh!{!TD z)cyb%Q6imdPxsnEK|%YKE7UeLGSV4g-h=?$bzY+V38V6tblKO>TSzVRolEYPXRRb}|YqBr!PpUHzrX#;V zRQu2!MSMJ6y?07h@=|^U+Ve=ybAJhVwBG@mdgsGpdkePZIKM2Ae`9W0R(UlWG(R?; z$oxp@a<9%d#m@u!{7^wO(w%0lpPWHINzT*hobPbZ`F)(-|Iy8 zTd8q{7J!0D>c#Mn`Rm|gmHWXw0bb&Ln+J?|HwaLn+*gSF0HUN)5`m!L0D{uwd$|}* zUbrC@6;%o-3=4vRHCj)F%#9m;t-+5n6*m4a_TIuP%IJF^9a=y^K%@k8D3R_Cbr4V* zMkEA80g>)zz+xy7kdl-T7!Z()^C09z5l>ncez}^#CcEb z{p{yC@7ep+PU#fH>kes8+{=?9ti-J7R+$r<|l`xCOWv;8lxNOvXC(e$gG_fZnigbrMnV3xFrLa&-B zRE~==%#EA>RvGu%4Ew2N5sV&>7`*IpV=Dvm*{i$O5V4O|)9h}6Jr1E_9UTV-`$j}W zhxU*6zQPvoJ)g$K_WAmi<9UwMlTWd;JEw9|IB6I^L2KTMYvT~DbIkjj z8Oe(!ZNH!#@mh#os=m8sl&C!e?Z>^jrz59EA+;gV)fp^~Z@!Co0gFWLp_7j)FGs6# z6{Izvk2-b$qEov0s2$oKp-dfW4=G@9HV-<&6W;r*q&pN6T!DQ6k71u6gW9vO5OTnTwyH3W6fSD5jCAgf+BIZ_ zQCDKqdyYE=lkC03bx3%Y|HP+{Nk*$8XoCaxXIPF9*?Ac55Lqe|Tu)3^R#pVq+n6(2 z8<7pXBud=w_u2}x#ETCnK!#F%F{?jbMHW1qU=w8J`RwIqvDx|aS-a}=`eHSuHBG3t zn%ZB}e7&4_lW+D%(}%b@^S2MEgXwP>{Cx=x>>_ zu(PvQ0{Gbjj43q_!*iD@7X6ci!BiOX(gdmJeb;9I7g4OT?*1sjXINCHiHv$9Dj5Wb z*5ict@113^4FM;UBS6n}etJiq0kkI(M2ZXSM@ncUSM<@BV{&Gkjbk*uJt^tyYq%Z z;;yN-RjvE-HqLLe-fI?2Dg^UT*7v@o!{}@O!($NEdZFqyRKE3QNaVyfhvfaWk)7IG zNK6WQN0o7<ppqzWOC8 zC8hB0+lxms;8oka*;3vE{hvhAS<_87kI>=a1-?tEUXBlu3W29pTFH`{NF-ohyU;ET z#Z6|+AJFgZNg&RU$UPwL`?rWqhyr6t?=3Qn2cvQ>alM#7Czo#k13$ zUL;aNLINq&c)A^@Y;bc{_5jG5jgy&^lg-9lrC*xKk~xx2lc)VULqvD}3f_I>ZU-9^lZ)NSz2r0a?a!4{fpQ$UL*N>sD{IlJY$Ikxrq#Zm(3Cg54ko+$+( zL28gAHV!MHtdtTgN=8^oD> zcA9(=P535W4_WcF?H!7cedc2Gk?fYJFpG_HkFB&9wc_jso^6`S;&LDRUn0}>)+w6j za}D2)u|CSklqUlBiI2P108`rDWxoXgcmNQed<2Jo;*RS0$V5{i0U>ZQnH}V7K%Ooe2qGfc=dq6l}3KUHfQzAqT9BA^PWq zN_*eOelKx{V7bo67818ui?k+xk4X>?u#K|h_ZqbaUfuYrGGad+A($J7- z)#!Hs9Oy(}fHsjv?TSgJ;|$F{J!_9K^OErLYfd2dZ{S?9oRtLBy8?bbCz)zrXp#mC_bKab+za7PQ)^q^; zVi6D%3*2lARQCtqh}h{)I-c{^ty^q)EW6ksfMCvl`)&XUX|~vvMD!llXg~N_vl=S$ zqJM|RP$Obc+ycDuD_=hZfXntTeQkoiYB!tN+1Z|^BP*8ODq33FKc!Zb+Dd2Q;S55H zx#@wHYk$6KBnk(EanX~!Ae9ruCdbDw;(Y7JQTVe6MiF?{#yUye0+QJJ>D&GOg72XogAm+BH0dTf+rYU5KAdT2E=+S}G z!>HbD)AAFktJ5iNJu_P~O;F==hwLJj#8FD;kg(>ZGJx?Pp<$5QxNlCL)dNZ5zS{SR z2zW_nq7v%dKQlAad+R%y7apLJ$@s{M*1xW#CA77+#-ng83?_wU^~P*|Ya-x-uqDIk zvR=hbK+Zj%&-{49eq1=W_aC3}+h6kun5gmKqhb^e0&$068d#W|C;ug8aWxic=jpon z`FYJ#4^phxwza5I8E@M{ugp@4-MvU=i5mg}0xLze=N$}FzN-QN_qu+(p=5yaJ8l!E zYx4eV!vS>c#R6tWOUJE|0Sp{=P1-pKKxKMWRaKULu2ulK^oIWMq=kIL-^}p0yPH$^ zA1{V5E=LOqHor#nwG~v}P|!1qS$FX@o*%FNP;R?TprmvFu=1!87|n-7Q7a0SFzLoh zNyqV@04I(%YBw7Kfk~Z^@UiV3Vb}kBojdtrQrR&7IoUDOtlk%v{rR(~>%7{)zy!S?@Pod$Lh0wkTv&`g(aVck|?LR@6$~O7Qg-_-P#aN-c2H zMs#H47sV$(h-vBQ2>#T12^~zKlz6n$#zg^N@MZqdTEfk6CtzYpgZoEbw<_?3hk?NR znSVwwi48z!e7UZ;#DO@tw>NB#5N|}=5X!&w^73g9) z3V+_#`GI#(`ijTzjN7lwsO7h?<_z@#{Eteme*t7ADg-W=VbJ!D6+hmH!rQv6PcH^TCN;0vc z?S)P$s2;^P;`{Og4wH2<6;_?`PBhJO(l98ip8+th57z~o#{&%5~j>#!ej;zN@`7NE_{mrP zRyWJKt|kpqhGt1%MRyO8>!a;kcdJdW9>-S9hUQ%mxVkWuN5nhXq@q`0A8ioH>+!R; z4B@t*U)Rg^(01UfUE3Q#JmiGV^d4A$vmc4^Jlh*?JOO>)>nqeU3LAX1@#OunV^j4d z*3`zhcZJcZJhQ|ZYwek?*DKJl5AJxjqRU(@dh(?Q^H+P9a#VZMRXD+L@kE(Ek0`1#yTlIX5yQD)bp$i}|{oO-VgcqtybWo9F1iDPl9bNOoyLdPyd ze$6j`1^QAiRnF_&832&LfKbJ=MQkt;h+ZeFAXH@+V6J-Gwfz2Kq9p9O_GiY>%*SeZ ztwSqO_{j-hah+=$wbE%xcE;R&4UNJi;ZIB!6a@^Ltv@AkZUWLVfXHy4*}dkoj! zpRZ4iv(;!egNew>fzGdSThbz_qgL2`znL>KDE_=}dIjK)!r4|6wT<6tJNAP z@ea!^<34@|8#8~uX4P%|pnR6#ojq1(E7r8Zb}xKU0Ou`Fp!A7TN1i|(TWz*ix|lp9 zk87SwL7gATgmtd&xt^?7(&>xGzjif3ZOsqx3QZ@NSL*H5F>hmusOP0`)TZ z_7d}wjcKm5%eFL&kd$oE`7S6%;kx zYFmXut$E;)X73kI$KV!^>E5%`qa^~LnHGkhg21EpPb#3eEAA9Hli%i3gAEZk@=r)N z(~AT4Bn%*!S*mA5B=+OS4q!&mZRU4)eDz#iiNjc679bk(fGx_H?ErE!)6M0iS8Nu5 zR~a$9PgNiwBa^hJR2aKtqoC~>s#;U;cQBBp8Z{L!WIjo0L+q-rY_L~ZSH$wptM=jr z;bM}W`VAfzV-zZAFlbdigS;nT<2yGXrmi{n7U~om9=N%10LOa86rp5fWDE78F8Vs@^e$GRljau`g_!EF?A9$0K z>%>iR{ZrTe9FY-`O~e#jDt|E%#w2E=hLMulVtA-1y|omGd06nVKqw8!AiWA>B-LrP z`7MJyo$D_7w*Vc?QR%!|ZCnh3sz0v9JKwm%HMp6i2ftm~DcI=(RVp)koEe62;a`5f z*oJ444Lp_B)z$s=C3%M>C+rF@REp9EL{30E4Z!zG0!};~>-T<}ei{7wRMpIThU7(V z&LKPgXy5vemxa*MLnW!UP%>ppOE^@_bcmks;i(DoVBV0Q#nwxD0Xe(m}&scZXI z|NZ+n!e_H?M=Kq=iT?C&-=~p4J1#D+{$le+ftps*Lm>wpV^8HUyI9w$@L!M>v4?&FQ6^wK5wp4s!bSc zq6n$k3w=HMUaQX;R{+}a+|$Kjs^PIygG=9H_zUwh1Kb~4-jRm)Vq0fI=4t6V9E*## z__U8%7oYvthMKwfSxIQsd46 zp=%x7JUnjt_~gpC`wBMOGI1*#`o$R4ObH6y=bW5i)jG3cLxsuAl|2lFN?lBRW`R_| z||f@RJW5K|gPG9col$sM~nDcXWC=%Fw^nA=<;l@K?TZW0ydbW|Dy*Pq72U z#|6ylyrEJ_O5N&5I^=r?!%4Dphj%Cbau$#$5{)xioWl>CRPT&WUqQd<&unpGk#hW1 zShv$7Hwgr3-Dag@aI1Nx<3vch|8{$j*Y#{U&$UFez@r7#APOJvb)PULMa6~zdP7qe zPF`N#PFcUjBpZn3;hk>}X=fZJi`#Cu1CCP`u?kq?FbHiv#EcXq#)jsCJ{HJlL_OcB6(5It?-LlHM?I7{#e+!;C5tWFn45n^Jls_ml#6 zl3`E8>H_ZExf5$wRLyM-=+^1s(`k0+%|^T;pp0>le!mPB$fGrI$Qn#1%Ce^MBMKxfcS#6Ol3ARaqP`WJV zB-~5jGZb8k6z$ajmC{_?&w-g7>m3d^X=8f1nU7(Zec0ivdsI`BUXG$7^+d(1`!) zf8+}0P8Bd)yWu?Dr}u;{A82UQ?bWOn*-ez&>c3-G>WN^=-H_zv4Smw|7NDLI7z({f zz3-j~T(2}^jy8H0s>(<8Q1v>Kvq7*1`#*_h2VJWZx!st z@4}1I6iHMwmJ|Oz%Y8zG#reg&(z`ox{&s)Y#V84Xq*8iyjue( zMh>#zA@PeVCx9XJVUT=+bz66q`##+*PE1V9@E0-oV!U@Gw^5bVQSzjTQ7P~gbYW$v zz^L>YIgoVEx)Me9pi3i!X93fzbDYKoJJfotww|AzKzo6_ow2d8(9RCPE20EbS9SmH zj}q)u_bfT#68if3e#O9W?7mvI1lF&A8;d!kdtdFg^tt|E((hz{W1=<(ylVw4O{6Ge zjxbL*t2F{NJA8gJh3^6G*0nN}Yt}JUVaEV;7HrtePaxs3r_m9J@7=CKkqmjD|Hlqv z-_}RIIhfdvmh)089!}d@vH5S^{wV2if9#t>4tQ7LmB(pv9c8B^JAB|WVb^|H!?ipT5_{_@8ypN@ z-HCYuX`=J;@`6E7j?^?a0}dM~X47Lo0u1sm&_H$|6iPY$DS5)JCG`s^XI?qXMx8?-Zr9|1;qEqzF@9Of&#r*t07m*sDqFJ=G7c?*&b z`9O~L*LtoG076lS2SSr)nhg&F0^$L(LYYP5m>mzu3ABINyK2*ws7pEx-Qn5+(jMOk z2&Hwo3q>mq_4&@(naAfI@pETQMP`CC1CPSqIz{QHS*B^{!7~kqZ?PoOS=Y}Ak9^2vrd3sRscMR^IOT!eFr6S+bFyWyuPg;$t)3; za0`i{#(ugRVs^5SVE!Xhn}`NiZkJ5pQ}jP)0fsl~00=Vpo#NUKgv=Y{2M;VuqVOQ5 zZ~;Z0u?hZh|Lb2H)Wmj-_g`@r0!Nf1uwxs(q}2|rfw#}DTqV$9Y0|I=~1s`KaZErbI8X=!Lg{|d};EQFVand z2fJrEaCj7Tx_xGy(Pv_A%zTtaeh6rv01OzYK)eT93HdVVD|*+~a4Wh4~SkT*pvTN}j=BxUQODZiMbr^*=iI-WU3pI2b;&vdI#}Lr`bbi``yIM22V)qf z=Hm6cTDtxd6=@Mc55f5-jJo5|C#)gn*y`qNw}$U2^QSB!5|C!03N{C)#(BgSm<%H!5l~ z*hiX!xCr(!f8|MfDWN}!yTIQbXXvS-WwX; z%#9f46zg0Xt+r=O<7s+$f^qg3^tKv89`5=iZ%&#HPP^_I%N~uGf1`$HXLOSc+wJWw z<2wKG!QY;M`IVS=ESevt_+92M94=~%s0mm5szaJ|H!esKUaEsQek+?O?@Qq=|8kC< zBI0ti*(a)b4YZnN-cxBh(0`TZr_tv}J`bDC6Jw%sgY8tFk!-PQ5eW1MVU9yE@AQTym8ofXX;uk&}oZh z*hp&h`OfH5e*MwuC;EJx>haRj2rUZ1YG9;0^lVzpf?ek^ve<>4f$W@EkU){_Ey2?} z^fqkSQ~h)_i23^&MVNC{)~CVgh-}lmr=0@Gy_$(*cA97(IIX9bhSfbp2N9mYks{$c z*0pJt`iolBlqw=1kaSBinjN*IOi7`+eFNU@LYh|FVT0ZY57Kt&d0lt03tP>%SofYd zNeb1Zj)AwxW+bA^)zUvV{~D!HY$4mXmis^dg^;FuXsC|aOxmSJR2D)tP|;xTI)}{6(g;s zeg~1Ai~dD@uVjQK+D+xzjjg-KY7KB&K6p4HTOHlh`2llIF-|Ja_}ATm^WrHF+zRpR zT93f^RQ?J*riKwsesJuiKn25LKE1d1QXt1C)gL%^;qwc!=VIYXXNQe2czHTC3hqkPlbjPWbxJB7fO6Lv z+8p=k$9$Z%J`f9P!5n`^i#ILP@3DV>Hx*gHsMW}&Ile4!QI7c>h2)T)Xl|q!zff0* zd2olOK!_%k%=nnPfFCXv#EYpJ3OJ|EkSify()+`LIo5jL)E#qD;3%y_$;ceTLFw8i*zH8n;oy;68 zWO{NET(GOks*R$A@@s-9dNld%wMZ9cn?Q06;&ZAG6gnGErtclNT-hS-le)N~NVQaM z%+z?4p504yzVI7Gp6;7Y>3xT_kwsg=f_aNpi^n6li00N5d#j9NEo; zv}A?1-gA;ZvH~EmBKl&fS&;xYwYVLyPSDj%GZX6e^ zl2AYR#YWv*Y^CxC^ASsI+oyLj3B^L=t9bv6@~Jv>K3*ATqgQmL2mO29e-YW)exmRJ zr#g$H%ZPv(5;)C_izEhe-?+AdFYoQ;e}_L5mOn2$Jw4!MC~89$H8$QcTfR|L;up+! zb{^_g8)ZU}>~gPNAaro4sgLko?lmo;FARr`PsSG%f>6iZwHI>l7JpT)*BQD{Bu8*%ODR+rrFG(lp$(?iw5!8jaEs71689s48y%_pou8rp&bszOo z+eGSNipYiBq6oVR!Ux&1pG&u;Hyx+b7vYvl z&YMI7rM`7K2R?3G3taAQl_^_1X<>LX81#inhji)JX3nQ~jh9)K`mx=PXVlG`T~5$4 zyG5Kx&%Q%Rozog!!{dy8;a6w$@JZM3tlBc?cbT3`Yf0yZG&Bi`d~ZKDC%3%D0CNjS zYnv%A$XjJ|rwq~!Ts0*fr(KcV4P6qLqUKMTv>u)=e@%4-pEE;?Vp~gUL-$>S;O#67$4DWkzlqj5qq74W=?FjbHb1_q)KgZyr?9wm;(lnhRc9mzG zB@dD8J0=1&e;!}P&G!#t32A)ja&M1SOS8kIE=!+pzg9o>Da4nAPD!Nx{DN;&ndh-6 zMPD2kR4pLQ4W7SFbEJl(&UB88tmzBq9G4;-I zZ#NGAq-qEy*@nMh5%5zi+xeq2v%weaW)Wjb;ksRlzDdHgskz_PCC@TK2eR1>rT!%s z5(_@X+^O*+UFjs(H!t7uBz#Q|AAD4)%h`(h_FJjPcDdQ2^`rV}A((Ey|bn1iZ>o-WYXsxm~+Y#-Y6C2_+4{PPa~<5&GLll~HI82V@Rdz|$NVJ=QXREu( zo}=n%3+L>(V*G7HQERA!<>k4b1wWWk>~N0r?PqLw_mtK7F=Rz8W|Am^@GYsreRfQZ z3DO28$UdM_w zymeDpCrL@udob&sr!S&>MD4QaMXl$*9?avyjP-T)wK=sBw)rqVRLvoUNPvFHU}oyqlAf+K;JbWf zhruXVvcVqR)HZy8`9iV?r@JjhZ^m!8#+)B)2}! zeE$!(hKmH+?L>=_xyS|*C?l9>+zobuxY)P{s-8YLQcd zwewwcSbiEKm;p%*?3ICs=JO^|Zu4t|VYx~!Asc~=&w~cr4XXab-oKzDpf9}l>vS-* zAS=1^Wme+`93Jc3^ZK0F^pZVcYu=!X?w|jDRxM&GhWhD67<_0wo||Cp2t1?VCF zd0$xhp}>)F>+28b=4p4uUj&D=hdRiEFf}rZ0?awv04!4EsE0X)`RSeYOV`;FUy8vO z<2Fto6+Zqb@+Kw~`eKCN(w|g}uSwohkyhfUGYoiXATZ+-8ja#`q{$B!gIlYo#Gf<- z>JFukyD|{I@JeT*lL4zI!u{+Q)7A^#t+!(qJ%;QVY&{oJa{@k-E0;snFh-R5GV0}C zdyP!1I7PJc)vj4akjv2IQ%AJep134n&IRFF!Mz3^Ioj31${#U3G|@EJfn6~+_yF1S zJPh^QX)ea6uHOY~8K2(KLQ27g!_}NpIG>fEm}qP%#Px@6Y!ntLzpSN_eq}e3D$unA`&fHU7jh z;qm{z>IHqc-aSMQxyLo=6M>XVq`5w>+wfqje%8A~)Xg4>Qk- zdj@d-3WmOZl&{0Z?su@U(67pFHUBf(pvaUdh*i#0*t&~xqjpn~mX7Z3wNFs*DTb^P zc=bOEKl$-GqM0beb)f^gR|#H8(R+wg*VH7jm}&@+nG8XDBRD%!Z&~XWWlCovINQ9s z&}uKy#PXWJf67MFPo$orfHF2*EPtktxW6DS35`JsaheqMr0Fd|&q6!}{VkosM_&g! zpc8I~hll!tjTc!YBUIS~K4hsz>D9Q~esh}Y`SbOu?GOg(S-VE8LE1plfmY*~zKVQI zbsf$cY=livX4au*B=L_Qx~Gy&CCqY2q(<-pwliTh6f76?NXqEY6q)Xp;6Y+dXpTk` zUJ8;^c_y(1@0+rb8br+BKu!q3QAEB3W;DE{@>!UIQa>ED=fR{uh7XvwdD6m;wd&SU;Y z*1zwE>_{?$ii0tVJF#taqU=nh65 zo7T&aij#&BI_0gLn{E_S>L3u@M_qEa;PgljL#p3UHHB^d+1RMvPC?jQYvj}3G=&dB z=I0+o{r1;x$jW{MmS){`vNvq5J@%VvoMwkbXDpyjl6tjmhVx4B2jbtD6-GP>+|}*s ziN5G&Y6bIF3Z@}xOc^SzAco9iPI<>H5eCeu#IhwU!iVo+A+#GA!7PEf?lnPqcI6+9fw7A%>Eu~pWj!Bwq#JCCNr{0Vk<1%%+Z zVCHP7&cx9doq&<%wl*=Vjw|u}Mn4X5a|F-Ft8lhnHS@2M$2)KE1g|CiL6uE}J5gxsjqP4|C z*kY__MxwT!{=nmJ50H&JCPLuy_fo`!3P7x^Erj3SzN=*NBX=eq~+79zZ3! zD>e?>(Mjy6(`b>W=P%5@K5LKRQViFI^%CtFc=&34;o)5k7;;(SJ2oPXFIP64N)nzCC1UE@IP@GT7>& z4xJ(*y~wEC887han$cFMS|KLw!hewN`Wx;ewfpxowbK>d*Zzo1Z)+=^eE@DTO-fG) z*JEa+l4o3b1YJbAXS7ogbN|JQTd23;Tp+_;v4O-=( zISJDVD}v&&jMEYpuf|$VQn3^nsc4OdLoyqISHpfHrnxiTq2)6$s7sVkjh%TZne_E(51EKtd;WWG%2kLA6_{&i9h*o0fd6Eb>pJ zX?S?mcZ~w&`fd~qQ-~9=;d}ybX#JoiTQpY{w0Vp@6ktN_yv-@e$#a7buVQa7?uYH(eGY)t(B0Iu}FW7}_5#WgFK2-1A$ z0Htl`Q%lQj=2j=?e${woX)IU z5t#ptNVS(Rn6RI6*b0p7Wa>c$+LRk!5X9gz`j&In)YXT@TN`0KD=uCSW4yFR`XXEn zb)DRs+}jKh4|AI3U?tZkmr|A0`q8$*Y-vY|y5#@eIu!LhFk_6T!aKXv+1nZu$Qv$2z8PW+sR6UJh& z$Kw@9pCV`0pf{v6?sLg`G}~ThC{l3@5cbuw@NQ_YU+Dk9q1I>e=B3ZtY13PHf|i1P zF&|@F)2b?~9h<9Hxyk~?Tk}?;e8Qo^Dxv)G{?CN^lA=s`*kxpPAmB*3M4_1+b$yg@ zelcx44tq`*29@0kmG)fZ@H6s^bcEb~{HuvWQ}KT_=(Dr<)qX@2^YF{ZtnIN% zr(Ea}z8e$CQz-n|hp%S-0VnH~;tr$YN_V^IXl!SvHX(eXYlk;{w{>+DZ3>~bIo`cC zan!-;HU9lqzW&J9r)0f~C;W6gT3zKSwcYO}rRk#$4faNLS}h<)%tbe@>6Jg%J>Fez zIz8Gc6Ocol`-4C3_GhY;2_z3bgD9a$H65;2)>L1=IP&!xfN1mK~8z2Q}_8gIb4#vA(yeuv)|N?@hoO)xT|;f*sgZCK6T z)J9mUWSeU3L&e$VD?u+x9RO}orOCIOPKS<^5yjUoEhbl!-(;mD3i9e=y!Y;!`beo& zzH!AZlS)VE&hm&PT>#;Tq$k5!Rpps{ z&&>)c7=2LjgeVWvL)TXWzAY-OgN(A-KSn$gDIrrMx<%Amurjt$+N11LSrkUli&>$d zS*F+}`9|<1hz04pF+bkUSS^qAvMCJpq?Ebk|)7HE)XKOTG1Y{8r#NQ(TU)Z74T+^oBP zddpv6l(W0)Am`Qdd^kEKrR$|p+2QbO^4vnNE6*qEeD2K>IImX>Z?6;-i~1ir<0nps zmv9so7l7Ndxe4W(!ph00PCoeEM(V>1_Jo7b{IDXj#kq^(UUpPwvkA+gA$&%Nj_H(8 zUJ8xf>QdJWd6}582^uFBg2zF$!IEofTs~@u`*|zT*P5Zsxs@pbynlK@8~zk-o8F|u`9}99q?v;zmI1}?M=aF{l4N09+R@or$!Q6s+gZN7SOa`WO$|x<|fJ#4c z4^ybT(l@WL8@`A5Q*KL_Ea`9uk++`U{mdHRp8NW!gj6jH>8U<)iqO-_@Q(zGcYLE@ z@BEPKH1iY_oOUTKl!`nN2m+JMqAynN}?xG$mzk;kX zGc%zy6X+nawEv;-&Qfo#VX;}ceXnPN-KCFBGg z&ZjcZ0%)3K&&YcdK*GIfjs_zO-lBKi4ePZLlf)fFhO^>ndui(Y5Og>qPA3GDjzHuh zr~+3L6L8!8tNXjqsA;At#CEbyCXUar=h3&oGhb#&doeHtc$kFsoQhDoz9dG*xlIn8?q-qW~@b z5XAop!6_I|@PPCsedyh5>Hl^`rhES>YF5VKFN`)?p>kG5$z;k0CR*%;NkjIE*;Hs5moJ&^rb z!sAkgf#8LI75YB+O}v1BBXP_6|1M$`q0Bmsgiy6Xv5{}+6e0Lmo6<{A6)oYL?w7QH z6l&dF9)zBVl<~YjbKIqk6-c_Z@={)2UMOn^CoS`+G4SkBiA69?|M(ZW`e?Qr-ld!Le`kt*wf4iA_6qG4)!jqCo0>6+D|EHDe#WL#h0 zi)6+DnIsl)><)rY2f!?xZ+!%#$V(7Y%ABSYp;`eE>qL~n8(8IxYtA=HrZhPn^@r}t zT&N^-rg7Flz)15k!xOE}*J;oU(GJ+V7z}*-nllVdA3cTKBlj{fLCou?xER-j{+z=c zr<*>6ssqybW0;Hd-%Xca(p6^QfArqAnuPKyB;7s!_I;|c8!n0vjbxGf4gOopZ%#Ef zZX4Dnwros|1>v*X$W1B6QzljkxQUwl)21lOz1XRV&KJw5#ot% zk>K!8V>Km5p2ceVd<5>%f0%tG~28i%Z`?4ZL?fngMM#8tjn zH;YvHu0^VOzmz{4>aAGz+1j<&tF@D&7C|Qmq8XX!)9%L)NuR?qFzRqUg6BjA)aANJ zg&T0OiFM7c+yAEiC&GVw#?9z8ZmzA&ZAt4E661b92~Zna7M9L0m6IO}91{4AXs>e@ zh(da9d%$zCr1zV49#Eu&jwexgq6XpySYVH(U*nAFRY=hMF#hzyS=M!4?XzZbD;c}L zvavCe{rr zR|?2Xote=3Sfvd>^7jW*T?dK@=!-Az~PsW9`$Gg!gmEL-*;W%dge%}XB9#; z`Q)dcFgz1WD#0%>$7Q`clG4Q|l*qlBole5;Ano8V(eHt1_iU8K$T=_r<@> zpkGF*{`2qW^WLi|Wtek^8)84ZQe zDiKDpo)q;G4%aMu^zb2~Mmo4WU_Was2Syfe*vmb|EXkr^x*{;*96 zdLS;g5dkEOmYd;Yw3vGUY8s6$C&ZwC5=?t!kZ(CzG@uI!1!0zmXIU7{xLFjLGU@nIH5Npo3lg*IpsbUI!V_`I#07%5+t-6WUJrkL*u}mnz#oRWf5)=q$Bs;{)=I!8 z_=nk6Raj~`s83Lg3B0DQTt54|Y1ARV zZ#Lk8Q2*&+y{~fEkLR1dBIfsK07XQdJo3_c!YSB1al~4^QL1e9$5B64&U#;~ruWt| zYsSwm#S3lP1jETA!!gz&(%(X8-bn@T1Q&PN`{kjCor{wuZra{-PE3k>T}l_!*0uK1 zT|{~*#ZB`@ma1Zn*Je-V2wzOR!f`sD5IbcaU^B42$y#Y!JeQJk?JX5+N1e|Oqoh3} z=%oFhlHjZ;McZ&rV8A`Vwux%iG)aaEKF_5+9o|f63c`AcxA%LNjVRRjkf+~GH?>( zNP2$9-Gp<3PCVa$j!UEs=GL|Ly_q6rJ9rAFO@JaK&9U92%OKMgolkM=39zFYCC_cw zNLNg~{fhLfH_j4zdbyk@{}VQZCY_fA3 zU(6&G6D%w%O6;9Q;{wg$UJQ@|M^ID9%Vbv-1njBp3o;U;1v>~~b6QR+Q*O^xjO{NLer--h89O3YIo&0Cg z4f_x#mdvq?oOZXUPC~wxE#TZEHBK6Fn+aI6P2jm(rvwueDU0;j-2{^-5&BB@2==!> zi%h|H_s^0)l%g)}eBJsR%Oe&!C+mfo&9}{VKjsJj5dT^rw@N2at06r6(G_NC6_Xa{ z4(~sWd=}_n9ZolDlHhDg{((C*Umh2bm}qQg-5F%Xd+ZKI*g!8Jc_e)>?ndo?A-|49 zo`0EgT0gTt%){EVGx$;`l$*-NRNtfe)BuUZ?Tl7_Dqsly1#JolbZqdGtJpTU!zQQT-}O>BTDai}gY~WO+*;<9OJ6pmraEE8i3p z{9IKfZFTgHRqk-BiCRBi$mDmOcE;OO+rc(IX?e=GlMdXZ&m%hb5whQk=Lo z62WisCFTxLg{aW1`@LO(qlK)pz_Q5H!XGGJ<$t7%KR;`4Z@YtJ69jb#xw}= zF2h}8T=h~mKa|{lT(C7VswP`1f`g1$gsJhzGLZ2Hbo3Xx(U1*YNQxOA=QRd8a?u zuVKShSnqoh%|iaMAA@Ue>xkn!s6zoYT6Hk#caSe;JHWY7vntplJr|*{0~BI@?9$|n zHr94`2e#RSe|H7a(!P_y>XQf5+gl60Zs;K?BIA~t=4&U~2pwx%;8kz2e)vF~{aJRB z10{!u(|zNMg`#EAp8^@C6{p|!P10HKpXhkX_jCKbV!0dzjIc5xLR*oP`duIy->q9f z4z#7E+RiO3F1n7|=0+zZs2*%g9HeXx=JuvF6J?Z?yf-Sdb{TW1l{Aox zk1k%*{I>YVuc6On4%A(|LL>=EtoL82z1SJo)=m zN(c^CZp_6}qkr$-ymc#6Gx-;hjKgU8r@XwI>!a*YCjBeYOE1)hg$Pgy&W@bIO6n8G z%w*&C)_9UaCxl$+BvH?UM4i!ldXoQFPuCs|)!K(=s2ryfqr+jCA>_DrG7XJegK^o7 zK~$&0nBok|NzNd(+~zweMTS9R21N#mrZNn%Tq0!5D3jZe+n0{qC8u2Ld#82QxBuB| zz5BP;yWai#Jk;R)M*q+5wi zx87l=8+Q8bn>L}qUXvunw?p>8FvG^v5e4p&H-ws#@jtxvsNyduL$2^(6_U9&bm$?i zh?`c(E~jsZOe3l~0QZ#Fq>l9os;aUE0uu5oDk|zsRP7vXD9tcgKLS=je5a(CSjOX( z$i5ED4@G%4EHD3g^~(Zj)q!`A{|eBnhXwzAL`SLIGXl-_WN{fQCRXc7r$|7Y`JIZs z_9k;a1sW3j8GmEbw3|0$hq7S_^ezTLY0ZnO-19LM&t zXxw0q)J(y82dEa_LEE)U)20eaxYrJVXD*!H6c9%meQNw=?CUSn5eV)K4Gqa_ zUzag4qUz;j5f}l^)*|A+1W&vya4|=X75f6g0A+`{x)SpL!R*)}z z(|rKMF%mIIbear@kJU0_xkqi!aRRsLYhZE*UKaNwhsFS2<7xlMw%5!v08nQ@076w6 z69`}l3md76dR&LaVq@2*OLyOL@}8}=^Ex+m20H)KXmC;!F7)D?NM__IX0&foQ@*MY zv2j7$G9g8~CbPHD0UfmXIcqT3F<@hE6nT!6iuo+9cUz8f%A+mluz;5A>+knIe*6U& z%9QL!9R!O_)x_Sqe}CV?vnf=GJKNF00ZwF@znAsWUF0td!Q<08; z(oE9PNj%MQ4@^08<1P zprBxMVDH|&>AAUGmA`kLstQrjb4eXNtQ`Dld*$3x&dDB>n-TMm*=NBTyN! zYu>FGm1a1kA~5aE)t!bYR=;Z3S_+KvxitD1+^MzNUo^+@iaz2c=ci)Htyiv^>7YQ`%?K`_vS%y!9|oW5wY9bV(+EUD4v+|vn(#5Z1Bpu7*1yvJc6Yh0+4uT| z{CM9W5;F{oOz$->?B)O&oTWl?vx5(6H6eNIhFw~EMwS`XhZgG8=}A<9oz{VE-O#R= zA^~LWC@~=1^mO_*K%2{bAKsOSY1wcD7URne!UJ?qTH{lD8#in8VU@wDI}CQ*ZucF$ z3lv)bn={F&9`>+*x1Sjq8I|!bLXe`&J8!OjgarjJZlw!luPp$F_*~0AKOl`cfwvj= zqWCbE#rO^Vsix#3KR_?ZQtzD02jzc}>z6l~Rq;Hkt0>i0s)xT5&801ILa0toO-(vi zIaKv0rlibVM;kD&lB34GSlC`QH74LoOE{QW*Tf{HrKKe+>iQmZ_nefE{3(Uo*c^@7 zczBn!sqwQ;sONp%X$5>RX1Ma+*%f(vD}F$()R)kS_qmev!SWUAEaDG^aaXG4s7MVS zP!jsif&!_w1JQ2&SI|lxBPJ;+NtB1nWHJ%JY;qceGnp|kfJvO~>iAz-EEXnai6ZRk zdbZfOp@iW-3N;_z{?k5=Y?o{%{6M1`5E5eb`rp95igmNFJ zX$V&}AYCNn9%R5?L7EPcHXmXs+3XRsvNIBAeE4_=-UkLBfWy4YREI+%hx zVBwWA+!rnDLetwj2jRU9P&Strf&d{zE{?`6dWcU|1}V-CJT5ILko}3Wy3)E)9~efT zL{EA#^`vSyTCo=(4l-m*muoMi?TF5is!trg5khV=r$AvIuFR`95Vvo|A_n>)s=!b3 zl%R+5Z4IoAqqFF(bbsBnQR+!@#}v+X-8hVP4js`E=Tx6y!Ox#~t4r9K)!?%7%|<9P z))#N*86LeRfQ4UshW?&3GxN2?aD;LJSr0Ysrn!3;bZnE!-Wra#icfT#QP{L~{e=-`VGjDqKk#@dD}%M&0k1}==(xOg%oiPTNmj5r=r!5dkH0+G3Z8y6u`qLwj9sxN i-!(dJpu+awfc1oXf2ePj)`fCl;DDSx2s}s1fBpwIaNe%~ diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png deleted file mode 100644 index 0575b99c0c3c5f98c1d740dc5ced91b16a3b4965..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6461 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html deleted file mode 100644 index 7ece80bcf126..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - -Priority Queue Text Modify (Down) Timing Test - - - -
-

Priority Queue Text modify Timing Test - II

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - into a container then modifies each one "down" (i.e., it - makes it smaller). It uses modify for pb_ds's - priority queues; for the STL's priority queues, it pops values - from a container until it reaches the value that should be - modified, then pushes values back in. It measures the average - time for modify as a function of the number of - values.

-

(The test was executed with priority_queue_text_modify_down_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100 f)

-

Purpose

-

The main purpose of this test is to contrast Priority Queue - Text modify Timing Test - I.

-

Results

-

Figures NPG, NPM, and - NPL show the results for the native priority - queues and pb_ds 's priority queues in g++, msvc++, and - local, - respectively; Figures NRTG, NRTM, and NRTL show the results - for the pairing heap and thin heaps in g++, msvc++, and - local, - respectively,

-
-
-
-
-
no image
NPG: Native and pb ds priority queue modify timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  8. -
  9. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  10. -
  11. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  12. -
  13. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPM: Native and pb ds priority queue modify timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  8. -
  9. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  10. -
  11. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  12. -
  13. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPL: Native and pb ds priority queue modify timing test - local
-
-
-
-
-
-
-
-
-
no image
NRTG: Pairing and thin priority queue modify timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  2. -
  3. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  4. -
-
-
-
-
-
-
-
-
-
-
no image
NRTM: Pairing and thin priority queue modify timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  2. -
  3. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  4. -
-
-
-
-
-
-
-
-
-
-
no image
NRTL: Pairing and thin priority queue modify timing test - local
-
-
-
-
-

Observations

-

Most points in these results are similar to Priority Queue - Text modify Timing Test - I.

-

It is interesting to note, however, that as opposed to that - test, a thin heap (priority_queue with - Tag = thin_heap_tag) is - outperformed by a pairing heap (priority_queue with - Tag = pairing_heap_tag). - In this case, both heaps essentially perform an erase - operation followed by a push operation. As the other - tests show, a pairing heap is usually far more efficient than a - thin heap, so this is not surprising.

-

Most algorithms that involve priority queues increase values - (in the sense of the priority queue's comparison functor), and - so Priority Queue - Text modify Timing Test - I is more interesting - than this test.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png deleted file mode 100644 index 74cbc6523697954b171fb26fb1807cf4f324c599..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6788 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

>E@z#f-JJ7wEX%&OBS+$FAPXu;8^A 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 KuN7$D5Be`@@<1#A diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png deleted file mode 100644 index d8d3b7a7ada1cbc73cfe83b4460d8a63d40e768b..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 37071 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 N8|a!`FV%4j|1U(5eTV=6 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png deleted file mode 100644 index ca901831eff8c8d26bc862d7ed50c70eb04d65e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5007 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png deleted file mode 100644 index 23ac5e73ec1c05753d5f6628efdaa8271f52f296..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 22019 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 Kh??_W|M@T6#?jpX diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png deleted file mode 100644 index bf68bf9929200db774943cd1e41b6d3d27766258..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 4996 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 k@7)~${ - - - - -Priority Queue Text Modify (Up) Timing Test - - - -

-

Priority Queue Text modify Timing Test - I

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - into a container then modifies each one "up" (i.e., it - makes it larger). It uses modify for pb_ds's - priority queues; for the STL's priority queues, it pops values - from a container until it reaches the value that should be - modified, then pushes values back in. It measures the average - time for modify as a function of the number of - values.

-

(The test was executed with priority_queue_text_modify_up_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100 t)

-

Purpose

-

The test checks the effect of different underlying - data structures (see Design::Priority - Queues::Implementations) for graph algorithms settings. - Note that making an arbitrary value larger (in the sense of the - priority queue's comparison functor) corresponds to - decrease-key in standard graph algorithms [clrs2001].

-

Results

-

Figures NPG, NPM, and - NPL show the results for the native priority - queues and pb_ds 's priority queues in g++, msvc++, and - local, - respectively; Figures NRTG, NRTM, and NRTL show the results - for the pairing heap and thin heaps in g++, msvc++, and - local, - respectively,

-
-
-
-
-
no image
NPG: Native and pb ds priority queue modify timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  8. -
  9. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  10. -
  11. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  12. -
  13. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPM: Native and pb ds priority queue modify timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  8. -
  9. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  10. -
  11. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  12. -
  13. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPL: Native and pb ds priority queue modify timing test - local
-
-
-
-
-
-
-
-
-
no image
NRTG: Pairing and thin priority queue modify timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  2. -
  3. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  4. -
-
-
-
-
-
-
-
-
-
-
no image
NRTM: Pairing and thin priority queue modify timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  2. -
  3. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  4. -
-
-
-
-
-
-
-
-
-
-
no image
NRTL: Pairing and thin priority queue modify timing test - local
-
-
-
-
-

Observations

-

As noted above, increasing an arbitrary value (in the sense - of the priority queue's comparison functor) is very common in - graph-related algorithms. In this case, a thin heap (priority_queue with - Tag = thin_heap_tag) - outperforms a pairing heap (priority_queue with - Tag = pairing_heap_tag). - Conversely, Priority Queue Text - push Timing Test, Priority Queue - Text push and pop Timing Test, Priority - Queue Random Integer push Timing Test, and - Priority - Queue Random Integer push and pop Timing - Test show that the situation is reversed for other - operations. It is not clear when to prefer one of these two - different types.

-

In this test pb_ds's binary heaps effectively - perform modify in linear time. As explained in Priority Queue Design::Traits, - given a valid point-type iterator, a binary heap can perform - modify logarithmically. The problem is that binary - heaps invalidate their find iterators with each modifying - operation, and so the only way to obtain a valid point-type - iterator is to iterate using a range-type iterator until - finding the appropriate value, then use the range-type iterator - for the modify operation.

-

The explanation for the STL's priority queues' performance - is similar to that in Priority Queue Text - join Timing Test.

-

Priority-Queue - Performance Tests::Observations discusses this further and - summarizes.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png deleted file mode 100644 index d9dedc20cf402354fdee186a7025fb57d4f78094..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6950 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�>b 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 z z(H3w-^%!0e3b|niNosJBT7bDtrT?B?$9u+yrlt%I4i30Ooc$S+HGchoF(QLE4>u;P zt6jv_slMNc@oh@`k~$$AWg=f^vJX<{T{fPu#XNeBsItflQDQXo%^+L9Z{0^$bu z=StRQTNELlD}D1rA62fiD#%qwI86l;hoxO`x+zw`%#Rj(Tl=vrB2{>;LVX)Y*h>*% zvQ#vd~hGO+b1 zjE0c3qop>GuyuO9Zv)-hM0nLJB?CCK$yKM_Z%;cNEx-yS<+Lp~_%yRr9^lN?o10Hbs0ra;&1^>PO$@b34h}zy%{m zfI?%KLtFl@RaIbApGr!i{r6TlOC()qb!YEXoJ4`$cob%D$fc0jg< zcD*npVaHavNaTLNv_fT=^+4p$pUS6)T2puU3O zsY~uw1~D^|bF#Y-1-GMQD;0+cLF@XoQ3C%~H?cE2l79rP(~6Q+bYWR`hm=1SW6B|_ zgnT91VpYXqve$?m2e?+>`*-yX{{r}4FfCu5@&FDeT*WKSNKQ(s1T^LJV0|p$*~>At zz1>~h8V}IM3!h^ZK7nBX1Q2~OUXdR_LqikIBA>q9d05iG>dG%x^%&bMi#aY<;`)&q z87%N8O8!!GJFVfWyU)erX!b4Il>{|)p)ba`h+Vex`F{cu1?~DZP#+yfJaO(Z9QfSb zYs2F!2@;mw(Y+I9HX2BA_g!Xo6Yx9WZwTHl*+DQq z>1Ot0f;Um(dCuM6N#eb}38Xi^6(S-c(wc7nD5SS>_qmrk1`!dFM3h)aOLhYTE_Dzh zBGP^6QAq2$)T0m)5s|K}N4#z-A|fJPgAxl75fMomB^DwgB9b&pETZh%wJTwnndNq* zZ8N(eT%=4yM5M>+af3Hco;=C(&p%IneLVpE`}gOOM;_tw%P((M_w3oTq@<+Kr%#Yy z<>%+~>Z`BDRxwg6N#N7{EXd5CTB3)gNdfoKEfdedAvV^CedW!V) zU>52VCrlTY&aJ-l9i63R$*n8H*P$ zZb~Wu($mvfym&FomMv>K7l}lutE=Pi;ltF`)zQ$9OYrnAv3s;<+k%VKEUAkxQxD_gLiT=L68t&_Hf(E~%-h z&FZA4rjnMH#*7&=NKH-U)TvY4a?34z_~C~vU%s4-j11<^ol7JVp{S^c+S*!<9zDwR z>C>4xb7o^R{{?&tcz|I2j9Y+XVUqBWyVtZK+`k1T0H=e6LV3{LBVikl0apS8&Fld1 zq`SMB{R}t`3^22U?!F{!YoD3D4b%fu%xtl{FK_SnCn6$}RPNqYw>BXdi{XH;UAs16 zy|ruCo>$l1eeT@3e)#a=raEKBjPXxC`K0N%u&~hiVjRkb@be+y`NlYbslcq({vO~* zz@t&e-vRCl_a6nm9#!@XP!R49j5@y|!Ttc?zk#be@!vxw z24a?%ms3zs5Vu}=c{!_BuWoS_)R7}ca^sCRHXUDg-E{z?fsbRVu8-P(2Pg$rwIST- z>$U(h!_RwwtIX`{VOctG6MzRRpAH3X1FntNsJqvNOQO#No^C@NA|fIeMYm5Z8XtuK z6c-m$RaHesM#gz{s;a8E?6S)!EG%qS+k*xT0_fjT9d|!tW*0J6r8cVVI(L5}wn8}G zVh!*A=bd*_TwENt{`m3ZdG^_7898z!)22=9%ur+fGw`~Z?F4oLcLQ$#Zvy{l zW>bJWfE+XXA@D4aYi7?7tU!7naM<0OO~N4}BGQ?9+yq(e5s5_DvSkaANQArYx{Ez~ z_AqMHsHXC&swzf|7%|A*KR2_{?p|SLR|99<{bXZ3GaKdZyIZ=KnPmcp+`T?LP6bA| zdu7z|Z3KV!R(Fqt=LZ8{1KtL%0{-Og$IWa5@O|J`V6VGZB5lI>)79t`dk~B&zL_|a+ oX_Q!qh=@qiD6tR`5s{?%fBm20X$ge}0{{R307*qoM6N<$f<1XQApigX diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png deleted file mode 100644 index 4005547c8122433230b1fdf562a8ec9f4c550e45..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6983 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png deleted file mode 100644 index 1aa5aba94bf44068a0686d14cc223aefe36d3054..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 4867 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

3c1f%>AwO`}!jW zGDiEJ6vU>kvUvJ(R`!XSt9J|UX_;<%p=zVM$9BL)A4#5~hEH@tglEK+PtPl>4kNMQ28Iv35fjm|4a3i}#n-*Wl_ERXC|N3rB4%qe zGdwi0aaJ0W6W_)vyohx65q|5YW^uw;O8LSSm`8!mN!aP#v@XGa?r+of`~0I~efO8Q zN&i^KlwvGha&_SOrX1P@0Lj^Odc1or(1OmFd!MEBuWdA(dK~0dY+OPu`yS-x_giyF zyra5uQgy1aHC*UW$7kKbmn)qimaM8B$NBSu(m@E_W@@8xk||=g&4od3lP|yQo{`D8 z>w=u-1>WWQqg4F2?^XQrOl1YtR#xEWR^dL;*z1Wo1Z#0#6~Q{SJ1GsrqPjQluRR$m z+WX6hr~xFOT?`JWUE)+_Aw}aiij(p-3t@_do3_dyQsI{rHkAhBD(_4hNE8x^%?`)0 ze1(6%7u5ZI?&GdMW(DO6kb^D!jGHAy{$-ZXPf5qk__^$?qpH7_-u#(iv`%nd@7OD} zgy%hFwy_7f3belBJtBpvA*n+8wHrYcP8H?|{^4orwS*6f8o_6D)`uv_O|`759pNas z5WL^GZq#X_|3;9;E|Bj`T2}BD@$XfB3zKVUv1_#xbOq0h-O8e`-B->zzxE6SLjHLVEh&ygn9k zF!FzDMSm;e*})2aJ`r7PzPfH$fHg)?Bc>VU4a`%@$l2UW;Hds^-%v`hpUQGS&m-cn zY(URWGd=gUP2Kx?M(2nP)#7|q`{R&U+|;pTi;3rnheLCVRvH?M__m)syy+ACMHyk{ zC`p7w4ySkRtMNG(zJryu?p`;1N965_Rq!X%J9lM5Na}8K;7xJTpWJBzYm=swSDg;` zZBrPZ1b4CmJ6koFV>|AjJJ5Kj^;~pgRgb32&h5>SH!;F*)`e(Y7CAanMg+)Z^S6jU zI=s#x6{0awi=kdnEdGUCBB6hI^oy0C^9!MxQ8{6<>bvWRnJxYyrGEX}3<{9@mv$_R z>L_2&sp15tGzh6Myu*L8IpqJ5_6khTK&O3oJ#Sf`?}3!WXPsG;1RC3KJ`UKK1_p` zy%4=Z+jJ7XvtPhe#H3sLQa%xcADjIIq$eTr!B%SD4)PbvvS0lo|Hx z{?~B)^bz$++rMuIuyJ?O6!h9|WB20P*B>{=V2|9E?V7Y88aId*{34zb6)sI@H@Y=Q z1QcEk>1x#?E;N``ig}UKBX2xnoy|!Iky~QxMAWyfw7C}LQrg*#899{L4m>me2VqKP zn0hc%Ea}S6UETs$OZE3X!HKlxEg94g_#2Wl&wlNeIGG!x@39eQJ-L0cMQ1s`lA27FaqI9obW)jE}&nI7u6i=P3n$UN2Zm->75p{<10v z!$36^xUM^19;PP}^6{>lntJDi-9u!WIz1MrQDjW_C>VCa_+hplwwB=J zYaNW`k%_JMY#}!HwvvLKqBv67^FLTAzUBTEGychUO)%biO}VeWT*KDlkEeL|+@ zrI3^BP}G;Ct2qCo_yuqIlY{5i(y5$uyxl$4&r`jL-%S~<7?qcAM$>N2n#M{#I5nFk z)5%R+*DiV-R6U?lTikFu_Bw&l>TBPdP$^pTf=Z}?f>=Qk|}_*MPq>o}XtI365(fzL^kZ)z~SB1NifQ)Set w$$98ng|GP|iE4JK`3ZV97lW_qKmYc^*KVBcu|Bq#hW?{B(lggB)V><}A1!52nE(I) diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png deleted file mode 100644 index 9a73934c7731c4fecfd06601b4db1451f7f230ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 22214 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 H-2eJ7N>Y1& diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png deleted file mode 100644 index 740594384cb9d17127372d7908f6731a088c41f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5216 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 bJq&{Ky_!5d7SZrOhk&k@p=R+V`_O*^;5Gr6 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html deleted file mode 100644 index 2545fc07d1f3..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -Priority Queue Text Pop Memory Use Test - - - -

-

Priority Queue Text pop Memory Use Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - a container, then pops them until only one is left in the - container. It measures the memory use as a function of the - number of values pushed to the container.

-

(The test was executed with priority_queue_text_pop_mem_usage_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures (see Design::Priority - Queues::Implementations).

-

Results

-

Figures NPG, NPM, and - NPL show the results for the native priority - queues and pb_ds 's priority queues in g++, msvc++, and - local, - respectively.

-
-
-
-
-
no image
NPG: Native and pb ds priority queue pop memory-use test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_vector- -std::priority_queue adapting std::vector
  2. -
  3. -n_pq_deque- -std::priority_queue adapting std::deque
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  8. -
  9. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  10. -
  11. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  12. -
  13. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPM: Native and pb ds priority queue pop memory-use test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_vector- -std::priority_queue adapting std::vector
  2. -
  3. -n_pq_deque- -std::priority_queue adapting std::deque
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  8. -
  9. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  10. -
  11. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  12. -
  13. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPL: Native and pb ds priority queue pop memory-use test - local
-
-
-
-
-

Observations

-

The priority queue implementations (excluding the STL's) use - memory proportionally to the number of values they hold: - node-based implementations (e.g., a pairing heap) do so - naturally; pb_ds's binary heap de-allocates memory when - a certain lower threshold is exceeded.

-

Note from Priority Queue - Text push and pop Timing Test and - Priority - Queue Random Integer push and pop Timing - Test that this does not impede performance compared to the - STL's priority queues.

-

(See Hash-Based Erase - Memory Use Test for a similar phenomenon regarding priority - queues.)

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png deleted file mode 100644 index 2c1918d06236307a071b186d3cd35d6f2a7f80d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6582 zc-qByc{r5s+xKLtB$XvYNJ2$17!tB(tI0Mfi4iikvSw*)A!HXZ4cYfy*2Ii#B_?Fw zq9TlKEHl=)pL=|N-{*MWKi=axp1%h;0UR74!U2HRG7SURG}tBB7C=Kls|2P7bAiDC4G>KR z7Y>akqR{{iA6OQYa5yxMh{gdlxL_Bck%&VRiD)7Kq6eD-ebE384G_@)KqG@j78niE z0pbT}+|VF_$-t(;E&&=Jun*v{5^$IcIP?bok^es}8;ma>_{QX-{lFapVP>Pfj`aQT{|hSlpJ|vpGjv8j z^RjfafoK@&U(m91c7Nt>?Pl-t?7|I68F2|ItY<1G1i~qKTV2)2``vQtcui>$o5qfu z{SpH)?9od4PFyT$f>9KPJAu5(hp(xMF?`R!$HN*C^c2$8YHABP$w;9?zCfv*=w;SE zf;l3h0=vLC&zJ+jzu?G##?k#hjiU1*(W*NF8va|smmdFCap9}m-iHangR}~;4OyN=@3`)d8`d6l;$sNV#aZXvH0U6;%Kyp&K~SjQNI%CZ{=jl&oN zo?>^=hxgH!!%*jXDSKBkuv6shxn=J~L+9u)B2T@=Gq8RCel(qL zKlxW^yJ<<$&1ZPx7bLs?t-tazPeMB4Ojf)1^i=@s$E&g;$M@*&xl$;oPeq(T^MXqC z?`|(7?Wv=nSgpc=U>|0Gr-9CUpPeT(fjqeD@AK-bDvOB8+7?QArQ#Nruy@jwk{O#NDbL747+s8haV zc#ZQ(OHgUM?*aSE{pt<`uYLsIn~Y06Pl=xc=6Df#e%0ozsOG}2yb6rvqw9-8AwF~zWc=slA3C-76!8Tti)*m5;2_=n zRC6MeH-BPYDe5t!`_ZS87*^X29K%wCLf-Kj%|4x1TT5U zYzE8enXDG2%-KKLBsrB2rn zkV(68tWSQZLo6#MJgXFy#Dd|Dti@Pvh4II-(a}aQKD5QJaSi-bQ%0LfZ430d@42=YrX7 zMVW53`U37kzq*MF{qM*I)Xv-!AVYbm?T=+c(PFb zNxZyeAc5*7Z@nHnD1=s-B;5|%VwHSKWs8D79&6ZLGK5_mm>irVwO3AlFj9pXR1YFR zcQo09@>_$g@>}{G-&8+I+!)+zI@G@Y+)ONZ22pY>(E9kc=b-=0$s(*a+hKjo0CU5W zHg4OdQ$pq(6G!lkcL9TsLx}F@y$IF}EHTnQYIfh__s1*vWzLPCX9W`&@K*8kEMQ6L z-pFO3Qn}~ba&_GgtMiRkM)7g?@496OfOwNJJ9+}?s{vo~7H%2ZJl}zorW+>}}aG;owP%cD-{hN;a8#sah~%x+Sa8 zYLjJr%jW%ZFD#o8ul`*HhK^l%>t$xr-9F?C<X}r4L0` z$P!Jmv!UxY)ij_(u-)?IWUE+~Q4-E^=7xGr6eopEV|=q~XV_Kec7Ip>WiM_qkipvN z{usS3XFS8C*6x`>DO1|HLd_a)sAcXlh6QexDg7sMdRHSr@1gj$`}idSOcfs|cG%fH zn7XG_)NIf zeH!x`^An198T7YYaY%vUSFPKpIvk@r5A-l4(&Tzs{9?1I_N;bUlK1sQYZKV`_xb3? zp#tKAB8!}AFZ@j8&hs+qDz1=l1g5_7_sj0#C4~5_9!BnAc^PVZ$1mspxO7+yIh%TQ zO3RRQLH6`MtVq$(?*{qnpT3j@v0TucWCTS11+;c8@~#ayTkU!2$;|&~(C!|*{!O6j z<(y4)F}L$_l+8!_X|3l(lRSkC>`nBwe!gA=Cp#zU{Jd}^Q{=PLl=xO(VGJGSt0jR= z@d*C0gn3|EAWG_OnM#iejQj5W4BMrP%!C5fR{pg5oZ;la(N6YYk&WHU95MxsZk*3* zgc^rN;!%&6FtJ_M0KtaT7@h+e}osVtQv)ce;Mv-VP3Gw>lp6oUWC6{S0ZdxcGj!& zQoG>rL}AAK2{rlYb&JQ$PF%NHu#p6Vy20w2Zh>AyGr_Ih?m^MziUUULT|!5-&-DwB z&7MuouEhjKeV8+E%sWPFbJ0`~PBTRkFbOlG4zg;`iZz^l;pa!M{qb(S^%wfU{KjC! zE=GzcJxc33LT++3151t9taFH?NVi7Gt5&WD+veQPTIwy6gVp!0N@{!~0g-bTiYn7Ib@e z%pKK3VJb?!h@07S=|P{it6!j6qS69RH10$fpLx}@8r)o^7ra(>OBT6y%uY05stNx{adm$qRSn!3-g{fy!3DA(>O9~JbUOtHn6Y$`ricaLr7 zYgL-5e%QZS1^y&{j0?ey^Q^9eM|avy!axOg{$(qrlIQ#+a(30&wx(~P!G?LztDOpr zyQS7(<{%|{8<{=Zz`(j;i92ZB8u2V9>F%ic7OGa6A0>wQJ??#i%|z2%_wp#))pq?{ zV5D{>O1hh$@KSohDob3g3AH4eVOyNZR!ZSt;&9@}{^p+NlIs8S)(|F{C}f=M?5f~z zL@^b%WQAtm*$`{oT*3Sm2`J5~__o%6f*qG_bZoZj$v~N9}BT=G|*=-*M)vUWFB4x?-jS1Vx z0&`Ke-pHCBhH$GGuc(!VWdQ;Q1<6_mXn0c*&5j;UXJ4+(Cj7Ox;d4~9?8p_(?ztRj zwjlMPNp=Q_drzgSAJCjyJ2Blc<0*h$7{Q1rC_pf{BYs^WONJuDLmp*=g^H_Dem#kg zBTAKY4txc$N4KZ@eMPoVS$?155X@y>etg+@=6dO0$R>^_TSz6Vj$D@PT8j+q^^?1P z4E542D*+;+Nzv;9x5P`i$^+^s>X%%;cu#Ac97Npu=cb_lftM_~|I7EsEnjjUMnIyu z*WbR=1QV!l3XezWmsi{J;#I^HSGUhhFkMEwgabFKjC@53a+%Yn;UnRHCfd#En>61u zw`0}*^f7JqsNR^mXcop4U&)mIK#0IG(8qFGPi-WDuk;g3KuwgqzA#O9T4WiTXN%|( z*<4ovABX}o%*ERZH(Nr=F>PAzY2X{5hL** zud|?3j}o3wvwj?W7NU}l`iOv>c?}t(>aIKoGG`Qwv4)~ug4!&%9k(|mi?CUoNJOMl zM4I;h;^khmCFIOx+P0s(@2nGy152f_X z=_Fsb>B)uTjh=_jno8~zCZbR7g3p`uSwIoHFKdxNps>k|X(t|S%z)!xbO-)lH?R-_ zrEgqzrNn-6KUg;Bc@N&6PpotQ&&sKER&DlSi!JhzoaegiJF6Bh z&Zb(CZUHo3hQ2nE&7Z}O2V`;+KXBjPDW(eu_|d)L9?X4+lXGni85e9hh>U0VoOF85IeO(3!RhZ$} z?Yh!zjru0a=jWam2yc8G+G+~cPbw@^)+v4z1;RiBSuo;etF8im-p*jM+dS zeAGQrBSWdx#GOA+UQQ$M3sb^h;Y(*m3!gR&)I7?MNgb<2m@|7WjQk&pX5Yh`sSWDR zNkQYG$n$f=x?68jqr006QZ~Pgp1r3cVNA_pjx#@_=?14b47oFfe*ZC7{L~@X71}k# zEVw;amF|4-_!iY$YPlfb=$A{XPG;i+N6BRx#aOYe&&Y+4RgDzqF9UBA=5u5BF!REI zpZcF{b+oNQg!GraS3fn>+^uoflb#k`J&{zrlA2Xi9loxZX~bdME_bjc&FxoxjXA{! z0SA7>kct9tk4%5RUtfj}Up5XZ3JdHw^&mFP|FhqltB>9enTZt;h~Z0dRPT9Mtx~6l zt+!AC#;pVM@)hRhH6Fh=iw?LUGvWVMMWN(Hh6kle>rLaRGx}qh4zg8$59mH_dX22Q z#CePw_(k)6)~-xQNr_%LFk6a$_*dweUS5LuI}1vxLNCwsLT+75>4RnOd-mUqv#U-u z*e`=lro~#ee4hPdJ5Rl?U=}M<2D=9(3TqrFLzc3|sl}E^N9ufKtCO07@>0w{j%(kL zJPd~Phrbu(F^l$Bzgr)}>wkZ!_YikpVLl{c5;N9G`J@6Bal^>R;#Ay z*~@$uPpwWQy$?op%$Me~9GuLM`(OU&`QOG$6X<8oDwVCjzBzA0OrQc#G&X3bBl@ql zB=h?z#kI_o?aVCBpC5b><7NX4;Kkaq_{Mcyi7khf^U!LZ+*L+Od@%CW_@sFf{()eU zh$G*;@M(c!wg6D{ZuAIYd z=jobNpSY%#?K$c^Gs*5wh|PPlss@uQS-5JKD2Af?we|e4BL|&PtMxSYXn8!X(VY8e jRgnckq3in(vR}a3^d|FCdf+JSPw3kky6RpV((dym+okN<>El0)a@OYD&5w5Ee5C1YRV-1D+h1xBLbE z;J_83dIZ2v0Kw~zz-K}?HDfqXehTvoR^&?a1s>9RDjRvebcK2PSbNxle0+Qa>|Gq; zHr8&o0k8h&wWbfg=AT9wvIh9`Gs~jStqM{`_X``yg zzg{?%{u+4a{9m`B@=x>mdaK@;7J*;p14KMqGrTMOP^bv6NaS2ha}fW*?Gsn66@)3mzCwd@PAMG6UcziLtm0OnSqb# z8ob(an4-xBnE{xB0_6@~M=Zsy`FqHiZ@~BPq~wH6P)V_U0k#`Z-fUugEAw9i6LSAo zLFVG$Hzse7egn^&>yG~Xt7yOa|JvjKYXkb_YI1C%37*CI4ak^oOp%EMU~v5jB9DiD zn`M)_<>yl@$&Vb0p_)9uuVR||6Nj{w`oI(K$?KMY98AZ%!dqySn{aLyh==+egoMiyXLU3ENR%ptj|fY=aG)f$1ffEBO_A?&%%68whSit zjWFbjJw6+~gTG|7qzJ_>IVg_>-B8;9TaV574Tt2wP{G{FSo{U?TAR>J1VXooFLl=a z@lSnSZD^X>%!{_bP(#E>2WFXdSx5e?;AdCo%P5j{zaKfoQ}7nX!me6Uhg=CBkg#kT zhv$DlRA3Vk!j!T7fn8JOJTmI0KcR_&sC&c4gCX$uusjy;d}R3CjD#cFcl@i1qtHv{E} zYV&Yk1@ra?ZpSKE@YrDHWVXtd7@+iwFPY+lOn=Fz4#E?tt{GLN!8{4h2k`iDy^?+-hLqREV}Z%Iae@t7m_{kR-WMz(-XxLFf4^~ek2r(f;*nZfs+yR{ zo2^nxh`j^ZLFur@lgEi@z-C!xs1hq&g}U4?EY|N^lTdt1e`;=Q*-jr{`!80_hzv{u zwMuO$EOsfJZCg35Z~p^pE7?wram>u(LelCo9cMs>;TJ4pfY1$<_e2UAcHoeh*9`qQjfG%7RMIQdzvp(Fyo4f-v}EMP-yGV zVPtdG{p5>q7F<$>v@*QmvZu-63s^*dz@({jTZzc}v(bhy_J;CM3MjVCb8)ab+DV6E zrL=-W;Ux&-ub}H{C37GXre16dSIq6r2w8k(_%BQZnoDGMDD-J%?;GKMA3EfU_>3yh zV*g-H6mo~vn%K=zEGiTp=POHM<^Y4RJF9S+iTywaX#}1CgPZFq?k_b*?-)W)L)Kso z61Y#;KOy;JN-7pO?3vsuk%3eh0tinjAu*F0e-5`$PA1HzIIv5tuULW*JsRq7^~bh^ zYJJd7_uZrq9Gl@$A(VOWTJ%mhN!SKvQhFuz)n;|6e_nU()x@Su!~2NJ5WCb}m&r2* z%aR|kYC{9E`Q4h4Nj>TNIG(t-Hn8Jm`KW)$#5?lX29#nPpWho=9tvU0&`eQ1)NCPo zOG+nFL?*O3ZI>mxTJ`N7yxC!mGe> zfz)!l57|+Q1^M@)J4%<~)Ox><7Em=?B(2}=vILSxhR4Nlnmt zOJ==zdg7c-ZC$fg4HJ`n`@4K>4P@mCp{I})2;0(<_%zldjmm*FRLvdsp^R4(C@`R^ zucau=s zh}0&(q)NtsP%@j;j>r82r5!NjNMn^Zy4SGkQYBzonqo^02q4`d(-iQzhGaA4ocQUgIgmuN zYJ#*>l_$1C*4YLhld#J&>=MKAa>}kBK}^ZJy~*6Fk%1{6nlMN&l{4BGo_|jvE#(=$ zx(Ns!E7<@QKKF@FRNiq1aWW`tX3Vir?)y&p^J0 z1O6NqpJ*+(*r6ALH>D-QI|yu<7t^`cBYV}|urr&-p-?HJ?A-6HHKH#T(J?U{g{0Ol zKL{i0jG?E5mEG#l*_7#>2MrjMn2^+;HmV>$cyR*mv_RltQ)5pc^9~=oP2*K;Vg;C; zq0lgJ^TZo?JDW4!_4^myry?lv+<(Yh1WX;-PLxi34IOoZ;zJ$oSx1!Q4ddgS* zLYLIbwj;~A8o$nRj4;F*xnf-@X}pg3eDyr4!-an{S828q^$GPBc2bBjSZ36o&nrRQm_n)q^eNnCK#$DmP9@=-CZo7_*Trg^l> z4>z@cXrE_7`JCMgM*#E?91N*_`@e{ndSm2*l_^}?xMDUX5edO>;v6X{#gs4YDAAKJ z4@U;t!tBU7+&g&fJw@0OykXu@+z3_6CEF$EE`hd24IVY008DY>lB58&8RgMu3UWUQ zo9Jl-HaVcC?5wD*j~`wQfqOvs6g;^WKRygJU{FRtnIgljh24!Yr+38(V)`)S@}Y$3 zs5dGJ;qs)`zK>9p#UE=pbs7h{2=-BG+!dz5q*nIgOSk7KR z{OO8RH!?Qy9~DcxW&a<2qz3Ge1*D)Abibkvux~`#`;JsFxl^05z_jU6@kRaqT7e&!b3kbqJYHACi1fvpvMFIqDJ?_?bsokg`1z z(SX;mh_ZG4;@{{1l~mX#H9N~d-o(ZDzEbwL7PTB^9~j(e_w0VjVe+L3le%nUV_-mI zqy~uKbYS&p_=%i_A+^f9^|HP%JS&vJ}3918!OStQ|bN0EFa{#((`F0v-5P)w9|j9xX>GS z^d@xT??zs1$JHEs_){7UziC5sC^r5*cI{%<)B(CpiufI}F)4zTl!kQHTKctt~7IORa@Kg6VHs zekST$*zc6^&}X5wp{BwQO5vggPoI7r?ds|x8eU&ptI)I*aonD7701Or4AyEt=pr6i z&QyEv+&J%TtXw(0+>N|ikrfyBS-rd!Bqk#ITp*ZQzuR^^R3<29=ntsAlxYSlvvIE` z#sgE17W{-I<|hMTPim*bzUSTlOY9bc9E^M}&$9{rA4gNd{@dI+k8GnltUt$8&4GY{ znVo}>*Hq3FDvh1RHe=wlOgaAU zZE%*>sIG&t=B4dI+v&bawcqL12tuWhJ6%+4G2r+#GfO`BRtFJK``nN};vwzqgC_8X zHLO#)w*`ET6_`N1(4vK12wDlzYrnX|nq%aALW?urv%rW!F%@Xtx{ct{Va<1J6k6_c zSiVYiZ)r*HJ8MASfD#6GPB+|h2lY;_vHU>P$kB6W> zt)J+{Zz*3`?>_}bDi1z`o)Zy5aR<}HgELOc7K#ij7k*BZ8Wsk2ZQhgKaif1>EjY23 z=6Wj#k(Tm<~{$id@+#9!bfOU%fn%^ zaC+YjkY|xGgl~vFBV6EvJDCr9{?P*MMDekEQocXhNiHP6JyaRi@YsGtIXAkI%zE0f zKgGECodN8uJ%0$bf^y4-jvr%Le;FpRl5@i;W_0kV=rL{cbsvK!aOnGX6crUcz05V9 zHFa%QR@QK~L#L46Dbb-*p5(a$u~B17YZ~@UM@Q%V>5Zj;MO%|SrYvWco=mrE;JVph z!p{W(5W*XG4`&UOhAod}mpc9K&wu!chS-@+!ypN}Xa22hzbtqa#hnFmqOVC|XU-yp ztB;oy0k1_D`Bu#DTDfM%r$P+j`G7@7FfCa>C@7JdHtM%>PsvbJ^aMX4C$nRw!c6)B zOw%{B*DtdblmbeBupcf&)z^!+JWbI=P6OQ_efu4qsjWIYH1S%e`s)foLj5q>Q)Z|+ zwcG??e>?^ME=y@ZS?XSPl{5R@g&g-UC#{o zUw7~+p9w{<^usfjT-uOQnR1Ym{7hxK!AUs zi^2_bZ+N=dnC^Rz&a)D~d8OS&pMz2nEb=$$7^bc(qnL>rDUKxYM`l&sdd4mY5GiFfBT zzi*l`dfofIzV~dYkEC}wz4Skd-HTs@G|!4ks|{919t>T4q*k>aU(5ICy~0w(VhsH@ zxRdPJ{m0DwA-{VT*olbY4XpCD1lzh9eagc>-r*unZ$<~!Yp z7{oaDjkS~^9J)osKvu>^;wZIlR{uYz2&&jw6n@$QxOaPZonxde0UAVsggs@uZvF7$)Go(H)5U{$PE4Rj|jA) z_o<(!>3TXwSP=N@NvuyAh$TwRP?D{i)#%xFZJwiC!cK1%3pvtHBK_oCSjVyZz)bO; zF~}Q+j72gD!Xj-hBe5Cunk|pT`Y1OYVvh1J;bP*5WU`Vzop*d4sT;LWKboVEucW{C zCBZhc_cZF<@?L;7Y*;0>5$`f>dXX*T8BK}gBs%EhXSz&lSTZNO@4AB!)EH%_V7KH1 zp-=lAmk#$*OIi<5O6!{^1VE~>fDLF(mtaC&4lpY<61~HmPSimi$nqG;TWyFmNA;VG zQdzbPl4$G>Y$=rlbOv02yTok$8`=Q$p3R(d^BzQ68VQEBR1qb+l3hba8hF%Xq$vGl zyc<){n!1#zU~sFHwr*h884k!0fR}WQhOo$J<<&kPPN#*>PAik}3eaC^H=-9rC(oZ= zv4)a2xFr94v6S(kZrw}^F7}h|FM;plZ`Bg(TiHCE%!qq90$9(5YO@fGaY+7(?0JSI z7OU6OW&Y6Z6Ei*4I=jIF*x9S*m03_Q=u8XdKQtktLuP4waWb&N_8Y(kXMJ_KT$cDD z6gh2CxI6EG6_0qGa4iMYF)2K`j#%iS1h-U{sxN5^)-0BJ2scbjO5a^FStS`O4P4nf z`Q07Z^Ah!p*r-sA5YABgE}jW5q_O^*lU~CvaVYcPPTy;J9|kxZqbgUKr$i3%C5@GW z$ealFUo2nZ6ucdrYf)05HC;q1_Wz%pE#*A2%qxWcE%{0L??YW+-X5u`ZTBS-4hGJ# zvs;l=8kf>JlV6WvXPNnvC@%&1thn{9kEJ0!s7~}wyC(ihdTFbJ=UXqRG?qA4crX1L zx2Xg118`vI?4Z+gqLn^874XZ@1VS(QHsO-eQ?`0=2e>Abad2ll8V`WEF^c&KvDI9G zCDY>XLA)?ATwjK!+Uw`_eXn8cC?Q4VaoSAZCaKqK*0tU4nZ6S1y5&7*0ZOF~Ybn#z z+sy^{g9L>+irL+2k*C_$W_g5g*<1Vo8<&_IHu z=lGxmT^g0?swlYEyZi-I4vHdZ@$01Ix^77ifUkMdhdyIBF)yx5We*(M{OA#48Y&>z z*+*m&$4Ya0DT|8odEP+eIbaz|CVojWQ$;jf1j+II)u&-(0-3$SoE!&>3Jv?Ldb&6x z?qO$w*RW>0uP%U{)+^GIWw!l{&H9Qd>V>nX*99>3=*n7J4BT}pc?qb7U%#@RDM8D(<@#m{0ms}SUtFKtki$<0wo;}np&=vsUxt`+5d#!p)+>k5R z9Wc}os~3b%ZqPsX$UYURHJ}tSWE+`3NZ5xTW}XIs0PB|Cuxk4EJpL+KH?|zZd_p&6 zPhb*os-H9|FK+F+CD%ubD^3Fvr?7oz(J*KWh=w!(^jD&Bwn)w4S;`v|EHmVYRXUu$ zU25W(yq84r^d)-7aEU>Y_N-IAKPob=oMrQl&Fgt^%FvfNwQQz?Y-C{4CZGJ$YeCM8US~LC9frJD{9D_HCfSM zd+y?LI^$m@eGn*V#}60 zV6~n-e2a{nYQ~9<-0Mx5?uu4fPKU>v$nVquc1|2GMZ*2nQ>^o6E#A9+<;WXh>n@xS z%En)>qSinc7Z=G`Qzu&!j&(@JsXW!#@X#mW5+(#nohW~%XR(rcO5 zKjQqS;O*B7`=uUt%Ta=2r~aLVbTz8cG&&jk!$qCftAfseW2jnCW%L@~9xK$A&oyuL zw$xj_jaOx&oh{KXmH#etTV~T6V?NvH+UYv*nV-zK?#&3;XU<*Ky48EP;|-wLf9J)@ zwM;=dGwNDOcJsGyt9zN!W^$FIzA^dlR9D^vt#mAUj%i&1mi1Opff$-h#w-^wMpPmH zcgiyO#-$Iz9*7yBTkw*${Edj?YJbwz73L7MKr5}@JE1a?uCcT{pWOYPE8z*&LvR+h z?K5WQ5Oen!46RiZq1LA8UV4{x7NMLQ7PAnX#{@G1;s2l720K zfzS*FlTVwTLgAuli{Gf}id7XO+l}`AilLZ8Oka*vz@gp`a|{n&E>)vH09&|S;x5bV zeyy@`m_jAHK=N0PiWF%ak^iN-mu(j-8uxkR&^kCHv;x(jKy4L?{PbK|b4dTc{GKpb zGmt>+*n7Y*(i+kuVn7Yf=3*HK}_kBn;1KjwJDD9u+fMliUz5@hg6c z%ODu=$|xli0E^)-a4lkLiz0xPni> zfGT7z8EZh6v$4^w#tO!J(h2dHki&)DQUSVs?mxsnlB7VnWDhy+8yRY*EA8R0$Bpw8 zsp33%>6wPzX510ZVzN7m{{~kE=LC1*No}H5O+q4W04U%UtgxVjalJ%Q*Re~;>fTRw z3&h^PnP|%K@T$x0;YcO3b0B)Kd%rm3X5^2ASsvYCcL4P@gS;wu*knN@kH_0-(>Hz7 z;Vyv=f2uTWl?GlB6Tk&uQIdWUI;43Zdna4$8?;WrVz0WS)HU37KoY(JV1=F|f(-gT zRC{oT6>1*pACg5#_=6w81jYj~t4^(B^@8t&Yi*%Kc{ntm^VesJl>2OwNzKmkkb~N) zGS#^((OQ%6zW$;$O%vsTH;u9IEm+r|L(WjkQOui9_UuVEW(A+6>5XmPkY@y^VmNbZ z8#lh)=*)-;ZVooib2Yz5v;+4BcjC9?!cFt~Zm;(5HZ}{hI^MP=bl#k$4auI*>4e?Q z*3I~BmsfTi_RwGHd)}rxR$S0X2w~1`R{MD?(|>)@NEW5i&`?+RNEWor6zqcyrBCnA zI99e(rzD2{N{3gBI%pkP!`8uSCE7HXDa;SMt-^R>_L0-{Pp0S(T%nakXW><@%k7NRmB0 zG(W}OLv_^<=gz;08Z6^lplqs}bsEW4KK%Ttg2i5$qkn3@>f622Ngp|0-cl|~cc}U# z!hJn`phzk{AZ6MUN*NN)K2PeT`YXPnGM`~drfWgyls(W2X82lY?o(!dc_{VTa8}lN zA7|G0_O&TXNJDlQ0)gc%~ob?p>Yw~=tX*lXSA;^Hbgz#P}$dF8Z80TAiehMO~* z7t)$LxRm**Y^%8oT>!mg6`Ds|3~G+ki$iCzE3wMi2hsigbcB2nKF&~RpB+q0wj7Lw z@a`KLS}4dpW@l&D7~HA%?7?|tU%Ruj(?02=1r$r;UO1hWTrVkq&d%&UbPkHaQ@L;O zLk7Q%SmrfMwUAw{@k71vnU5Z82fY3XxCb#G3-V+d=uHSUpp_+-j3A~NBiWdvd%cY3av-!5pPPWSq|30!`U1Yd;{b`< zhppn#rE*YCkT&=G8&Q{MGI8T$g~10Wi~n4&sELsLDh}a{xQ~VF0MQ|+vvzvTjQMr>< zJyMI`=Ng1U@4W4z9thE3ugAG1B2iP85j9T?lf~Y_M&nRh&#fR< z*~l+!zdzc-*b)7`?)QFXRcW|fYzHTvMCIRuoq3h4ltS4=u`Sp%XKq4Y2n6Q&kpf%K zUcfPR(M0f=5Y*fJB;an1G!_FwUsbfXGWCby;Jub;_7zq@!Ug&GIk1SXD_#ush zk|K6LWC7!S(o4(erjK)e-c(UrBOQzL3&M0a@GIB-TaeSe6V9{fTb5#8KnUAjcx)rY zu;n5s5*S1L#S2O@M!wG)hVF(8hhh&pxo}`EBp9}i|M-KwL2_MLcKZRzpCn>ADh3m4 zz3xWff$X4{1T-e|uOIQSof)6ZNx}>m;4Y#0rJ+#RnZ4Icv2$*&QzaIE=p9zzppy

Q|M$Y$)P(NZ*5t*iL1ZX|9zEu)2<`c8KEjLG4_b+IVGA` zG}<%{&7>0F(Lq`U^rA?>h`|-)4n%}dXaid@9v~X)^*?FJ^((>o9`?*8YK}fdaig|j z-iAarKUm6qC5e7;pm8sF^mixN5SRD83!K%8;KCB#H2s(uE1}B@NR0O+J4ivcKZKVF zU3%PiD@SSxp36>QzZ~4jslzo1SChi?#VJzV*p(diDewZOZ7%9Hq$*PhN?>QCSf7KV zZmaRxGM;js&Kr!@^H`$3l_%%FB>bj%8nTVvF~c024zWKghsvRM4vSjvK1$e5_=6ld z^3-RjH|$|kDbs3Q{YhzK51sfqHx-wdy6%s?fV2u@v}JnfGl#({4P;UNxjZ3rOevv% zWC}8a7Cy*}B88nfpsW304N~)mlVXSu*sKJ+enZb!%`mSv=?gJL$T4HM>ZZ8t&T{~D zS|;DbX5cKgL!ZB0u4W>-RZ)`x@)L8?Dw#|KSUpw)^ua*dDshx@z1*I7ZQdA@5kF;8 zL}yeSx*R8ldsb-}b2X~LWa?Naw3eOGWbYSGHk9LCu@>6|t0tc;)!(ElNcq3lW4Z+e zpA9QZu0kUa9LnE>?~4^&8BXIO{K#+HT|Xx|FVd*Z;JnfKx`~HcB)r<-V`F1t&gT{T zH)yFRJFj2~Y`ZvS3Pu*Q@2cjnB(ka8s18`I6sVVeeX@l#eITW`ka8F=BBmF0s59u& zH!(@AcbcvlWP1B2{t|P0!puq@l9rkylmYO8(w6!#{s@O_p}GUs1LU+iv>7#z!befV z&R!>0rGujf&FVH2l9IkWeUDeq$Hn#0|MqxT-ty*mIP=-zzYuL1Pm*MIOqs5PH3<7P zQ6J3SdN7mU zQEiK@*sJ9|Iv-%RT+QAk%q2eEsf5_RFh6E3fOzPSL4W}||N3mt7{kpQvMc%|k&?IoviM53N{5B@^?KkE| z#&*$hpDHaRP3LQIR7ku+M?QVXfX#M@+SdQxXVGQ0f5o;-K!S}&acfDM5|@y0{H<{@ z$loG?<8ZrtFiXDk>1FP}I|aFaSec-zptrCyqm#dn6d!x&i#Q!>D^~s}MG-&+k<$=b zVu_d{-x*sJO9;VL%^X>@SZyVH{j5!_?7}o^Y&;@|1Cz_oGPs35FP-n>wYjcZ;6V8a zBYL?Y{!&sLOXLvg4yh-c&mIhX4a?8-@${w5Dd@A@?m7U}VRK9A#y`oXZG1-y<kE`vEGt#6@54cL79m%?} zTH_8M>0x$uh+U(c-aFn?@}LXyqQ3&ssR-z_Y<#RVPkT|z6lY4oyGmjKZjD2_y9F2rO_C~7Uc(K3k_xI zk>`!40|-LsCpKB|1JG1=a}cgj)MB_|iL$Og^c)Kk5*6BmB1SQz%aW0@ra>NM@PE+W zB*{#*fn`P*fD=F@lhM^sft{HkLi~nUhGCZ&J0$-Dsyb{!$P~ng-kIGJp($^n#bbD? zMxYU*8cL7esoj!k#56ND{zH-(F_SutPU)2lYo=QN+*%R$Vm6o98nMv|b?9XJDY38> z&vo&a#P{=0h`UWLuNxbqnvp=Ow&xpmH_MZB2=BED<~`@b(&D~eR+PRiGYTQbd7{9e zx7VVmcvOuz0Cy0(X*&Hk%JzMf!RTRYuF|N2mCKIO)SLG$m)mbkzQDv(bst)PK?`O3 zd%8SvlXlb4s>t2?2g+KE-jZa#YNIbvB1;}!HKV?0^a6Mx-jmOb;y?j+isKb=S7d^G z55u-Xb4m8@OnobS<7W;dj~}A6vg1-7v4D4rVTg(VpSyBxTzCw^c`3EI$jxs4piPUT&RM6G#`8Z&!y!Dia z0aYKhdb~EsJG-%KYDIF8jVxD(l@0wK#eaQE;GRurk%xe#T*TA#FVJOGCU}NZ?9F+<4N9Q%|V_7f(J@ z-C(F}Qdr9d?Cd@AlW=VsWieN3a`Jf@@>Hmn6Z0xevhhi2wJfuHx)p3uqo1?PWtwmU z`wuxHMm}|#4+JeINGp?7NEv_oP)LIEX>ze)<-(3;!#>6#JgDcm_(&1U5ylkfhvEs_ko7i>%K%})tLD?wuUi6ST z2?MUoy=VCZw6s4@h(xsg;8tnNe2bXo|%lZ_`e{^xt)jn1>)W6Z(V?tS>o z0SC9icUOzGkQ?jHL9yABoyqc9E%O%7X}TqVNA7;F#L9QPKHHhT8+>h6;ox9CtSaf+ z8xSaDy?r4Z3t}AHVcsOjZ)*B`;aRtm4li!F+G~~foig`1-5>p;VLY)`9&~%Leh(Y} zo)fSAqULT%JJ894O!ppIvb&4nU>DNd0FkXJ?V^|FtnT(KI_z`FtiNx8gQ9!`QrIzp54%S|Kj7Rgqxw>Xz8kF8| zgZOqwQbB}iO$(oA4AIK?9!RP(y?xCaLP*IGuvq-EaJJxihMy_NO8>yXtaq&JS<_vN z^xm7rX88JGp(aw;Zdmp_;5@@;L2?lN8O9?3ot|&?VTSjyCo_x`YG-{0^3C-2JEb;y z21rFgjMcqOC~g8ZECyW#lF45mq{Yad{Sq5Y6LaM^#Pk zcV6aSB5RXnJKOgdr5ODG#H&91ezm~p{fng)5EsenQruM4&I&^*Piz{BHeN4w1e!t} zY+;Lq5U%7$kkWeb?E74NK4njS3SYL+9x%AExyi9~~bz z^78Qo909`&s0_ZltvuftS&@3gIpz+Ql=VAls=z$U@?DPDr+WBM4w;qJY5u`RcYmSX z(z5PNd^ZmdPtEPkRWP2&pq>)|WzsjBg;^HTLJG)%pINv5wA& zi94{tKm5-3Zlp%8Yc%Kl&UPfv(p)>Z1@2PKy(aW)fwky(S+MM|(01|M5O}h4nB(%cisi<*!0GPn|V*$)*4h=INKIzr5UvC zcU*OV$A_2hEN=qO=g&Xcj}??(SQ)kZ)th4qN_p@2sue8HxU}v*4_f&oZeYYf{E)8- zNU8-@qoItwS&m*H?~@Ogg(1?ne^)wj#QKz+fVsB0etn1QzLF~Q_NZUXc_uw0XUeJY ziA~QngJ1;$K_R^qg3V#aRq+n{o`jVL084XIPUA&7o%h9Z+HjigHBtWMJYeo}J0e37 zQQSSU)Z`la%akK^!iri9{f)VQYdy& z1DQar@Y(jjr+kqoc)%AlK@{|@uQv!K`y@6E`ws73EYo^oYX{{|sjo&`r@OP~H|!dp zf3>|m-Wh+XT@Q>e?TL*_pN0RfD9igwojf2|16|^IE1J3%g07q)kTh9;?>=Bf42nCe zblqpYrp))#fkzR@=~>rKXG1f0W#bgFH$St7Lsh7*)9CK|)tgZGrLR5& zxCC&xfvpYy#D`_XyRtgnmtgXx^QHAA{(Ju~QOZQlvv4X~W+HZWcJHm?!Wm##liv-D zj8dvQuX|z`TRCD{_d90y00Lg*(hhMxmTqxT&^VK0N?}_}=nXw$+qfU)?1cS{OI1#7Jjm z6*pZQoSK@a9+MBJq3RLd!nN9iPMP`72FuiRnGUM*H3pqvB9eP_RxfO`%ycnFTJJ$7 z^$uQLU-6meR*DNVUoC%+Xgi%WeLzJu(&)NaHt#)K?iv(y%ino(HftB6uC8wJhy=U} zYJPIwoFrp_-1dnZFS2O&Gj(d+ZOG`2WgZ6du+M+Ly%z{c^izCBrKpGeH6fI>H8m|* zDbs?e8YRmebqBs;S`>iIGpFT^3;mZD>sc4)op*!R7stkJzEAvj>#5648~4)F(xf50 zyrsX;9$@m8l;hmWgbF8$+2!u2w>#CnKl=NZyQwYz0F~{4FlTW8PX1?g^@-2k90jx# z#D~6Y)ca1!YO4D%PSmzP@e)|>R4FeW*S14E&|>hNY=)HAD-(@GFX+N?+ zB|-4@p>p}4>%TixyatKEcP~v$`Vs6JuPkeGAN1nJu|i7?D~FIm){5=r4Kq9oS6Q25 zg=zUzI%e!)7q5yF*}3VhE>AY!uJpzlww>SYOxJP?2xM|>N<-4{uc?h_;8(atZ=fb; zJlwp}(yj7wNf{Y~0GBZV>})#L0MPg4MqaE3Y%o<{%5Es#7-BcnCMYd^m7Sh`FruTY zd$hlCuF|hI!!9lDAHMPXno?WlaC*04w!+oh+glEGbH3R58t7h7z^KY9==t*@cOA3E z)M@RJvnYY3Kr?c=HR_JGYv;P+CSRDyewlv%{ zDm5stczf^_pUh<>7x&ATFVT$BpKFKZ(gM$>!=VWrPy9~a0GO+|((?(}0oW2MlsV{P zHM!L|Qk=-?SJiJ9yUe$1QFa+#29OY+g}31V71uaS@PM|aDu*AMI(=pG-vOh3RoetN zZ&$Ql3Rrerx9jyJ{kXbIeEFPK9=?WN(WRwE!P1<)&q&4R4jO?3m$ ze>2jBMt59p@wP5U@|NZ2f4?Vt@{^*=l3yOYhz$vG4G|304ml6?2@xl-X}!bC#OJ`$ z#)<`#QG6iXV8}5XcLAYZ{Y4{r=0`m1`hy1#JT<2L+W`t)SsTi51lGCc6D_0%js8H!?D8#~OdL`R z@Y=5d!A>V2h3lDQ{h~Dt&Gg^ikugXd&?~Z_>b^IeFZg%rAph;bXP?~}FSVBCt(p4m zIPRAPe3j^{;QjXVAXanti>pP~&9;BkZu#FI8`?L_?f@cl`&0Io=$JLeiwXN-{k9x!HGT8|9@lDz$52gHoh4LRQdeL5teO z;EPlwW+j1?D)-r6*e|%ctHAsP)W&#Z)VH>VUzQ!P-_!>oVC>H#j+13CrB)mkJ8q`m zK$B+=t_T1^!{_4jo@1#^uP}W8|7lGE%5guG zV>7y3c>nI}dwlAPtGn~G&bw0Y(!TxRPIm9oZMfW|#%R0(HpHLLFW`R8`4SIQHZ(lc zdgLYtH61qZX_J-L2Pn=ddq5Ka!{Kw0W|a2+1ElIi+}HP49gk(r<1XE8K~g@O9)3W! z(ldDcU~wO|v$KQGdri4-^>Mns^&Bf`7q~i|+T8r;sF%Po>pWYz_!+PfjMLN8?v;{% z;+`2bd)U60d|8-z+aV&w=+6J4>>)r4=LijfzC9oT=NwZ-9eav&@+9_BY`ia{>TbRk zXR%@{ES~L>EqEoHr&OrCg4u*bp*avqZtLE(6^-5(y1Cp)Jq^p z8dXM+-e|&iHf97Jvl|Lr8O22{6o@Nd-UBW>79nsO1UyqZ*K>f zX3yW2qL0VVr9XA;;a5=gZmoW~zJ&Lg^!7wI6;Ax1`nKR_eda{u@zRtJ?yf^_>QYN; z7~2%uy_l?fCV8?w%wA?;(PCis-~81CuWaF0<@0&}ePu>nhGZ~va-tCIk6OcWx=RODOWGC%4QE^JC!@ZalW)|L$}Z!+M!S82Xe zeXQLsbvI;-dwvVKb8hH|?#7;PAt(yO-=G+S+i6Wl!~WAyWQba$)-hS$zw^Dmu>?~4 zZk?*kJm3G%k9geEt%eCg4WNE$DA_mVW%)X8>qK6EfNHi1U* zrQ*9MVM4Uknh&kzxzmfO{8rQle_;liJiTdDQbsm0J6@lGLIcYgj` zMy*1>(;;vR@t{%lzLe(>l19k|OrMuo@KE zeFK>~&azk2+!4F`Pm8c5vgZyN32@V&vuNth*Eco!DkpGgMP8omwoYcTM^Ou|)hAmP zu6yHG9{a5i z9ZyM$?;iJgy0#0F!l&fUXO9+t@Y^SjPVp5secUxX&41Ksl_79R7DN;*x?i(8Q)vu^ z5=JHSaTG$yzeoZNt!^>C$!w?kL|4(y*mso6j=sJ$55DXDy?<9S{qw5RIUEn8#vBIKA0;OVn;u`b z#5p{d;GfFOJ@Xh~9A+(3n$9AijRq+h#<7ycEO8tpXOu*>`^lePG; zcj4&hs9|raa?y_0pv=4o;@xGA^jWyLJKK}djNIC}`g@LthZo2A0GFg_BRd<5Cp#kL zk%0F1Cj1u<+!je6XVb82Cw6nuv41F%AmD0xrgox3sceSI*j1jpZ;Uhj;64p)%GFI? zNpHa>a&y{`HYjU*E2`pUVaZ-a@n*B6*H*fuyw}#ay&~<9A#!wC|V z`ArR^#l?M&|MVq9%^!XwXZ5`~osu_i@!Z@|j|>!_ZE!YicKh80#hjcxMbpr>UL1TQ zYX%%aW8n2+uQ(g4KuE0o?cWc8J_wu*XMQM)_rk)02~+wjK;@jyvkm;es}1{YHb=kI zS_a>oYGZC;IkopCa3-XsUEN^Z>kHv!kMlOb0g^OdZk76!nHirH1LVLCG;$h)dF+0k z8@xfau@WmE#3e3%?r(ktaS3~2b4+b?sYVi%86BF^*|;fXDf5Zokp1v0#W>K`YY zFmIf%KW8cDZ?X;>>__vV$AEA1?<_0h%k?JE}OsBu^|JGX$f2&zei~Emq}uFp4fllzi(BG z8b9~{eEdL4-;gEYz8nzZwLK}i*y80F1*li5%qhTM-<+%_TLztO7G}9{b8!`6q}V6% zS{qrX#u7e&v4f3Uy`66X^|FWwh{2A)E2cAGCKC~580|#l0$9Y;!8GwZzk{W(WhV6{ ztw_e*y<;AT07M#)iIemAWK7pgs50Z)nK{6%YY|fZ1{MqhfrDr{V3{{!KGBQA0R3?H zpH;z7fAqlCM5%bt?e)a~wSZZZ(^!GlDIO`E=K&xKi2bK!0UVYFY{-Q^z%QoQfI9u~ z6ec#v`_^|8sAt(?KUTmoWdiIxN%?o~1 z!rrZyE#t5GWXkC8#^aZ#ut|iKV(p;(^}(|QAgu2m7-LTUwi{jMrLf+}cy9cxyt~;C zw!EIU%Sviibu)He>1V6Yeljr;QOxynl;BZsG%dt^C|%N!O}gS>pk2$; z7-)kD^Csw$`oV+Or+f4MU;n@M-aH)2_y7AJGuCXO5?LZrcE(orQWB9Z2~je#lV$8P zyen%aBqn7PC6R6HW0@$5v6MZAK~iRnEk?%7+}FH6pX2x)-{1ZFdF7tF5M`%xvs=iJlJDy3nv2u}!Zd9FB)Z5KfB&pT z0ET;0_vCf46qAI#w)mN_-WQz102;ckwQUXl{u1mj#QG&A>hXr$8U6p9Xx!)#JVA(q zNuo|X?04ntPW2UwFj3>}w*!9{Q&8FF?OAP}Bf2)gQ!#H*YHhD-fs59XcEFTzgde^ zPqb@za?F+BN_^;32&%x<6OO76eQpyvtys05uM?DLf1*pHp+3H{LY{fl>ESwR`I%F% zNI#KCNK9?Bi!}Ng!N@PFVtun(CVPtJKK;Uj#Cb}T|5IYYv zxq8FYlnt^3VS19$#Rx+z;lFgm8%}(-9HLey93Ew&78v?67t`%Q9KwF1%;7MW{gd!~GCgR1#X+ z(H`Z|LU&h`k(ZZW%C-7pDGWyu=D!^&kZjkE=iG7ksz(cgZ*uvI3UuDQ!x9h?5wWVO zkN^H!0j4)Xi~|mS?s29KXBBvmLx{5~f);d(aV&{OG=6_lBK_kU^@54WH}X4mR^v^gjJe9C8(&5<)X!~{JzcO< z`-HiXZrT7;rZ z>6Q^_^b3fQ)Qjl*>YTIJ7UbmRb7Zv3yZx-rf^d%v{9)3(KP{S#6-Dy0(aun8sSV!Q zm7v;B_+EB4t4`q1(9#Cw_Uwf`|DF&JWA}xI(%G4JfEPB}SrF%p|1ZFv8D+VA~GTj(+!1XEnHO zd9rk{hK^DWA6NZOGu}%k&;kpB!N*S>QRD>if_! z0U{+#kiW|pb70r-gQFHtnZoC~-{$KQ+Mmu9SD~ekoerh>)rN1~Ne+E7BZn`?^P456 zpTB&`U;uxIbQW&cpEjCa0_4Tp-GRys^lEZ~?(T z22>5)H_?ZUevmG{Wg0aVaj@Gnbg@ze>Hg+9m+f{p9rNFq918u&pRG+ zd6k}Sx{5%Yzu;j?X5X&#`OrrvWvw|(;j2FA{2uBUg4=`jbz=yXZhDU)D=2Yx&{7p@ z_?VQxL@C%j!Mhh5fg*gl4RfUy$--y|o;NtUsaioZ^)kFuduk&kY)tWJ(~r07k(!~_ z1v(dcRARu`-r}!^5b`5*LV!nV@2^b`)hd5nFPP)c*W2o>t{Z^uMwYN%vlLF zU7u&IaB~D9d5DbFw~>A^OmFm*Y|;RgIZ?1#Z_2tFu|MDHZ>B`LmONGIqG;HWb10m7 zVqyqtW~xouOS>@#ikA8uNkb^=Hs7{LK*(5WZbegQzJIno#iO-eRIzdvgvq6=+Zg=c zxy8L+B9zG$!A;FP9l+mqK9uakxo#BdU?UA-9;!k}zRgRXL@E4weun2L*S_%ZaocuN z4)K(=3Nf2{8ePYL*1#9cubX}vVeG&?BVELbwO?lN72kNbD7@&$WdyR3J6fuK^F_T8 zOH1n}Xy4d2<^~2hI?7QaN9v8yPm9H&A7mxlc1cc#IrA~M7W~w2I`l;~%VGhAz4G0i zmDVF0&TxTHtz*^?M}Swv1R8GYyEE0+B|@E?q#<<+fo>_qB`cf`kK^xaJr`x((^0;i z5Ki*;VijyYD>tFtl6sN!8()p|JZLl<@7zq)BOw+8w>Ups-Ti%#RgLVK;`X%Tqz;|mUt;4XsfWZanJZ00^H{M-}m zdBjX;T|4x;2>F=UpP8z{m2eM>_$x{MNwsDbHI>Hed{>R%1bdJ=%d=XZU^IwBte0lp z1$CKcSQ`r(uWmw;2N!!S^BOMypc&_F_%3XVm1S}Gf}wmxM>FdcO1pteNyiqDJ8dOz zvOXoUEXS-T$ep8zPKU&Aj`3Z=T(O__53&w+tbyarHLZgalC@-mD}O{kyZ>e6Yi+0I z{2n$b;C5e@($V1ngJJctWu23a2$1im)18o`&j&YLHnv#3Kz9neUB%^YvEIC&X1}zJ zWSzMCSG8_i`B4=n0J^l7mR>74d~8=g)Yx8)`*#Ghq|>x}DYKR7y@+zn-*dmgQ7r&RJ-yc&I zl4)4qJ>I>4Ms1dN#f(^}*8%%{MXdTv)6CU~WR{2NVdmF<#k;N<%x;$##Sk~8ViEI^ zHNWz#&I2B%u6X47zUO6|{*bdpEX|)c=INO@X7?^RZ(|Q(;xUL2nP6GrJXqxdI?|q; z1LwC=t!#MfSmjoki+4$BZXyl9I|zQtUSfnanQvqd_|-l8c5n z7EIMV7Bm+B+7<3r;Qz`>F=ZN0zZrz!x$OIOktz<-amf=yqdKN6I+z9CJGhLf{hi3{ zj=o*Zg1)L^0U=Gh$?8Piur1ueeBQ=nW4~XkGvz?VYPLnyXC&oib3vzNcL!B~D8Mnk zFqSs<3;rSrlx%y^nm{??1xUFV))h*^^`(|&GP!MZvCF&N3(y70wBSPN`?3X+1=l*@y${ecnpFlWE-fW*SYJPBg zKD9jCv$2Wq>=5Pn=VH5b<~*d|it4U4z$+uGatGFVA~ncKbn#ThJ4qJTos0W)hlu?} zUTSW21PwdGfO+wTdVed)T%gXi(7pGK3|wBW_ct7m_eAMrnqKUA!8#S!|JO6mb|Yni zRico{98qQ-HN~);^uLr&XB_u_esMT_S1UQ&fh;EQcEre*F~N(0+d0H5foWn9$oCgD z&yowx7)}`6y&g}>+r;0S@47bh6{7E~>4!Cz|0!#`EW#S#WMKpN_j5>JJG^;ss6pkJ zIfDq44yvczFO{YlF+30G|X{>F2|=W;&o!U|p8 zk_9ICVh>^{_D$*E&;T2~THvYTG=bA5O2~z-F2{p@J`SbP2^38djT0+Ci=?f>qNLFx z2&-jQ=hy8KP4+=sd#krF=cvqU23oTOWvyCwAO1LsP#A5@-scfg0v}V9Gy==8fMOqT zvI1@#b7XRBekPixb^63!{TD%1#1>sJsE_+*n(O=^*m#mx@iSB9jmI|PJ7Igr2gN5q zr1psYh4eSOj@BDx*WUD0PphZ32uJG#a`;`*EdS<1W!hgZ5iLJjh)j^@pC2V6z*)zS z-cct0hjH_=H^`0F$z7Jgao{=dTC44ICpnnjGm^}189oNTjMo(AR=*qv5Zk-!`^%yP z^6Ood>>Obc4m_b%#OMGmF@p8R=H-76{i*uLc?*X=g1?A>$*6Pzr0pk_OsF)h86~=u z>X?a?hpvPw%a`wfuk!5jf5SB>PD??Gye1EXu@O^qzB| zG?dI6agP?z{i?`pB=i{X$%${dTJjQRUw|{oT}DoO^LLvwsds21$C_~Tnmb%48Q zg@nKpHF?DkPJF)tU{WI{{LoFV9??v}x?#dk(Rj?#$rE=)PRm9b90t5o={F!6fa6hC zlm!e%j?-lm3kwT{@+a}Bsi~J7PX9f~{*J>YU@+vZUIW+4!XoD~(Bjlog*@Pz{@)G% z58u$g^epnWs$C@LCB#u03GBo9HnnKwXnKx%lIuGNu($Hd5z`m`_uagUpoZR14qqPh zS@@Wy6EbT=-O~*iAMQl3A8z;T$LE|OLLJdqV=N5V=A)xe4yvuqD3(SYuu^()2+pW< z#eVLu*h8QOD&;hJn@^0@vcHC%n2id9M^R_^@O#^2vDrbwJGATe`r%Hr;@gQC@Yq1* zq!Nsvs$%Q<=q(L+7bY@2p8oL`OgE{=ECJfDhxNDL2DZqUye{9XhgF64tE<}r;YfeH zp(e|q(|D4nmAfAbsx(r6eJw#7gvo2FAUyHhuiz)5-9Sd+aw3Cm*_EW zDxAhOUrXgkgb=i_7x9L8IeZvilO*9)i}v7h7jEO<|3>I(rhi;F7LjycbQqxItvs-f`b z2@N3XqZ>@!b%m=Z+^hJEg!i@G6aP6LlYCs_y<-*zeKYp=>-?LsdAohPPf;^7?x3ft zt`4_}FVCmsBss~Iw(gRYj@N+<5lr#Q&Y5j%CUpJ3yBpE+Qy^wwX>d=&2v zG!X`CASM`wN@z+Mh-pHPNjtYcLyvLnffhx1H^8JdY6sM4TnHL>bk}%Y?=jDhhvX=* zq1a>@kbr2P_)U?PRqcTBN>OrA)OWuJ(hm7*ZjHTrHyZr&bTdPcjq`LapP62T;!dS# zw*Zp-d77BgktuLae!k1(Wd{y*K8(O$zF+)C6zUwfU@8T+b86j_vNeJQU?YDR6p0X3 zQ1!&oM-GQ81HJCDZ}p4o>KYoTu?m-wH&+U~>ON(NhXaA{z4j73HPiRrZc3Wz7oV<~B%1Q~yB##z z*zCYnAL!3I{wuc*`0UYl%Q(2FlS3e&4~KoKub8CQ-T9J3l$m;=<=vC{b}R;8VrB@p zE5$0!dsksZjkX;|4J5l~+JDGkfi0YoIjEdZ0e??LZf0Ksif`)Y+2X!Ge=oh#Ncv`! zYbZW>)r#H8??^SoKdGF2`4!NV(uhBA-~WF~)3+yRU2QC&NWgwBU8uNchYKXO=JCkJ zKYs7l1iso7>=E2N&%HAK-mUAYUzza-{B7Z~vux>0cY2+}j#c=OF)egDsOf8^D-;BL zt(UzH=ds-RNd$}GDD@IJs8jj0I&BVNT5|D`vW*ewzjNfxEG8XZL8ek>BnUE{iHulL zAJ`b7GIrPhrcL|LBX4DFIrD!p3!k~p{Ei%`bZy)GywQc=NBP2BwIcmLs=7e2Z_;{B z%F8>5Xm>1~&~}~4k~aMO<%^tQ+>i(Xi^Wd)ViJB$H)#M`$?5emRU}jDOpYvKKl`EJ zvATOpmmdnt+UBc!Tt54wI!Oz!WOf2d1_?ya;2;7;A=%Y$8H7Vd;SVND_-EXKrEs+1 zm5NGI?h8ph^YspRrK-V=wL2MEjH&Jb@ZP6NE*{ ztn+wvpvM#oq}JMVOxl0|w*bAQL-d^HQ8dIP=zG09`AVT)P*bZXg3$n98U4}}IJH2f zx-|uFGa2+=V~aohzc}2*8{$Fh7k4`(%pJa|`ZLDNXbUDPSEYABcO{&oL_@FaGH;Ra zZzEaqzl7^d*F}aE{E1i0T#`TDyGID?;keSZcm<^#!Wr*iZmQq@=bN=g`yb_(i_b%`BfVgFNqUh0&*;hAB$LEQpjFL+^(Ui_w# zUsWj76z*_tbyj97Pjfwh{)pnPN^6b79ySnt%hyJte(i2jy4NOSCdd}0of5PzoTkec zr~zCum;@%?A{YnS|2u?$ZLf^QMW}kT$LdZ^O}QujU3%ct|5R<-+q1#{)2e@V>VH*e zvO~}OoQPclU^ay_JZ`}t>1T=@{|v9cM_SG>Fs}ujfGlr&=ae$y7TofHM*Gl~uW& zw48)p1VjbS!Gm^f2rcyIWY~dbxd$Irg}@?j8+b}dRv%4mEG`xE2!3f+EjIHmMPblVVt;ti$q z7J#I<>pAxzZhet3wr=& z;JUfOM(Vp#-Y753$@DuiIw7Jw;?$G3+e9qQZXr#;zrG8c= zRxa@GDP8!QM^Q6yO79LR%D$#4ns;Vc3~=c^xn8l*28nmOtp=#hp|3&tIf_O)t$?mP zsl06L4^$la-**2Km@?Nw_dbf*X~yjYvJ2T&#$lCfp$lnB_dalm*WCVefW7RjdE4ag z53#dRl;C&$zI&wk3U}USZ!s@ zV73DgKf*mhD0V%eeSNOdVA>fqs*;A*O>@!DtnjlByAUFFrU>m*=$dPh1q8$4t9IgZ zRLCBU$7?G~+GcR@XHl;#$}QwGKIurL3R()fK$wGSw)SoPX_(%^QZT?Q2D4beD&WRGb@2L*=5)nFBQ-}tKI0v0W z_I_mIJ=(Io7JAAN|C-v-{&vV0Hj>nUS0{l;_HdRNKPdFWQpJaNCJ^Twis++NB{G#iR`hW=vV8E4ot|+6CjX;AA2ppBS|gt z{??h_e@5UHQ1Vj#6nrmYvy;^k`u1zjiHkLUBPZY3pwGR((Ew^*c~^10!T+$@jrvq$ zLJ~Dm2#Jp5Q3uIzGZ(4Qu1&|JMEqQL&>m!>B`(q6^b88G1C9GYHJ}yT?%@4z0AEOgumhC4Bo8=3t#Xd58Jrps{MQqXFm#6-ty_9|@oBN^ zTtTLtNn&=P+ioH#bh*?@YOaJwxBCcCm!j5ZO0D+&D3ip-X>bH}rbTlD#9n2}evHaL z+=A)Ggbe$&Ij$-$nJC)(`PC;SNn%L@_S+|$<4lma5N=JZAN~RUPIB5$bvx3D!8CMO zl%)YZ$g=pPrt->Q-^tA3F7QE(vyY~xNVJ$iNdY71c=L-b zSBcv|KRn%_{B>UE22kLDYR`>9Fwd}Gy8ffZS8NvSpKL7lj$nOpoxLY#aJZu2T4H%<|WUfQfHX{v5;o1gT#KC;_lewOfVn@r%@( z@nY6|GYo5JVE{}PB8F__d@lz{LLspP3SF~G4;B^N{5uG?W9Q{rEN;F$mAv_pJ?AGW z!K$~m|4BeY4${7UPi5l-%49EfpiqCLCEQoYfQ0Od%s8Uj>wN$)Wvoa z6T)_x`FMS5hrG6AIl6&+{FAk2my)}>oz7oPY!sF0H@Yb|zp>f9bj?hOlmPdXcCJ>b z87JmHo64qk9FPCLP$$U_~7v%X5a>WbOz!?W?`d(7`|R zslKT=#LcAMPKjuZ&H4%lDo z_qF`%*1&E>e>YlxQKmFzu#@?NWe@<43hn=IqkE!n|L<0YyDv<-9~%NS93|BCV};o> zzr}r#2E;la{>7e0-t-->y2AT6!~Tso|IBc}#Xmke)}!ECHx#0ZiuUQ>VPvNgvorx=o%4|B3cJLY0j^V!+>g=q^|a z638o-2Jna@c)mzbN;ps#itL|h#}g#MD9ChDJk(8S<~KDMh5{W+3WU1NQ)v(Ad*28! z5yHs5cW5G+DxA0ZCk-ft7+e`yMUFG!ywrNRW7!eckd@JL+*l;M6KFxgz%$(kky%EY zmso#B?D+HP+vMf_84XzM?%HAe`D}xv5hRCVf{d3ysN?A75s+U>wk!m zJ>3vsX=`gce-97@(02&G_q&dR+srG;r&q(pc=cm(Q)aC7xsjxwu&8^@RU)CBfbc=F z3}mnwIodFiW&}MZOAT=Xvj;g!ZGakT-*n;VnR^N)!fF5<>qTka_WB)M4EudXuI z0pyBs&2qx?Q`8P3q3;_U7CzdsHIr~15Gz)1E?$ZhM5?&GLlgWEBnPB!{k7L;p9{$t z6#x}+10dvV48|@o(F7o6QFbx|S1YXPOMk!hy(eJ|FIdV2@%sr@Sv=QT=@2SY?y)Dq zWRIiz+U-oXnUe?d;?)>%@xPW>Ztan)!{-vrI|++fhFQP|z3=CMLfexiZH0u19AND88Md?mbrOmOsqJ)7yT z4xCj3PAkv9+SWw$4xh6&S@7f9>Va^gapIP>1bQk0?jj5Hx-SNoO)fvZx|tow9_vzY zbS@Vvi$hzL3z-3`qB^>1UsoTvVI=efuBVB#@q-?-M)lx-u#{%%Wz52Z& zj2urR!ato<5<6-0wsJjPyXO9O8Aq>T4aQC7-%@zlQ85=4M{P-wJO5Dg&gX;d+vK!Y zy=R)k4of+2%rN#!Wv&A4zwpj|bK`qJb=XW;@7H2;h@{S4d|0n^Z$NeXHHsd9Xp<#~ zONoh^DTQd~j9A^QrgpTmJ{CeC-0s76Aqp*q;saoj-SeZgx5paX7u23E6u5SWUYm&~ z@2I_Mt3^AbZd4sfY?OpGdd4gOl9l#(H*M)=%u-$#%`l2WdLVvtay6=tOWYlg`$P2P(CyOi$^eDQz7Hd9tSfNesda>J6pcq{qE9#;?(jFD(TxdQtr^>u6Z z$d{?O4D20R4YC4yF+kx?c2kl@dKOGMQkfP7^+tlvy3SOU6Y@8@FczA^WD7Px-jxM$luQ)G& z1Fnrv&c>HsanE@B-NeD?XV}Z<;znD5KG4kAnf^Wg-tE>D`+sk|xl&l5?Q@{Pe+*1| zS5b9)?45J{-LLXd;ykVNGa%TwbTcS=k}$}X$RV{v<$^sGBxquXW)kE=4c2+!o+2mJ z_>;&)#!JolXpw07pVzT7jJf$*TQE0B_{qW(De(Ro?XS<##}NfuxJI@Qv`;*LIGPM^p6ufx}Yw364*K93aO`2=k!j}ghr16+xOcJ8^ewRt;+`URsznK}!QV&&I*EAR1 zEc+}_Pc8C=p*WUB6eRg)5-v0cm!Q=mXyRQy`q*j$_Bo0g zcCY$!zLy{)ui<4&s6q)mfR}=I-8q%w1taclL{X^ygun*0^a}NYsj>pVBbk|NTVET4 z+=R~jI0zej{^g23(dkZmVQ_028tQxRvs}t>W6*SSB#^LpAnX~&MY!dy@N-v>O&)ag zQM=ldI)F%Zo#p(vv%M?$L9O5jo^tyiD*~+e$gpSumD>I4W~ZPS>Um&Z9zIYfdS?8-S0g9|v8$40vfj$#{66o@;W4Bk@fK;*pTo`~}(3s6T02dgwMy=j>*3A-( z{zfR`zR9%*TEoR{pe7E5n1sGTGdLr-ZWK(d_0^h!W)d>ck9dBfr|u-XsYoL~;H8T5 z(Yic|R>Lh3$IUAS55vY!&0GobdV=e1++q7l)kWWi7r?QBE3T-bQt_jY6Ez&Q`aSPv zd+f#{%5?LqrEG1?7VIpXO5os;x_Uk2>#Ga(A#+9R!uL9GA(@rXe-UtW^DEw*Gr_1s z_03JnrUo*S+A%=L3Z=2cpJG6j5ws8jZgL={MeQow!W;4fF@7{PX2l9d7%TIPsz zm3VK4(A`5Z-`RtJ@^|)w^4lNb<_cDh0ua-8{!7XsU#-V4R*nOI^k+Nk*JJD{sB9Y- zMVW?2zCg$UG*TJ6#h&rVRF0W`U0jTOc|HaFL7)lfty59}G%74QwM?sLe>|a0?Y++@ zb`%P;i4i?Wi~@A6+|2o%RWY#1t?q|m04U_-=AH*EKL8A;yB`Xc6c^V!mMZiRvQEKP z_8>WD4!5JF@4y5vza7y^Vo>r4%@-{0tU37Ppnz%@+`fH{TS)2>01&rgfPFxCgno>> zg}kri{J~vpD?-jvEYMJNjTIH(zV_TuY;q_K&$lGZ?#y=1@_$dAIz?)n4)zA*6sIU7 za^}n#fuowp>0sRZZ#T>q!e|mpQvU7rz4R2EhRyf}J23K#x$L8|#|T+W#^T9;H~O6Gs5#6h8K}R9G<4c~XI683(%=N9y&UZ~b5JC^ z-Tk8Js>9W*>=JNPFYtP8nxzGB-hilTLAV7-Yz}^zBExUoe5jpK?IDYy;u1k*VHao2^j43X#t z4jG;f9)J>}yozzvJnH;3qR`u0Fd+djm1mPssTJCStA;!TS98b~OwDzBPiSHrs3vD$ z=I&unbni|)#Qcthdy1XZ7X}9*Lk3i3n+J&c=&AMftspJzLuz7BbG6GrAXklq!6yP! zjA}P@E+dulK>O_90z$K$>cWFS#sN2IlU?l<(56}|*N zHQ#uJ$XEy^-u03X4K|P?{>Hc9cMBE;*(O_WsL*xWfmv&6VDvEMg%cg@&9|3ad5=c! zPQdWYaLfo89gHNz4NxAhLxa-OJ0;h}Nlv8K4j)g*%R5_KoQpaG$e-U#vsOz>3tvcX zVWBlZioa)CpuJMz0_+zEfO}s6y4?XpetpFVG@I5IM$tHWgj-&0T+XdQwQ>VL@^pmKy94+)~(CG=npu(m2%XDnwS45&voJ?r^ zZin#j4B=u*+Hfr=bnjx8>m0$BTZn6?d1;Z#g@>529D4rKOeI;+Kiq=yhK7Y!xhM0k z!@reU-SPE>-W@&;S{a>U$mJbYxi(zyHQ ztt>3GFI}YlO&u?@lLdI9=gDbD_CH36a?|(eJLErJX$AO@45B5CN^GIc#<|wt6)7u< zRR%2j?a{aP+cOE)T7|11?!u|t$%z7%2O~ypQgLfKSTa(7fD)7Jc324l5hGekVZiSP zC{D>Hk|~h$1C*qD6zGCEDF%vrOo|%*g3qTWrl5oLuyf$mBu|JMfnr&lgnk712{z`v zVLVukybg#Y#JOdD3_ysBfUN-PB*bg;$Co=kKC9W$KbDqi{l}Dr0GCJnaA5by?q}jw_a+1BLG73&2*GKe?58QhfpD5^*Ah1;Lpcf* zE}w9AVYI?}Sh>!~-!lbAzYR5fT>Qz~diN+*3$I!%QF9`*q#dWBJin#GZ~LGcWqfgT zQ)@nPE|k_*qgv>Ntb_9w(rDB$xsss^PShBg`xMSlTezP%y1N z`cN-H9TI!EcCVAlyo!bw$-|;lHQQ3h$TP+}RxdVXLRxVc=WO~Rk!*sqB9IAy0|g(N z?mc1t?0VI6_Wb#!dga1+r{jvUOLt()&2;|qtn(HY-~P!#<@`I^02Gb|dpDqhe35e2 z`+L+h(P*)^H_JdBK+E!LK0SX^8(;&^oKn~$L19i)Pf>lMwsqG=TYF$nKM$|?oT1w1 z)p`O|?2hB6eQf>_EcM`m&E_@p;P<7BbfB6$=e4goxXv(IZ;!VNw_!ep0*bFacyoGl zo=TZ%5rg{zHu7WKk7)YNYJqF}FKuZ50oMCq*jN{By9-f)cHJ(BjVw`mlriNJ3GEk3 zQM5}%>*`>et-K9XW7{@+vYTHmRKj4oU2-I#=H{F%aWjdcOn&foNsxjQc`%inr1_=r z#j3TK05O1LJ^{ouRONvyFpkp$yo)URIg(slTx`hK@%zR}3WmC^P_wP3iWCd-8f0re z5n2!06gP@Q7kOpncY<>VD8{6_#ZS=*D^vtn6C2FgzYpESA1*ia+9`{{N z9W87=kx?7^X#;QkABZ0(vLtrIS~zyOe+9yt9&Taxg_^mp^XdpMziIhMG*$k&`>&ZT z;gO&NCiZvE2$b6T9;XMs+7!FkOvbS6)HT}H!R$#r5MbvQGNFT{P8Neb*LG*RF=({h zktf-7??LxJma~Pfh-8J*P8{o??ddr_gFYh5AI1VRSE$twrWu0G(C0HjuW&Tsehr98 z6m8el=`+EEd#{Dg;?Ku`xSQjW(8gjtwQ7O$(HO7BDa@;rZ>PnZ`-#<>SZq=()#SAM z1otiuhq>l1z;3V{5bW>ue%*x{>Zv$th~2CpzCpYPWBNX-q5-F-e|H$kzU^KD3JYZq z%a_?ok5{^OGwEvxy-+U^IU{Lw&^S@Qa8>W<3JM?^onr=5gd&Llg**gb1XubM6Xei| zG|ON7q`OdhkyrYj;j1i`^y5Wpxaz4uo(RZF?{qB=5d;eupd5s=>h810iTV^vfc%eQ zIVuImjL@*@9-V z&7bEM`H}{y{oY6REeww{L;jvZ<$ETgFFukC!*lSkZzkI;oZElsjWT`;6t^urM0mYV zr8@MxUm218T-PR!xO(*`U#pXvkP|Zr0WndBW~nip1-`IcB)1t43FajPaCigA76e$u zBs>kD2OC!aFq;$%pSxZJh@^#Rt&5Uu87A>8fGxKGgl6;oKSF1Dk$|%26c+Zk#cY8t zf>_6Yb=P(if`#>2raOTmXv<-72npd0^yNDb)DGd0EDl?KjBU&aQC3xMW|Cnn9LNz$ z6Ca>R7xULl5<3r&n0?hzb z%10Z)^Kf%dzSpo90G%l51%eMa&W-sL*>5G5sGN5uK`n|Bq!#ELrom{cifT%K;$Z O$LfNuMb$a4kl_#*(d2$i8PEWf@y2yU7xzVk{xX&>%bgBC-v}{K`_A z$r`d}8)FZ{SmJ)~@jTD=ek_xobUGee7@)0bLNgUG1587#>WPMKu+r3 zy<-M}Fu@>@BW0}2;0i6r;wc2e3^6gV(1I`q90EZ?AXo^541oZQ85|CQBO!1s1Wty) z0frF?haiyag=5KZ zEWiK-`jU}wG8RrI!^r@M5e$U`NH~Cn17tV=Fd#EHfS^H?AS{5vfKdrd4dw!a0R|z) z92{6Al8i(G41Qo)aE8Sqv1B9`V9*6ofJQPFNhTx70LUH$1^OZZED|6i0e~R}Lo6^F zlmp}sFtlM%0+WHDL6iVPDn?;2H<%jC1u&Fjn87(X$XG1E5EA4EmIY^IGL{U0x`K2; z6rd3ckg)*3keSgHB*T{>G{8`up&gPD%8&zKG=aeo$;iY24KRAbz=32WW~2rfEn;{h z8Fd%~06PW>3GxHWf-^Dz0EfE)IP5oY*iqoHXTV`sfJ5DZLuG+O?SMmdfJ6SkAw%Gh z18|5EIK%-QRss%l0f*kef6V_s4Odi{0Qm33qq{c#5C}UL6i) z84&!y&lRF&ZgNq_-Pb?B-`UUOQNYC;GV)T=vX~$oF9ZTr)xD!(5%P8!H!@Uk_4Ero zR_^kV4Ver)TxeYe=b^3?%Vx{JKki0%9BJp8_f_H*vpe$YWq&7x%0^`=fDoQ?=R#jI z(U{DhBGlQs+3y}f9T8WDU1a$`8o9gK7oYuQkzo>}r2xD~Y00Dob=ZaQnJVROlC}{3 zpHsA|9v!Lo%!G#wQ+zHa_6sYGtBn;Uj6Xu-VxehzxP*OQY|FghOltkrx(u6}s3WaD zHSSY294LgFPgK0Gcjp!2y?pAjtM8DM3z2zbs>ME9nuq4p`OPt?mI!s*UJafzJF``= zDAKz=ku!VcV@~FCpL^JQndWY7FXv-zb1`@I7PO3;7L`I)+%)c;xg}hZ*_PJ(kI`K< z)=7gZ!C?-Ak(kB&@2)Wjky1M%fAd6_v=U`<%SuzCN@1w5eF)%({>)nRkXJ-dq#v{8a*5@lIEz-4snl`7`nJbA*y{jr#i&VT&p z756oupGaP8zhkBJOA{;06$KZ-ZkBTW|}Q{)whbFVwWeIjEJfAqobTBNB& zTsm{SZvJLoxHDpg%f2TGK(ATzaO3b)-xdWK}J?Yfj6clk{hU=(@ zPdF;!VG^a^E2(~y$3rSg%L}DMk2H;dk#GE)A?G&;`P3}(L+qowAq;u|TYo>+?^@fJ z(K@X7LK;-4a;M?=0mmI<2;t5VLU-nQ94~FX6JSA!>w+{xegm2_qRfOlJ?fE)GEl4^ z2g7SdUWLz_8q+>1k&C&Si)ljY;*E^qw%RnoCc(iYSUV<)- z!wc|7d3gqkKkRQgQ6k0_Dm~rK$v47?_t4DOw$S(p{bHO0nPtS2Nkd8_BL%f1aVBoN zQQ&({(8#4#*wD~p$Qr4XdZ;=~sdRM0LCd$l53Tw!;-DkYqZ4P#v#SUFqrv?lUwb?&C@BwXYr-t(a|MdMU$L@ADupQ0kLiev0 zB1e3VUJF3-+4*uHga~=t6r*l^ZZ)dd@R$&)!)OsT`F&nR>J$ep1xMLTsmh`zNN|9= zC!AofBG0{d{vGD(!h);qJ4|!QduY)9=5pQh!yQ-X`%_VVGjH6!VBcoui<9(44nm#2 zrc{(+|E6}=s;k-w*3{123KP~cwM|`An1!30gt5Err#@QfHmf(@+Ft` zApAG6`n;$u_gf7;q=*--{}CiHoo`3zMm1iV?9@P?s=659;vtw$A*i&tDDGiALm6tzp%SCy7Nrsb-NBlQzw|AP-XSX8(Zg z@wg51HPD2KMIqdO#2bOf0D1Ks>|0YA;)aD`merfPPWFWly^bf9=}1|EA>cFQy7BR8 z7V)kUt#GyXx9n1ehHMB~8){{Ocnb}f>6@RVCP|Xy#4XW-y*)*KnEUV`4%~n}l5%GP+_~w_}`wro_2%CYkm}^wA zxCYdTc6Qt4Pl<@8yPCB-`wiZzxD_)NaIaayu8;AdVwq67#=EY{{rYcpcxakN#i-az zpAQRZ5k9tPynP(BrPXWrnWvl7LK7+3~A`MY5Px0>IK2chw6ac6X+ z5i%W7FF@eesBK%3ro_1gqu~)B8AXJQtnN37%Szp+LB6_#zsav0x4VL_UNN2lHjFrA zN!Kau651DTEr`h+dhG1R;BWa|WH)LRr}Odl>VK1H*As%evx11~5&Qt=5ii#!7cFiL zX206x1Xf$v3Z8Wwy8mmnwQ9_X=KEw^uw&YvaOW5w*l%}r*c8U@?Lql0Z+_&~M=SDp z+X-6mX3XP5oP6D+1(niYJ~Bnitf;nk#+T8at9)@{QU z+=HM8)rk7=`vZIegx5rEc96c$ejYGfF1|JV8kddNuB|9RZ671$kR=zXopR?KRf2lT2Yz2j%~@n6?O2%dWMzPDGhD!!!u5 z35R9M5wDh-q<6QfDtewFLd-BnQ60LRD4Q#@jai$AVV0X*0@<$Pl->N^cD}$U@K^;9 zlCy96+2FWP^M_yOS1Oa$T8tpL12t5#gqD;q913H;G3^MysS(b*{ZS-f-d0Lt7W=k2_1sQWd}L%&205 zyr$|F9@+lhC|2T*mC?KX zn;q&hw)6^J7xp>VA0bSMt#Hl#FI(>4RFvJTb}J&X;%_=17^V6Opzu!5576=U$~MtG zQ>KGMzNu?85jz>GSoTf5x$=m|eHj@`SyJ3b2$H+kwJYhnH*nmY35fbEWUm09odB{# z&0D_nk_aX9bMQ~XO`|I@{(Tc^zJAgk8}*YuhYjTo$Ys=K7w0 zvhp7)(c)6W4Zc#_OWpeNBItbK%6||=G2qQUF{{XbbaA6KP20|M&2K;TyRodk)MvRZ zYGAB*d^%s=NlJJIXX6ZfY;kcEs{O>tCJA+>X{c7&m6P&J!5Yo@?tdTFUim)Y5qN7pG}9HWOodT)uI$&mNy zxF1w@nqvPs+8p&V#05j&y#^KQsj?op-HEqzyOG)~QCDHoxU@Q*EF9tR)I|4TGh5q6 z%8M-GM8#^g##bM<9Lt(KP5Fz0L!!|vrW01e$F98GpuIm|Z&~{4_TENCi;8zmylQNS zi!m$acDQ5AxxZ_2{!`4l^~K_A!RVvU7=|~u6;B4K!(Pq}-Ll(If&L8_;(z?!TXv7I^IqTbe}VIN1sCVou68Jh8l9<_M2D~jql?V7#77dKXq(!%v?d_2yaNb+cX`N`^4o!MQ9oB@x@<5 zlwnuO1;(N`+w1IiOjjmolV0bU+xvVUy#M5OnJmq@x;xl0_*o>vfvec|{uz&kmSy76 z&e?`R>9^JLogEq@qEsEYh3wXr3v`lH!p$Vs_)bhncN%{vO|BZh90na?qYi4Rnli3=Vla33`XSZ$_ke1PzNwu;LO8=Z;nR zZyWtp20WT`)AuI2PiYoA!#-~4bFM9FC+Gyd)=#tNo?DTzJl(Jyl4R({^m+7a#V7BR z)x>1H+s{SCy^yx6JqPUpft_w>W*CuNEfM94{}U!{5m@Q zSa2zwq_Y{_jUVIPDT?xKukgoYA4h$BA|=$%u37iB2)>WmU+`_K@aM~q3gdBl^=CpY zKFQ!>qj7u1C(NiPC7-SH>`R=CVTzgp?vx9?Z98z!Jj_J$J#gXJelYgnQ`cCgde8*g zv9ABagoXZZ#ny;lUM~B}t*NRaCD5gpYBAxq*I#b2?mej38MuG->EJ|L#4r7uQt9%Z zs<=7C{@P}l))%8&F3ncH@m#N`#mW&T#OLQdbQV?KYFby-KX|d)e}+s}4;Lg7(fgMa z?mebqb|l|OzBq^*t=8P1Rpaa?u@nvVIt=)qsf>6tk63p8F}sz%`7mUE%ylmnK>TnH zp5FZ)YQ!|{(duSRz>a3iW@Ed<1ZZD0+nDbCgbBYGN7A`yj$wc2i*Ncl#H}VKbxw6^ z73@fB%{gWc?_8O?_g5{Bq->~qqO$^N`hhnh@XDfviHgd5w<6?_VDX*Sp2uck;* z^o1eXn_{V9tyccdW2)itlAL*M{Uj>U(@HdtdHg# zw?j7Be`>~=$D^r4Nl}7v2xt3|n$wfKGwyr3xxAiwysm3GhSyVXUw_W=4^-awXw7RU zLqiw3xj4OV-bTA5=A0cYH264oKYI7Lr?3uG94hgBXSZP;(N^p2GJyjhpMF{-t< z#VWN6bTa84*?z@P9rNAPoAs}BC_N%lQs@RaRQ!QlQ zCh8AMsE1l+KY01AlX(P{lCG5V_E{=;fuIEIf`NB}^hP=ZVZX$ki>sII>Cs@Z|GnTX zEqJKNc?>`4Zp>!hpwh&M@b^x=Iq6;lz&VGFbTK0j)x-H`SL2-S1L@jWSIN)P4SqL= zixkcUe;PzRI122QEdIzDG}%{$En5qZH4L!l_mg&O?~8A0{_1Y7bM_=_(0aA;KB&+M zLDQY9$wM}EI(+$RBJOwH+0s3nD-7ke+UKs>nOUSMm^L4O6X#NKV^7F9wMV;4_7lF? zVq?NPqewa9Ib6_NZLmkOlAvkwL;CcPaMoHk@$rQ&9%%!wa&8Mze-RZIxFD)^pxxi$ z{K|X9pgPzi`vGtE`p1mP@Vf=YPxK9z zfc@2vlPedqs`B{~9=6}D+E7rGaMp&Inf4lRM_az9WK2my2gr)~h>=UQ3C2p7O1HC9^N+cHA z`mxf}bwm}zGP{;yVJ`vdtbo0RSf1Wc*5!9xJ?sY_v5pSE#JfpPwp+KN-xl7@@X2_= zj0$ZTpIJiLywN@;^)pK71Eg=D6lbAPhRq - - - - -Priority Queue Text Push Pop Timing Test - - - -

-

Priority Queue Text push and pop Timing - Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - a container using push , then removes them using - pop . It measures the average time for push - as a function of the number of values.

-

(The test was executed with - priority_queue_text_push_pop_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures (see Design::Priority - Queues::Implementations).

-

Results

-

Figures NPG, NPM, and - NPL show the results for the native priority - queues and pb_ds 's priority queues in g++, msvc++, and - local, - respectively; Figures NBRG, NBRM, and NBRL show the results - for the native priority queues and pb_ds's pairing - queues in g++, msvc++, and - local, - respectively.

-
-
-
-
-
no image
NPG: Native tree and pb ds priority queue push and pop timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_vector- -std::priority_queue adapting std::vector
  2. -
  3. -n_pq_deque- -std::priority_queue adapting std::deque
  4. -
  5. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  6. -
  7. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  8. -
  9. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  10. -
  11. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  12. -
  13. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPM: Native tree and pb ds priority queue push and pop timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  6. -
  7. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  8. -
  9. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  10. -
  11. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  12. -
  13. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPL: Native tree and pb ds priority queue push and pop timing test - local
-
-
-
-
-
-
-
-
-
no image
NBRG: Native tree and pb ds pairing priority queue push and pop timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_vector- -std::priority_queue adapting std::vector
  2. -
  3. -n_pq_deque- -std::priority_queue adapting std::deque
  4. -
  5. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NBRM: Native tree and pb ds pairing priority queue push and pop timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NBRL: Native tree and pb ds pairing priority queue push and pop timing test - local
-
-
-
-
-

Observations

-

These results are very similar to Priority Queue Text - push Timing Test. As stated there, pairing heaps - (priority_queue with - Tag = pairing_heap_tag) - are most suited for push and pop sequences of - non-primitive types such as strings. Observing these two tests, - one can note that a pairing heap outperforms the others in - terms of push operations, but equals binary heaps - (priority_queue with - Tag = binary_heap_tag) if - the number of push and pop operations is - equal. As the number of pop operations is at most - equal to the number of push operations, pairing heaps - are better in this case. See Priority - Queue Random Integer push and pop Timing - Test for a case which is different.

-

Priority-Queue - Performance Tests::Observations discusses this further and - summarizes.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png deleted file mode 100644 index d4886ae5967eb5625920ae3bf0dc3b4cb6466166..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7072 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 JU8(61_Ahh*spbFx diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png deleted file mode 100644 index fd52d5a16c5f1a2ca83f4560ee7c8bfa7ad72f63..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 46440 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 Mw==6f55N1r0E^u{U;qFB diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png deleted file mode 100644 index a5720402b3ba687c2760540d01468654d9929f09..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7289 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test.html deleted file mode 100644 index 542eb913c49b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - -Priority Queue Text Push Timing Test - - - -
-

Priority Queue Text push Timing Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - a container using push . It measures the average time - for push as a function of the number of values - pushed.

-

(The test was executed with priority_queue_text_push_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures (see Design::Priority - Queues::Implementations).

-

Results

-

Figures NPG, NPM, and - NPL show the results for the native priority - queues and pb_ds 's priority queues in g++, msvc++, and - local, - respectively; Figures NBRG, NBRM, and NBRL shows the - results for the binary-heap based native priority queues and - pb_ds's pairing-heap priority queues in g++, msvc++, and - local, - respectively

-
-
-
-
-
no image
NPG: Native and pb ds priority queue push timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_vector- -std::priority_queue adapting std::vector
  2. -
  3. -n_pq_deque- -std::priority_queue adapting std::deque
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  8. -
  9. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  10. -
  11. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  12. -
  13. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPM: Native and pb ds priority queue push timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -rc_binomial_heap- -priority_queue - with Tag = rc_binomial_heap_tag -
  4. -
  5. -binary_heap- -priority_queue - with Tag = binary_heap_tag -
  6. -
  7. -binomial_heap- -priority_queue - with Tag = binomial_heap_tag -
  8. -
  9. -n_pq_vector- -std::priority_queue adapting std::vector
  10. -
  11. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  12. -
  13. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  14. -
-
-
-
-
-
-
-
-
-
-
no image
NPL: Native and pb ds priority queue push timing test - local
-
-
-
-
-
-
-
-
-
no image
NBRG: Native and pb ds pairing priority queue push timing test - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_vector- -std::priority_queue adapting std::vector
  2. -
  3. -n_pq_deque- -std::priority_queue adapting std::deque
  4. -
  5. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  6. -
  7. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NBRM: Native and pb ds pairing priority queue push timing test - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_pq_deque- -std::priority_queue adapting std::deque
  2. -
  3. -n_pq_vector- -std::priority_queue adapting std::vector
  4. -
  5. -pairing_heap- -priority_queue - with Tag = pairing_heap_tag -
  6. -
  7. -thin_heap- -priority_queue - with Tag = thin_heap_tag -
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NBRL: Native and pb ds pairing priority queue push timing test - local
-
-
-
-
-

Observations

-

Pairing heaps (priority_queue with - Tag = pairing_heap_tag) - are the most suited for sequences of push and - pop operations of non-primitive types (e.g. -std::strings). (see also Priority Queue - Text push and pop Timing Test.) They are - less constrained than binomial heaps, e.g., and since - they are node-based, they outperform binary heaps. (See - Priority - Queue Random Integer push Timing Test for the case - of primitive types.)

-

The STL's priority queues do not seem to perform well in - this case: the std::vector implementation needs to - perform a logarithmic sequence of string operations for each - operation, and the deque implementation is possibly hampered by - its need to manipulate a relatively-complex type (deques - support a O(1) push_front, even though it is - not used by std::priority_queue.)

-

Priority-Queue - Performance Tests::Observations discusses this further and - summarizes.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png deleted file mode 100644 index 8895f507cfc62503c4e90562e1c58865fe776256..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6832 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png deleted file mode 100644 index 18cca76c2944f349116169318174bf14e71260a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 43334 zc-qvvhd1luMe0MB%v zPBnuccpfVE42Zy20Ff;k{7vkpVd4SC4_|%5RQS?-!IO-hca1&uU6GzXkKOGcA0Hp# zr!Gz&Hjmxxgk9b3(>COoAc!5hhfp@~P5+nS7jS?0Mq8E-&)Ur&NyhIeU-oBn-e7t? z#5!Qq z=EzU?E(L6OFHYGb-_`ZXFUfCmAm1plQxf6fgycUoHbedQ`^!uEZvj_NDY1X%`~S~x zQbY7xw^R{{0!F0)g?3#@huVSNeYxuEfBO3^pCE;`ov(&bCOmq5%twGdt9|_a%{a0* zQ@(wAdb;%UiPKPtA2TE4sI;Wyqw5q`BhTzPwjoP7w8nP7mPp1}OK>nsuLxT+m8%}} zyUJ;JOTR#8zdT#+YADe!X3oXjWYNll!|CAQ7c2ew_})#8hf^FlQAs`kd->RRYhQI}N%EzY>d`90M_i z#TuHLCrK$H?>`Fv?@H!1q*UEPd72iGG$aZcL0RzK&3sI;C|YB%;6YXg#;oRKdDEzP z&=)RBX(M7eu>OmHl9W9u#Q5ECRsYU4Sa}e(^XK5)-@pA&2R}W!L2!-PxHI7-@MKSh zft7XYWy;{srt1IF0AF{}R3X{VC8!-;s0c|TGr3&DAU9lVuidX$#$Nfui8Gcv-T{4; z_Psmx=aC;DJlMR>5=gJa4P`>+?2Lu=d58Yz7iAuZqF8O>du{XAI@d_prEt;CU(-!u zGw0{$1H03tFS#Wo_7Zm%x)==T6wkK4&n+)6uYB{p+O1aVgu0}dGxi)M2oBqOvS{vS zMFffNimmZ?X%!n{I1kpxhdVnviGweW3qD%41ZAZw1_!;{IC4cSq=%$3b)tQ#XFB`+ zwKcRTplBZRRVvh-4kx`QcJc1&q!asu0&iL6PlgAJjfQ(SZ}Ri=FArhHld^&@>VnIs zYX4h5&(8g13eFw8&#X!hkUIV2Y&Z!*yUK_`-uua0<6z28K5Ikk-!>*2a8qOo_?B*K z8Q?2vbI%kdYLlQ+{nhdbNL;J>agOdxbPLstS37TXn^lR+(%SzUDIZq2JlmzmrW?~n zft<7^e)jBHeM5bHwUIz#-N%7p2MH-+Vq!uM4-cQDYN?Q8+T!t0v;o9~>q|6)e0sBo zlhYnrgBm}$%KZ|+29!Ph^Kq>$hD}jSR@PrrH;NEC5>tG=my!wh4iJp1P#-=FkfZ=v1n-P?!D_&oO;j**$fpDu!#l^L6bs&v` zlOgy~d_t7mH$DW*BM{Ni(QJmF3_9nj?iCdk9e{wsQ;wfMb)-3KaQO4FJ1OIi&wnYNIGM<@=}@ECvjh)bPMqI#N{SFXS*F_fFPa{=_7~P^SB4cQL4H@4e*5t7()RRV z-NtdKqzFRA&hs>--m-_dJIj4sUtFhycI!NrEUR8ieQhD+{B(3M?wWOWw%eN}SUA-g&kLXSor_8_ zDm6Dj!n8^9^c-O3)4Q=}g%VY;{wD65H|KwReMOjdqk3j_MH$TP z0jS%O{N(1Ge>N4z>^V;%7qMLmo&gM=H3#Y^HsJfM$A~6K!hVq-e}EXalS)yS)}|vD zwHS*2_hNt5OI%KF;;<*<&X|!^px0BG{VV89- zll6<23oUTYPX-@ULPr<6-b=4E5Te>+*qr+N`;iyJuGgBIn{5nB&Fk{+M$)Uj>RPz5 zvJGIlx;o*btk-HlmEZ1STxMow=umf0kD7zSvg>;ht83LL2}lV*UfNq0IP$V&w6d7- zj)Ln{NHA1_lPK?gym({PyP$-0km= z@P?_tLyMZTRpvY1w>&0lpX-ZQHJ^oZON@?;yauVh!p+&Ate2IN2ufceJuR)F;Y(H1 z);H4eXl9xI2KR+up+oX74xZ_3PBkq})_WBXoX)W@Gf!a*F{uoB0ZO4chQ*ISEKU`}_0))>GEuT%Q#%w8l? zc`umsZU{R4#lb(uy1>(eH=%7NNolF~S{u^!u)Ji53#8t9`8R7Q z4ydgy&rcWkp(PkXd9^}jj>4P}{^G?8!UtIjfu|jDTo$DDLsvWwDy%y$E{=X>>?or{ zn1=5%vutyfyus(NR5!Ox-)q28Qnt!9_-{wAVv7T@HcH~<>Uzzz!uIh}){7LqU~IBj z4amaLcPX2R6%v$jYcpS8Jt(niX>NU1Z;GK8X*t`e16Lt%=byMu{`~oKV)HK!eWf*1 z{(@FCMXyr&Kvl#mUL4Iu{&bG3L(Jz9$R)V5-^R_12v#dvdDH)%5apXsEzR?w?MEo- zZu*?}eKG~7NhaLCByTTuV6jB(;V4AX5RKOw*-e4HA!pm&9Q=1@Bt$REjLN2*NEw99 zN5Rep#N%4D1X=tkvua5MPhEHQEh$9eD1D%DU(F@xAO7NGUvscED@UOu@4tths`DsN zOdG)w{H(y8WcxNH7-viWUPdp`9oTEw?H||`#K1K@QGsNcS7>_J?HpG*bfExBeX+Xv z>_#1kfvAVt%yMB@Iyt+ZFoc>8Pp^b23eAYrMB^zr#yRpc@ImRg@02~gNhzylc6)<^ z7ZQ!eX!m}cZ8U6JMny#U7qiRrhBIfN++~zx2!08MxSM9D=VV~JzecQ=n})auHV(QcCY8FiA~#&n25-6 zrT%IAyAU05VWC+VZQ3JC;i|n}*MIeRO1U*b(R}0;CLy*u?=&o@@ov5e-1<7HlOdbv zyei&uu?@Y}gex!L2v_Is6@37QXwZWrQ1| z8nj)!LvT6nw(&sPs-I%-Vi) z%DB-vt#6o3-i_UUI9s{pnx;lA_l?)?N9{M4%ih~2O+AB(AiZlwh1UAP`;LdK=ckID zF+0QiYmF6wr(cwPHu$zZZ{2?^in@7bqqlRN?z=Mq_1>R*!bZE(f~!uKvTlry%CATL zotqOYv1!MR%*nME40%Q{V9IVrTDZPo#}ms!Sg2KT2cTIP8Ke8^xNFOPXPJ(Q3XcEb z#`!{fdrXWj&c@i8nV=lUq%|oQsS-2n`LkH)A?%0Uz0vTjAH-B~+ATrnI?hv#qZF|f zRR}zK9HcnVy(nDoQdlXhMSrzu5>|}(WGg6kQbQz#ssId)ewBWxBmDnv_ z*IK5&zQh^#VneZ<>!Mx2Fre@7bTebjd*xk0rYWW^?c(D4i_tup4RMb1nS2$;2p#;` zZ%P7;CGm~d*zc0&3FN)YA<)YR8CW9k@2YVebez68KfUwG;9c+XRMY8C5G8!^%9E0W zxsN0$fgOD-I;oMQNS7vYXs(na*qz<3B9MrE_GMGk;`W!PBF)nF(S7u9xOW%xt!KYU zir66)*jp`0N4g&59NfZ;gG;{h>e$~~yKGF=oM+b7oKgoIC09#$;{hYLg}S^jYaon;l8-~UO9lC4u##-JFjR^()4xmBRy-}TrgvqB0;ogSmykVM zJ(ymkdN5MwPq8#vD=t!a>#2&hpUQZ(d~@LCh4ne_;%A>}?QP@cv$c<=>&`fOL>h_Y zhzK>yF<4Oy%D|&R{C)^}V%l#h!|J_|*8j^yIG%E*6m$;@^tB*T-mJ>^wY+Pum6gc9WeHR+Uq= zt6xnuyF)tg-Cgd&GIsL%>_6Pt#&9$4pEd25hYPql}7^jkLf zg4jcw!1uy`hBrs!3rMYv-wWUS&dK@B0_B<1jZ(2(WyG(#2oj3LNEnM}SL0VmDpfOe zl#6)tXoceQ3e1i`(ve5D7 zE^K7!mln=HiJf;BViMk_O@XFtMfejIC|P>Hj=N>DM5Vcfat>z9|m+bAqsL zgk`FvlhozO{#qRtYfa>I9Qh?M_`H?a#qP9t5Z3AG zvHE02uhju!021q5$VFlro*z)*Q)g`~nU&S_xw~TO?LW57MLqm^-B3oK6 zhp!akNA0vM4CZb^uo3@MBsVT4PHV5g-+ZUAj$orPp=lB>1hc@y#pev7 z-@kv~n3#1{qJ$3#A!C7pup-Jhr=JmY-)U%Q#w+L=#L2d|wj9Jf7O^bAm$Yop#V8U~ z)+q*EilI9~_th+k@wk$zn3;~h zukY*P!PTR<)U(3t41JE!Rntp38e74G$REF*UbT#<#NRneoNL%EEF zom^Y)8ozsx2nr7Mi0v94OOhx10ZB!Immf-0D=3RV{N1G{DtYj=(thEAv&J!9rV@e# zQjUEyZ-S51v0HRQUYG=}I^y$>crrnBR8188+%I^Yp3)L&k|dRb2@`Mo5#!n6dUUtz zLQUa?g3?BN)h-C#CU4D3(O(FxV$U}V7NB9H8ig&BWW)3B^?ft3?VY^NtW|MlLF%9rz$=q-Bm#83{^0b|6 zR6f9Eej1#G~(lrYGc_^Bm@1;c%6Dhv;6nJ$O$uUP3686DSCE$9aO&(HvT zYXSJCw66&rM2yHw;4S%Y_DT=$1D1IXrH6M=DJep03+LDPLc>33k|GtZ&D@2UkQdsQ z$>|h%;c_q4aM@94h2P|^wEw-(niZKsfovvgC2k#tlEf=h(Fu@v6ux`X^An|1;^A0) zDD%Ec8}>0I3_HrqTN(IovXsdoofbFW@O$sSl3Z{m&zr5TKaql%y>jpW5~WL)F|FaK zd4|Pz%SzcL>$H1%FmW9+3wNN6G;zm&X-~qbmr#W*#`zi?m-8i{Q4R6ue)tM|&YRf& zvO8%QtUH2QmrY6B7z)Cf!Qq!|5OcxNfVM*H=85rMzC)qYZ%94!%~pOz5KmerL`kGc z6K|%F?8i+dNw_6Mg$bdxP34WMPe097gruR|WSKu5MZcILp#Tj87t9uR^g4xt(U6nV z2ijC&dfAYk^1#gSqY}F)1E;&o;HSan_3@gPBjC>^c6WCx?*Olh4rCC{QuVMVxd3g&~9~B!;zDr7yTL1cr zu*K9YMqz4d>M`Ut*A^uM5QtCqE-SrY4f58YbC(6(irp=Ye>q1E0W^i1jlV?&x2mbQ z8It(9sw$9QTKdqzB!X^hZ|~VeOYkMjj(_jS$Vk`FkO6%kW6aeGjqBVOcu%`hVMS&& z8+?$3>qKo|R!U_Fh7d|mPj~#{I<4^J&qra$$D1Z)B|AGav9tNR{KDEJ^ENsw{N7 z#(DgpCX9m3J?M2fZi7OAXk}*R{2`og?XmuHm|UKJY2jD{|ah?wfmp zL@vhnI!@F+7qhgqbS}YkgG+Z#HNDXHsz2D6Oj})As`)WikKi{guSY!z7m?pp9tv{3 z%*Ropx_-U3&S|(b*q}&nK?a~C9bl=H+1c5cloS!m#$*e6GIaCyZ`~v^bVI|7T|lhU z8d_R&zkmPU9TI1+*go0^PnlmIl38v?BizIXX8t_eBh=yzt5m3KkH~ zhDTublul1Uj+s$YQEmV5T}GqPlmzpPf`$waZ*Aw>Dj>?2eF}+4NXD30STH@EowGsb zCl*4a1V4s{eUf^7mur2upHu^`G<0I5v}sdSHxa$M=AdIrij2H`27q~g)_yt7q_Z@4 zm*LV$*N@jJSj=i%w6BqnnBMl;Fu$R-A|b&l3mj6_RWJ7u*?&_!+?b4FqF@1QxwyE9 zJX{|?OxXTi?mFFU5FC8@GiiuB!f(M!u{@n!1f*)lyR@{1C9vSW&|zT99nd-I!KdprrO!TGr%cpb=xYuP)pK5|HF9uTJ_NCDg5vfmzEpT@ElaASQq+&C1VyJcH zp*k$H{*zUbmLMW_Y*^9J>8Z$7zi}BTsLAODAJ;5!AWqDuvAWw

z|NHmvJwJc`w8R*W)5K+9FqkH_+;T$e0t10{Nv5bKy`nGRk3q-vlu-p?;ZjFEz5W+B zq+LpMled41J^%Y7;q~j+P5Y~Zkv2#kP6Ft=7sSrl<7!cs**Bae9U+=ZQ`--Ir?;ve$z{-`*&(nS4z@uFJP744{@nq%| zg__s$?+?syn|~wa!FLe|`%b3SXsZ!2NQh*Si<1Q-)`4Gmex4NdLX3(+ffF$&r<)O{B)@byULLpt#}x*4O`lZBFY{3%b?V*l6mxG2u7&D^akCB=tZ;ironOzg^mKphMZ72i;*& zJm}xy=Q#m05T6xtgvmja6ztLHzg4E|@m`@SR21wk;H?B(j{ZhAgL228(w+{!JRiT~ z{m*v}=zKyL`>k6gI4A+8sJ2A(C(%kllmJ*DU2D8ERBz`;BY_J&dGdskn))Rbms+yH z<;G;gbxFs8IUem)#Q50Q*i2SS3~w+O!5Xp~<2BO?1Mr=z7RAKV!o$l;`1R}8<&knO zO{ZVQBO}HGB_=e$A_?`cErPXuvHtpULq) z+4k=baQ3C%tW9aRnO0-yT3ub;0mO{%P!2XxDi@ir#f8EEr42AkJxey5ZVuGG*lu>4 z#Q`=1x$~z=#@5!BT}p}`kVB}Z-B^MOFml($p5V#J%WDTkh1;r#^Q}PQ8&geM-rn9- z3a9_zg!(QDSA)cDi5v$%;oC0-#IxC}iqrYM4b>}p`^Q0ITQgsrwRKX)V=-Cciy}L_ z_4%hq#XFL#mHeCkcNT#CPr-v07FO1alPag-OwC&k0*@a*_7)WtL?pD=idH(AnwnN6 zCnx)ZnDM<+zU{e8nIvTP28Dw3KRK~i{jlxgp7uia@Z>z>{MFOZF#`~{sqy(-+owbU zx{XVB4-YZV<=gK0P*fo~> zn&i(xm0%g+$dWsOCwt=`2N;aQIG2uN{ismoKhz{S&XWt$Fd7eYj*gFo%xc|c*G}4S zAvBSoQEAB?|Gi}lD=TZ@+~2>N1E|-bq5Qzhnlm#q3ph%oMrh_&r#0gA!vZlF&LDF^0GC@icmR5kp>Cad98)7Q>*@ zZygl%E*3Qa#YdrmwrGCZh-VnXG|WT33Rs~elXkUU5!TzytwTp!Tj+4LxXfkZ%TxXD z->?WZH39;%>u!^yqkeBID?R8TIw;Yw*sC9d`;aOwB4ziV4U*TdA90>jJXdHW0EY`( zHlk^Gb&}5piuH=NRtmCmz`h>7*jp|qR7y82j^fSnMMmojByIyM=VzQJ@_{lZC+7_w z9^Mv+?+GJQEZDz^YZMf0S7iD9XI&d0!~tmISH99JaLg|*&W^k6d(u}P|Ejw@nv0qE z{Q2`Aj9E=){zE?T4~I1{C5&Nl<@&#WU{!#!D{G#OJ~?>BMwPfZ*>HFPwB;f`BcsAh7^iC2u?1+UAL}+A(`{tKUS$ggb<}5K`eo9Zwc78@B-+ zvi9`!Txw}(_>Sv+ebTnIzi)9c8^)$!C+A5?)eL~59+a@SqtaVOB8;I~T#6vI?p=s3 zypR)a^m@SDQn##jWOOvnuo$08xp_^Pz(DC00r~wP3MnZmhv8C|&CyEU+$TRH z_+#~E?3L?B?K`tv=~1^rRpRn}pr@;`h6yr}vBm5_7}IZx}k% zbalq_R`T3W{>&{P;8@rRG!3P$MoZB7HRq|uy7Kt=_&(W{m6he`mdgeC7YB{zdS5e6 zK%U6}0e**{mV}O~NWidU#P;POnT_fu#F{yO9io{PT*1HP;7-z|ENWE71U@R7R;(7RT^qogHn{ z!&zm~9T<@1Vb#w@cM@Rt9z0M7`z{PpuEyZ4dXPb}Ax8J~VBM$0tftgOnc$|33?tzG zXxV@xH+5t+;BQ`0(XF&ZL8In+0HB0GDqUqCueczR7V%-H_gpboib9U<$Cd905X#^-gY1&WXvG@3N=_ zyWLmcWd~rERw)$Ew!&dDzFXF9r<*O8lVGW@w|(F6>2!tRC}}}KvACfSDkah@mp!L0 z)S!rTh9HmENd#K^_3{|t!A6FxSHuy>GN$qIOE_oAP4bStl|L5i>+4QVRbyjV^E7nh zyq&Ygw$uS?U^Dpiz!{`K&phfokh*qZp`mwyX1j&$?$-WNUViUwbhOSb9X5C6LIZ(A z;F+4hJ~ip$?o9ejbKf$n#{O+n4a>@!{sHv!k{J7t6v(|j?%IMWa8>&CZksPs0z`Qjs9*)Z&8EW%Sf?);ki$zWe+n?jE4gbs z4L0MqJCJxrz>A$kR7L$484-FBOF1Iw%IcmU?=GpEnZ;*2B;Ogk3!6ck>nKO$5In5M zP$CA{lx`q{%%-mKuREo_jE~ok0`c1%|NK~$b?(D=16)pu?cM$q(ohv$GoZUV7r&9} zZCNSH;Zdq0#3p-H<1RvnyVnd7R95#?pe zz}9_$-P6%g16jlcy!D9g^_a7#0AYGTp#+cRYcbSZowM*f*?Stv^I4FH)4kNP>Ez_g zmoG*9{QP!~?%kl&L~v0+P2Bsh*RYrxa}8n=+pT!_K4DW57ly_A9l5~h+4b_+&E5S| zAJ8L#S7|=?vYyfwcSj3=JkMaEZtfek+-*HR+Nu;2`&*8{GbK!CN4jc2wl56Y|!d)Ls=5c@5ZG?KYc9Z{Nb z$7ia=Yi+2241JYSyu1ZW^8R}x!`05?s~}HLra{dqRDEPsMR#PS^ctJBSE|&xFJ$^W ze{RCe#&(%1%8C=xdi`hk@pXKD@@1qxQVpYEYyLIxT6yRCaWNGY)g&O>%UjNYCzNqcSLo_GUfq58Z?w|x*MG@?~ELQSIYENK2f zNUa-)6voUNQ9(fx`8gBvmDgJ3{$nfMSXf-a?G}Ha3^qV5eNNr}&G9zus@Gc*Rk!$^ zP_Lrwl2J$CC$@~VleRR22#EFbYifeCsjy1R)m zz}GAOrZ2kNOg&%}%j&8D`v^~#$wB#(K;tRLbXv>(4W;i=wCpTt|2vkNX?K6a`|)D2 zf0}o!Db2-DnJOY4mQa7po!iOFm=Nq{@WU5mI*k=s+B2 zR0$oyd|@bFlr6LbJ*!Zg`tQIm5#F)>{D*36x+Y>98aRPtO&JNHc-UJ!H;Jq`5oPG& z$)b8b|Bu1Jsvw}&r-5ubxUZvgF*i}?!S?<@^1n{FZ<6Q>!|@8##SeFc0YfVT*f%4Bcf_WkkW$3Knx_vMhz+W!@>e5T*7*pnaV z4J(i(d6Nx3Eu+9GXlG_-sz0%@vELZ0Dn7{{e9 zY}VktzHias%>lq}AK3TlTj2{pg(;SR;WI!57Sw;}0pl)af$VA<9NgDeS8tz9NlBSD zc0XRPnJyi6kZ4!~FQ@@XlL_iXW4zA8el?VoK`mgfPu((UD7S@-f?|3Rs0C^Fd5s4~ zMn=pE0k`c(E9}|{$*zB{)Jzn}qT4yykB*KmvqK_X_@Wj7DRMDMJ*(vr6Vo+o4)7ZU zqLHV>xID-2sYMx?khF}f>_ImcJ0Xz7edYA-(30Hs!5B8^-_i;g<(8KAX^D!`RxiKR zx6macBctx@>^#n7cJOcX&zWK1|MjT}PM@)RedU9`;ELXxQlxD?g+4(?<#|;AFdjD; z7TekUXm9tJtoLfc{Y{M$$%|8|f@+mX2CDeGd-?hJ9QFbAxs!W!r^~>Hy1Uo$odSdR z*M>J+fUicVT6A`HPSks?1rGK9#5zpWZg*W3zr2)GQc4O94UOMWiHX?7#f1%~NQ-ut z6uM((HqH)tm0<2BJPC|B&`y&&&sL9NJ-srMEl>Y^WP?7}R151y7-BQV@qr#bfCR*L z7>@-C1uR0ot+EUaK7uUJkSfxllnw~N1sxy6ylg99b3PCeN2f` zK5oiHyK^ku>MXORbC+w;d%pemXA>aTGKof{v2pTM3Mz2tD8yo!=sw?CPBtl98LL|R z2g4;W5FK~~!q9kevW7tyvZ1=50RnD9J#3t8OK;_EO5KHF%NOf^zy>HX>R5hI!9Uv! zzTExv@WZz+vR#8r--L^DbL4=qe0}GmT8YZOSLWu)+=g*&^u2YRESrV+`wi-p|!wKT<^BnQUSmjlzW0a|#Ru_1%(!k)s|z&Fk@9;J3Lv+pL(#?FUwfG< z>2y)zv@MD#9&`s~da!sXZClh2v~9@OuU~JxeDz9N!r`}dwq(^Z2{b%}G26@lyOja# z|K8Otc04@10NmD|)cTh%Un(?suDl!DYDky!+sObGC-3^Rx9cO2)M3JwjYkMGB$6kF zP4VJmOw0o_!C<7;)g6+&OFxU|0GZRD3|13QwJpFU8~*h7leK8-Xlc#O%*;#<4e)68 zMVJV&A?C@l`SWHmY!C#`;>o$Um|ph9dhsSF6TyrJr$02~guHl#enTC111{1xn5f^j z8RF@Y3d@$wBm2a4zitRfr{-y3f!u&>&GLU|)#$su4p8oWip+G1b9e^<%7&Pp5Q@f{ z!|&W_@D3X8?(QCheDRb>SCE<071=h(CLV5XZU|K=X0g4!t)ZpWfM2xV)}v8AXf}r9 z_G?p~KGA*Q*Vpggzb}h%zEt_JOvWCG20@T0zX|zb^}5nWDdPlg-@Y9%_~{Wa4^QWa zpet?OYltx=zt|tPdI9%Pd){M3W)c12!-rF8=dt;<`I~`sP5%2k5m8YrV=cj#tB|b8 zJtNG|NQT3w6Sd`-*>Zq@{+6|Fvow&1nKBa&F7Erl1sxq7hbzI)>Hc`pc6Yj|RWEsby`Q+1BS_Y(uA(IH7#l#{dQV0< z)pY7mh^k2$Q4D)a_>j0?POLJ;ujQ;CkJDcX;gx)hd^}tiaJ;h!LTd;S9ITJma6%4M zrUAhDZL3E!ndt)AUQtm&$;Q@_l@g^xZ9MkH zq3_8gz`Qs0b#?My&#qw9-p;PddNJW;&xb=Udu(!Yy<%^9NlA&zy?gh%1r2 zA?Q0yE`>h{JpmgK(P~p=Q^oy?wW98Oqyfvaf+hdLwlFr9kldun!TTMTa!BtP1z6nc z8Az?@!1Mj#SLPNLf&fw`TfEoDa;`oC0tjWMnAFH;S>CNO!Cp3dBO zyqG4<#l@v=rZo1b!v)LAn{Z7To2#brZnN@5Brs}8^YR?1q7%+1rI1T zr(0V3_~kgcxGo8{8u&MLtpl;*Y}kM|XqE6~L5MEgfe1AW8Lz7$uVDky(eB}$lxrKx< zKAxU?d~9r41@~P5$cw|_hd9aTfVZ#ClpYF5xK2$7ad142EiQJ-JSQe5z74pF*vab- z2{!vSj4SpDsXy*Aes)eiuHi$C)}rtwV~W=Hj*BR0?E1eKbgcxCfL6;e^%>StMFcWR zIMdo+9Xubea;nJ>zPxDhUL9Cz2P){G>f50mZngl#23a6`(oprIAq z&W^V4V+^}YF-d?OGe^N{aC>()cY@24PYEf>*dJcZK8N3yqU|So`7vL(*%sTb^U4{A zl3->oV3kmrXA=w8QW0+$u#l@=Z<6;b#EuLV(H50Gx%H zn8onj6+znF=FW+R-Y7e|l;X|M!-F*tE>IH8m!*{&$!ato&!DYN#GY>?(k6q%sr`i= zM|a@&Z*`?XQ;)gWu2I#gFul8nl^d8?Bf(o#LX=)HWb@Hq(rHj#l+Z-ei}zO_4+}cn zn9LZ7@VkaCG)A)q44wS7a(O+4SP@Epxg{U#BYmr6pF9O$6rf z6YH_C-pf%%kB3v(qbIuL3z?QTl|NlVD-{tQ?&99P%Pw*SuDbX^I`uZB8X1+UNoP$4OMeTf6GnRcWe>J8~Q53OA9 zkSo2=fVs;`+Zd5q(7(#(DE+?^K>RU3^pMTA{LVNbV)HlrQ+^fYQfO6LM9xOzgs@v- zS=Qg_ASBVt78-p=!K#i_9RxEsDU_c*OvSL~lT%4TTdaA@+cC+<^@-fXz}Eic$dSUH zRaSWsU0BdM8JcnKz^uEl40{KXuM$$vw2;Ds$0C|JMH=*M4l?;eBu!haCRs7Y`a~}X{}E^Uk@Lqq^9;}87G*4-;hTZ z89juFPau0t0uLsdiTX=YDIOVxpGJcB(*6dpD-0eU9=&di$y+*EKz53hnb*1B;M}oa zlmKtlSNnWUl8TDT1qgslWrU)bM>zMc;59_vv+3q@0YCZdTX@SP5pU`|8b(xBJzU87 z&E{}5Ji<}vr04uRDdl)q9|FBpKx+(w3KRi$DF(Xk)Q^%lh!v;l*qy!(uS7piwaEj#!Re*!{|io61yT zH4Afhp{Ll1L^M5omzL8Vm2keBBE`D+cX6@$XK!yWN6Q@VgUrUvgoM3JZb@Rim%&6N zB&N;C?o@*DYUkpam6hYWz)9FSIdO8X_T{$of)xFviMS5bzC8s+4E^)x&v}I~+_!Gs z*DW>_Y8V(WXaFkDfSiORbp&W!b*Rv?NtS@@Iwcb`^Mqe33KqArvf>D2P5O9^Yw;2` zMc>VToVu;AuYAbNwMp{xy?7oe=y$0_LkKX)#c(*>)l4re+c()s;otTH%@rqvL0XCp zn(sZD`7-kR8k4k3$y+pfIca(u@T`fQ3u%ZFG*GDf-4*EC$xn}p)oj|{76on1eC=IO z(u}OSI*j%xB{|t4D=zM_I^qCfJ6-KO9!^Ssi)bK!D|ii4^J!zeW;4yMD@nV&s;UZR zUG|Xg-xpI%hRTP}xYoT`Z$yH9M#?%gvNl9sBmPrv9MEL-JuNLo3GYRpM~j3%u5bY?gYntn>?r zf?mL$apx?=_9t8}T{Y|Y8Yts(^b2&dqFL@#r#43U?Ji0VJ4h5Op8l(3kwLPomt$;9OfPzQdAaIivq^}T zm``EMg`DaCodv+8qUpQV4$%&`Zw|{e-~4%=*3sRKK_KYnnTcN76LId?A&a#=-?O>L z`lLkaa&ns4+b@k46%|$9@|y(QQCLw~*+fec$^d^s6$c*3nIsAq8aA8PN`wD6_2-2< z0|TO-pPwJ)?(IFaLSTKiSP(PYT}i~&Lhm0x1>9iWne=qPoP%*^dpqG^u~F~U>7J`& zVA`+u_R5mXa4QxJ@v0{LV=-pKilr@>hkOG}QEC_ifkCLkYfVN*#u3?LSY)vJ;&7t~ zq@C-)iyctp!N z*2aTzORNAOsI9e{r&4@<>lpH^rXww)jLT$ z4mh-`vjy&jzIwIY_EN@Uv2d)$wM;JP?5LIcX!(8{m||x;Tku3-wk%t~R><&ZrTs9@ zG7;pCRZlY4jLOc=j=K5)tA3kmdxc$BW&=>gjv6#PB)@JidN&;5j99)?xmf3;jZlwG z0(xGnX3)#1g9Q>0O;dCJ2NFSjp8`Sm}V8&}wd%R|MfF%fiv zQW!(b*bS)7SU-%Txw+Zu>K3Ny<;D3DP2X2>3H9*tWHFnzUu!o~jzg*>VW`MRt)`kO z|6*5T35AtbA7b^VuQ~d$hyQ20$HUOaW`;emwZx&8_t< zBRqAu%qn5l|v!@v@}2e8h~%r*1-Yml@egP^#Lr%^lLni zwxboWUIA+c#fIbn+n-q#8)9YvdS5zTo#PW54qzq_O+$YY-#vdvyXTq@$T98m;&f9C zk%u$G&p^@Sb?(eiH-Cz!f{5AjEDrym%&%WZw#Sjgr zZs4&D@~o-22`PaYH)r2n_y0~m$h-rA{kA?g%j+ahFOurOH2L+%wfX)*(t8vNDLQo~0 z1V8P|`N<1_Uih;Y43hO)H4tWJpONPra|tiSyKy5;B%IF3>pXdWB_?sA}b$-Xy*lzPfY3;BJ%_3y)Q)2TlQl)sD7XPc&3S^)~ z@9*zV%@jJ+*XKhue_soKZSYsJQ(h(WN?BE_wd?L;w>0-AGevk|p-@0TfaTV|sF;5I z_8eRf;NSfecYxqz1A??)9LOwoDz5!0`T(u?Z5b4km$;T2T)B33vTu_rE~=(zoFS7p z>N~79zCZQNT?M1|6mU^Pz+F5&Jv=30Y@!#2m>5F=jmYP zXeW`hiG^i6UYYFO-Bv@T7CkV19QUcDB>XOmR)Us9P5uqX*sCrb&tfijUuB4m?V*V+ z`SqRSU8bW#Hy@i^+*O9SK*<}Q@354LaeDme0`5L zF>1qsdOo*6YQaafH7>oxc|h>;lb>`R>>BvSl^kDvxM(9Q#93pxiFzV?GWmv{^=gZA z72=!H(S(b%(%DXz%I(MG4N-hDFx(9Hk9*E;P;mWR7$KDWJdJimsHusG$;fBJEcb|A zNuG2H7jnN{41MOx@CKC_pc=Ng*d5PGo?QKU>yT60enyEe2}w6I*_qd;{p|VPE|-k( zOlB&=?n7PxgQI0YFqe#AbIV0<3*X+KY+lW~J=vahldA(wM}T`hGjc%=yml>Hdt;-` zQO;xS@N$HAqB&31dGf2P3g};s7#3p=E~8UtG#_okP9Qf@qvDS}YybT&?&XxUetb2) zdrBy|?-9g3`GL?B8yj1SNOGTijb-`mRK0H$dJ*zY?xteziM~0q5cefq5p)dN5lOvu zgoVv9iDrA>>md8hev_b1;>@}O>2#dicWtN$NLB_}@)skG-t>9vBdlc4dQ$D}*VJLg znN~fa&@_XhM`Dn&z{LK3J$@iv&5{Y$$wTtCP-v0{@z~Dvvw;!{5M#M|Mb9t4F~~w! z)wcoF%8`s=4#nNq`G#jMIAHZCs)G)n1NyRuf|jS+CN6ycgJPr|rp;tuMv7Q%lV7(YLwXCu! z4(O3`Q*}5oM5^hpz*{EXsgz>F%b4zmYQ~y_XBWN=%(MjYy**I6QkomMipT?eICvOf z&z1OP@-Ev^uBX{PTUlPMfx4!V?iUz1>Sun=4QJZ6J{B9vydCJt2_b;*YPV)O&L-WA zEcz#U+xVGW9T?ga?3cVD*p9tpB>6Js#e92&MdDSt^#or3iG`MTZWrb(ajmsL?;KW2 z%ryG0ktpZN_$Ybg+tQ+JrfI_DEqgIjSynbMX~Qf?9_t-5v-9MI*7KujJMy}&U*$dr z2L}*Z+RE7B((hNS6RNK-X$Dge7Ca?q^vRL zfzTq9gVq^pjvB@+0@?Kibk_<6J>*jKo|g_f`1|XNzkyoNfg>Ph^zFk=R`&5z?p35R zqbtremWGk@II}O0OG`^iN=C3{AN!t+juh#a$sg^RRN1#^+rRpCUl1b92Li;R6p!+& zzco<#K~(L?x3@NN%XOcbzHKpuY~j)olcOLf-{;XghQ0+Vrx{ja9jCX@ATVY#e&1IqMciwwEe*E~Ml~o_WfgTh+GE%FM=t?q&paMk1y3{@(gY_6-9A(C?t}AgaNoq%vot>RpW@e*90A<zgR;t*ZI;!)V>p`32?Y+<=AP4;Fjf#rm?{%(8 zBJL)^ZN2}P=7aMWf-m*Ze=yOZBb=^Zg32@1xY;HtRA^I+6E`-F7+nOosZ~C7nR)DH!B7(wI_+c zjSxxAAVM+zr2G%Ye>QN{r*VX;uyb&X z1xuEemaflww=%Kxef%uKj|vxqn)~W@U}(VZEnI1~@+kFoQCygD0Lj_08qNQ;W*GbN z^l$@q`sa%&z9d(%le>3%_`tp0tfW=r*rb^;l z)xf=F%XBHbAkcKtqc2++4|MHVf@j1>ONk}nSG28E>LLcRGv_WaQbT_J;?n+*idW0N z)3j$j_WX~jF|U=SrKQ)V4v)`wj@^Ket2kip1jh#i`HgnY(O7CXU2Pyr zM2nGOK?QAFSqR>coel*z>e7v*pYW>f@PfWbZnSZ-m zA9Mp|Q=+GXa`Fc;W0iKnglr|>322t56gaVBqY=ms8lYU-rb`E2|1P{@sP|tOtB-j9 z2wE5OHaUeFaD%^qd_*<_#I;Fn?}wnyIKEJaFL3!a&}xRo-Q$PzyEM)dH*l?N6P%9A zKRz(4;b(jcHcA26GMD8LvfKS&^})YMl&GIy0}cp)$C7;AKq&J249bm{YaHH`(;Vd7 zY5Ndrg&LHf<~i!&_R2OHCkiGiF8aKDl9IPv_4(-JFGa{Et~g_Im8!rtP5z*v=Oum| zvsnzS=ILYFzOx8fLzbjf)C1)tXy-k&%=`D%;I}YTbUX z;(&N@U_CItL0^9`E&QhI8ohe+m?_$ATDJVYiHeUmd22FnW%Hiih>ev0Tqr)WqJH)i zEpAaMWIHWD9b#ndY!Zt8`t>F5dn{{K*<61(>1<77d+Y0fRF&N0U1RtuYd8=Tn}$E9 z#+*BSH`+jeAhI)ezyf3>Y#yi4S38VR-fPn;44RhJwBn4szHD=w%|;es+u{ho*llNy zsg;5BVGz+!rUma$HTT!un4YiiOlT4c-37>4(A?6D8V%dZ9%q&Z1ohai@9G^@KCiUv z``kBqWam&3&yn?iij3Xt4O=$%B)yxcH^k1^kAr=wQ=pVGG>Y^Mzp==wS(d~LSMF8U zVa%campY=KQdIL-!x+As76U99ItNh0E%eE1*3+3bV6b~|O&gUH0G;n?3eIu)=Y`&? z>jdmeul1U1tp)56;!8>|eDr0+Qo{VBUXkA7Zh#vAMYm8Ny^Z27!>StX>~J{YQ9Que zo2|&3_^#f5_A@9)7GV7^d){#?Y!K#1#J+Y>02`j|I=#ganY{J%+lG1`h$MIa+YkOz z_j09QxwzXO?@E`IjKkJrt2M~_FIjLybI7Y$8$fuG5tsD6S8C6vQHkg z>{i&J{Y4=v@tLEdnk z2$R{)-{+qps7?T~wof6$s;Jp7@T$huO!e*N{UP4=4!=>Q^Ml`IbLHmp79qjgE%>?I zp!F{a1$U?FJO}zjk#iLM z^;kOXxU;&5bzi#6kxglS(gMc>v1<>WXLhfT9>OQfOG>WXRSfpz5T;juyb*$gpxEAD zdthFgr0=3_>{;v8RzbS0Cz31*7JVw1_NvT$bk5TYkh}$$P4P(mjDeH670jM?TE(;V zm>*rt8X^0qr>cgCkx zt?%H@=~$iO>ED8BW2E|d`oeoh!)h(V4UCFOugTzRE-#DB$+34OVdk32xG2H5>v~2b z$tl{~;!;w4_th#O)YR0zbgSU!L*`LI$N{V=dDk~=*?7FtZcaFRO~m8fREBx_#V>Pp zK%!vlxJ=K5n51pDja>LU>Lrur`3n594dsPh9-an>xxh}_Ru!dv>v1TmdNJE#FuD2WE!aRLxpFr&Z zE_M5C6Ez%GUXx_i_;Mux5?o$Xg|=y^>n<@VxN1AS2*lsCEAi~al>Y5)eera87dKzV zSXwg1wv?=O<&~FvXxp7Xd3k^0YU(uxan-CzD8SqKwbc4_oSYVN*xA_!iLImWTSE!6 zRM}SJL@B!_RqY-7UwQP?P^yBVskb)xv{U$l7w*rae;c)*P`SsV;T+*j2v!B7yl| z-~n6V=$Z4jQR)S{4Bwga8E9;|k3ZO-@<{aAP`MM-2BbjgqR>4+UuIs>v%1!Q8-jf0;I zINT(kjF!+_4$!wxfE4*?!cAT(|FW$=pu-=U5;&4_@lxUgt3ete8IJOm!>V_oo_!Y$ zx4f0BPU{dCuVv7*ym_nACCAOck$4qs%g6Mg%wXDr@{ImiSKqicrL49t>dEiUC3jpD-`T&)4IK_VO;5S^8jZ6_=IP0RBxe^a%&!PTe9SRV=TLCYi4|HKzET87oA7nQ(uDLaH0esNrAEt3%3yagHoN8IyNL>NDs1FeFtr z-6o@|3$*yr@H%pG71zelyAGDqj2xz{q-Fv^Dc3-p+N^moF)!oXJ}{c$@C4@eb5#b5co2$71$FUQ{5b(@2M^sBotFY*HFDdO_!sl$qQz4Mk3Ve8)b$T&|b(3ZMQPkFfG` z3`bWnZo?SIlRt1cLc1H4NpXntPR!JOUL6_@y83KqsAp$dceV@kcW2S{mxJos}nA^`MW|V->e;F;~<6WS$!a@4&nT z+n@>bICY8)E+aVyBriZ4yP;!^!eFm_#rN^3-*GV>F|r3m*StJsd5ty#6Omw&AD*@= zb_7SUO38}F4sJgC)PkO48JnZNvVvBUy{QZ*^0*<8bQI>j5B4Ire9sX4Ur8w+#wVJcne^>8OQ+TK(x| zr|&g>TUazcV1Dt5Y+%nC60VNLjxXP_9Ye#myMRV+JJ(FOGjK>81KR#X$E25vP3*JziNM13J9J)ARu# zMLtVP1CSJLE||E9OBxHqR6BLOIGLU!`fC>(ZQutoZ@KhL@t^S&&qKLjC9hdlnuK8l|Jgqz4LARXJzaIiMC(Qh|_ z5A#1YnM41PCpUYsrY7Hk=2iESWd{EU;8U6U$>Qea^BFFQflEl>Q+qzl_1}vk@FYrg zLiwlK22Uraj;YQzKc$mjaMi>5miYMi@h=u8CLJBLd`F8c4znSa&Yrqvc}1nvoikA3i?*44zJ%IH2Il6dmPcTZc&#!QLncDoz-~L!rHpY=mbbc_F=o- zoXGRp;B9QqJH^l3yRPUKE<%v*T7VT{Wf>CVl#SOZp}CsO04c`G1gm3aK#7DI0wkSW!=x9_EY5&Z03c< z2PRy}jVqd2ysK1`QS3Zg?-S3W-#z=+_n$C4@C=uWNZbaP0%?Dzi+MZE4Y|xG%#T3g zquXU+aEWGq!HlhgA5DA^|IG<5`1ytdzOPm~Rqt1ogNFLqPS>fue@kIu;@74y=!}KA zx%tuFfHaI((c7_yQ|)NNWn6Wq9lTA^7gYBcOvri+|5IY35qR)R2h#dM6(Am|OFapM zi+%abOKgGJS9SwFaGIvow@v0 z^w#AD(Q9e#stY(X8eLfFOmqLtWwA%}kkUtmrEzsOJJ@1}pmO88cRPZ7LQnq{C-9vV zq)(@M;hU@^Xuc;{N7zM1liVog0V=&#(%Z!|=p&L2o(x^h!c& zu6$<{G)GvP)!uBZy{PSR-`Q!BT7kd*yr%cvz(kwp!QI{pNqE6P$WDgUj53FR)oq~q z>Ydlj&W^XhT`>q7%L^@?__mFiVE>8_9} z{q5mheg@f!x0Xmw0HzR8$n#B`NIZXd2QHU2ee6l-Mw=;Jdpeak-h6{DWz2*#Tub0X ziMzwiRDo23B4-X`iUu?V%?rL(F=~7kJZgS%(OLFe&tvh6txQZWaO0i{m3HW{MlS%- z?{6vBqF?>WuXQv3dY~2ti2tQ|&B`AQRTfqDb+v=R!S<&;iNR3OOuvgW-{38TH1jZf zU%1ao@#xy)_$pPkm*XFv=&6E&@Hj))f1NGRFlCpjw8VlsK!ohHgnCu@!q;%F!bz%u zOF?rxD5p7lza;Hh0=mn}^pt&{lh*F*YUL@cuG4vKR^_RID#*F!il++uZg(ckydg7yp;VzL#Sc%D-$F*+&eoE zNdL;@3C05)Hn?Ri_&6_Gj0E*8*SuSQrTu53sBHc~(s=0LJX*5B^qiRo|9DWHHnQx} zDE_tk(?6;LHwZ5WJ&2~nOY`Lww%uLK>iv_fqEF7+!ic{VHYZ*PHL%v-JHmxLKQ@ALV}{T1GS+5%=Y_BGqFqA{?WO2tH0u>0YAl;M`IE z?&6bV*UTL`#AWc5T^Fu#^ftH0MD-y&Q8Q6YGaWz}v z%$L@gH9plwwC15Yt!k8tm@#$Dd%XoFF&Kk`2GB}U_r227=>R`d6#1C*hwB*{F1VS- z)|V^&Yjmx2uA}RtW%wJ?(%a*CnyXR$;x})q3;*R$zjmzm{=u~MUf3Ra&qMF=?h*{c zHvZdK<6LPcNZ-CEZM9&zfC(3tjo4y3pzUcSOfilQT@UHXQSh=~_*aZ1j??moc#j`w zOf@1ghtpNT&xj3`ZKQOopG;QfKmERS-Q3Z_IO`e*jyMbL1jus8hoXZ=29vcVoNh61 zSPHD7nmB%xeAw(pC5y`Pas8$P{> zN`*G{FE*%1(_h+bY->IZB8m@ByUJoSf)}Rdlj{0sSZh+iY&}E^bG9_I3aS14>SkF9 z@mRFQpBbaT?znmXtZEO#5Qu~6ygJW~_~H;Vr+$(=>4&@e>E8m#>CqN?R$)KuMdlH1 zQEvb3ADbt}d%3-ucgwueLc@NJ$m!1w9!#V? zfqKG8gt_6X@*b9LQ~%lZOY)eVX-lyP_0y|cqP!yeLB-AnMKv1EY`-W<*+3# zF3tqksyyxEw>9NQ;C|7tFxi(ZS_R8l`=!HgXJT(37K@%kZZ&|&(@7irL4Wf$5|!6W z{A3HF`GQJ9#>%bQOcy`shqBBS{r5%8YBNy3mNm8rJ|N3=ATwEMTReUzL zLXLN$Bl2$~O}@Xb`FS{7X@B~_#hnb9{YIsn7db6g#zrPnq6QS?WRs9heP3F_vqV6qc}>^{Z;hU};Ad@)@ol8gp#kZ(kP#q2HN1|wtjEZ+fsWBkykXQ2 zfpP4!a0oREw#$F8`E@{wH5iWzeWl7b=dv~R4MJvVbAvf5_}G%AbwIB%foT{U>U`IR zf<-UKR;>;rNz1^1_(Y(`CoROeF%t3tJM(>ZO|Q6Ip;)q9TqA#J018Md+F^;FEr(-W z{!?zn`v8q*HWEpe#$+jM8~d(e8b#L|097c%mo!KD-arJtsU$1?{&w!iBtUp$!|Smv zHm_4r7z`gZZjZ4ms({Vtgs2G{{_!)@m%Y6vwAT!amo*EWhQaKBdbeSM zFO^Zw#w*7t&oE(Pm17wBXo-A&mk`U&3>@L;Ic`73kylNdBb1$7k4S%UA22-D{15`u zP7zu$*d zhPxQ3hth%7VEvG-Ln3kd(t$1VL(vXU%g3FupE`J;X>VL`mrnjsN-K)v_ zT3SNL<*sMxyX}u)Ncwpk={71ULhjdFVF3XF!w<}%>O{J7SyXZL=d#H)s-%Vn1fx-q;Gb!QQdV|5S%%fKjC_gB^_K_Lpz_{rNRWVOT zSh2{2U!!0F3|37`F0jLRFw8^eB^}kh6}?}h+ic5b=^~9#bClSTy1BI}fd@bZmw)sv z7i1z1sr@N)f7IS?L7X!wUTOdbu-{;=KQWO`l?1Lqti0O$FoaR2T*2kaqON$0%3N;1 zV7FuBmC18m<=GqiCP}>!pGvd*O$ zx*h|E%m>UP|FL(nKolrNn}Y9;36d*F*!$e&)>Pf~FDcvwL>sn_<1gHjrr-k)`Qh>T zv5$a`lkFQ=F0fV{?hPuN%A7=o)6Sgpv%Dd9{^5`D0VzLOlzxOlYCud(%<^aR)R2rx zOGkYe$+Kdw4(cC);B|t!vP1!cB2fEv`L*NoL*!@9jLExHypNw!3`7tx9w<6zR-hZK zt$=p4=_Adt7-fp5EExKiAem&x6in1FEx@k?DsGKv@bUU)rQCB|*|pS@VJAf4h%YOm{U|tGrS*Vn$EwU6{M};E(v(aTAHT6OLpCll zdgD_U&J&?y>X9-)09dCQeqJfy(*biny+LA^p>M}X(bj>}vaDvX!x-lfatHN`VE0(2 zFxa`OR+osrb_E6kmQ32SKYr02)!fZYRK{oFEBo%;nP~LEb z`O(@_R79B7yN6m@h3qw-_@QC4C>9V--9<3B0Caq@nzfpvp%06cLxqON(<$e0T*5Ga zy>P7N?W*X8AWy!2GHe~zY2d&#{&QW(lt~Bmg7w4c+tKa5?a2Rl#%-(!GUU&KcO=LA z`yi;lpiC#WSBpChu!m@hOv1EM1r=kr=~A@W;>jbDpO(ZpbIt`(nZ!te)TzSgZ23GN zliT?EW0Gct^^~I$rZ=x=xkxfp{)>jYr zl}%x1F@S|}zX#CIv4HsnD=x?+ z=5WsfrhCABGexS%>pA+>Gv^E@y#i#&N>=ELM(|!dV{I71mgOhv{O2l8m279I4Fx!Y zqJ4-;cf@v{fNQRZaVo+S1x$@dNa-3>FK32c^{Wg-iFzAiHe4M=_6c0J%i?VmxfY zqwzDL=En`v5mHd7ByRz^*@i|U{2*NG)nf{ocFfxhD;-E#>^R0qDC4~cEo53=V*2WX zfJ!_4%RmobRT^I_kb=syW^CeyGbfAg(C_d&TFm#hyWgRme+5IjK)1qQ(et845 zLr7uSbnn-1tOm1}#yU>t@v!#=o(nT;I1)Xc#CQcfL&Zip=Zj|*q_Y7oe%{xYSBEGR z=If@~Ko`b?yBCNK6lxJ47K*qrPl>R^AGY6-W@tRDTzm0fTR(VlXtjw>>~e- zImn?*!ymyk@|1V!DugYwjer^j(iGC|Mi5pM-dDV@c34Yuf^xzw!tdf*1u7~jP~qp; z&_JpMpcfxxHaBj59Ky1;3qtG4Pg@c1XkHi@tKRDcON;FSe${s|5E1exPs7_TC<1Xv z+XJ3U5)uGh!peB|@T8=-m&&~ZM4~}4cjs711G@qK{ji_V<0%&X6HM4EZmzq_dpjE$fSL?qbhSszE+WKL-_$VsVnzqc=2X=B0aaok$;HEr;P=oNyT?rtgPK$X? zNJFr&_kY(f^kx4KG&(taK(tG>3%3tYRR{r%8%ePKt;)|8Rl#fV29m?^#`V9@82QcV zGdR7GV7j2miI}_x*;vB)3eww?k>>efpN<^!+r!62Sh$LTY8qt{1!ogs;2YlG1%;XViNkKdpZL{;v{%6Ty zg30m))CZ;kiQfexvi4@ys{x&75E#7eG?7{aJl8;AfXeesOks_^@c@*1v#5|mno^iw zW&o2&BZFe1I@eGJX)xenV0*(d4er0`qjY3jKA0=C1hM|#BVsgKG~D<1K&PCO6h$I! z8i+L<7O@ttAx?H9wf{Ak3z=;~R8Rth@v;K4-=1{D@Hc10(bt%Z+z8 zIDn7L?@RJ?H4q?B|E~x;Pzc@Gr3Tfh60#4_3iJDU>Q^pHXb zz} zsF;Wjp$545gKJ3j5`NmFi(U>F&feC37d&8{=LJFBpF&**Jzx;jW|SD2di51AF9pEh z^37Pz293~Sgx~eQB%g1H^908WM*^QTykYWScA#^bRt^r<{cfQEc#wg(b8{S0;wXne z+F-Sa-BDD2=Hz6%1dIe@+Z`)X4ug^8*DW*e?ds_NpO?GK((t4@|Hb1fM2^wVrd_pp z)p^B8rjjCD*u9EVcY5o)FZEh;UyZWCYybO_mnVjJp4^}cquRXpvvc?wP{ z0EtIT0%^DA79g6kMKl1w-#Q_xT$*HCArRI+UxvHusjJh_0A0%u z2?hn^ev0~z*`$Q1bYlAR8NYt0qw2|=dP?>L1O(c2Dt3p(i*YC)`Mfkl_ ze)}%(xFEH7cMYgbgoRw&3(7<}ltp+wy>bSQnuq2r>(g8>d6{}z;_D6W4s6>i{6036 z5dg<;@yeesvM~AOf_b!L42df&(X}0&LyvnYG%=ftB};B`)hpY^(6n^;8sOn4SK+N~ z@E13C*G6^C_yOu^58?n%HxT~r_}e&gbtua~B7DOc3gS@or8)=8)DRWMiCLi#$Zp4csuZri0Cj~hMy6j zQ@@@A9Ax^UVn3D{hF@p*iKc+iS>MBfUtGV!j`9?`D?b=UrEAujaWMrkIloQ`gSTVT zwXT>ZzdGCsb~^Qhp>0OJh!>^qiIn|Ju_qqAS7;$aYOfV60FS|uk4wasd{ z57gsHQ%8cwjP}N5y6WL><#RQ!F79Z~yTXvXxVEbe@&jzG~CjEC}0 z*r8r4)Z7`$oH^MZ(^Zy?hSOv-*`|GIl;`IlLQsiNf9j4)xO(jQLl~Ux#?avs|0#IK z1_rM>N(@mX{$XiDV4pxOGA55$x<@Vjx{>?vw!Eexd*b< zv*9anz8sQYw?im#`$C}du#P8mEO|a@<%ji(3M=NkCJEifo5tQ0Y?gtYqf}kTC1p)s zi?lN7eX2r~sg#Wj)TennUDr;Hvu`nf$6~-r;+)r-SBJqR;w*n7thgPSVMvp*Gmd#{ z7?OLIpP7du+Ylv}_+mJ@_I%uvd5l7dC9U@qNp!P*Q;k5Hi^F}a|jrr>`9iT-ZM~g8y$v}fN z5U%s`-H6_c_=isY_yI7OUb zOepB?8U_w%O?^a0;BoNM%lV1)%eTw?%FT!&eq1|cJID3^kc8&15g>%ht5}4-m=&esOT`togY07%m zyL&7>-gl0Bf7K+OW5Y=xo3WeHai) zmHecwh{5NnD}%ekY;fK~E-zohiwAfy2VzFq;R}1zW17MmjX?vSUx80;~Wr7x5LtLvvG@lHAE2|we-(G zMt`I78_BWrT!-@M*iCM2nY?k~J8dONZWR+Rs1tuY4CC^)m+GDCPa+jHhMhsa+cKVo z&p%pkbz9jA7p1pW-|%SZ&)Z)s4^e`TI44l_UJ7Z%GSBjT(fFIrov(F)YTdMjd zeSXG|*ywG$wFZ9@vD&E}fDq9?4dd8`{1n{!}m@GEe1&=5)fkcSlga^-m3 zhnQr!c9taj({_d~GkW&3x%0jE=X1zzMSp6X5!ylTXO(mBPGK-ev2DzSi874s@RmXR zTI_*>MC2rNPUtUvju>%!P4CQ5m8irD7gr>%MZu$6HoidEuVneRffUu&C%6NNGsvZ0 zxNoHXMDNE18xLTBWpbz1NO^8+aNvDUE@^25w}#pE!ki$}%ckn8``YLpU1kIDCcUmR1IIT?t~-MjDF@- zaCUIFGymWrtu81mmn=Fhu(k0HTh*z~4g$_7dF2k2PL z{!{-%eo_?FKO-8+^4;HK6jbBmFNCkW7|TDu(>cDK=^xDCDCIWjM_`N^uuUEZZakVvsGXMO`&~QnNC#;^fR? zptp(9@-I&A_p|8upIGqO$7{P8bUaHP2DurN7ol}g=z7bZOS%9mV&BbNfjj2cQ`-fvK#x>DiSEQA{J-Nw>55 zcS*A8i_F6$ji1L$NYmZ%y|yKOzhr|-Pb#h@2l~oltdWfA^WaE&zb4lb65~PuUZNXs z=Xl{R?ZlOi&2nkbR)M-dHy6AGb-L0&7PmB);P_**OKzTUN%c z>6}laviyr)e~*(eI~lfdZFx(`jopo79d6Pr6|bvH)8?aiG~DPt^|%b`cQ`FJ^lru8 z>u_OQt8Dyk%QI*wy-_XIUDJiIT>mdO(gBh`%B~^9cl;BJG_LZ3YDQ#RX?9|(6i~e3 zJ}W*2|J@5fRmRA_hI7YkiZ1J%UF0RLjclwrlHb@SIrM7W!>L1TuWa|3*Hqi;GX!tu zZsQz^Q~jv;z==nyw(>SYIfy}#BB= z!F--)Hld=nO~JC&kPac!Mx+1mUvcTBao2S13(+$;<`C-UMP=`ixQxkBD#<(&Z33k_ zmDGXbVt#hze?>^V10cAx`Z00zBK%Xd z#|k?MXlYqMI5y(cHAX=93n#yHeTmW9a{6@9Te2fABRXnDxWpmzL0MrMGfS+2;!BT6 zG?LFxLg1s?srhvQ6Kl#%XQ(-vwH|ROV#$J1yE}aT3fV*;MIHLn+7=9J?L|wWV;($F zwcJ^EXzy~0ZhYku5k@8c>P1?e9X(s-WE#|8REFyKMZ+6d@#cML0mGsJDS^vMkZJmc zH=nk9jj^GvfXZy1$5nkERiS>+M6iSU^X*ivb1*}=88#Pj>GyXWE`7N8=|81lNHC8V z)P?Tjd&u+gTc~Z&>zVWN>Sypz`o~x3IL1eQT=}5-36PyH`(C#XyK}xxKC>HYg2-3; z;2BWt88Nr{4^J+A_>o~{3{m-kk&w7bi77Gb4bP(EfY~P3ZLmWKx{5isp=0W{-KJVE zv#r&&g!IHCwkg*#CLcMn-(}Eg@(sV+-c1@X3Aox2;rQbHB=qQJ2VpX2lFnL7K2bTF zJfma&?`!=3v*1k$A*(KPvH$x?!~ehF|ECI4o6tT?nlz!kw9fAbBG0qMHU|H>^+(u( z5>)~wPqi5SXA$YY#m%JfC(lxXw_DN?kf&c)(rn~QiQ^9N!P(&LK@%O`?z5Bq$uPne zWGr~2qW*XY*7`d;Pd*lL@f9AHp9t7d*ti_JcMFQSLjJnq%7(=_?NOwR6QxT}!oo&X z+vBS+*+|&bl@BQoq)9GS)XzH4h2rhJ<~|DR zm#D25mzG`tLE?)%b7a-(5q=eZZS5F|W~|hiRmOtP?t0M0Tc{zwQ8^ToUw0}oV|^Tg zx(wNv$rxt`dgVo+#-F2j-ysUezD&8Z$sG3=Xi1lrePfNBrNO_p))($9X8UH`cDtOT z?3W*m$6<0*(ywd2_3q(%3iAHWqOoFUxQJd`06j5LXU zc(1|Dbb#OUgKR)m(SA2)&O6pKFq`W0Y%mAYandk`kD7y0*HL_)8Aq)5o@;H-*s)Bd zsBa>OL+dnTn2vd_P-g$d>0>r+=kLr5e&T<4foBbelwY+3BKdZ7^Y(ttPJLTNBR0?X zDKwG0cUDlR()8)7@9?jMg=k$VtIp2q^505p5AE%T$g9D=T&oF?q4@#nwkN=tR-VhM zVMA|+BeuW^)Gugq{qVh=d*BGxaGTEFvrEUZXbXf@@H}Z6jo&GWBP19QakXb`!C;A)v`2p~POIHw?Tx^pWHpE{6q>BD7Ybd)Y=Uy%AEY4Ib(I+` z&CTaol-d8fLbE#kp%lY<{h${#QV>RviZk?a*zd{(0jlB*J=y`>>^sqGHgarErQ0jXI*Z`n^n%N0>|UO9aBxIA3~5 zY0WmZC}hXSKymBxtQ?LS|%$Y0c+TI#;PI=DI0h{7Co zen=3w!MAmV5<|s7QLM#|WnY^t78*=DxV4jrNWGc-W{c`>Z%sSEbZ^$(Q7o0^$)ISa z3@J`Hm1i|r3wapZs<@Wz%bv!;U{v6@{wKDx^WIpwRad5*`wa<+LQ{kJ4?n=ns(0pE zL&ZmCD%y<)H@(_F?_G%g3})UNJuq->xp0tV^!~91Pb?SB%oFH-_{G?pbevuO!j@nl zFos5BQut3|)}Cq*xVoa5X&pP?(EAMhDK(4lj^~7UPTk(y-$%%~b6D8=P?HY?dtfRa z9`=#(FEx+gzv&fK6zg$3B314CBPNKAq+4uZeT3T`oycGBJKAOEAL-h3hJ8zZ6?ptt zT38Lt13nP6RJD1W`oG)rVb2RKv^SzJP4PYSo4j*xA}@dr31?>^O|WgFGV_YKee+6N z-E=9t_kSpF+(tPNHt2@XDO*DS6ovK0LSy|Jal{8Mot^ULT=$$0aiAi%s&sXx||v3%e2d;}Y#r z|I&)WD)3t7WJ5`<5|z8+B9{}C-`s^zPvNCC>+b^$JJZ|RY=5OUSPN@YJCblTtCxni4 z0g@bE z<6W<;x8BPivtVG_nRCAV`}WD&XDm9zA(4S) zhWyhK2yjOLwTw`K7)2bdy}whZlms1#VM3h+%6E&=->2 zT7%f$ADVgIAVx_`7#wUil#N3^yE;@+>FD|ah|FWp$WLMz1JD>cdf@Sz_0eS z60y^tPlq+peZ`8SO<9H>?a?)hgv0ISmjBeRP2;puKaOakoqGSoipG@Xk$tUB%+9ig zu(sA-p=JY(rX%IF1HbICDY8HF_x)^wIVOrqhd$!?KI77@1-7p-LRKV7!J*+nqu`1DOw@Hg^l35j^r(D`^#&B)_SO6)>v z^BetQi@83v6`oW$&3ir`??-pis8YxZ@B;-^QQH2=G{>7{deNIAY#241INS9j{;kUHB1epucYt*|&^v8|id~Yu9=+;IJY3l@4$r5ZH}4_5R98voe>4h^N>%a236X zkftkr9!0KZZsvSb;Tj9}&C-V%99l5_R8iBI7%gZeyCzU*gWnDhdu%RI6H=?Iac3%^ zWmAPi$1KJ_)O^Ls5ZTMwgyB)#(%PKmV$#t*o2Do3XFSO22^C1Ci)S7R+6&-0M9Unz zvYpUWgDt{S-q2d-$VzN8BBnI8L1$`#O670yYOrl)Z^|shb7DYzsCR#trGj|U61@1* z{T+YeF+p5C*~ZSv=BY(SIC2XXhNl!F#UjL(_(U%WRD88B#^e2J-PFyP8gnR`Kx4+K z6Xi9%XSTE*8_I1DT zX>o~acQfLJpYGfa^Y>^9nYE`Ol3pmIL!Y+ea})4E4kBVqxS0JIKQd3ofI5BgSg8{Y z?!s_N$5KMnJx!HwYJB?}o>Dq~y)1aBWh^tR zn~5IIe65ruVg1?8#StwU1)eN9tFhbQ+)rxBBjlDkv5X^38|;xHCok>F6fucGfN;(z z+0L&396#9_mv#f8J^%cq_JWcSd~P5<^=bw|>T{`t&#CnW)Crj9 zSULBk(_N>EU`IJg`=y)Q0xLYgFn-=YhX|%8AP$Lc^z;??{yB|MLZe z^D@0;ex{bBAxL+sys}w%rIZ13&KDA*80@7ff~Z7rPlk*SusS0kJeHfCZSb;(_qI=h zU5}@}B^!e`+Gs!232lI`%sW*##=Z4nEkQeZCf!>4xk-g9YIb4{qOr5G+CR^REM0?b z|CoDsr(eY2aKF_2X`M@#7W+w6R~oh34FKqrgXRrirwH~w7P;s-+kE!>WSz%Yxy9xx zh1f3D#WHIe=oZC`c0n-aQL13LNQ4!Oncp0z8$tqOH&AIkf+mHyBCatvAb^C3euO&R zR*&n=H2mQO@^`jNFoi5PdZw8<rzUO;$735NoEBVI5A!-vR9 zZ;?Y0uWlK!b^~sVQ@rMv(&}fyt;Ms|=~q5AH=6t#qYuJRsF{}FvW5BifBnSw#m{GM zy)HknrBAB59Qc0vBI$$0-Xvl%Ys(4iK(Z`0wRQ-gmVI87)tM=8_h6ZbZ=lcO7FHE_ z+s3z~$7MhC$jd|Jy@GFmvvnjdwZMD7ZEqplC1!8I4sSP*8Z{exbO<}n&;K%NFR1hA zaJ^r#3H%9Kw6j3NWl+~Ku$w_RVm=M#=I;Ii#75Sp0HDZdAajg;iT?K>x$}V%PWPM> zW@peh+Il)hMoYHwB5kysl2@Q(cZxTBfUIU$-=U@BhyMC(B+StJCXj~<{|LRUh73+E z@lhq%-MLT!a4;&o_=bqngX(%NJkRr&GXtB!siJjd;-9uLaX~S-Nbj(`+(uM%97en_ zk;IA;63jcj-0$Atf&6&#k3Dr5*f!C-xB@|ejf3KOkqbdcUTL%W(ro8v<>e2+NbMZC zEGcD{|K?3v>7ToHW%3w3QdF^vWMQnpl0?PW0SVZ?5ZF#&Olt@{?Q_*tDe!tb>!7dp zduL1iT@%LceO^o-Y2m|yqLB9 zH_~|^z7G1P5q6M=7ktH`t)1onFF1X8C({86qAlo)8VM^FzOP7 zMxAidT16uR1B35ua~e2I`N|f)eH#H4f9jd!b0y@~>F|;WljUxn-fcrgvh%%ba;RNd&>VLEx*d*uk;1i z>X-V_&IW%ofy#?3$L{=?gVroy`303VLVT#Xk1Vh?ixEN_NLvicj!()%N9>on)6zi2 z@%LA1X=#~XSm;yyMe!&)8@<1IKhz{oZA~ZiOj`HCybFDPnyzM7dE$RyZQ{Tv_O(CN zr=yO%S>5N*ZwwJEm zaVkZW_6XFAI$;5Re!6a~uZ7)c_^@%MWJTt)p?1#E@AtLy^f{>*YZN4Eqx&Ur9&(#arC&2RV9(I121LQO%95E+=AbA-EF*=QB^ zE6b41p7=4HT6N+j7+L~znLh7ff#fm=>cD4;{1rC=zpir^t)8@%eTO^<@I(Wd zao>1ft-H3e$WQ~(JWX!2q1uU~zhVF#EA){vF{vlT3hRSOp;hN}*@@mar!poOGy%3*jQ`M=#%7wf?sS$(|~GGnzA(lA^pGPQ6U+`9JPlD>|;kcB1A6 z=ov3Af#Oi1B62Z|V4SU#AK1ep9Q%8tZ+Wim?ir3tFh&mHH(>M;RP(j>CW>vOL&JZq2jLobY_o#YDSvGCT_^75kqlmMj9W;JY910;NZzT zy)YT&=HZcEP%uaw))G47DFZUTa$)o~<;%|v-;eG1f{S;vD1~^wpEf$zibfV2qd0`q zs2fwLn~m@nKAJ-kIdNX>3JOHj+qXUjjShpX+Hxw|*aM z?j{$))oh;@+RI~p-Qv%f$jZ=D#{Ig1%JTz!cx<>HKX$xQ-`NKZ|BQ^Hu!pP58@*zG z>Stei6h*5IYwid~L`3{Q^8|ViLrVY3aJZ&CFKFzS4ulgs7_QK^gWETjt}}% z&6Q|a4kZlD3413wD4yf6cT!n6Tx3bQf+3K<`^!i-eTl}TkvESm3I>{=a}h>$pctv9 z|16sx%2Q93G|swK=iEV%QtEjv6NfNI95&9d6hOnp3%8MWk($-Jai#K znsf~`&F6F$1S&4z{^-yWO)u@_Qsl>{ChlUT(wdwgNnLsJb5tow2-UXWy7M>9#mcGW zcs&R^|BVR!8M)VByvI@DB>;+`(s*fKRpVc%6ZxO|8$tUF{oBcfZYY1T=xsgSzV_1X zEf0u$my`JwzkCarZg`lVpa1BGYc38sjv~gz&v8QMDr{iUVr6ALq3jBS){4#Ra_y#L zWgR&>dO>(iQl<{Y&;7k*VQ<)UA9<=NK#VJ&GhG2Ki1SXc`+YO3*b(GJ*_C4l^zPsP zMOTRgf0F4YhDsbh$zV}s0DYgdtVE?_B4Of1^uq?lipR)Lqag9l!n1!$h=B^Jqg(?m z&ZP40v5@*>K@eX!PB3HI8zMD6?n1&Ep_dOaF zU>YzFm<0BMPA%an$&})BKYHgfSIm3EfQY7!_C zR8sN&0<`6EpR9HA0o9JUHq(@crwkQbRFsyM_UHW|@Sdsp>`EseEogVoGp=}ksr>hM zZ1B7NT9PcOuH?r(E_#J6taQo94Mbf+kvUV0Kw0es>3;b^09`8GtKI_>5PxjLk5n$x z=r1eh+9Y)0Ayx!|G4o#O?>GIM%cF4nSKc-)?g3qgVNiYFsMu}>fx!7R1G*=fnSG$> z$()zti~ygcK@p@Q4VuRC+6na<-~ zp91$>y^ypAa#pES#SBhNC+PsNotRNdTU{Z6vbsl`Wg zJ#Uf<|GHp`n&En0U{Wt7IZ6JQT3M2euTiKAfUX;Q!8blt*S5yN=1b<>-mk^s)Bz=! zDBa6J1$U~#i?4w7I znt!x@_nfE}B&{P4hsi(K#G-kckDs9T%^u_RR9rT8RqFm65DNnmn0g9W$1*oN@rSHB zBa*OgpE!gfU8Um0Nm3C#Dp;Mzs7y~f2$)dg>~g(+%Y-1;Z4DflQG zCTvmVHT%2esBp;2T(hrZ=OY`b(QgKtw(Ctk(`g6>^tP}yXqET4*!^GR)e#y{hu*C zHGh7nb-L&r5ve!ZuC2L$5$4|2^+`d=RUU`bpFDgX@(#c1`fXLEj?K1E zQ6r54YNs191T&H@^(NK*)E{LF>g{5Q%gPYRi6}#27A_hw&%M9B_U@TpvgfBxP4!Pv zsLvV?dc6I;)dE!l#RD_(3pP({?_#yivKjdp577C;V*CK&;A-qcIc5WceRzQN)4%y4 zOUsz~61hKrcDhChXkLd`-hCyhS_7bi>R&D^GIMqo-I=>929-EzS$dWn!1eF5md|O_3RdEkl6+WTnQI~q&>o$%9XXf*cxPLMC4FLan1~pbS*%mlmgMg zQs7iC`CDRosM3@y|{d|^1_A&O{}V0Tlf3`PEb?s@7!2Mui9=o#+&o6 z!S2O({b!5+7ky>?Z+om80lqfgZwb=Qlh>=^{(iAovgXcguhZQ*y>uy4*wjmRwi1KXZ;dnlC4Muwq*172dAxaYS~cKf z`)q3!PdEgQKjgj6t*Lm8AYZ47xd?~DRJ}&-Z+z`Xd5ze$Wef1}SzNnDdTyF0BO~Jq z>Z;@l1w8A)&ia`&sS2}QViqBV=I!u7%cxSK!XmC+0bNRW1-*qlXZXH||3lIMl-f*c z%@Esz;1YIk=f}dBmANDeMYP6~$tEY&d<~EO9KI!!-9W##x%45v)Hquu;-}kmgIBL& z)9e)s3+~<|PHAoJqW1PnN-gs|K|w*{VVdnOe-e@+ACMf|Yl|vDe-#_^Krt<%z zyotmUuBn>a_B}z+_TftaXqpX5_M2{~Xf^?fZ|!jB)0s{&RnI3IhjG97OhD{A(O)d^;17o#Q)uyF1b*M z=DwzCbI>On*j3wildy=dSx~_vl*bUktU!b1`@qo9bE`75zMZw{SBNFLb^)u+it^z) z*eGTh9iqP9lAvR@`|DP50^wJ0yAy`28D z+rVv_!IhkIw%VnuP|eRsl%p-?F!H3TC#m>y{4KFFR=tVr@Rcl^*W@tcO7b-RcX=xt z+1Je%8+h1XLciFhz&Md%@yURG^a^ys(~33x`5ac6#<~@}=Uvys*iOZ99E~a7UCS+V|2@9m4;xjZ= znlLRGEkNf168pZSGWU7Yk@Kennt7(&fKoNtzq7LEyqezH>mBFgdlC5g3K-*|zP?NA zVi-%=roxg$XA(nOS|$+SBn&;p znC$Dg70QAfM4?>1f`LhCA)IE>Nr+3${RYWIi*=?gn;9nx#Tmu~iN^p9Br*}4#NSv@ z`7;f2XG7!VSNCjgh~0sv3r3!#{(sC~#{Zp-JJgnlUF;poQErBTAGDsCZtWGon C>Q?6f diff --git a/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png deleted file mode 100644 index ff39ca37dd907e3aaf2b32d9e3ef25610dbc6c31..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7266 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 - - - - - - quadratic_probe_fn Interface - - - - -

-

quadratic_probe_fn Interface

- -

A probe sequence policy using square increments.

- -

Defined in: hash_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Size_Type 
-
-
-

Size type.

-
size_t
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-Size_Type
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-void
-  swap
-  (quadratic_probe_fn &other)
-
-
-

Swaps content.

-
- -

Protected Methods

- -

Offset Methods

- - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  operator()
-  (size_type i) const
-
-
-

Returns the i-th - offset from the hash value.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png deleted file mode 100644 index 61962704f71655cfc6b428286e0271c1833530cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5960 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 P@MCIdVesXOTipKuj+$H- diff --git a/libstdc++-v3/doc/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png deleted file mode 100644 index 2206cef5a9042023ee142ea2259ea96139f206a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5636 zc-qBSc{r5q+kPlyOB7>-iB`m5LiXiN%1(+bgD|p-ERAI%OGUN{Q`Sn7U1XgmONc4E z32E$PO-6Rl_dMSBcz^$V|9roHzWX@lxbN$_ulu^r^Sth7wg<+BI-G0*YybdoUcPj} z6aW~}0KkAhun+P~WnU@=fPH|mzL_=v4-5d{0DuSp6aWBW3xfeLH~>QgFcbg-!kah@ zfWrYeB7ma+I1r8{VgMozAQAy01t5a(Q3?j2-~b8{pilq`2xS653;^N)kO+Vj00iO0 zaB3(QbQp>T;X3fZVK77thJwL>a9PO0;V?KN21mi*Ko|wINyK4@L=2IFA%ZX{D3*f5 zP>2``1w#QLjL=aGh{J$H3`oI%APgDi0D*>3La;!X0bB`64dsFkgD@f3h6WLbqu_8L z%nvFHSwtd^NWl?7m@b3@+N2P16bg<4LhK<>P%I84;y?-x1Yt2?v7pnC91wpH)&`~o zC4)diC_z{%xG;fN&FFhB!DA3>t)c0^`8JiQ&{B+#)y{2iJiI2z3k+65Cz&-xp9z$@C1GtA0+`|FxRRZ^N zfqT*5-}e90aKZ-*K@+R@rR%-`z|I4|7`lf;w;?C$wzkFXD_*$U0roylfc6#RV>&mz zd~f?Y__%oAK6YM4PD)xf#Xp@70C)(OFKC(trY)q~48D4MFcSGW15g;g=i>GCW?KA8 z-p@2fUQNx*+{b3|YdsZn(QHo&xU`zyr~wl%@e06qwizblyI6qf|2jo7<4tblfkP-A zc2aNgm_n1hzH}#h7C-{n%IMwiS+WsImEAE?ZU;)`4~<^K+k2j+Yq8)Nj?~OLb?fFW zTir+ny<(mztgd~sBj+-kTMpfSAn^2=+W1=JPLt}b3gQjCOx56^YpWaor7lghRT_n! zB`>fpZdcZ@L19CZjpmPzuRZQe>V9nUd5zsN$mqT7;3b0&yp@NCT$&t*b&okZhTmN$ zZcw6z?Q}xJcF{&$7o`%+UASy9^rs}$t#Gu!e&ks)9@%_L@S<{V?4OMQLH<+bT9QW1 znpT$w7;b#GdX^)N@i1x_{NCuQ=aH!`z+C2{_F=!X=WDNkgUTcheA;~5hB6^`)=rFH zN%RXBeau}Gtxu;1Qw$Q8Hau(fvYwL4*Ly z;NGQ(@)hHBZ0u2$t=idhmJt@*;SsfV&t zX38AKKlx987M<76nwZBGnjnH+ z`Uo%=xfCNRNSGymfoU6)D+B#+Vn`-P&V9)8-u6szXJ^e>Sa)||dN4gjxL>mw+-aA|2d%H-5Z{jSAza*+g4)Bzrxo`F8YakF>V|bv5yMyc)jKzBQvx zZuW-PkwW`p+O!>X4A~8#JNjAl_g<;;sIVg;> zDZ~l6mg9JpP>A@Q%=a3?`eId!*4@x6oiHZ6T%%MNft}Gn-woeS zlJ;~FVIXxTW~I1&`~8hc1ATk{OpaBhCi=GHY>xIH#LOfDS{N8

Jm)G_qSZE><$& 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 Y!v$XECA8vc_%E%?+J+a3wCuwF2P;CotpET3 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/range_invalidation_guarantee.html b/libstdc++-v3/doc/html/ext/pb_ds/range_invalidation_guarantee.html deleted file mode 100644 index 7bfba19e8139..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/range_invalidation_guarantee.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - range_invalidation_guarantee Interface - - - - -

-

range_invalidation_guarantee Interface

- -

Signifies an invalidation guarantee that includes all those - of its base, and additionally, that any range-type iterator - (including the returns of begin() and end()) is in the correct - relative positions to other range-type iterators as long as its - corresponding entry has not be erased, regardless of - modifications to the container object.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-point_invalidation_guarantee
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/rb_tree_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/rb_tree_tag.html deleted file mode 100644 index 2adbd09bfb34..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/rb_tree_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - rb_tree_tag Interface - - - - -
-

rb_tree_tag Interface

- -

Red-black tree data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-tree_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/rc_binomial_heap_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/rc_binomial_heap_tag.html deleted file mode 100644 index 1a4ba9f2e0e8..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/rc_binomial_heap_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - rc_binomial_heap_tag Interface - - - - -
-

rc_binomial_heap_tag Interface

- -

Redundant-counter binomial-heap data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-priority_queue_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/references.html b/libstdc++-v3/doc/html/ext/pb_ds/references.html deleted file mode 100644 index 064e924648e7..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/references.html +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - References - - - - -
-

References

- -
    -
  1. [abrahams97exception] Dave Abrahams, - STL Exception Handling Contract, - http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf
  2. - -
  3. [alexandrescu01modern] Andrei - Alexandrescu, Modern C++ Design: Generic Programming and - Design Patterns Applied, Addison-Wesley Publishing - Company, 2001
  4. - -
  5. [andrew04mtf] - K. Andrew and D. Gleich, "MTF, Bit, and COMB: A Guide to - Deterministic and Randomized Algorithms for the List Update - Problem"
  6. - -
  7. [austern00noset] Matthew Austern, "Why - You shouldn't use set - and What You Should Use - Instead", C++ Report, April, 2000
  8. - -
  9. [austern01htprop] Matthew Austern, "A - Proposal to Add Hashtables to the Standard Library", - http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html
  10. - -
  11. [austern98segmented] Matthew Austern, - "Segmented iterators and hierarchical algorithms", Generic - Programming, April 1998, pp. 80-90
  12. - -
  13. [boost_timer], - "Boost timer library", http://www.boost.org by Beman - Dawes
  14. - -
  15. [boost_pool], - "Boost pool library", http://www.boost.org by Stephen - Cleary
  16. - -
  17. [boost_type_traits], "Boost - type_traits library", http://www.boost.org by John - Maddock, Steve Cleary, et. al.
  18. - -
  19. [brodal96priority] Gerth Stolting - Brodal, Worst-case - efficient priority queues
  20. - -
  21. [bulka99efficient] D. Bulka, and D. - Mayhew, "Efficient C++ Programming Techniques.", - Addison-Wesley Publishing Company, Addison-Wesley, 1997
  22. - -
  23. [clrs2001] T. H. - Cormen, C. E., Leiserson, R. L. Rivest, C. and Stein, - "Introduction to Algorithms, 2nd ed.", MIT Press, 2001
  24. - -
  25. [dinkumware_stl], "Dinkumware C++ Library - Reference", http://www.dinkumware.com/htm_cpl/index.html
  26. - -
  27. [dubhashi98neg] D. Dubashi, and D. Ranjan, - "Balls and bins: A study in negative dependence.", Random - Structures and Algorithms 13, 2 (1998), 99-124
  28. - -
  29. [fagin79extendible] R. Fagin, J. - Nievergelt, N. Pippenger, and H. R. Strong, "Extendible - hashing - a fast access method for dynamic files", ACM Trans. - Database Syst. 4, 3 (1979), 315-344
  30. - -
  31. [filliatre2000ptset], J. C. - Filliatre, "Ptset: Sets of integers implemented as Patricia - trees", http://www.lri.fr/~filliatr/ftp/ocaml/misc/ptset.ml
  32. - -
  33. [fredman86pairing], M. L. Fredman, R - Sedgewick, D. D. Sleator, R. E. Tarjan, The - pairing heap: a new form of self-adjusting heap
  34. - -
  35. [gamma95designpatterns] E. Gamma, - R. Helm, R. Johnson, and J. Vlissides, "Design Patterns - - Elements of Reusable Object-Oriented Software", - Addison-Wesley Publishing Company, Addison-Wesley, 1995
  36. - -
  37. [garg86order] - A. K. Garg and C. C. Gotlieb, "Order-preserving key - transformations", Trans. Database Syst. 11, 2 (1986), - 213-234
  38. - -
  39. [hyslop02making] J. Hyslop, and H. - Sutter, "Making a real hash of things", C++ Report, May - 2002
  40. - -
  41. [jossutis01stl] N. M. Jossutis, "The C++ - Standard Library - A Tutorial and Reference", Addison-Wesley - Publishing Company, Addison-Wesley, 2001
  42. - -
  43. [kt99fat_heas] Haim Kaplan and Robert E. - Tarjan, New - Heap Data Structures
  44. - -
  45. [kleft00sets] - Klaus Kleft and Angelika Langer, "Are Set Iterators Mutable - or Immutable?", C/C++ Users Jornal, October 2000
  46. - -
  47. [knuth98sorting] D. E. Knuth, "The Art of - Computer Programming - Sorting and Searching", Addison-Wesley - Publishing Company, Addison-Wesley, 1998
  48. - -
  49. [liskov98data] B. Liskov, "Data abstraction - and hierarchy", SIGPLAN Notices 23, 5 (May 1998)
  50. - -
  51. [litwin80lh] W. - Litwin, "Linear hashing: A new tool for file and table - addressing", Proceedings of International Conference on Very - Large Data Bases (June 1980), pp. 212-223
  52. - -
  53. [maverik_lowerbounds] Maverik Woo, - - Deamortization - Part 2: Binomial Heaps
  54. - -
  55. [metrowerks_stl], "Metrowerks CodeWarrior - Pro 7 MSL C++ Reference Manual",
  56. - -
  57. [meyers96more] S. Meyers, "More Effective - C++: 35 New Ways to Improve Your Programs and Designs - 2nd - ed.", Addison-Wesley Publishing Company, Addison-Wesley, - 1996
  58. - -
  59. [meyers00nonmember] S. Meyers, "How - Non-Member Functions Improve Encapsulation", C/C++ Users - Journal, 2000
  60. - -
  61. [meyers01stl] - S. Meyers, "Effective STL: 50 Specific Ways to Improve Your - Use of the Standard Template Library", Addison-Wesley - Publishing Company, Addison-Wesley, 2001
  62. - -
  63. [meyers02both] S. Meyers, "Class Template, - Member Template - or Both?", C/C++ Users Journal, 2003
  64. - -
  65. [motwani95random] R. Motwani, and P. - Raghavan, "Randomized Algorithms", Cambridge University - Press
  66. - -
  67. [mscom] COM: Component Model Object - Technologies
  68. - -
  69. [musser95rationale], David R. Musser, - "Rationale for Adding Hash Tables to the C++ Standard - Template Library"
  70. - -
  71. [musser96stltutorial] D. R. Musser - and A. Saini, "STL Tutorial and Reference Guide", - Addison-Wesley Publishing Company, Addison-Wesley, 1996
  72. - -
  73. [nelson96stlpql] Mark Nelson, Priority - Queues and the STL, Dr. Dobbs Journal, January, 1996
  74. - -
  75. [okasaki98mereable] C. Okasaki and A. - Gill, "Fast mergeable integer maps", In Workshop on ML, pages - 77--86, September 1998. 95
  76. - -
  77. [sgi_stl] SGI, - "Standard Template Library Programmer's Guide", http://www.sgi.com/tech/stl
  78. - -
  79. [select_man] - select - man page.
  80. - -
  81. [sleator84amortized] D. D. Sleator - and R. E. Tarjan, "Amortized Efficiency of List Update - Problems", ACM Symposium on Theory of Computing, 1984
  82. - -
  83. [sleator85self] D. D. Sleator and R. E. - Tarjan, "Self-Adjusting Binary Search Trees", ACM Symposium - on Theory of Computing, 1985
  84. - -
  85. [stepanov94standard] A. A. Stepanov - and M. Lee", "The Standard Template Library"
  86. - -
  87. [stroustrup97cpp] Bjarne Stroustrup, - The C++ Programming Langugage -3rd ed., Addison-Wesley - Publishing Company,Reading, MA, USA, 1997
  88. - -
  89. [vandevoorde2002cpptemplates] - D. Vandevoorde, and N. M. Josuttis, "C++ Templates: The - Complete Guide", Addison-Wesley Publishing Company, - Addison-Wesley, 2002
  90. - -
  91. [wickland96thirty] C. A. Wickland, - "Thirty Years Among the Dead", National Psychological - Institute, Los Angeles, 1996,http://myweb.wvnet.edu/gsa00121/books/amongdead30.zip
  92. -
-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/resize_error.html b/libstdc++-v3/doc/html/ext/pb_ds/resize_error.html deleted file mode 100644 index 6aab88c15a7b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/resize_error.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - -resize_error Interface - - - - -
-

resize_error Interface

- -

A container cannot be resized.

- -

Exception thrown when a size policy cannot supply an - adequate size for an external resize.

- -

Defined in: exception.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-   resize_error
-   
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_probe_fn.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_probe_fn.html deleted file mode 100644 index 51dccce5ca97..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_probe_fn.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - sample_probe_fn Interface - - - - -
-

sample_probe_fn Interface

- -

A sample probe policy.

- -

This class serves to show the interface a probe functor - needs to support.

- -

Defined in: sample_probe_fn.hpp

- -

Public Types and - Constants

- -

General definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t, e.g.
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, destructor, and - related.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  sample_probe_fn
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
-
-  sample_probe_fn
-  (const sample_probe_fn &other)
-
-
-

Copy constructor.

- -

Must be copy constructable.

-
-
-inline void
-  swap
-  (sample_probe_fn &other)
-
-
-

Swaps content.

- -

Must be swappable (if there is such a word).

-
- -

Protected Methods

- -

Offset methods.

- - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  operator()
-  (const_key_reference r_key,
-    size_type i) const
-
-
-

Returns the i-th - offset from the hash value of some key r_key.

- -

size_type is the size type on which the - functor operates.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_range_hashing.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_range_hashing.html deleted file mode 100644 index 85051873c641..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_range_hashing.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - sample_range_hashing Interface - - - - -
-

sample_range_hashing Interface

- -

A sample range-hashing functor.

- -

This class serves to show the interface a range-hashing - functor needs to support.

- -

Defined in: sample_range_hashing.hpp

- -

Public Types and - Constants

- -

General definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t, e.g.
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, destructor, and - related.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  sample_range_hashing
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
-
-  sample_range_hashing
-  (const sample_range_hashing &other)
-
-
-

Copy constructor.

- -

Must be copy constructable.

-
-
-inline void
-  swap
-  (sample_range_hashing &other)
-
-
-

Swaps content.

- -

Must be swappable (if there is such a word).

-
- -

Protected Methods

- -

Notification methods.

- - - - - - - - - - - - - -
MethodDescription
-
-void 
-  notify_resized
-  (size_type size)
-
-
-

Notifies the policy object that the container's size - has changed to size.

-
- -

Operators.

- - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  operator()
-  (size_type hash) const
-
-
-

Transforms the hash value hash into a ranged-hash value.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_ranged_hash_fn.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_ranged_hash_fn.html deleted file mode 100644 index 834f49650436..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_ranged_hash_fn.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - sample_ranged_hash_fn Interface - - - - -
-

sample_ranged_hash_fn Interface

- -

A sample ranged-hash functor.

- -

This class serves to show the interface a ranged-hash - functor needs to support.

- -

Defined in: sample_ranged_hash_fn.hpp

- -

Public Types and - Constants

- -

General definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t, e.g.
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, destructor, and - related.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  sample_ranged_hash_fn
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
-
-  sample_ranged_hash_fn
-  (const sample_ranged_hash_fn &other)
-
-
-

Copy constructor.

- -

Must be copy constructable.

-
-
-inline void
-  swap
-  (sample_ranged_hash_fn &other)
-
-
-

Swaps content.

- -

Must be swappable (if there is such a word).

-
- -

Protected Methods

- -

Notification methods.

- - - - - - - - - - - - - -
MethodDescription
-
-void 
-  notify_resized
-  (size_type size)
-
-
-

Notifies the policy object that the container's size - has changed to size.

-
- -

Operators.

- - - - - - - - - - - - - -
MethodDescription
-
-inline size_type 
-  operator()
-  (const_key_reference r_key) const
-
-
-

Transforms r_key into - a position within the table.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_ranged_probe_fn.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_ranged_probe_fn.html deleted file mode 100644 index ee1bc066423e..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_ranged_probe_fn.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - sample_ranged_probe_fn Interface - - - - -
-

sample_ranged_probe_fn Interface

- -

A sample ranged-probe functor.

- -

This class serves to show the interface a ranged-probe - functor needs to support.

- -

Defined in: sample_ranged_probe_fn.hpp

- -

Public Types and - Constants

- -

General definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t, e.g.
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, destructor, and - related.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  sample_ranged_probe_fn
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
-
-  sample_ranged_probe_fn
-  (const sample_ranged_probe_fn &other)
-
-
-

Copy constructor.

- -

Must be copy constructable.

-
-
-inline void
-  swap
-  (sample_ranged_probe_fn &other)
-
-
-

Swaps content.

- -

Must be swappable (if there is such a word).

-
- -

Protected Methods

- -

Notification methods.

- - - - - - - - - - - - - -
MethodDescription
-
-void 
-  notify_resized
-  (size_type size)
-
-
-

Notifies the policy object that the container's size - has changed to size.

-
- -

Operators.

- - - - - - - - - - - - - -
MethodDescription
-
-inline size_type 
-  operator()
-  (const_key_reference r_key,
-    size_t hash,
-    size_type i) const
-
-
-

Transforms the const key reference - r_key into the i-th position within the table. This - method is called for - each collision within the probe sequence.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_resize_policy.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_resize_policy.html deleted file mode 100644 index 61ff09ba05e9..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_resize_policy.html +++ /dev/null @@ -1,413 +0,0 @@ - - - - - - - sample_resize_policy Interface - - - - -
-

sample_resize_policy Interface

- -

A sample resize policy.

- -

This class serves to show the interface a resize policy - needs to support.

- -

Defined in: sample_resize_policy.hpp

- -

Public Types and - Constants

- -

General definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t, e.g.
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, destructor, and - related.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  sample_resize_policy
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
-
-  sample_range_hashing
-  (const sample_resize_policy &other)
-
-
-

Copy constructor.

- -

Must be copy constructable.

-
-
-inline void
-  swap
-  (sample_resize_policy &other)
-
-
-

Swaps content.

- -

Must be swappable (if there is such a word).

-
- -

Protected Methods

- -

Insert search - notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_insert_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_insert_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_insert_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Find search - notifications.

- -

Notifications called during a find operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_find_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_find_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_find_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Erase search - notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_erase_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_erase_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_erase_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Content change - notifications.

- -

Notifications called when the content of the table changes - in a way that can affect the resize policy.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_inserted
-  (size_type num_e)
-
-
-

Notifies an element was inserted.

-
-
-inline void
-  notify_erased
-  (size_type num_e)
-
-
-

Notifies an element was erased.

-
-
-void 
-  notify_cleared
-  ()
-
-
-

Notifies the table was cleared.

-
- -

Size change - notifications.

- -

Notifications called when the table changes size.

- - - - - - - - - - - - - -
MethodDescription
-
-void
-  notify_resized
-  (size_type new_size)
-
-
-

Notifies the table was resized to new_size.

-
- -

Queries.

- -

Called to query whether/how to resize.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline bool
-  is_resize_needed
-  () const
-
-
-

Queries whether a resize is needed.

-
-
-size_type
-  get_new_size
-  (size_type size, 
-    size_type num_used_e) const
-
-
-

Queries what the new size should be.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_resize_trigger.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_resize_trigger.html deleted file mode 100644 index 5c8173c8ebe1..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_resize_trigger.html +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - - sample_resize_trigger Interface - - - - -
-

sample_resize_trigger Interface

- -

A sample resize trigger policy.

- -

This class serves to show the interface a trigger policy - needs to support.

- -

Defined in: - sample_resize_trigger.hpp

- -

Public Types and - Constants

- -

General definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t, e.g.
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, destructor, and - related.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  sample_resize_trigger
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
-
-  sample_range_hashing
-  (const sample_resize_trigger &other)
-
-
-

Copy constructor.

- -

Must be copy constructable.

-
-
-inline void
-  swap
-  (sample_resize_trigger &other)
-
-
-

Swaps content.

- -

Must be swappable (if there is such a word).

-
- -

Protected Methods

- -

Insert search - notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_insert_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_insert_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_insert_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Find search - notifications.

- -

Notifications called during a find operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_find_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_find_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_find_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Erase search - notifications.

- -

Notifications called during an insert operation.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_erase_search_start
-  ()
-
-
-

Notifies a search started.

-
-
-inline void
-  notify_erase_search_collision
-  ()
-
-
-

Notifies a search encountered a collision.

-
-
-inline void
-  notify_erase_search_end
-  ()
-
-
-

Notifies a search ended.

-
- -

Content change - notifications.

- -

Notifications called when the content of the table changes - in a way that can affect the resize policy.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  notify_inserted
-  (size_type num_entries)
-
-
-

Notifies an element was inserted. the total number of - entries in the table is num_entries.

-
-
-inline void
-  notify_erased
-  (size_type num_entries)
-
-
-

Notifies an element was erased.

-
-
-void 
-  notify_cleared
-  ()
-
-
-

Notifies the table was cleared.

-
- -

Size change - notifications.

- -

Notifications called when the table changes size.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-void
-  notify_resized
-  (size_type new_size)
-
-
-

Notifies the table was resized as a result of this - object's signifying that a resize is needed.

-
-
-void
-  notify_externally_resized
-  (size_type new_size)
-
-
-

Notifies the table was resized externally.

-
- -

Queries.

- -

Called to query whether/how to resize.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline bool 
-  is_resize_needed
-  () const
-
-
-

Queries whether a resize is needed.

-
-
-inline bool
-  is_grow_needed
-  (size_type size, 
-    size_type num_entries) const
-
-
-

Queries whether a grow is needed.

- -

This method is called only if this object indicated - resize is needed. The actual size of the table is size, and the number of entries in - it is num_entries.

-
- -

Private Methods

- -

Overrides.

- - - - - - - - - - - - - -
MethodDescription
-
-virtual void
-  do_resize
-  (size_type new_size)
-
-
-

Resizes to new_size.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_size_policy.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_size_policy.html deleted file mode 100644 index ebb14d30b5df..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_size_policy.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - sample_size_policy Interface - - - - -
-

sample_size_policy Interface

- -

A sample size policy.

- -

This class serves to show the interface a size policy needs - to support.

- -

Defined in: sample_size_policy.hpp

- -

Public Types and - Constants

- -

General definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t, e.g.
-
-
-

Size type.

-
- -

Public Methods

- -

Constructors, destructor, and - related.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  sample_size_policy
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
-
-  sample_range_hashing
-  (const sample_size_policy &other)
-
-
-

Copy constructor.

- -

Must be copy constructable.

-
-
-inline void
-  swap
-  (sample_size_policy &other)
-
-
-

Swaps content.

- -

Must be swappable (if there is such a word).

-
- -

Protected Methods

- -

Size methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  get_nearest_larger_size
-  (size_type size) const
-
-
-

Given a size size, - returns a size that is larger.

-
-
-inline size_type
-  get_nearest_smaller_size
-  (size_type size) const
-
-
-

Given a size size, - returns a size that is smaller.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_tree_node_update.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_tree_node_update.html deleted file mode 100644 index aefd67056740..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_tree_node_update.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - sample_tree_node_update Interface - - - - -
-

sample_tree_node_update Interface

- -

A sample node updater.

- -

This class serves to show the interface a node update - functor needs to support.

- -

Defined in: - sample_tree_node_update.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-
-class Node_Iterator
-
-
-

Node iterator type.

-
-
-
-class Cmp_Fn
-
-
-

Comparison functor.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
- -

Public Types and - Constants

- -

Metadata definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-size_t
-
-
-

Metadata type.

- -

This can be any type; size_t is merely an example.

-
- -

Protected Methods

- -

Conclassors, declassor, and - related.

- - - - - - - - - - - - - -
MethodDescription
-
-  sample_tree_node_update
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
- -

Operators.

- - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  operator()
-  (node_iterator node_it,
-    const_node_iterator end_nd_it) const
-
-
-

Updates the rank of a node through a node_iterator node_it; end_nd_it is the end node - iterator.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_trie_access_traits.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_trie_access_traits.html deleted file mode 100644 index a46c91b1d158..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_trie_access_traits.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - - sample_trie_e_access_traits Interface - - - - -
-

sample_trie_e_access_traits Interface

- -

A sample trie element-access traits.

- -

This class serves to show the interface an element- access - traits class needs to support.

- -

Defined in: - sample_trie_e_access_traits.hpp

- -

Public Types and - Constants

- -

General definitions.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-size_t, e.g.
-
-
-

Size type.

-
-
-key_type
-
-
-
-std::string, e.g.
-
-
-

Key type.

-
-
-const_key_reference
-
-
-
-const string &, e.g.
-
-
-

Const key reference type.

-
- -

Element definitions.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_iterator
-
-
-
-string::const_iterator, e.g.
-
-
-

Element const iterator type.

-
-
-e_type
-
-
-
-char, e.g.
-
-
-

Element type.

-
-
-max_size
-
-
-
-4, e.g.
-
-
-

Number of distinct elements.

-
- -

Public Methods

- -

Access methods.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline static const_iterator
-  begin
-  (const_key_reference r_key)
-
-
-

Returns a const_iterator to - the first element of r_key.

-
-
-inline static const_iterator
-  end
-  (const_key_reference r_key)
-
-
-

Returns a const_iterator to - the after-last element of r_key.

-
-
-inline static size_type
-  e_pos
-  (e_type e)
-
-
-

Maps an element to a - position.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_trie_node_update.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_trie_node_update.html deleted file mode 100644 index 61b6b407f612..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_trie_node_update.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - sample_trie_node_update Interface - - - - -
-

sample_trie_node_update Interface

- -

A sample node updater.

- -

This class serves to show the interface a node update - functor needs to support.

- -

Defined in: - sample_trie_node_update.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-
-class Node_Iterator
-
-
-

Node iterator type.

-
-
-
-class E_Access_Traits
-
-
-

Comparison functor.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
- -

Public Types and - Constants

- -

Metadata definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-size_t
-
-
-

Metadata type.

- -

This can be any type; size_t is merely an example.

-
- -

Protected Methods

- -

Conclassors, declassor, and - related.

- - - - - - - - - - - - - -
MethodDescription
-
-  sample_trie_node_update
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
- -

Operators.

- - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  operator()
-  (node_iterator node_it,
-    const_node_iterator end_nd_it) const
-
-
-

Updates the rank of a node through a node_iterator node_it; end_nd_it is the end node - iterator.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/sample_update_policy.html b/libstdc++-v3/doc/html/ext/pb_ds/sample_update_policy.html deleted file mode 100644 index 8a286c74c71c..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/sample_update_policy.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - sample_update_policy Interface - - - - -
-

sample_update_policy Interface

- -

A sample list-update policy.

- -

This class serves to show the interface a list update - functor needs to support.

- -

Defined in: sample_update_policy.hpp

- -

Public Methods

- -

Constructors, destructor, and - related.

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  sample_update_policy
-  ()
-
-
-

Default constructor.

- -

Must be default constructable.

-
-
-  sample_update_policy
-  (const sample_update_policy &other)
-
-
-

Copy constructor.

- -

Must be copy constructable.

-
-
-inline void
-  swap
-  (sample_update_policy &other)
-
-
-

Swaps content.

- -

Must be swappable (if there is such a word).

-
- -

Protected Types and - Constants

- -

Metadata definitions.

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-Some metadata type.
-
-
-

Metadata on which this functor operates.

- -

The class must declare the metadata - type on which it operates; the list-update based - containers will append to each node an object of this - type.

-
- -

Protected Methods

- -

Metadata operations.

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-metadata_type
-  operator()
-  () const
-
-
-

Creates a metadata object.

- -

A list-update based container object will call this - method to create a metadata type when a node is - created.

-
-
-bool 
-  operator()
-  (metadata_reference r_data) const
-
-
-

Decides whether a metadata object should be moved to - the front of the list. A list-update based containers - object will call this method to decide whether to move a - node to the front of the list. The method should return - true if the node should be moved to the - front of the list.

- -

metadata_reference is a reference to a - metadata_type.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/splay_tree_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/splay_tree_tag.html deleted file mode 100644 index 3e6a64b1cae7..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/splay_tree_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - splay_tree_tag Interface - - - - -
-

splay_tree_tag Interface

- -

Splay tree data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-tree_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tests.html b/libstdc++-v3/doc/html/ext/pb_ds/tests.html deleted file mode 100644 index ab5d54bb4ffb..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tests.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - Tests - - - - -
-

Tests

- -

Associative-Container Tests - describes tests for associative containers; Priority-Queue Tests describes tests for - priority queues.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_hash_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_hash_gcc.png deleted file mode 100644 index 59247ec6ad9bdb3907fc7cd8e3404f3b902abd75..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 7013 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 JYc6{v{0BPGP$mEX diff --git a/libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_hash_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_hash_msvc.png deleted file mode 100644 index 227164568f585321cb75d18bdbade49e25b4ebab..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6932 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_tree_like_local.png b/libstdc++-v3/doc/html/ext/pb_ds/text_find_timing_test_tree_like_local.png deleted file mode 100644 index 8ec5cfbce7a833e2d3ea738697636e084c2bb9d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 34994 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®V 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 - - - - - - thin_heap_tag Interface - - - - - - - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree.html b/libstdc++-v3/doc/html/ext/pb_ds/tree.html deleted file mode 100644 index 3202a6e9f95e..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree.html +++ /dev/null @@ -1,516 +0,0 @@ - - - - - - - tree Interface - - - - -
-

tree Interface

- -

A concrete basic tree-based associative container.

- -

Defined in: assoc_container.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Key
-
-
-

Key type.

-
-
-
-typename Mapped
-
-
-

Mapped type.

-
-
-
-class Cmp_Fn 
-
-
-

Comparison functor.

-
-
-std::less<Key>
-
-
-
-class Tag 
-
-
-

Mapped-structure tag.

-
rb_tree_tag
-
-template< 
-  typename Const_Node_Iterator, 
-  typename Node_Iterator, 
-  class Cmp_Fn_, 
-  typename Allocator_>
-class Node_Update 
-
-
-

Node updater type.

- -

Design::Tree-Based - Containers::Node Invariants explains this - concept.

-
null_tree_node_update
-
-class Allocator 
-
-
-

Allocator type.

-
-
-std::allocator<char>
-
-
- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-basic_tree
-
-
-

public

-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-cmp_fn
-
-
-
-Cmp_Fn
-
-
-

Comparison functor type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_node_iterator
-
-
-
-const_node_iterator
-
-
-

Const node iterator.

-
-
-node_iterator
-
-
-
-node_iterator
-
-
-

Node iterator.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  tree
-  ()
-
-
-

Default constructor.

-
-
-  tree
-  (const cmp_fn &r_cmp_fn)
-
-
-

Constructor taking some policy objects. r_cmp_fn will be copied by the - Cmp_Fn object of the - container object.

-
-
-template<
-    class It>
-  tree
-  (It first_it, 
-    It last_it)
-
-
-

Constructor taking iterators to a range of - value_types. The value_types between first_it and last_it will be inserted into the - container object.

-
-
-template<
-    class It>
-  tree
-  (It first_it, 
-    It last_it,
-    const cmp_fn &r_cmp_fn)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects The value_types between - first_it and - last_it will be inserted - into the container object. r_cmp_fn will be copied by the - cmp_fn object of the - container object.

-
-
-  tree
-  (const tree &other)
-
-
-

Copy constructor.

-
-
-virtual 
-  ~tree
-  ()
-
-
-

Destructor.

-
-
-tree &
-  operator=
-  (const tree &other)
-
-
-

Assignment operator.

-
-
-void
-  swap
-  (tree &other)
-
-
-

Swaps content.

-
- -

Policy Access Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-cmp_fn &
-  get_cmp_fn
-  ()
-
-
-

Access to the cmp_fn object.

-
-
-const cmp_fn &
-  get_cmp_fn
-  () const
-
-
-

Const access to the cmp_fn object.

-
- -

Node-Iteration Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-node_iterator
-  node_begin
-  ()
-
-
-

Returns a node_iterator - corresponding to the node at the root of the tree.

-
-
-const_node_iterator
-  node_begin
-  () const
-
-
-

Returns a const_node_iterator - corresponding to the node at the root of the tree.

-
-
-node_iterator
-  node_end
-  ()
-
-
-

Returns a node_iterator - corresponding to a node just after a leaf of the - tree.

-
-
-const_node_iterator
-  node_end
-  () const
-
-
-

Returns a const_node_iterator - corresponding to a node just after a leaf of the - tree.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_based_containers.html b/libstdc++-v3/doc/html/ext/pb_ds/tree_based_containers.html deleted file mode 100644 index 63c7c748232b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree_based_containers.html +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - Tree-Based Containers - - - - -
-

Tree Design

- -

Overview

- -

The tree-based container has the following declaration:

-
-template<
-    typename Key,
-    typename Mapped,
-    typename Cmp_Fn = std::less<Key>,
-    typename Tag = rb_tree_tag,
-    template<
-        typename Const_Node_Iterator,
-        typename Node_Iterator,
-        typename Cmp_Fn_,
-        typename Allocator_>
-    class Node_Update = null_tree_node_update,
-    typename Allocator = std::allocator<char> >
-class tree;
-
- -

The parameters have the following meaning:

- -
    -
  1. Key is the key type.
  2. - -
  3. Mapped is the mapped-policy.
  4. - -
  5. Cmp_Fn is a key comparison functor
  6. - -
  7. Tag specifies which underlying data structure - to use.
  8. - -
  9. Node_Update is a policy for updating node - invariants. This is described in Node - Invariants.
  10. - -
  11. Allocator is an allocator - type.
  12. -
- -

The Tag parameter specifies which underlying - data structure to use. Instantiating it by rb_tree_tag, splay_tree_tag, or - ov_tree_tag, - specifies an underlying red-black tree, splay tree, or - ordered-vector tree, respectively; any other tag is illegal. - Note that containers based on the former two contain more types - and methods than the latter (e.g., - reverse_iterator and rbegin), and different - exception and invalidation guarantees.

- -

Node - Invariants

- -

Consider the two trees in Figures Some node invariants A and B. The first - is a tree of floats; the second is a tree of pairs, each - signifying a geometric line interval. Each element in a tree is refered to as a node of the tree. Of course, each of - these trees can support the usual queries: the first can easily - search for 0.4; the second can easily search for - std::make_pair(10, 41).

- -

Each of these trees can efficiently support other queries. - The first can efficiently determine that the 2rd key in the - tree is 0.3; the second can efficiently determine - whether any of its intervals overlaps - std::make_pair(29,42) (useful in geometric - applications or distributed file systems with leases, for - example). (See tree_order_statistics.cc - and tree_intervals.cc - for examples.) It should be noted that an std::set can - only solve these types of problems with linear complexity.

- -

In order to do so, each tree stores some metadata in - each node, and maintains node invariants clrs2001]. The first stores in - each node the size of the sub-tree rooted at the node; the - second stores at each node the maximal endpoint of the - intervals at the sub-tree rooted at the node.

- -
-
- -
Some node invariants.
- -

Supporting such trees is difficult for a number of - reasons:

- -
    -
  1. There must be a way to specify what a node's metadata - should be (if any).
  2. - -
  3. Various operations can invalidate node invariants. - E.g., Figure Invalidation of node - invariants shows how a right rotation, performed on A, - results in B, with nodes x and y having - corrupted invariants (the grayed nodes in C); Figure Invalidation of node - invariants shows how an insert, performed on D, results - in E, with nodes x and y having corrupted - invariants (the grayed nodes in F). It is not feasible to - know outside the tree the effect of an operation on the nodes - of the tree.
  4. - -
  5. The search paths of standard associative containers are - defined by comparisons between keys, and not through - metadata.
  6. - -
  7. It is not feasible to know in advance which methods trees - can support. Besides the usual find method, the - first tree can support a find_by_order method, while - the second can support an overlaps method.
  8. -
- -
no image
- -
Invalidation of node invariants.
- -

These problems are solved by a combination of two means: - node iterators, and template-template node updater - parameters.

- -

Node Iterators

- -

Each tree-based container defines two additional iterator - types, const_node_iterator - and node_iterator. - These iterators allow descending from a node to one of its - children. Node iterator allow search paths different than those - determined by the comparison functor. tree - supports the methods:

-
-    const_node_iterator
-    node_begin() const;
-
-    node_iterator
-    node_begin();
-
-    const_node_iterator
-    node_end() const;
-
-    node_iterator
-    node_end(); 
-
- -

The first pairs return node iterators corresponding to the - root node of the tree; the latter pair returns node iterators - corresponding to a just-after-leaf node.

- -

Node Updater - (Template-Template) Parameters

- -

The tree-based containers are parametrized by a - Node_Update template-template parameter. A tree-based - container instantiates Node_Update to some - node_update class, and publicly - subclasses node_update. Figure - A tree and its update - policy shows this scheme, as well as some predefined - policies (which are explained below).

- -
no image
- -
A tree and its update policy.
- -

node_update (an instantiation of - Node_Update) must define metadata_type as - the type of metadata it requires. For order statistics, - e.g., metadata_type might be size_t. - The tree defines within each node a metadata_type - object.

- -

node_update must also define the following method - for restoring node invariants:

-
-    void 
-    operator()(node_iterator nd_it, const_node_iterator end_nd_it)
-
- -

In this method, nd_it is a node_iterator - corresponding to a node whose A) all descendants have valid - invariants, and B) its own invariants might be violated; - end_nd_it is a const_node_iterator - corresponding to a just-after-leaf node. This method should - correct the node invariants of the node pointed to by - nd_it. For example, say node x in Figure - Restoring node - invariants-A has an invalid invariant, but its' children, - y and z have valid invariants. After the - invocation, all three nodes should have valid invariants, as in - Figure Restoring node - invariants-B.

- -
no image
- -
Invalidation of node invariants.
- -

When a tree operation might invalidate some node invariant, - it invokes this method in its node_update base to - restore the invariant. For example, Figure Insert update sequence diagram shows - an insert operation (point A); the tree performs some - operations, and calls the update functor three times (points B, - C, and D). (It is well known that any insert, - erase, split or join, can restore - all node invariants by a small number of node invariant updates - [clrs2001].)

- -
-
- -
Insert update sequence diagram.
- -

To complete the description of the scheme, three questions - need to be answered:

- -
    -
  1. How can a tree which supports order statistics define a - method such as find_by_order?
  2. - -
  3. How can the node updater base access methods of the - tree?
  4. - -
  5. How can the following cyclic dependency be resolved? - node_update is a base class of the tree, yet it - uses node iterators defined in the tree (its child).
  6. -
- -

The first two questions are answered by the fact that - node_update (an instantiation of - Node_Update) is a public base class - of the tree. Consequently:

- -
    -
  1. Any public methods of node_update are - automatically methods of the tree [alexandrescu01modern]. - Thus an order-statistics node updater, tree_order_statistics_node_update - defines the find_by_order method; any tree - instantiated by this policy consequently supports this method - as well.
  2. - -
  3. In C++, if a base class declares a method as - virtual, it is virtual in its - subclasses. If node_update needs to access one of - the tree's methods, say the member function end, it simply - declares that method as virtual - abstract.
  4. -
- -

The cyclic dependency is solved through template-template - parameters. Node_Update is parametrized by the tree's node iterators, its comparison - functor, and its allocator type. Thus, - instantiations of Node_Update have all information required.

- -

pb_ds assumes that constructing a metadata object and modifying it - are exception free. Suppose that during some method, say - insert, a metadata-related operation - (e.g., changing the value of a metadata) throws an - exception. Ack! Rolling back the method is unusually complex.

- -

In Interface::Concepts::Null - Policy Classes a distinction was made between redundant - policies and null policies. Node invariants show a - case where null policies are required.

- -

Assume a regular tree is required, one which need not - support order statistics or interval overlap queries. - Seemingly, in this case a redundant policy - a policy which - doesn't affect nodes' contents would suffice. This, would lead - to the following drawbacks:

- -
    -
  1. Each node would carry a useless metadata object, wasting - space.
  2. - -
  3. The tree cannot know if its Node_Update policy - actually modifies a node's metadata (this is halting - reducible). In Figure Useless update path , - assume the shaded node is inserted. The tree would have to - traverse the useless path shown to the root, applying - redundant updates all the way.
  4. -
- -
no image
- -
Useless update path.
- -

A null policy class, null_tree_node_update - solves both these problems. The tree detects that node - invariants are irrelevant, and defines all accordingly.

- -

Additional - Methods

- -

Tree-based containers support split and join methods. - It is possible to split a tree so that it passes - all nodes with keys larger than a given key to a different - tree. These methods have the following advantages over the - alternative of externally inserting to the destination - tree and erasing from the source tree:

- -
    -
  1. These methods are efficient - red-black trees are split - and joined in poly-logarithmic complexity; ordered-vector - trees are split and joined at linear complexity. The - alternatives have super-linear complexity.
  2. - -
  3. Aside from orders of growth, these operations perform - few allocations and de-allocations. For red-black trees, allocations are not performed, - and the methods are exception-free.
  4. -
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_node_iterator.html b/libstdc++-v3/doc/html/ext/pb_ds/tree_node_iterator.html deleted file mode 100644 index ba09b5b4db22..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree_node_iterator.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - tree::node_iterator Interface - - - - -
-

tree::node_iterator - Interface

- -

Node iterator.

- -

This is an iterator to an iterator - it - iterates over nodes, and de-referencing it returns one of the - tree's iterators

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-tree::const_node_iterator
-
-
-

public

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-inline 
-  node_iterator
-  ()
-
-
-

Default constructor.

-
- -

Access Methods

- - - - - - - - - - - - - -
MethodDescription
-
-inline container_base::iterator
-  operator*
-  () const
-
-
-

Access.

-
- -

Movement Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline node_iterator
-  get_l_child
-  () const
-
-
-

Returns the node iterator associated with the left - node.

-
-
-inline node_iterator
-  get_r_child
-  () const
-
-
-

Returns the node iterator associated with the right - node.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_node_update.html b/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_node_update.html deleted file mode 100644 index f4345531f449..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_node_update.html +++ /dev/null @@ -1,678 +0,0 @@ - - - - - - - tree_order_statistics_node_update Interface - - - - -
-

tree_order_statistics_node_update Interface

- -

Functor updating ranks of entrees.

- -

Defined in: tree_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-
-class Node_Iterator
-
-
-

Node iterator type.

-
-
-
-class Cmp_Fn
-
-
-

Comparison functor.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-cmp_fn
-
-
-
-Cmp_Fn
-
-
-

Allocator - type.

-
-
-allocator
-
-
-
-Allocator
-
-
-

Allocator - type.

-
- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-typename allocator::size_type
-
-
-

Size type.

-
- -

Key-type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-key_type
-
-
-
-The instantiating container's key type.
-
-
-

Key type.

-
-
-const_key_reference
-
-
-
-The instantiating container's const key reference type.
-
-
-

Const key reference.

-
- -

Metadata-Type - Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-size_type
-
-
-

Metadata type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_node_iterator
-
-
-
-Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-node_iterator
-
-
-
-Node_Iterator
-
-
-

Node iterator type.

-
-
-const_iterator
-
-
-
-typename const_node_iterator::value_type
-
-
-

Const iterator type.

-
-
-iterator
-
-
-
-typename node_iterator::value_type
-
-
-

Iterator type.

-
- -

Public Methods

- -

Find-Type Methods

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline const_iterator
-  find_by_order
-  (size_type order) const
-
-
-

Finds an entry by order. Returns a const_iterator to - the entry with the order order, or a const_iterator to - the container object's end if order is at least the size of the - container object.

-
-
-inline iterator
-  find_by_order
-  (size_type order)
-
-
-

Finds an entry by order. Returns an iterator to the entry - with the order order, or - an iterator to - the container object's end if order is at least the size of the - container object.

-
-
-inline size_type
-  order_of_key
-  (const_key_reference r_key) const
-
-
-

Returns the order of a key within a sequence. For - example, if r_key is the - smallest key, this method will return 0; if r_key is a key between the smallest - and next key, this method will return 1; if r_key is a key larger than the - largest key, this method will return the size of r_c.

-
- -

Protected Types and - Constants

- -

Value-type - Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_reference
-
-
-
-The instantiating container's const reference  type.
-
-
-

Const reference to the container's value-type.

-
-
-const_pointer
-
-
-
-The instantiating container's const pointer  type.
-
-
-

Const pointer to the container's value-type.

-
-
-const_metadata_reference
-
-
-
-typename Allocator::template rebind<
-    metadata_type>::other::const_reference
-
-
-

Const metadata reference.

-
-
-metadata_reference
-
-
-
-typename Allocator::template rebind<
-    metadata_type>::other::reference
-
-
-

Metadata reference.

-
- -

Protected Methods

- -

Operators

- - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  operator()
-  (node_iterator node_it,
-    const_node_iterator end_nd_it) const
-
-
-

Updates the rank of a node through a node_iterator - node_it; end_nd_it is the end node iterator.

-
- -

Constructors, destructor, and - related

- - - - - - - - - - - - - -
MethodDescription
-
-virtual 
-  ~tree_order_statistics_node_update
-  ()
-
-
-

Destructor.

-
- -

Private Methods

- -

Overrides

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-virtual const_node_iterator
-  node_begin
-  () const = 0
-
-
-

Returns the const_node_iterator - associated with the tree's root node.

-
-
-virtual node_iterator
-  node_begin
-  () = 0
-
-
-

Returns the node_iterator - associated with the tree's root node.

-
-
-virtual const_node_iterator
-  node_end
-  () const = 0
-
-
-

Returns the const_node_iterator - associated with a just-after leaf node.

-
-
-virtual node_iterator
-  node_end
-  () = 0
-
-
-

Returns the node_iterator - associated with a just-after leaf node.

-
-
-virtual cmp_fn &
-  get_cmp_fn
-  () = 0
-
-
-

Access to the cmp_fn object.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test.html deleted file mode 100644 index ef811613e9c2..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - -Tree Order Statistics Timing Test - - - -
-

Tree Order-Statistics Timing Test

-

Description

-

This test creates a container, inserts random integers into - the the container, and then checks the order-statistics of the - container's values. (If the container is one of pb_ds - 's trees, it does this with the order_of_key method of - tree_order_statistics_node_update - ; otherwise, it uses the find method and - std::distance .) It measures the average time for such - queries as a function of the number of values inserted.

-

(The test was executed with tree_order_statistics_timing_test - 200 200 2100)

-

Purpose

-

The test checks the performance difference of policies based - on node-invariant as opposed to a external functions. (see - Design::Associative - Containers::Tree-Based Containers::Node Invariants .)

-

Results

-

Figures NTG, NTM, and - NTL show the results for the native and - tree-based containers in g++, msvc++, and - local, - respectively.

-
-
-
-
-
no image
NTG: Native and tree-based container order-statistics queries - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_set- -std::set
  2. -
  3. -splay_tree_ost_set- -tree - with Tag = splay_tree_tag -, and Node_Update = tree_order_statistics_node_update -
  4. -
  5. -rb_tree_ost_set- -tree - with Tag = rb_tree_tag -, and Node_Update = tree_order_statistics_node_update -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: Native and tree-based container order-statistics queries - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_set- -std::set
  2. -
  3. -splay_tree_ost_set- -tree - with Tag = splay_tree_tag -, and Node_Update = tree_order_statistics_node_update -
  4. -
  5. -rb_tree_ost_set- -tree - with Tag = rb_tree_tag -, and Node_Update = tree_order_statistics_node_update -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and tree-based container order-statistics queries - local
-
-
-
-
-

Observations

-

In this test, the native red-black tree can support - order-statistics queries only externally, by performing a - find (alternatively, lower_bound or - upper_bound ) and then using std::distance . - This is clearly linear, and it is not that surprising that the - cost is high.

-

pb_ds 's tree-based containers use in this test the - order_of_key method of tree_order_statistics_node_update. - This method has only linear complexity in the length of the - root-node path. Unfortunately, the average path of a splay tree - (tree - with Tag = splay_tree_tag ) can - be higher than logarithmic; the longest path of a red-black - tree (tree - with Tag = rb_tree_tag ) is - logarithmic in the number of elements. Consequently, the splay - tree has worse performance than the red-black tree.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png deleted file mode 100644 index bdb00d07a7ff61aefa521f02bb4f6eb93fe26eee..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5698 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 ajZ?Ixx&3?owIvAnFwiwYmRxgq@;?APu4Y33 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png deleted file mode 100644 index 76dcbee44fdbb6b9ed8d693ca94260cfca16ac13..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5684 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 e=l@S-;I=YFw - - - - -Tree Text Find Timing Test - - - -

-

Tree-Based and Trie-Based Text find Find Timing - Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([wickland96thirty]) into - a container, then performs a series of finds using - find. It measures the average time for find - as a function of the number of values inserted.

-

(The test was executed with text_find_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures.

-

Results

-

Figures NTTG, NTTM, - and NTTL show the results for the native, - tree-based, and trie-based types in g++, local, and - local, - respectively.

-
-
-
-
-
no image
NTTG: Native, tree-based, random int find timing test using find - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -splay_tree_map- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -ov_tree_map- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  4. -
  5. -n_map- -std::map
  6. -
  7. -rb_tree_map- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  8. -
-
-
-
-
-
-
-
-
no image
NTTM: Native, tree-based, random int find timing test using find - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -splay_tree_map- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -ov_tree_map- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  4. -
  5. -n_map- -std::map
  6. -
  7. -rb_tree_map- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  8. -
-
-
-
-
-
-
-
-
no image
NTTL: Native, tree-based, random int find timing test using find - local
-
-
-

Observations

-

For this setting, a splay tree (tree - with Tag = splay_tree_tag) - does not do well. This is possibly due to two - reasons:

-
    -
  1. A splay tree is not guaranteed to be balanced - [motwani95random]. - If a splay tree contains n nodes, its - average root-leaf path can be m >> - log(n).
  2. -
  3. Assume a specific root-leaf search path has - length m, and the search-target node has - distance m' from the root. A red-black - tree will require m + 1 comparisons to - find the required node; a splay tree will require - 2 m' comparisons. A splay tree, - consequently, can perform many more comparisons - than a red-black tree.
  4. -
-

An ordered-vector tree (tree - with Tag = ov_tree_tag), - a red-black tree (tree - with Tag = rb_tree_tag), - and the native red-black tree all share - approximately the same performance.

-

An ordered-vector tree is slightly slower than - red-black trees, since it requires, in order to - find a key, more math operations than they do. - Conversely, an ordered-vector tree requires far - lower space than the others. ([austern00noset], - however, seems to have an implementation that is - also faster than a red-black tree).

-

A PATRICIA trie (trie - with Tag = pat_trie_tag) - has good look-up performance, due to its large - fan-out in this case. In this setting, a PATRICIA - trie has lookup performance comparable to a hash - table (see Hash-Based - Text find Find Timing Test), but it is - order preserving. This is not that surprising, - since a large fan-out PATRICIA trie works like a - hash table with collisions resolved by a sub-trie. - A large fan-out PATRICIA trie does not do well on - modifications (see Tree-Based and - Trie-Based Text Insert Timing Test). It is - possibly beneficial to semi-static settings, - therefore.

-

- Observations::Tree-Like-Based Container Types - summarizes some observations on tree-based and - trie-based containers.

-
-
-
-
-
-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test.html deleted file mode 100644 index 9164984d16d9..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -Tree Split Join Timing Test - - - -
-

Tree Split-Join Timing Test

-

Description

-

This test a container, inserts into a number of values, - splits the container at the median, and joins the two - containers. (If the containers are one of pb_ds 's - trees, it splits and joins with the split and - join method; otherwise, it uses the erase and - insert methods.) It measures the time for splitting - and joining the containers as a function of the number of - values inserted.

-

(The test was executed with tree_split_join_timing_test - 200 200 2100)

-

Purpose

-

The test checks the performance difference of join - as opposed to a sequence of insert operations; by - implication, this test checks the most efficient way to erase a - sub-sequence from a tree-like-based container, since this can - always be performed by a small sequence of splits and joins - (see Motivation::Associative - Containers::Slightly Different Methods::Methods Related to - Split and Join and Design::Associative - Containers::Tree-Based Containers::Additional Methods - .)

-

Results

-

Figures NTG, NTM, and - NTL show the results for the native and - tree-based containers in g++, msvc++, and - local, - respectively.

-
-
-
-
-
no image
NTG: Native and tree-based container splits and joins - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_set- -std::set
  2. -
  3. -splay_tree_set- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  4. -
  5. -rb_tree_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  6. -
  7. -ov_tree_set- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: Native and tree-based container splits and joins - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_set- -std::set
  2. -
  3. -splay_tree_set- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  4. -
  5. -rb_tree_set- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  6. -
  7. -ov_tree_set- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and tree-based container splits and joins - local
-
-
-
-
-

Observations

-

In this test, the native red-black trees must be split and - joined externally, through a sequence of erase and - insert operations. This is clearly super-linear, and - it is not that surprising that the cost is high.

-

pb_ds 's tree-based containers use in this test the - split and join methods, which have lower - complexity: the join method of a splay tree ( tree - with Tag = splay_tree_tag ) is - quadratic in the length of the longest root-leaf path, and - linear in the total number of elements; the join - method of a red-black tree ( tree - with Tag = rb_tree_tag ) or an - ordered-vector tree ( tree - with Tag = ov_tree_tag ) is linear - in the number of elements.

-

Asides from orders of growth, pb_ds 's trees access - their allocator very little in these operations, and some of - them do not access it at all. This leads to lower constants in - their complexity, and, for some containers, to exception-free - splits and joins (which can be determined via container_traits).

-

It is important to note that split and - join are not esoteric methods - they are the most - efficient means of erasing a contiguous range of values from a - tree based container.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test_gcc.png deleted file mode 100644 index 88867eca6bdb45c38e2ad7f751bdbd02f620e815..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5649 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 VM7LBKfWB|(Ya3|gUc3A3zW@Xf5tRS{ diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test_local.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_split_join_timing_test_local.png deleted file mode 100644 index fe5ba81c49e29aeffab63609d77ff33547e36dcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 30904 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 - - - - - - tree_tag Interface - - - - -
-

tree_tag Interface

- -

Basic tree data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-basic_tree_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_find_find_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_find_find_timing_test.html deleted file mode 100644 index fbfdfeffa56b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_find_find_timing_test.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - -Tree Text Find Timing Test - - - -
-

Tree-Based and Trie-Based Text find Find Timing - Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([wickland96thirty]) into - a container, then performs a series of finds using - find. It measures the average time for find - as a function of the number of values inserted.

-

(The test was executed with text_find_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures.

-

Results

-

Figures NTTG, NTTM, - and NTTL show the results for the native, - tree-based, and trie-based types in g++, local, and - local, - respectively.

-
-
-
-
-
no image
NTTG: Native, tree-based, and trie-based, text find timing test using find - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -splay_tree_map- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -ov_tree_map- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  4. -
  5. -rb_tree_map- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  6. -
  7. -n_map- -std::map
  8. -
  9. -pat_trie_map- -trie - with Tag = pat_trie_tag -, and Node_Update = null_trie_node_update -
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NTTM: Native, tree-based, and trie-based, text find timing test using find - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -splay_tree_map- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -ov_tree_map- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  4. -
  5. -rb_tree_map- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  6. -
  7. -n_map- -std::map
  8. -
  9. -pat_trie_map- -trie - with Tag = pat_trie_tag -, and Node_Update = null_trie_node_update -
  10. -
-
-
-
-
-
-
-
-
-
-
no image
NTTL: Native, tree-based, and trie-based, text find timing test using find - local
-
-
-
-
-

Observations

-

For this setting, a splay tree (tree - with Tag = splay_tree_tag) does - not do well. This is possibly due to two reasons:

-
    -
  1. A splay tree is not guaranteed to be balanced [motwani95random]. If a - splay tree contains n nodes, its average root-leaf - path can be m >> log(n).
  2. -
  3. Assume a specific root-leaf search path has length - m, and the search-target node has distance m' - from the root. A red-black tree will require m + 1 - comparisons to find the required node; a splay tree will - require 2 m' comparisons. A splay tree, consequently, - can perform many more comparisons than a red-black tree.
  4. -
-

An ordered-vector tree (tree - with Tag = ov_tree_tag), a red-black - tree (tree - with Tag = rb_tree_tag), and the - native red-black tree all share approximately the same - performance.

-

An ordered-vector tree is slightly slower than red-black - trees, since it requires, in order to find a key, more math - operations than they do. Conversely, an ordered-vector tree - requires far lower space than the others. ([austern00noset], however, - seems to have an implementation that is also faster than a - red-black tree).

-

A PATRICIA trie (trie - with Tag = pat_trie_tag) has good - look-up performance, due to its large fan-out in this case. In - this setting, a PATRICIA trie has look-up performance comparable - to a hash table (see Hash-Based Text - find Find Timing Test), but it is order - preserving. This is not that surprising, since a large-fan-out - PATRICIA trie works like a hash table with collisions resolved - by a sub-trie. A large-fan-out PATRICIA trie does not do well on - modifications (see Tree-Based and Trie-Based - Text Insert Timing Test). It is possibly beneficial to - semi-static settings, therefore.

-

Observations::Tree-Like-Based - Container Types summarizes some observations on tree-based - and trie-based containers.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test.html deleted file mode 100644 index a5815fb2e25c..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - -Tree Text Insert Timing Test - - - -
-

Tree-Based and Trie-Based Text Insert Timing Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - a container using insert . It measures the average - time for insert as a function of the number of values - inserted.

-

(The test was executed with tree_text_insert_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures.

-

Results

-

Figures NNTG, NVTG, - and NPTG show the results for the native - tree and pb_ds's node-based trees, the native tree and - pb_ds's vector-based trees, and the native tree - andpb_ds's PATRICIA-trie, respectively, in g++; Figures - NNTM, NVTM, and - NPTM show the same in msvc++; Figures - NNTL, NVTL, and - NPTL show the same in local.

-
-
-
-
-
no image
NNTG: Native tree and node-based trees text insert timing test using insert - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -splay_tree_map- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -n_map- -std::map
  4. -
  5. -rb_tree_map- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NVTG: Native tree and vector-based tree text insert timing test using insert - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -ov_tree_map- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -n_map- -std::map
  4. -
-
-
-
-
-
-
-
-
-
-
no image
NPTG: Native tree and PATRICIA trie text insert timing test using insert - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -n_map- -std::map
  2. -
  3. -pat_trie_map- -trie - with Tag = pat_trie_tag -, and Node_Update = null_trie_node_update -
  4. -
-
-
-
-
-
-
-
-
-
-
no image
NNTM: Native tree and node-based trees text insert timing test using insert - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -splay_tree_map- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -n_map- -std::map
  4. -
  5. -rb_tree_map- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  6. -
-
-
-
-
-
-
-
-
-
-
no image
NVTM: Native tree and vector-based tree text insert timing test using insert - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -ov_tree_map- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -n_map- -std::map
  4. -
-
-
-
-
-
-
-
-
-
-
no image
NPTM: Native tree and PATRICIA trie text insert timing test using insert - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -pat_trie_map- -trie - with Tag = pat_trie_tag -, and Node_Update = null_trie_node_update -
  2. -
  3. -n_map- -std::map
  4. -
-
-
-
-
-
-
-
-
-
-
no image
NNTL: Native tree and node-based trees text insert timing test using insert - local
-
-
-
-
-
-
-
-
-
no image
NVTL: Native tree and vector-based tree text insert timing test using insert - local
-
-
-
-
-
-
-
-
-
no image
NPTL: Native tree and PATRICIA trie text insert timing test using insert - local
-
-
-
-
-

Observations

-

Observing Figure NNTG , for this - setting, a splay tree, ( tree - with Tag = splay_tree_tag ) does - not do well. This was covered in Tree-Based and - Trie-Based Text find Find Timing Test . The two - red-black trees perform better.

-

Observing Figure NVTG, an ordered-vector - tree ( tree - with Tag = ov_tree_tag) performs - abysmally. Inserting into this type of tree has linear - complexity [ austern00noset].

-

Observing Figure NPTG , A PATRICIA trie - ( trie - with Tag = pat_trie_tag ) has - abysmal performance, as well. This is not that surprising, - since a large-fan-out PATRICIA trie works like a hash table with - collisions resolved by a sub-trie. Each time a collision is - encountered, a new "hash-table" is built A large fan-out - PATRICIA trie, however, doe does well in look-ups (see Tree-Based and - Trie-Based Text find Find Timing Test ). It is - possibly beneficial to semi-static settings, therefore.

-

Observations::Tree-Like-Based - Container Types summarizes some observations on tree-based - and trie-based containers.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png deleted file mode 100644 index 22d8f6fc213009573702095565b856229e1bcd5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5373 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 Tc=j{+zZ?S{ldGjy9G?CcOHEJC diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png deleted file mode 100644 index c98488c041a8fcb2c7a7f5d2adb37cd533a7e05f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 28340 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𝔞Ee?K@wLcC@!>Ne$!ZhrazE3%;W;UEsR zLAOq*jAeU>x3`7>0(%?$l-ezroOfnvwMjxcQMGqWdO%C2-CnOEd0eO84E&{Y!NQ4f#{I14Uhqjfp6l?VU_qh z#8L1)uo^K4(Qc9W0Lj&!QE-_09l9E%-2@ctq1$uJ+iABYL+M};kjxFS^J((-pBlr~ zPpbJ0%5=_jXSF>L)H9|;GX?=S{syK2W|hNvHrWd%cQ@Nv;1<~U<0FeTXEnJ3J<*L; z6^+^$>=PkGlx8O5fT#s-F&)#V2}3XBPp&?~=flSxF)g_F&{Z2u7PuEA1%G$dlY7OL z{+2F%_f1M86#A$%SG`%_x3&A`W2i;v?8|8QNeM_)LwRISt3@--Cgh%9XuDj~yt`d7wcIQ7J s@y+Kby~x)0>^=Ga5+wikW{w5fxbyq<-o#fd2>8JmTtS!q?Q;Kr099{LCjbBd diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png deleted file mode 100644 index 18b219851c25fbb48f9321b801d9bed115cbf4e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5212 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 UlwnP2^l#t9(9)ptjLXgc08;sX=l}o! diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png deleted file mode 100644 index eff7eefb09d89c0099eabda19010d4832f37b291..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 22337 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png deleted file mode 100644 index 9f13db0c093cfac9e98cad9ae4c41799ecb3a0dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 4881 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 J=|#KHe*qLg(4+tW diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png deleted file mode 100644 index f67156d452ee6e0f7cb39df697dcd288533ba525..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 22889 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 Ba3lZ# diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png deleted file mode 100644 index 8c07313910fb7c89bb04a30c1a3bc4c86d183a92..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 5131 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html deleted file mode 100644 index c577a56dbcbc..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - -Tree Text Locality of Reference Find Timing Test - - - - - - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png b/libstdc++-v3/doc/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png deleted file mode 100644 index cf5174d99c1cca3d4731ce3f364628c2ce6cb767..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 6162 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

cNH%>+l+NHG1 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 qJ^?xq` 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

;HekkhA*zu+Y*%{ty}lAn?tuxkm9 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie.html b/libstdc++-v3/doc/html/ext/pb_ds/trie.html deleted file mode 100644 index 32a2ab1b504c..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trie.html +++ /dev/null @@ -1,489 +0,0 @@ - - - - - - - trie Interface - - - - -

-

trie Interface

- -

A concrete basic trie-based associative container.

- -

Defined in: assoc_container.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Key
-
-
-

Key type.

-
-
-
-typename Mapped
-
-
-

Mapped type.

-
-
-
-class E_Access_Traits 
-
-
-

Element-access traits.

-
-
-
-class Tag 
-
-
-

Data-structure tag.

-
pat_trie_tag
-
-template< 
-  typename Const_Node_Iterator, 
-  typename Node_Iterator, 
-  class E_Access_Traits_, 
-  typename Allocator_>
-class Node_Update 
-
-
-

Node updater type.

- -

Design::Tree-Based - Containers::Node Invariants explains this - concept.

-
null_trie_node_update
-
-class Allocator 
-
-
-

Allocator type.

-
-
-std::allocator<char>
-
-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-e_access_traits
-
-
-
-E_Access_Traits
-
-
-

Element access traits type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_node_iterator
-
-
-
-const_node_iterator
-
-
-

Const node iterator.

-
-
-node_iterator
-
-
-
-node_iterator
-
-
-

Node iterator.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  trie
-  ()
-
-
-

Default constructor.

-
-
-  trie
-  (const E_Access_Traits &r_e_access_traits)
-
-
-

Constructor taking some policy objects. r_e_access_traits will be copied by - the E_Access_Traits - object of the container object.

-
-
-template<
-    class It>
-  trie
-  (It first_it, 
-    It last_it)
-
-
-

Constructor taking iterators to a range of - value_types. The value_types between first_it and last_it will be inserted into the - container object.

-
-
-template<
-    class It>
-  trie
-  (It first_it, 
-    It last_it,
-    const E_Access_Traits &r_e_access_traits)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects. The value_types between - first_it and - last_it will be inserted - into the container object.

-
-
-  trie
-  (const trie &other)
-
-
-

Copy constructor.

-
-
-virtual 
-  ~trie
-  ()
-
-
-

Destructor.

-
-
-trie &
-  operator=
-  (const trie &other)
-
-
-

Assignment operator.

-
-
-void
-  swap
-  (trie &other)
-
-
-

Swaps content.

-
- -

Policy Access Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-e_access_traits &
-  get_e_access_traits
-  ()
-
-
-

Access to the comb_hash_fn object.

-
-
-e_access_traits &
-  get_e_access_traits
-  () const
-
-
-

Const access to the comb_hash_fn object.

-
- -

Node-Iteration Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-node_iterator
-  node_begin
-  ()
-
-
-

Returns a node_iterator - corresponding to the node at the root of the trie.

-
-
-const_node_iterator
-  node_begin
-  () const
-
-
-

Returns a const_node_iterator - corresponding to the node at the root of the trie.

-
-
-node_iterator
-  node_end
-  ()
-
-
-

Returns a node_iterator - corresponding to a node just after a leaf of the - trie.

-
-
-const_node_iterator
-  node_end
-  () const
-
-
-

Returns a const_node_iterator - corresponding to a node just after a leaf of the - trie.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie_based_containers.html b/libstdc++-v3/doc/html/ext/pb_ds/trie_based_containers.html deleted file mode 100644 index 72bdd069779b..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trie_based_containers.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - Trie-Based Containers - - - - -
-

Trie Design

- -

Overview

- -

The trie-based container has the following declaration:

-
-template<
-    typename Key,
-    typename Mapped,
-    typename Cmp_Fn = std::less<Key>,
-    typename Tag =  pat_trie_tag,
-    template<
-        typename Const_Node_Iterator,
-        typename Node_Iterator,
-        typename E_Access_Traits_,
-        typename Allocator_>
-    class Node_Update = null_trie_node_update,
-    typename Allocator = std::allocator<char> >
-class trie;
-
- -

The parameters have the following meaning:

- -
    -
  1. Key is the key type.
  2. - -
  3. Mapped is the mapped-policy, and is explained in - Tutorial::Associative - Containers::Associative Containers Others than Maps.
  4. - -
  5. E_Access_Traits is described in Element-Access Traits.
  6. - -
  7. Tag specifies which underlying data structure - to use, and is described shortly.
  8. - -
  9. Node_Update is a policy for updating node - invariants. This is described in Node - Invariants.
  10. - -
  11. Allocator is an allocator - type.
  12. -
- -

The Tag parameter specifies which underlying - data structure to use. Instantiating it by pat_trie_tag, specifies an - underlying PATRICIA trie (explained shortly); any other tag is - currently illegal.

-
- -

Following is a description of a (PATRICIA) trie - (pb_ds follows specifically [okasaki98mereable] and - [filliatre2000ptset]).

- -

A (PATRICIA) trie is similar to a tree, but with the - following differences:

- -
    -
  1. It explicitly views keys as a sequence of elements. - E.g., a trie can view a string as a sequence of - characters; a trie can view a number as a sequence of - bits.
  2. - -
  3. It is not (necessarily) binary. Each node has fan-out n - + 1, where n is the number of distinct - elements.
  4. - -
  5. It stores values only at leaf nodes.
  6. - -
  7. Internal nodes have the properties that A) each has at - least two children, and B) each shares the same prefix with - any of its descendant.
  8. -
- -

Element-Access Traits shows - an example of such a trie.

- -

A (PATRICIA) trie has some useful properties:

- -
    -
  1. It can be configured to use large node fan-out, giving it - very efficient find performance (albeit at insertion - complexity and size).
  2. - -
  3. It works well for common-prefix keys.
  4. - -
  5. It can support efficiently queries such as which keys - match a certain prefix. This is sometimes useful in - file systems and routers.
  6. -
- -

(We would like to thank Matt Austern for the suggestion to - include tries.)

- -

Element-Access Traits

- -

A trie inherently views its keys as sequences of elements. - For example, a trie can view a string as a sequence of - characters. A trie needs to map each of n elements to a - number in {0, n - 1}. For example, a trie can map a - character c to - static_cast<size_t>(c).

- -

Seemingly, then, a trie can assume that its keys support - (const) iterators, and that the value_type of this - iterator can be cast to a size_t. There are several - reasons, though, to decouple the mechanism by which the trie - accesses its keys' elements from the trie:

- -
    -
  1. In some cases, the numerical value of an element is - inappropriate. Consider a trie storing DNA strings. It is - logical to use a trie with a fan-out of 5 = 1 + |{'A', 'C', - 'G', 'T'}|. This requires mapping 'T' to 3, though.
  2. - -
  3. In some cases the keys' iterators are different than what - is needed. For example, a trie can be used to search for - common suffixes, by using strings' - reverse_iterator. As another example, a trie mapping - UNICODE strings would have a huge fan-out if each node would - branch on a UNICODE character; instead, one can define an - iterator iterating over 8-bit (or less) groups.
  4. -
- -

trie is, - consequently, parametrized by E_Access_Traits - - traits which instruct how to access sequences' elements. - string_trie_e_access_traits - is a traits class for strings. Each such traits define some - types, e.g.,

-
-typename E_Access_Traits::const_iterator
-
- -

is a const iterator iterating over a key's elements. The - traits class must also define methods for obtaining an iterator - to the first and last element of a key.

- -

Figure A PATRICIA trie shows a - (PATRICIA) trie resulting from inserting the words: "I wish - that I could ever see a poem lovely as a trie" (which, - unfortunately, does not rhyme).

- -

The leaf nodes contain values; each internal node contains - two typename E_Access_Traits::const_iterator - objects, indicating the maximal common prefix of all keys in - the sub-tree. For example, the shaded internal node roots a - sub-tree with leafs "a" and "as". The maximal common prefix is - "a". The internal node contains, consequently, to const - iterators, one pointing to 'a', and the other to - 's'.

- -
no image
- -
A PATRICIA trie.
- -

Node - Invariants

- -

Trie-based containers support node invariants, as do - tree-based containers (see Tree-Based - Containers::Node Invariants). There are two minor - differences, though, which, unfortunately, thwart sharing them - sharing the same node-updating policies:

- -
    -
  1. A trie's Node_Update template-template - parameter is parametrized by E_Access_Traits, while - a tree's Node_Update template-template parameter is - parametrized by Cmp_Fn.
  2. - -
  3. Tree-based containers store values in all nodes, while - trie-based containers (at least in this implementation) store - values in leafs.
  4. -
- -

Figure A trie and its update - policy shows the scheme, as well as some predefined - policies (which are explained below).

- -
no image
- -
A trie and its update policy.
- -

pb_ds offers the following pre-defined trie node - updating policies:

- -
    -
  1. trie_order_statistics_node_update - supports order statistics.
  2. - -
  3. trie_prefix_search_node_update - supports searching for ranges that match a given prefix. See - trie_prefix_search.cc.
  4. - -
  5. null_trie_node_update - is the null node updater.
  6. -
- -

Additional - Methods

- -

Trie-based containers support split and join methods; the - rationale is equal to that of tree-based containers supporting - these methods (see Tree-Based - Containers::Additional Methods).

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie_const_node_iterator.html b/libstdc++-v3/doc/html/ext/pb_ds/trie_const_node_iterator.html deleted file mode 100644 index 0869a7c2f5b9..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trie_const_node_iterator.html +++ /dev/null @@ -1,478 +0,0 @@ - - - - - - - trie::const_node_iterator - Interface - - - - -
-

trie::const_node_iterator - Interface

- -

Const node iterator.

- -

This is an "iterator to an iterator" - it iterates over - nodes, and de-referencing it returns one of the tree's const - iterators

- -

Public Types and - Constants

- -

General Container - Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-container_base::size_type
-
-
-

Size type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-iterator_category
-
-
-
-trivial_iterator_tag
-
-
-

Category.

- -

This tag identifies that the iterator has none of the - STL's iterators' movement abilities.

-
-
-difference_type
-
-
-
-void
-
-
-

Difference type.

-
- -

Value-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-value_type
-
-
-
-container_base::const_iterator
-
-
-

Iterator's value type.

-
-
-reference
-
-
-
-value_type
-
-
-

Iterator's reference type.

-
-
-const_reference
-
-
-
-value_type
-
-
-

Iterator's const reference type.

-
-
-e_access_traits
-
-
-
-trie::e_access_traits
-
-
-

Element access traits.

-
-
-const_e_iterator
-
-
-
-typename e_access_traits::const_iterator
-
-
-

A key's element const iterator.

-
- -

Metadata Definitions

- -

These are only defined if - basic_tree::Node_Update - is not null_trie_node_update

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-typename basic_tree::Node_Update::metadata_type
-
-
-

Metadata type.

-
-
-const_metadata_reference
-
-
-
-typename Allocator::template rebind<
-    metadata_type>::other::const_reference
-
-
-

Const metadata reference type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-inline 
-  const_node_iterator
-  ()
-
-
-

Default constructor.

-
- -

Access Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline std::pair<
-    const_e_iterator,
-    const_e_iterator>
-  valid_prefix
-  () const
-
-
-

Subtree valid prefix.

- -

Returns the common prefix range of all nodes in this - node's subtree.

-
-
-inline const_reference
-  operator*
-  () const
-
-
-

Const access; returns the const iterator associated - with the current leaf.

- -

Should be called only for leaf nodes.

-
- -

Metadata Access Methods

- -

These are only defined if - basic_tree::Node_Update - is not null_trie_node_update

- - - - - - - - - - - - - -
MethodDescription
-
-inline const_metadata_reference
-  get_metadata
-  () const
-
-
-

Metadata access.

-
- -

Movement Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline size_type
-  num_children
-  () const
-
-
-

Returns the number of children in the corresponding - node.

- -

If the number of children is 0, then the corresponding - node is a leaf; otherwise, it is not a leaf.

-
-
-const_node_iterator
-  get_child
-  (size_type i) const
-
-
-

Returns a const node iterator to the corresponding - node's i-th child.

-
- -

Comparison Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline bool
-  operator==
-  (const const_node_iterator &other) const
-
-
-

Compares content to a different iterator object.

-
-
-inline bool
-  operator!=
-  (const const_node_iterator &other) const
-
-
-

Compares content (negatively) to a different iterator - object.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie_node_iterator.html b/libstdc++-v3/doc/html/ext/pb_ds/trie_node_iterator.html deleted file mode 100644 index 55029c4cb917..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trie_node_iterator.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - trie::node_iterator Interface - - - - -
-

trie::node_iterator - Interface

- -

Node iterator.

- -

This is an "iterator to an iterator" - it iterates over - nodes, and de-referencing it returns one of the tree's - iterators

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-trie::const_node_iterator
-
-
-

public

-
- -

Public Types and - Constants

- -

General Container - Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-typename trie::const_node_iterator::size_type
-
-
-

Size type.

-
- -

Value-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-value_type
-
-
-
-container_base::iterator
-
-
-

Iterator's value type.

-
-
-reference
-
-
-
-value_type
-
-
-

Iterator's reference type.

-
-
-const_reference
-
-
-
-value_type
-
-
-

Iterator's const reference type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - -
MethodDescription
-
-inline 
-  pat_trie_node_it_
-  () 
-
-
-

Default constructor.

-
- -

Access Methods

- - - - - - - - - - - - - -
MethodDescription
-
-inline reference
-  operator*
-  () const
-
-
-

Access; returns the iterator associated with the - current leaf.

- -

Should be called only for leaf nodes.

-
- -

Movement Methods

- - - - - - - - - - - - - -
MethodDescription
-
-node_iterator
-  get_child
-  (size_type i) const
-
-
-

Returns a node iterator to the corresponding node's - i-th child.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie_order_statistics_node_update.html b/libstdc++-v3/doc/html/ext/pb_ds/trie_order_statistics_node_update.html deleted file mode 100644 index 66aab26d799c..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trie_order_statistics_node_update.html +++ /dev/null @@ -1,770 +0,0 @@ - - - - - - - trie_order_statistics_node_update Interface - - - - -
-

trie_order_statistics_node_update Interface

- -

Functor updating ranks of entrees.

- -

Defined in: trie_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-
-class Node_Iterator
-
-
-

Node iterator type.

-
-
-
-class E_Access_Traits
-
-
-

Comparison functor.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-e_access_traits
-
-
-
-E_Access_Traits
-
-
-

Element access traits.

-
-
-const_e_iterator
-
-
-
-typename e_access_traits::const_iterator
-
-
-

Const element iterator.

-
-
-allocator
-
-
-
-Allocator
-
-
-

Allocator - type.

-
- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-typename allocator::size_type
-
-
-

Size type.

-
- -

Key-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-key_type
-
-
-
-The instantiating container's key type.
-
-
-

Key type.

-
-
-const_key_reference
-
-
-
-The instantiating container's const key reference type.
-
-
-

Const key reference.

-
- -

Metadata-Type - Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-size_type
-
-
-

Metadata type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_node_iterator
-
-
-
-Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-node_iterator
-
-
-
-Node_Iterator
-
-
-

Node iterator type.

-
-
-const_iterator
-
-
-
-typename const_node_iterator::value_type
-
-
-

Const iterator type.

-
-
-iterator
-
-
-
-typename node_iterator::value_type
-
-
-

Iterator type.

-
- -

Public Methods

- -

Find-Type Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline const_iterator
-  find_by_order
-  (size_type order) const
-
-
-

Finds an entry by order. Returns a const_iterator to - the entry with the order order, or a const_iterator to - the container object's end if order is at least the size of the - container object.

-
-
-inline iterator
-  find_by_order
-  (size_type order)
-
-
-

Finds an entry by order. Returns an iterator to the entry - with the order order, or - an iterator to - the container object's end if order is at least the size of the - container object.

-
-
-inline size_type
-  order_of_key
-  (const_key_reference r_key) const
-
-
-

Returns the order of a key within a sequence. For - example, if r_key is the - smallest key, this method will return 0; if r_key is a key between the smallest - and next key, this method will return 1; if r_key is a key larger than the - largest key, this method will return the size of r_c.

-
-
-inline size_type
-  order_of_prefix
-  (const_e_iterator b,
-    const_e_iterator e) const
-
-
-

Returns the order of a prefix within a sequence. For - eexample, if [b, - e] is the smallest - prefix, this method will return 0; if r_key is a key - bbetween the smallest and - next key, this method will return 1; if r_key is a key - larger than the largest key, this method will return the - size of r_c.

-
- -

Protected Types and - Constants

- -

Value-Type - Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_reference
-
-
-
-The instantiating container's const reference  type.
-
-
-

Const reference to the container's value-type.

-
-
-const_pointer
-
-
-
-The instantiating container's const pointer  type.
-
-
-

Const pointer to the container's value-type.

-
-
-const_metadata_reference
-
-
-
-typename Allocator::template rebind<
-    metadata_type>::other::const_reference
-
-
-

Const metadata reference.

-
-
-metadata_reference
-
-
-
-typename Allocator::template rebind<
-    metadata_type>::other::reference
-
-
-

Metadata reference.

-
- -

Protected Methods

- -

Operators

- - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  operator()
-  (node_iterator node_it,
-    const_node_iterator end_nd_it) const
-
-
-

Updates the rank of a node through a node_iterator - node_it; end_nd_it is the end node iterator.

-
- -

Constructors, destructor, and - related

- - - - - - - - - - - - - -
MethodDescription
-
-virtual 
-  ~trie_order_statistics_node_update
-  ()
-
-
-

Destructor.

-
- -

Private Methods

- -

Overrides

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-virtual bool
-  empty
-  () const = 0
-
-
-

Returns true if the container is - empty.

-
-
-virtual iterator
-  begin
-  () = 0
-
-
-

Returns the iterator associated with - the trie's first element.

-
-
-virtual iterator
-  end
-  () = 0
-
-
-

Returns the iterator associated with - the trie's just-after-last element.

-
-
-virtual const_node_iterator
-  node_begin
-  () const = 0
-
-
-

Returns the const_node_iterator - associated with the trie's root node.

-
-
-virtual node_iterator
-  node_begin
-  () = 0
-
-
-

Returns the node_iterator - associated with the trie's root node.

-
-
-virtual const_node_iterator
-  node_end
-  () const = 0
-
-
-

Returns the const_node_iterator - associated with a just-after leaf node.

-
-
-virtual node_iterator
-  node_end
-  () = 0
-
-
-

Returns the node_iterator - associated with a just-after leaf node.

-
-
-virtual e_access_traits &
-  get_e_access_traits
-  () = 0
-
-
-

Access to the cmp_fn object.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie_prefix_search_node_update.html b/libstdc++-v3/doc/html/ext/pb_ds/trie_prefix_search_node_update.html deleted file mode 100644 index e136495c5841..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trie_prefix_search_node_update.html +++ /dev/null @@ -1,628 +0,0 @@ - - - - - - - trie_prefix_search_node_update Interface - - - - -
-

trie_prefix_search_node_update Interface

- -

A node updater that allows tries to be searched for the - range of values that match a certain prefix.

- -

Defined in: trie_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-
-class Node_Iterator
-
-
-

Node iterator type.

-
-
-
-class E_Access_Traits
-
-
-

Comparison functor.

-
-
-
-class Allocator
-
-
-

Allocator type.

-
-
- -

Public Types and - Constants

- -

Key-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-key_type
-
-
-
-The instantiating container's key type.
-
-
-

Key type.

-
-
-const_key_reference
-
-
-
-The instantiating container's const key reference type.
-
-
-

Const key reference.

-
- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-e_access_traits
-
-
-
-E_Access_Traits
-
-
-

Element access traits.

-
-
-const_e_iterator
-
-
-
-typename e_access_traits::const_iterator
-
-
-

Const element iterator.

-
-
-allocator
-
-
-
-Allocator
-
-
-

Allocator - type.

-
- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-typename allocator::size_type
-
-
-

Size type.

-
- -

Metadata-Type - Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-metadata_type
-
-
-
-__gnu_pbds::detail::null_node_metadata
-
-
-

Metadata type.

-
- -

Iterator Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-const_node_iterator
-
-
-
-Const_Node_Iterator
-
-
-

Const node iterator type.

-
-
-node_iterator
-
-
-
-Node_Iterator
-
-
-

Node iterator type.

-
-
-const_iterator
-
-
-
-typename const_node_iterator::value_type
-
-
-

Const iterator type.

-
-
-iterator
-
-
-
-typename node_iterator::value_type
-
-
-

Iterator type.

-
- -

Public Methods

- -

Find Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-std::pair<
-    const_iterator,
-    const_iterator>
-  prefix_range
-  (const_key_reference r_key) const
-
-
-

Finds the const iterator range - corresponding to all values whose prefixes match - r_key.

-
-
-std::pair<
-    iterator,
-    iterator>
-  prefix_range
-  (const_key_reference r_key)
-
-
-

Finds the iterator range - corresponding to all values whose prefixes match - r_key.

-
-
-std::pair<
-    const_iterator,
-    const_iterator>
-  prefix_range
-  (const_e_iterator b,
-    const_e_iterator e) const
-
-
-

Finds the const iterator range - corresponding to all values whose prefixes match [b, - e).

-
-
-std::pair<
-    iterator,
-    iterator>
-  prefix_range
-  (const_e_iterator b,
-    const_e_iterator e)
-
-
-

Finds the iterator range - corresponding to all values whose prefixes match [b, - e).

-
- -

Protected Methods

- -

Operators

- - - - - - - - - - - - - -
MethodDescription
-
-inline void
-  operator()
-  (node_iterator node_it,
-    const_node_iterator end_nd_it) const
-
-
-

Called to update a node's metadata.

-
- -

Private Methods

- -

Overrides

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-virtual const_iterator
-  end
-  () const = 0
-
-
-

Returns the const iterator associated with - the just-after last element.

-
-
-virtual iterator
-  end
-  () = 0
-
-
-

Returns the iterator associated with - the just-after last element.

-
-
-virtual const_node_iterator
-  node_begin
-  () const = 0
-
-
-

Returns the const_node_iterator - associated with the trie's root node.

-
-
-virtual node_iterator
-  node_begin
-  () = 0
-
-
-

Returns the node_iterator - associated with the trie's root node.

-
-
-virtual const_node_iterator
-  node_end
-  () const = 0
-
-
-

Returns the const_node_iterator - associated with a just-after leaf node.

-
-
-virtual node_iterator
-  node_end
-  () = 0
-
-
-

Returns the node_iterator - associated with a just-after leaf node.

-
-
-virtual const e_access_traits &
-  get_e_access_traits
-  () const = 0
-
-
-

Access to the cmp_fn object.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie_string_access_traits.html b/libstdc++-v3/doc/html/ext/pb_ds/trie_string_access_traits.html deleted file mode 100644 index 4ce9e864a951..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trie_string_access_traits.html +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - - string_trie_e_access_traits Interface - - - - -
-

string_trie_e_access_traits Interface

- -

Element access traits for string types.

- -

Defined in: trie_policy.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-class String 
-
-
-

String type.

-
std::string
-
-typename String::value_type Min_E_Val 
-
-
-

Minimal element.

-
SCHAR_MIN
-
-typename String::value_type Max_E_Val 
-
-
-

Maximal element.

-
SCHAR_MAX
-
-bool Reverse 
-
-
-

Indicates whether reverse iteration should be - used.

-
false
-
-class Allocator 
-
-
-

Allocator type.

-
-
-std::allocator<char>
-
-
- -

Public Types and - Constants

- -

General Definitions

- - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-size_type
-
-
-
-typename Allocator::size_type
-
-
-

Size type.

-
- -

Key-Type Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-key_type
-
-
-
-String
-
-
-

Key type.

-
-
-const_key_reference
-
-
-
-typename Allocator::template rebind<
-    key_type>::other::const_reference
-
-
-

Const key reference type.

-
- -

Element-Type - Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-reverse
-
-
-
-Reverse
-
-
-

Reverse - iteration indicator.

-
-
-const_iterator
-
-
-
-typename __gnu_pbds::detail::__conditional_type<
-    Reverse,
-    typename String::const_reverse_iterator,
-    typename String::const_iterator>::__type
-
-
-

Element const iterator type.

-
-
-e_type
-
-
-
-typename std::iterator_traits<const_iterator>::value_type
-
-
-

Element type.

-
-
-min_e_val
-
-
-
-Min_E_Val
-
-
-

Minimal element.

-
-
-max_e_val
-
-
-
-Max_E_Val
-
-
-

Maximal element.

-
-
-max_size
-
-
-
-max_e_val - min_e_val + 1
-
-
-

Number of distinct elements.

-
- -

Public Methods

- -

Access Methods

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-inline static const_iterator
-  begin
-  (const_key_reference r_key)
-
-
-

Returns a const_iterator to - the first element of r_key.

-
-
-inline static const_iterator
-  end
-  (const_key_reference r_key)
-
-
-

Returns a const_iterator to - the after-last element of r_key.

-
-
-inline static size_type
-  e_pos
-  (e_type e)
-
-
-

Maps an eelement to a - position.

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/trie_tag.html deleted file mode 100644 index 62bf124544fd..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trie_tag.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - trie_tag Interface - - - - -
-

trie_tag Interface

- -

Basic trie data structure tag.

- -

Defined in: tag_and_trait.hpp

- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-basic_tree_tag
-
-
-

public

-
-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trivial_iterator_tag.html b/libstdc++-v3/doc/html/ext/pb_ds/trivial_iterator_tag.html deleted file mode 100644 index 1f59c5102de7..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/trivial_iterator_tag.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - trivial_iterator_tag Interface - - - - -
-

trivial_iterator_tag Interface

- -

A \quot;trivial\quot; iterator tag. Signifies that the - iterators has none of the STL's movement abilities.

- -

Defined in: tag_and_trait.hpp

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/tutorial.html b/libstdc++-v3/doc/html/ext/pb_ds/tutorial.html deleted file mode 100644 index 152cd57b1ab7..000000000000 --- a/libstdc++-v3/doc/html/ext/pb_ds/tutorial.html +++ /dev/null @@ -1,670 +0,0 @@ - - - - - - - Tutorial - - - - -
-

Short Tutorial

- -

Following is a short tutorial illustrating the main points - of pb_ds. Concepts - describes and summarizes some concepts.

- -

Associative - Containers

- -

Basic Use

- -

For the most part, pb_ds's containers have the same - interface as the STL's, except for the names used for the - container classes themselves. For example, this shows basic - operations on a collision-chaining hash-based container:

- -
-cc_hash_table<int, char> c;
-
-c[2] = 'b';
-
-assert(c.find(1) == c.end());
-
- -

The container is called cc_hash_table as - opposed to unordered_map, since "unordered map" does - not necessarily mean a hash-based map (as the STL implicitly - implies). For example, list-based associative containers, which - are very useful for the construction of "multimaps" (see - Associative-Container - Performance Tests::Observations::Mapping-Semantics - Considerations), are also unordered. It is also not called - hash_map since there are more ways than one to - implement hash tables.

- -

This snippet shows a red-black tree based container:

-
-tree<int, char> c;
-
-c[2] = 'b';
-
-assert(c.find(2) != c.end());
-
- -

The container is called tree - as opposed to map, since "map" doesn't say that - much.

- -

Most of the STL's familiar methods are unchanged. - E.g., being, end, size, - empty, and clear, do just the same as is - customary. Associative-Container - Examples::Basic use, and especially basic_map.cc, - show examples of this.

- -

This isn't to say that things are exactly as one would expect, -given the container requirments and interfaces in the C++ -standard.

- - -

The names of containers' policies and policy accessors are - different than those of the STL. For example, if C is - some type of hash-based container, then

-
-C::hash_fn
-
gives the type of its hash functor, and if c is some -hash-based container object, then -
-c.get_hash_fn()
-
- -

will return a reference to its hash-functor object.

- -

Similarly, if C is some type of tree-based - container, then

-
-C::cmp_fn
-
gives the type of its comparison functor, and if c -is some tree-based container object, then -
-c.get_cmp_fn()
-
- -

will return a reference to its comparison-functor - object.

- -

It would be nice to give names consistent with those in the - existing C++ standard (inclusive of TR1). Unfortunately, these - standard containers don't consistently name types and - methods. For example, std::tr1::unordered_map uses - hasher for the hash functor, but std::map uses - key_compare for the comparison functor. Also, we could - not find an accessor for std::tr1::unordered_map's hash - functor, but std::map uses compare for accessing - the comparison functor.

- -

Instead, pb_ds attempts to be internally consistent, and -uses standard-derived terminology if possible. -

- -

Another source of difference is in scope: pb_ds - contains more types of associative containers than the STL, and - more opportunities to configure these new containers, since - different types of associative containers are useful in different - settings (see Associative-Container - Performance Tests::Observations::Underlying Data-Structure - Families).

- -

pb_ds contains different classes for hash-based containers, - tree-based containers, trie-based containers, and list-based - containers. Inteface::Containers::Associative - Containers lists the containers. Design::Associative - Containers::Hash-Based Containers, Design::Associative - Containers::Tree-Based Containers, Design::Associative - Containers::Trie-Based Containers, and Design::Associative - Containers::List-Based Containers, explain some more about - these types of containers, respectively.

- -

Since associative containers share parts of their interface, - they are organized as a class hierarchy; it is shown in Figure - Class hierarchy.

- -
-
- -
Class hierarchy.
- -

Each type or method is defined in the most-common ancestor - in which it makes sense: - basic_map.cc - shows an example of most of the associative-container - types.

- - -

For example, all associative containers support iteration. - Consequently, container_base has the - interface:

-
-template<...>
-class container_base
-{
-    ...
-    
-public:
-    ...
-    
-    const_iterator
-    begin() const;
-    
-    iterator
-    begin();
-
-    const_iterator
-    end() const;
-    
-    iterator
-    end();
-        
-    ...
-};
-
- -

and so all associative containers inherent this method. - Conversely, both collision-chaining and (general) probing - hash-based associative containers have a hash functor, so - basic_hash_table - has the interface:

-
-template<...>
-class basic_hash_table : public container_base
-{
-    ...
-    
-public:
-    ...
-    
-    const hash_fn&
-    get_hash_fn() const;
-        
-    hash_fn&
-    get_hash_fn();
-    ...
-};
-
- -

and so all hash-based associative containers inherit the - same hash-functor accessor methods.

- -

This is discussed further in Design::Associative Containers::Data-Structure - Genericity.

- -

Configuring - Associative Containers

- -

In general, each of pb_ds's containers is - parametrized by more policies than those of the STL's. For - example, the STL's hash-based container is parametrized as - follows:

-
-template<
-    typename Key,
-    typename Mapped,
-    typename Hash,
-    typename Pred,
-    typename Allocator,
-    bool Cache_Hashe_Code>
-class unordered_map;
-
- -

and so can be configured by key type, mapped type, a functor - that translates keys to unsigned integral types, an equivalence - predicate, an allocator, and an indicator whether to store hash - values with each entry. pb_ds's collision-chaining - hash-based container is parametrized as

-
-template<
-    typename Key,
-    typename Mapped,
-    typename Hash_Fn,
-    typename Eq_Fn,
-    typename Comb_Hash_Fn,
-    typename Resize_Policy
-    bool Store_Hash
-    typename Allocator>
-class cc_hash_table;
-
- -

and so can be configured by the first four types of - std::tr1::unordered_map, then a policy for translating - the key-hash result into a position within the table, then a - policy by which the table resizes, an indicator whether to - store hash values with each entry, and an allocator (which is - typically the last template parameter in STL containers).

- -

Nearly all policy parameters have default values, so this - need not be considered for casual use. It is important to note, - however, that hash-based containers' policies can dramatically - alter their performance in different settings, and that - tree-based containers' policies can make them useful for other - purposes than just look-up.

- -

Design::Associative - Containers::Hash-Based Containers, Design::Associative - Containers::Tree-Based Containers, Design::Associative - Containers::Trie-Based Containers, and Design::Associative - Containers::List-Based Containers, explain some more about - configuring hash based, tree based, trie based, and list base - containers, respectively. Interface::Container Policy - Classes shows the different policy classes for configuring - associative containers. Examples::Hash-Based - Containers, Examples::Tree-Like-Based - Containers, and Examples::Trie-Based - Containers show examples for this.

- -

Determining - Containers' Attributes

- -

Associative-containers' underlying data structures obviously - affect their performance; Unfortunately, they can also affect - their interface. When manipulating generically associative - containers, it is often useful to be able to statically - determine what they can support and what the cannot. (This was - discussed in Motivation::Associative - Containers::Data-Structure Genericity.)

- -

Happily, the STL provides a good solution to a similar - problem - that of the different behavior of iterators. If - It is an iterator, then

-
-typename std::iterator_traits<It>::iterator_category
-
- -

is one of a small number of pre-defined - structs, and,

-
-typename std::iterator_traits<It>::value_type
-
- -

is the value type to which the iterator "points".

- -

Similarly, in pb_ds, if C is an - associative container, then

-
-typename container_traits<C>::container_category
-
is one of a small number of pre-defined -structs, each one corresponding to a class in -Figure Class hierarchy. These tags are listed in -Interface::Associative -Containers::Data-Structure Tags and Traits::Data-Structure -Tags::Associative-Containers; - Design::Associative Containers::Data-Structure Tags and - Traits explains this further; Design::Associative - Containers::Data-Structure Tags and Traits::Data-structure tag - class hierarchy shows a class diagram. - -

In most cases, however, the exact underlying data structure - is not really important, but only one of its attributes: - whether it guarantees storing elements by key order, for - example. For this one can use

-
-typename container_traits<C>::order_preserving
-
- -

This is described further in Design::Data-Structure Genericity; assoc_container_traits.cc - shows an example of querying containers' attributes.

- -

Point-Type - and Range-Type Methods and Iterators

(This subsection - addresses points from Motivation::Associative - Containers::Differentiating between Iterator Types.) - -

pb_ds differentiates between two types of methods - and iterators: point-type, and range-type. For example, - find and insert are point-type methods, since - they each deal with a specific element; their returned - iterators are point-type iterators. begin and - end are range-type methods, since they are not used to - find a specific element, but rather to go over all elements in - a container object; their returned iterators are range-type - iterators.

- -

Most containers store elements in an order that is - determined by their interface. Correspondingly, it is fine that - their point-type iterators are synonymous with their range-type - iterators. For example, in the following snippet

-
-std::for_each(c.find(1), c.find(5), foo);
-
two point-type iterators (returned by find) are used -for a range-type purpose - going over all elements whose key is -between 1 and 5. - -

Conversely, the above snippet makes no sense for - self-organizing containers - ones that order (and reorder) - their elements by implementation. It would be nice to have a - uniform iterator system that would allow the above snippet to - compile only if it made sense.

- -

This could trivially be done by specializing - std::for_each for the case of iterators returned by - std::tr1::unordered_map, but this would only solve the - problem for one algorithm and one container. Fundamentally, the - problem is that one can loop using a self-organizing - container's point-type iterators.

- -

pb_ds's containers define two families of - iterators: const_point_iterator and - point_iterator are the iterator types returned by - point-type methods; const_iterator and - iterator are the iterator types returned by range-type - methods.

-
-class <- some container ->
-{
-public:
-    ...
-
-    typedef <- something -> const_iterator;
-
-    typedef <- something -> iterator;
-
-    typedef <- something -> const_point_iterator;
-
-    typedef <- something -> point_iterator;
- 
-    ...
-
-public:
-    ...
-
-    const_iterator begin () const;
-
-    iterator begin();
-
-    const_point_iterator find(...) const;
-
-    point_iterator find(...);
-};
-
- -

Design::Associative - Containers::Data-Structure Genericity::Point-Type and - Range-Type Methods and Iterators discusses the relationship - between point-type and range-type iterators in general; for - containers whose interface defines sequence order, however, it - is very simple: point-type and range-type iterators are exactly - the same, which means that the above snippet will compile if it - is used for an order-preserving associative container.

- -

For self-organizing containers, however, (hash-based - containers as a special example), the preceding snippet will - not compile, because their point-type iterators do not support - operator++.

- -

In any case, both for order-preserving and self-organizing - containers, the following snippet will compile:

-
-typename Cntnr::point_iterator it = c.find(2);
-
- -

because a range-type iterator can always be converted to a - point-type iterator.

- -

Design::Associative - Containers::Data-Structure Genericity::Point-Type and - Range-Type Methods and Iterators discusses this - further.

- -

Motivation::Associative - Containers::Differentiating between Iterator Types also - raised the point that a container's iterators might have - different invalidation rules concerning their de-referencing - abilities and movement abilities. This now corresponds exactly - to the question of whether point-type and range-type iterators - are valid. As explained in Determining - Containers' Attributes, container_traits allows - querying a container for its data structure attributes. The - iterator-invalidation guarantees are certainly a property of - the underlying data structure, and so

-
-container_traits<C>::invalidation_guarantee
-
- -

gives one of three pre-determined types that answer this - query. This is explained further in Design::Associative - Containers::Data-Structure Genericity::Point-Type and - Range-Type Methods and Iterators.

- -

Distinguishing between Maps and Sets

- -

Anyone familiar with the STL knows that there are four kinds - of associative containers: maps, sets, multimaps, and - multisets. Basic Use discussed how - to use maps, i.e. containers that associate each key to - some data.

- -

Sets are associative containers that simply store keys - - they do not map them to anything. In the STL, each map class - has a corresponding set class. E.g., - std::map<int, char> maps each - int to a char, but - std::set<int, char> simply stores - ints. In pb_ds, however, there are no - distinct classes for maps and sets. Instead, an associative - container's Mapped template parameter is a policy: if - it is instantiated by null_mapped_type, then it - is a "set"; otherwise, it is a "map". E.g.,

-
-cc_hash_table<int, char>
-
is a "map" mapping each int value to a - char, but -
-cc_hash_table<int, null_mapped_type>
-
is a type that uniquely stores int values. - -

Once the Mapped template parameter is instantiated - by null_mapped_type, then - the "set" acts very similarly to the STL's sets - it does not - map each key to a distinct null_mapped_type object. Also, - , the container's value_type is essentially - its key_type - just as with the STL's sets. For a simple example, see basic_set.cc - .

- -

The STL's multimaps and multisets allow, respectively, - non-uniquely mapping keys and non-uniquely storing keys. As - discussed in Motivation::Associative - Containers::Alternative to Multiple Equivalent Keys, the - reasons why this might be necessary are 1) that a key might be - decomposed into a primary key and a secondary key, 2) that a - key might appear more than once, or 3) any arbitrary - combination of 1)s and 2)s. Correspondingly, - one should use 1) "maps" mapping primary keys to secondary - keys, 2) "maps" mapping keys to size types, or 3) any arbitrary - combination of 1)s and 2)s. Thus, for example, an - std::multiset<int> might be used to store - multiple instances of integers, but using pb_ds's - containers, one might use

-
-tree<int, size_t>
-
i.e., a "map" of ints to -size_ts. - -

Associative-Container - Examples::"Multimaps" and "Multisets" shows some simple - examples.

- -

These "multimaps" and "multisets" might be confusing to - anyone familiar with the STL's std::multimap and - std::multiset, because there is no clear - correspondence between the two. For example, in some cases - where one uses std::multiset in the STL, one might use - in pb_ds a "multimap" of "multisets" - i.e., a - container that maps primary keys each to an associative - container that maps each secondary key to the number of times - it occurs.

- -

When one uses a "multimap," one should choose with care the - type of container used for secondary keys. This is further - explained in Associative-Container - Performance Tests::Observations::Mapping-Semantics - Considerations.

- -
-

Priority Queues

- -

Basic Use

- -

pb_ds's priority_queue container is - similar to the STL's in interface. For example:

-
-priority_queue<int> p;
-
-p.push(2);
-p.push(4);
-p.push(1);
-
-assert(p.top() == 4);
-
-p.pop();
-
-assert(p.top() == 2);
-
-assert(p.size() == 2);
-assert(!p.empty());
-
- -

Configuring Priority - Queues

- -

As opposed to associative containers, priority queues have - relatively few configuration options. The priority queue is - parametrized as follows:

-
-template<
-    typename Value_Type,
-    typename Cmp_Fn,
-    typename Tag,
-    typename Allocator>
-class priority_queue;
-
- -

The Value_Type, Cmp_Fn, and - Allocator parameters are the container's value type, - comparison-functor type, and allocator type, respectively; - these are very similar to the STL's priority queue. The - Tag parameter is different: there are a number of - pre-defined tag types corresponding to binary heaps, binomial - heaps, etc., and Tag should be instantiated - by one of them. Interface::Data-Structure Tags and - Traits::Data Structure Tags::Priority-Queues lists the - possible types, Priority-Queue - Design explains this further, and basic_priority_queue.cc - shows an example.

- -

Note that as opposed to the STL's priority queue, priority_queue is not a - sequence-adapter; it is a regular container.

- -

Supporting - More Operations

- -

priority_queue's - push method returns a point-type iterator, which can - be used for modifying or erasing arbitrary values. For - example:

-
-priority_queue<int> p;
-
-priority_queue<int>::point_iterator it = p.push(3);
-
-p.modify(it, 4);
-
- -

These types of operations are necessary for making priority - queues useful for different applications, especially graph - applications. Priority-Queue - Examples::Cross-Referencing gives some examples.

- -

Determining Container - Attributes

- -

Similarly to container_traits (described - in Associative Containers::Determining - Containers' Attributes), container_traits can be used to - statically determine priority-queues' attributes:

-
-container_traits<C>::container_category
-
is one of a small number of predefined tag structures that -identifies the underlying data structure, and -
-container_traits<C>::invalidation_guarantee
-
- -

is its invalidation guarantee. Invalidation guarantees are - especially important regarding priority queues, since in - pb_ds's design, iterators are practically the only way - to manipulate them.

- -

Design::Priority - Queues::Traits discusses this further. Priority-Queue - Examples::Generics shows an example.

-
- - diff --git a/libstdc++-v3/doc/html/ext/pb_ds/update_policy_cd.png b/libstdc++-v3/doc/html/ext/pb_ds/update_policy_cd.png deleted file mode 100644 index 115a751c3503e9ecbafeeae4f11a3f94f3ebc4a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 8570 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 diff --git a/libstdc++-v3/doc/html/ext/pb_ds/balls_and_bins.png b/libstdc++-v3/doc/xml/images/pbds_balls_and_bins.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/balls_and_bins.png rename to libstdc++-v3/doc/xml/images/pbds_balls_and_bins.png diff --git a/libstdc++-v3/doc/xml/images/pbds_binary_priority_queue_random_int_push_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_binary_priority_queue_random_int_push_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0349bc7d62d2c0017543d8a0055b22d6b06eebca GIT binary patch literal 31082 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 DHGFn) literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_binary_priority_queue_random_int_push_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_binary_priority_queue_random_int_push_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..41bf7476c00fed5811482a9bb6bf97efbf598891 GIT binary patch literal 27614 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.34e-06 + + + + 2.68e-06 + + + + 4.02e-06 + + + + 5.36e-06 + + + + 6.70e-06 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + binary_heap + + + + + + + + + n_pq_deque + + + + + + + + + n_pq_vector + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..49f928156de259af0546405a1acb4de7a4f4c8e5 GIT binary patch literal 39761 zc-qyycRbeL8$X`xl|4hZ?1X!d?7c^JR`yEB2u0Z$=YMI=D1sFC2(x*@F17VTQM?s=%M8tkUA}Z!>jpY=OjOA1-ZnM~s$tA7a3!_gXpQr*-p1J9{ z&wk_ks9jJ!nmqaKXAi~ZaL#1rPg70CEuJf*6Z51S3o**~y&65;rO){PCDtuKCFi~RWB41vq9 zWV;3xpUClwwU{FHx%}gCo>7#19=7B0p#I3B_WAh9GI4LS(G%-|*MbU@8jjuIcI8lQ z0)pgD2&+Dkfy7kC2r5vLjQd_%cHlHN&3=5#-N^iYUuiEOn~5a*%A;~_#)w$wgojbq zp%2eB4)DDnigvr~Fr~svkCL8YNkk69(sSqsqQ0FKF+69J{NYE!q-(-*#LEQmQOa^i zNk+s=VmWiM;O=SRRppm`lXuGH0;#@!?th-9u`m?G&-78(I+sLOU-XUAvV&EI83Emb zlx}rGO2ISYsbDP=Q9}<#|7SxLHJ1aPG%NNGmm23w zya}J)DTy?a-F)xjQkc+gXGtkXo~tQ(JcWl*Nxd>Q!#*|RNTA>Kk1@lVl_|Mf+<88# zX9qaH`T!WC>PiXEL|iR(^B%e`^7Ln`vS$`gK;@&maYq~O@I3YTK`e7hiFgLDBhj#k z7V4#r`&DdwzEZA@i-aerCFBurSPhDVtEb^CpTUjsDjBn|)4XBoTwy(7yxO|XH>EDV zXl4t#+@L{QN{Jt%dRE)aDg5Mf`Xd>RGjlljd}U$h3kP-N?-F}l74{g&=7MfD53vL! zMv{b;-}Etyz?oq)y-JpQ1RZ=fXkMdx;oqkH`GQ^`Nnyv~$u7`xD#k1Z`n4}*cw@zntfro}h!BZ+1{ zY~6MFQk6JMxD^~B@d=lOkNZ20HO zzRxX&TN73It%(G%-E23ybGhP}tBL1De%rFh<&f??Xn+&IW^~I@JIDIyCPYrSJz-unB%D*eX^&LXUD1v=-B5d*;5Tz>BSG-{QGP@7fkvr5 z_2E&qb1rra6#*g1KUS+wJAK7VH+36X`8ZNmSN|lETs`MjQb(?lLZfx_sar}iS`KA| zVFDKzH9uavcp>#mk^%dItjOTZyBlxA@Vz|R>Fu9?&ku>Dk8HUN6z*J-e5_1AbJAx% zWqJDN#rDF8Sgu#&to;N-C(qq_oWcFh+@pOw;@J7SI*w!}gQ@mrWC8`v7eS9^FLuzu z=WRYAse;1oPI0SH$l1K zqXFBCtDGOdYUNto8QlC~%R8J>1bJf)GKpU{=8CvLpFSTexUyhH`<`;0B*X9Nn_hYm znim5bIAeWB#%YhxA90K$snLJ2=JD=lh{l^!St6x%IP^;jx+GSPmcO(z`f6LBLx1UY zv>FFNL8v`3__w;>QSh>!Zt_}gXyp#r6>Q7QfPif>kd_31074dK=#<2!Q_DzW((@IVVTAef3)l z00n>m*d7U?3!%S$H6H}tM_1Zj&Q<^+4Ko|7oyTaHxmcke1p3Whs#cbEW>QX`07Jlb z-B2)65QadZkO%+-4if|efk5=*jCYDkqnm)f*%bi!eYd=ele_c2X6@FtBi$2ep`|Wn zj;_wzHCuS?iKWqU8LP{77FL?_Qu{_u)5_J!-NnMn6#(9;wiG&|LB|?^WU?NacPtixJ`|1L4aMNh`Vy{n@+(pF67URd#%-l|1NEaYhzRyVY(D_px*KFsF z3HcZFJgJJ50~dutzUOciK8pGwGb}jfEa{OD*pWiO42)y`E(_o*f7nZ`Y}|8zE~Me-Xi9 zzr~P)T|^)l00i4x9B_0^d)Ej6Xm3%0kO0u$vI3z1puL3!1_Ho)3kwVafI)lLU;r4r zcMSo6A$!+Q02sQr`2I{l1m*+;!w>HS1j8^UApazZHt!@@`^d9wH~b$mxIy2{1udjS zT}h?!wL~Gf96?6-ynREOUEQxW+2xXwoAt;dE}8Qv?kE zGer=f-%{BBry24G7bF&3kcSu-1QuNW!h}>*nG_$QC2C=@jR{fTkW^Q9zy3BR8eKyT zlmQev8QY+U?|>rON&5i{D9Ascz>&YDhywxzg$W7-c!)tk{ZCM6a78U#mGQMKexbrU z`jYZx*I8h5XGme!*|vHh`wkjztaMl`k)5&GL*vg9K^+hpARrbvz=szO2E{*idbhS09 z?5eDK>NtwC`!p7^n6?88DEll8IO4Yya!{bauz+%i`5l7E@2ru}NREQYWafW_t>LtC zUwqKPK;$3tHpi0^Uvj8%{MjhNSc+&VnW;Q495jQw@;$r{K}=qEyS3k=dL%mKs|p=Y zQFO=C<9Czam)+reAbGs`47~zvv-BkGil%Xs!Lc#6TC4-4FD4bvlzjjc zCQzHfl#a6woO%)*_sHEo%K0mfh@tOEIaoyGst#N;VuY%Cg>Bs*)$x&nz(|M+3-0j! z7AE|+_@L|u5Ejn@a)=EG2&MsXU$3f|6Gq$dgKi5)WF(1&m^joF0Fc0IQ>f4o@20`= z7VE3MX*`vm%Le_HKKmr&jLswRw|YMclz>$*)@&He^GB9b@XT;?pJij8e(KP*1>mlolX>YG@=G1L6q;9P^ExVW7*z`w@+8OEe%KQ-0uM4TW zUU>c*>)N;ZQ=d+JyW7G%8lD-w)TY?6YH3t_^BpcBP1=lE4MYH8>A!V9&>Bn`O4~-% zL((jk#>^pq>bz=O(BgPqkf}+|HQ>U)7rEkZKjY+5(<7`YnWW&4A`+fVdFfxyG*|Mw zJ6nW!n7iiLdZhErgfY#K`vvZ1K(KCv@z)!)3?ItFtvD~!78trT8M}HtG^&)`tce2h zqFS$O2(Tly|P~k~eeV*V?w13vI1&R+_YCX6Zn%QW+lbLFpHjQwfc}O1NC` zavme27iY?Dyn0;xL^sM6N_GASs^zOJj#VQAk@eGa86j5RzqSk>9S_hg=QkzF3nV(W zP^e1S)D6MgNKYbM(2yF|yn%D?+tkrISZ+c?BR@$d51&+}lg|xO*eSl^92F|Ii5fwv z?_yLgh<2G(-HS#i2ms~yHF6n~K)$er77-Lt7h@-7k5dstek?&Qt%+*zd}4HDY03Ii zwP7=)G}qdRnHwit(#QDTZ_)U$Js3IN)mXlDNi5;pbjIKVs1-gp&a1f6Uz!P(6v)2jUiLwJjliRi}RA4f$uif~JU> z9?FFPb(*VAQdGTk&zjGa(B!amP(Bc9d9S)69n4}pb6NHs@v=^OQo%!}mkNrDt*DF} zrBiE6tQ4n`_)62zV8Ks#US=mJerV~yY$Ix8@7Ixq&-jEmI57><9Nf{!{1{BBZIp8p zm-qQV<#_8=?dOFOo_MAd_EpZK>EmZwIj57qxYGrHFNm&Y8g)H^$X1sIqjXc=$xl3` z(WHGZ`vj??$;C{?&G1}O=l;}JjZl|Crh|-m`6odc$4#coEq%1~J}OxV5Terd7ZvGDXboMM%4;%EZc z=yCAN)b^YX+AIpcZby=(rcxFbhfc??dV-=?h$LGQ1@~OvQLnez%tRX__*XTO(#OEf zlapfov&<^wKyR4R=B+rwievqLA5>2raaN4^r()4y?f&xUGt4{Lu8dN;fNV!r2u z`$P*2>;%musGK5TVxomVHX4_qGP!fJaWX!D%G92ng*HAo9Q7tjd0{+lEZeZR3`Am+ z&-r5_J(7!&v9}n7)FrQAw-tT)1UjaNb3P(r-tHIE9y28=oKAK#axTL z3!=Y_Vw5aRJ|$MuLb!vk>*7P?km`&bg;{3Sv%C&=U$vnOKXUyXC&2}!&YOt43%q>A zex>uq(S#m~#Kl@FYI6ZK#r5lA_~wuWZ}VXVw#v0-TA~+ci0nVz4AujXoeyG@nk8-n zm-D|O;`2IBfp^)Ul0dnVf*1HwEnnH)q@|aZ@cfz48%gK#=->X-ESc@c!n^xCL=X%C z`7K8rY-k69CdR!`4HQk3d!ZUA2msv+)j+{$0^PfY0HAxJ8YmP1h3;L$0MNY<5fl!9 z?uCe;2mo|1L8NZrQP|7Od^p_No%hKmoE&C7tCILYCOQT%Hn4;ly#9# zkIYGuTIX${GqCh}7QJ%Pu4<|?I(QPMF=pz|_JS9^l&s~6nX;UF-|74_2pRB*R= zRw&urBk;ZJ7oYO<@C+n%oPTdnQQk@PT%4x4_C#Fm7=P!42pgLxP#kj_!hrkDzu!T6 z=z;mhSmH;pL+l&FFn#0u30;vrK+2YRuP`s1rz`yv;@=Z=rN&F0$9$21=u!;^?JqcN znO~7*4=xMFye_;yJ>%W8R$JZa;}yI?U2(FWR{I8?&{(MQJ;mq810P$l3H>CiOWH7( zSc)4>7!e1akuh1_Di`tYSy-ZD+lmQl6@T%-`yu_iR-XKOH+7F~fqlA4&c8@1$vv^D z&*JSX{AS)$Pps&B?%nY59H}0H?*@hLbGlRS2h=qPfdfEAQxIQCj9zR>Jpm2^c!hIK z;<6Zl$2qc#%q0$C!?`)IrYT!m-}Bg-;M0Gqj%} zk9lqD!EHp@EeegcIs2k1XS_DC&q5*hco0eKk-2HYXq#7SBAf1BMU6qUPt1>mCO zO{V|mxw64#pMfH+3vSa+S(S0C6o(!pb&@cRWPN8N!QyHAlxQugslbX4N{A#pS`hA> z9B$i#58iAat3`Uvo-RJ~z@7R&QQa~6NrcaUKE_Gz(TG$!-(3MYW8xWIA`fMbcEai& zFHaw1wppk{^2s@sg*k!SS8V}Z*#a~dRx>71r&+bBoqCg%$cU@HiZLpRb>Hf0GD>WR zlgs8dk68Ox_|9ediQF{cj+|GFxw`O*KNQK~j$-4axMDb?cu9=(so>2sq+i)XeO6t7 zrkOtcOP*DhrJICNpSfMJtj2wj5!jz#E(~z=T2^TQqAe3k6YW0N%AV576F{Tqp5ILsgc!OYRbPkz6bGY z;BqjPvV)OaVo;1?^FVlE+_$&w{Fj5(?&dyevT%ILt;!#``FO;P`cBrZv$T%{rX?Rn zOWw@=Dy%jE-8y2*2~5SDi17XUP6+UC@j-=yz*s`2@IxF9f@6k*?k9HHvw+B2=C6^| zNw6B0Tg|c&(Yh#H{lGq{VUW+4mdF({{gpoo_H(?3Oht{Kd)_Kb zzjt(a8}>_&p7wvvmC1ZqbmIJ0#}-JBrYOm2?aSs0sS;i^sklkUu!qz2ns-k;p08|` zc%?di;dz%tI9S3wpZ$a9+k?$bc$d)q%pZ2yJ{5X{^Ir>oNM`rCG6%KcpIRC-_&8Kx zt0Vq&<=z)uAd1K#%W{VOMbOyy$&;LJ4T_4aR;^mRcXMwyPL3ldTKxUr`pLYOWQDr2 z;j~>M8&~0sF+dE_*o8j4}TSD@bdZqT`VmRi6F+m7ZOhLi8mDzLlH|VV)*%heFS?=sa1ckZ0NdHD@%7e_`?h#JS$ijwYkf&Om;SXh@{ zv&y(~Gg_)gKkdV3(Y(4swK8cA(%^B)QQK~@%4@rnmp!y@ft8>v(`CTVG&c?TSFwum zak(lWg6Up?FTQR!p*X1YGx<3mJlWh#*nAkhdTvtO!?~Zd2C+3JY>p3FqquIyJBejc z!uPYo?_DK0?0_>W5CHg|wud7D@I7r0M*-k_+8zM}AojF90t7(pX?p}1fY|dS5D)-j zk7W>00Ai125HJ8@k7W>W00NH54qz-He8eFR8X_=*hO7~iN-~mUGT(i|s(nETbDi_) zrV`E|i1HScY%Q9F;=D9W!1~lfVySK-IvqP$=% zh6-Z8_lki279Z3GCm4)50g#8-Wkg`QjQ4e46u$wI4S(lf#9eKZ&R$koYU-yC zh?dA_fSTiEM#XVox>tP4T@Ip?)IlT;}RNqG=S%_kl@w)yZB&+$JOb+ z-MxLaolN~VGq#WrZ@0R{R{zdfy`RtK#kG&d2zvXR%c%AI{v+z@x?Xq9R*lGGPwyvR zejI;%Uy#jz%1kFHa$qlsf9RUv~bo;noinp2;j0jLx@rH`2tC|SC+TuBPh z1`y9pF*XuDmgT0(rYM9QQGSL0E#GpS_liW($Zd6iL-Jc-k#PKNy~GnXd9#tPE=De! zMpMS#y>+^YD0lK!kss)sLMmbMvGQ;`WXPRjEnS*QtBAR0MARB33hMlC!j)pUtzqGF zRJn#8dDU~QqtnAT2vQ8Tl1r=0x%w&LKyES^kH5OSnH+5RrV?F6{Yn3*i*a|7?=VnL zCcaH3afY{@VP`+;Y9Hz|UFB$8*;UO(Zr+`feCpfLHwIlAFn|_aY@akTADr>gu$^4z zqWOv0W7&#v4;d4zl`URrfI7Hfoh;^LDb!B$btm{L(!2|L0>V0JigS6Rb029^ z-#YUOc+c#cPmtCe#f*&maJ9?!BV@j;>tAm8q|enQY=&#m@F`8%T#N)#_?|5%^@Ph+ zBDQ;$x1N7V2#M`Itz)A@h0(?oWzdpIt zUVFuRyBDJOg$sMYAk+MsXz9Y5c(UK>dq%`K;{qZy;Ebvn5+W-swqpznva~KPXmz=w8WBMf`#LMqp)yDdC z)X7O^hZuRdr((?_y_MeVP_~OYvfEFLHW93fITKOf{XF+ONQ*kCTm>)`3;u`L4Mt(Q z!4a>!lyD`<2o^R(WKHUmEiZ40`T;!i*_s1*iOeaQ14^7?huKFE!~EM9y5%pF$} zyp`%YzgZjq$6XT1U~fC`d-LBHR`CMyO3eI)kvLa3o{O1xF1V1PERJT7JmPys_1rS5 zY;A&2q@H~RWdW9}K$p3(^U5UwFX&)*X zK}PtDqfJI#ZQJ>NLn>VjuaCx2oXyOM_A`@W)&npcahs((j|CPuwtPR-K_yW@v4l%d zhu9xN{qHPHWg1aZG$$~*atjL%Q4ZH_c#?fX3o`twg0|tw&CRF^Vn@T1#}Y)Q;`+MsXw?xm zI0GRzaG==M&Tb111RN+faNvg-od0bFa7epuGYuLY3sD*x<-NrdQ-B61rpzyckAR_2 zOr9P0CX=0!pV5(5)AZ8VpxJK+p#F#t%n*QKg9dq+q50pY00#}JC=CZ%uhHP5VL^7i zQRr%@*Fc*BZ7(&t+PbOJh&1FQr3g}qcaV|yq8-DA3|3oUxB3G?2HP8SAmCv}=6_oQ z9Incu(lpZOMYCFGN==s=D$z_6hM z#)=N;z^nlzHgpcNH30gDcQ$BnMYUW>chHf>-6foYtc=_&sbkS*MK%tOp|VE`dA1n` zwWHTglQU3Z!)CuR0Q@69C}RMI%~As$W@7;K4?-O?x~B)!2W14nu-Rvz!)yeA{vjTK_HCqvN((VSIc8M>~)o_vYChP@JL|La~4X24V;0plBb4%_svOX4(h; zOBev{$w1J&A}vbly2C5JTssSeEXkK$8-UvrzZ01GIz)dT8zfj?&IExEitAz6EHUt5 z=6dkIc>bij@5|ysL~&_$BQsgVI}3#xt-bUjkLnT7=j{0WuKElK*kIZJdgh;VAixJk z^Vm$V!+Zb(2>dTTzw&PAp95DE!Xf=feYFw&SA7{0FaWTD0>`Sp4(#j&7z!IGhneWX z|KjZ{??wJCIB50}eH(4a5pCsdqUYNIW#$^aD>hKD6a9gmy#U9u7Xv!Xr!Rp1;rIm( zQrz9JzlEzPjWp?Qbc}Cjsr;?LoCFzyvB2`5GZ^+Mu!Ev{IJV80!+Z(@=pT+@u#lGC zjrilbiYottC2I$kexko%u}ERi#s&)*D=Y_g7y}&JMhxUopDgt+uD$e5pkJCp6hgYQ zquh3+sp~8d-rO0IzwdYqFEMNf`hfm(6vLlz%YmK60LNy69p=LrK#+fS>CxP>bAHUW zOV5JErKkQti&cAJcj*u8lms|7^Xo7llK_JJvrErG>iTQDGTAqm51UI*r$s-24HWE5 z4>>TV$7X&(4>Qw4{@tbLAVpIP4P?hA=Gt@V+4tGR4&n^%*bc12?$SdJisup7%rEF+ z=6UEpyYw8&+eeda+r;_4WqwS%PW_W3D*KG$#T5ES*ihL|^MCg9p$A3t2yE6D^f1#r z^xwUD4pJIXT;*NsE0+qZSMM{+@Ddv=*u8q_K`}i7oAm`f%uEmccdwp9Sz1)u!u5{^ z+xF`BYcPvE232gJVE5{w2gUUWY&$B@!_4*2fA;FP4KOVWtzR1Kms|f|4fZ*QJ`Niy zNbDNypvWG9ZBykipHcyW{$IHDxVXRU;=KSE^?w6kb|nnfSU`bcC;J0CJpzGkQ{^xp z9|3~>yHn3W${}h2*$o!w;$U~`pJH|DVc4B|*nzPSKRfjtq*|iVI~mDn zZw0ii!217+OD*kNXT*gtspTB2IGG-zl@ zMIofSar^?mjI6BfV8aH9HNORRP`r=CW{trQGw;Lx&B^EB zaK#7oLLNfTw(0oZWHkK5#K^=y$;-%`Hk*>dY)0ev>G|2Q=k?~=J1J$8$ z^LMuLUAP#cv4I1|nkNoFC^GOm0R{78S<(FFzP;vEc*9`u+?2z$^l6TQKm$Y!Sf!Ee0TsyRFxxMJ=>A_VSUd zf_Csp@yjUKHVOU%kHs{DGB$Yj8wG!CY50K|1=zM@5Qo_)fd5-EKPd-Vv(b?L_B#u5 zGpcf{ekJqA@cj*sR|dlaEbt(J*x@-as{q@^4B{|b1&DtM3!n*y2Cdz+(ArIT7oHTf zc8jUn$>z_>$gKkXt=%pxGI(Rd2m9N7h=Vc=P}ufp5Qo_?K>S;LfMa`;M$2{gJ#w^R z5R?&Au>AsA8CuPyJ+kJ=w`%4U1gKCKXZ5#Z?LRwK~`wymV z4=_;rKVuT4=cTVL|7d>j@qEp&&K*{}lH|ENP8QmwXaPq$}mv7 zrDe0mDwm~siZS@rdehx$>+8|C62!eH7h*`{ay57v*Tr?jmnUJ6{jI3F2GJJ4?e8$uey#zg$5RoFXC@`3<;S1n)3TP0CD9 zu~~ef^s=*~y)&XqU5(i+H8sYJ)K*f{PjqYWRyXUwT^;IRd}Q9wfIAw<5mUh6QZ@-9C~d+uaXfn5NkyDH zb4{^8V^Qhs$2>Q^NG&xjUH+&t`^$i|Wm*td@)_0?CKWs@$o7*M~?4w9#ONC z?whvPSn4u zOlK^vw2Uc!KnP`0v2u*BzP>_tZc0yg`Ud&6(lQqk5vnYY&J(qL;qtF1lyb;oUR9-} z#MWK!1%lC9B9jvL#%(X+Gi{(?C#v>j0NA%w+FC+rA?RaY)^}3M&gl0|9r@^X#Ag~X ztq!;JzR+u0y2$grg7I4AxOitrNI3Uw`zghY5e3JEF+yTQ{pvlo_?#0|Itx$z1Bt4i zR2;dSnP~iyY$%t(_0u9<(!ylj=XsZ)Zn?{Yrr(!(8Uq(N+F|%n|TETGW9Ih%4SKSXI)ysn$ zH$WVsl3y3td7W}^Es0)y<8D%f^3GHJ=`xOs_)bhiaNNBM_f(@H&Bvx5@Fn|& z=K0#1?kh{Z%>bva?%RB^b4lc9&E*G+zPA#rMP&kKpVwSXDjB+4)IqdZ01c7S@O*qX zqAwL3jd(rHv2cYluv$dtEY1C=j|foL1uce`a}_*}7L{l8sL2{^2sh7Ak~+Cv3#_;v zL`Y9iTVC2{*`YKUeYc(DyumH@=`{hvbk*;xhHF*&Z#C*3wBL?9ai08Z1{E@n_YSY* z_v58$12%Q{PE4GDo`#O!EMIF`lad_P<2NKz_q!PM*oo&ns|nXdYB%*0tRn9&%l@?A zMBow1m$az>?UOi4Sn-_)N#w6OyzFgg@I6UI@4Ml{c#Q1|qsSWZM`i7}QI4Y70L9z3 z#e?pf{;xiNnpet;9+E&CgAazw*uqe{i9F zqdf8EBzq@Yqt4=hddyOv?y&ng4hpIZ<_|oq8Ba=0w1g-g_gn|?K4(*k(CRk+S=-)g z3S!|kOwi`BYZdO~4!Udl`a-h?YIS**p`omg#O93VX{tz_h5_aoQF7(ui7*M5#sLE3 z30kkuax&Hnmi3#Lw50gOR|ikp1>C-nO#R3~(kxqSqTYPgo`Vaj%2elaO|x{Q&Rvl4 z+1islLb+-pe?^WS zhw^(ijhmdtt?|qogXa3CpPmFrpE9i7uozs6eDUIFxPf_3Y*@D3IpfAn2dihdQoCHl z1Tr8oh}bc57sCb7wBe^$=chZkT4DvBJaQP#cBD+?7W|299sAy%B~1MpcZPZVw5=JN z&M+6hgZt*PmvUd$g`>?zcV>MrG%OFq(an&Z&%DX?`7GZ329M=d{w}7uTi=dz#az@y zp7wR=?RXE#>B(zibh45?k>;4pnt420A)#0_e2c}=dQPkLlAqPd@U_$yCWiVJqKt3s zKGu{JV$7HM>o@`(*Rx`;oE+#Xweu?wj zJ<;-qP24b2{%-Lq2{J1h>37kfElci8?8$6IKDWDIjN~I%7FO`>%ezCsglFE#Z4y~Q zRoPmKy9S6IPIid+h7|0m;TpaHv;2FQcOB!<+RUWwO_s! zaOjamMG{tNC9qJ}+X=j8lWfj!Qz54mtoU%I;8XvD{Hu%BoFC6n04xMk{VJ}>Mg&@)y6nu>P%Io#`4ZUJIy~X&Q!A^H|H+ z6o-N+ndVxjMq4kYSP!1GAqA=V%wj_&9fZ-;`@R07_)5q;%MYl@Sq zme_E*F)8yb(mWLxAOB3rz^kdMTiz9{wf)Z;hr2%CZ*EBKdLrTxO@1tvdCn<|Q4ct4GOcDz12|Y*cY=AGW5jP-7J}^dw+hR1YgaWTIRi~S^OB!OPcIJ*@i1-QO+9q z)RCk!LCOuPS<;@Io2NDltlvCkzIV02_$}_+i8r;MoZSnr6kG{dS6;?hR&);-$P+86 z&91$Ft>{|rTyH*Kk$=x~Z>q80cyCIE24@>h7LmHb2r8*{eMG z$mLFwYItU5`RPu|4DUNDj(5qSClrxg4xKLsZ3KlzAD28GdMc#e(AZ7+<{?c+D5csh zFTBtQY0mWZL82R>k}YGkUvGF)i7xwe>8FCTPPnV9b67_jvUfaBrL3*54Jh3NP2Rli z@iVlun(R_e#=*B@mLUafBS)J;A?Yj+Gv#(CZ67ffr8`R$`EY#Iy zTuE{iddKxe@SRER`_eOU>T9-BVJy;)D@nrToToddL;Y38)E32YmSTZ!w{zJkO?j<` zdQb91NvxKA?|8)~CdS5w@L~JuIXi7(VKkazW(KhdzE$8p?C>r?tsi(E{)eW_q3>rh(#!^y;;Urb`9tApHldUN@F9; z!O_-bl#_FLyD1Ee?NO5(7;L^fmGtnX)$9*`fbqxMWjw1D3Pv=5vas)B6RI4J*G0p9 z6xctdEp(EDgKr#2xn@tLFnST zN{()NQ(aFZ?Th!?4?a1nuL;q+oH&)$AvG`t7@E9vlv&07QeBWw)W}zlLLoBs$ufF523vv2U-Gx7e$SF>%>JUO8V;YsBZR zseg`JJwi)W3hv2hu^y0CSFhtW zPA&0g0@|_~gyctbIft{>+@Xtd7hW(f;@y-_7P;8c^3l63%P_Q)<%TE{e3Gm(iq93ToP7!#{Yf+B2y@#hpsijdTa(V!;NC6HT8cX$L z32xC4sypGo>1EEn(N5jpwYF3mVl?ylIsG|4)8dslAAZ+mQfhIM0rO4XTTgU6e@LX& zy0ky5>}3<;Fu6ApPR#xhFpB(4C_rM0m_w%(g#%VPbTyP zgeQl~E{0T+BT2npKN-1brbQX7A0{Iwfy{Hi%|U;~j9Qw#n}|Bnj`hQhP!q;52#X+s zaIs1v124wAu+DpqTD`+et?P(CAQNv{#iFd{fv@^4aDQ z5_+R49CK?E6KiWP6Dun(FDok(ue>`KZH-aFa4un}z=hdjD4(&u`)dDyMR1yp!2QH# zowLGrRDRE_m_DsIWU<70Zfwor6$iJ{5iMaT5Cy|G zoOKQjbFvYXhPZ+eo(^UBrv#k4{YfV^Aajd`!JpN=Hq_Sm7^KycG8Y#GH?%q%CfcY* z@G}S&ab7(;Z_2EaD;b#B%IZO4&ZdMkaKBwbQAE?UuF`?#o@`&L(+#Bo7C?13%M_fNB>7ue(h1TTc_IIEcXg=W4CR=*Q?fm%yx zt__e&9-;00Nl&UHV)tm4)ony7pY98wrpn+N;kRjDDrX{+MoUB!6wG5rejnE?PNDZ@ z2<&MuOH7sEv#~Q1+|IYFuWj6oqnoAA%%T#Z?~Q#(uTOeGAP`<=DG>BdTi)2GqrW&z z0-4ZYaQggX(A(0ephQ7k&W#4M6D40*LKZ4YLONC2NN*q<$3RRn*4?83=Ip_b!cW@+ z;$WtQGn?;Zc&J!Q+~@rA;&Y7bshnAhiW?)!^Qc~AofPEf6HdU}*LgTx8uU{<_(V&ex5t%K}SkYR1VA67!CbtuKX4lYI3Fg-~>kHJE+i zuXh_{#um$wAT;$M&r$uQQJnHQl~__|9N(&; z&t%09-y}`)LLMB4m-WvB{bg5)J{L4mzjJIB7u%wO%nX(-t*!Kx2;JA!2NeKN5yq+! zWZaPa_a26c^9?QrJhm@e3*@`pTI2Pt{BY?-*gsy~Ai5`VRIlOoscxM!79{55#BUZ? zSzH;9l~INo-V|7*c@bOl?N~)ahK04Q%mZ~JfUPp=Bo$151eb$Jg_OAEz3(kgj@QE9v!}O+~AzJ{)BCc zqZ-ZZhco?wq}BvAawI>mILvS^H+MWLg7!Yjj4ikP7(yX6-JAXX^=^R zt5y`}lL$&u2St8%D_piZr>XN&V?OGt-AvzQ&cxtx>5Jap`i}#IHeRd_S(~2($}3+1 zSG>H>-8aC`Wi_1{mQZuOFtBKip-Y{2_R5dp>gZ0ND~VI*=oEbMcnMi0<)iWFZqq3E zBNgyZxpebIiv)D~X_MMh@kwIgc&G#fw|2)dW*`cq8s-Z4~%!+torD+Pqc~Lj;*y~8^xm@TBGSp7nsCultyiEA4{AY zeJRp$RcH0bQAkT)DmJ|L?FB(le=EnMuJ-JD!@K}U&^0Bf&er zZnt&&cY*DbUUwqZX3h#$+ZApjMPcukohI8kSU~{05ns*!{8cU> z*1`FIj`Qxu-pyRCwk7{#u+aBudAXw7qUdPtv@O}LMAOQ~4vido{3Ov$u;SZ`S*yEP zTDjOc+5mVJEzy0obMyNBk(Rr&vxC*e?GXU(3(Nl(MF8m6+4|cb=>ZIZJDUSAAol-I zI0^tlBGD5Cj#dunYqU~;!*@S}fFS=V3x^{BP%r`jfk1YCZvO|PXBz|v1|Sfi9XSLB z1wcW+%AkJLvHcT-{tpH3{M@c@=YDj3#>V?!@BRl2{;vmL))B3^w#QRwZ#)GQ_Dv>B zGxV%LKgAV2OuMr{b9XXoJLx#uZR0)I~vW*~w1o-{4 z@?Wy;MfsNuiP%2F@4qq>81#34K|nA9iXlTF|85@$4BURt<}VoxhS^^f2%{fhB$hFS zfHC?80i!VSK!7l1a1`eF?VMTkmkfwGrcf9df+@osXBZHS#FPOs`U^)vL6|ZS#`vMT z3&xPaG1?4*0>Kz~K%o#Ah71Y&yI%CnfMeVXgCj8Rg#(e8GAPE_gV6oJ7%Kz}V{V{j z81({?P)v-FP|Uf8fMBc{v`WPod$dY~V9Y-x41!q>6Ausy0>vnYLcsoh9vHZjKl_&q z28UtDPza1Qh}wA*>TemwTmzwJ2NoHIz5;_F2snlef%qFEFc^e{V#r`f%yK9cMn51> zAQ(f21pbX17z)Oi2Vf}X+(jF0m{_6}7N&lIW9Uxw>V<$YWk8I6z@QL}v4SBnFbBiI znE1lCjg-G+Xf=uPJOmV@eP9F%b6n6(#uz^&0)kNv1%hGfPAC$LDT86GLCDU_z<i_0VPn3X2Smsdtem zEHVr(Lu)2X9R>np>PZj+h#tJ&Oy%>%)X)R zAuKY?HbW2?JcyQIwi$}4H_$SS`HWUM7;^(H!)!AYQ*Uf{7n1`Zm~#UL!E7_y4?tkb zFxvtLVPXjfVb%eMp)mD541uZJfk4cAQAh|T2Y@iS0@F7@ySSKrLm)BnK!P!B5VQ3`Jpal* WG;?v=@k$|Rx&V@JamlL7k^CRc{`3O? literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..6d1f5d2c80e520829d3c87e8f5deebcc410b3b1f GIT binary patch literal 51837 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
d3-4=D^pZS%+;066pp9I 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 D^D}C+ literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.svg new file mode 100644 index 000000000000..949ed5f0a572 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_find_timing_test_local.svg @@ -0,0 +1,597 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 3.62e-09 + + + + 7.24e-09 + + + + 1.09e-08 + + + + 1.45e-08 + + + + 1.81e-08 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_hash_map_ncah + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_find_local.pdf b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_find_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a778ac263851bb10c49de54737abea27e4bc833f GIT binary patch literal 39732 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 AH2?qr literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_find_local.svg b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_find_local.svg new file mode 100644 index 000000000000..065aed6d4b21 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_find_local.svg @@ -0,0 +1,597 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 3.63e-09 + + + + 7.26e-09 + + + + 1.09e-08 + + + + 1.45e-08 + + + + 1.82e-08 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_hash_map_ncah + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.pdf b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6a62da8ae30a65f1d3bf352cb9488b3be2654134 GIT binary patch literal 39821 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 HGTr|Hy;dQP literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.png new file mode 100644 index 0000000000000000000000000000000000000000..71b62064e7473d3ee73c2c7fae4df46951916b02 GIT binary patch literal 50828 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 DAN2VX literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.svg b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.svg new file mode 100644 index 000000000000..9cb1af8a92cf --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_cc_hash_random_int_subscript_timing_test_insert_local.svg @@ -0,0 +1,598 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + + 0.00e+00 + + + + 2.66e-08 + + + + 5.31e-08 + + + + 7.97e-08 + + + + 1.06e-07 + + + + 1.33e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map + + + + + + + + + n_hash_map_ncah + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_container_tag_hierarchy.pdf b/libstdc++-v3/doc/xml/images/pbds_container_tag_hierarchy.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b9581c2ab63f0621b1d1533afc0d41bd53ffc84b GIT binary patch literal 9605 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 + + + + + +G + + +Node1 + +__gnu_pbds::container_tag + + +Node2 + + +__gnu_pbds::associative_tag + + + +Node1->Node2 + + + + +Node14 + + +__gnu_pbds::priority_queue_tag + + + +Node1->Node14 + + + + +Node20 + + +__gnu_pbds::sequence_tag + + + +Node1->Node20 + + + + +Node3 + + +__gnu_pbds::basic_branch_tag + + + +Node2->Node3 + + + + +Node10 + + +__gnu_pbds::basic_hash_tag + + + +Node2->Node10 + + + + +Node13 + + +__gnu_pbds::list_update_tag + + + +Node2->Node13 + + + + +Node4 + + +__gnu_pbds::tree_tag + + + +Node3->Node4 + + + + +Node8 + + +__gnu_pbds::trie_tag + + + +Node3->Node8 + + + + +Node5 + + +__gnu_pbds::ov_tree_tag + + + +Node4->Node5 + + + + +Node6 + + +__gnu_pbds::rb_tree_tag + + + +Node4->Node6 + + + + +Node7 + + +__gnu_pbds::splay_tree_tag + + + +Node4->Node7 + + + + +Node9 + + +__gnu_pbds::pat_trie_tag + + + +Node8->Node9 + + + + +Node11 + + +__gnu_pbds::cc_hash_tag + + + +Node10->Node11 + + + + +Node12 + + +__gnu_pbds::gp_hash_tag + + + +Node10->Node12 + + + + +Node15 + + +__gnu_pbds::binary_heap_tag + + + +Node14->Node15 + + + + +Node16 + + +__gnu_pbds::binomial_heap_tag + + + +Node14->Node16 + + + + +Node17 + + +__gnu_pbds::pairing_heap_tag + + + +Node14->Node17 + + + + +Node18 + + +__gnu_pbds::rc_binomial_heap_tag + + + +Node14->Node18 + + + + +Node19 + + +__gnu_pbds::thin_heap_tag + + + +Node14->Node19 + + + + +Node21 + + +__gnu_pbds::string_tag + + + +Node20->Node21 + + + + + \ No newline at end of file diff --git a/libstdc++-v3/doc/html/ext/pb_ds/different_underlying_dss.png b/libstdc++-v3/doc/xml/images/pbds_different_underlying_dss_1.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/different_underlying_dss.png rename to libstdc++-v3/doc/xml/images/pbds_different_underlying_dss_1.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pq_different_underlying_dss.png b/libstdc++-v3/doc/xml/images/pbds_different_underlying_dss_2.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/pq_different_underlying_dss.png rename to libstdc++-v3/doc/xml/images/pbds_different_underlying_dss_2.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/embedded_lists_1.png b/libstdc++-v3/doc/xml/images/pbds_embedded_lists_1.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/embedded_lists_1.png rename to libstdc++-v3/doc/xml/images/pbds_embedded_lists_1.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/embedded_lists_2.png b/libstdc++-v3/doc/xml/images/pbds_embedded_lists_2.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/embedded_lists_2.png rename to libstdc++-v3/doc/xml/images/pbds_embedded_lists_2.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/embedded_lists_3.png b/libstdc++-v3/doc/xml/images/pbds_embedded_lists_3.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/embedded_lists_3.png rename to libstdc++-v3/doc/xml/images/pbds_embedded_lists_3.png diff --git a/libstdc++-v3/doc/xml/images/pbds_exception_hierarchy.pdf b/libstdc++-v3/doc/xml/images/pbds_exception_hierarchy.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ccc3001173c3b073e0fba948a369c85e4208c23d GIT binary patch literal 7520 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_exception_hierarchy.svg b/libstdc++-v3/doc/xml/images/pbds_exception_hierarchy.svg new file mode 100644 index 000000000000..ac6067ad803f --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_exception_hierarchy.svg @@ -0,0 +1,76 @@ + + + + + + +G + + +Node1 + +__gnu_pbds::container_error + + +Node4 + + +__gnu_pbds::insert_error + + + +Node1->Node4 + + + + +Node5 + + +__gnu_pbds::join_error + + + +Node1->Node5 + + + + +Node6 + + +__gnu_pbds::resize_error + + + +Node1->Node6 + + + + +Node2 + + +std::logic_error + + + +Node2->Node1 + + + + +Node3 + + +std::exception + + + +Node3->Node2 + + + + + \ No newline at end of file diff --git a/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_find_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_find_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b570b0695de40d0798c44ab700476aa56a3f030 GIT binary patch literal 25639 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

A31k7 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_find_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_find_timing_test_local.svg new file mode 100644 index 000000000000..92a2914bff8b --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_find_timing_test_local.svg @@ -0,0 +1,369 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 6.07e-09 + + + + 1.21e-08 + + + + 1.82e-08 + + + + 2.43e-08 + + + + 3.03e-08 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map + + + + + + + + + n_hash_map_ncah + + + + + + gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_find_local.pdf b/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_find_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1e7f06c9ed2de18fd50e053174a9d495a0948bd3 GIT binary patch literal 25687 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 L78F#{R;K$%xqQuY=(n!N| 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 6.38e-09 + + + + 1.28e-08 + + + + 1.91e-08 + + + + 2.55e-08 + + + + 3.19e-08 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map + + + + + + + + + n_hash_map_ncah + + + + + + gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_insert_local.pdf b/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_insert_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f8880451bb77bc8b0459b3b1cc60d1a01b7d17b0 GIT binary patch literal 25731 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 ZFIz#oxE+o@z?hLHkd&8KK}(VJ{{aXxE}H-V literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/doc/xml/images/pbds_gp_hash_random_int_subscript_timing_test_insert_local.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d4fb54845efc3db11e6448cae2ebb9f4dd7d5d GIT binary patch literal 40307 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 3.03e-08 + + + + 6.07e-08 + + + + 9.10e-08 + + + + 1.21e-07 + + + + 1.52e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_hash_map_ncah + + + + + + + + + gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map + + + + + + gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map + + + + + diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_policy_cd.png b/libstdc++-v3/doc/xml/images/pbds_hash_policy_cd.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/hash_policy_cd.png rename to libstdc++-v3/doc/xml/images/pbds_hash_policy_cd.png diff --git a/libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..60a649e5429e6a8b6c5f707e207f2227ab99de46 GIT binary patch literal 26818 zc-qx`cRbZ?{I|V@Y$*rX>+E6gk?bw9w~S+#l&tJcnJI)qMj4T;qLdlQUdhb56DrT4 zad&sl^W69Ed3ye+SNM9L>-)XN`}%y|*XMIxzC7BB$|4|97zNM$m9jkw2mlChw|1tG zlmv*KwsUjvb_75%kS+xP01#7la`m=DV}80?dD|)4*|^)5FjrYW1hxnx1FRE;(*-Uu=pT(b5$Xc^{VA)WJ-?Gj)6)@U*rn)KP3r0a4n)O(rk)3-C7os?mhK)^4}d zSkfjHG91HsGCK6d@+sLEf?r>W@YtJ{W4r?O(eR)z8K%0!=FHO_{_z(*C25>Ph{Zg^Ub zt2_WXuxM1Zy}rKZAGec{rRZRgMORLEEC51bzV}gCc{kN0vRA-CxpXTrwu`c>mQd88 zz~cIKk_LGh(EyHNV=I<$biYPdze(xcPA!{8uC`$RLSrM&svu&xJPCoifD#crg=ei(NxA__pbNsV%@M7e0CFg888LLJodP=V7bvR)L zG|h_O;>?MU;Fad}{fD1#XT}F`>i0Z8ttsZ{)1i^Cypbl#b*VTpAHH#Xx`~yGt5IM2%Fb!szv4eIepb|uq_?AUxr30R!F+Vfm^3#+vfYkq_g`PSN>#OvR{gB zbAFY^)cj(z=gC2T{G!KHXZ0_f5l%`ZOWf6*XV#*lX(xaCNlKnB*?J7lQBo&BOV_AK z`3!Y|mnV?A?Xx_fYfjp~oXTMBtpW@Y7ThOyv*wwp_mjrAA*DgCTg_~CpJy>2v~xN| zDNsFQxzX(+Eh+5i6h@;O;j|c%N%Ly-L8Ev+ug0d%s~n*R=WNjGCuXw)KKV;ad|+!h z7PUE@tXW`Ms@9t$^w5cit;9Q+m$Yiavy|lF1o14T5ouuA6m5wb&scnok{~ndyE4hW zx>q|cJMzbESDDZ0a}K?=-rPN7Y8u^uzU_PAi<)!};FIV+t=LT>`na(t9gTgORpr%0 z>|-07DGj?r&pGxPhQb&J2+Y(NlaGeeI_fe9Jmc=yjCt!`&db0n|5T<>=icD{weW!g zU4N6=&VMh$nL-*>-!pM5`C-NJ`^FJ)r-x_AUm>D-#MfpbBkqJSbdx%biRGjY zGvsd)<|G}oSM`5?@*xj|qbS^=bhw{;Y)VtuC6AzYWyyi&hUU|@1 zBJ=hoP8z~ViIZUb#{`eaH?F510ONy`uO(aLCpFm!pnsbkv5e+NH$pTf?~_M1D$Tpb7j^qU}H z{67eafPaUQrA z1Ob22GyMP$JAjzBm4n^kW3;W%c9;i&e#o1Kovo9Vyt_Z(4B+54C>SXUL!eMd1ONho zib7DBe^7w=VNnH46EHV>0U$r_RzbV_c>L6?ueBYb-yuB=inem|@;Ip3Cg3})fWZ~* ze4T9UbXDYk8X;XfFLxibjhz<&d|1oh-GXDQGzk2ElC``v;-+KK2vwI-W_x}A@O1ww_9ccklDf#72=K^AFZhQKQ_C&IR9`{_~Vv5tc zYzPn};Z0JF{6v37t309TImzI1{y2TkebqKH>bKUrchj1<9$Vw3Z-v9X%>i;T%wH9 zpjaHCOUYocT_JlWLO~H!c=OoM{wf^XMnK@7j0A@G0fT<8k$@lo5agRlfS?$2{C*9? z)cXAz4gh^OB@hAt`ff}hBmnf?oIof52=(n63YsJt-S?$}lrx{-G|#?ykqGoGQ%&@-+N$Pr~?L z>U78sWj|r;Ajb2gV)VtH3gDln0s`~{{ePPYfAfOG!3*>c<^_U-mtQ!clv1Z8)+3bi zvZ2RtLN?T8+&%DG|9}(i?$H+75E_G=TM5BsGOiK{fG|p;x*GJ=^Ga#e#<0r93WFb5c2K#^w0S zDmm5P0I|4CAMu%6q*!SN!BuVS*EKUuZ!Dm9i+CW)v8%u({ff%W6mk8N;T4Vhw=-oQncagId_@C3l$}oo)%}n;rOful*2(k@+YxGKz_i8-^D)^n|}!K z59S|*#eb=BXWU5`ZR4KM2I^LEl&cDP%fvWxidXcJibQaO>TTsSA=Iod(%gm*Pr9d zdoQrRd;j*i`-hJ+xiil%H6Ne&a_*7l>azFV`a_#oHp=yn%=af|nq*#xHO2Wqeb0MB zhMnW-v-KArLlcxw3lz#n2Jn3-Rs*$M8jZ?~~@)WPr1(?Qj8@-q*96ra^Qhe?C`66nUyG)hsN87voiLFw?gU4qiV>k}n*OVaxKd$f zlB9^%lI9|EqfXA3NL~oSwR_w4yt$Sx?Bz^Q+UAoj2e#Kj}FJ642ftc#}+9(Rv z8Vf4OhY7U*=$z;9;p`;GinPUDKotrsV!Or6O+GC_nGV$#2axY)0rhQ%ErDWBbP!#k0qqSaxTGtj8vl6k{K!`fpeUtO_ zl-goOc7&1B^Xn(Mns&#B88!oPR zhCaVX@yQjJ%Tat`rjzZUQ$$Cp=ifQg8lGI=w#=RY3kM+Yvc+V0q_R)P*leI%KLnBv z4*38KLgMe}Zg*abdhmi+03J>8k~o_@u&*E^jQ6O|3ERNR)8mqq4CcJ}T1x>nd=`O8 z4@`OBk>Z5;w8-h8l8d)3COs@jRJzF<>Zc9xRLU}*YE+HX);$AueQc(E$RDwDnp|{d zsVjO^hn|_v8WhCndV$RFuCTd=hsKnG64zvsYwbxM($0%Q3a5)S<2*>f*XlwpJOYh8 zXG^{#P)j+Sz3`B$YcrIN8NngY70GE5z#P(ET$^0mA~eqv&lg4KKKjZvW$mP|M)!>V z=$3t_D#ks@I<-}wpbjvfpnYeuUMo0o)A(`AJ>$`hx7VYMg-#ITZ#Q_3ans#tf5B&I z2zz|yxOB;buLPoVWVlqx0@IbMC)rPaD5ZEXSt;^iQt6A~aI>a-uV)7NJ_~>7P_@f7?p%94guNMz!ASG>_!f$hY8>$`2!>;y;|~sSp|}EEur{y< z0s}#z2tA-S8QQ2v3#zRu_7*$<(c>pQbspc7$;ew+J2hCIB0cg-xqRLgPVM60E23Ay zaJYf$%Q-M9+f7SHe0^K{!h}1PuGWPPPWa3nI%I}qvlO!gcmv0o7;&Tve@=w}!9U>N z6##>9q`shka0Cp+j(|&3Uqms07?igIqV@>vH!M2Ove25vh?-rc)LG+->+6!|nD910 zC)aiICb-pSW|fpL2Hht2q1W=Dk4QREZ3H$U?WX-y7c;-X%wC?}p|wxc)UM&Ey_4Nk zuxP<6ZnF{W-aS2a=L(0|+FEyj|DK9uc8#IKax1r)N?6j7FZR2lmx7|YEmns@-nTSg zsBQL%M{IMreEys<#NVsNNT3lE>Se-rn`fh6rUe#iXv&sduPMNwea5AoT+@0nl3^I;!UAqY4lmM9qK@Eh-S2m zsH`CYAu@b0yX~UpGoXf=Q%?*Li3e3;ylsKh?ztN_!l5xIH9eBf_$7Tn75760?kiO# zA)D38&V!z)m7X3FdtW7ALTrOU+=io#MjCn!YDge ziyWWNr|M5hA$f7t0q-g8&ea`|-QGpZn}Xk~u>Pfr3UQfI`Tg88rIf`?cc+N>>U_j} zGnq5OcXcQ$WktlrY~mVfKUGIHGTj!FHIzK;MeUDX_+xsJE!}pBat}y}!&-hyOh6H^ zA28(iI$S6W0R8Sjp>P27y90$HFtvWaMgpMU9Viq9fPQzNFdzU1{C*7rz`i?f7#INi z?zmwP0PMTthCu-^C=Q2?DcQX%xj}S=yy}#+}PcF}Id>3FPh>i?qu# z5cSFne|l6E8%o>ZL*F_nnD&G+oN1@!HOJBUb<@|ZG#U0wK)7JXLmDKP9*N^FnDDIyRp z@#IBK9p-y?^}h)6(GoG=QupMfxPpvs4jV!&c-QyGX}mXngh*eLOPUb`}4wzb&6f`0SER)bkl;$>z>a zw@uIKtz0cZ%RdP4NRwCBuZJN<;ulir?cJXa)%P47`|#Fn4>m^9%%WmyUlJ@jG%Y%$ zSDz9idYo5OLL}1df>+Jw4Cm|QBI}md3wY=a%Yw{fO-n)vT;kCs$c3-8Du(@O)ABP-^_wH(qvx6m&vak2%eO0LdxsWTMN9c4@NH5uUD(*hF{^&c z(178(BMdz!vEk54Ge|b7XWFOw;4C_hs=-K1O@|)71b+fiRG$kDVyFGCR(vv zTjC847V72Y4`-U=dd;DG#9w4NhE$`{KkIus2sH;q&p60d2;}%OTN$(yY{6@+b;ABsb zePBIm?>Z*Gx}3fOTki#+=WsDk{mP564=yEkywzmJ(Ve4YCA$s zx>4+;i9MkF#UeCk-eMbvIFQq`pO{}1&E=8%w9cD&+?Q&gW4y!gm zrFrypcS|2ZG@ibCoIFXPfRkCU8Q#1IQxFbbe%{jhVeRnWwWS3Cr3Otrp|%md6J>jXjUey1P1PGs*O|Fua6+<>eWei5>?pKds0Rf1Ati zT9H9;Y;M8-;1wAh@vponaO+9w*{BmMP;yIA+8o$R?bU+foa+@8@^M%4D#CIq$eHkq za@fPDgx}_S5~K0)1kN)P;9%ybRSn`tVgmlV7BvtY+fIl-cu@mK{W~*y5Gig5#%3_4 zWAoLKB?i~!>Q*pgc{zw9GO6#nG&n&;KC5Y$n z{KTgSrYsz+;5^NO_-)dUBU6L;gQXww@6yjrPbo#u%}va0!!1Rqr+3IoWMmGp_DPlI zjxO!)j-I0!?Kg@eFd|{Pb!abkW6b(En1SPRWQgA;{y5Sxh(B2T5&tg!++ONZ3iJvX zW+_ra6o1ERW;-0r;1qwvZxeqU84ctg zEdGdp7k?YVgYX68$@FZbywq(DnYn&Fr??;z!%RhDV$OBeUzTN1L1r9hXOTF?AMv}y zABrPwf&7ETANlX%Z$ppK7B7tYL%5~5>A%`cU2#ru>toq3R5b$H77X|g7*r>fsYz)9e`*<~1@%2v<_GdxM zWJU29^_X7cpabV2R^;!JdMJ)X81fI6dgOnJ^D!|C{f%qI!8rvLk@95(@@)jdNw+K= zW6reU3AUsLw-+7q;c|@G0|y^J2|WCVj39rPz(a8?y-JL_R)PD)-DG$%w|IJ6}RbpdIfYNjHz+Ht3 z5k~7A<|P9HnJaJ*@{^Rqe;m3-{Vpko;aFy&{$MFb{g+T){aYUY7eYG7{z-_nKeH+h zLZCPa`CWPr!?CY|`h)cx^#IC?KT`9)am*k;w%X{lUtbNVthUX3fQSKl z^#&P1WycYU4qiYh%aEgTh;r-`Mn)nXS_CbdqoWRkjYll68}e49=RkyVRknHws|9SL zD-&_4;r&Hw10OAeY`xnrb(>oG^-mGE0!`o7rYv{GLm=pgSQfZ^a}fgtvBLiC4w9WQ z0=`?LdYny9JCbza6=-)x6V*o_tKMlP-tk@B%aPA3_FGhuC~Pfmy0v$KMrH4e*6_Q0 z?X{GqD@Kltq2%^Vz&gF7keTE_`eZO#51oGA!CvHrrb$AU3meL+udUyb^Z?Yk z?W#`U>Z?MOx)(aR&+GIfR`Tn^CfA2O>(nA!HT3%WPRqr;Ko#D|&&pqxB<&R@k*uI5~T=zpE>zYqY>bjraW}^r_A+pdFuxYTnVx^vgS&dPkG$BNsf?HMU&$>kym*5{S4D*HhFU2>5vV zp3<~Fbwxq-rAI&DeRJV{X~kY>-u~d81>1gZMApjt&-;s#e2CuJ_t(DAB*{lQO{RiMF=ba@Vg z9MVHED$Gxql-Rg#R`&Pv$TY>|*(T()Nph0V%55I?POzgI;YtDp=W|$*YDJuwBHM4bA&cAO+vE_0 z<>$W8OK;?^NVnZNK0d?3u8vrlgA1UEO>Mazm4D zr`v$i&!4Y&T@9-dmsWVw)J#Z8XmRGXOQk(A`dzA~f%t_cpQZi!{sWJnx^09ozn}Ew1WjDSkIWi+WgsC6R4Igyy2l1@aNxula>p+ygCeVPT-s^-LpL%N91%*v*-M3SICGVa&V>Ofj!f1 zDV>#c?O22r@Dxo5uM}rvq;p?HsLw?p9fQXG3z}Jo4D-)sowj{?)O)j!tX*x5&)%@I zemu0Yk}ft%`0Bb&{*ZHLb6u4dp_k$j>$xsVTbc~MI|1m1=qllbXW(15K-}#Fd-!~!i9-$jLbGbZILP|bBr0X*Q%A&f(@To<) zpU+CYvUZnTy>BhASvktU_vPA)I+m6b3O#~>7JfHBWlfC>Oe7v1wh!Yb;CC2jhjR=1 zpsUvnl?T?H!c9DfzmWHloRv84BrxHAw|=Qo`Gl}xyX~qbBs8Kej;5e$V2!`;gnWo> zkNLjKt1fDa117?9#(RxuA!;RQ0xD@M9N>^}BZ7RA!huzk7a!gZdTr;?j&Sp#Kc0#&XMPMRrY5sP#dp3V{; zf0xT92Q?7LC{cX!F_E<`%<{bdJL1N&X2-R@kaQYtbp^2!{+>?ww0hAgnb05a;^BEZ@e|c04NL>_ooS{_s2{0yTp!v(K*gdq*_g*1wC8a{K=ZF!+yRWUTgab z_KdTcKWTaT`4wijcra}`XUNr@t$<;U^TTl~Mb)S3wUSD&lz}#Kt}&%P5`QDhko+ci zXXfEZ6P(>5b&%gF{w6{7lhfJwFA+=PMGh4XIz#y{RQr5VxNP8++n`&=wnmG{)=k0w z4ms@S>?v%u3_pxseY zS%5pWLXs%*JIK;w=IySjRmR3NQ(UKcrbc;k+7zVQ6nGKIe0rV2U`G31&bGwUM^!c! z2%crn8nw0|qBzk#nFz7a8Fz-4-ucE{>|zo34PNdorVonUiOAo*|5tr@=f>;UtEcDH zngV8cBT_DX>gRF_xp60#z1}q_=!$fycZE-C;!!rfcngpiNcH`YIBCq}r;9U$+~!1b z`N7D>o~1>j&v+w&oTn^mW{q9%uft^0kdco#IUgwtHuEiyzIy%uV#HIwyg00Fp*AF4 z_v}j!3tPfQ^Nq=kx9|5~5B3E)U2oFabHDmlu{q7UgfPt9>ugtHko_&ek!p zl~UrC#d2{e-z4fINo=d`c_%d(E2mdA#Qg`KC`tqr6M@Jl=lss#=1>))3*C=xUr*55YJGAK9jjhiEKW7y_Q?-H5r z8g+Jq5Hnq<(_LjTdY(P?(#x;*$l2!Yx!dbi{5>7h>FalP2)+mf(O9%zdfqfSL6$Xn z@@k7ji)ypcH6cZc=+M7fq^Aux zte6IaaIGQtVLrKnHP=tgD7y9MdRJoU6&$ZwQr~*WnuBuD+zWbcnT4v%x zc_$;LH?yWp5WYOIKUX2{G-4RHbuZF$Gbz2DttBaLaCGHf@LLG^{IwS-6loU^59yJV zlxsAzs{Z_JG2(u$5V{t}X?9I(YdZ2b~t_ee#_$egz(@hrQR3LF_Zk}=m% zR$=-=F7h8G_oQ1kEC5DCjU(OOgLZ4O8D!%DpoCS=g^#S`pzy!o0YS(cP4kU1vYvb6 zOGY((*JD`D`kaqum8=__8@nPaH*@sF`VGJxQ`+^AQ;7qcK)gpYKpP3M{Xq^ZaA}QD z-?QL*nnX20MiI1<_GAkR`3{76+jCxfT8Lxa6q^LxUHIW&xPyqSYO3#_3e@(`TbF1( z?y~$&o_yprK3Q}b8RQk*QM|jJbF}N(_Pgjv;-jaaXB9Q76^D;VD-WXv#?=9ylYJcF zAw+~6EflxzGOay}iej`24^bMS+*Z9nS(EOHys0^#EOVwp@_9mbor^TWNS@9^pPXx+&mS}PI)1=7h{iBjVLM;+(In|B8W?p8i~R;iGxdtDF=5&%~U_Bu-$ z*xl#Nj!LOsaAcX&yL2MzWfi*VrC&RDo|j)lUxfWuKK@Y?DnE`S?Z$}x<;c8>y_W%O z4ix0fXI_YqSYGm9%OuK8dT3)A{^g;%2o0O&-P5&l?xVUi_2HfI#i@)V200gJ`j6YFh&i?2%G_R-a^x4asH-$8)U?sUMnezASshr=BOE`gru(DJX@NVNNxj(%L}2 zQKx_HGo8D1s$b-kla85j$1C)*u+43UBywnV%>qmaNKrB;J|r$>nGXvK5qG@`46;;u z5ERtn5PT*kS7g?0&O+>5f4UfoVXuHr&oj1OtEg64Fm54eU|zfXL_;APSBaGeOgfr> zb;k2{#MSm>>b(cYVa8g8?cE!`+>QxEJdAC*q|`+;HLn)LLI*U?Bs>sAyehgV?{e3G zDc~w=t1|u(X<`}E?plq@sC+}NDr-fuSu5Umj`|mpE&H0pJkwQy<8%I>p6+s+r3@`t zJ+bK9u(g0lP+HwuwF}b5>pMQ-du`-0B!N_FY0MtZYIQYF)fE|PWf~@q&g0|lWpF#f zXLZdmFD~m{WFFuJ9lDA$opMqQ&{?pZ{@i@FSfXq7ge+h->G7(Q@Y&UlnfQx3)#Y9O zW>-zFF|!vwZKLqHVHt!+Oj(AO0ZH-kNj09l-O!Mq-ynJWqtj0zvE zl4@<^fZ304X2LTaL`u`z8518mk%u(fv7#r>3-fM#2r*wbV~iKDZ89_0^Bndlhuh*Q zU9=-;xX(0oiP0#RYb8T@$Bx_gOg|pTV6yM>QzqjZqXZGcNUbBF8O;g1jxQ-S@6&S8 zy(terrKE4a&P6kwP@&p>wh2s#k32FSUJMN5r8CW{ndpoT;-BI-a8hW0;7rKB8l;+{ zxF8kAe^aj}U0Ka^uS=5yqQLYl-S}fcKVR73`HTF*tu_K(`PrklYFf(!*yC7)oAR&E zI>&q>cb^z+ciRa~&NW$j(=z=`HQk zALP9Wy(kR(1sULxwtq<)zi@dmwXifzUDoeTKw7d?b4l9Zf!jK3Mzf8jh>1(^{dT(wm~1E`Lyy@~TA)B0@R5%ZCKA2~yE zA{pOS{4@0pfnD(ZRtZU@$>-btU71SWM|;;z=iMANd7ddT;SaTxn2rKm*zU1&O;5M9 zOizDmX^-CAWEK@me>G9@r zk+atQaGE?9om)H6FH7*Qbt3&F${O!wj>G%3JbS8JZDix)J&ccGIWfw!A30(3b|lKAAK<%U>q9X@(3-QxMKKeW`+aQk7kvq zF$>y!J1rQ-m<&#O)ieD1u_ZWLJScrGS;|;*1uu4oDE1wz+qI)Y!rIQwtC5%P)6_g` z^+Zt>;hEP#3IV)vvefb2AeBiVC0*_P$6PWM!oynKvXq;{_Tl!>z0jR2X-w0tckVUN zCcnv4NvtU|L`oE~ud>JQAN!IYMu;n0_w!%-A|a5!KY-!NvcdoJdza0VyWK(o zv=Q&6iJz`m-I}BrYr6&=iH`W9c8){VYBWP1`tC&F9+ym|#;Kc~d|gx=M-~c#%2w`G zZjEWw=cWD?0*gyqcnhtFD+|%6wY2YX$zL0^k>D$)aeH7_Q1Re%N(zs<%%|DP`q<++ zT?4%eEiCF2S)7R1LK1=IY=O>ho1YZ8hg0p;3_uEvTHAdu%U4u|shgj^`M6^>7AL*z z-aZefrw>Lw$mdgdKI)7vZPeAZ57NK8{JH38<=ctCAZ6pBrT2qjbE9J2m6CS|$P@79 zZqUCYO1eR?MV16Oq8l8=zQv-NBR4NwLVW+4kgPdC4nVyqOTuWaNzh($dB zTTV5t&S5^3H&isy&=FE`a&^_Sa`V#jwiP+;K>%O# z%ew!_I3sZm&i_8E{58LCdU}5gl3-H3UMa|9L{Qx~aVs2!KF<05B*R0D(XNP!IwDMj#KbVIUv? z0>t1j=-1Cs-=2*+*!DmimOUtQ@O4nvA$IVEsqf&Yx%toAG5>*w|1kkdZW!lvFs5SP z$5cf1rwL_ig_#-d2k+HA1Nb@X_V*u??&tF)3K%0kppW0i$_ecb0EvQtqF?~Oqqnz*xR}@>=zzBJaCEZq z5_LyA2z)g$ZM3_skB!~`tG2L^+JurL&MIXI3w;5h0) zfUwJ9`hhi1ksz#oU@)vP1tJkR?nQvHYz75F;=tfo_J%@W`wbKVhBeMW5E2Il#~OPe z421(jz_8~e5W5@-iCqqgWxpU0wr|4BT`(LQI|u=OnY-9_iNQcvwg84>bBQrGta2Fh z0Aphi>~c_STZKTO*yWH2C^m*&2WI^M#KxdVEDR1uVPn`f0|R20g8^}rgJNkE2E&?@ zAQ%$I^N`rjgX8E297jLkIQjv{(GLU=`*{c;_VW->1h!p5Vc7Q~vF9!V2OkI&mTv-M zbOwlpp|E@>7y?1Uu`npsoCITZ2J2oZ1PsN(ps=6%=8d+(EdJ4lOC3F@^LB>|n8TAZ p?(Ud%8R+jrSO=?gz}Lmuw^KA$Xz#;S4;V8t2nrq^B`sx&{{^B#OPl}z literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.png b/libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..7b6263b99c65a2b87453238199d8093d97fda031 GIT binary patch literal 36361 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.svg new file mode 100644 index 000000000000..83dee9a37564 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_hash_random_int_erase_mem_usage_test_local.svg @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + + + 0.00e+00 + + + + 3.25e+03 + + + + 6.50e+03 + + + + 9.75e+03 + + + + 1.30e+04 + + + + 1.63e+04 + + + + 1.95e+04 + + + + 2.28e+04 + + + Memory (bytes) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_hash_set_ncah + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set + + + + + diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_range_hashing_seq_diagram.png b/libstdc++-v3/doc/xml/images/pbds_hash_range_hashing_seq_diagram.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/hash_range_hashing_seq_diagram.png rename to libstdc++-v3/doc/xml/images/pbds_hash_range_hashing_seq_diagram.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png b/libstdc++-v3/doc/xml/images/pbds_hash_range_hashing_seq_diagram2.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png rename to libstdc++-v3/doc/xml/images/pbds_hash_range_hashing_seq_diagram2.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png b/libstdc++-v3/doc/xml/images/pbds_hash_ranged_hash_range_hashing_fns.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png rename to libstdc++-v3/doc/xml/images/pbds_hash_ranged_hash_range_hashing_fns.png diff --git a/libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..63d18071aa28139c0db16525c7a5a339fee806b6 GIT binary patch literal 38457 zc-qyyc|29$_Xlhy*F0t@*Az0{d(R!oJZH$1d7h`tgi=%zB11w+5g9T>%G5{ZkSQq@ zN+t7@l8W+NqZ{~osfj>?YqUJj1bva-~E{=Sa3 zN2r6+|1r_@8bQ<4P8pBWpXbx_vVlitsf3eM9w4rYkcu~*in((>j$4X+zz&nk= z>Fc{F(5^8*)I*OyFVXV-wz}wiB0%VC|ARD^v#Y0Hc7IuJ@qFMdB5=~?>}rE`)j`bM z_;qa-XpUhWy`+}fo6~Rio4pa3XZMspgzR3yoap>v4N)QPrDnB<$AAAmCA#|NY;Z5B za4n?a+j!R4OtvMzsBDW(Wv>pI2r1`-U|Zuu(p5=RW1~@_d<@H1yry%n?Crr^4-uIr zLPl}fX3;X+e=2SC*Mu>jgS^?FPnL&;7GI9N9+NhHL~T!s?i4ETF4N=lXYwu=<+Ytx zJy;q2Qti%}mxT&5@>tBNuIQrFwrG`(0(&~m)EUkWJ;;pEiZK4vJ89$JrQ62#PeKw% zcW3rEs9B-75|TKgzV23xIXXWUU(%*=TlLJY`NHSXR|^kEo!2s|PEN~DW*%;dH|~5!r{n~~94Q%^6f=G{l8e@{xkq1j$4=CNz6w3auXDG@6Ol9H!TEQ%$U6T=}d6Qeiih*q)eG+Sf^Mg zX1B9r8|85U)BA$J-jlW^oFl1qH;qeK~=4?Uye&wUpkH>~EVP|BqfKYZG{X+}a> zW07q7tqD~#CH40wfjkF)EFJ%m>i=w5UuqyH6q?sYX?#LRHrovL1IPKnJb#cD<^MrP z)J~*8m2nSJz9{?P3~vvk8Anb*!KV|H89E&&QdrQW1`^gwrsAYZyjmsAWh2E`YSjGV zW*?*{%D*|+PmB46qO?l)byP~E*Vv$5t6Jk-~9fG z8+EbM%1kvi*%JecX;wSV$LAnJMSg%Rov)#B|wX*&j~@y8E59j)M9oj8_-k$n~N z0d#jaV;K|`-H|pyner?82u91X%Gn|0E zuOE3Mn%$m|@-pPA#3QL|cOMnY=7;TPJtLl}>JXaB{7m@0<*P}pPfNI>9QNL-mWlmG zb-2>ddX$;vZA-Mi0}jViS{FVzG`rC~yfEsma<<$}=R)*o?4@eqxZD_tT(Pqa>A8hP zSE`izwc_qAy?<8S6rT~K>aaixN6Zzp`4<)yFiB|Tr*~ZZ>f1i`{XnKvfXHqB9Efp> z3q5~{P^X>@T~$cj5PL7@MOas$8GG>c0MGNo5&izJ4Nr`Y6{{UT*=Q7DYA5cDtyUfh zve!`CiK&X?#GGZ)>64UL?lP>m0n>5X$U z6L~Ts9d%r5{EaeQ}1Z$XLtZY!TXT%~sZReZxsBj^0xa!6B%Ba3r@IK`z9{hs@OCtQ2dkYs`F?}F7TomPoIT^SCh zcJy@kX`b;%Yla>9)4=2HIUI?=Zi*4V?Ebo?R|)c0Gw{b-dFX~W`FiMRduKWzMzG&yAF=4kJ~eohb?ieB>?_#+Gy^YaJ`#r{0PL2*Bi;4mou>*p~X zivLg>rZ>W$g#Y^4eK=x^-!csLc7#gm+B!R~-$vKg*Aags z_%Ao6?dafYtLPO3HHWUXjUNRG6b6UGVxRyLCxL*$VEEfvuAi!e?*jf}KPd3)YBgW4 z0Pii`+GuTEx+yZiOMPuU{k+#&wh!JEE8*qJj)AWBj{0hfTSiXb(a$Tu*WS?&idb*u z_hX^K-WdLWyW`(I`iaN7#2~=Ve_g2R<$GjZqPX?>aZmsS`}xHGe?A@@*nGZUl;LSS zoUQ>zqjL1x+iTF+8G(R6iJmA9cwNt_{cLfEgp1@^&=hagFD(cRSbGW3N^oHvQtsQ- zy({6|Gj@KjLPzswW>cpSZe#O%*vINL)>ac;4=$N71V_S6b*Cxa0{2EjE{m#pboJ>) zCMa9F(-`@g(b1-cpGAfz9{k8&Ml3bpQ*bO4zNuAk92CB(R|pss zv8h)GI1~ZjJVrnfh)o^)JATYb*gYuv^ghtst0fLSvmg`~e35+re<){#!%vI6%nx`DK*s?eS<( z^*>kc?tQMjX0>#?2OAhp(;v=QGh1@&s7M*I^ny_VU|Uf6%>i-Sg$kSiDu|tn3IP9G zB~c>%3Cr%+BMmu6fJ^6nMHEi`se;}wjar?XOh5rmR2D= zOZJTfjg3jn{c}}v0`|k~;od{)j`Ic=Xj|rPbQa3*u97?e70YHK_kYV{r}&thFUHP{ zvEN@a^#jVcj3X~=JVE(x(rqVI*X+v<{$^$zY(=58oNTFz9irh;N!3{aLZXen=aS!# zSS;^~40PeKUVz0AK>lAu@|PY0+eIJX1mXu^2lEF2%pZ!3YT{Vn3>{;lE2N*QYQA?I zQdH!_Qc*DwlSHvzCNH8I{wQ+nz~||%h}x$!jm08IlWT@*#U)4Yk*UFh`DNn^Qg20F zng^&%bDdD|`1w@pf%_FK*tcWvJLcO~%se4nG3>9}_O1%x5*{k>FtIHMT4vOmeSCKz z_*?Gd1FKe6Zs+bHLWA7zy=YDZPQt&@t;(fzTT@^8T8sVoYOv$p^p%CoS8QEu)<)F4 zGb9Gt)9-rvovz$Z*GSs?bTL=%vUuKfo4N5}wPvh2g5-_RfmX*8twBNe>OM${E=x-fEoXj!n$v+$@deLeRkl~K*=8O{z621={IuTWGF zQ{N}umkdh6T^$P!cNY>IEA->DE*~^i^}Sw`<+cajCF65&`e1dG!$Gk`WC7joV;nRPSu z-1nD%MyK#Fp%PUNbhBUrGOmcr3tVyJkV_iJwPca?4@Ts&O@Ne{aDd_4C><-;-W2g#?k zB1Lb@6buq6Wk1|wHiw$!9#V>=l~226W@4o6pCblmpz1%}KyjG}bF}p(?{_Ef;0WjF zDBFxEarrKo_F0|5F#TxCG}@lSpKrZ--=Sw|@q=`3Ihgr1m1FN9s^J$uz8GxB9WWNC@69>1V*Bv zNHjQfg%gNfkvo`>Bf*4RCRV|XM4m=v$uIgO@skyYeSqJoQ^Sgumn5PUGsp4%?RyKO z#hJQgImwDFUDxDk;^sHZJaW;mk7bhWmD0k)yHpvtI>}SQ`Uon-Es_j>NrBq zceT$+zI}7$lAQJXMmevMcRU{~Y98P1eJJ$e6{{KUYs&bsZ{G!LkBdJYp?@<%8JsfX z{yO>Ovnl;M0qjKwpV0#Mxt$J3e*F6Gnu9xECP`AOqb{5xq;Z_TiV+^GdslT~{{R!6 z2PAiiU4g^i*<8!XJWj*PQDz@$ULxS|JYUzoj8gu6p(|9LG??|st~O7I>nHYqNTjd0 z*`QfDTW`52kDSi()9-?~2|t}D%HvcdX9-$6Gpcna=G^iPKYN38EqJO{FhwwH>^VC_ zbaplG`J$*?{>+dzwBmAJ!tu-jrli;G243-Kl_nUMJ%S6OwGdIPrt(mi<0a$SQMSGh z5N`ntUvYv>+6ZLmQl7WD;f;EArOdduw&&YCXx4=1+67s!ywiP1^M&+!$g9KhIPwhb z7#B?~TWhUBo~j5br)m+3BoT*rv^zORayEMI@=mWrvNZ^7D6xt}c#FxQ)w^7HjA^S%B2?ddDp#fRaxE(d7SSy7xH zcpO>vl)&1E+7k7lerKzYxb1ZcC^!_gY2;A|C~DKlqW~ys)5xQcP}HW8N1>poO(Ty& zLs6S~P80^;%gtjf6t(GGP&j;;^z#@EgQ8&soC1L?4SEL$plEOaD%hb-O#-JO9}d+? zfb9O*uXPL`^T4ZF*t4ML?(D|LJWuE{$!cp;Sa&a{(^ozKYHOh^Uo>S#k2Nly)jEI3 z`@oxML_Zwz-g{(nAmaJY)|}$GmtJ=BTs}mtP(u^(1@+k z4&s-1y8>MVfm{%J2M4-naG+ac@+i&YUy=zq%a0k>`-Lk z)6#!42BneIgPJaoE#qTnE_~N1rt{iT)X0I^a%2d1`Q_lkKWB6@gISpk%D-yepDL-) zKiPY-;OP7EhzIjeOujzsAOC(h%{NwI39~q1eCy<@`N?k>q3>TM7abK{b8~rWpH>zW zMt$SyIYGJlLsxDUaev~qVc+Yiqp`LRI94MZA`cxbks^KXk?mE6l2w*?U}!K%qLv^K zuSU*WgT8|eT@t5E+Fza&*zb^@Q!HW2f9Tf5-JYYW@gGYndQbG7OTF`$CRMFlKkByc z)BB#Bt_HC@D(3Vw>gu0QmcUJD=9 ze*6@j`KhPzZWwXvKY41csXYArLR8wZvYLHzJy-)KQaEn((fFeVH<3V|OLn}m0~+#k zSC z_7S$aJ_oKnQ2B0u?d0VBI?2oZ+Wbcfd`@$Sb6lBE?B-uadk(Z9vWJHEmMWN-yn9}s z$f7cSY)`RkQ1kQ*@v8z2GWlSSI+i|kCU;x2X>-$iqZj;QN4iTdGI4ifQUpKoxTL4G z7F!XGk)WMz@3LfZXe!wxoffnWtE~ZM-GcaLXE-uS@X}d6%Cb6^h?qOkH#jUf5?C_$ z-9HJpM39IYcTU|*K+jtRdRzQ+$ea4nicuW@NNAJh(Y8Iv6Sc^D5zRF=HBfTZi3Wkr z(;X6FXKD9-{H#N{q~S7rFfTe0`!R4EVrwcXXjD?B+5 z)CyY}N8HY6)$jrL&VYPp9-v%63hol~R zdCnL@bF}q7*@P13yK`cUy%Blu4$N0a3Ir`PJzaRc6q4SZ_79hCc>kBc3k%P~K0HM; z+V}hWT!ax<87)%5zxy>6+J)saE!L2z?ltF#sIM_mGiK8fjzM2PWivXXnLfMh`6x9Y z(WPQ`U#E)Or@v!YM~G%}c*uhhD&&FOr<79xzJRo=UA_vRDB zDrjj!Gv3o(#-60TCr)y}@Up)G_4(ci4a8n6nQ6XmKCG&hcxzFga@VDZudY11jR&_f;TF~=w6J}1@yzb zsd+!Pavf6moZJ-lW&K^a-V;vEdCTRSlF|K#dBuk9&Zd-5mv#;K9Ot5>tZRV??mrvzk6FvnDg2Vm$#*k z=TCBdsUeZDk(M`OsAKOnqR>bXld5NfIDM8!XlG`peR7k}oFNg?npDo=^>;3%5!M(y zDXtlK3UX!IaFsZAknbx2AG|f=h{FC#44}8Uc8x|s(VLtOjfSE(IUO1UMQ?ICG!}~9 zsf_ZPucGYMR2m;XW;G7T!oD(WauJ>et)100A$P!H4i)|C= z+OsR4DY7A)^lg}YgQ9s)0cFr}59fW^Y20_7>LhzT%U|{4>JB}ISQ3}6;d*|j`C{iC zjT*79`yX9tD@j3~SV{VNcL)QEJNd=Ua&=+%KRj z>>=#XM5DC9oM)Hn$H)o(2PZwRJ!thDU1sY%=7(AAu1&DEJzC~GQyc{0Er;z62tMno z$tm~aao@hW@I_s$Q>jV(+(ko$c4|+GL3J1Xdku8ej)7*Un@zoIA4OOxq}*b>d=aHb z>=AW6D)iDS<$ONVXTCE>Y4|fWhL{X)clEu1s&&bJsy8_wFJZ!u%y%zHtPm+BuhrB3 zz@Z;T?YV!P^}73GChZefZ{Cm_DJeCRQsfo>!c#z8&4yADd>;RP<$80xgLKnDef@^z z0Pjsk>^XGcM%NfXewV?Z~w4QTEVmH zd#?{tKC!>FY!lm)U7Y{&M)T#}dfLrd^7}9ad7(u9;$~T{*0~eohxQ>xBrcvm(rTGU zF>cn!!Yj91=`oJfl;XbHQ3k_bjhEvahep#(pZ*}v)JyJuW?w*V0ny5Ft=cY54Q`_S z@!{;ZqA3x14K=QI$pN@V1S$i(y0x9P)* zRWw=NNU5luL|7?KE4I;4mqMQ6uQz=BncnAv0fvAoZpqN0wx}Xzd;I|h2gPjKcPtEw z-L&smI25~S-?0cNcGJFN0VsCUzGIP4>}IY2i-KY|{R$Qh#cui)EC!1GwayR=#bUw! z03eVk#_ix-A@;wQ3INP9eh>q4ego2OyPF1C4B=Dk%^Dc2m&}bR- zR+3Z^y&q(A0nZTJ*0ln^%G22GS}On$Na5mkaHRnenhF$*eCt+x@yj zy}PN&kXNm~r%tQ8clRwSq{7MiRdkEg7tu1v{ z(p<+Tsx%`rYE5kt5^^#kGC?NIgNi+Xz?yd$jG#^1E*gLY2%)osc>o;t-$a0)SyM)d z)L@+n;MHftswHGpg_kPQ#XDYib~}HVtUy#PT$D6MZ=DL*3$Y(0gbjkwD)fyWYzsI@ zLg4J=7g1pUO$Ye>G-V+C8+MJ~&+nIA3$I$!ot(^!1QC$Sxy_zJ2p%LM!?w|fZGi_x z2p;rKhUYI{6i_0SF<{1CDWv=(99GAtNnE#RU)TCsSFL`6e(`v)@c9_1v?`lP`0K7e)}2tcF_P7A&$1A-$#Z2T~`8xuSt|8sK!hB;eo6V09CR=>}?=>%Q_;&ez6d`H` z-^soo{x{ixwUBe&cx}A8iC2_eCQwS@2qmI|EttH&%H~Q46EtB=w#(h42=OuaPImY3 zzexi?Hr{{&n18+kRe7$8(L?}my_oRU%Q%k2n1b!bdY;+m0ecJ~Shl_@_?v~nx6R8F zVqu7#?B(HqlL1%@G5PVZ7_70e4Orl7u(VSB0gIh5!Qc`BBMi&7xq1vCSa!0jNBmvn z57|J)&+n(Jhp)N%R+dO2L(Mf;zmfc(=VHqt1PWnSkJvU>k0k`kPImQ(zliuD_>j_G zbKS4_F>e$A@P1`YSN=3%UPkO^3BiISs4LsH9{>tR2$r4f?f+&=0Hw7+l7GXq7yw&5 z%kw`?nAJyiX+p4|3B$5o4j&C81j|l#_=vxY?=>OosH|JC-LD6!n!5F1=;p4-ysi5J z+#s|s0Q_GY1NqUQy z?v7T5D^!MCs{Wmq*@OsTvo+QKJMpq@y9J;Lu`ysr?>Y51F}}fu<2TTh(Ioxp_}3DY zIqQ}Gh>X%*Y{YpP+z~WlquJ|;N^t{rHbUrZ&Gi2^YTNcgKbjCN+sSYA!-2o6{crex zB^jtWuQ9QNooAu5t6OnA>BT#J0PJqlK9Z-&H|mnZoAcJgeveT0qlCag6ReT}+r|P2 zkuzW?vjE_4!hT?b1(3>+LVyjAlaLV+QT4O}w#dwHouctrvQrZR2TK^7 z?Vh1fC=JgL*~e4Buf|Inv*B}A zdfCzmZFdJF>~pq@4`2wDUywVQ4=HFlh{06_U3C~~0CM`1~Aye?r@|e9W zy9ObA5CqF($nD|;7(&Gu#gFX6q!q(cW+s#z- zM^clHJ&_PLNP@b9+%86dAykt=?qo)Q{ELhLsiq9XV8gC4uUD4C@T!v#k-1*^#}hXW zHsW(z7B-Jdv-uOk22B{7?IHviLbaKlyf+CP`8R0+QW*ok4Mt$E1Z>*1%*?9wvVUnt zX%)z>xh%3f62gaY*?-%155W*3Y&&`T5IFL0%l-y_G7w-bYeU7ZeyS2jJ^H*-w;4yx zF<$*-O<~v?SgsNPN%Y?S?*I=ICW*UJ6||6Y>mb%9_p6ScJx@Y{Bw zwryu%LYxe>ll?yGf2jMD{;Zl+hLM{yU!$3FkREwhTgupb0KnLT#6~ z#}Z;ax1NEmu2J9*UqQ1!<< zm0t_XaRjUW_FC+R2*83ST=hq7o2w^Op4rJ;G{Mn-U-dVDI@%V--y&j$0hEvt;oWI( z8N%G!^nO{e57KM}gfKx6ESYWF21-~$b(x*KgAyG5zZCs9D>G-#k#E%eE6x!cp84hI z-5#*J69NTEkba@J&CwGo$e?$!qeuS_CI2VILN zq@ld_nL}#>3sd^nSVR~Hn;5Fyn;WQ@`)BBI_8!-g)Y)t=dkco-%935eE*Di8$s7{) zu;^YQ>W!|^Q#-91yH8n#T#u!RoPpEDMUTPWdyn>@w<_~P=i@F~`#xCccYY}d2E1Oa ze5hR-nl;lAAM49E7+aycp)0~l)94cV*5D2x*WS^(2j?~-OnyUOn1$y1p%mH$X>uLa zsuIN$DG7o(9(M14>@PcW{PVF7b9~0{kn@%iia?_)Ls6VwaP{gU+ zWznDrBZX83CwP*yj0nK{0waRs$Docz9CCUVJ>AzVQg!ojlF$XtH^OR5my%RdTh4Q$ zTKc31kSA4iJbgpr+A#cZKw1=#mc`)O8j+zB`Ubb{ed0v0I3b*Lw?caI!TgW!0AHAv*r zK4r=zZu+Dv-LNOCvLCYB_elanT_~2v<)!UmwrH7)3m3!`!?Q!5}JR0p_!N8&X-1bf;eaERZ z%=I}4LsvqAL!RE$;T~bRJBax!u|+8*(M5X>Q<~AdwqCpj>x(=uXx?h3k?}&^b72^= z3se6EBP0A!c3;6TdGIbq{{Wx8({iFUsT`GR zw6$g8WfLbJ%S6J7vSw3WM2UpI3h95yEWayS?Sg!;^h`tH9aYQz=E-+sQlBJ+=lDnfljkk60eO;rE zBZl5t7iE{G6hTNVB;tN`Nq_n7 z4B`R0xmOys=rYBZ65|;%vSv?x4zIesy+%bBXLU8hrmsuE3{eO>6bA>$%h*Ma9Z`Y= zBkGFNK`B3>+w?}ss7R#dsKgwtI$OD(X6>9}rPrAHRJn7klr zqvhiAk9{)oVSpj6Gf4p=qy-UQ9WUY0G$*%gEWe!`v%tKlc|q(>F`%#bq&&)DLtL_xps7fvT=o#l#_BoS3Q6Uusg!HyZ^3_bToBU9@^Z;5N$^c&J@Mux z>p+z|)78M4 zUvGUW59(5Wb?{V0>mJ)@Upq#>Qy!fbMzGBcR`_-61f0Ij=kt{34o&T~y)~lsyxzt8 zx=yjN={~hAYmj(Y@>;rD$C6oil;2Xwg59&vDA^Kr+>iItZ6U^T$m^%qBp%pQTECYz z&eaL-CoYh*DkxJa$VaKubx~i6L*5g)oHKpv7_P1eCL#e_IZ6uaE^&& z2p)^ngI)jJRLpm!PpnXNb(jQxQJcn5spTuP+*?K15W_cx2U9S%`-{Ueki5r=a_!vX zHk2O(FUGP@40L!TF5SLzGm3E`!%0E9wvz0sQc97oB5Q$|s`u47thwLYf;S%~phpYB z>`Aak{GV(2>^o)YbaSY^Rzmf_iYpiOa2q<2I=4+~cK@NSIw_qg9cOsWh#1>F`7>02 zI@!@Qp1$KO0%IwUjWTBeUbqev;L-iJey zsU(zqDT^08mPOm-SjqJ`iCB_SNp7G`QnV=1^Kf+XOOL)#A6Nfx-*%JgY0Z$0E>;}< z@hr$~sCS=+G?!kQSeXHT^5l71sY1H^k*{NnB~xbmx#=~3AbREf`6(EqXoB7ncWFB> zaUYS6IwS1D46tPvUVzc8jE}kx&&hntDfJBvxs$!9^zvk;piuNN7JxfUxHtHSZN=E$ zvS9k-rmc?pB-=!QbEGXHp%bFRjmy>Ul_be~kP;md1$?(avN$2FN z_PB7a#?ZPPZyrA#hLhwO`);gAysaK(VIkX&2g5!kdw?Oi~%>R z*r%a=#gp}uyCzL1y#oqDB0_F`6J2BsNUl~mVo*^~QZScyEzdgt7;=BC>W!!4C?%vl zk{QM0cGH~%2|+%-Ox9`F$)tVLDPoklGq5w|a_D7!?VOuN_D?K&2YUve9Oymp)Zg{Q zv-{6hioZ(hw(+~XR8!i zbwXJw)IHm(uQNpu>t6!g9&ELm=)_6$Pj^a@9(wA~R-5w0hg<#$IfTD9>lycNL zgLad=_DwCl+xCD?HML`UF1p;8!GozjwCC;{vI|@~6bus&GkaFsBThS;pC5~eP)Hb+ zZyeT>3%hOn^02t9SoQNyMQ@5xo*oHjj!ZM0Q87M~#>s`OD4nIMxV;d{*<32$aIWP_ zUeqOFY1>PBfpmA4nAHzd(ooRH+l=#@*k61~Vr8yZdb7j3GU(7_S=W<~GkS|2KAkw; zK8m_^hvr3^HLH`lN%|vZ^0cPIALNKXCc?@yb97j3u#SU|`Gk%^SDKceJ%`K6+P4fY z1TQqsm>)Xt^Zk26!^%oSm*tEL?&SM}nyEa8Kg7*uPV0uuPBjc>H;Vu?we_MV%el|4dQ!+pqPRfO7Uq*!q6*XH&cJh?fc>B*Na z9X2vG4J_B+Z=fP5sHSpQ$h7G2QzLiZ!xyu))%Yi5X^-d*wzQwFe$99xQv5lWYUt$i zd?kT0npqh>+mPrSlB8}E|kU1|xx_G92t5k1$T67BmM zC{Ne0Itn(4M@daL;4zRS8iN%jxx`keNoYg%1sw|}rj$>PUk^m*BDf}>A$2Q{{kTbX zqji!@cYMlCw7cK1Si>D{mmmT9pmsvmsGT694+M5IkbOq{)*KCZ4&)4|v` z8Sv<%3vTb5yDl^hg$Dw-qDLl@t@xSWaH`!n%J5a1L)+6=`v9HNyK&Kz45wCt?e;~s z`C>c1e)J9-9G-4xGZnEZ{`^GAy=*at2}3!9^t5Ui>U!Xltz=!h;xag8`_MiQc@u?|BILk?urIY4*H|iYq|!<7v`_*}hr(L8J8W1NntZ zX3ts9@LsaxqNjR@(EOq=|7ZJnnrB;th>1X3m?Q)-$F z{8IY|!l12!3jZ{k-0w|(cx|Qdi+tLLiwrdak^&YNqF5&t>W|Y?vst`XunW=A2?=r4 z2@ZC34Gz|Etf&fz7zP}df8g={gm;BgVnu;#-m*S81XMNV!y-@EcIQhXN zlRGhJ`Ar5{@#Tjs=2rRnMU{4y*6dPe_--MHU%fmxFZVJ1P<)_L(n{H`8ZVbK&)vLT zo8CdhbUnjwu%!z{UiPV&JLqt-WnihjyK;AR&C2=_)Bxa*8xwR0LrnR0DMgXGX1 z{XKQjir51geEZGXLcd8*Uw+7Vu6{vtQlq%J{Z`QO?B2k!{W?D$+ev2cy(y{9a3VH> zIs-YdNGIjR+ZRo(VO@Ml@=Pr^jD$|XHg!5ORrMzIvnOX5?!`EKS2XE%?_`{~!bDSi z$BUS0rMDA2%Ij30yYQBu6XX){&Xt;+^=b(`OxBRkB5eQlY;67+ zC9!h2;okO=LjEn64`O z-+xxc{zE^`w^XGr;C3+`rv0+2SY&i%c3xh#zyp^TWh*O=kD?be1uX8f+lo$)-Z|oo z?>a+AIkpGXKoRBUj{Qs*4Ksd8W!q0vk8K(8>OGnb~=7dVNG=k9Anuy)n7_R6*)3 z8ckvU*a(iWrCz0P-&KvZgiFYpR@XH29G7zU(f9q#y~|kpvTx5Lc@o!Q9`(dMUPN6L zrAzI)kh5?*0WYuVT_cx+FT=Rih739@&nUVKR{rytqXPPT$lV}lCO7Z9L3#7^c@^N$ z(d$*t<&#sv^7Nf+&gkb8{1T)VXTJt9Jwnaj zWzalyo#*SRPv(^_N`croxY#*MrbNNy;^FbEy@xt1QesTC5Zu;90FD1Ron1weI^Iski z4b8~DB#=(SY^l&7F#z`W9|#rfG5>dIWoxd>GO63`42&UiPF5vupfM}Ty_cM^{qx(* zlX)|wE(p&EPQhx**R}8mwXpJTRo@RBY(fkCTjil z`z&CVzg}!Uw-*=+f(h@=c8}^u0%!Eaf?s1^&l!PTez28 zyqNZ2ztQI(1x#h5)(7PHi>4NjPBr+gMl(%UWG1% zMxgt;AN1)dvnFa?c6A2z(^B!o91NKmB#ThPVGgRNxD}o8^Nok& z(ycq>ru#{$pYK~{M%cAeHRn#Km}FLpE+b~HoP2E<>enUd`bDN8aP}C^qk;jC1jWLB{i444%X*hxJsbh(Mg~~_U!M+!Bse(#?|I*i z9K5Zcx&ict4jV(wVe3T#6pZjU5BKgM97XfzB8z=40Ahel(dNCXB70KoeHYu^YA{yG=}iosiwH93GnLXq%|bJp*T zgKeCPzb^{D@%vg^YsV-g;+M?Qa_g(Be}TjQ41kI!-g>Q#spRIEimPv#P!6{EnSsBH zAAYDdW`h34gf#Rz?CH8@_@Eos@?TR1)KOhqXGg#F>oi>**6+2kP4ULPl)M7){e=H( z(rtZMCA<=^!6$5Q>+0(Tg-gI;5(ucUi@(3Ol%(Xk(An44+r`!1Pr}RBS!6@SbbY-X z0_+|Cm&>+x01bKwC0o1_dO2_0eC>gte?EASucH$+Y;C4c!+!mPqERRS1$BaM$N(g2 zZENWDzj*$X!QiO1<;?$t?ec7FByPDu5Ir0$9cH56@~wnAy8=0{SY_|s9gY9 zd-gwMm^JMGEknYwFi^V~0CXM#z+k~L6sRwR#svk#g6@X~08szXSS09v7%UF-Y*+yI z=l$So4TEGjH267iFwpZNu;6C{02p{o5o>Dz{~S{oScb;nz~c-9jSC)f0^8!a?mKaahoEpx58-{!<3~^L}sy42A>AkZ?3ehDH22E^q(=pg=M-5_ByR2F3`9 z#K1u^ENH&qRR#y@9|{8p&mjy30hWRF2!jTXDF%%KwSiuL)ASD+3Zx%+j|+gV#j6o$ ztnexb8UyV5D#<@&C^TqXusAemOmP56_u)7USf{Z70yJN+2pkrqGYBwlFa+YyF+kvZ zg9OP?xIgCs0uBSsdjuQ_>I(vn1&t}bRnS-=5MYcD01N|a7eHb`*8*7Z9D-qSaIg#w z8W%VQM?eN{7YV?@GVnY_py1#!K%o$zKBI65(DM?ooe2CK|8pK7FmUkrVNfU#mKYpZ zFA)UhE&@D<;P@NDz%m4Atbp}ZTYt)splbmXcs}FZ45(cI2euJ-jt6Q334n1!0wCP* zHU|#s3lamGLwGv`vZrhA9MmofjU*t0gY63pg$2vN_7rbUVPF{m>K_`5249N>_XUGM zgY6Xo-N&H8c;M|Ms4rL;mVgXAudraf#LLiN`-jCLz%p>3aRmGV4uJvNNem1uLt_E3 zT?5SnylVv85*P}sziSQ{B*OvVHgMoJ-~d=x@vaAC6Y+x&z7_+3?Iaw88(s#&4L_Sf z90V@|=@H(>f_M%B&pWYTy9)=k3jjD6*cKzeHX94lBLotGgo9;pP`gO5zTssceZvRk z;BiL5z~hWUq5!ZA06hnO_)uUOh%+G22s8m10JiODGyxe%FA*3R7+(wwj4z&UV8JqQ zpD|dlE?}_WxrRl6I3`{OvN;GW0D4{kK!9Q#ybPot_|OH00?R;t5J1A_V# z+R6$2eQjMm9DUbALIc+j$MryOeHEaW7e0R7^3iB(*$gOr>*tNx`ueX&hj?~@KvN3} KsvJ_K{(k@i_V*nC literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..9119cd197c822cc0e2287f0c495e0021638fb8b0 GIT binary patch literal 41600 zc-q9fguzl6Z5EP-O>LoXSER$xw(F)tkObdq>DIX#h#C5Dcg z0T^pYDG6%s*sxu{p+Zj&z2ViR#=dl!`&gZr z0^UHt6Tj<5JV@_#r;BXB0EX?o{UX`5zYbGmQnkKt7lvfkOL5jgjO6Q3&iQPV=yAzf zA$K?{ur4XnXR+}@ys|0xVUt&_y(Q?z#+?m_XTvHeli5z>- zw}wxbmRK7F6w%eL>^4+E9g6m+G$T!8br%FAzuk+sZw)5u%y8-9jcPoa^JS`WznH0W zb%i!;R!m0F2}<$bJ*fMYYlS2Ar*!*JPYNiw`x~Nlq4@P@bmL;5#Ju3&lseb7)u+kA zi~Y(Gbm{5ehs+-Kun2SVvWCR(HL=FK+%q zVU4C{CO;=hW{Em-0gO?PnYf9N8zl5P#SWZSN-ceYT>>Ho_tj{u_NS-9Y=$t>bWk&| z7nULQg7)K_+HeOH9M^&>!f#G14H%F}5pZy^fX!YbQ+sr#wQ)2E{V%Ta1n&6FRhPz6 zK&_(pHRb4&wRRzYO9n5WVqba-Umj=3`cC1|FxAW5c4{VUMFmpudHKTmhhF!PF1)(u z7dPf|A>p6+F~_B;3luB}+h^~Mj)>DDF}Y0`nTXrM{Y4(mvyWS)8haSecLL688}sTe zjuLkl6$BMY6)pMgzBOIbA|@{%xWbd^CvyLfa(&5E2I`x}Pp8f4+GeU}!+68Qs@h%m zQ_$L-Pu1VUOO+xt)nN)R=h0$BmIniRTUJ5QpEWT{zb;EJ~2z2*2>Lz_pQYF zzD{ z2l*Q=R(fAi_X`Yv(y}5CVS@rt1KKj^Am}(ZdF_%=29#!n+`s+&9iU^v=&#JAjo?l7 za@r?CSh7rIlX(85iq8nk+nXf1BM;zYHu8?hmXt|vneh@to z2~G$mKq`!R!EU=0&2kwTs|wHMbUEh5GJ<4#umV+;oCYzXHuA#qx$?6LKz?(c!RivClbc zizKh{NXI~NRk(r``_mO53bZf<2PjE}Km^Mh%p@ic5V*s*;0!@?*4-LAB8M}9`3gB2 zI0Ui;zNzH;^I)M2$I#;cE6ue)vHq3yglN)2*brM#dtU|n+2!Kxyv7&jdbWMSolKF1N zl-l51m`H4)Mm_m+CuE*at#g0f$i0qJaM`W*5lLTEoT%w(O^weGq9lo7cLXHbR<$zS zb5fr27ChW#*v&_qvnf*oI=xg&kx4`>XR|5}WM3lb>Bon=4DMM`LYl}zYr<{GMhM2@ z>#{30ZkSmj+35V)H}{M?@Rv#F6=|-ed$F&QAW0!?FJ30Dq{bTDwxVR%0ZD`wsez*7 z;pO(C;m$#5S<`=Mm=`#29A8#7h7vdNqzdNQFG(N$YBXpP_Xct2w>}o`sce?0kzE1R zyD%9N#0lc&Vv!JOU5tcEJm(gHCFF{|HXWuqgjNs=_Ncs0ehT&V_jeyT-)sGF_zVjl zP&G}^s1_MW62`8f);PuPGt{Y7;otMp}Fcpf-;QX7YWAE~e39bfOs13#1ZlL|yKEcR1slbECmOyPP6S0pSM!|mR8_CEJQ4o`^nVFFmlWa#;JXlLB`hc0Z zw?G?gUX>YULXvEL=L;V!NX362ZFTeBjdGb1Pg#u;VCtuD+NN{$eNM zX!RTcAV1O-8kYE2PBfiRV zZ;l_w8wMafGBJT*^EN&CJ0llyXhFeRE#1e6n}fH!QnQj&J~HJ45pOjFr2gsB+F#+X zFaJgb%4iC=P=a_9!B07AFYL3(ka49S3bm3Z#8J%qn_go9!6l68m14@)eJJqTf4gItl9m5^D2kCKhmH48we~noo3lp z+!yIP0%uo5BA-Q4kJT$j>-Dj+91MCv{jsHq`bC(Cwv{YTf}=c>+6M^aJjfcXiQhbb zmGVyP9w}?Tq!F+CpP`jRyV5$OYwd&o29}r+UixkB>EA-XORN89Yq5Ad5&wpG8YWy zx+*qq=IZy;Stm<7bFO};Ibv@>YGcNe9_rUn>%furc;!!uU;*vm-D9%n_DH)Wg9(qZ z7zgC!^xKP@S)b9f7R!E23jqtxFwRnoAQ3w)btqVZI!N&N?b}guMkQL~tSIA#N7;A=u#I zVt(KAdm6eCYJ7k-Ic;X^4@Pq->2J;C>=3afIMK1_TvzB;7MX3nEBT=J- z=5q58;$&m3Me;uT5=>msG$$qXnGFzeA+M1wrN&s~@S&d;@Oz=6qS9Yo=9ZwD3!tGy zHmJ5ND4+Zv3~OL|5}!$S`g(?hLR0A@uoSo6M8O7NIaqP$AJO+8uRCp=dhf56H2oXW z*tuMe(}q4(@`m>5_n^S3PJ!`{_KkH(5TL=-g~T2W-0`yhbtQdXj%a<~bhzGd=G3wh z#VqUd=3Bb-;*s;;?S`EUH2&1=^nnpBTAzO6;Y@QAYinttjW@ZXE+k86knIhXAE^xa zOmYwZD32k&m7A({|uKE8s@0{psUf4F{>To)5DSa zA~rS3J3A>rFkd5GlQ|_}EEmms*-n~k!bdk{{spq&YKR@`bszTyId=>iO}3auK~3-I z8}Ck-!?yeCk+Dkz52u(2HnZ0p4OHa!aolW#huXoRA2q)8Ah2Yqsn!6-K`0@S+)gbQ zhc^3b1A&7;{FPJ?e<}-#Lj}^LMOWS#Y;6w#a4(6?-Xvm}teIX0BBqKqudM&=PEIF~ z{H(;Jst))$akr=^mG;mG<2U``^BVO`Zv_5$1)EajeXo+bM)368?|r174F>J2BeExz zxwc!E7uy`lM6~xrvE7TM1!19iDk+mfe|dX>9K^2njSjb@V1y8K4mKX+_-VMpm+keh z^_bx1pt>$U%v67lKE9G)(X;QD8=(i+Zw;M6*-}^U`C-X5J}H|XFpfh(4{_I$LOk_2 z^Fyx-t-g0+K|ja@q=BLg=@+Wr+sqyI_-M2{s=X$Y`=1PU>&I_6a z=|fh*9DUrUX_868R_0%)$ntHG?Mr6b1<8|Pv86=BkQ!wj0N~_8cnw*S$v%;5Yla=t zr&9JtlnWSf-ffaKtF`3Y5E<2sZ6;oY`y?p23ZryZ z(%*sa6$lMty8cMvVsJMWL@cTR7!kyYJB@PX~Ra*3712kp}N}oIqOS+Owo-PKi~#Z53u*24j*84Pb39mn0pS zuldlEtOWFIZ2l3DSi=nSRB6@EeB6PB96^$9&oG7?ME zZA-hBra_`x%)i{MdJ}p{a@Qa5<@^LdEwtq%yNwv9a2e01GOGw0m%FCAvOnHoo_ebCjFGL6W+57~f2;s{H~q$MwehOe&gs z1oWApUlbdttX}~{Qanx3ji)62RNAw|(&<(nE^UtH(lxT`vcdNYc%yH5^cPcZ>dv?$ z58;jB{QpumIJZEepa8Ogk_0zsYhmnKpMdF5Ch9Dx1wA?Zw-g|ox2-n+Y<%*Je6>#Uxe;u`Gz;HL^@+`*yi+tqn zkb-F6oGH9y75OZl`dd1^K3?yuDd!@zFnRKneT^E1t$SPO;Ja@8q?~`@ChY7X^UJze zgkGf|q7dDbuvwp`5&9#NiLK^kdnl3JSnDuzLjOon&(DG~C zHi0eJ3Gx_U(X3$`)1RPg%;U`pS_bb&q_GM7iL?~Q#k#Q~aIb>DiU1W&D0y-?b{%}A zE;WvC)-p8j=XyMlAv=JUa$o;$^ul{3DN)dr^#CA&PiEWZ6LjLZHK!=q?d75gnjxqjDg2_K!_>4_J9=aXq2l?DqPfwF9Ne6?zJ(L-vmkIz;iD50b29v-t_DDT2-v05I6FN5asiwgy z*&ymT{Uld1qeo^SOG``Vqgl_LpEXYNohH@xlMmNV&Hji1Y}5Se@*=ZwEyH)ppg@-h z_3;kRwv5le-y5EjD+6n{isLs(1W2e3ofn6cjn@#&1j}gSpQfBK(eXfO4w0Lqtp$7C zeXcGn@!FoIN|N45xn23?$;rtlCW-BRpmd$6sW847!oV8>E>2~==lzcysOUq?om*)d zE)L78kea**u3W z;QP|=pE;e9M>DPi>eJzkjWW`Izu!r!e)BW?^~k}g&fd@3w@V(K%&vHzRB?x?p3JY4 zTuDz~On=qPd!1c6PAy-3q!yuKI?Zmwy-PHheD7S8pqa=~47;K;wrbXB@35Sme}3+# zCG`h0kP&!!lHimp>GnLu#8;9>YYP9|_l7Z13K04zKTmYE zdWDq7XUezC?=H3{#dBNwo&W8u>jcD~AtI-vs9G-Bbjd{^H!S=QM%z_BG5j5(mOn4= zi~ja@Nkt`+@nCVL&Xwf!L9qsp)eVMN5!8Or!}B@cUt+kGgom*sv|ize zo!e_e{q^p4fnKX<^9-4PgLmxh?l0v;$xSUUvR4t^&smcNm}~6O#gTlx*DSD@yOJ); zvDO*h$c1|MjdSrN4Sp+@)?@PBO4{{LcP~||4Rs5)Z}BKXvI361Za5RPIu>WD7(}~T zahZ=2z8Y9wlW5vZFfy53XzdiVXbHGrD?J+slzX+ius;TU9xXZ5u526o$~|{N_Sso; zM})M2?D_6n{&1%5iSm~a4%N?Qdz;t+*7e1<+#H|?O;qiYEMBttqYPGfAAHUrAcj0I z*I!i%4n-WP7{|L#Yoxf`vo|B800oE^4PRA_U(R|1#=qia7LmI=UYfc8_($24GnenDaaiO5p_I*FN%=>Ol#Rr&OM4~RAIT4$RQ zGk;;uEs{?Z@_yg(FCsMzrY%&fY1fyHm+OcX=wYcs1yZ}h&M^S>a?=EuS1T*O6C^6d zIN%q*XQ`L&rZx^jSi`YTYN%xHm{`>@-wR~rO*b5v1aIE#calU-4`p^ldh6QD2vZ*4 zE%Z3tj`|t`zEuZa;{M80aKM*7M%CLT$$Pp0g~3UN_JSH44YSy?|{L+mHcJY2XPJe@S4c(8myLs+3^A?LQeL!ZtZ)Y=-SP~ebf|k?kCJGHXrDfB`7PY;VyrE3Qsa8qYob`L zFU?l_Je-BO#ddZ~?HjcG&_CGu8|$NCfsNgYOJgYj{W1#6f#wAM{S6FyN2VfvW1Ihy zKvdAz=Hs0?Zpqun?G88Lke~x(B1b_H=5_3gtRj8P#FuiLTh5?eO3U*}fel+&kJ!s8 zfeou*uBp4Y3ta)OD_KLD+p*jh3cG=?O%Y^+eF7V+Z}?rIj8^r^K<-hW($M7w>`6(= zE!?`(?&}aF-DCdp6*K7!YpKBGQ(dOu6Na#`yg8B|8YW1j6HlFrQ7ar<*m`7iTeRfP zuBg6z>t<}iU*Dudy@ee4JLl;w7Oxb%-$k5p@Q$S+$oyK>e)i#rkj8=bhQG|XbTUji zjc!-YZY%8S4RzoM7wq8F5DQFC?C7gyf+}*k==l3K6wVUDZFob_dw%#20^?YdC%Oei z(HMS{)}u0lr6A3$ztLh3nimOzyVDI+A^fNS;gdG6=4J@5_y7T{V#SqvRzlN|m}P!BPDt6Ho4esS74vlyazah86-1e(ffzan zIP0#PPq3j1#e61|KhOq4xt=GQuswoKE@l_EO|zM92o45iiMcujoAL?WqOg{(nZ@*) z-VycgB@_?-k*ZnGTW7H8_Rud7G)P%X{z$5BC-bt6mBSih1QA0;-CttBevIIN_SMDf zjma^T1W6(fn=k{Yb>v}Hu+4};pS>Ql-P7>$C2NZ;c}3Gz>LBYNral3Qo+&e*xL56D z+%h{LKk!`+JU3L$g9XX6rv5Dkr-b-GBRwmyk!U#{Q;OkFRos>(l=lM75KE_7dpLHR zPD>emOmL4~^IQ0^`*flAr}9IVzDzbz5e4!9P!i44tmv-==i!#asK)?m;aOb3Gw51>s5yt4HNj z3>=zr(Djs9<)KWI8pn%6$A&HOugiAaSCo769HjIb_j8gaF*dBwH2x-lj2i`wO`lTN zh{R#GXB)0Avffeo6lkSONh_OcgW;p~9$QkLbB*44tZsvfLS9`D(q}#AFQN~(rd!6Z zQFDhZ+hye$)S10iV(S~yxD#!4@uf_?P&jq>VQSdr79H=H_)u`Hf-d$km89idwsJ&$ zhR2l6xZCf+#WGX5K!ZEHhcpv?3YrVh{5yXd@2(9Q7(-N8f(_`X;f!X-A6`4yXvF#) zZk`MRxaZ*}fU)M*00~o!^0d-dd7l|oInLJi`TzbBb{UICqyGXRYsYm^k)&@w`kTA& zcHJ84%j2;A%Y}E;QfwX*FSW&-=KRXq1~lS2l`b0yWpBv^f7(VGV{-~T&fdGrsR{qu zD|ge2{Gg$p9PIpe;&s%Pd5xnvv~jl$`TEDFx{AkPR6N83ou{oos7b4D921F-2-u|! zXumDB?-A|R({;_VcsqcelwBz%gEv(8AHA1OHCBJm1YZXb^J6Tsk8!9#FV7aVF;?>W zcz2Pl`QMPn#aO91Q}=Q?FdZP|rB#&d;e^ayrO$!wXSvhg%0kV@zgm%WF9Ea)Zu+MDrm#NtnWtyqt zlfQp<2AY>lp)HiE6%QG^j{@{c4GAll2hp9@*;#y}N#PC;5 zaj)IyMTT3Sv|p+>$CsXbjU;FtE;^imoT zJ6lv$mhAC~z)(5MI^Pg($M=&B$lD`1s?UgOcABENYyDjs(HFNfdaFs#5Nf(eqbktm>h zS^L2(#Tv~_IsYQ*->WMtZ`;Ut0xt0|*C;cVpq{z^=>-7Ti)weFPz+`w4tH;XazO!G zT)EL>s-PPOh7dOjTlc4FDLX~PTTWHl$j`Ztn=i=&RJnzxR%VT_5lAXIC`RNVHGG_& ziUDWy@pP5*k8T#1^H*A1RaPrpGzMy3f4&58?Kx!agL21NDPjtSroUI0PU9N~Y%TOiuV$1F{+|j}QRi`uF?i(t)=8MP-yjj<$mGNQG5z5CD;rt4f@8 z?vdW*5%B-@k>|4s7O6QEM!`Gw0byCe<(yzVmU}Bn9|<^Hlg;J%N#L~aPLsyP4v)Ni zCXn)kjLQ*<60rTPv2^~hicLP%k5iG&e3Q$iSjYL7ItK6!*Xr4FLh@a zNGZA@ef@W-mWVoTx8Egv{xM{P_@$S^9QZq zj&Kq8_Zc;iaGc1vc}>X$2L=XOibO)m;f1=nJ@MUfJV|_JApHW} z5S!tzRV8|P{j?v81)0o-r0lSs@2I;cL^Vnoh>bl5L@@ozZuYQ3mT{eb!&up&Jz zNvp{L`74>J_7K;%&&GWDah$=%``Wkcr!ScYrRR>ENt^%n6A|05q-;Lefr;6USs&=b){*( zATQ(8Dj?uee53yF52nD)nY#UModCfcIor{~Q5PHv%vNgN;E`$}1jDZMCQXA$n0KX~ zNvuyTc`IyIILrN@c2>sbZ}6V&ynbGS$6sa&0_?dc@UyqKx47d>tq|Z^!;sNNN0 zqHl#pSov;#>ulB;-wb1;{qta&hp6G}<()2q%lJWpFNVCOb&R#Qy_l0@ey6BQrHI*8 zAB`!g&@5&zOqg^f%Uy(uNpC;mmOn?j$j?0I2xrt=LGhO4x+ZS7T`$%?w@8L`-!0oy)Lu zVoQn0im`mE4+kNe3DFKil9@*v61&*!`>#*-R>tzQGbQ+3YL72AVrHo;_U}v6R~!Ka zT6e_vk>!=dxo;Zzq*3c9lU7&#joF5y#^7k32WD;`>mB9K^FOHiy&&`;bR?M5_+ApL zwBvfSbv+?CiV1QMq#a>)bnlsLp^)v*=$ISVGBJyU_t&Ai&uC5uPWY2&90OHv>u+!@cEVVyKGCwXH|nJf>k4>OJbdqrCAo2ct&Cjh2fc+~ zj66{HtV&F4`ajis0FvaZq7w_~xNX=LD1t|+BvL1{U78TxJHsf1@9}-)VI-zNfgV95 zOf%7eZzlH?O1DC`-_}vJx%i_UIMo1vP%}FgfKPtt)U?;bAC_#~AYGC1nl-^kqjkE6O+odL`-k>~OycH%S02-4e1! z$V`l{+M|lFKf4ejVHL$jwMFHD(#e|dm%^}(yMBTTItvsq)5NY6K6YMlaPm`ODKVx; zeFAo`D-AlLM6KAm0&l-j9@MrhHy)F|m6T9{=~fMrCAJ6oq*y8M4F^8@$w&Y0%$&)F;&bP)+ zn0Ad2UokAP&x}G|CAv!rGe1||bx-5z;QKzdJ+z#2|H>TzWYEFU_Kq>MrVn%N-F&c& zK!^Hxp!8?VbI;=durrZjZ7qG_&I-UJM)X!C8DiHVdAI!_^>@8+_}IN+heswZl8PjF ziY)%}OmqqF;;BDMBj|PUZI65bAscn>EE!Oz|jx3-*E;dqh8LYzw%>8{gG4UkX_9ZnLL zfh)lY!=&$D<|Y&-A_=#!163uP%C|$m*rAwVOqrNHJ{sOJ=41L+t?Cv64tzyMWOd;d zhh`bXZinbIce1I=N8_=P554Nry2XO!pnURA4}0r{zU@ey2$!3Zt{OQIAaPWa$hFJF zt|RyU1nmM~+9p&4X((5j1h%Ga|L6&=@Qu+#^GAsH9L#9K8lC!EevkdYUj6uh516hS z3iYLQ=RQKhpAco?`}hjSPqoFmF{N*aQZon-!2y&;o%qQ5Qa3J5IjT)LgrI)6XzH%b z`8>xMP3^4*6JNZ+mT8vaZ(laf13nfw4I_EY6MTO!ip=mch6b+5#lrvR#R5E-EN>r` zgWr4vYZz}=J|UEUh>Qe%y}7yP^NyxL(CkNY1%{Ud_tlfEtz+$3ZeCc#9+}b94Eab< zW7s=Wp1&L&mpA;BZbHX`emp*71*nk*n^m2%%e_|r!4=#A&Wcw!_^nW@_Q(Kaz%;lz z!m}lgn++nKig;otH^N}+@mEM^+#sHYiDX8p+_PUM{~ILt7m%_>SLcM2G{dLQH1Dpd?IB&w5ds+{%5=+Jt9%Hdhk&+D3U<3SS zV0TgBueh)OQ0F|P+|vQX%#MjwqQ5FoeSKe$AnVXPN7Uh3(uiMoLL|)wVI$=TAtjkn zO8km@VK5YwO4CTkk8e>J{H=Mf&*%MG{^}BUO#{l({wK1k>K1 zkn7LZWc^IQsJO3>+>MTl!;W%chTdsadVR(@94ATO;Yg zIYF}RWQj3xmE_TsjZdAYEk(3{R7DJqH^PoJ`FiIj@u;kT4rWV6jq~A-~pWC?E z?M60V)O9y<-S42{`EBhwkRHV5{whoA}HWDoeCgNd(4c&1@#&j1JECV4LnE#tv13-~8*Wzrr0n zM-qX@2WD&DV0xZ#cauX)csWrWe~PdyiR9{p@F<}woI;aR(?cR#C~ zYV!N9+aaRRqT4QqB>$b zcP^g^Vd>-6+;?6y>o9l;Ax5ERNzw>MZfJ`UAT_35#c{(axgujk&4+~Hw5J=f6i8zW z#gYqD9qu!Z{N+BTmQ=jymu#@rkOe^#o?G^A*|=w}(M{-$RWtj(iElZ{4_`me(Mo4! zsv9LwceN>N3*->P8X(2x{mvoIcb!!gKSYaC9LonUo}(40oK2ss7(PJKmx76J{maQG zp5f~Fs`1U`qABiGCqdawwT>v#GJ39N*v&)wf^?x=mcxJOD4A)z|&#G_%R^FA9T4Qy|}-=d~@|H(Np zyax4{%tVdNUi{BtegK=J1`@f`xZnScC)00_BZ5wF%C_s#(Tr=0&*`7Ms0#qoG|@-8 z(wgN`FyMj+9r|j1$K5NSj8+!bh6Gd2eudj6E}!xhBkFAXG6Q$t zJ!-ky0*bwQHo$Jpf}7x=|LcXcg0LdZBbHh{U9*~;Qhe|a(=BQu$5NfwR*@W0_KXd{ zghvm2W(8|zD$cSL8|I$n{MZY{y?$ohf^ZMlP=49P;D0?;z4Kz5pppuZ!ItB+Uqltk zt(mzPOsJSn*UCYXAD83bia9GCA1lFnc~?*6a11aerleq&n=^EO#&zl7sjk-fuev2z)O2ecXIUG!s;5KU{tV@wdatD)9l!=;VAu38K?6|V;+iFh z1mqqx-u^SZ#5|Dh*)+Zs>iWeIJ62-qDf{aK2W#Wy>Be;Y>M3?W&UZ3STh4pa$in{s znQiB~Vsukvs@h@N_h+_pPNIPEp2>)qd1 zv6>I8t)<|xfk%pb- z=^lJ@cs=Wy*`C1^N{1P)i3(W!8I9oh8hB^3XI(II$#UsOGmjeg`mHZAtXv zVw>dJke-$K*LosY@4j=4AM$YDbwF0ad7}K~&g$~{%fFw2Qk16gnpM~ggWp`U&h+*m{kiPh;cTw4?)qFAAxq3+@9Z4Dpe5?zHktq1~nG&el^ zCD-`s;~SML#9}{l*ZPZm#|M0@z3%kwr{yRi2*qdwCE|d5#k=kUoRTzZtgP+0R}hM6 z2&zJQq+E;d3a!dLCsnBhPs-vnk%#u*R~`W;OKEha5Nd@aGK6UW?siz3f&lP>MXqfT z7)6;s*C{4>k}+7btC|t2o7BtOv_*8%Yq0pBX9wi7ST-GsQF zJQm)Ix^>DVtU6Q^(tn{;{^WoiaVMH&gvb%%c<6ks1TNL7Vs_phyf|nHbsEy|PdG!$ zj6|~CdH-nxwco~i_j)IcMsOu1kh`mA@N_hiM*`(4Lzcm^Pqjp`WconVG=84|%>)O9T*C*L0F4?P@$ z^iUWKB^9Gm`svoVsfKIlm)1i|2=UqjbdZj`kVQ=rOy*Wd~zyZRi6 zYD|4dS=`98AqMy`7iFCOmlo*t=AdkYVgPLW{&f5Q{rGt= z0+B(Cb3vqFknqxLJ89S@h#~&JpDO>K$`EGnk`{5u@-3Vf7(|! zUE#whQ`EO^=*ab0stGQH?fAW*mxQSq{*?b<*x`uK2&M6s8v==LZ*TXyT@Phw#nSqK z^ln-FzeY~5IqFiuGx(BWfG6*|B@){7f08AsVd6gsBLR8Pb+$~Qw{o~vgVbLXSZ#_t znfUyPu=?8!bjhb`zUznly>X-hM4w4L&97xOlk~=c&JV+Y)ze!fxX^xd{ci&hB=q|D ztN;HTpe-=CzCFhR459X1BSw8-t#8LIx7afmEKDC0@%@eLojMEF6u{I3Tzp`1~oK?)vrw z-9nO2Ucx`i&l{WFHS|ClLYXL%TNPFd1o4$>!iiO${*3-<6j zoEOYAsaWbdQPkvC{(g7A032j z;Vk$e4!x3SouRy*TbWakfY_e3Bl(8t?2lYk$o_4Mm}^1RV~1RYZ@{nyvGt~8M{b<% z#6Q51K{|_dK3ubg*CB593!{kx3B%(487=q)tC$v{MsY6)TYrheObPB4+;A?z6e?7s zFC?-nt|LI5N08f_?rWCAnm;ZQdFbd>`n|88vx=}3hW*lAG<2=dnIR;VO3*G{H?Kk> zhAy}El4-#dF3r_=oyq&bHVnd`HdgvPP>n{RUbwam_&jl<@V{zsPw*O-`;%LO1EGHy z;U!#spt*-wgYH5>7PWO+_v^hJe5IAC?{wlZEToCKPyx3oR5~d)YR*j9sGZ1mw6Mw- zfVFeazrE`CW8wF=~AI?ePg-Nb4^9M?v?1n3546UQcE8ZL9fgyWL~n|ENG`e9=q> zLN}0R?o7O*u!=)3DN^ct7ufI34NVy&RR?K_aO;y=>4!tM4Q$Jd49LMBX z`=uQi#n*g9EcYGMyxt7vfBNtB(VXuNEW4B|9rFrD{AMt#H6eCg)m-&utnJb7pBx?l z3ZdtSNI066WXSqv@D}J?%LzQiGV@h4)jICLskG8#+M!0?!fP=k@9_7}rRsb;Ui+4d z!&FIN(x!e{V8Yo3&&<1k>atZL8Ci0U!9xzFCSp@ljIiD$QL5UC6 ze;ZyFBA<+7=L61W@H9v&@1G$mHT!f zh-B{D+od0c3YnIT7B+616K}_?lFY{l5bGla4)W)_?Zyf{{|sy<$`>t+N=y#2(f%y% zf<&AKOj2&Y4VF5icH96fSSSpx%DcoCQZYZ;ozf6$s(cB+LFze&n%T?ql_ZO1W_R-v z)0%CcA9t;ptM~h*Ah|jZR-ul*^#dSYFPc2IrZoCu_X8De)P}x3$SLh~C}<-DDwW`|8VLU1-kxR*Jhq-d8=M!jfcgo5U%B=$YBsN{izDpIc48{I z;{`2^BxsYOs~g`{j-2;P(wmeIm`Q_k6u)$Kq!(44XqW8DyWV>0AXq%uDb`%lIw2pG zYm7yjn(0>A8ho{Q)YM-t9m-PuYKOMtD%2JWAO6P?@;K}`(XY9^Eo%RyANnm}`XqO% z?b>BeH6><8$PqhDM{?HPv0URxYX{XyuL`x?*Y(6GkatDjoV@CdIqKZrF)lF?0|6fP z{o|6>=KOLwH+}JM>@Q=H8fl(i`KKUCp4uJAA#~*nzY7KRxvTF=9G_d-S1|ytN zDf(ZCPew3&V%>S%Dw>7wTNuT;Pd2iN)y`ZRkUQJtCMrusqm8lStxeET z@19&q3--jgUTu3somIjWNy1hY5Qmu=>FF0WXWI=zB(*Y=I~K9mLFzMVU}SX(u(Ipc z(6c4E)89E~Ii=kfrAkDf*l#rRLY{&h*^d(&AH+EE6{u&*`LAw%>tsC$qhwMkF{$!e zOZR+JXV?37r{(;zHnPF-{Nh)I;KE5H!X3X8_FOaIODBzYV^G?K{Or|sL|H?v|68Hs zwTmnKVxau_nQwE0wUo3Tb&jO{TTvnps;GH8BQKC8>Z=W8_hR){^f^1neZrvc(2CIx zzgfmKpY;Okt(L1xG4LV4+J`x3oeb*-**P7vS?fl4B+jt|r06t+ zPJ8>K>k3e#!JO9;<#pffEI{L2B%HsG$!V+Me_c&V?+EjTmr%D@LpIxDVSJPg(iNH;HcP&~&&xM7hxFD+E{IR`)M-#0I6M z$+5!Hu+laEi~wYP{ns-IS=m{jDo7>#P#IF=NGBMYcq)a)=saOO!Nh4Xsx$Ipaxgjy zQZ~)S(QdkM$j}4!begLhHkjzdYR;0M%BtpWT7XyTKJH`=>^#<*&-ItE_|cvBA@KOl zBe>lA{iuXnR$6Te2Y8hg`2l$uxoQ?4mnQdv-(Qo zQ`~0wN!xe>(xRH;cD}%pl5EuIa=E&yot9gR8E;F3S_wdz_kRKDLug~%B2ZTE39G^A zyeBgAo5B-D^MI2T>nf*txh6ore}Mb&3G90ng-9Ng)WzdYYQ2!If;MH0wDae}jP3EF zh5DzZ(1H61pq%*~W%zDOE-$>Jh8i~840C^GaDLyv1@p8b<3O1H2%2urpt;Ou4E*z~ zZyu~!qnROdG6bZl+>+*B@j{8 zHP(6@{^rwAGCSifQ3YMUx>RcJl*_|N(w3ZJ920B$s@pp3qV*38kVmBT69BUBioe_G zSMmFUa?}$WPCCVTjsNKd(6?TD9lkdq)zWuby+0++QhtOw1$Z(i39HvaqWbVx&84EU zmS2CJ*sk`I`~!J+=NpQD_)u*JEl^M&l|R>1PktNQX1n)XlXau5q2O@Fb>MZB{N-_; z2n+_8&?G_9bydLkVAM$ZIL5$A>8l!_yj}>6$So0G%nc=OV1t)N>a78k5PGFlHYWB=7LK5u#;f+J*hzGXh+X5 z50h@{wmnF)?UgkaO38HmZ&-V>_AQ5bgGX+_#i@+MLEX$tC+f3bWr=~bzbGzF?HwK| zhebycQ$!EibqVuYiv5|pH;LzCDKRxsWRJbxo#+%LwVrP{T4ZDmRH(+kKbU&uF8&S6 z8uSJT@$s8}>Ys=6ymK2;<4JIHf$y9m$E`pA_I`3SGNP|E@a@lVo_v$@Vq5DZtb`^$gY`x~gi!T6^{$A+I}d*Z@=!<-A0YrJlf-=J~^WZog<8e(*0@g(}!L|}pCE}^mS7mLdf+}X=LV9CP z59i*uOnmoYDUoE?<>26W?S(|HX1Gs}Z5cO)D zA8+SwTf0kMMlaRvh4a_g1AvwmLP8b4!XsEFpLdexFzZh9U{~W(e4hX0gHXi37hQQD zf(Oq|Gsm2~U25Wv0xwV2^vW9d)cK4`DR4j@hEtX(CWV*>m~KFZRB}o9!?D z+g4kw*xJ}zsoJ9&t6DqMrqxvUv7`FIpUwFxc?rj%^tjTtWtR0~YQoZ_ zM1N(YvJFqgsv~74@11f2$iiYJThaS&CU)hQSmr@r6JNTJh6f@>*>8o8ew3(|jqo}K zInTFPt>-%uTBsi|IB{S-t>G6m+3%Mmg&BmEDKYf= z+-%X?9X4d8;V662`1*#H;retTb@8-iys0JBkQB(p?GN1 zmK6~b`_OiMUVe@j9o7Y@YTkc;72tVQsR<8@q%tpm_1aXweBuPTDy*1Ovs@@$H5 zjO%?Lo)nSHme1uFNHi?(k(ULB?kF9Pn%jQi+} zby?5L^Q5L~x(%J8;$j*SSHEp+z%P%ctugzdya)X2c+E^FW?55ezm07$Kv~s$m^nBs zZ0>Ip(IZrEHnqf)b9$+#$mv3UR#sNv z&!7s9BFfYtE7~9eRWY8iWjQumQ_`qCJrjBcYZ8FML)_ymVex~{<$X@b^$ZPfbE?v68@lUnyR}KxSDptNvR%vIk-BROUcO4wY0Rf zeemD`07X}yX7`32Ak6oR^+#`Sso%mo;Fv2G4K2&vn5=f9G*nSj%f%Cof7d5jH+_0U z|0@?sLsoyD*4Bs9#>U39`0#9pu(7dmxjgDWJ6M$oy}o3a8r~m9-Vgb@7ly@RdB*X^ zp{TU zlb__y0SYAyCCJph^Zrqh;kyr}x--GMwGn}zi;H#j^`U|jAs1WPa$9DnKbOs48mixU z$CUIwIq`hD##o*5o%)@{xsp7qM$uu|BiJ}Q`n`UUdw$i2iV872-CIn)=9ioGf8JS{ zm6@qGV5iXH`U|zU)g8|vEOe_AqEGZd!!~A1{GHL5Xepknrb}|(A|W?M=So=d&1Nr! zU{(@YmaJoM(sgdg`C2e2c{Q>6OR-RlV)5vp3!chXZw?S?F?Apu9v(iv+-};50WZ_n z)ot?D9`{)a$Q#(*|H_G{sK>@-!$pu3+AD$Ma!y@?#BCMlyH%PCPJdLbNSW?18AXDw z+fXoEi!oe=i88n$5E80ClA8j;g>1Zan6K6ZRk_u=j=Gi<7t11p)L%55{q6nsd2MY? z)^GAfdce`fIL`m3ysB)y!g=5uAW)>4yzs+$a9CwnIW#nUr#Iuo7qniSB4vE&&#XsW}76w(1F;?;_qPf*&1Bd;f& za$A;vYxB$)K>B9-pMgJj1WJMOkvlQHE9xo`6>*K!PfR={jVkBj*61YF;PW7gqF*^G zO`3QPl_`gm3lL~(Y6jssExgr_Zy3rnkK&Z}ScPi-tEs-Z^k>(4!; z#6a~d60Z?ok>r%1?|v13c&GVQbz1u;7Q_e9%EtZJjGbSvc-Hb8pi5c;k3a5iZWj_DwHXu{7r!N5W;CX!XJF8_yP6w{ z!r=jTCtyHf^@D3?g1E zdq&Hn8g#JJhHHh}%RTU~e{lF>`b$b$+8D}nuC<;T|6-HYP4%hyVHeOY?&rWj2>B|F zuEPfFrw`Jt9@PoR&%f}Pwm4j@=jPGJODg3#tIQ&9`N6YW^Vyj>J1fYT{2$#1e|dN> zLS5e?O0jIcI{5rhA+S4+twp2#IiNI>uIhX+^!nhSKr>cCq-npjCXyS~u0BTB#Gyb8$z%# z8n^cDpTZB=H4G2z40DsK1#n+gL>a+Mqi^5~Jat~V;rZ{|FkDZ&!gA#0Z=&XdY9v(Heci9Ab18 zE6O&gjs9)U@q;(h`aYR?Mq1?Sqbx%p}~_{0VYDevY9z1#~3 zaHdE`AfUQ>yreMKQrv$LvhqsZEe-G%R~vp#>GOh2}0^50v$#OwE~&!ki= zSf($t@VNzvAAGr%rHKnVM>{iK17B7Qsq)h*5a&)SxwSptmv|)h_(FH1$r~>J^i85K zv~GFMpi3`zSrV-}JrhkUYuq2H3NK$ASDM*cHq6!r+65lhnp<=1MM0OgjsxO}1Y5);tC8oeV35iIrOW1)_w8i;o?tTjtvpR-wdq zzJpsF7_1HUx}(uYhb4au+)dh^^dTD{)6Hk+nMdX3iOT&wc$~A4$75UN7+xF%tPK~N zm#t&r%*4Gk$wWm)*{1u!v(Y}r!l3wjxK9QmsXB#Wrn#}8(H@VYJ4O3)89kCp*X_b7 zC7XaXR=bd+7YloZ3Ax{v^Z0j|ID+#`H7+l9tG@8kifFRt8#Y%szUm#TdQwDfDGLYg zgno-eS@8T?jO;P6ch9VyR(i6ckfAHEzQ(5MT^jdi40X;Al{&lJz};TLujg|ZUmV)u|cc~-A_G-8rY&Uh9nV~+_-#QTlehmcsjjxJ!Y71}3z&?}^q zpJs4ngEgFJ9O=}4oBmGA?%uQRRGEJx4t+l2H~5Eg@)5sW!0>2XEkK=42K}72Pa8HH z^`O(Q&SF-4cz$Q&wm2YUuQVrg034Szz7cI1jbY=v(swu%Bx+g4_CxM(5ynd|k?SY*lB*_jX5i0nx$aocIOJGn5B?kNk; z2O*fd#L#c|*q1zwN8UDSn^U3NdfpsS(%nQ^{@c+UcCRiMm8E~Em&Q;%9oVmgK)X!? z5LT;gzLdFKm#_Xhw9tv}#fm>gtCJ`2oc4HThhC%%H=!O`&AA+(2T7`i>^|>MF;=@e zG+D@d5V38E_F7o^CZF)l`_hUgj>(>KmrcSLM~%Ctg!Ho@W?JmT-eafq=xpNj9()D2njNtBu(zAW$NWrkJWpOKd=Xk8FeZeKh?{( z1CD+BL=)Wl@8GY}PV=9;_i#5!$b&z;iON-NNYs>>F^BP`@x0wTAId8?{|%X-SC@5l z!fVS(lb*V5OSXaQwa-%EM@q$W>uiAo{z+nEfP1tW-Rk*vbKv`hlcgU9yRePE8zvqN zD{0Yq>s;}shs&>`5wFb>uaCy<^mrtgNUfw3JqiTM2p<+X$3hwInY!j*x5$~U2SX~S z`hd;9U^BF0b#n)m3c2t7owbv-n2laXYB@xk7h}}adEF%mD3yY+`CHm4YOeH~2^@ZN z=&X&lrt6s}PwrnOoI=Hgt(vX!p%TUE?-o@xUOZAQTTap7)?D_q5J4Ew1~?|;CB`d( z-22P#qcF#Kd$;{7L#F9H_p%(;>-#nfPz_af_*=tjT&}$=G-qmMEif0wj@=6* zBxcdiRSm}Z^AXC_4Yo;>@k%MzlA|=eJ|a;-1Q|%0ApO$$%{*@|amoB^=T~lR@7$+q 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.svg new file mode 100644 index 000000000000..c25944184496 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_hash_zlob_random_int_find_timing_test_local.svg @@ -0,0 +1,560 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 6.22e-08 + + + + 1.24e-07 + + + + 1.87e-07 + + + + 2.49e-07 + + + + 3.11e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + + + + gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map + + + + + + + + + n_hash_map_ncah + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + + diff --git a/libstdc++-v3/doc/html/ext/pb_ds/insert_resize_sequence_diagram1.png b/libstdc++-v3/doc/xml/images/pbds_insert_resize_sequence_diagram1.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/insert_resize_sequence_diagram1.png rename to libstdc++-v3/doc/xml/images/pbds_insert_resize_sequence_diagram1.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/insert_resize_sequence_diagram2.png b/libstdc++-v3/doc/xml/images/pbds_insert_resize_sequence_diagram2.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/insert_resize_sequence_diagram2.png rename to libstdc++-v3/doc/xml/images/pbds_insert_resize_sequence_diagram2.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/insert_resize_sequence_diagram3.png b/libstdc++-v3/doc/xml/images/pbds_insert_resize_sequence_diagram3.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/insert_resize_sequence_diagram3.png rename to libstdc++-v3/doc/xml/images/pbds_insert_resize_sequence_diagram3.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/invalidation_guarantee_erase.png b/libstdc++-v3/doc/xml/images/pbds_invalidation_guarantee_erase.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/invalidation_guarantee_erase.png rename to libstdc++-v3/doc/xml/images/pbds_invalidation_guarantee_erase.png diff --git a/libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.pdf b/libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.pdf new file mode 100644 index 0000000000000000000000000000000000000000..39e4e2cb63b43cfa4f4f80b5ef0c6e951aed31c5 GIT binary patch literal 6903 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 TnB$1UpdevV4h{uPMbiHQ;%%cg literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.png b/libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..570a70da969996ec14632ed3538661e1b59b863e GIT binary patch literal 14178 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.svg b/libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.svg new file mode 100644 index 000000000000..46ebb3da57fc --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_invalidation_tag_hierarchy.svg @@ -0,0 +1,40 @@ + + + + + + +G + + +Node1 + +__gnu_pbds::basic_invalidation_guarantee + + +Node2 + + +__gnu_pbds::point_invalidation_guarantee + + + +Node1->Node2 + + + + +Node3 + + +__gnu_pbds::range_invalidation_guarantee + + + +Node2->Node3 + + + + + \ No newline at end of file diff --git a/libstdc++-v3/doc/html/ext/pb_ds/lu.png b/libstdc++-v3/doc/xml/images/pbds_list_update.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/lu.png rename to libstdc++-v3/doc/xml/images/pbds_list_update.png diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_hash_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_hash_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..65b9b30c0c8a3cbcd67ebbdf96d421cd15800c75 GIT binary patch literal 16644 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 GsQ(Z1F?4tU literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_hash_local.png b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_hash_local.png new file mode 100644 index 0000000000000000000000000000000000000000..40877824fb910f8ad1308bbab9990dd7ff3d9d1d GIT binary patch literal 32998 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 9.12e-08 + + + + 1.82e-07 + + + + 2.74e-07 + + + + 3.65e-07 + + + + 4.56e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_hash_mmap + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + lu_mtf_set + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5669985f26bd9f85177be4cd6a90526e0374cf76 GIT binary patch literal 19832 zc-qx`cRZDC{J+Si$O_@uvO0U%dn6-!%Q#k6jvYyv85xl+E7?0cJ0m-ytc+3;g+fWc zL*warj^ForzOP@uKkC&vuJgXH{r-&W`rP+*b8E;c2!VuQWZcznOFol906>7Vg*};= z7~sq~w3CgSEdYvzG|2z}z!?QQ2RF1U_OFAv8(I!+>1>52laL_8xVfUu9m%{>oAmpg zI1v;N-kjdV*X3Gf+MHMsuADIgt1(}sxb8QUt}K~&zGBvHqV)hIcf>=f+dEGB ztw5(~`{m}()}Q4+!hbBH(3<--K24Kj(HN~=Q(%=YM>2@Dz*@-e+VDy0lGu;KYUOYh zeNn1`$ecxcBntGWS6h<*=sP4RI0%n)s3WtUBZoN(N5-?GG%ScAZ=_*?xOCPJKSqi)vs@v&a>^;l;ZtW~-n zbU=%0IC`z|j*Vl+X@|P~ZhW%Lbn5lub{9#{wciY{ojIy5b;2R>&4aBM?}pi^@1Vd*Rn3WW=jz1PDh-K(Wsqs%=pMh2NzT;l&s*qKjlvH?{++@A*byc&)BMM9BnwJ$gLSwB@i^5ssrtykl@ou~3xsV=R8q;-!aE|H|i&*wZlx;p4tF`O1tb4>QHF)!=tI2q^ zPO|R-dA7O?ezTs_8akp0KAj-}j0w{WJ6=SJK1L5$CQh1%Y7rJ_EYAfx8~OERLM3!W zR;pWU8f5IBu4@`C*%>}zSb&>kzh{ptNVkam@VtONwr0iu0vkUa8QRI}yD7w`_Khg? zyD`PuP7oLg`~ic1+SmiDD(~f{sO5&WsDN+4K4uOC>|0=2X#fat#?l=7jkUAb3*Wxa z=&M`Uqb=PI@_4}k@O=x7O(6h??sODZ@!x&6|PwGdDU2!Q>t@Yqb) z|KGa_0{-F)w7p%>fHNBAHt2(DG|XMm*or_uU4tsx%FbNI*$ZF<*e?bJBZXlI6bgv| zKp+rdFc1g?fdM85S!JBm>`v)wG z#pTc*c9v*OMVVh_NE3~5c6YTzV*ucTR{k0m9M{8v!2hF*`>RLa=luZDa<_0h02Q2F z9S;zhU&oKa4jlS@#Q#5s2Lk;V-%mF@77aSq2BeVp%$Uz;iG0hY>LEN7#t3Q|y2?)< zrOsC@MGGfdR!UgsnpF1(Y^2h3L}Y8xitX_vaocRZOGZ{@bc;P+sGX?j3?n*G`^nyB z%P_fdS(F0g-TpwM5`#1zGVUxxX(_T0X)eG?<>HH3`4g`uF-uoh><0D8dJcA`XM}#r zd&Snp_~e9*v3%-V!})V@eA9S>8GQk`IsyX!q9icHPZ;!jl>`IQjr@FSc630AXrw?iIo_p* zbS}7*gMoihjsX2+9QFUi_+Pvr58>qxR&X%r5MKVl3AwlmIU%{MxTWPjCnVz|a)Uz? z`um({3{JICT|cgqzE6te0V!fkv@?g0@{1nAkv~z;Zz2VC2r1A%m=wsrlcFLHfzS{_ zFyatd%)X|~PH7IdbQphQrR7B2ah(h-DdsXvdH@DI{|&lZhmZn2loZHsA_a8FZVwFq zgIR&$u)-3lLWVC*A-9E+H)%;!_aEUsNoCyEr)eB|4KQHgGWX$aLKevfehpF5-~`gH zl;=C_FRnS~<*hQ9lu*%&@y$iBeDarwSV(u7G@7C~Z8%`vZf|q9xu|J!vTjcOW1ja(XBNN5ygJpN+nA_tKD>32;=W|c zxLMkly~ziADvHfJ=ybUJ^ux`$Vsz;xs<&(v53)1ZUT)lOwQf$bot+GMVQCg=#@^A2 zdb2SgEnK@O!Dtxtq=IjVtmA|n0Frs*%&Mw!&(zg-9-SoYy0Nj4CUT8%2I~O+rcb%& z)G~$yKTXzE-%Q}%=s7|O;_P_Uvv*?l?bluH%rj3Em-A>1vr++CS8ozt+t794CI1rC zQ$ljqy*B%T!(zk(@=F@Q!ZI;T7dqU#JN)!Q0{g(ct>HYutX=m@COV!APs$0GdMQDn z)L-y0*A1`VPZtOT&E-cXc~MFc=o_orAbW0abK_}(6h>46V++>RYjYSRZ};|4M7YjI zMfT8VZ4KE{>5GpVcVnui)D!&9U6pGGFpWHYoF=ax!K{~5s3D^>)uTC)O&!LXdp}!) zAY;Un-EA1w%y%|71YRP`v)UlSB}bk{8=@NwUiv8fRN4Qj+Svfo){wHeuMU8h+C}$( z^jv~zeH|B1GPTI4)JxqpyRPK+rVg&q`TDdp$;Am84{@_yO_n@zXs^F$&ArdcO| z0N2XYT)qP?qXW}+yS)i{|1sF~QcXaVBdC}})4b2~{JntVuN$ZWubC^(z5aBuLH6X9 zAIk~wn^cN3pHCK~8a7z*wxdO{a^$F`8ZSAAPgxnir#w0w$!Eo5Y8id?ba@WBg9r?M zhxpW*d~B4`?F_v=(uVZXz2e#=@fd8E@*5nv`z0xpu8SOEu8@D3Dzi3@nw2Xus^bYVwPg?rUtKXr%R|` z&kH8Tc3E)Lgp_`t)2Xe9&-}%<0xW%ZomehvP;$I7FgP)z^rXs%;BijVHgN2gtVVGS z)jX@eR+T<9CUZdFDu!)si;DnPOdzmdycz`h6NdgSuXf0$9fJ6SiG|~OwfIL-qd+S8 zt-Twcj@U217{8Je6Rl4ns1Kkg;WFeSu{5zd(NL=qFNKVDPXVDFThfj`tf zH}_e^Yg^&n1|933T|k%QoVQS%Zr)AxvJXTu*PCZP&6JwWJsN*WBzdis7}*YAY51s7 z{jzS{Ch)BL+5F)0XSdd~PM#KG4>QeO5ze?!7}Y;3Y!{?kp|bZY1Gwl^uPGWX_lZ#Zy;&T%{|w2+wdVrYDjWBfjR0rgRJ+{o&vdT;H8 z>ruy!$@YO+1-#AAup|c=mFTy_;KOO5JigH#bxE?tm35ROf$n%Vb|}20&eRRt)(W6oLM>t==I~5$GSh)q~=0^&$sU$l8EZSLgiHKn%cvLOUOP zX_xaRH^|RZbqL=eFLh>B72qhorLmploHzsMaBdFxz&Q62YAZlo8eKCt-T(fmEp>^4 zIkC7#vT0{VXj?8My{ME4pkq{c{g`ju^;%k1m#a^9Z}r#YNOI@vOP{3;BgnnsN(xV4 zG~(ekx-Vq-(4}Bou<_`ljyk3I-Uy+%IHAdeVoU-DI=ouJ@FH2(>Ar4rm)Q0K`P0Tm zUAOqUFx;t0GIzv0-y)H{70X)pUs6ig`pq698^7!s!N9*{<9F>D!G{EApnve55sLWN z;0#7ZoCYFG$jJ#2SK)*N851U6EzeD_i>Z@|x|SQ09+N~(f8<`msUV7TS|hdib$Baw z^x=mP^ULZO@pEwuMf@gSAV6GRV1ICg8H)N>USw$q#K~322|2YO;si97SYm2JlY-KN z!osk`WagKrC*^X(sqdAXA}pa0RLH$V=z0VXqsS1C%MI+;AoI@^DfD**nIWJotGIJ7eid)hUa$>Zwx}$ZVGeJRERY}596O);ro*BlDrRMIw(qImhh9Z!@<`81Q zheiKkzbnuT0UtulAG~~l{d=UD6JmLAPli(kBaV?(*=HuSJTo9YKl6Z^x}@~{IzoEt z#J_2cs~$tzA>{nB3_-wtqQ7eu0y!k$4EuvuAu!m#-v;2+66cgvA+#hQ#}b1a?3NmA zYtdj=Y@L{p8Ehd5$J6kOk|9dogO*4MvaezzxaRn&pV{B-{t-xhb#?Yf3W+9 z{k!`oClHsV(IS*3$B3(7FbAeAH#a>jU|(NyGqLJI`giyLmWn?05MB;-|FGZY{tsD} z!T(_Q5Bo3fUsha;96~6oLL)9~X?bADVgmBh^OIt}`~Lu}kNLYHv$A1O$K?iosQZWg zF82>TWN8NfgWW&;zqo%(aRN>ZAt%9)`^>eWnK9{g`9U(rqS0A47WNUUM+*cL0|W@d z&)XRX7~>f_FaQo==2!m@{)zrB{|`N6VFv$${XhJ__^EkD(vvdl z4%~l!dJwnnKi167Vhn+YQ1h$zhx|l;m-mMrvNVJL!QLPK-@LyH0fdlK7OOlMngeQL z!qW2t_V+X8<#p-hpnp1-bJPM`~>6gX`?im3$gX`~c0L`((ep>bEs5IkWX3prkpfaBLfNl*Jw!YGzP#B}M(oX<-LabRa#u4t0~v`g zh40S96nZedOOVMVy~L!%eD|?kboS2WGhJI-GZn+ina^MEkeO!cQ1L_?^jWEgtKU?8 z7pAWCNUhg&H9oyu3}Sc5;=bL=VvnVQ$OFsE58@P(jk_W)!9Enh`_0nh)1s5n>&oFO zgMCVa5j|?5Y>vqZu@+=54g+99E-P-Um&ni=JVK9d-9q00p=};^@a8%sl$Ym)?VjFEtn$)& z{xucsIh>VK8^~&5-{(rxH0i$@snXpSmFXxV&h_|KBNTF4K;ra3E7!#;yL;on$6ph? zMiyhfCVVzK@ipUi>eAAOuf1ZDqBDz2iF?OmW#-CSFWm3Sx{-M!GiuJEle+WfIZ2+B z9fN$0^|R+uawubzG|FTr0Ic@(;YV|miLD6=xC-nnOrctPY=G3*c_3b8VZC;+mVfn( z>2qqyq?<1#UpltEVck)6wV{!1CPjHj97rS`GeeeE~q<)G|lUdt}X0fFhP ze^6ys4qjFsRqw##ur?8eDL?;Go#=$e#JN|5Gr$F=%`3;+7{NCvK=$J6%!|Cb zM0;iB?(69C++tV%%DG|mEU9c`H?ktEC}xq7a#7^C1l47hi00SQs8#m!go52+l(`M$ zmNpc|&CZ)%APBza~z`>qX5b(%lCe&==0VoiE}kHlxZ z^3`)+0x-dAle;|4YY68NlEGtM7fVMm9>sLW^wW$SNa5Qf_q*?Y*4d&kJ|Z_=3RyU@ z;o0n>ev*oOs3QJ(rJ9Dw z@np?t-VtlgceQIb>!)<);))yZlcD^DEvKtrD0z|NO zyzm_a8r=ovdhfZ~72dhL{>}wGiT?5^Y?kU2RXIQG$wd3ontSv_i<=?)?Pqn)01nt9 zGb_<(OG@VGQgDBwgrJ~Bo7arkvduw?d5)j-D=)9vV36nA z^J03;38p+X<0hbl)Y_y7Tg3BSlLbFclcPs+0+8b4ZwgV@wl z)NWe!F$|r zq0=VgfWpE=vm!x?JYC}+-YyrObwja61t-!Oo5v|1Stjlmx9FGot$j3^9Q)9=UK`J5 zbJAA=ZIL=ZIvw7%|w07er{jgQ7h(@mw>q!0qk%&2c^m=4O2j zc@b6X+lx$;#(2!K-XkHKNy^4ydFfuJ+zVHaMXHKr#ytR%Pi-2;DtEe8c%6R}VRZXu zBGa-&(_+%RwA{?DImKon>V9?$4~(>MNU~0f3r(Z^lnP-64zHy;cRWyHXo)|9KwaF+ z=ej_qZ11U8R?P3&Z}o4h5A)yJ9dZj%JQ^OXKcN4D)@ZYE~+7UDzPA|Dh>Ab>)MKqTF<`b$Q+hyi4mh zk9y17$O+!MbK1BpcDAE*;0c=(Xm?_DID>?Sms-_gKC0M<#3oMj>2ez%DcVOp8K|nE#q{C@t{17(S!#UsD!wj^#VfqsZsQomgmKiH z8iYRQpY^E!G=Xk!kK1d{e-TCUylQ4{CFnJYM`Dt$z-QhUM`s#z_dWu+g>Ng>!`?IPdTKYWuRd6K1)rbDJ^MTImG_)JB{Z^i=8ZG(hyP{H>$s5VjCaVqI4^7^6IWM z{Iu0%h4X|9ZAyIro@C_UzN1Qj+Fx8RJd7!b^ zYT+R$8esCsRI|Kbrl77sLnnvdpxU_FQ0ET6=2Pu0ZFTMDdn>0@Fb@Q_SZ{axbtlzT zPr;oSYHkY5MPaI^7+1wSQ{F7n?c!Y_k_r^|dndhbN#6uyLp-^f*+~P6XC$yEnRr27P@B- zR&bh((X&FjJg;1E9~odd^%_lMNzYRf3J>HuRap1fj-X$G)F!Flz<{{Fvy=EZJwwWI zYh^Dkrr`RIEn3tvwiJx2Sy|MinS;JiIRy?&so9fqVxj55r?&W#)ic>5$yOEmQmbSt z;$iH*>3+=SJC@z_(vrJ2B5%MBB<_QV^y8VAjYa%}5fSWus;q02tc#bn)HSB+KRmtoMk5MG%n& zi(MU4Fc5kUd-0-Bg))T9lWrycBi#!BjIVZDFRznv6MuVj(%y?zC}}vxD+>@;dv?#} zf+ET-7Cko9fvz5_Vbx z>lBt*7f`xh19!WQ*aG6|6kz^2tntI;w{CS^R8GfChF5bWpy-uUzcpcq~ zGU(bIRr%~!s1Hk-@5BU-ulQ(*F*ROL2U7Yk+@(n9)~wyQdi2fomzPbjs~k&s0x2BkOopMaF7#SzkV>bWu*{VvRCx6rFij;ygrr zf{~;!DruAYk_vwILNi~A;;@mA-`iy$vVcL;+ZQMd=*Y?Z9927?F5ejIQB@F()dvUd zS=bfj2}ORa3QA9i;xjS4cP$C%MeywEy_n=HjSbT=I*8`h#T?>Y1*gGp1y4Rmuk zmu~Cwl`SuuI!RAA()G!>eF&oy3MS7Zv*+iYuFxnvMXR<>Xu>kQ)1}Is?nSAspwDe< z1DGCM15D5Q4jDq}=cZrhH)v7r8Bm+YdgODOkH1cMF|_6tI1bPYH1O`Fr+uguXUa}9 zN2aLND7iz-s8WK76g#Hiv>883F84qT6enxNcxv9)dqTbBk_Wo7h!&`~(bGDX^hy2_ z^OqWCgz%ixOH%>6$G3$7F6qbqz1S5&*IidmuEG9 zSSEi}R=wqR0&_cWyRW7|4C*|`_6CsIZByrRj1<@wFNrHgYB!hj^vx~VT43Iz=?KZ} zvGzS{k7I2L)8SKB>y$h#mZ+T|YO<@FC7#Jo6KIm_}UNQmT~-Q1q$0x7$_ zvf71ERvLlPfNS1I$>={lBIq0~DjFS~FRG}RpRcGWn%7n~nyvRy)3)%@aD5il)H8Cz zynmSHjrvKa)aok3goKc_OzxvZx9RRpHYK@+F1-z@x2)r5)xvvbYN9pcRBOZxP0UKv zJYs5e^Ifxj#?5FClkD9r>f>hPc;|JVk6i6qGP=`;A0mWQJO*A6&Y@vQNO-H~$ixLuRPuCk~ixclrynw(1c6bb6Kh5I2QflYRF?=REd+Q{iC@f`9d&or${*?eigJw22{pwJS)cQVe8 z>S>F1o1r0Bn{G^z3CTt8VieR}wkY#!A9G8<^0VR$0TqOxxGbj^Z4vJqp)%GdMkHV4 zVm{DLYq7Y0fLS*1)6Q|-xLfYq|4_R{nm)NfKjsug!1c!a82q-!&8#2+_@grqYm>UH zfJw^!*X=@`@;tn*6Z00%Lbrl2p=ul=rf;SQV5b%9hB%%Zb{BS1R@^=ENSZ^KpO25f zS4h7eitv0ra&3x(lwnnRf=qPh++@DHJCVzkJ%P>k1o0q6_2m=>Z8f9R^7OlS6rU0} zH-Zu$bR-emxXb}J=`IAneR_QG%PI{b>|_~n(bW~-%8er^U4~+Tj-ak^&jjXVHEY2r z_3l)mxnAWp)_1_@I_Uf30MaM~p3PvT=h^cRB0W$<4Z>~kMY5Nn&MA2lt-jh&nafjU z)vb&O&WWcBT3-FU_dd{6^{hn5L)2p&Pt-8^5;~Z#!XKp!Rzly*`(@^f&Qs7!%#ycC0~uJQ9^=^vtZO zJ~6M%Lh~$`sh)}X>Xan}>iJ^(eB1(A_u#3{dI=6PM`?X*%> zu{o{!Nk-re@x@a@kNfQ`SWJjhTw43?j4RC*c6q32X81l$h=2I-qn4(Q;Fou;Xm@5& zv84R$kU&tv1C*>&nV!eCh}pY0t|?1wOg$xnD$B`?%U?Xsyxn~k)iDz7>kx7C_#2N+ zJAVO*nxsUMzVor^6hfH7p6ZWhmE(8vtaa8hMA$Fxb#Bm%)SLR(2n#M<@lJSQz@l{Z zC?7H19egfn?pM@Y(x-Cp<590b(P9B=0ovsD)B@5b0BHc_vJ{b(RNw~fJ>ogB^nfzn z5VL?@2ewyLq({%5&Ktz%Tfz&rDD~>;w*x6DZLoDq^ z2fv}di^+J@I`W06|8b*D&=$jm!DmdkY$JZTD+EFPBpU(3IqAF~&6Go9EM4tf+?-v1 z9-US*cf?*)l~z?#QWsFPb8yfycfx47SqYu9v$1vinN7jm(aymez_*_Ru%88h%>y{d zbNX8*2Xh+?0Q$4Q_xQCC7zD$9!GHh|5CR7vQHbwhY-Kld2Rln?CmRPe0C<2%V=VVi zV8fB%gP;3--Ty5F0U^JgvNm^7Lhm=YU(2^(tsB}=7k~u*{Gs&Y$3d6v9MBK|9Py9S z(g^UOQ}ch1{(cL`n`6)iC(Zxoslt}i^2T6$qU>btypQZRqKUS#!?K2*J!xzY(5HXI zvDICz(5`k)HUK_lE9^+^+`NBY(sFlkaX>rnk01C;r2g+50uXbI*=U?6lYq<8O^vsVb6;k>| znyk#RV&S}hQr`%0AP1V?gi+gB$H{KrI?u0gMh+d0H3X!n~TVqGY6oJtGSDwS7-;`(2!L-_oW5f~5CjGLCx%5~xcT3Ic7`F`+ z9EMvK4uRp!9}s>BhNB-K>{KCeF&J)HBoa3t61NQy7{{(*F&ujU0wI7X91M=z2G+3Q z*g7~IXHKyg9A|6@5abXHhSL`W6t_Mk5Dvw`K&W5(;^u0OT_m|4cm^#yAN0PxKX@X* m+1U+%`0E*y{nZQr@yl}?=B{oB9s+~}Lt$jx-16!QWd8>-y7SEd literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.png b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd805a254ede070e48d06f37343b08ea1993689 GIT binary patch literal 30311 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.svg b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.svg new file mode 100644 index 000000000000..0bdda44a63ea --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_large_s2p_tree_local.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.21e-07 + + + + 2.42e-07 + + + + 3.63e-07 + + + + 4.84e-07 + + + + 6.05e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_mmap + + + + + + + + + rb_tree_ + + + mmap_ + + + lu_mtf_set + + + + + + rb_tree_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_hash_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_hash_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..258e0fc19dc8c8b41c57b0a138d95ccacad0e119 GIT binary patch literal 16636 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

pORc8{>LhtA9fFA!nyNP|Wca7gr znPHXAKtEs1OpzPKl1OD^;l%gudKo0I?K8Eu+U+!D2o@PtVwxXzSFBi9Q>vSy*IRAWpE+J!m zH{JFc6yr!Eac9}O&Rp=Wrl*$Qy^ly7OK#ayQSr<;AMuJ77qeg2GVA22?6(8(H3pK2 z?`T))SOh7s-VR1h6l;<5nJ}2a!TEL2oj6jV*byz^^0qZhL;wu%#m81k-5u;HpR%ta7W?ys$bmaPdrCDuPntG=7pU<*qva1o}IDQ1$-E`&QP zb1z?K`M@4Z)V5$i=2W^QVSQoYd9^OlE2y(^FxU6jai^KQTKKgFVf3#%fM(CN!uhJg zAnBV96woJBu`5jB^gf8#;lSN{MjMLbdFn(SZbaBnia zay~zXU*BX7GBuZ{L7&YcphrEHbT7reRLOYqvzvHs=d(Vgm_}yXYZWEeR5EZ%NupwJ z7zH2dK!H~MvK4{H+!9;YJJy zj+U_G>6dWisgs-tvn}4kOLiM92*^@|3&x>p!?I^|EuwASdfE(9>>Dz0Ol{g2_)Mi_ zY7Z~Ei>ppsC@6HeB#*a?rAZYpM6R6RwqSp`EyN!S5%iyp2f?BM@UQp|3+w#{;CtD8bbQsny*=gTSn_p%k~uJy!b<~n5i>)t(ngIjl4niH7m7yG6r zfibDm74f&+`^mQ2+ZaV{X=0QpMi)ZJRoo2tl=+7{&f29qD)o#xP*rNXC<_XyR$AUm zJ;1?Z)5F#g2>6es4e~pJgn<63r44ohtI&Tjs}L+!qx;l}T7VRIlSjddYr5KjCV)V= zSk>*2)VK0(Q(GCWZ`qToLnyA*yWkA+1^I3>8D|{HawUnBp@v9Y#|ft zD`@D91;!@Z)0lb`}*b8w6E8j5usVhTw1UpPTM{>Zg}fxlBN5Xe8J9w%fFAfo?b^?+f= zvR%!GMo)l0`BZbQ>EgW@$OXw}nLgA414}O8=61Q~?3Ra&-0tRtQe2xpH0=Y_Du7yC zDt~mfdzx)eKH1@bfb}E7GB}3hidEu=+OqsyM@B7jI=7NOn^9vKOwuzZo6NffdSu^K z%S^fmkeZJRwbt7Eb))w3`7nZ2edGsvY|1ClD*C6@gMY)Ye~Q)=d@0VMWFOM1`L6ta7=nt@!V zuU~pWO+jUn6w0#s%)3G5yp^Dd7%k%v^NkE?c48J_oo0n_@>%9={qM8o%!@na-t%V~ zVs$ulm1=ylf*&LGtk1<%GQ$KO->dC&I|qC#_xO$uA~`K7qM*QlAwxMpzTEA0Nr(<_ zavCXh7xBXi#^BZ*MLUGfH1AoCpN+RTE^py;EcrK`pdE-mjUMtFhW|s_0Y1U#p}>E! zb|C+2T0xasf|vu31J^@BmP7R@*E7+l(>rjKR-oWT*;wC{KUK`3$cFno3R-$m_*8Bb zZN~{|Z{SI31qkw=V&w#zh5n1G$F@?ymy;X!?r@2R~RQIuH}Q6Uo( zl#^PJ8Cb+6N_oGO8LyN?P@%vL&;9f%+emu!3EcbmdPARmJ1bRh7`Sl0D|8E~YJZI`^8{Z0 zh+p8q-{?OTzJQS@@bWJXU!bu6&Wnetge(ZS!o#4&u6hKOIgl$u`;1Zt}P?vwWW}zJYyZt zLZd}@+OBQvet))hUWB%`GzFg9=@5KIW12Pwle`Efn;}HZ*S?f36P@la#k)4+^}Ex4 zD-QRIuiGQNG%`M2We8O%vS3hHU`f86w5F}#)6+L48!o_*B$Hz?`<><;pebR+I`KOH z$E)XzbUL{WmLIYccVGhO4*1+(Yxqs*^FoU>zS+L;L~LF43|N`64Ork~%Ag_2%q*Lv zHO4~)rQ)geB(_F<;hbpA-%L+TM~|ON?W)wF@gls-!kOzZG?lFOn`bi23d#b!p{y%0_i$xtc@;JrSzCq6OA> zKd2#%+#;0i+>D6T&uyqTcPQUWJvVm_*#%Be8~-lO$Hg(0m{bJ_b$_X%0xihD>poi< zhrIVLQPn4gPgtU#W?!oC%&V-d+i^qcYLS<1aFEav%{@Zb&{viNYClOuPfT8oMy*wa+UVG|_y1(tM+d$WLP9?#CGJuj2*2H(T?SpF_}bltk$Z6y(O8waP_phI;PDDS)~O_&TY;1 zY`P+}A~Zhi=KYc?Xh*MzAA#FoLP}xlDRx`4Kr(PNYD69^7PrZud4eYj&3^ z1Y*s5&UVP>GyG+53CX^*)xt*sOV!Jt4s4!J3;0`|^-0jSrZy7l7-W1&%IeE@fX@){ zI@o=PBbO-cF4K99tMs2+8V4&QQv;uFT54oSe$dI>PyXg7O#c3*B-7$`H=mmnZ|;`N zpjgsBSFe+4PlnJo!Xf77XCk9RlRc?-;}Fz=n>>L&;A}tM2E?%cdA%mhTFsQYDQ{x- zsI$_8(j6;}S_yvJjh17nUvXzhq^fo`zw`xce`z*bT3t3P+FLXhU@jM{d3)P&HOZ+_ zeJ64mFX{}1SCg8i64~m&Q%Oc*6)kaJg3ilDGrk&3UM%#*F`0IQO=+tZ*?V8soE651 zzgL#OIU}}KqLfbMIkmUaQ!`%g#n#uw!RcC=zlZk7e>*O^@f;NBKi%G2@4hl#Ah5&d z010B|?~b>idGiT1{rH~zOJX|@iffVtav7|}F9{9IE{CQ!#Z@eS1?OMDGcfA4D+E0J z*0Aq!Gqgrblzqv3Dljy#OlT2i^oR)g(XOiHk^$zXzgrib!=S{jhCkb#;o&7a=zJcQbL5 zyIA==#ha~WIW6exWeM+b+bdfhTnWmWu*KxPTNUxBy1=lA)8;ib=8dl8dKiV|mJl*aTj9noOC=33GfA2Yw_fU|}Sq>f9#!oper1jJq z554=Uih|kMxAk`!a6{!ERwrRdv#%ed8@E`jzwrZ$T@I2jm+tG4GX~pUEoFAHSx0Lc zY>x(gUb8MSRh3M9Y;uOYV%xSfYS=$4y{Tfpw2RR@&X6{t0u#?B&UwY;epPBAc@X;& z+Ykb8Z0kIu(-xhqa{qj*vGRo;H_?sE@nhLttZTy7?={v(B z56sQTmA4iayhsy1fi6>|_9Xakv}=&@?ajJG7IX)d`n%7r?|Kt{mFH3|afnLnLwJuC zdq+t7G`&GuoS9i+I?pi2PQXsuI#*zJsp&IlaWjM_=j<`>OI}yF-8bYFpop#GSFAuC%7_Rv6X2f=>quLKSw(b5HP%OxyMy z(ajlYy+o3*7)X2#)s&F?W=n7qKE>;9IH;&7?MnKtHphj53Mt+dVok1&^>Hi~UTkipd6lLYh($qv7t zqLOtXZ46O%y0^z{)cv83{`Sjr+C2Bp*|ec|d9(@~VsoX!(^B__+)OO$2=bb8+}iQV zLFqgVN@a7_oNEKrWe(OfeVSI(nzQ-mU)|{U5$edbL>kr4Ekqe7$EGmaOG!NE3iM0WU4){k)!)VS`&;9?v8AvQG-MCM81T$|R@YD4SN27M&x*ZM z@Fhe;K0~Sq=ay&ZFDkb+B;2aX%*Rkak{)k!P7w_2dYX1-DW!$o6W_E_hEl(xlA;;b zxa7H2ArPj>gF9BF5<@Uq#cCIu<6G6EMoQ5GUl6-L|Mt;+hXGN}IWd(u5OKV8=sAKb zDX9hmdx~ryrbdKbX7OBBB1-3Us1*=L;yEB5UNCK2jDr}xJu}6w#x*s{mDwuG+A50= zPvFt*5CqfO^s}|blTazH&*D66h&?x!y(7D6{cz<;SUo#q#jBn|C)bW*heX*RZO+|W zBBW-u0-YC4@Sjpj%xx4)ZC0{;uWaF;GvK^j)U7a1O)p>YFj|zNE&qze!I$OjGE$y5 zg7%43kl733b~3=4KyQsY@kM5#Wo1#9UZ`3oBKdv+-{V=g*Rym}ZEjsVTzgVR`gTJH zOu9&I&-|468|n_}msXZH-^zzWaNY5^?$B7i9jOsJX8kBQKWuM=Pgys#r1p9O z8SB<HH#h_e!yb0$#U|8*=ic?3&s+_w@~F%NXbtEWbi3)Tk0#tRY-# z0v@s6uj;k7wVv?u@P11Q?6gIvuLrHCt=Fw5tzV^k#PPOb(RlmzE&VM$y!$Qs{l$8( z!LRxC1B;c=x?`6lbib8UdI<8ka@3L6T04UCf>%w4Sp%B<3UCW>#dL?x7)BLowPc|z%? za$R+8=~)Szhysew!OGg_S?w=*1#B5UjulhO$Thn+UUHyfnp>(j{J?3RZi{xyX^VQx z!7Evzpx?HNvBBnsO}qim!59esj>z9sL9cXb|J(k&_K8?tpw zi%eTcdzu!WR+vWC-J2!_4X{55Ok59n`e9&ka}*X93wN3jkq%w;9nC>ft_kP{MN`Un zZFJx~n6htcImM?05N5imD&9Z)?e6nZBM0K*w5a}(D85Y)fU)U;HR^gNk_D&reT$0$z1IV7eAsTtGM~t_23uYmn-jXX@zFT>Dlrb87yMdl za8QYzbSpW(oKElaQ(t19M=jOwUk(WAs2VR-5;)s}PdU10%A&S9+ni4xpGh7vp4`iV z7;_XCctsoqJj?Kv{5xfc#6S%Hnsjq$`wGd`l8QVcPDiV=0Kq5huk=Q;=foFcTpSeU^xR^W!55^^}yF@Mj1v{1+~N>xfeB(_9-7lAhq@c zX`f%S^D-XZkhOnp;WM?BRFH%_3bW|ACR5@KgQpIT6O}y?N9t*;}>~VLQ%o z{c@w0oWTtdHtywal$`0@rCEedGa|U;xLcD8M1CE6tAgzG}-cVduWC2tO9L zMbwE+;lHjeV8xj?s^yHOCs!1Cn_-(WOTQj3_qDmxirY`GrDgJMt4NoPZf&x*`P1Ue zpbwAWoD3QU?ZGnUmv!B$pIGYKCs0OmW~${jT}$J))l9%!%6VF7o+#X{+w93ue%k5c zPaDzJv<_78QfoaK

;nu*@MX1z4IYOd=JYs|ONn|x0d z#)vvg<14M6cuX_fzYBh&FDnNlDQ?G5;)RGWZ&FlTD@J|qvBF;{l3#mNKSt=DkX@Vp zWh49aR(!SCx6rsJcEofKJCtGeSp&JY(ekX0?d9?}WP6{*(gBvKEy#+JUY0OW;&`VJ zip{?s=SQux)pYuA+U z`Vh0tRdN7@yOPBYluqR8$MqLd0;A^k;%u#guSm%Ttt>;uw1BbF%|Q=FHPyO$G*kt8 zgarhIg$25VH4>_}9zL*X+%94;2x0) z<7$d8aiY;=Io?bso6YFlQ|5PBYugg*5aF~;VX5g)4cnOX&=-`?>)jeTYhrPJjxXl%X_~820F~U$Oc|Q~qNggkoDcnM3S(2*h(D`pN4ktQ@J`uC3K8O^ zj0cav?O>E^-0+ns`D^p=U`#7!@5MRzMhXdFaL(lvX@BzEh5GK`gx3MLUep`O@ldjq zc`YkcCgz#gQo0J26t$67-aFmJ#xBgy%gf&>U|7j1;?i+DsGgmWep&i0(S=>Xks>cI zd{_Tn;?3qe5}}Hk^LJ+qG>qcvGVh%t`Fe-LBcyh`HT5jUbqcsiXOXtl7Ax}Yd|W>j z$U@VQ47qDFgX>-|Y;fr&aV-6cARLdi zIzv&Ye1_%`rYAVH+?fWrirO=r5aC=yCb*-MYkN1rl`A7OX5aYiztK2>FIe@z(zQr$ zd59x*`f|$k?)A?bg56K9nO}P!BZoT&Yl*HMxO8iAyvH(fq?{$^ST`^jV)%0&w>q0M%y6<-1jdY+fP*YL1k;Pcy26uSce=)s7d%Yt4 z{b|Mx<@tWdD2VIM5hViDwAra$Fbb_}bw0sh+hjO{ZNfE}3H| z+hBjZ&Vj<=zhA<_Kqq9$!2idGzDyH(?L&YR;VY8zF(c1&BOC_sC_A@5LA@|5_BMpr2ERdp z=(~^O4Chu`cXbK$O?B4oO6$3Ba^VLfZ>KucSR^>3DmJ^%xd%5?J|8Y+btno8VlnRc&P8jX2r{KNXN)5n06a#dJ*^FZ*Awkz06+kLUnu>$I3BW{BN_sLBL8-}1O`1(H2-r__(y^s<$*pvnDf6E)nPkb zZ;!)~C_CG@93e-Y=%6unhpZh+Px^2KXuepBvt$S;u!DgB{M)~G|Za5*~JbQy502Rc8LQO`x++3v{c z0broNsSD`DBUT>A%~b8IkDl~n3*xV%Q(i}>uKt|opA(fmwA~}-c&$)&?k)h3FbF6N z2JqT?db)~Boj^q{QVCg3WGsl02{y$3)!oP*DU{ zAEF3s3=T$O^#MPD4+IFCO9TvrEh{h#hK)h6o(F>?vD?DoSZzhYqDX8EDvCWf5H?3} z1Oj`$AS_wIK}f8A;U{njKY>dG5OM;BZ8Hcc^aKoyrIQE*41|qgj|G7Q|D8(^1cAld zAqK{_RWO$9K~M-7goTL$vHF04vFrnM=ve;f!_ysgxOTfAdn{c$AM}wQI(~KS;^GN_ h{k0R~XpsfL{@7iBa`!y;Tp$<}h$Q0TlGjuq`dSZ|`C9;*PN%<3-Mk004jy0f(6a03Z$k z0Qlwt4W&h}s8@#ahsysp!u$f|C*r~bEag3&58TF|a{uu8FYxxY><~)h)c_sq05fk? zK=3_37eH`uuoT+M!{7OykBgMIpKJE2Iwt_Y4?w_fnTO>3n+VRyvG{$q(XW)Pf8j~u z54^#XOJN0A>^Cqe$&m^l%=;w&8usw!C015y{NANR)HM*4p9c)QbpcMBWPIV$ZMveS z;k5++G(*Lz>rGYu{r{q-Du$bb=EwI|9W(#+MNYi8*Mr1lW@g$52a2l#vCdPq6NyBzKDuX=n=Nu!7$~=vD2sAXu37pT%TTVBPXGV( z;Id-?fO3^y-?V+yqvE7cINjdwai*NBV$}Yh=fSVIlvW=V{QYEe{*aABl034iSMg~1 zs%y?hjlz(1A&{J;$NPJCZ0dBkk6C@45CoB}S>Ry20@3M0qEL!cilc6YZKo^V(PQtN z+M=pz68N+xi|6NJNjtMr9XVB=)DNA!b19nhmiwQ z5}cFf_=W1LDI#­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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_hash_local.svg b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_hash_local.svg new file mode 100644 index 000000000000..6ce9719dd381 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_hash_local.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 3.08e-08 + + + + 6.16e-08 + + + + 9.23e-08 + + + + 1.23e-07 + + + + 1.54e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_hash_mmap + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + lu_mtf_set + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ad058078261f94895f536020a6a8b53e19b131cc GIT binary patch literal 19903 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.png b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.png new file mode 100644 index 0000000000000000000000000000000000000000..95c1d8791f82ab21f994d16efdce2ed5596ee501 GIT binary patch literal 29151 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 J%OBW9{10|tRqg-) literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.svg b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.svg new file mode 100644 index 000000000000..fe45e74e8a73 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_multimap_text_find_timing_test_small_s2p_tree_local.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 9.08e-08 + + + + 1.82e-07 + + + + 2.72e-07 + + + + 3.63e-07 + + + + 4.54e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_mmap + + + + + + rb_tree_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + + + rb_tree_ + + + mmap_ + + + lu_mtf_set + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_hash_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..58af87574b3f5d4fc35bba164c8e4c80457b19d5 GIT binary patch literal 16669 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + + + + + + + + + + 1.00e+04 + + + + 2.91e+04 + + + + 4.83e+04 + + + + 6.74e+04 + + + + 8.65e+04 + + + Memory (bytes) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + + + n_hash_mmap + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + lu_mtf_set + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_large_s2p_tree_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8dddc241f5a43f684fb3212e44d41529f7538ffa GIT binary patch literal 19749 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

n(g_YOn+Ll=>WfzEM_Ir1AZju=S#AN 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + + + + + + + + + + 1.00e+04 + + + + 2.92e+04 + + + + 4.85e+04 + + + + 6.77e+04 + + + + 8.69e+04 + + + Memory (bytes) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rb_tree_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + + + n_mmap + + + + + + + + + rb_tree_ + + + mmap_ + + + lu_mtf_set + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c97c24be2cffbbdfa4f974b1aff79096e2f3a3b0 GIT binary patch literal 16686 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.svg b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.svg new file mode 100644 index 000000000000..cb47139a4adb --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_hash_local.svg @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + + + 0.00e+00 + + + + 2.79e+04 + + + + 5.58e+04 + + + + 8.36e+04 + + + + 1.12e+05 + + + + 1.39e+05 + + + + 1.67e+05 + + + + 1.95e+05 + + + + 2.23e+05 + + + Memory (bytes) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + lu_mtf_set + + + + + + + + + n_hash_mmap + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_mem_usage_test_small_s2p_tree_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4caca02c65b33e79326c63f468f28b60e6c36748 GIT binary patch literal 19893 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + + + 0.00e+00 + + + + 2.82e+04 + + + + 5.64e+04 + + + + 8.46e+04 + + + + 1.13e+05 + + + + 1.41e+05 + + + + 1.69e+05 + + + + 1.97e+05 + + + + 2.26e+05 + + + Memory (bytes) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rb_tree_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + + + n_mmap + + + + + + + + + rb_tree_ + + + mmap_ + + + lu_mtf_set + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..17b3400afd1c05426b76155e0a51cbfcb29f2c50 GIT binary patch literal 16554 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 UmlMwgKC(ds;Mz5DMG3(F0=q&$y8r+H literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.png b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.png new file mode 100644 index 0000000000000000000000000000000000000000..77b902c9e48b9ffac077b82262957cfdf603d280 GIT binary patch literal 33644 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.svg b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.svg new file mode 100644 index 000000000000..ede137c86d37 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_hash_local.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 8.71e-08 + + + + 1.74e-07 + + + + 2.61e-07 + + + + 3.48e-07 + + + + 4.35e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_hash_mmap + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + lu_mtf_set + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cbacc907d5fc124484760c9f29759fb95073c063 GIT binary patch literal 19817 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.png b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.png new file mode 100644 index 0000000000000000000000000000000000000000..42c7afa84a96a3fab49312486f2e725e71231e36 GIT binary patch literal 29953 zc-q9fhgVZy&^DSvuhLNj6hV+KkzPeW5CI##w;<9YEl5oS>0Jdv5mW?~Zs?&z5D*C{ zT}tRm4@DqADEILD-uK@1{RNk`SSQ)%WcHrfGtWFT*@?Sne4Cl!0s{yHVm8p%c>n@I zctIfWTRIwGQtDr)}_v4)_bDbBP7s(R?{0rE%$z#;o8zOAvEEo1mW6Y} z(Xg>yLmX4cg0&P9ZaR3qW|W0Q#3_>chCV&aBqG|GVRpgGA7EJ9{K9-lbZl(31Z?$2 z@Xpd0c`9ThxqI==v%i?v^PNe!{a(fCCJnwC14=(H6C0bmdD!8O^1@t#%+%%KhA=X* zuBYH;WOARs(ZGqXFH4VNJkDIVNRN#z6@?{$Cs=u99VP=OyhfM! z#*-AM>X9@(=}g_-s9BOAgd;sAXN-iW#`EC0@jjEs0Wc3lS!}F}8K+nvXfMutnmRcA zaJjhYcyD5@-Z@f$9h4z$d+1v9vNTzBL(!!35BpFy&_a$=1S4F^4fND#x$qi_{+ zF!_?WSQmX@cB;LiEv>3^K?>o1E_NPY3z_7V}vuUQZEhuPzHpcvfglrAj z+#R)V6~Cg1a(R>kjmBW=1|M<4R;kn&)QstPBYQm+9as=ln^qxe<*~6S3|D{Ui+3Rd zt{eAx#NH&(#=9_bO9pik_JZb<6vHQQ$PFp;3cF^ft+@_zZ;s+dU!b`C7tdy>-YbU` za3HM$wVFyTcM!*Z46gM}(P22#(G*cIMS!9{19lMDWI-5Y3*6QzY)^o6Bo9%?tGn}x zO^GmYL~+NPSREb{!{`yg7w)`PtF!~R6KWySPywp&%>4vc_y>F-{yIER4DkVHURTx9 zi~dAUUIeq&Q_g!GwFn9E+W{64ii&Hdm*OO*O9QKRqessT5=_MoN;?2i#=^oA*vT-{ z?Po}P#v{IcEb)cwIrQC|3VwJfx#< zDCzC*m(l1s{uSgiv3vR@)j=XAu!%{c=94W&7Oa{|Lr6}MAZCnrhDw`<;7kgC81Hcv z^bgH}mUAe@$$0h5$Hy+H!X%2yUpNVB7c6D_k41bE6w~OjKtK33Q2Quo=*iQ|2%Qk- zL(jP?H?R*_6M6`a042v;nF8JtC3bJ^u5H2Z$Y`_^xPPBsJF{yJ(2Czc1*#|G;DJ0f zw`y^0-w=d`Q%`37c5#E}K(S~rspYClt<0}c;>P0?D;*u*n}BuRdNXyr(aJ3B;l9`U zLL03u_s(?iQLiUdJ1a|2^DoIBGuG)|QuR_aYowbp28@_jLQ&pRhhIDdQb>y;8 zI+p<&P=Ha_w_u-j7uvCSUgDncO^?y9zt8g;^O94SlwcuB%-Gu(5ad7jXK;lfLhVy> z2)l6v%UWvF)fh|w?dONgcevQP1K?)b?OOfH%U|j~X?j&lL05GLifX{l4=)X0`f;a# z$FU-HZ(CzCWadrbyzRrpj+^7t|g)3grW_LQ`;*(+~Bvy!EU~BSeXDoB~@~ z2C%z`m7*jP_?4*5+)&LuHA6a1LpiHLeTkaj)M88?{Y9!KDo>r?H#e-1KK^;}{&Lu3 z^h3IdS|m8x!*eel!_WAtfl`L~Xr!YOoun|n6mopH%V%qA+dS7yp2}(T{qsXHyHUd` zRkq=Ukn+7IUE6{nJGAz;X%0Ls3j+=TmrNcHSDV(H1l&cC>FLR;P+BN#lGwX;$Ds(< znp$>2w-AwKnMn+sSby{Hr)I=P+LhaZb~R799u^zh`Yz@nr%uN`D)RUvupHF!vp_hp zof+l9nNiASue^9y2A;<+g{XPMp(rb4gr?VUO;fTxj^avB#+~bYLZDIrb2m^dG3ACj z41=+3SBlj4XCiNtNwyKU7BlUF-FJUiITuUY)NfwVuInO2c~91V)7p}Jd*(b04@!^^ z<+0sSr;_qfMB`Bi51WEmPxW!{n$Onm^~tagm}7n=MzK*zb~XbZ*u>7~lJap?WgF01 zRhIytC$?9iSjwheHvBt!6bOa!>c%Slme`uV352x?JP#@S>Sc>_Qdg!#EV((sWIkI{0?DUXWg!yAFUo3rgDXg>56RMKP^EmCuocv_CQ%x~b) zju(jPuu1pQd(2|fzY=fdcHU9_I3jCI0uRQ!lI*A*;5i^&(n%}RsEE)r0-^TOnrx$+ zKVOqm2ZME`0~kkY^!QO>+33G4G?TkOEtr=4xduG%I->%^X@=tofizDh)dy!GAY|(V zK|rM1W^#d)j~SzzQEPiO;tMOGGVa~6yC#%QdACkiD?$|)^l>T2-;#QB+ZIWbN38v> zVz#<&R%-F}=-}VHOlrlzK? z|N2x<4@O&0b~%vtW5$}#_3hl(;chg!e@Ke;6n2NXp1ri!D~ew z|6#G{Zmn{v#2C~dy7hK~mo430kay1$Q=#<0{+u@pTO2tewzb)^;gVCtt)GuMblKc# z%b0od(7OGLnlzmaAuljx*RkFWoB1O|`y1GetTCoG_P?h$upVe4UD#)#^kPD3V&fJ^ z2z#SOu(0i($ZnU(k#(euu3RzT1J7n?V0=)5G4HQe9J4}wL?1;gEjsVrEqk^VyE)Rv zw~B;Acm&9kmH;OCk;fBxB!#Z&=3Kj)k}qc1xCUkKGyyT*aK0-XGT!(oNEB($5heg_ z$xEua`ha=cb8eg&J%Q$!4721+?}XN|2io$}U7RJkRX=PH8eoD=Bpwp^Ck7Bl-&ThN zHPg1vdkPKIbJsa!jdkFANGJYB7HT#+`J<52gz|Nrop7VzqUDH!^rcLbW(+}1?>cqIUd*yM4nUA5$3+Ydyu06ue(Cp2)^y0omlxp>@An=h z-yiLc16emvh=7L|-pjH?wh5VSk&+#Cu)o+t^|g_-o3))Lu?uy(0t?HeQ*iQ&fYlvV zkT4Qv^mt!j);j2*O35lbe98Ap3?b{oP+GNb23*%i$aQ}Sbx z$fl2B&vh6~aso91$ht#D=Dnh(TF;J*Z)ol6v^Ac;-R0I%A5wxW zDh_y*;H!*`z;McX-6@I0XuT;xhAi_DEs?#~u+m-51woA91{!J)fd^lA$;q z`cDH$qlgR1`TMa^B$gSer2KPf$>Y!21gj5ioELjN>15M4S;`oKXp}Tz!*MQs$*QCv zU*CGrZ@>Zxfy98(!Ku)Hy@Tv5qwJkFB7hjBTOZ=}1>7IvWwFxuXj02}LL+;iX>X5o z)Z-8MV^k!{2kHY(0gwLKPUKCimBo6U9xZB;z1EKI-{$Y|sw3{f0|IvMu5_B*7#|lE zVjo>WIl>n~Zs)jLl_M)5f8XL=m#<0r5j?GD*k`UeG~psL{-o=S>)wcVqNA zE66Dycsu|U9j4~yf?T}<9Bl4YBi^G^=YOYFc6HT&NGI`_KdwB_ajoM(oDcOwm(V-MD}eq&BS3oKW`N2!JG$isjI{mu@grdReNj;~qjdeu z;F-FM?)akEYCR8}J~!J)VivdNSsuDId0gVpc~wY?qwFqDCV(h#{8HLdXXzv)ezViT zVBi4R)6+vf*=%P$t=%25_OX2Qh%L2%J zbBxOw?OGMcY+k*GL4<}|)4ph+#NeZLKYr*Kjb8u&Crh^Hih#I+VdH`=;HR)BQk-cv zqvP(MC!igq@JHFJ?km@6*|@)s)9kbF3pJ{zeY&7CAYxVM?E^erYmgZVCI~TbkxuTz zB{x8#_gzlWFM~c9*2%#f_*}V`L7PYkYVniD zhoD=7w{(T`YZM%s=n`*W`H5lPDvWn#W$^R;i>e^8KD=2HG_{zdOg`T3o+^@ZM;k~_5RKOi|>#Y@lot%*2G!mA%eKR`FCCsJ5uwyXonFN*m=hs4Le;_<D7H)vPu*0y!-#pP1)DR&@L42?;fP1bDpa z%!LBR&8Gv)&V%ZQ>QCa!pOU$fa`S0z)<`KB%ZQmwQurMekJKX$>L}*PW+(NQzp4QD z4rTo$dombZeDD zXIX60-lX48g9!jV@FXHGvlXbL^UtbMlMMh$cOH$hKi5%v@IyL1VUK?$%gMKgLFCN z>Uwks*ec7TIn&9d%XMg77E8sYGqWT&1HBb%v3$`zeShay-b&}f}4>v#SA>4#aut*VpURod!~&2 z2}1zdDUfzbtdv1%fS~Y{Z2iF20Zt2cgLb)8%U$Cooyfp&=j#Uv7orlyY;xnmyBLg1 zU)z&y+x(kdVs6`Vu6tdTm76^=!)qh$)0E<;iPKb_AkDbOfI<|;(i}NmU-gfOL%IRQ z0;LSciX_|DQwI5!Y`)dGYC?av6T)AGP7zpy8F=^)o~73&Sao~T6lGhw9|dtr_gy+l zHdWZ$P0t_k;7@$~p-mmVjv9Y#qi198a49uzn0^rylRah>m3o6pNqzW5|L6CEsP`yq z*u5N=EDW=7)4AlZ)v~%q#X#a&uI$Baw5Uq?z5b(ttdPgTP}kspN#T5@j69k&$!7Jb z{;}`_@T4oei;c!S-#F{pN5p;9hzGa9jhD{CvWb->ow;Z?c|11BNW_b^pL^5;mES;# ziki=(XY}tyAQiC^XbkB@yXeWwJuWYSKwbpPEGriXpzWu}yA=_~WeL)aAMFgs(?txG z)+*ac$BUY$2l9?r2XYB!xgiAU4Jv>1T;IJh=944q-wRSphayLd=ak$p?$|;;^bmiJ zDqY1BRKU}LWO7b}_r13=)$qV)%8oN(tg*XP8~2g<0{zEtc2oMHQ_IZQ&$Is)@Av55 z^jKHnr9G!dt(kX{K9Y|)9w*8e)=yIh<^Ov9g}(AT@#hb-urfz@7wGiy3h_N=7kb!0 z!JZeFSOvG17t(afoUQCpK< z49rb_^BrzFH*aM$f9%iof{RNK-Mp_jEw4qy^t+Td2+b2^se`N`-Ib`~r(BLo51VQF ztQ@G{zK{#|_}fwjN{DE=_{0pCjsSpEo9&$S6yR8LXw4184OJO(JjUYJ0B=EQk5xd3(VtDhhF%`AuqqZfU|t zX?Mm>`ClYh)31hwW_6E$`AXOmsW!W4Oq7_Oz%%35x02ckrL2yi&7Z-$D>YAlzEP(D zCG95t3{Mol;e?1ymXS32=R2N_zt2H=?v|h>?c>+C2ECXs=aw-D@^F4#OLB;O!drPE z+LWzP1E;%NXehGE^+2EQT20)dd1K1Y{po@wJyRur5}}sEn@k#E*XR$?)%MiJqv7NnwczOGb;f7zSYxx!QV;KXP8wW;?+nt{%B5 zORTVup(>;PRoaBp_UCqf(U8Hy16?uSKHd0kWv3&@iXh?_a?cX;J`#Y4&4RSKgtNz9Ii5J`R9dy zpC6{K&Cv7pWraOSBfPmy>vL*V%dC)E@rEw=D~ALFHx8(a{GyAggnnl8qfL z(dG8I6zht6=hQWeAzfW=>B3CgLrRH|M`B=S$fkYUjbd{Y6s1{DiR?cxLJ1*H?MLE0 zKP+fkjj`~&?QSurf5hGXnO#f@T_bYO1~M#i?-4{^_ydz!U}Uyf;m}p;bE_AU z6))Utyc$~liuKFMXZKo4SGx8OT3y*=2(N}fhBu2KKjWee?Vmh%U#7N3>(LuSxx6&l z^z?CH$H)p|L~UbI%CuAebk#%sDsH{G8>TN3+aAb*+lit&AsK57O{D)C6KxO~dyau{ z5yX?|krn-%#?+_3{P#zLl-7)wTAN7Jn7O4FjSbdMFO<7i@GRZ%)4tVJ95vbCZJ1W* zjjpYx;kv&NB=v?g=d+^p$)x%F~R2+0fn zd%Rl}|KYGTvN^2vas1LzuPd{E9%Ifihk^~09kto;{_W50i&f$ulSrpqkR=7dXu|X2 z^5;eo5c5`&h8`|Y?_K$~Yxw2vS)ti%A#I*PSJH{))zzND$4o}rOR*v~?{186?Tq~0 z-2OW|dhn~x@ui8of*7YvWO~JH+iTLoa8BOHuLraI=GHXNjA_G-vxE)@mstC4N#Xw4 z9-ap3pCFwgQQ_p`-Zi-ywzd`#HylM5P(^B`Q8&5;YRD2*m2z|W!b)>i-2%1Jfz1)M zGPmtRYieE7dk?8QOz+uJyPDp!q;CE^Q}WrL>9b)LDU?MvzR@gg6cvXjPW`aG^Pc}v z1+85Y>r&!j&xY{PMC(N7wl3DIV@(QY{tMYmG$xp*g^|nU#gm*6_qJ?L<2poDlmyO_oaRpH4QtHKlEMX8syCk_WGB2#f0b5jYw zn6elJgzmZvU+{Z+dA4J%)|0zN;{o$hV#ee#pRAPCj_4w0%o`r4x=D`!1UH%ND=x2+ zoCm8nhwbTY9hi&WHBy{rsAgzjtNGDg=`5eC#)SGeepf|JSD}-_n)Pq@kE6DjD)TVM zRALF8sy4JXuO*;j#A98D3{0;qmhJvaN)6uIQo2kxJ6kH9^>RDmNAKDVSV)qr>%LCg zrG89Qo)2w3Wtep0dOEWu4jtodNUG=iX_T8O2X^r`}HyNF@zwbNGz2Ot$zkk-d z9U~2`qmUIi&HRkdBdy6a&a&)%yP&}MPN!GwX0y2O#A$>2BGFA~n}CELit?p7*5bzQ z-bhi=JH3s<;QElhwF*c0#JP1w?WH1!g|>zHtPiP0%(^D7FcQ;|O`-fs_t0Um^`L#m z0(n9_ZoSs$b?dkBu^#fYXkDcC;~PDwUc84QmAB|!j1?U2jM|DCc}}5YRN?;-f`1Hex<}X{D-KtBhkWQ z!p>8&Oz)ax0YLlodH0puRu$YSc!FNGW!?VvV7gT`$}-eG)#!bD2^~zq8$mu8`)s76 z^QEK)40Yf@YI5NTMOkAnqjbv!e92?*J>tde`wvoZ5uR`!P%}~8ly2oFok03?%=#^2 z%cU*Xe7-eCAt51ta}Q|eDxRC3tO?l@t%iTg47Q~Sl{n0L_|7}M9R+=u%ST=Ml>8cA z%UJmuH=Vb9!7m9DaAl3rS3y=u#fF(s5Eph+N2k#Fi76gI{@Lr9idkpc5o(&B7FFT5 zU-$876Gt~Z_HlTy?PLtE<#JT(yxjkG6!oun?f8b#dx9#wR{d?wTu|FzyK_Z3#xzBo z+bhXJLIc5G%R&cIjw)u?9WR%>?q7__8dJw(8{}N&Ux>2@3MHClsHMrinR$$~XK+*v zhN*I8Il|o*=Hc#TY`wM0>E|T(Vp&vW6J$I8-b7aPJ$NQ0lukQPJ7!rOKUYNxH@9k; zJyZ`&a7)t}?V>ZHRIn@X9p2wLctL8B>(~vWUp2lsJT6lD4~_A5 zjmAqMOI{d|b*IEymf)%M)U(Q{d;8dZc-c}zn6W47GI3#vZw zTXcNB>o=DkJo~TnQ`7pmV6{6+BxT;vt=P-{92?v6Z>x#t{eoGuXPE`3-QT9D*44qoJYm%;x zaGsT_Q9uJm{X*DDEk+%5#8%%+l*l<*nVcv2uopRUbHXOFe^GB=X}chDuTJKBVbPv4 z8ylN@!btL0G3sRK8!7}j1RXMHky)LN;R467TS@E{d)uduMUBLtKaexl)6v;B_rU45 z&^D#_X&1V~M=Jal`>ZRhYF12&>W_aFB)thCHJHS(3ZDElw|n-d`eVrx z8Euaa)=v{W3z|{ait60YEZrS_*1gL4#iYspv92-$cX~zrLz%hyYRxaR7Fp~Y&7)aX zHK$z7TRNdzVGVFL~wk$S0 z3LTepAnh1gquYP{mJ}XjEvPt}$a~#s+c`x&Fqljt^5upAME$&a@C^yG(qAo?0KfCI zQcYNRIAaD|g?RFoq5HY?4Uq;naE{vBPhqP%78SGMGoTp;WW+S#f{iuZ;qI!UtZ6;y zw@>RaudD+e3)oQolHe#m8(Uf%x5r8P5Mk}&jP6Wk|64S^V_EETTG#3=I_^3gWj89R z`{W7ylRcVID~ z&ceK07K9Evvv}Kwqx1ee=9 zS)4#L&mPkxtX1FzQC{f${$!|u9|l)JGu0c&55TU}S)*tQzd>)EZQ@JrSeE#dj5ATd z8lm$+70?*PI=K&+^S?|bEaGEhT}(>2$F0a6a8>q3-8(2gto)2zOS;=o65afMxf4`DpnB6;Z5>Nlyu?}qSgYaRc+%z7P>xj$w6|H1<{O)Nc%hf zK%-og%M%{M_Pi^0;o2AY$S~2o8fgpY^S~a+mEN?T;9T}z@7S2+NOa80TUw2UbUZvD zC@SPZRD#e9Yrm5%$K>(*y^jXKiZ47d<%z?!l1MM#y(qZTyXG?U)WIR-MS>38%mw}u zeF3S-@woEcN8D&V{Bb%wbYT1UshpJ?@_Ign0m^%Ki3E+vf?_HZ!*lA zvHbWqLE}2ss5-A9HdY^AiUc;T1#d!+E1m)|`I4=(Pd@K>7}V?k;;|sw)tnvM36o;s zg)78XhPaE)n2=5?miDs(KbQ3qN;Nl~Xa4ME14t<(#9U^=*m)ISht5Qi$BT1!-QYyj zefWszY$eCaG0nb5_3I`;mWzG@G#aPLtmXv|fhuN=@!<2v%f4{?lK;T>lqeTM-;aD9uhZ7)tcn?ntv0U>w}ZBTYW>I`x@X%63UQsuXKSRX zc9&rX!6*s{Y1ypGtucZ>XYCvLyO*l%CYg^kG(a~PG#0`3&_7y0ZE>||0Pq=q7cV>U zNup)|IRQ0~M)yCrKEFt+!Mo#i;oLB6FPa{Y#dDCt)ns|T2YMs`Q+)OC!^irO|B%9s z6s&0{!(QM7IbI~qqa}#P!47~MLDZ-&W|SQQJD?J8CR6>IHW);F|FZ&gqHVF|XE!3w z4&5<0UiZ)(Z_53ZNZ*y|IIS0AUzPKI6I zG<3M5rlVt+*9zL9DW^4qMD#ppI1~3amG)WD0_h)N?W)5S7%ob7(=Q5F5i5Q0AB|E( z+P`VOqkEQHVio(u~w^56v0 zfg80Z&3m>Gjtuz=uiV))18rN~X67}GYBm7HW^fBKPC_oO zlMF92oulppd*8r*DSadkKxmAL3lIIKtZX|Wn5`Ch%C;#kJ3utQYPUq%z>Ez?5uHtX z{oeu_9eli1>!1_zIuQ(qCZM3i8za{9Kji~8#<>DT zfq+$V3`-Q1dzc68Yxrs<_zD+n)hNr-_tLMImCcm*QMQ&IUo3Ngn;Q4=AcE&PgnVVx zuRBlQ;36=@&u0o`LiB);e_Xx#`3wfqAT$LeRsbD$R#LJ0XGRLU=5Xegz3wzC5DY$9UHqHsUHPI|~mhi9lbj5MNYpFMH&j1xTo^Z9E5+#`_0%(@jv?lbF ztc!mUmGm7DD%`c;ijS3qM7!YV&ORt6+U0PglR$!KPWPLC|{T`4>Py>0^BxsGaE%)Cills-NgS(#h!BE8#P!O~Xp@l3FeX^%KI~ z;D6w?%#IF=k(Sax_Rz^r>yhHEr|7^Y80&NHt-c_g+|TF%d^rui;Ex9($cyMjtZhte zY+;ukpV!VrjmPLzW9Y#)@{4Ukb$%`@ZydqX-k}y}o^9zib8UvpA#*8Q>K@HSaH1bF zpcvSjRDR^-)?ZqIpqZ@hm!hYY$c?EODa$Vltz+c|HYV5L~IAQ^;+(Fqi^roL}#n7`qV}pm66Ej)AV$PHGDI&wM687<$@Ow zxa=?rpJTxa6#o--Dq=ebt!K4ZA`N3I9tcP5Y)nUFIwvdt-8ehC81Oyya*QkPjSV*| zkLE$Q$ss7~yy7I{)@dY*%HwQpJ;Yy(TL!?!=KA6|L@U3#B#r@U$VPBb&$$h&N(D&Ci(CIUMrlnoOYw)uSrw@At#FMKSd1NNy; zH^I-AA$NgvY8YUoG3GyLgjAc0y;5W!Fl-9#Og#Uu9>ZUl+OGy%o%-~!*w(DVPF-T6 zX5kCx>~o3odZ&k+au*&;+I+*DKbrw@xLiCvn34MQ;7?{|xh1y9@BaP!&(0_^&&K%p zc%N1SZZxDy5gX7oCv$RxodwmG32^g9Qao@oc(*I1L(`;#n4`ujipHNau2K{>iG}Pj%${-|_&YvF7oPh{s4NX1q1xv|>~d1kznU zz@FSr{xIjk2sKkL_;JcX6;Z%Z(&(6*^CE3lAxI{!mfVW%oT@_L? zGSi-?$K(i?!=2>`1s*wgUv9(NfT2vYH)*ngV|+CxgYaX5JJAKs4GlN6@LaW!K`m7O z$*^YOSN2_K224#7Je{8|F_$6XHd<^`)V9Bi64ta{Bu2kOYz^%!4{TqUp ze!bQ3nQBtS+FDDyOWSA#TFE7=tbBZT`BwC+GGK>F9~K+CYPkb!-}33xrH%%SCVC2cjL$uKc z0?}K$j$PvowZXZ1j_QMrJJ)nbpmY;)!6lTbLJo&qEGA^8qd0 zfPmf4-*`^xIj)xWeVhJ%cJQdDr>8Yy=>Bc_^Z&;#UwWh|32nNL*Rr^oX7~$!6Mamc zhI15%zv3)A5k&f-rM6QGmvvbYAMQKs{ zxKqHJ;|B%?fLG5iyqbDs*h#>^T3Y};%0t#`Mmya;skw_%bI8uw3LA9Y1_2z7BU?a% z-d0rk_*TTC>hzdn>+v4WXQ0sF8h{JhdSOW~66!t58{k_*pC10qS4EPBBwvk+XWEB9 zOKdFq7XaO&>s`G@J1?Tp_41d!5B!hTqKIL}&c}}*mqPyaD)Q6_+kCV2@7I;IZG6=d zMk%6n-8H+l-`c2fXn_gUybxJ4LJ)sn1{LouWw+pK-5|Xt*==Nh`v(}}OKolK0CAL? zi_3ImXz0<|72;9y`Lnp;ojc;@6?V1_f$QTnL>#grSJtsDdiwN)ESP`Yxih)gu{1&F5_)AAYny{#QV8G|O@n%Az#$$$hYh*@R1a z?p^BEzXrd>sn^k6)qpE{YVBy-+1e77gV|(c#Kl+c(m_{u=S+^n_k9ao-_MWSGBxG$ zY1*QBSakQTN&YKmE{xaIUgw=Gj_V zS@|(HH}?bJ6J{eLBjxMBe*UrcX*N|3JKV|kKP4Q~QN3_V|LGpkdyS$H!+ev`-l9Ui2zV8~r3@wmPvz%iEndlNpIZUB;~ zR{T`$G0{AJ1?)-X=?SH{G{g&Y>JQGAEfDoON>VPpB!C}_Alzsspg zyg)_Z4Qd6zt9#k7&Zq~B+CPYKo zxigW-$9P`Cyxe7HsozI!>l+6JN8wpFHEg+#ow{;6IrL~MWW$z6j#JvIkD$WSCaLLe z^_3uGFnf8%e`bS3f(Krf1=mZJn99!smJbfcqrkzz^yTGo?jdzkV$OH?y&_vU*@^YYXAz;o->~8X9^9>Hq>p z1PB1HZ^QM>cPxE(A=R2iVrdv;2#>!RAy|osJ$my^> zfN#~3l&z|qUI-%a;EKhb(@aSXWHT8^{pNuaUUjteXr)#8~>)>PHkqRdTU$a>%vTnB?Vbt$o?bpHUKV82!Lkfxo7*-Dc0H1*ubMUQ= zDB53Foj&Lb=dlZ#r4@*4>ri`<@anYIC^}KhCRAo3;O`3a(pjTwjIz;s%6E7?0J!6L zu*AZ3-fImMH5iWmw^+9O1H&b4OE%kWG$!c=*82@~bymiv9$|KRa%@sjR@S_=-6J#Y zM98}SPw?47TH2e=>pU;o+Ouh=HUDNg3*;$yjcWi1Wv$rmJX!x#P;>kHm10So`psp} zk*uDx!{hw=SvTKb=MfsXO0AkuNNw*2u8hRxr_N1!;ZulVuGx1yu>dxORsgJ_)vo$+ ze;Nai5e)lfwmn8O_@_E~ZLq>#(~yqG#P#f$fAYKb8V69;STx=dkG|HI1R2rU_*+Y( zfFK`W%CC>jbtL2~VBMO|u{)~%tDG79_#R*;RbL}%eRkUzWyEY^V_hs_n0WD1cwtr# z_EP7wsvCXl-7S02VDFj^@>H!|UZDWd?|c6{@4*j=3eR~`g&R%)nD(j<_oF*l@wPjO zTEF9l37wES&}|&$0SKs;lxXX(kAF1Sj*V#+sIYV%nM zAm`hyPQRqQls%a-dL=qumQt!W-|q&TRr6)-G>MN0rHYR5ZgkYJ`XVF+V%`|i=Y3g9 zNGRQdQx*i{qq1R^yj=YtcadZduM-DK(W4J2wkGJs&+Y|)gypv=@JGrmpk8iPS&(Eu ztCZ~-c!3+~f&X(+R;Fnu9I}~>dVYGl{^0B*d~+d|GfvQr>yMO?@7)0;Pb~T zgw7N-?xRiAf!9`GUdsm<4ZZ$?Cv>`glsxMSq$`5k3Be$9@br_vjb3z`qX%$>OB^+4 zvcjI#JgUcFM7b_9Q{_P0jkxP=txvMG0e1f z6;NV1mf@;{PDt7j_ebhvqc?rxfCVuRWx-G-nxF}y&(FZiXC}4%O2ve1l{m1d9;S5T z?X=Fz4ikNP5of(Le&d$%$bL!KD&#J-79vg4!n)=Nw|1?O1s2Ov-~gpTTy)G{8N(}G zYRT-rKPGwSY++&xs4C`4B`b$j?KaS_4T!vD+1WT07~k@75Jur5phql9)LFT`@6LLE z&jGG6i1LNy0Gyh59Oj@|AlwrGn3=N)U~?q9Rgxz74OKWNKZ$tUO| zH3uw~LF+3rtt_TtM-K7a>4{rmZ>vuMv>Lk&fqGSxR#{e#2t#`v3fgoDWCvk2CQsd(b`I|#uXR`M*u zrH9HqL7epi#2SNa;2z^O2M}C=u0Fex)WLy&Mmli~EMY&B$H4nl75|n*8k0V2+MN?~ z0Ii$=(P~h^qMQJX=!|Ec{kk)@Fz@ShS&&d{0S>&v1KUks? z-Vn-RoST3C8Ed8cq~S34HNrzJ6Z5-j~42SOq1!r9QC~WVYLbR zjz5>?6D-SwY5>v3Gy+%MBl0e$mHf0UAF1K0e48*lNR5%r3$abV$|tNpOS4ZVk7`T z3;VoG4(tdlCQm1;&YH$%j#P2gc669vOiKezX{2zRFMkMpo_)a|k03M5@WLdh<0qS^ z3i=*Pc8=lW@FMtpG?B1|B!wGvGI9ejbBT=82O-Ecq?U2Qo;+3#1e1V}z$(y}lgC$) zr@x5BV7}Y4Kz`Bra!Ce4gTm~B%7sdk=@I;!$vAtXb`d8W{EGr0=aWn^PM=-3pt=3z)d&GICVs$ME8sU)zb)y11yKsz)*=kG3h-DJ)SPB|+ygn8`k}lhQ!>hpBh~ zIP(0D9O-mn)2J#QP?qH<46ywdl`iZn%f|egyZ((plEX?{etL92Z0ehFF6|S z45BD>xI4zs6Bf@6k_VWu7Um#~@G<+$1wgOEw%l1Vf~j8o9k~f(qP>GEM*F?Q8KW2+ z^x-9*Z!iG?WUjIDTR;@)V(C?JA$>{fKZaXR`=w{(NmGBH+8&JSKF3u&C0mkCf~xI0 zb@5(tvu%WUf+rn9WYeMci4hRH5MJACT8AiYfGfjjtw2ChCS39+Cmi$hsVH6>Rm`J z1R|@b|HP33Aa&IO!RlC5CxCB;*BWH>Ji!wJrmCX!P~0-3{3?DZjKxP0a#hI&AxurK*GkfSzgcgdP=?6%fA zy$&Aiq|<2Gq+Nr87+gNLE$n=dn5t>fUs6TZ*w0?czoc~yFEK6vYS#>Se>z3YxYO5l zO@`f9c#^QfM}3jn6MPg?>CyxqoILLK9OgO?4qYI%QpsXZA@9+x@S4w5@IYYzBCk!< z2+LuU&=Y7)S6qe*JP<6KTKNFcCyV`x*SS;-(Hm0Po3h_ zPgzRBK74E~fu;5yv?ZYD(ezQu`||hITWMM@9d!|uV5>}bsRJR&f#is*xe_9YxNbdL znxk{P)Sh(0q$Dilw;Er-2lg749qMERdBt;-!wo*ck+FALg=@`Q51u2GMr}e)%5nMG z>%r`pv77j3QKyXgZn!t~kJ-LWpj9Ws^lDe#zh&UJ&w`>CWjZD;^y0GCMB6(Y&$pz_ za?0Ei{dwA*%TbAprx77;0zR&$$EV~)xhq&`#ubKZGx!;;J9I^F=TO<#imn!Yx?lA6 zPpa}cdhw6KAF?n`%9oYc4dNHF?8QIbm@NtG*MAt9Po*SVHZABO7^;-pqmFO>*@$mA$f~x->g?6NMSnH0e3gMRtn z{iuHi1!J8%!zSCP7R*Q2+*9MWs;80S%`m1z#RM7`F{8lGh1)aiWff; z{O7aZu^U_zW(~7`l^IG+Sd%iSo4foQ2iB}5Y~NC;>ya$BMELf3dBYzLY%$`Ac*46t zh?Ql_)bB26SC))>@5>=Z`|vDUCPi$7=-7CcB?(*P@(IVm>jodZGo;w|(+e2j6t3X& zzHe#v2nlJ)JBoqtRpkB|=jUY&9VNgQmG>I;TZfbIA#k(ljCvM`G}KsXH$-G{H>G#& ziT(Bp&c#v{3X88?>6*Bj^nW@P4QhkA)p1q)4d#b}M1OR=GdctI%gaEwAr>we#dE z$#nccLNJK}nZi4#@3pu{!D#fb>A4VYjZMfZd(4#r29c zFxoBRX`>mGLG~AtWJkEdNsfbHI^k~!rytQuhQn;c=hQc$`@0z?tmYn>ks0*IM8UM? z#xm;Ip&2o+rv6~?;1ED5v5wj5Xzi1LGGHY;$$44t-w=RfmNzYr-MaXVo4ut$i-=Ov z6v-d@S{WZgC9(}zlCv_=TO<8i-3HQ-D0OiT($CM%71uP%{`zT>8tN-E$OwBW+_L{1 zZf*w9_vpHGu7@?nCzOEG(njRn+`-;9A`uKA3NyFi(H2$fM>|Bt@$tDo9`QeaMGfqc_+)5?VarMs)tH~JS; zT4*Ln39LF(Hd5hxx02J%M-y+%?0)Ny1=-p_ZviJ=sir?CnH$!TG(NGSpXPLZ6xTX+ ztK--}LGUOBeRvgnpe#=2+g~PFyxr9D_;2|^cwD>hlPVqC_lvHxueGC9*7c+@atRKM zfqm50@)$|$-rJi;BxNO-`bI{X(#QU}^C5pfFP##V@kj|g_hs3#u%f6ZZX#wg{#wSq zvrc)LYWF;rge2Q=(@}EvsF1t9HF%69^a8ZsY zHpu(AKRt)a5d$bd*sUIRqqSqaTUk(0nN+419aj?i6c8Gx)*%A5*^yk!DA^j%c6zJ_ znm#@73ap=Rgw(X%Cv;TFdWi}_Z?wEQSGE2CSJW4P!`K1{?9wNEhdqP>rDwN2TFbUG zCT4|rrc}W-@70#bF!F7urv1ASJcn(*IkpZ_LaHBh9|>gPy-=5#`g7CZ2N-yed&d_)06A*5SKHa4bR$sWc^5&@mAL)0C} zk?~&Lm4eb8EF9jP8E#Gxt;NqsHV^$2mv~?@9gkq$VFd-;BZH^TPwhXM^Dt6ErE#>l zLax9MUI6Rg&Z!&(Lu9vq-S-vFqI?QC5=TnIoEsNt;u#IY?9x<5+}AmEf`LJ@4C(P?PCW~47U&y+7F1vn;01y7l11WLc2^KL?>ue! z*^qW^*$K$~n}U(%%k`0ctm!ro=Gw`*64Ea6us};rj;tP4`;G&)I4P+1sgb(1`v^tf zz3JXnd%Uv}-YxZlQoE6r$!~H@L%ymSvf}2Ob!s%fRy!Aeb5t6M0v)bO2 zTf$Ct{*B>?=iVX-@aA`9sHrh@unR=LZ=*iObCBAPrPf~Iqx{x|U|)=v>X2+5%!^C> zp&kg#?Vg=_g1x=b2J7zuBbH$bByk;Xm+wV##V~Q5wF|W84S(yOW5DJnE@`i2Q|WTR zdI304kkV~}67ie-a4Fke!)0@HIRM+uO<)x&R6^F{6+qn;6w0u09AhzzESB&u+aHNw zY_SZccXcFNp*U|M@-&!>d!6KAS4kDhfPF9h{%ejnwqs11Z{nz9oRG6UC9>H)>1ZGO zcg1;%cX2V{UB;lB#_|TC0>+Sji$E@`y1A>Iq^2KSlRLD1BohppA^Zaf;Xe>?oT7+7 zOo%XN-(AX8ceg#{4|F+K3Z!l|d46W~EFWMb^2-P4uK9dot}eT6IjSd~OZ|#WA!;)v zaIJQf#prE|X<+a#x3p(o3T}g9J2HGW`X{v>WIy86HpPC5i245-6uWOV^)eY_3+`1CyQ3SYlmNJz_P0q%2{raU^gM>y$^&EAjrM{(0IVSG! zRV|bFD{j6jD03;TJrMq~qGn~@R3tl|M{s#=) z{1h45>y=tS;=mATwx{V5`}GKbp&c2>p^8wSUMO$7;pHf zOycrbpjonkGMmB|FCL7NkW&X0xYbK^>IKL~>Yl(zo$Xq}Z5PwL^^nptbDalUWD3u; zXVehv@_Cljf4h<9i>vX+9d@hRdGq5ycK*WR(PqYjIFz$c)L(%@Nu}O12zz|1C{3G< zPYD#UJ=dtIDLeSDjS!Xjf^JV*_O3;A`J7QyCfeCEa?i{?=~dpnCmeCxw@urA3& z2}!|@;mSEhC2`FYBC16x`Lg&~FP8RxTLe-c9)9#I>=d{b|+jU z7i-xby-T*B`Lk={$6~=7ir@=3sF+&~VX)mQ*px9{{tM&hXHyvy+fj?RITYM(R6Ndl z`;~R437DP7#`Mn3!~)>I*GyPF!C}k3$ ztl9t0zv9O1g?>V@_9P^juBCAe66oa5IK8?*#UP)-xC$RpI(cx@`9jiBA2rK)RpFNq6JuQbtC}xMsE77)<{sHWy3%A0m zEOaVM6WQft<&|U3crMs$Us%M-PlxF0Sxy8;514p?85iUSb=rbbvN|$V0<;?BwQsNl zv&DSU;G1`t{(Ry3+=5o&MUZGC4~#72jsn5>eQag7Y^uJ_2k&2oes6{!N5bG-j-_Uikz+OR4WDb3cT3G_|=6api8u7Hp z&fP%Pxyq4Ct-5{Z%&W0()n=+Pjlf&8w+^V!J6l=Z-8rd>EBcV5@gc>rBIgCD8n$Mn95cl}(4OY6j4CzU&Z{Ziod(VJ zsgwm{7Z>g-G#xyz)8EycK6!(HE2cPvaC6-C2DA4Xk~3h5vQ+K)ThMa1t-kuv#J5*U zRL|a#`Ga;X(yAXawrVf!&|L^NZQfa04ce{vmzFVM^dnAPdR&MK zMYh1SW^%Ny35%P2;PF84>Q$9k3w2BKz=-i)@9q%)MO^q$^(@_Sh|m(KS}4o!LAlo$ z@FI0)Xtxl{lZPvIu~xJHv(Id{O92wq7MaD#J@ zr%)Dzh`UM}JMrCg9pcctTVLd^-r)*dtKsgN)&h23z1RhD>HAWtnLY7JF1C34F-?>2 zJFTqCVd;~aUDUW{vhkw|3Ms2~RD<6d{go{ee zvn-wY7w61|0&?()irY&zp?2sEz@HnB-lv7bGc&$6yM)V=wFs@I)%kjPyl#)*Vdqr& z{mi&MQg-H`m1@Hp;x7xM4LLa%wm ze6UE$S9Wn}Gp>QgH{2X|xXazwowy2tTeC?bQ$+D%VenYd1|r__CT<>#1WGrUk~**zDntFN)KB1T!bi$RO2ma_7_@Fw4l(>?a&3D!=$Q4 z#9-Yp#vYWRr&3RF$+a4=daBIOdRg0<@<-F;D=MT{3wW4ZRf~|{**Tc4pyUNSW$5UD z>43+t;B~a)%IJ-A=c&G6Mz8?S1q%~Ijp8>?(5>+ynsUrjE^^0|19#4-F2i&x1!q~e z-4r|DO$cNhhh$LNZ6Ek-iVe^yk{U0vymk|ILWnr3DYwl96Snjt=2K%L`ZnC?87PdK zS?AcMUmh`^AEOn|JOp^?h3)n|mgoFaQhtFw#B|z4^oMt`V)c*^5w*^qVG=+3*8Z_d z{tsc#!|2K}uR&&60`eTRKHla*^@%t+-gSB3GJ=j1dp=I>$6ot-L(kyC7Zd<0)j9@T zI-b}bQ-@iz|GW)$*dlS&fOLif6{82pNh3UO5m(3i_v`~g;i*Ta7#Ur)m`$i#~b$wNkJKL<^Cip33s|-yGwK} z=WKz+SQZUA%2{4H3)oIYf8T+_>mxx04a=Lv^gMJiT;yxqz69}l2y2bCcU@gF6e#r5 zp{b6)>nb-5vUb|Y!*b>|CP5u_{O&SYXS`GS%p3q~<3zp-j^(oAUl363YQg$Pc}mlUHpieF(|-?-)$nTb_y z604Nn(c;1X-W-wpVtxJ3v-NlQs;;k5KEYoiuI|sTh(dfI#3Lc(F_ol|+UkM~3v302*}kQTF~Bb|s@ zO-arheC5A)9Ne{dt}c&TPnMOhx)biIj`7cW_KM)QN!G3AXN>WOoNd;g41`>^Z%iQJ z3jPnY(nLj^*udFIBaif~!0MWgi9L-Pa+-QcPp6uJI7m{52!^rb?F9kZ&A)ErzPSrs z@=FR3>^zzLtC&Ze*JI;!xXFOugXZxMZbww{s)Lf_?aCL}rku~lFI+3DgSlh`XB$Y` zi_^n}NWLuV+8H04aSPw2x`nuf{0!Gu$1}d=4u8Hp6v7zh0Nra4Q_zdh5Q5gEH!<)a zf^)8v3wjxH8I>VrJ>^(nrW-^ZpmEB)qp(BhZo@)`p}~B?B@~zlSc^SGXnetd1m7c3 z333vfZWs`qrN|oUQah7M!!Bnq0qO;n`j+|h~Q|_No=crnWL;> zt;q93Fd7|9#pS@5Qx3OCk5eXyBjTMO)ChS6+1H=(LPbN4ir-A@=;3^>1Klt3Ms(F4 z%#L=xD?WfOdun*B)j-Ka{!~Q$H%_fwzmiD5SRbs7Ml)La5r!IB1*H^Zy^RtJIq7w( z27z$0scUe_ka9_vbQ)tBi&8xLlWV?2WUce>V)&uY#5^s^-MkI^EytWEm=@i`)=GRp zYMD5~V)XQg=ty7<)H?umq9EbMHS;Y3H`ZM345@?FVX{!Api}Wcta}T#Lu{xe=uC1_ zJ6#<5MKxlm*rR0ni=HFje>g1FJJcPlq(Al}D?jY=tmiL>Sw@dg+ z$ptmTpNU7+pYQcD-+x7Xw$&(xS6-&?-?_O6PDpmpk%?;kw}?O*Y&cwzs^tyrQgDi2 z;9h&E)spB-yxk|Ogd2!YRy%d2-?vFu43HYm*Uq)+iZgd_BXKg3SYw486(K};F39=$ z>5T}}0F4?AtXL+Qn{|C?jvad)YwqgDTSmRo}~w_DSa#U z2*)WVr-q#BiT|Qw8^2mx*mE#5-UoBcS-uf@-lK@O3s9eQx>v-STw z8tCvd{f~!JYqq7!dhw>2dv?oBHC>*re}21GxbCd~CyNDNvhBlQ4qZ$*joil?m#G)U zudhpZkC~Wz^+~R8*sYCF4{-82EK^^)po@ruJh%@?4I6n-?IN}+16I^J7*-pKgw@PoLD!>9`J(c8 z?|eA>?_9=gU|{K9?d&CWc3@>_yz-@V3OH2h};X4GrmWI?vqSKn`TRgbWz*g(DP0OG7z{i~w!~ilI6v8WbDm z8Rikj2cx3U91wz8htxbA+C|;O5L&zCl)|ZtSI@}sLJrDR;b+oSR*WYEYzaR{-b^Qd zLl|dVe3TRJGamyg@;ew*uRs19;4t#-76IR9ccMGIPmME!y#F@&-;wiP8~K6ODF!ou zk3UU-S1+FXnI7i$IhzPJGWm_5Ex}!UgaMx>Y++jj{XIM~jjT*=5U~*n*K5`Cu{^Fs zS~e@SQ;7uz#a5o|FMIS!&Mrg=1@~4tB$+fE1obN(&r9M2J&X%~!R@$k`$CA3AeKea zl)L(@Uw-@ieua%xIlfxzNip}Ed#@NOU>p28nq|!nET^tV zABw1f9f6Rwq5ZHUL5buM6TO1N+cJ3HUn9g>H2$H|WA*ga=D=L1@v>X6rHrka zMx_1VS4iDHL>8U&rU0>4Q*24~hV1g*s*eJF;J$&cC=R8qc3-_>s%S$0=Wc(0bA48z zLT4*;=5)$1inUE6pk40f%U*0g{%f;?X+x*q4xq?`ss^zRSzNdRRDvS3fjE`nRLi%Nw z*$5cKEYaBA1-OL6ZGxEwZ~TT$3mUnVoJad-eH%ama4Qimi7;IClg&bJ+y^x_?GS>` zh!mm9L|W*Q1aB7@Vi=kP%~(G&BgIQ7*!hUzM(B*sl*{4S<;B@>qwn@;mtw%t>#gZ} zGsvfbzNQcsBNobY!WC++La-?*GesbUvCRojdl2eAD|g7Xw@5!~=~X0xCZUR?q6f|Kv}<$NioW_z7G~pe z`uz>OTI6t;P!5Go)%?WmKvzLz5BN-GPFpIF=`0&0Ac1+inKbo!; zNc~~{gB*G^a;GR%rTVw7FUHHZO30in_S;;D;gAxFHZ+@nlfbv6;AsRwsiXZcAB%_vAjiDqB^=dDy$Gkb&XE)4Y0f&4eK0qbM5n2oM-ai!}-Lw<@5qpf zH6-jv=ihM_Oo@B--5Z*WWZC||-4d61$*VQkrfsg(pYz+vC+JYmF2U148*qfi>DuYJ z&iYDuJp#ISqiMqFb$~zV-)61AS__`)AEgx8eFmEZ!sR6J8qM+cw4HCr_j`)N$5!hB zT9b{Bjjjll^gI2uft#YZ>C!5(D(HDoy{ zp+Y}7hFigS${swMd~gRt4GM7Lwq2t-C;dZhWZe0>C}QF6)__hWqtY-Xt)LN_0;Otu zV~Q|dem}^X-aQ2Y(x0808{dRUT$W+$tx_%-9vyFoU2zha3$KPfXmKL5CJNrn7IL^U zP@);2AGwjvHIUWRWIs)B8(7Zu=Ug0ldhTfFjh?Re+WZ29m@>%wh z@HcleXSSkmUE$@swSE=q1&KD~YS@|Z4WZ=*{=tD~7$G%VUjlWyl$ngntVp4{KB|R+ zy=G|d(3wT(@~-{&BmKx@{kQwtUV%{LkF_VWiW3 z;g4 z>C`H9Cc|_*?L}*K(ql9x7=nS4F@YdYBXvtyK>;FO*xMX5=d`d-bD&epy4-011OnsL zdW*;9`FR7)P7u!5rzcdu0oWkw_STmI55B=gk`Joj&G5ny^`SAyQSbu*XWRhM6ynqY zRqDWOlML_ET{}CYWBCGF&ZUSf01p-vEpGaNsmeEN7NHZpi98c?onzzbcHl;w0 z-uejV#3Qaqj>yXTON1pl?aq1j&$x1^vQ4RamL4l*0>??S+Xq6b(-9ydF+(1S`G_-hIN64_ifmz^_6v|B&-E5zxtPM zQh2jn-(Bbt=lN-1?WciOONp`DU>Ed8>pIgu1%?3}kk@iW5y**Bmk=qD+V?~%W0@*U@!OeDMy~nFta;ZlMiLNL{xA> z#6B>hwf>5@3wbeo5+;dcOXCsvXV+Z|m=%mKaYBiKqHr_&dK+Xr++(ks&#Q~w7Z>6` zUAp5ES;5+APpUjVy>)fd*$Wh!LlU`!4M*HGQgM(v;GWh?AOq~0Oq#(=3Hp{Kh{Tab z?pN=^_09|-J|sJdi1lO-%F+*A?%DAoFRQuN+h9dQZ!fA*I)d8=7#az!jSyg%^}s-1nx=j3spV+9NSK@d^TR9Wgc0l@Uzf;stcgW*xD5OZ#zA* z*u+a{jS5EdE6_)L=|mx!$0Es1qvw>vQ2H+X!&&5w4iOz5S*7@^ek12^Y$iOCI+e|z zJ7vWUCB+s#3D<5Lc>v3lw^R>BN>|;dT7NSft5AgHut)_^J?V;LU!AHIvuO0OMTHVJ zU0t5Vuu8`bgk0`F{Ui~I2gbNuj8g%JZPi0b0y45 zI^YZRxm2IN?MdZcRhOY$~@(G>~i-~aX_cnUzso~@!-Lw@+qH^MbT&ORZ$E(=YP60iQfkGK@lgY9 zZx5!JeD7HpYk5ljNRuD)zbuw7f4{BITKW3y=Y@Gx+H|E0%Yv2^=h(kLqcPQEhXMmS z=g;9vkJd+h1w&Vt?_dTHVI*!+FbkVp0y1-BaH0lC(cX5-4nc|Sz9#e!H z{Ki_s+I1phJ#2&Y-Mg_ypXeZk!>7=jluw?yRXljmhX=bEq|}ye*zJ&UdNaQ36sI9a zMTp6*<%HKRJ4h;5J-)1p|2kVT8MLO4sr~yl`g!gX51eoR&Q+(yA6L|jrn^oesj2na z`1u*7r`-WKoMMMTK{s$Ijk)iPw{6g6S)-%vxXm>mQ6nKkvXFgs&X@Zn_SMFp?-Fi* z1HDgBP{4#!d2`+6>AKT~&DuyIt3nGRQySZTO;bL!e@6MlyGIQQ1&~!PX9Ya)aV`ve zRo(fqVMF0MKOkX=3A-P18Tcfgqc8owjiw+Y2`LSm#_`rn{oDsu0zX_{?0-DtYtryW zAYS=WCOdGxkSA5ls$XAMu>+Tm8`pc<#)2z&4q&fQD^#~OKb4l2w zmYj~>!0n4SiEmy-DKK3RmxuZuY`Isg6_>Bs)NR&GjTM@|_QxRz|M^J1m6=BA-c*r= z>T%0ltu)al?0hu-iUL;9e=*tEGwLCAnnp8_D2u-bfGQuJE{u9ORNuR z6_yUKi4FzBvrSaE-=puBsPR5$C}IJ6*KaSs8CnC8Dk%}WmiggF(l6Hd1DkAq7$}?1 zpO?12_!pnVDIOVKJJxW6$NQYX+Cr z{^shWSo47%{;?3IHO}DH;L)X@r^)m}FWfIrmc4d68239_-Nax2N*L`Sd5F_Ap6HO@ zZrblc#lcwI9@cc8MOQxKpmfdvTZt%a?)N`5!kj*x32}JXYkbYqsfIrj$D`nt!CYop zPaa%)c(6HDJ6R+2q6C8jYxC#(0|j2o{Y|@_tgks%fF>2zDtB`BJM+VIgr$)C(Nw@q z@+N~K(QD(7WEt7OR`!b8{6oX>LI^>kFcY+u14Ka-#`^LiMSSW^X=c;3_dHQ&Aj zry{&~450<&X;s|@gxMd{Yj_6S7`0^wM~er`tg6PWd(=CH;eyS zp`iW0OvrzPGA`iQA&tcU4P+1ecu#e*pM8Z+7SK1YvL9UA6VT7Ec(Xb*>H_pm8Zpqj zO1@uhl7CJPj;#zT*joU)WD2aqD@!=iPWi>;&8`LU2nU)vahA!f6ey#sbi%XUe9RF} zMhoeTVUFQY`~=iWbw}Ut68HLte)J0F22duI12l(5!gM-o%eIIW;Lqir5CC=p?HdZa{vKOB3KzKWnJiu zUHAO0LPq~-)(s*?sBudFyBl4m+10!I8WInmSb9&ZG0C_>aemAA6@;;%2n^F9(;;;& zn{vD6old?_n28hMPX~`~pB-=OZvSmI;ym7%NUHZ*c7;1AN$+1em^<+AkmX2+B6uB` zU-Rq$tz(yxZX6SKImet|JJu{YN$$sd?Tj)Hb3;QloYi}`JxWcH5k){UKmWBNQD}<0 zYo_NFR)wb){vbXAVR8?L7*K+s0CDzO-4MeO9ltQ-nHS@OYvv*0nfMw3$V|{74)GjC znM3W);V$`G@WfS^vxXO z_Bq>@YO&&nN6#zF}^BS&}){&Nh*K@|6)7^Ts~1BYX|X)?&aA8u9AX{{_$#D+t%HT=CIv= z8E$)Nt>?hnU7qT+5niup;yPj`!1Rk=n@xj^i|h58dOWly!Se3F(Yr5E`VgsE^rfL$ zxW*cQ&BW}wNZToHlKU`$v@7>GzdYOC@0Z^m!ODUIv>drtjlqigCN^L)ySOP$xf?5# zfht3cz)e!N8-XwM(jIh9fQPKXE+AVGAiKaS6}(b46aXy~uyM-J`>%0}TezB?%1l6i zN2A4Be#J0@dQMiVQRF!S;^ss3emf|$uD@!N#o_jdFnL;5|DZp9q%th{!)jbcMd9QoNeMxuxDD65f ze8TC&Cq0{@sQS^+HdT+>JiWCvW(k%p8lU0O+kr&&L5}Wcy+5>q(F{~&AaB|Hw`hSE zoni5dmk_!oo~fHr$dce61tu?~$w2{%Cc-pbNxAHqr%k`nWA#n9@i+M2QDS1QnR1oS z3O-#O?MmX)EsK8nV!nG|j0zmv2d8WTI>A@lo`m>6qUVpwe2psh0-T0#jqtRk4*tsJkE zQ6Co%WM|M@rPXfNODvK%Ck(Xk9&K9dnkh1w<6Ja)w@^0A;;{Yj+?+e75FTV;U`gWq z{2ugEXbt43t+R&>f7`k$Ka;Jv{qLOCrnli_%f@vO zOkl(zJM~i2YeqQd%N?Dp|L2me{%p{Hyzw7m3abCL0QCP`Grl4txD&*o%L|?-z`}ai?#M literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.svg b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.svg new file mode 100644 index 000000000000..c3060808d3e3 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_large_s2p_tree_local.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.71e-07 + + + + 3.41e-07 + + + + 5.12e-07 + + + + 6.83e-07 + + + + 8.53e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_mmap + + + + + + rb_tree_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + + + rb_tree_ + + + mmap_ + + + lu_mtf_set + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..941c80b38070210f652e94689931ba7433a8c38a GIT binary patch literal 16651 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.png b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.png new file mode 100644 index 0000000000000000000000000000000000000000..c30ecbe1657ec668c4e2950cf8e006ec25fc71e6 GIT binary patch literal 34008 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≷kMKeV!Y=`A(LolX)Hg)OHYG|}#D*H!xH2$<-?Sb| zrkN>F^!KiXLq=65U$HbxA|ThbX*PwC1BZz9HD%b8TrGkN*=)R-@BI3|p#LJ458#^f zYQruc<=(GPI1SHkP59Yb*&j)%1aN>&Q$xthzq`vX#Ck&t)&;(n%JRwI&W<|o_#Zvc ztkYc>;|v}WoGoEdus?QH=pPj|jQXvw2ex{gr0@ufFma}M2|f_!gymk1^)2U#KAay8 zF-?1f@2u2hpPTh|Hc(tTgVrB@}kjDW2GU*y^z%`M(6ps_tPL8q?^%Aa*_G zqt*X@)t^KFf$jJAj|GhDUjMWV%{Q)x9*#&ZR|*zliT<}NVas_#J)?l8{*a^HL^7%k zU}^v0osC{lqjvf!+@ViS?&O(aHpjmk2_RrDN5p+;x(b8Y4{iPTTemQ)@xp(ldMt;t zUuf|VFl|aup^#4xINo%nd3#Gb=Gn$kpuesF={;OvoW~pEOi!xyZy316YvyEESPBC+ z@^v2@f4Q+)L`49iWe3@=8 z_imhDQ)QEL2iF&;AN&rMoSOqrcfMk=fhqS}ZX=n`Vfs{YS8>u??TxlLE}J*UI1ZUmB*#nJxXppsL4erQUfF z|Ie9ZR0%k`u~gsKE%0#l>(y_|+j37uh&)I<%R3ukQB+xgz>VFbffM4HhXr$9qi>u2 zZmRcNj3- z7LufUcPj~$%qczR+%7)Y3)w$t%*Wpc>^oAMy3aewLEz+ZL{G+Yz@f_rPWJXu8yg#t zwoc+aLUO3;eTO_uvj=P&m#`lyWZSE7*bu0{$B7uKARxmcn;k5ed zMGYtI2p$Tt15O}rZPpcCxU0pCk;*FeznVH-hk*-N< z#rX`7q@e>5MrLpiNr2ioE8~Z_Z3~_;9dIUrASy7z4-O$A1+A^pG&D3XOigW}&`q`; zGn^%jBhJOuaY#qXx<%Wn`?A3_1#%u@foC{hk(L|gH+RYkD4l;lMp3@AV5Q3jnINw$ zX^T2N^(iSSxzG+QFKNpMNlqFVT?b@cyWx-17`gs)}5XF~(pb4HFq0rZJPsZqtw*XzC%(Dti`-PyzMz;tlX^>XWgJ{&|g xim&oNU-y?g39;|jKPJ=){|(W6BQ*d3 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.svg b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.svg new file mode 100644 index 000000000000..4602fc1a2fda --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_hash_local.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.35e-07 + + + + 2.69e-07 + + + + 4.04e-07 + + + + 5.39e-07 + + + + 6.74e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + + + n_hash_mmap + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_ + + + mmap_ + + + lu_mtf_set + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.pdf b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cd433bd577c7ac15cb70ab95b63a39ef575266e4 GIT binary patch literal 19813 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.png b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.png new file mode 100644 index 0000000000000000000000000000000000000000..a9872209b8708f9eb775af53b1a595c0f37637c6 GIT binary patch literal 30480 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.svg b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.svg new file mode 100644 index 000000000000..9af96f352987 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_multimap_text_insert_timing_test_small_s2p_tree_local.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.56e-07 + + + + 3.12e-07 + + + + 4.68e-07 + + + + 6.24e-07 + + + + 7.80e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rb_tree_ + + + mmap_ + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + + + n_mmap + + + + + + + + + rb_tree_ + + + mmap_ + + + lu_mtf_set + + + + + diff --git a/libstdc++-v3/doc/html/ext/pb_ds/node_invariants.png b/libstdc++-v3/doc/xml/images/pbds_node_invariants.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/node_invariants.png rename to libstdc++-v3/doc/xml/images/pbds_node_invariants.png diff --git a/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..caaa7fd6ac0b5509fefab79d327a26c611211714 GIT binary patch literal 25649 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

QDdM^+0(0HHs!S|}0-{gKr|Q9vkxtQHI>P__Sq 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 UbKj3XaF>LmD0z7mHIyj-50w-7vj6}9 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..6bee356d1e5ab7906251b4bd413ee81d56ecc190 GIT binary patch literal 29097 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 H&ENhHD*&`C literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.svg new file mode 100644 index 000000000000..650a12bb38be --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_pop_timing_test_local.svg @@ -0,0 +1,369 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 8.70e-08 + + + + 1.74e-07 + + + + 2.61e-07 + + + + 3.48e-07 + + + + 4.35e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_pq_deque + + + + + + pairing_heap + + + + + + + + + n_pq_vector + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..86a2d4a015a32d2d526c4014fd213462cb3599ca GIT binary patch literal 33861 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

lF{WF;xKOZ> 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 vuin!pfqzGG`_3zlRg{zrqNi-W(GTI&u6!eL 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_timing_test_local.svg new file mode 100644 index 000000000000..cc8d7c729d07 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_pairing_priority_queue_text_push_timing_test_local.svg @@ -0,0 +1,483 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.90e-08 + + + + 3.79e-08 + + + + 5.69e-08 + + + + 7.58e-08 + + + + 9.48e-08 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_pq_deque + + + + + + + + + n_pq_vector + + + + + + + + + thin_heap + + + + + + pairing_heap + + + + + + diff --git a/libstdc++-v3/doc/html/ext/pb_ds/pat_trie.png b/libstdc++-v3/doc/xml/images/pbds_pat_trie.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/pat_trie.png rename to libstdc++-v3/doc/xml/images/pbds_pat_trie.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/point_iterators_cd.png b/libstdc++-v3/doc/xml/images/pbds_point_iterator_hierarchy.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/point_iterators_cd.png rename to libstdc++-v3/doc/xml/images/pbds_point_iterator_hierarchy.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/point_iterators_range_ops_1.png b/libstdc++-v3/doc/xml/images/pbds_point_iterators_range_ops_1.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/point_iterators_range_ops_1.png rename to libstdc++-v3/doc/xml/images/pbds_point_iterators_range_ops_1.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/point_iterators_range_ops_2.png b/libstdc++-v3/doc/xml/images/pbds_point_iterators_range_ops_2.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/point_iterators_range_ops_2.png rename to libstdc++-v3/doc/xml/images/pbds_point_iterators_range_ops_2.png diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_different_underlying_dss.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_different_underlying_dss.png new file mode 100644 index 0000000000000000000000000000000000000000..9d84791fc0d587a98663f0878309c2bb4926bebf GIT binary patch literal 15660 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_pop_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_pop_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..fee52420eb8b69c6624c7c8d8400b97ae8cc5f0f GIT binary patch literal 37501 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.34e-06 + + + + 2.68e-06 + + + + 4.02e-06 + + + + 5.36e-06 + + + + 6.70e-06 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + binary_heap + + + + + + + + + thin_heap + + + + + + + + + rc_binomial_heap + + + + + + + + + binomial_heap + + + + + + pairing_heap + + + + + + + + + n_pq_deque + + + + + + + + + n_pq_vector + + + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3807a726d8dfb59ed0125f98466b9815d02747cf GIT binary patch literal 54729 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ʱPH&{W5#iU8$F&NhdBo^(g?rWQue$F=%F6O;DBDla7W8C?LjzZu4b$3gJ zC$`~hvIIFrIB$A7q?qm_=z^4Whp4vMIi1y6KKK-I4h`mpC{$}mRNuHa_oGfqnE>Uz zZb$di!_{2YM|3ALeG~jihD?Fs*b0Eyo1UyYw{(#@eVa)ptD~N=noXWBT5P}JcmKfF z|H}nFtNTo>ioulCBo~~js-JRw6+i&-^dLh;DpTG_+cW0b!2XCjrrmve{R6w;@X zPn2SF{}VyN99@KS71MY#>H;p{>_y5fW@Cd}QX^I|`2L!XJq-k)WLku}!? zt9xvYD6{2oftmkiWv2jCQbPhcJcv)Q2(b4TzaC;zYh*iHT3XCwKJ=u^xIm`ihewnG z0eW9h%v=K0n&6X(>`N4*V7m_O0(2$hohJL>au=qmZ!m2akBYxnC3^(#%ntTm{#@SH zItfr(gzmkr0<;856+CVJj*N*a!?Pwuh9UsO%IjS19roBSAzjcElFHTUu{l+#tM&12 zo%eEC(vW!>w70*!SxSx*K8YTT zYT~H&e@srey>eEJv}mNk)K~`9l1k6b_E*`Aswgsml{>b zmVRy*RE&HbL5A6Q_Z16hYcap*O(t6DO#UM4`ksAB>C?wX;<*$R-s0l^Evd+*b%0nNY#`JR&lbe9^n6jT+66uj{;!m>P1p`^z&&Yo7x%pI|tDYo7;54d_ zG}8%9=X`wmoxTgEF-i+7(~zOO2AsU17MyrwC3;LOu{jN=Bz=1K>_PyqYKuhjf*`3N z)~L=Pg@MAW?qVT zg*vSwvm^V^dhODb>TLxupcWC25(n~Cp+Qq5JQxvaLN3xiycPW_0U7O|ID)?{Mn6Db zTUdFR3utd~p2q-2iD5sFlG-b`k3()N3^Uee;EgUF0l`yjyDMa+)P*<9byPTL$aSGX z^%A#F6j^d~UPee>W92DgtKh1Sv+aIBX^TSofjI>jNJA;iNQ4JAHeW1iIhFZ5W~L>* z;GjRha-j2;Ww*2$t4Q$6d&tZROJQ=?SGoBOj3A!lkR{Oq(S&<}2@WQt^a7JVpFI!e zHx;G{37-xhLBk@mxL+H4&prbNCU^@ckW+v)DRziQHiSqALGd7YP)(;>G5ZzO8UYRn zrAZm|BuAUmcl6dX?`>>+f2#Sd8b7x+yP;&OCTA`710Bi!yVVsyPtnQOEp2~)VeqU= ze?oa7>RgRvU_5zDD?R<{$2IN8x8z(W^9m8(I#DeHgFQVJr#g{@aSvbsqEUGb9r>07y0c$SI1jAcIMbyYN0cUe7bx03RD51$3jW> zulDa-x_5k;vGqUVQT{-Ls|(RL=Xg@<4>L*ql*oiNOx-y@bU;uueOt;Imz<`CEp|*<(ONw{CXEt8r}- zIbp-oJ<_~1-DI6Y$Ps`0S(3bmUi!b^Nz)UhmXzvdX3YNcAxAT>_W!6{^?D3MX4hk= zyK%BfYHrh?)_janusv!cXLce!uCJR$`oPE(e=XOHOTR9~ z$5}y~{HfWS;pgtzK2I|aYTK33*U%dxFOpsT%z02x3<<=05QqF<;#^XBb43h(VNwXJ zVefJ&e`I)mbHWlByNEl_?WI|i;X3F*e5*qMg_`&eU>wp9r?RYyM8@~uDTAdVj|e*0 zxO|2KxxD#H(_2~~(T*?jv|9i^{HGxmQ*TkhV|X*u&q;#?1)Ujh5Ni{?^NwUHFw0}or z$Hb0_B~kC2P1}WWHwPS}YUR~4RlkcCLOI=TD2R} zkjR=GTNn+W3KhZyM#eWr#zonfhO54hk=(ETrDv()w=uadZ1%l=;)G!)ATR4|wUGM- z?YIhVBdVj1xP+Q_7RGHio=h4A=OHPtU?mz_C1PS+rJb1F{`{h4ai_Uv)Zu>@##GK?P6IZ9X`xa2C*fb^IwUq`q!F_)AzdgZ*^)igKS($69 z>*2&W%*9WBLJ{Cl4qe4)1N$98g73SzW{nG)9#|65-0>U9fQ#=+H?iQW6|nLIGhb-5_U=LSr_FhrmK6E9^?V z)lw4@?8+}r=fy>yHAvm5`=vybD|t_uSYd~6(qkz;`GDK+*yVt3rQwp*m4*r=q(v;M z9I%-lttakUKey#S`)tptxc&Ti)1T!}kTNlWz5;C>mV>V!~0hn725D~iZp9rV`|5XJkpY1rBll)YU|*a z{-u8BTe@|ITdHRd_c?ihh0yr~(4jX=6CeUvd^*l4u@6L?&pxz6EDGX@Cd7G28XD1j+*FU+pj?O?ETQs4Kw+?wJZfSjGg1D}E)?BU z{h?(z{Se8dND-%}lIPVO=?dzn&M*&c#{Ys)q$@P@r8P!`rXHL|A4~~wlR6S@k{nX= zsKHsvd-|S_rVh_Ta{7{m<%`Wqrv@tfIE52+%uCERoguPcv5C`P-f>M8>18RUKFs2g zhsc(gmtP=|-iA)SoA}oZt>v(Rj6$s}9zX!}aT@1o#R8N!A(Pj%-1@w7Z@GUWR!P?# zkoao`g?d?AhJ>CcMkg7vE^(hs_|`-kIK6xB)QuLKt}lLr*Q*H?nM+i~eEjb{^R)nq z0B}9YH%@osS;8XqYmUUYRrIvN7 z0ps5-m@)vP zodKgm{CdC#XiH)ost>)dA>aXj(&_KcJG zpOnQYu^8-Qqz4~cRz8n1EjHZE(CIOZ>wqBePgmRujODw*AH-E zSlFnccGgYbGB(+l96>n8R8fSSTZXLL)F`0ATJlXx%<=&L-c?jQ8Bm1(Ih(4mdyuIJ zFUShJII%G+eOBW>iUV5uERZqW+c~eW>)hxQF0b}l`guNrge08;O+TwGe>N^~aBz5< zF6FqrmIxZ^NdBguQYrn*_@D zy_fGNZ?M9{M-;jIN!{n?bCRr}fcc&7&AVD9Hf^nrj*gnv4xs$$YUlm`yal_gVpR)m zcAKdmR`OZ-L}3yyWC^(D!ea;Du9lHr<1s%sRqN&ggT1Dp`&R@QI-z;&WcHuart7`( z0IJrjlPu(@n<^F?!_CuFKUr!2ZmiUDLagn~TN>39^YK4Foh+w{&$Na#sqCQ1%<{D8 z`Z1Vl9LmYV8CSLZ?aHN<5Fg+2fBtH;>!c_#%8yn#oV2fX>`wtYu#Z zsa>87jw2zA#GYw$gMo-5dTJ8j&LV<>y}$~%0RdJija9H`Hc%{f#dSrcTda?lmfCm6 z!C=-7KXB&1NuKYiam$hae1ykv#A}nq9ub^?v@F5loN~^sUcM{_a-pA1=7sIMTcP!U zFjbTb`RB9#t8lQ9f{yJTM|+O`YKo|3sEqI0XqIuo<4Q*Td&59;SZ{By91O#1Sz#Li z`0OI)ZuCch+FMWLX~!q)rifIom$%Ka$+^CuW0$LTDQoyij8I~k8Kh&AsTYh?LuI&4 z*PcIbk0h6KpHa}&)2ju_?$Z*p(v78fwOSyl9f{BqW_aV~K&E`y;&Q6ZT(v7sYJKR- zYuOh==s2~D0Km$4N5C7t6IMr^hJc1LGb9un=KZY9Qu6&5*cHtr_x#5dAgGB~G%ZdK zH#Y&BYLDiEJamB?XB~~7&j(UpZmZ>JZaO79+a0i{2FR3=XVow4^wrL*MJ;PFSf%yv zfEp?dbTD*s8OqftR0e9~yN@4f*XLTAfE=ETQ{GZoA1z7>IhysC^ZwoA8_OmeC;?2* zn>an6;jfx<_CINr0Sw!?#5Ha2eCykYSej3I!~5BQQR9=C=2db*ZccKIjp$gb;jYF- zp~y+Is2olMFqmf2%<9@zb1NEZzpEw>C!eZ=NlCwkzu~&xb8^1h+TQEHPbHE5VIer% zi3_$BLYPZRU%;l;0+%P>?VXNfypYaM)Ttz1R zGzZW_3s5!?9i6X6e0B7**evDVzCLb1F#=2DnlA4#Hvk0GENb|@?!%G5qpkC~1Z^%{ zf$#dbgOihSgSX>#Mn)j%7y!V|f8G_1EG$I%td1xGR;d{0jSA#hHTf~*1T21-m?$E3|>J{6U$nVFe1M1RdhO+-w=kQw69qwKL^25qCUQ^7*DXrc0+nRyAd?^H^ zs)M6rrSmWT#H1wRWodSK_cQOq4P47Xd_J>|34ki@TT?abv)qYQ{@d0<=4Foo)@5K? z>pt5T$EiHo8lns!ai;3oPUn}^)m3pV9x=uYK34L0Q+9b?UmLF+A~#4W%<`KG(~4yq z`@LG21N-rQXd(iGd7K?`XaP*TcC&$yo$1#nSlC?QF|SJUK0ZDbeF|!5Xt>V8!gAR9 z{(W(DyyZ?_BKrTdf2q5YCWW1d42GA!p47dB)>o3ZK}E``_m`&crKOuDW}Iv@qiZ=0CtS~ z2LRs_mE9kVYF88r!6^d+1Ic&-p#|0@S{Hi$ug_(otc7T-iziV0_D7BNqt4lh#l*e! z1lIB=!==^bSHS=e1OlPFH?pEG^0dMhT{B@F)VDTPk|b7-Cj}@1Q`OA-YdrOf(ZT`0 z6SU>ZZQ4S;0Z{%$;thw>G;4c>Sl;&jpR)j7UgWh*b%=j4-9Q?weHJ#~`tyNNfXla& zPJRa<%I|=|+s^%n`{Nr;0RKS&A`n0s3Cy@r_8UPeMY?bQ4n>`!)*&B$1;H6XM=*q1=Rs7U*4rj*xjG3ny~Wc zJeq+s{8uXhW^x2nd|4X$3t1Xd{_TGh6`l(nzr8uFeR~u6#BUtRXC~TH{rr-1`i)r7u*3@Dy7V*lF+w5Xbc@DHF#!<6b@qb= zrlnluhf$#{)hkkW=G!8tQ?|~+JyNg?ub9KFXHOFw^V}xS`5ZfIX|?nkiig1Vzmt=S zEb{Hzv$~EqUiO%m;%g1wO+B@{b89e@@o-Y0TH%8h#EQmM+%uW>)z2Nvn5u&ba*Txx zk87kCL2di_E_>!9A@kkagDi`G1^>X8*h`&$Vs_>uo~&0FEMHThR;;0z5&d~;`6wN2 zrCS&LGv0;eooLXO1tBTZun8}D|1;gm#mn~6cFX&mE`;oP#qGCxw5_VakzPL`WX_23 z0{kxDsNw@nmb2za6yuw~@xkEs)EL5B6+HsI%D428`w0ZHp0P+><*0v8u0zE}Pn-Pu zrLxbr(<-Qb>Wa5K1Zvrf`Bs$&Z)tH7p=ZaT#s8jElFDB5ouoI8&GiM!m0lh-)69?D zy177?FHxy(Q1yR}`gzyPRb^eqMSL#*xV7!IFFt)@;c5CMNX$l21Q3h&k1lIB zomwsA`E`cRzCatiqqgQN;mRIiM-HFA_LloU+XkMfawG4b5dUB#6ZQ?-u(Qfu>pG1Q zSS{BS%sA5%U(^j;{W*Bz-sxl*{fFW2`h>X8<@R*g@_v52mSBe3k1i(F5aZzBdjMn! zsH$cIXgmfA{h;T-|Fr0_#6u*ByWha#8aMZ?)Q2Kn37MHqxz;U#10Id51*3r2tQpF= zT3IaFHy|49HEA%w^{(lwb<)!om}bb^=O@<8zFS{a-|^+kgk8ia`F}6Fso7QIzdd(X zGttJd{9Un>Ctf{E+6nuIN!Uz;%$mw{nvt(py(mpu;L-I80V7J|F|IGQseRxFrqbaF z?bDjS#p_p_g%@Bm!8)dO-BllWZ`am4|0-|;K+|Qcqt6#m+Wre2Q3OB?WBI}ckl=In zm(v=_9y9g3=R`7IT~YtP*n7{nrkdzoID{tB3>~CMsM3o_k*0*INDZNcB2_>jfGE8v zV(5bOjvys8u|PmdklqzRKw9VmQl$5so#%I*FXw&#f^(gGK-p#Xnl)?P>%M2t5P)HY zVG*SjHRSBUEB~B{ zLXFpnK&pzqilr_9fG}uvIA86?ojXARkCvh3kJ_V(h%(3S%bGe+n@Elq00q`~Tgm8d zaPYYiz_|ixuUN&`1Mm*0if7g4wF{5oGaOYD_iob8=@+7VJaE|LtsEN>#yGnctwnD; zF4Swxr5Ln((M+{jF{*HLyv}3l&Q{|_b&T5ijz;0~>A?nTdPauA-_82DP+1P|Xq~E- zkh8p$EX(6cJOJsQj-ZeF)$&_cqV~t!u}6 zFN)A{D<5M39XMk+;!X0|W9nHCz|hSWfl4F!nYj427y!LhgIuKpUiggl2wwZ&V6Hp3=_cy1G{$$F!Bqt?7>ZXCq9t`KH{KOz? zRE=Pk6>ibL!UTncj!yb*FGoB81P=n}eg>079l-cM0FkBw(6{v@pfB>GqV8t8T>?-l z;=;f;$;sb#m-|1-Kbd&LR{a-{WS>qCH?0bRx;_jRXkpO-LOQAr$SxqEsGkFTP2g|M zEYRd%tB;Pozfw|Cs9}!pFqh`ZfTQCd<|@%zv;?0V0$A4JHSvM>uir9ICZ}cqzVI91 z!1KZd9dGjiVG*Zx_V<%j3*qwY32@bu2B1O1TKmpEAo*IgVK$O$kJ5pXJ~*tf7_3PgO5NurylR00MT@bAnuWBIsEPZXc27Q8mhu- zgCIWDnn+KpOpS-+$jnL${Ku830QkOc1As;XAJpT<|aq-P>fStENj)O#% ztQFr%(MYTv1!%#bgdqs zwb?|ho^B30YKd@nm?^-_w_5NqBK!)t)$iT=b^>I|vWQvb1W~=XAN@2?6ELeZ_x=gs zs7u*;U1eqEcKFj9+VED+ndx4-WmQqT?_a1{hgFWtCOEnab&(qED?rG}Jub znm!o=VCC@d%-16>!sl&MKL@Jrv1?`Y#ry&S2aJ$%p!6jIP$WOu;Ol~Pc3zPr-ZzD7 z0iJY%)nu4cVmT z=3ZENdTzbGEVoU08lQr`MUEl$>r0oMBSqJkRsCLbb#?W7o1FXSZZIC53=8*SW6&obJfYDi4{Tq}gh$}MUz;NLXH@7^<7VG5*XT3{07(+iX|)yi zUR~AhQp&?k5tXq$;JKC}KofMCcQfo~36zwSR968~IZ&_7k|&}b$Pgq4D{HzH5YlzE z2?BrQDog>bwh5%wxx%knvN<4lRT_d%b|(QHQo*`m4)!W9FV}zj_N_1AcX?joB|vPl zn3Wql$r=)Wodu3Rk3l~Mn4v_BpIC(ajathuZr1^F`cLH=>xTcm4tbeh(vi^{b&rt_ z_k$R9@7x%j=sgP`h9A7VcBV%Thvy5}V1Sa9F-rXNPp{CyP0u!eyV!HxzX2a)NvgdJ zEng342G}q=t^i2lFfPER@^v~$W(y$yjO$~TfFau^U;hhKX#GkDD&mY2kLFSl&>^Ov zlG(?T0I&-e6k)cAwwcw~TtuLQvyzgeWdYN7$KzJRmodD8Q&Q6KPRAi1b)HJYUR4$ zfT2j#6QLcs*<3TJZTT(a6Ws`F$~X6@n-{st`QSX}qzG(boGxw?(& zjNv?RKbmXG${%*v?THPUywmez)CF8j_L~&lBdxB1=LvnTWupjb;4rTY6?+)xWP%FZ z7=iNrB8h~AI_FRHqy0dSD!W5|=@rG9Q(n{3swBPQz`A2q`SJ=M@uFHP;driJh5Iee z?%@nPekK^9-&eI^QD9rQw%&Rr(j#ywX|%fN^u(V(lD2Mu1)N=%xAgh%`k+E2LD!OC z5O(l64+UVFJbZ*`kvLiXImm?qDlUaLJA_L=TH0FyM zyj}RqN;(X@@St7)(2Ut14oishHYZ2x+_Bw2V9+`r(dV+iyd$Admsp)M^KQrkn6c&( zkmryXG>wFQei+>P9j5ubokW^eFdVajS)Yrz6H!~6AoK>)LcLGY$i2SWI_miJ^*6*z zCvxQ$diglN+lFv>&AyW$DIs1zrLcS*0hM_GTd@CPo`~j*xBWFUw*cOvmbwo|bVG0R z%(>!TVVA4IaQf_$I8lt!9W(C$Arg1fgM45RXcTxd*nXCQ(K=yxnd$Y8_fhCkG8<4= zr&5|7REG0$LiSDU=(Qvk+@gB9o>cHA&H;BiQim-%qS?8%wP)s5wr&aOy_VD%x|wHu z7k(7eLxy*wd*qQLlVo?CdS4c{q=#pl7O8Z_f$jX&Ge5IMu_t?NW3F`gH0@B}C2=}- z)Se462y-Q!fBGHQ__op_e8Hn@C zxhq}YuKzqV@Fw~__m0@L#QXlvpz%(H5@}q6Iz3*lAgIz-h-Z8m*RD>Ax5vBV#R^1s zxD6|qIx-@!d-yp3$Of5W$4#lb0so7sh-x*%OugfMuP2x2k9%#i{;7T0qMT>sgyB#Nm8wUA0~pAptC&*kemgX zEo5nJQ9O&$VT4PL)ZBBmOWREjeBP!Hn% z9=<|J`0ebT5=wqH)Xk}@%h)W^x8a4D zM*gf-iMX(uE|S)AH&^$Cb-Hs#?5)wWJf&4cV>!p>zRVrLTE`&-p4Ny^s^pvm#>ZvO1@%!g*Qf4q31U&6IfauV*Ej;uRq zOm&P|&a7$y-%bf;=+Jf+aWZwJo`4Rn#7JuLrUk21!2J@@K;-+wXI5LUad+w`H5tcHX@dQ&jfARcebOmR1eCT_O4Lc?dGjuJpvVVz&5T4S#-Sg90Do2Z`%cbGsjsBax627wb#&+5V3q}JfR=lpv5O1Nv&os}{Y z-WOzuDu2$Mn<(E|_el4~Ak~=sPpedJfw+q|8EE%IB|*Eh8wJ`a_GfoGp9JCty%k}PoiJEo}+^(m>d-zUTPMJ#(9B`GTzflGi1VKtph z!{AIXFYv-GvPMJ-ccfA@z1*1K!CD75c`<%Zd08QT{o4DZ-Ma;0(*3t7xMPfw;@*7h zj4$d+nRidTEdMTQFD9Z_Xwx016SD{RI>R^P&soj=F=q@Uxo43UO3eoCB6L9c7z%KcV^?+?Ehm@ht(4 z^z-JMzkIooZ_0J_vREAT@K#F?b##@`cb;@d#FdFqN#0Oosv(WI_a`MGvM1N6r?0+ptQ9gGA^%YFOOKr%{_29~>*;!YnIH}8IQRZ6Pk@EA{MGD@fr zmCzMqwVzW*Zl9WW2;kDySFZsF`w>-GytyZCi1sWT8;ycIqS%psi<=?lMQ?t*DyV6as-G%13K3_b+ zi@;U*D5MX_+$cP%K{@g6Mcg$4bC*bdi0-#BRh4-6YBmgpQbkCeY=NETiSd~0<-Zx6 zHs;i#(tg*QlbXhOtnkuXVES>3f%iqDCwz>@o@r`BwQlZZ-ScnpWE<~{^1^grN()*A z%lAX2N23u|2TQ&GxLW4dPc z0=9Hz+VHb`xNS(y>7q9mtduNF7bY#y=5(fuIsLFLHpVy}`7aJ55q}SfcawPWHdYX8 zo3#qoh5A6gUp=PCC^7njL%SE{@L=19fBuu&X~DEC2TkWko(b$kVyYAGAwg3b{H(d& zjB>f+&@bK>I+mbq%=(!T+EvKYe^vt~n3-UPRByNyR^9LF{PSIW}+b}<; zlcH8IgCmY7vKEyTZh!N`oh#|_=4xF=w_d)i=(`-~PK|RHROB9a-BzUKC^xy603O-n zF58$;Fn}8jPYFV~P;zgy@k+3oIKcQ{qgNhESk9lO%C_?-=&BJ1@<)!4ys0#h1I>ihC< z^rH;=mcwg@xa#v#X9*53;Re{y*TBCojiLt&u3Ra z=!`Y+X(3C)n_c8aXWv-kLxNA<@N7b8gEW`eco2NvKeOf{uj?NmkS-RTa4!UF(rZ1X z8}JJTc@i6Oc!&jj&S)%vq*s#~?|_W&dVuV14m-2$GU9`dFC^y-sT)9a8Ipp$Lo9zS zWZ4<8Bvrg)8d2sk$n*7PB{cCC?Rj&>=eLE-r|5AirM6Z*DE;xf)sM0??W2vtjmqPLsY+~KD90)Vambaz?^xA31 zZ7##Gm}lX)aX+Qee01YUf8~%aAG5=EvGlWHSF)HWjvj3=yr1~J_?u+zn*d|?Jm#}n zcYHjZm{o$XpUyXUk=nZLCw44V%>s%`UC8Le(edLO;(E2YYjgGW-mE_xakW^Spm+$-)-0Z?As1Rn1sB|;MaWb0(b;@_9JSV@H1xlp0SH&_ z_x@yVZ7S}zG}s#JK!iy%9M-i)waf;ZHn-PExuRuqRtP= zkS54mbFF+k(Y&7iCqiwkA+26asHdORY%ix%QD1U|UQHnA^Eo?(>+YZiwF?iM+15|3 zUev~Q4ll)>&DYYDvA#p{AoI%~cQT)!gh8+Z4<-@q+(KqvKCWNqL!%Qr;*I}o*2BNS zf218tDuvZvTzSl9KlcOoS~}RHy3_9k?H4Z*UM&OI&FVg^WopW`v%qVek1BYF)aVo> zI}Z5?>=o>r8RsY2j4g-@IL_KAp;Y-2!Cx&XIr{w%A8O;OW{7`-8o?s+q;s?NMvPqR zU8;`M@CsgPxm%|S_$u>`<>4^V!q-~e^PyDraYjgO{AndqhGa+Uun~J52WrSa_+ETP z<~sAc2Lgl>NmOpEaU54T`=dkJ?!*ZyKheEh<=FNk4}Zw9Dg5h_2V&e}&19OosUWhw zj8g1J!Q>rHe)1#H?M4RGut$OOD}Q^mVV-UAB2;71w>gwZ2qOhI!$O3Le_(H)o0r#M zYFlCgo5^bBMO_z2sab8>hKEt18qua*A$L1nsg9fxb0lNWV+M`Kyk0Dbyx!PD zeGQxD9B=r`7jIKKEQ>O+U*&_QFSLAcj>*ouP_X-ikw^fDPQ>JTX$d{Lf};9x%b3tu zhx6+Qwk`U(#)$lcZ{V$)qZBh7+dfBsF~iZfjW;tqm63?kK8`=H~XwLB_F z()X5~QD1w*TbF{b5%Cxf%u55&>0o9751y0N3T@cKt}knI+?}yz!WLLD4wSp~@lam; zzlyOgo!iy66!=Tom>vOa9iD_^%BhI)ypse3aTSBghHt~=1S@_9w$)g?L({Zbt4nnG zXFH zy*2u?@k$}8%$-;fGS6#CKfUGdzVx<*tzmg6%W)>q5edE8&AlSa-35#|bQqsym4DE# zo!>4eU?T$M`^G6W@ASubw3FU0aLZ*eOTT(dxT@Ds2N_^O+8T9c@SLRj?ZUo!7x@jSiTCDVHj2wJ z3^$0lc0j)PVnK=i=+y;xH7Qaa9~gg;L!OGtKWftaUXAm6m>ajDaIECX_NY!WOr(16 zNp$OY%j-Z!B-Hz=C+zzemO4zsW7&x3pvFz0&=YWt_!a=vR%tAy5*= zHgeG;!Y}Q+1hD@OT&}(IwTp9bM}OsV)V}k-*8+Surk;9Ew&MhQ;| zj1m$V;x^5ZJ~KUP+z)Xngu6~fw>9{ye-+bLdl@KBbF$4r8iz;W#|c43F`KZk!Ll_T zwfksQ6RhRC4_v!?H>#DeKh(I+2|p#Uk9G=AAH)j;x;J&49sPSsm^9cQKQ#;~;aFtJ zi~HsNtD`kt{Cx4gx0><2gUl>Ceyy9;G1#Tj`qt3m`KbBV>#}|no}M>1mZIIWgH`d~ za_3~aSXD%iaGN4DRsiTBt^+L!61UN1Jp*hE$s zgrH*)Di|fvjx86I`!JJv!W}(|d1u(*_~GW6Z*Khk0sBHePuIw8Qu)(R4il;$(YIqx z8Qy7N(a8Ag9t;(iUaN~Nu2Y;?qiG)ogZV6s!}~%E9bN4O1TPC8jBK~V>?|0L-CX!3 zsB1JQYYofmKJcW=n?%WbcD$B$(rh`fI@b&nHbfMS5_EPY5J`%f#4|F&aKs;A8J>`%*Mhx`9*{v^8E{;EwX>rQ2L-B9GVQ3B5%Bw zQt~r*rSV4b9&^Rb93P6q(fs(VhQP(sFCBVtd^e7E;g>bX>ug3o%b!&MrZb~1g246g zjzP&6n1sG5&mtXVzun~6SuC$!(LJVS?(v4sjF0y3(a2@(#&c%GoqAIFpeLrsg$vsY zEm&=Q7Dw8`CH-yC!)x-(r<+)}OXeRj;u(#+soF6;lTe?}XqrwxreL+51r9!w2yf^J z3>FyE0|@^=t4kM{xFkhf0CYqjmKED0j4W+4!kp%_b&>D9LQgNK5mpye39eZF+h%e` z_}TtDu;O?$rzCWEzNEC((gDj>P-8SL0S!CICy087V9hY=Z*U)9UkE1~!j_!uK2V5< z3qnirA3y)JKfaI4K=0aag|!b>?C|YGX$7Ebuw&L%W$Q2RPFXEtUNG0QSyiqed%MSX z&$-5n8?PMKbonnCbBE=w$5-_FYrtFMy>)PxKdy`~oHm3+1*sLaoO%mGlM%jkEaL$R ze031T(An4sY*zUs_QdvGPhh#2G`mRrswi6lNxPZmQt-4RVl_35 zI$GN470=a>*O)vWds}L}5K>>Os9;8|Y~5{6Vun^{{7==Ed)&=PxunR$t2<>i&dL_B zm4#49jzjM&>7-K6-aRhpZVnUD^^gbK`-%ajv6SrHzM{2g7OTP{FVPA`C7=hcCGGx* zon>Q;8MBL=KYO$ft}}|ku*cu*57zJ6#H!xVFqJcb<>B&bzQA>3l&0!e6UWuk zzP3=wJN@fmJE!Vm8`esSEW~{B_OR*75dJ5}esQtCJPvLv!d^>~^=^l`#G>&feh-t? zoShR%ThPWmT^UkhZBkt+TEip+0pYf5Nm1AnX$cDX)BCVrlt(u5T^)G`!1<0G^ygh) zo__H z9QRFMR7J2r(UGEhxN8yWBjo9}jGP8Lc4e@Ae3;k8<`5UH;0`6eNqNv=@#0aObXNxY z6InZOTpHp+6-7J&9b%vXe(i$g2(bOn4fmypFG3i-)9i@X2`&)(@c$b4zrFzp-d`k4 z8m?&R@wxwAgwed8@BbJLItnF*PJl%MZr=00ARcBOdubH5@k^y$Q?KL|v z-QcTu_V*JX*A@vR=~O)gesQZLf@ol;sWU^IQIVGPv%luVjp&Y(siKJFw{JCmmgon} zzhc$7f1f(ju1rKxQBeT06`{oNnADtT+KNHpzq?qsbh`-)V|%Oe8sR z-SIh{ZixGOw)JLNMpicSPN?!1&*oI%`0k$HILS^AU!qjd;S;xCmAzcgr`!JgC?Yvt zPPffa4)B@%=>_5jS(507*YC9qXgczLzurS8NFLmqcr8g4r-*w6^^r!!pr7{MDMOEv zUYf)K1Qpb{ExnZ#dtHa(6r3Nc({A5k z2l$NXe&(N-wO&)VpN0M-2f5KlH;F=qzF<< z;({|!WA2DoiuMl%lSr0RPlCF-W81pM0w1JsM(cRt zMUV@`$mIMelVoSAFi(~>nBPkH$EBzk$0i#^6*j6W<+X*(s&~_TU8r&76tRH6F{1pfnttfyy9Y56RQO z?=bE$|6C+!6}luK+$EGy9v2R9eBy zeWrgWya|gjxRZv42idpdV#p}mA&GX~M#HWA07n(0?^0Vuhj=5qQDa*F%?_*bw zOQIFklQGUr8?gE2tJArNqWL?)d4G@OjK_pb{hmX-t*MRz23Dm z-|qVR^G*Hi+q4!Xo->WgCrfXePFAvuOG`}(?~&Vt9E^dB9(*$z6N8-OqvO7fxfO%P zNwQ=8-R|St76@{WhFjHPStN7lo>g@QiGY)9$A+*j&{yv-Od%0pF3Tm+J!Z&HL-u%{ z*Br3`_Po_LmHQ>lwDJaFlB*JQd*-hy4e8x&= zvMBtH=|Llu5Kejn3ODt0|6Yf~_LaLOpdYl4S*DQs1jok^fl}J3k%E-?MIW6a>B-4H zI;*{B3`a-pf~>PrV66nS4xinVjE@bNKpSa?2@ZQJJEY>>vu70P@rGn^6fSTkkH7TBi~P;7KQ| z%$l}|&o@`*R)Kp49+f^2ViPs1v^(CJSKh&q*3xwnU*T7#Op-Zt#xOs~x)puXq~v>* zl{|Ow&YRMl|6pA@wU^9cxi6J?_D7NS+c$62(+`B1DrKP1s@m5g(YBq9dZR9;QP#5e6GNeJ3wyk-#VHc^ncb@MaPI(cx zk%FFWP4|A?Zt0I>m(5TM3mseNxB+F>T)G8WuAe^Vx! z#jWViSATO0L9NeyMJT!ipz-H(<6l0I&jX`%-T0kq>OX`l63WQLVGbSrv?mkxF%Z1iI5XU zq77b-z^%W_RJWN+oQfcD!jyplxTG=ta%&FbCOsXr-K^xhGO)lj<8`z(6Zp%*W$mqj zYWc<4(Rg#v(bnA2cMbZr^OHT&*hEPYGrY$%6FwkuiuCC8%m6Is9a|p~ZtFO-9W+Lm z;`EpNld%dmI6WIC=_dc1O+`cPe@V>y z89dt}ilWB8Qg$iBhIdCCYIZ)7|2jG7`Rr_OrVmC-1e6mX3Nq!~&1(BxoSeKDf&(NPmKYWm36E8d&-aGcCTbTWqH3+-M@uS(V>Ku_+O|;BF`U4YqvMr?Eu83G zr#Ubk|?0N&mjS1>3GgECz2ylLWvEI7Ao@))J;I!(;t9tsf-3_Ed^De8VbYpgBrmtg6b6%hC@Xq|ks!n9}aMY{R$VK-G=p+I%- zvN7CR9NI=T5OGzxTM*90fW*;vhwxyp`a{aBdj4Tdw6fNKFkC{ENNj1mrdyu!YF%zV znx$?~lWf3l)=iaJ$)6w1TDatP0x=r=-5aeVQ=QmGO}X>=C|p*vI7%%Ff9lDpr}oMu z;)iO34n;EGMC~pmq~X@Kf6K3TT-7YgwD60r^ooTeN+Gpq+!tJ1>vtef^r~c1?Laiw zZ^!NL?}K%<%*`#3p42+HTsT6Uy_4B5VQ#fPmkyh%@nGNdltP;s%#F z-GiH+)9WmEzq0!qz)HY#csF%!@h$0l8B|CS=yQ_ipy*4^BozI3X7j&<6>XH9{a*MA z)Q7&>WZe@IFp>ZD3%Y5kpFr=g4PVt1<^~Y*J$h-I&T!q7ypD5#u{(~v-MgDhJ6|>A zP>8jD=Gpawb@KXqk?Earc?pK{poPOB?!;I46BPvx;8w1` zD%n3d4=&VAc@~9UoKgmrQ9(blKIU{LIABiO+PIa?U`q`6cT!(hE8JkEDuef>paBnv zW}9R_lmZDp$iPjyMSt-U55LZp$+x57RCqJ2Mo|8H`HGr#x1C-sa=JcX z&w18=F+TZf6{yv-r&lwjK^R4~FXbeH?m0<{9|G>Z*&>r`N2DGVH7!}`wxO9hIp6p0 zhY&7~9334ar%N%9@)7qI!jGYS`xMEs!Y16pLw}2i7DNLc(Q-7}gi9gMh3FKu>J$5MQp%LVXI+qf`?%Mlg<89hKIa z>Ny(=*bqz7ZxW}97@hX;ZhhDiP}g?tY)B!B_h6^1xw4OKT_B3uus%wUn&siiTXs`F zpvFH5Gpn&Z5K6{G>HnOc@z@;@5X7%AIO8Gg|1>bIvP`Y0ZgeBm0VGiB@%MsYIfnA` z@=D7uF|0QJ5x}tjsPnKYG01-ignPqsnw5Ejj{s1~7Lv5NGw}$%8H!3UlLEDZ2Ks=Aj5KF z&EcOkmt66`zWuuMPxRx%z11AbeUcWlF`@Ize^{r5R`4mwcEx(D=8~kktQ{SSO9}}O zV@V2%h{9Q^i}LKT$S3f}-H@wSMr{aQB$~ z0ErtVKWjhgelw8bgY!ifO92XKjLF*`^l)iH-NdIB$tbMSDFxX^FB13L! za6#BvKWzIJFnq9vHO{9!QlmgD8i!-5_xa!$jN1xHmlME`qzna5?f3-*j7lGJ`S|z< zBdR$8VM%Xw2%w_V`e^xRxykF%(a|?fMCzU@0*@h5_W<5wr+(5ga2=&uZ`j&4?Qc%E zvc6b#IeaKS_1%k`QBA%gJ53lmDy;RUyGhhya#r_o(F!!j62~hkyLdk(PL219%Z?=)kH8)MeK7q&;_1m2dC+KxbTzH%Q?C=(>J4KmVz z6W(JiurN|c(zkpIF)z}WAtt)BCxORgYfSiu@ENlSMa^Q-54USrh!X}>W`bEdAm^c+ z-b|M~U1MY8BqvHb&K`aF85p2L%B|`p3{+3}y;@EL0YPk9W*C964N2|j=pa?RxMEj{ zMv_;Ox{;<=tXIG6r3&u;K@OGS=mCoW491rJ*p580*$gHK%8%)>M<$=p?yyTSvk5_4 z!42y2H)hoQQqYx@SzxOOQ93ymA|FO%vT1^)ocdBOxKv`@ap5GlJl3@wJm*?+fd`_f z^lH=GkG_DI0WNRk6srLfDO;~@asZ&$<$@teq^&kaCjdUf<^NDE#*yO#Cwe%xm)O73 zfl)g$I$aeupg_Fld}#oJCL@m*H?Lw_)f#p*oT)d`y{j;u!d?HUJF?P|WcfeUW=%$= z0Z?WW)}ZQ|?>OpL5c>6>@|ib(@hE2T=8eA{HbhXAx-a!0$<)uI(m{$y6pTxv%7N-3 zUGnt9|7VIO?nW!&@{U*Yfmu&TXz%V%`sHJ&%!fb5MB1NkmASdpVAlo)#-Jf=p)w_f zDT;=j!3SCu7e~W!>oEvd=P{Kb@5SwsTJ-sSzL#zGDMN<*30xCw^H|4;YV9G#tI zoCh*4rhZjfbpt$#T_x~VZ*T8O-<;pLb<^=etR^=C9!4^Ye%eH|-NIxgOXs%dbWiNQP$_aN-Hxxtsj&+>H42B2#n0m`9Fq<-3mnom1nz>3hUifU+8qNt}i_k-@H%+1oUy|#k3$fDkd=`rG+TE)rzZD3o%S~UMvIT1#E{>;ow z;=WMOXti~=5il7fvLB`+wR1s;mpx3L57jnp5l04gTI57N+!kYZ|rGlT=7| z^bu1+iq-*tr^-OUu*(szLwu>ByJ++%d@SGlXP9jzW-@e67CNEYWSIgQ+qnX_JmK5o6|E)dPOEDy#aHqC{0N{%pH-_0zEG;(+Whjm2$oagVS` z47?&r>}RFLr;8)a$m!{6lpN!I(yd|2M&qY1YQ-fRc3Qwn=pNMqW+|ltC_l9!kG4aB zJ^MP9FL^eu*@ zqKKd2XCXdDBsw%>bHugfrKF$UG1n7yx?W~k+m*Dmw65cSizh(g&QuPN(dP6fOSgW; z{>6Qq&Y}fTV}lI-*Gb%84&l>+DgF+=q*E4x{=+HZpCbo5pW;;^Ymq_2eWV)U1`*Vn z#W&xO-6E|Kni{VT&;0&UxeadL7-}uYaqMV5K>{L1-NTyL!wP z^@JdCq9j^J5k3e>s>8Wr0`t+PCSzqyX2cjW>T{&+YAXZog(dJo36z{X&PTo&%O#jK zrjf7XcBkJd4DNgHZ#|LdJt%)fr4?E3_F&4K=(7UOj)KU*KpnbyYo)L7|%1w$bgFr5k1I zTKF&b4qLBxqKJkWuYRa$BX0Bpl&;fkQ$W*hpC~{Wm!?{SjywUD``r+xv@9+q2xW#9 zXSUA$N9BMa?euczho)X!ENT|VpmRi_`Y(nhq05>}jznQT6U+DsJ<61H3H32Whgidw zI3c=pzisZrBxvI9!m`jkkQUw5V2I*7g;nBAON_Cgn^b5uFvo1nEa?sCbJA>Y_iE17ewJl6{4+al zR3ci;aIE*zKXJZ<(e}y%mZax!KMWdqm6J9&-0GG`8K#=_l46v6woBhDv=xmk!PqkK z(Gh8UrA+O_WQz392Cohc-lK~~7e#m06WUHsAcXc&y z2Z+@4U^aZUsSM-(?IO1&YMy)=?6O|3j~D|YT@av*UWZftq_*YjwRgM!P~;R~7GX;y zVM9FUEkzMQ@PlNO^na7?Mu49snj6)cA6``{TTBki>5G54RqT-MNq#7Rh;}%XuUVQh zE4)VzKx1dJz>U`0luhsxY+FRcVsQqr$dN%8>zWHz5n-6midfMNEDQ}4ee zEV{2Re-WVsm65O;UxgYQ!JnV5q*r4(-e?wPkqle`foRBxYXRsgF={6(IenPMs*Ha` zlgLw|$@m)dIBCD~zn*#SSkdv}?4$%=0&uXm+1dR7BWkmLKGQi->wt*kQ47sLHyMA} zC+VkHF!gIdS287OpC8UqS2PQE*br(K%-loNu;J+GE<*itLM=S^h^u>!N227zM6txy zRaeVYD};v!e$-dDxu#s3(xqj;>MH3zQP-JAcaHYDA^c4lLH_M&%r?-by-d8^99 z4tuX#gNJ>GSOvkN5n^w=YPucqrg_g~Wk0=;IML6$*qr?Iy1H6oeSO{kbgk6&$&=!` zx|0&HiyXoczR=}5Ff9ybEk(c7Y*r!Mp+ z8tuTBJ2fyslhdZa_qI2O5ebT8myH6NG6B86Dq*}A-fCd``&F@a#6hy>fbU>EbiuAL z;*64Ytzl8ITj=ad?w`52fq^IdeX6(&wJ=pch4O4V(JTe=Zx{P>DNqHo9H*oGADJSY zoSn_UPGPadZ??8P0auNU1>`eaNPO4{9>{NLwMWAKs_-nbW}GpqKlgmrJ}^+p)TjE= zNJn3PuxyA2(#qZ0An9-D;Ov}Ep;qDs_(otA1Y9+sH$)Nzkc-qD(zsZpW#7eOQ8OJd z>h>v{g2P;Qo_zr1JAkF?FhdKA-WTN5Wo2b-o9~%7j&$;hC)IvaOUue$$9$xbvb3_A z{Q6u{)U2|gW=RWyV0}IpB2TZpgQJx0k&=}?Q@{DuivKko*So5!_>;ZWw^qaMzdyT9 z1C>~L|GS3Eff@=AnwgpT3rO#@G?oM&p5LOp{2_WH-TW6x#ZmhqEEi`;(Y0X#{j{fp zhScwMF{%5k$?H0OjjMGbHY1zK5Vgg(9r|n1O;{+|t4w{`^cb?Em|X7@DhsW<&!J&#_e6O|;R73%>-g4oI)dj-aTuuO$}JLF z91=hIc~c_!o#QZ=AiP$E#;VcMgkCWPUDvt#X-2}8qxbr~FxH;<%CzD|urkRx_z(ED zp5=AO6!papFe)c0n&CfYX7t_NML`IpH#x#4V7VZ~AWu1<#LK{de)370#V6<5$3LJT zAQg$F6$osN%+pJ>Ke_sdlAYWKu49f5l2DfS7kO`Pz5i~P+yWYiLtpnDYR(Q#AXjCD zJTKPI=5OX-v(=3$@zd>KfqG|m;k0H_nh4p65#4V&Im9`&`T`Fkq^neCBO zj6>`7-iul*L%IF5@=XMu{h^^D->!bgsAlFzGN`M^%(^6>?71kaxr@caOQ8$-r}8>| z@^fA~o?|q(SDr)PRZP6f%FJ9gd6um#Q0v&su+^~24d|4vXhxxldM};|v#NLX^+%QX zcO82+^i5n46z{u=Bu*EKTh$?P%<&1IBhOOM6Y{^^ zrDZ?eH<%=6Yi@21xL-wIOB1As%`EPjEcs!B&djt9?32I=|B4``WRv&gq@?FwIvBTI zEy?y&D!sa)&L48spS6q}6R`>Tw-FjrOfkOwn8=J`9rv{unn6OBfk<>s?PYV=O8 z?Fb}u@DHyh@Rip%p84Ae?YQEp)wM<-_*dvZskhRK1^XQFE+KH!pAGI2)@ur0S{<`5 zTFHPu+)e4^jypVjw!X1ZUQ<)r(4gowmynPk8NalzAj!gStQ)K zAc5b`HSLz{rY!BTft{dK0>Annftz!oGAeYsayVIB6@Nrek?SKlotT^paTKd=!|`i@ zkYM5e?2Aazq$v9OHT%~uGf-C|Pk#OOo$V%HXL_ywKL~0!^m;!%cZ5OdZiJ8Fp5fhb zEok$U!=QU3DZFv@s?E==PcI~YE?$o)K~H219mwKC@%^~*2ro@o(3X0#D%cUa@M`~z z!%iQj{PtOZ=?Hal9?9VwQ(Nn_mVymRjgxr*j3`W4NVGgW#DNd!$?ue~{=2uciJTt< zfXMgB$zGu34sp1j>@I88@Iq&kZ<&qoCyRZ{dPk`%LnEHtqMZyshQXS6UD;7OBL|8h z&)?_E@-1vfNgc}JUWBe@jeOZ6vDuwc8yu+oUkf>wlS+#gUhlSe9=?AP|9`jdvr0IFNF?Ld&()-NqBnR$T#j69)SD6_D(J4Vmi=8v$9<7mI%h*%T;{wek8`-{ zu-!}LuNbi7b?>a@bVe=ZM+N(fLo=5h1(pPRG zdC%ha3QG5w?@8y(>9CmexpdW%(8^!emd|Hi7I~>Wo@WbxbBBf5ft|r~_C8_at_8{B`|S|G8!@ z$N@=@kB6KEl_`4PY$bqY%{Rs;Jka(J53tD5wqys1h83ZfJb&%0-Cv{~IWbL$0SG)@ L{an^LB{Ts5|1?Ql literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_timing_test_local.svg new file mode 100644 index 000000000000..bc5456de84bc --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_priority_queue_random_int_push_timing_test_local.svg @@ -0,0 +1,825 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.34e-06 + + + + 2.68e-06 + + + + 4.02e-06 + + + + 5.36e-06 + + + + 6.70e-06 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + binary_heap + + + + + + + + + rc_binomial_heap + + + + + + + + + binomial_heap + + + + + + + + + thin_heap + + + + + + pairing_heap + + + + + + + + + n_pq_deque + + + + + + + + + n_pq_vector + + + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_tag_hierarchy.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_tag_hierarchy.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c7ee458b2ca6de03d7221733cd0acba2e0c5a3fe GIT binary patch literal 7842 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_tag_hierarchy.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_tag_hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..3a849d2d741a6073a3dd327dd71cf2e6c99d7d23 GIT binary patch literal 29346 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

Q8TI?7VMj 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 + + + + + +G + + +Node1 + +__gnu_pbds::priority_queue_tag + + +Node3 + + +__gnu_pbds::binary_heap_tag + + + +Node1->Node3 + + + + +Node4 + + +__gnu_pbds::binomial_heap_tag + + + +Node1->Node4 + + + + +Node5 + + +__gnu_pbds::pairing_heap_tag + + + +Node1->Node5 + + + + +Node6 + + +__gnu_pbds::rc_binomial_heap_tag + + + +Node1->Node6 + + + + +Node7 + + +__gnu_pbds::thin_heap_tag + + + +Node1->Node7 + + + + +Node2 + + +__gnu_pbds::container_tag + + + +Node2->Node1 + + + + + \ No newline at end of file diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5ac57b21d5fc42951e5167b45dd3a34ed2e5039 GIT binary patch literal 54761 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 BdM*F} literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdeb8ce191c99e9736bfa46688575897864362d GIT binary patch literal 41658 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.svg new file mode 100644 index 000000000000..9564567b8de2 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_join_timing_test_local.svg @@ -0,0 +1,825 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 3.33e-07 + + + + 6.67e-07 + + + + 1.00e-06 + + + + 1.33e-06 + + + + 1.67e-06 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_pq_deque + + + + + + + + + n_pq_vector + + + + + + + + + binary_heap + + + + + + + + + thin_heap + + + + + + + + + binomial_heap + + + + + + pairing_heap + + + + + + + + + rc_binomial_heap + + + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a0d0180b4555d0b85a7b6e975cdf79cf4e11c2a7 GIT binary patch literal 54820 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..4441a9ce769ce228ed0c9ee6e0003616182e3162 GIT binary patch literal 37178 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�dj*{m z{8?D~=~E<5aPJ6#K=||9Lo}VnVs%%Xc;I+_#ZuImawTA7V8ACSNtPjMNLpjEyKtxa znZ)~sWw7g-6^d#K=L~|2R*&x-{2GCSjdp=hBMu7%Q}=US$SGvJ%|guYKyg5;=r=1x z$HeFtVj<_FqkH~1Tc?P zu<{+W+x>d}db(9~hgMEbj$fkgEf>TbCMVQmkEIe3xB?Oo53Yila^L7X&*{Xe#rndttAozDK2;Ad;}WM;VIk5x9+%iZ4{ T=~NgMLVy9~?dSCb5uW}Z|L4?1 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.svg new file mode 100644 index 000000000000..3f0ea1491f6c --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_local.svg @@ -0,0 +1,793 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + 300 + + + + 500 + + + + 700 + + + + 900 + + + Size + + + + + 0.00e+00 + + + + 8.12e-05 + + + + 1.62e-04 + + + + 2.44e-04 + + + + 3.25e-04 + + + + 4.06e-04 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_pq_deque + + + + + + + + + n_pq_vector + + + + + + + + + binary_heap + + + + + + + + + thin_heap + + + + + + + + + rc_binomial_heap + + + + + + + + + binomial_heap + + + + + + pairing_heap + + + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_down_timing_test_pairing_thin_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ee77fee93c59c3cec09ad5e84ff24edc74093e6d GIT binary patch literal 18308 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + 300 + + + + 500 + + + + 700 + + + + 900 + + + Size + + + + + 0.00e+00 + + + + 1.26e-07 + + + + 2.51e-07 + + + + 3.77e-07 + + + + 5.02e-07 + + + + 6.28e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thin_heap + + + + + + pairing_heap + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..083fe8b8e14f46d7244290517725d3add6d3cd62 GIT binary patch literal 54587 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 A1poj5 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3c8694abab1ca03f19559c443a02b114e93099 GIT binary patch literal 37140 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.svg new file mode 100644 index 000000000000..e0dfa4fd322f --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_local.svg @@ -0,0 +1,793 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + 300 + + + + 500 + + + + 700 + + + + 900 + + + Size + + + + + 0.00e+00 + + + + 8.64e-05 + + + + 1.73e-04 + + + + 2.59e-04 + + + + 3.46e-04 + + + + 4.32e-04 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_pq_deque + + + + + + + + + n_pq_vector + + + + + + + + + binary_heap + + + + + + + + + rc_binomial_heap + + + + + + pairing_heap + + + + + + + + + binomial_heap + + + + + + + + + thin_heap + + + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..226713cedc9862fb5dea07932dcd831f69a26230 GIT binary patch literal 18288 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_modify_up_timing_test_pairing_thin_local.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7843d66bec060a1c0061d5e5fdb86f47c90ce1 GIT binary patch literal 22472 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 bi#ar|Ymm$@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + 300 + + + + 500 + + + + 700 + + + + 900 + + + Size + + + + + + 0.00e+00 + + + + 2.57e-08 + + + + 5.14e-08 + + + + 7.71e-08 + + + + 1.03e-07 + + + + 1.29e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pairing_heap + + + + + + + + + thin_heap + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_pop_mem_usage_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_pop_mem_usage_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6a83d6d9ca1325e51004bcba58811865f3a9821c GIT binary patch literal 54012 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

W%KZ9aClY(5r< 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 F{Re+k&j|nk literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_pop_mem_usage_test_local.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_pop_mem_usage_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..4debf447af53151b218ecd3cd6241c72816d62c8 GIT binary patch literal 36500 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 zr^190z63P𕉂INcIX1z6Ku#y#eebd~+u9K)8`OijxoM-!(#?k|ll3f|i`@X;YeUszs`~Kk%viKrx z^rSp}@2K#BPPO%u?^DH_^A}V|VTm1O>0VguZ z?*Cioj4yzPX9inSOSs%iuJVPYFJ(6g{F57b4xO2ecm1M@y#~(=J0ndVr1Q*Bt_f5q z3aH%)s|}ET=|MwDYERZh7$&j)>oe9*1jhPEY`q$?r2@pCU&)h50^|2SJDn%^f}H?| zz8e@QpJ|%{Bin-bj{Lg?yUV#8$5*ZNrUSQLp zk;wJi{x?tX4*$~d6p3Y`cziX5ksO7BZEt*VJxx!ek&2Ct6_S+HxJnqszk)j(IAZt? z1_|jVUhZ5-5-~DqAL;F4#aFT~S|J#SSs(fl{r(I41Am6l`X&-@4e}#pprHrpCN^&i zL{b6?DCp8O!f&=O<^nb=KgHe92?&rwqtRwi=-%GoUi1f@hYufS=UDy9Zq)wS8(^(} z)jHo9^T7(~%{DuoV^!VV@Lr}Ur6Exld2LE@46 zvNi(iN+4NwibGJB_8nZ^tF=d;AyZkCCWXDjZG;s3IPu>Kq(~-3PuF!6Z%T9aBozv+ z8S}x8G(PoENs0`awf6V0$JLx%Kh4ZH7mvn%F%R5_Ynu_#gDYy)2ibOyHY+PiD!r^T zt-qfKwA~8{39;^cal{#dT6lvXip)%gNqCz0r8)}1{&$pgOGyX9 zRLv#8aH3<`Z3d|)Fms*WyHe2MPvBbqMR3``EwBmyp$G(X`dYgbv* zZKBbKb@4Zt*(hKVunc$uNc5=d=Rh0aKPS)^=bUp6@I{`-ICSU`Yu2n`@ZiBLS+azw zQ>QX}_UvtvwkNY4N!7q|qV*R56B}6NTH=mgj~U%Fg0!j7lIRi9KTBG2 zdb{PEbIvtf&E5@-Ra=fsHJlWMg@rV0){MS=`zE?AmuR76Qkhw2qQ^#?0&m2Qe4Gkq zHUcP=wC7Z|>zs2g^_}$rMm?RB0K+-woJ&>yn5uKmIp>nDv5#Ol=bUry4CEsi&N=6t zOF9oQoO8}OmvkOrIOm*mF6lhLaLzgBT+(@f;hb~Mxup9)8c$S( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + + + 0.00e+00 + + + + 3.28e+03 + + + + 6.55e+03 + + + + 9.83e+03 + + + + 1.31e+04 + + + + 1.64e+04 + + + + 1.97e+04 + + + + 2.29e+04 + + + Memory (bytes) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_pq_vector + + + + + + + + + n_pq_deque + + + + + + + + + binary_heap + + + + + + + + + thin_heap + + + + + + + + + binomial_heap + + + + + + + + + rc_binomial_heap + + + + + + pairing_heap + + + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_pop_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_pop_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..16e0325a0c406ac928fe1b90f9def009d8a398e9 GIT binary patch literal 54892 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_pop_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_pop_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..7820531080916d57cb62383b70980b284798af78 GIT binary patch literal 36208 zc-pMH2Uk;F)GZu3QUw)|sz8(u(tA-Up-Pk91OrG5hTa1zDk2hUD1s6|IvD9KfTBQ% z80j^D5IQKme~0HC@4fd2d>JDn$;sJ$t-0phXYE%HjCC35IO#wj5F_NkaB#4Mr>_^>)dlug!tbej_J%4a2y_DkxvymrlCw4y9Aas?*Zp^s>#i=XNV?0_ z`;^zH?rKuy)G#u9bp77(tHzZ}w@^qZc2wKcVvVuy=d_OLbyJqh{*=fYH}d(lHQ(`n z$VlBip3m`kL)O{fucpv*q-w(3c)a$fjXyIDzUOEMeF4WSk?d6q@AF`lNICGdBz6wq zLQaB;q*M;@7kjXyvm$U^Vxt8MySQ^Q6fq0@(b%v}-gQyHpG5Uv6?1rc2H+?DTkii~ z6*LciqPQrjVpgD&n2;^!6=c|-C8v-EJ?l>73Px!}pCyEbhHj<@%UenR*A}>Sa&q#V zJM>TTXIeI*&61ju>nlh z>dj0CFd{1#!#wrY5r^QZS~t6qs`j%ZzuU$+ArO9zTBub0pv)AlG4XVU;pi1m}a{qdb~FFoaDsIlz2x`qs!YfwQ&+Jx(nFHan=}f z;aR7dLw-7{;5~BHwwy!boa^qkG9UDS}2IWr|wbha7wm*!TH?e?I^Zm53_RJ9g{3O&!dl zTG!sL9|=k)~n8fSQpnF@2rFz#P} zc}#xu#4GLFdQZfbpFsAnMwZV3-B&g*#1GAi67#Us9pBb*#wz7+xXA7Qy{g4#>eu`> z1{adWe{T{Gye&?t%oaKY8nqDY+n`MIm){cH@@U}t1|St>H>3nbs1TOo^$^Kq_+q3G zuDs%18S%9x;Xa`d>xB4;m_o>7BcXf#Cv!gAt>(1GmJUo26bxi<6)=8Xt7-^N=w8G@ zlgxm;s$f4*AGuKqlhlDmTvtp)oXSW?zwWVdyMBe?ga!E0flPG=uBcnwa(PCB;((%q zZ=5FP1C|c~rA&I@%S_6p&qTGpTY3YaP1<99cKQvP6>@qyV$L2kPdB$Ot^G3_heKD@ z-w)_TO$4ex!LErw;viq6Zh=DcAWtr}Txy}<==eBzrE`}Pz?$AMH_!S(BFk>c>;Qcu zY+)8GYY>oTj#E(=RMXn(SK&K&N36!2VcX}f_!Ohb!!yU+LD0QKG;>TE<*Cw(5P!fp zUL^|$8a;PMv?92PpM#)PI@!HoTf+p^E{E%V{cC2iow3!4A+7($i<&4xHUE--q}pmj zCGNd_4-DXJ5kLg=EFDwXq@9!mpKZ9msoXbPh5%}4hEyA~mO_8vo!hUcnvw5shR6~a zt*zaDk)}1}WbC-LBuF`BJJN;sy5RSjzy}@h2g(dxo4i&wHEbLy2pVv!jpAjA2Al#$ z=ruiV?J>j^krLwqt$Sdmo6p=K-lUAI1F?gT%C7>od=Y%yF+^t@IYPO36{|6x{aBZ$ zUt6?@T;OE!lvaw|gKJu8H1SdE9oBwa6u-5_Gj!yox~evVEk#lwOY}|2C58x`gOWeVV6Bj_kwqf{8Ty1XZ*~)sr1I;E-Q5J=GF(a z4rQ=J)LW9QBa|Fr4#&0+2L$N;4nR0YU5c_#-gFqZ|~Ppcep7e={tNSS2N_DbX( zfI7{7?Wc9oo71iCY0wRy)-eC>xo><$)TEcdB1Q=eKb&2^^j24wkW3kQOM<5Ijd^7V z2UQNaR=hY-IX1=WbkLHNGeIpgAq!u`Wjls0q{&TWD=bb0_v9+?F3jVaYK?I$ES0f< zOMNnc@zPR8O8QD;60uOo?mV*m4bGc?>lJzg9LTUeMI-pzfsK@7pga?Gyq+zf^X4F8 zeHmCav3hNc5cn#+wW)RI&e>M-rfhR71(cB7=)2ba2KRb!AZtUv3iNg41g^WFFN!P z(9KEVl&I!gQTQCC!}HUvt_=9or)^0>S!Fl$9h~(zZ!C{~bcNP6{-~m-TW%s(8?osl)|7VYh0iSF=a72(Bb-L zi_V@WZMzL{yru0tdQfb+S2dH~p3&lp>f!JDnV{DF>F^9P)xTe_h`RrLKQ)r%1S>RM z0m6lg%RWSzHblqF!I?#hXOzdosCxKj3h@`jSLsh8J*1iJHid&hLy&6q7;ZSe%KRi> zmSq1pU7W{>Z-a`7Zh||BDy&{6`;2Vh!@c<6=743wD$4!+VaVCZ;rvH~6%piT-jQia z5BhRYn>2>;FI`=V(u>Toce$C-oDW8DjzaQLpe=IPM^r^>fZoB;BbmN8?ofc~**@H& zn2)3+DUjie5K%t;)56LoX6sYIGm$5~X`;=UV?p&*%2uBYZ|7x=-Hn>6v`zj)9!Tf( zjNalLQa%4?)5YKa(ZP`*(G-%AIhK@+4g_LPme_haCwC$2ddEIOF4pcz=RF#lgxTmW zoIGSD2NzuA@bA@}$FAF!`c@O#0U<}}pk7Qqh4XGj(<5ACWN=~%Yqm$v(7cOkd%5sy z7DX034gA-9$vMdnV|D4BVa-kxjHy2o=<6}1ZU`4B)$HD&2H9>*B{bdKt=A)V_xcdR zUdB#v**0Rf7+x9Mi!{EZjOA+pzEK(_!eb_G?fwhQebk*_mB%yJYll*Ps9(x1v2&jwfm~Tzf+GiO zk;+%OvdO+A@V@~Vnq|?K@VXs6Izvo;gS8KA*H-as0(}PU9d-_6CFmA8Mb`%k1Rz_k zA!f1QZ{1<6<$W-GBb{ryg@E0PK&Ds6%~Yt=BYN4NQsG-3n=Z4gf^d{Yf|0ij!k9QHxaqyAD*t1ZY16XHf5;nX6hWF>T3TC*ZpL4K*qitfS_HM(h~2(BBB)K^wtPh@3nP>G>q>Ak9<8jVkK;I=Q}{mx_7t z2QPd|p+N~~Tg`pgr(#saTN5#$0Jw+lt#Sj62OCo>SKa=ZM5i_W)L8Y%If9wigTLez z%1CsTJ#{cOpGMoWR(v&FnPmS_Px;AAn$-#*UZ~84wiOHyj zG22b@C8R@nuv8FuDF8(qhzLfoBLX#}4t`N9-aNUmk%iT&cHYQAQ{Bj;`u5ZH!7pEY zMmU)5gRYarY#c?{28k2Q48G)1bHJ$U+VN*kJjS>gRM98Jiq;6N}x4-MA4fdXl5RL z>hzCMVNxo*^Xsc9dqi3FqsaT8`J_Zlzdc7!#ndC35hx_5x2vNagyuGX3LsTQ%*Pe% z!px*-6iLt4)++X=pZ0Zku3ouqJSpWr_w~5n+vwSyiy5JRV}iiXesEvVCpcogurbw% z`{Ll!!ju3JDUJqR!UmvDl}JIuS3Rr5Jf9I&;u6RxcxN;u{m#!Lc79>DNk8jbT2y`8 z4i_bhO!Cg|4~FK7(trDGf0yt9E0xb%{b_Wep|axvEX%fQJ=dRq`3li1Ut!>C1H0mH zT%GSK9ALwy(uGr0BV<~&%?sv8_1zoVQ@29SwO;wzD71!?Kr(3>5yfNi zS)>eE2w`{OZ$=kxm^`xcd5(Dh+7N$6H2HYy4!b#_4Z3%)Wg8#{{_|*CMj~AtnWg}! zL-!Eo8jk5HJmhq=Z|MC9s5n%s)1QS$&U&)~ukIp^^{`HFL$MCnvTxnN!XFwM$Q17p zY8Pq90m9rPR?>Z|p+TMD3z0@D<|m~>QMS=b*&H~_t3dXiyclEfn>_v!mrL{hSEhRo z?h=NOX5e*lZi8wJ6$l~+P83`^2vvj?qS+QueM(llEfSV}=@OF+GjzPSgd~bMPHJ<< z@>&~UmSe`^|5A5!iF(8b`7zEUoevH%a72MP+3gd^5k2f?HNsh;PlImLSuc#^U>wJL z$!U{Xl_uvAG;|@iU&*QmB8(a^?`W!~==`-TEY(mkrowUyF5$W6jYuXB5U@@%#riR; z_R(~s#+n*#i8)l>gvz6TtcGD_u-eZ<1&2h=^u7Z|_%J=#nk09%6Hp3P)u$2Vp^Hu%mpN&SUFDwBCq zmHDhnmwaPf+3MHVF#GV&;+d+NW?nMcj&9y^9UnXZXu=pSb5K3ko^8T_V<#Bi;=}43 zdMiSnIq1%cd|gPBP}HwS=IDme3}^Z=MdvrDTt+tv9szoQ8UjM%VdUR6%+I$rHIKeA zk*1^mezQMVuQ!S@!cK)&J2j0N0ilmQ8}Ln7^AjhcYW~(&!Yj=Y#f8`L7{mwYo)qjI zdJii^{Nv%OL}Fd;lWae+%2SVo`uO29&rjkbZyWw7V-)!3avlUdWtOo^`}78HsZ%rE zp~x2U6UWBJ^sK*DJ~jCE&)j#^vb52Wq8($xk+gf|Dx^|c8M|y0Ds(2EFUtB+()<2w zg>76#y~Lrpu`z}LQ>L6LZV;eD5-G^!O9mMww9%SapUQNE#k)z-DN;o#sV*ry%V_DE zknFEXdkvQt1CnH~CtKk>YWsVC9JP3;`*68{N~ZYh8(HwQhvih=#n_uj37RL*R(W_S zH;mJ%QlauJ2lol9Nad_C9ilq%<;wzKd~5V2dyn&?+dP)!Moyp+!{s)id~dFApA;Eo zv)xa@HTD8(t_%0Ce~p1CdV_h1M%52$@>Ry(1~s;=DVZOnxFa)AbX{kHWV=DF zp7UMl^b!Z}rVTplI^AZ$i4|8DHllo}B&c7oS6)jVq&Q&kxDVr;3nSLNoKq&vx#gs0 ziBH*sQex7no%ou)$7WlP_xj~!ctigrFJPekE2}g&l&#bst;hY_jV_snCq4Fa3 z@qZOz6deky@VP58Q8@23^#5oK?(yN8A2)rr!GWUVCS6KaHEs}^p?G!%=@{~k)?F9p z7h~!4`(wqMMha6q!%M#kG;F?j{5trAQMR&4EBrM)4Gm(6LEi>PQgSo3xI$9|Pa$Ua zWbAk{(Ee`F1VIOSS!oRNb-rwDCs22?UT>^dj7p3xmb@c$d6ws4jCKNBqTfJ%hk(~e zB@dg8F{v~Lh;+-EDg0H@ptHL$g#s9A?}>BLRvtu~;7fTb6*W?SkMI`@m9gV%GrnY! z9Ebk7qyF+$56>{3-lY4;mmh1 zH&yOvP=)Yh(v{y_`locQ0goFtXu7OO-7tWA3SOsBrQ4Ch82!a>=1hdz5K1T$db!BF zD6I-yN?wOtcUwfr*FwRKJ9Eaym_z#H{H zK0a_tn6>{ZT}Umw1?sTT1G#R`Mr?jvwtxDnmbv=_<*A_W?T|?+P{Wl2*|CI#yU>Tu z(E0wg$k=Zs+EwCII;@jpLfqLtP&?Laf|8X*dO&$>EgOj}o1xN|Ci?GOXXBqMUf+99 z5gA>6UuVeV=$O@0EYbscOdB7X#XoYDi3u`&=8r!eW;a_GTaF^SIy*VP)@o+J&_JeZ z9r2c)HEbNNi1z30XB-Vyg!h^<`L?RD;87S6`N&o6((q$N5`U_AZPg_k?2x9ql$&@! zuT=IGe_7IG(AR+a4&1OlC(l_}Iy#uP4WePi!YA;5w8lLc_vu68YmXEqtH8t*v(>Id z%871sgi>sDQFiF;rajf=-x914IocyV`^)EgDt_+4$=;;ZwYvj9=YMzV*x?($_926%le(%eD1p7^=G8yH?NiB;g$~vR*s*ha zNT^m1C|UV`wRJWGHR+W?p@)AN{^XQpNf$<5`*NgCjg3{|uzH+X@k%xmE^!MOe;}d? zkpVs}s!2zk7UN2C;FkJD0q==g`RdiN`COz4mhVpi8Bk886Bt`$&UZQI9;+2H%M4AU zeMcDUk7cJ^?;#uSR*8dGo;)^46!X}P)K}c`71?>>Q>RLB285xgc^M3{8w2Q7mj+Gg z_5-p<3tAl|ueuOiIB(+?woqjft9w?!Q!-U8*vda;;z|%yK;Z2{PD0A(FLdp(`N3cR zY~|6g?sRi-=Xp%9vB?6&@Hrp8@ul8)ec0|wwD9_g?59XA$LZy0<`G-aygBit4ocs9 z`vY8p?#?w1Pb+n%=vUs>h(PZEA`X>YvYX(e;qi0je6EFt6oQq_gAb(AgqRmV3HWH9~W zc6BXL<6k^~<~;2co^VL9eDDBU;hy{L+UoG*=SCPPSfm&(QS->>TH9sC(xn)5E8^i_ z5edO{$r7WQ*(6%FjQ96o4}Zw~4Ur_-k40?vEBMVspPycl_a3dD3Qd~!r|~H=iKbTU zOrR%;)MwH$$n=q4NJo!b%l5ISs~O#QCg}2`Yijah9z*4S;2h;KEsAY<@Jfd6B)%E1 zEn)|}KJfHAU-X~W`spKLDI=FeuT-Crn>@*W?i;{(9AXQ`&y5~fm(zr0jgkJ+L7`rV zSICW23tckcsxUIn+H5wPcTP^!R%8(#<4R zBD@vx6SpP~0CT%FnM^n(2V;w2b>@z;%<;|X&H0>!q}xSC;pbI$V%3EubC!9BC|)#EoxsN=$k3Sf7Gnkxqi5+|zOTrPXxg{#c;TQESUpbF7m!P3%CFbWtRZi_yZAU9*Czr0=Qmyx& z@BU`08-xcxG)&UFD%*Y_+7Wsaj)?E~_KYYU+VbFQp;k0cAgm!m$fcpv-7lGU!%zFVe$gGflDEHocwcFa%0eR{b#YY zmk6{cWw5ld3?`5Da2juU&AbpgM3ji*ogH8$b_Z>p)G7PxKXHSKvStvJGQ@!RerF2D zD}ymYKGACe9b8tFik!R;S~3`^8<8L*DWPn)hPD zBKr5FF5wKDf(6NBb8D%SM9RgM{dQ-0^S3~lnppK^sFU`Ep7Bp@!oCZ*thKsfi#>(z zwZmGz2WiygJfr$n40cG_ad*B9t3(~H1d{YUOH<#I@BdphU4h4VO`uxYUBpQCR9|F* zrS_=LKoQ2(a6#ect6FDtIdcvaxuUt=%gogE#n?v5U>Ym(d&8acy2ta{Bzp#Z2j|Q& zYv*!wL5wa~oMuC^-c1E!MhBzmfX`uATSo^QUwbrJC@@!o4?aN2DTYq`U%_t*gX!@Uz5)$0m$qz0 z7(9IBH9Fk@cKFfIJsI?@qPdEiiJG^b_Wh9Wsu(MT=hEwZ?x@q{HU9SI+0xHq%hqw> zR6boF&I>hX>Yyq709Pop=$#aq#6`(s&ah)xgiBY&56F0ibNG~E?87;CiZRXaw603* zD8pr}nCI0kh_$`g<(wfYgTuW4%>}@h7hDLe5K%b7^apM@YphzZNd+b^HHhP-WZtOnV$V@7Pr~{Q=R8bYb*Gslh$TdHlekv2ws_Exk&DM zb$~u(0%u4Fq)ak=pCFqCzcbzvy8Uvv!Y=yn!F-a!#IH%CY7F}<3p0}XO5zYgW zQ{F*`w=Z^N)%hXv|1X!1yiJ=c@cdR zIy-j&58$&sx#c)H#f{0&ARHu%mvyPgTSUd*SK68XIwnjvO2KaL+*18;5IHC@o8`J^K4yqbOUgwKc^!7hb7qc|=~ID3eXC z%D5)ssn{X2@^+Rf^AIY}IVxBZh1SZQc(KrzVRF1QWTjzO?cA|hskXP(rD5V&P2?kG zF9@om;P}(h-fJ8nwn=GqW)C-LWWTpVjj$&`Lvsv7%nQ3dqZKxD?##cLkZjpf7CVy$G&*616>zd+W^Tl5O#pZnMZ&%4X7(M~WYH8}$v)_)pAL={W zK-3B5&LKu2bHuF;PVD*FetSY?<6;(M28h<3O7O*lIX99$;ZrG9_c3-A8ALSN77kZ)Cv1Kfsy&^Z5r$E9q(5P3Ge$HsIvOkViJvJ! z>%_#xeU`H1ydp$P;SwblJ%Bu<>s&91CSM_QNSLzaWelJyrD%lK=@DuVI!&yYqzg~Y z^Q$_jVr^$#)UPmX;A5CaI}X*Al$4Tg^B2SM>u*GCoHZY~f#%5s*LAnNo43ZzAOe>* zyj5A>hO*yhx3cLNf4@pu%w-`UT*9#hOUpo0N%5ME<3I9j1+6j|%IZQrs;`aZ!eQ_ z%EVf*u#I}N{Ym&wle68b=(N(yLPA0Vam?xs8(n~OS2b^X2)ots_OeV!G3Vseu(#Qv zP7uEF&pg!&xOV1PcjVrf`&I`H-^t)|ao+p7g2S$jhIx{U*Kj!mQ4aGE-OA}uyAFl- zDpbJnU`g;ij~&G5QrLskKM(SSw}c-w7=Nrl<(f@5+7JC|gp>9)PPV!>c2|Zb7IVM} z>~IqjKIgcL8RUidPRWc8HwY!=7~siWbp>n5H>f3~F^`cKPp)3NHtOFeOj|jIF1QQm zycvzQgI6w%r(raXJZyY8-qR=X_|^s4!2vudEqPa5k~KDhZH<|!g)MaA(%*6^__{rO z`0!P;+VoNTxu{-0KC0!WtfzZWJpkrP`*znpV`+WJ_g*SLD{FbtpL4jx19-r{*w`6f zEsRSS^+x2*uV2iS*8V6z1pq&hmOsb^R8{`yINu+%v0vDJ{>7^(z)K)AcrjHtI$~)t zI~soag3C8k!IOY?Wcdax7~M_J;AA~zCJzhm1__vSH7kb)wCoBm&eC?wtblyU?#h`q ztXHBR4%djUGvoeZs$oom1=Weg$@nYy9QLR!BIuEts( zVG#7VwYxIeY=Ak28Yb`crf$etU*^60keNe#X%JuDw}g^8pDs4ZtD>i)TbgN)9)5FO zX5*zY=HgKgdRm)***^ajYN{zN^d411c(FVDx zH3gcfTJN!coBdgGTz`kGoOsUXlQf{W)PWVZ6oWW8gY=pxGNI5aA9ws^Vh~Y`C`)|W z{(QX-Z1=SU&))6N?OD)M24Ou!H;MFy%f* z(inSUD1<(S7aMn}mn8DC#7w4xF&0iWgdiuTJ%QO}JFjjBgNv_`3Vy{HZ#TNhpW3!YQ?arujgiyjBEs{-8`ug4IEY4&1e~{HCq?tKUZiwq=bRwb^KVdMi3P{_xVQh{ zAy8hV!^{%abmAfIXLP z_a!)=AUA58H^H&a7S3m8Ws?8?jtV6&-{W9 zS|@@x&4uH?<#)1iKe#=TY*G!Fmtj}gpc@h&bkoFO-;cs;z*&ENV1^{u1n8mS8!s#8b;npXMr9mXk! z#CGge8PU-__vTL*iG@`cPuA541VWvPQMoGT5#P#fnqS;2i#dKe`=Kk+ArY|h z!d^3HRowwqPX?)OT+~}dq$m}HQL=T1AjuoPR+B!FJ<{%O@-}+ca;593v$cpSVch#( z>?37TPJ-5Bn;k_BRhQi~Le+NPL|I5kgsro$GA>^N3ihirf7aMgwFh(4!{qXu(p=h#%LsNuu*v?Xcxp{Q6 zppc|w(tBMVx&2B=3X^Bs>E0GziG(zK+!*&)1-VD{0yIy{o1OFD&h(oF{pyhnCnjEX zw;!7uk0t|2xf*Ye7qe4Z8esUw*Tn=j4uH`+U+$c9c(DlXFLG?0L&Jo=eoKGKa_IJ}C!&rxZt}!#Qx{WVZr)k+pKNgA;rQ z4xFHrp$sMuG&z`!w>sWmRVdgB+njDKc85Y8+5ao|_<_r@b84qhtn0)K(@&|!x5VTg zcydwcT#>=?LMN=FhwcTG_H3%h`$U_DXK=SL!!hg|E>k`7NON0P;38uaAd_9VTl!CK zEe8_SWsdI>60sXt6PE8~PrD(tD>UL0$MjFgycm3KX_)zZ(rKi^_tx&{@LIcTQo8xQ`8yO4L+sR-!YJfuZNr(pX-wvVUjUug|MZlKItCRfwrrc9 zjLJ3dOug9XT}OMD6n98zx#nYuH5F3T1@(Tx_(qXJeKrnckib&>uiF2(W8s6`SM#ABhU_lY9gNdw9*f0 zQD$)$Suj836>U41a_Psl+$AM|4y}}yQt3!^j0uAD^pgX4rI60?J^B!%7zJ9}L=A9> zjvyo@4K21D(NT{bnq8ux8u*+$hOv0D4gt*f(L*p_GH8>c%3%DO^}T@wxX3_1ZrEUj zf#H@ShffVUFD5?5;3Hj*;b$~M>`amXh;shl?96&UR3{q;fY;|wNC4BXJ)1B;ryQhc z%Ca#|79K)8ht?_PXc!ZCk%ZU%WoEYwnhQJEDS6DyW5BUd%h0O(+!twm$Py$KHKjJS z6tAY)lNzsi!P<8LrKnb(x2!uMSt(9~Nu)jFKk&R$tuPEb5f2=wHl$TU_Lj z8y0F9)t07Mklx7P4`x=Y+M|}8OoS#tl|>N=^(C#rM|Ekg^gB>w^$T$uNg5>b+w z$jr@+Jht;|t%Zhfx8=&j5BasGO*G^aU)aK4Uf4OQx0C*ji1Wr|W7Tx{W^10`Xthf= z+_(AU-_Un)8v=jV8a}SS?v~Vhz^U|wgh!n9p6CxaV7`o}8@$tZBcLJdGq5hkD|{hD z1oT@~V#M65+IdpH%62G*ise2W@S{uM#|W1Wg{GSm*#aeZ9`xbbGQLbTGD&~ow}pX4&8afkCx9R>>IY`Y3BixFLM+5Bfv`K?sCF+O*Wd}D9siMk)-&I zw`tnRXR&g$dGO%DR^M*a=~1Li=)XUG9}NKcRw-Qyo5=^~8pDF;Wo3>f<`f}bS%b0$ zoG5Z93N?hdFzkG8vt1+VU~9Gy)SblF?*H#kj{wd)@QWu9sx0LphcDgi1gAi26gjrP z!YxuWyqB4=iPY>@xX07!RnzF|Yvt`!sh0*mbR8GxMICA1d%=K`hA-mc1sE@&%dGTr zq?F(gB`-x0YK#JGU-d6i>T{tEm6Rro>H+-^g^(I$2H|NT1GC)jL@xJAyZQ~ZoY(My z!;OoS{fwPpDM2~%_f$HWW6=U{Qv!-0o>T+O4YnP>wy9g7F!L86bQ9g3-E_KU z@;hQNH|fr%Kv43y3Bc_i%K|gxt1DuNAnQ1y6J@g|^kAnnb!Co~vfTcr3Fq=RPzk9% zI#uZ~THX?YQcWD&U!0D(Zt+Q15PX$=guEYNC3??48GL%J!Dv98+g7OIv4rYKmzYMc zH!#pi{3lpNCz+sS$`0i_KWGN|wWH!A@8zF11b1xorPm3C*tFVw?WQrAi#(~EG7phK zo;P=)>5|K)GJO)t5+yPnVN_{bWLxDZpTuBZ$a3>~-NfNgsb!z|I;q^T^(Y(C*yv;# zH^I>KtV@*fh41rtm5r|(*Dty_X7PiZB0t2R#g=ggbVL!Vsjd~=_dO=Qx1fQx|71Jw zJYo=V-=QMelsrBqY4@(e47?uVcBi|#7iHIz&QqG~3d!O(7bieEEq(w2i#6yt;<91~ z4tnM4^)7@ubT2}w&2M9E40Eh;ezL8kl9ip3(q$DqlN%J`yO9^eh~*h_X%E0mTrdwM zD;tYaa*7+ORc^UxJ6gO{BNlfneg7E$UhTLGu=X%-WBi`in`X)O9P>ro7y|=4KsmjM zAENA=F3_QfaE;@`E>;QK50#fR^;34~e3n4Nz_E2&S7~yxBmiijgQJ0#T${WA%(Yj& zix>I(W`!bBR~sl4DHSh|igM4`5%~I!Py4-hQ-#fWvlRX3HkA_rZSiy@H`ur(a+y#t zktr^`DRwd1RFO6QpFRzonO@MJAib>H%Yip&J_&fz!%Y81asEw3p+ciaDjj}?oS*Ki zSXDWmX8iqdFJ2-iGcC|Jw6zK_?hHebAsz;q=5{^*8c8Wi4w^T2Fc^e)zH2BcQwa{O zy0~35Ld|cwd|m4Sm+)yDe1-v4qa z55lhX{R?*AsQ*E_szWFlWt6fbTiuLay~Gw3^naO>AJnVBU?xq z{c2+hNV8s;1!055Edc1GNO`HP^M7fp|3hwA4=%RG1}Q`0@`n!0XW6VS&OW8xO^dis z-oo4>;c4Z}2ve83wgiQ)f&;0kuW-MqvnH5e?_t5FR6!T@Aw@!Ix^Q%WU=?(}IWUB) z6#BgJQMq~m#}>c+os7>we`0L^wYy1T2=a^j;B|fe5>r<9)ysh|kb@=W#VKeVQ<9Le zS)4=A*utAn@Km&MuCiLfeiwwg)@x+CDrkND`~BPkMMxImG_&Dn468~o7Pwn z(=IG74&DR;*wWtmgo%C;|2?xf;9GRmkDKu=ncnU06?XM)p@82+e+XP1&I6k#C#R}k+&!>}_S@#cC+X=!Ok&w>1omq79MY(s6GvWFF6U!DxDEbQ#;?C(wZ zwHJKE&qtN@vT=NSLz@&VxuTYDSMF3DdAwJj6Sh)fg)T1Un+E3XSC5(77mr_a&&*BK zc58r^X4)dnBDxGsOg5tkklSiCtCh{e?Q^e1vw~NL*9+W)qy-Ck;J7<^lTpX( z6?NWYNQ-uNpNYEG!y|xDiD+nO?6w_mcufGEx`SNN$rTkBudvzQn9@C+=R5b9Yzf^y zQVZXU5W4=F0kQ(jq3BQ5ZJaPLZo-dbfo9&IQ5V14_mY2=T9)ww_qDV??n~b_R{i^R zswrUkUk>|qNH*KYULW2ypfR#Z{ z)d#nGXNuXxZ38wZ>Nh{0oJ5q_V2b+Rt4-*<rqSkxwJa6$&k~EPL1=1rV)p0CuABKYnmreq34SGZDn6 z8nQJvIce`jK)(WfTB$DTGz^&OW7*g<3DeVhLzTr$*P=@6n$DxWbuUj(&$@tRg4>}Q z*FS=RWQAh`?88un-3T=!ryGEQ1%Nd#!}EPD8aZV>2G+_k_@l7?EV-byn(wyTi~T-8 zSd{k|$bSxi*SX!ZbMYYnX{|7yKi6FxR=d^nK4k7vww%|)X%=1XJ9MAeEbA_|HouG4 zPkt5@746GX@bmQ<|59Uvf!b6#wzA3kjPHCBI?p-$Ud5MoRE^0!;Y9nftjk@mK`Of|O=Iz_Xiz80a{psR%qktPN4VGNlY(GEysGY!;n~|NJz4hBN z7%-@CyV@s1z}ov{9Bz{^Zau7f<6e?`lW-GGdGCh91j#mzc3=iFH%Gtf6Id#2Ys2=p zx|sb^)6%}ZVC0gLSs5zRov8CcsfPaR1v;AR4NYOqt?-}kMmaPEc%Jqv%%B$+7HVL# zce7+Y?*dCc22gJWlN`mr1z>~poYW=z@Qp@NKHx=UfWWB2L>xXHu5>T}ZiE;aEezaa zehd)rG7=62&qVbbxk*4gjk07>;lK=U$a@Wo3D!LNMt9NMC&T4E7h5Bb=f1uwV3Ty5 z6i99a?Ew+W6p-BkBY<%Z{rLIQeeCmNpeXOvt5;z}1dVji+UNp3yM#9s%EgK*0}w3N z_KU|~tpql4PBEL$&j2&5^PSRf4cq->Ud#lob6FWI39hoOT}i*ch(t&3PX#aff9DA% zPBy~LpA3HL0DNZDul;niDNq!Ej+jIqm7ufE=k#`&Hc|YT^+wYBxbZrl@Ho^^FVL0w z?nH|!$K1g|izg$M{k>_T3ixb=s*%^%L>=|rB&=dTiROevJm^;8&~C%CU|X?HF@w3M zCvi;5OKpG|Esn_pY-{`ic{U+ixo-g1;f|j4|6VciP(lU+xR{>-0FFoJ8sYmqyxNUw zu#<4Yy-lsKWX@%N?W^}MQ?XpN@cuON?_SLfqn%P`8gJ}1?LjZy%WIC>)uPVYEL?1w z+Lwh1m(V#ge4E~rV$In%vd1p}B!%wXRN00ux&@CZZ9mkQCoiq{n>jnKpNUd=WPfp1 zC}?S5RyU%u$77;yJvyF|i|uc#g(Z))o8CjfN+K&xJ%JAZxQ@>n0c3mWKNU*K9mlx; ztlFx%Me%78fVH21!(U$q|L%yR+1xvp^BSp~VvM6<#=mA8v9xk1oN5ZR`$IbK2c}70 z89>SCkfjgt{M~>Ji>%MIpX+FNNrRRr8@F=|BpL-3#=U~Z9%n2BE)y2O5#>D|!{uYd z-^MCFze#z~ymu;#--qebFmX2wKark0e;KY~3;9^eN6vSaI|Jb4dZKIhn?~n_-n3W0 zdUF9QWn>q#-pYEJlYjF{-yL4Jo-8cM80L9diBPJ zdDi5W$fKRm$geM1jOaweS1an}-%CI4jbKr7oQe(nR_f3klw_Ezyt|{a*&?$Nj>^r= zRR&D*7vS|SfTh;!ii+|}yL3{L9RQF`bwftR9PkZM5HMII5IHVs0{BAZ3FP8(xyEs@>``tGd>5P zj0r%jk+AguYC$`M%s!t7%-T*xKwv&OKV+{&-$+kSs9M|}1&i&wn8!Jnt{1r&=Z@Gx zkM`~DpBnJZ*8QN?gSiBDo~VP_E+A-QK;+S0E*61#Pd`k==J}0(DKW11o!V#uf*EHt z5S~qwrht}96FKFw#sD8{?#qzOb4t0*|7zNQduAjxHT4-0z5u+UUu^&T#~Ry5=|>+S z{}1>&Uhk*z}2PiI+r8a3=VJ1SLKsRY47~qxBfY*|Q`H?j5fC^|gWT^Ch%t#>e zC>CP(%bwiz_4Pg56a<48zE{IZ_#gnxl)wT41&_WoJcYv>&yH4^QFmOsT^YILRfBahZOg~j$Hw`gA{{EIH>&B}w zTx`{btNgCT5 z@I|k|1fEk{qsy# zQ}4!k__V;)2<@|Rx~n0%6q|KA!tJ;H6g+re4{W{sta`qZ^D^3~>q$k){YVfJ{QN$I zNtk6LjCY+=lEvULY5k^(p8{xtb)@=f*XNhI%fV|mqK;MjRE+tTA=hGvKfS9zM!LT^ z+i=Pwdu;XAD|9NQK5q8P3)sSszD{1(-IXEkz)^^W;nU5)CwD_x1$L?eX6S!Cnjl4Q zsDFN1kFlCseP{1O<8*fQP^G|i@z>hH&^Ki2JAKqwY@i12`s*F!^90=Kqsql<0e1?J z3S43P-`w{L#2PJ7J^Ygru{&fHusNOElXBZHgp?b6^l62p{R;aveaM;n21`jwa`K%c z1P!kc{HNOfK#l8832W3?b!^^n6xBv_iXSHKVHIyAtm6fbm-X59KkRS*soHONM$`SM z*1zI;b3&g&7Zy$Tt7Zo=)XRj2_j94i%ncsx+7w2xxe$K={#vlqb6+R z->1i~?=?RCrCZ=TaZJ;9c7iSTpc~Itxv_Fq+uRN{dVgMJlS>!)abxClFpq}ser-1M z!MCc!g z*(3f-J>eg_)81PkbS%eff;Sx>{9_fo{$NuBPLxpIL2Ct)k$Y@S`F>Rq*_0CL>4Cgz zWL1-hIkL1ve)4Pz_6zbo5UI~UxJxzk_v*TYe)896Xc5a&LBV1-U2&V6wVc;?v;UFu z?4E8vg+D!`6C8JFcrnJd9QuQeMcBN~u(vWtqadoQ2%J%Pui*VjW2l$o-t?NQDgobwHQY0L;=|o+j z?_LoE-@0Y>^V9pb$0M7jPMFW0*Oq?G-j6!+Uznb1#styS8T^0jeP>rwT^J>yBSk~+ zNTi5#=^Z6VF9HFDP!t8}gd!ah3x+O8?_`Eg-0svHS9unI?E>Oye_Y#!ycHK z#SSAs2j-|oTjXy`&O*#adFN`=ddRh4R%A?f>tcEyV(Ue|gJQgCQ#}#_m}oSeoR*N& zjR6`&YWm4>&4y>j0wAcomq&zzq1_u2;6$LDiGQ+f)T?;5m|5rAADzrns(!Mv+kUpf zMQU1XoKs8BDSO1O;Oh$AmnnUE`L9n>=d!_dbasvJYb#XXy?(p=tl!^>nupasw!wZ5 zK+x?**qtxZgm+Mw0t)ZKL!~whb<=m;qVJQT>%eCoQLAuE16bWDI1R1aEYC6~?}7;Y zRc|oiKlqDyJ{MEd7@obP11AA!c4L|EAp-$zCX@E3LCGLh?06$h++L^EBY_`W@+;qH zsD?$JgAYfp2&PFBb?4xZR}qFDnMc-2!1&8^E>zSSJ5p%kO;5Wp8x2rzyd66 ztkz^qJ@4A$L`qW9Hvq!Frb^n+7{UnFA@>=}jpoojiVo2jR=0n?riRsm5PIkWET77| z43kSI)=?H}4RIg;GPiy&j&q~z{>OX2d~|sHnQ@XWA1Fu}?>QtlU<`Wv1!)INa!$0Aw{I zBjX&Pw%~o%+R)>FvFy?x++R}C8^>Epq$&q&hK|UM!QZ8(vYxk2=?Ui~j|0K5vVoRP z2GlSX(3wV}R^{9^@Yh#Z*a0S&16b+J7TtZic*S|N%8()<_ETO?ax!yQJWtkdK+rXw zNB6z5g1AY&h|<+^knm2$lvBG~jXt$wwS)lred#@58Cc6glEH)4aJ7iD9V(kzcYaaP z7(hvyeY{5x)YlR~`|YidZDj*wNfirFK>HY#azJy%<|rZ_XBFp#XVNeUeF1RgcbQE$ zaN8%FIte+q-v#b}s?LDG1t?X`PMUpq5T8^5mY{E7;1;@Cn8r|I-`YZi@uvOXHtrME zQGh}ONz9d4*W3bnSp55SD3uVe;;CzGJrVo)^XI&1m0Ez~X>3Pa9!BhUC-4mcHqtUS zW>_DqSO!>kA)rYuN-g7Fy&`|UIn}%J^P`P~UDFXS{>6NJY4HAA4|Xxt zM%T#bDL@QD0oq~l`9UHumAARMgTTnyWt*0G0TA8&K`TMMhk=Ed6*$Mn*=I)<1u>j@apBV?wTI89&Yk)XTdejmtAj zAlB7^+ejQv4>rVX8Um?`IG%$#_PX=r?_#rL+lx?1S` z^iacjq{!&D*No~+*r6@ph2z!Yyzv@0HgTI;fC#+?ME;Lz7xRYa8^KS2N;@?1HGO=oS(d z4(J^mv@^>_Wc29o-DKR7a2D|{!GvF{svs?oUbf#Uk7P_V1}IsR$c-D0WSVw%cGD9z zZUKe>fxX;p+*$z!xd}+&gRf{YP|v`CkzGsZu|i|OR!e0%LEq5CB=13?e##m2wwhY= zEFkR0jsU4>pa=j&AVA%JdrUX%D}j3{$6LZe)&LN>D8odsI=lDw_I4K)7V>Ze=BB5o z|NQ*$D?d;HD&{+Pmal4@Z5uv+elVe#0Yp^ipFe-Rn4RGeGifEI~uDBcnuR1Qv&sj1%S|rfN!^&0RG*fbydx;{eyN) z(cke(!el=7`KPsS^Ray~WnPaTKMoguqn~oi|L@O_-Iv6jQ!q*f?)2077)gnX#Wed( znv0yNsVTuuHSURZ=ik?#nXf&1!y{jBQ|DPW_W5CZUc|-m?i;@FKqF7j&4&EjS+M=S z$MK>pD~wIzfHQFUcU}&LY`0N~+J+x5PC5_esyPF3^FC@&r!yxxNFl3D%c76Cnt}pS zr{=R+VKgzBb^$}$lm4Z@_4R(UwkUyrW~@l}%oP%K3g!OEi!*h2lD| z*rwF7tX9GG*UENaH`89G;1egOmh{xrB7pz2-k8}T*8uX+FR(dyzX}M+Ge^B(Ns!BM zLGKFy0+)enpT`8Kwk7oU_rC)OO7bM&`{O``hk|pUWa47snzH}e-%k%JAGZUI|I4H| z(bfF{M09*YfEa(p!%piO*Yk&fY_vyK1D^}E(CozX--Q#-0-N=N>APg{^7Qpt*Ai_| z8yMxEA?kMw98%MBbJcH4N^boEa?wwusX77*Wn^S*>FMiRFYAPdwX^~`F8nF$M@h$C z1?XC$tOE+e%d_?1ZdA_=9215!Z>I^2)}@rvvdt@D)Q0AgN&I+RUNUJ98D?AgfEnvn zNi~K16Z6KfviCAZKyEW0-G|vn2Z+7bU#sb@;EYY0p>kyT0XpJCqWwsONVh1GVv@u} zMcr8OedyTp_n2Fdp|t7+((Awga{{}s#bcbJbfX%ORL9h4b#-M13;$*`G$9l60Ld5J&csM; zD;Yb+N_UZq{G^F&IA)JT>t6A^lS7(=?ik4Rq48$$rk7$_5rfo~uF17fxdT_S zX~7OLYo1`GuJuLk2P@7DrmPBczuPel)-Y!>4#w`1N#Mfth=!MtHWGz(9w`p${%~3P zBRkj@$=x?p_wqKn*?~?wF;Im>a`RDfO&t=j3rLn+;_!I|Lo!oh3`(;430=Y;+Rx(E z7NMWx14zK`Q2`|P|9kbh5I=sI^u)i34DImWFE-P8W&04zZWSc8JgLe&50t!=z@tgt zdadD_k@U@e9~i_^-g>?ZgeEa=Jp_bA z7odBn@%Qk44$Ph_b~@M1p@6aX_A}#vX*0=C88PXhbx`$?VQz)e<=42cxMQ3C2IDc?})m-tWhYl@7A3fw50f2ZR3?>~x|;Ehg2t@l}tq2EhQ z`dqji`!(VeGQWJrq+-=M1@}*9vuYHrU|+B9J)m-9qQPVqV!SYG>ocJoR%8hj!fcSF zn~)5gz|@4GU?kdtGWS}d9>lEjhrN_wCR&y)5jC^z;%M0WgER0BRAQfXNDK@W0HupT z5~6j_fmE1hcW6P=DgPkjsiwKdzG2~SjgK0e^A*`<|3ZV+hn{qcVofn8#TbSTxydQk zt-$`-8-v_aPrOo)K@cC^?DmN_XztC?la!l~Bq7LUd;mAV+DO2w>|2U=qjcrK^|xmb zuWmrv4ThKPVQD3)=-os#hK4eE_|ULB(rYz*Dw3N9(dw05cF zlE4ObSh6U|xn>C74`$0)ElDx9CB%!M@xJ0sYRW=w$K|YID#?p@ zO&DeP1v0iA%?4a`9a4rcKfP)-%J|hZ3oSs9z-xS3qaYd(y$8BCe$zJ>uL!ena5W#r~gcuo^`kZhBjlSB(SgnWnm zh#W&@3SRHBn0i(!O5ia_A2;qOdkYtzseIJ|8$B&o6aijEZQP#HR{ifi|C{B$=W{#p zf_FosutAA4lxrO-xo^iggJuyx?1=Fr3g?N2C_}Y~Uag1&R;@ z0N7o_x9ujI*G6o=j43G?!SW7sB|*95GxQ?Dno9e13J2F6kPSj*qmW_Vv9m9n?1h-t zkV=>-Y<4TNDYKy)>4H(#=)ZtYxvihtzEjY%Gl0i^pLrWrJRkXPHXqY^%x&fCpe$tu zGw5gBoe7bnIMRX{STk7#;Ae44b2E|^yTPfL%^m*K8SG`+`%F*;=%t1KS1WmtLRGw4Hw#$|?~v9q-oHI$D9W*w+F7iE(pHf1PzDq?B^M?pk6d&KAp=CI_ja#Tvk@ zj#-L@*;eS93NWhLDGZov-jftdYj zgVfM|!sKm^5SqX=XhBm+yFr9zUoV<~k42a*AW`wp!S!0OG*&Bk?ifOfFhr#kf+Ej!yAEMqg)`t=_L@<6@-9ky{xGVI7QJJp

lVPeC+oqnf`(P9&Hefmw{cTzr*xaQ?bDzmhyb5BWEYmRTS(J9KhdOen$!>dWy^a@CXmmQk}!uWc^{!8-8l-X6L<+7 zk5KRq{jn>I6yTf3Ff>K4kMlLzHU(bln3^+`*Zwuko9UZGwP}k@vZt?@!!xjnv3mTI zr8>uF3gZ8E&W~=Kh2oQ9Z4h6B)WOxwi2-dGQh_f1@+(-{=l6cpjx>9mcDzhD*Y+NL za!9HEL+Y!r}=4~Ho5HIl!W`7x7`YqlH?vJ=J zm)pH>f_c%%ze+;4N4U!?SnG&v!wNJS{y4~@@%4onN`^=sN9)ZnJZ}AG#YBfiEecZ~kcicLDs_}(%OiAUvZuh}@!uIK0^ZOC+8#lg( zOp?Yl+UmD)zWg`Wf{fuWx`&llKu+KSG)JWtl}VZAk0u5vBP0LhvY+IQEo0-q2}bok zI-u{|FHg{clZMi9b2!-xI#_bg_Qjx0U%qH8b>*oThjdu*js3j6$)kzT3n)7Dg-s3M zN)WNaAcegPW_aAn1IRB(2Y>DA%xup4Xacxth z(+M6KQidttmM)(}UY4wVc)P)YO{5matZ}x^(|2XiAVP1khT~P-=2eVY@);TujS)6&;l7xa_cY5@Y@C0 ztRL74lFhJ)fsWB%#@7o75%-g8jdM@8CGaud{x;C1C3;XvSVSmOQM#cU*9U|la^6}$ zFRnh=+Q)dkT)%$eu%i8~8%v(HQH)v3v2!kQ^fqF@TDlgX-a%2m1d*+O_M&k_l|z>$ zaRgGrbuBo_WV-;H&b*K-=XFSp z_qnb$X+_BzDc|FXD6U)uu)@}NR`^Ie1*YL=jC5N}shTHa^Xcd^SZPg}we?Cr6@&R` zUekCcL0M7$n?LTXzxb_jKEA_#h=8e@J)GBXmwQ*;=06bv)w;LF{7xD7569%s!^KwO z+KQ70E0J1}JtQ0B4=%ilK-rkz0LK1$-RAji(}z=ZLuJTLoUip+z;qU3EVmI!AIPJD z0=Lc5&h(_;@E%(|weZ)H?uH>75;IKZBTIQpBI2HxB%F%LljSC)(xnuYd^;TL#c@tO zF$#xcwVLDH#_mGDqkH_Zn5LbXi%x6{*aRW@~@xgF?FTro{o72U6@9f5z@*W z=3KH?ifOocv;G-P)63GIfvjVQEs?FkaRtb2y0isu8txmA5{QpXxk(=yhxwYX`p@lS^4l;7D>6cE${hnQ}Q&~3K=9w;7Ho}U2Ow+S+pAz%|R2*-~v`-BMQ zZv^0SCu%cp@@xuoFw%0e6~BWGHFb_po96E4&4(KiSjmwF+#_tv-Q~Ac^ax+IBd`@^ z`SFS%ylR4POkSO8EHaPN?4p&qlFW+kaTZB7Pt^uFT;pXC|K#bs<0aLUSS{00>8xcC zeAw4=W&LHu$5+GN>#XN&3PZiqGY5SL9%`Ap-xInhOO~^KgzFxMAbg)3fhR9Pj(2PQzsZT$(EpiXz zHto`P3)-UMFGXhd9TZRF6@z5w5ocGh1*%Q7X2owk$WV?=c`^ts>E&RyvQ+i1-&_h? zr|RvRh+f@O#bzfFY`jhP>pxaeiUQB>EVnXSm2r5^zSLY)?1V9m5gLNh!*cGnJ_wE9 zu!F=7Z>t}+_;K&Gtnghui|CMh6KeG1%SwLLGT}ted@9v(L zqSDysBhy;BP71d+vdFpD4ww5>0+it5&S_GoYjc7+i0BP#`0jmdn8~Zt3-PW8n_XGG z907z%(obwfa6WjRNbCHS^D_-lY@F$HyADFfx{-v-)v25#@~NAzXJ%@Bu(u{2w|?Ah zai68+jQkUDbK8>JKI;+I_{-dZno;^sCZN26tV+$)`&)RA6y4?ekBdo)U;W8l3+uXl z7T>E9;R`v$v{GYdmIH@(HX#VPpt;CNCCCbLWU%g1O@8Y?YU z&u4ya_>{no#hgpmZ&%}tanm%;T_WY2Sas3Uezy7Mp%ywDdSz#b-QBp-j5U@bL#3_V z)}g~}6KP&hf7}-@x*2qicY@h$@7J46E%YWNTP3b_xaa;kDKqWOI6hWi_I>12&f6iy z=;ZF{MO*9s<%A+O&%t<7=o2wd3q7oHb@<8^)gpfLi{PBMLWGHJLSYL=oz3Z#4xaM3 z$thM9q@e#vb1107>YPJU16+b^)D(OseduIWL53L+zRrAFIUx# zwi@RN&lhz_XhH|uY`^5PD5!m z_JgLT3ey5+Ov4KeHPVjrd#*;M;vVmxh#lwidG@%1=2>S|D90{~Zf`dC|IXJIx$MnR zeK}3yZaV7C6KXxTRC?31o;kaM7rYwfHqzSFEm`JW<^50=|GQyZIYhq8rcB=WVE*JO z$)?6fbT-P3R^6P?=;rNtM^{x6W+;)bTcoT1NLA zQFlkx0NVTo)@8_fURga4l_j;sK9wzI5~b^r_gM6ca`o7sV{Ld|ffu3%rZA^GmB0dS zwLGN{8yJQ@;r0}m_;Uu^ouyp44lxNxE zOkm6eVV&MRS{uovyFY)$kp7H&Q)9XWYaBh)AtONo4&og1Yz2?qIk1@urD&04XJZ@_ z!O|YAV;Q`4$kJTSmc?$qIc=h1z0*iCrsOYFPQcS*AH51`{?|RHJj8k$vaxUK^};|P zzB7)xf&H*^mX5uGf{ilN6c!Uk{st}EC8#tsFEpjhHYQs|J_g=Y$7kSj%F*yBw_!N% z1zI}JL-`Afg4n+7ly|qNH&0$2-nH~%`+I74nVQV-8*F^nbZ8SY%dSDA+#DfMzPnn6 zIkCKLe@XMd_5zq5i(om-0+@Z_s9w@E{O@bZd}IB=qUBMK!JfRSId;dEnkKLu>uf~O zvND^M%^5>^o@EGp*H34vdTFe5E$z-C-!S$1Nrz&&D>kb(&0C?34c{WVG;jA+7*SKD zWOqE`y|a7?zic(>=)~Q zLbyC1EPRAMK=$w+D6;cm8|%VY*>)wa>>{lZ(WUC17O)Jd(|F;Qk=3Ca&+b&@Z#-?H zz1vhYvK3V-H|{KOtz7>!RYv2? zT&#SD6$7D#f z>YFUOzKTDmu_B%uu>Dt3lig$*pCZ1-M=Db(G(KAK!2>Bu(cTIF3oW?vMF+P0=Fhp5 z=SD_YD&e5F)m!ER>$B5?6JL6qpwrF|jyl27~&n56-uxZjuWXZRfyD&cHI(faI{otaQo{!j> zf%h_8n_Y27QbpA_zl6se7HTklDplXt_%~?7JLa|MJvGH3ckK54>=@HvJ0-hZM_{ep z^=GLE?6JweZC7cPa%g^yn3Hz@VEY9SnUWcfbm&~b5 zUA9qbh9Jz#?O&EIT@poT371(A8claCQA_)YK>0`f3%ul*Vi0FK1Y!hTU+i%Al+Gqk8hSc zx$=8nu-RKh&<#cbaHD%4-%ihB)`sjF_kQAh_PzY=9Sxa(Lm6k>@w^q8mBr{#WaAC?XT7hb zD~mmQcX=TH(0?0;0nhioPV&}T81`;o5+Yc}sL?4%w2DcYLYJa-8zO#kIex3;jHPZ0 zXKzM&B zCQ@C2?#z1Rn1*X(OHX5WqO9IYk7u=nvR_kNt`$6ddFu{sUX)F2g-0c&d#p(Er~|vB{);l4HpEA~{IZiTkm-;-<5iaBNqqj& z+j^`z*I^VOpGs18y=mWaIL`Md2XQ*aN((K0j_M#j-H>*siInbQcYHj^NJo6a(vdC5 z4*VG#rDPyQe2l{6o9e*+-wk5GnAjZ+`yak|M0{+L{uP+R|8L;``3C9>0;x>N1^K&F zxBj~Ua+8K_>)9<(M3)M+1E=@XrkBL_7+8NpAOCOdSq*3DM!QeedMqq%*egWs?fIFR zo5zSi{(G2J`b&WQhE9CJ^Nk6Ma(KP&qJ7{Th0|bmZ>`7VO`BRVaqH^w;{GC|tRwtO z;*M6$&+XHa5Hr3{6_~9~xobchMQDAa7t$`n0-G(Tp7&ze??3yKB5IYClVdbeWE6C^ z(_LcM96V001?wFgl!*5}9OKti!TmQis@G;CR3BYOF|uAW*~EW6WBq*XR|!1m>D?%9rCh7`-BrG`bl5=MWx%SnWf)m zfAnC^>R}s|Vf|d>m&IE5Ki{a#i_Lb|N+15Lmua;N79k0k_GhDIlMuLZOVrW*sC@i^3zr%zw2jLKk6Xprce-gMiM7-MSYZPy#hq^6VobY+g+TghHH(|}9D^2uBM^sv~kt57sQpyS% zOvX0Hc$FA^$dqXEkA|lQvNlx$m&Y}K{=~Kt7>dqer??MS)$@Z&ExDzAo?O&+Twyud z9x)-t5sE-OOVf0`lr^UuUQT@yMB~l49f=kIoue4AnXfdZ9%4@1w?P*Eb?DIRkZ#Z{ z=mVyed2Z-TVuigCT9AF{M{Q~eEh0}jC)I?Kuh4RXxEWNL=f=HA#@P5NiB8r9oSgXJ zJ?T@GfWZhmR`%qy?rbGr#q+%pAbyuJ>U}em{nuJr&sK|1-HBVdcmTWotquY0gy+V% z6=6BBU#R&ts8uP>7^Yyle{_ACB3Q6mu!t+>OCY?j14IH8Ex>Ve;>eEJ7qz}NU#xdS zz}8^Z)4uVlr?ex*CeBCObJ{1(g$8N=&JSmOJHR^3B~9o8kO)Ru2X;sTYuaF34QMKg zQb1b3Y;6mewB@g2`At90`5*mV-Eb?w9G0$a-kn#b3fv$e5b@w&N;GGz?!7q9&U9(V zXA{*TMp^RoHbtJ(4gKlTFVpOTqZa$p%!>>;mIkuwhHk#owU9G_wlF8^VXfo-;R@f*7*Mt+N#lDa zMg%tGC)XxN^b*p_+!pK24}_Ma?4$9PFclza6N?xm{p4U^k&l?hro49+a>Dw5lyNnf zV3+q1xbSO<(U=CgCpO;jUQDJq#MirqwO6y&>LU@>It)w7+elV`))K#`NZMZ@2br+w z5Dgte3Du9(oJtT#96&sh2h2y!quJYkOHIBYd}sJmCsW--gkIW0^|qTX(1mO8*_afR z$IK8Jfh~pjflXoUJ7=0y`ZJY5>9ffgB5sPXTE3iwCP|88Ok24m^f6r#@whU_92$A=PXGqZJ+3%@9<%u3 z?m^m)<#X}Bis#xLMb{L%*uT!|+rFp-P?NM*TNAi-<#!p^J0YW6<>rTRRg(2s;}eCU zv`8Df7O81(nRi5raaw30$X;q$Ha`=xMLfqtkraaj{Et{j)VUq>?}AO7mv^PmGC7SUiI+-Pr3A*szCJ<`D52` zep}0c6v#!(9^~4iY#5rkxA~@^Ry4SM$iD~_8M+6CJI4yeo16 zqtV&4bR?OiUQ~i4gl2-=-e4M4HC1$Nf%~10C}T|zJUxKaJg25pNxLj40(3zMT!KFz zbj0y%Dqn-!?ulJnIYrQKpUtAX*&X}aG+_q+J|?lY4Jgch9#TJbzaPB>l(xEDzhOOP z$1XY^)xa-H3kwTdS&E1c5)Z2cut&eXJ*K#LlSQh!-E_nI>)|flb+Wp^$*jPb{-D#P zpi6lwyQ@k|y*Rq9WgX=2JEyr6_bAj_xmOm?&+fir&)dByBUOdJYIR}!p|W!9fVbFM zrok@a$xbD3;&|4B?74Z;O)_Ox);DT@A6*R@C*VVp0bG%G?Aji+vX_pyID@1Neg8iH zU9@7MD9aO~rj{c!sQ9v@qt*HWjO#j^ddI`Z4=x~0(Q9$NkjM8V#%E&%BWA2j=a_=;QSDC=#wiy zI3H}~e2qqDi$dNZ`i6D>UAuFHBx z*Izfw8#k5LewXzDcuT!;$(rgikgK|NOTK-Wfms{rO>p3IkZLeP22-R3m)DKfe_X6jXj} z3m4U}$(*7?RT{hiv$c~(Huj%>ZW3xJSF zr9SKhND7!(D!_tFk`hx=I(rgt)Ss-CeiULO0a%exMa#*p9A*FcZ?uvHUb8LT%yYl8 zpbKE|vE&!-BT(R%Pl!?*au3<<2DB=DXnZNCzW7r&HQ^zi8(hzeW!2po1k);jbU^lj z5xcfn&Pr`fUvNFmm>KNVIZwoMuTD58SM{V1dnG@M8{PWQkmZPovEdatPDJD;l zlR5lb=#_Q*9ecdHEaN$)xHeXC8E{q32j`uQI-zvKq01{!Q2^;i>{iCH^*ohIAG z?)yd5KS$N5_bH%oyUu(c{9h@2?6oWfucZ_#JDNrl=xu1hEQ;G6>b^k_TvcdS@*qYa zyEBGu7f2gZpalQ>_fOZzXfax}{JL7$?BX5E3Ol2hl=LLywH{nCtm5+>OeS;zPhafpjhK85*s}9%+^9YCXuZ5pv9b@7BYq91a4+`aWIbp;O8AOe zIi{Sq@uS_pCuEyzL(1Ww*U>oS2|L?O=6J&&~G+KBbkxDe8IG#?|m^7A8=TJT;z5T4oL z!AE~8+(t2-Y4+h6_6G-(Uc%zy#NFM)!^679#*_|!s-8|Ex_Lg`a_o+O`t23XK(p2_ zs=?iGUa~3DY7%QwNfzl|T}n?fS5h_Yg<`;oS{p9VIy&_i@&>N zm5H~!p~iUgs_HGs80-J!eh*Tjg_6W=YPUBVw@AHv_}{!uOaxcD8yg#kKSc7X1xo?Q z8@#sy!d|euxVTJ(9Zr+b@v5fZNKmbsdqu1cqrK^B=9bD}dUV`i5P=HGC*O9uIui=JX?I7$a%hfr*m z=uqu3nOZj+&V}@9IgY%lestYT*vR$Qr$qZ&vqJqxeL%2_T{?sLB_$=z208-nXh^n+ z+uJ>OQ7Qfw9;gnAzm^EkXOU9+1QDP$m5lGg?P%V}hbI$;+5~Tzura;?dNFqg*zWxj zv%)h@G%!E!#S|-_y`MVf@9(}QUE~e;$RoPaUnT7V39A37Yg|X?lME!@2k);v>N{K;jp5gdB<|@y+98C+ z*CGv&I#2=d5&d{ueG&5g;Q4*`SGwg4=DXFle2{H-_+Vi{GV74dCACyN&ta)3FQCs&9~ zeGna`>H0dP-WRl-(`{~|rVYgT`0d%yUHVe13Wi1#K(Nm^e~+3^CV7>!Dyr*sz3lDn zRh+bRR1c86$6Nr-t@N0bS3h200<7Qp@c*+=Q1I&nidI5?vOlR)Z^QbAQ9B~ilKPgK2G zx8=9_z(JNUXOKAR21*6GVC|srg)UtJqGjQ~72YH^fO11=;{w6QhOjLFP)e{*=QTi1 z=pIs7m_Bsyn|S&GrT05@?EO)DlrJh0C#ormw*()jVI*b}0s-Hiy-bcKcO1%9I|Bfe zWMOe}r&l;{8>kX&H{YeEcKvbA8|ag4HS9|jr~S(X2w1H*3>5hxhnsZVif=!E{_I^G zd=I7px(4pt_YEY&Qn8m|@`4tfqI=jNj1T0)N-^=f;afTmtUrulbum3M*ikcQiacGI z7wwrCL>%dfvpLmM}2*|=}7X;()}*#N;R z3@|*P#`)(xok~zzVxI}!H6n`fU^EMWf*|8>g6uUf0F~p6l)%;D4)08AfLcsPH%Ks< z1VK@XK!e&tGG)@7yYcs#MXT{<_4SY>aynAin4aYPuo#pN?m1YAQ}N0(R4L-m8%+7$ zJ&c9fsQ4*I8gY+0((EVI4WRdl8n<`v-f7*vOPZ090q%^I%e5Gpc50W(UiA1XQE;0tBy+&+46v**sBELX9Ezw7?m3Pe4zRgSeA(_3@T& zyBm-Zg(&XgO)Om&&6uJW{vgruauOO%taFk!;e0*JqINc;O^Ow@0N84m4=K#6k^QN;S zz4mV5o61aie%|goTCm=Y;MUkjn3E82e5=W4)Bf6{zBf)tPdOOP$7~Esx&h>!%^a8f-nEimEdG=$goV{aR6~O z%)!)EB`Ex4wU}sTG<8%|6tNQZNi@1gIIoD&FmxNqAJ{aJ5z9t2#zKgFcWJ;8_#qb5 zuo`h`*5lmxAX)X+_IC@c_}6X1nI#SYEYEmysft@fJYI z%X?1sD9nbo128#Pub~qcjL;$jX_j?V^iIN^PIHqT32I2+`wI3u3)NT9l zV?lthQ8-N2dZ?alw?FC|Ewf2`+Lwwr+vz4FY6J$Azfv=S1o}*Q5B-n#;@DLKr4FZj zuL5;U{BN~0*#IgHX^3Y9*XzP&*%Ha8CU{(M<~UuvMLx}`#Hbw-Jw?h5Qe~i{j3l9L z3j2t1n%SL%F0jFJ76d7WNP2N%4zk`Dv@E$bDUY|o7b-Y`hixjEU{6|#RD#@w!Dc1@ zCMW=-{UE|Z)3r2^6?DEo2KodmWd#UE^aFWeVc}MHOH0-_JkQxTCTjZZmzsf;=+Bgk zprd3a~2$Q?D z0Tc%VK!W9Ke9?#LP~}woi0|GNFCihJYbNdmcn=w-3ABL~hYZbj2|}l7Pi=|unn|RC z7ncW{8a?0FS_ns{?N_RL9`iy(*%$;Th3&BVCa-b6lM;tBxA2>`gYN>P90t zW4}Wx`JGQKO0pk1?o3Llum@mmUX{p2i!1CwF@x0`n!>m zJ^QJ#jLcU%k!TXfqwTqF&k#5e$;6O0%vH?*I6t9F8~~ivkzyIdyw@dF7|@Myzm?fA z;Ujel4veSI7cLyVO0vAXLJNQ&w$<@XLFjt3j!&u3SoR^bqjuBtSAV})-UpQhktpK2 z(4Vi)yHmbHKPM)>b9ptjsU1$W&$Yivpq04Nv`Ov|0R2mqN+J_1H9)}0>N!8HuF+A^ zAiFRd?unI?G?Wqg^V>~>dx9FCff(r48$^(tT}!{Q8e6?3tCx1*Fze*x)GZQCcTXoJ zC1omPtNHW8uaVj@toI*2?5!EI%Q|$wcQwp*n8AVBoBD`U6Y8E=eP{R(6(&$8EwSoe zg+7Waut7Qt%8?G>6dnAb+(~;wxM*3&9foaXJ<1RFhebKo>B)o&d^gjo;lo!PG`?^J zif^2j6eNJS1j{Ilh1E=5ot%DiMWZifwA5R5{w0-M)KX(bzTO$;b`adYB_#!6c-m-c z_7KXQTuqMUhx}95PC`s)fD!prVH@jeS3=c?FLA5y#0!HCl*Ax2Yu{)3`}>v6lR0AV zeyXS_E-z<50*uYBKK%S7kz<-`LIc|I2=84U1etf}8cR%SNpW^J>RSE`g0h`3EIrfE zPkP$xpYxJdMn;s~S*k(EneyYg^yr|U!pomFJTmNnv4r2ru&W*NG_alhN>Y8~Q#G}U z|JL7s59g=lD9Oyocz7v#LPBU*FDDeH*{yAP zq-SL0m_@7Oh)c`j;^ODc^guwF>;I%;54&Ubx}YTJU0>u+ z8OSB*&&W#F?8Y?*GroQ|CnrnO@aO_6$YTZ5yyA#ay{Y(&j6bJ?B6)4Z!?!BW|2hDP zFJ@C4TU1m;II*#@A^r=tpri|E5{Ur4o?GDc)vJQ^$$NM7(h5D64LDQ7%TxV|3Q7gy zHnA-QW_oG*nUE5LlyQMD&0$$RzQN&ur~*#Cmnzj(`kA@)RC*r;b8=>ekKOc~1D=Kf zV;p4Gru?|G+&ULUA)IPUHNLZct}4IvR6g{yqa}J*|IuHkR0-SfqgM7tzP>WVN-&tM zL|jsijHDzkI!iRHd^kk*Arq1;B+jpIYvV2P2Dk_kHZmOnTTL_Bzb+1H-jds*cnXKe zf;z~&1c_b%X^7s;17&rd$qWq=Co(rwqd+q|IA-Mdg5{aPn5~!#3@Vng7a&0K=Ys1f zv*6)sh^i;aAVn@Y2GuBN%LiU>_;M8(cXsqVZ0=G%LL^||-1>J*^P8-jDjQ;y^ooR6 zE#So)SpN$)5m8YBrZnm6JHT6p8Mj{(zoo}_1)`@w)^}sxOCXNa3EEMX#7i2^0;Zj$ zGB~-l?Fapwwg-`thRo=lrjq56sgs6EK$f1uzY0KVmrs;N=(KpYmpQci!>@ry1j9(M za*&qn+B8y)1T==hHN3VCy`)mgL0K_du$$E+1~p-AdA;ZVs-L6w;1MdDLIV773WcwSx`aJjy%S(U!Q%L zpl|Fszzn3|-QqL;q4>Hd)yLx&wV{l)3VpQ(TcSg{Kaww9e(=e|||B`o5l)5u~f*v0oiGn}%(lv04) zyFv2$iiDXAvT-==IsfV-hp2*~h598v$cOr`Q7V*dE;epm%K<8T%_E2=0Gzy-!;sRx zONRI2I7eqEdzSc<0?gbgXDHMeLRBEY_twh+P`#4B;+5#<1jw`GFY<~a#&x&=Oj>~<*gs|EtX#nD0@|nv4 zwt3-;d<38=#WG1dvF$-nBp^sw;6Hi(WotyJdw6&#o!W=)Xj@j;g)s*F(ipaSmB$2D zISG+;a(ccd(m?XDtSoL~Vj}ze_$0cY1?PaTyqG})m>L`{fm8b)Q?S?*J|qgcr+y?^v=QTSvWXOB&qX zCh7Nq&r2Ez)C1#50+xD7)#;e?fTw|KU=T@w&_?oh(09|%kycrK3Yba~h&(LmmUOAp zfv=DhbUPn-K+=c0@=Gu?Gs~tZG8lXI>|y1~l>iJLJUH*zH{X2o*cpud`}Z?u%or}X z-~w*G`DOsdj~~yYk3QPfTPfd&h?fB*Ee7rdega$v?1+e)({alrozsQ+mZaA%PQU+S z`uQ_JT|_KT*IEaBgQQs6-;>lRX~>*N(r}UjW^2;#3xS0Z@l-nGVM%KwJq0uY6G%$B zzYcu2D?hxMnOQDH5nxnRRk32l3IHB^EdP;%F=NIsW5x_1d5h=Pty>v8cI(Jc`Xl2!wsCAsyoETj9*hqS!uNr*xucJnwgn(rYO!} zydR|5h20UcpX64@j2=!^2i!msWUNZtegMpCKc69Kkfe!e-;aR5$}-Op;LMEgD}aBJ zq;!r7;3}Z_pV>7tvy-kUG8maIzWCz2=O^;LBclhtE@=la3OEFO0U#o_NZKIj`@lY+ zjO6K!PDMnEq)ot^>A_DT;t5HkfLA2FKypa)KhsOT3)D&a60iw45D~M0XMv~Ez~_e~ zw`}ePej%w57z50Vh&_@ze{9Cg%&Z$u`Eu=DbV9jyNppaez^lN(h&Yt(LP=#2aZu6{ z;D(5Jud~I{OhrV*J002ulx4eBB54RPAR^w*Xe$ARM#O;*ZDnbu#mvmCPZV7SqfqMW z>#3`&17PRQomZ}3zkXy!_lEWl5pfteoNJzlIGFKuq@-`<8C#S7n>EdnzWXBEISeAA zB}>~8jz4qJ-sa%K%*^_fGZ# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.14e-05 + + + + 2.27e-05 + + + + 3.41e-05 + + + + 4.55e-05 + + + + 5.68e-05 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + binary_heap + + + + + + + + + rc_binomial_heap + + + + + + + + + thin_heap + + + + + + + + + binomial_heap + + + + + + + + + n_pq_deque + + + + + + pairing_heap + + + + + + + + + n_pq_vector + + + + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1217db04d626f252590821aa7ca0cfc65af59214 GIT binary patch literal 54253 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 V#ocPGtCgbEj*f2Ky8raS(LZ|vekK3_ literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..09bd6b013a6253569ae2f5f3a60587ab6ca888d1 GIT binary patch literal 36629 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 KMNUMnLSTYX3gMFg literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.svg b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.svg new file mode 100644 index 000000000000..169e2b434d3f --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_priority_queue_text_push_timing_test_local.svg @@ -0,0 +1,825 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.13e-05 + + + + 2.27e-05 + + + + 3.40e-05 + + + + 4.53e-05 + + + + 5.67e-05 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + binary_heap + + + + + + + + + rc_binomial_heap + + + + + + + + + n_pq_deque + + + + + + + + + binomial_heap + + + + + + + + + n_pq_vector + + + + + + + + + thin_heap + + + + + + pairing_heap + + + + + + + + + diff --git a/libstdc++-v3/doc/html/ext/pb_ds/rationale_null_node_updator.png b/libstdc++-v3/doc/xml/images/pbds_rationale_null_node_updator.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/rationale_null_node_updator.png rename to libstdc++-v3/doc/xml/images/pbds_rationale_null_node_updator.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/resize_policy_cd.png b/libstdc++-v3/doc/xml/images/pbds_resize_policy_cd.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/resize_policy_cd.png rename to libstdc++-v3/doc/xml/images/pbds_resize_policy_cd.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/restoring_node_invariants.png b/libstdc++-v3/doc/xml/images/pbds_restoring_node_invariants.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/restoring_node_invariants.png rename to libstdc++-v3/doc/xml/images/pbds_restoring_node_invariants.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/simple_list.png b/libstdc++-v3/doc/xml/images/pbds_simple_list.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/simple_list.png rename to libstdc++-v3/doc/xml/images/pbds_simple_list.png diff --git a/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.pdf b/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7f1614766a059c3aa4b869b4611ae6d2f94dfa22 GIT binary patch literal 31897 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

)(V}iK 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.png b/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.png new file mode 100644 index 0000000000000000000000000000000000000000..1909c1b3c128f53a706538ea4527b38201384710 GIT binary patch literal 41835 zc-qW+1yfs3*e~uD+$DI?;%>zX#R+c3i%W4Y1%g|F7B5n0ph)rJ?q1xjxVzuO|Gn?b z{Ro$VNjQ__>^}07-A$yrssc6!IR+dY9QIp9Sxq=N1X4IS_!=}6;7a3BY%}nHbnE4pLzL%mto291}>6)l+*jD%E&5oR^mu=LaWycZ>Hf zR-DdmHW^1^$ag$=9=&q+up#YD-zc<(Kk;4DyYMRCW=g&40{~L8@5H`ps zwz`D|og%Dff>Tj5~_lj8~Av)!fsf5aGNI= z%~Wp+@!9)X6lmJ)>tW0vREm8~%7oHs#{FO)85ehC{9Pt&c%vtlEoE^rUm?DSQrOLM zpinvO6VE&+I-VegIy8dx`DoQ^e>g+5{GH6X_0U(>-BHQs1IMngH4_FyUvAkh3UA>^ z*2@sH)#}G>N|*?P#V;OGtZVSo(^E1rr_qgPcNEc5a{3GmQW9W4UHbDEOoLUt4hc%p zz=B5Dj?IO{^#u%_^gEF`l{r`-;>yLlV%!5WN1sgbnx1N(7p-TCGBA9$nV01Cy60Lj zRlZcAz?utoVCBYtBkP7(6)YKS-6jh2Rg#s5?e($qkC<^=D$6n`45o5;m6!Hdvo)<-VO zz`Xixpi>*t$xtkW zfzG1D7WV)eN`-cV!jmn<)A^z@!Up`RR&EB&q{_JjV-qo*BIG@{B{o=dzPHy#`Tpuq zOM7zdxb=CY!LmO|e5TCUub**-hU-?N2{f=CE+{Yn{(?M!uq*{1d?q?@zF%tEaNKgg zPPy`QdBx7vKzVk8J0jEmnzBQxft-zW@j#MfHN8q*5x2&E=E-Hb$p>*Dm1BPyNH7rv zg@b=;(*w-_cU#mr-j#(#J7M&aD#YCc`6Uqgk9(N71Tlp*#dk_cNypU@df1d>Y< z?uO7N>}MW+EYk{=b0;D4JeWOc#TN9#-4kD*)#_#1M^n-G@m8J=d~`Tpv!DUw^b<|s z&HDfa0~nH`s@N_L7QE7Y(Q`=bdlB^+t8eWnZ+Hp}fB{mBkrhW@<``E_(>fytAxIYQ zg?yx7nt<;shne;)v}i&Wx)!VfEJz3wYM~6eS&JZlJG@ZqxG-F|66n{KE$(N|rl}O{ zoe(|YJu4U5iAYzu3|*Jf93%lr(c(ezp&5_jNJ-JOhxyM!OgcX`w}#^-pS)#~nN-A_ zS6Wo6tcPnI=6)Ayh&U}360+%(#x*wH=WmbZ|I(~66Nph>guA@nR+C%Orj&xq~}&Dv2%%1 zV^1RK`vvPy?NIqA#u!o;jM%0$C3>V*6B z-=>wIXYt<(@zif{D22Egs~iU72w!OzZ+u24XtACAq0$0OezHhy^?D`9RJ1wo-H*4N zPMYN3vDAC0)%8&*tPU2AylI`JBciGFcmm#Lx@QXceERn$-Be^N$WHkHKm3j2;%ar= z*urk*>zd7hl#mc{bgL`BV68}+W|cVGOpF+8!_&Bz`Nj;YNNvVhp$$p1`hh(M z0=bT+ajnev(gca|6!t!x_R?HOgooE^PL+^-$O!F;rEoT^b6VOEcH2~R33~SqYdAx2 z<JZQ4IpFqV;gz4kX*!$;+LS_3$ik7h|HXfa*gwQ9J zfQpH5q8n%dPXce?FVQV`N~Bl7A!gTeaa^o-HGXn~eS5%A&id%-{P^C4cp7mVxG=AGfShAO8cg)eEHs6W(jfIbw# zB>xQ5dv9~X#UOCb<<<>1=qDkm`8*|RZ+)X%sLm^ z`9I-q9B6t~l@FUTD=O^7{+&bm~)UW9A3bwNWFyf1M}R~#u4Kmn^| zi&-rPJwK`h++DEVUree6wF1H`?x*l_LZD@nSTMyKbrWPagz+{pbJAa-JVoCOm# z#Z6sIu=0xwOcjEveYr98n^_bLzP>(~J5T$@Ym=(xFjABgNX`RjEgTY)){4+iglohm z-s+!8n_TkIYQ4+7WIt{2_X|Za+(eL;N%-va-_H!2lJp+0l-lzygey@jCVl89k&)Sr zRH8*jS5*cT0L&cNCA$98pvib~%(^&pMh-QS~n`}uhp zxA->%DcPHl8pXd$;+Z9lnp){c9Hi$b!Ic;b^x}a(Mz;J!hzgrp&^ew|Q5H;zZLKCJ zCYIly{+0G{Hpn$<6&r?PGx3UB1inGr!=&l(JotJdSvW~a^bWD5jS-?U2E?i=#0o~H zo6wW3nUU8f%ACi`MlXZ+^Tal6+%(_}^4v=uz;5&Kn8s!L!)f#nh?!axK0z=xEpk&8 zxod28AVP*kpy)8p(djdOJ4C@XUn%7k{|ki3^lFZ*cSo1EJU`uYW%-`}Rn2AJ)23Nd zjj|vsWv=Ri!jFI?Yc$Xqm_sf${AH}t1*)YAGEI!+#Ge?0kIv3Q~{egt1t2rVuHn!j}a>z2lQPbpEaMfF`o z07j>c8iiPI>Ryy%Bgur7g|}TVxa_?#3v~OQwGP%dx(`4s{ewrfYbqyeW!i8czgA`L z@f%x2xe0_|u;gSVEuuuqHm^3b?JWY51+4~y8oQE(I_I1`$xWM)%>Ekh)AeqEx8E4M zJ;J%tOEO00VI6rdlu#P9`+gD}2xVz_@VcowZ_KK1?Bx(1yPB#kWv`l83x%%7DOTLE z3Spw!z{BghGJgp|n*#arHeZhyYvgwWV#Zrl)^-Xu_1kfwRy^Y%V0$fu;gwh_cvoJ# z?m+FrE7kM>+~rs4l@fWZmU(tiHA<{>uo_9gY(gp-=wC8u!AY|&(j8fgi6l5UXoefd z{+_1$kbcc}y3r|apM^x76OIIQ@7G)6HvWwIe69Oj@yET=TxYoO_I%s)r74w})v}GU z^6W{UlKU8bLSqx#-1XWU1%r2Gd9$w@!kepoU!kk*<9~0~-0dtjeup-tK~48Q@ey}G z;&U^ub6|bPzz4P*cHOc}iZNxrVdT4ohc)&qT&3XK@x$#Sq@< zOktPta`o@)>P|IZUB8`fuRzV^gfkgpu`(=D%@S5lW%v1|{Zq4lBw#I!&&R;;Otjb=1nn5gxA*ql3P&DjT!k(>Jyg@ebK zB%Gy`K*s{ED((4hzx+_kETTQwp8?`Z59i&}!kTIOgD73Ec(|mz$&MhAFhJP;&&ZEts{u{>Q~?c#_(n=@YtFMAqcmzs8aspM?Mb2 z+Qr|1f0bvgoJ$ZcV2kcDanFOt`=0I*W}I|twuwv*FCOd;yR$}_ODJ;R9trZlKdehh zPOk%0vwbKkZs6%`rA4LMHy#BymlV{~wgnTzHj2z9ynbDgY78QDX%=agBG4ziPf#YP zA(H4G*56Wn_kX{w22Hq(|5Pvj@rbq_PJeU;fJtT2>$)r-u=h)VCU!?bMI9a5vG14d zSH@bd@7DKp^_CgHR}D$)Fg0KP;^RfNa8PLNP+Z-9YV#VSzKd$j1%3sLS8urVfbeG$w#&EC5SPvOV-o>$=qlI+P$_`RN8RKST#k_>;R)j-FLs)8(CE zKWAFt^^#Xm>-DnV(x=eSp!)qLtwN;N+MU+dN_w92xFSnKHH+VB!z zNnw@-vet#Dw24f`#AaTdpYIE~ZT5}60K)3sEg(rhOceGXWnFre#cqdr2NxLM3an;| z%WhL~7n!T3V{_9bL4ByaREq(D*9^ z@t$VP*v-JG?mySq_UBOqNFIxBO%S9JZ?q#XGxD(++De}F(c3#O{i*r4GoJsvYi9lC zF5&cyw8J*{=O_+MV9w>eah6RMIxcPzz|19q_m_3G@7e^jb@N2L?h1w6F@*^CQ-T8) z&4QG~JR>#AO`3fGQ9uXS-$t8~-%o~bNAde9+0&e3U@ffR!jKTy{9p>okFnIsHtN;4 zrI$yNA^duenmjcXYJh#wDL1HrS;;tErroy=&D^%sDy?=gq6|`z>Iw;o;hAK*ZY4X1 zVGw2SE;gK}u>r79V>6m9T_$qe3IZiEXM3;D0HKrocXTxJ5<);J?*S32Q+?VQl9p|H zr=HOc>0|gHC1kOXZEtwpJBnW}a-x)@+tI>)vZaA>%8lNu{Q3KV!ffxWH`b&`RTH6%0H9r1@|rUSvWi)eXpHpY+2X@r3EG|ZL^dU^%uY?=)H znI>Hg2!}znZ8-qGW#mFGW|8oSD47qJGp44)c8!^@*E?2~E{vBj{<1BVUVO<3eEO-j z&uq9-Bi0zu>!}m|i(T;pb&azKO)ndW%LM%95Q06pV^2CEpN@p0j;mOFaS$p+O?Wp}kWOK}Lx?z&B|`<- zjXuN_?#ete4oePl*_TM~49Mooi3ay=hn2wlL!L?Hjb(X=^TXry%4jjGxbqDzU~PTu zhST|@1+;$dRIFw`St>O@j=w{!29I> zxHU+7<1& zI7n-GacLwd&AP(q3JduAs+g`iCa!vH_=5$5g{3?}q--HG z!CNpGm0#%#&}Wv z7{F!r`El^#NAoY=)O=Vg+%rKUBVfp#RxDR5*#(BpxJi$MW9qpJQmZjyeo485Zi!32 zrsRvc!b2W=`F|AB)ck2~2~Rmh(8({mmffV=_5o|^$v&ycGDRsWfZpzJo4>61hKBHA zU_okr?(ItnLb6cIo;3q|Q+gT@AdiL+!TFUH6cgkhP{sFfpj|Wv#3%&b;Qh8zcAlA+ z)#C6VWL9EQFpr`vxu~;N(UFhmxa+ipU>!7uC=ttfDceAspKu3#5igNdPnpR>+anK# z0^1{}E)LpP1feWYz+sRxS@A3xQ?BFC#?3_8MVc zH7s18Q(XUNxOCVBLI7`?+5U!VBeYc1NlPM9!W|(#RG3qFT5x1p+9g;1r3K3cd+H63 zuOHi^FKVm!c}f1aDF3uyAff_+#KRfG$rfO#V+%ncJYpR+|Ex%{L*}lAlJsN?#JCZ> z2cD|9Qe6zbe_LrA{%@Losnyf%aOTS4IjWxKSM(S~KX$L+rqU{SR7HO75rJ;W>(M9? zQlW~H5bOaA3+$IA|N0rlw6^+)TXbbUZ}|6m;@Y0@9NL$Epf~V>l#JbSmNaANH!RTy z{4X!g`E}=(Cc>kZU!Kyy$muNCb|1zkNxO+GsT@ms+TI7(FY!ySrq5PUTB|vtR zFztEh6S5a9se|}h`w|!AGa6QFC6Eye2m1CIvUL6-*J?W5@@24}i}kDi)yGTR?Zh&v zq;I00MfaIWN=nA`^+^;=g`P5;NcvS+W>SII3t_sGj`~dbu$)LmaWnE0ifOk<)>TP*}UjWXtl58G_ko zoE}pL`^A#;r@olDTG-yd;f(T`VhsyBodv6KvTytVFHkgJP8$|MAb?%-y;_T)aY`fd zyt%&*s&L)tY2^>|KOYvPgOunTrcLFn1o_nG;q<(f3g!W8%0sRTuRnv=V?|hYYkr|g97&f7r6yzJ6rL783>6-xqcN>qvzpX#*_g0 zlQC3LH8&V$(r;%7H;~4)QViV6H0a^9w-8=Fp4u4yt44#H6%Liig@wGauB9pt8Y}i| zD>!Gtx|Ix-><7DhKtX_Qltxd1>LFQb^g5;m&B0)eyaPIK)(eJ}?JfR8UvMv-q?G8iKg<>TJFRq&O(9s6plry>*bkxmJTlK``d|0dp;v_-oM-8zW z%atZ%Q4gkj6W-O(GyThuUeIy=A|FJeA5kEOIqT=q1cNy@EEhDEr4V?-4JxmTEgqE9 zwJpFzc=8=@1=WG1b4fhiY>Z%&^YsxB5*B2Mc+58eGCoz_a*>YJb!{k>!?3LNd_>gU z>v-95+V}XiYyokF0>mOID-(UTyL&(`nwbCc?99#YYR=}m+_>V$!z5?7dIs6vnk~hup<8=*&Masn! z3R>^0a3Vx8gzDOORe3Xp_}13vZLK2J!--t!P_Z~iX=&+sfW(IZ7Uc$qeu>6J1>_j| z@j~74Vzb|MOETFN*@W8GK#HmDbm`n@)4Lrd+sdQjrz<@Nmjpxa!(DUit*CUIRp2llTaKZc(F;e2$ zr2G)shX{z|rADWvKOKW>PX&bU%RQK|5EFr64pG6@sxz>|GqCaX}(*0v1nsRXjoX);&(gw z&xmf;HCg(?a6UWVBZx&1M6?EgUVQdBX-8GCs(GAqgzLs6WEo>CIdq{0yhz|ve!PT8 z5zP1IWUbhs#*PDV@%IVufIeV~Yuek}Uz5i}p=gfddEFAZ-aQMiMNwneO^Ve+%bIZXA7RjEDKNx{q0rB?_swyi1(4o~#gt-ND1A~A zk*KmOR7#1;6mU!j#30WIDX(=5F`LeTi2AFNCzauP-U-6c@33*O8@V1A*w8hq9WGn< z{ux2{J1i)&&#R3a6p8Q(&T&f2wFn9n%m`4fd*>tBm^Mw#%~n8q)Wn`2&g~EETkCii zdJfwA%mtmD`n;|VkbeT+J}MpqOKjis-t#R8-9?Kku~4mZ4jII{T>WA463F#+nMQv2 z_0dw}y-kfuU|=9u)5F;y!Lr|RGd^6(E6CXmV6zuquB}8X{_x|GW!MHH_s1N#>o8?@ zv~i=S>%r`66Yn)-F>!JIKOcALMkkIKp}gcUtP7>KhwvH$pCKaqNKdV7nl1~L;szD za@ajQb}&ASe9Isie~W|`u09twYBj-s>|-}wdONq-pG-hRg7Xr`wT`f7)DOc-d{Nab|So}i23pE(r>dTw)hbIEQm1BFxM?318%Pz zemXq%XX_7~>4lr&G@z_7=)-8X^lR91Rj*N@@0l2`wFi5m!p_0aL%eN+ehx|ZZ zc-^)Jx~EEXcgMbWmhsx)@IjVn{!QSrQhU0-ZUvx@%HQ7~f0*f~Nwcp6$fvuvHzJu? zjXW_itbiXSpDIBYLh@(10I6IT>1#yIJ58z^JxFKfRlGJqs4L0x@-o5paK^Q@%)0p$ z3{vedhwtTeEwm8&>C?r}qU<~1mTwMu?jvz>fnYj13K+(Xjg1wSNz^Gy!Lz?#oRxTh zQrLQ8-e6l=YzNO(pHmoD-U>=?%fa1n~843bwzbGgi;5NVG<45aI)VI5~qz!llyd<~-6Lan2Au{yl7v-1zNoRP%__YVuTs0(#z zH94=|Iw5?&a_!y?U{Pc#4rnxFnU$f_Wx={zSaZb#jRNiLq+jcxKdg~25By>SR8Hh~ zmXLr47?zHD*A3g1mdEy$py%e6^OcPlse+(o9;-luzjep^!vO&SNwKjAvvtmByBvZ(9zhdJNGEnh3yHh3C z2TzYHYqF!N?P@FI&#OAjCjH~}Z#diDf z_}KgIEBALlz>^-|MYp_IR;?fJ$X-?}%Kt7`$ur~Ua@ozI2Q?C6`I+w>*E|=1lbTWRXH z6#(JE!Bh_WpG**bWyO-VVvKiPcVQv~&R!(CJ!Z4WZ{Dlq^+x_b+nx;r;eObO!RxeC z(xN1s{VdDY7i)ga$_|wknsuKERVl{kk zNGPr6_?jnNI7);0uPHjt7g9*_6df(nv4p-GMAqFmi;V1P%MU)ERK=>GC~-fM?`t%^ zY(_%<4UIwI)CQ1v{WChjAN~&$49|eZW;Lj0Io}>_74z8ptKoNbz>1!!J~c`pp&&)X zJ}R%3OXo@>?u^hH>;Pwsd!X$25T2H%y9;=Y(x-nJ&aY5WQF}k`PFNiRvCkgCNTdUI z(*#_M{{qAXhonUhmV7L^-2K&IKadH)+|W8NHvuS|=Tmezhh-nS&wr^=vR zW`VAj6?{OIP{a6a)ejXSa00mMHpE_z9W5Rkzpk_921rtjOtXoKyz@x_rbNzgNlHN7?9{>olCmHpet^{z-<&5yzDTLo{; z0AsX{f`$AKws-4&FON_aQXYc-?egQ7EIjm+j)AgWEWY)TbX86BNjTGHvG z0dSOyZz}{#tq} zgw^v~4+#lQ5&@Z~*GI<$W+@6pkII1=(F*wcN~CTkvywe1p-=5Who{Ji&E?({n}E~e z%_RY|>LyJ6yUZ-mE8+9qazM>1&)otwuN)sTOebVVAc*pca2D-1^`byA4)(h}e^1v+ zAn7eWLN==Q!gpPf1h2W8PCEW%iF(xzzDrzdVs~3@gMVrEV0gs7tosqkZUDb;x6({+ zZntyvE7yxM9`95Z$Vm0PL|x@%%n`s`=+7(4_-dmT@3I%8*1OLMNJ;xH_h*2f1{j*l zGwzLL)Ah37%XR@4g+QkD@E=nV|Jfk6&6@~4SK7*TxW8}N>*uZ;Od}T7ex3p#4cU9P zn}S{H1BjIT@wVLfzN*Zi#&LLeQti4O|A*jrDTa&2-90I#M4blz05#5_?W`6xiJR5X z{=k0#vYKD)jJ{FJadIOUi$au(WZTn+foCmkoZ>cX-nzmrP?EF#3tbr5QS&C}IwSQoxn`N*8p_wgH4zP`N?PUeMaw zTBGJGPJ9V3KmyS1;8C7V>Zl@6u(v0==kMj($5EM>m=pq@qsbF^OA6(BhqQbYR-$Xz zn$GLhK)ickGa+kg9?fMNw`p|PBVntB9)t((ncwU2!X zbdoRo0FJ()nR0lf`^e+n($N;;HN7pPS)#?7k9TX372o|W!jzV$wTK-3-Iwn08Iy48c*q_P%c3N&KBBrJdZ1pyxpJwSh5FyDoqu6HH;X#HoG8RY!Me#T z(am{ho{E5v;s(0F>U*1zpNlGu7-BXBV!eCb+uy(U04UeQdoxi1pHM18z%j}M&KUw2E{6>h#X_|&?0WDtExGVTuqMb)(D+ZSqBL>=hp)ENW581ffS%`w2nn^B`K6t} z@YkWU-SVX;#qW&NK80qqyT!8^ z?vk@nOCW5!AjT*APijAK#VVp*H~v(bcjJqA_zFn7u9?l01!RhNWNq})(|aC3=L!t? z(CSf)YI+HbP~zEA(`cD=qzWzundzu~cfPA|wcMD$2?~0a4LAjAG=@g)+glZ^(EaAha67R;nP1-h`KjRof*v++DMhuWLU zt}=SBBLcCP!}aT>Y3ZF&uD@?G?79I;@q>aYyb&zOLSzd z%$HonG}4?}Lq8}-h(Y;LviHn0$XT?%jiOYtXSyponn~$$`gUwYO0+bXr-B+Y5K$lL zkE}ZQZ)4vS48}Lp;QW10fFrVbi~h^OX1JYGBR ztbBhHi^E|ka2X@HJ;+6(P-f`m=O^3M85C@UAS1;UvcOnj{0a1Z*VQySrVMNTFF7B= zSwlnEWc4ocKvU&kW9H> zH7-#gT|V!`GbzLxKNPT(Gok>V*VrPSMy_U|c!PX=U}%?YJnus7;d<35j?3XZedJQ} zCwYUJb(G@ADUJ?bu91bTK;rwry4lA- zd^ZHA%|QSuUHfMpbnG-&cC`90u10JdKD{&0RJZ~`+ntEryRXP&A0g$>M;{UW7=BXNulDuZG<1CA*q*b2rM9!`2W%tcGQH_nswT&vbp2p)V$EVd$ zTqgZ^7BR6*T!|aA=(~@dHFpV?=oPvH?H{1%S?q>3?O2<&_MRF$8O3upO4aGOOyf66%Y;>=o{ud;{T^ zm$ioNEfWsK5+};Fxwq+(IZ`ZwNLB*x9Xs!jTXSYi{0>EFXmV7U)v_PxcQ^1zjY%A` zLgKn&orOL#z9Rk^CzQw|>h@VqcJbX5!OZ2ppu4QBwm*uAJ{P`A-=DGtx<1!gVH{eH zSw!|AqC{iAtIrT|&jY>az{k7(x|KlX5Cr6%l~zd!2?@B1!-X_}Xz;12RRK-(mB%XT z>29A3H9tRJi}5d;`!W-Tn%4tcj)x@V5`f2NQO%I_Fy>;*H zXQ&s+K^pv@>Zw10^#&;!@g?TJFXh2$Gtho%?CPT$RUFCG^|$})jREnJ{k%I_1ms#x ztIS9^o$rIpyLVX4e%JpRwzKmc7ivF;Ev;W2K5P!^9*8W?;@mn}h=2dr>C59ay932l zY^&AV?jc$gOT}vlE7UnN=-p=bc=XL)?2ShS2x#}SIdYB&#!(!eOQrLZ;58g47k?o+@h znv~vrW`x1OXP^otNS)Oujs^-o+X~Oq^=|BFlDa3S1qT73AZprFG6Xy%UcOY)7>|C^ z8})NXc5!u%pbhL|SRitsK2Y{7{TAxU7h-QvJf<-^lBGQM$Kwpb`uuRtLKD=a!DZsl z2dZlb4}ORws`o+LP(kaXaFU$ux3G@mq&I` z%ZGU890voT!t1lk8BES!`c*+@va<2Vl%`@{>lAtGy#hkGy_#|wnsir~#6#VW*Ex9~ zCY!45JbF9v2?#p7BHia&Tk+S{-lEKjLVNIWwhuPg@vIyEb`uQR>)^8m|G|pn!Zl(s z@lU?kzt$d)peg%Wz@i2Dp_W7KeX`oVJ(44tV^{grKqfZ;X@it1Rs(wW~y8!EQjhCCY5}%5bsb)vVw(&v4v&cM!=L8EC6T#O2?bk+D zFJoVzjgv zxwa^{DA>;H>J_aZ29Zcok^43(18d@Y5)z}P8`}Zrn>Zp+F3B%uv4z(OkE^wa4$Ke* zBeg}({<&P~P$EXNVt@_I0iHIhcX>Z~b+};ob5G@EPe-TygMKF+m>PTv zR!9q`&n+q?MZZO5JCi7fj74bbnHCftH99-4{nYZ)sxXVvO%V#X!wN;=_;+{7+~zyb zie%Kp%dqTs9jz|Wm8fCiQ-%-~Y*;DkfmrZ0nKm*u2X7n|AdI!~N(<0@jlE|Yhd@Rw zu4Lx$a`TpBo%6ONHg$+zM>{9&W~No>FjWDIE%Lq14rwHM2@89>AK#Np!PARDTkyL+ zGHwJc4tf+L#A>48Z6YczwLcRd-$&yp$<>cZ_=$;g>m6i%OOaNOcbE2uirB+ZR*BvM zmx$VsA`z}MA+Bg>A6r`}j67lP3P{t$EABX^OT-N%Z+i}42nn-M-y zoFk%218L?H1`dH$gdOD4niE64ql>1+$UC)mi-5l>G&!bxw5v5@tRS-XcAJj}v)wZz z*^VEVp2!OM@Y=&`E?g32yP*qmC-pl`e3xTya4#LE5BeiH3~LoHOdJF#l9|b#ck1zNpa|y=m$eRKfFi{k)p8`f3hOC_Txfm&4SfsB6n6jNWIewb zQ`N_!U7X;j6NT9*E}X@iFaQ`ZO~4{Z)C0->44|uuvO{+J>X5jWEgP%srbQ{sarPBs zqF9@=)UP4i9wx94AdMTXcP9#6ySn=l>4kkSSa@wlVtx_YR?Y4F-SyBZ?E`txXncSbjBRpI7!LeR|2jdmjSgFr6zG}>2L_8SBP88 z7V+3iIo}?Y%uEVIxGFmAST(^ij|wq#EomzMg4i{hPC%Li40=^5%<7sELY$Q zM@IFv2+Ix@O<;WtCdnQ=ek{?~9X-U+SR$>2BwvKJE}!)6Qbu1POkW(K5|Q;NsQ1fP zeS$(!uzlHC6J3Gu?7Xa_URGN4X1hWiOLSyEx>hVf?rE3n%v>wmB(C9+++QCb ze<2$LpMnyj+J?Y#QSV9&>y8L*)WSR60gW1o#;&&gcc^x>U)2kc8;nOsM~p8gI#cx- zIq~1fDi!aAmDYB;9G^IYNa;f?^ainm%%$=V7>x~Wrr`@bvdaVhSS_$ zM~j-p36LM}0bS?qG|oYPcFcGp&5K1);%tE#xvai4e5V; zxHp!snYU0rw&{VfAo$i5PkiT`mBdx=e{diQ%w6jBE}ce@{`BByI+^q$RB_ zGpiiVSJA`nenCsy_asjnU?zBpB5k62obGC%2IP-ku6Knt*?hwYxj75E~kA@X!0%Xfgn!oaW!0(PG83p9aT4q>iUqm zUX732qP?EV-u~A{o#Fh}DIA6(-61&3%eWJ{(vb_%Bs509?)r|qqR=wlh!r%t>KWZ% zhC{1K0ogP!9f~sLg{A-{B9Z(7G1A*UCPg%=h-UzOOJZjFXMRbqpc+I#G&Llu5cdUQ z-r{{~{!UNt>v_2nD5Z(Q%4wPhVmDd z)1dF)zn{y<$V`j$8d=uVS1jPYVX|B&!}=zjE>3#IbzIr@9ulA>OODVI$sahNhz|>; z0~dyj1`|m^VVs~ui8d$5<5c$y*LySYJ`@RsngJ9P19n;7_PHujG>SL7MyjEX;(f#?vp+-_mc}>1XJ27Y*~{kzDZs0* z_Gc?MR#C9Y2~`3G9OiyAe(XlO!jEskV(VlYG_jv5WOPqkE z+hUW2wkHHm5NzI3op6q+LGI^`{V*Xl$-8tx(iF7jRzozkG2oUjS+jd1Lvq9Ujl2S7FwjNUtDb4GFG#nTXvK?APu} z>vLyhWDF4L-glWou7{@^y;TKOuy!+Usd;31t=uoLKt`|@q^3OJo}{gj%($Ny-VYz2 zlm@=FWY5jdXYPYuyW_p~C8q8Iz)QSU3h~s&FNba|->yTUXyMoy{ihr8@H$wOIvRzJ zxtMgZIT{efm_Gzq-jGFKBjm3^S5hjW;(W<4k=Z^3Bry@a*Gn9|SE$Dz<7 zV5BP)f=)4mdk3r$eWcuGZJpHAuDZhi9c7#gyZAeG?fKNc{JsWWr|FHS8RH3`UjJen zT?;w;`@DCut*!8IVhSSh z1OweV?*vq}MXl44ukK1Pz|EgIjsJXnm@3g-aACG*P*$I!05U>jT~iNN@46v>0$_@P zYNpVs`o{|@?Dt(^?Ph(d1rRd_1Xxs`p%kZIQzvtqx9)YhA{*=u^F$J)4+eW21Sm3D zAgles04uk&fR>DTUF@e4N=T zNYt*Xk_m1VC#GkvASEqUrBanE;2tApOL0T3;Nw?=0cy3>u*!P)w!HbupyA8VN|lY; zO_R^Lb(WB;xzt(JvnT*XHt_vh}TPAD;cnKUOqm)K@938``HW}6aMuMGj2=f2?Nx8!ZCH( zDDz9sujMedLs!xqgw9~Hw&=3glODx(#n1~RCukpGY1^oXs>(cqTtOI=P*J5a!+m?? z(Ex~ewxIL!L*FXIBq zCsloF268E!`wP0+^UAGe!o+4hH(-};;XBMGxGp#kc2~B%1Ye7ndZPFmyiSadKjGXP zN97!FHD^<_e!K#hYDr8I&P)&`<$=}p*?(t9Ps$m8QO6+a9cEA=A*xh1k;UP6%~X(E zS=kNPDOGSKS0iS>Gc#3QwYJj&L#CL(#!pZ8#}!G8%G4<4Y093*%Tz#{H_ZWlkkZzf zG3UEg`hVv)`|KtdxV0~npxXF}Y?4xBPeRbB-d-L#sx2@L=7xIOSUbQ*@Wa3br1?L5H2=)9=Se zI7l-mI8cwVd!=IZ8qol@r%+bA^goAq=|5Znp4~CmzRCRyN#Zf&((@0;pwz)BK2^w_ zl*H;=$fKd`JXBFM7tUp3H(_5&^Kjz77;y_FGKJ8AA(h#83W&!Rg@wdOCId$RR5mB* zIQUtEc7ur&&gj&!Nne2*L)`VQujPrqes~E$r}$d~aZ-skd`L4bxHly8<)A7aDBiDn zRZTaydFe_Ethx0(*LW->T=M&QBgYwm6^~ZRR;D=b!bw^R?K95A|6%XF!kX-YaM6S+ z(u^p*NFX3emEKiqq=|G0MXI6qA~pIeQF`cIC4$nWgbv}ScMZ~8q(yq~ZHIrK{XBbL zoafw~b8{}Z`0~wKGizqnJMVno3L(1-2O}eHfIr=%|Fl2*bPIWhR1@?BtcET^F6saI zp}${n@0Mm#%HrvTS2m)@UTT83(r0KhY_4pq*`Lt7m3=lD?C4Y~OOPWZxm{6)JOn!i zfAAF-ue`K1CbZUajbqNw8SvWBC_o5woG01OW>z_5zgX!<@7aVY=?d-%3S+HpGBas>r8ilcK{r$x?nIo*x zkr7M02cxg4#fh4qR8GDTla_5;qDAFrm_7u%XKs8W4lg#z93ivQ^{)QKm9Q3Hm4yD< z6C{(&2$g265C?wbJs&iKu&RlMjPHM+#V)0vY9(X=ZT;8ZQ zJw5%P*sP@WF%F1r!`AfX-;MCVfWNT_BwBF**?-3F5d|jt(??zw`jEPixB#!nk;q(9 zE_cgU;`{97-fTloj*gBq5=D~CnZToDwYL08Za4xN=!fBP`En=elD3v&oT2tR|DYXF ztkTK2K{JO`s(9`mT+C+47{Y`~NvwL^w(Mo^wc?KTKs>bY5+*L$rNqp+l~}}hFO;Ds zKpx%=ULppQm-8e>iuafRlt#;Gp3lrrhCao3`XlSsC|K_hkpS1LJv!OJiXWvB_boXF{KOn;~!ssKl_ID^Hs_Dm_uT@nQ zl$+-C8Q=9AFxnGssJz*~sle=lngRQeq-wO=mE3gYTaXb3$0kbLsb#N)fZa>Lj6}K2 zm>^LAc-{oG<500?YXWVFmk4)xnwf&uM^Oa)@DTH!I4;VD5!D;HU~bbyJi;y9vAJKa z_i#;=bx@pLhSs#UXHyNa1+c=_r+MO#e=UX=aqQ z%iaTXu6_u-&X_vl#2=7zs_h-1oqY5YR5Re5+4OS(D(W?g;#qwX4Cbcny<0NbEDPbF zRRD&NnVR7a99~LYN93)UTkE&#TOlmt5S1G5%hq# zcp@ho$N>FtNZjZGhP!s%XCm6EHKQvEo)5!^LD@){ps%T93cA3VK^`M>@e*Xma^-=l z>jpZS*QO0?#}QqTtKL3{eTS7sRP&Zh?RGoP&hc&-qy)`z1l|lJ9XG+*e)VrBI&RVi zGYSUA?*s8RHW2SWm0TEbd3y988N57}soQqY2{9Gn5TSzD!NRapSf(klq*0=!%9%?q z3nf82^msPZGI=xa_b$H4j3?{{5f7bfAVSbl>uF%)9grP_gRGcZVRG}BsOL0s!YT^Q z2cAVD#pS;F;rFoLL0-V}FKE9AdBjE`Z69&kt;`L^XgVqOw6gOM1y3c}1;TK$n!Tgr zs9seuc^>Hul`H*L$xClCS=?gAgSXenMStr0MxSrGUJqvqT~lulN8}+ucO!{T7$qD` zkdfX4my#cnzfaMj2AD_*hw#C}pux}NRB(f+(|tcN;&^!IWsC&4GZp$T5*bc1Me9&;MG7P-pY4aI5Ued$e*3(Xey?)0hE!v{ILYjk-Kg<$CEl51n+S@Ud*H&um z_mPo~$7hY6w;ZrRgy`9+T@Bo+nL!|t8f8^t?#vdo@G)q^G}f2iAL)Hcn2ugsT9oIu2Z%t(L!`K;HD=M z{T4A6k;gM%_tEaZ!jxrm#{pN8_&=+Mh$qwa5~{PVZ4`H@i(Ll`h{HEWIyQ|EUlEiM zlW*)@_I>6#;T2@ zhuCZB_i|FLfLRhlu(U#S zVnhMY{MoSV@@u@MjTK%1|Fp*Y8bu4Fd6`L?DTz&|p5(d(vkbi{`M3Z$M}Yj3hI)JI zBv%P>-X|i=`K;-{4bpRc+VF`7IghT3Mo8*VWxLEgZJcmI!NWTXIUR5l6;y z9IAt}W|?QUf}YN*3TENO=qK0+WZLxX{Q;sq`F2qXY-;U+P_7u{eHGJi7Eq0ZtS`+r z4*)s^T;Q26*oYn>inXjsQc*OHS(0pnDunGGpyWI6L64GfZR};7E+zYj~-UPGI^_zq#amwUoC9SRWg0J(O|J0khGaGxjJtw)Xd;lcjN?qq=2Aicm;l`L!V9&W zT2+7+=iPvf%3UY6*>A#}CXa218>k9-%)c#!uQ0#O4R^vjE&dDte-Ykp)uN*XgW}Lj z2s?yZuN#mDJil}p`RczZ$H*2eZAvF&UToLN%g!%~gLXWiXQX)u6NnB)GYC{>a+{d+ zW+KDZ4ABh{KTwPSE6PKXFrX_4!~hYZb!7ut05w@@Ls)CSpk5IZ`gM9(x{Ydk(jx^w zQXA%SGu7zSDkORXk+2AcOX>j|=E<&s#NzZ^f!Xo{QUJ6wjI1r_?X?yavtt3WJu zMK`;z`R!_rC9jSG51au2-2(=b=oz!2h~{rCGDaU|ldywVZ19r!zsSJS`81+}*ARYY zwRGP#bm77^no>`z5!2IAh;VIVzj-N7gJ!RGM({v;S@AC(1Q8!51oc%7Iobphs$@iY z!Iy$7wMd!L)$5rA4~UrdXl>bVA9qaj!f8Db8q+zU@(DBi^6Kp_cO$PEs?L5PnF>yS z@u|JMYCBQqb%rdzR%3dLZbg-nTrz;pRBhZOccXNribcz-jqFU zqu!Gi0I5@T2*4rr_7&{n`!)jH$(6Vgsp?qa-C`zU?Fy9uKgE5-KEghU>4Ki#-uCr< z?M18+W?Z8#=AwXA)O#UBBG~rXMHqAqm`grbIFsU=j8>au`+ki?*D|b)TBBCKX_9NrXvsk;s5d_A8?bt2PF| z>vHs@Y!&?d1Ck1Rh~0`%2BfOB|2XJ*hlZ?%lbe2O(kE`$1M8;hsDF@w)V1`FarFmh z&jvcUAThvMfRvE+^){hssvyt%aKKAjGDD;xz#0+)poL88hy+f&xiM^VJDTY`TZK8_ zggIxR5IBq-v}MS6?PKNNE)ANj3L1m6K{vNm@IH$fydI>Q=KsN$F>@YKqUD##Z5r_W zngeIFTLhOzJI7b4h37U3qN(T_gvjgK!t2IiRh)`qv5^VO13;ya#gc9UtUe-tpy)_O z$vH~|HHj_=`&9PZMq)1r{~K8gFxAJ&VY9LRBkvuEh94b#XN;z3L!9&ub&(Phwd$2E z%~Y=|fvUB8Yi(jybP?u#4+v|4l{BKbmgm}^AmagZQfwwl7~|?eJJ$GDHmV(;ueVcB zD6x(rkuHc(#3V0_$k(2+8i!}0PaqotD>P7ft<~YN4q_q}9Gpnwkjz}5qtx6hsu1eh z;uKZQNtR=l@>`xjQBZB|7tiYr@J};ral%klL1^Ws%|B?Ko_~k@`beAs;mK9+&_O)& zF{|Kf($sWn`386kq@3U@Q~q3aeRMJYkNy00`%(Fc$dXWuyo9##;+|$9L=D*1c8c`6 zf8jZGcms630ehjI(x`#k#r|0IU8q(YR#$EB+n~R$J4dT!RGkf2ST);Myib64dyf-% zehzg=sZLto^ zkLyMkPqq+R2x00N#;SnCFohA<5LFa5rG{%4M@a$WCAiA@x9zL{E0((Mt$}j_SZ)*@ zg%xRRERygbw&%KS_kN?F1g+66l%pdqu^DU0d!63ix}w(@vUCSz)Fny_)j}~?_>JBF zw0C*ymMH(W?g&Ccj4ZHd^as;z~?To_8>R`fCU_d|S?fbGPBV;z5_SwcoWVl*Z)lCI54BH(CYy zbIj`FjK9BK{BL-IgtQ-JtaKBzH~)F+L2~sIVX{kIVY$OM=#jpmNa$;6aHq-bb>Aej z$8+mH$7ff6*7A|~zH-feJupi)`}gNKaYjF97(>LB|9>A|l4}3Y51YsvIYEk(^|%Bo zbwy|&zz#8_(Jo%S0orka&J_zky3V<08pKv}8Q@My_f1c@w>bzQ{g8_2(Ej|QVU2|K zn=lTL!9kbSZBLHvre|M>BPv%`_sQ%yyx$G0^8@14+e6)Aub(E=e;#ItZXt0QbJsMt zz{%iCkbm2IVMGOaZ7!k_S`iN+8&6`VIB3{eKrOFi+&Q6VBoBcB8tqMPvBSjStG>Q( z^hYUAt_dU-nO69%^0)0e{W={xRTgy!4A%qlvY#To?x#QPHE0rdasYT<2b#xAOA#+| ztClK_t(F&DibS@kwZ~w=kQ34Crx5!e$w(jLJn<6V{@M|H5l%ewzWLc;{~Z5LV%j(w zto;>6y>^hQiUVkxgG?!8zO9G-@Xtbv0QEGS1S@vww#y3N{{1&fTnT;K!;k~(OAO)} zQ+C}ft?%Y_G-t^!E&Xm;661IHU^|y6`ji;)mc+H1{co|bbysy>j++V-_F>Tn5eq$a zE0hU7r}Ri< zv#=M~))-5EY&ar$ift(xn!yj|GvtU&H?uZWXBgxFF%-pq)h}qiOf|ytYqU312LE40 zMrpxp3jf1P`1XI+glo*m0D_ znAAPd_pzBmC66X6Ad7Fs8LDN(q4!oFtBCT?n2}$trc!5cQEv~r2CY2-JS+Y#-UWpz zc~Gkk+A&vk)$^aqGW1iBa!GOr^9QrhO$)+*d~C~jkM?_3WUY}Pp^B?1jLl<#PC-vK zN4z9Z5>IihMqR(6(WLS#CtRSGSmdvz<puv{aR>ypOLWt#3r;NN6miz zdwp3jc)sp|?ZX{6s&x`U@^eJiBP(nSNUXH5_M;zyz%y?FK;;1aNjeQ#jX0pW6o+Jo z-{ewWqZomu zva}BIpo{v7;aI_weVbL*%M36Fv;tp=P3hvMu}2Zr5kso&c7A6R34YQ>?GPIc8!ekB zpTgX-sIVxb_7QD3hbhT8H<*tYrx^4|_xB6>Xyly9^@VJY^!8O0QpA`;PZ63)8i~51 z<`8euO()wi$2Smxdo{4WoF-eoYfw|phchl2F`>oC^F=QtA-BH8Ot||A_KQ8ri;Tz@ z;P{ln1y^Jchj;y6iTu432;w0EVgIiiaHLD?uKCXQ|2{M6mfqnu>cZU`qwJYK z^(&118g)#8+5;;B1oizCXnzPUg`3cf`(Q+$$&Qj9kWS^}v2r&_0d!tLlfPxQlJS3TTVt&6Btj`Q4s_g8BtQ6mo3puC8k z@0*9o5s6<)&pyMZ0>0?vzR~j9j7J_nsk>k%!sGD!1u~kbLu0!wGFPUFuLsglmxLMm zaMET@(3Rki0XC4^)o(-d)l%SK6f!ttolDbd3KQ=9AaSuo74xlexZK0ZTjoRzv~wiY zRZZdv^n9gyUY||K$=Nl{CT+X}${y{g=H3>vIdY6M5wHq>2%dFU5zItgrN$`HOw+F4 z0hOiLQO5IVy*`)BYoyQCNylAZ*S6efDObSd@HJnue$Ha zH!;8a1${;0q~2~lb=OIZy&*t&!?)5qwmKr84Skyw0W7P*-ZFCZ-on6!}G;UC^rY`qFWJnDFXVTS7`^fEk@4)nV@o_lfU_e;1Va? zHe-K_OCwLZjlXTFscH=T;emVDNR)>z-fun)Z9_zL!-oh7zAmcMKijx3l3@C03KeQz z3Zi1Y8oRg0SQppU1M!m3GQiwQkE%S8F1@}vP9uZK3J$5HcLwczLbm|%U6s%qg*Lin>qe)JYF4p5U|w(fwP#Y#U!y4ZYh8R0u4CU^9? zs>u{a)KfjvZu*1k4h!A7`r*`^4&9FBr_EZeh|g|FCwKfyn>z2{JD&b0Cv4az?5ST@ zc$Spk3Lr9G#BmSxVNI{cv1246GNR3S47pz4P#-f?Sp@(4`ku08G4qu9Q#J=+FHj%J9<*3+5B3i$5Iw^FwSA}?$Xk|Om=xD zPdB!*3H7CSds>jvyWMiR@Kup+@Wh{uk0pPmNxSWXGZu@^%X|&5JU+O%;oCpj$$ZqV zZF$P4afTWg6N%RuH|mf?u~Qw9Rw%)NyQDpn*u#xLo?Knmya>HS=poE+Dz2a>vWWBJ zO9yXbg6t|Lo1A@aaa;`{=JwGAF!4sQ&HQc!=O#`{$=yP-IUiMNtNi@v{OZLCSKxcW zLC&8gXYONMzc$NuBXTriqtgmpi-b1)0R}b9{ln|zwUoBzDeFF@rtHT&0 zQ8jI?gm)>)Oc5yPQSTCgyoa7t-h_Dw;QjX^);{Vl$oJRB=TBUjlB9EHdW1iEq>M#5 zAf_hS`;6_Gxb2_p%nZ!l>M2DGOfip5FI89f(bqy&Sf~Z(mR+pUwl%r%QGE-S%w7K$-s6SpXAN1zdS3$eZ_H zDbTOOuVIiFGTm6@OvbuA+i|dJ*00Ul-V+b9W=7hDbx4VBY{ZFb)#p#eP*`4HUCVHJ zC_wh@dIxBy&A-dY_E>B}@6xgDa3dm=$2Rk(Ei1Vot~^NCM!q8Mbo%efC4mJck>(m& zpS4~pBLQ{{(v4tj_qn&dg{=KPtwa%c4;*G}qz#ERifH1Q|LGmfESs^#T~WHm2HJ`I zXxmWIe(2nGs29)EIvOW6q|Cdruy~{D_1kXy``z@Plgj{BRxQF13+K4J&)Y5Xr{)O+ ziC(s29v%PCcm3UbfHT$LkECltDq*Xkap-qFpI@B;uO1j36eW^>NtJAdR*4BGOkCoT zGI@8jV!#ceL?Wt;;TG;riRxUm4cbjyro-AmbAiU>VdT?y-0s`(p55mvntQ&yB12j$ z4GuGXusH@%rh?r8UA#2u$auEc z-M`lTr*N&~EYC6poEybO5hmJX|4l^au2Q8xz>1gO#kq?uAdj*;Oo(>?vhu1zU~9bM zO20yCzF{$QOlL{0rr_e{xM7{~Gq=CL^X#p+5>TD-9)DYSEFun3``@M7$z^$ceLuLU zro%TM?W+0HK1zUP35EoJ$Z9I%-~=4r&kYoS4klvDdW^z7xcN0-M`+*E6UbAXe2GHe z)q?dsD3H8jmCbOLt}vDAUfv+*&BhG_)!Gvm$pWL)+YdlHdB{MtaGfbtV7%+E+IND} zXI3Zn(^9BrZ9dsGAhF>{@l`Mz-UUyPH~c_{PTj%rKyorTx|yyf<9~H^KV5j(Eq$KD zS*P#Am0nCI@?-sR`X?yv997Dj*kcV~O6-$z{hdE8^@w|p!JR}n{`V-=d6GCFJVx7e%%F7R zz^{Vh70F4)4_MHab7}U4LiV=WVQP4$t23o3Lv7<58H)IK_BE&udu!77D7{9mpP~XZ zC-xRCIzK}HS*JYbPS-A0mx3!li;XE&_Sc;>j8~P)%e5?>F!lbo2xt%dORjC97{*%u zoLEvY3hn_3BKbTBqi*SUankG!G_qqV^7H2ZtSi;O)i$nyoOODD&$cP0*~1|-f_UdA zu3f+eN!KYH8tgJEuRJ^`EMA`$d)V5@cnIT$Pc6 z_h9Hh$8Fsyss8O4^$&lHE9Bvv6{b64Hok2?+Frf*HlyM-pv6a9lW;(v`)~_r*KHjA zlC~?3o6!AA!}SapDeZd3JW*Yx-gYR7D8ulSdN-5ypo@%;mA^G|v3FPT=$3BohE3k} zEC@-KM#mAY<774p<229thd)t>=Itc&RQ_V))-VkzBr&1-LA~SK?te=LGS=C2$*Ig| zPU!DtN@i{}(4@6|sbz#bEH!ymv1Jz{BIp+DMq?R`yT?$2xkH!2bn4=A6=xsNef2_G zuzqt~B;F6YQLi4O5*q$g<&hy~=!t(v_1=y}8j2a!))zi`{Kfh(`({Y_%ut#4=1cpB zgnFGrAt*HV!N-mJ6=&Zjnzy8aFE(0D2fy?$YKLtHQkYiscx5I^8f<(l+Bvzh#3O}c zo9g<`zOO#nY!|60#lv?Qb|`!De+i3NMGXm6P=%%w>Bo&}>py-ckIcxXT<2&dSQLNd z*DgaWjF#aQ9z2sWuGKv!LqLDmicnG6+l~qTU50}#B$g&4Th!-znF}n>PVPW4i;`@t zO`>(B&!-|&Q}@C@3M+Y~N+aC|JbsdT4LrfbU*BfkZhJ8QfN(`I5UEaoPnoI=rVpb| zlzcec&-8+mfT6J{ktaNU_EZO>9pmoZU%q>uyX;r0BNldtd8(tiO@PNgBlO?|Jhb^j zIQ$&6YjCRNu$RkQ!VmBGd-C8f1Yxbwww{ez=2l+f_}NCt&H1&M#bJ=(OD0>0HUqiI zhmh3rvF4u(sc9A@gdQ82JpjAARb1FsKz|gn@YL{XQ0W-SS{JS=Q@RSlt#)ahAMblg z1}BmHesSl_SoOS+yHvI(Ba)|Y<8JqS1?87ewcM$A16w^c+~y+Ns8H|9gbAtD2V}w2 zov~hQ?R|scv5x9{6R&H6>q;Lcyh}S$5B{jc-9R4js^WqSzk@uUdt~cogr|=w3s!t( z_vk}lQJCF#136U4<&ciQ#~}4NZ?8OD4=MPx?C$45E|4-DskOKmroj5u z@jESsFS1xyt?qdCe#NC@*zS)I=~c$B>qBZeTLO8K{(!?mEn#Oyl1Z_BuSW($CUNMP z9;FMOspBsr{TB9&w2S6UU&no9d!4KA21OS40d{lsafI$>yk*{`LmuJ22pvGvTo-4G zKLY9ZtX8QlNV4&++}b5yth5(fO|-9QLZR2D3}LbZksMGiZfXUWVcn}Y#YP!iGN11- zVA|vt|K^&*_EKIhPoeUPI^$LPQu(8lMBsKXpAnDvD#?l4zV}Yl_bqnYT5sTQL)WSV zFg*^2T0*7tn)Pqi-J2?CxSBq$KbyA1{ji+YE0R>YqP$+jNQSoC|;!-e* z(Zj&ipoGryW3~ss3+nPQ#yB)muvYo$iw5H}w?;=5-q1w$4;VJHqJ2>_ntBX+t(Wp` zvod{WbQ1N>y@{-gviG4b@jfFp4oRxt@wtgv5iar-Q;U7S@+DdF8BE-q@fJPd_1Qh( zjx7@wrU*1!ci35YB6&slJ;K9RXK%b{y*4zPUtXmNMx60(Cw~hYeDiYgR^24{l{Iga zfe3_}(t{@w)NBwt7cH2xvC~y=_)SEQ?{;Q9&zok|=IwB18L50L=IsjP-yIM;DupL8 z%c7gA=8(5Ros)<9k1$!Y^%>g2TxBZ`IVaW9mD1@C+?JCS^ked_T`=i!pWU%{8PQrA z59+RVqH|M$Xc(sMl5ix&xe+b#XU z?bV|w`=|x8%ynv5tue6u-YNg9;rnmhJ0ad77g7=ebj30lhi;}(-Ao~$8z&Ua zvL`+EO1nCtZ~3}P>Dfm+$BnrY*Btsb+P-J*w)`2#4BUcZGF){>5Bs5mh@BRRvh>N+ z7qw&g<4VR>;*0_{WoYQYor!0^Q!*;Nn>%`bDRT*36|5z;;WJ0Hv(?T<16fQtyGr_e z!f%;fjTSpP%Xa(kRQP(7Y!u{23;P(-H_#RmWxrc=8t(P|@Dz02I#wzRYKM`MmJ!|7m#Z<>iv=}sMy7`zH>F9rzTGeV z+O2QoBRNq+KB8L?F78MDdc-ZasFB-HGW)XAzNl4#2hq*9F=TXS3{dgh>nqY=4}Tl_DnPRYi`57HL8wj7fZziXn#g#m{|9KL7PF0b&fT8?V_7ViN6 ziYi{VqGk7P1sgtTckfi+Q9sf5p)8AWgX5O?8l1?}Q*}W8h-n@Y4AB39m~{7{JXU#ogx>* z_UeV|l)A-F^gS3Zwfh&J(MZdNsxa>G*@gO&_wCg9Eqx<1J}{kY#f3KB2_(jO+G_Y` z1_U}wotS0hiz2;(tTV}`elSXBorj&okn1mBt<|5>Wf z8}pttM$%miB`N5nQC$s9{NfG;LVeYEfj1KOU5D=CrrEUZsL8n+uGswtDDD5Xetg`LK58_nsvcd`y|U7B=dLh?srem#&B+plt0Qig+RNLZ$lqL3TN()xJS(s9 z*jJ_i9UPy13dZ4GE?K{MVPjo5BFp5D8UFCq-Yx5;)zXJ*?LD+pWA`%OyoE)V6v~?9 zzc3Fv&ySc>KQlg(tX%PAg8E34IHfvv z#y}Lc!@%RSJ@3rc)P#eS^l?TR{$D5FcK5tnz8Bd|%N;q8tzOF5a8p(|+}$P^Y6qcp zv)*?cjkXZ2f4(ZJPU`XV$w0JYs2RLR22~7{*f5W#3R>1}!`bzpUH2 z^d7V3DG=l|Xw9{8e5aA%%MI>K2(@w?<@*X*75K*0rmoW(~@ zj$Ds*QBIC`z2Cfa%>MfTugiLy2HF?DXBWbF5BwCT%vv-yQ2e^IRkX4fYF^#%rC$lD zJJh)ld)p%mpmY6(4u9fDoh!h!V3DUmDpkqiP5nOI@68w@6vCl4YTc-sURyBueX$Bx zFyJvomro3 z>-F1@6rVRQ|NnviUk+UUCKuuU_aEN-y{XqH<5c(?gYovDg3nzwUgu&kX)G*_`n$S`j=ysauz8y!s)H zSBNY`0lewDbYZN6Q^)Rsc2XxAb1%U2C>Hk0N1`&|9MpaXveuTOYY4c0qnHxL0cy$k z5V%a{ABTMCb>T;C>Udqx&G2Q6Wnk+`~))a2M0lXE$&qNjaMg& zljlwclTW``SO4}nlT{$%vq~gJqV7J1%zTHh(I{%OAo(?z?^k5bTfb3o)LW;AtpI;O zex?nek7N&^2lVk@P!b{Aq#OjqqI{iH&%b5v^aEWbe0g)?}wj^MrBN?F7GATtLUC_n^P zKlV^HRhUB41&R^yUbQ_2v_s;_T<%2Qx#zD6n=v?27UvbBS~u`xcf5e+LPY_GlP)5q zO^4=udO6ceVl^}VY?&U-vMTRs(w)y3^b}hC#w@!Q;*KZLe;N+}M#!CNv>qO26|Bnjo=4K>Hz zbeOsYwMgOn+qsa6+BbvdJ=+VoXqJV3m6<(3}X_A>ybh+<|LoJs%>%TUBC$Y2|Y%Q3WgITbbL_8l(Xb1rBjUn(O3Qp z0!J+=XiG?mCPteZZWA;p0*3#1zd%4$ox5gvoOpAsX-(Gm>;?EiEt1xL0L!V$VH23= zGhSSY``U1>xe*x2qVBUyDKY&l0arB>N;MzAMx;__$U7l zu+7wh^4wWF615b2J~-u$@7Gc>@Odr|IC;-MBGFlLYK~TQNn4zpnVsXH`sNQN(;0msbm}zC=gH|QBT6n~g`4#oTLABhao&V+!wD6kB6uyVG9uAs z>{|n`+l_O8DKaEW`H^_b+~Q?307ltQT};icUvoB&49q;AqWFC==!_i&i2;v4qg{Hd zo8E*p4>CdtiE);IT>f0?__5s^6%F5Z6oN^((qe`;q5gZtDpq5`5ZZ@3>_(U&>%lYs zlMJ#(HKj`cB_NlVp(MCI{hY&m(+7^X!;YX1$uN{kWD1{(eV*V17JY)io-f<3&RZ9+ zMhS>W$bh_-No#SUnks)dZJc``{)F<)aNw3pk7Y_UAt&5DV?il=oAB0dR@uFcO)A4Sa20Z*dqjcxkG;tx8|16VydeZ)i6uVtNl?vP& z#7~pt04P$Xr~zdpS|c1j!6(gvp5bj<9#k-+FeU2o>X%nBGskE2Wa?uxIb6&pVYBSD zajsv=Hm+`YI-i`JzIQoN!GEfsiUj5gDqBAfSBywRSUTRCqKuGdD;*o~JJbC>B`v+3 z$#?Wa%+p4?wCyvNVu`Q?^zkE{3@?Ul!fTsuZL>Z0o5GYR8e`p-&N#8UeqGT(Mqy1`2Pql%6^Yq53T{{%>pHcK)5$O5<;1q2t= zuX*yA9h--rdt<5mYUnAIOag*=Y_8n1j-J^Z)K5v1MvlxV-59Ux*$QPd{d(zDI90<{ zK2)rralTZhd%4O$?(ZVlNI@TRh&Xa@X}Xxo@?52Y$t~lKFp4L8{AS*ZD24LAvo2aL zg)BDVW`w2xghR#|yS%@kQ%=ybcGqoCcyYrC@3t5I1CFL%$P91{wQ*Jb2WWvIi1t0#RfJ4UKGEX}~#W0nAg|4M!whDY;`Lv8#h~ z@`|9H4D=QM_t8@?AJs<5Z0n%>O#&st`u9v2`!N!2jml+j*}J5Cx(t|ISJxaG?O^n4 zX`vQ<@!}%7L{F3THpm0Ysup(Jk}9y6jR2f=p~|=ey4u*>>c?sb3}v#g2k@k?&weRx zV7>zqN!~=q@YoLDo~y&gb+@<~yJ=$72fCSe2aaw)GvlHA>xJRX3hJ0Qmh`ZjA=bDf z#9Dz*(`xt?0n5~#@`EJ^vq{J$X(?*BkeT2RFWn3e)7h1qne4c*qz~b$ZDb=ztx2A$ zz7Y%A_LO3+`}Lcx=ADH{Q!+=ubV5%ezt4u`nD^xgA@6%1IM61CGVo+6wV-Z@SmJhj zAC{G4NvQjEUv0fO%|pl|_Ijju+MFp>+x<}Pl+AqbuSgjeiX(CHS-7`_eWIJ)#=kH> zLK>MMi9*-9Mf_32yrZLHs^bq8tEd*$cJ4|x=97S@oqj>8+I#u@E8*R8?}j6c(&~g` z10qfwrMu4{Mv9`TwTwVa;4H& zz27zxl_$%Ydw=ud9=-gROt^9TY4iD#h+ZNLuwK7b3iBH=YCPL)FmRg-J({UIo{vgD z7@Ijt)=OC6nIA+3rmo96r;t(E(# z^>6RXNRH0yzwQJcGlyiO49?1Ka8&u_>00Id$A^!cf8VzXJ8>A4-%=R046t->K5;a* z3UWv>wfzv&6~h)lS*}t-ZR?n{`LRVyE?5lTg5q-Sbs!}E`R9W&x z0gRyVWM6@8B)Xtmdc#_^Jrw0mF_^M{a{~8+b2}K%Kht=Yh}e4e`fecYagb{Ni{h^i zwkCLUC<8(nsD;v5kLhX#uh3Qq7hE2RP?V!#9`;0hUD462vtqgAYe z8I|Oe*Tu2eryAQqo8k;j?dNyB%wXAVYro*m(-{jT=*;;;7RD3(+A74gdU ze~vi%1DhEttu#uG|CxRJK2fB%a{X}1!)aJY+M%>Ae~v`fq4$ne=z)=XG_%;qAvBS1 zCocSa0S8HidACe_AoYG_rFvdt{D%u<(0f>ixEfsM?=g#k%ZPq9n>U=#Y6y9~H5kgF zdFY~igNBF|0}r4oJ*<%dPJy0BTRzRmz@{Aq(2nCt(4d)YF8U;*2CNZO1s)9Q=_=_X zXa`v}aexvt)`Pb^oRb~L+>K-5`hqImgiiGPjXjNa*QWe_d-j8?y^qKqlzS9%qtEU* z*X-n{?I_#+30a=nASs=2?y2FQO*L{qvlFq}N+ z19CI0-Xk4Xb2YQVzT1He{HjKnOfFS^r_2f}&>;j6>?cX4UQ?>K&pGior$gXI^_-=0 z++cqXCj|h?ALzefdz1+BdO@EZ;DI-=TyIte54yC4bK_Ym5-?$Qp#+7OL+|%m8YvkKEz&N|8Edv;}`U3_$JEO zP?&mlD>>cd$hGw%#1O|iBjX;od$BN+PFtm5>;#>x>?aiy7YoJokBBwdEfZPe?q2DP zVkCMZMKYGP7UAe{7Wt3NnDh6BJ8(o{Yri@ zX3{w;^l;*?s*{upcs>DnJVQe_6$g_#F9UhWZ==vluSN4+%oQ2_y8d-WiHa9JCw3H8 zAvh{cgHTFB@OKq%NVE_nwD!+}+u}gSK^#{zLzJgB4n;Am1PsbAQMhx{~?7&H_XZe9KhBD5Mfz z9R_Hbhe{1fYvOM9lCS&gmwqs42@gEsGJlGDfx-aPpG|(Ln*SYZQKb-|-M0z* zL><$xljL!)E*0Q-@KzIxxFd~9B;C?%@Yd3R^qf5o4Rvig7@hX+6QW^xWdCT!gH<^P z*8Ex$UplD{EkIGT>5vJ33(k{aGreP)0HdL*5I9BehVnz1`v0PrE`@nBdnf__d&}Ux zUSV%=%Ip2I@S^XKyvIo9ij@8S3J)#8^k(gi;{fUTI>0z1^HX7^gY=3w%bO_7cX{`R zHZ2uO9n9Vi&o-e&5nTsN>6$NA}zGQW+vu z`F?dqK@vcc%bogn*73AOtnJJq3HI1ctK#gB;jFcdJGJ-M8NZAyLZG*PSt7y!!f|gU z1V04YId|=>Qu36pW1iLAtux&7^G@Hnc(z_W$3hX}C#Bl}koDP=?(P_G7J}z`&qXB; zO?_B8?@M54&=HuM6FB-IcoGiS)`42Dbp|Ql$Rb@=vASaG^&$8^`cZF)i-p9-AnXt( z5uts4B;#bY?4~)ee>R1ek_e6$2CBZhW7~h8V(X#o@j z#yan1tamUFZ)Eem-p+k%KEOk0t_FArAFqLILw0F5oo#a5VUZmX!>jH?86rDE;Zr|VLz#HRfdS3u$qF20acHXCS@v>R#JdQs-k}Ckc`1c0u8d>?vgLe)srgiux>Kx+ zy|vaWZu_SSz2Dj~v5X*KIDl%^)QwDckxp?xz&wzfjfy! zM`vdX9K(u7wq;GrlfiBsOUDXBVTa~Ev9g`=%d9Q~0nH293w_A~7IJ?A&U=2hk$Y3^ z6npPeIpMYPQa^?rpA1E%H&GX-?$?#CgiMP8TFyA#9F;{Yha(PuL+lx2(4i5uj+n0z zIzzx*UA2t&nG*{-ZqnPf%=~rdB+T3^@23T#*rk@Ezi)Ui;ofZITPXt-JRG;MX9Ok1 z6C;+dm)qaN z&-H{bm_1S9FgEwIxAz&w-3@cRth@SX!(`#}J_|Zux8Ie;Q%Y17mo$Bo^;-e+tP8%0 zmm_)(p=9HjdMjU{zj(5Lu%qCPJ9POo!fCrj;D>TwONz#(%&DQRgf6@u&A z@vsp6?9)?S7l3#$a7a%^E~!kik_Af#^+|qqbD)j1wlP#XP&vV`RzaYGUzAdYDWKR9 zx|(f)KpO`pEez)S(Mw)nxO5yZF6eEe=vr~?+fJ;G6Dzh7~S2@3-n)n7I9J7rFv~OD=nrG)m8_My} z@5Q$(XB(Ao!JOqcP49iT{u}P1V74D=_CT`I2@*qM6~FKDi89Azr;Kk>R=Mgz1M0Hl zg%T-l0hro4GWf){ylDPrM5!>hT*5br@>JsN$pD^9{cg}Q9qQM{IoresfjzXuUf`tP z&~Cg5#V^>uLkH}LP2mJ7N>i#pq9G+|mH#$JsodV14UFwg%RhHi1uy-N&dxiU?f32D zs8JN9HH(x+t%?ylM%7ACT9m5Y5?T~BTbq`)cI;i1QXN)|pomQcZ74z!GpG`3#D1dR z-}5}bf1Y!m^UGh?$vHX6opY}HdcE@gu+YemCd{_N_b28?kJsg zdgx2Xs|zZG@aUqhnwlE-iQ4$J$;QzMJ6qfS)7zYHFAtUAHEo0#X7c7i3R$A8^)&1A zSpkpP+XO6wz(JO#6X&g9JAM*BUfjS5z5*u~u7<$QbC4}&P_=6 zyX&v1h`pUs4CGj@<-p_l3f5e=4vCO*SeSvMVS};Sph&=1DcfQe4d*|`&2l2uE*Tr* zrQnJyMjqA5LMwM3z!iGO7zg$y$Yw?Y{nsR<^fX3NKSxn}Q2-q5yL8K<+^+vQ;{|0B z=4v@a9>BI|LK96CM}5VHjt|pUU0yaebz`3=g@CQ65x+}Tm6P@puN9ZdqGnMKN_}Mb z#x!0WGR8{we*!x05ys@XWO+yLnqSB1&fDv53W2SM`46%qk$dDTDJ2#cEluzzM8{Vo5#}X(Q&waK>RES0#>LrAlRhj+UWF zg;R$qWw7<7js}ws!xfHF6Fh`RL|ByvK!w=P!bh`BBtVhkJ(l*L#kJN9fu>xkwg{K` zB12!0Fu=LZOe7f!yk(JCswYe-IPmH(S@nP%uXKcy5f=pFpnpq|l280`_D3t0*nIWI z?{Ybc9`_H)8&bGtq~~wr?Nl1rnYP(`fS|UoAE!ZD>e{JVn;N_fh=j8r6S*Wbuj956 z%~GXrp*hXGfIOE~Z`nYtxEp=et^YXZ73?%+$96VN;*Ace% zd}Q7}ma@*^@YJ*@Y8khYYqgIj8)8$EmAUJFK4A_y*f~o26sz;P8=EhWA~IiWq{@5* z50gV3L@2dKx=J|@A-XKiDWGDotM1?+q4ysL+G-5$MP^BvdjdHg(mN9!s7_B;`fOb% z7qDhSrRX_@&6Is`x7zi#9r6BTgWoml+S5CKWsl#pFKj3-j;?VVmGfD|9$VcQCm3Ee z+&4JCYdX-Zg)n9w>=T^;mKxwPaFI6=s;B>x(MIi9;~Zd<3soeB7ap7lLJK}!WiccO3{L==w?~VA_^ay1{7 zw2n|&ihgW!Gs>nPd!j3U78izobbPwmLVe)mTAqiDnt$tCVz`oq3L7K|tcX0+go#o$ ziR7Jss|>5pcjOO|c%az`9oIa}D|-XvABX6wY?2(m!@&nwF)$ zh}wwJ{L;!OdhO%x?!h$MY;jJg?sRjBoa?vB;o&$!vOllfjTWM zO>KXvh%(2bDEpCK98YW0?v$aft}Y8+dk*ZKwc3hw!i)5G(S4~sqf`vKs6?e6L5-&3 z3l!U5A%!84mzWj!Rt^{iuX@s9)8skqag7j}J2=k5Rq8;oCO)#7m*dzJi@oulheIS% zdcL|609vpkJw0*wGaAlhBl9cn4M5fcM4y%lVMJeEdUOrLY2Lc-Uy$VX^5X0Pn(ucg zrV!1gV|sGCbx{#h2b4-9ngR{=>sm`Bi=ACXCtF4^j|k^%CbvGu18!F|=VPQd9@f@k z+-+o-ZAyL59$PKcf-i7;HPUBFEepdm>FwlDmN^g2I7u?!00DP#eeL!%zOBi`A1r?5*JqphqwvWJ>Ym^ zNRC9F3zH+aupHXnuZYpQ6LpZN@vPEgtfIB}W=^eP9>uNSNZqRzdwNiGZHFd+n&I7) z2{o(do1aF(f_CV1y|v@+2z9e{&sMq`J~wNO>KnhnX--SsN$ER_$7GW5`T-HccG}awhhZ6E|dR4vOxK1=t&_Pq+UNW3H*=U&?tFMn}Sv z_Pe&~+qJigHuIurepl0l3fcjfje6ujeD7WO%f4h!)$%BdyG%^ZoIFKGStnNmY5_Ed z1*Cl{f)YCJz<_YC&7g_bqk(fw$z|dX#;$btfMzs$v~KQEVO01>Q)duuw1SKxz)*uo zFmiM?SLyGv(c-C4xw3RSzW3pjJF4YCV`yF7{X?tnVp#CWzc2I^{gyZbdxW=IQTU5>D2>RI} zKH`hH{MI54B9+xeEw_jX?CQw^ep)GYkK60~ajKTKZ);xCeb~ULF~J#}lWTpd2IrLf zu#b%gwAjC}_@3FcoqzpKfyAh`I>n>eT5Q7ZA42B{tF_xlE#Fw_&Yw6<-7Hbc z@jhvY4}-PC{JD_8y5QFDPG6yo`?-~8BPfVj_}$og@aj|h0xVfQLIqQg!DFt$ntUXa zhM5Mt(WufqdDL$BBUm?bWzw>_xI>1Z58tUm`d^PRw=?2OrA)vq5mIcPy+s=3@{D@dD79g zoV;C5;wqe(@G^Boa7F+xM5xy%OpS*3Rq(1<>{-3GU*#FejW6yI=!ZEa+l zYowbS=!_uIEs^FkyI=g)3>HjK3$7Q4K&-CsqdyY9BVv= zD=B@?PewGeySs9)o&ktT0-ItJ@#%0`uNq{0_>5a8(5ITaFC}xg%g4M+enII9hd9Gm zgR-MeZu<_b^3t0qKB<6{quoE-}++ROGq_eh#Azt68OM#0sNwj>?`cxVE z5G|&r!2WJPmixZtBcC2b&(xTM?&2 z&_D02(b##OX4zsJ`7By2YCc4c6)3=N0gy5e4M$Q&hPA0~vSJ8Wt$5;Y7KP*a?Gi!5 z(a2B)+%OyXaPaUTCpl@b_io)|0m?=(w_H+C zTsva7=<;Vx9=5=FBN84GzU-#^>OC$n?LOBxZZWX&87Lr7%q$mX96xL+ zv>XV#;?o6{h6TL{UEKLi1X6!e?^it0 z!k+1hkmue*(pv|#gzJPpM1n!u1bEEftLxbWbl>P@bR1$>>Bp3%h(MBAvng&AC{U`( z-k>fbAhujVs%PuL`2#n-k=OX+YTOEl)k9sJz90@($g0d#@E<8-4Lmnd?f=dFn5bSo z7|NTv{5K}Pl)01Tx`_i7D4agD#NUssX^M+~!N;^N3&?a_ey$sQXo@e`Sqnz7~X#VVp6!R$s%f~hJ z7H3=tE5-I6hc6?yw`oIPnV@Ru;B%2y1cP_lq(Ox( z#D)l8G8GMuyV>1xMJakCKpkYHsEwO<=x!}+S*Nn6?|QCEKWmr=5KP$1LK@0d3;Z2? zFKX8s+{C*9_G!KKQ02`YX%ea3=jjgKWqGOzLeW-ghk0nm_rRsX7#@`;z`5>3hB0N2 z@oFQ99Q4q4iq}iDfRBt=vn|8afao zjZq7&B25gXnIhgH))-_^8Kq`#gUxXUhcN+Sq|7XJCN;is4cS8gjSX$EDD){&7pFmK zlA-p49~e~|M6g7~t+LD3vG#9LzU^^=8->5vftG_X4>46VM~~@#-iKe(4iXRvQS5mZ zc7Z1^7Xm|t4`JO^KqC2LHmjQh?Oq|t9ea&+J##+w^yqP{Ak+GKx^IASR>6!4%g31` zXzM=d=_NtOCB{|eFV|rG7r$AbJ!e?01yrZ8$u(Qla}Zt|i-gc^Ym^fXS?P|Yv~!{& zrgQLNR42(F<}P7U;OXz{{b`GH@Dt?v25r-WbB}6k$N?Qd^%s(dtcs{nZx=^S8EGS! z?Zxp>ezJ<6>6RpRwV1Sj6=q_v@BQGuS8`8xa@9+RLsATwJO?Ym&Er+2{u4?Oi}m?@^r^C6MMdBq)&2%tx%RZ zu0$k+J2O^)cC!+J1D@y!JL^*Tf3h)vu-3>;!Py)<+WSF~vzwb+JuyEBz48IzHDcAi z^s^ppUAww}>7JEU@5pECOYaNC{7o|+w(zm74_sF8yASURM@0xd`SI<>_C@VAfgeF+ zmW5W#Z_F9EKcnNaODFAHk0f#VhBa)ckoaaO{C0-0Z&(DUHLs_=x2E51} zp@Q$w2nuTcUs*t4rrZi6wzWibfc~E>K&|vKjhBlVg!jhC4@3g&M`L;L%~y_?MC__F z>~}b;P-;QiJ4`@i-aCSzL)8j`QTNQW2{`CN0JaQyT=d=qrYh&RD(=+tv`3#OMH*%> zokh$s4WS*pz^gwgPqVpgHqe>3Vg!A3VLXfx%@r2RrN&TX*gSVHoE<~4l;R{yTy5b7 zdl$Jf@Yo2*0lUqm!t=1KaZR<@Xyf|z>1IFnk!l}rQmdbm?td5!9BbnlO_sh;qt)iG zRMY$`8VC&_KUMQA63DNv(*mh9vHVXoF!Q!j2iKANkl%E{F1h-Apeb&h)cD6`1KM+g z(3Uj(3i&7ezp37gM}L+*TBLvV7xLE0k3gOf293P`jRt<~UaF>|qWN@sEr6B0Sy_CR zy5z%)q)4Rw8TIfX@I2N0gHYFlM8pV=Oy@_P{|hWjBuk3eh7<4q^n`mVd{2M=X9GHN zj!;)PW!v^lsK8M{Mhtig_$21TTxmnw9Douk=h8!z0gjd+r8YR*=yP^Vg6qE+>=2m||B@Gx`4MRWSQIzYm&y zyz$N%vaYw<-SmEpj8u6{oSxHV=NaVZr;wxMX*XPAQox*jUq3r3ie&sGBO42gv55%C z&PuZUBtJ ziJ5V3*CZ}43lq?4jQ}~6ZhvLDI5eAWs~2_f416%iHkO}29+KJPu@|eXzJ3&cllkUA zuh~O`BYWEDYi_7(eoM+c&+Jb$0lF)%*0j?*$Vcgf+e6L5&Dd~bdEw={in ZtoiMSRZKk`%uYplz;umu%5FGB{uk?8yhQ*2 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.svg b/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.svg new file mode 100644 index 000000000000..578056dd2df1 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_hash_local.svg @@ -0,0 +1,483 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.03e-08 + + + + 2.07e-08 + + + + 3.10e-08 + + + + 4.13e-08 + + + + 5.17e-08 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_tree_like_local.pdf b/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_tree_like_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cc094f788aa08aef27d7a30e697c41ebb51fb6bd GIT binary patch literal 33986 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_tree_like_local.svg b/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_tree_like_local.svg new file mode 100644 index 000000000000..a12fbdaefefb --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_text_find_timing_test_tree_like_local.svg @@ -0,0 +1,542 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 8.16e-08 + + + + 1.63e-07 + + + + 2.45e-07 + + + + 3.27e-07 + + + + 4.08e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + splay_tree_map + + + + + + + + + n_map + + + + + + + + ov_tree_map + + + + + + + + + rb_tree_map + + + + + + pat_trie_map + + + + + + diff --git a/libstdc++-v3/doc/html/ext/pb_ds/node_invariant_invalidations.png b/libstdc++-v3/doc/xml/images/pbds_tree_node_invalidations.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/node_invariant_invalidations.png rename to libstdc++-v3/doc/xml/images/pbds_tree_node_invalidations.png diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_node_invariants.png b/libstdc++-v3/doc/xml/images/pbds_tree_node_invariants.png new file mode 100644 index 0000000000000000000000000000000000000000..b375f5168d7eafb550d5f93adb95a585fad389db GIT binary patch literal 16553 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%0Dtyn2+uing`!P7P&W5VRHfdP5cA+P-}Mz%B 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 Y0Md1O{}bmmU=#FE`w + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 1.70e-06 + + + + 3.40e-06 + + + + 5.10e-06 + + + + 6.80e-06 + + + + 8.50e-06 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_set + + + + + + + + + splay_tree_ost_set + + + + + + + + + rb_tree_ost_set + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_split_join_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_tree_split_join_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..08ffc5434749019c9f588ea77020c5af4494f3f4 GIT binary patch literal 32608 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_split_join_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_tree_split_join_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..4fa7e32445cc0bac8c5c88bc2368fd2adb9c2b28 GIT binary patch literal 34337 zc-pLchdY~X+;(hgwbUp@ON`nTdp}w#6t(xNirORg)~Y^gHfGG$s8zI$J%gf%s4ccC zvG<v5$lGHyslrOUuZw0zQuA21Oib*)t~BtK!nU75J5FL zDey_-R$Mdiix{o~H6RE61(Uz}7kE$Mp>7HXt{=boAyDDV^ann?=dEhut?v%=_Otb} z2l@H=2|Kzu!|iN6?1kOE95T1$SwNr%An4P74E(b;X8eLj4-dO{$K~EKs3n%yc|0H_ zd_$zFTUO`6new45Z)|YPRrSt`D(#Wd5d|mna;2x`MrEAZcZu&La{jt~SM}-dU%lAV z%iUA8%Ez`~snc07{?z|(TXXKVR6W_#t@^p`(=0AXhYUUoE{q)dLxa9~<&(h6j0Ik3 z%Ib(_!Lc%F-Z?hXH&?96w|M}6uowz>vjF^|zF?pDzgwYriYVYZJOWEk1-!*_Xa9eH zz&%g0dEk}nBj~C^;6YuJWutFM%!dyjj4Q1aJjcG89(S{)ok#z7mlFfjoGozW^L70` zR_=IftlV4{JyN1i#_s+5pSQE2=bLsIL6I$HwqKY(@om5$Q!ZrpJZ#4lj$(Dw7+lv{u4j9?w}%wT4|YF0th*1o_f@tAgcw zEtRCys$*P)MH!_Pw@hy4MFpJ#(JCE|=nHwl;bES^hijw3J8fjcn6ICf^WpZRy~JDy z%Bnaya$qu}Iz#u+*Wp}v3=*}RZWn)gu|J?B@<`#Thd1|bcJN+L60c59uv@Th!&Adq zRZgf;hq*3zlYE*o%Lz88$>IvjcNQc4?>Ty8^Z(e`R2}epNPcrlP&lgdJ>RUILlqYn zzdqet+V0O$IG2P7#0!}mL(DDSK72&YOt?YjLS#~9r2I=bR|=I-#*$uOP2k!q=s?g- zP!{ft**Gt4i3h@B1iWf6@AirN8)+Q|!>%pe8FQ{b!N|>w@Fh?q6ah&gamEzgEVq6A zsXlsBdBh+Y3?J6W&!?^k@SdH$Nko6GXdmzaf~Fl@O~n2n_!DtDd6p~8`X^J$lwM{? z%+n!9Ws!L^h5VAaosM~H4 zwS;4YX_>gUyJ}1PcA6jL=Oj^@QYjXobliDl&@00RCKyZy6vurT2+fdtc3gqCw(a_odDJGYl_ZNYr4wYIgrdyGqnpXk{^73jt>8*-o8kID^gVXWle zVMLjeGJCu#o{7MCcez)ewj0K@MNUn%l7%w(c=`G$+gI8gkcJv!&mN6Ryz0V?rQ-@C zGh&aTt(7UEOqv~? zBk*ZR?wRD1uzB}Ln1BqLR+)BQVV(~n@U?5)7cdhP5zl2|>qh1Rsvz7t{F&!g>hfmy z;m+-yr>k!YTx@bnT{LIz!;Z2FX2Ka@MX>e?(rkv8%$43yeQ%M12~OIokjii;Y@_+lQpM#H;4dkMXJH9QUj%)Csaa4xZc0fQJ`8K zP&sp(nbtxh9V%uvoA!`c#dQgJa9 zE%&BiiN4sI$@{QWor#u7!q5$I+3er02dwiP5)3hb7jo5Q5u%xERKTr$;Y14c#n$}U zHtK=5nSbgu|Dhxgi*|}dmW!kA4GyEirv&}!Oz!k+djbX|0!ySFknf1uLeO_V6(MI9 zjFZ=Mdym>CSWFyYtz2Nn!feG%qjAa6{%;COm5)qmU6}L*f%_`eS(NLXJQ;0GmKcayS!Sj326L*6C- zg2Ft}r!?fuma))UZLgJUI_WgqCMSWip8KZ>%oq>%5207EMeruUH2HH9?Ua$U7sMGv z;vbV~srD7dfeH8^Xh_%}S_omu)CleRziPY{ww!sfY6(WrkVS!J!et^?{g~2m#yyno zD7$+=?dkjK`fO!%mvF%s>kkbB!JZCVWdo?7QtLJ&yfIn5UO83cI^{cBYFM_6%|6eS zfiK4rxp7qy-~NogdJZ`UkJ(silnhB4f}pPC#=Of^V(3lqPSpDnFf{-K@%h6Z#uC^pyAO||Pv|tuvWniu5-s@wV{{q!E%;TjOfd`s^ zOuT8UVg1Js6iSIGFcYVhV^OzfQ1c5#`d+N{Ic<1+Y{TqRJ0yR9C(e>!KPs9BA+gu|6C7HDINv@(5Nso&$B zkp0@CU`y`R#Gew7K23j%moRHJyd=UqsQ}wUDItS#k?>&u_Rmmuq&ZJW{ufbA%touS zTj}(gC$@f#kzp&BK=8rFtscUzFaRdsl2WsX!zZg8xdQ?MFzJswNNL&S{nkcG@Mb$49SeWMq&is4bcEf(C8&h zCEy?`k5C}5rh$;xYTqh*I9rf7@&`Yy?eTGGWNSkz1XqCbt=+h%nG{y^DP3HCh%u*jo zr9^Z>xf8|9gsq{$T1n^J)QwlOfxa6K~=~|Rlh&4Y1 zWr~0)us147~?cX^&ZSEWpxlv4NCreh@IDZg{9Z2+1soe?k zwS!tYcoqDq5Si@;3mE(+4y;WE(V!kk;UD*V#pAID0?BqeWF9VTl%gf7$SYoU_OXCQ z*%)$O(W~3}6O;28#rh{6;MV+{C2<9ulcf?+YKZG5H zc(r?B>(5m6%3Nz_e3d(*sLh4Vs#Xe%^}SZVCq-mNu;mqo5gBLT-Y~29xS{xLzx1bu z!PP}&>5oi_Y%?8F-XeS-c#lt8DD-cfl(qnTr}HyFDPof~TQ*5_^`Ly>jgK3|P_`}6o9y?;-}i)-7Jio-rF^yDw+>_d z^bvr4@kxxD@v*Zk-r~n*%lTH3rQeLtF%7$XUBI8SHzbrBI~}y+Lxq|IEu7OVr$GUo zhuFeAjTz35Rb+{_uvTp^`ONdP=7^~X_@aLZVENPv%SJ0R$$HR)&$y+}#`o^Y82}7e zJuF?_U#_g>_HJ?FK8WTucR^W*V@b8eQSUr|0&1n_!J|f<42Hy=_FUkAnllWR0AUF#kn#b0MkFL8;;(bkD-$&4Y6#xX?4wTJWqxq&9oh?(g5!ah%p~TGC>xB1*HqEsPouY z9iZOUj6R`N7-`YX&lQHnvdQ@_Wy!$RGE75HmHO*PjBtv~a)csd%3gz1{hQ`%?Aq1NvV~T$%bUUMZ(3E4Uig~LxjW_2sv-Sh1jb050K%8B z;xP*4bfZ}`!K-{WRJLM}$S{F!Py*6a*Cj&6_zA!HUl}rK`JV4C2Hw%0#5>=RLJ4DL z^k=(L!sP@1vbakiM$njBPGV~KtR!!852D{vW@i7?{W%XG*RMN!g`%f|x<-gY%paCe ze6tL|BXJk6NQ~9=AF!S%e!v^G^S(8V6hfJ2;=G_j5zlpmfeH>C3XS~vXa2RLgol7f zLL=3MtoElnct*!px7I_FSo%_eHWbviZQ}lzb>CWKln3r`08_n8KUXTO9+Y9=4 z@QNQ`S1sn0P|4pQKGG|-bdLrwb|OpD-aOgnsg|u(ssZ`kOdRVd{TQr!pIUiEYo8u! zOdxlgry{U}1wYLg({oGzYX47s zw~X=mQ=eC9L}6f;1hNw;0Q(fvd%N z%?6k>`feVX0_=2;TQgODuY*=e@I$-=kua$+k=fI^Jr>b+%$M%FKj76yg=X)HSfKe4 zC1^27ra5+(M!5kQVmka?2CvuQJLNiF4pfqaIse7DAm7y?RT&wXSXL=F9DG3Gcs}+X zWG_OApgeDQ?je|QyNl^NyxKe)*I+u!=LZd;=&$z*=Rxd6*h(k}bjmP^K&eS-?w_1Q zQqTvcjk(x6IKcZQ#$BeW9EaDJ2Xb?3LN5cu9V36fe3`W?Ys_R&LraP{(+JcYvd+g} za#L$sy*A`>lxu(ew>EqnVqfn}*rV@73Y7tPN&x*Ja4(9m7Ep_yVhR+|F=)@-sHLnj$IYo)rLWHt z*cq;Z#_Qqu0nEm`jM$#~hKe7?qBI0ocCg$u;is1(W8*J)2l_wu>%23wBS+~AlLQAL z;fI*xxv=a0y`??@`JBwmO#QbD(#9eNXN(k|2Yx2xQIwI6Zc9yt7^Nj1aXsKTvYn_DQ zExvviF;VD{KQtuYv&Ro~-gQ6YhE{1Lc}v>f{*$8Ir76-ZzOZwldW0W6)ZZx&~@eOKu2(nHLV`l$l@l>F`=)o|8 zvxe!UQ$_8Th-_5&kIp=>t{DYy!{s7!28UkFzl3BCetz=4xxsr?%xS&6)~(fdb5cSx zRWQH@ni6gH>FWx^TqCD_<8IhiT4l z!;W4Wyx%pRH?z6#;pEl+oE>5=v?_1&wm^>J$j|0@qqhb+GI!5TV% z`ZJ}&6B{-UdXM+WCD)B0V3;EQxEk4XoG1uN3(X+kAZmII+t!p-*3*QXD?a+j10Z^m zH_7iVOt0pf9~9B=;liq_Q%hl#)8tiLR9r##>n1TR@sGvv_fvF46-jG!{I5tn_!gYh zLaUAxeoLN76h5tm#^-0Xup$00k)9GnoYAid2C8Z*jhX&rN`VXO+P}{Z;VOwKm_-{! z>RgbizSmTe*|;TdutZ+=ENnjFwL?z=cvGdgo0(bD09zl2sN(vJefgs5uMZ=(u())Z z^Axg^x#AG}aQYYnBGm|F@fUa}fTE1xDb&f+EH5I!gLpG>rFDdG?4_Q8gQtWCh0>_$ zG*#@OEG1q~f9OjIzxe5O98v+9%u#1w*^Fyc&)Xjk-$lPi(?$yCau9}*$Zw*d&(NmsZU0{aPZXo z&m^NNHya7`qO+Km)T-OBZD6^YDtb{!2JXjQEcP%IxcSkluZsC@Oq1A5{Tgq{qXnYA z!bsVe!^luZD~AOOAp@K#*d5gUG{KszOT&rGn{X)UjtOQjJU_f!zTTrEP!;|pR5P7b z?EY)zV$?(@#_iy5d;MgI9);S-!d~m(qE2`i{Z@*iE9{i@eAa+>RmFyHp~c-60~CZJ zs4OU*MqY#OPcZGo6b5_1sf~B4?H#ib2Wb=V5T@fGXb3b`fDxfhXqJIn9UP+f>{_(2 zWB}ZCiz+@b7j|(`EYyQ;f(9JL-0McG&26va{eo z%_{lTHHk;-GV_E4tgU3)~qW6Tn>A2(3Ls@Kn zKUYb0!Fj|z<<`oUGp9}xCJRyL$tp)B$!P&W!B>D+tT7o9>nxDIXc05Kg;uG{M?4-a zgKpJe0{eg(GH`x9CnT-S9#`D2V%CdXK!vYwlJf&=9ar!x>ve3^DR}EiJkcVD}8(}mAo@d@yXA6a8i|mC?oS-At5lBQKa*x@);V|kmghG=*;V&&w*6- z8F`wHGn-HEhYE9+g%{;3vS91Mi6hdJw-gf+ExvMXFt0E70Njf+W%KRsy&Y$0bNC=a zEaH8?i-ul4Wo1eu30@lzEVkG-jwH4i_+eZ@8+sG%8+kMv#!JP$4=n_s1tilE zh9@v4EK)yvq1X2}@<bKo>PtYMg=lN-X|8{Ef#x^cW0Sg5ZiO zE7fBKViSjq(~!3w`Ujnjh?hbQlyULko#dcognmQ{d4T7(fkLF!f zyuL^N=JpG}*(@n7)yOYrLBUdy`T?s!k&lO1#0Lew8tk3+nnE8=uKEElYmEkxJ3dqE7^CYa2<*NS3olX8t0`zCr|A3~ znQg=bY6c_-*088wTNJZF4PgZ}kxcVCW))bL3jGj*q(QihrNU}KQbt+@0}~U(W#XI9^+~tVj}I|1B*6q0Zm`A0 zm=PIcYr}fOI;4;kN{Qe}#7th4`FBy2d;i7~U;P9PGk_&W8AxjGDy1z}<6tcJ+k%bD z}JE)&-CP3&GMXn`AMR1k5++mL(hWt?8Gr#c*N7 z8Ayb%yOT8)Za54u&$mE*Z+H^WEe3(CPStLU*Bye2X$T&t4#1%gF`2F%U zW73GqkPtd}{wF>+tmXAG2HE;LC~V5LHe|o``f|HBBjL9UKD45@QC;t!Rbj-fczdFt z3>+(Bk|^PZpEX3n%?P{czWfXYJ>Nlc3p1$q5{Ht-a)P_L(Q^?Wn*$FUR_5Q*vU^W^ zcDtgSMoTY>azg`qzM7&cE&;60O@P4gS#JXqZIa<`Ix2nppJ7IH)v_EU@-)vuzFg0f z_&7D7v1KCA38qK5bRSL+MGH2Q#XLr1X ztG)<56||iEQj|0qzM=j=SZ0@Z4>EkF7T=vEpG?4pTAT zr;d&p+^Nw;qfPR>4mAwW0qmlP+*{HdWNPU+DS!Mle&Tn?gM%Bj;!&!%w>JW%PN3 z*zah9!69BW1MJA_rbJlmjrI|9*#@lo z;_!VQ8*(KEk9cDCU0^T^O9NnqJ-k$ZMe{vfw#148%ykJpYRBmb9M)>SK-t zAcPwNgGlV?*~t`n#H9j7mrX2$xK@c(2=Ky#L+g=*Slq5E5WNz8l{U!_OK2aqt&q8J zxQkaveypl3@C$dK=;^eW=Yz;$ZZa@r(O8sDUG{EWqG-%tviXekCtlUz1#IMO(wdag z#<$N({BPzryGOi;S0vWnlOjng26Qv8&&I^=!E%3Q?b%l2wvn(^)5(!)3}Z7BgNGH- z#T}7(Z)|<;E-_aGa_J}ATTP*J;HqpcwODER&U_mV1naW&o2hm$($4-ua86VX493Cb zJ#WEoSBI5J6Kf*vsK2$*a=z7V9eTP{lmZY$MBQJ6<|HkP_{zk=!GRI_sf`Xqt`C@h z)_F8WaEm$gVM9>}Oy>PiI9s?R`dMV^9O!1>mxa84lncO|z-RGV5+B{44{eIE+I%%o%ko+}xv^ zNf(aCHZwtNt-*BdCcsi&XdJao=pk~z2R~nHuO#dmL(JLS4TMM4 z*9fMm?%xqA2UU=Y&`nK609z3qSvwF$*MA3E*I{A+0X|;%n8LmCbL@?09DwD zYgGgttkRmSGB0ey3u$b-iLWxnYM!>lWa{Z#RdK0ZM78O-DlxnSXegM|>5{voq~Ig^ zWqZLe)%>=y1EldM#;B9!6C68ARK3g?ja*WnoWeXGstmsell+{ezs-Gs@i>evc-~(A z-8sT{a4(EP?#X{!d|74ho%$K5!Xs~8H;0F%DhRKtJQ%=S-BFmc9H{zA-ou-rmJozP+Fu$cZ>X`h=@YR<+QjIz@ogv%E zD+V0`If7ieTcO7is9HN}EWmoco7HPcIJNt5*t!H!eBaCBr~K<@(0Bd#+2ssJEInuG;fj5_%_?YG)>RJFgYad zgV_3J#78tvnI}=Fxb_5v3^87ekOh=hu~|S&fgqGV!j4|4O(T%7j&6mZ380;xop{M| zK<7Q%s+n>NQ~aCwq=wZ0e6u!fAXCcy@5Sl<9BBnenBWI_?av&LS_baN2|yNPY9IS> zxA{}0JHTqy21uH8CR7tSoITudz$&j&U+xCnUxPL>Y1oHPG1MiMxqNNwG)J4h?-P!0{_t7Jl z%Ihi+jn4^k!(ot+?F)cwar`S`1B{=d=RhC(`qF!zd7cK6Nf+nk4pgoY?^qhJ4-q?f zq)mBZ7ycO;a))ieWx8%RC;aBHDc#ie`RAJkwmezGzow~3g@>yo?O*B0H`_TrdjCL{ z3n=L5Y0jH`lC!;qCvFwYl}E7LQ7g9ohi~G7rS2D|i#Laf`!2^waO6!lV7c(P4af#2 zQwZ0{I~pDb(W(*+CyF!sr-@3t-d{jmUOs+jj#rl@PA9U^Qh&_>YDm@+zUhY(@;SSu z7JzX{EqE3_hKQm!(*d%pdhn4ZnC)RnJ+eGnWN1=LPryddL+yqvxmBf10Ip#(#si?- zjj`fw+O2+!>Z3!%=;0!Nb{M`X7$!H@9C$#*-N?AI1SntZD97Q}Ez*mV)iY_E|2dwg za~7Xo{#Zr7a5VIJa3~WU0IPX$qwuhupRKIgKxag>>A0w$s?bJIKDiHzx)aZ;BDB2k z^qw&1qbEa#k!CSZBDTX(n2p;v%Bdo>w30&Y;f~$0I@A$?1+f!pOQH-BHDoyivxMyN zHFXVQ;7!Wlrz_5b%qP6xGLZ_5&NhI-UK)zHe*}pTEONV&Tqv*Xoj&x4M3yI2DT&fC z!(i4LXQXvZ(oz-S`f&xz=v)dd)KK_9_PSVw?$Ax@F9FEd>tbwHHHS(SQs0Kv{6X2llfK2x@&0+G*38i=uejv6=id)8Pl6`c0RNw> zIbps8J2W1Tz7e0KATMvb8|)@}Gk-4XG>mNJS|m3X%88K>y-7f|W}!X71f&+pmoBzv z7I{%G{RoTHG~wj?Pu4bbqXDq%-6hV?Ssg2%depepur9MXRqLLel#~PsySgxTz-9$- zdC1yIn+iN&VkVkqk9z@37GLu(FZ1EA(DO~dseY-sU@SU<$UM2CKmD;?E(9yRm{$+S zr`9|P%NA97g6}xmK=Gn9tgXohPqvCR3ce{ni#X zN5o4YM|h0H5uyFi6=+46qzLvz4_Odf+93nE*k=hTSlzfxf1f<=0=N0G4pieMg z>qt9d;|kQ!+-Q&Xs$rG(jl^}#M&o}NZ5&n@%s~YuG;`bN*Bi1^4r(tt&OzUS`RY=? zV`hau3D1n!%r9i3sC}Xs_g`jJFoKz*!E97b9G1%>mQ(Sfdcks#zPK@A0sxzo7Ne^I zp_5E?L@TU9{iMPW6!bqmg1syl12ZFjL_`CbQu7t_odOMpoIAIhaY6dZ7DUSolb_E} zQ9TsDXHF0cVuzp*|IH0gH~PV~6a-5p+Ms^mSSj`%4{GIyhvpQ(B<@;OBSxMN#i5JP z?%~1nYBo%epr1Fq2ww697zxBETw6e7oD8qiHK-&AFYvbcTJS7i=c+osKpg5oUz1@) zElvywu1p*`#GJ`F{HAG~#L4gtfelPE!U7t^Be+c*>`rkUg!wvw!IG%mSz~ZwfW9Y$ zM7$68MV~8MLs*?)vtv`hZ5m|~5`aM@$b^Yx3AF$XLIA6&d9!~_IPC(n9ydu$0hd5L z3 zaFJ2zC%Yws3FA`465qIQuk9nl+$qS<)(9?D)D))wmw4l~sn$6zSyh zI$+X0l{|=m(nU7FZzH~=%nyEgo__+>vDST7)DHClqWXBWL6Mmu zy1_Ju`r?t(i)yxoHMBX}877(h+c?ktof4ShXu>W*t`aD#uDuo8)#FyHyxHD*JUevX z8j+R@Hy~W!P>Ka2305p|UGUWdB|IfTP1y_bN_W_QY8sQ$j`fv9=?GY?cJ2(n7q8b zb&1@-wGt74x}u^-56^%FTjpidBoBSJ>(06Pg2Q|S5m^rRDpTzj%ciyGAB&K2!VdpS zv^Yx$eh*<W7%U>8wQ`Xz;h2)7mN;rQXyf}cUnrCU(2iEwA3yFc zGOVe_FjimvP111_L? zL4IIZX4Jnu@qKYOhEb@YHSGFosuq~Qf*e53`@fo^*soUd6S|CcYyW1Ib=+VXI)I@j#BkcJtNQ`jmywsNu0@1BfpOc|-&$8}p=6RaHH%aU5Qbb;u1l zGG@pcx^-gcE&S}h=TA9~u#4}!Opi;4jYavTYk7BgZHkd8>MYOG3HGE#2_~qeA7=bC z8?7^=uSggCx;Eg29d$)`|Ge|;`K)76_K)s3*6{&MO9EHCcDAe*yOi7XRUE6-?B9A| z#4Nwr00@(a)pVoS)b(~fJ}1i2(NQZVCI%%YCiX)^L*oZVP(VmXs1Fmm>yOQnu{=N8 zl-sFoy>#t}yPQ_KJ{_>0_3UPQUk3I=Z`KA|xM*hB*RYymWBPur0`gur9cv8cbdudlH_FV}BC;aD69vtB1a4H-e9 zP{!ZlyTf4t1E;5~VfqjHFhAT{FOR+gpj|ndB?DiXZ4P?Z`o2&zP0Vj=dL#7mERNq& z6En^qXrV^%jUDCVNJ3JN3<#)St*<{_T_0z9wYw9Pj6z1jz?TVt_ z*{q$K_3va*a06EDRb&y*B2oGp_rqStn7OX(@!{buH35K3f*?~bmM1=ACB>y1J^_7dj9{&6>)1_wKay%=c>N@vWWKizN{q>U&}Z z7YU6NV_!`>7T$9x+5!rV*U-;`R`J9p>1HPyK3-vY4WDwYb#49*&kegeeG^U3i(MHi z>|=rSAr9FFB z@K|crU%&bd&8(~f14Bat&HnjEEzs8XZB0Jg1Jt&k*LnEW$A9~8xG#=$s5rcSW zx%u$1^>yA{WvEsBW7~FOAXq!Kq-MmIfZDolj5Cu>yMMTMi}ZJ{=ykq}*LTX#>~=N> zP4_$m7JPe3SrUfoi4hHi{k<~DZ6YyS8bT0MWvK{1D3v{MCXJj!giZVs9aWq{X z#m-rJc8dHt8}FdqFO!;c`F7mk^WJ4`z}b#YaW)mS9)1{Y{l+JC=OVwnW-Vxbwa8DY zIV8v}@b8_Y&AHsz*d56lSU(G_Kcf>M`@gW*S$O9MhK>lNdjI%(JMP?gkNYI18 z9MUY(tS5X|7ZyWD=(p&6fI(Sjn*KBN*3S)M@8Dp4)va{pc>rL`K1wGL2pDQGLs4NN z18+qFo1E`urh7|$nAY8U+jWca=N9mO36U(IHn>XpT7`xx5|PmaJOB9^O=j%(ybxTi zczv-ycfD?X-Jq$8f1WK{y_0J07O)FsGV)G*)m0Lb)4$7%@}qU0NA#7g6??LvgsYkD3H)w%tGhEP zH#d_1kz=?ikNJ*cD?j_RBX336b;xAR<*L$phJl2U$>-)3zr z%}#tmR^c`wX6^8pc!%~gIum2UbxNC%x&DcWp(@8=b}qG8|HD5qB5q{gUiHvfgiXFK55(rC`+f0M0t*tGps;cS>P-yxA*vWu8@svC|Jrx>~ z0`%8Ey1JBmduFfhGSz-6E)Fo$)zxQUk}53b6KJlh>q)L`=~WE)`ES(u;W`=me7jZW zcx%RS?CZT7e3P&NJ&|%Dr%+xscFcQ`!JN!MLGqWONuNM8`?K!Q;IAv5(1Vi{ z3?^O(DDFpdR{pk`5+o$kdlPoC&FjJ}5>8LGwP~cLJ&102k>gy80#FX;Yj4gP9G7}i zw!urZc3c3)#@`$X=KieStep$JIRdB-1DyE5+JE8QxKX8*g2e7ggU|Y`D5__aEmOd{ zxk(lAP2mvKe%VR@OFfA~Py}1a&dy+F5hF%=zQ}zGZdG&t%v3+Vv+5>{Uo$f0ywdeY zI*xXx!ROrj;$$~%6UdBJigkdiL@^4PU2I(RB=O>D*klj>aD<+GHcN`(i$VZzE&SKZ zYgO}&2haq=__&a)ae@|3tMXkO|3P2DTQqI z`WIIt=tg#Cx-~?HU9MY$f@Q;6LKHmzOg{6QJ*~LjY7JxL=GJ;O_LQ4D?$IO1WFx(y z7u?*`U+e1r34}s%?EKAxwAV0!NVdU7xpli@9e^RTDiaJb{UuUy?0x# z&YYLA*?qv`nZ;g_hlL&JR^*CDo8|^1q>d(?-7kjQ-yIh|adZEbpW#FaE(s|!(ysud z{7$sroMmcGj<(xB{|p;j1#q+e22#)k2w`Wdz|}$t7=W~_LoDL2J!%USVMc?l4F!Ds z{DG!J;x;eZNAXJT6W6=s`0?#q;>}|=p-DV!1~ZSjC*cDM z9M{LK*CAasQ&E;|j8-jMnrYp59%N~ED7W@wO%G}1$8+uEuD z^uf$~!0N*l^&`?R_71~K(Y(@tN77||_?fJOAL|!I(WcfsLah31aVgZ-*cgYI@*9jHaUdP=RyqTN1h)ApEzGW9S^6lj|-=` z%fL;}sh(l0cYJzP=hyY6h)iv>guQzot3Tj9(_neHzP8p-w54#IMaJ$Q-bF$p@3C6w zvcEs@pW_{{F`ZWAoeKTWK1=^ijkAAoKjM$z#0l5k<7+nR(tm&5Y{UTaz&Fj@y*Wi4 z++OFoxH9pb3%-o`tdpyFusH=pM1!dBhDoZh<=N#(iGI+CuM5?k9+2!ppvQhhOt{Hh zO9;n}r10GuE*ju<2RPzf@L^xX{b}!Ocf)G%swe%pXmVR|=-VHOJef`z*}9#G?oiT((hSWZ}wti)mUhx5b6aFIjLWkQa=S7+x>Wn z+xXvJfba6U{nRDPg2EyL>(+WhHq(!aeqQbWi7_PI3_Dxpoo!wH@M%$t~Qsh290N z48c2mdfUHvzfT0}S_1z!ynyy(s5`D^#2&7XtLqM)-M(uqesG6RI4TbJq6zc?;H@3TSm;_grSxJJM2D>ZQz*Jc0@EpJg$KB4E;zF3POV?Q}T4JfYb>*)=B zg5$Bd4)*rh#M39|w3Z5`W~3OVk4YZK=$ME_C4h-?X=-Y=UaXZ>YLhH4vh3CnPybuC zrg7&Uc@qz3@mk7v6PJ76#ISWMG*ps{oR{el3;y?|DI8uH{H8zo%;V1Z(NflX#UlWa zS!0nM3%#sXnUbyz73Q^WQ`vsA^*>1B)bec&Q%EQoF>^pPE9oB+AU>B4e$mQ|cbux( zqy&_!@8Z$sl(C!hXek3Q{f*&LLjlmu>GscPdQBxD4q}YT%^1{)+e}d~%a&nnxx;gy z@a*sHC&i^oi=4451l|oj->fw*vC+|d2O9cLK zCx1@j8?s296TI?}Mq#T?tH#>1_fhcKX6;`XOwa6vvMG$`yZTcJx@bqR9y{gxJ_))< z3GY-2pK=zm+)AONVd`#Q_+!FnaG&y>B;73r;DbBSF8@ZUuo}F28`ZH6hQKWa?^|ht zfB4#ge|!;yz~j8vsv7u2+&cgj8fSxrG{lDbuRbd zvc6P8R^MMPmJ1kpx7eTV&CO)bHk0}^y>)1fAR_ApY|;(HKwl&UJ;)!Z`8W90eIHI` zYHBKfc`$qm;5+N(DL!{@FR0p;!Z3uyzc5cXOCiWt#HKYxz_^7qPR(4*;p=-Oq(GW#28E<4!t-AVt&_CVn^a+nRMR962f z4gE*T@Mq!wr@goSit3Bs#TkZ>F6oj1K?LbW(xIedq`N_2=w`rxq2GXjNQVNWfb>WX zjdX|9P$D7Sc?UoD{&d&6|G@V< z{~dOBwM5MH$H84QL+JhHc(Jg3--lHIhP@2tDZIT`dD=uYyvT29vO}ErwFiFNQ)T}g zK6Ei?``Jo-9O1oxpxfRWBcaQP_5SokGDTW>W8+zTo>$+_Z7}R==LUmyFAI`%4GcQN z0l?!P3|IL*d3f06tyITzq%1EYUZ3||xVqB8P6U%Ul43;kk|ImQMvQnZA8FfEni(7^ zRvIOM3unQF#`#9P`hES`04xe?eMhpc&vaqL5}|_(mwQdZ-ZXsQ3S5_D&OYoiiaS_7 za8rEzc+%1HAsbCJdH(>%rz8c8O~|Mk6SKJ4QexV;U2Rqtw8b8|Yk zcQA@>Tl!|+SobG}r@Z9ET7V*&$*Y%*eOT`9dIS^wy-6x8YTHwMO&u7?+KI^)KY#vQ z&T!26$tvnHVJ!b>+Bk(%bJuAS0qIVDtWHD9Bq4C$Gc_1V%6xgGEq60<{hrohCSb4m zth;^rdjgZBR~LpOSByFxYfxl7oT%}EKqw@E(-JK;PNM}qN=4$B^q|4OsP17$+(S=K zh7Mz?M@vDIw;8zDavp0CDS{tVe-fa7$8+~i;PE?x3#Dty#|9TB5A<2iF4Lu~p%uQC ziq)??JH7{+F;j@$8uY!)N)nWieOjGlF@SG7ezQZ!gg1a?aVM&!?)Ix@Qz&2`U7s7g z`{PRrm$m~M6>)&4{MmD~(cdFm+JCnd<7CZ){$<7F6wV{f!DsKcrz<=Jy?<-`s`t>w z;LAs0N79Rn3u1bqcLkWwJwjI8mraY@Hdn-gP2^9NdlTee{kY0)&bRKsOU_-=5f(Zu z%-0Ds;E;Pry1|}Y%m=dK`;P}PTkz?v3u&cMnta_Wkz+(gr4jGZUcOGI1G99b!@$S3 zc<}}nG!Y*%9Fu>l*T%I2&wE&12PqTm?a2H4yhy@c(Tomg6l7#Ly`qtONbR|afb4v~ z+I{}qnG&N*?Pja&cdCwt?7o@yM4LD8y4Oy=l2htfZg-L}E6K>%wly}s|8XtE{4V(M z!}X=N_cS@78+lT@5$~%K1fycUj`fp=PkFhyx#Pf~_m0`Vui|^km5N3Mdzg+|T`QXX zuEK6EN6Spb8N^=qVj_uN+?`1p(P z2^hbNCg+SLf8W9uOJ4A9|0LF#mXKH$H?oP33C?I6(K zs_2~AwB#Lf5K=09=YxtKVV`xdVI2_QUH>YZM?choKMCmauGdzuET~4D@U#;2LQO4gS=07dETgpPv4{VDvk}Fx4wjnQWiAs;84sSZO_U+0a2U?fJZSKZyFAvfqw>_g$;jxes(Km(u&IoTbK=Ed zmc8AFE>KdHk+QP02qiZgd!YnP^urz@;aCy&!jk8d+;R5yZg2+&ceuS{1%H2^31k1T zC8O(vlN-`QgcGNKe6{pYr%0aUjKMTM}`OVQnd`yTr3}s0& zg`oBm@dq+1uRglz3K8h5I;9kgPJ@4N)jnW*8Cpor2{xXmGK1@^QYys2iQDk7i3911E2}NlOimtPy^^uvOw4g!G&s>+NhQ zr^@+XyH>o%t=25PJ+SvIKNZV9!#8=ByEsC{J<22a39aYM=w^^xl5^F9OzX;~wi2+V zm^%n9Tg)r&M7MG+wYV8B#$G*mK?&jLN6N-)*SgH+G#bW&*H~ZBL1C1}|CMJ6!~6zN zs$~fS6zs}PFpSIjvI^SZ+#~44PW7-+jT6Pa&qa|k7i@d91a4}LI{g3_(w8_y7LLL{ zq^pQ9#J|gq3Y!W3qyB_}q)WSl3eb6nT)i{A{+03p(u9v5{VO%@^G9L+VBc=4+*G^R z&vZOEim%4__8ETYF$Mi$e=yJK3)K--IuON~9Ft;)^@FI1XO!bQs*fMWP^5i)_n459 z9jwt#NzL(;tpLREm_t{g@F|12F#~Ya$ulrexx~5Oj}a`yavR3(5pn}$i)gKL>t2!; zf5b)kG@kcntFSw1h9R1J&Q2*-SOfujz;Gs_GJm(EE9;B+jvmYU z;$FY8-Zvi)tf+dQGVA9zg!6i)Ax$i#Ii|HuX6A3{DV$O|XA7-yeosDW`R%b0cd_rQ z__63?`%dk5HbNOj`J(~EUSj~`jB6~QDW$-`?E@ua%}jmQ{-Oy8(fQEkL1h(P(2>8$ zO#ys|n9a{RIL$5PMf6iaYMXGe;XI!^hwHe8v-42Hdhpi|1eJYf-FJpI@8Fzsugd?R z$Y$@36n{msr7?dwFI$|S=F3#9XcI+Jo=L7wr#@k`Nsafq4(i&DIqY;>Mo#P6*j?*Y zNW62GN%4FySjQhdCd@OiBfxvp#9v$=tD{VyTX)(M(&V>_>ZIBjnWZ|X+u--d*$10D z5fMkx)0IlzMj$s$MBIM)oMSYXr``A$&Gkq|clrL8GsO^6755bN<*i9OmBQ3`*j@LC zP_+%K=UoaNMeBQKx%L-o^9HmuZI16pq=+s#qH~&509mG!5O(`-JW+oaOHImAFPD;L zp9^2~+}cgA#X}Guo0xuc#_^_ip%19P7vcEzMX_n}v~Vd<+aN|mKk3zZQ1z9Rw|U3^ zSK?%4 z%A+62c?@Ts>fN5)YF@PziP%kqvFwJRPAvTR1!XHT6Ypnp0mkA~*b%1np;gr2M;xjZ0MlzEfa1HVq&p zA_KMRU^hXsRTRMn`Ws#t)@6$K-*W+d9iI-|je@|V-(nn}VrO}V z{)2C@GUuCG43g%_Yv}sM;|nU;%Btl*Wx$0z!eh`E`SKmg9#R>hL)<$wIP9b|q8esm z*sEztQwa^F*Q{#KYBXn=t9Aa_K*H#=9z*?@AvR6C|Ix2!xn8ZT@rWgUCj*{4{T~a= zDJ7PP%N8mrZd7NBPQ;V*c=30B*U_4DHLm9$>4W7d^@-F|kyM^e8z+MirvcafPlbf3C$^bs=~v#bSiH;JR?B`J z%kEthRf{|J)l-F9X7e)TJZyL7;iLh^$l{Q^h z+&_|Cv>u$twu;~wk<{R~9H}>yjNtBmS;9TXo~8?V<61PPaDDNKXa{egV~}NwFyui| zhonw8b5jCYgc$OtV(!W=4~eI4q^l?#BI?u8)qYNXHa>$NFzK=Vo`~s`zHKR(YFJ&| zOsCqzQ@Gk6kOn0BI;RkBw>qS6&Q7FiJWmN>&id9=&Opa@{qPni0qeBO{CE%RY{i{0 z9Vm{&`JEx?WXrd!NG)ZkZ(xA2h9^8o2mUNJ^dCoY#zXRH&ry)B)Nlpn^t}DWk*uX|Y2i-a@;3;*q84 zQP|tq6MnegU9itg-w(S3jIgb7 z9L{ODyS>_m7@B{MVhuyGgdUIn`erN~dNOHva=-N6-|^yMxi@3AgJN@WpCr8NKCN5dv(Ge#%fQ_;z;SlVrj$f*fF+r1-DG?ZZaHh2~ zLMev~3$dP@&K*Y7L!1;k*ysEYD zPjep5k@4M`sYD>8eE#VCovkkBGpSLTbzIq-JN+dG9*i-XGy%gl zcLR1Rdt`wl-;Aqi?&oZ{W5nStpSbv$&-{p1Sw3Im1~=#shSGoh__1TiK^N_oDC^P5 zw54U9Y-%Mu?(%fb<4kw*g;@RY!<1OYtp>dmiP%y^Oz%%*raKGYjkk{31KueYp&~?o zgLLOMAu%Kyci@*|_8v4$EusLS@2bNU9qjS9U^n5@pN{V=;&zml6?~m9jlzW;wn5z6 zdfI~g=N)sLz z!M;h-6G6k+e3MiRL{(w2pAH2#eT|lwzKZ#i3C4l98X_u%_hD*%cLYs^2nFd_HyTJN zcm5y8`H$Wq+5T_!4FU(MIJzv8&p5(^KRv8e|D3B{N|3{m zF7iMnul&qv9yreh>RJAxWDlVIx`j`0!T|5(MqZ2v8=SNPwnd0L1c=!aq};4Z`bj+B zC8B6wO={*mYUb~Lf;O5r+cAwWS6VZHka)S*S<^*Y(|Jyuuu-Be@JiH~pUZ=*u)rK~ znJ+)$&le)j5L+NfHg?T%chtW#ozZ00R#3~rNrpm_`lG(e7yVQ{@nSN?dC9M~IP|0!(|U%(vxJm3 zQWI=jTasVDHi#v+ggi4XD9@>$#7S91*Xv-8>z#*kKXFma9#E=!47TIlw@5yxYXlks zUwE>m`nM~=LxclTF?WtU*jOhM1}DqYdr~}9;?M^x16RXa0UOwN9VY=hk3fkr80PSS z;l7Qz|H%!It6`I2X~R`%&2lhlpDQ8>IS`}`Sm41{iS89gSy{#A$B|%OV#oQ-H5&;r z#GD_5zf38o6mA|)j21Pc`B_i3sP|5t-n^JR2@lZ_)-Q@VJI*pTSM%dW$K^El*4B+B zxGKU)lp+sC4Vz%2G^jO#SVAV#Lz?1GANR;N7p&6)#?+#;Gzt8R*F0GPx2(;t+A5|gg3VNZA0mw=uD=BX2XEPUsUY9 z3{FBRBn`oeKlRe^BjB%zjyo=@9}Mk(K&~t0Vn2U&Uh^jk_&0(d%C?I8u>i3-G&M_m zZUN!PB~QXd<)i*OL#U(RaaalX3F`G}0pOy?`{YpdhFT5~Xai^tO?tCU3>qUrQkCfA zMeZ>pNsPWA2199B)?1CRnDu{0yj=Owly{5D5YiI=3mi$cF6(uz&BaY19uw7>4+8a{}b zgN2|Z=Z1(Ny@r!ccF+~T*0c4!6qRKUzCy@@03%4QYJHB&ANhs&%JH-Y`W{<+^cj6D z!i1k@UjIz#_FWckO*=h3E!Hr=JDh90OjzM)2npSIu^pb~hYFRabKHLp$jWih6vx5` z-b6T~EH-7eEv5-j@hCAA1u6;!K(QbvHp{lcyLsndfAt7we7R5HZnE3w92PhpN3;Ti^Lx? zjQF-xT@f_;7T~U-4)*dCk2(vTk1dYyfWBbA!y;5Fsz!uSf8dk5hVqrGx4xm1c7eC(Uzo&#i)h`?ttp`82)?sl31m-Qr&PA{|{0b{N56=tF_g3b~kSo9Wf=!wQ0z{~`DuCh5)VbQGc( ztjfACOyR0LXil@leo6{%YTlE$42yD0AfZ4HB^3CxlkHy_yGF z$VD4<@}wLfRs!QVYY0N`R=bAhD%nv(A#M!65Df}oS?p8X^8Fr*lpO_4h$U^35~>#D z^%fCkVA}9pIK29%>cKSM=TozyMrqD2bLr;r9#3u6M6BxYO$i=95EKN}W$=05T%Mi$ zS{gfm=nQPAJB5uDw2F^f2?`+$w}q~r3PbfnGCL<5@p}p6wORJXMt)Y1VRc_k(_-J@ zUUp3`rG`iPgpVRKjbCIfU*eUUR!Z-4LM^%^+esE=$kD#1SOhP~koeJao*fqEt9{xy zm-t0)4@H@RP+j!|c24+CzxPOH3D(P?+Fr~NT1b|jA(WqdPk7A@)gSZ0y6hX#04}~a z2lOcG=-k3IpOfy-cK^B5EfEtZn8N7bIC)|7B`|9``S*@n5jqn1D^>L zMEXhtrg4j0@#i(VRTTq|2F>o~CIjviLg0^RvywbX_&#lPc&;;tzMaH*P^@71!tCvW zQ2CBW%eNR7>|@$C-;@Ol&!mIcRhwZB-(jF1iK?NiS^bH@UA9;oiSI&MkvreMPWZ;R z)>hA)EnnZZiwlE;R+QvV8l2D1mS@jssw35*cxM?BtA8Gv zot@a2(fT#`)OHQN3ntvioxnMhA7hkw0*?$4{)LCd4psJZH@leR2t*@a@EBxl;MZ3lQr7> z7Pj#4OaN-caPkhSzem<~0=JMCZGPZ9;uqx+kkCbt43*XG+_&LCb^gJtG>p87N2Q*RQuYQDXt3xZS_cfvwj}`hg9kH0E zbIUrPXd^n*-VBD&;*@OPg>OK7UnvHv&uhH1Mlb{*EGe9c%)TOeIA+CIj1UNMys~~) z7@>eN)$iHZUQ4L3mESlPQ(y8QhPA{{h+^OaT7^@0NGP9^xkZOM((^E$U>zU3xMb_Q zh!X==jmDE9T++^X-6ce=+-;K*n1g8g>X>yN+GPZ}859KQM7He?9c*4!pZgpayGS~(}gxrU#f{h zZcc@(63rXbv;ujW3~wx`9r;r-~x;qf!h`xGDtKd{5eOM;q0FIZ1^>mFKu< zB`X!k%`eyOH{Q@4xHsxr;E~#k8Ik>IePsDgeN*}Cd4ZpnP_5uI*LIC;6B}1_N({Ac zLVUG>uai;+eCN$}#Onxe_$?=<&xW!FThKh(CF zHn#UK67NRejBJDeQfYKyjUh@?_O8U*Y;$9^KjkIITTAfQo{s~nOppqDpJ6MU& zIt%}S{MM?yg3U45N&nyU#Vm`04j;(8xjbQ|{ZnGw;1?;p4c@QF-M^e5FLO5{y~#5u zVBe&4s}OPd1~C*P%+~;@SPc@%>6F}+S;>t9z5r`=&`UM~fnW}GaC!Gd4R0Gs8|lL& zee7hB{_Rq<)%;+qP2ZnJ36<4gPm(aV;rS9YB&*T{UCR_lHo^glS6Y+J61)IF#rfP` z+=bVa9m?RrdtZTsD5k%&;u3dCI*E4=LZ5aoNV`x&ZYafz8k-SXdXpOlCw~c76~VuP zJ5KG)GWY4AQE(gvl(rcTT2SJxufOMy=Ao_&tg@a3VX2Ec9!Z6Sqlx#p;uf-`)03nl zROi|ZKJTCjcH__?JKJ!k`S)iJ2^6fMw5F}$H79NHK-nl^&W6>7nx(eE_=Ji~1$k06 zr2Fx~ZI(;~Q2=$jWcZ>2WbXh57zB=q&BHu~SKYt3MKF8Dx0e(6N~3LLaPq%Cc0d0^ zpH(TvBrbMK=T0oglYbjJF%rRp`>Px$LG20SnFzWfjv_Av~lRN0(td0oeVj>{>e z8YXKSr0nZnf7U=oyRqhA8AdY{@!ekW<_Idoui&)3EUM8#!X=859N*H=zAR7-gFh{3r~eG*t7jeHusSye#a$_xnIlig(A+4IN~86Ue9&>+-?i4KFz_1boVc?jZ%Ec-!mo z!*s3BQO?CbJMo7G*`yeu&41P-7w(dS3GR6Q&m zWt&ggCv_g1#NMdZdu#!}%K>K8G58M%Ear8eXpp?r<65%3gY0?(oab=^3O>1QtUB&+ zm~J(vIBHU)-y+F&xo=b~n{>c_v`OVAR~93G!+(4tZ`KDhpmPqjD%Mv$5)_ahnKK`O zXweR-9Nq;aZx+JwMcLLW{1q>0F|KD`V>s!o*0*E*hg^pa=3%ULk!14cPV)aZ!2qrCrgL%>lP0|0}k!;Jx;5)$O)>2 zaQ}%bUR;#U{D(P##K2t z1%d4zxoh05V0oDQe9~<^8s6`_oGl~0Ts`?ES})5I4;>Z<^5SskJ%6I<@#_z~RTAqF zC>y*+fcA!Hs{5H}uSoVkOd3Tp_EJbVPMkrz{lqB(MILSRJtdO{jp1*gjVb&tfms!L zw&>i&41otPJ*#0)eMFDP2clLT3>OkIO%~}ljsvyB8@yJDz;;i{x&9EFy*MV=UCyJ2 zCc<}^{;Mm=oz%7bUdwRVj(X+ws**pV; z3L3LeB#8l>=QyNm{QbfhHd2mp%j>tEW_8@)f+!8@mO8!Do`GnW9SWG=9zlW_H;8|k zf;lhn-(Irf+p3>a9Y~c+2P?JLu^^33A_kK8S+41kSZ4Suk(yfL;a)fg@^u|VH9WoV=x~N3q}(zhzO#=kg^kcCeRpx zHxX8GVK{=(hThw4~1F}@*7SDdY;@BPOhD(RhBy- zqv{-?WNlo_yVTm~p;->Iiq}6XU=n;weJ~*FaH%WNkaT^Firmo39qVpndbBG?WD-Y= zUChaGcRX&L+Sw0`zNVaRZeaur3YFyZwGCFVDpPKtL|nJS8!M-3oib*Tcp-B0DQfIy zg)J({4L9LO*b{Z^L&)7f)5BbRYcRzH6bQT$q(X z4-hKxo|=WFFI-<%BBMUo$?7Lkjd0+Yku5%&2fur5HhgQAe5FCs(Um5|r44)0$d~_` zuDrjPmXCK2d;a)46?D~Fjf#BMrk~ZbO{N*5#`l}?eX0C5Cf_G!LQ*sB=B&mTwO~&@ z37S{>yhGpqR}Q@ddN$)h9I%%gY7#Y4%E^axD@~K#+#U#==_Rk`X3XGqx;19L<1Pej zJ>8EFsPdtdrW!F=a;aGWFy$6KkMmx6rX$LwZE&Jb;miS=##&nL<}qB31e70DT$Lsk zaDv96ZQtL-EIQKFYVt#vlZ&ni(L5x4TTY;!l>$c2FTlMxZyJp+Kc*;>IOU`7`wEVl zk@LckF;D!?Xe7KOGcGh3Ru1%xG?tp7PG?v?x=%=g85~+Q0HKc@q{|?$r|xxX4cAMg zU5}kjsV$%IWp~OT#h#k`=u8SHe^|n4`iyWzYm+~1;w;&E!uq!icSsWY9{xQ1$XzS$ zHIhPnwL@TwC{sf4D)ZJTuMB~=uKH@39g4HNxkHi#v{LH5riJ)6BLz05S19Lj8Kfi= zl#!~HsR8_#t`U-mODhutNg+>N8lHop?~conSZ_WlC94Ad`?ESly3rwIF}|H?Q0~c% z3+8yk`1=?B#&j|tVL1OPQRljO11>EUdkJ(K0|Y-L?sCqno|}bG7@SxF+#qxCT2R(F`UG)lz~BqG)&}$KPv5m6w_7EL;F^Zo50QI^loXrXAQ(l` zmFM!N_M`|W@K`2hTWO6Bc9R=-w0x-yQR$h!86O6zMZ%vGX5|wQjDYPtvQou3;9gOgwH4q1@pR$Y&6)eQ$yHTRpJ7ed*V<*;)mMTX4~ zsHNi5wiCPOWr*A_#*{jejLRZf9XqDTJ>mVGo}c7NF*((bB{r6oHX&>Kp8N?NCmPLh zv3HbCr_*+wCxY{_dHfbJ{z?g-GK*lslXkuV=I`$>s< zV2c8HHyx4TFx-wy8-xDRYrpzs@P;V;nV-sh)Ae)oBZ@$bI(Vb+L8mPA4Zo0~iM9KY z6|-+i=BU7ya0}O}O%_?N6U3Yy6FnAn^_FC$k{@LDz zCBfd75?0yySe7b1u0o}ZP>k3%)`%?9n$9<(7R3$nA{e?`Q3*lkNR;=yPiB%7jb&{fIysxjaJTmr@wU(6C+6Q-*CtJ$B2JJ6v};q!26zifw&L0c>m6! z&3H<*T`v1s{j)=eMzwL@vS##xX ztUTs@c_~u&`;!&)_99hZm7D!Ev<&S!=wWSD3*4S6`|+nB_M?DxJLh_T+OyT-+%TKn z`5zjYV)5tJye%WK5VZwFmeMF_h zAj4w7DhXEIFBcw@y4S{T3x|h?eGOR6K_>dBKQB}}J(mRjXDvb;%w_@o^C9{Pq+YAKwa6S^vubMB3hw82dAioVv_%neDyxPQrsW)(D`p_UWD%>*@DpDfe@?-{2A< ze}8g?gF%^ew5|9Q(IqY#kX%3*O;RLE9i;@KJn%gP+xg$6JsA;rj4yuQEGez#KW(Z- zfk(gRLyiWUu67&eVRtt*?hBvvwPjL&4`vo03ao;QsJ`PFl_0jkb|5JAekr^OXosB= za$}5I2OZL)jUm}NF9q)%RyUn|Qc5O2AM0Fl0TfPvl8k=eQVc3UbP=puKT?5+b9{&j zk3=+l5$n1iELCn01Qs%U(ah|AK_-KP8vCr?dVzjRCL29>orJJRz0Up@10N%Fg_BSJ zcSvRhZLT^0^Yx(rM<{AFiwnGb`Eu-8+do74Oaud0-%)9yo6i>2XK%qpwQypsSqqe1nC5P){y_4L_Q%F#DJGyTpX$4sx5F4&66BR_vZZ=PlWjDHQUcn^E%a`UsHz zCUl{}H{|Z-Ol|vizk}>PtRP=s0lo(u*kB^HJJX}(r){E4_xulUMgxB)ip@u$sOa9Q zu;xs--Q$VPr=Z!%Cb=cDA3G0@sgpuO1GVp3W8piLhOO!Fxc#4#D`zQepsVO!Sy_(2 zc=Du0P*nxot~0fkGO0t!F1U3O zF(L0fTV-!QJ5y;Zx&A?4;(EV>r~i|vtMZeFE2Ao`_PzhHnS~s5nfWjHKEK+jZaN-Q zkE0WOv)6i;Gg_#^S`%_{=#02DyY^JF<0Z#i#OH+f3d$2%v7%pDaslaz5m6~jxG@o4 zc@wR8NJa22ZXHkxuF9ClGeR0bjkEx_7)%~4<^{BG8xd`O zocMnZ@gd0C>VCnKQ>{)LL5Ja-!4KT}Vx=i5DIF9lOl_Fp z|MRPs2W!;ngSOnwht)*6oW zr50X;k5{@S4DyPBua&y6L7(qKeSd{!Pb=9uqF+F6Mm${LMC)NGOE69W4T$#PwtmE! z(pp#^{(c-{aihMOWd5zNkC=)$+6D3~kw+R&LIGlU9-2)Sr!(28RK&mEf*6`>5Bp~Y zNlaF7`c=b?&jiK7O5xO8Iqc_G0V5{v7m=!HK4l2rYZea-479ViAFcPW9D07FabN4- zoxrUA77wEG;#ZBcJ~r>s<}43||9>|T=HZK|=CE-bG!w-S0NpnPdss)0Nikx$vuuy3 zhBC=?rB4=%0ic3qPcY|VgENo+oEwx_vbEa6RV4Qxh5v0k(%|S{7~5hJYf^T$W~1L< zqbfTBP`=0m=uG{Sm1Eet0eixmh;+tK%C9AHdOin8avs5<+2&Kosg1 z&ECUdie5$5bB`bEG~IFZ)w5C<2rF`%s|z{LXN-Qr?_UVS0ElD#g5PRCf9toy9P!0~ zLc#K4^!7W=Y=aXm$if4W$UX}aXfvG($Fbt;geUGsMN*5{q*O_L#!R3w6)<6VPlP8Z zdAna2Y==rCeFCzEJbN`M9dX)nj!z-^s9cL^FI|`FpK}2wQdo$?F@6$xb2^u}vs08J zDrUXbn}qSINEVqOXb-c$fa?_RClO~w3kw!ZY_Fb7TWNBK%5eO#)rl8INet0`uYKP$yM*lBN@d!%DX_ zvqk;Vlm=CHYORIAdOsZ|qV=!QD?9(vEI z*btxGNiqwu&VO)H?=@`mz4~UPyUMImsGA`9o33stEZ88mpa6uyM=a#gko4yK4`Co4 zvDIpKyol3?6*g3>>ISY_j-a`irbn1?f+)~}S>AT>+TZ=x2KEzjGrvx&LZ&&nY4aiw zSq3ILTb%0i|{;Jx@~QC>?iven3)& zNV`Z^0VZ}b(t?EIx1x%=5nJL2lbB4rhR?RI1o=XKV5fG!hiBm*e{~SohxjJ5E~?d4 z6segZc>Y0Ez*c;Ot|57nz|iv1_j50Z42RP*L=ZdFcBJQ?QV|OaBt!q?M@{vn7cvM% z2(~&nb^c4jj1E>DY_iyYD!Rxdd9|_`{*kU#-HI=z4F8;6T;TsglH$d4t2idfWDNeL zWM-NcUJ5%7t(7?KPiyZGKL7uiUM& z@9!NL&~P!sx(|(i6L#GUd`CTkyydScMDFhkd%ZPCuJ-j+nbT+iuJ?w!WYEd^!79B> z!_;Bm&8L0z=1OAT=s$X>??Fr)o}wicjX|75Bi>hT*&DgA8~_l{fb=sjhTu{2ywWi; z>OC5k(^iWnGBAGis@t`qxf{b5RYe%eK3&NGC^jF1-bU1cgp9y-6iL59W6IzvB|9fG zp{j0>7aV@9QI$J{VO$i>kn!PXAlxw6LG%b1d`g+LEQ=!v8k1JAy>jt)xqsHyw?Rp< zcB@T+yv=BAtlzZMl}^3nLrv!^PfrMmh<;ej2z1-o1O6Ltmaf=EvVZ>kc_3FVcPLw0 zIQaB6h6>8NyYt;=I#4@_`27Cl&TO@|&ZIwL{1HfcMX%uwh$Ku8ti>MzIK`@K)R941 zp#1wB{{fHjwe%(-Ag?D-j(wbc+Pox0PUVkbK2TW%YuUbaN zeOIuq(%n+!M&4`#&bX8XA`Kn<4j?P#vP9#2V4TGE4y!y>UE^4`$fhZyul- z?k>X~QP#Urj`$PxNHa+Y<-cY`Zy`@2Q9Yj9DcdN2*Vt!uGdAin7F+LA9JS7NUrXC6 zuU{&4b(zVzGp+9ZD6V=vq{2E{;H-byJxL_)jD57>y_TdxNg4&?CW~^OM|!RY6>DXS ztwd6T5GJ=g>oVnh(Z;w}SY<0?Ekxht!F7NJZ1HY4)1I`b%BOlIchpENNIDP({1w~# z%=1L{JpS^YwyYZJ^ApFZrf`ZdJx6*qvwipHXuqG1y1(2J-DPvV(Q`1S5eb=4`&>Cs(f7B(em6fnQ9zsleYiAX(BA-Mjh{@(5HMt@=P7 z%n;qnhq#paUIzE6D7o+GQH>h>s{saKA*5&nu+novrJy-*kyBqV7_Y1OS!-l&*Z)}a zqyWEAYDnhHY)I}d1jG8(5?N$iu3O5@8-={qRE30v16Sk4|4fyc(hLPwbMjIq;YaL6 zoF%`$qlHolXoGK~u1I%J=9B?vv8oS^BD}|%oH6Dz0+ZsuS{3?{gFx7W4#@>f!Hf7p z;j<{7TbWp;HGma{lp1#o-zyI~(JvMQpjoCwxm$@BQKXOgJ=B?rAjY*W)S90}6u_KV z8xzN&pfMwe_}96!=XMAe-DEeCa79R2Sc}`_+1l5wNRIV*1K+XDOuZXd@V3Co|`}ctL;3v_|w11fn_H-*XLeTA(h?dl5(cl-?yFZ1A zGnniFS1trR75=ANXixf3GZ;-^j0u-od)=nx8M5Fa zj5R---j{Of%9R@8Df{_}jTdV>VhAN9E{KN!Z909b5XM#9eEM-1 z3k%o%z7_yjHvX*rUM=TN@Bo2XNe9Q{+ST_fx;#GsW3^mveSOA2d-Qv7HA#hKx%n(i zjr9;CS`ACNKntHg9e)Ll>45Qo3*ie&cC40*<9BsrtG?nxO2XxrNGSqCsFoSUED5u?F1 zK8Zx%uPRci&xI1bMqMC+UW@A4$P4O_ez=^*GCW_iVGjQbE}|Y`bOJO1=6ON6C0lMF zO1vDLML-x<&ch@aVk;_B8Xt71Z6!;N$9L4TLt;jv0U$lfFd2rA8?DgZhxOfDW9tZ_ zUm{_3Z}0allP)c{G58I6B-fjTns(!?aud?m;t8MTBn?U46!IPvIHS`*@6mM)qoZQQ zw6kKLC9H51EWk-)G$}N69C12$<;HDOVmotP7k_>H=5wn(DWyX!{9E^qu5&gd8zq-y zTKBxelJx_Vtcb(To_U0ZT;!aunInZs^0EJ1Tr$YeUy*9doU&JVz%oQ#r$&~R$mGq< znR^nLS0_sKJ6AoWq@~_jW=~3;iTwP`&;6<2=?6^i{=Jec*E6St8Xt*Uw0SX9Qg5EubneI zmB8Rvy!@1L>8B$59j9eSHgBh4`Il(j_QY>o26`F++f-SSO}TH5iy7@RXO?DFLPKww zf^945G&MCbP2=R`q+@1&woqkHgmTYwr&hlnT;Ts~zK6{sT76nGL!Cz)KyofT6Z%m& ztBc7|b=NP;`;4f~Hkmfue=O(ELu|PUn;Q@a#FI=*fM=hXSH-n>Vn2hN-f~&Y78+rseMLZoLYBkJqn@YHLq2c6WCjBl6>z z-%NU;-!z^%h<(fe?loMU$Kd&Bf1FK6F*^7$Nf2Le?P^LIRlwoBF>B^Y8;ZqB7`>~? zK{?;x8*9WXw&$bf=JqT*J6l6j6CfZg{KC|f(bxB9d`w^8%gCrGaiAx0vcIG?y z$`EBC92~-Dx?X%OXlL!{G3A_PucMAJW^ot z2}r$67Yw$WJbcKDWk?hcM)EhGB#H>6OU^Z5b1fgP$m!jHaZ{NWT<5+y$+ z`h|Mb-nNf;JNQivG=$&gZ9XCwt>$SnQc>H@!3rU4V*Pfo$t#x*hpWEgy-3^zZnIf| z=7!kW*)g#Bc57?PfR{3QWNb{4gA!on<&|7s&bM+Pkx{JK)6+AH^jwu$9U2-6Gcq#^ zdGcgsASNRf>;10m4~=m;U{+vDLqI z;~@owaaohLz;4Izn^?@VMm9Y?#OzDLe@jVBK|%5J2mZ~&XgC~xP3DaM0t^OwX%R$X tHrKNL=dk2sI!u$3yaR$ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 4.52e-05 + + + + 9.03e-05 + + + + 1.35e-04 + + + + 1.81e-04 + + + + 2.26e-04 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n_set + + + + + + + + + splay_tree_set + + + + + + + + + rb_tree_set + + + + + + + + ov_tree_set + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_node_tree_local.pdf b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_node_tree_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b5b73a6b343f382c899cf3ba97d6e231621888ba GIT binary patch literal 30918 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 Ib;qdx1G2+GNdN!< literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_node_tree_local.svg b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_node_tree_local.svg new file mode 100644 index 000000000000..5a5fb2b72813 --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_node_tree_local.svg @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 7.81e-08 + + + + 1.56e-07 + + + + 2.34e-07 + + + + 3.13e-07 + + + + 3.91e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + splay_tree_map + + + + + + + + + n_map + + + + + + + + + rb_tree_map + + + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.pdf b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..57630241743f16c114457df1796cb13c06729b98 GIT binary patch literal 18375 zc-qx_by!s0yS5^zbPORO3?d~p9W;y*(u{OD(n=4h0slc@9>@Xoa^)ZLoOKB-1}L3#r?$E&)SPu^R$8pSQJjdTlukMlL86^0Ua+~ zq>z*Zim6&USi9N)VFXB<0tf_(DcIV%TDlPa+u>X-Pg|NhT3Av@OH<%oT`Y0-6rO2M z^;H~skW@9@r7yVdozQl?wRGD?>%1T5OSWlT*%288yKpSCE$zo{G4$ndyKdB+RuAco zpx)rGO3T>-wbW;qcEn^tf}S#%ZL{5kjXA#bxz*i2I?jJPhatZ{II}tR+VTf#U)v>y zc219Gs{p|)X}+TcZx0Bfle!D`X3 z6 zd7NF+vFs>-D)I=P)S2H{6G(p{pvp#E&KlbDHk55rb`E|E-fHvasz8eA3p)j@LKVpy zMTwv{MRFfC#ryr$LrpvFni;H;K+n*f?$nb7xu2|OV&G2;;*zJgB!=*0>*=lZ5v1~x z++r!}6Lt#p$1w%VdC$luE(wGr6lEOL2sItD3(PR7Qd4>ud-GV){YPr?SuC{_%mq~K-e3MRfOiJ_+Wq2Bi@EN{;V zrkIYjsTxsERfh;w+n$R)ybGyMWV2fF4_Wb>mIJP-y%??Dp)oCT> zRJd~7RPx>8nR9&yFVD9`x@tLxdxwMuUB92Fb;MOVgX!Fc!MsQP;SxSqs^?#v zF2+vxE@CEknx=McbRB!HWIdPYKo>N*QM)3yJn^a9+1E_yL!RL63P(d$yqeB@^vmGf zSQ0z%67n^qU59DSJs^Xt(;a%sj^wat#Ac2z4#=Gr)huZ#lPnR9ezwT9GEjDIPH|bm zq;7yzvx43QP*<+2WEo6u7absxFNim7T8)n%Zdz=78|}^^$`jz%{Ujn*+O6Rx$&BLR z<)tWq%r~$kp9Lr{P_Qnxpm>5;5X@>NltljgOK0EtZ=^RI#@=LC!j7jcy9Vh(NP}E4 z={`IMXI}3p_;a7dSa;pMchRn~e2C#%LYAd%#M?;@rmYr^7x9h81CRUi23!@hR~a|X zpMtoNyiZ}37j>hbe|AjAkB6+!ZAbj&NN#|{W5Y^KUuN5K&>(*$K2q4ICFVkvNGG9(J3KXy$W8KogjP9`uJ_Z_guKK$ zjmgZ?t;d=A<1z9&z6p97fkMgrdRM(Tw#k~`+ZIw-I#~R0F@(~tbAtVFQUsp_27@6# zVaPAvwdbwQc)BWLT?w8F_#N2Aa3J8WXT!(=!9X!{9O0ATzX%t;e~RgAT)1dy?z$)A zi2x#YJs+Wj1R{TwP(ajP>4&_6ql4>jcefG&iGYCcpZ<~{MEL#DIrMLi^_-WJB~VNg zXKlH67fqatCE-5cUw&52(!v%e@8}6MB0wM@41yAcBhhFS5(ot&MIj&%2n+$5?1^Fs zJs?!Z1EIfaE4nzkIsMkF@2%~jKOrmub-_8{opxI`_xcHA2>5ABcUyByZAJOtrbXKl z@95@YZixp%_FDPRs1U^A0u26d(Rtv+r7P z9`YW{&9h2U>&KKMu*|_>b{{pHNmaj5!-RymS|wfAjpx6F7D%1;-ALayd(XZa zsbCdigV>w%pB4c_|AIk()*=X62ZsEx1TYi`hW;$W2(A7s!+~JJ-TePmvv4ofLT96Mbp}h6^ zu2)`AT8CH)GrwHr<7oyr!WZgFIEBw zkrD*PJ-^c@OLzUVSE$dyx7+D6UL{>_l?Nup{SGQt8P49~@hN|{iYo&CuT-sm`6ya*PasPZX zKp<*PIm2IE&tB?~(OGTru+F5{FC=OMsgvt1Z#J7)w?7MayaabQRurIYuPHysAz=Ex z;fC!<|D)JYH0T!$`BRDw+efkC zf3af2h`n1R!Mn*)o!*pcHU(BP3PHp&l?5AUHb2OMAgAjM(Z^o7mvk)v8f|LCjN=k+Y^laOGPD`A z*5k}S0BAnG*gi5HA3W^*bU(9#Rj@39TK9 zF>P_(eKz`Y zeRra^M}14CxpvOUM7f&=%q+^xpznwR)_ieWLfhYrw!U_E<@sXecGP_5&>zjd(mJY4 z<$OEUU~E`iGp?93JTc%Jl6D znvI2gPBa5xtnPWHw#|m)VZ*Kb4k`J19f5!}s?Q9URl3SKwa$C1`lX#;=Bq1zVQA zYt=UE{Y^bgDnjA@0PJ z1png&-Hd9%t^E+jAnNCzIJ>7A@+Lzv&d1GIrp2a@QpGRTc9EP(B@Z%~-=tCR1bwPc z{ot*S;1Vc)Q=`Y17E`0roqWy9&V^4T_~t8kf+@!ZIQL+LA2m$bNOZuIr}a9?sYkcS zG6K%OEvKVZPh*v)WKBnhUOAom32m?KU(Howd1>3Wb+RF&+oZMUw0@yl=!hW&XFdWC zYiz4YILK~y&66nza~5uu$KPw=&YDrJ1;g;Jl~&01SgBPh;5;Z^51?uqcKhVcWjDgf zf3J9;f~RZwTIbTMvCE@)rtmbOuCNYAPVYlZhy6pRY{m{ezh2(JU7-clkgeM6X6$vj zeKL8pBD5zVyIk@5Oa_3DHz`h#+b&&(df=*djOf}GBmKEsM@!x4f_f}NGHhZy*ks|( z!YfpPT`h?kL!|u_ttd-G7ONn)Z+c(Zsm%{QPq^>7lD++ySYz})$a1y*;-_MpCnsDM zo>g-pL$}+f`;A+unUSIoI>y-+BP0B&U@AtUsO9vCFcS6)GHezM4fY)b`rHWg<$j(N zUZl7E`Yfl7{DPOr!pXZ^`P>oSA&;XQs|@j(jH8vu#z5>Mqon*>hDSLzs@E1X8p?z| zsW7Yp>>#z_Sa)dJZHDcBgRE(2m&f6AfYO@u_f(6IajU`O?~hX4)OozZAbrY)=dk1( z(i88dozsI;1DeC0FHqSf;qO0hj#P8gGA`gLLG#&NVV;*WfYd88W%GY-;Eb{KR8N4) z*a)0^_|@k;QZ&NYx1}TJvP1NVDrUJB>j2)Ak&|YW2iiV;Jg4m0;vu%h-}`!AQWBe5 zfBj~3ZRDHNk%1YL;q0epOkB+8DKFrosRoe&&(qGd7F|<6sd$QK6%4g7O zkFyT$r0q84D)z^7Dd)!)WU!hYfpI5qbe~eti)`nNvAC)pdlPtW{OW+XFI$PT$%JUm zMbX;Va`dKiK$`3h2C1HtiSRl`ipFOgZKLD+l33H|As)sKI_vdY6A zme~89vd;%aq|q-%#QUKk16fNwqqLk3>P`WVF?*s=x*0!lC9PLb@BhRqP zeB471B%1;OmZ9C+mmRxSIAg3XtEQv@bFiVqZ+wpd;X&Bo$If`b)-~=AE~4o4%2zc8ZPPT%fWpxW40-An-MO)z6PhG)h~BdY7>2TH)zI zd7NOLvnr{v$kplEtMtLHm>hik@kvKl#9>4y`i;xX(7?w)61GP!(deTOL?}Pq5>6f= zsCC>GTvRJWhQA}33wG1Q)LX{M-+k$W)|Mxe;#9R9!PrPyGpQ47{Nt{Q95^{AK^ugT zW$IVS+BG)Lyk091H}6Dg_5*Ikb>H4t8jgLUGV=GR41)f`5q~zZ13>{Hs2>R&LI{PR zf0UshAQbeo3?_uupJfOT`ZEy(g#w{J6G2cI5c)F_1cd{k@SkM_5c)Hj3Pl2;Na6$$ zWS?vV^e@gvK>s}(0R>254)Kuj@L;4ccxa$8S<g0^TTr%c^1qmF1 zRI1pQRV391CO$LU6YB`{w}b@p*ODFjrxFqn^gcU+e{n(r2KrZCQ~*+xyR=YBVJLU= zL;}N2vfT`=-C7_Rs2>W2H1U!2#brnP;m)$@0a*^bFk_b3XOH5y90B52Mi%y`QUp-Y zKD7MBDFPVeUunVcV5P9;Dr7w7horESyZO|r;E=M6vcNKez1%Jf%qSx#*h>b%UW6xe zoXK1c9^iFhUf743-yU+2zc!Cxf9e?*3f_mAzxWv!2K#qruuv%;D8XdRd88--fbYx{ zW+aCc?lO~{o8ec;i=Zzk;UFua5?09FH~ z2`iBmJ+K|moVO1x=zXKip9=oaee!kizc~2A|2_Eg04SvZJiEROPgtE{ztfVNk?WUC zFqoL++Zi#piF}!LD2ov>H*oNNz6}1yRsj2C)Zl;d3IP7^D*zt6iWCNbA#kH2We&yf zaZ?zRaXUG1mz&(%8NBZQV8(%qC14+B_FVzM|JVv(pSL35fAIEWVOd7u?Om%Wi;2ldX8p(7?9^u#(tVhL@5{^|i~sw)h5-MI<3If0qJtjtX0P>dV^XlV$)7MWF5AzNk%$udk$~j z*%X};oyz!-vHCb%A-@kqWxk}L^t|h;7?j6jAQ;C33s=wX0j`2JJnk&`Dh=in%-|^m^Do^C$F5;uUH*wx_0htdU|w>x$^U}llm?d zfY{<0@R#y7u#gy8DL3WqQdEt$*D*1uk4?44q zAub~1tZfPRb_OjczkMlGel2?8vV2Wo#z&ccK7$H8z$RT8+4dkuq)Yv|vbvfJw2jq) zby}u%rIwdd1~*;%VLP#DXNudJY;&g;(%q%@fb?2#_ZwoXtH3k zR8@>G@r&}^o)tr730Vn!3Ej<-2l7|s-?o1`|8(HtpfExasfv_;sNdg0ZtT&O+A;FL zso6N*5tseued~*IM;@aBEYh{p#eM`wSq-G;8mO-~&(K$jBVCA`N3Mmu(zH)ldi2%vPyR}q+f3PG5P)M8lFcl&|V>0u5Qkp^HRl^2ai=@ zXeWEgVeHZN3}`{&@4-SFF_F+$>LDM&VoEu5b32 zmacpFTSst>d2pEyXS;qh8Naqg(`}XCN1iD@B@t13EYlx(&ElKoMeTM~8SLU>i$61r zmdpQ>)tl;Tugc4|qH(*u5<-8#@lF|ZdG*6eF_fHu)3_YP6 zBS=7$!Q16vg-65UTj^kKx$zc_+N+-zayvc?Tw?b(KJ~l@#5g!JK0%#urj?e}g?>Z& zsN8YsM@i%~?==G@WpvAy4W%JIG&Frptb9BHa}f>r;6S}M{XC6kBYx?AV)OGlI>vrO zD=^duHi*AT`sqx#2OF1nv2=X<+(i#$Qp9Yw5Y7i{tX@Q%B#??a z>g&Xau~$j7-fD9w->Ug}qmgx^*Fuf$@z4F2mpv3u8HuHuhHr+ByzuIH1+Z*{Ogt7U z&DN8`t5RF`b%G`+((lfCxn#vvh|R1>Zy1T>^g=(<2;6dCV7;LP{}LJ`-M3`OxLz%X zeSe(s_|u1{WNGM`D^ZD=@POquz{OJTiTEoPu8|~R=hM$8MN(P3D3OG}ZehGrQ#AXS z{P~AA{Y1Yf*=$udoMR?s#;lG5{*tw>$4U#c#Fg%Zb__jj=`?GtRxpsuG#K@^$e(_Shqj9JZ9zBJFm<~XMNdhPk5M9QL>A)7FJ@GIG~{k?a;o|?2i zLK#pPlelb4o)-8dmZ~(`NWN~cv*qdLLkE%Aum>LpAK+7K)LS(SKTQeaM}ia`g`5sZ z-VM$_e+_-kjpg{gcUyDIDa$ow2VoU4%hJY7B|3Tu8Bkv@(a3w5+&1(zg;ECYT~{AM zoO0ydQ6otQ-pn9xsHG+%1a)hY!HZ3dtKrw@M^4^xZ3M491F_?y9zA3cjz7Pa2xId+ zn2_!HGGHy~?30kpkPQ>w>}&2H6f$1a1CtJCs~wJ2YhJmxiJc2K#0Do_oRxmpTln(e zY12&{>DnFXny0OWFp7>InQB>KOMuE?bdQ_`+wzGdhoe%rp6MJT^Wj^fJm4t*_$K;A zy)J{2K2c@hPOLq$IMLl7q0gQb(Z^>aW>b1G(XlTL(f3n!Ll+%{9>%@x zI6f&oez6KVkq398x3p7=yKhP>dl{BU1wj< zoTZ%;T6epgUt{2F;H$Euv?D((ID1+P7R*;xJ1r6k7^deBs~_WV&PWmvrDF+AzEHE_ zS7q?+^bk)%Fw=#~X-2Wo{w9er%(7yc$v1;`L zh;t6IQsfuappMH9#H#U!aZCy^QCgq6O|opL_=F+EhQcBA$!vk(or^ckA3B)1y?Elg zqnO!uO5y=NClz}(DYYE-p2Jqk)I0wj`PgN$sR27Q`iLDb?-81tHwS1Y1Uv=Uu8X@j z0?1DkCerddF9)C2R^*^5D^sHRn0zf*4BVqK3Q**cUd!^C<1wGiIrNgFh-`Fqp8e=u z-y6o{ssX-P*`@)9=>T5qg9je9+}+~$)QOz8UG{$LD>MAKHemAgyG*m86q^|Elj)^I zh^I^Ct6EmS!@AB($7$Kh@36)I3!;^d({7DkqJeg;&X#V`@nJ82QaB7JeXR_tT8!r= zjpCHQO#h+n!1SQI!_Exfmm(1I>qtU?SzJAULp|?<4j8P5JFU|xk$A2LjNYod7IaTucb&x4 zz_cc-_iBNsbq}YdV^3FX#Iv=TtLvgmT~2WozRGGN9XHrj<@z^#yHtm~fsR)eouapj)55LP@$HUF8` zM`z@ai#1FY>g`?lMQ*DtUb(-p<)a&@A~H~A)^kQ_-ruBc@}YmjFjmP--)HDTO5%Nx zu=JO>asx&mi`RWc1=+xl^KN7c(H}x?f&0$srAg_Ooha67VNgB^m`PM(@OvGtR2%X_ z=M`tJ5Z(>M^tBW-N4LIQxbWbyF4fEB;wzsxAzZ>n)#a-758$6ZB)6^x9t!1XdBc*b z$-j6YmCkpz>7~_bV0YLZA*S(Ifgm8ZHHO@2_YFCIb3l%ncIUgCbEaqne zXA4;>>0C3JnT$^J>Iub_NyzoGB~J9XP&Ej}ARCIrodKbfh03MT&Q5{Z$^zHF1%#jM zuRhGFc&leEVVDvlCs`JQu^{Id^YcgbO}CJPv6u@hdkk!FFRR3ax1k@f2Aa^|!Da!dWkZo*kEFNRTcaemGt= zxcnuniFG@GoUK4s8BIPZN4nMX+VEB2(i=fa=Hhm>IBFT~=$iHtnljwL$-3Lm=uRJ8 z9w7&%_6k@iq>*wXR3_aR^JL(e6p*v5 zh)vR>T%){WW$Dd~xVQ|{SgfwDwzh5pHn!y0tf6jauu2=1M#n%6znXzSk)->DkL0Tn z6`zP7w&Qc<)vKjk!Ap4pg$wzti!y)8kUZCieQdQ*}a@=(kzK zcMh<=h81+PFO9(0>Ga4<*F9BlA8(&`YKmO#bz)yQY8+}D<<;-74rWpD(BoR2KdOO_3@InS|L1!WsaC6sRkVNe)q06on=$Ae$_Q-uEQe@5-{2I_O#0V?YIy=g#Fa0 zS7<%_DNkKXbl@y6v(L;?rQE1M)8^!(Q3hBuS)ocJjfZBdCnQ-Jj#uA@l8*g zgHcPN#(aqhtid%O^|>DyxzCQ zdMK5*{IY1#B=v)WHMfw-_gKdRM;={z=yONdGmNuN@MGx!q$x(~%$X#BAzcAKr3lz2B5JLh8j6rR)od_t~-y zcF1=3j6XuFxMY!84Gq@fR(L<+)pqd6@tfI(b}UZRMR)4g@90PMIgxV-pAz@HcgtpZ z%-_E`ER2HYRFx;Pfo7oIT0+JQd+Bhub*-$J-LT2k`J6&q^$!zd2A6Cp>ds%37B^Cw zR+jWyA{C>-XdKK#Wo|DCZyaPTrh|S8%#Aj(Ssg0nV;hfXuG*-GJ^o>`CC-2{ws`Or zlQDX`c&o+=634eK-85Ts$mx^hm3&4xZYd$lOV4{swIn9L>hrPLB%8(~g0ju)sdG}! z0RQ7A(t&zD!G_YO+3hm)%a>33<+um|mFnCl9pWA>OR7|ezGsiGks4IJ9L}M187tK6 z`W031_^CmZ%E817(tb_OZdc(=TI8yY88MvrsnWK{rm{)2Gi77>&Dg7vqO)uDojR3C z%}psms|W0O5gOAbYKyUK=H{OoteB5*VwR+(X*S#M$-9d$(MI{ysp8o`**RSKvNCom z;!vD+tj=(cX7_nWytq%k_aJ9cUS)udgtFt>{rV(^j*m_Qk3c&|hgg#6Ek}2=M>-G_gr+_r>cVx}Zhr zGm&o_vwHem<*t`M^_=FqxOo7~`cOWC`_Yl%8gT8sKnjXXXxv1q>SfzZBWQ`Rw@1aS zjb)?F{cOt`^qHdkIU9xysMH;}_QoCMHz(Jd-#sXTRazy*J+hh!q7}XSc3@PwTT1F= zc-h)>TbJzW^2Yw$#?l3=kF;tQx(U2$jWBATY8G3w52uBxo1f`!Zd5rante)Kt~R*f zbv}}((BRdD+!OrI<735FH5zB@Wz^&qcEVW7inw|ox^ky)t_cg3^J&tw%aKi!iu;|? zB)?3m1EgW_YbRMdRv;eG<#(M_x#_GXmjHh>$vQCN_*lyIq{Gy~A+nN(aB4KQ0QHtp z{*k&-{_`E9dd;dEI?ievAEp_CGG)y?*BT8_-(1!L8#P9HIec_-rh{snHbSZneQQ5R zS{vFB-}3mam`7&Q=0rg%-p8h)>W1y$lm*N+(?;U$(^F4sD{nVR6SIlU$q0TIvcp;9fv{f{eq>lhAYeG*0}cX$K~Mw`g+~5Jv?{ye z>}<{D9IWjufuKD^4sX7Duo8iS?0wzs>+W|EC>Ztq@FdPj$#S>B-Mf6xCc0YM>jF`r zUtg4de%b4?t(_$l2uJ<%5F~WpsrkRBC%-3*ad^wU^P~U$R1xZ7z3_ydC_7j=?jpO5 zXj@v_5?CY5o*bbEmV!SMtr{*CmM*pq)<6Me3&KckUA=x?!n!#**;(4}jvw?}F8RN5 z2t+`BnWrAm2(*{bhJ*J1gCWpBFbV~Pq7gtCl2Aq>fe6I+Yfv!smmC6t1i~OlAQTGS z`@j1KK@#eLAV4G%yoW>KFdz*4T?P*Raep)jXkzkvhWLLl&HwB9J>x)dJiAjS_H)Wa zlz!6|3mk!V$K3TnfC4tIu1?}&Vtb&q3(m>L)*LVD=wdDS z-F7rx94*|;E&n&werun2qA@svaXDK5IIe8Hd)n?FqxN*Mw4&H0n*#Lf2Z(^fp>UuT z@H+-ZAa_ra>|JsAfq}q~-IpByD@H)!#Bw0mKQJ)i_QY~I;nQ7|I8 z-LuyJltZJ?L~>|25e9`J5&y(s5D-zjFeI3`e=rn;7~560e_$vSf*3=M}Xn`)kPC=1V(_-a3TzeB5DJH{@p%YU2uf;gv*|n#oAuB-1VJ%+q;gA kgf+{5-WS*n{6NHSd+<0H*FA4bxE}&V!OMF_LxJM|0I6M+0RR91 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.png b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.png new file mode 100644 index 0000000000000000000000000000000000000000..6967044ceeb0e506d8f488d10e4f337d8305155a GIT binary patch literal 25976 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.svg b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.svg new file mode 100644 index 000000000000..137ce0a69c8a --- /dev/null +++ b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_pat_trie_local.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 8.32e-08 + + + + 1.66e-07 + + + + 2.50e-07 + + + + 3.33e-07 + + + + 4.16e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pat_trie_map + + + + + + + + + n_map + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_vector_tree_local.pdf b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_vector_tree_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8b649d61ac5ff0bb343336a59d4eecbdb1dfcb9b GIT binary patch literal 18663 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 literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_vector_tree_local.png b/libstdc++-v3/doc/xml/images/pbds_tree_text_insert_timing_test_vector_tree_local.png new file mode 100644 index 0000000000000000000000000000000000000000..6da29328dd299f53845fa65c2ef2c89be75c7740 GIT binary patch literal 26412 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 r{9o*{+E6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 4.53e-07 + + + + 9.07e-07 + + + + 1.36e-06 + + + + 1.81e-06 + + + + 2.27e-06 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ov_tree_map + + + + + + + + + n_map + + + + diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find_timing_test_local.pdf b/libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find_timing_test_local.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2d196155db61a498308ffc0a39a263c02ca3a980 GIT binary patch literal 32567 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 QQzZ&c!Na4dr9|<600laUK>z>% literal 0 Hc-jL100001 diff --git a/libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find_timing_test_local.png b/libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find_timing_test_local.png new file mode 100644 index 0000000000000000000000000000000000000000..9959143a2b301ced7e1296225f30dc8d25c359f4 GIT binary patch literal 36553 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 QLjV8(07*qoM6N<$f+kEO!T + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1000 + + + + 1200 + + + + 1400 + + + + 1600 + + + + 1800 + + + + 2000 + + + + 2200 + + + + 2400 + + + Size + + + + + 0.00e+00 + + + + 4.44e-08 + + + + 8.89e-08 + + + + 1.33e-07 + + + + 1.78e-07 + + + + 2.22e-07 + + + Average time (sec.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ov_tree_map + + + + + + + + + rb_tree_map + + + + + + + + + n_map + + + + + + + + + splay_tree_map + + + + + + diff --git a/libstdc++-v3/doc/html/ext/pb_ds/trie_node_updator_policy_cd.png b/libstdc++-v3/doc/xml/images/pbds_trie_node_updator_policy_cd.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/trie_node_updator_policy_cd.png rename to libstdc++-v3/doc/xml/images/pbds_trie_node_updator_policy_cd.png diff --git a/libstdc++-v3/doc/html/ext/pb_ds/update_seq_diagram.png b/libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png similarity index 100% rename from libstdc++-v3/doc/html/ext/pb_ds/update_seq_diagram.png rename to libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png diff --git a/libstdc++-v3/doc/xml/manual/bitmap_allocator.xml b/libstdc++-v3/doc/xml/manual/bitmap_allocator.xml index 300cbabcd5a8..ab6d63b16c40 100644 --- a/libstdc++-v3/doc/xml/manual/bitmap_allocator.xml +++ b/libstdc++-v3/doc/xml/manual/bitmap_allocator.xml @@ -1,8 +1,8 @@ -

-bitmap_allocator +The bitmap_allocator ISO C++ @@ -558,4 +558,4 @@ equivalent.
- + diff --git a/libstdc++-v3/doc/xml/manual/extensions.xml b/libstdc++-v3/doc/xml/manual/extensions.xml index b93c61f1be26..fb2f5ca83e86 100644 --- a/libstdc++-v3/doc/xml/manual/extensions.xml +++ b/libstdc++-v3/doc/xml/manual/extensions.xml @@ -1,4 +1,4 @@ - @@ -17,13 +17,12 @@ - </info> - <para> - Here we will make an attempt at describing the non-Standard extensions to - the library. Some of these are from SGI's STL, some of these are GNU's, - and some just seemed to appear on the doorstep. + Here we will make an attempt at describing the non-Standard + extensions to the library. Some of these are from older versions of + standard library components, namely SGI's STL, and some of these are + GNU's. </para> <para><emphasis>Before</emphasis> you leap in and use any of these extensions, be aware of two things: @@ -53,7 +52,7 @@ extensions, be aware of two things: <!-- Chapter 01 : Compile Time Checks --> <chapter xml:id="manual.ext.compile_checks" xreflabel="Compile Time Checks"><info><title>Compile Time Checks - + Also known as concept checking. @@ -100,59 +99,57 @@ extensions, be aware of two things: - + - + - + - -Allocators - - - - - - + + + + + - - - + + + - + + + + - -Containers + + + HP/SGI Extensions - - - -
Policy Based Data Structures - - - More details here. - -
-
HP/SGI - - +
+ Backwards Compatibility + + A few extensions and nods to backwards-compatibility have + been made with containers. Those dealing with older SGI-style + allocators are dealt with elsewhere. The remaining ones all deal + with bits: + + The old pre-standard bit_vector class is + present for backwards compatibility. It is simply a typedef for + the vector<bool> specialization. -A few extensions and nods to backwards-compatibility have been made with - containers. Those dealing with older SGI-style allocators are dealt with - elsewhere. The remaining ones all deal with bits: - -The old pre-standard bit_vector class is present for - backwards compatibility. It is simply a typedef for the - vector<bool> specialization. - The bitset class has a number of extensions, described in the rest of this item. First, we'll mention that this implementation of bitset<N> is specialized for cases where N number of @@ -197,8 +194,8 @@ extensions, be aware of two things:
-
Deprecated HP/SGI - +
Deprecated + The SGI hashing classes hash_set and @@ -262,10 +259,10 @@ extensions, be aware of two things:
- + Utilities - + The <functional> header contains many additional functors and helper functions, extending section 20.3. They are @@ -332,10 +329,10 @@ get_temporary_buffer(5, (int*)0); - + Algorithms - + 25.1.6 (count, count_if) is extended with two more versions of count and count_if. The standard versions return their results. The additional signatures return void, but take a final parameter by @@ -370,10 +367,10 @@ get_temporary_buffer(5, (int*)0); - + Numerics - + 26.4, the generalized numeric operations such as accumulate, are extended with the following functions: @@ -395,10 +392,10 @@ get_temporary_buffer(5, (int*)0); void iota(_ForwardIter first, _ForwardIter last, _Tp value); - + Iterators - + 24.3.2 describes struct iterator, which didn't exist in the original HP STL implementation (the language wasn't rich enough at the time). For backwards compatibility, base classes are provided which @@ -419,10 +416,10 @@ get_temporary_buffer(5, (int*)0); - + Input and Output - + Extensions allowing filebufs to be constructed from @@ -430,7 +427,7 @@ get_temporary_buffer(5, (int*)0);
Derived filebufs - + The v2 library included non-standard extensions to construct std::filebufs from C stdio types such as @@ -489,10 +486,10 @@ get_temporary_buffer(5, (int*)0);
- + Demangling - + Transforming C++ ABI identifiers (like RTTI symbols) into the original C++ source identifiers is called @@ -574,7 +571,7 @@ int main() - + diff --git a/libstdc++-v3/doc/xml/manual/mt_allocator.xml b/libstdc++-v3/doc/xml/manual/mt_allocator.xml index b31b593bc29a..8d4d127e6c47 100644 --- a/libstdc++-v3/doc/xml/manual/mt_allocator.xml +++ b/libstdc++-v3/doc/xml/manual/mt_allocator.xml @@ -1,8 +1,8 @@ -
-mt_allocator +The mt_allocator ISO C++ @@ -552,4 +552,4 @@ and forth" between freelists.
-
+ diff --git a/libstdc++-v3/doc/xml/manual/policy_data_structures.xml b/libstdc++-v3/doc/xml/manual/policy_data_structures.xml new file mode 100644 index 000000000000..e9495db60915 --- /dev/null +++ b/libstdc++-v3/doc/xml/manual/policy_data_structures.xml @@ -0,0 +1,6584 @@ + + + Policy-Based Data Structures + + + ISO C++ + + + policy + + + container + + + data + + + structure + + + associated + + + tree + + + trie + + + hash + + + metaprogramming + + + + + + + + + +
+ Intro + + + This is a library of policy-based elementary data structures: + associative containers and priority queues. It is designed for + high-performance, flexibility, semantic safety, and conformance to + the corresponding containers in std and + std::tr1 (except for some points where it differs + by design). + + + + +
+ Performance Issues + + + + + An attempt is made to categorize the wide variety of possible + container designs in terms of performance-impacting factors. These + performance factors are translated into design policies and + incorporated into container design. + + + + There is tension between unravelling factors into a coherent set of + policies. Every attempt is made to make a minimal set of + factors. However, in many cases multiple factors make for long + template names. Every attempt is made to alias and use typedefs in + the source files, but the generated names for external symbols can + be large for binary files or debuggers. + + + + In many cases, the longer names allow capabilities and behaviours + controlled by macros to also be unamibiguously emitted as distinct + generated names. + + + + Specific issues found while unraveling performance factors in the + design of associative containers and priority queues follow. + + +
+ Associative + + + Associative containers depend on their composite policies to a very + large extent. Implicitly hard-wiring policies can hamper their + performance and limit their functionality. An efficient hash-based + container, for example, requires policies for testing key + equivalence, hashing keys, translating hash values into positions + within the hash table, and determining when and how to resize the + table internally. A tree-based container can efficiently support + order statistics, i.e. the ability to query what is the order of + each key within the sequence of keys in the container, but only if + the container is supplied with a policy to internally update + meta-data. There are many other such examples. + + + + Ideally, all associative containers would share the same + interface. Unfortunately, underlying data structures and mapping + semantics differentiate between different containers. For example, + suppose one writes a generic function manipulating an associative + container. + + + + template<typename Cntnr> + void + some_op_sequence(Cntnr& r_cnt) + { + ... + } + + + + Given this, then what can one assume about the instantiating + container? The answer varies according to its underlying data + structure. If the underlying data structure of + Cntnr is based on a tree or trie, then the order + of elements is well defined; otherwise, it is not, in general. If + the underlying data structure of Cntnr is based + on a collision-chaining hash table, then modifying + r_Cntnr will not invalidate its iterators' order; + if the underlying data structure is a probing hash table, then this + is not the case. If the underlying data structure is based on a tree + or trie, then a reference to the container can efficiently be split; + otherwise, it cannot, in general. If the underlying data structure + is a red-black tree, then splitting a reference to the container is + exception-free; if it is an ordered-vector tree, exceptions can be + thrown. + + +
+ +
+ Priority Que + + + Priority queues are useful when one needs to efficiently access a + minimum (or maximum) value as the set of values changes. + + + + Most useful data structures for priority queues have a relatively + simple structure, as they are geared toward relatively simple + requirements. Unfortunately, these structures do not support access + to an arbitrary value, which turns out to be necessary in many + algorithms. Say, decreasing an arbitrary value in a graph + algorithm. Therefore, some extra mechanism is necessary and must be + invented for accessing arbitrary values. There are at least two + alternatives: embedding an associative container in a priority + queue, or allowing cross-referencing through iterators. The first + solution adds significant overhead; the second solution requires a + precise definition of iterator invalidation. Which is the next + point... + + + + Priority queues, like hash-based containers, store values in an + order that is meaningless and undefined externally. For example, a + push operation can internally reorganize the + values. Because of this characteristic, describing a priority + queues' iterator is difficult: on one hand, the values to which + iterators point can remain valid, but on the other, the logical + order of iterators can change unpredictably. + + + + Roughly speaking, any element that is both inserted to a priority + queue (e.g. through push) and removed + from it (e.g., through pop), incurs a + logarithmic overhead (in the amortized sense). Different underlying + data structures place the actual cost differently: some are + optimized for amortized complexity, whereas others guarantee that + specific operations only have a constant cost. One underlying data + structure might be chosen if modifying a value is frequent + (Dijkstra's shortest-path algorithm), whereas a different one might + be chosen otherwise. Unfortunately, an array-based binary heap - an + underlying data structure that optimizes (in the amortized sense) + push and pop operations, differs from the + others in terms of its invalidation guarantees. Other design + decisions also impact the cost and placement of the overhead, at the + expense of more difference in the the kinds of operations that the + underlying data structure can support. These differences pose a + challenge when creating a uniform interface for priority queues. + +
+
+ +
+ Goals + + + Many fine associative-container libraries were already written, + most notably, the C++ standard's associative containers. Why + then write another library? This section shows some possible + advantages of this library, when considering the challenges in + the introduction. Many of these points stem from the fact that + the ISO C++ process introduced associative-containers in a + two-step process (first standardizing tree-based containers, + only then adding hash-based containers, which are fundamentally + different), did not standardize priority queues as containers, + and (in our opinion) overloads the iterator concept. + + +
+ Associative + + + +
+ Policy Choices + + Associative containers require a relatively large number of + policies to function efficiently in various settings. In some + cases this is needed for making their common operations more + efficient, and in other cases this allows them to support a + larger set of operations + + + + + + Hash-based containers, for example, support look-up and + insertion methods (find and + insert). In order to locate elements + quickly, they are supplied a hash functor, which instruct + how to transform a key object into some size type; a hash + functor might transform "hello" + into 1123002298. A hash table, though, + requires transforming each key object into some size-type + type in some specific domain; a hash table with a 128-long + table might transform "hello" into + position 63. The policy by which the + hash value is transformed into a position within the table + can dramatically affect performance. Hash-based containers + also do not resize naturally (as opposed to tree-based + containers, for example). The appropriate resize policy is + unfortunately intertwined with the policy that transforms + hash value into a position within the table. + + + + + + Tree-based containers, for example, also support look-up and + insertion methods, and are primarily useful when maintaining + order between elements is important. In some cases, though, + one can utilize their balancing algorithms for completely + different purposes. + + + + Figure A shows a tree whose each node contains two entries: + a floating-point key, and some size-type + metadata (in bold beneath it) that is + the number of nodes in the sub-tree. (The root has key 0.99, + and has 5 nodes (including itself) in its sub-tree.) A + container based on this data structure can obviously answer + efficiently whether 0.3 is in the container object, but it + can also answer what is the order of 0.3 among all those in + the container object: see . + + + + + As another example, Figure B shows a tree whose each node + contains two entries: a half-open geometric line interval, + and a number metadata (in bold beneath + it) that is the largest endpoint of all intervals in its + sub-tree. (The root describes the interval [20, + 36), and the largest endpoint in its sub-tree is + 99.) A container based on this data structure can obviously + answer efficiently whether [3, 41) is + in the container object, but it can also answer efficiently + whether the container object has intervals that intersect + [3, 41). These types of queries are + very useful in geometric algorithms and lease-management + algorithms. + + + + It is important to note, however, that as the trees are + modified, their internal structure changes. To maintain + these invariants, one must supply some policy that is aware + of these changes. Without this, it would be better to use a + linked list (in itself very efficient for these purposes). + + + + + +
+ Node Invariants + + + + + + Node Invariants + + +
+ +
+ +
+ Underlying Data Structures + + The standard C++ library contains associative containers based on + red-black trees and collision-chaining hash tables. These are + very useful, but they are not ideal for all types of + settings. + + + + The figure below shows the different underlying data structures + currently supported in this library. + + +
+ Underlying Associative Data Structures + + + + + + Underlying Associative Data Structures + + +
+ + + A shows a collision-chaining hash-table, B shows a probing + hash-table, C shows a red-black tree, D shows a splay tree, E shows + a tree based on an ordered vector(implicit in the order of the + elements), F shows a PATRICIA trie, and G shows a list-based + container with update policies. + + + + Each of these data structures has some performance benefits, in + terms of speed, size or both. For now, note that vector-based trees + and probing hash tables manipulate memory more efficiently than + red-black trees and collision-chaining hash tables, and that + list-based associative containers are very useful for constructing + "multimaps". + + + + Now consider a function manipulating a generic associative + container, + + + template<class Cntnr> + int + some_op_sequence(Cntnr &r_cnt) + { + ... + } + + + + Ideally, the underlying data structure + of Cntnr would not affect what can be + done with r_cnt. Unfortunately, this is not + the case. + + + + For example, if Cntnr + is std::map, then the function can + use + + + std::for_each(r_cnt.find(foo), r_cnt.find(bar), foobar) + + + in order to apply foobar to all + elements between foo and + bar. If + Cntnr is a hash-based container, + then this call's results are undefined. + + + + Also, if Cntnr is tree-based, the type + and object of the comparison functor can be + accessed. If Cntnr is hash based, these + queries are nonsensical. + + + + There are various other differences based on the container's + underlying data structure. For one, they can be constructed by, + and queried for, different policies. Furthermore: + + + + + + Containers based on C, D, E and F store elements in a + meaningful order; the others store elements in a meaningless + (and probably time-varying) order. By implication, only + containers based on C, D, E and F can + support erase operations taking an + iterator and returning an iterator to the following element + without performance loss. + + + + + + Containers based on C, D, E, and F can be split and joined + efficiently, while the others cannot. Containers based on C + and D, furthermore, can guarantee that this is exception-free; + containers based on E cannot guarantee this. + + + + + + Containers based on all but E can guarantee that + erasing an element is exception free; containers based on E + cannot guarantee this. Containers based on all but B and E + can guarantee that modifying an object of their type does + not invalidate iterators or references to their elements, + while containers based on B and E cannot. Containers based + on C, D, and E can furthermore make a stronger guarantee, + namely that modifying an object of their type does not + affect the order of iterators. + + + + + + A unified tag and traits system (as used for the C++ standard + library iterators, for example) can ease generic manipulation of + associative containers based on different underlying data + structures. + + +
+ +
+ Iterators + + Iterators are centric to the design of the standard library + containers, because of the container/algorithm/iterator + decomposition that allows an algorithm to operate on a range + through iterators of some sequence. Iterators, then, are useful + because they allow going over a + specific sequence. The standard library + also uses iterators for accessing a + specific element: when an associative + container returns one through find. The + standard library consistently uses the same types of iterators + for both purposes: going over a range, and accessing a specific + found element. Before the introduction of hash-based containers + to the standard library, this made sense (with the exception of + priority queues, which are discussed later). + + + + Using the standard associative containers together with + non-order-preserving associative containers (and also because of + priority-queues container), there is a possible need for + different types of iterators for self-organizing containers: + the iterator concept seems overloaded to mean two different + things (in some cases). XXX + "ds_gen.html#find_range">Design::Associative + Containers::Data-Structure Genericity::Point-Type and Range-Type + Methods. + + +
+ + Using Point Iterators for Range Operations + + + Suppose cntnr is some associative + container, and say c is an object of + type cntnr. Then what will be the outcome + of + + + + std::for_each(c.find(1), c.find(5), foo); + + + + If cntnr is a tree-based container + object, then an in-order walk will + apply foo to the relevant elements, + as in the graphic below, label A. If c is + a hash-based container, then the order of elements between any + two elements is undefined (and probably time-varying); there is + no guarantee that the elements traversed will coincide with the + logical elements between 1 and 5, as in + label B. + + +
+ Range Iteration in Different Data Structures + + + + + + Node Invariants + + +
+ + + In our opinion, this problem is not caused just because + red-black trees are order preserving while + collision-chaining hash tables are (generally) not - it + is more fundamental. Most of the standard's containers + order sequences in a well-defined manner that is + determined by their interface: + calling insert on a tree-based + container modifies its sequence in a predictable way, as + does calling push_back on a list or + a vector. Conversely, collision-chaining hash tables, + probing hash tables, priority queues, and list-based + containers (which are very useful for "multimaps") are + self-organizing data structures; the effect of each + operation modifies their sequences in a manner that is + (practically) determined by their + implementation. + + + + Consequently, applying an algorithm to a sequence obtained from most + containers may or may not make sense, but applying it to a + sub-sequence of a self-organizing container does not. + +
+ +
+ + Cost to Point Iterators to Enable Range Operations + + + Suppose c is some collision-chaining + hash-based container object, and one calls + + c.find(3) + + Then what composes the returned iterator? + + + + In the graphic below, label A shows the simplest (and + most efficient) implementation of a collision-chaining + hash table. The little box marked + point_iterator shows an object + that contains a pointer to the element's node. Note that + this "iterator" has no way to move to the next element ( + it cannot support + operator++). Conversely, the little + box marked iterator stores both a + pointer to the element, as well as some other + information (the bucket number of the element). the + second iterator, then, is "heavier" than the first one- + it requires more time and space. If we were to use a + different container to cross-reference into this + hash-table using these iterators - it would take much + more space. As noted above, nothing much can be done by + incrementing these iterators, so why is this extra + information needed? + + + + Alternatively, one might create a collision-chaining hash-table + where the lists might be linked, forming a monolithic total-element + list, as in the graphic below, label B. Here the iterators are as + light as can be, but the hash-table's operations are more + complicated. + + +
+ Point Iteration in Hash Data Structures + + + + + + Point Iteration in Hash Data Structures + + +
+ + + It should be noted that containers based on collision-chaining + hash-tables are not the only ones with this type of behavior; + many other self-organizing data structures display it as well. + +
+ +
+ Invalidation Guarantees + Consider the following snippet: + + it = c.find(3); + c.erase(5); + + + + Following the call to erase, what is the + validity of it: can it be de-referenced? + can it be incremented? + + + + The answer depends on the underlying data structure of the + container. The graphic below shows three cases: A1 and A2 show + a red-black tree; B1 and B2 show a probing hash-table; C1 and C2 + show a collision-chaining hash table. + + +
+ Effect of erase in different underlying data structures + + + + + + Effect of erase in different underlying data structures + + +
+ + + + + Erasing 5 from A1 yields A2. Clearly, an iterator to 3 can + be de-referenced and incremented. The sequence of iterators + changed, but in a way that is well-defined by the interface. + + + + + + Erasing 5 from B1 yields B2. Clearly, an iterator to 3 is + not valid at all - it cannot be de-referenced or + incremented; the order of iterators changed in a way that is + (practically) determined by the implementation and not by + the interface. + + + + + + Erasing 5 from C1 yields C2. Here the situation is more + complicated. On the one hand, there is no problem in + de-referencing it. On the other hand, + the order of iterators changed in a way that is + (practically) determined by the implementation and not by + the interface. + + + + + + So in the standard library containers, it is not always possible + to express whether it is valid or not. This + is true also for insert. Again, the + iterator concept seems overloaded. + +
+
+ + +
+ Functional + + + + + The design of the functional overlay to the underlying data + structures differs slightly from some of the conventions used in + the C++ standard. A strict public interface of methods that + comprise only operations which depend on the class's internal + structure; other operations are best designed as external + functions. (See ).With this + rubric, the standard associative containers lack some useful + methods, and provide other methods which would be better + removed. + + +
+ <function>erase</function> + + + + + Order-preserving standard associative containers provide the + method + + + iterator + erase(iterator it) + + + + which takes an iterator, erases the corresponding + element, and returns an iterator to the following + element. Also standardd hash-based associative + containers provide this method. This seemingly + increasesgenericity between associative containers, + since it is possible to use + + + typename C::iterator it = c.begin(); + typename C::iterator e_it = c.end(); + + while(it != e_it) + it = pred(*it)? c.erase(it) : ++it; + + + + in order to erase from a container object + c all element which match a + predicate pred. However, in a + different sense this actually decreases genericity: an + integral implication of this method is that tree-based + associative containers' memory use is linear in the total + number of elements they store, while hash-based + containers' memory use is unbounded in the total number of + elements they store. Assume a hash-based container is + allowed to decrease its size when an element is + erased. Then the elements might be rehashed, which means + that there is no "next" element - it is simply + undefined. Consequently, it is possible to infer from the + fact that the standard library's hash-based containers + provide this method that they cannot downsize when + elements are erased. As a consequence, different code is + needed to manipulate different containers, assuming that + memory should be conserved. Therefor, this library's + non-order preserving associative containers omit this + method. + + + + + + All associative containers include a conditional-erase method + + + template< + class Pred> + size_type + erase_if + (Pred pred) + + + which erases all elements matching a predicate. This is probably the + only way to ensure linear-time multiple-item erase which can + actually downsize a container. + + + + + + The standard associative containers provide methods for + multiple-item erase of the form + + + size_type + erase(It b, It e) + + + erasing a range of elements given by a pair of + iterators. For tree-based or trie-based containers, this can + implemented more efficiently as a (small) sequence of split + and join operations. For other, unordered, containers, this + method isn't much better than an external loop. Moreover, + if c is a hash-based container, + then + + + c.erase(c.find(2), c.find(5)) + + + is almost certain to do something + different than erasing all elements whose keys are between 2 + and 5, and is likely to produce other undefined behavior. + + + +
+ +
+ + + <function>split</function> and <function>join</function> + + + + It is well-known that tree-based and trie-based container + objects can be efficiently split or joined (See + ). Externally splitting or + joining trees is super-linear, and, furthermore, can throw + exceptions. Split and join methods, consequently, seem good + choices for tree-based container methods, especially, since as + noted just before, they are efficient replacements for erasing + sub-sequences. + + +
+ +
+ + + <function>insert</function> + + + + The standard associative containers provide methods of the form + + + template<class It> + size_type + insert(It b, It e); + + + + for inserting a range of elements given by a pair of + iterators. At best, this can be implemented as an external loop, + or, even more efficiently, as a join operation (for the case of + tree-based or trie-based containers). Moreover, these methods seem + similar to constructors taking a range given by a pair of + iterators; the constructors, however, are transactional, whereas + the insert methods are not; this is possibly confusing. + + +
+ +
+ + + <function>operator==</function> and <function>operator<=</function> + + + + + Associative containers are parametrized by policies allowing to + test key equivalence: a hash-based container can do this through + its equivalence functor, and a tree-based container can do this + through its comparison functor. In addition, some standard + associative containers have global function operators, like + operator== and operator<=, + that allow comparing entire associative containers. + + + + In our opinion, these functions are better left out. To begin + with, they do not significantly improve over an external + loop. More importantly, however, they are possibly misleading - + operator==, for example, usually checks for + equivalence, or interchangeability, but the associative + container cannot check for values' equivalence, only keys' + equivalence; also, are two containers considered equivalent if + they store the same values in different order? this is an + arbitrary decision. + +
+ +
+ +
+ +
+ Priority Queues + +
+ Policy Choices + + + Priority queues are containers that allow efficiently inserting + values and accessing the maximal value (in the sense of the + container's comparison functor). Their interface + supports push + and pop. The standard + container std::priorityqueue indeed support + these methods, but little else. For algorithmic and + software-engineering purposes, other methods are needed: + + + + + + Many graph algorithms (see + ) require increasing a + value in a priority queue (again, in the sense of the + container's comparison functor), or joining two + priority-queue objects. + + + + + The return type of priority_queue's + push method is a point-type iterator, which can + be used for modifying or erasing arbitrary values. For + example: + + priority_queue<int> p; + priority_queue<int>::point_iterator it = p.push(3); + p.modify(it, 4); + + + These types of cross-referencing operations are necessary + for making priority queues useful for different applications, + especially graph applications. + + + + + It is sometimes necessary to erase an arbitrary value in a + priority queue. For example, consider + the select function for monitoring + file descriptors: + + + + int + select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, + struct timeval *timeout); + + + then, as the select documentation states: + + + + The nfds argument specifies the range of file + descriptors to be tested. The select() function tests file + descriptors in the range of 0 to nfds-1. + + + + It stands to reason, therefore, that we might wish to + maintain a minimal value for nfds, and + priority queues immediately come to mind. Note, though, that + when a socket is closed, the minimal file description might + change; in the absence of an efficient means to erase an + arbitrary value from a priority queue, we might as well + avoid its use altogether. + + + + The standard containers typically support iterators. It is + somewhat unusual + for std::priority_queue to omit them + (See ). One might + ask why do priority queues need to support iterators, since + they are self-organizing containers with a different purpose + than abstracting sequences. There are several reasons: + + + + + Iterators (even in self-organizing containers) are + useful for many purposes: cross-referencing + containers, serialization, and debugging code that uses + these containers. + + + + + + The standard library's hash-based containers support + iterators, even though they too are self-organizing + containers with a different purpose than abstracting + sequences. + + + + + + In standard-library-like containers, it is natural to specify the + interface of operations for modifying a value or erasing + a value (discussed previously) in terms of a iterators. + It should be noted that the standard + containers also use iterators for accessing and + manipulating a specific value. In hash-based + containers, one checks the existence of a key by + comparing the iterator returned by find to the + iterator returned by end, and not by comparing a + pointer returned by find to NULL. + + + + + + +
+ +
+ Underlying Data Structures + + + There are three main implementations of priority queues: the + first employs a binary heap, typically one which uses a + sequence; the second uses a tree (or forest of trees), which is + typically less structured than an associative container's tree; + the third simply uses an associative container. These are + shown in the figure below with labels A1 and A2, B, and C. + + +
+ Underlying Priority Queue Data Structures + + + + + + Underlying Priority Queue Data Structures + + +
+ + + No single implementation can completely replace any of the + others. Some have better push + and pop amortized performance, some have + better bounded (worst case) response time than others, some + optimize a single method at the expense of others, etc. In + general the "best" implementation is dictated by the specific + problem. + + + + As with associative containers, the more implementations + co-exist, the more necessary a traits mechanism is for handling + generic containers safely and efficiently. This is especially + important for priority queues, since the invalidation guarantees + of one of the most useful data structures - binary heaps - is + markedly different than those of most of the others. + + +
+ +
+ Binary Heaps + + + + Binary heaps are one of the most useful underlying + data structures for priority queues. They are very efficient in + terms of memory (since they don't require per-value structure + metadata), and have the best amortized push and + pop performance for primitive types like + int. + + + + The standard library's priority_queue + implements this data structure as an adapter over a sequence, + typically + std::vector + or std::deque, which correspond to labels + A1 and A2 respectively in the graphic above. + + + + This is indeed an elegant example of the adapter concept and + the algorithm/container/iterator decomposition. (See ). There are + several reasons why a binary-heap priority queue + may be better implemented as a container instead of a + sequence adapter: + + + + + + std::priority_queue cannot erase values + from its adapted sequence (irrespective of the sequence + type). This means that the memory use of + an std::priority_queue object is always + proportional to the maximal number of values it ever contained, + and not to the number of values that it currently + contains. (See performance/priority_queue_text_pop_mem_usage.cc.) + This implementation of binary heaps acts very differently than + other underlying data structures (See also pairing heaps). + + + + + + Some combinations of adapted sequences and value types + are very inefficient or just don't make sense. If one uses + std::priority_queue<std::vector<std::string> + > >, for example, then not only will each + operation perform a logarithmic number of + std::string assignments, but, furthermore, any + operation (including pop) can render the container + useless due to exceptions. Conversely, if one uses + std::priority_queue<std::deque<int> > + >, then each operation uses incurs a logarithmic + number of indirect accesses (through pointers) unnecessarily. + It might be better to let the container make a conservative + deduction whether to use the structure in the graphic above, labels A1 or A2. + + + + + + There does not seem to be a systematic way to determine + what exactly can be done with the priority queue. + + + + + If p is a priority queue adapting an + std::vector, then it is possible to iterate over + all values by using &p.top() and + &p.top() + p.size(), but this will not work + if p is adapting an std::deque; in any + case, one cannot use p.begin() and + p.end(). If a different sequence is adapted, it + is even more difficult to determine what can be + done. + + + + + + If p is a priority queue adapting an + std::deque, then the reference return by + + + p.top() + + + will remain valid until it is popped, + but if p adapts an std::vector, the + next push will invalidate it. If a different + sequence is adapted, it is even more difficult to + determine what can be done. + + + + + + + + Sequence-based binary heaps can still implement + linear-time erase and modify operations. + This means that if one needs to erase a small + (say logarithmic) number of values, then one might still + choose this underlying data structure. Using + std::priority_queue, however, this will generally + change the order of growth of the entire sequence of + operations. + + + + +
+
+
+
+ + +
+ Using + + +
+ Prerequisites + + The library contains only header files, and does not require any + other libraries except the standard C++ library . All classes are + defined in namespace __gnu_pbds. The library internally + uses macros beginning with PB_DS, but + #undefs anything it #defines (except for + header guards). Compiling the library in an environment where macros + beginning in PB_DS are defined, may yield unpredictable + results in compilation, execution, or both. + + + Further dependencies are necessary to create the visual output for the + performance tests. To create these graphs, two additional packages + will be needed: pychart and Beautiful + Soup. + +
+ +
+ Organization + + + The various data structures are organized as follows. + + + + + + Branch-Based + + + + + + basic_branch + is an abstract base class for branched-based + associative-containers + + + + + + tree + is a concrete base class for tree-based + associative-containers + + + + + + trie + is a concrete base class trie-based + associative-containers + + + + + + + + Hash-Based + + + + + basic_hash_table + is an abstract base class for hash-based + associative-containers + + + + + + cc_hash_table + is a concrete collision-chaining hash-based + associative-containers + + + + + + gp_hash_table + is a concrete (general) probing hash-based + associative-containers + + + + + + + + List-Based + + + + + list_update + list-based update-policy associative container + + + + + + + Heap-Based + + + + + priority_queue + A priority queue. + + + + + + + + The hierarchy is composed naturally so that commonality is + captured by base classes. Thus operator[] + is defined at the base of any hierarchy, since all derived + containers support it. Conversely split is + defined in basic_branch, since only + tree-like containers support it. + + + + In addition, there are the following diagnostics classes, + used to report errors specific to this library's data + structures. + + +
+ Exception Hierarchy + + + + + + + + + Exception Hierarchy + + +
+ +
+ +
+ Tutorial + +
+ Basic Use + + + For the most part, the policy-based containers containers in + namespace __gnu_pbds have the same interface as + the equivalent containers in the standard C++ library, except for + the names used for the container classes themselves. For example, + this shows basic operations on a collision-chaining hash-based + container: + + + #include <ext/pb_ds/assoc_container.h> + + int main() + { + __gnu_pbds::cc_hash_table<int, char> c; + c[2] = 'b'; + assert(c.find(1) == c.end()); + }; + + + + The container is called + __gnu_pbds::cc_hash_table instead of + std::unordered_map, since unordered + map does not necessarily mean a hash-based map as implied by + the C++ library (C++0x or TR1). For example, list-based associative + containers, which are very useful for the construction of + "multimaps," are also unordered. + + + This snippet shows a red-black tree based container: + + + #include <ext/pb_ds/assoc_container.h> + + int main() + { + __gnu_pbds::tree<int, char> c; + c[2] = 'b'; + assert(c.find(2) != c.end()); + }; + + + The container is called tree instead of + map since the underlying data structures are + being named with specificity. + + + + The member function naming convention is to strive to be the same as + the equivalent member functions in other C++ standard library + containers. The familiar methods are unchanged: + begin, end, + size, empty, and + clear. + + + + This isn't to say that things are exactly as one would expect, given + the container requirments and interfaces in the C++ standard. + + + + The names of containers' policies and policy accessors are + different then the usual. For example, if hash_type is + some type of hash-based container, then + + + hash_type::hash_fn + + + + gives the type of its hash functor, and if obj is + some hash-based container object, then + + + + obj.get_hash_fn() + + + will return a reference to its hash-functor object. + + + + Similarly, if tree_type is some type of tree-based + container, then + + + + tree_type::cmp_fn + + + + gives the type of its comparison functor, and if + obj is some tree-based container object, + then + + + + obj.get_cmp_fn() + + + will return a reference to its comparison-functor object. + + + It would be nice to give names consistent with those in the existing + C++ standard (inclusive of TR1). Unfortunately, these standard + containers don't consistently name types and methods. For example, + std::tr1::unordered_map uses + hasher for the hash functor, but + std::map uses key_compare for + the comparison functor. Also, we could not find an accessor for + std::tr1::unordered_map's hash functor, but + std::map uses compare + for accessing the comparison functor. + + + + Instead, __gnu_pbds attempts to be internally + consistent, and uses standard-derived terminology if possible. + + + + Another source of difference is in scope: + __gnu_pbds contains more types of associative + containers than the standard C++ library, and more opportunities + to configure these new containers, since different types of + associative containers are useful in different settings. + + + + Namespace __gnu_pbds contains different classes for + hash-based containers, tree-based containers, trie-based containers, + and list-based containers. + + + + Since associative containers share parts of their interface, they + are organized as a class hierarchy. + + + Each type or method is defined in the most-common ancestor + in which it makes sense. + + + For example, all associative containers support iteration + expressed in the following form: + + + + const_iterator + begin() const; + + iterator + begin(); + + const_iterator + end() const; + + iterator + end(); + + + + But not all containers contain or use hash functors. Yet, both + collision-chaining and (general) probing hash-based associative + containers have a hash functor, so + basic_hash_table contains the interface: + + + + const hash_fn& + get_hash_fn() const; + + hash_fn& + get_hash_fn(); + + + + so all hash-based associative containers inherit the same + hash-functor accessor methods. + + +
+ +
+ + + Configuring via Template Parameters + + + + + In general, each of this library's containers is + parametrized by more policies than those of the standard library. For + example, the standard hash-based container is parametrized as + follows: + + + template<typename Key, typename Mapped, typename Hash, + typename Pred, typename Allocator, bool Cache_Hashe_Code> + class unordered_map; + + + + and so can be configured by key type, mapped type, a functor + that translates keys to unsigned integral types, an equivalence + predicate, an allocator, and an indicator whether to store hash + values with each entry. this library's collision-chaining + hash-based container is parametrized as + + + template<typename Key, typename Mapped, typename Hash_Fn, + typename Eq_Fn, typename Comb_Hash_Fn, + typename Resize_Policy, bool Store_Hash + typename Allocator> + class cc_hash_table; + + + + and so can be configured by the first four types of + std::tr1::unordered_map, then a + policy for translating the key-hash result into a position + within the table, then a policy by which the table resizes, + an indicator whether to store hash values with each entry, + and an allocator (which is typically the last template + parameter in standard containers). + + + + Nearly all policy parameters have default values, so this + need not be considered for casual use. It is important to + note, however, that hash-based containers' policies can + dramatically alter their performance in different settings, + and that tree-based containers' policies can make them + useful for other purposes than just look-up. + + + + As opposed to associative containers, priority queues have + relatively few configuration options. The priority queue is + parametrized as follows: + + template<typename Value_Type, typename Cmp_Fn,typename Tag, + typename Allocator> + class priority_queue; + + + The Value_Type, Cmp_Fn, and + Allocator parameters are the container's value type, + comparison-functor type, and allocator type, respectively; + these are very similar to the standard's priority queue. The + Tag parameter is different: there are a number of + pre-defined tag types corresponding to binary heaps, binomial + heaps, etc., and Tag should be instantiated + by one of them. + + Note that as opposed to the + std::priority_queue, + __gnu_pbds::priority_queue is not a + sequence-adapter; it is a regular container. + +
+ +
+ + + Querying Container Attributes + + + + + A containers underlying data structure + affect their performance; Unfortunately, they can also affect + their interface. When manipulating generically associative + containers, it is often useful to be able to statically + determine what they can support and what the cannot. + + + Happily, the standard provides a good solution to a similar + problem - that of the different behavior of iterators. If + It is an iterator, then + + + typename std::iterator_traits<It>::iterator_category + + + is one of a small number of pre-defined tag classes, and + + + typename std::iterator_traits<It>::value_type + + + is the value type to which the iterator "points". + + + Similarly, in this library, if C is a + container, then container_traits is a + trait class that stores information about the kind of + container that is implemented. + + + typename container_traits<C>::container_category + + + is one of a small number of predefined tag structures that + uniquely identifies the type of underlying data structure. + + + In most cases, however, the exact underlying data + structure is not really important, but what is important is + one of its other attributes: whether it guarantees storing + elements by key order, for example. For this one can + use + + typename container_traits<C>::order_preserving + + + Also, + + + typename container_traits<C>::invalidation_guarantee + + + is the container's invalidation guarantee. Invalidation + guarantees are especially important regarding priority queues, + since in this library's design, iterators are practically the + only way to manipulate them. +
+ +
+ + + Point and Range Iteration + + + + + This library differentiates between two types of methods + and iterators: point-type, and range-type. For example, + find and insert are point-type methods, since + they each deal with a specific element; their returned + iterators are point-type iterators. begin and + end are range-type methods, since they are not used to + find a specific element, but rather to go over all elements in + a container object; their returned iterators are range-type + iterators. + + + Most containers store elements in an order that is + determined by their interface. Correspondingly, it is fine that + their point-type iterators are synonymous with their range-type + iterators. For example, in the following snippet + + + std::for_each(c.find(1), c.find(5), foo); + + + two point-type iterators (returned by find) are used + for a range-type purpose - going over all elements whose key is + between 1 and 5. + + + + Conversely, the above snippet makes no sense for + self-organizing containers - ones that order (and reorder) + their elements by implementation. It would be nice to have a + uniform iterator system that would allow the above snippet to + compile only if it made sense. + + + + This could trivially be done by specializing + std::for_each for the case of iterators returned by + std::tr1::unordered_map, but this would only solve the + problem for one algorithm and one container. Fundamentally, the + problem is that one can loop using a self-organizing + container's point-type iterators. + + + + This library's containers define two families of + iterators: point_const_iterator and + point_iterator are the iterator types returned by + point-type methods; const_iterator and + iterator are the iterator types returned by range-type + methods. + + + class <- some container -> + { + public: + ... + + typedef <- something -> const_iterator; + + typedef <- something -> iterator; + + typedef <- something -> point_const_iterator; + + typedef <- something -> point_iterator; + + ... + + public: + ... + + const_iterator begin () const; + + iterator begin(); + + point_const_iterator find(...) const; + + point_iterator find(...); + }; + + + For + containers whose interface defines sequence order , it + is very simple: point-type and range-type iterators are exactly + the same, which means that the above snippet will compile if it + is used for an order-preserving associative container. + + + + For self-organizing containers, however, (hash-based + containers as a special example), the preceding snippet will + not compile, because their point-type iterators do not support + operator++. + + + In any case, both for order-preserving and self-organizing + containers, the following snippet will compile: + + + typename Cntnr::point_iterator it = c.find(2); + + + + because a range-type iterator can always be converted to a + point-type iterator. + + + Distingushing between iterator types also + raises the point that a container's iterators might have + different invalidation rules concerning their de-referencing + abilities and movement abilities. This now corresponds exactly + to the question of whether point-type and range-type iterators + are valid. As explained above, container_traits allows + querying a container for its data structure attributes. The + iterator-invalidation guarantees are certainly a property of + the underlying data structure, and so + + + container_traits<C>::invalidation_guarantee + + + + gives one of three pre-determined types that answer this + query. + + +
+
+ +
+ Examples + + Additional code examples are provided in the source + distribution, as part of the regression and performance + testsuite. + + +
+ Intermediate Use + + + + + Basic use of maps: + basic_map.cc + + + + + + Basic use of sets: + basic_set.cc + + + + + + Conditionally erasing values from an associative container object: + erase_if.cc + + + + + + Basic use of multimaps: + basic_multimap.cc + + + + + + Basic use of multisets: + basic_multiset.cc + + + + + + Basic use of priority queues: + basic_priority_queue.cc + + + + + + Splitting and joining priority queues: + priority_queue_split_join.cc + + + + + + Conditionally erasing values from a priority queue: + priority_queue_erase_if.cc + + + + +
+ +
+ Querying with <classname>container_traits</classname> + + + + Using container_traits to query + about underlying data structure behavior: + assoc_container_traits.cc + + + + + + A non-compiling example showing wrong use of finding keys in + hash-based containers: hash_find_neg.cc + + + + + Using container_traits + to query about underlying data structure behavior: + priority_queue_container_traits.cc + + + + + +
+ +
+ By Container Method + + +
+ Hash-Based + +
+ size Related + + + + + Setting the initial size of a hash-based container + object: + hash_initial_size.cc + + + + + + A non-compiling example showing how not to resize a + hash-based container object: + hash_resize_neg.cc + + + + + + Resizing the size of a hash-based container object: + hash_resize.cc + + + + + + Showing an illegal resize of a hash-based container + object: + hash_illegal_resize.cc + + + + + + Changing the load factors of a hash-based container + object: hash_load_set_change.cc + + + +
+ +
+ Hashing Function Related + + + + + + Using a modulo range-hashing function for the case of an + unknown skewed key distribution: + hash_mod.cc + + + + + + Writing a range-hashing functor for the case of a known + skewed key distribution: + shift_mask.cc + + + + + + Storing the hash value along with each key: + store_hash.cc + + + + + + Writing a ranged-hash functor: + ranged_hash.cc + + + + +
+ +
+ +
+ Branch-Based + + +
+ split or join Related + + + + + Joining two tree-based container objects: + tree_join.cc + + + + + + Splitting a PATRICIA trie container object: + trie_split.cc + + + + + + Order statistics while joining two tree-based container + objects: + tree_order_statistics_join.cc + + + + +
+ +
+ Node Invariants + + + + + Using trees for order statistics: + tree_order_statistics.cc + + + + + + Augmenting trees to support operations on line + intervals: + tree_intervals.cc + + + + +
+ +
+ trie + + + + Using a PATRICIA trie for DNA strings: + trie_dna.cc + + + + + + Using a PATRICIA + trie for finding all entries whose key matches a given prefix: + trie_prefix_search.cc + + + + +
+ +
+ +
+ Priority Queues + + + + Cross referencing an associative container and a priority + queue: priority_queue_xref.cc + + + + + + Cross referencing a vector and a priority queue using a + very simple version of Dijkstra's shortest path + algorithm: + priority_queue_dijkstra.cc + + + + +
+ + +
+ +
+ +
+ + + + +
+ Design + + + +
+ Concepts + +
+ Null Policy Classes + + + Associative containers are typically parametrized by various + policies. For example, a hash-based associative container is + parametrized by a hash-functor, transforming each key into an + non-negative numerical type. Each such value is then further mapped + into a position within the table. The mapping of a key into a + position within the table is therefore a two-step process. + + + + In some cases, instantiations are redundant. For example, when the + keys are integers, it is possible to use a redundant hash policy, + which transforms each key into its value. + + + + In some other cases, these policies are irrelevant. For example, a + hash-based associative container might transform keys into positions + within a table by a different method than the two-step method + described above. In such a case, the hash functor is simply + irrelevant. + + + + When a policy is either redundant or irrelevant, it can be replaced + by null_type. + + + + For example, a set is an associative + container with one of its template parameters (the one for the + mapped type) replaced with null_type. Other + places simplifications are made possible with this technique + include node updates in tree and trie data structures, and hash + and probe functions for hash data structures. + +
+ +
+ Map and Set Semantics + +
+ + + Distinguishing Between Maps and Sets + + + + + Anyone familiar with the standard knows that there are four kinds + of associative containers: maps, sets, multimaps, and + multisets. The map datatype associates each key to + some data. + + + + Sets are associative containers that simply store keys - + they do not map them to anything. In the standard, each map class + has a corresponding set class. E.g., + std::map<int, char> maps each + int to a char, but + std::set<int, char> simply stores + ints. In this library, however, there are no + distinct classes for maps and sets. Instead, an associative + container's Mapped template parameter is a policy: if + it is instantiated by null_type, then it + is a "set"; otherwise, it is a "map". E.g., + + + cc_hash_table<int, char> + + + is a "map" mapping each int value to a + char, but + + + cc_hash_table<int, null_type> + + + is a type that uniquely stores int values. + + Once the Mapped template parameter is instantiated + by null_type, then + the "set" acts very similarly to the standard's sets - it does not + map each key to a distinct null_type object. Also, + , the container's value_type is essentially + its key_type - just as with the standard's sets + . + + + The standard's multimaps and multisets allow, respectively, + non-uniquely mapping keys and non-uniquely storing keys. As + discussed, the + reasons why this might be necessary are 1) that a key might be + decomposed into a primary key and a secondary key, 2) that a + key might appear more than once, or 3) any arbitrary + combination of 1)s and 2)s. Correspondingly, + one should use 1) "maps" mapping primary keys to secondary + keys, 2) "maps" mapping keys to size types, or 3) any arbitrary + combination of 1)s and 2)s. Thus, for example, an + std::multiset<int> might be used to store + multiple instances of integers, but using this library's + containers, one might use + + + tree<int, size_t> + + + + i.e., a map of ints to + size_ts. + + + These "multimaps" and "multisets" might be confusing to + anyone familiar with the standard's std::multimap and + std::multiset, because there is no clear + correspondence between the two. For example, in some cases + where one uses std::multiset in the standard, one might use + in this library a "multimap" of "multisets" - i.e., a + container that maps primary keys each to an associative + container that maps each secondary key to the number of times + it occurs. + + + + When one uses a "multimap," one should choose with care the + type of container used for secondary keys. + +
+ + +
+ Alternatives to <classname>std::multiset</classname> and <classname>std::multimap</classname> + + + Brace onself: this library does not contain containers like + std::multimap or + std::multiset. Instead, these data + structures can be synthesized via manipulation of the + Mapped template parameter. + + + One maps the unique part of a key - the primary key, into an + associative-container of the (originally) non-unique parts of + the key - the secondary key. A primary associative-container + is an associative container of primary keys; a secondary + associative-container is an associative container of + secondary keys. + + + + Stepping back a bit, and starting in from the beginning. + + + + + Maps (or sets) allow mapping (or storing) unique-key values. + The standard library also supplies associative containers which + map (or store) multiple values with equivalent keys: + std::multimap, std::multiset, + std::tr1::unordered_multimap, and + unordered_multiset. We first discuss how these might + be used, then why we think it is best to avoid them. + + + + Suppose one builds a simple bank-account application that + records for each client (identified by an std::string) + and account-id (marked by an unsigned long) - + the balance in the account (described by a + float). Suppose further that ordering this + information is not useful, so a hash-based container is + preferable to a tree based container. Then one can use + + + + std::tr1::unordered_map<std::pair<std::string, unsigned long>, float, ...> + + + + which hashes every combination of client and account-id. This + might work well, except for the fact that it is now impossible + to efficiently list all of the accounts of a specific client + (this would practically require iterating over all + entries). Instead, one can use + + + + std::tr1::unordered_multimap<std::pair<std::string, unsigned long>, float, ...> + + + + which hashes every client, and decides equivalence based on + client only. This will ensure that all accounts belonging to a + specific user are stored consecutively. + + + + Also, suppose one wants an integers' priority queue + (a container that supports push, + pop, and top operations, the last of which + returns the largest int) that also supports + operations such as find and lower_bound. A + reasonable solution is to build an adapter over + std::set<int>. In this adapter, + push will just call the tree-based + associative container's insert method; pop + will call its end method, and use it to return the + preceding element (which must be the largest). Then this might + work well, except that the container object cannot hold + multiple instances of the same integer (push(4), + will be a no-op if 4 is already in the + container object). If multiple keys are necessary, then one + might build the adapter over an + std::multiset<int>. + + + + The standard library's non-unique-mapping containers are useful + when (1) a key can be decomposed in to a primary key and a + secondary key, (2) a key is needed multiple times, or (3) any + combination of (1) and (2). + + + + The graphic below shows how the standard library's container + design works internally; in this figure nodes shaded equally + represent equivalent-key values. Equivalent keys are stored + consecutively using the properties of the underlying data + structure: binary search trees (label A) store equivalent-key + values consecutively (in the sense of an in-order walk) + naturally; collision-chaining hash tables (label B) store + equivalent-key values in the same bucket, the bucket can be + arranged so that equivalent-key values are consecutive. + + +
+ Non-unique Mapping Standard Containers + + + + + + Non-unique Mapping Standard Containers + + +
+ + + Put differently, the standards' non-unique mapping + associative-containers are associative containers that map + primary keys to linked lists that are embedded into the + container. The graphic below shows again the two + containers from the first graphic above, this time with + the embedded linked lists of the grayed nodes marked + explicitly. + + +
+ + Effect of embedded lists in + <classname>std::multimap</classname> + + + + + + + + Effect of embedded lists in + std::multimap + + + +
+ + + These embedded linked lists have several disadvantages. + + + + + + The underlying data structure embeds the linked lists + according to its own consideration, which means that the + search path for a value might include several different + equivalent-key values. For example, the search path for the + the black node in either of the first graphic, labels A or B, + includes more than a single gray node. + + + + + + The links of the linked lists are the underlying data + structures' nodes, which typically are quite structured. In + the case of tree-based containers (the grapic above, label + B), each "link" is actually a node with three pointers (one + to a parent and two to children), and a + relatively-complicated iteration algorithm. The linked + lists, therefore, can take up quite a lot of memory, and + iterating over all values equal to a given key (through the + return value of the standard + library's equal_range) can be + expensive. + + + + + + The primary key is stored multiply; this uses more memory. + + + + + + Finally, the interface of this design excludes several + useful underlying data structures. Of all the unordered + self-organizing data structures, practically only + collision-chaining hash tables can (efficiently) guarantee + that equivalent-key values are stored consecutively. + + + + + + The above reasons hold even when the ratio of secondary keys to + primary keys (or average number of identical keys) is small, but + when it is large, there are more severe problems: + + + + + + The underlying data structures order the links inside each + embedded linked-lists according to their internal + considerations, which effectively means that each of the + links is unordered. Irrespective of the underlying data + structure, searching for a specific value can degrade to + linear complexity. + + + + + + Similarly to the above point, it is impossible to apply + to the secondary keys considerations that apply to primary + keys. For example, it is not possible to maintain secondary + keys by sorted order. + + + + + + While the interface "understands" that all equivalent-key + values constitute a distinct list (through + equal_range), the underlying data + structure typically does not. This means that operations such + as erasing from a tree-based container all values whose keys + are equivalent to a a given key can be super-linear in the + size of the tree; this is also true also for several other + operations that target a specific list. + + + + + + + In this library, all associative containers map + (or store) unique-key values. One can (1) map primary keys to + secondary associative-containers (containers of + secondary keys) or non-associative containers (2) map identical + keys to a size-type representing the number of times they + occur, or (3) any combination of (1) and (2). Instead of + allowing multiple equivalent-key values, this library + supplies associative containers based on underlying + data structures that are suitable as secondary + associative-containers. + + + + In the figure below, labels A and B show the equivalent + underlying data structures in this library, as mapped to the + first graphic above. Labels A and B, respectively. Each shaded + box represents some size-type or secondary + associative-container. + + +
+ Non-unique Mapping Containers + + + + + + Non-unique Mapping Containers + + +
+ + + In the first example above, then, one would use an associative + container mapping each user to an associative container which + maps each application id to a start time (see + example/basic_multimap.cc); in the second + example, one would use an associative container mapping + each int to some size-type indicating the + number of times it logically occurs + (see example/basic_multiset.cc. + + + + See the discussion in list-based container types for containers + especially suited as secondary associative-containers. + +
+ +
+ +
+ Iterator Semantics + +
+ Point and Range Iterators + + + Iterator concepts are bifurcated in this design, and are + comprised of point-type and range-type iteration. + + + + A point-type iterator is an iterator that refers to a specific + element as returned through an + associative-container's find method. + + + + A range-type iterator is an iterator that is used to go over a + sequence of elements, as returned by a container's + find method. + + + + A point-type method is a method that + returns a point-type iterator; a range-type method is a method + that returns a range-type iterator. + + + For most containers, these types are synonymous; for + self-organizing containers, such as hash-based containers or + priority queues, these are inherently different (in any + implementation, including that of C++ standard library + components), but in this design, it is made explicit. They are + distinct types. + +
+ + +
+ Distinguishing Point and Range Iterators + + When using this library, is necessary to differentiate + between two types of methods and iterators: point-type methods and + iterators, and range-type methods and iterators. Each associative + container's interface includes the methods: + + point_const_iterator + find(const_key_reference r_key) const; + + point_iterator + find(const_key_reference r_key); + + std::pair<point_iterator,bool> + insert(const_reference r_val); + + + The relationship between these iterator types varies between + container types. The figure below + shows the most general invariant between point-type and + range-type iterators: In A iterator, can + always be converted to point_iterator. In B + shows invariants for order-preserving containers: point-type + iterators are synonymous with range-type iterators. + Orthogonally, Cshows invariants for "set" + containers: iterators are synonymous with const iterators. + +
+ Point Iterator Hierarchy + + + + + + Point Iterator Hierarchy + + +
+ + + Note that point-type iterators in self-organizing containers + (hash-based associative containers) lack movement + operators, such as operator++ - in fact, this + is the reason why this library differentiates from the standard C++ librarys + design on this point. + + Typically, one can determine an iterator's movement + capabilities using + std::iterator_traits<It>iterator_category, + which is a struct indicating the iterator's + movement capabilities. Unfortunately, none of the standard predefined + categories reflect a pointer's not having any + movement capabilities whatsoever. Consequently, + pb_ds adds a type + trivial_iterator_tag (whose name is taken from + a concept in C++ standardese, which is the category of iterators + with no movement capabilities.) All other standard C++ library + tags, such as forward_iterator_tag retain their + common use. + +
+ +
+ Invalidation Guarantees + + If one manipulates a container object, then iterators previously + obtained from it can be invalidated. In some cases a + previously-obtained iterator cannot be de-referenced; in other cases, + the iterator's next or previous element might have changed + unpredictably. This corresponds exactly to the question whether a + point-type or range-type iterator (see previous concept) is valid or + not. In this design, one can query a container (in compile time) about + its invalidation guarantees. + + + + + Given three different types of associative containers, a modifying + operation (in that example, erase) invalidated + iterators in three different ways: the iterator of one container + remained completely valid - it could be de-referenced and + incremented; the iterator of a different container could not even be + de-referenced; the iterator of the third container could be + de-referenced, but its "next" iterator changed unpredictably. + + + + Distinguishing between find and range types allows fine-grained + invalidation guarantees, because these questions correspond exactly + to the question of whether point-type iterators and range-type + iterators are valid. The graphic below shows tags corresponding to + different types of invalidation guarantees. + + +
+ Invalidation Guarantee Tags Hierarchy + + + + + + + + + Invalidation Guarantee Tags Hierarchy + + +
+ + + + + basic_invalidation_guarantee + corresponds to a basic guarantee that a point-type iterator, + a found pointer, or a found reference, remains valid as long + as the container object is not modified. + + + + + + point_invalidation_guarantee + corresponds to a guarantee that a point-type iterator, a + found pointer, or a found reference, remains valid even if + the container object is modified. + + + + + + range_invalidation_guarantee + corresponds to a guarantee that a range-type iterator remains + valid even if the container object is modified. + + + + + To find the invalidation guarantee of a + container, one can use + + typename container_traits<Cntnr>::invalidation_guarantee + + + Note that this hierarchy corresponds to the logic it + represents: if a container has range-invalidation guarantees, + then it must also have find invalidation guarantees; + correspondingly, its invalidation guarantee (in this case + range_invalidation_guarantee) + can be cast to its base class (in this case point_invalidation_guarantee). + This means that this this hierarchy can be used easily using + standard metaprogramming techniques, by specializing on the + type of invalidation_guarantee. + + + These types of problems were addressed, in a more general + setting, in - Item 2. In + our opinion, an invalidation-guarantee hierarchy would solve + these problems in all container types - not just associative + containers. + + +
+
+ +
+ Genericity + + + The design attempts to address the following problem of + data-structure genericity. When writing a function manipulating + a generic container object, what is the behavior of the object? + Suppose one writes + + + template<typename Cntnr> + void + some_op_sequence(Cntnr &r_container) + { + ... + } + + + + then one needs to address the following questions in the body + of some_op_sequence: + + + + + + Which types and methods does Cntnr support? + Containers based on hash tables can be queries for the + hash-functor type and object; this is meaningless for tree-based + containers. Containers based on trees can be split, joined, or + can erase iterators and return the following iterator; this + cannot be done by hash-based containers. + + + + + + What are the exception and invalidation guarantees + of Cntnr? A container based on a probing + hash-table invalidates all iterators when it is modified; this + is not the case for containers based on node-based + trees. Containers based on a node-based tree can be split or + joined without exceptions; this is not the case for containers + based on vector-based trees. + + + + + + How does the container maintain its elements? Tree-based and + Trie-based containers store elements by key order; others, + typically, do not. A container based on a splay trees or lists + with update policies "cache" "frequently accessed" elements; + containers based on most other underlying data structures do + not. + + + + + How does one query a container about characteristics and + capabilities? What is the relationship between two different + data structures, if anything? + + + + + The remainder of this section explains these issues in + detail. + + +
+ Tag + + Tags are very useful for manipulating generic types. For example, if + It is an iterator class, then typename + It::iterator_category or typename + std::iterator_traits<It>::iterator_category will + yield its category, and typename + std::iterator_traits<It>::value_type will yield its + value type. + + + + This library contains a container tag hierarchy corresponding to the + diagram below. + + +
+ Container Tag Hierarchy + + + + + + + + + Container Tag Hierarchy + + +
+ + + Given any container Cntnr, the tag of + the underlying data structure can be found via typename + Cntnr::container_category. + + +
+ +
+ Traits + + + Additionally, a traits mechanism can be used to query a + container type for its attributes. Given any container + Cntnr, then <Cntnr> + is a traits class identifying the properties of the + container. + + To find if a container can throw when a key is erased (which + is true for vector-based trees, for example), one can + use + + container_traits<Cntnr>::erase_can_throw + + + Some of the definitions in container_traits + are dependent on other + definitions. If container_traits<Cntnr>::order_preserving + is true (which is the case for containers + based on trees and tries), then the container can be split or + joined; in this + case, container_traits<Cntnr>::split_join_can_throw + indicates whether splits or joins can throw exceptions (which is + true for vector-based trees); + otherwise container_traits<Cntnr>::split_join_can_throw + will yield a compilation error. (This is somewhat similar to a + compile-time version of the COM model). + + +
+ +
+
+ +
+ By Container + + +
+ hash + + +
+ Interface + + + + + The collision-chaining hash-based container has the + following declaration. + + template< + typename Key, + typename Mapped, + typename Hash_Fn = std::hash<Key>, + typename Eq_Fn = std::equal_to<Key>, + typename Comb_Hash_Fn = direct_mask_range_hashing<> + typename Resize_Policy = default explained below. + bool Store_Hash = false, + typename Allocator = std::allocator<char> > + class cc_hash_table; + + + The parameters have the following meaning: + + + Key is the key type. + + Mapped is the mapped-policy. + + Hash_Fn is a key hashing functor. + + Eq_Fn is a key equivalence functor. + + Comb_Hash_Fn is a range-hashing_functor; + it describes how to translate hash values into positions + within the table. + + Resize_Policy describes how a container object + should change its internal size. + + Store_Hash indicates whether the hash value + should be stored with each entry. + + Allocator is an allocator + type. + + + The probing hash-based container has the following + declaration. + + template< + typename Key, + typename Mapped, + typename Hash_Fn = std::hash<Key>, + typename Eq_Fn = std::equal_to<Key>, + typename Comb_Probe_Fn = direct_mask_range_hashing<> + typename Probe_Fn = default explained below. + typename Resize_Policy = default explained below. + bool Store_Hash = false, + typename Allocator = std::allocator<char> > + class gp_hash_table; + + + The parameters are identical to those of the + collision-chaining container, except for the following. + + + Comb_Probe_Fn describes how to transform a probe + sequence into a sequence of positions within the table. + + Probe_Fn describes a probe sequence policy. + + + Some of the default template values depend on the values of + other parameters, and are explained below. + +
+
+ Details + +
+ Hash Policies + +
+ General + + Following is an explanation of some functions which hashing + involves. The graphic below illustrates the discussion. + +
+ Hash functions, ranged-hash functions, and + range-hashing functions + + + + + + Hash functions, ranged-hash functions, and + range-hashing functions + + +
+ + Let U be a domain (e.g., the integers, or the + strings of 3 characters). A hash-table algorithm needs to map + elements of U "uniformly" into the range [0,..., m - + 1] (where m is a non-negative integral value, and + is, in general, time varying). I.e., the algorithm needs + a ranged-hash function + + + f : U × Z+ → Z+ + + + such that for any u in U , + + 0 ≤ f(u, m) ≤ m - 1 + + and which has "good uniformity" properties (say + .) + One + common solution is to use the composition of the hash + function + + h : U → Z+ , + + which maps elements of U into the non-negative + integrals, and + + g : Z+ × Z+ → + Z+, + + which maps a non-negative hash value, and a non-negative + range upper-bound into a non-negative integral in the range + between 0 (inclusive) and the range upper bound (exclusive), + i.e., for any r in Z+, + + 0 ≤ g(r, m) ≤ m - 1 + + + The resulting ranged-hash function, is + + + + Ranged Hash Function + + f(u , m) = g(h(u), m) + + + + From the above, it is obvious that given g and + h, f can always be composed (however the converse + is not true). The standard's hash-based containers allow specifying + a hash function, and use a hard-wired range-hashing function; + the ranged-hash function is implicitly composed. + + The above describes the case where a key is to be mapped + into a single position within a hash table, e.g., + in a collision-chaining table. In other cases, a key is to be + mapped into a sequence of positions within a table, + e.g., in a probing table. Similar terms apply in this + case: the table requires a ranged probe function, + mapping a key into a sequence of positions withing the table. + This is typically achieved by composing a hash function + mapping the key into a non-negative integral type, a + probe function transforming the hash value into a + sequence of hash values, and a range-hashing function + transforming the sequence of hash values into a sequence of + positions. + +
+ +
+ Range Hashing + + Some common choices for range-hashing functions are the + division, multiplication, and middle-square methods (), defined + as + + + Range-Hashing, Division Method + + g(r, m) = r mod m + + + + + + g(r, m) = ⌈ u/v ( a r mod v ) ⌉ + + and + + g(r, m) = ⌈ u/v ( r2 mod v ) ⌉ + + respectively, for some positive integrals u and + v (typically powers of 2), and some a. Each of + these range-hashing functions works best for some different + setting. + + The division method (see above) is a + very common choice. However, even this single method can be + implemented in two very different ways. It is possible to + implement using the low + level % (modulo) operation (for any m), or the + low level & (bit-mask) operation (for the case where + m is a power of 2), i.e., + + + Division via Prime Modulo + + g(r, m) = r % m + + + + and + + + Division via Bit Mask + + g(r, m) = r & m - 1, (with m = + 2k for some k) + + + + + respectively. + + The % (modulo) implementation has the advantage that for + m a prime far from a power of 2, g(r, m) is + affected by all the bits of r (minimizing the chance of + collision). It has the disadvantage of using the costly modulo + operation. This method is hard-wired into SGI's implementation + . + + The & (bit-mask) implementation has the advantage of + relying on the fast bit-wise and operation. It has the + disadvantage that for g(r, m) is affected only by the + low order bits of r. This method is hard-wired into + Dinkumware's implementation. + + +
+ +
+ Ranged Hash + + In cases it is beneficial to allow the + client to directly specify a ranged-hash hash function. It is + true, that the writer of the ranged-hash function cannot rely + on the values of m having specific numerical properties + suitable for hashing (in the sense used in ), since + the values of m are determined by a resize policy with + possibly orthogonal considerations. + + There are two cases where a ranged-hash function can be + superior. The firs is when using perfect hashing: the + second is when the values of m can be used to estimate + the "general" number of distinct values required. This is + described in the following. + + Let + + + s = [ s0,..., st - 1] + + + be a string of t characters, each of which is from + domain S. Consider the following ranged-hash + function: + + + A Standard String Hash Function + + + f1(s, m) = ∑ i = + 0t - 1 si ai mod m + + + + + where a is some non-negative integral value. This is + the standard string-hashing function used in SGI's + implementation (with a = 5). Its advantage is that + it takes into account all of the characters of the string. + + Now assume that s is the string representation of a + of a long DNA sequence (and so S = {'A', 'C', 'G', + 'T'}). In this case, scanning the entire string might be + prohibitively expensive. A possible alternative might be to use + only the first k characters of the string, where + + |S|k ≥ m , + + i.e., using the hash function + + + + Only k String DNA Hash + + + f2(s, m) = ∑ i + = 0k - 1 si ai mod m + + + + requiring scanning over only + + k = log4( m ) + + characters. + + Other more elaborate hash-functions might scan k + characters starting at a random position (determined at each + resize), or scanning k random positions (determined at + each resize), i.e., using + + f3(s, m) = ∑ i = + r0r0 + k - 1 si + ai mod m , + + or + + f4(s, m) = ∑ i = 0k - + 1 sri ari mod + m , + + respectively, for r0,..., rk-1 + each in the (inclusive) range [0,...,t-1]. + + It should be noted that the above functions cannot be + decomposed as per a ranged hash composed of hash and range hashing. + + +
+ +
+ Implementation + + This sub-subsection describes the implementation of + the above in this library. It first explains range-hashing + functions in collision-chaining tables, then ranged-hash + functions in collision-chaining tables, then probing-based + tables, and finally lists the relevant classes in this + library. + +
+ + Range-Hashing and Ranged-Hashes in Collision-Chaining Tables + + + + cc_hash_table is + parametrized by Hash_Fn and Comb_Hash_Fn, a + hash functor and a combining hash functor, respectively. + + In general, Comb_Hash_Fn is considered a + range-hashing functor. cc_hash_table + synthesizes a ranged-hash function from Hash_Fn and + Comb_Hash_Fn. The figure below shows an insert sequence + diagram for this case. The user inserts an element (point A), + the container transforms the key into a non-negative integral + using the hash functor (points B and C), and transforms the + result into a position using the combining functor (points D + and E). + +
+ Insert hash sequence diagram + + + + + + Insert hash sequence diagram + + +
+ + If cc_hash_table's + hash-functor, Hash_Fn is instantiated by null_type , then Comb_Hash_Fn is taken to be + a ranged-hash function. The graphic below shows an insert sequence + diagram. The user inserts an element (point A), the container + transforms the key into a position using the combining functor + (points B and C). + +
+ Insert hash sequence diagram with a null policy + + + + + + Insert hash sequence diagram with a null policy + + +
+ +
+ +
+ + Probing tables + + gp_hash_table is parametrized by + Hash_Fn, Probe_Fn, + and Comb_Probe_Fn. As before, if + Hash_Fn and Probe_Fn + are both null_type, then + Comb_Probe_Fn is a ranged-probe + functor. Otherwise, Hash_Fn is a hash + functor, Probe_Fn is a functor for offsets + from a hash value, and Comb_Probe_Fn + transforms a probe sequence into a sequence of positions within + the table. + +
+ +
+ + Pre-Defined Policies + + + This library contains some pre-defined classes + implementing range-hashing and probing functions: + + + direct_mask_range_hashing + and direct_mod_range_hashing + are range-hashing functions based on a bit-mask and a modulo + operation, respectively. + + linear_probe_fn, and + quadratic_probe_fn are + a linear probe and a quadratic probe function, + respectively. + + + + The graphic below shows the relationships. + +
+ Hash policy class diagram + + + + + + Hash policy class diagram + + +
+ + +
+ +
+ +
+ +
+ Resize Policies + +
+ General + + Hash-tables, as opposed to trees, do not naturally grow or + shrink. It is necessary to specify policies to determine how + and when a hash table should change its size. Usually, resize + policies can be decomposed into orthogonal policies: + + + A size policy indicating how a hash table + should grow (e.g., it should multiply by powers of + 2). + + A trigger policy indicating when a hash + table should grow (e.g., a load factor is + exceeded). + + +
+ +
+ Size Policies + + + Size policies determine how a hash table changes size. These + policies are simple, and there are relatively few sensible + options. An exponential-size policy (with the initial size and + growth factors both powers of 2) works well with a mask-based + range-hashing function, and is the + hard-wired policy used by Dinkumware. A + prime-list based policy works well with a modulo-prime range + hashing function and is the hard-wired policy used by SGI's + implementation. + +
+ +
+ Trigger Policies + + Trigger policies determine when a hash table changes size. + Following is a description of two policies: load-check + policies, and collision-check policies. + + Load-check policies are straightforward. The user specifies + two factors, Αmin and + Αmax, and the hash table maintains the + invariant that + + Αmin ≤ (number of + stored elements) / (hash-table size) ≤ + Αmaxload factor min max + + Collision-check policies work in the opposite direction of + load-check policies. They focus on keeping the number of + collisions moderate and hoping that the size of the table will + not grow very large, instead of keeping a moderate load-factor + and hoping that the number of collisions will be small. A + maximal collision-check policy resizes when the longest + probe-sequence grows too large. + + Consider the graphic below. Let the size of the hash table + be denoted by m, the length of a probe sequence be denoted by k, + and some load factor be denoted by Α. We would like to + calculate the minimal length of k, such that if there were Α + m elements in the hash table, a probe sequence of length k would + be found with probability at most 1/m. + +
+ Balls and bins + + + + + + Balls and bins + + +
+ + Denote the probability that a probe sequence of length + k appears in bin i by pi, the + length of the probe sequence of bin i by + li, and assume uniform distribution. Then + + + + + + Probability of Probe Sequence of Length k + + + p1 = + + + + P(l1 ≥ k) = + + + P(l1 ≥ α ( 1 + k / α - 1) ≤ (a) + + + + e ^ ( - ( α ( k / α - 1 )2 ) /2) + + + where (a) follows from the Chernoff bound (). To + calculate the probability that some bin contains a probe + sequence greater than k, we note that the + li are negatively-dependent + () + . Let + I(.) denote the indicator function. Then + + + + Probability Probe Sequence in Some Bin + + + P( existsi li ≥ k ) = + + + + P ( ∑ i = 1m + I(li ≥ k) ≥ 1 ) = + + P ( ∑ i = 1m I ( + li ≥ k ) ≥ m p1 ( 1 + 1 / (m + p1) - 1 ) ) ≤ (a) + + e ^ ( ( - m p1 ( 1 / (m p1) + - 1 ) 2 ) / 2 ) , + + where (a) follows from the fact that the Chernoff bound can + be applied to negatively-dependent variables (). Inserting the first probability + equation into the second one, and equating with 1/m, we + obtain + + + k ~ √ ( 2 α ln 2 m ln(m) ) + ) . + +
+ +
+ Implementation + + This sub-subsection describes the implementation of the + above in this library. It first describes resize policies and + their decomposition into trigger and size policies, then + describes pre-defined classes, and finally discusses controlled + access the policies' internals. + +
+ Decomposition + + + Each hash-based container is parametrized by a + Resize_Policy parameter; the container derives + publicly from Resize_Policy. For + example: + + cc_hash_table<typename Key, + typename Mapped, + ... + typename Resize_Policy + ...> : public Resize_Policy + + + As a container object is modified, it continuously notifies + its Resize_Policy base of internal changes + (e.g., collisions encountered and elements being + inserted). It queries its Resize_Policy base whether + it needs to be resized, and if so, to what size. + + The graphic below shows a (possible) sequence diagram + of an insert operation. The user inserts an element; the hash + table notifies its resize policy that a search has started + (point A); in this case, a single collision is encountered - + the table notifies its resize policy of this (point B); the + container finally notifies its resize policy that the search + has ended (point C); it then queries its resize policy whether + a resize is needed, and if so, what is the new size (points D + to G); following the resize, it notifies the policy that a + resize has completed (point H); finally, the element is + inserted, and the policy notified (point I). + +
+ Insert resize sequence diagram + + + + + + Insert resize sequence diagram + + +
+ + + In practice, a resize policy can be usually orthogonally + decomposed to a size policy and a trigger policy. Consequently, + the library contains a single class for instantiating a resize + policy: hash_standard_resize_policy + is parametrized by Size_Policy and + Trigger_Policy, derives publicly from + both, and acts as a standard delegate () + to these policies. + + The two graphics immediately below show sequence diagrams + illustrating the interaction between the standard resize policy + and its trigger and size policies, respectively. + +
+ Standard resize policy trigger sequence + diagram + + + + + + Standard resize policy trigger sequence + diagram + + +
+ +
+ Standard resize policy size sequence + diagram + + + + + + Standard resize policy size sequence + diagram + + +
+ + +
+ +
+ Predefined Policies + The library includes the following + instantiations of size and trigger policies: + + + hash_load_check_resize_trigger + implements a load check trigger policy. + + cc_hash_max_collision_check_resize_trigger + implements a collision check trigger policy. + + hash_exponential_size_policy + implements an exponential-size policy (which should be used + with mask range hashing). + + hash_prime_size_policy + implementing a size policy based on a sequence of primes + (which should + be used with mod range hashing + + + The graphic below gives an overall picture of the resize-related + classes. basic_hash_table + is parametrized by Resize_Policy, which it subclasses + publicly. This class is currently instantiated only by hash_standard_resize_policy. + hash_standard_resize_policy + itself is parametrized by Trigger_Policy and + Size_Policy. Currently, Trigger_Policy is + instantiated by hash_load_check_resize_trigger, + or cc_hash_max_collision_check_resize_trigger; + Size_Policy is instantiated by hash_exponential_size_policy, + or hash_prime_size_policy. + +
+ +
+ Controling Access to Internals + + There are cases where (controlled) access to resize + policies' internals is beneficial. E.g., it is sometimes + useful to query a hash-table for the table's actual size (as + opposed to its size() - the number of values it + currently holds); it is sometimes useful to set a table's + initial size, externally resize it, or change load factors. + + Clearly, supporting such methods both decreases the + encapsulation of hash-based containers, and increases the + diversity between different associative-containers' interfaces. + Conversely, omitting such methods can decrease containers' + flexibility. + + In order to avoid, to the extent possible, the above + conflict, the hash-based containers themselves do not address + any of these questions; this is deferred to the resize policies, + which are easier to change or replace. Thus, for example, + neither cc_hash_table nor + gp_hash_table + contain methods for querying the actual size of the table; this + is deferred to hash_standard_resize_policy. + + Furthermore, the policies themselves are parametrized by + template arguments that determine the methods they support + ( + + shows techniques for doing so). hash_standard_resize_policy + is parametrized by External_Size_Access that + determines whether it supports methods for querying the actual + size of the table or resizing it. hash_load_check_resize_trigger + is parametrized by External_Load_Access that + determines whether it supports methods for querying or + modifying the loads. cc_hash_max_collision_check_resize_trigger + is parametrized by External_Load_Access that + determines whether it supports methods for querying the + load. + + Some operations, for example, resizing a container at + run time, or changing the load factors of a load-check trigger + policy, require the container itself to resize. As mentioned + above, the hash-based containers themselves do not contain + these types of methods, only their resize policies. + Consequently, there must be some mechanism for a resize policy + to manipulate the hash-based container. As the hash-based + container is a subclass of the resize policy, this is done + through virtual methods. Each hash-based container has a + private virtual method: + + virtual void + do_resize + (size_type new_size); + + + which resizes the container. Implementations of + Resize_Policy can export public methods for resizing + the container externally; these methods internally call + do_resize to resize the table. + + +
+ +
+ + +
+ +
+ Policy Interactions + + + Hash-tables are unfortunately especially susceptible to + choice of policies. One of the more complicated aspects of this + is that poor combinations of good policies can form a poor + container. Following are some considerations. + +
+ probe/size/trigger + + Some combinations do not work well for probing containers. + For example, combining a quadratic probe policy with an + exponential size policy can yield a poor container: when an + element is inserted, a trigger policy might decide that there + is no need to resize, as the table still contains unused + entries; the probe sequence, however, might never reach any of + the unused entries. + + Unfortunately, this library cannot detect such problems at + compilation (they are halting reducible). It therefore defines + an exception class insert_error to throw an + exception in this case. + +
+ +
+ hash/trigger + + Some trigger policies are especially susceptible to poor + hash functions. Suppose, as an extreme case, that the hash + function transforms each key to the same hash value. After some + inserts, a collision detecting policy will always indicate that + the container needs to grow. + + The library, therefore, by design, limits each operation to + one resize. For each insert, for example, it queries + only once whether a resize is needed. + +
+ +
+ equivalence functors/storing hash values/hash + + cc_hash_table and + gp_hash_table are + parametrized by an equivalence functor and by a + Store_Hash parameter. If the latter parameter is + true, then the container stores with each entry + a hash value, and uses this value in case of collisions to + determine whether to apply a hash value. This can lower the + cost of collision for some types, but increase the cost of + collisions for other types. + + If a ranged-hash function or ranged probe function is + directly supplied, however, then it makes no sense to store the + hash value with each entry. This library's container will + fail at compilation, by design, if this is attempted. + +
+ +
+ size/load-check trigger + + Assume a size policy issues an increasing sequence of sizes + a, a q, a q1, a q2, ... For + example, an exponential size policy might issue the sequence of + sizes 8, 16, 32, 64, ... + + If a load-check trigger policy is used, with loads + αmin and αmax, + respectively, then it is a good idea to have: + + + αmax ~ 1 / q + + αmin < 1 / (2 q) + + + This will ensure that the amortized hash cost of each + modifying operation is at most approximately 3. + + αmin ~ αmax is, in + any case, a bad choice, and αmin > + α max is horrendous. + +
+ +
+ +
+ +
+ + +
+ tree + +
+ Interface + + The tree-based container has the following declaration: + + template< + typename Key, + typename Mapped, + typename Cmp_Fn = std::less<Key>, + typename Tag = rb_tree_tag, + template< + typename Const_Node_Iterator, + typename Node_Iterator, + typename Cmp_Fn_, + typename Allocator_> + class Node_Update = null_node_update, + typename Allocator = std::allocator<char> > + class tree; + + + The parameters have the following meaning: + + + + Key is the key type. + + + Mapped is the mapped-policy. + + + Cmp_Fn is a key comparison functor + + + Tag specifies which underlying data structure + to use. + + + Node_Update is a policy for updating node + invariants. + + + Allocator is an allocator + type. + + + The Tag parameter specifies which underlying + data structure to use. Instantiating it by rb_tree_tag, splay_tree_tag, or + ov_tree_tag, + specifies an underlying red-black tree, splay tree, or + ordered-vector tree, respectively; any other tag is illegal. + Note that containers based on the former two contain more types + and methods than the latter (e.g., + reverse_iterator and rbegin), and different + exception and invalidation guarantees. + +
+ +
+ Details + +
+ Node Invariants + + + Consider the two trees in the graphic below, labels A and B. The first + is a tree of floats; the second is a tree of pairs, each + signifying a geometric line interval. Each element in a tree is refered to as a node of the tree. Of course, each of + these trees can support the usual queries: the first can easily + search for 0.4; the second can easily search for + std::make_pair(10, 41). + + Each of these trees can efficiently support other queries. + The first can efficiently determine that the 2rd key in the + tree is 0.3; the second can efficiently determine + whether any of its intervals overlaps + std::make_pair(29,42) (useful in geometric + applications or distributed file systems with leases, for + example). It should be noted that an std::set can + only solve these types of problems with linear complexity. + + In order to do so, each tree stores some metadata in + each node, and maintains node invariants (see .) The first stores in + each node the size of the sub-tree rooted at the node; the + second stores at each node the maximal endpoint of the + intervals at the sub-tree rooted at the node. + +
+ Tree node invariants + + + + + + Tree node invariants + + +
+ + Supporting such trees is difficult for a number of + reasons: + + + There must be a way to specify what a node's metadata + should be (if any). + + Various operations can invalidate node + invariants. The graphic below shows how a right rotation, + performed on A, results in B, with nodes x and y having + corrupted invariants (the grayed nodes in C). The graphic shows + how an insert, performed on D, results in E, with nodes x and y + having corrupted invariants (the grayed nodes in F). It is not + feasible to know outside the tree the effect of an operation on + the nodes of the tree. + + The search paths of standard associative containers are + defined by comparisons between keys, and not through + metadata. + + It is not feasible to know in advance which methods trees + can support. Besides the usual find method, the + first tree can support a find_by_order method, while + the second can support an overlaps method. + + +
+ Tree node invalidation + + + + + + Tree node invalidation + + +
+ + These problems are solved by a combination of two means: + node iterators, and template-template node updater + parameters. + +
+ Node Iterators + + + Each tree-based container defines two additional iterator + types, const_node_iterator + and node_iterator. + These iterators allow descending from a node to one of its + children. Node iterator allow search paths different than those + determined by the comparison functor. The tree + supports the methods: + + const_node_iterator + node_begin() const; + + node_iterator + node_begin(); + + const_node_iterator + node_end() const; + + node_iterator + node_end(); + + + The first pairs return node iterators corresponding to the + root node of the tree; the latter pair returns node iterators + corresponding to a just-after-leaf node. +
+ +
+ Node Updator + + The tree-based containers are parametrized by a + Node_Update template-template parameter. A + tree-based container instantiates + Node_Update to some + node_update class, and publicly subclasses + node_update. The graphic below shows this + scheme, as well as some predefined policies (which are explained + below). + +
+ A tree and its update policy + + + + + + A tree and its update policy + + +
+ + node_update (an instantiation of + Node_Update) must define metadata_type as + the type of metadata it requires. For order statistics, + e.g., metadata_type might be size_t. + The tree defines within each node a metadata_type + object. + + node_update must also define the following method + for restoring node invariants: + + void + operator()(node_iterator nd_it, const_node_iterator end_nd_it) + + + In this method, nd_it is a + node_iterator corresponding to a node whose + A) all descendants have valid invariants, and B) its own + invariants might be violated; end_nd_it is + a const_node_iterator corresponding to a + just-after-leaf node. This method should correct the node + invariants of the node pointed to by + nd_it. For example, say node x in the + graphic below label A has an invalid invariant, but its' children, + y and z have valid invariants. After the invocation, all three + nodes should have valid invariants, as in label B. + + +
+ Restoring node invariants + + + + + + Restoring node invariants + + +
+ + When a tree operation might invalidate some node invariant, + it invokes this method in its node_update base to + restore the invariant. For example, the graphic below shows + an insert operation (point A); the tree performs some + operations, and calls the update functor three times (points B, + C, and D). (It is well known that any insert, + erase, split or join, can restore + all node invariants by a small number of node invariant updates () + . + +
+ Insert update sequence + + + + + + Insert update sequence + + +
+ + To complete the description of the scheme, three questions + need to be answered: + + + How can a tree which supports order statistics define a + method such as find_by_order? + + How can the node updater base access methods of the + tree? + + How can the following cyclic dependency be resolved? + node_update is a base class of the tree, yet it + uses node iterators defined in the tree (its child). + + + The first two questions are answered by the fact that + node_update (an instantiation of + Node_Update) is a public base class + of the tree. Consequently: + + + Any public methods of + node_update are automatically methods of + the tree (). + Thus an order-statistics node updater, + tree_order_statistics_node_update defines + the find_by_order method; any tree + instantiated by this policy consequently supports this method as + well. + + In C++, if a base class declares a method as + virtual, it is + virtual in its subclasses. If + node_update needs to access one of the + tree's methods, say the member function + end, it simply declares that method as + virtual abstract. + + + The cyclic dependency is solved through template-template + parameters. Node_Update is parametrized by + the tree's node iterators, its comparison functor, and its + allocator type. Thus, instantiations of + Node_Update have all information + required. + + This library assumes that constructing a metadata object and + modifying it are exception free. Suppose that during some method, + say insert, a metadata-related operation + (e.g., changing the value of a metadata) throws an exception. Ack! + Rolling back the method is unusually complex. + + Previously, a distinction was made between redundant + policies and null policies. Node invariants show a + case where null policies are required. + + Assume a regular tree is required, one which need not + support order statistics or interval overlap queries. + Seemingly, in this case a redundant policy - a policy which + doesn't affect nodes' contents would suffice. This, would lead + to the following drawbacks: + + + Each node would carry a useless metadata object, wasting + space. + + The tree cannot know if its + Node_Update policy actually modifies a + node's metadata (this is halting reducible). In the graphic + below, assume the shaded node is inserted. The tree would have + to traverse the useless path shown to the root, applying + redundant updates all the way. + +
+ Useless update path + + + + + + Useless update path + + +
+ + + A null policy class, null_node_update + solves both these problems. The tree detects that node + invariants are irrelevant, and defines all accordingly. + +
+ +
+ +
+ Split and Join + + Tree-based containers support split and join methods. + It is possible to split a tree so that it passes + all nodes with keys larger than a given key to a different + tree. These methods have the following advantages over the + alternative of externally inserting to the destination + tree and erasing from the source tree: + + + These methods are efficient - red-black trees are split + and joined in poly-logarithmic complexity; ordered-vector + trees are split and joined at linear complexity. The + alternatives have super-linear complexity. + + Aside from orders of growth, these operations perform + few allocations and de-allocations. For red-black trees, allocations are not performed, + and the methods are exception-free. + +
+ +
+ +
+ + +
+ Trie + +
+ Interface + + The trie-based container has the following declaration: + + template<typename Key, + typename Mapped, + typename Cmp_Fn = std::less<Key>, + typename Tag = pat_trie_tag, + template<typename Const_Node_Iterator, + typename Node_Iterator, + typename E_Access_Traits_, + typename Allocator_> + class Node_Update = null_node_update, + typename Allocator = std::allocator<char> > + class trie; + + + The parameters have the following meaning: + + + Key is the key type. + + Mapped is the mapped-policy. + + E_Access_Traits is described in below. + + Tag specifies which underlying data structure + to use, and is described shortly. + + Node_Update is a policy for updating node + invariants. This is described below. + + Allocator is an allocator + type. + + + The Tag parameter specifies which underlying + data structure to use. Instantiating it by pat_trie_tag, specifies an + underlying PATRICIA trie (explained shortly); any other tag is + currently illegal. + + Following is a description of a (PATRICIA) trie + (this implementation follows and + ). + + + A (PATRICIA) trie is similar to a tree, but with the + following differences: + + + It explicitly views keys as a sequence of elements. + E.g., a trie can view a string as a sequence of + characters; a trie can view a number as a sequence of + bits. + + It is not (necessarily) binary. Each node has fan-out n + + 1, where n is the number of distinct + elements. + + It stores values only at leaf nodes. + + Internal nodes have the properties that A) each has at + least two children, and B) each shares the same prefix with + any of its descendant. + + + A (PATRICIA) trie has some useful properties: + + + It can be configured to use large node fan-out, giving it + very efficient find performance (albeit at insertion + complexity and size). + + It works well for common-prefix keys. + + It can support efficiently queries such as which + keys match a certain prefix. This is sometimes useful in file + systems and routers, and for "type-ahead" aka predictive text matching + on mobile devices. + + + +
+ +
+ Details + +
+ Element Access Traits + + A trie inherently views its keys as sequences of elements. + For example, a trie can view a string as a sequence of + characters. A trie needs to map each of n elements to a + number in {0, n - 1}. For example, a trie can map a + character c to + static_cast<size_t>(c). + + Seemingly, then, a trie can assume that its keys support + (const) iterators, and that the value_type of this + iterator can be cast to a size_t. There are several + reasons, though, to decouple the mechanism by which the trie + accesses its keys' elements from the trie: + + + In some cases, the numerical value of an element is + inappropriate. Consider a trie storing DNA strings. It is + logical to use a trie with a fan-out of 5 = 1 + |{'A', 'C', + 'G', 'T'}|. This requires mapping 'T' to 3, though. + + In some cases the keys' iterators are different than what + is needed. For example, a trie can be used to search for + common suffixes, by using strings' + reverse_iterator. As another example, a trie mapping + UNICODE strings would have a huge fan-out if each node would + branch on a UNICODE character; instead, one can define an + iterator iterating over 8-bit (or less) groups. + + + trie is, + consequently, parametrized by E_Access_Traits - + traits which instruct how to access sequences' elements. + string_trie_e_access_traits + is a traits class for strings. Each such traits define some + types, like: + + typename E_Access_Traits::const_iterator + + + is a const iterator iterating over a key's elements. The + traits class must also define methods for obtaining an iterator + to the first and last element of a key. + + The graphic below shows a + (PATRICIA) trie resulting from inserting the words: "I wish + that I could ever see a poem lovely as a trie" (which, + unfortunately, does not rhyme). + + The leaf nodes contain values; each internal node contains + two typename E_Access_Traits::const_iterator + objects, indicating the maximal common prefix of all keys in + the sub-tree. For example, the shaded internal node roots a + sub-tree with leafs "a" and "as". The maximal common prefix is + "a". The internal node contains, consequently, to const + iterators, one pointing to 'a', and the other to + 's'. + +
+ A PATRICIA trie + + + + + + A PATRICIA trie + + +
+ +
+ +
+ Node Invariants + + Trie-based containers support node invariants, as do + tree-based containers. There are two minor + differences, though, which, unfortunately, thwart sharing them + sharing the same node-updating policies: + + + + A trie's Node_Update template-template + parameter is parametrized by E_Access_Traits, while + a tree's Node_Update template-template parameter is + parametrized by Cmp_Fn. + + Tree-based containers store values in all nodes, while + trie-based containers (at least in this implementation) store + values in leafs. + + + The graphic below shows the scheme, as well as some predefined + policies (which are explained below). + +
+ A trie and its update policy + + + + + + A trie and its update policy + + +
+ + + This library offers the following pre-defined trie node + updating policies: + + + + + trie_order_statistics_node_update + supports order statistics. + + + + trie_prefix_search_node_update + supports searching for ranges that match a given prefix. + + null_node_update + is the null node updater. + + +
+ +
+ Split and Join + Trie-based containers support split and join methods; the + rationale is equal to that of tree-based containers supporting + these methods. +
+ +
+ +
+ + +
+ List + +
+ Interface + + The list-based container has the following declaration: + + template<typename Key, + typename Mapped, + typename Eq_Fn = std::equal_to<Key>, + typename Update_Policy = move_to_front_lu_policy<>, + typename Allocator = std::allocator<char> > + class list_update; + + + The parameters have the following meaning: + + + + + Key is the key type. + + + + + + Mapped is the mapped-policy. + + + + + + Eq_Fn is a key equivalence functor. + + + + + + Update_Policy is a policy updating positions in + the list based on access patterns. It is described in the + following subsection. + + + + + + Allocator is an allocator type. + + + + + A list-based associative container is a container that + stores elements in a linked-list. It does not order the elements + by any particular order related to the keys. List-based + containers are primarily useful for creating "multimaps". In fact, + list-based containers are designed in this library expressly for + this purpose. + + List-based containers might also be useful for some rare + cases, where a key is encapsulated to the extent that only + key-equivalence can be tested. Hash-based containers need to know + how to transform a key into a size type, and tree-based containers + need to know if some key is larger than another. List-based + associative containers, conversely, only need to know if two keys + are equivalent. + + Since a list-based associative container does not order + elements by keys, is it possible to order the list in some + useful manner? Remarkably, many on-line competitive + algorithms exist for reordering lists to reflect access + prediction. (See and ). + + +
+ +
+ Details + + +
+ Underlying Data Structure + + The graphic below shows a + simple list of integer keys. If we search for the integer 6, we + are paying an overhead: the link with key 6 is only the fifth + link; if it were the first link, it could be accessed + faster. + +
+ A simple list + + + + + + A simple list + + +
+ + List-update algorithms reorder lists as elements are + accessed. They try to determine, by the access history, which + keys to move to the front of the list. Some of these algorithms + require adding some metadata alongside each entry. + + For example, in the graphic below label A shows the counter + algorithm. Each node contains both a key and a count metadata + (shown in bold). When an element is accessed (e.g. 6) its count is + incremented, as shown in label B. If the count reaches some + predetermined value, say 10, as shown in label C, the count is set + to 0 and the node is moved to the front of the list, as in label + D. + + +
+ The counter algorithm + + + + + + The counter algorithm + + +
+ + +
+ +
+ Policies + + this library allows instantiating lists with policies + implementing any algorithm moving nodes to the front of the + list (policies implementing algorithms interchanging nodes are + unsupported). + + Associative containers based on lists are parametrized by a + Update_Policy parameter. This parameter defines the + type of metadata each node contains, how to create the + metadata, and how to decide, using this metadata, whether to + move a node to the front of the list. A list-based associative + container object derives (publicly) from its update policy. + + + An instantiation of Update_Policy must define + internally update_metadata as the metadata it + requires. Internally, each node of the list contains, besides + the usual key and data, an instance of typename + Update_Policy::update_metadata. + + An instantiation of Update_Policy must define + internally two operators: + + update_metadata + operator()(); + + bool + operator()(update_metadata &); + + + The first is called by the container object, when creating a + new node, to create the node's metadata. The second is called + by the container object, when a node is accessed ( + when a find operation's key is equivalent to the key of the + node), to determine whether to move the node to the front of + the list. + + + The library contains two predefined implementations of + list-update policies. The first + is lu_counter_policy, which implements the + counter algorithm described above. The second is + lu_move_to_front_policy, + which unconditionally move an accessed element to the front of + the list. The latter type is very useful in this library, + since there is no need to associate metadata with each element. + (See + + +
+ +
+ Use in Multimaps + + In this library, there are no equivalents for the standard's + multimaps and multisets; instead one uses an associative + container mapping primary keys to secondary keys. + + List-based containers are especially useful as associative + containers for secondary keys. In fact, they are implemented + here expressly for this purpose. + + To begin with, these containers use very little per-entry + structure memory overhead, since they can be implemented as + singly-linked lists. (Arrays use even lower per-entry memory + overhead, but they are less flexible in moving around entries, + and have weaker invalidation guarantees). + + More importantly, though, list-based containers use very + little per-container memory overhead. The memory overhead of an + empty list-based container is practically that of a pointer. + This is important for when they are used as secondary + associative-containers in situations where the average ratio of + secondary keys to primary keys is low (or even 1). + + In order to reduce the per-container memory overhead as much + as possible, they are implemented as closely as possible to + singly-linked lists. + + + + + List-based containers do not store internally the number + of values that they hold. This means that their size + method has linear complexity (just like std::list). + Note that finding the number of equivalent-key values in a + standard multimap also has linear complexity (because it must be + done, via std::distance of the + multimap's equal_range method), but usually with + higher constants. + + + + + + Most associative-container objects each hold a policy + object (a hash-based container object holds a + hash functor). List-based containers, conversely, only have + class-wide policy objects. + + + + + +
+ +
+ +
+ + + +
+ Priority Queue + +
+ Interface + + The priority queue container has the following + declaration: + + + template<typename Value_Type, + typename Cmp_Fn = std::less<Value_Type>, + typename Tag = pairing_heap_tag, + typename Allocator = std::allocator<char > > + class priority_queue; + + + The parameters have the following meaning: + + + Value_Type is the value type. + + Cmp_Fn is a value comparison functor + + Tag specifies which underlying data structure + to use. + + Allocator is an allocator + type. + + + The Tag parameter specifies which underlying + data structure to use. Instantiating it bypairing_heap_tag,binary_heap_tag, + binomial_heap_tag, + rc_binomial_heap_tag, + or thin_heap_tag, + specifies, respectively, + an underlying pairing heap (), + binary heap (), + binomial heap (), + a binomial heap with a redundant binary counter (), + or a thin heap (). + + + + As mentioned in the tutorial, + __gnu_pbds::priority_queue shares most of the + same interface with std::priority_queue. + E.g. if q is a priority queue of type + Q, then q.top() will + return the "largest" value in the container (according to + typename + Q::cmp_fn). __gnu_pbds::priority_queue + has a larger (and very slightly different) interface than + std::priority_queue, however, since typically + push and pop are deemed + insufficient for manipulating priority-queues. + + Different settings require different priority-queue + implementations which are described in later; see traits + discusses ways to differentiate between the different traits of + different implementations. + + +
+ +
+ Details + +
+ Iterators + + There are many different underlying-data structures for + implementing priority queues. Unfortunately, most such + structures are oriented towards making push and + top efficient, and consequently don't allow efficient + access of other elements: for instance, they cannot support an efficient + find method. In the use case where it + is important to both access and "do something with" an + arbitrary value, one would be out of luck. For example, many graph algorithms require + modifying a value (typically increasing it in the sense of the + priority queue's comparison functor). + + In order to access and manipulate an arbitrary value in a + priority queue, one needs to reference the internals of the + priority queue from some form of an associative container - + this is unavoidable. Of course, in order to maintain the + encapsulation of the priority queue, this needs to be done in a + way that minimizes exposure to implementation internals. + + In this library the priority queue's insert + method returns an iterator, which if valid can be used for subsequent modify and + erase operations. This both preserves the priority + queue's encapsulation, and allows accessing arbitrary values (since the + returned iterators from the push operation can be + stored in some form of associative container). + + Priority queues' iterators present a problem regarding their + invalidation guarantees. One assumes that calling + operator++ on an iterator will associate it + with the "next" value. Priority-queues are + self-organizing: each operation changes what the "next" value + means. Consequently, it does not make sense that push + will return an iterator that can be incremented - this can have + no possible use. Also, as in the case of hash-based containers, + it is awkward to define if a subsequent push operation + invalidates a prior returned iterator: it invalidates it in the + sense that its "next" value is not related to what it + previously considered to be its "next" value. However, it might not + invalidate it, in the sense that it can be + de-referenced and used for modify and erase + operations. + + Similarly to the case of the other unordered associative + containers, this library uses a distinction between + point-type and range type iterators. A priority queue's iterator can always be + converted to a point_iterator, and a + const_iterator can always be converted to a + point_const_iterator. + + The following snippet demonstrates manipulating an arbitrary + value: + + // A priority queue of integers. + priority_queue<int > p; + + // Insert some values into the priority queue. + priority_queue<int >::point_iterator it = p.push(0); + + p.push(1); + p.push(2); + + // Now modify a value. + p.modify(it, 3); + + assert(p.top() == 3); + + + + It should be noted that an alternative design could embed an + associative container in a priority queue. Could, but most + probably should not. To begin with, it should be noted that one + could always encapsulate a priority queue and an associative + container mapping values to priority queue iterators with no + performance loss. One cannot, however, "un-encapsulate" a priority + queue embedding an associative container, which might lead to + performance loss. Assume, that one needs to associate each value + with some data unrelated to priority queues. Then using + this library's design, one could use an + associative container mapping each value to a pair consisting of + this data and a priority queue's iterator. Using the embedded + method would need to use two associative containers. Similar + problems might arise in cases where a value can reside + simultaneously in many priority queues. + +
+ + +
+ Underlying Data Structure + + There are three main implementations of priority queues: the + first employs a binary heap, typically one which uses a + sequence; the second uses a tree (or forest of trees), which is + typically less structured than an associative container's tree; + the third simply uses an associative container. These are + shown in the graphic below, in labels A1 and A2, label B, and label C. + +
+ Underlying Priority-Queue Data-Structures. + + + + + + Underlying Priority-Queue Data-Structures. + + +
+ + Roughly speaking, any value that is both pushed and popped + from a priority queue must incur a logarithmic expense (in the + amortized sense). Any priority queue implementation that would + avoid this, would violate known bounds on comparison-based + sorting (see and ). + + + Most implementations do + not differ in the asymptotic amortized complexity of + push and pop operations, but they differ in + the constants involved, in the complexity of other operations + (e.g., modify), and in the worst-case + complexity of single operations. In general, the more + "structured" an implementation (i.e., the more internal + invariants it possesses) - the higher its amortized complexity + of push and pop operations. + + This library implements different algorithms using a + single class: priority_queue. + Instantiating the Tag template parameter, "selects" + the implementation: + + + + Instantiating Tag = binary_heap_tag creates + a binary heap of the form in represented in the graphic with labels A1 or A2. The former is internally + selected by priority_queue + if Value_Type is instantiated by a primitive type + (e.g., an int); the latter is + internally selected for all other types (e.g., + std::string). This implementations is relatively + unstructured, and so has good push and pop + performance; it is the "best-in-kind" for primitive + types, e.g., ints. Conversely, it has + high worst-case performance, and can support only linear-time + modify and erase operations. + + Instantiating Tag = + pairing_heap_tag creates a pairing heap of the form + in represented by label B in the graphic above. This + implementations too is relatively unstructured, and so has good + push and pop + performance; it is the "best-in-kind" for non-primitive types, + e.g., std:strings. It also has very good + worst-case push and + join performance (O(1)), but has high + worst-case pop + complexity. + + Instantiating Tag = + binomial_heap_tag creates a binomial heap of the + form repsented by label B in the graphic above. This + implementations is more structured than a pairing heap, and so + has worse push and pop + performance. Conversely, it has sub-linear worst-case bounds for + pop, e.g., and so it might be preferred in + cases where responsiveness is important. + + Instantiating Tag = + rc_binomial_heap_tag creates a binomial heap of the + form represented in label B above, accompanied by a redundant + counter which governs the trees. This implementations is + therefore more structured than a binomial heap, and so has worse + push and pop + performance. Conversely, it guarantees O(1) + push complexity, and so it might be + preferred in cases where the responsiveness of a binomial heap + is insufficient. + + Instantiating Tag = + thin_heap_tag creates a thin heap of the form + represented by the label B in the graphic above. This + implementations too is more structured than a pairing heap, and + so has worse push and + pop performance. Conversely, it has better + worst-case and identical amortized complexities than a Fibonacci + heap, and so might be more appropriate for some graph + algorithms. + + + Of course, one can use any order-preserving associative + container as a priority queue, as in the graphic above label C, possibly by creating an adapter class + over the associative container (much as + std::priority_queue can adapt std::vector). + This has the advantage that no cross-referencing is necessary + at all; the priority queue itself is an associative container. + Most associative containers are too structured to compete with + priority queues in terms of push and pop + performance. + + + +
+ +
+ Traits + + It would be nice if all priority queues could + share exactly the same behavior regardless of implementation. Sadly, this is not possible. Just one for instance is in join operations: joining + two binary heaps might throw an exception (not corrupt + any of the heaps on which it operates), but joining two pairing + heaps is exception free. + + Tags and traits are very useful for manipulating generic + types. __gnu_pbds::priority_queue + publicly defines container_category as one of the tags. Given any + container Cntnr, the tag of the underlying + data structure can be found via typename + Cntnr::container_category; this is one of the possible tags shown in the graphic below. + + +
+ Priority-Queue Data-Structure Tags. + + + + + + Priority-Queue Data-Structure Tags. + + +
+ + + Additionally, a traits mechanism can be used to query a + container type for its attributes. Given any container + Cntnr, then __gnu_pbds::container_traits<Cntnr> + is a traits class identifying the properties of the + container. + + To find if a container might throw if two of its objects are + joined, one can use + + container_traits<Cntnr>::split_join_can_throw + + + + + Different priority-queue implementations have different invalidation guarantees. This is + especially important, since there is no way to access an arbitrary + value of priority queues except for iterators. Similarly to + associative containers, one can use + + container_traits<Cntnr>::invalidation_guarantee + + to get the invalidation guarantee type of a priority queue. + + It is easy to understand from the graphic above, what container_traits<Cntnr>::invalidation_guarantee + will be for different implementations. All implementations of + type represented by label B have point_invalidation_guarantee: + the container can freely internally reorganize the nodes - + range-type iterators are invalidated, but point-type iterators + are always valid. Implementations of type represented by labels A1 and A2 have basic_invalidation_guarantee: + the container can freely internally reallocate the array - both + point-type and range-type iterators might be invalidated. + + + This has major implications, and constitutes a good reason to avoid + using binary heaps. A binary heap can perform modify + or erase efficiently given a valid point-type + iterator. However, in order to supply it with a valid point-type + iterator, one needs to iterate (linearly) over all + values, then supply the relevant iterator (recall that a + range-type iterator can always be converted to a point-type + iterator). This means that if the number of modify or + erase operations is non-negligible (say + super-logarithmic in the total sequence of operations) - binary + heaps will perform badly. + + +
+ +
+ +
+ + + +
+ +
+ + + + + + + + +
+ Acknowledgments + + + + Written by Ami Tavory and Vladimir Dreizin (IBM Haifa Research + Laboratories), and Benjamin Kosnik (Red Hat). + + + + This library was partially written at + IBM's Haifa Research Labs. + It is based heavily on policy-based design and uses many useful + techniques from Modern C++ Design: Generic Programming and Design + Patterns Applied by Andrei Alexandrescu. + + + + Two ideas are borrowed from the SGI-STL implementation: + + + + + + The prime-based resize policies use a list of primes taken from + the SGI-STL implementation. + + + + + + The red-black trees contain both a root node and a header node + (containing metadata), connected in a way that forward and + reverse iteration can be performed efficiently. + + + + + + Some test utilities borrow ideas from + boost::timer. + + + + We would like to thank Scott Meyers for useful comments (without + attributing to him any flaws in the design or implementation of the + library). + + We would like to thank Matt Austern for the suggestion to + include tries. +
+ + + + + + Bibliography + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf"> + STL Exception Handling Contract + </link> + + 1997 + + + + + Dave + + + Abrahams + + + + + + + ISO SC22/WG21 + + + + + + + + + Modern C++ Design: Generic Programming and Design Patterns Applied + + + 2001 + + + + + + Andrei + + + Alexandrescu + + + + + + + Addison-Wesley Publishing Company + + + + + + + + + MTF, Bit, and COMB: A Guide to Deterministic and Randomized + Algorithms for the List Update Problem + + + + + + + K. + + + Andrew + + + + + + + + D. + + + Gleich + + + + + + + + + + Why You Shouldn't Use set - and What You Should Use Instead + + + April, 2000 + + + + + + Matthew + + + Austern + + + + + + + C++ Report + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.open-std.org/JTC1/sc22/wg21/docs/papers/2001/n1326.html"> + A Proposal to Add Hashtables to the Standard Library + </link> + + + 2001 + + + + + + Matthew + + + Austern + + + + + + + ISO SC22/WG21 + + + + + + + + Segmented iterators and hierarchical algorithms + + + April, 1998 + + + + + + Matthew + + + Austern + + + + + + + Generic Programming + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="www.boost.org/doc/libs/release/libs/timer/"> + Boost Timer Library + </link> + + + + + + Beeman + + + Dawes + + + + + + + Boost + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="www.boost.org/doc/libs/release/libs/pool/"> + Boost Pool Library + </link> + + + + + + Stephen + + + Cleary + + + + + + + Boost + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="www.boost.org/doc/libs/release/libs/type_traits/"> + Boost Type Traits Library + </link> + + + + + + Maddock + + + John + + + + + + + Stephen + + + Cleary + + + + + + + Boost + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://portal.acm.org/citation.cfm?id=313883"> + Worst-case efficient priority queues + </link> + + + + + + Gerth + + + Stolting Brodal + + + + + + + + + + Efficient C++ Programming Techniques + + + 1997 + + + + + + + D. + + + Bulka + + + + + + + D. + + + Mayhew + + + + + + + + Addison-Wesley Publishing Company + + + + + + + + Introduction to Algorithms, 2nd edition + + + 2001 + + + + + + T. H. + + + Cormen + + + + + + + + C. E. + + + Leiserson + + + + + + + + R. L. + + + Rivest + + + + + + + + C. + + + Stein + + + + + + + MIT Press + + + + + + + + Balls and bins: A study in negative dependence + + + 1998 + + + + + + D. + + + Dubashi + + + + + + + D. + + + Ranjan + + + + + + + + Random Structures and Algorithms 13 + + + + + + + + + Extendible hashing - a fast access method for dynamic files + + + 1979 + + + + + + + R. + + + Fagin + + + + + + + J. + + + Nievergelt + + + + + + + N. + + + Pippenger + + + + + + + H. R. + + + Strong + + + + + + + + ACM Trans. Database Syst. 4 + + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://cristal.inria.fr/~frisch/icfp06_contest/advtr/applyOmatic/ptset.ml"> + Ptset: Sets of integers implemented as Patricia trees + </link> + + + + 2000 + + + + + + Jean-Christophe + + + Filliatre + + + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.cs.cmu.edu/~sleator/papers/pairing-heaps.pdf"> + The pairing heap: a new form of self-adjusting heap + </link> + + + 1986 + + + + + + M. L. + + + Fredman + + + + + + + R. + + + Sedgewick + + + + + + + D. D. + + + Sleator + + + + + + + R. E. + + + Tarjan + + + + + + + + + + + Design Patterns - Elements of Reusable Object-Oriented Software + + + 1995 + + + + + + E. + + + Gamma + + + + + + + R. + + + Helm + + + + + + + R. + + + Johnson + + + + + + + J. + + + Vlissides + + + + + + + Addison-Wesley Publishing Company + + + + + + + + + Order-preserving key transformations + + + 1986 + + + + + + A. K. + + + Garg + + + + + + + C. C. + + + Gotlieb + + + + + + + + Trans. Database Syst. 11 + + + + + + + + Making a real hash of things + + + May 2002 + + + + + + J. + + + Hyslop + + + + + + + Herb + + + Sutter + + + + + + + + C++ Report + + + + + + + + + The C++ Standard Library - A Tutorial and Reference + + + 2001 + + + + + + N. M. + + + Jossutis + + + + + + Addison-Wesley Publishing Company + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.cs.princeton.edu/research/techreps/TR-597-99"> + New Heap Data Structures + </link> + + + 1999 + + + + + + + Haim + + + Kaplan + + + + + + + Robert E. + + + Tarjan + + + + + + + + + + + Are Set Iterators Mutable or Immutable? + + + October 2000 + + + + + + Angelika + + + Langer + + + + + + + + Klaus + + + Kleft + + + + + + + + C/C++ Users Jornal + + + + + + + + The Art of Computer Programming - Sorting and Searching + + + 1998 + + + + + + D. E. + + + Knuth + + + + + + + Addison-Wesley Publishing Company + + + + + + + + Data abstraction and hierarchy + + + May 1998 + + + + + + B. + + + Liskov + + + + + + + SIGPLAN Notices 23 + + + + + + + + Linear hashing: A new tool for file and table addressing + + + June 1980 + + + + + + W. + + + Litwin + + + + + + + Proceedings of International Conference on Very Large Data Bases + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps"> + Deamortization - Part 2: Binomial Heaps + </link> + + + 2005 + + + + + + Maverik + + + Woo + + + + + + + + + More Effective C++: 35 New Ways to Improve Your Programs and Designs + + + 1996 + + + + + + Scott + + + Meyers + + + + + + + Addison-Wesley Publishing Company + + + + + + + + How Non-Member Functions Improve Encapsulation + + + 2000 + + + + + + Scott + + + Meyers + + + + + + + C/C++ Users Journal + + + + + + + + Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library + + + 2001 + + + + + + Scott + + + Meyers + + + + + + + Addison-Wesley Publishing Company + + + + + + + + Class Template, Member Template - or Both? + + + 2003 + + + + + + Scott + + + Meyers + + + + + + + C/C++ Users Journal + + + + + + + + Randomized Algorithms + + + 2003 + + + + + + R. + + + Motwani + + + + + + + P. + + + Raghavan + + + + + + + Cambridge University Press + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.microsoft.com/com"> + COM: Component Model Object Technologies + </link> + + + + Microsoft + + + + + + + + Rationale for Adding Hash Tables to the C++ Standard Template Library + + + 1995 + + + + + + David R. + + + Musser + + + + + + + + + + STL Tutorial and Reference Guide + + + 1996 + + + + + + + David R. + + + Musser + + + + + + + A. + + + Saini + + + + + + + Addison-Wesley Publishing Company + + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.dogma.net/markn/articles/pq_stl/priority.htm">Priority Queues and the STL + </link> + + + January 1996 + + + + + + Mark + + + Nelson + + + + + + + Dr. Dobbs Journal + + + + + + + + + Fast mergeable integer maps + + + September 1998 + + + + + + C. + + + Okasaki + + + + + + + A. + + + Gill + + + + + + + In Workshop on ML + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.sgi.com/tech/stl"> + Standard Template Library Programmer's Guide + </link> + + + + + Matt + + + Austern + + + + + + + SGI + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+select"> + select + </link> + + + + + + + + Amortized Efficiency of List Update Problems + + + 1984 + + + + + + D. D. + + + Sleator + + + + + + + + R. E. + + + Tarjan + + + + + + + + ACM Symposium on Theory of Computing + + + + + + + + Self-Adjusting Binary Search Trees + + + 1985 + + + + + + + D. D. + + + Sleator + + + + + + + + R. E. + + + Tarjan + + + + + + + + ACM Symposium on Theory of Computing + + + + + + + + The Standard Template Library + + + 1984 + + + + + + A. A. + + + Stepanov + + + + + + + M. + + + Lee + + + + + + + + + + The C++ Programming Langugage + + + 1997 + + + + + + Bjarne + + + Stroustrup + + + + + + + Addison-Wesley Publishing Company + + + + + + + + C++ Templates: The Complete Guide + + + 2002 + + + + + + D. + + + Vandevoorde + + + + + + + + N. M. + + + Josuttis + + + + + + + Addison-Wesley Publishing Company + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip"> + Thirty Years Among the Dead + </link> + + + 1996 + + + + + + C. A. + + + Wickland + + + + + + + National Psychological Institute + + + + + + + +
diff --git a/libstdc++-v3/doc/xml/manual/spine.xml b/libstdc++-v3/doc/xml/manual/spine.xml index 808ca0341cda..fd4b6fd910a1 100644 --- a/libstdc++-v3/doc/xml/manual/spine.xml +++ b/libstdc++-v3/doc/xml/manual/spine.xml @@ -8,6 +8,7 @@ 2009 2010 + 2011 FSF diff --git a/libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml b/libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml new file mode 100644 index 000000000000..0c0fc0349e59 --- /dev/null +++ b/libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml @@ -0,0 +1,9774 @@ +
+ Testing + + + +
+ Regression + + The library contains a single comprehensive regression test. + For a given container type in this library, the test creates + an object of the container type and an object of the + corresponding standard type (e.g., std::set). It + then performs a random sequence of methods with random + arguments (e.g., inserts, erases, and so forth) on both + objects. At each operation, the test checks the return value of + the method, and optionally both compares this library's + object with the standard's object as well as performing other + consistency checks on this library's object (e.g., + order preservation, when applicable, or node invariants, when + applicable). + + Additionally, the test integrally checks exception safety + and resource leaks. This is done as follows. A special + allocator type, written for the purpose of the test, both + randomly throws an exceptions when allocations are performed, + and tracks allocations and de-allocations. The exceptions thrown + at allocations simulate memory-allocation failures; the + tracking mechanism checks for memory-related bugs (e.g., + resource leaks and multiple de-allocations). Both + this library's containers and the containers' value-types are + configured to use this allocator. + + For granularity, the test is split into the + several sources, each checking only some containers. + + For more details, consult the files in + testsuite/ext/pb_ds/regression. +
+ + +
+ Performance + +
+ Hash-Based + + + +
+ + Text <function>find</function> + + + +
+ + Description + + + + This test inserts a number of values with keys from an + arbitrary text () into a container, + then performs a series of finds using + find . It measures the average + time for find as a function of + the number of values inserted. + + It uses the test file: + + performance/ext/pb_ds/text_find_timing_test.cc + + + + + And uses the data file: + + filethirty_years_among_the_dead_preproc.txt + + + + The test checks the effect of different range-hashing + functions, trigger policies, and cache-hashing policies. + + +
+ +
+ + Results + + + The graphic below show the results for the native + and collision-chaining hash types the the function + applied being a text find timing test using + find. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + +
+ +
+ + Observations + + + In this setting, the range-hashing scheme affects performance + more than other policies. As the results show, containers using + mod-based range-hashing (including the native hash-based container, + which is currently hard-wired to this scheme) have lower performance + than those using mask-based range-hashing. A modulo-based + range-hashing scheme's main benefit is that it takes into account + all hash-value bits. Standard string hash-functions are designed to + create hash values that are nearly-uniform as is (). + + Trigger policies, i.e. the load-checks constants, affect + performance to a lesser extent. + + Perhaps surprisingly, storing the hash value alongside each + entry affects performance only marginally, at least in this + library's implementation. (Unfortunately, it was not possible to run + the tests with std::tr1::unordered_map 's + cache_hash_code = true , as it appeared to + malfuntion.) + +
+ +
+ + +
+ + Integer <function>find</function> + + + +
+ + Description + + + This test inserts a number of values with uniform + integer keys into a container, then performs a series of finds + using find. It measures the average time + for find as a function of the number of values + inserted. + + + It uses the test file: + + performance/ext/pb_ds/random_int_find_timing.cc + + + + The test checks the effect of different underlying + hash-tables, + range-hashing functions, and trigger policies. + +
+ +
+ + Results + + + + There are two sets of results for this type, one for + collision-chaining hashes, and one for general-probe hashes. + + + The first graphic below shows the results for the native and + collision-chaining hash types. The function applied being a random + integer timing test using find. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + + + + + + And the second graphic shows the results for the native and + general-probe hash types. The function applied being a random + integer timing test using find. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map + + + + + + gp_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Probe_Fn + + + quadratic_probe_fn + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map + + + + + + + gp_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Probe_Fn + + + linear_probe_fn + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + +
+ +
+ + Observations + + + In this setting, the choice of underlying hash-table affects + performance most, then the range-hashing scheme and, only finally, + other policies. + + When comparing probing and chaining containers, it is + apparent that the probing containers are less efficient than the + collision-chaining containers ( + std::tr1::unordered_map uses + collision-chaining) in this case. + + Hash-Based Integer Subscript Insert Timing Test shows + a different case, where the situation is reversed; + + + Within each type of hash-table, the range-hashing scheme + affects performance more than other policies; Hash-Based Text + find Find Timing Test also shows this. In the + above graphics should be noted that + std::tr1::unordered_map are hard-wired + currently to mod-based schemes. + + +
+ +
+ + +
+ + Integer Subscript <function>find</function> + + + +
+ + Description + + + This test inserts a number of values with uniform + integer keys into a container, then performs a series of finds + using operator[]. It measures the average time + for operator[] as a function of the number of + values inserted. + + + It uses the test file: + + performance/ext/pb_ds/random_int_subscript_find_timing.cc + + + + The test checks the effect of different underlying + hash-tables, range-hashing functions, and trigger policies. + + +
+ +
+ + Results + + + + There are two sets of results for this type, one for + collision-chaining hashes, and one for general-probe hashes. + + + The first graphic below shows the results for the native + and collision-chaining hash types, using as the function + applied an integer subscript timing test with + find. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + + + + + + + And the second graphic shows the results for the native and + general-probe hash types. The function applied being a random + integer timing test using find. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map + + + + + + gp_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Probe_Fn + + + quadratic_probe_fn + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map + + + + + + + gp_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Probe_Fn + + + linear_probe_fn + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + +
+ +
+ + Observations + + This test shows similar results to Hash-Based + Integer find Find Timing test. + +
+ +
+ + +
+ + Integer Subscript <function>insert</function> + + + +
+ + Description + + + This test inserts a number of values with uniform i.i.d. + integer keys into a container, using + operator[]. It measures the average time for + operator[] as a function of the number of + values inserted. + + + It uses the test file: + + performance/ext/pb_ds/random_int_subscript_insert_timing.cc + + + + The test checks the effect of different underlying + hash-tables. + + +
+ +
+ + Results + + + + There are two sets of results for this type, one for + collision-chaining hashes, and one for general-probe hashes. + + + The first graphic below shows the results for the native + and collision-chaining hash types, using as the function + applied an integer subscript timing test with + insert. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + + + + + + + And the second graphic shows the results for the native and + general-probe hash types. The function applied being a random + integer timing test using find. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map + + + + + + gp_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Probe_Fn + + + quadratic_probe_fn + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map + + + + + + + gp_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Probe_Fn + + + linear_probe_fn + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + +
+ +
+ + Observations + + + In this setting, as in Hash-Based Text + find Find Timing test and Hash-Based + Integer find Find Timing test , the choice + of underlying hash-table underlying hash-table affects performance + most, then the range-hashing scheme, and + finally any other policies. + There are some differences, however: + + In this setting, probing tables function sometimes more + efficiently than collision-chaining tables. + This is explained shortly. + The performance graphs have a "saw-tooth" shape. The + average insert time rises and falls. As values are inserted + into the container, the load factor grows larger. Eventually, + a resize occurs. The reallocations and rehashing are + relatively expensive. After this, the load factor is smaller + than before. + + + Collision-chaining containers use indirection for greater + flexibility; probing containers store values contiguously, in + an array (see Figure Motivation::Different + underlying data structures A and B, respectively). It + follows that for simple data types, probing containers access + their allocator less frequently than collision-chaining + containers, (although they still have less efficient probing + sequences). This explains why some probing containers fare + better than collision-chaining containers in this case. + + + Within each type of hash-table, the range-hashing scheme affects + performance more than other policies. This is similar to the + situation in Hash-Based Text + find Find Timing Test and Hash-Based + Integer find Find Timing Test. + Unsurprisingly, however, containers with lower αmax perform worse in this case, + since more re-hashes are performed. + +
+ +
+ + + + + +
+ + Integer <function>find</function> with Skewed-Distribution + + + +
+ + Description + + + This test inserts a number of values with a markedly + non-uniform integer keys into a container, then performs + a series of finds using find. It measures the average + time for find as a function of the number of values in + the containers. The keys are generated as follows. First, a + uniform integer is created. Then it is then shifted left 8 bits. + + + It uses the test file: + + performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc + + + + The test checks the effect of different range-hashing + functions and trigger policies. + + +
+ +
+ + Results + + + The graphic below show the results for the native, collision-chaining, and general-probing hash types. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map + + + + + + gp_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Probe_Fn + + + quadratic_probe_fn + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + +
+ +
+ + Observations + + + In this setting, the distribution of keys is so skewed that + the underlying hash-table type affects performance marginally. + (This is in contrast with Hash-Based Text + find Find Timing Test, Hash-Based + Integer find Find Timing Test, Hash-Based + Integer Subscript Find Timing Test and Hash-Based + Integer Subscript Insert Timing Test.) + + The range-hashing scheme affects performance dramatically. A + mask-based range-hashing scheme effectively maps all values + into the same bucket. Access degenerates into a search within + an unordered linked-list. In the graphic above, it should be noted that + std::tr1::unordered_map is hard-wired currently to mod-based and mask-based schemes, + respectively. + + When observing the settings of this test, it is apparent + that the keys' distribution is far from natural. One might ask + if the test is not contrived to show that, in some cases, + mod-based range hashing does better than mask-based range + hashing. This is, in fact just the case. A + more natural case in which mod-based range hashing is better was not encountered. + Thus the inescapable conclusion: real-life key distributions are handled better + with an appropriate hash function and a mask-based + range-hashing function. (pb_ds/example/hash_shift_mask.cc + shows an example of handling this a-priori known skewed + distribution with a mask-based range-hashing function). If hash + performance is bad, a χ2 test can be used + to check how to transform it into a more uniform + distribution. + For this reason, this library's default range-hashing + function is mask-based. + +
+ +
+ + + + + +
+ + Erase Memory Use + + + +
+ + Description + + + This test inserts a number of uniform integer keys + into a container, then erases all keys except one. It measures + the final size of the container. + + + It uses the test file: + + performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc + + + + + The test checks how containers adjust internally as their + logical size decreases. + +
+ +
+ + Results + + + The graphic below show the results for the native, collision-chaining, and general-probing hash types. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_map_ncah + + + + + + std::tr1::unordered_map + + + cache_hash_code + + + false + + + + + + + + + cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map + + + + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mod_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_prime_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/1 + + + + + + + + cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set + + + + + + gp_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Probe_Fn + + + linear_probe_fn + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + +
+ +
+ + Observations + + The standard's hash-based containers act very differently than trees in + this respect. When erasing numerous keys from an standard + associative-container, the resulting memory user varies greatly + depending on whether the container is tree-based or hash-based. + This is a fundamental consequence of the standard's interface for + associative containers, and it is not due to a specific + implementation. +
+ +
+
+ + +
+ Branch-Based + + + +
+ + Text <function>insert</function> + + + +
+ + Description + + + + This test inserts a number of values with keys from an arbitrary + text ([ wickland96thirty ]) into a container + using insert . It measures the average time + for insert as a function of the number of + values inserted. + + The test checks the effect of different underlying + data structures. + + + It uses the test file: + + performance/ext/pb_ds/tree_text_insert_timing.cc + + + + +
+ +
+ + Results + + + The three graphics below show the results for the native + tree and this library's node-based trees, the native tree and + this library's vector-based trees, and the native tree + and this library's PATRICIA-trie, respectively. + + + The graphic immediately below shows the results for the + native tree type and several node-based tree types. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_map + + + + + + std::map + + + + + + + + + splay_tree_map + + + + + + tree + + + Tag + + + splay_tree_tag + + + + + + Node_update + + + null_node_update + + + + + + + + + rb_tree_map + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + Node_update + + + null_node_update + + + + + + + + + + The graphic below shows the results for the + native tree type and a vector-based tree type. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_map + + + + + + std::map + + + + + + + + + ov_tree_map + + + + + + tree + + + Tag + + + ov_tree_tag + + + + + + Node_update + + + null_node_update + + + + + + + + + + + + The graphic below shows the results for the + native tree type and a PATRICIA trie type. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_map + + + + + + std::map + + + + + + + + + pat_trie_map + + + + + + tree + + + Tag + + + pat_trie_tag + + + + + + Node_update + + + null_node_update + + + + + + + + +
+ +
+ + Observations + + + Observing the first graphic implies that for this setting, a splay tree + (tree with Tag + = splay_tree_tag) does not do + well. See also the Branch-Based + Text find Find Timing Test. The two + red-black trees perform better. + + Observing the second graphic, an ordered-vector tree + (tree with Tag + = ov_tree_tag) performs + abysmally. Inserting into this type of tree has linear complexity + [ austern00noset]. + + Observing the third and last graphic, A PATRICIA trie + (trie with Tag + = pat_trie_tag) has abysmal + performance, as well. This is not that surprising, since a + large-fan-out PATRICIA trie works like a hash table with + collisions resolved by a sub-trie. Each time a collision is + encountered, a new "hash-table" is built A large fan-out PATRICIA + trie, however, doe does well in look-ups (see Branch-Based + Text find Find Timing Test). It may be + beneficial in semi-static settings. +
+ +
+ + + +
+ + Text <function>find</function> + + + +
+ + Description + + + + This test inserts a number of values with keys from an + arbitrary text ([wickland96thirty]) into + a container, then performs a series of finds using + find. It measures the average time + for find as a function of the number of + values inserted. + + + It uses the test file: + + performance/ext/pb_ds/text_find_timing.cc + + + + + The test checks the effect of different underlying + data structures. + +
+ +
+ + Results + + + The graphic immediately below shows the results for the + native tree type and several other tree types. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_map + + + + + + std::map + + + + + + + + + splay_tree_map + + + + + + tree + + + Tag + + + splay_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + rb_tree_map + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + ov_tree_map + + + + + + tree + + + Tag + + + ov_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + pat_trie_map + + + + + + tree + + + Tag + + + pat_trie_tag + + + + + + Node_Update + + + null_node_update + + + + + + + +
+ +
+ + Observations + + + For this setting, a splay tree (tree + with Tag + = splay_tree_tag) does not do + well. This is possibly due to two reasons: + + + A splay tree is not guaranteed to be balanced [motwani95random]. If a + splay tree contains n nodes, its average root-leaf + path can be m >> log(n). + Assume a specific root-leaf search path has length + m, and the search-target node has distance m' + from the root. A red-black tree will require m + 1 + comparisons to find the required node; a splay tree will + require 2 m' comparisons. A splay tree, consequently, + can perform many more comparisons than a red-black tree. + + An ordered-vector tree (tree + with Tag = ov_tree_tag), a red-black + tree (tree + with Tag = rb_tree_tag), and the + native red-black tree all share approximately the same + performance. + An ordered-vector tree is slightly slower than red-black + trees, since it requires, in order to find a key, more math + operations than they do. Conversely, an ordered-vector tree + requires far lower space than the others. ([austern00noset], however, + seems to have an implementation that is also faster than a + red-black tree). + A PATRICIA trie (trie + with Tag = pat_trie_tag) has good + look-up performance, due to its large fan-out in this case. In + this setting, a PATRICIA trie has look-up performance comparable + to a hash table (see Hash-Based Text + find Timing Test), but it is order + preserving. This is not that surprising, since a large-fan-out + PATRICIA trie works like a hash table with collisions resolved + by a sub-trie. A large-fan-out PATRICIA trie does not do well on + modifications (see Tree-Based and Trie-Based + Text Insert Timing Test). Therefore, it is possibly beneficial in + semi-static settings. +
+
+ + + +
+ + + Text <function>find</function> with Locality-of-Reference + + + +
+ + Description + + + + + This test inserts a number of values with keys from an + arbitrary text ([ wickland96thirty ]) into + a container, then performs a series of finds using + find. It is different than Tree-Based and + Trie-Based Text find Find Timing Test in the + sequence of finds it performs: this test performs multiple + finds on the same key before moving on to the next + key. It measures the average time for find as a + function of the number of values inserted. + + + + It uses the test file: + + performance/ext/pb_ds/tree_text_lor_find_timing.cc + + + + The test checks the effect of different underlying + data structures in a locality-of-reference setting. + +
+ +
+ + Results + + + The graphic immediately below shows the results for the + native tree type and several other tree types. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_map + + + + + + std::map + + + + + + + + + splay_tree_map + + + + + + tree + + + Tag + + + splay_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + rb_tree_map + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + ov_tree_map + + + + + + tree + + + Tag + + + ov_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + pat_trie_map + + + + + + tree + + + Tag + + + pat_trie_tag + + + + + + Node_Update + + + null_node_update + + + + + + + +
+ +
+ + Observations + + + For this setting, an ordered-vector tree + (tree with Tag + = ov_tree_tag), a red-black tree + (tree with Tag + = rb_tree_tag), and the native red-black + tree all share approximately the same performance. + A splay tree (tree + with Tag = splay_tree_tag) does + much better, since each (successful) find "bubbles" the + corresponding node to the root of the tree. + +
+
+ + +
+ + + <function>split</function> and <function>join</function> + + + +
+ + Description + + + + This test a container, inserts into a number of values, splits + the container at the median, and joins the two containers. (If the + containers are one of this library's trees, + it splits and joins with the split and + join method; otherwise, it uses the erase and + insert methods.) It measures the time for splitting + and joining the containers as a function of the number of + values inserted. + + + It uses the test file: + + performance/ext/pb_ds/tree_split_join_timing.cc + + + + + The test checks the performance difference of join + as opposed to a sequence of insert operations; by + implication, this test checks the most efficient way to erase a + sub-sequence from a tree-like-based container, since this can + always be performed by a small sequence of splits and joins. + +
+ +
+ + Results + + + The graphic immediately below shows the results for the + native tree type and several other tree types. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_set + + + + + + std::set + + + + + + + + + splay_tree_set + + + + + + tree + + + Tag + + + splay_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + rb_tree_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + ov_tree_set + + + + + + tree + + + Tag + + + ov_tree_tag + + + + + + Node_Update + + + null_node_update + + + + + + + + + pat_trie_map + + + + + + tree + + + Tag + + + pat_trie_tag + + + + + + Node_Update + + + null_node_update + + + + + + + +
+ +
+ + Observations + + + In this test, the native red-black trees must be split and + joined externally, through a sequence of erase and + insert operations. This is clearly + super-linear, and it is not that surprising that the cost is + high. + This library's tree-based containers use in this test the + split and join methods, + which have lower complexity: the join method + of a splay tree (tree + with Tag + = splay_tree_tag) is quadratic in the + length of the longest root-leaf path, and linear in the total + number of elements; the join method of a + red-black tree (tree + with Tag + = rb_tree_tag) or an ordered-vector tree + (tree with Tag + = ov_tree_tag) is linear in the number of + elements. + + Asides from orders of growth, this library's trees access their + allocator very little in these operations, and some of them do not + access it at all. This leads to lower constants in their + complexity, and, for some containers, to exception-free splits and + joins (which can be determined + via container_traits). + + It is important to note that split and + join are not esoteric methods - they are the most + efficient means of erasing a contiguous range of values from a + tree based container. +
+
+ + +
+ + + Order-Statistics + + + +
+ + Description + + + This test creates a container, inserts random integers into the + the container, and then checks the order-statistics of the + container's values. (If the container is one of this + library's trees, it does this with + the order_of_key method of + tree_order_statistics_node_update + ; otherwise, it uses the find method and + std::distance.) It measures the average + time for such queries as a function of the number of values + inserted. + + + It uses the test file: + + performance/ext/pb_ds/tree_order_statistics_timing.cc + + + + The test checks the performance difference of policies based + on node-invariant as opposed to a external functions. + +
+ +
+ + Results + + + The graphic immediately below shows the results for the + native tree type and several other tree types. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_set + + + + + + std::set + + + + + + + + + splay_tree_ost_set + + + + + + tree + + + Tag + + + splay_tree_tag + + + + + + Node_Update + + + tree_order_statistics_node_update + + + + + + + + + rb_tree_ost_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + Node_Update + + + tree_order_statistics_node_update + + + + + + + + +
+ +
+ + Observations + + In this test, the native red-black tree can support + order-statistics queries only externally, by performing a + find (alternatively, lower_bound or + upper_bound ) and then using std::distance . + This is clearly linear, and it is not that surprising that the + cost is high. + This library's tree-based containers use in this test the + order_of_key method of tree_order_statistics_node_update. + This method has only linear complexity in the length of the + root-node path. Unfortunately, the average path of a splay tree + (tree + with Tag = splay_tree_tag ) can + be higher than logarithmic; the longest path of a red-black + tree (tree + with Tag = rb_tree_tag ) is + logarithmic in the number of elements. Consequently, the splay + tree has worse performance than the red-black tree. +
+
+ +
+ +
+ Multimap + + + + +
+ + Text <function>find</function> with Small Secondary-to-Primary Key Ratios + + + +
+ + Description + + + This test inserts a number of pairs into a container. The + first item of each pair is a string from an arbitrary text + [wickland96thirty], and + the second is a uniform i.i.d.integer. The container is a + "multimap" - it considers the first member of each pair as a + primary key, and the second member of each pair as a secondary + key (see Motivation::Associative + Containers::Alternative to Multiple Equivalent Keys). There + are 400 distinct primary keys, and the ratio of secondary keys + to primary keys ranges from 1 to 5. + The test measures the average find-time as a function of the + number of values inserted. For this library's containers, it + finds the secondary key from a container obtained from finding + a primary key. For the native multimaps, it searches a range + obtained using std::equal_range on a primary key. + + + It uses the test file: + + performance/ext/pb_ds/multimap_text_find_timing_small.cc + + + + The test checks the find-time scalability of different + "multimap" designs. + +
+ +
+ + Results + + + The graphic below show the results for "multimaps" which + use a tree-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_mmap + + + + + + std::multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + The graphic below show the results for "multimaps" which + use a hash-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_mmap + + + + + + std::tr1::unordered_multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + +
+ +
+ + Observations + + + See Observations::Mapping-Semantics + Considerations. + +
+ +
+ + +
+ + Text <function>find</function> with Large Secondary-to-Primary Key Ratios + + + +
+ + Description + + + This test inserts a number of pairs into a container. The + first item of each pair is a string from an arbitrary text + [wickland96thirty], and + the second is a uniform integer. The container is a + "multimap" - it considers the first member of each pair as a + primary key, and the second member of each pair as a secondary + key. There + are 400 distinct primary keys, and the ratio of secondary keys + to primary keys ranges from 1 to 5. + The test measures the average find-time as a function of the + number of values inserted. For this library's containers, it + finds the secondary key from a container obtained from finding + a primary key. For the native multimaps, it searches a range + obtained using std::equal_range on a primary key. + + + It uses the test file: + + performance/ext/pb_ds/multimap_text_find_timing_large.cc + + + + The test checks the find-time scalability of different + "multimap" designs. + +
+ +
+ + Results + + + The graphic below show the results for "multimaps" which + use a tree-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_mmap + + + + + + std::multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + The graphic below show the results for "multimaps" which + use a hash-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_mmap + + + + + + std::tr1::unordered_multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + +
+ +
+ + Observations + + + See Observations::Mapping-Semantics + Considerations. + +
+ +
+ + + +
+ + Text <function>insert</function> with Small + Secondary-to-Primary Key Ratios + + + +
+ + Description + + + This test inserts a number of pairs into a container. The + first item of each pair is a string from an arbitrary text + [wickland96thirty], and + the second is a uniform integer. The container is a + "multimap" - it considers the first member of each pair as a + primary key, and the second member of each pair as a secondary + key. There + are 400 distinct primary keys, and the ratio of secondary keys + to primary keys ranges from 1 to 5. + The test measures the average insert-time as a function of + the number of values inserted. For this library's containers, + it inserts a primary key into the primary associative + container, then a secondary key into the secondary associative + container. For the native multimaps, it obtains a range using + std::equal_range, and inserts a value only if it was + not contained already. + + + It uses the test file: + + performance/ext/pb_ds/multimap_text_insert_timing_small.cc + + + + The test checks the insert-time scalability of different + "multimap" designs. + +
+ +
+ + Results + + + The graphic below show the results for "multimaps" which + use a tree-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_mmap + + + + + + std::multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + The graphic below show the results for "multimaps" which + use a hash-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_mmap + + + + + + std::tr1::unordered_multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + +
+ +
+ + Observations + + + See Observations::Mapping-Semantics + Considerations. + +
+ +
+ + + +
+ + Text <function>insert</function> with Small + Secondary-to-Primary Key Ratios + + + +
+ + Description + + + This test inserts a number of pairs into a container. The + first item of each pair is a string from an arbitrary text + [wickland96thirty], and + the second is a uniform integer. The container is a + "multimap" - it considers the first member of each pair as a + primary key, and the second member of each pair as a secondary + key. There + are 400 distinct primary keys, and the ratio of secondary keys + to primary keys ranges from 1 to 5. + The test measures the average insert-time as a function of + the number of values inserted. For this library's containers, + it inserts a primary key into the primary associative + container, then a secondary key into the secondary associative + container. For the native multimaps, it obtains a range using + std::equal_range, and inserts a value only if it was + not contained already. + + + It uses the test file: + + performance/ext/pb_ds/multimap_text_insert_timing_large.cc + + + + The test checks the insert-time scalability of different + "multimap" designs. + +
+ +
+ + Results + + + The graphic below show the results for "multimaps" which + use a tree-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_mmap + + + + + + std::multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + The graphic below show the results for "multimaps" which + use a hash-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_mmap + + + + + + std::tr1::unordered_multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + +
+ +
+ + Observations + + + See Observations::Mapping-Semantics + Considerations. + +
+ +
+ + + +
+ + Text <function>insert</function> with Small + Secondary-to-Primary Key Ratios Memory Use + + + +
+ + Description + + This test inserts a number of pairs into a container. The + first item of each pair is a string from an arbitrary text + [wickland96thirty], and + the second is a uniform integer. The container is a + "multimap" - it considers the first member of each pair as a + primary key, and the second member of each pair as a secondary + key. There + are 100 distinct primary keys, and the ratio of secondary keys + to primary keys ranges to about 20. + The test measures the memory use as a function of the number + of values inserted. + + + It uses the test file: + + performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc + + + + The test checks the memory scalability of different + "multimap" designs. + +
+ +
+ + Results + + + The graphic below show the results for "multimaps" which + use a tree-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_mmap + + + + + + std::multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + The graphic below show the results for "multimaps" which + use a hash-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_mmap + + + + + + std::tr1::unordered_multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + +
+ +
+ + Observations + + + See Observations::Mapping-Semantics + Considerations. + +
+ +
+ + +
+ + Text <function>insert</function> with Small + Secondary-to-Primary Key Ratios Memory Use + + + +
+ + Description + + This test inserts a number of pairs into a container. The + first item of each pair is a string from an arbitrary text + [wickland96thirty], and + the second is a uniform integer. The container is a + "multimap" - it considers the first member of each pair as a + primary key, and the second member of each pair as a secondary + key. There + are 100 distinct primary keys, and the ratio of secondary keys + to primary keys ranges to about 20. + The test measures the memory use as a function of the number + of values inserted. + + + It uses the test file: + + performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc + + + + The test checks the memory scalability of different + "multimap" designs. + +
+ +
+ + Results + + + The graphic below show the results for "multimaps" which + use a tree-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_mmap + + + + + + std::multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + tree + + + Tag + + + rb_tree_tag + + + + + + + Node_Update + + + null_node_update + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + + + The graphic below show the results for "multimaps" which + use a hash-based container for primary keys. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + Parameter + Details + Parameter + Details + + + + + + + + + + n_hash_mmap + + + + + + std::tr1::unordered_multimap + + + + + + + + + rb_tree_mmap_lu_mtf_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + list_update + + + Update_Policy + + + lu_move_to_front_policy + + + + + + + + + rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set + + + + + + + cc_hash_table + + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + Mapped + + + cc_hash_table + + + Comb_Hash_Fn + + + direct_mask_range_hashing + + + + + + + Resize_Policy + + + hash_standard_resize_policy + + + Size_Policy + + + hash_exponential_size_policy + + + + + + Trigger_Policy + + + hash_load_check_resize_trigger with + αmin = 1/8 and αmax = 1/2 + + + + + + + +
+ +
+ + Observations + + + See Observations::Mapping-Semantics + Considerations. + +
+ +
+ +
+ +
+ Priority Queue + + +
+ + Text <function>push</function> + + + +
+ + Description + + + + This test inserts a number of values with keys from an + arbitrary text ([ wickland96thirty ]) into + a container using push. It measures the average time + for push as a function of the number of values + pushed. + + + It uses the test file: + + performance/ext/pb_ds/priority_queue_text_push_timing.cc + + + + The test checks the effect of different underlying data + structures. + + +
+ +
+ + Results + + + The two graphics below show the results for the native + priority_queues and this library's priority_queues. + + + The graphic immediately below shows the results for the + native priority_queue type instantiated with different underlying + container types versus several different versions of library's + priority_queues. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + binomial_heap + + + + + + priority_queue + + + Tag + + + binomial_heap_tag + + + + + + + + rc_binomial_heap + + + + + + priority_queue + + + Tag + + + rc_binomial_heap_tag + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + + + The graphic below shows the results for the binary-heap + based native priority queues and this library's pairing-heap + priority_queue data structures. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + +
+ +
+ + Observations + + + Pairing heaps (priority_queue with + Tag = pairing_heap_tag) + are the most suited for sequences of push and + pop operations of non-primitive types (e.g. + std::strings). (See Priority Queue + Text push and pop Timing Test.) They are + less constrained than binomial heaps, e.g., and since + they are node-based, they outperform binary heaps. (See + Priority + Queue Random Integer push Timing Test for the case + of primitive types.) + + The standard's priority queues do not seem to perform well in + this case: the std::vector implementation needs to + perform a logarithmic sequence of string operations for each + operation, and the deque implementation is possibly hampered by + its need to manipulate a relatively-complex type (deques + support a O(1) push_front, even though it is + not used by std::priority_queue.) + +
+
+ + +
+ + Text <function>push</function> and <function>pop</function> + + + +
+ + Description + + + This test inserts a number of values with keys from an + arbitrary text ([ wickland96thirty ]) into + a container using push , then removes them using + pop . It measures the average time for push + as a function of the number of values. + + + + It uses the test file: + + performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc + + + + The test checks the effect of different underlying data + structures. + + +
+ +
+ + Results + + + The two graphics below show the results for the native + priority_queues and this library's priority_queues. + + + The graphic immediately below shows the results for the + native priority_queue type instantiated with different underlying + container types versus several different versions of library's + priority_queues. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + binomial_heap + + + + + + priority_queue + + + Tag + + + binomial_heap_tag + + + + + + + + rc_binomial_heap + + + + + + priority_queue + + + Tag + + + rc_binomial_heap_tag + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + + + The graphic below shows the results for the native priority + queues and this library's pairing-heap priority_queue data + structures. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue adapting std::vector + + + Sequence + + + std::vector + + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + +
+ +
+ + Observations + + + These results are very similar to Priority Queue Text + push Timing Test. As stated there, pairing heaps + (priority_queue with + Tag + = pairing_heap_tag) are most suited + for push and pop + sequences of non-primitive types such as strings. Observing these + two tests, one can note that a pairing heap outperforms the others + in terms of push operations, but equals + binary heaps (priority_queue with + Tag + = binary_heap_tag) if the number + of push and pop + operations is equal. As the number of pop + operations is at most equal to the number + of push operations, pairing heaps are better + in this case. See Priority Queue Random + Integer push and pop + Timing Test for a case which is different. + +
+
+ + + +
+ + Integer <function>push</function> + + + +
+ + Description + + + This test inserts a number of values with integer keys + into a container using push. It + measures the average time for push as a + function of the number of values. + + + It uses the test file: + + performance/ext/pb_ds/priority_queue_random_int_push_timing.cc + + + + The test checks the effect of different underlying data + structures. + + +
+ +
+ + Results + + + The two graphics below show the results for the native + priority_queues and this library's priority_queues. + + + The graphic immediately below shows the results for the + native priority_queue type instantiated with different underlying + container types versus several different versions of library's + priority_queues. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + binomial_heap + + + + + + priority_queue + + + Tag + + + binomial_heap_tag + + + + + + + + rc_binomial_heap + + + + + + priority_queue + + + Tag + + + rc_binomial_heap_tag + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + + + The graphic below shows the results for the binary-heap + based native priority queues and this library's + priority_queue data structures. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue adapting std::vector + + + Sequence + + + std::vector + + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + +
+ +
+ + Observations + + + + Binary heaps are the most suited for sequences of + push and pop operations of primitive types + (e.g. ints). They are less constrained + than any other type, and since it is very efficient to store + such types in arrays, they outperform even pairing heaps. (See + Priority + Queue Text push Timing Test for the case of + non-primitive types.) +
+
+ + +
+ + Integer <function>push</function> + + + +
+ + Description + + + This test inserts a number of values with integer keys + into a container using push , then removes them + using pop . It measures the average time for + push and pop as a function + of the number of values. + + + It uses the test file: + + performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc + + + + The test checks the effect of different underlying data + structures. + + +
+ +
+ + Results + + + The graphic immediately below shows the results for the + native priority_queue type instantiated with different underlying + container types versus several different versions of library's + priority_queues. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + binomial_heap + + + + + + priority_queue + + + Tag + + + binomial_heap_tag + + + + + + + + rc_binomial_heap + + + + + + priority_queue + + + Tag + + + rc_binomial_heap_tag + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + + +
+ +
+ + Observations + + + Binary heaps are the most suited for sequences of + push and pop operations of primitive types + (e.g. ints). This is explained in + Priority + Queue Random Int push Timing Test. (See Priority Queue + Text push Timing Test for the case of primitive + types.) + + At first glance it seems that the standard's vector-based + priority queue is approximately on par with this + library's corresponding priority queue. There are two + differences however: + + The standard's priority queue does not downsize the underlying + vector (or deque) as the priority queue becomes smaller + (see Priority Queue + Text pop Memory Use Test). It is therefore + gaining some speed at the expense of space. + From Priority Queue Random + Integer push and pop + Timing Test, it seems that the standard's priority queue is + slower in terms of push operations. Since + the number of + pop operations is at most that of push + operations, the test here is the "best" for the standard's + priority queue. + + + +
+
+ + + +
+ + Text <function>pop</function> Memory Use + + + +
+ + Description + + + + This test inserts a number of values with keys from an + arbitrary text ([ wickland96thirty ]) into + a container, then pops them until only one is left in the + container. It measures the memory use as a function of the + number of values pushed to the container. + + It uses the test file: + + performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc + + + + The test checks the effect of different underlying data + structures. + + +
+ +
+ + Results + + + The graphic immediately below shows the results for the + native priority_queue type instantiated with different underlying + container types versus several different versions of library's + priority_queues. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + binomial_heap + + + + + + priority_queue + + + Tag + + + binomial_heap_tag + + + + + + + + rc_binomial_heap + + + + + + priority_queue + + + Tag + + + rc_binomial_heap_tag + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + + +
+ +
+ + Observations + + + + The priority queue implementations (excluding the standard's) use + memory proportionally to the number of values they hold: + node-based implementations (e.g., a pairing heap) do so + naturally; this library's binary heap de-allocates memory when + a certain lower threshold is exceeded. + + Note from Priority Queue Text push + and pop Timing Test and Priority Queue + Random Integer push + and pop Timing Test that this does not + impede performance compared to the standard's priority + queues. + See Hash-Based Erase + Memory Use Test for a similar phenomenon regarding priority + queues. +
+
+ + +
+ + Text <function>join</function> + + + +
+ + Description + + + This test inserts a number of values with keys from an + arbitrary text ([ wickland96thirty ]) into + two containers, then merges the containers. It uses + join for this library's priority queues; for + the standard's priority queues, it successively pops values from + one container and pushes them into the other. The test measures + the average time as a function of the number of values. + + It uses the test file: + + performance/ext/pb_ds/priority_queue_text_join_timing.cc + + + + The test checks the effect of different underlying data + structures. + + +
+ +
+ + Results + + + The graphic immediately below shows the results for the + native priority_queue type instantiated with different underlying + container types versus several different versions of library's + priority_queues. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + binomial_heap + + + + + + priority_queue + + + Tag + + + binomial_heap_tag + + + + + + + + rc_binomial_heap + + + + + + priority_queue + + + Tag + + + rc_binomial_heap_tag + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + + +
+ +
+ + Observations + + + In this test the node-based heaps perform join in + either logarithmic or constant time. The binary heap requires + linear time, since the well-known heapify algorithm [clrs2001] is linear. + It would be possible to apply the heapify algorithm to the + standard containers, if they would support iteration (which they + don't). Barring iterators, it is still somehow possible to perform + linear-time merge on a std::vector-based + standard priority queue, using top() + and size() (since they are enough to expose + the underlying array), but this is impossible for + a std::deque-based standard priority queue. + Without heapify, the cost is super-linear. +
+
+ + + +
+ + Text <function>modify</function> Up + + + +
+ + Description + + + This test inserts a number of values with keys from an + arbitrary text ([ wickland96thirty ]) into + into a container then modifies each one "up" (i.e., it + makes it larger). It uses modify for this library's + priority queues; for the standard's priority queues, it pops values + from a container until it reaches the value that should be + modified, then pushes values back in. It measures the average + time for modify as a function of the number of + values. + + + It uses the test file: + + performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc + + + + The test checks the effect of different underlying data + structures for graph algorithms settings. Note that making an + arbitrary value larger (in the sense of the priority queue's + comparison functor) corresponds to decrease-key in standard graph + algorithms [clrs2001]. + + +
+ +
+ + Results + + + The two graphics below show the results for the native + priority_queues and this library's priority_queues. + + + The graphic immediately below shows the results for the + native priority_queue type instantiated with different underlying + container types versus several different versions of library's + priority_queues. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + binomial_heap + + + + + + priority_queue + + + Tag + + + binomial_heap_tag + + + + + + + + rc_binomial_heap + + + + + + priority_queue + + + Tag + + + rc_binomial_heap_tag + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + + + The graphic below shows the results for the + native priority queues and this library's pairing and thin heap + priority_queue data structures. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + +
+ +
+ + Observations + + + As noted above, increasing an arbitrary value (in the sense of + the priority queue's comparison functor) is very common in + graph-related algorithms. In this case, a thin heap + (priority_queue with + Tag = thin_heap_tag) + outperforms a pairing heap (priority_queue with + Tag = pairing_heap_tag). + Conversely, Priority Queue Text + push Timing Test, Priority Queue + Text push and pop Timing Test, Priority + Queue Random Integer push Timing Test, and + Priority + Queue Random Integer push and pop Timing + Test show that the situation is reversed for other + operations. It is not clear when to prefer one of these two + different types. + + In this test this library's binary heaps + effectively perform modify in linear time. As explained in + Priority Queue Design::Traits, given a valid point-type iterator, + a binary heap can perform + modify logarithmically. The problem is that binary + heaps invalidate their find iterators with each modifying + operation, and so the only way to obtain a valid point-type + iterator is to iterate using a range-type iterator until + finding the appropriate value, then use the range-type iterator + for the modify operation. + The explanation for the standard's priority queues' performance + is similar to that in Priority Queue Text + join Timing Test. + + +
+
+ + + +
+ + Text <function>modify</function> Down + + + +
+ + Description + + + This test inserts a number of values with keys from an + arbitrary text ([ wickland96thirty ]) into + into a container then modifies each one "down" (i.e., it + makes it smaller). It uses modify for this library's + priority queues; for the standard's priority queues, it pops values + from a container until it reaches the value that should be + modified, then pushes values back in. It measures the average + time for modify as a function of the number of + values. + + + It uses the test file: + + performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc + + + + The main purpose of this test is to contrast Priority Queue + Text modify Up Timing Test. + +
+ +
+ + Results + + + The two graphics below show the results for the native + priority_queues and this library's priority_queues. + + + The graphic immediately below shows the results for the + native priority_queue type instantiated with different underlying + container types versus several different versions of library's + priority_queues. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + n_pq_vector + + + + + + std::priority_queue + + + Sequence + + + std::vector + + + + + + + + n_pq_deque + + + + + + std::priority_queue + + + Sequence + + + std::deque + + + + + + + + binary_heap + + + + + + priority_queue + + + Tag + + + binary_heap_tag + + + + + + + + binomial_heap + + + + + + priority_queue + + + Tag + + + binomial_heap_tag + + + + + + + + rc_binomial_heap + + + + + + priority_queue + + + Tag + + + rc_binomial_heap_tag + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + + + The graphic below shows the results for the + native priority queues and this library's pairing and thin heap + priority_queue data structures. + + + + + + + + + + + + + + + + The abbreviated names in the legend of the graphic above are + instantiated with the types in the following table. + + + + + + + + + + + + Name/Instantiating Type + Parameter + Details + + + + + + + + + + thin_heap + + + + + + priority_queue + + + Tag + + + thin_heap_tag + + + + + + + + + pairing_heap + + + + + + priority_queue + + + Tag + + + pairing_heap_tag + + + + + + + + +
+ +
+ + Observations + + + Most points in these results are similar to Priority Queue + Text modify Up Timing Test. + + It is interesting to note, however, that as opposed to that + test, a thin heap (priority_queue with + Tag = thin_heap_tag) is + outperformed by a pairing heap (priority_queue with + Tag = pairing_heap_tag). + In this case, both heaps essentially perform an erase + operation followed by a push operation. As the other + tests show, a pairing heap is usually far more efficient than a + thin heap, so this is not surprising. + Most algorithms that involve priority queues increase values + (in the sense of the priority queue's comparison functor), and + so Priority Queue + Text modify Up Timing Test - is more interesting + than this test. +
+
+ + +
+ +
+ Observations + +
+ Associative + +
+ + Underlying Data-Structure Families + + + In general, hash-based containers have better timing performance + than containers based on different underlying-data structures. The + main reason to choose a tree-based or trie-based container is if a + byproduct of the tree-like structure is required: either + order-preservation, or the ability to utilize node invariants. If + memory-use is the major factor, an ordered-vector tree gives + optimal results (albeit with high modificiation costs), and a + list-based container gives reasonable results. + +
+ +
+ + Hash-Based Containers + + + Hash-based containers are typically either collision + chaining or probing. Collision-chaining + containers are more flexible internally, and so offer better + timing performance. Probing containers, if used for simple + value-types, manage memory more efficiently (they perform far + fewer allocation-related calls). In general, therefore, a + collision-chaining table should be used. A probing container, + conversely, might be used efficiently for operations such as + eliminating duplicates in a sequence, or counting the number of + occurrences within a sequence. Probing containers might be more + useful also in multithreaded applications where each thread + manipulates a hash-based container: in the standard, allocators have + class-wise semantics (see [meyers96more] - Item 10); a + probing container might incur less contention in this case. +
+ +
+ + Hash Policies + + + In hash-based containers, the range-hashing scheme seems to + affect performance more than other considerations. In most + settings, a mask-based scheme works well (or can be made to + work well). If the key-distribution can be estimated a-priori, + a simple hash function can produce nearly uniform hash-value + distribution. In many other cases (e.g., text hashing, + floating-point hashing), the hash function is powerful enough + to generate hash values with good uniformity properties + [knuth98sorting]; + a modulo-based scheme, taking into account all bits of the hash + value, appears to overlap the hash function in its effort. + The range-hashing scheme determines many of the other + policies. A mask-based scheme works + well with an exponential-size policy; for + probing-based containers, it goes well with a linear-probe + function. + An orthogonal consideration is the trigger policy. This + presents difficult tradeoffs. E.g., different load + factors in a load-check trigger policy yield a + space/amortized-cost tradeoff. +
+ +
+ + Branch-Based Containers + + In general, there are several families of tree-based + underlying data structures: balanced node-based trees + (e.g., red-black or AVL trees), high-probability + balanced node-based trees (e.g., random treaps or + skip-lists), competitive node-based trees (e.g., splay + trees), vector-based "trees", and tries. (Additionally, there + are disk-residing or network-residing trees, such as B-Trees + and their numerous variants. An interface for this would have + to deal with the execution model and ACID guarantees; this is + out of the scope of this library.) Following are some + observations on their application to different settings. + + Of the balanced node-based trees, this library includes a + red-black tree, as does standard (in + practice). This type of tree is the "workhorse" of tree-based + containers: it offers both reasonable modification and + reasonable lookup time. Unfortunately, this data structure + stores a huge amount of metadata. Each node must contain, + besides a value, three pointers and a boolean. This type might + be avoided if space is at a premium [austern00noset]. + High-probability balanced node-based trees suffer the + drawbacks of deterministic balanced trees. Although they are + fascinating data structures, preliminary tests with them showed + their performance was worse than red-black trees. The library + does not contain any such trees, therefore. + Competitive node-based trees have two drawbacks. They are + usually somewhat unbalanced, and they perform a large number of + comparisons. Balanced trees perform one comparison per each + node they encounter on a search path; a splay tree performs two + comparisons. If the keys are complex objects, e.g., + std::string, this can increase the running time. + Conversely, such trees do well when there is much locality of + reference. It is difficult to determine in which case to prefer + such trees over balanced trees. This library includes a splay + tree. + Ordered-vector trees use very little space + [austern00noset]. + They do not have any other advantages (at least in this + implementation). + Large-fan-out PATRICIA tries have excellent lookup + performance, but they do so through maintaining, for each node, + a miniature "hash-table". Their space efficiency is low, and + their modification performance is bad. These tries might be + used for semi-static settings, where order preservation is + important. Alternatively, red-black trees cross-referenced with + hash tables can be used. [okasaki98mereable] + discusses small-fan-out PATRICIA tries for integers, but the + cited results seem to indicate that the amortized cost of + maintaining such trees is higher than that of balanced trees. + Moderate-fan-out trees might be useful for sequences where each + element has a limited number of choices, e.g., DNA + strings. +
+ +
+ + Mapping-Semantics + + Different mapping semantics were discussed in the introduction and design sections.Here + the focus will be on the case where a keys can be composed into + primary keys and secondary keys. (In the case where some keys + are completely identical, it is trivial that one should use an + associative container mapping values to size types.) In this + case there are (at least) five possibilities: + + Use an associative container that allows equivalent-key + values (such as std::multimap) + Use a unique-key value associative container that maps + each primary key to some complex associative container of + secondary keys, say a tree-based or hash-based container. + + Use a unique-key value associative container that maps + each primary key to some simple associative container of + secondary keys, say a list-based container. + Use a unique-key value associative container that maps + each primary key to some non-associative container + (e.g., std::vector) + Use a unique-key value associative container that takes + into account both primary and secondary keys. + + Stated simply: there is a simple answer for this. (Excluding + option 1, which should be avoided in all cases). + If the expected ratio of secondary keys to primary keys is + small, then 3 and 4 seem reasonable. Both types of secondary + containers are relatively lightweight (in terms of memory use + and construction time), and so creating an entire container + object for each primary key is not too expensive. Option 4 + might be preferable to option 3 if changing the secondary key + of some primary key is frequent - one cannot modify an + associative container's key, and the only possibility, + therefore, is erasing the secondary key and inserting another + one instead; a non-associative container, conversely, can + support in-place modification. The actual cost of erasing a + secondary key and inserting another one depends also on the + allocator used for secondary associative-containers (The tests + above used the standard allocator, but in practice one might + choose to use, e.g., [boost_pool]). Option 2 is + definitely an overkill in this case. Option 1 loses out either + immediately (when there is one secondary key per primary key) + or almost immediately after that. Option 5 has the same + drawbacks as option 2, but it has the additional drawback that + finding all values whose primary key is equivalent to some key, + might be linear in the total number of values stored (for + example, if using a hash-based container). + If the expected ratio of secondary keys to primary keys is + large, then the answer is more complicated. It depends on the + distribution of secondary keys to primary keys, the + distribution of accesses according to primary keys, and the + types of operations most frequent. + To be more precise, assume there are m primary keys, + primary key i is mapped to ni + secondary keys, and each primary key is mapped, on average, to + n secondary keys (i.e., + E(ni) = n). + Suppose one wants to find a specific pair of primary and + secondary keys. Using 1 with a tree based container + (std::multimap), the expected cost is + E(Θ(log(m) + ni)) = Θ(log(m) + + n); using 1 with a hash-based container + (std::tr1::unordered_multimap), the expected cost is + Θ(n). Using 2 with a primary hash-based container + and secondary hash-based containers, the expected cost is + O(1); using 2 with a primary tree-based container and + secondary tree-based containers, the expected cost is (using + the Jensen inequality [motwani95random]) + E(O(log(m) + log(ni)) = O(log(m)) + + E(O(log(ni)) = O(log(m)) + O(log(n)), + assuming that primary keys are accessed equiprobably. 3 and 4 + are similar to 1, but with lower constants. Using 5 with a + hash-based container, the expected cost is O(1); using 5 + with a tree based container, the cost is + E(Θ(log(mn))) = Θ(log(m) + + log(n)). + Suppose one needs the values whose primary key matches some + given key. Using 1 with a hash-based container, the expected + cost is Θ(n), but the values will not be ordered + by secondary keys (which may or may not be required); using 1 + with a tree-based container, the expected cost is + Θ(log(m) + n), but with high constants; again the + values will not be ordered by secondary keys. 2, 3, and 4 are + similar to 1, but typically with lower constants (and, + additionally, if one uses a tree-based container for secondary + keys, they will be ordered). Using 5 with a hash-based + container, the cost is Θ(mn). + Suppose one wants to assign to a primary key all secondary + keys assigned to a different primary key. Using 1 with a + hash-based container, the expected cost is Θ(n), + but with very high constants; using 1 with a tree-based + container, the cost is Θ(nlog(mn)). Using 2, 3, + and 4, the expected cost is Θ(n), but typically + with far lower costs than 1. 5 is similar to 1. + +
+ +
+ + +
+ Priority_Queue + +
+ Complexity + + The following table shows the complexities of the different + underlying data structures in terms of orders of growth. It is + interesting to note that this table implies something about the + constants of the operations as well (see Amortized push + and pop operations). + + + + + + + + + + + + + + push + pop + modify + erase + join + + + + + + + + std::priority_queue + + + Θ(n) worst + Θ(log(n)) amortized + + + Θ(log(n)) Worst + + + Θ(n log(n)) Worst + [std note 1] + + + Θ(n log(n)) + [std note 2] + + + Θ(n log(n)) + [std note 1] + + + + + priority_queue + <Tag = + pairing_heap_tag> + + + O(1) + + + Θ(n) worst + Θ(log(n)) amortized + + + Θ(n) worst + Θ(log(n)) amortized + + + Θ(n) worst + Θ(log(n)) amortized + + + O(1) + + + + + priority_queue + <Tag = + binary_heap_tag> + + + Θ(n) worst + Θ(log(n)) amortized + + + Θ(n) worst + Θ(log(n)) amortized + + + Θ(n) + + + Θ(n) + + + Θ(n) + + + + + priority_queue + <Tag = + binomial_heap_tag> + + + Θ(log(n)) worst + O(1) amortized + + + Θ(log(n)) + + + Θ(log(n)) + + + Θ(log(n)) + + + Θ(log(n)) + + + + + priority_queue + <Tag = + rc_binomial_heap_tag> + + + O(1) + + + Θ(log(n)) + + + Θ(log(n)) + + + Θ(log(n)) + + + Θ(log(n)) + + + + + priority_queue<Tag = + thin_heap_tag> + + + O(1) + + + Θ(n) worst + Θ(log(n)) amortized + + + Θ(log(n)) worst + O(1) amortized, + or Θ(log(n)) amortized + [thin_heap_note] + + + Θ(n) worst + Θ(log(n)) amortized + + + Θ(n) + + + + + + + + [std note 1] This + is not a property of the algorithm, but rather due to the fact + that the standard's priority queue implementation does not support + iterators (and consequently the ability to access a specific + value inside it). If the priority queue is adapting an + std::vector, then it is still possible to reduce this + to Θ(n) by adapting over the standard's adapter and + using the fact that top returns a reference to the + first value; if, however, it is adapting an + std::deque, then this is impossible. + + [std note 2] As + with [std note 1], this is not a + property of the algorithm, but rather the standard's implementation. + Again, if the priority queue is adapting an + std::vector then it is possible to reduce this to + Θ(n), but with a very high constant (one must call + std::make_heap which is an expensive linear + operation); if the priority queue is adapting an + std::deque, then this is impossible. + + [thin_heap_note] A thin heap has + Θ(log(n)) worst case modify time + always, but the amortized time depends on the nature of the + operation: I) if the operation increases the key (in the sense + of the priority queue's comparison functor), then the amortized + time is O(1), but if II) it decreases it, then the + amortized time is the same as the worst case time. Note that + for most algorithms, I) is important and II) is not. + +
+ +
+ + Amortized <function>push</function> + and <function>pop</function> operations + + + + In many cases, a priority queue is needed primarily for + sequences of push and pop operations. All of + the underlying data structures have the same amortized + logarithmic complexity, but they differ in terms of + constants. + The table above shows that the different data structures are + "constrained" in some respects. In general, if a data structure + has lower worst-case complexity than another, then it will + perform slower in the amortized sense. Thus, for example a + redundant-counter binomial heap (priority_queue with + Tag = rc_binomial_heap_tag) + has lower worst-case push performance than a binomial + heap (priority_queue + with Tag = binomial_heap_tag), + and so its amortized push performance is slower in + terms of constants. + As the table shows, the "least constrained" underlying + data structures are binary heaps and pairing heaps. + Consequently, it is not surprising that they perform best in + terms of amortized constants. + + Pairing heaps seem to perform best for non-primitive + types (e.g., std::strings), as shown by + Priority + Queue Text push Timing Test and Priority + Queue Text push and pop Timing + Test + binary heaps seem to perform best for primitive types + (e.g., ints), as shown by Priority + Queue Random Integer push Timing Test and + Priority + Queue Random Integer push and pop Timing + Test. + + +
+ +
+ + Graph Algorithms + + + In some graph algorithms, a decrease-key operation is + required [clrs2001]; + this operation is identical to modify if a value is + increased (in the sense of the priority queue's comparison + functor). The table above and Priority Queue + Text modify Up Timing Test show that a thin heap + (priority_queue with + Tag = thin_heap_tag) + outperforms a pairing heap (priority_queue with + Tag = Tag = pairing_heap_tag), + but the rest of the tests show otherwise. + + This makes it difficult to decide which implementation to use in + this case. Dijkstra's shortest-path algorithm, for example, requires + Θ(n) push and pop operations + (in the number of vertices), but O(n2) + modify operations, which can be in practice Θ(n) + as well. It is difficult to find an a-priori characterization of + graphs in which the actual number of modify + operations will dwarf the number of push and + pop operations. + +
+ +
+ +
+ + +
+ +
\ No newline at end of file diff --git a/libstdc++-v3/doc/xml/spine.xml b/libstdc++-v3/doc/xml/spine.xml index 5fb739fb2bcc..5b12d48547da 100644 --- a/libstdc++-v3/doc/xml/spine.xml +++ b/libstdc++-v3/doc/xml/spine.xml @@ -18,6 +18,7 @@ 2008 2009 2010 + 2011 FSF -- 2.47.3
-

Tree-Based Locality-of-Reference Text find Find - Timing Test

-

Description

-

This test inserts a number of values with keys from an - arbitrary text ([ wickland96thirty ]) into - a container, then performs a series of finds using - find . It is different than Tree-Based and - Trie-Based Text find Find Timing Test in the - sequence of finds it performs: this test performs multiple - find s on the same key before moving on to the next - key. It measures the average time for find as a - function of the number of values inserted.

-

(The test was executed with tree_text_lor_find_timing_test - thirty_years_among_the_dead_preproc.txt 200 200 2100)

-

Purpose

-

The test checks the effect of different underlying - data structures in a locality-of-reference setting.

-

Results

-

Figures NTG, NTM, and - NTL show the results for the native and - pb_ds tree-based types in g++, msvc++ and - local, - respectively.

-
-
-
-
-
no image
NTG: Native and tree-based locality-of-reference text find timing test using find - g++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -ov_tree_map- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -rb_tree_map- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  4. -
  5. -n_map- -std::map
  6. -
  7. -splay_tree_map- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NTM: Native and tree-based locality-of-reference text find timing test using find - msvc++

In the above figure, the names in the legends have the following meaning:

-
    -
  1. -ov_tree_map- -tree - with Tag = ov_tree_tag -, and Node_Update = null_tree_node_update -
  2. -
  3. -rb_tree_map- -tree - with Tag = rb_tree_tag -, and Node_Update = null_tree_node_update -
  4. -
  5. -n_map- -std::map
  6. -
  7. -splay_tree_map- -tree - with Tag = splay_tree_tag -, and Node_Update = null_tree_node_update -
  8. -
-
-
-
-
-
-
-
-
-
-
no image
NTL: Native and tree-based locality-of-reference text find timing test using find - local
-
-
-
-
-

Observations

-

For this setting, an ordered-vector tree ( tree - with Tag = ov_tree_tag ), a - red-black tree ( tree - with Tag = rb_tree_tag ), and the - native red-black tree all share approximately the same - performance.

-

A splay tree ( tree - with Tag = splay_tree_tag ) does - much better, since each (successful) find "bubbles" the - corresponding node to the root of the tree.

-

Observations::Tree-Like-Based - Container Types summarizes some observations on tree-based - and trie-based containers.

-
-

cc_hash_table Interface

- -

A concrete collision-chaining hash-based associative - container.

- -

Defined in: assoc_container.hpp

- -

Template Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescriptionDefault Value
-
-typename Key
-
-
-

Key type.

-
-
-
-typename Mapped
-
-
-

Mapped type.

-
-
-
-class Hash_Fn 
-
-
-

Hash functor.

-
-
-__gnu_cxx::hash<Key>
-
if using gcc; -
-stdext::hash_value<Key>
-
if using Visual C++ .net -
-
-class Eq_Fn 
-
-
-

Equivalence functor.

-
-
-std::equal_to<Key>
-
-
-
-class Comb_Hash_Fn 
-
-
-

Combining hash functor.

- -

If Hash_Fn is - not null_hash_fn, then this is the - ranged-hash functor; otherwise, this is the range-hashing - functor.

- -

(See Design::Hash-Based - Containers::Hash Policies.)

-
-
-direct_mask_range_hashing
-
-
-
-class Resize_Policy 
-
-
-

Resize policy.

-
- If Comb_Hash_Fn - is direct_mask_range_hashing, - then -
-hash_standard_resize_policy<
-  hash_exponential_size_policy<
-    typename Comb_Hash_Fn::size_type>,
-  hash_load_check_resize_trigger<
-    typename Comb_Hash_Fn::size_type>,
-  false,
-  typename Comb_Hash_Fn::size_type>
-
otherwise, -
-hash_standard_resize_policy<
-  hash_exponential_size_policy<
-    typename Comb_Hash_Fn::size_type>,
-  hash_load_check_resize_trigger<
-    typename Comb_Hash_Fn::size_type>,
-  false,
-  typename Comb_Hash_Fn::size_type>
-
-
-
-bool Store_Hash 
-
-
-

Indicates whether the hash value will be stored along - with each key.

- -

If hash_fn is null_hash_fn, then the container - will not compile if this value is - true

-
-
-false
-
-
-
-class Allocator 
-
-
-

Allocator type.

-
-
-std::allocator<char>
-
-
- -

Base Classes

- - - - - - - - - - - - - -
ClassDerivation Type
-
-basic_hash_table
-
-
-

public

-
- -

Public Types and - Constants

- -

Policy Definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDefinitionDescription
-
-hash_fn
-
-
-
-Hash_Fn
-
-
-

Hash functor type.

-
-
-eq_fn
-
-
-
-Eq_Fn
-
-
-

Equivalence functor type.

-
-
-resize_policy
-
-
-
-Resize_Policy
-
-
-

Resize policy type.

-
-
-comb_hash_fn
-
-
-
-Comb_Hash_Fn
-
-
-

Combining hash functor type.

-
- -

Public Methods

- -

Constructors, Destructor, and - Related

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-  cc_hash_table
-  ()
-
-
-

Default constructor.

-
-
-  cc_hash_table
-  (const hash_fn &r_hash_fn)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - Hash_Fn object of - the container object.

-
-
-  cc_hash_table
-  (const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - hash_fn object of - the container object, and r_eq_fn will be copied by the - eq_fn object of the - container object.

-
-
-  cc_hash_table
-  (const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_hash_fn &r_comb_hash_fn)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, and r_comb_hash_fn will be copied by the - comb_hash_fn - object of the container object.

-
-
-  cc_hash_table
-  (const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_hash_fn &r_comb_hash_fn, 
-    const resize_policy &r_resize_policy)
-
-
-

Constructor taking some policy objects. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, r_comb_hash_fn will be copied by the - comb_hash_fn - object of the container object, and r_resize_policy will be copied by - the resize_policy - object of the container object.

-
-
-template<
-    class It>
-  cc_hash_table
-  (It first_it, 
-    It last_it)
-
-
-

Constructor taking iterators to a range of - value_types. The value_types between first_it and last_it will be inserted into the - container object.

-
-
-template<
-    class It>
-  cc_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects. The value_types between - first_it and - last_it will be inserted - into the container object.

-
-
-template<
-    class It>
-  cc_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects The value_types between - first_it and - last_it will be inserted - into the container object. r_hash_fn will be copied by the - hash_fn object of - the container object, and r_eq_fn will be copied by the - eq_fn object of the - container object.

-
-
-template<
-    class It>
-  cc_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_hash_fn &r_comb_hash_fn)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects The value_types between - first_it and - last_it will be inserted - into the container object. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, and r_comb_hash_fn will be copied by the - comb_hash_fn - object of the container object.

-
-
-template<
-    class It>
-  cc_hash_table
-  (It first_it, 
-    It last_it,
-    const hash_fn &r_hash_fn, 
-    const eq_fn &r_eq_fn, 
-    const comb_hash_fn &r_comb_hash_fn, 
-    const resize_policy &r_resize_policy)
-
-
-

Constructor taking iterators to a range of value_types - and some policy objects The value_types between - first_it and - last_it will be inserted - into the container object. r_hash_fn will be copied by the - hash_fn object of - the container object, r_eq_fn will be copied by the - eq_fn object of the - container object, r_comb_hash_fn will be copied by the - comb_hash_fn - object of the container object, and r_resize_policy will be copied by - the resize_policy - object of the container object.

-
-
-  cc_hash_table
-  (const cc_hash_table &other)
-
-
-

Copy constructor.

-
-
-virtual 
-  ~cc_hash_table
-  ()
-
-
-

Destructor.

-
-
-cc_hash_table &
-  operator=
-  (const cc_hash_table &other)
-
-
-

Assignment operator.

-
-
-void
-  swap
-  (cc_hash_table &other)
-
-
-

Swaps content.

-
- -

Policy Access Methods

- - - - - - - - - - - - - - - - - - - -
MethodDescription
-
-comb_hash_fn &
-  get_comb_hash_fn
-  ()
-
-
-

Access to the comb_hash_fn - object.

-
-
-const comb_hash_fn &
-  get_comb_hash_fn
-  () const
-
-
-

Const access to the comb_hash_fn - object.

-
-